Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Mad Antrax en 14 Octubre 2007, 00:59 am



Título: Ayuda: Programar módulos para un AV-Killer
Publicado por: Mad Antrax en 14 Octubre 2007, 00:59 am
Hola gente, cuanto tiempo!! :rolleyes:

Bueno, he estado liado con algunos temas personales pero ya vuelvo ha estar por aquí. He retomado el proyecto del Cactus Joiner y actualmente me estoy centrando en los módulos de AV-Killer para integrarlo todo en el Stub. Os dejo una Screen de lo que llevo hecho:

(http://img147.imageshack.us/img147/4664/cactusavqq4.png)

Ese es el listado que he pensado incluir en esta versión del Cactus, de momento he podido desactivar por código, todos los AV's que aparecen en la imagen excepto:

  • Kaspersky 7.0: No encuentro la forma de detenerlo
  • Norton 2007: No encuentro la forma de detenerlo
  • Panda Internet Security: No lo tengo instalado, no podido probar de deshabilitarlo
  • BitDefender v10: No lo tengo instalado, no podido probar de deshabilitarlo
  • AVG Free 7.5: Lo consigo deshabilitar pero requiere un reinicio del sistema.
  • Trend Micro PC-Cillin 2007: Lo tengo instalado y estoy trabajando actualmente con él.

Todos los demás (Nod32, McAffe, Avira, avast!, OnCare, etc...) los he conseguido deshabilitar a través de código VB6 y en menos de 5 segundos.

Alguien se anima y me ayuda a encontrar el método para los demás AntiVirus? Muchisimas gracias!!

Saludos!! ;)


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: ranslsad en 14 Octubre 2007, 02:32 am
Eres un monstro Mad!
yo porque no entiendo mucho sobre este temita de Antivirus sino te echaba una mano ;)
Suerte!

Salu2

Ranslsad


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Belial & Grimoire en 14 Octubre 2007, 03:31 am
hola

Tienen un fuerte sistema de autoproteccion... se escuda muy bien en el registro y sus archivos... no se si conocen un programa que simula un "modo seguro" y cambia el registro de entradas para programas p2p... ya que windows coloca como minimo 10.. y con eso se aumentas las conexiones a las que quieras... como 500 si quieres... pero a lo que voy es... si ese programa puede ejecutarse y simular o emular como le quieran decir... un "modo seguro" para modificar un archivo... que solo puede se modificado en modo seguro... talvez si se lograra hacer eso... se podria eliminar esos antivirus.. he incluso, es mu posible que se pueda eliminar cualquiera...

Aunke bueno... eso es solo una idea...

alguien sabe si Kaspersky puede eliminarse en modo seguro?

bueno.. nos vemos  ;D


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Karcrack en 14 Octubre 2007, 06:55 am
Cuanto tiempo sin verte por aquí Mad ;).
Citar
El primer link parece un troyano el segundo estoy 90% seguro q es un AVKIller.!!



Estos dos mata firewall y antivirus son nuevos el primero esta el killer de Microchip junto con otro de godbasago<

