Curiosity is insubordination in its purest form. -Vladimir Nabokov

sábado, 28 de julio de 2012

fork();exec();wait();

Hola,

Aqui una entrada quizas curiosa...

En un terminal:
$ ( ( nc -v -l </etc/passwd ) & ) && kill -9 $$
Hemos puesto a netcat a la escucha sirviendo el archivo de contraseñas. Con un doble fork -good old fork- logramos que siga ejecutandose aun despues de haber cerrado el terminal, que como somos asi de chulos lo cerramos cargandonos si o si la shell actual ($$ = bash PID).

Una vez se nos ha cerrado el terminal abrimos otro y vemos en que puerto continua a la escucha netcat. Nos conectamos y ahi tenemos el archivo servido.
$ lsof -i |grep ^nc
nc         3162     root    3u  IPv4 1052823      0t0  TCP *:58157 (LISTEN)
$ nc 127.0.0.1 58157
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
syslog:x:101:103::/home/syslog:/bin/false
sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin
landscape:x:103:108::/var/lib/landscape:/bin/false
messagebus:x:104:112::/var/run/dbus:/bin/false
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
mysql:x:105:113::/var/lib/mysql:/bin/false
avahi:x:106:114::/var/run/avahi-daemon:/bin/false
snort:x:107:115:Snort IDS:/var/log/snort:/bin/false
statd:x:108:65534::/var/lib/nfs:/bin/false
usbmux:x:109:46::/home/usbmux:/bin/false
pulse:x:110:116::/var/run/pulse:/bin/false
rtkit:x:111:117::/proc:/bin/false
festival:x:112:29::/home/festival:/bin/false
postgres:x:1000:1000::/home/postgres:/bin/sh
^C
$
Por cierto, al salir de la shell asi kill -9 $$ ¿se guarda el historial de comandos?

Ademas, al menos en bash:

$ comando #comando se guarda en el historial
$ <space>comando #comando no aparece al hacer un history

Related Posts by Categories