sábado, 3 de diciembre de 2016

Los honeypots no sirven para nada, larga vida a los honeypots...

Estimados amigos de Inseguros !!!

En este episodio de hoy vamos a hablar de Honeypots !!! Siii ,no es el primero que publico, creo que llevo ya 15. Puedes leerlos desde esta búsqueda. Todos los artículos de Honeypots en Inseguros.

Cuando uno quiere aprender sobre una materia, yo siempre aconsejo que lea. No que lea esta u otra página. Esto puede servir para ahorrarte un tiempo, para entender un proceso, o para seguir un procedimiento concreto, pero los libros son los libros. Si quieres introducirte DE VERDAD en el mundo de los honeypots, tendrás que leer los clásicos. Para mi, estos son:
Honeypots: Tracking Hackers
Honeypots for Windows.
Know Your Enemy
Virtual Honeypots

Como es normal, todo el material vale. Recuerdo la primera Navaja Negra con Pedro Candel y su magistral introducción a los Honeypots.

Otra persona que le ha dado mucha cera a esto es mi lider Fran. Un tipo humilde que tiene un gran recorrido en esta materia. Quizás sea de los pocos que conozco que realmente le saca provecho a todo esto. GRANDE  FRAN !!!

Siempre que leo post sobre honeypots, aparece el típico manual de Kippo, un honeypot para SSH y una breve aproximación del autor.

La finalidad de los honeypots siempre se menciona, pero luego en las implementaciones o usos que se le dan detecto que se usan como meros recopiladores de direcciones ip de "atacantes", un IoC con muy poco valor. Siempre lo digo en mis charlas sobre Threat Intelligence, una IP no es un dato muy relevante, y mucho menos si es un "ataque" de hace 1 mes... También podríamos discutir un poco de si un portscan es un ataque. Yo prefiero cortarlo y banear un rato por si acaso, al igual que si detecto un user-agent peligroso, pero realmente la información que se obtiene con este tipo de implementaciones es poca.

Que hay bots recorriendo el espacio ipv4 en busca de vulnerabilidades, es muy conocido, basta con tener los sistemas actualizados y listo. Me dirás que te pueden servir para detectar nuevos ataques y zero days, un clásico en la berborrea de las funcionalidades de los honeypots, pero si tienes un honeypots con un ids (basado en firmas CONOCIDAS) y miles de ataques, algunos los detectará el IDS, otros no, ahí van los zero days, y yo me pregunto, vas a revisar todos los logs y capturas de red para detectar ese ataque? Como discriminas los ataques conocidos al Tinymce de Wordpress con nuevos ataque? DIFICIL.

Otra de las "bondades" que leo para usar los honeypots es la distracción. Yo me pregunto, si tienes un servidor por el mundo con un puerto 22 abierto o un web server, que NO tienen vinculación con tu organización o empresa, no estás distrayendo a nadie. Estás recopilando ataques NO DIRIGIDOS con poco o ningún valor. Algo de valor tienen, pero cualquier blacklist que manejes medio decente tendrá estas direcciones, y lo dicho, son ataques muy conocidos y detectados por las soluciones de seguridad.


Para detectar ataques dirigidos debes usar herramientas de seguridad "de verdad" como un SIEM que detecte que tienes un ataque de fuerza bruta, desde la red tor, a varios sistemas ssh de una organización con varias ip públicas, y que está usando un diccionario fragmentado en el que la ip1 se prueba con claves de la A  la F, la ip2 se prueba con claves G a M y así sucesivamente, por decir algo....

Después de esta aproximación, llanto, queja o como quieras llamarlo, vamos a hacer algo interesante para mi con un honeypots. En un entorno de pruebas, voy a instalar un servidor web con Modsecurity y voy a redirigir el tráfico malicioso hacia un honeypot. De esta manera SI que estaré distrayendo la atención del atacante ya que el tiempo que invierte en atacar al honeypot lo puedo usar para investigar COMPLETAMENTE sus movimientos.

Lo importante de esta aproximación es que el honeypot debe estar completamente capado a nivel de red del resto del entorno de producción. Yo voy a usar un mismo sistema por comodidad, pero debería ser equipos distintos.