(http://img518.imageshack.us/img518/9462/antivirustotalqo0.jpg)

Descargar: http://rapidshare.com/files/44395136/AVFW.zip.html

Creado por godbasago post original aqui

Este es el otro

Descargar: http://redmove.persiangig.com/MyPrograms/FWAVK.zip

Creado por redmove.tk post original aqui



Sacado de Infiernohacker.com

 :aplauso: :aplauso: :aplauso:



El primer link parece un troyano el segundo estoy 90% seguro q es un AVKIller.!!
Fuente: Freeze-Foro (http://freeze-web.com/foro)


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: ~~ en 15 Octubre 2007, 13:41 pm
Cuanto tiempo Mad, mira te cuento un poco, el kav en VB olvidate ya mismo de detenerlo, por q? por q el kav tiene un driver, es decir una aplicacion q corre a ring0 y q protege tanto a los archivos como a su proceso de cualkier modificacion.. la solucion para pararlo seria haciendo tu otro driver, pero en VB no se puede, se necesita saber C y asm ademas es un trabajo muy muy costoso.. (te va a pasar lo mismo con el zone alarm)

Para el resto te recomiendo dos cosas (q no te aseguro q funcionen con todos):

1 - Intenta crehsear su proceso, es decir escribir en su espacio de memoria para q peten

2 - Leete esto, q es muy weno: (no consigo subirlo a rapidshare ni a megaupload, por lo pesimo de mi conexión...  :-() es un pdf q se llama Win32/Bypass: Anulando la detección de ficheros
Written by FraMe ( frame at kernelpanik.org )
A ver si lo encuentras por google, yo de todas formas seguiré intentando subirtelo ;)


Ya tiene su tiempecillo, pero con win xp funcionará casi todo, en vista espero q lo hallan arreglado (no e provado) pero vamos el stub tampoco iba a funcionar en vista...

Salu3


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Hendrix en 15 Octubre 2007, 14:04 pm
(te va a pasar lo mismo con el zone alarm)

Nops, el ZA se puede cerrar  ;D


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: nhaalclkiemr en 15 Octubre 2007, 15:04 pm
A ver, para matar al KAV solo se ocurren dos maneras. EL Kaspersky tiene un driver .sys corriendo como un servicio en Ring0 y ese driver protege toda la aplicación y sus archivos y entradas del registro, y desde Ring3 no podrás hacer nada...

Pues las soluciones que se me ocurren son o hacer un driver y ascenderlo a Ring0 y desde aí matarlo, y para eso tienes que saber C y bastante bien...

Y la otra forma se puede hacer desde Ring3, pero según Hendrix eso es imposible hacerlo en VB, la solución sería escribir directamente en el disco duro...es decir, escribir directamente en un sector X de archivo X longitud directamente, lo primero sería hayar el sector del driver, después la longitud (facil) y por ultimo escribir en ese sector del disco con 0's por ejemplo...el driver no te va a poner restriccion alguna pork tocas directamente el hardware...a mi me hablaron que con las API's OpenFile y WriteFile se podría hacer pero no lo conseguí...y segun Hendrix en VB no se puede...

Weno y los otros pienso que se pueden matar así:

Primero asciendes a SYSTEM con el comando AT o con el SCHTASKS (esto es importante) y después matas los procesos y servicios...es decir ejecutas varias veces un bucle (para asegurarse) que termine los procesos y servicios y elimine los ejecutables y servicios...

Weno espero que te sea util, mas cosas dilas...

Saludos ;)


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: ~~ en 15 Octubre 2007, 15:14 pm
Citar
Nops, el ZA se puede cerrar

Si????? y como???  :huh: :huh: :huh: :huh:


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Mad Antrax en 15 Octubre 2007, 16:18 pm
A ver, esto del driver que deja el KAV en modo Ring0 no es problema y he conseguido matar el AntiVirus Karspersky 7.0 desde VB6 sin usar el comando AT ni drivers. El único problema es que para que el AV-Killer del KAV funcione requiere un reinicio del PC, y claro, implementar esto en un Joiner es una tontería.

Esto mismo me ocurre con el AVG Free Antivirus (sí, sí, un antivirus gratuito!), me es imposible matarlo sin necesidad de reiniciar el PC antes.

Alguna idea?

Los demás AntiVirus del listado están todos muertos, no he usado ni elevaciones de privilegios (comandos AT ni similares) ni exploits, solo código VB6 puro y duro. Me quedan:

AVP (sin tener que reiniciar)
AVG (sin tener que reiniciar)
Norton 2007 (No me he puesto ni a intentarlo)
Panda (No me he puesto ni a intentarlo)
TrendMicro PC-Cillin (No me he puesto ni a intentarlo)



Por si alguien le interesa como matar el KAV con un reinicio solo decir que investiguen las ACL's, el comando SC y CACLS


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: lll_swamp_lll en 15 Octubre 2007, 17:47 pm
Esta semana instalo el vmware e intento detener algunos.

Solucionaste el problema de las comillas en la entrada de registro que me habias dicho por msn?

Intenta ejecutar echo fuck-you! > db.antivirus talves puedas dejar la base de datos en blanco con tan solo vaciarle un echo dentro. Puedes intentarlo también con sus ejecutables que se activan solamente al detectar un virus denegando su eliminación.

Yo una ves me puse a crear un programa en C quu le das un archivo y lo abre con fget y no puedes tener acceso a dicho archivo ya que está siendo utilizado por el programa... talves puedas implementarlo sobre la base de datos o algo asi. Fijate que generalmente los antivirus te piden pass para hacer todo menos actualizarlo, talves puedas configurar atraves del registro la fecha de actualización y la ruta a buscar dichas actualizaciones tal como te lo había dicho y le das una basse de datos modificada con la fecha actual pero en blanco o que haga conflicto al leerla.

Hay algunos firewalls que se caen al hacer un flood de sockets... ya sabes a lo que me refiero  ;D el mismo principio del tdos

Intenta desempacar virus muy pequeños... de esos que son en batch muchisimas veces por segundo atascando el antivirus o haciendo que el usuario lo detenga y cuando muera el proceso entonces que se desempaque el verdadero. Ojo que a veces te da la ruta del que lo está desempacando asi que puedes hacer un desempaque aleatorio y que se ejecute y ese archivo que desempaque los virus una y otra ves hasta que el user se aburra y lo detenga. Eso hacían con norton antiguamente con los correos... enviaban tantos correos ocultos que el norton se atascaba y tenias que cerrarlo.

Intenta eso... Flood flood flood hasta que el user se aburra y detenga el proceso y un m,onitor que verifique ese proceso para poder desempacar el original y si if not exist virus.exe entonces aún está activo.


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: nhaalclkiemr en 15 Octubre 2007, 18:15 pm
Weno pues la verdad yo cuando prové con el KAV 6 y no me daba permisos ni para modificar el directorio ni el registro (donde se encuentra el servicio) pues lo primero que hice fue provar con CALCS y a modificar las ACL's, pero aunke me ponia permisos totales me seguía sin dejar, por eso suponí que era el driver...también prové con SC pero parar no se puede y borrar si, pero hay que reiniciar la PC...tampco prové si realmente así se borraba...pués también eso de tener que reiniciar no me servía de nada...

Varias preguntas, yo estoy haciendo un AV/FW-Killer, para matar a los procesos utilizo el comando taskkill...como haces tu para matarlos?? ya que la API TerminateProcess es detectada por casi todos los AVs...

Que APIs puedo utilizar en vez del comando CALCS (para que me quede mas en VB mas puro)??

Y por último como haces para matar a algunos sin ascender a SYSTEM?? Serviría con la API AdjustTokens para conseguir esos privilegios??

Saludos ;)


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: lll_swamp_lll en 15 Octubre 2007, 19:51 pm
tskill nombre del proceso


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Hendrix en 15 Octubre 2007, 21:39 pm
Y la otra forma se puede hacer desde Ring3, pero según Hendrix eso es imposible hacerlo en VB, la solución sería escribir directamente en el disco duro...es decir, escribir directamente en un sector X de archivo X longitud directamente, lo primero sería hayar el sector del driver, después la longitud (facil) y por ultimo escribir en ese sector del disco con 0's por ejemplo...el driver no te va a poner restriccion alguna pork tocas directamente el hardware...a mi me hablaron que con las API's OpenFile y WriteFile se podría hacer pero no lo conseguí...y segun Hendrix en VB no se puede...

