Autor
|
Tema: Mostrar librerias cargadas en programa (Leído 23,464 veces)
|
xv0
Desconectado
Mensajes: 1.027
|
Vaya que interesante se esta poniedo todo esto, lastima que no este dentro de mi onda. @cpu2: Si lo hacía con lodsd doy por hecho que es para ahorra unos cuantos bytes...
Si no es una shellcode lo veo una tonteria ahorrarse esos 4 bytes, ya que con mi metodo es 1 OPS y con ese son 6 OPS, es una tonteria la verdad. Vaya macros jajaja. Un saludo.
|
|
|
En línea
|
|
|
|
Karcrack
Desconectado
Mensajes: 2.416
Se siente observado ¬¬'
|
Si no es una shellcode lo veo una tonteria ahorrarse esos 4 bytes, ya que con mi metodo es 1 OPS y con ese son 6 OPS, es una tonteria la verdad.
Yo es principalmente en las shellcodes cuando doy más importancia al tamaño del payload que a los ciclos... Además no debe tener bytes nulos. (Al menos con la definición estricta que yo conozco de shellcode, es decir, no posicional y null-free)
|
|
|
En línea
|
|
|
|
Vaagish
Desconectado
Mensajes: 875
|
Hay mucho macro para generar constantes en tiempo de ensamblado. Si lo ensamblas verás que no hay cadenas de texto. Se generan los hashes y luego se comparan de la lista de librerías cargadas. Eso no lo vi aun,, es muy buena estrategia! No he podido investigarlo bien (estoy en el trabajo, cada tanto me escapo un poco jeje) Cuanto menos tiempo de kernel gaste el antivirus más fluido irá el sistema. Se intentan delegar las tareas menos cruciales a usermode por cuestiones de optimización. También un crasheo de la DLL (p.e intencionado para saltarse la protección ) estaría localizado en el proceso y no reventaría todo el motor del antivirus o el SO. Claro,, tiene mucha lógica.. Si quisieses hacer una detección genérica entrarían en juego muchos otros factores. Hay diferentes técnicas para detectar entornos virtualizados sin tener que hacer blacklisting. Por ejemplo utilizar instrucciones/llamadas que sepas que no siguen la ruta habitual y hacer comparaciones de tiempo. (Artículo al respecto) +100! Descargado, guardado en lecturas urgentes jeeje Vaya que interesante se esta poniedo todo esto, lastima que no este dentro de mi onda. A mi en realidad lo que mas me gusta de windows es la posibilidad de hacer estas cosas..
|
|
|
En línea
|
|
|
|
Vaagish
Desconectado
Mensajes: 875
|
Por probar,, solo por el simple echo de probar que pasaba,, le di esta instruccion al programa: hLib db "snxhk.dll", 0 invoke FreeLibrary, addr hLib
Y.... se cierra el sandbox O sea,, en vez de mantenerlo un tiempo ahi,, a modo de prueba,,,, ta tannnn... se cierra y se ejecuta el code normalmente! No es que haya descubierto algo,,, en realidad no hice nada extraño,,, pero me parece sumamente raro que se cierre enseguida el sandbox,, da la impresión que no lo mantiene en análisis... Que opinan?? Que creen que este pasando?
|
|
|
En línea
|
|
|
|
x64core
Desconectado
Mensajes: 1.908
|
@x64Core: Yo voto por mí ¿No has visto los últimos enlaces del tema? El último argumento de Buster_BSA es que si existiesen vulnerabilidades de ese tipo valdrían millones; las hay. Y seguro que con suficientes contactos podrías encontrar un 0day por ahí que te permitiese elevación de privilegios local en la máquina invitado en VirtualBox y Windows XP Karcrack, El problema principal en el tema '¿Saltarse heuristicas y sandbox modeando?' fue la confusión de terminos Si el Antivirus esta detectando el malware por heuristica es porque esta siendo emulado, VM y lo que se debe hacer es detectar si el código esta siendo emulado además de cualquier posible VM. Lo mismo esta sucediendo aquí por eso estoy de acuerdo con Buster. Y Además noté que en tu código agregas guard32.dll/guard64.dll para supuesta detección de la sandbox pero en ambos casos este o no el programa en la sandbox siempre será cargado lo unico que se conseguirá es que el programa no se ejecute en ningun Windows que tenga instalado el Comodo, ese no es el punto no? Diras que los hooks de modo usuario son la sandbox porque probablemente lo leiste en algun articulo o te equivocaste de nombre del modulo? Por eso el uso de sandbox en los Antivirus en la mayoria de los casos es decisión del usuario ya que la sandbox de los Antivirus sólo restringen acciones maliciosas. Y habria que aclarar antes de entrar en confusión como sucedio en el otro tema, Vagish quiere detectar si el programa esta siendo analizado por el Antivirus sandbox/VM. En el caso de Avast que tiene una sandbox y se logra detectar si el programa esta dentro pero eso no quiere decir que el malware será indetectable, la sandbox de Avast tiene otro tipo de tarea como dije por eso el problema se resuelve mediante la detección del emulación. Agregado: Noten la diferencia entre los programas como Sandboxie y el Analisis de Antivirus.
|
|
« Última modificación: 25 Abril 2014, 03:57 am por x64Core »
|
En línea
|
|
|
|
Karcrack
Desconectado
Mensajes: 2.416
Se siente observado ¬¬'
|
Karcrack, El problema principal en el tema '¿Saltarse heuristicas y sandbox modeando?' fue la confusión de terminos Si el Antivirus esta detectando el malware por heuristica es porque esta siendo emulado, VM y lo que se debe hacer es detectar si el código esta siendo emulado además de cualquier posible VM. Lo mismo esta sucediendo aquí por eso estoy de acuerdo con Buster.
Si el malware está siendo detectado por heurística es que PUEDE estar siendo emulado. La detección heurística estática también existe. No sé si hubo confusión con términos o no, lo que está claro es que la discusión se desvió a si era posible escapar de una VM (Yo entiendo que la sandbox o la heurística dinámica son también máquinas virtuales).
Y Además noté que en tu código agregas guard32.dll/guard64.dll para supuesta detección de la sandbox pero en ambos casos este o no el programa en la sandbox siempre será cargado lo unico que se conseguirá es que el programa no se ejecute en ningun Windows que tenga instalado el Comodo, ese no es el punto no? Diras que los hooks de modo usuario son la sandbox porque probablemente lo leiste en algun articulo o te equivocaste de nombre del modulo?
Si lees la página original donde posteé el código verás que es una mejora de otro código propuesto por un usuario. Y sí, la lista de DLLs es la del código original. Este código tan sólo detecta si alguna de esas librerías está en la lista del PEB. La idea de la detección no es cerrarse sin más, sino hacer unhooking. En este caso Comodo y Avast lo ponen bastante fácil...
Y habria que aclarar antes de entrar en confusión como sucedio en el otro tema, Vagish quiere detectar si el programa esta siendo analizado por el Antivirus sandbox/VM.
Yo diría que Vaagish quiere saber si una librería está cargada en el proceso...
Agregado: Noten la diferencia entre los programas como Sandboxie y el Analisis de Antivirus.
¿Cuál es la diferencia según tú? Para mí hay bien poca en el caso de muchos AVs.
@Vaagish: Me sorprende que así puedas descargar la librería. ¿Seguro que no te lo detecta como malicioso al finalizar el análisis?
|
|
|
En línea
|
|
|
|
x64core
Desconectado
Mensajes: 1.908
|
Si el malware está siendo detectado por heurística es que PUEDE estar siendo emulado. La detección heurística estática también existe. No sé si hubo confusión con términos o no, lo que está claro es que la discusión se desvió a si era posible escapar de una VM (Yo entiendo que la sandbox o la heurística dinámica son también máquinas virtuales).
Heuristica estatica? Más bien seria escaneo de bytes utilizando algún algoritmo. Pero sí, la conversación se desvio. ¿Y como demonios la heuristica dinamica puede ser una maquina virtual? La tecnologia heuristica dinamica ya existia antes que la implementación de VMs en Anvitirus de hecho hoy en dia hay Antivirus que no tiene una VM pero sí un emulador de código y que hacen uso de heuristica dinamica junto con el emulador para la detección. por ejemplo Avira, Eset nod32. Si lees la página original donde posteé el código verás que es una mejora de otro código propuesto por un usuario. Y sí, la lista de DLLs es la del código original. Este código tan sólo detecta si alguna de esas librerías está en la lista del PEB. La idea de la detección no es cerrarse sin más, sino hacer unhooking. En este caso Comodo y Avast lo ponen bastante fácil...
En Comodo sobre Windows de 32-bits de nada sirve hacer unhooking de modo usuario, apuesto lo mismo que en Avast, no sé no lo he comprobado, en Comodo sobre Windows de 64-bits te pregunto de que sirve hacer unhooking de modo usuario por ejemplo en NtCreateFile para escribir en el disco y saltarse la sandbox? Yo diría que Vaagish quiere saber si una librería está cargada en el proceso...
Bueno en realidad yo cite una duda de él pensar que mediante la detección de modulos cargados por la sandbox haria de tu malware sea indetectable por los Antivirus es erroneo. ¿Cuál es la diferencia según tú? Para mí hay bien poca en el caso de muchos AVs.
Mirar sandboxie es simplemente una sandbox, no hay analisis para la detección y eliminación del malware. Avast, Comodo son Antivirus que incluyen una sandbox pero eso no quiere decir que si el usuario decida no ejecutar en ella el archivo no seria analisado, este es siempre analizado. habria que saber Pero Karcrack, si piensas que estoy equivocado danos tu punto de vista demostrando que estoy en lo incorrecto, si fuese así es tiempo de programar algún POC
|
|
|
En línea
|
|
|
|
Karcrack
Desconectado
Mensajes: 2.416
Se siente observado ¬¬'
|
Heuristica estatica? Más bien seria escaneo de bytes utilizando algún algoritmo. Pero sí, la conversación se desvio. ¿Y como demonios la heuristica dinamica puede ser una maquina virtual? La tecnologia heuristica dinamica ya existia antes que la implementación de VMs en Anvitirus de hecho hoy en dia hay Antivirus que no tiene una VM pero sí un emulador de código y que hacen uso de heuristica dinamica junto con el emulador para la detección. por ejemplo Avira, Eset nod32.
Yo no me estoy inventando ningún término. Puedes leer más al respecto y verás que la heurística dinámica va cogida de la mano de la emulación de código y también del análisis de comportamiento (behavioral).
En Comodo sobre Windows de 32-bits de nada sirve hacer unhooking de modo usuario, apuesto lo mismo que en Avast, no sé no lo he comprobado, en Comodo sobre Windows de 64-bits te pregunto de que sirve hacer unhooking de modo usuario por ejemplo en NtCreateFile para escribir en el disco y saltarse la sandbox? Comodo no lo he probado pero esto funciona con el Avast: http://www.malwaretech.com/2013/09/fighting-hooks-with-hooks-sandbox-escape.html
Mirar sandboxie es simplemente una sandbox, no hay analisis para la detección y eliminación del malware.
Pensaba que hablabamos de diferencias en cuanto a las técnicas de sandboxing
Avast, Comodo son Antivirus que incluyen una sandbox pero eso no quiere decir que si el usuario decida no ejecutar en ella el archivo no seria analisado, este es siempre analizado. habria que saber
Avast ejecuta un fichero sospechoso dentro de la sandbox sin que le digas nada de nada. Decide si es potencialmente peligroso mediante heurística estática.
Pero Karcrack, si piensas que estoy equivocado danos tu punto de vista demostrando que estoy en lo incorrecto, si fuese así es tiempo de programar algún POC ¿Equivocado en qué?
|
|
|
En línea
|
|
|
|
Vaagish
Desconectado
Mensajes: 875
|
Buenas! Creo que esta charla es mas constructiva que en la versión anterior. ( http://foro.elhacker.net/buscador2-t378027.0.html;msg1807944#msg1807944)Tratemos de no desviarnos y buscar soluciones Bueno en realidad yo cite una duda de él pensar que mediante la detección de modulos cargados por la sandbox haria de tu malware sea indetectable por los Antivirus es erroneo. Noo,, claro.. la detección del modulo no haría al ejecutable indetectable,, por que lo haría sin otro método especialmente diseñado para eso? Este seria solo el principio.. Y habria que aclarar antes de entrar en confusión como sucedio en el otro tema, Vagish quiere detectar si el programa esta siendo analizado por el Antivirus sandbox/VM. Yo diría que Vaagish quiere saber si una librería está cargada en el proceso... Lo que esta pasando es que yo inicie el tema con un nombre, luego exprese para que queria "Mostrar librerias cargadas...." y de ahi se abrio todo el asunto.. por eso con confundimos.. Podríamos decir que el asunto en cuestión esta solucionado.. pero la charla se derivo a el asunto del sandbox que esta muy interesante..
@Vaagish: Me sorprende que así puedas descargar la librería. ¿Seguro que no te lo detecta como malicioso al finalizar el análisis? Nop. Eso es lo raro,, podría tratarse de un "pequeño error" en Avast? Es muy raro,, al descargar la librería, se cierra el sandbox y se ejecuta en la maquina real, como si hubiera terminado el análisis (el análisis de sandbox) esta claro que el AV puede seguir analizando el archivo, pero ya podríamos por ejemplo, escribir en la maquina, que no es poca cosa.. Voy a investigar mas hoy,, quien tenga avast lo puede probar.. PD: Es muy constructivo esto, yo pensaba que la heuristica y el analisis de comportamiento eran lo mismo. Saludos!! NEW: Penosamente, aunque predeciblemente, la librería no se descarga, no se que habrá pasada en la primer prueba, simplemente se cerro el SB, quizás termino el análisis (extraordinariamente rapido) y dio por concluido y no riesgoso. Y depende la cantidad de código, salta el AV o no al descargar la librería, pero no necesariamente se considera algo malo intentar descargarla.
|
|
« Última modificación: 25 Abril 2014, 20:22 pm por Vaagish »
|
En línea
|
|
|
|
x64core
Desconectado
Mensajes: 1.908
|
Yo no me estoy inventando ningún término. Puedes leer más al respecto y verás que la heurística dinámica va cogida de la mano de la emulación de código y también del análisis de comportamiento (behavioral).
¿No fue eso mismo lo que dije? Acabo que mirar en Avast internet security (Windows de 32-bits) Hooks: [*]len(5) ntdll.dll->LdrLoadDll [*]len(5) ntdll.dll->LdrUnloadDll [*]len(5) KERNEL32.dll->DefineDosDeviceW [*]len(5) KERNEL32.dll->SetLocaleInfoW [*]len(5) KERNEL32.dll->SetProcessShutdownParameters [*]len(5) comdlg32.dll->GetSaveFileNameW [*]len(5) ADVAPI32.dll->ChangeServiceConfig2A [*]len(5) ADVAPI32.dll->ChangeServiceConfig2W [*]len(5) ADVAPI32.dll->ChangeServiceConfigA [*]len(5) ADVAPI32.dll->ChangeServiceConfigW [*]len(5) ADVAPI32.dll->CloseServiceHandle [*]len(5) ADVAPI32.dll->ControlService [*]len(5) ADVAPI32.dll->CreateServiceA [*]len(5) ADVAPI32.dll->CreateServiceW [*]len(5) ADVAPI32.dll->DeleteService [*]len(5) ADVAPI32.dll->DeregisterEventSource [*]len(5) ADVAPI32.dll->EnumDependentServicesA [*]len(5) ADVAPI32.dll->EnumDependentServicesW [*]len(5) ADVAPI32.dll->EnumServicesStatusA [*]len(5) ADVAPI32.dll->EnumServicesStatusExA len(5) ADVAPI32.dll->EnumServicesStatusExW [*]len(5) ADVAPI32.dll->EnumServicesStatusW [*]len(5) ADVAPI32.dll->GetServiceDisplayNameA [*]len(5) ADVAPI32.dll->GetServiceDisplayNameW [*]len(5) ADVAPI32.dll->GetServiceKeyNameA [*]len(5) ADVAPI32.dll->GetServiceKeyNameW [*]len(5) ADVAPI32.dll->LockServiceDatabase [*]len(5) ADVAPI32.dll->LookupAccountNameW [*]len(5) ADVAPI32.dll->OpenSCManagerA [*]len(5) ADVAPI32.dll->OpenSCManagerW [*]len(5) ADVAPI32.dll->OpenServiceA [*]len(5) ADVAPI32.dll->OpenServiceW [*]len(5) ADVAPI32.dll->QueryServiceConfig2A [*]len(5) ADVAPI32.dll->QueryServiceConfig2W [*]len(5) ADVAPI32.dll->QueryServiceConfigA [*]len(5) ADVAPI32.dll->QueryServiceConfigW [*]len(5) ADVAPI32.dll->QueryServiceLockStatusA [*]len(5) ADVAPI32.dll->QueryServiceLockStatusW [*]len(5) ADVAPI32.dll->QueryServiceObjectSecurity len(5) ADVAPI32.dll->QueryServiceStatus [*]len(5) ADVAPI32.dll->QueryServiceStatusEx [*]len(5) ADVAPI32.dll->RegConnectRegistryW len(5) ADVAPI32.dll->RegisterEventSourceA [*]len(5) ADVAPI32.dll->RegisterEventSourceW [*]len(5) ADVAPI32.dll->RegisterServiceCtrlHandlerA [*]len(5) ADVAPI32.dll->RegisterServiceCtrlHandlerExA [*]len(5) ADVAPI32.dll->RegisterServiceCtrlHandlerExW [*]len(5) ADVAPI32.dll->RegisterServiceCtrlHandlerW [*]len(5) ADVAPI32.dll->ReportEventA [*]len(5) ADVAPI32.dll->ReportEventW [*]len(5) ADVAPI32.dll->SetServiceObjectSecurity [*]len(5) ADVAPI32.dll->SetServiceStatus len(5) ADVAPI32.dll->StartServiceA [*]len(5) ADVAPI32.dll->StartServiceCtrlDispatcherA [*]len(5) ADVAPI32.dll->StartServiceCtrlDispatcherW [*]len(5) ADVAPI32.dll->StartServiceW [*]len(5) ADVAPI32.dll->UnlockServiceDatabase [*]len(5) Secur32.dll->LsaRegisterLogonProcess len(5) USER32.dll->CreateDialogIndirectParamA [*]len(5) USER32.dll->CreateDialogIndirectParamAorW [*]len(5) USER32.dll->CreateDialogIndirectParamW [*]len(5) USER32.dll->CreateDialogParamA [*]len(5) USER32.dll->CreateDialogParamW [*]len(5) USER32.dll->CreateWindowExA [*]len(5) USER32.dll->CreateWindowExW [*]len(5) USER32.dll->DialogBoxIndirectParamA len(5) USER32.dll->DialogBoxIndirectParamAorW [*]len(5) USER32.dll->DialogBoxIndirectParamW [*]len(5) USER32.dll->DialogBoxParamA [*]len(5) USER32.dll->DialogBoxParamW [*]len(5) USER32.dll->EnumDesktopWindows [*]len(5) USER32.dll->EnumThreadWindows [*]len(5) USER32.dll->EnumWindows [*]len(5) USER32.dll->ExitWindowsEx [*]len(5) USER32.dll->FindWindowA [*]len(5) USER32.dll->FindWindowExA [*]len(5) USER32.dll->FindWindowExW [*]len(5) USER32.dll->FindWindowW [*]len(5) USER32.dll->GetClassInfoA len(5) USER32.dll->GetClassInfoExA [*]len(5) USER32.dll->GetClassInfoExW [*]len(5) USER32.dll->GetClassInfoW [*]len(5) USER32.dll->GetClassNameA [*]len(5) USER32.dll->GetClassNameW [*]len(5) USER32.dll->GetPropA [*]len(5) USER32.dll->GetPropW [*]len(5) USER32.dll->GetShellWindow [*]len(5) USER32.dll->GetWindowLongA [*]len(5) USER32.dll->GetWindowLongW [*]len(5) USER32.dll->MoveWindow [*]len(5) USER32.dll->RegisterClassA [*]len(5) USER32.dll->RegisterClassExA [*]len(5) USER32.dll->RegisterClassExW [*]len(5) USER32.dll->RegisterClassW [*]len(5) USER32.dll->RemovePropA [*]len(5) USER32.dll->RemovePropW [*]len(5) USER32.dll->SetDoubleClickTime [*]len(5) USER32.dll->SetParent len(5) USER32.dll->SetPropA [*]len(5) USER32.dll->SetPropW [*]len(5) USER32.dll->SetWinEventHook [*]len(5) USER32.dll->SetWindowLongA [*]len(5) USER32.dll->SetWindowLongW [*]len(5) USER32.dll->SetWindowPos [*]len(5) USER32.dll->SetWindowsHookExA [*]len(5) USER32.dll->SetWindowsHookExW [*]len(5) USER32.dll->SwapMouseButton [*]len(5) USER32.dll->UnhookWindowsHookEx [*]len(5) USER32.dll->UnregisterClassA [*]len(5) USER32.dll->UnregisterClassW len(5) WINSPOOL.DRV->AddPrintProcessorA [*]len(5) WINSPOOL.DRV->AddPrintProcessorW [*]len(5) WINSPOOL.DRV->AddPrintProvidorA [*]len(5) WINSPOOL.DRV->AddPrintProvidorW [*]len(5) ole32.dll->CoCreateInstance [*]len(5) ole32.dll->CoCreateInstanceEx [*]len(5) ole32.dll->CoGetClassObject [*]len(5) USERENV.dll->RegisterGPNotification [*]len(5) USERENV.dll->UnregisterGPNotification
No veo nada interesante a ser restaurado o algo, tendrias que decirme a que te referis con ese 'funciona'? Podes escribir en el disco? injección?. Además yo no creo que sea seguro forzar a Windows que carge dos modulos de ntdll a la vez, un tercero en WOW64. El ntdll tiene varias callbacks: Validación e inicialización de hilos, sincronización con APCs, comunicación con el kernel, etc. Me pregunto si ese scriptkiddie americano hizo todo ese analisis o sólo se le ocurrio joder en NTDLL...
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Crear un Programa que Registre Librerias
Programación Visual Basic
|
nahueld
|
4
|
2,728
|
5 Mayo 2008, 15:35 pm
por nahueld
|
|
|
imagenes en html cargadas en php
PHP
|
Chazy Chaz
|
2
|
2,586
|
30 Mayo 2012, 03:38 am
por Chazy Chaz
|
|
|
ayuda con DLL cargadas a memoria
.NET (C#, VB.NET, ASP)
|
spiritdead
|
4
|
3,500
|
7 Diciembre 2012, 18:07 pm
por spiritdead
|
|
|
como agregar librerias a un programa .exe creado con c
Programación General
|
Drewermerc
|
1
|
1,940
|
21 Abril 2014, 11:57 am
por eferion
|
|
|
Corta Introducción a SVG. Mostrar Figuras en HTML sin librerías y CiberSeguridad
Desarrollo Web
|
@XSStringManolo
|
0
|
1,488
|
21 Agosto 2019, 01:11 am
por @XSStringManolo
|
|