<summary><strong>Nauka hakowania AWS od zera do bohatera z</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Czy pracujesz w **firmie zajmującej się cyberbezpieczeństwem**? Chcesz zobaczyć, jak Twoja **firma jest reklamowana na HackTricks**? lub chcesz mieć dostęp do **najnowszej wersji PEASS lub pobrać HackTricks w formacie PDF**? Sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** [**💬**](https://emojipedia.org/speech-balloon/) [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** mnie na **Twitterze** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
Jest to protokół **czystego tekstu**, który używa jako **znaku nowej linii `0x0d 0x0a`**, dlatego czasami musisz **połączyć się za pomocą `telnet`** lub **`nc -C`**.
W **Aktywnym FTP** klient FTP najpierw **inicjuje** połączenie kontrolne z portu N do portu komend serwera FTP - port 21. Klient następnie **nasłuchuje** na porcie **N+1** i wysyła port N+1 do serwera FTP. Serwer FTP następnie **inicjuje** połączenie danych z **swojego portu M do portu N+1** klienta FTP.
Jednak jeśli klient FTP ma ustawiony firewall kontrolujący przychodzące połączenia danych z zewnątrz, aktywny FTP może stanowić problem. Rozwiązaniem tego problemu jest pasywny FTP.
W **Pasywnym FTP** klient inicjuje połączenie kontrolne z portu N do portu 21 serwera FTP. Następnie klient wysyła polecenie **passv**. Serwer następnie wysyła klientowi jeden ze swoich numerów portu M. Klient następnie **inicjuje** połączenie danych z **swojego portu P do portu M** serwera FTP.
Tutaj znajdziesz fajną listę domyślnych poświadczeń ftp: [https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ftp-betterdefaultpasslist.txt](https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ftp-betterdefaultpasslist.txt)
Zauważ, że jeśli **aplikacja internetowa** przesyła dane kontrolowane przez użytkownika **bezpośrednio do serwera FTP**, możesz wysłać podwójne kodowanie URL `%0d%0a` (w podwójnym kodowaniu URL to `%250d%250a`) bajtów i sprawić, że **serwer FTP wykona dowolne akcje**. Jedną z możliwych dowolnych akcji jest pobranie zawartości z serwera kontrolowanego przez użytkownika, przeprowadzenie skanowania portów lub próba komunikacji z innymi usługami opartymi na zwykłym tekście (np. http).
* \*\*`PORT 127,0,0,1,0,80`\*\*To polecenie wskaże serwerowi FTP nawiązanie połączenia z adresem IP 127.0.0.1 na porcie 80 (_musisz ustawić 5. znak jako "0" i 6. jako numer portu w systemie dziesiętnym lub użyć 5. i 6. znaku do wyrażenia portu w systemie szesnastkowym_).
* \*\*`EPRT |2|127.0.0.1|80|`\*\*To polecenie wskaże serwerowi FTP nawiązanie połączenia TCP (_oznaczone przez "2"_) z adresem IP 127.0.0.1 na porcie 80. To polecenie **obsługuje IPv6**.
* **`LIST`** To polecenie wyśle listę plików w bieżącym folderze
* **`LIST -R`** Lista rekursywnie (jeśli serwer zezwala)
* **`APPE /ścieżka/coś.txt`** To polecenie wskaże FTP, aby zapisać otrzymane dane z połączenia **pasywnego** lub z połączenia **PORT/EPRT** do pliku. Jeśli nazwa pliku istnieje, dane zostaną do niego dodane.
Niektóre serwery FTP pozwalają na użycie polecenia PORT. To polecenie można wykorzystać, aby wskazać serwerowi, że chcesz połączyć się z innym serwerem FTP na określonym porcie. Następnie można użyć tego do skanowania, które porty hosta są otwarte za pośrednictwem serwera FTP.
Można również wykorzystać to zachowanie, aby sprawić, że serwer FTP będzie współpracował z innymi protokołami. Można **przesłać plik zawierający żądanie HTTP** i sprawić, że podatny serwer FTP **wyśle je do dowolnego serwera HTTP** (_może to umożliwić dodanie nowego użytkownika admina?_) lub nawet przesłać żądanie FTP i sprawić, że podatny serwer FTP pobierze plik z innego serwera FTP.\
1.**Prześlij żądanie (w pliku tekstowym) do podatnego serwera.** Pamiętaj, że jeśli chcesz porozmawiać z innym serwerem HTTP lub FTP, musisz zmienić linie na `0x0d 0x0a`
2.**Użyj `REST X`, aby uniknąć wysyłania znaków, których nie chcesz wysłać** (może być konieczne dodanie nagłówka obrazu na początku, aby przesłać żądanie wewnątrz pliku)
Bardzo prawdopodobne jest, że **zostanie zgłoszony błąd**_**Socket not writable**_**ponieważ połączenie nie trwa wystarczająco długo, aby wysłać dane za pomocą `RETR`**. Sugerowane sposoby próby uniknięcia tego to:
* Spróbuj **wypełnić żądanie "śmieciami" związanymi z protokołem** (w przypadku rozmowy z FTP może to być po prostu polecenia "śmieci" lub powtarzanie instrukcji `RETR` w celu pobrania pliku)
W każdym razie, tutaj masz [stary przykład, jak wykorzystać to, aby sprawić, że serwer FTP pobierze plik z innego serwera FTP.](ftp-bounce-download-2oftp-file.md)
**FileZilla** zazwyczaj **łączy się** z **usługą administracyjną** dla **FileZilla-Server** (port 14147). Jeśli możesz utworzyć **tunel** z **twojego komputera**, aby uzyskać dostęp do tego portu, możesz się do **niego podłączyć** używając **pustego hasła** i **utworzyć** nowego **użytkownika** dla usługi FTP.
<summary><strong>Nauka hakowania AWS od zera do bohatera z</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Czy pracujesz w **firmie z branży cyberbezpieczeństwa**? Chcesz zobaczyć swoją **firmę reklamowaną na HackTricks**? lub chcesz mieć dostęp do **najnowszej wersji PEASS lub pobrać HackTricks w formacie PDF**? Sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** [**💬**](https://emojipedia.org/speech-balloon/) [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** mnie na **Twitterze** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Podziel się swoimi sztuczkami hakowania, przesyłając PR-y do** [**repozytorium hacktricks**](https://github.com/carlospolop/hacktricks) **i** [**repozytorium hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).