Eso desde Ring3 no se puede, Para mas info: aqui (http://en.wikipedia.org/wiki/Ring_%28computer_security%29)

E0n, lo del ZA lo consegui inyectando "basura" dentro de su codigo y ejecutandolo...Eso en una cuenta no-admin no funciona....

A ver, esto del driver que deja el KAV en modo Ring0 no es problema y he conseguido matar el AntiVirus Karspersky 7.0 desde VB6 sin usar el comando AT ni drivers. El único problema es que para que el AV-Killer del KAV funcione requiere un reinicio del PC

Precisamente por eso se requiere el driver  ;D



Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Mad Antrax en 15 Octubre 2007, 21:40 pm
Y la otra forma se puede hacer desde Ring3, pero según Hendrix eso es imposible hacerlo en VB, la solución sería escribir directamente en el disco duro...es decir, escribir directamente en un sector X de archivo X longitud directamente, lo primero sería hayar el sector del driver, después la longitud (facil) y por ultimo escribir en ese sector del disco con 0's por ejemplo...el driver no te va a poner restriccion alguna pork tocas directamente el hardware...

La idea es buena y funcionaría si se tratara de un proceso y no de un driver, me explico... El KAV usa 3 drivers guardados en

%SystemRoot%\System32\drivers\kl1.sys
%SystemRoot%\System32\drivers\klif.sys
%SystemRoot%\System32\drivers\klim5.sys


Sólo uno de estos 3 drivers es el encargado de las protecciones y los otros 2 se protegen entre sí (esta información esta en el registro). La idea de Hendrix es sobreescribir estos archivos directamente en el sector del disco duro, pero para este caso no serviría de nada, pues los drivers SON CARGADOS EN MEMORIA AL INICIO DEL SISTEMA.

Para poner en practica la idea de Hendrix tendriamos que cambiar la palabra "disco duro" por "memoria RAM" dejando su teoría en:

Citar
Crear un programa que localizara los sectores de la memoria RAM donde se hallen cargados los drivers para sobreescribirlos, CON EL INCONVENIENTE que ese espacio de RAM ha sido reservado (con un simple mAlloc por ejemplo) desde Ring0.

O lo que es lo mismo, no puedes modificar un espacio de memoria que ya ha sido reservado por un "usuario" más fuerte que tú (Ring0).



Vamos, que nos olvidemos de cargarnos esos 3 drivers, es imposible (o al menos es imposible cargarselos sin necesidad de reiniciar).

Alguna idea más? xD


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: nhaalclkiemr en 15 Octubre 2007, 22:23 pm
es lo k keda...ascender a Ring0...mientras tanto no habría alguna manera de confundir al Kaspersky o algo?...si no lo veo dificil...

Weno mi idea de los discos duros si weno...ya suponía que tendría que reiniciar...y para escribir en memoria los drivers...mmm...esta complicado pork como dice Mad hay que estar en Ring0...

Una pregunta, para ascender a Ring0 yo se que hay que correr un driver .SYS como un servicio, pero para hacer esto hay que reiniciar???? pork si no ya estaría...

La verdad llevo mucho tiempo mirando como joder al KAV y de momento no encontré muchas soluciones...

Sobre los drivers no entendí una cosa, uno protege la aplicación, pero eso de k los otros se protegen entre ellos no lo entendí muy bien...a k te refieres entre ellos, no lo protege el mismo que protege la aplicación??

Saludos ;)


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: nhaalclkiemr en 15 Octubre 2007, 22:32 pm
Se me olvidó decir k una posible solución que se me ocurrió sería hacerse pasar por el programa de desinstalación...lo malo es que pienso k primero tienes que cerrar el Kaspersky de manera manual y despues desinstalarlo, además creo k necesitas reiniciar también...

O te podrías hacer pasar por el humano para desactivarlo...pero pienso k esto no se puede...

Saludos ;)


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Mad Antrax en 15 Octubre 2007, 22:40 pm
Se nos han adelantado.... recuerdo hace meses que ANELKAOS advirtió de un bug en KAV que permitía la ejecución de código remoto, para ello se basaban en un bug del driver klif.sys

Aqui la review (http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=505)

Este método era bueno, explotar un bug própio del driver, aunque ahora ya está parcheado...

Sobre los 3 drivers, uno de ellos es para monitorear el AV el otro el Frw y el otro es una protección adicional.


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: nhaalclkiemr en 15 Octubre 2007, 23:32 pm
Acabo de hablar con una persona k sabe bastante de C y hace rootkits, k al fin y al cabo son servicios .SYS corriendo como servicios en Ring0 y me dijo que no hace falta reiniciar, k puedes instalar el driver y ejecutarlo sin reiniciar...asi k si consigues crear uno o sabes de alguien k sepa (yo no se C y desde VB no se puede) pues desde aí conseguirás matarlo...es la unica solución...

Si eso le pido a la persona si me puede hacer un driver para matar al KAV...pero entonces dadme la mayor información posible de como lo tiene que hacer...aunke yo tengo algun log para aí k pienso k tiene casi toda la info...

Weno k os parece? saludos ;)


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Mad Antrax en 16 Octubre 2007, 00:28 am
Si, cuando insertas un driver no es necesario reiniciar el equipo (por ejemplo el Process Explorer de Sysinternals aloja un driver SYS temporal y no requiere reinicio).

De todas formas si esta parece ser la unica posibilidad de matar el KAV creo que voy a pasar de él y no la implementaré en el Joiner, ahora te dejo la info para crear el driver para matar el KAV



Lo que yo haría sería crear un driver que volcara todo el contenido que hay en la memoria que aloja el driver del KAV, es decir... La idea es conseguir un LOG donde se muestren las llamadas a las APIS que hace el driver del KAV, saber si carga otros drivers, que instrucciones ejecuta, etc...

Una vez con esta información en nuestro poder podríamos centrarnos en atacar esos otros drivers del propio Windows o a las APIS que permiten monitorear todo el sistema

Esta es mi idea, no se si servirá de algo. Lo que si se es que no es tarea facil


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Hendrix en 16 Octubre 2007, 11:09 am
Mad, en posts anteriores dices: La idea de Hendrix....y esa no era mi idea  :xD :xD

Por lo del bug del driver...es cierto, lo conocia desde hacer tiempo, aunque no recuerdo que dejara eejcutar codigo, creia que provocaba una BSOD solamente... :-\ :-\

Por el tema drivers, Mek me proporcionó la DDK para Fasm, e echo algunos drivers, aunque poca cosa, si quereis puedo mirar de hacer el driver ese que comentas Mad  ;)

PD: Hay (o habia, no lo encuentro :-\) un articulo sobre drivers "anti-cheats" que hookeaban la SSDT o la SDT (no lo recuerdo) y hablaron sobre como hookear direcciones ya hookeadas por esos drivers, es una pena que no encuentre el post... :-\ :-\


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: byebye en 16 Octubre 2007, 13:31 pm
yo te puedo ayudar a hookear el kernel hendrix. de hecho hacer un solo driver para matar todos los avs no es mucho codigo y es menos que escribir un modulo por av.