Lo único que voy a hacer es meter una regla básica que detecte un user-agent concreto, en este caso Nikto, y que me haga un redirect a Google:

SecRule REQUEST_HEADERS:User-Agent "Nikto" "phase:1,id:1,log,redirect:http://www.google.es"

--9935a602-A--
[03/Dec/2016:19:51:41 +0100] WEMUPX8AAQEAABu53GIAAABE 192.168.1.242 54461 192.168.1.206 80
--9935a602-B--
GET /administrator/ HTTP/1.1
Host: 192.168.1.206
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 nikto
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: es-ES,es;q=0.8
If-None-Match: "61-542c580c7d636-gzip"
If-Modified-Since: Sat, 03 Dec 2016 18:48:40 GMT


--9935a602-H--
Message: Access denied with redirection to http://www.google.es using status 302 (phase 1). Pattern match "nikto" at REQUEST_HEADERS:User-Agent. [file "/etc/modsecurity/modsecurity.conf"] [line "226"] [id "130"]


Entonces, tenemos un webserver en producción, con mod_security y este tipo de reglas. Tenemos otra máquina honeypot con tcpdump o similar corriendo. Si quieres meter ahí un IDS me parece bien, pero lo interesante es el contenido completo del tráfico.

Una de las cosas que tenemos que hacer es jugar con la opción EXEC de las reglas para ejecutar comandos. Sería una buena idea redirigir TODO el tráfico de la ip de origen hacia el honeypot, no solo mediante el redirect a nivel http, comprendes? Me explico:

Si el mod_security detecta un "ataque" en base a una regla, por ejemplo, que has buscado el directorio /administrator/ de un Joomla, podemos hacer el redirect comentado. Imagina que el atacante sigue buscando información pero usa un "zero day" o algo que el Waf no detecta, como no se ejecuta ninguna regla, se procesaría contra el servidor en producción. Si previamente hemos hecho un redirect a nivel TCP/IP en el firewall, TODO el tráfico del atacante pasará hacia el honeypot. Una manera de redirigir el tráfico una vez hemos obtenido la dirección ip del atacante es mediante este sencillo procedimiento. para el caso de iptables. Esta acción debería hacerse en el firewall que hay delante del webserver, por lo que si es un vps o servidor publicado no hay problema. Si es una DMZ de una empresa, deberíamos hacerlo a nivel del firewall perimetral, no del instalado en el webserver...

**********PEGAS: Cuando usamos la opción EXEC de mod_security podemos usar cualquier lenguaje instalado en el servidor, pero si queremos recoger una variable del log, como en el caso mencionado, la dirección ip de origen del ataque, debemos usar el lenguaje LUA. Esto complica un poco el asunto.
Yo en mis despliegues suelo tener un script.sh "baneador" que pasandole un parámetro IP, se conecta por ssh al firewall y mete la ip en una blacklist. Esto lo puedes hacer en cualquier tipo de firewall. Sin embargo, programar eso en LUA me cuesta. Qué hago? Escribo en lua un log en un fichero, y con eso, ejecuto el script con la ip. Poco elegante pero funcional. Sería algo así...

function main()
 local remote_addr = m.getvar("REMOTE_ADDR");
        if remote_addr == nil then
                return nil
        end
     local log_file = "/var/log/ñampazampa/modsec_full.log"
        file = io.open(log_file,"a")
        file:write("IP: "..remote_addr.."\n"..")
        file:close()
os.execute("/var/scripts/router_ban.sh "..remote_addr.."'")
end

*******

Podemos "jugar" con la opción de redirect con distintas aproximaciones. Por ejemplo, vamos a hacer una redirect para un recurso concreto si no es de la ip designada:

SecFilterSelective REMOTE_ADDR “!192.168.1.2” chain
SecFilterSelective REQUEST_URI “/wp-login.php” log,deny,redirect:http://www.google.es

Un detalle importante, si controlas el acceso desde httaccess con user-agents, direcciones ip, extesiones o directorios, no se procesa la regla en modsecurity y no se ejecuta el redirect.

Si queremos hacer el redirect con algún tipo extensión podemos hacer algo así:

SecRule REQUEST_LINE "@rx .php" "log,deny,redirect:http://www.google.es'"

No controlo mucho más ModSecurity ni esto es un tutorial al respecto, pero el concepto de introducir el Redirect tanto a nivel conexiones como a nivel http me parece muy interesante para usar con honeypots para realmente distraer y aprender, cualificar un poco más los ataques, y sobre todos, aquellos dirigidos hacia nuestras infraestructuras.

Ahora nos vamos a poner un poco en plan golfo. En España es ILEGAL atacar a nadie, aunque este te esté atacando a ti, pero qué pasaría si ponemos de señuelo un fichero exe con un malware, meterpreter o similar? Que pasaría si hacemos lo mismo con una macro y un password.doc? Sería la risa detectarle el tipo de router y meter un CSRF pero todo esto es Ilegal. Aprovecho tambien para decir que si tu pones un honeypot para que te ataquen, y te consiguen vulnerar el sistema, la ley no te ampara. La ley nunca nos ampara !!! pero al haber incitado al "delito" lo mismo el que te metes en un lio eres tu.

Lo más sencillo y solo para esta prueba, es hacer una redirección al atacante hacia BEEF, un framework de explotación web que mediante un script "secuestra" el navegador para realizar distintas bondades.


Esto sería un claro ejemplo de atacando al atacante :-)

Gracias a todos por leerme !!!


PD: Este artículo se lo voy a dedicar a Sauron, el señor que todo lo ve. Para mi es una persona de las mas valiosas que hay en este mundillo. Siempre me ha tratado como si fuera importante, me hace sentir importante. Esta cualidad solo la tiene la gente IMPORTANTE de verdad. Gracias por todo. Espero que te guste !!!











miércoles, 23 de noviembre de 2016

Mama, he visto SQL SERVER en LINUX y no iba borracho, bueno si un poco...

Estimados amigos de Inseguros !!!

El mundo está cambiando, bueno mejor dicho, el mundo cambió!!! ¿Cuando? Con la caída del muro de Berlin? Con la aparición de Internet? El siglo XXI y los "coches voladores". Noooooo

Tampoco el Big Data me importa mucho, el IoT, la Industria 4.0 o la nueva versión 6.5 de Vmware.


El mundo ha cambiado HOY, en el mismísimo día que podemos instalar una SQL SERVER en en Linux !!! Que si !!! que lo vamos a hacer !!! no se trata de ninguna broma.

Seguimos el detallado manual: https://docs.microsoft.com/es-es/sql/linux/sql-server-linux-setup-ubuntu  El siguiente, siguiente, siguiente de Linux :-)


Aquí tenemos el setup.


Me meo de la risa. Una clave para SA en línea de comandos ubuntu con sus directivas de seguridad. I feel Good !!!

La máquina es un Ubuntu virtualizado con Virtualbox sobre un i3u cutre con 4 gb de Ram. Eso si, aún no hay datos.

Ahora deberíamos instalar alguna herramienta para consultas, no solo sirve el postureo, deberíamos poder trabajar. Seguimos el procedimiento para instalar las herramientas tan brillantemente descrito en el manual: https://docs.microsoft.com/es-es/sql/linux/sql-server-linux-setup-tools#ubuntu


Ahora podemos cargar los drivers en PHP para poder montar algo de pruebas. Puedes seguir el procedimiento indicado , aunque tendrás que añadir el típico paquete dev de php7 para que ande: https://www.microsoft.com/en-us/sql-server/developer-get-started/php-ubuntu

Siguiendo el manual, realizamos una prueba:



Por supuesto podemos usar una Management Studio en Windows para gestionar la BBDD en Linux.

Me parece un gran paso para Microsoft introducir este producto en entornos Linux, y no solo de pago como RedHat. Ahora podrás gestionar tus proyectos con el potente motor de base de datos Sql Server con todas sus funciones desde un entorno Linux, ahorrando al menos los 900€ de licencia subyacente de Windows Servers.

Como es normal, está en base de beta y poco irán añadiendo funciones que aún no se han portado, como por ejemplo ciertos aspectos de seguridad ( certificados de cliente auto-instalados) y rendimiento.

Espero que te haya gustado la noticia.

Gracias por leerme !!!







lunes, 7 de noviembre de 2016

Interface GUI para MASSCAN !!! Tu mini shodan particular.

