| fernand0 | Hola, | 
| fernand0 | nuestro próximo conferenciante es Oscar Peredo, de Chile. | 
| fernand0 | recibimos esta conferencia con especial cariño, porque Oscar ha sido un importante colaborador en la preparación de este congreso, y hoy | 
| fernand0 | tenemos el gusto de presentarlo como ponente. | 
| fernand0 | Trabaja en una empresa de seguridad informática en Chile, Exis,  | 
| fernand0 |  y también | 
| fernand0 | colaboró en el desarolo de wasap, que es un módulo de seguridad para Apache. | 
| fernand0 | Hemos habilitado el canal #qc para preguntas y comentarios. | 
| fernand0 | Y habrá traducción simultánea al inglés en #redes (English translation in #redes) | 
| fernand0 | Su conferencia de hoy se titula: | 
| fernand0 | Troyanos acción y reacción | 
| fernand0 | Gracias al conferenciante y a todos ustedes por acudir. | 
| fernand0 | Oscar ... | 
| krocz | gracias | 
| krocz | buenos dias/tardes/noches o lo que sea donde esten :P | 
| krocz | hoy expondre un tema muy comun en cuanto a seguridad se trata | 
| krocz | que soy backdoors | 
| krocz | hablare un poco de como han evolucionado en el tiempo | 
| krocz | de como se han transformado en troyanos | 
| krocz | gracias a las nuevas tecnicas de infeccion | 
| krocz | comentare, no entrare en mayores detalles, de las tecnicas que ocupan algunos troyanos para esconderse en un sistema Linux | 
| krocz | dando informacion de donde se podra encontrar mayores detalles de estas tecnicas | 
| krocz | luego hablare sobre una herramienta en particulas sobre deteccion de troyanos | 
| krocz | y su deficiencia | 
| krocz | hare un caso de estudio de uno de estos | 
| krocz | y que entenderan por que elegi aquel troyano que comentare mas adeltante | 
| krocz | simples | 
| krocz | pero que nos ayudaran a obstaculizar la insercion de estos en los sistemas | 
| krocz | ahora hare una peque~a explicacion de algunos tecnisismo que ocupare | 
| krocz | para no confundir o equivocarnos en sus significados | 
| krocz | cracker, lo asumire como la persona que ingresa al sistema, solamente eso | 
| krocz | hacker, la persona que escribe el codigo, sin importar sea codigo maligno (como exploit, backdoors, virus o codigo de kernel u otros) | 
| krocz | esta sera una conferencia que se expondra solo lo necesario para entender | 
| krocz | estare atento a las preguntas o comentarios que se haran en el canal #qc | 
| krocz | comenzemos | 
| krocz | como todo en este mundo evoluciona | 
| krocz | tanto las tecnicas que ocupan internamente los sistemas operativos para mejorar su rendimiento y prestancia | 
| krocz | pero tambien evolucionan los hackers que escriben sus codigos y mejoran las formas de ocultamiento en el sistema | 
| krocz | por ejemplo en epocas anteriores | 
| krocz | los troyanos eran completamente programados para un fin | 
| krocz | era un programa realizado que hacia algo y sin que el usuario que ejecutase el programa se diera cuenta del fin de este  | 
| krocz | algo asi como los virus de hoy en dia | 
| krocz | luego tenemos a los backdoors | 
| krocz | los backdoors son puertas traseras  | 
| krocz | que hacen que un usuario llegue a un estado de manera mas rapida | 
| krocz | en la antiguedad, estamos hablando que en computacion 5 años atras ya estamos en la prehistoria | 
| krocz | los programadores de sistemas instalaban backdoors en sus programas | 
| krocz | para ahorrar tiempo y llegar a un estado que deseaban | 
| krocz | pero para consecuencias de seguridad | 
| krocz | a veces a los programadores se les olvidaba quitar esos backdoors | 
| krocz | los cuales posteriormente eran descubiertos por terceras personas | 
| krocz | pasando el tiempo y modificando un poco el ambiente | 
| krocz | se comenzaron a ver backdoors simples | 
| krocz | eran muy faciles de detectar | 
| krocz | por ejemplo | 
| krocz | en las lineas del archivo /etc/services se agregan lineas como esta  "  backdoor        31337/tcp" y en el archivo /etc/inetd.conf una linea como la siguiente "backdoor        stream  tcp     nowait  root    /bin/bash -i" | 
| krocz | en hacia esto | 
| krocz | habria una shell en el puerto 31337 en la cual cualquiera que se conectara a este puerto tendria una shell con privilegios de root | 
| krocz | este tipo de backdoors antiguados eran muy faciles de detectar | 
| krocz | pero para administradores inexpertos les era muy dificil | 
| krocz | y otro ejemplo mas ocupado, incluso aun es de agregar una linea | 
| krocz | al archivo /etc/passwd con los privilegios de root, por ejemplo krocz:x:0:0:root:/root:/bin/bash | 
| krocz | simple, me logeaba con el usuario krocz y tenia privilegios de root | 
| krocz | esto ha cambiado en la actualidad | 
| krocz | con las tecnicas viricas actuales | 
| krocz | se han diseñado backdoors | 
| krocz | que combinados con las tecnicas viricas se han convertidos en troyanos | 
| krocz | ya que ejecutamos programas sin saber que mas hacen | 
| krocz | como presentare en el caso de estudio mas adelante | 
| krocz | como he dicho las tecnicas han evolucionado | 
| krocz | ahora es casi imposible diferenciar un virus de un troyano | 
| krocz | estamos hablando todo esto en el contexto Linux | 
| krocz | tecnicas de troyanizacion como la redireccion de librerias | 
| krocz | como se muestra en el articulo de phrack realizado por Silvio Cesare  | 
| krocz | http://www.phrack.org/phrack/56/p56-0x07 | 
| krocz | no entrare en detalles, debido a que nos saldriamos del tema principal | 
| krocz | pero si desean saber ese es un excelente articulo | 
| krocz | tecnicas viricas que infectan modulos de kernel | 
| krocz | como la presentada en http://www.phrack.org/phrack/61/p61-0x0a_Infecting_Loadable_Kernel_Modules.txt | 
| krocz | han visto como ha cambiado el tema en cuanto a troyanizacion se trata | 
| krocz | y la tecnica que veremos con un poco de mayor profundidad mas adelante es la de infeccion a traves de /dev/kmen | 
| krocz | http://www.phrack.org/phrack/58/p58-0x07 | 
| krocz | estas son algunas de las tecnicas que ocupan los troyanos  | 
| krocz | para instalarse en el sistema | 
| krocz | mas que troyanos rootkits | 
| krocz | rootkits son programas | 
| krocz | varios programas que se instalan en un sistema  | 
| krocz | para mantener oculto al atacante  | 
| krocz | que ha ingresado de manera ilegal | 
| krocz | a una maquina | 
| krocz | como dicen por #qc | 
| krocz | algunos articulos estan aqui | 
| krocz | redyuck> http://www.est.cl/phrack/p61-0x0a.txt ( en castellano ) | 
| krocz | <redyuck> http://www.est.cl/phrack/phrack58-0x07.txt | 
| krocz | y como dije alguna tecnica que se ocupara mas adelante y que parece, ha mi gusto la mas complicada es la de infeccion de la imagen del kernel | 
| krocz | http://www.phrack.org/phrack/60/p60-0x08.txt  | 
| krocz | un atacante cuando ingresa a un sistema | 
| krocz | lo que siempre intenta es esconderse del administrador | 
| krocz | de la maquina | 
| krocz | ya sea de manera simple  | 
| krocz | como haciendo directorios en /dev/ | 
| krocz | y ahi instalando sus herramientas | 
| krocz | instalando programas con suid root | 
| krocz | que al ejecutarlos lo hacen con privilegios de root | 
| krocz | estos programas son simples de detectar | 
| krocz | con un simple comando find / -perm +4000 | 
| krocz | encontraran varios programas con suid root | 
| krocz | es conocimiento del administrador saber cuales deberian tener los permisos correspondientes | 
| krocz | un rootkit | 
| krocz | la idea, como dije anteriormente es esconderse del administrador | 
| krocz | los comandos mas usados | 
| krocz | para poder esconder conexiones | 
| krocz | procesos | 
| krocz | y cosas por el estilo | 
| krocz | cambiaban el /bin/login | 
| krocz | por algun otro para poder detectar las password de los usuarios que ingresaban al sistema | 
| krocz | o cambiaban el comando "ps" para poder esconder los procesos que eran ejecutados por el cracker que estaba dentro del sistema | 
| krocz | u comandos como netstat  | 
| krocz | para esconder conexiones | 
| krocz | estos rootkits eran faciles de detectar | 
| krocz | con herramientas como tripwire | 
| krocz | o ejecutando uno mismo md5sum | 
| krocz | a los archivos y comparandolos con otros | 
| krocz | nos daban hash que no correspondian al archivo original | 
| krocz | como dije faciles de detectar | 
| krocz | una herramienta muy comentada | 
| krocz | como se dijo | 
| krocz | es chkrootkit | 
| krocz | para poder detectar estos rootkits | 
| krocz | u posibles anomalias | 
| krocz | en el sistema | 
| krocz | http://www.chkrootkit.org  | 
| krocz | si desean bajar la herramienta para pobrar en sus sistemas | 
| krocz | esta herramienta para mi gusto es poco confiable | 
| krocz | basta ver | 
| krocz | alguno de sus opciones para detectar algunos de los rootkits mas ocupados | 
| krocz | if ${egrep} -i adore < /proc/ksyms >/dev/null 2>&1; then | 
| krocz |  echo "Warning: Adore LKM installed" | 
| krocz | fi | 
| krocz | con esas lineas muestra si existe el LKM-rootkits adore | 
| krocz | no me parece una demostracion que si no encuentra eso, es que no esta el rootkits mencionado | 
| krocz | u este ejemplo | 
| krocz | ${strings} ${ROOTDIR}sbin/init | ${egrep} HOME" | 
| krocz | con esa linea | 
| krocz | intenta buscar la cadena HOME en /sbin/init | 
| krocz | la cadena HOME | 
| krocz | es una que ocupa el rootkits SucKit | 
| krocz | sobre este troyano hare mi caso de estudio | 
| krocz | osea si no encuentra esa cadena da por enterado que no existe SucKit instalado | 
| krocz | (no sabe que ni siquiera haciendo un hash md5, al /sbin/init podra detectar algun cambio)  | 
| krocz | chkrootkit hace poco me demostro que yo tenia un troyano instalado | 
| krocz | solo por que tenia 4 procesos ocultos | 
| krocz | Checking `lkm'... You have     4 process hidden for ps command | 
| krocz | despues me di cuenta que era problema del procfs que tengo instalado | 
| krocz | en mi debian | 
| krocz | el que tiene problemas :D | 
| krocz | ahora pasemos al caso de estudio y a demostrar de manera  | 
| krocz | practica el funcionar del rootkits suckit | 
| krocz | cuando estaba planeando esta charla y no encontraba que exponer  | 
| krocz | me encontre con la noticia del ingreso a los servidores de debian | 
| krocz | formas y maneras que lo hicieron creo que las conocen :D | 
| krocz | pero lo que me llamo la atencion fue que los invasores | 
| krocz | troyanaron la maquina | 
| krocz | y ocuparon el troyano SucKit | 
| krocz | para enconder su presencia | 
| krocz | por que ocuparon este troyano alguna razon tendran | 
| krocz | en http://www.exis.cl/present/umeet/pre.html | 
| krocz | he hecho una seria de pasos | 
| krocz | que corresponden a una prueba que realice | 
| krocz | para demostrar de manera creible lo que estoy exponiendo | 
| krocz | veremos que el primer paso fue ejecutar un hash md5 al archivo /sbin/init | 
| krocz | que es el que modifica suckit cuando se instala en el sistema | 
| krocz | luego me infecto con el troyano-rootkit | 
| krocz | ejecuto el backdoor "./sk" | 
| krocz | y nuevamente realizo un hash md5 al /sbin/init | 
| krocz | y para sorpresa mia su hash no ha cambiado | 
| krocz | es su forma de esconderse lo que hace que sea casi indectable a tripwire | 
| krocz | como funciona un poco el troyano | 
| krocz | con una de las tecnicas mencionadas antiormente a travez de /dev/kmen | 
| krocz | este archivo contienen una imagen del nucleo cargado en memoria | 
| krocz | el archivo tiene permisos de escritura | 
| krocz | SucKit busca la direccion de la tabla de Syscall | 
| krocz | es que una parte algo complicada | 
| krocz | y modifica la tabla de syscall | 
| krocz | modificando las que necesita | 
| krocz | es asi que es capas de saltar  | 
| krocz | los tipos de hash | 
| krocz | la tecnica de evadiendo md5sum | 
| krocz | a traves de LKM es mostrada en la ezine 7 a 69 en el articulo escrito por IReick | 
| krocz | articulo numero 9 | 
| krocz | de esa ezine | 
| krocz | el Suckit modifica el /sbin/init | 
| krocz | para poder cargarse nuevamente en caso que se reinicie la maquina | 
| krocz | este rootkit trae un cliente  | 
| krocz | el cual sirve para conectarse a la maquina infectada con suckit | 
| krocz | lo que hace que no debe logs | 
| krocz | es que manda un packete binario a un puerto abierto | 
| krocz | y como esta a nivel del kernel el Suckit | 
| krocz | lo detecta y revisa si la contrase~a del hash enviada correnponder a la que tiene | 
| krocz | instalada | 
| krocz | si corresponder manda una conexion a un puerto que tiene en estado LISTEN el atacante | 
| krocz | esta forma de conexion se conoce como telnet-reverso | 
| krocz | es de esa forma que  | 
| krocz | se saltan firewalls | 
| krocz | ya que es como si la conexion la iniciase la maquina | 
| krocz | ya que como dije el packete siempre va a un puerto abierto | 
| krocz | puede ser cualquier puerto abierto  | 
| krocz | tanto como binario o ascii | 
| krocz | o si esta detras de un nat | 
| krocz | como no alcanza a llegar a las capas posteriores | 
| krocz | es procesado en la capa del kernel | 
| krocz | no deja logs en el sistema | 
| krocz | y si "encriptacion"  | 
| krocz | del trafico hacec que no sea muy facil de detectar con IDS | 
| krocz | <redyuck> algun ids recomendado (snort) ? <- aun no he hecho pruebas pero de manera facil no podras detectar las conexiones de Suckit | 
| krocz | una idea que me recomendo un compañero de trabajo era que suckit ocupa un hash fijo | 
| krocz | para enviar la autentificacion | 
| krocz | hash fijo quiero decir tama~o fijo del packete | 
| krocz | quizas puedas detectar ese tama~o y ahi recien comenzar a tener sospechas que estas infectado | 
| krocz | como he dicho solo hay trafico encriptado, no veras ningun /bin/sh | 
| krocz | en tu red | 
| krocz | una vez que me conecto | 
| krocz | a la maquina infectada | 
| krocz | y hacemos un listado de procesos  | 
| krocz | veremos algo como esto | 
| krocz | http://www.exis.cl/present/umeet/pre2.html | 
| krocz | como veran | 
| krocz | los backdoors estan corriendo | 
| krocz | especificamente en | 
| krocz | root      2349  0.0  0.0   208  148 ?        S    20:39   0:00 ./sk | 
| krocz | root      2647  0.0  0.0   208  148 ?        S    20:48   0:00 ./sk | 
| krocz | root      2688  0.0  0.0   208  148 ?        S    20:51   0:00 ./sk | 
| krocz | root      2782  0.0  0.0   208  148 ?        S    21:01   0:00 ./sk | 
| krocz | root      2783  0.0  0.5  2052 1104 ttyp0    S    21:01   0:00 sh -i | 
| krocz | y a su vez una persona conectada normalmente | 
| krocz | vera esto | 
| krocz | http://www.exis.cl/present/umeet/pre3.html | 
| krocz | como se fijaran | 
| krocz | en la segunda presentacion | 
| krocz | no se ven los troyanos corriendo | 
| krocz | como veran  | 
| krocz | ni obteniendo los hash md5 | 
| krocz | del archivo init | 
| krocz | podran ver si esta suckit | 
| krocz | ni siquiera tripwire lo detecta | 
| krocz | es por esta razones que confiar 100% en chkrootkit | 
| krocz | no vale la pena | 
| krocz | por eso que no confio en que chkrootkit detectara los rootkits instalados | 
| krocz | ahora viene como detectar | 
| krocz | una de las fallas de Suckit | 
| krocz | por lo menos en la version que probe | 
| krocz | es que no esconde las conexiones  | 
| krocz | (no confies, esto cambiara) | 
| krocz | haciendo un netstat -anep | 
| krocz | obtendran algo parecido a esto | 
| krocz | http://www.exis.cl/present/umeet/pre4.html | 
| krocz | hay una conexion que nos parecesa extraña | 
| krocz | que es la tcp        0      0 127.0.0.1:1030          127.0.0.1:1028          ESTABLISHED 0          5946       -    | 
| krocz | que no tiene nombre del archivo ni el PID  | 
| krocz | pero esta establecida | 
| krocz | ahora veamos algo del codigo de instalacion | 
| krocz | dee suckit | 
| krocz | if [ ! -f /sbin/init${H} ];  then cp -f /sbin/init /sbin/init${H} | 
| krocz | ; fi; rm -f /sbin/init; cp sk /sbin/init | 
| krocz | como veran | 
| krocz | copia sk | 
| krocz | a  | 
| krocz | /sbin/init | 
| krocz | y el /sbin/init original | 
| krocz | lo copia a /sbin/initsk12 | 
| krocz | que es el valor de la variable H | 
| krocz | si hacemos un ls /bin/initsk12 | 
| krocz | no encontrara nada | 
| krocz | para sorpresa, este ni~o se sabe esconder | 
| krocz | pero si hacemos un file /bin/initsk12 | 
| krocz | lo encontrara | 
| krocz | si lo encuentra es que estamos infectados  | 
| krocz | este rootkit esta en un estado de espera | 
| krocz | si no hay nadie conectado no hay mucho que hacer | 
| krocz | para encontrar cual sera su "HOME" dond esta instalado | 
| krocz | he ahi la excusa que chkrootkit busca esa cadena en /sbin/init | 
| krocz | una forma de detectar  | 
| krocz | el home | 
| krocz | es que cuando alguien se conecte | 
| krocz | es ir al /proc | 
| krocz | y ahi veran | 
| krocz | unos directorios con numeros | 
| krocz | voila, nos PID de cada proceso | 
| krocz | que hay corriendo en la maquina | 
| krocz | si hay alguien conectado los PID de los procesos que esta ocupando nuestro atacante | 
| krocz | no se veran | 
| krocz | ahi viene la tarea ardua de buscar que PID son | 
| krocz | una forma es intentar cada numero  | 
| krocz | por ej cd 1 - cd 2 .... cd 179 | 
| krocz | y asi sucesivamente | 
| krocz | cuando exista el pid | 
| krocz | entraran a la maquina | 
| krocz | osea al directorio | 
| krocz | y no existe les saldra algun error | 
| krocz | ahi daran con los PID escondidos | 
| krocz | ya que como existen | 
| krocz | entraran a sus correnpondientes directorios | 
| krocz | por ejemplo | 
| krocz | :/proc# ls 15252 | 
| krocz | ls: 15252: No such file or directory | 
| krocz | # cd 15252 | 
| krocz | :/proc/15252# | 
| krocz | ahi se encontraran con un archivo environ | 
| krocz | que les ayudara a detectar cual es su home | 
| krocz | donde se encuentra instalado el rootkit | 
| krocz | acto seguido | 
| krocz | van a ese directorio | 
| krocz | y ejecutan ./sk u | 
| krocz | que desintala el troyano y veran los procesos | 
| krocz | que estaban escondidos y directorios | 
| krocz | mueven el archivo /sbin/initsk12 a /sbin/init | 
| krocz | y quedaran sin Suckit instalado | 
| krocz | para comenza a terminar  | 
| krocz | algunas soluciones | 
| krocz | para ayudar a hacer mas dificil la tarea de instalar unn backdoor | 
| krocz | herramientas como http://la-samhna.de/samhain/ | 
| krocz | les ayuudaran a  | 
| krocz | mantener la integridad de los archivos | 
| krocz | para evitar los rootkits LKM | 
| krocz | personamente, compilo el kernel sin soporte para LKM | 
| krocz | y en los textos que les mostre | 
| krocz | hay unos codigos que parchan /dev/kmen para escritura | 
| krocz | antes que nada quiero agradecer a Felipe molina por la ayuda prestada para hacer pruebas y ideas de topicos para incluir | 
| krocz | FIN!! | 
| EMPE[log] | plas plas plas plas plas plas plas plas plas | 
| EMPE[log] | plas plas plas plas plas plas plas plas plas | 
| fernand0 | plas plas plas plas plas plas plas plas plas plas | 
| EMPE[log] | plas plas plas plas plas plas plas plas plas | 
| EMPE[log] | plas plas plas plas plas plas plas plas plas | 
| fernand0 | plas plas plas plas plas plas plas plas plas plas | 
| fernand0 | plas plas plas plas plas plas plas plas plas plas | 
| fernand0 | plas plas plas plas plas plas plas plas plas plas | 
| italix | plas plas plas plas | 
| italix | :) | 
| fernand0 | plas plas plas plas plas plas plas plas plas plas | 
| jorge | ¡¡Felicidades!! | 
| MJesus | clap clap clap clap clap clap clap clap clap clap | 
| MJesus | clap clap clap clap clap clap clap clap clap clap | 
| krocz | debian fue victima de este rootkit | 
| krocz | por eso lo lleve a caso de estudio | 
| krocz | <Lunguz> krocz: cual es el sentido de eliminar el lkm del kernel?? entiendo que quieres eliminar posibles intrusiones a traves de este medio, pero mi pregunta es en el sentido de: " si es asi, tal vez una buena medida seria cortar el cable" no crees???? | 
| EMPEROR | krocz: pero tanto como debian puede pasarle a otras tambien cierto?  | 
| krocz | el sentido de eliminar el LKM del kernel | 
| krocz | es asi evitar | 
| krocz | que se instalen lkm-rootkit | 
| krocz | hay modulos  | 
| Lunguz | si ok, eso esta claro | 
| krocz | que impiden  | 
| krocz | que se instalen modulos | 
| krocz | posteriores | 
| Lunguz | pero crees tu que sea una perdida de funcionalidad importante? | 
| krocz | pero si un atacante de buen nivel | 
| krocz | detectara como se llama ese modulo | 
| krocz | y lo bajara | 
| krocz | y instalara su rootkit lkm | 
| krocz |  <EMPEROR> krocz: pero tanto como debian puede pasarle a otras tambien cierto?  | 
| krocz | si | 
| krocz | la falla fue de rsync | 
| krocz | debian fue una victima conocida | 
| krocz | Lunguz depende | 
| krocz | por ejemplo | 
| krocz | yo cuando tengo mi kernel bien compilado | 
| krocz | que no me falte nada y no piense que agrege nada | 
| krocz | lo dejo sin lkm | 
| krocz | ahora por ejemplo una buena idea | 
| krocz | es dejarlo en los firewall | 
| krocz | ya que nadie debiera ocupar ese tipo de maquinas | 
| krocz | para uso comun | 
| Lunguz | ahh.. ok, el caso de los fw me parece mas adecuado. | 
| krocz | un Pc de escritorio me parece exagerado dejalo sin LKM | 
| krocz | pero es el riesgo de la seguridad | 
| krocz | no se puede tener todo en esta vida | 
| krocz | :D | 
| Lunguz | claro, seguridad vs. funcionalidad, hay que asumir los riesgos | 
| Lunguz | :P | 
| krocz | ahora no se vayan a matar buscando los PID a mano en el /proc | 
| krocz | seria buena idea un script | 
| italix | para que sirve el LKM? ya dije que el nivel era altillo para mi | 
| italix | en que te basas para quitarlo o no | 
| krocz | modulos cargables del kernel | 
| italix | ah | 
| krocz | son "programas" que puedes cargar que trabajan a nivel de kernel | 
| italix | si lo desactivas, tendrias que tener todos los modulos que necesitaras a nivel de kernel | 
| krocz | si italix  | 
| krocz | gracias a todos... |