<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Werk jy in 'n **cybersekerheidsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**hacktricks-opslag**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud-opslag**](https://github.com/carlospolop/hacktricks-cloud).
Die **Lêeroordragprotokol (FTP)** dien as 'n standaardprotokol vir lêeroordrag oor 'n rekenaarnetwerk tussen 'n bediener en 'n klient.\
Dit is 'n **teksgebaseerde** protokol wat gebruik maak van die **nuwe lynkarakter `0x0d 0x0a`** sodat jy soms moet **verbind deur middel van `telnet`** of **`nc -C`**.
In **Aktiewe FTP** inisieer die FTP **klient** eerste die beheer **verbindings** vanaf sy poort N na die FTP-bediener se bevelspoort - poort 21. Die **klient** luister dan na poort **N+1** en stuur die poort N+1 na die FTP-bediener. FTP **Bediener** inisieer dan die data **verbindings**, vanaf **sy poort M na die poort N+1** van die FTP-klient.
Maar, as die FTP-klient 'n vuurwalopstelling het wat die inkomende data verbindings van buite beheer, kan aktiewe FTP 'n probleem wees. En 'n uitvoerbare oplossing daarvoor is Passiewe FTP.
In **Passiewe FTP** inisieer die klient die beheer verbindings vanaf sy poort N na poort 21 van die FTP-bediener. Hierna gee die klient 'n **passv bevel** uit. Die bediener stuur dan een van sy poortnommer M na die klient. En die **klient** inisieer die data **verbindings** vanaf **sy poort P na poort M** van die FTP-bediener.
Hier kan jy 'n mooi lys met verstek ftp-inligting vind: [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)
Merk op dat as 'n **webtoepassing** data wat deur 'n gebruiker beheer word direk na 'n FTP-bediener stuur, kan jy dubbel URL-kodeer `%0d%0a` (in dubbel URL-kodeer is dit `%250d%250a`) bytes stuur en die **FTP-bediener arbitrêre aksies laat uitvoer**. Een van hierdie moontlike arbitrêre aksies is om inhoud van 'n gebruiker se beheerde bediener af te laai, poortskandering uit te voer of te probeer om met ander teksgebaseerde dienste (soos http) te kommunikeer.
* \*\*`PORT 127,0,0,1,0,80`\*\*Dit sal aandui dat die FTP-bedienaar 'n verbinding moet vestig met die IP 127.0.0.1 op poort 80 (_jy moet die 5de karakter as "0" plaas en die 6de as die poort in desimaal of gebruik die 5de en 6de om die poort in heksadesimaal uit te druk_).
* \*\*`EPRT |2|127.0.0.1|80|`\*\*Dit sal aandui dat die FTP-bedienaar 'n TCP-verbinding (_aangedui deur "2"_) moet vestig met die IP 127.0.0.1 op poort 80. Hierdie opdrag **ondersteun IPv6**.
* **`LIST -R`** Lys outomaties (indien toegelaat deur die bediener)
* **`APPE /pad/iets.txt`** Dit sal die FTP aandui om die ontvangste data van 'n **passiewe** verbinding of van 'n **PORT/EPRT**-verbinding na 'n lêer te stoor. As die lêernaam bestaan, sal dit die data byvoeg.
* **`STOR /pad/iets.txt`** Soos `APPE` maar dit sal die lêers oorskryf
* **`RETR /pad/na/lêer`** 'n Passiewe of 'n poortverbinding moet gevestig word. Dan sal die FTP-bedienaar die aangeduide lêer deur daardie verbinding stuur
* **`REST 6`** Dit sal die bediener aandui dat volgende keer as dit iets stuur met `RETR` dit moet begin by die 6de byte.
Sommige FTP-bedieners laat die opdrag PORT toe. Hierdie opdrag kan gebruik word om aan die bediener aan te dui dat jy wil koppel aan 'n ander FTP-bedienaar by 'n sekere poort. Dan kan jy dit gebruik om te skandeer watter poorte van 'n gasrekenaar oop is deur 'n FTP-bedienaar.
Jy kan ook hierdie gedrag misbruik om 'n FTP-bedienaar te laat interaksie hê met ander protokolle. Jy kan **'n lêer oplaai wat 'n HTTP-aanvraag bevat** en die kwesbare FTP-bedienaar **dit stuur na 'n willekeurige HTTP-bedienaar** (_miskien om 'n nuwe administrateurgebruiker by te voeg?_) of selfs 'n FTP-aanvraag oplaai en die kwesbare FTP-bedienaar 'n lêer laat aflaai vir 'n ander FTP-bedienaar.\
1.**Laai die aanvraag (binne 'n tekslêer) na die kwesbare bediener.** Onthou dat as jy wil kommunikeer met 'n ander HTTP- of FTP-bedienaar, moet jy lyne met `0x0d 0x0a` verander
2.**Gebruik `REST X` om te verhoed dat jy die karakters stuur wat jy nie wil stuur nie** (miskien om die aanvraag binne die lêer te plaas, moes jy 'n beeldkop aan die begin sit)
3.**Gebruik `PORT` om te koppel aan die willekeurige bediener en diens**
4.**Gebruik `RETR` om die gestoorde aanvraag na die bediener te stuur.**
Dit is baie waarskynlik dat dit **'n fout soos** _**Sokkie nie skryfbaar nie**_**sal veroorsaak omdat die verbinding nie genoeg duur om die data met `RETR` te stuur**. Voorstelle om te probeer om dit te vermy is:
* Probeer om **die aanvraag te vul met "rommel" data relatief tot die protokol** (as jy met FTP praat, dalk net rommelopdragte of herhaling van die `RETR`-instruksie om die lêer te kry)
Hoe dan ook, hier het jy 'n [ou voorbeeld oor hoe om dit te misbruik om 'n FTP-bedienaar 'n lêer te laat aflaai van 'n ander FTP-bedienaar.](ftp-bounce-download-2oftp-file.md)
**FileZilla** bind gewoonlik aan 'n **plaaslike** Administratiewe diens vir die **FileZilla-Bedienaar** (poort 14147). As jy 'n **tonnel** kan skep vanaf **jou rekenaar** om toegang te verkry tot hierdie poort, kan jy daarmee **koppel** met 'n **leë wagwoord** en 'n **nuwe gebruiker skep** vir die FTP-diens.
<opsomming><sterk>Leer AWS-hacking vanaf nul tot held met</sterk><ahref="https://training.hacktricks.xyz/courses/arte"><sterk>htARTE (HackTricks AWS Red Team Expert)</sterk></a><sterk>!</sterk></opsomming>
* Werk jy in 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**hacktricks-opslag**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud-opslag**](https://github.com/carlospolop/hacktricks-cloud).