Bueno aquí dejo un ejemplo de una inyeccion DLL en Autoit bastante comentada. Testeado en W7 x32 y x64.
Agradecimientos a M3 y Pink.
#cs ----------------------------------------------------------------------------

	AutoIt Version: 3.3.8.1
	Author: Naker90

	Script Function:
	Inyecta una DLL en un proceso en ejecucion

	Testeado en W7 x32 y x64

	Agradecimientos a M3 & Pink

	Ejemplo de uso:
	InjectDLL('C:\Users\Naker90\Desktop\Mensaje.dll', 'calc.exe')

#ce ----------------------------------------------------------------------------

Func InjectDLL($sDLLPath, $sProcess)

	Const $PROCESS_ALL_ACCESS = 0x1F0FFF
	Const $MEM_RESERVE = 0x00001000
	Const $PAGE_READWRITE = 0x40

	;Obtenemos el PID del proceso a injectar
	Local $sProcessID = ProcessExists($sProcess)

	;Si el PID es 0, ejecutamos el proceso y obtenemos el PID de este
	If $sProcessID = 0 Then
		ShellExecute($sProcess)
		;Damos tiempo para que se abra el proceso, si no se da el tiempo de espera el proceso se cuelga
		Sleep(500)
		$sProcessID = ProcessExists($sProcess)
	EndIf

	;Abrimos el objeto del proceso existente
	Local $sOpen = DllCall('Kernel32.dll', 'handle', 'OpenProcess', 'dword', $PROCESS_ALL_ACCESS, 'bool', False, 'dword', $sProcessID)
	;depuramos para saber si existe algun error
	If Not ($sOpen[0]) Then
		MsgBox(64, 'ERROR', 'Hubo un error abriendo el proceso ' & $sProcess)
	EndIf

	;Reservamos memoria en el objeto del proceso que abrimos anteriormente
	Local $sStruct = DllStructCreate('byte[' & BinaryLen($sDLLPath) & ']')
	Local $sMemory = DllCall('Kernel32.dll', 'handle', 'VirtualAllocEx', 'handle', $sOpen[0], 'ptr', 0, 'ULONG_PTR', DllStructGetSize($sStruct), 'dword', $MEM_RESERVE, 'dword', $PAGE_READWRITE)
	;depuramos para saber si existe algun error
	If Not ($sMemory[0]) Then
		MsgBox(64, '', 'Hubo un error reservando memoria')
	EndIf

	;Escribimos en el espacio de memoria obtenido anteriormente la ruta de la DLL
	Local $sWriteMemory = DllCall('Kernel32.dll', 'int', 'WriteProcessMemory', 'handle', $sOpen[0], 'ptr', $sMemory[0], 'str', $sDLLPath, 'ULONG_PTR', DllStructGetSize($sStruct), 'ULONG_PTR', 0)
	;depuramos para saber si existe algun error
	If Not ($sWriteMemory[0]) Then
		MsgBox(64, '', 'Hubo un error en la escritura en memoria')
	EndIf

	;Obtenemos la direccion de LoadLibrary, para ello utilizamos GetProcAdress.
	Local $sGetModuleHandle = DllCall('Kernel32.dll', 'handle', 'GetModuleHandleA', 'str', 'Kernel32.dll')
	Local $sGetProcAdress = DllCall('Kernel32.dll', 'handle', 'GetProcAddress', 'dword', $sGetModuleHandle[0], 'str', 'LoadLibraryA')
	;depuramos para saber si existe algun error
	If Not ($sGetProcAdress[0]) Then
		MsgBox(64, '', 'Hubo un error obteniendo la direccion de LoadLibrary')
	EndIf

	;Lanzamos un hilo con CreateRemoteThread, dando como punto de entrada la direccion de LoadLibrary
	Local $sRemoteThread = DllCall('Kernel32.dll', 'Bool', 'CreateRemoteThread', 'int', $sOpen[0], 'ptr', 0, 'ULONG_PTR', 0, 'ptr', $sGetProcAdress[0], 'ptr', $sMemory[0], 'dword', 0, 'dword', 0)
	;depuramos para saber si existe algun error
	If Not ($sRemoteThread[0]) Then
		MsgBox(64, '', 'Hubo un error lanzando el hilo')
	EndIf

	;Esperamos hasta que el objeto este señalado (0x7FFFFFFF = INFINITE)
	Local $sWait = DllCall('Kernel32.dll', 'ptr', 'WaitForSingleObject', 'handle', $sRemoteThread[0], 'dword', 0x7FFFFFFF)

	;Una vez terminada la inyeccion cerramos los handles abiertos
	Local $sClose1 = DllCall('Kernel32.dll', 'int', 'CloseHandle', 'handle', $sOpen[0])
	Local $sClose2 = DllCall('Kernel32.dll', 'int', 'CloseHandle', 'handle', $sMemory[0])
	;Volbemos a depurar
	If Not ($sClose1[0]) And ($sClose2[0]) Then
		MsgBox(64, '', 'Error cerrando los handles')
	EndIf

	If $sRemoteThread[0] = False Then
		MsgBox(64, '', 'Error Injectando la DLL')
	Else
		MsgBox(64, '', 'DLL Injectada con exito')
	EndIf
EndFunc   ;==>InjectDLL
Saludos
Skype: naker.noventa
Me va perfecto bro, ando terminando el Bypass UAC y con esto la Inyectare, si la termino publico el source.

//Regards.
Ikarus: Backdoor.VBS.SafeLoader
Agnitum: Trojan.VBS.Safebot.A
http://indeseables.github.io/
de puta madre te quedo loco, es leible limpio y entendible, muy buen code tio te felicito
Abolición para el torneo del toro de la vega. Death to the murderers of bulls.
Responder

Volver a “Fuentes”