metasploit, básico

Pues comenzamos esta pequeña aventura de escribir lo que sucedió en el #eseidojo de hace unos días. Tras la parte inicial y tener a la gente ya cómoda con sus máquinas virtuales y trabajando perfectamente con metasploit, comenzamos demostrando algunos ejemplos muy básicos del funcionamiento de metasploit. Este framework, aparte de realizar test de penetración, también hace muchas más cosas y sirve para revelar información interesante que posteriormente se podrá usar.
Primeramente arrancamos el framework
shell> msfconsole
       =[ metasploit v4.2.0-dev [core:4.2 api:1.0]
+ -- --=[ 798 exploits - 435 auxiliary - 133 post
+ -- --=[ 246 payloads - 27 encoders - 8 nops
       =[ svn r14702 updated today (2012.02.06)
msf>
Desde prompt de metasploit podemos averiguar la IP de nuestro equipo, por ejemplo. Esto resultará útil para saber sobre qué IP poner a la escucha cierto servicios posteriormente.
msf> ifconfig
ifconfig
[*] exec: ifconfig

eth0  Link encap:Ethernet HWaddr 00:e0:4c:66:98:20
      inet addr:192.168.1.33 Bcast:192.168.1.255  Mask:255.255.255.0
      inet6 addr: fe80::2e0:4cff:fe66:9820/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:3887195 errors:0 dropped:0 overruns:0 frame:0
      TX packets:4589508 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:3859825582 (3.5 GiB)  TX bytes:3945018125 (3.6 GiB)
      Interrupt:20 Base address:0x2000
También permite ejecutar nmap para escanear equipos o rangos completos. En general desde el prompt se podría ejecutar prácticamente cualquier comando que acepte la línea de comandos.
msf> nmap -A -T4 192.168.1.100
[*] exec: nmap -A -T4 192.168.1.100

Starting Nmap 5.00 ( http://nmap.org ) at 2012-02-07 19:46 CET
Interesting ports on example.test.com (192.168.1.100):
Not shown: 991 closed ports
PORT     STATE SERVICE    VERSION
21/tcp   open  ftp        ProFTPD 1.3.3a
22/tcp   open  ssh        OpenSSH 5.5p1 Debian 6+squeeze1 (protocol 2.0)
|  ssh-hostkey: 1024 96:c3... (DSA)
|_ 2048 0e:e4... (RSA)
25/tcp   open  smtp       Postfix smtpd
|_ smtp-commands: EHLO example.test.com, PIPELINING, SIZE 31457280, VRFY, ETRN, STARTTLS, ENHANCEDSTATUSCODES, 8BITMIME, DSN
80/tcp   open  http       Apache httpd 2.2.16
|  html-title: 301 Moved Permanently
|_ Did not follow redirect to http://www.test.com/
111/tcp  open  rpcbind
|  rpcinfo:  
|  100000  2    111/udp  rpcbind  
|_ 100000  2    111/tcp  rpcbind  
113/tcp  open  ident
443/tcp  open  ssl/http   Apache httpd 2.2.16
|_ html-title: Inicio
3306/tcp open  mysql      MySQL 5.1.49-3-log
|  mysql-info: Protocol: 10
|  Version: 5.1.49-3-log
|  Thread ID: 103040
|  Some Capabilities: Long Passwords, Connect with DB, Compress, ODBC, Transactions, Secure Connection
|  Status: Autocommit
9102/tcp open  jetdirect?

Network Distance: 1 hop
Service Info: Host:  example.test.com; OSs: Unix, Linux

TRACEROUTE (using port 53/tcp)
HOP RTT  ADDRESS
1   0.32 192.168.1.1
2   1.08 example.test.com (192.168.1.100)

Nmap done: 1 IP address (1 host up) scanned in 29.60 seconds
Y ya como ejemplo final, existe un pequeño módulo que consulta la resolución DNS, muy similar al comando dig y que permite saber información de un dominio, que por ejemplo posteriormente fuésemos a atacar. Durante el dojo, las máquinas no tenía salida a internet y por lo tanto no fue posible que los asistentes realizasen esta prueba.
Aquí queda la salida completa con un dominio de la ESEI y cómo se obtuvo.
msf> use auxiliary/gather/dns_enum
msf auxiliary(dns_enum) > show options

Module options (auxiliary/gather/dns_enum):

Name        Setting      Required  Description
----        -------      --------  -----------
DOMAIN                   yes       The target domain name...
ENUM_AXFR   true         yes       Initiate a zone Transfer...
ENUM_BRT    false        yes       Brute force subdomains...
ENUM_IP6    false        yes       Brute force hosts with...
ENUM_RVL    false        yes       Reverse lookup a range...
ENUM_SRV    true         yes       Enumerate the most common...
ENUM_STD    true         yes       Enumerate standard record...
ENUM_TLD    false        yes       Perform a top-level domain...
IPRANGE                  no        The target address range...
NS                       no        Specify the nameserver to use...
STOP_WLDCRD false        yes       Stops Brute Force Enumeration...
WORDLIST    namelist.txt no        Wordlist file for domain...

msf auxiliary(dns_enum) > set domain esei.uvigo.es
domain => esei.uvigo.es
msf auxiliary(dns_enum) > run

[*] Retrieving General DNS Records
[*] Domain: esei.uvigo.es IP Address: 193.147.87.10 Record: A
[*] Name: ALT1.ASPMX.L.GOOGLE.COM. Preference: 5 Record: MX
[*] Name: ALT2.ASPMX.L.GOOGLE.COM. Preference: 5 Record: MX
[*] Name: ASPMX2.GOOGLEMAIL.COM. Preference: 10 Record: MX
[*] Name: ASPMX3.GOOGLEMAIL.COM. Preference: 10 Record: MX
[*] Name: ASPMX.L.GOOGLE.COM. Preference: 1 Record: MX
[*] Performing Zone Transfer against all nameservers in esei.uvigo.es
[-] Could not resolve domain esei.uvigo.es
[*] Enumerating SRV Records for esei.uvigo.es
[*] Auxiliary module execution completed
La información es poder!


No hay comentarios :

Publicar un comentario

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios