V tomto článku se naučíme nainstalovat a najít rootkity pomocí Rootkit Hunter, kromě jiných hrozeb jej budete moci použít k nalezení známek některých variant malwaru XOR.DDoS, který se v současnosti používá k vytváření botnetů s Linuxové systémy pro masivní distribuované útoky odmítnutí služby.
Obsah
- Instalovat
- Stáhnout
- Oprava – (volitelné)
- Instalovat
- Konfigurovat
- testy
- protokoly
- seznamy záznamů
- různé
- Spustit
- příznaky
- plánování cron
Nainstalovat RKHunter
Stáhněte si Rkhunter, zkuste to provést pomocí cURL.
curl http://nbtelecom.dl.sourceforge.net/project/rkhunter/rkhunter/1.4.2/rkhunter-1.4.2.tar.gz -o rkhunter-1.4.2.tar.gz
Poté vyjměte obsah balíčku.
tar zxvf rkhunter-1.4.2.tar.gz
Zadejte adresář tarball.
cd rkhunter-1.4.2
Oprava (volitelné)
Tento krok bude proti záplatě skriptu rkhunter a jeho databáze hledat malware XOR DDoS Linux. Tato oprava je založena na portu a souborech nalezených ve zprávách Akamai, Avast a Malware Must Die.
Vstupte do adresáře souborů pod adresářem rkthunter.
cd files
Nainstalujte záplatu nástroj s yum.
yum install patch
Nyní si stáhněte opravu.
curl http://sourceforge.net/p/rkhunter/patches/44/attachment/rkhunter.patch -o rkhunter.patch
Případně můžete zkopírovat a vložit obsah souboru rkhunter.patch odtud.
--- rkhunter 2014-03-12 17:54:55.000000000 -0300
+++ rkhunter.new 2015-10-02 17:01:25.040000000 -0300
@@ -7797,6 +7797,19 @@
#
+ # XOR.DDoS
+ XORDDOS_FILES="/lib/udev/udev
+ /lib/udev/debug
+ /etc/cron.hourly/cron.sh
+ /etc/cron.hourly/udev.sh
+ /lib/libgcc4.so
+ /var/run/udev.pid
+ /var/run/sftp.pid"
+ XORDDOS_DIRS=
+ XORDDOS_KSYMS=
+
+
+
# 55808 Variant A
W55808A_FILES="/tmp/.../r
/tmp/.../a"
@@ -11907,6 +11920,13 @@
return
fi
+ # XOR.DDoS Rootkit
+ SCAN_ROOTKIT="XOR.DDoS - Rootkit"
+ SCAN_FILES=${XORDDOS_FILES}
+ SCAN_DIRS=${XORDDOS_DIRS}
+ SCAN_KSYMS=${XORDDOS_KSYMS}
+ scanrootkit
+
# 55808 Trojan - Variant A
--- backdoorports.dat 2010-11-13 20:41:19.000000000 -0300
+++ backdoorports.dat.new 2015-10-02 17:10:24.086000000 -0300
@@ -12,6 +12,7 @@
2001:Scalper:UDP:
2006:CB Rootkit or w00tkit Rootkit SSH server:TCP:
2128:MRK:TCP:
+3502:Possible XOR.DDoS Botnet Malware:TCP:
6666:Possible rogue IRC bot:TCP:
6667:Possible rogue IRC bot:TCP:
6668:Possible rogue IRC bot:TCP:
Nalepte záplatu na rkhunter skript a backdoors.dat soubory pomocí následujícího příkazu.
patch < rkhunter.patch
Oprava je hotová, nyní se vraťte do kořenového adresáře tarball a pokračujte v instalaci.
cd ..
Instalovat soubory
Spusťte instalační skript s následujícími parametry a nainstalujte jej pod /usr/local.
./installer.sh --install --layout /usr/local
Můžete také použít --příklady příznak pro zobrazení dalších informací o rozložení a příkladů nebo a --show místo možnosti --install ukázat, co se má nainstalovat do vašeho rozvržení.
Instalovat Odkrýt (doporučeno)
Odkrýt a unhide-tcp utility budou hledat skryté procesy a porty, i když to není povinné, důrazně se to doporučuje, protože většina sofistikovaných rootkitů svou přítomnost skryje.
Nejprve musíme nainstalovat GNU Compiler Collection.
yum install gcc
Nainstalujte glibc-static, potřebný k vytvoření prokládaných binárních souborů.
yum install glibc-static
Zkompilujte unhide-linux.
gcc -Wall -O2 --static -pthread unhide-linux*.c unhide-output.c -o unhide-linux
Zkompilujte unhide-tcp.
gcc -Wall -O2 --static unhide-tcp.c unhide-tcp-fast.c unhide-output.c -o unhide-tcp
Nainstalujte soubory do /usr/local/bin a vytvořte symbolický odkaz pro zobrazení.
cp unhide-linux unhide-tcp /usr/local/bin && cd /usr/local/bin/ && ln -s unhide-linux unhide && cd -
Konfigurovat
V této části ukážu některé možnosti na rkhunter.conf soubor, možnosti jsou rozděleny do skupin a jejich popis je zjednodušený, přečtěte si skutečný popis v souboru a pokud si nejste jisti, stačí ignorovat, protože výchozí možnosti by měly stačit, většina z nich je okomentována.
Doporučujeme vám provést první spuštění před provedením skutečných změn v konfiguračním souboru, což vám umožní lépe porozumět tomu, jak rkhunter funguje, a možnost identifikovat některé falešně pozitivní výsledky, které budou přidány na seznam povolených v konfiguračním souboru.
Stačí zavolat rkhunter pomocí -c nebo --check parametry.
rkhunter -c
Jak můžete vidět na obrázku výše, budou tam nějaká varování o souborech jako egrep nebo ifup, které mají být skriptem místo binárních souborů ELF, nicméně jsou to legitimní systémové soubory a většina možností v konfiguračním souboru je o tom, jak přimět rkhunter takové ignorovat výskytů.
Testy
Následující volby ENABLE_TESTS a DISABLE_TESTS nastavují, jaké typy testů mají být provedeny, povolí všechny a poté zakážou ty nežádoucí. Je dobré mít ve výchozím nastavení vypnuté alespoň suspscan, protože je náchylné k falešným poplachům.
ENABLE_TESTS=ALL
DISABLE_TESTS=suspscan
Secure Shell
Nikdy není dobrý nápad povolit přihlášení root na připojení SSH, místo toho použijte su/sudo, jinak nastavte toto na yes.
ALLOW_SSH_ROOT_USER=no
Verze 1 protokolu SSH je známá jako nezabezpečená, nastavte toto na 1, tuto kontrolu protokolu je třeba ignorovat
ALLOW_SSH_PROT_V1=0
Síťové porty
Povolené síťové porty s formátem protocol:port
PORT_WHITELIST
Nastavte whitelist pro některé programy se syntaxí path_to_binary:protocol:port_number
PORT_PATH_WHITELIST=/usr/sbin/squid:TCP:3801
Verze aplikace
Tato možnost vám umožní spouštět některé zastaralé aplikace, obecně se to nedoporučuje a než ji zařadíte na tento seznam, musíte si být jisti, že je aplikace bezpečná.
APP_WHITELIST=openssl:0.9.7d gpg httpd:1.3.29
Sniffery
Povolit použití snifferů, softwaru, který zachycuje síťové pakety.
Umožněte následujícímu procesu naslouchat síti, jako na následujícím řádku.
ALLOWPROCLISTEN=/usr/sbin/snort-plain
To umožní uvedenému síťovému rozhraní naslouchat síti v promiskuitním režimu.
ALLOWPROMISCIF=eth0
Soubory
Budete muset vytvořit nějaké výjimky z testů provedených rkhunterem, následující možnosti vám umožní obejít testy na konkrétní objekty, jako jsou soubory, adresáře.
Povolit některé skryté adresáře.
ALLOWHIDDENDIR=/etc/.java
Povolit některé skryté soubory.
ALLOWHIDDENFILE=/usr/share/man/man1/..1.gz
ALLOWHIDDENFILE=/usr/share/man/man5/.k5identity.5.gz
ALLOWHIDDENFILE=/usr/share/man/man5/.k5login.5.gz
Tento whitelist umožní, aby některé soubory byly skripty namísto binárního souboru ELF.
SCRIPTWHITELIST=/usr/sbin/ifdown
SCRIPTWHITELIST=/usr/sbin/ifup
SCRIPTWHITELIST=/usr/bin/egrep
SCRIPTWHITELIST=/usr/bin/fgrep
SCRIPTWHITELIST=/usr/bin/ldd
Umožněte souboru, aby bylo možné zapisovat do celého světa.
WRITEWHITELIST=/usr/bin/date
Povolit u souboru změny atributů.
ATTRWHITELIST=/usr/bin/date
Povolit procesu dotazovat se na smazané soubory.
ALLOWPROCDELFILE=/sbin/cardmgr
Možnosti protokolu
Toto určí, ke kterému souboru se má přihlásit.
LOGFILE=/var/log/rkhunter.log
Nastavte toto na 1, pokud chcete pokračovat v protokolování stejného souboru při každém spuštění rkhunter, výchozí hodnota je 0, která připojí '.old' k souboru protokolu a vytvoří nový.
APPEND_LOG=0
Pokud chcete zachovat soubor protokolu, když je něco v nepořádku, nastavte následující možnost na 1.
COPY_LOG_ON_ERROR=0
Pokud chcete používat syslog, odkomentujte a nastavte funkci protokolu.
USE_SYSLOG=authpriv.warning
Ve výchozím nastavení budou položky na seznamu povolených při testech hlásit v pořádku, pokud chcete zvýraznit položky na seznamu povolených, musíte tuto možnost nastavit na 1.
WHITELISTED_IS_WHITE=0
Možnosti operačního systému
Nastavte možnost správce balíčků na RPM na systémech typu Red Hat, které zahrnují CentOS.
PKGMGR=RPM
Povolte tuto možnost, chcete-li hlásit varování, když operační systém změní verzi/vydání.
WARN_ON_OS_CHANGE
Měli bychom aktualizovat naši databázi při změně operačního systému?
UPDT_ON_OS_CHANGE
Kde najít soubor s vydáním operačního systému, nastavte v CentOS na /etc/redhat-release.
OS_VERSION_FILE=/etc/redhat-release
Zamykání
Pokud je pravděpodobné, že budete mít současně spuštěno více než jeden rkhunter, měli byste povolit tuto možnost, abyste povolili použití souborů zámku a předešli poškození databáze.
USE_LOCKING=0
Pokud jste povolili použití zámků, měli byste nastavit časový limit, abyste zabránili uváznutí.
LOCK_TIMEOUT
Měli bychom varovat před uzamčenými relacemi?
SHOW_LOCK_MSGS
Startup a Superdeamon
Kde je konfigurační soubor inetd.
INETD_CONF_PATH=/etc/inetd.conf
Které služby mohou běžet přes inetd.
INETD_ALLOWED_SVC=/usr/sbin/rpc.metad /usr/sbin/rpc.metamhd
Xinetd konfigurační soubor.
XINETD_CONF_PATH=/etc/xinetd.conf
Cesty spouštěcích souborů RC.
STARTUP_PATHS=/etc/rc.d /etc/rc.local
Účty
Soubor, který obsahuje stínovaná hesla.
PASSWORD_FILE=/etc/shadow
Povolit jiné uživatelské účty než root mít UID 0.
UID0_ACCOUNTS=toor rooty
Povolit účty bez hesla.
PWDLESS_ACCOUNTS=abc
Syslog
Konfigurační soubor syslog.
SYSLOG_CONFIG_FILE=/etc/syslog.conf
Povolit vzdálené přihlášení syslog.
ALLOW_SYSLOG_REMOTE_LOGGING=0
Přehledy
Nahlásit počet varování?
SHOW_SUMMARY_WARNINGS_NUMBER
Zobrazit celkový čas potřebný ke spuštění testů?
SHOW_SUMMARY_TIME
Chcete-li dostávat e-mailové zprávy, když rkhunter něco najde, musíte nastavit následující možnosti a také mít poštovní aplikaci.
Kdo obdrží e-mail.
[email protected]
Který příkaz byl použit k odeslání e-mailu.
MAIL_CMD=mail -s "[rkhunter] Warnings found for ${HOST_NAME}"
Spuštění rkhunter
OK, v tuto chvíli byste již měli spustit rkhunter alespoň jednou, nyní se podívejte na některé další vlajky, které lze s rkhunterem použít.
Zkontrolujte své změny
Po dokončení konfigurace spusťte rkhunter pomocí -C nebo --check-config příznak pro kontrolu případných chyb v souboru.
rkhunter -C
Aktualizace vlastností
Nyní a pokaždé, když změníte konfigurační soubor, nezapomeňte aktualizovat databázi vlastností souboru.
rkhunter --propupd
Hlásit pouze varování.
rkhunter --rwo
Někdy chcete spustit pouze konkrétní test, zkuste --vypsat testy získat názvy dostupných testů a poté použít --enable příznak následovaný názvem testu.
rkhunter --list tests
Následující možnost deaktivuje výzvu ke stisknutí klávesy.
rkhunter --sk
Chcete-li spustit rkhunter na cronjob, použijte --cronjob flag, vytvořte spustitelný soubor /etc/cron.daily/rkhunter.sh s následujícím obsahem proveďte každodenní kontrolu
#!/bin/sh
( /usr/local/bin/rkhunter --versioncheck
/usr/local/bin/rkhunter --update
/usr/local/bin/rkhunter --cronjob -c ) >> /dev/null 2>&1
Závěr
To by vám mělo pomoci začít s rkhunterem a poskytnout vám další vrstvu zabezpečení, ale nebude to stačit, pokud zanedbáte základní bezpečnostní principy, stejně jako pokud dáte každé varování, se kterým jste se setkali, na seznamy povolených namísto zmírňování problémů. Mějte také na paměti, že rkhunter vám pomůže zabránit tomu, aby se vaše stroje staly členy linuxového botnetu, ale neochrání váš web před cílem DDoS kampaně. Děkujeme za přečtení!