Estaba hojeando mis reddits habituales y vi un post acerca de las solicitudes de tutoría. Yo estaba buscando ideas sobre algo que hacer para matar a un par de horas y pasó al otro lado este:
http://www.reddit.com/r/blackhat/comments/1f255o/want_a_custom_written_tutorial/ca6jbvy
«Id encantaría ver algunas cosas en el reconocimiento y en la superación de un tarro de miel (Kippo?)»
Yo nunca miré código kippo antes y estaba intrigado si pudiera en realidad romper el honeypot y / o qué otra cosa podía hacer con una. Bueno, yo no he sido capaz de salir de ella por el momento, pero encontré que podría abusar de ellos escáneres de conexión como internos (pérdida de dirección interna) y externos completos. /> Lea abajo para más información.
Etapa 1.) Toma de huellas dactilares (Kippo) />
Toma de huellas dactilares honeypots no es difícil cuando realmente sabes qué buscar . Kippo no es la excepción. No permite una variedad de comandos que un huésped normal sería, utiliza las respuestas estáticas para otros comandos (http://osvdb.org/show/osvdb/78099 * suspiro * que realmente envió esto?) Fácilmente encontrado en txtcmds directorio y la fuente de todo, se rompe la estructura de comando argumentos como «registro a.com wget-o» intentaría recuperar http://log, y permite ssh a cualquier host con cualquier contraseña como «ssh a». Realmente, no hay ningún desafío en la detección Kippo ni ninguna otra trampa, ya que está realmente destinado a niños que no saben linux o bots automatizados que intentan infectar los equipos.
El enfoque más cauteloso que encontré para la detección Kippo es intentar ejecutar un comando al iniciar sesión (ssh root @ id bla). Al intentar esta Kippo provoca una excepción NotImplementedError y no permitirá que usted conecte:
núcleo / honeypot.py: 463 execCommand
def (auto, protocolo, cmd):
elevar NotImplementedError
Esto mata por completo el intento de conexión y no devuelve el comando de la operación normal sería <. br / >
Etapa 2.) universal Fingerprinting
El problema con honeypots es que son capas emulados. Incluso si una máquina intentó mirar lo más realista posible, todavía hay cierta raíz cosas puede hacer que no es probable ser emulado. El estilo que he estado usando durante un tiempo es adduser. Kippo le gusta jugar con la gente, por lo que se realiza un bucle sin fin a través de la pantalla adduser. Manchas Fácil.
Sin embargo, otros honeypots simplemente no permitirá añadir usuarios o que sólo emularas que les añaden con / etc / passwd, / etc / shadow, emulado su / sudo, y etc Al asegurarse de que el usuario tiene los derechos adecuados y pasando por una nueva sesión con el nuevo usuario debe ser capaz de detectar cualquier honeypot hasta ahora. Un reinicio de sesiones por lo general sólo se actualiza la emulación como si nada hubiera pasado en la sesión anterior. Si no lo hizo, se podría simplemente agotar su honeypot por rm-rf / *.
/ * Tenga en cuenta que esto se puede evitar. Kippo tiene una userdb para los usuarios se podría llenar de manera dinámica, acabo todavía no he visto que suceda. * /
Etapa 3.) Toy Vamos Con Kippo (escaneo de puertos externos)
Kippo permite un ‘malicioso ‘usuario descargue archivos externos para el análisis de malware. Esto, por supuesto, nos permite seguir adelante y hacer las conexiones de salida con el honeypot via wget. No tenemos mucho para ir fuera de medida que se implementan ningún comando con wget, pero podemos hacer los análisis de puertos. La emulación muestra que wget agrega http:// delante de todas las solicitudes, sin embargo, estos son sólo transcurrieron a connectTCP de la biblioteca twisted:
comandos / wget.py: 103
yo. conexión = reactor.connectTCP (host />
Etapa 4.) Toy Vamos Con Kippo (escaneo de puertos internos)
me seccionaron esto adelante porque hay un truco extra en aquí para encontrar la dirección interna. Por supuesto, uno puede escanear 0,1 y 0,254 en el típico para todos los rangos de RFC1918 y ver si tienen una respuesta para los puertos de control remoto. Suponiendo que son discapacitados, a pesar de que eso no es probable que sólo se adhieren a mí por el gusto de hacerlo, tenemos otro juguete de usar. Podemos escanear rangos internos bajo el mismo puerto honeypot y utilizar el último comando
Ejemplo:.
Asumamos que el honeypot se ejecuta con 192.168.1.124 en el puerto predeterminado 2222. Al tratar de «wget 192.168.1.124:2222», obtener una «conexión se cerró limpiamente.» respuesta de vuelta indica que podría haber encontrado nuestra propia dirección. Podemos comprobar mediante la ejecución de la última orden y ver si la dirección interna se encuentra en el archivo de registro. Si se va a tratar simplemente localhost: 2222, acabábamos de ver 127.0.0.1 en el archivo de registros
/ * nota – Creo que la gente corriendo Kippo en su casa bajo enrutadores SOHO que tienen problemas. como XSS persistente o páginas de configuración abierta que escupir de nuevo las contraseñas podrían ser interesantes a la salida. * /
Etapa 5.) Futuros ataques
Este marco utiliza tranquila un poco de las bibliotecas incluidas retorcido. Si no se encuentran problemas en estas bibliotecas, se podría potencialmente comprometer o chocar los honeypots. Hay sin duda más para jugar con en Kippo, sólo se acabó el tiempo y la necesidad de continuar con otra obra que vamos a ver aquí pronto. Disfrute!
Misc.) Meta Caracteres
Kippo no pela o reemplazar todos los caracteres meta al escribir en el archivo. Dependiendo de qué tipo de programa se utiliza para leer estos archivos en (yo estaba usando la última), la emisión de x08 (retroceso) varias veces, se eliminar entradas. Trate de «ssh blah.com-p 2222-l $ (echo-e» x08 x08 x08 x08blah) «y tail-f log / kippo.log ver. No es probable que algo que usted sabe de mano de , pero si las interfaces Kippo consiguen populares y bien tratan a estos meta-caracteres o alguien que les dice cómo leen los archivos de registro para el análisis en una lista de foro / correo, podría ser de utilidad.