digamos que el av este hookea X funciones, es facil saber que esta hookeando haciendo un dump con windbg. ahora ¿como se matan procesos desde un driver?

PsLookupProcessByProcessId
PspTerminateProcess

simplemente con estas dos funciones se pueden matar todos los procesos. la primera es para conseguir la EPROCESS requerida por la segunda.

push buffer_para_eprocess
push pid
call [PsLookupProcessByProcessId]

push 0
push buffer_para_eprocess
call [PspTerminateProcess]

con esto ya estaria, lo unico que se tiene es que pasar el pid desde la aplicacion en ring3 a la aplicacion en ring0.

saludos.


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Hendrix en 16 Octubre 2007, 13:47 pm
Eso mismo te hiba a decir, seria para matar aplicaciones que se peudan "localizar" desde Ring3....para finalizar drivers como se haria???Ya que con el driver del Kav funcionando seria inutil finalizar su proceso  ;)


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: byebye en 16 Octubre 2007, 13:58 pm
no creas que seria inutil, sabiendo que funciones hookea se restauran por ejemplo. despues yo creo que el proceso en ring3 se comunica con los drivers y estos trabajan si ese proceso no esta los drivers no hacen nada. todo es probar y ya veriamos como anularlos.


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Hendrix en 16 Octubre 2007, 14:19 pm
Ok, por la noche me metere a probarlo... ;) ;)

Un Saludo  :)

Por cierto, como ejecutas los drivers sin tener que reiniciar??? :huh:


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: byebye en 16 Octubre 2007, 14:26 pm
los añado como servicio y despues pido que se inicien. a la hora de estar escribiendolos por comodidad uso osrloader.


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: nhaalclkiemr en 16 Octubre 2007, 15:23 pm
Weno yo en este tema ya no me meto k no se mucho pero parece k va a ser la única solución, es cuestión de probar...a ver k sale :xD

Saludos ;)


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Hendrix en 16 Octubre 2007, 21:27 pm
los añado como servicio y despues pido que se inicien. a la hora de estar escribiendolos por comodidad uso osrloader.

OSRLoader u OSLoader??? si es la primera, puedes pasarme link???ya que no encuentro nada en google... :-\


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: byebye en 16 Octubre 2007, 23:28 pm
aqui te lo dejo. en service start deja demand pq si tiene algun fallo el driver y te da pantallazo te lo dara despues cuando reinicies.


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Hendrix en 17 Octubre 2007, 10:48 am
An final lo encontre, pero gracias de todos modos....una cosa, para deprar el driver me baje el Windbg, pero me dice que para depurarlo tienes que estar en otro PC y conectarse a ese PC para depurarlo, no hay otro modo??? :-\ :-\

Muchas gracais  :)


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: byebye en 18 Octubre 2007, 00:36 am
Citar
pero me dice que para depurarlo tienes que estar en otro PC y conectarse a ese PC para depurarlo, no hay otro modo???

No, esta es la unica forma que hay. lo puedes hacer de otra forma, para saber si los resultados que esperas son los correctos. bajas dbgview y usas DbgPrint para tu ver que todo esta correcto. por ejemplo yo uso esto:

Código:
     push eax
     push msg3
     call [DbgPrint]

msg3    db 'NTOSKRNL: %Xh',0

para ver si realmente encuentro la base de ntoskrnl, si te fijas DbgPrint es como printf le puedes especificar el formato. te dejo una imagen y veras que aunque no lo depures puedes saber perfectamente que esta pasando.

(http://img366.imageshack.us/img366/9851/pozimk8.png)
tb es bueno que configures win para que en caso de darte un pantallazo vuelque toda   la memoria asi despues podras depurar eso y sabras dnd a fallado.

saludos.


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: lll_swamp_lll en 18 Octubre 2007, 03:33 am
Mad se nota que te estás perdiendo la mitad de tu vida al no saber compilar en C  :xD por eso cambié hace bastante vb por c++ ... el nivel que ofrece vb es muy alto como para crear este tipoo de cosas... lo que necesitas en una compilación de bajo nivel como C o ensamblador tal como lo explicó : ̿̿̿̿̿̿̿̿̿ colaborador.


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Hendrix en 18 Octubre 2007, 11:28 am
Bien! ahora si...xDDD ahora ya puedo empezar a programar....Ahora a buscar las apis correspondientes y a ver que sale.

Por cierto, sabes mas paginas tipo:

http://undocumented.ntinternals.net/
http://jedi-apilib.sourceforge.net/native/NativeList.html

Para apis en modo Kernel???

Un Saludo  :)


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Mad Antrax en 18 Octubre 2007, 11:33 am
Mad se nota que te estás perdiendo la mitad de tu vida al no saber compilar en C  :xD

Ya, pero es que no me gusta C. Lo he intentado pero me aburre con suma facilidad, me quedo con VB :P

Por cierto, quien eres?


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Hendrix en 18 Octubre 2007, 11:48 am
Ya le voy pillando el tranquillo a esto...xDDD

Para quien quiera mas info, recomiendo esta web: http://www.osronline.com Tiene una DDK donde dan especificaciones de cada API.

Por cierto Mek, hice esto y me funciono:

Código
  1. import ntoskrnl,DbgPrint,'DbgPrint',\
  2.                IoGetCurrentProcess,'IoGetCurrentProcess'

A decir verdad funcióno de suerte, ya que no sabia que IoGetCurrentProcess estubiese en ntoskrnl, mi pregunta es: estan todas hay??? Ya que buse y busque y en todas las paginas (la de microsoft y la de osronline) solo dicen los headers que tienen que llevar, no las "librerias" en donde se encuentran... :-\ :-\

Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.

Bueno Mad, para gustos colores....la verdad es que con C se pueden hacer cosas como estas, y con ASM igual....Yo programo en C las menores veces posibles, si puedo lo hago o con ASM o en C#... :-\ :-\ si no me queda mas remedio pues lo hago con C....por cierto, si quieres un buen lenguaje mirate el C#, segurisimo que te gusta,s ino pideselo a E0N  :xD :xD



Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Mad Antrax en 18 Octubre 2007, 13:59 pm
Bueno Mad, para gustos colores....la verdad es que con C se pueden hacer cosas como estas, y con ASM igual....por cierto, si quieres un buen lenguaje mirate el C#, segurisimo que te gusta

