FTP
Úvod a kontext
FTP je v místních rozborech starý, ale pořád praktický přenosový kanál. Není to exploit a sám o sobě neotevírá shell. Zajímavý je až ve chvíli, kdy přes něj leží cenný artefakt, funguje anonymous přístup, nebo se ukáže, že upload míří do prostoru, který se později vykoná nebo jinak zneužije.
Na Develu vede anonymous FTP přímo do IIS webrootu, na Fatty vrací klientskou JAR a interní poznámky, na Scavengeru zpřístupní incidentní pcap a na Forge se z něj přes ftp:// stane cíl SSRF. Právě to je dobré mít na paměti: FTP v projektu nebývá “další port”. Často je to konkrétní transport, kterým uniká obsah nebo se doručí soubor do důvěryhodného místa.
Co FTP v praxi řeší
FTP je užitečné hlavně tehdy, když potřebujete:
- stáhnout veřejně nebo anonymně dostupný artefakt,
- ověřit, zda login funguje i mimo web,
- nahrát soubor do prostoru, který obsluhuje jiná služba,
- nebo vytěžit interní soubory a zálohy z účtu, který už znáte.
Právě proto se na blogu objevuje opakovaně. Není to moderní nástroj, ale praktická odpověď na jednoduchou otázku: kde se ještě dají číst nebo zapisovat soubory bez složitějšího exploitu?
Nejčastější scénáře využití v tomto projektu
Anonymous FTP jako zdroj prvních artefaktů
Na Fatty není rozhodující SSH ani web, ale obyčejný anonymous FTP listing:
21/tcp open ftp vsftpd 2.0.8 or later
| ftp-anon: Anonymous FTP login allowed
| -rw-r--r-- 1 ftp ftp 15426727 Oct 30 12:10 fatty-client.jar
| -rw-r--r-- 1 ftp ftp 526 Oct 30 12:10 note.txt
| -rw-r--r-- 1 ftp ftp 426 Oct 30 12:10 note2.txt
| -rw-r--r-- 1 ftp ftp 194 Oct 30 12:10 note3.txt
Tady FTP nepřináší přímý shell. Přináší vstupní materiál:
- klientskou aplikaci k reverznímu inženýrství,
- poznámky s dočasnými účty,
- a indicii, že hlavní logika serveru běží mimo web.
Podobně na Luke anonymous FTP zrychlí první orientaci v hostu a na Admireru dává další služební kontext vedle webu a SSH.
FTP jako write kanál do prostoru, který se později vykoná
Devel je nejčistší ukázka toho, proč FTP nelze hodnotit izolovaně. Anonymous login by sám o sobě ještě nebyl zásadní problém. Kritické je až to, že obsah FTP míří do stejného prostoru, který servíruje IIS:
ftp-anon: Anonymous FTP login allowed
iisstart.htm
Jakmile lze do takového místa zapsat ASPX soubor, FTP se mění z obyčejného přenosu na nepřímé RCE. Praktickou logiku tohohle patternu rozebírám i v článku Zápis do prostoru, který se pak vykoná nebo použije pro autentizaci.
To je důležité metodicky: write do FTP není zajímavý sám o sobě. Zajímavé je, co se se souborem stane potom.
FTP jako cíl SSRF nebo server-side fetch
Forge ukazuje jiný, ale velmi praktický scénář. Tam se útočník na FTP nepřihlásí interaktivně. Místo toho použije SSRF endpoint, který umí sahat i na ftp:// URL:
http://ADMIN.FORGE.htb/upload?u=ftp://user:heightofsecurity123!@ADMIN.FORGE.htb/.ssh/id_rsa
Tím se z FTP stane interní úložiště tajemství, které se dá vytěžit přes server-side fetch. V tomhle případě vede rovnou k soukromému SSH klíči. Praktickou aplikační rovinu podobných cest rozebírám i v článku SSRF, reverse proxy a localhost trust assumptions.
FTP po získání hesla nebo reuse tajemství
Na Scavengeru FTP neotevírá první foothold, ale potvrzuje reuse hesla získaného z incidentního pcap:
ftp ib01.supersechosting.htb
Name: ib01c01
Password: GetYouAH4t!
To je dobrá připomínka, že FTP není jen legacy služba na stažení anonymního souboru. Často je to další místo, kde lze ověřit, zda uniklé heslo platí i mimo web nebo e-mail.
Kdy je FTP nejlepší volba
FTP dává největší smysl tehdy, když:
- anonymous login vrací konkrétní artefakty,
- existuje podezření, že upload míří do webrootu nebo jiného vykonávaného prostoru,
- máte už získané přihlašovací údaje a potřebujete ověřit reuse,
- nebo aplikace umí sama sahat na
ftp://URL.
Naopak není dobré od něj čekat něco, co neřeší:
- neobejde práva k souborům,
- neposkytne shell jen tím, že je otevřený,
- a bez dalšího kontextu z anonymous FTP ještě neplyne kompromitace hostu.
Nejčastější chyby v praxi
Záměna otevřeného FTP za hotový foothold
Na Fatty i Luke je první hodnota v obsahu, ne v samotném loginu. Teprve artefakty z FTP otevřou další cestu.
Ignorování toho, kam upload vede
Devel ukazuje, že klíčová není jen možnost nahrávat soubor, ale i to, že stejný soubor potom vykoná IIS. Bez této vazby by anonymous upload měl mnohem menší dopad.
Přehlížení reuse tajemství
Na Scavengeru a částečně i na Forge je důležité číst FTP jako součást širší identity nebo file-transfer logiky. Jakmile se někde objeví heslo nebo interní URL, FTP bývá jedno z prvních míst, kde dává smysl to ověřit.
Hodnocení FTP jen jako “legacy portu”
V místních rozborech FTP často rozhoduje víc než modernější služba vedle něj, protože vrací přesně ty soubory nebo cesty, které web už neukáže.
Související články v projektu
- Rozbory: Devel, Fatty, Forge, Scavenger, Luke, Admirer
- Techniky: Zápis do prostoru, který se pak vykoná nebo použije pro autentizaci, Legacy infrastruktura, kde banner prakticky rozhodne exploit, Password reuse a rozpad hranic mezi aplikací, SSH, WinRM a admin nástroji, SSRF, reverse proxy a localhost trust assumptions
Co si odnést do praxe
FTPje v praxi zajímavé hlavně jako přenosový kanál pro artefakty, upload nebo ověření reuse hesel.- Anonymous FTP samo o sobě ještě neznamená shell. Kritické je, jaký obsah vrací a kam vede případný upload.
- V kombinaci s webrootem, SSRF nebo reuse credentials se z obyčejného legacy protokolu rychle stává rozhodující část řetězce.
Další Související Články V Projektu
HTB Stroje
Techniky
- Automatizované zpracování souborů a bezpečnostní pipeline
- Legacy infrastruktura, kde banner prakticky rozhodne exploit
- Nebezpečné uploady: polygloty, WAR deploy a plugin upload