Estimados amigos de Inseguros !!!

Una de las herramientas recientes que más se emplean para descubrir la exposición de servicios en Internet de manera masiva es Masscan. Podríamos decir que es un NMAP con mejor rendimiento.

Cuando quieres descubrir un servicio/puerto concreto/s en un rango de internet, o en todo el rango Ipv4... Masscan es tu herramienta.

Una de las cosas con la que lidiamos en scaneos largos con NMAP en la salida, la cantidad de datos.

En este pequeño artículo vamos a instalar y usar un interface gráfico para Masscan muy sencillo pero muy útil. La herramienta nos la proporciona Offensive Security desde su repositorio oficial en  https://github.com/offensive-security/masscan-web-ui

Podría ser como un mini Shodan, el famoso buscador o Mr. Looquer, pero si realmente quieres montarte algo serio, mejor sigue la cadena de post de Quantika y prográmalo desde cero con Python

El procedimiento de instalación es muy sencillo como se describre. Apache, php5, mysql, creas la base de datos y usuario, copias el repositorio, configuras el acceso a BBDD y listo.


El funcionamiento es sencillo, realizamos un scaneo masivo mediante la línea de comandos, le damos salida tipo XML y usamos el fichero import.php del proyecto para cargarlo en la base de datos y tenerlo en el GUI.


Tienes que tener en cuenta que esta información puede que no sea muy lega, y tener esto disponible en tu sistema debería tener unas medidas básicas como una clave de mysql fuerte y al menos, ponerle un htaccess al directorio por si un día te visitan los Men In Blacks.


Algunas funcionalidades en la búsqueda como países sería interesante.

Una pequeña ayuda para nuestros trabajos de análisis masivos.

Gracias por leerme !!!




domingo, 6 de noviembre de 2016

Ni eres médico ni eres Ciber-nada... VETE DE NUESTRA PROFESION !!!

Estimados amigos de Inseguros !!!

La ciberseguridad está de moda !!! Todo lo relacionado con Internet hoy en día mueve masas, es normal, llevamos muchos años viendo "La dos" y programas de Emilio y Aragón. Bendito Internet !!! xD    

Lo que me trae a escribir este post es la proliferación de "expertos" o entendidos en nuestro campo, el hacking y la seguridad informática.

Esta vez no voy a referirme a los hackers, hackers éticos, consultores de ciberseguridad, no, esta vez no voy por ahí, voy por los tontos, los listos, los listillos que se autodenominan expertos en ciberseguridad cuando no son NI INFORMATICOS.



Puedes ser informático, y ser un Script kiddie, alguien que no sabe que hacer, LO RESPETO, algún día con interés llegarás a algo.

Puedes ser informático y jugar a ser hacker, reproducir procedimientos que lees y alguno salen bien y otros no sabes que han hecho, LO RESPETO, el camino del samurai es muy complejo.

Puedes ser un intento de hacker y vender auditorias usando cuatro programas, no lo respeto, pero entiendo que eres un MAL profesional, pero por desgracia, tengo que lidiar que malos profesionales en mi trabajo.

Lo que no respeto es toda esta oleada de abogados, repito, ABOGADOS, consultores de marketing digital, coach, grow hacking, mentors, especialistas en ciberseguridad, especialistas en nuevas tecnologias, red 3.0, industria 4.0, evangelista y algunos ya muy temerarios que mencionan el  Big Data, con esto ya no puedo.

Imagina un Médico, un tipo que estudia 6 años, y luego hace el MIR y luego hace entre 2 y 4 años de residencia para empezar a trabajar.

Tu te crees médico si:

  • ¿Cuando te duele la cabeza te tomas un paracetamol?
  • ¿Cuanto te duele el cuerpo por deporte, te tomas un ibuprofeno?
  • ¿Si una noche te duele una muela te tomas un Nolotil?
  • Si te duele el cuerpo, la cabeza, tienes mocos y el pecho cargado, ¿sabes que vas a resfriarte/griparte?
  • Si tienes una herida no te quites la costra( por favor tampoco te la comas cerdo !!! xD)
  • Si tienes una herida es bueno que le de el aire.
  • Si tienes una herida es bueno limpiarla con agua oxigenada ( si es en el ojo no).
  • Para NO tener hijos ponte un condón cuando folles.
  • Si te fumas dos paquetes de tabaco siente presión en el pecho.
  • Si te bebes dos botellas de Ron te da resaca.
  • Si tienes acidez de estómago toma sales de frutas o bicarbonato.
