.. | ||
ftp-bounce-attack.md | ||
ftp-bounce-download-2oftp-file.md | ||
README.md |
21 - Pentesting FTP
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the ЁЯТм Discord group or the telegram group or follow us on Twitter ЁЯРж @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Basic Information
рдлрд╛рдЗрд▓ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ (FTP) рдПрдХ рдорд╛рдирдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реИ рдЬреЛ рдПрдХ рд╕рд░реНрд╡рд░ рдФрд░ рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдмреАрдЪ рдХрдВрдкреНрдпреВрдЯрд░ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдлрд╛рдЗрд▓ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдПрдХ рд╕рд╛рджрд╛-рдЯреЗрдХреНрд╕реНрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реИ рдЬреЛ рдирдпрд╛ рд▓рд╛рдЗрди рдХреИрд░реЗрдХреНрдЯрд░ 0x0d 0x0a
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрднреА-рдХрднреА рдЖрдкрдХреЛ telnet
рдпрд╛ nc -C
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреЛрд░реНрдЯ: 21
PORT STATE SERVICE
21/tcp open ftp
Connections Active & Passive
In Active FTP the FTP client first initiates the control connection from its port N to FTP Servers command port тАУ port 21. The client then listens to port N+1 and sends the port N+1 to FTP Server. FTP Server then initiates the data connection, from its port M to the port N+1 of the FTP Client.
But, if the FTP Client has a firewall setup that controls the incoming data connections from outside, then active FTP may be a problem. And, a feasible solution for that is Passive FTP.
In Passive FTP, the client initiates the control connection from its port N to the port 21 of FTP Server. After this, the client issues a passv comand. The server then sends the client one of its port number M. And the client initiates the data connection from its port P to port M of the FTP Server.
Source: https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/
Connection debugging
The FTP commands debug
and trace
can be used to see рдХреИрд╕реЗ рд╕рдВрдЪрд╛рд░ рд╣реЛ рд░рд╣рд╛ рд╣реИ.
Enumeration
Banner Grabbing
nc -vn <IP> 21
openssl s_client -connect crossfit.htb:21 -starttls ftp #Get certificate if any
STARTTLS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ FTP рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ
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
Unauth enum
nmap рдХреЗ рд╕рд╛рде
sudo nmap -sV -p21 -sC -A 10.10.10.10
рдЖрдк FTP рд╕рд░реНрд╡рд░ рдХреА рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП HELP
рдФрд░ FEAT
рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
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...)
Anonymous login
рдЧреБрдордирд╛рдо : рдЧреБрдордирд╛рдо
рдЧреБрдордирд╛рдо :
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
Brute force
рдпрд╣рд╛рдБ рдЖрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ ftp рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХреА рдПрдХ рдЕрдЪреНрдЫреА рд╕реВрдЪреА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ: https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ftp-betterdefaultpasslist.txt
Automated
Anon рд▓реЙрдЧрд┐рди рдФрд░ рдмрд╛рдЙрдВрд╕ FTP рдЬрд╛рдВрдЪреЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ nmap рджреНрд╡рд╛рд░рд╛ -sC рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдХреА рдЬрд╛рддреА рд╣реИрдВ рдпрд╛:
nmap --script ftp-* -p 21 <ip>
Browser connection
рдЖрдк рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ (рдЬреИрд╕реЗ Firefox) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ FTP рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ URL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬреИрд╕реЗ:
ftp://anonymous:anonymous@10.10.10.98
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдПрдХ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ FTP рд╕рд░реНрд╡рд░ рдкрд░ рднреЗрдЬ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЖрдк рдбрдмрд▓ URL рдПрдиреНрдХреЛрдб %0d%0a
(рдбрдмрд▓ URL рдПрдиреНрдХреЛрдб рдореЗрдВ рдпрд╣ %250d%250a
рд╣реИ) рдмрд╛рдЗрдЯреНрд╕ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ FTP рд╕рд░реНрд╡рд░ рдХреЛ рдордирдорд╛рдиреЗ рдХреНрд░рд┐рдпрд╛рдПрдБ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрдирдореЗрдВ рд╕реЗ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдордирдорд╛рдиреА рдХреНрд░рд┐рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╕рд░реНрд╡рд░ рд╕реЗ рд╕рд╛рдордЧреНрд░реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛, рдкреЛрд░реНрдЯ рд╕реНрдХреИрдирд┐рдВрдЧ рдХрд░рдирд╛ рдпрд╛ рдЕрдиреНрдп рдкреНрд▓реЗрди-рдЯреЗрдХреНрд╕реНрдЯ рдЖрдзрд╛рд░рд┐рдд рд╕реЗрд╡рд╛рдУрдВ (рдЬреИрд╕реЗ http) рд╕реЗ рдмрд╛рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рд╣реИред
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
рдпрджрд┐ рдЖрдкрдХрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛/рдкрд╛рд╕рд╡рд░реНрдб рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдгреЛрдВ рдореЗрдВ рд╣реИ, рддреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
Some FTP commands
USER username
PASS password
HELP
рд╕рд░реНрд╡рд░ рдпрд╣ рд╕рдВрдХреЗрдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдХрдорд╛рдВрдб рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ- **
PORT 127,0,0,1,0,80
**рдпрд╣ FTP рд╕рд░реНрд╡рд░ рдХреЛ IP 127.0.0.1 рдкрд░ рдкреЛрд░реНрдЯ 80 рдХреЗ рд╕рд╛рде рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рджреЗрдЧрд╛ (рдЖрдкрдХреЛ 5рд╡рд╛рдВ рдЕрдХреНрд╖рд░ "0" рдФрд░ 6рд╡рд╛рдВ рджрд╢рдорд▓рд╡ рдореЗрдВ рдкреЛрд░реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ рдпрд╛ 5рд╡реЗрдВ рдФрд░ 6рд╡реЗрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреЛрд░реНрдЯ рдХреЛ рд╣реЗрдХреНрд╕ рдореЗрдВ рд╡реНрдпрдХреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛)ред - **
EPRT |2|127.0.0.1|80|
**рдпрд╣ FTP рд╕рд░реНрд╡рд░ рдХреЛ IP 127.0.0.1 рдкрд░ рдкреЛрд░реНрдЯ 80 рдХреЗ рд╕рд╛рде TCP рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рджреЗрдЧрд╛ ("2" рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХреЗрддрд┐рдд)ред рдпрд╣ рдХрдорд╛рдВрдб IPv6 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред LIST
рдпрд╣ рд╡рд░реНрддрдорд╛рди рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реВрдЪреА рднреЗрдЬреЗрдЧрд╛LIST -R
рдкреБрдирд░рд╛рд╡реГрддреНрдд рд╕реВрдЪреА (рдпрджрд┐ рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрдорддрд┐ рджреА рдЧрдИ рд╣реЛ)APPE /path/something.txt
рдпрд╣ FTP рдХреЛ рдкреИрд╕рд┐рд╡ рдХрдиреЗрдХреНрд╢рди рдпрд╛ PORT/EPRT рдХрдиреЗрдХреНрд╢рди рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рджреЗрдЧрд╛ред рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдореМрдЬреВрдж рд╣реИ, рддреЛ рдпрд╣ рдбреЗрдЯрд╛ рдХреЛ рдЬреЛрдбрд╝ рджреЗрдЧрд╛редSTOR /path/something.txt
APPE
рдХреА рддрд░рд╣ рд▓реЗрдХрд┐рди рдпрд╣ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░реЗрдЧрд╛STOU /path/something.txt
APPE
рдХреА рддрд░рд╣, рд▓реЗрдХрд┐рди рдпрджрд┐ рдореМрдЬреВрдж рд╣реИ рддреЛ рдпрд╣ рдХреБрдЫ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛редRETR /path/to/file
рдПрдХ рдкреИрд╕рд┐рд╡ рдпрд╛ рдкреЛрд░реНрдЯ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдлрд┐рд░, FTP рд╕рд░реНрд╡рд░ рдЙрд╕ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рднреЗрдЬреЗрдЧрд╛REST 6
рдпрд╣ рд╕рд░реНрд╡рд░ рдХреЛ рд╕рдВрдХреЗрдд рджреЗрдЧрд╛ рдХрд┐ рдЕрдЧрд▓реА рдмрд╛рд░ рдЬрдм рд╡рд╣ рдХреБрдЫ рднреЗрдЬреЗрдЧрд╛RETR
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рддреЛ рдЙрд╕реЗ 6рд╡реЗрдВ рдмрд╛рдЗрдЯ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПредTYPE i
рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХреЛ рдмрд╛рдЗрдирд░реА рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВPASV
рдпрд╣ рдПрдХ рдкреИрд╕рд┐рд╡ рдХрдиреЗрдХреНрд╢рди рдЦреЛрд▓реЗрдЧрд╛ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕рдВрдХреЗрдд рджреЗрдЧрд╛ рдХрд┐ рд╡рд╣ рдХрд╣рд╛рдБ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИPUT /tmp/file.txt
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ FTP рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ
FTPBounce attack
рдХреБрдЫ FTP рд╕рд░реНрд╡рд░ PORT рдХрдорд╛рдВрдб рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдЗрд╕ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд░реНрд╡рд░ рдХреЛ рдпрд╣ рд╕рдВрдХреЗрдд рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп FTP рд╕рд░реНрд╡рд░ рд╕реЗ рдХрд┐рд╕реА рдкреЛрд░реНрдЯ рдкрд░ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдлрд┐рд░, рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕реА рд╣реЛрд╕реНрдЯ рдХреЗ рдХреМрди рд╕реЗ рдкреЛрд░реНрдЯ рдЦреБрд▓реЗ рд╣реИрдВ FTP рд╕рд░реНрд╡рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред
рдЖрдк рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рдХреЗ FTP рд╕рд░реНрд╡рд░ рдХреЛ рдЕрдиреНрдп рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рд╡рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк HTTP рдЕрдиреБрд░реЛрдз рд╡рд╛рд▓рд╛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХрдордЬреЛрд░ FTP рд╕рд░реНрд╡рд░ рдХреЛ рдЗрд╕реЗ рдХрд┐рд╕реА рдордирдорд╛рдиреЗ HTTP рд╕рд░реНрд╡рд░ рдкрд░ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рд╢рд╛рдпрдж рдПрдХ рдирдпрд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП?) рдпрд╛ рдпрд╣рд╛рдВ рддрдХ рдХрд┐ рдПрдХ FTP рдЕрдиреБрд░реЛрдз рдЕрдкрд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХрдордЬреЛрд░ FTP рд╕рд░реНрд╡рд░ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп FTP рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рд┐рджреНрдзрд╛рдВрдд рд╕рд░рд▓ рд╣реИ:
- рдХрдордЬреЛрд░ рд╕рд░реНрд╡рд░ рдкрд░ рдЕрдиреБрд░реЛрдз (рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░) рдЕрдкрд▓реЛрдб рдХрд░реЗрдВред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп HTTP рдпрд╛ FTP рд╕рд░реНрд╡рд░ рд╕реЗ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ
0x0d 0x0a
рдХреЗ рд╕рд╛рде рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ - рдЖрдк рдЬрд┐рд╕ рд╡рд░реНрдг рдХреЛ рднреЗрдЬрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЙрд╕реЗ рднреЗрдЬрдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП
REST X
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рд╢рд╛рдпрдж рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░ рдЕрдиреБрд░реЛрдз рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдХреБрдЫ рдЗрдореЗрдЬ рд╣реЗрдбрд░ рдбрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА) - рдордирдорд╛рдиреЗ рд╕рд░реНрд╡рд░ рдФрд░ рд╕реЗрд╡рд╛ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
PORT
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ - рд╕рд░реНрд╡рд░ рдХреЛ рд╕рд╣реЗрдЬреЗ рдЧрдП рдЕрдиреБрд░реЛрдз рдХреЛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП
RETR
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдпрд╣ рдЕрддреНрдпрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХреЗрдЧрд╛ рдЬреИрд╕реЗ Socket not writable рдХреНрдпреЛрдВрдХрд┐ рдХрдиреЗрдХреНрд╢рди рдбреЗрдЯрд╛ рдХреЛ RETR
рдХреЗ рд╕рд╛рде рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕рдордп рддрдХ рдирд╣реАрдВ рд░рд╣рддрд╛ред рдЗрд╕реЗ рдЯрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрдЭрд╛рд╡ рд╣реИрдВ:
- рдпрджрд┐ рдЖрдк рдПрдХ HTTP рдЕрдиреБрд░реЛрдз рднреЗрдЬ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рд╡рд╣реА рдЕрдиреБрд░реЛрдз рдбрд╛рд▓реЗрдВ рдЬрдм рддрдХ рдХрд┐ ~0.5MB рдХрдо рд╕реЗ рдХрдо рди рд╣реЛред рдЗрд╕ рддрд░рд╣:
{% file src="../../.gitbook/assets/posts.txt" %} posts.txt {% endfile %}
- рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдХрд┐ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд "рдЬрдВрдХ" рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЕрдиреБрд░реЛрдз рдХреЛ рднрд░реЗрдВ (FTP рд╕реЗ рдмрд╛рдд рдХрд░рддреЗ рд╕рдордп рд╢рд╛рдпрдж рдХреЗрд╡рд▓ рдЬрдВрдХ рдХрдорд╛рдВрдб рдпрд╛ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
RETR
рдирд┐рд░реНрджреЗрд╢ рдХреЛ рджреЛрд╣рд░рд╛рдирд╛) - рдмрд╕ рдЕрдиреБрд░реЛрдз рдХреЛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╢реВрдиреНрдп рд╡рд░реНрдгреЛрдВ рдпрд╛ рдЕрдиреНрдп рдХреЗ рд╕рд╛рде рднрд░реЗрдВ (рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдпрд╛ рдирд╣реАрдВ)
рд╡реИрд╕реЗ рднреА, рдпрд╣рд╛рдБ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдкреБрд░рд╛рдирд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдЗрд╕рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ FTP рд╕рд░реНрд╡рд░ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп FTP рд╕рд░реНрд╡рд░ рд╕реЗ рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
Filezilla Server Vulnerability
FileZilla рдЖрдорддреМрд░ рдкрд░ рд╕реНрдерд╛рдиреАрдп рдкрд░ FileZilla-Server (рдкреЛрд░реНрдЯ 14147) рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ рд╕реЗрд╡рд╛ рдмрд╛рдЗрдВрдб рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдорд╢реАрди рд╕реЗ рдЗрд╕ рдкреЛрд░реНрдЯ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯрдирд▓ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЦрд╛рд▓реА рдкрд╛рд╕рд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ FTP рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
Config files
ftpusers
ftp.conf
proftpd.conf
vsftpd.conf
Post-Exploitation
vsFTPd рдХреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди /etc/vsftpd.conf
рдореЗрдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИред рдпрд╣рд╛рдБ, рдЖрдк рдХреБрдЫ рдЦрддрд░рдирд╛рдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_root=/home/username/ftp
- рдЧреБрдордирд╛рдо рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛редchown_uploads=YES
- рдЧреБрдордирд╛рдо рд░реВрдк рд╕реЗ рдЕрдкрд▓реЛрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдмрджрд▓реЗрдВchown_username=username
- рдЧреБрдордирд╛рдо рд░реВрдк рд╕реЗ рдЕрдкрд▓реЛрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рджрд┐рдпрд╛ рдЧрдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛local_enable=YES
- рд╕реНрдерд╛рдиреАрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд▓реЙрдЧрд┐рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВno_anon_password=YES
- рдЧреБрдордирд╛рдо рд╕реЗ рдкрд╛рд╕рд╡рд░реНрдб рдирд╣реАрдВ рдкреВрдЫреЗрдВwrite_enable=YES
- рдХрдорд╛рдВрдб рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ: STOR, DELE, RNFR, RNTO, MKD, RMD, APPE, рдФрд░ SITE
Shodan
ftp
port:21
HackTricks Automatic Commands
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'
{% hint style="success" %}
рд╕реАрдЦреЗрдВ рдФрд░ AWS рд╣реИрдХрд┐рдВрдЧ рдХрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ:HackTricks Training AWS Red Team Expert (ARTE)
рд╕реАрдЦреЗрдВ рдФрд░ GCP рд╣реИрдХрд┐рдВрдЧ рдХрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ
- рд╕рджрд╕реНрдпрддрд╛ рдпреЛрдЬрдирд╛рдПрдБ рджреЗрдЦреЗрдВ!
- рд╣рдорд╛рд░реЗ ЁЯТм Discord рд╕рдореВрд╣ рдпрд╛ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рд╕рдореВрд╣ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВ рдпрд╛ рд╣рдореЗрдВ Twitter ЁЯРж @hacktricks_live** рдкрд░ рдлреЙрд▓реЛ рдХрд░реЗрдВред**
- рд╣реИрдХрд┐рдВрдЧ рдЯреНрд░рд┐рдХреНрд╕ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ рдФрд░ HackTricks рдФрд░ HackTricks Cloud рдЧрд┐рдЯрд╣рдм рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдореЗрдВ PRs рд╕рдмрдорд┐рдЯ рдХрд░реЗрдВред