.. | ||
ftp-bounce-attack.md | ||
ftp-bounce-download-2oftp-file.md | ||
README.md |
21 - Pentesting FTP
Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!
- Je, unafanya kazi katika kampuni ya usalama wa mtandao? Unataka kuona kampuni yako ikionekana kwenye HackTricks? au unataka kupata upatikanaji wa toleo jipya la PEASS au kupakua HackTricks kwa PDF? Angalia MIPANGO YA KUJIUNGA!
- Gundua Familia ya PEASS, mkusanyiko wetu wa NFTs ya kipekee
- Pata bidhaa rasmi za PEASS & HackTricks
- Jiunge na 💬 Kikundi cha Discord au kikundi cha telegram au nifuata kwenye Twitter 🐦@carlospolopm.
- Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwenye repo ya hacktricks na repo ya hacktricks-cloud.
Kikundi cha Usalama cha Kujitahidi
{% embed url="https://discord.gg/tryhardsecurity" %}
Taarifa Msingi
Itifaki ya Uhamishaji wa Faili (FTP) hutumika kama itifaki ya kawaida kwa uhamishaji wa faili kwenye mtandao wa kompyuta kati ya seva na mteja.
Ni itifaki ya maandishi ya wazi inayotumia tabia mpya ya mstari 0x0d 0x0a
kwa hivyo mara nyingine unahitaji kuunganisha kutumia telnet
au nc -C
.
Bandari ya Chaguo: 21
PORT STATE SERVICE
21/tcp open ftp
Uunganisho wa Moja kwa Moja na wa Kupitisha
Katika FTP ya Moja kwa Moja, mteja wa FTP kwanza ananzisha uunganisho wa udhibiti kutoka kwa bandari yake N kwenda kwa bandari ya amri ya Seva ya FTP - bandari 21. Mteja kisha anasikiliza kwenye bandari N+1 na kutuma bandari N+1 kwa Seva ya FTP. Seva ya FTP kisha inaanzisha uunganisho wa data, kutoka kwa bandari yake M kwenda kwa bandari N+1 ya Mteja wa FTP.
Lakini, ikiwa Mteja wa FTP ana firewall iliyowekwa kudhibiti uunganisho wa data unaokuja kutoka nje, basi FTP ya moja kwa moja inaweza kuwa tatizo. Na, suluhisho linalowezekana kwa hilo ni FTP ya Kupitisha.
Katika FTP ya Kupitisha, mteja ananzisha uunganisho wa udhibiti kutoka kwa bandari yake N kwenda kwa bandari 21 ya Seva ya FTP. Baada ya hii, mteja anatoa amri ya passv. Seva kisha inatuma mteja nambari moja ya bandari yake M. Na mteja anaanzisha uunganisho wa data kutoka kwa bandari yake P kwenda kwa bandari M ya Seva ya FTP.
Chanzo: https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/
Kutatua Mipangilio ya Uunganisho
Amri za FTP debug
na trace
zinaweza kutumika kuona jinsi mawasiliano yanavyotokea.
Uorodheshaji
Kukamata Bango
nc -vn <IP> 21
openssl s_client -connect crossfit.htb:21 -starttls ftp #Get certificate if any
Unganisha kwa FTP ukitumia starttls
lftp
lftp :~> set ftp:ssl-force true
lftp :~> set ssl:verify-certificate no
lftp :~> connect 10.10.10.208
lftp 10.10.10.208:~> login
Usage: login <user|URL> [<pass>]
lftp 10.10.10.208:~> login username Password
Uchambuzi wa Kibali
Kwa nmap
sudo nmap -sV -p21 -sC -A 10.10.10.10
Unaweza kutumia amri HELP
na FEAT
kupata baadhi ya taarifa za seva ya FTP:
HELP
214-The following commands are recognized (* =>'s unimplemented):
214-CWD XCWD CDUP XCUP SMNT* QUIT PORT PASV
214-EPRT EPSV ALLO* RNFR RNTO DELE MDTM RMD
214-XRMD MKD XMKD PWD XPWD SIZE SYST HELP
214-NOOP FEAT OPTS AUTH CCC* CONF* ENC* MIC*
214-PBSZ PROT TYPE STRU MODE RETR STOR STOU
214-APPE REST ABOR USER PASS ACCT* REIN* LIST
214-NLST STAT SITE MLSD MLST
214 Direct comments to root@drei.work
FEAT
211-Features:
PROT
CCC
PBSZ
AUTH TLS
MFF modify;UNIX.group;UNIX.mode;
REST STREAM
MLST modify*;perm*;size*;type*;unique*;UNIX.group*;UNIX.mode*;UNIX.owner*;
UTF8
EPRT
EPSV
LANG en-US
MDTM
SSCN
TVFS
MFMT
SIZE
211 End
STAT
#Info about the FTP server (version, configs, status...)
Kuingia kwa Kutumia Jina la Anonymous
anonymous : anonymous
anonymous :
ftp : ftp
ftp <IP>
>anonymous
>anonymous
>ls -a # List all files (even hidden) (yes, they could be hidden)
>binary #Set transmission to binary instead of ascii
>ascii #Set transmission to ascii instead of binary
>bye #exit
Kujaribu nguvu
Hapa unaweza kupata orodha nzuri ya siri za msingi za ftp: https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ftp-betterdefaultpasslist.txt
Kiotomatiki
Anon login na bounce FTP checks hufanywa kiotomatiki na nmap kwa chaguo la -sC au:
nmap --script ftp-* -p 21 <ip>
Uunganisho wa Kivinjari
Unaweza kuunganisha kwenye seva ya FTP ukitumia kivinjari (kama Firefox) ukitumia URL kama:
ftp://anonymous:anonymous@10.10.10.98
Tafadhali kumbuka kwamba ikiwa programu-jalizi ya wavuti inatuma data inayodhibitiwa na mtumiaji moja kwa moja kwa seva ya FTP unaweza kutuma URL encode mara mbili %0d%0a
(katika URL encode mara mbili hii ni %250d%250a
) na kufanya seva ya FTP ifanye vitendo vya kiholela. Moja ya vitendo vya kiholela vinavyowezekana ni kupakua maudhui kutoka kwa seva inayodhibitiwa na mtumiaji, kufanya uchunguzi wa bandari au jaribu kuwasiliana na huduma zingine zinazotegemea maandishi wazi (kama vile http).
Pakua faili zote kutoka kwa FTP
wget -m ftp://anonymous:anonymous@10.10.10.98 #Donwload all
wget -m --no-passive ftp://anonymous:anonymous@10.10.10.98 #Download all
Ikiwa jina lako la mtumiaji/nywila lina herufi maalum, amri ifuatayo inaweza kutumika:
wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
Baadhi ya amri za FTP
USER jina_la_mtumiaji
PASS nenosiri
HELP
Seva inaonyesha ni amri zipi zinazoungwa mkono- **
PORT 127,0,0,1,0,80
**Hii itaonyesha seva ya FTP kuanzisha uhusiano na IP 127.0.0.1 kwenye bandari 80 (unahitaji kuweka herufi ya 5 kama "0" na ya 6 kama bandari kwa decimal au tumia ya 5 na 6 kueleza bandari kwa hex). - **
EPRT |2|127.0.0.1|80|
**Hii itaonyesha seva ya FTP kuanzisha uhusiano wa TCP (unaoonyeshwa na "2") na IP 127.0.0.1 kwenye bandari 80. Amri hii inaunga mkono IPv6. LIST
Hii itatuma orodha ya faili kwenye folda ya sasaLIST -R
Orodhesha kwa njia ya kurudia (ikiwa inaruhusiwa na seva)APPE /njia/kitu.txt
Hii itaonyesha FTP kuhifadhi data iliyopokelewa kutoka kwa uhusiano wa pasifiki au kutoka kwa uhusiano wa PORT/EPRT kwenye faili. Ikiwa jina la faili lipo, itaongeza data.STOR /njia/kitu.txt
KamaAPPE
lakini itabadilisha faili zilizopoSTOU /njia/kitu.txt
KamaAPPE
, lakini ikiwepo haitafanya chochote.RETR /njia/ya/faili
Uhusiano wa pasifiki au wa port lazima uanzishwe. Kisha, seva ya FTP itatuma faili iliyotajwa kupitia uhusiano huoREST 6
Hii itaonyesha seva kwamba wakati inatuma kitu kutumiaRETR
ianze kwenye byte ya 6.TYPE i
Weka uhamishaji kuwa wa binaryPASV
Hii itafungua uhusiano wa pasifiki na itaonyesha mtumiaji anaweza kuunganisha wapiPUT /tmp/kitu.txt
Pakia faili iliyotajwa kwenye FTP
Shambulio la FTPBounce
Baadhi ya seva za FTP huruhusu amri ya PORT. Amri hii inaweza kutumika kuonyesha kwa seva kwamba unataka kuunganisha kwenye seva nyingine ya FTP kwenye bandari fulani. Kisha, unaweza kutumia hii kuscan bandari zipi za mwenyeji ziko wazi kupitia seva ya FTP.
Jifunze hapa jinsi ya kutumia vibaya seva ya FTP kuscan bandari.
Unaweza pia kutumia tabia hii kufanya seva ya FTP iingiliane na itrotokole zingine. Unaweza kupakia faili inayohusisha ombi la HTTP na kufanya seva ya FTP inayoweza kudhurika ikutume kwenye seva ya HTTP isiyojulikana (labda kuongeza mtumiaji mpya wa msimamizi?) au hata kupakia ombi la FTP na kufanya seva ya FTP inayoweza kudhurika ipakue faili kwa seva ya FTP tofauti.
Teoria ni rahisi:
- Pakia ombi (ndani ya faili ya maandishi) kwenye seva inayoweza kudhurika. Kumbuka kwamba ikiwa unataka kuzungumza na seva nyingine ya HTTP au FTP unahitaji kubadilisha mistari na
0x0d 0x0a
- Tumia
REST X
kuepuka kutuma herufi ambazo huzitaki kutuma (labda kupakia ombi ndani ya faili unahitaji kuweka kichwa cha picha mwanzoni) - Tumia
PORT
kuunganisha kwenye seva na huduma isiyojulikana - Tumia
RETR
kutuma ombi lililohifadhiwa kwenye seva.
Inawezekana sana kwamba hii itatoa kosa kama Socket isiyoweza kuandikwa kwa sababu uhusiano hautoshi kutuma data na RETR
. Mapendekezo ya kujaribu kuepuka hilo ni:
- Ikiwa unatuma ombi la HTTP, weka ombi moja baada ya nyingine hadi ~0.5MB angalau. Kama hivi:
{% file src="../../.gitbook/assets/posts.txt" %} posts.txt {% endfile %}
- Jaribu kujaza ombi na data "taka" inayohusiana na itrotokoli (ukiwasiliana na FTP labda amri za taka au kurudia maagizo ya
RETR
kuchukua faili) - Tu jaza ombi na herufi za null au nyingine nyingi (zilizogawanywa kwenye mistari au la)
Kwa namna yoyote, hapa kuna mfano wa zamani kuhusu jinsi ya kutumia hii kufanya seva ya FTP ipakue faili kutoka kwa seva ya FTP tofauti.
Udhaifu wa Seva ya Filezilla
FileZilla kawaida inabana kwa lokalini huduma ya utawala kwa Seva ya FileZilla (bandari 14147). Ikiwa unaweza kuunda tuneli kutoka kwenye mashine yako kufikia bandari hii, unaweza kuunganisha kwayo kwa kutumia nenosiri tupu na kuunda mtumiaji mwingine kwa huduma ya FTP.
Faili za Mipangilio
ftpusers
ftp.conf
proftpd.conf
vsftpd.conf
Baada ya Kuingia
Mipangilio ya msingi ya vsFTPd inaweza kupatikana katika /etc/vsftpd.conf
. Hapa, unaweza kupata mipangilio hatari:
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_root=/home/username/ftp
- Daktari kwa wageni.chown_uploads=YES
- Badilisha umiliki wa faili zilizopakiwa kwa sirichown_username=username
- Mtumiaji ambaye anapewa umiliki wa faili zilizopakiwa kwa sirilocal_enable=YES
- Wezesha watumiaji wa ndani kuingiano_anon_password=YES
- Usiulize nywila kwa wageniwrite_enable=YES
- Ruhusu amri: STOR, DELE, RNFR, RNTO, MKD, RMD, APPE, na SITE
Shodan
ftp
port:21
Kikundi cha Usalama cha Kujitahidi Kwa Bidii
{% embed url="https://discord.gg/tryhardsecurity" %}
Amri za Kiotomatiki za HackTricks
Protocol_Name: FTP #Protocol Abbreviation if there is one.
Port_Number: 21 #Comma separated if there is more than one.
Protocol_Description: File Transfer Protocol #Protocol Abbreviation Spelled out
Entry_1:
Name: Notes
Description: Notes for FTP
Note: |
Anonymous Login
-bi <<< so that your put is done via binary
wget --mirror 'ftp://ftp_user:UTDRSCH53c"$6hys@10.10.10.59'
^^to download all dirs and files
wget --no-passive-ftp --mirror 'ftp://anonymous:anonymous@10.10.10.98'
if PASV transfer is disabled
https://book.hacktricks.xyz/pentesting/pentesting-ftp
Entry_2:
Name: Banner Grab
Description: Grab FTP Banner via telnet
Command: telnet -n {IP} 21
Entry_3:
Name: Cert Grab
Description: Grab FTP Certificate if existing
Command: openssl s_client -connect {IP}:21 -starttls ftp
Entry_4:
Name: nmap ftp
Description: Anon login and bounce FTP checks are performed
Command: nmap --script ftp-* -p 21 {IP}
Entry_5:
Name: Browser Connection
Description: Connect with Browser
Note: ftp://anonymous:anonymous@{IP}
Entry_6:
Name: Hydra Brute Force
Description: Need Username
Command: hydra -t 1 -l {Username} -P {Big_Passwordlist} -vV {IP} ftp
Entry_7:
Name: consolesless mfs enumeration ftp
Description: FTP enumeration without the need to run msfconsole
Note: sourced from https://github.com/carlospolop/legion
Command: msfconsole -q -x 'use auxiliary/scanner/ftp/anonymous; set RHOSTS {IP}; set RPORT 21; run; exit' && msfconsole -q -x 'use auxiliary/scanner/ftp/ftp_version; set RHOSTS {IP}; set RPORT 21; run; exit' && msfconsole -q -x 'use auxiliary/scanner/ftp/bison_ftp_traversal; set RHOSTS {IP}; set RPORT 21; run; exit' && msfconsole -q -x 'use auxiliary/scanner/ftp/colorado_ftp_traversal; set RHOSTS {IP}; set RPORT 21; run; exit' && msfconsole -q -x 'use auxiliary/scanner/ftp/titanftp_xcrc_traversal; set RHOSTS {IP}; set RPORT 21; run; exit'
Jifunze AWS hacking kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!
- Je, unafanya kazi katika kampuni ya usalama wa mtandao? Je, ungependa kuona kampuni yako ikionekana kwenye HackTricks? au ungependa kupata upatikanaji wa toleo jipya la PEASS au kupakua HackTricks kwa PDF? Angalia MIPANGO YA KUJIUNGA!
- Gundua Familia ya PEASS, mkusanyiko wetu wa NFTs ya kipekee
- Pata bidhaa rasmi za PEASS & HackTricks
- Jiunge na 💬 Kikundi cha Discord au kikundi cha telegram au fuata kwenye Twitter 🐦@carlospolopm.
- Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwenye repo ya hacktricks na repo ya hacktricks-cloud.