Passsssssoooooo, llámame cabezón pero le he pillado gusto al VB6 y cualquier otro lenguaje me resulta muy complicado. Seguiré fiel al VB6 y COMO MUCHO me paso a .Net

xD


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: lll_swamp_lll en 18 Octubre 2007, 20:30 pm
...
..........................................................
...
..........................................................
...
..........................................................
...
..........................................................
...


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: byebye en 18 Octubre 2007, 21:53 pm
feo swamp

Citar
ya que no sabia que IoGetCurrentProcess estubiese en ntoskrnl, mi pregunta es: estan todas hay??

mirale la export a ntoskrnl


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: ~~ en 20 Octubre 2007, 12:34 pm
Citar
Bueno Mad, para gustos colores....la verdad es que con C se pueden hacer cosas como estas, y con ASM igual....Yo programo en C las menores veces posibles, si puedo lo hago o con ASM o en C#...   si no me queda mas remedio pues lo hago con C....por cierto, si quieres un buen lenguaje mirate el C#, segurisimo que te gusta,s ino pideselo a E0N 

Si, si, lo apollo C# es wenisimo y muy facil, te recomiendo q lo mires, aunke ya puesto podrias aprender C++ q es mas potente xDD (si aprendes C++ C# es cuestion de ponerse una semana, lo digo por experiencia...) pero bueno, tu haz lo q kieras... Yo solo te digo q C# da 1000 vueltas a VB6 en todo, hasta en la facilidad para crear interfaces  :P

Ya volviendo al tema principal: me mirare todo el hilo, ya q llevo algun tiempo off y miraré a ver si puedo hecharte una mano con las cosas en C ;)


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Freeze. en 23 Octubre 2007, 03:24 am
Hola, yo pienso que matar AV/FW es muy facil.

Pero no en todos los casos. Por lo menos para mi han sido imposibles:

AVG Free
Kaspersky 7.0
Norton IS
Zone Alarm
OutPost Firewall


De resto lo que mas tarda es codear xD



Lo unico que se debe hacer al momento de Matar AVs es examinar muy bien sus archivos, el registro, los procesos y servicios.

PD: De hecho hay AVs que con desactivar el Servicio se matan :xD :xD ajajajaa

PD2: No insistan matar al KAV es muy dificil :xD por no decir imposible :xD


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: byebye en 23 Octubre 2007, 04:33 am
Citar
PD2: No insistan matar al KAV es muy dificil  por no decir imposible

imposible seguro que no es. ya esta claro lo que el hace y es por ejemplo en openprocess if pid=pid_del_kav return ERROR_ACCESS_DENIED y cositas asi. lo que hay que hacer es lo que hay que hacer.


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Hendrix en 23 Octubre 2007, 10:51 am
Mek, para finalizar el driver del Kav tengo que usar el IoDeleteDevice (http://www.osronline.com/DDKx/kmarch/k104_3wky.htm), no es asi??? Pero en este caso necesitaria el DeviceObject del Kav, como lo saco??? :-\

Eso de haber tantisimas apis y no saber trabajar con casi ninguna me da rabia  :xD no hay mas remedio que trabajar con ellas y aprender  :)


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: <?BRoWLi?> en 23 Octubre 2007, 14:31 pm
Citar
Ya, pero es que no me gusta C. Lo he intentado pero me aburre con suma facilidad, me quedo con VB

Es como comparar a un futbolista juvenil local, con un futbolista profesional e internacional.


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Xerok1! en 23 Octubre 2007, 16:59 pm
voy a por el norton  :P :P :P  :xD :xD...esty en ello ya..os ire contando los progresos...cuando tenga tiempo ;)
un saludo! :) :)


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: byebye en 23 Octubre 2007, 21:56 pm
Citar
Mek, para finalizar el driver del Kav tengo que usar el IoDeleteDevice, no es asi??? Pero en este caso necesitaria el DeviceObject del Kav, como lo saco???

eso yo le veo problemas pq a saber donde tiene ese metido el morro lo cierras y despues pantallazo. lo mejor es y lo probe con el sxe que no dejaba injectar, es hookear las funciones que el hookea y no darle a el el control. y no todas las funciones con matar el proceso y poco mas yo creo que bastaria.

saludos.

PD: te dejo una funcion par hookear la funcion que le pases por argumento

Código:
proc GetAddr n
     mov eax, 4
     mov ecx,[n]
     mul ecx
     mov ecx,[KeServiceDescriptorTable]  ;LocaLizar KiServiceTable
     mov ecx,[ecx]                       ;KierviceTable
     add eax,ecx
     ret
endp         


despues la uss asi:

Código:
push 7ah    ; Numero de la funcion
     call GetAddr
     mov ecx, _NtOpenProcess  ;Direccion de la funcion que remplaza a la original
     mov [eax], ecx   ; y la escribes en la direccion que toca (que nos devolvio la funcion)


se me olvido ponerte que era el numero de la funcion. si desensamblas zwopenprocess veras esto:

Código:
77F65E55 >  B8 7A000000     MOV EAX,7A
77F65E5A    BA 0003FE7F     MOV EDX,7FFE0300
77F65E5F    FFD2            CALL EDX
77F65E61    C2 1000         RET 10


ves el numero? pues eso es lo que interesa de cada funcion. este numero no es fijo pero se puede leer en runtime.


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Hendrix en 24 Octubre 2007, 00:10 am
Asi de simple nos cepillariamos el hookeo a la zwopenprocess??? :o

TEndre que ponerme a leer bastante sobre hooking en kernel land, ya que me es bastante complicado, este cambio de "land" es bastante grande  :xD

Me recomiendas algo en español??? (Se que hay poca cosa :S)

Si no me tender que conformar con los tochos que hay por hay "in english"...