YO QUE SE!!!

¿Te crees médico por eso? Seguramente no sepas ni jugar a los médicos, por mucho que creas que tus " 15 minutos en la cama" son un record olímpico :-)

Igual que no te consideras médico porque sepas estás 3 tonterías, no puedes creerte NADA relacionado con la ciberseguridad o el hacking porque sepas.
  • Vulnerabilidades.
  • Tor.
  • Exploit.
  • Cifrado.
  • Portscan.
  • Sqli
  • Conozcas blogs famosos.
  • Hayas usado Ubuntu alguna vez.
  • Vayas a conferencias de TU sector en la que seas el que más sabes de ciberseguridad.
  • Sepas de LOPD, ENS, COMPLIANCE o cualquiera de estas.

Todo eso no te hace ser hacker, ni experto en ciberseguridad, ni tan siquiera conocedor. Para ser experto o al menos estar en este sector tienes que dedicarle MUCHAS HORAS al teclado, a las pantallas negras, al estudio, a la lectura de LIBROS, a despertarte pensando en una solución.

Es una ofensa que gente así quieran meterse en NUESTRO trabajo. Ni siquiera voy a entrar en que se metan en nuestra cultura, pero en el trabajo no.

Aunque todos sabemos que los premios Bitácoras son algo de popularidad y volumen de visitas, tengo que felicitar este año el trabajo de los "Conejos" porque para mi, coincide su casi seguro premio con merecerlo. PERO SIGUE MIRANDO, joder, gente de Wordpress en la categoría de Seguridad Informática? Gente de LOPD que encima cierran el blog en segundo puesto? Iros a tomar viento con la seguridad.

Entiendo que tiene que haber divulgadores, es mas, yo me considero más bien un divulgador de lo poco que se y de la conciencia, que un experto, pero de ahí a que cualquier persona se apunte al carro, me parece vergonzoso.

Esto no va a parar e irá a peor. Igual que para tu vecino si eres informático tienes que saber de todo, para los medios no-profesionales tener "vocabulario de hacker" te puede convertir en uno. LO SE, no pretendo cambiarlo, solo pretendo que sepas lo que pienso.

A partir de ahora en mi CV voy a poner: Médico a nivel usuario.

Gracias por leerme !!!

PD: Tengo que decir que conozco Médicos, abogados, ingenieros, arquitectos, y todo tipo de profesionales que controlan en cibersec. mucho más que muchos "profesionales", este texto no va por ellos, ellos saben quienes son, y tienen mis respetos.

viernes, 4 de noviembre de 2016

Acho Mira-ahí. La botnet Murciana...

Estimados amigos de Inseguros!!!

Llevamos unos artículos hablando de la inseguridad de algunos dispositivos conectados a Internet como son surtidores de gasolina. El artículo de la subida de precios de gasolina ha tenido bastante éxito. Gracias.

El anterior artículo era un recopilatorio y algunos IoC´s sobre la famosa botnet Mirai y su repercusión mediática debido al volumen de sus ataques y a la característica de equipos infectados: IoT

Como todos sabéis, soy de Murcia Tengo miles de motivos por los que ahorrar tiempo en trabajo para disfrutar lo que me pasa por la vida. Por este motivo, he pensado crear una botnet, una red de equipos que sirvan para el propósito que se perseguía con Mirai, pero voy a gastar mucho menos tiempo, muchiiiiisimo menos tiempo del  que los creadores invirtieron en su idea original. Voy a gastar 10 minutos en programar, 20 en escribir esto y el resto me pego una juerga xD.


Aparte, quiero demostrar como el típico admin/admin de toda la vida puede tener efectos globales, más allá de un secuestro DNS o un sniffing.

Vamos a ponernos manos a la obra.

El concepto es sencillo, quiero ponerme un objetivo, un equipo, una dirección IP en Internet, y voy a dedicarle un ataque de DDOS de lo más variado mediante una red de equipos comprometidos.

