Úvod
Máte pocit, že se někdo pokouší získat přístup k vašemu serveru? Chcete-li to zjistit, můžete nasadit honeypot ve vašem systému, aby vám pomohl zmírnit vaši paranoiu tím, že buď potvrdíte, nebo zamítnete své původní přesvědčení. Jako příklad můžete spustit Kippo SSH honeypot, který vám umožní sledovat pokusy o hrubou sílu, sbírat dnešní exploity a malware. Kippo také automaticky zaznamenává relaci hackerského shellu, kterou si můžete přehrát, abyste prozkoumali různé hackerské techniky a později tyto nasbírané znalosti použít k posílení vašeho produkčního serveru. Dalším důvodem, proč nainstalovat honeypot, je odvést pozornost od vašeho produkčního serveru. V tomto tutoriálu si ukážeme, jak nasadit Kippo SSH honeypot na serveru Ubuntu.
Předpoklady
Kippo SSH honeypot je aplikace založená na pythonu. Proto musíme nejprve nainstalovat knihovny pythonu:
$ sudo apt-get install python-twisted
Normálně byste spustili sshd služba naslouchá na výchozím portu 22. Tento port má smysl používat pro váš SSH honeypot, a proto pokud již službu SSH provozujete, musíme změnit výchozí port na nějaké jiné číslo. Navrhoval bych nepoužívat alternativní port 2222, protože jeho použití je již obecně známo a mohlo by sabotovat vaše přestrojení. Vyberme nějaké náhodné čtyřmístné číslo, například 4632. Otevřete konfigurační soubor SSH /etc/ssh/sshd_config a změňte direktivu Port z:
Port 22
do
Port 4632
Po dokončení restartujte sshd:
$ sudo service ssh restart
Správnou změnu portu můžete potvrdit pomocí netstat příkaz:
$ netstat -ant | grep 4632
tcp 0 0 0.0.0.0:4632 0.0.0.0:* LISTEN
Kromě toho Kippo potřebuje spouštět neprivilegovaného uživatele, takže je dobré vytvořit samostatný uživatelský účet a spouštět Kippo pod tímto účtem. Vytvořit nového uživatele kippo:
$ sudo adduser kippo
Instalace
Kippo nevyžaduje žádnou zdlouhavou instalaci. Vše, co je třeba udělat, je stáhnout gzipovaný tarball a extrahovat jej do adresáře kippo. Nejprve se přihlaste jako nebo změňte uživatele na kippo a poté si stáhněte zdrojový kód Kippo:
kippo@ubuntu:~$ wget http://kippo.googlecode.com/files/kippo-0.5.tar.gz
extrahujte jej pomocí:
kippo@ubuntu:~$ tar xzf kippo-0.5.tar.gz
tím se vytvoří nový adresář s názvem kippo-0.5.
Konfigurace
Jakmile přejdete do adresáře Kippo, uvidíte:
kippo@ubuntu:~/kippo-0.5$ ls
data dl doc fs.pickle honeyfs kippo kippo.cfg kippo.tac log start.sh txtcmds utils
Nejpozoruhodnější adresáře a soubory zde jsou:
- dl – toto je výchozí adresář, do kterého bude kippo ukládat veškerý malware a exploity stažené hackerem pomocí příkazu wget
- honeyfs – tento adresář obsahuje některé soubory, které budou prezentovány útočníkovi
- kippo.cfg – konfigurační soubor kippo
- protokol – výchozí adresář pro protokolování interakce útočníků se shellem
- start.sh – toto je skript pro spuštění kippo
- utils – obsahuje různé nástroje kippo, z nichž nejpozoruhodnější je playlog.py, který vám umožňuje přehrát relaci útočníkova shellu
Kippo je předkonfigurováno s portem 2222. Je to hlavně proto, že kippo potřebuje běžet jako neprivilegovaný uživatel a neprivilegovaný uživatel nemůže otevřít žádné porty, které jsou pod číslem 1024. K vyřešení tohoto problému můžeme použít iptables s Direktivy „PREROUTING“ a „REDIRECT“. Toto není nejlepší řešení, protože každý uživatel může otevřít port nad 1024 a vytvořit tak příležitost k zneužití.
Otevřete konfigurační soubor Kippo a změňte výchozí číslo portu na libovolné číslo, například 4633. Poté vytvořte přesměrování iptables z portu 22 na kippo na portu 4633:
$ sudo iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 4633
Volitelné konfigurace
Systém souborů
Dále možná budete chtít nakonfigurovat souborový systém, který se útočníkovi zobrazí, jakmile se přihlásí do našeho honeypotu. Kippo standardně přichází s vlastním souborovým systémem, ale ten pochází z roku 2009 a už to nevypadá věrohodně. Pomocí nástroje Kippo utils/createfs.py můžete klonovat svůj vlastní souborový systém bez prozrazení jakýchkoli informací . S oprávněními root spusťte následující příkaz pro linux pro klonování systému souborů:
# cd /home/kippo/kippo-0.5/
# utils/createfs.py > fs.pickle
Doing stuff
Název operačního systému
Kippo také umožňuje změnit název operačního systému umístěný v souboru /etc/issue. Řekněme, že používáme Linux Mint 14 Julaya. Samozřejmě, že použijete něco skutečného a věrohodného.
$ echo "Linux Mint 14 Julaya \n \l" > honeyfs/etc/issue
Soubor s heslem
Upravte honeyfs/etc/passwd a udělejte to věrohodnější a šťavnatější.
Alternativní hesla uživatele root
Kippo přichází s přednastaveným heslem „123456“. Toto nastavení si můžete ponechat a přidat další hesla jako:pass, a , 123, password, root
kippo@ubuntu:~/kippo-0.5$ utils/passdb.py data/pass.db add pass kippo@ubuntu:~/kippo-0.5$ utils/passdb.py data/pass.db add a kippo@ubuntu:~/kippo-0.5$ utils/passdb.py data/pass.db add 123 kippo@ubuntu:~/kippo-0.5$ utils/passdb.py data/pass.db add password kippo@ubuntu:~/kippo-0.5$ utils/passdb.py data/pass.db add root
Nyní se útočník bude moci přihlásit jako root pomocí kteréhokoli z výše uvedených hesel.
Vytváření nových příkazů
Kromě toho vám Kippo umožňuje konfigurovat další příkazy, které jsou uloženy v adresáři txtcmds/. Chcete-li vytvořit nový příkaz, například df jednoduše přesměrujeme výstup ze skutečného df příkaz do txtcmds/bin/df:
# df -h > txtcmds/bin/df
Výše uvedený příkaz je jednoduchým statickým textovým výstupním příkazem, ale útočníka na nějakou dobu zaneprázdní.
Název hostitele
Upravte konfigurační soubor kippo.cfg a změňte název hostitele na něco atraktivnějšího, například:
hostname = accounting
Spouštění Kippo SSH Honeypot
Pokud jste až do tohoto bodu postupovali podle výše uvedených pokynů, nyní byste měli mít nakonfigurovaný SSH honeypot s následujícím nastavením:
- port pro naslouchání 4633
- iptables portforward z 22 -> 4633
- název hostitele:účetnictví
- více hesel root
- čerstvý aktuální klon honeyfs vašeho stávajícího systému
- OS:Linux Mint 14 Julaya
Začněme nyní Kippo SSH honeypot.
$ pwd
/home/kippo/kippo-0.5
kippo@ubuntu:~/kippo-0.5$ ./start.sh
Starting kippo in background...Generating RSA keypair...
done.
kippo@ubuntu:~/kippo-0.5$ cat kippo.pid
2087
Z výše uvedeného můžete vidět, že Kippo se spustil a že vytvořil všechny potřebné RSA klíče pro SSH komunikaci. Navíc také vytvořil soubor s názvem kippo.pid, který obsahuje číslo PID běžící instance Kippo, které můžete použít k ukončení kippo pomocí kill příkaz.
Testování nasazení SSH Honeypot
Nyní bychom měli být schopni se přihlásit k našemu novému ssh serveru alias ssh honeypot na výchozím ssh portu 22:
$ ssh root@server
The authenticity of host 'server (10.1.1.61)' can't be established.
RSA key fingerprint is 81:51:31:8c:21:2e:41:dc:e8:34:d7:94:47:35:8f:88.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'server,10.1.1.61' (RSA) to the list of known hosts.
Password:
accounting:~# accounting:~# cd / accounting:/# ls var sbin home srv usr mnt selinux tmp vmlinuz initrd.img etc root dev sys lost+found proc boot opt run media lib64 bin lib accounting:/# cat /etc/issue Linux Mint 14 Julaya \n \l
Vypadá povědomě? Máme hotovo
Další funkce
Kippo přichází s mnoha dalšími možnostmi a nastaveními. Jedním z nich je použití nástroje utils/playlog.py k přehrání interakcí shellu útočníka uložených v adresáři log/tty/. Kromě toho Kippo umožňuje ukládání log souborů do databáze MySQL. Další nastavení naleznete v konfiguračním souboru.
Závěr
Jedna věc, kterou je třeba zmínit, je, že je vhodné nakonfigurovat Kippsův dl adresář na nějaký samostatný souborový systém. Tento adresář bude obsahovat všechny soubory stažené útočníkem, takže nechcete, aby se vaše aplikace zablokovaly kvůli nedostatku místa na disku.
Kippo se zdá být pěknou a snadno konfigurovatelnou alternativou SSH honeypotu k plně chrootovaným prostředím honeypotu. Kippo nabízí více funkcí, než jaké jsou popsány v této příručce. Přečtěte si prosím kippo.cfg, abyste se s nimi seznámili a upravili nastavení Kippo tak, aby vyhovovala vašemu prostředí.