Intentare hacer practicas con el Driver del Kav  :-\



Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: nhaalclkiemr en 24 Octubre 2007, 15:09 pm
A ver si cuando alguien consiga algo postea el driver o algo...o por privado al menos :-[

Freeze, recuerda "Imposible is nothing"

Saludos ;)


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: byebye en 24 Octubre 2007, 18:02 pm
Citar
Asi de simple nos cepillariamos el hookeo a la zwopenprocess???

no, asi de simple hookeas el kernel. pero claro si kav ya a hookeado tb lo jodes a el ya que no se llamara a su funcion. en español no hay nada almenos publico o esta muy escondido. pero vamos te explico yo aqui en un momento como hookear la ssdt.

localizamos la base de el kernel:

Citar
lkd> dc nt
804d4000 00905a4d 00000003 00000004 0000ffff  MZ..............

OK,804d4000h

Citar
lkd> dd KeserviceDescriptorTable
8054c540  80502da8 00000000 0000011c 805033c4

OK, 80502da8h =KiServiceTable vamos a ver que nos espera aqui.


Código:
lkd> dd 80502da8
80502da8  80596d42 8057f565 8057d419 805c281a
80502db8  805754d4 806188d8 8061aa48 8061aa85
80502dc8  8056c5ec 806272c6 806183d4 8057c753
80502dd8  806123bb 8057d77a 80577729 8060bd61
80502de8  8057d532 8058feb9 805617f0 805536d3
80502df8  805100c5 8060fd31 8056720f 804e9362
80502e08  8057ac7a faa87818 8057d3e4 8062be5e
80502e18  8061b5a9 80597234 8062c08a 805759e6


lo ves? un array de punteros a funciones, de ahi que en la funcion que puse multiplicase por 4 para llegar a la posicion de la funcion (4 bytes por elemento). pues solo tenemos que escribir ahi la direccion de nuestra funcion, y si te fijas todas las direcciones empiezan por 80XXX como vimos antes la base, entonces se puede verificar que funciones estan hookeadas. antes de escribir verifica el registro CR0 no tenga el bit de proteccion de escritura y te de un pantallazo.

y eso es todo, no es nada complicado lo malo es la escasa o nula informacion. pero tocando se aprende jeje.

saludos.


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Hendrix en 24 Octubre 2007, 18:28 pm
Machas gracias tio, sobretodo por el tiempo que empleas explicandome esto, lo que e entendido, sila funcion no empieza por 80 es que esta hookeado,no?? Y otra cosa, como "dumpeas" esto??? que programa usas para hacerlo??

Muchas gracias ;)


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: byebye en 24 Octubre 2007, 18:38 pm
claro, si te fijas la base del kernel era 80XX pues tiene que esta dentro de, si no es que esa funcion esta hookeada. uso windbg, kernel debug > pestaña local.


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Hendrix en 24 Octubre 2007, 20:04 pm
Bua, en el Windbg se tiene que hacer por conexion de PC's, no??? eso es lo que no me gusta :S

Bueno, muchas gracias  ;)


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Eternal Idol en 24 Octubre 2007, 20:10 pm
Bua, en el Windbg se tiene que hacer por conexion de PC's, no??? eso es lo que no me gusta :S

Bueno, muchas gracias  ;)

Si es XP o superior podes usar lo que te dijo ̿̿̿̿̿̿̿̿̿ . File>>Kernel Debug>>Local, podes ver y modificar la memoria pero no depurar realmente.

Agrego ya que estamos que tambien se puede usar el LiveKd (http://www.microsoft.com/technet/sysinternals/SystemInformation/LiveKd.mspx) de Sysinternals para Windows 2000 y el descontinuado SoftICE para depurar localmente.


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Hendrix en 24 Octubre 2007, 20:24 pm
Muchas gracias eternal, es que no tenia el Pc para probarlo (no estoy en casa)


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Eternal Idol en 24 Octubre 2007, 20:25 pm
Muchas gracias eternal, es que no tenia el Pc para probarlo (no estoy en casa)

De nada, pero igual en cuanto quieras depurar tu codigo (que si escribis algun modulo de modo Kernel lo vas a querer hacer seguro) mejor que vayas preparando dos maquinas con puerto serial o firewire y su correspondiente cable.


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Hendrix en 24 Octubre 2007, 20:33 pm
intentare pasar sin, con el Debugger ese (no me acuerdo como se llama)



Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Hendrix en 24 Octubre 2007, 21:48 pm
Haber, ahora ya estoy en casa, e intentado hacer practicas y tengo un fallo (ya sabia que lo tendria), aqui el codigo:

Código
  1. format PE native
  2.  
  3. entry DriverEntry
  4.  
  5. include 'INCLUDE\win32a.inc'
  6. include 'INCLUDE\ddk\structs.inc'
  7. include 'INCLUDE\ddk\ntddk.inc'
  8. include 'INCLUDE\ddk\ntstatus.inc'
  9. include 'INCLUDE\ddk\native_api.inc'
  10. include 'INCLUDE\ddk\stuff.inc'
  11.  
  12.  
  13.  
  14. section '.c' code readable writeable executable
  15.  
  16. proc GetAddr n
  17.     mov eax, 4
  18.     mov ecx,[n]
  19.     mul ecx
  20.     mov ecx,[KeServiceDescriptorTable]  ;LocaLizar KiServiceTable //Aqui el fallo
  21.     mov ecx,[ecx]                       ;KierviceTable
  22.     add eax,ecx
  23.     ret
  24. endp
  25.  
  26. proc DriverEntry DriverObject, rp
  27.     push msg
  28.     call [DbgPrint]
  29.     call [IoGetCurrentProcess]
  30.     push eax
  31.     push msg3
  32.     call [DbgPrint]
  33.     push 7ah    ; Numero de la funcion
  34.     call GetAddr
  35.     push eax
  36.     push msg4
  37.     call [DbgPrint]
  38.     mov eax,STATUS_SUCCESS
  39.     ret
  40. endp
  41.  
  42. section '.d' data readable writeable
  43.  
  44. msg  db 'Driver cargado',0
  45. msg3 db 'Mi PID es: %Xh',0
  46. msg4 db 'La direccion de zwopenprocess es: %Xh',0
  47.  
  48. data import
  49.  
  50. syslibrary ntoskrnl,'ntoskrnl.exe'
  51.  
  52. import ntoskrnl,DbgPrint,'DbgPrint',\
  53.                IoGetCurrentProcess,'IoGetCurrentProcess'
  54.  
  55.  
  56. end data
  57.  
  58. section '.reloc' data fixups readable discardable

El fallo es en la linea que marque, se supone que se tiene que "declarar" o algo, no??? e estado mirando otros codigos aprecidos (http://www.rohitab.com/discuss/index.php?showtopic=17892&mode=threaded&pid=10020467) y tampoco se declara....Sacame de dudas Mek  :xD



Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: byebye en 24 Octubre 2007, 21:53 pm
es exportada por ntoskrnl

Código:
import ntoskrnl,DbgPrint,'DbgPrint',\
                IoGetCurrentProcess,'IoGetCurrentProcess',\
                KeServiceDescriptorTable,'KeServiceDescriptorTable'
               

PD: mirate en el ddk ntosrnl.inc y veras que sorpresa jeje, no estan todas pero las puedes ir añadiendo a mano.



Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Hendrix en 24 Octubre 2007, 22:10 pm
Por fin lo e cargado.... :xD :xD Me a dado esto:

Citar
Driver cargado
Mi PID es: 86FC69C8h
La direccion de zwopenprocess es: 80552568h

Por lo que se puede ver que zwopenprocess no esta hookeada, y yo me pregunto, se puede hacer el proceso inverso??? es decir, sacar desde la funcion el nombre de esta funcion??? para asi "rastrear" la SSDT para buscar que apis estan hookeadas???

En el post que trabajasteis el sexe vi que el tio que tambien participaba tenia un programa para ver que API's estaban hookeadas por el sexe, este porgrama qual es???

Por si te sirve de algo, aqui te dejo el dumpeado de la SSDT:

Citar
lkd> dd 868a2588
868a2588  80598746 805e5914 805e915a 805e5946
868a2598  805e9194 805e597c 805e91d8 805e921c
868a25a8  8060a880 8060b5d2 805e0cac 805e0904
868a25b8  805c9928 805c98d8 8060aea6 805aa334
868a25c8  8060a4be 8059cbbc 805a4786 805cb406
868a25d8  804feed0 8060b5c4 8056ae64 805343f2
868a25e8  80603b90 aae47aa0 805e9694 80618a56
868a25f8  805edb86 80598e34 80618caa 805986e6

Un Saludo  :)


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Eternal Idol en 24 Octubre 2007, 22:16 pm
Por cierto IoGetCurrentProcess no devuelve un PID sino un PEPROCESS que siempre va a ser el de SYSTEM (DriverEntry se ejecuta siempre bajo el contexto de un hilo del sistema). PID = PsGetCurrentProcessId.

Una tecnica que se usa normalmente es apoyarse en NTDLL.dll - especialmente para las funciones que no estan exportadas - donde hay stubs que pasan a modo Kernel con el numero del servicio correspondiente, ej.:

ntdll!ZwCreateFile:
77f3f414 b83c000000      mov     eax,3Ch << numero del servicio
77f3f419 ba0003fe7f      mov     edx,offset SharedUserData!SystemCallStub (7ffe0300)
77f3f41e ff12            call    dword ptr [edx]
77f3f420 c22c00          ret     2Ch

Otra cosa, las funciones esas son las Nt* no Zw*. En modo Usuario no hay diferencia (una es alias de la otra) pero en modo Kernel no es lo mismo.

http://www.osronline.com/article.cfm?article=257
http://www.osronline.com/login.cfm?prompt=ntInsider&id=266


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Hendrix en 24 Octubre 2007, 22:22 pm
Si, ya sabia que no era el PID, aunque lo llame asi por llamarlo de algun modo  :)

Por cierto eternal, el IoDeleteDriver, que le tengo que pasar para terminar el proceso de mi driver??? el PEPROCESS?? En google no me sale eso  :-\ ademas, en otros codigos vi que utilizaban el IoDeleteSymbolicLink, pero tampoco se que pasarle....

Muchas gracias a los 2  :)


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Eternal Idol en 24 Octubre 2007, 22:30 pm
Por cierto eternal, el IoDeleteDriver, que le tengo que pasar para terminar el proceso de mi driver??? el PEPROCESS??

Eso lo unico que hace es dereferenciar un PDRIVER_OBJECT y no esta documentado,  no te lo recomiendo para nada. Un driver no tiene un proceso, se ejecuta en un hilo bajo el contexto de un proceso no determinado.

En google no me sale eso  :-\ ademas, en otros codigos vi que utilizaban el IoDeleteSymbolicLink, pero tampoco se que pasarle....

A IoDeleteSymbolicLink se le pasa un PUNICODE_STRING, basicamente una cadena que hace de enlace con un driver para comunicarse desde modo Usuario.


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: byebye en 24 Octubre 2007, 22:31 pm
Citar
el PEPROCESS?? En google no me sale eso

En windbg dt _EPROCESS


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Eternal Idol en 24 Octubre 2007, 22:36 pm
Por lo general las estructuras se suelen declarar asi en el DDK:

Código:
typedef struct _NOMBRE
{
  //campos
} NOMBRE, *PNOMBRE;


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Hendrix en 24 Octubre 2007, 22:43 pm
Ok, asi que no hay posibilidad de que el driver se "termine" el mismo, no??

Bueno, no hace falta  ;)

Gracias Eternal  ;)


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Eternal Idol en 24 Octubre 2007, 22:48 pm
Ok, asi que no hay posibilidad de que el driver se "termine" el mismo, no??

Bueno, no hace falta  ;)

Gracias Eternal  ;)

Un driver de verdad lo mas probable es que si pero un modulo de modo Kernel de este tipo es dificil que tenga rutina de descarga. Igual como te dijeron antes con cortar todos los puntos donde intercepta la funcionalidad que queres ... da lo mismo que siga cargado. Otra cosa, en 64 bits hay que olvidarse de los hooks (al menos el software comercial).

