elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Ayuda: Programar módulos para un AV-Killer
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 3 4 5 [6] 7 8 Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda: Programar módulos para un AV-Killer  (Leído 23,448 veces)
Eternal Idol
Kernel coder
Colaborador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Ayuda: Programar módulos para un AV-Killer
« Respuesta #50 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 de Sysinternals para Windows 2000 y el descontinuado SoftICE para depurar localmente.


« Última modificación: 24 Octubre 2007, 20:23 pm por Eternal Idol » En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Hendrix
In The Kernel Land
Colaborador
***
Desconectado Desconectado

Mensajes: 2.276



Ver Perfil WWW
Re: Ayuda: Programar módulos para un AV-Killer
« Respuesta #51 en: 24 Octubre 2007, 20:24 pm »

Muchas gracias eternal, es que no tenia el Pc para probarlo (no estoy en casa)


En línea

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián
Eternal Idol
Kernel coder
Colaborador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Ayuda: Programar módulos para un AV-Killer
« Respuesta #52 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.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Hendrix
In The Kernel Land
Colaborador
***
Desconectado Desconectado

Mensajes: 2.276



Ver Perfil WWW
Re: Ayuda: Programar módulos para un AV-Killer
« Respuesta #53 en: 24 Octubre 2007, 20:33 pm »

intentare pasar sin, con el Debugger ese (no me acuerdo como se llama)

En línea

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián
Hendrix
In The Kernel Land
Colaborador
***
Desconectado Desconectado

Mensajes: 2.276



Ver Perfil WWW
Re: Ayuda: Programar módulos para un AV-Killer
« Respuesta #54 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

En línea

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián
byebye


Desconectado Desconectado

Mensajes: 5.093



Ver Perfil
Re: Ayuda: Programar módulos para un AV-Killer
« Respuesta #55 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.

« Última modificación: 24 Octubre 2007, 21:58 pm por ̿̿̿̿̿̿̿̿̿ » En línea

Hendrix
In The Kernel Land
Colaborador
***
Desconectado Desconectado

Mensajes: 2.276



Ver Perfil WWW
Re: Ayuda: Programar módulos para un AV-Killer
« Respuesta #56 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  :)
En línea

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián
Eternal Idol
Kernel coder
Colaborador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Ayuda: Programar módulos para un AV-Killer
« Respuesta #57 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
« Última modificación: 24 Octubre 2007, 22:19 pm por Eternal Idol » En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Hendrix
In The Kernel Land
Colaborador
***
Desconectado Desconectado

Mensajes: 2.276



Ver Perfil WWW
Re: Ayuda: Programar módulos para un AV-Killer
« Respuesta #58 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  :)
En línea

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián
Eternal Idol
Kernel coder
Colaborador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Ayuda: Programar módulos para un AV-Killer
« Respuesta #59 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.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Páginas: 1 2 3 4 5 [6] 7 8 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Modulos para ww2.0.2
Wireless en Linux
marisiverce 0 1,628 Último mensaje 15 Abril 2011, 02:55 am
por marisiverce
Ayuda implementando modulos
ASM
Vaagish 0 2,332 Último mensaje 14 Mayo 2013, 22:06 pm
por Vaagish
[PHYTON-AYUDA] ¿Donde guardar modulos para luego importarlos?
Scripting
Santi__ 2 2,059 Último mensaje 25 Febrero 2016, 20:47 pm
por LaThortilla (Effort)
ayuda con modulos
Programación General
kerberos91 1 2,287 Último mensaje 28 Septiembre 2018, 03:49 am
por Captain Nemo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines