IV International Conference of Unix at Uninet
  • Presentation
  • Register
  • Program
  • Organizing Comittee
  • Listing of registered people
  • Translators team
Talk

20031219-3.sp

fernand0Hola,
fernand0nuestro próximo conferenciante es Oscar Peredo, de Chile.
fernand0recibimos esta conferencia con especial cariño, porque Oscar ha sido un importante colaborador en la preparación de este congreso, y hoy
fernand0tenemos el gusto de presentarlo como ponente.
fernand0Trabaja en una empresa de seguridad informática en Chile, Exis,
fernand0 y también
fernand0colaboró en el desarolo de wasap, que es un módulo de seguridad para Apache.
fernand0Hemos habilitado el canal #qc para preguntas y comentarios.
fernand0Y habrá traducción simultánea al inglés en #redes (English translation in #redes)
fernand0Su conferencia de hoy se titula:
fernand0Troyanos acción y reacción
fernand0Gracias al conferenciante y a todos ustedes por acudir.
fernand0Oscar ...
kroczgracias
kroczbuenos dias/tardes/noches o lo que sea donde esten :P
kroczhoy expondre un tema muy comun en cuanto a seguridad se trata
kroczque soy backdoors
kroczhablare un poco de como han evolucionado en el tiempo
kroczde como se han transformado en troyanos
kroczgracias a las nuevas tecnicas de infeccion
kroczcomentare, no entrare en mayores detalles, de las tecnicas que ocupan algunos troyanos para esconderse en un sistema Linux
kroczdando informacion de donde se podra encontrar mayores detalles de estas tecnicas
kroczluego hablare sobre una herramienta en particulas sobre deteccion de troyanos
kroczy su deficiencia
kroczhare un caso de estudio de uno de estos
kroczy que entenderan por que elegi aquel troyano que comentare mas adeltante
kroczsimples
kroczpero que nos ayudaran a obstaculizar la insercion de estos en los sistemas
kroczahora hare una peque~a explicacion de algunos tecnisismo que ocupare
kroczpara no confundir o equivocarnos en sus significados
kroczcracker, lo asumire como la persona que ingresa al sistema, solamente eso
kroczhacker, la persona que escribe el codigo, sin importar sea codigo maligno (como exploit, backdoors, virus o codigo de kernel u otros)
kroczesta sera una conferencia que se expondra solo lo necesario para entender
kroczestare atento a las preguntas o comentarios que se haran en el canal #qc
kroczcomenzemos
kroczcomo todo en este mundo evoluciona
krocztanto las tecnicas que ocupan internamente los sistemas operativos para mejorar su rendimiento y prestancia
kroczpero tambien evolucionan los hackers que escriben sus codigos y mejoran las formas de ocultamiento en el sistema
kroczpor ejemplo en epocas anteriores
kroczlos troyanos eran completamente programados para un fin
kroczera un programa realizado que hacia algo y sin que el usuario que ejecutase el programa se diera cuenta del fin de este
kroczalgo asi como los virus de hoy en dia
kroczluego tenemos a los backdoors
kroczlos backdoors son puertas traseras
kroczque hacen que un usuario llegue a un estado de manera mas rapida
kroczen la antiguedad, estamos hablando que en computacion 5 años atras ya estamos en la prehistoria
kroczlos programadores de sistemas instalaban backdoors en sus programas
kroczpara ahorrar tiempo y llegar a un estado que deseaban
kroczpero para consecuencias de seguridad
krocza veces a los programadores se les olvidaba quitar esos backdoors
kroczlos cuales posteriormente eran descubiertos por terceras personas
kroczpasando el tiempo y modificando un poco el ambiente
kroczse comenzaron a ver backdoors simples
kroczeran muy faciles de detectar
kroczpor ejemplo
kroczen 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"
kroczen hacia esto
kroczhabria una shell en el puerto 31337 en la cual cualquiera que se conectara a este puerto tendria una shell con privilegios de root
kroczeste tipo de backdoors antiguados eran muy faciles de detectar
kroczpero para administradores inexpertos les era muy dificil
kroczy otro ejemplo mas ocupado, incluso aun es de agregar una linea
kroczal archivo /etc/passwd con los privilegios de root, por ejemplo krocz:x:0:0:root:/root:/bin/bash
kroczsimple, me logeaba con el usuario krocz y tenia privilegios de root
kroczesto ha cambiado en la actualidad
kroczcon las tecnicas viricas actuales
kroczse han diseñado backdoors
kroczque combinados con las tecnicas viricas se han convertidos en troyanos
kroczya que ejecutamos programas sin saber que mas hacen
kroczcomo presentare en el caso de estudio mas adelante
kroczcomo he dicho las tecnicas han evolucionado
kroczahora es casi imposible diferenciar un virus de un troyano
kroczestamos hablando todo esto en el contexto Linux
krocztecnicas de troyanizacion como la redireccion de librerias
kroczcomo se muestra en el articulo de phrack realizado por Silvio Cesare
kroczhttp://www.phrack.org/phrack/56/p56-0x07
kroczno entrare en detalles, debido a que nos saldriamos del tema principal
kroczpero si desean saber ese es un excelente articulo
krocztecnicas viricas que infectan modulos de kernel
kroczcomo la presentada en http://www.phrack.org/phrack/61/p61-0x0a_Infecting_Loadable_Kernel_Modules.txt
kroczhan visto como ha cambiado el tema en cuanto a troyanizacion se trata
kroczy la tecnica que veremos con un poco de mayor profundidad mas adelante es la de infeccion a traves de /dev/kmen
kroczhttp://www.phrack.org/phrack/58/p58-0x07
kroczestas son algunas de las tecnicas que ocupan los troyanos
kroczpara instalarse en el sistema
kroczmas que troyanos rootkits
kroczrootkits son programas
kroczvarios programas que se instalan en un sistema
kroczpara mantener oculto al atacante
kroczque ha ingresado de manera ilegal
krocza una maquina
kroczcomo dicen por #qc
kroczalgunos articulos estan aqui
kroczredyuck> http://www.est.cl/phrack/p61-0x0a.txt ( en castellano )
krocz<redyuck> http://www.est.cl/phrack/phrack58-0x07.txt
kroczy 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
kroczhttp://www.phrack.org/phrack/60/p60-0x08.txt
kroczun atacante cuando ingresa a un sistema
kroczlo que siempre intenta es esconderse del administrador
kroczde la maquina
kroczya sea de manera simple
kroczcomo haciendo directorios en /dev/
kroczy ahi instalando sus herramientas
kroczinstalando programas con suid root
kroczque al ejecutarlos lo hacen con privilegios de root
kroczestos programas son simples de detectar
kroczcon un simple comando find / -perm +4000
kroczencontraran varios programas con suid root
kroczes conocimiento del administrador saber cuales deberian tener los permisos correspondientes
kroczun rootkit
kroczla idea, como dije anteriormente es esconderse del administrador
kroczlos comandos mas usados
kroczpara poder esconder conexiones
kroczprocesos
kroczy cosas por el estilo
kroczcambiaban el /bin/login
kroczpor algun otro para poder detectar las password de los usuarios que ingresaban al sistema
kroczo cambiaban el comando "ps" para poder esconder los procesos que eran ejecutados por el cracker que estaba dentro del sistema
kroczu comandos como netstat
kroczpara esconder conexiones
kroczestos rootkits eran faciles de detectar
kroczcon herramientas como tripwire
kroczo ejecutando uno mismo md5sum
krocza los archivos y comparandolos con otros
krocznos daban hash que no correspondian al archivo original
kroczcomo dije faciles de detectar
kroczuna herramienta muy comentada
kroczcomo se dijo
kroczes chkrootkit
kroczpara poder detectar estos rootkits
kroczu posibles anomalias
kroczen el sistema
kroczhttp://www.chkrootkit.org
kroczsi desean bajar la herramienta para pobrar en sus sistemas
kroczesta herramienta para mi gusto es poco confiable
kroczbasta ver
kroczalguno de sus opciones para detectar algunos de los rootkits mas ocupados
kroczif ${egrep} -i adore < /proc/ksyms >/dev/null 2>&1; then
krocz echo "Warning: Adore LKM installed"
kroczfi
kroczcon esas lineas muestra si existe el LKM-rootkits adore
kroczno me parece una demostracion que si no encuentra eso, es que no esta el rootkits mencionado
kroczu este ejemplo
krocz${strings} ${ROOTDIR}sbin/init | ${egrep} HOME"
kroczcon esa linea
kroczintenta buscar la cadena HOME en /sbin/init
kroczla cadena HOME
kroczes una que ocupa el rootkits SucKit
kroczsobre este troyano hare mi caso de estudio
kroczosea 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)
kroczchkrootkit hace poco me demostro que yo tenia un troyano instalado
kroczsolo por que tenia 4 procesos ocultos
kroczChecking `lkm'... You have     4 process hidden for ps command
kroczdespues me di cuenta que era problema del procfs que tengo instalado
kroczen mi debian
kroczel que tiene problemas :D
kroczahora pasemos al caso de estudio y a demostrar de manera
kroczpractica el funcionar del rootkits suckit
kroczcuando estaba planeando esta charla y no encontraba que exponer
kroczme encontre con la noticia del ingreso a los servidores de debian
kroczformas y maneras que lo hicieron creo que las conocen :D
kroczpero lo que me llamo la atencion fue que los invasores
krocztroyanaron la maquina
kroczy ocuparon el troyano SucKit
kroczpara enconder su presencia
kroczpor que ocuparon este troyano alguna razon tendran
kroczen http://www.exis.cl/present/umeet/pre.html
kroczhe hecho una seria de pasos
kroczque corresponden a una prueba que realice
kroczpara demostrar de manera creible lo que estoy exponiendo
kroczveremos que el primer paso fue ejecutar un hash md5 al archivo /sbin/init
kroczque es el que modifica suckit cuando se instala en el sistema
kroczluego me infecto con el troyano-rootkit
kroczejecuto el backdoor "./sk"
kroczy nuevamente realizo un hash md5 al /sbin/init
kroczy para sorpresa mia su hash no ha cambiado
kroczes su forma de esconderse lo que hace que sea casi indectable a tripwire
kroczcomo funciona un poco el troyano
kroczcon una de las tecnicas mencionadas antiormente a travez de /dev/kmen
kroczeste archivo contienen una imagen del nucleo cargado en memoria
kroczel archivo tiene permisos de escritura
kroczSucKit busca la direccion de la tabla de Syscall
kroczes que una parte algo complicada
kroczy modifica la tabla de syscall
kroczmodificando las que necesita
kroczes asi que es capas de saltar
kroczlos tipos de hash
kroczla tecnica de evadiendo md5sum
krocza traves de LKM es mostrada en la ezine 7 a 69 en el articulo escrito por IReick
kroczarticulo numero 9
kroczde esa ezine
kroczel Suckit modifica el /sbin/init
kroczpara poder cargarse nuevamente en caso que se reinicie la maquina
kroczeste rootkit trae un cliente
kroczel cual sirve para conectarse a la maquina infectada con suckit
kroczlo que hace que no debe logs
kroczes que manda un packete binario a un puerto abierto
kroczy como esta a nivel del kernel el Suckit
kroczlo detecta y revisa si la contrase~a del hash enviada correnponder a la que tiene
kroczinstalada
kroczsi corresponder manda una conexion a un puerto que tiene en estado LISTEN el atacante
kroczesta forma de conexion se conoce como telnet-reverso
kroczes de esa forma que
kroczse saltan firewalls
kroczya que es como si la conexion la iniciase la maquina
kroczya que como dije el packete siempre va a un puerto abierto
kroczpuede ser cualquier puerto abierto
krocztanto como binario o ascii
kroczo si esta detras de un nat
kroczcomo no alcanza a llegar a las capas posteriores
kroczes procesado en la capa del kernel
kroczno deja logs en el sistema
kroczy si "encriptacion"
kroczdel 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
kroczuna idea que me recomendo un compañero de trabajo era que suckit ocupa un hash fijo
kroczpara enviar la autentificacion
kroczhash fijo quiero decir tama~o fijo del packete
kroczquizas puedas detectar ese tama~o y ahi recien comenzar a tener sospechas que estas infectado
kroczcomo he dicho solo hay trafico encriptado, no veras ningun /bin/sh
kroczen tu red
kroczuna vez que me conecto
krocza la maquina infectada
kroczy hacemos un listado de procesos
kroczveremos algo como esto
kroczhttp://www.exis.cl/present/umeet/pre2.html
kroczcomo veran
kroczlos backdoors estan corriendo
kroczespecificamente en
kroczroot      2349  0.0  0.0   208  148 ?        S    20:39   0:00 ./sk
kroczroot      2647  0.0  0.0   208  148 ?        S    20:48   0:00 ./sk
kroczroot      2688  0.0  0.0   208  148 ?        S    20:51   0:00 ./sk
kroczroot      2782  0.0  0.0   208  148 ?        S    21:01   0:00 ./sk
kroczroot      2783  0.0  0.5  2052 1104 ttyp0    S    21:01   0:00 sh -i
kroczy a su vez una persona conectada normalmente
kroczvera esto
kroczhttp://www.exis.cl/present/umeet/pre3.html
kroczcomo se fijaran
kroczen la segunda presentacion
kroczno se ven los troyanos corriendo
kroczcomo veran
kroczni obteniendo los hash md5
kroczdel archivo init
kroczpodran ver si esta suckit
kroczni siquiera tripwire lo detecta
kroczes por esta razones que confiar 100% en chkrootkit
kroczno vale la pena
kroczpor eso que no confio en que chkrootkit detectara los rootkits instalados
kroczahora viene como detectar
kroczuna de las fallas de Suckit
kroczpor lo menos en la version que probe
kroczes que no esconde las conexiones
krocz(no confies, esto cambiara)
kroczhaciendo un netstat -anep
kroczobtendran algo parecido a esto
kroczhttp://www.exis.cl/present/umeet/pre4.html
kroczhay una conexion que nos parecesa extraña
kroczque es la tcp        0      0 127.0.0.1:1030          127.0.0.1:1028          ESTABLISHED 0          5946       -  
kroczque no tiene nombre del archivo ni el PID
kroczpero esta establecida
kroczahora veamos algo del codigo de instalacion
kroczdee suckit
kroczif [ ! -f /sbin/init${H} ];  then cp -f /sbin/init /sbin/init${H}
krocz; fi; rm -f /sbin/init; cp sk /sbin/init
kroczcomo veran
kroczcopia sk
krocza
krocz/sbin/init
kroczy el /sbin/init original
kroczlo copia a /sbin/initsk12
kroczque es el valor de la variable H
kroczsi hacemos un ls /bin/initsk12
kroczno encontrara nada
kroczpara sorpresa, este ni~o se sabe esconder
kroczpero si hacemos un file /bin/initsk12
kroczlo encontrara
kroczsi lo encuentra es que estamos infectados
kroczeste rootkit esta en un estado de espera
kroczsi no hay nadie conectado no hay mucho que hacer
kroczpara encontrar cual sera su "HOME" dond esta instalado
kroczhe ahi la excusa que chkrootkit busca esa cadena en /sbin/init
kroczuna forma de detectar
kroczel home
kroczes que cuando alguien se conecte
kroczes ir al /proc
kroczy ahi veran
kroczunos directorios con numeros
kroczvoila, nos PID de cada proceso
kroczque hay corriendo en la maquina
kroczsi hay alguien conectado los PID de los procesos que esta ocupando nuestro atacante
kroczno se veran
kroczahi viene la tarea ardua de buscar que PID son
kroczuna forma es intentar cada numero
kroczpor ej cd 1 - cd 2 .... cd 179
kroczy asi sucesivamente
kroczcuando exista el pid
kroczentraran a la maquina
kroczosea al directorio
kroczy no existe les saldra algun error
kroczahi daran con los PID escondidos
kroczya que como existen
kroczentraran a sus correnpondientes directorios
kroczpor ejemplo
krocz:/proc# ls 15252
kroczls: 15252: No such file or directory
krocz# cd 15252
krocz:/proc/15252#
kroczahi se encontraran con un archivo environ
kroczque les ayudara a detectar cual es su home
kroczdonde se encuentra instalado el rootkit
kroczacto seguido
kroczvan a ese directorio
kroczy ejecutan ./sk u
kroczque desintala el troyano y veran los procesos
kroczque estaban escondidos y directorios
kroczmueven el archivo /sbin/initsk12 a /sbin/init
kroczy quedaran sin Suckit instalado
kroczpara comenza a terminar
kroczalgunas soluciones
kroczpara ayudar a hacer mas dificil la tarea de instalar unn backdoor
kroczherramientas como http://la-samhna.de/samhain/
kroczles ayuudaran a
kroczmantener la integridad de los archivos
kroczpara evitar los rootkits LKM
kroczpersonamente, compilo el kernel sin soporte para LKM
kroczy en los textos que les mostre
kroczhay unos codigos que parchan /dev/kmen para escritura
kroczantes que nada quiero agradecer a Felipe molina por la ayuda prestada para hacer pruebas y ideas de topicos para incluir
kroczFIN!!
EMPE[log]plas plas plas plas plas plas plas plas plas
EMPE[log]plas plas plas plas plas plas plas plas plas
fernand0plas 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
fernand0plas plas plas plas plas plas plas plas plas plas
fernand0plas plas plas plas plas plas plas plas plas plas
fernand0plas plas plas plas plas plas plas plas plas plas
italixplas plas plas plas
italix:)
fernand0plas plas plas plas plas plas plas plas plas plas
jorge¡¡Felicidades!!
MJesusclap clap clap clap clap clap clap clap clap clap
MJesusclap clap clap clap clap clap clap clap clap clap
kroczdebian fue victima de este rootkit
kroczpor 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????
EMPERORkrocz: pero tanto como debian puede pasarle a otras tambien cierto?
kroczel sentido de eliminar el LKM del kernel
kroczes asi evitar
kroczque se instalen lkm-rootkit
kroczhay modulos
Lunguzsi ok, eso esta claro
kroczque impiden
kroczque se instalen modulos
kroczposteriores
Lunguzpero crees tu que sea una perdida de funcionalidad importante?
kroczpero si un atacante de buen nivel
kroczdetectara como se llama ese modulo
kroczy lo bajara
kroczy instalara su rootkit lkm
krocz <EMPEROR> krocz: pero tanto como debian puede pasarle a otras tambien cierto?
kroczsi
kroczla falla fue de rsync
kroczdebian fue una victima conocida
kroczLunguz depende
kroczpor ejemplo
kroczyo cuando tengo mi kernel bien compilado
kroczque no me falte nada y no piense que agrege nada
kroczlo dejo sin lkm
kroczahora por ejemplo una buena idea
kroczes dejarlo en los firewall
kroczya que nadie debiera ocupar ese tipo de maquinas
kroczpara uso comun
Lunguzahh.. ok, el caso de los fw me parece mas adecuado.
kroczun Pc de escritorio me parece exagerado dejalo sin LKM
kroczpero es el riesgo de la seguridad
kroczno se puede tener todo en esta vida
krocz:D
Lunguzclaro, seguridad vs. funcionalidad, hay que asumir los riesgos
Lunguz:P
kroczahora no se vayan a matar buscando los PID a mano en el /proc
kroczseria buena idea un script
italixpara que sirve el LKM? ya dije que el nivel era altillo para mi
italixen que te basas para quitarlo o no
kroczmodulos cargables del kernel
italixah
kroczson "programas" que puedes cargar que trabajan a nivel de kernel
italixsi lo desactivas, tendrias que tener todos los modulos que necesitaras a nivel de kernel
kroczsi italix
kroczgracias a todos...

Generated by irclog2html.pl by Jeff Waugh - find it at freshmeat.net!

email usmore information


© 2003 - www.uninet.edu - contact organizing comittee - valid xhtml - valid css - design by raul pérez justicia