SASSER: Cositas que se pueden hacer con acceso a una máquina.

10/05/2004 - 15:59 por Diego Calleja García | Informe spam
Bien, visto que algunos siguen sin querer creer lo obvio (es decir, que es
imposible asegurar que tenemos en el sistema despues de haber tenido
el sasser, y que simplemente el utilizar las herramientas que se
proporcionan no aseguran NADA) he buscado un poco de informacion en internet
sobre el tema (15 minutos, no se tarda mas) para que la gente los lea y judguen
ellos mismos.

Para empezar con los que dicen que no hay rootkits para NT, que es "muy
improbable" que los usen, que "no existen rootkits para XP", etc...aquí
en este mensaje de bugtraq Greg Hoglund demuestra no solo que es totalmente
posible acceder al modo núcleo si tienes privilegios de administrador, sino
que es TOTALMENTE TRIVIAL y que se puede hacer en unas pocas líneas de código,
utilizando una llamada al sistema que esta hecha precisamente para ello.
Tambien, como dice el autor, una vez que el sistema ha sido hackeado ES
IMPOSIBLE EVITAR QUE ALGUIEN INYECTE CODIGO EN EL KERNEL y que es IMPOSIBLE
GARANTIZAR LA INTEGRIDAD DEL SOFTWARE EN MODO DE USUARIO UNA VEZ QUE ALGUIEN
HA TOCADO EL KERNEL.
http://cert.uni-stuttgart.de/archiv...00431.html

Nota: Esto NO ES un fallo de seguridad de Windows, un administrador tiene todo
el derecho a hacer ese tipo de cosas si le da la real gana. El autor ha
usado una llamada al sistema pero podría haber usado perfectamente fallos
en otras vias de comunicacion espacio de usuario <-> kernel, como ioctls
de drivers (y los drivers los programan terceras empresas no microsoft, asique
rezad a la Virgen que os venga en gana para que las empresas que fabrican
vuestro hardware lo hayan hecho bien)

Y es más, aun hay mas métodos. Todos perfectamente legítimos, un administrador
PUEDE hacer esas cosas, la cuestion es evitar que alguien consiga privilegios
de administrador. Para mas señas, lsass.exe se ejecuta con privilegios de
SYSTEM, lo cual significa que un gusano bien programado tiene la puerta
abierta para hacer este tipo de cosas. Tambien podría utilizar un driver
para hacerlo, o alguno de estos otros trucos:

Mas enlaces: Aquí hay un artículo de phrack. En este utilizan el "gestor
de objetos", entre otros implementa el objeto \Device\PhysicalMemory, que
es el equivalente a /dev/mem en sistemas unix. Muchos rootkits para linux
utilizan /dev/mem para insertar modulos en el kernel *incluso* si el kernel
tiene deshabilitado el soporte para módulos. Para ello simplemente escriben
/leen datos de la memoria e inyectan el código, así de simple y sencillo. El
"secreto" esta en saber donde estan las funciones, para ello en Linux tienes
el System.map, que en la versión 2.6 con ksymoops se incluye dentro de la
propia imagen del kernel, asique no es nada dificil conseguir dichas
direcciones. Es decir, tienes las direcciones en memoria de TODAS y cada una
de las funciones del kernel, y puedes modificar LA QUE QUIERAS. La imaginación
del programador es el único límite.

En NT no hay tales simbolos, al menos que no instales el paquetes de símbolos,
(descargable gratuitamente de la página de microsoft, al igual que el debugger
del kernel). Pero dado que en NT el kernel no se recompila si no que es
el mismo en casi todos los XP, las funciones nunca cambian de sitio y es
perfectamente posible apuntar a una direccion concreta porque sabes que
la función va a estar ahí. De hecho varios virus se basan en esto para
funcionar, el virus que afectaba a servidores DNS de microsoft hace meses
si no recuerdo mal no habría funcionado si estas cosas cambiaran en cada
máquina.
Siguiendo con el artículo de Phrack: "Anónimos", leed la sección
"4.4 Running ring0 code without the use of Driver" (que por alguna razón esta
en la seccion 4.3, está mal el indice). Es más, en el final del artículo
hay código de ejemplo. Lo cual permitiria a cualquier creador de gusanos
utilizar el código como base para hacer juguetitos. Y esto esta al alcanze
de millones de personas a una busqueda de google.
http://www.phrack.org/phrack/59/p59-0x10.txt