Documentacion WDK (http://www.microsoft.com/whdc/DevTools/WDK/WDKdocs.mspx) (Windows Driver Kit).


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Hendrix en 24 Octubre 2007, 22:56 pm
Cita de: Eternal Idol link=topic=184050.msg882166#msg882166
Un driver de verdad
[/quote

Con driver de verdad te refieres a un driver firmado????


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Eternal Idol en 24 Octubre 2007, 23:15 pm
Con driver de verdad te refieres a un driver firmado????

No, me referia al concepto primigenio de device driver (controlador de dispositivo) y a que en estos tiempos un driver WDM por ejemplo tiene que especificar una rutina de descarga (DriverUnload en PDRIVER_OBJECT).


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: byebye en 24 Octubre 2007, 23:21 pm
Citar
Otra cosa, en 64 bits hay que olvidarse de los hooks (al menos el software comercial).

respecto a esto, no ngo ni idea pq noe leido nada, pero porcasualidad si di con un tema que explicaban algo de eso y creo q dijeron que si se podia, de otra forma pero llegaban a lo que se queria.

repito no recuerdo dnd lo vi y no se que tendra de cierto.


y para hendrix, el tema de desargar el driver siempre hablando de el tuyo. tienes que especificarle la rutina de salida y ahi tienes lo que necesitas. intenta descargarlo sin rutina de salida a ver que pasa.

mirate en ntddk.inc la estructura DRIVER_OBJECT


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Eternal Idol en 24 Octubre 2007, 23:27 pm
respecto a esto, no ngo ni idea pq noe leido nada, pero porcasualidad si di con un tema que explicaban algo de eso y creo q dijeron que si se podia, de otra forma pero llegaban a lo que se queria.

repito no recuerdo dnd lo vi y no se que tendra de cierto.

Poder se puede pero Windows tira abajo el sistema (PatchGuard (http://en.wikipedia.org/wiki/Patchguard)). Es cierto que se puede burlar (aunque cada vez que lo hagas y Microsoft se entere cerrara esa forma) pero un software comercial no se puede dar ese lujo. Microsoft ahora esta agregando muchos callbacks aunque un poco tarde (para NT 6.2) y algunos ya existen (registro, procesos, modulos, hilos, etc).

De cualquier manera casi todo se puede hacer sin hooks y es una practica de programacion pesima cuando existen alternativas documentadas ...


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: byebye en 24 Octubre 2007, 23:42 pm
gracias por la info.

Citar
De cualquier manera casi todo se puede hacer sin hooks y es una practica de programacion pesima cuando existen alternativas documentadas ...

hombre pesima jeje, yo diria sencilla y efectiva. hombre yo lo mas parecido que he leido de hacer "sin hooks" es esto (lo entrecomillo por la forma de hacerlo que viene siendo lo mismo) decia algo asi como establecer un marco SEH y cambiar un byte de la direccion a hookear al ejecutar ese codigo genera una excepcion y va a  rutina donde ejecutas lo que tengas que hacer. mas o menos era asi ahora no voy a poner aqui todo el texto, es mas en gamedeception en el foro esta, pero esto yo lo veo hacer lo mismo pero mas raro.

tu dices que hay alternativas documentdas,podrias dar mas informacion? no hace falta pegar un tocho con explicar la base despues ya se busca  documentacion.

saludos.


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Eternal Idol en 24 Octubre 2007, 23:59 pm
hombre pesima jeje, yo diria sencilla y efectiva.

Si hablamos de un software comercial que va a salir a la calle es una solucion pesima y tarde o temprano se paga.

hombre yo lo mas parecido que he leido de hacer "sin hooks" es esto (lo entrecomillo por la forma de hacerlo que viene siendo lo mismo) decia algo asi como establecer un marco SEH y cambiar un byte de la direccion a hookear al ejecutar ese codigo genera una excepcion y va a  rutina donde ejecutas lo que tengas que hacer. mas o menos era asi ahora no voy a poner aqui todo el texto, es mas en gamedeception en el foro esta, pero esto yo lo veo hacer lo mismo pero mas raro.

Como bien decis es otro tipo de hooking, tambien se puede aprovechar el "HotPatching" (mov edi, edi) que es mucho mas limpio y esta pensado (casi) para eso.

tu dices que hay alternativas documentdas,podrias dar mas informacion? no hace falta pegar un tocho con explicar la base despues ya se busca  documentacion.

A lo sumo pegaria un enlace  ;) Las alternativas dependen del campo, por ejemplo hookear (con cualquier metodo, SSDT, detours, etc) NtCreateFile es una estupidez cuando podemos crear un driver de tipo filtro para el filesystem. Con uno de estos podemos registrar un callback para la creacion de una sección (si, podemos bloquear jecutables asi - procesos, dlls, drivers).

Para trafico de red podemos hacer un Intermediate Driver de NDIS, para el registro hay callbacks en cantidad, para procesos, hilos y modulos tambien hay callbacks.
Y para NT 6.1 (antes tambien queria decir 6.1 y no 6.2, ups) hasta va a haber un callback para *OpenProcess  ;D

Filter drivers vs hooking (http://www.osronline.com/showThread.cfm?link=59591) y mas generico en realidad.

Windows Vista Security: An Introduction to Kernel Patch Protection (http://blogs.msdn.com/windowsvistasecurity/archive/2006/08/11/695993.aspx) Introduccion al problema y algunas alternativas existentes.


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Hendrix en 25 Octubre 2007, 13:25 pm
http://www.kriptopolis.org/jaqueando-vista

Lo lei hace dias y no me acordaba de donde  :xD


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Eternal Idol en 25 Octubre 2007, 13:33 pm
http://www.kriptopolis.org/jaqueando-vista

Lo lei hace dias y no me acordaba de donde  :xD

Tiene un año eh  :P

Como decia, una empresa no pude darse el lujo de desactivar o eludir el PatchGuard (que por supuesto es posible), la estabilidad en sus productos es una de las cosas mas importantes. Para hacer malware no hay problema ...


Título: Re: Ayuda: Programar módulos para un AV-Killer
Publicado por: Hendrix en 25 Octubre 2007, 13:36 pm
 :xD :xD :xD :xD :xD ni me habia fijado  :xD  :-\

Buena observación  :)