Cuando me puse a pensar en el concepto, pensé, si tenemos los routers de los ISP típicos con las contraseñas por defecto, para que liarme con firmwares, reversing, vulnerabilidades y demás, voy a usar lo que tengo. Lo que se denomina SOHO (Small/Home offices)

Realizando una búsqueda en Shodan veo como hay un tipo de router que empleo una empresa en Murcia, y por todo el mundo !!! y me descargo un listado.


En España aparecen unos 10.000 equipos, de los que calculo que el 10% tendrán cambiada la clave por defecto. Yo me centro en los que pertenecen al ASN del operador de mi ciudad que estoy investigando.

Teniendo una lista de equipos, en los que el usuario/password por defecto casi seguro que está disponible, pienso en que puedo aprovechar.

En los aparatos aparecen dos opciones que me interesan, la sincronización horaria y un test PING. Mediante la primera puedo hacer peticiones constantemente ha un servidor NTP de destino y mediante el ping, con un tamaño alto de paquete, puedo realizar un ICMP flood. El ping de la muerte !!!!

Si uno los dos, desde MUCHOS equipos contra un sistema, quizás consiga denegar el servicio...

Las opciones mencionadas son:


Una de las cosas que más me llama la atención es que el logging o en nivel de registro de eventos de estos cacharros es bajo, muy bajo, no refleja LOGIN, por lo que no debería preocuparme por dejar rastro de mis peticiones.

Ahora es el turno de buscar un CSRF (Cross Site Request Forgery) aprovechar una sesión iniciada en un  navegador para ejecutar comando remotos en otro equipo. La cuestión aquí fue mucho más fácil.

Enganchas un proxy inverso como Burp entre tu máquina y la web. Monitorizas los request que haces, como los responses de la web. Haces graficamente lo que digo, configuras un ping y un "actualiza tiempo" y grabas la petición.

Qué pasará si me voy a Curl y ejecuto este mismo comando que he grabado con Burp? Pues que funciona perfectamente.



Como puedes ver, la ip DESTINO DEL ATAQUE empieza por 213. y el router que realiza la petición es el que empieza por 83 y acaba en 208. Esta sería la petición NTP.

No tiene sentido que reproduzca el comando que hace el ICMP para que cualquier persona haga el mal.

Realmente he tenido que observar la petición, y ver como pasar usuario y password con curl, usar una cookie para un javascript que redirige hacia la url y habilitar un Referer básico que el fabricante tiene como medida de seguridad :-)

Ahora simplemente me hago una lista. ¿Como? pues por ejemplo uso la información de Shodan para Murcia, o puedo usar el direccionamiento del ASN mediante la web http://ipinfo.io/ hago un nmap al puerto y hago un grep awk para dejar solo las direcciones ip que me interesan.

Con esa lista de direcciones, me hago un script en bash que ejecute los comandos conforme lee de la web.


Como se aprecia en la imagen, todos los equipos con el puerto abierto y el usuario/password por defecto, emiten una solicitud NTP desde el rango que medio se ve, un /24 que empieza por 84.

Ahora mismo tengo unos 4.000 equipos, lo que algo de ddos hace.

En cada ejecución de curl mete los dos comandos, acabo el comando con un & y se ejecuta el bucle.

Esto no tiene mucha magia, y quizás, bueno seguro, programado en python con varios hilos y mucha más elegancia, conseguiría resultados de denegación mucho más óptimos.

Podemos mejorar el script y hacer una lista mucho mas potente con otros fabricantes o modelos.

Podríamos usar la lógica y subirlo en un php en cualquier servidor hackeable y lanzarlo con un javascript o iframe en la web. De esta manera tendríamos un C&C web, en la nube :-)

Podríamos aprovechar esta lógica para realizar un cambio masivo de DNS primario, y utilizar los 10.000 equipos para consultar el DNS de una empresa... se pueden hacer muchas cosas, pero lo que pongo en relevancia es que casi todo, a tiro de piedra, sin necesidad de mucha complicación, solo un poco de mala fe y algo de Google

Espero que os haya gustado el artículo, me voy por Murcia !!!!!




Related Posts Plugin for WordPress, Blogger...