Y otro más, de phrack: En este hace un truco aun mas interesante, explora
las llamadas al sistema de NT, y explora los métodos que hay para añadir
su propia llamada. Y aun más, MODIFICA las propias llamadas al sistema de
NT, en concreto parchea RtlGetOwnerSecurityDescriptor() para que un usuario
sin privilegios pueda hacer cositas. Esto se puede extender a "hacer
que C:\archivo no sea visible por ningun programa" o cualquier cosa que se
te venga a la imaginación. Como ya dije en otro foro, en el modo kernel
eres DIOS literalmente y puedes hacer lo que te de la real gana. En
es.comp.hackers alguien me ha calificado mas o menos de "flipado" por
sugerir que esto era posible, aquí esta la prueba:
http://www.phrack.org/phrack/55/P55-05


Y para terminar, vuelvo a afirmar que ES IMPOSIBLE GARANTIZAR LA INTEGRIDAD
DEL SISTEMA DESPUES DE HABER SIDO INFECTADOS POR EL SASSER, POR LO TANTO
SOLO EL FORMATEAR TE ASEGURA AL 100% QUE ESTAS LIMPIO. Los que vengan
diciendome "seguramente no te va a pasar nada y no te van a meter nada" pueden
arder en el infierno, yo me limpio la conciencia y formateo. Ellos que
hagan lo que les de la gana.

Y para los anónimos que sé que no me creen, vuelvo a preguntar: ¿Como me asegurais
que el sistema está 100% limpio simplemente quitando el sasser con un antivirus
y poniendo el parche? ¿COMO?
 

Leer las respuestas

#1 JM Tella Llop [MVP Windows]
10/05/2004 - 16:09 | Informe spam
je... no te preocupes que no responderan.
(luego resulta que los demas somos "esagerados" y que nunca sucede nada..)

Jose Manuel Tella Llop
MVP - Windows
(quitar XXX)
http://www.multingles.net/jmt.htm

Este mensaje se proporciona "como está" sin garantías de ninguna clase, y no otorga ningún derecho.

This posting is provided "AS IS" with no warranties, and confers no rights.
You assume all risk for your use.




"Diego Calleja García" wrote in message news:
Bien, visto que algunos siguen sin querer creer lo obvio (es decir, que es
imposible asegurar que tenemos en el sistema despues de haber tenido
el sasser, y que simplemente el utilizar las herramientas que se
proporcionan no aseguran NADA) he buscado un poco de informacion en internet
sobre el tema (15 minutos, no se tarda mas) para que la gente los lea y judguen
ellos mismos.

Para empezar con los que dicen que no hay rootkits para NT, que es "muy
improbable" que los usen, que "no existen rootkits para XP", etc...aquí
en este mensaje de bugtraq Greg Hoglund demuestra no solo que es totalmente
posible acceder al modo núcleo si tienes privilegios de administrador, sino
que es TOTALMENTE TRIVIAL y que se puede hacer en unas pocas líneas de código,
utilizando una llamada al sistema que esta hecha precisamente para ello.
Tambien, como dice el autor, una vez que el sistema ha sido hackeado ES
IMPOSIBLE EVITAR QUE ALGUIEN INYECTE CODIGO EN EL KERNEL y que es IMPOSIBLE
GARANTIZAR LA INTEGRIDAD DEL SOFTWARE EN MODO DE USUARIO UNA VEZ QUE ALGUIEN
HA TOCADO EL KERNEL.
http://cert.uni-stuttgart.de/archiv...00431.html

Nota: Esto NO ES un fallo de seguridad de Windows, un administrador tiene todo
el derecho a hacer ese tipo de cosas si le da la real gana. El autor ha
usado una llamada al sistema pero podría haber usado perfectamente fallos
en otras vias de comunicacion espacio de usuario <-> kernel, como ioctls
de drivers (y los drivers los programan terceras empresas no microsoft, asique
rezad a la Virgen que os venga en gana para que las empresas que fabrican
vuestro hardware lo hayan hecho bien)

Y es más, aun hay mas métodos. Todos perfectamente legítimos, un administrador
PUEDE hacer esas cosas, la cuestion es evitar que alguien consiga privilegios
de administrador. Para mas señas, lsass.exe se ejecuta con privilegios de
SYSTEM, lo cual significa que un gusano bien programado tiene la puerta
abierta para hacer este tipo de cosas. Tambien podría utilizar un driver
para hacerlo, o alguno de estos otros trucos:

Mas enlaces: Aquí hay un artículo de phrack. En este utilizan el "gestor
de objetos", entre otros implementa el objeto \Device\PhysicalMemory, que
es el equivalente a /dev/mem en sistemas unix. Muchos rootkits para linux
utilizan /dev/mem para insertar modulos en el kernel *incluso* si el kernel
tiene deshabilitado el soporte para módulos. Para ello simplemente escriben
/leen datos de la memoria e inyectan el código, así de simple y sencillo. El
"secreto" esta en saber donde estan las funciones, para ello en Linux tienes
el System.map, que en la versión 2.6 con ksymoops se incluye dentro de la
propia imagen del kernel, asique no es nada dificil conseguir dichas
direcciones. Es decir, tienes las direcciones en memoria de TODAS y cada una
de las funciones del kernel, y puedes modificar LA QUE QUIERAS. La imaginación
del programador es el único límite.

En NT no hay tales simbolos, al menos que no instales el paquetes de símbolos,
(descargable gratuitamente de la página de microsoft, al igual que el debugger
del kernel). Pero dado que en NT el kernel no se recompila si no que es
el mismo en casi todos los XP, las funciones nunca cambian de sitio y es
perfectamente posible apuntar a una direccion concreta porque sabes que
la función va a estar ahí. De hecho varios virus se basan en esto para
funcionar, el virus que afectaba a servidores DNS de microsoft hace meses
si no recuerdo mal no habría funcionado si estas cosas cambiaran en cada
máquina.
Siguiendo con el artículo de Phrack: "Anónimos", leed la sección
"4.4 Running ring0 code without the use of Driver" (que por alguna razón esta
en la seccion 4.3, está mal el indice). Es más, en el final del artículo
hay código de ejemplo. Lo cual permitiria a cualquier creador de gusanos
utilizar el código como base para hacer juguetitos. Y esto esta al alcanze
de millones de personas a una busqueda de google.
http://www.phrack.org/phrack/59/p59-0x10.txt


Y otro más, de phrack: En este hace un truco aun mas interesante, explora
las llamadas al sistema de NT, y explora los métodos que hay para añadir
su propia llamada. Y aun más, MODIFICA las propias llamadas al sistema de
NT, en concreto parchea RtlGetOwnerSecurityDescriptor() para que un usuario
sin privilegios pueda hacer cositas. Esto se puede extender a "hacer
que C:\archivo no sea visible por ningun programa" o cualquier cosa que se
te venga a la imaginación. Como ya dije en otro foro, en el modo kernel
eres DIOS literalmente y puedes hacer lo que te de la real gana. En
es.comp.hackers alguien me ha calificado mas o menos de "flipado" por
sugerir que esto era posible, aquí esta la prueba:
http://www.phrack.org/phrack/55/P55-05


Y para terminar, vuelvo a afirmar que ES IMPOSIBLE GARANTIZAR LA INTEGRIDAD
DEL SISTEMA DESPUES DE HABER SIDO INFECTADOS POR EL SASSER, POR LO TANTO
SOLO EL FORMATEAR TE ASEGURA AL 100% QUE ESTAS LIMPIO. Los que vengan
diciendome "seguramente no te va a pasar nada y no te van a meter nada" pueden
arder en el infierno, yo me limpio la conciencia y formateo. Ellos que
hagan lo que les de la gana.

Y para los anónimos que sé que no me creen, vuelvo a preguntar: ¿Como me asegurais
que el sistema está 100% limpio simplemente quitando el sasser con un antivirus
y poniendo el parche? ¿COMO?

Preguntas similares