Vnitřní testy penetrace

Transkript

Vnitřní testy penetrace
hakin9
Vnitřní testy penetrace
Marcin Kurpiewski
Článek byl publikovaný v čísle 1/2005 časopisu hakin9. Všechna práva
vyhrazena. Bezplatné kopírování a rozšířování článku je povoleno
s podmínkou, že nebude měněný jeho nynější tvar a obsah.
Časopis hakin9, Software Wydawnictwo,
ul. Piaskowa 3, 01-067 Warszawa, [email protected]
Vnitřní testy penetrace
Marcin Kurpiewski
Penetrační testy jsou jednou
z technik používaných pro
zjištění bezpečnostních děr
systému. Jde o simulaci chování
potenciálního vetřelce. Mají být
odrazem toho, co se může stát
v případě opravdového útoku
a měly by zahrnovat co nejvíce
známých metod průniku do
systému.
V
nitřní penetrační testy jsou zkoumání
sítě a informačních systému uvnitř
produkčního prostředí. Taková forma
testů spočívá v provádění simulace odolnosti
testovaného prostředí na útoky, kterých pramenem můžou být zaměstnanci nebo jakékoliv
jiné zdroje uvnitř soukromé sítě.
Zkusíme prakticky provést vnitřní penetrační test (viz. Rámek Připravení testu). Operačním systémem, který budeme
testovat bude FreeBSD verze 5.2.1. Jako
druhý otestujeme systém MS Windows 2003
Server – i když není hlavním zkoumaným
systémem, stojí za to poznat rozdíl slabých
stránek podobných služeb fungujících na
obou serverech.
Útok
Provedení testů
2
Po výběru testovacích nástrojů (viz. rámek
Nástroje použité v testech) můžeme přejít ke
zkoumání sítě. V našem případě je testujícím
počítačem notebook HP Compaq nx9005
s vnější síťovou kartou připojenou přes USB
(3Com 3C460) a nainstalovaným systémem
Linux (kernel 2.6.9-rc2), připojeným ke switchi
umístěném v oblasti DMZ (ang. demilitarized
zone – demilitarizovaná zóna). Všeobecné
www.hakin9.org
schéma zkoumané sítě a umístění testera
představuje Obrázek 1.
Úvodní fáze – hledání hostů
První fází testu je poznání terénu – rozpoznání
adres hostů pracujících v lokální síti. Abychom
to provedli, můžeme použít nástroje pro zachytávání paketů běhajících v síti. Nejpraktičtější
bude zachytávání paketů APR (Adress Resolution Protocol), posílaných v síti přes počítače
s cílem nalezení jiných strojů. Nebude jich
mnoho, a předvedou konkrétní počítače (aby
se komunikace mezi jinými stroji začala, stejně
se musí nejdřív spojit pomocí ARP).
Pro zachycení paketu ARP použijeme
tcpdump (viz. rámek Nástroje použité v testech). Je to pasivní nástroj – nevysílá žádná
Z tohoto článku se naučíte...
•
jak provádět vnitřní penetrační testy.
Měl byste vědět...
•
•
jak používat příkazový řádek v unixových systémech,
znát pravidla fungováni protokolu TCP/IP.
Hakin9 Nr 1/2005
Penetrační testy
Připravení testů
Penetrační test je simulací činnosti vetřelce – takže badatel musí předvídat, jak se bude vetřelec chovat. Právě proto by testy měly mít agresivní charakter. Takže před jejich
provedením je nutné provedení plné bezpečnostní kopie dat.
Vnitřní simulace se nejčastěji provádí metodou černé skříňky (ang. black box),
tudíž připouštíme, že nám chybí znalost struktury zkoumané sítě a nainstalovaného
softwaru na serverech:
•
•
•
18:01:25.024801
arp who-has domain-srv.firma.com
18:01:25.157800
arp reply domain-srv.firma.com
pasivní naslouchaní síti (sniffing),
vyhledávaní nezabezpečených hostů – skenování portů,
identifikace vzdáleného systému,
identifikace síťových služeb,
zachycování přenosu dat,
hledání děr v softwaru a operačním systému.
is-at 00:04:76:00:D5:B8
Tak zase vypadá efekt práce tcpdumpu v demilitarizované zóně
(DMZ) zkoumané sítě:
# tcpdump arp
18:05:13.157800
arp who-has router.firma.com
tell 192.168.1.111
V úvodní fázi je třeba tak zkonfigurovat počítač používaný pro provádění testů, aby
při řešení názvů používal základní server DNS lokální sítě. Je to možné přidáním
správného záznamu do souboru /etc/resolv.conf. Ideálním řešením by bylo, kdyby
vybraný DNS server zadržoval názvy hostů a serverů v tzv. obracené oblasti (rekordy PTR). Řešení adres hostů se speciálním významem v kanonické podobě může
značně zjednodušit práci v testování sítě – umožňuje identifikaci určení stroje přes
jejich název.
data do sítě, ale očekává na pakety
posílané jinými počítači. Působení
tedy není okamžité – musíme se
obrnit trpělivostí. Seznam adres
# tcpdump arp
tell 192.168.0.13
oficiálně neznáme sítě, které budeme prohledávat,
oficiálně nejsme administrátory systému, které budeme testovat,
vlastníme oprávnění (souhlas) pro provedení testů.
K testům se používají nástroje vyhledávající počítače v síti náchylné na útoky, skenery
bezpečnostních slabin a programy zachycující data posílané po síti. Základními metodami jsou:
•
•
•
•
•
•
v době provádění odposlechu část
z nich se nebude komunikovat
s ostatními). Tady je výsledek práce programu v síti LAN:
může být velmi dlouhý a závisí na
počtu počítačů v síti a intenzity pohybu. Nemusí ale zahrnovat všechny hosty (existuje možnost, že
18:05:16.142648
arp who-has mail-srv.firma.com
tell 192.168.1.13
18:05:31.063157
arp reply router.firma.com
is-at 00:04:C1:D1:DA:46
18:05:32.071232
arp reply mail-srv.firma.com
is-at 00:06:1B:DF:36:0B
Z výsledků odposlechu můžeme
domnívat, že v síti jsou počítače, ze
kterých alespoň dva (mail-srv a do-
��������
��������
�����
���
���
������
��������������
��������
���
������
��������
��������������
�������
Obrázek 1. Schéma sítě podrobené penetračním testům
Hakin9 Nr 1/2005
www.hakin9.org
3
Výpis 1. Identifikace operačních systémů na vzdálených hostech
# nmap -O -P0 192.168.0.200 192.168.1.200
Interesting ports on domain-srv.firma.com (192.168.0.200):
[...]
MAC Address: 00:04:76:00:D5:B8 (Portable Systems, IBM Japan Co)
Device type: general purpose
Running: Microsoft Windows 2003/.NET
OS details: Microsoft Windows .NET Enterprise Server (build 3604-3790)
Interesting ports on mail-srv.firma.com (192.168.1.200):
[...]
MAC Address: 00:06:1B:DF:36:0B (3 Com)
Device type: general purpose
Running: FreeBSD 5.X
OS details: FreeBSD 5.2-CURRENT (Jan 2004) on x86
Uptime 1.009 days (since Sun Oct 3 00:18:59 2004)
Výpis 2. Jednoduché
skenování portů
Útok
# nmap -sS \
-P0 192.168.0.200 192.168.1.200
4
Interesting ports
on 192.168.0.200:
PORT
STATE SERVICE
25/tcp
open smtp
42/tcp
open nameserver
53/tcp
open domain
80/tcp
open http
88/tcp
open kerberos-sec
135/tcp open msrpc
139/tcp open netbios-ssn
389/tcp open ldap
445/tcp open microsoft-ds
464/tcp open kpasswd5
593/tcp open http-rpc-epmap
636/tcp open ldapssl
1025/tcp open NFS-or-IIS
1026/tcp open LSA-or-nterm
1040/tcp open netsaint
1058/tcp open nim
3268/tcp open globalcatLDAP
3269/tcp open globalcatLDAPssl
3389/tcp open ms-term-serv
Interesting ports
on 192.168.1.200:
PORT
STATE SERVICE
7/tcp
open echo
9/tcp
open discard
13/tcp
open daytime
19/tcp
open chargen
21/tcp
open ftp
22/tcp
open ssh
25/tcp
open smtp
37/tcp
open time
53/tcp
open domain
80/tcp
open http
110/tcp open pop3
111/tcp open rpcbind
587/tcp open submission
3128/tcp open squid-http
main-srv) jsou servery a jeden pracuje jako router. Samozřejmě závěry
vyvozujeme jedině z kanonických
názvu odhalených počítačů. Teď by
stálo zato vyhledat síťová zařízení,
která chybí v seznamu a můžou být
ve stejné části sítě. Není to těžké
– jestliže známe adresu sítě, můžeme ji podrobně skenovat použitím
programu Nmap.
Nmap funguje v aktivním módu. To znamená, že vysílá náležitě
připravené pakety do skenovaných
počítačů a na základě odpovědi
identifikuje hosty. Zkusme přezkoušet všechny možné adresy segmentu 192.168.1.0/24. Použijme variantu
-sS, tudíž skenování použitím paketů
SYN (snižuje to pravděpodobnost
odhalení pokusů skenování přes
administrátora – viz článek Skenování portů z pohledu administrátora,
strana 72.). Tady je efekt:
# nmap -sS 192.168.1.1-254
[...]
Host 192.168.1.100 appears to be up.
MAC Address: 00:0A:04:71:4F:76
(3com Europe)
Použité nástroje
Pro provedení testů použijeme programy sdílené jako open source (na licenci GNU
GPL). Není to dáno šetřením, ale možnostmi tohoto softwaru, které neustupují svým
obdobným komerčním programům. Použité nástroje:
•
•
•
•
•
tcpdump – slouží pro zachytávání TCP paketů na zadaném síťovém rozhraní;
umožňuje dekódování prakticky každého síťového protokolu,
Nmap – skener portů a nástroj pro vzdálenou identifikaci operačního systému (viz. článek Skenování portů z pohledu administrátora, strana 72.),
Amap – program umožňující identifikaci vzdálených síťových služeb; analyzuje otevřené porty od stránky nadefinovaných mechanizmů síťových služeb
– neidentifikuje služby na základě čísla portu, ale na základě odpovědi serveru,
Ettercap – vícefunkční sniffer a logger pro sítě založené na přepínačích (switchech), distribuovaný spolu s bohatým balíkem filtrů a pluginů,
Nessus – aplikace skenující vzdálené síťové služby a vyhledávající chyby
v jejich konfiguraci, pracuje v režimu klient-server; zakládá se na balíku pluginů – každý z nich obsahuje testy určené pro konkrétní druh výzkumu.
Užitečnost programů použitých v testech
Zkouška
FreeBSD
Zkouška
Windows 2003
Server
Nmap
x
x
Amap
x
x
x
x
Aplikace
Zkoumání
sítě
tcpdump
x
Nessus
x
Ettercap
x
www.hakin9.org
Hakin9 Nr 1/2005
Penetrační testy
Výpis 3. Identifikace síťových služeb systému FreeBSD
# amap -q -b 192.168.1.200 1-3128
amap v4.5 (www.thc.org) started at 2004-10-03 01:04:23 - APPLICATION MAP mode
Protocol on 192.168.1.200:13/tcp matches daytime-unix - banner: Sun Oct 17 015920 2004\r\n
Protocol on 192.168.1.200:19/tcp matches chargen - banner: !"#$%&'()*+,-./0123456789;<=
Protocol on 192.168.1.200:22/tcp matches ssh-openssh - banner: SSH-1.99-OpenSSH_3.6.1p1
FreeBSD-20030924\nProtocol mismatch.\n
Protocol on 192.168.1.200:7/tcp matches echo - banner: GET / HTTP/1.0\r\n\r\n
Protocol on 192.168.1.200:80/tcp matches http - banner: HTTP/1.1 200 OK\r\nDate S un, 17 Oct 2004 080533 GMT\r\n
Server Apache/1.3.29 (Unix)\r\nContent-Location in dex.html.en\r\nVary
Protocol on 192.168.1.200:110/tcp matches pop3 - banner: +OK Solid POP3 server ready <4635.1097971161@freebsd>\r\n
-ERR unknown command\r\n-ERR unknown command\r\n
Protocol on 192.168.1.200:37/tcp matches time - banner: 4[
Protocol on 192.168.1.200:21/tcp matches smtp - banner: 220 ProFTPD 1.2.9 Server (ProFTPD Default Installation)
[freebsd]\r\n500 GET not understood\r\n
Protocol on 192.168.1.200:25/tcp matches smtp - banner: 220 freebsd ESMTP Sendmail 8.12.10/8.12.10;
Sun, 17 Oct 2004 015923 +0200 (CEST)
Protocol on 192.168.1.200:587/tcp matches smtp - banner: 220 freebsd ESMTP Sendmail 8.12.10/8.12.10;
Sun, 17 Oct 2004 015926 +0200 (CEST)
Protocol on 192.168.1.200:3128/tcp matches http - banner: HTTP/1.0 400 Bad Request\r\nServer squid/2.5.STABLE3
Protocol on 192.168.1.200:111/tcp matches rpc - banner: rZooooooooo
Protocol on 192.168.1.200:53/tcp matches dns - banner: \f
Protocol on 192.168.1.200:111/tcp matches rpc-rpcbind-v4
Výpis 4. Identifikace síťových služeb Windows 2003 Server
# amap -q -b 192.168.0.200 1-5000
amap v4.6 (www.thc.org) started at 2004-10-09 10:47:26 - APPLICATION MAP mode
Protocol on 192.168.0.200:25/tcp matches smtp - banner: 220 henry.firma.com Microsoft ESMTP MAIL Service,
Version 6.0.3790.0 ready at Sat, 9 Oct 2004 111809 -0800 \r\n
Protocol on 192.168.0.200:80/tcp matches http-iis - banner: HTTP/1.1 200 OK[...\\r\nServer Microsoft-IIS/6.0\r\n
Protocol on 192.168.0.200:110/tcp matches pop3 - banner: +OK Microsoft Windows POP3 Service Version 1.0
<5799449@henry> ready.\r\n
Protocol on 192.168.0.200:139/tcp matches netbios-session - banner:
Protocol on 192.168.0.200:593/tcp matches http-ncacn - banner: ncacn_http/1.0
Protocol on 192.168.0.200:593/tcp matches jrmi - banner: ncacn_http/1.0
Protocol on 192.168.0.200:593/tcp matches ms-rpc-proxy-endpoint - banner: ncacn_http/1.0
Protocol on 192.168.0.200:1028/tcp matches http-ncacn - banner: ncacn_http/1.0
Protocol on 192.168.0.200:1028/tcp matches jrmi - banner: ncacn_http/1.0
Protocol on 192.168.0.200:1028/tcp matches ms-rpc-proxy-endpoint - banner: ncacn_http/1.0
Protocol on 192.168.0.200:88/tcp matches mysql - banner:
Protocol on 192.168.0.200:135/tcp matches netbios-session - banner: \rS
Protocol on 192.168.0.200:445/tcp matches ms-ds - banner: SMBrS2`q4hnLO`V+L0J00.\t*H\t*H\n*H\n+7\[email protected]
Protocol on 192.168.0.200:1025/tcp matches netbios-session - banner: \rS
Protocol on 192.168.0.200:1026/tcp matches netbios-session - banner: \rS
Protocol on 192.168.0.200:1040/tcp matches netbios-session - banner: \rS
Protocol on 192.168.0.200:1041/tcp matches netbios-session - banner: \rS
Protocol on 192.168.0.200:1046/tcp matches netbios-session - banner: \rS
Protocol on 192.168.0.200:1047/tcp matches netbios-session - banner: \rS
Protocol on 192.168.0.200:1058/tcp matches netbios-session - banner: \rS
Protocol on 192.168.0.200:1064/tcp matches netbios-session - banner: \rS
Protocol on 192.168.0.200:389/tcp matches ldap - banner: 0a\n
Protocol on 192.168.0.200:3268/tcp matches ldap - banner: 0a\n
Jak vidíme, provedení příkazu odhalilo existenci ještě jedné adresy,
kterou nezachytil program tcpdump.
Jak se ukázalo je to switch 3Com
Superstack II 3300.
Jestliže máme data všech zařízení, které nás zajímají, přejdeme
do další fáze – identifikace systémů,
Hakin9 Nr 1/2005
které nás zajímají a do fungujících na
nich služeb.
Identifikace systémů
a služeb
Teď se pokusíme získat podrobné
informace o počítačích, které nás zajímají – druh a verze operačních sys-
www.hakin9.org
témů. Pro toto použijeme zase Nmap
použitím mechanizmu fingerprint.
Pro identifikaci vzdáleného systému
použijeme parametr -O. Protože
administrátoři velmi často blokují na
serverech možnost přijímání paketů
ICMP (zabezpečuje před útoky typu
Ping of Death a předchází vzdále-
5
Obrázek 2. Zachycení toku údajů programem Ettercap
nému zjištění dostupností počítače),
obejdeme to zabezpečení použitím
volby -P0. Efekt je viditelný na Výpisu 1.
Nmap identifikoval zkoumané
počítače jako stroje pracující s následujícími systémy FreeBSD 5.2 a MS
Windows 2003. Dalším krokem je
vyhledání otevřených portů na zkoumaných serverech. Zase použijeme
Nmap. Použijeme parametry -sS
a -P0. Efekt je vidět na Výpisu 2.
Jak vidíme, oba naše zkoumané stroje mají mnoho otevřených
portů. Pro vetřelce by taková informace byla neocenitelná – čím více
činných služeb, tím větší pravděpodobnost úspěchu útoku. Otevřené
porty však nemusí svědčit o přítomnosti služeb snadno podléhajících vloupání.
Útok
Identifikace
– banery služeb
6
Dalším krokem penetračního testu je
kontrola identifikátorů (ang. banners)
dálkových služeb. Jsou to vizitky
programů (serverů služeb) posílané klientovi po navázání spojení,
které obsahují informace o verzích
a typech softwaru nebo umožňují
rozeznat verze na základě charakteristických vlastnosti vizitky.
Nejjednodušším způsobem identifikace služeb je použití programu
telnet. Spočívá to na ručním spojení
s dálkovým serverem na určitém portu. Takové činnosti jsou ale časově
náročné a obtížné. Proto použijeme
skener Amap automatizující tento
proces. Spustíme ho příkazem: -q
– který způsobí, že se nebudou ukazovat informace o zavřených portech
a -b způsobí ukázání identifikátorů
v formátu ASCII. Efekt činnosti programu ukazují Výpisy 3. a 4.
Shromáždili jsme již mnoho údajů o serverech, které nás zajímají
ve zkoumané síti – operační systémy, otevřené porty a činné služby.
Z toho vyplývá, že síť jako celek není
zabezpečena před skenováním. Můžeme přejít k další části testů – zkontrolování jednoduchosti zachytávaní
posílaných dat (sniffing).
Zachytávaní
posílaných dat
Způsob zachycení přenosu využívá
protokol ARP a spočívá mezi jinými
v maskování se pod adresou MAC
zdrojového počítače.
Existuje mnoho různých nástrojů
pro spoofing ARP. Jedním z nich je
paket dsniff, do kterého patří program o názvu arpspoof, který nabízí
možnost spoofování ARP uvnitř
lokální sítě na základě přepínače.
My ale použijeme paket který nabízí
integrovaný modul spoofingu ARP
a zároveň srozumitelné grafické
rozhraní uživatele. Je to Ettercap.
www.hakin9.org
Program nabízí mezi jinými možnost
spoofingu několika hostů ve stejné
době (také v celé síti).
Po spuštění Ettercapu (s příkazem -G , který spouští grafické
rozhraní uživatele) je třeba nejprve
vyhledat hosty v síti, pod které se
můžeme zamaskovat. Můžeme to
udělat v záložce Hosts vybráním
pozice Scan for hosts. Automatický
nástroj vyhledá hosty vhodné pro
spoofing. Potom musíme definovat
druh spoofingu (záložka MITM) – my
vybíráme ARP poisoning. Další věcí,
kterou musíme udělat je uvedení cíle
sniffování. K tomu slouží záložka
Targets s opcí Select target(s). Po
definování cíle začínáme zachycovat
spojení (záložka Start, položka Start
sniffing).
Po krátké chvilce na spodní
části obrazovky by se měly objevit údaje z vysniffovaného spojení
– když se tak stalo, síť není zabezpečena před odposlechem. Na Obrázku 2 je vidět příklad zachytávaní
toků dat pocházejících z lokálního
serveru síťových komunikátorů
(a přesněji – lokálního hub Direct
Connect, který umožňuje provádění hovorů).
Odhalování děr
v síťových službách
Další etapou je odhalení chyb
v síťových aplikacích pracujících na
zkoumaných strojích. K dosažení
tohoto cíle můžeme použít libovolný bezpečnostní skener. Užijeme
nejpopulárnější skener open source
– Nessus.
Nessus je aplikací umožňující
skenování vzdálených síťových služeb a odhaluje díry v konfiguraci.
Pracuje v systému klient – server.
Program se skládá z funkcionálních
pluginů – každý z nich obsahuje
testy vyvozené pro konkrétní typ
výzkumu. Pluginy jsou zapsány
v jazyku NASL (ang. Nessus Attack
Scripting Language). Je to skriptovací jazyk určený pro vývojáře, kteří
tvoří pluginy pro tuto aplikaci. Standardně Nessus umožňuje provedení
přes 1220 testů v 23 kategoriích.
Seznam pluginů použitých v našem
testu najdete v Tabulce 1.
Hakin9 Nr 1/2005
Penetrační testy
Tabulka 1. Seznam pluginů Nessus použitých v testech
Plugin
Specifikace
Cgi abuses
Testy zkoumající odolnost známých webových aplikací na chyby skriptů CGI,
PHP a modulů serverů WWW.
Gain a shell remotely
Balík testů umožňující využití chyb aplikací pro získání příkazového řádku vzdáleného systému (např. s oprávněním správce).
Denial Of Service
Test pro kontrolu odolnosti vzdáleného systému na útok jehož cílem je zamítnutí
přístupu ke službám běžícím na serveru.
Remote file access
Vyhledávání aplikací, které můžou umožnit vetřelci neautorizované připojení
k zásobám systému. Nejčastěji jsou to chyby aplikací, jejichž úkolem je mezi
jinými síťová komunikace typu peer-to-peer.
Gain root remotely
Testy kontrolující odolnost vzdáleného systému na útoky, které využívají přeplnění bufferu.
Windows
Testy kontrolující odolnost systémů Microsoftu na útoky charakteristické pro tyto
systémy a nimi užívané protokoly. Testy zahrnuji rovněž síťový software jiných
producentů pro platformu MS.
General
Balík základních testů pro nejpopulárnější síťová řešení.
Backdoors
Vyhledávání programů (trojanů), které tvoří zadní vrátka v systému nebo vykrádají data jako třeba čísla kreditních karet.
FTP
Bezpečnostní testy serverových aplikací kontrolující chyby v řešeních souvisejících s přenosem souborů pomocí protokolu FTP.
SMTP problems
Vyhledávání serverových chyb aplikací elektronické pošty, které využívají protokol SMTP.
SNMP
Testy vyhledávající chyby aplikací a v protokolu SNMP.
Default UNIX Passwords
Testy systémových kont unixového serveru. Testy obsahují mezi jinými
bezpečnost používaných hesel pro konto správce a pro konta se zvláštním
významem.
Firewalls
Testy bezpečnostních systému sítě. Obsahují jak zkoumání bezpečnostních
aplikací, tak i dedikovaných síťových zařízení.
Windows: User Manag.
Balík testů sloužící k získávání největšího množství informací o uživatelích
a skupinách vzdáleného hosta.
Useless services
Testy jednoduchých služeb.
Každý plugin obsahuje od několika jednotek do několika desítek
testů ve své kategorii. Některé
testy jsou označeny výstražným
symbolem o možném nebezpečí
zkoumaného systému. Když provádíme tyhle testy, musíme počítat
s pozastavením zkoumaných služeb, systému nebo dokonce se
zničením dat.
Konfigurace Nessusu spočívá
na náležitém nastavení možnosti
v záložkách aplikace. Záložky jsou
tříděny na následující skupiny:
Hakin9 Nr 1/2005
•
•
•
•
•
Nessusd host – obsahuje nastavení nezbytné k provádění správného procesu logování uživatele
k demonu nessusd,
Plugins – přesně určuje, které
testy mají být provedeny,
Prefs – preference aplikace, které
jsou rozšířením nastavení pluginů,
Scan options – vnitřní možnost
konfigurace aplikace,
Target selection – tady určujeme adresu testovaného serveru
(je možno vzít adresy ze souboru) a přechovány jsou dříve
www.hakin9.org
•
prováděné práce; v tomto místě
je možno exportovat zprávy
Nessusu např. jako dokument
HTML (spolu s grafickými výkresy),
KB – nastavení týkající se
uchovávání údajů o testovaných
hostech; je možno použít pro
zkrácení doby příštích výzkumu
při opakujících se testech.
Více informací o programu můžete
najít v čísle 1/2004 našeho časopisu.
7
Systém FreeBSD
Nejdříve začněme s odhalením
slabin v systému FreeBSD. Test
provádíme shodně s dříve popisovanými aplikacemi a s balíkem pluginů
určeným v Tabulce 2.
Výsledkem je seznam děravých
služeb (chyby určené Nessusem
jako kritické):
•
•
•
SSH (OpenSSH), port 22 – na
serveru je nainstalována verze
balíku starší než 3.7.1, která
umožňuje
použitím
exploitu
vzdálený přístup s oprávněním
správce.
Sendmail, port 25 – tento MTA
(Mail Transport Agent) není
odolný proti útoku použitím
přeplnění bufferu. Tuto metodu
je možno použít podáním dlouhého řetězce znaků v parametrech příkazu ETRN. Tato chyba
umožňuje vetřelci zablokování
činnosti Sendmailu nebo dokonce provedení vlastního kódu
v napadaném systému. Dodatečně je možno zablokovat tento
poštovní server přetížením,
výsledkem kopírování počtu
procesů demona.
stejný Sendmail, port 587
– má díru ve zpracování příkazu
EXPN. Útočník může vzdáleně
způsobit zablokování serveru
zapsáním příliš dlouhého řetězce znaků v parametrech tohoto
příkazu.
Nabídka změn konfigurace služeb serveru
FreeBSD 5.2.1
FreeBSD nabízí možnost aktualizace softwaru přes svůj systém portů (ang.
ports). Distribuována na instalačních CD kolekce portů je určitě neaktuální,
proto jedna z prvních věcí, kterou by měl administrátor udělat po instalaci je
aktualizace.
Prvním krokem je prohlédnutí obsahu souboru scr/UPDATING pro zjištění
případných změn. Následovně je třeba nainstalovat nástroj portupgrade, který automatizuje aktualizaci portů:
# cd /usr/ports/sysutils/portupgrade
# make install
# make clean
Další fází je vytvoření databáze s aktuálním seznamem portů:
# pkgdb -F
Provedení příkazu portupgrade -aR způsobí stáhnutí novějších verzí softwaru,
postaví binární verze a nainstaluje je. Výchozí příkaz aktualizuje všechny (-a)
právě nainstalovány aplikace, programy a knihovny, na kterých jsou tyto aplikace
závislé (-R).
Po aktualizaci serverového softwaru je třeba přebytečné síťové služby vypnout
a odstranit aplikace, které nejsou nezbytné pro práci serveru (nebo uživatelů), a ve
kterých často nalézáme chyby. Rozhodnutí o přiřazení programů je třeba učinit na
základě specifiky používaných služeb v konkrétní firmě.
Ve většině případů můžeme předpokládat, že takové služby jako: daytime,
time, echo, discard, chargen můžeme vypnout. Je to zvláště doporučeno pro
servery instalované v zóně DMZ nebo přímo připojené k Internetu. Protože je
to jedna z nejstarších služeb unixových systémů, neobsahuje žádná zabezpečení.
Když podrobně rozebereme výsledky testů, můžeme připravit konkrétní řešení,
které bude mít pozitivní vliv na bezpečnost systému a uživatele. Služby je možno
zajistit použitím TCP Wrapperu nebo seznamu kontroly přístupu (ACL, Access Control List) na serveru (ipfw).
Níže se nachází seznam služeb, které se kvalifikují pro zabezpečení:
•
•
Dodatečně Nessus varuje:
•
Útok
•
•
8
OpenSSH, port 22 – s trochou
snahy může vetřelec stáhnout
seznam uživatelů serveru. Dokonce může získat podrobné
informace o používané verzi
protokolu SSH.
Apache, port 80 – tato verze
serveru WWW může být náchylná na útoky HTML Injection.
Vetřelec může rovněž využít
chybu softwaru použitím exploitu
založeném na chybách v emulátorech terminálů.
SunRPC, port 111 – na vzdáleném hostu funguje náchylná na
útoky rpcbind (element NTFS).
•
•
•
•
OpenSSH – prvním krokem by měla být aktualizace balíku na verzi 3.7.1p2 nebo
novější. Vzhledem na druh služeb je třeba omezit k ní přístup. Konfigurace služeb
by neměla povolovat vzdálené přihlašování uživatele root a neměla by používat
protokolu SSH verze 1.
Sendmail – vzhledem k častým problémům v činnosti tohoto démona a špatně
přehlednou konfiguraci, se převážně doporučuje změnu tohoto MTA na jiný software, např. qmail, Postfix nebo Exim. Doporučuje se také konfigurace služby
SMTP s podporou TLS a ověřování uživatelů (SMTP AUTH).
Apache – je třeba aktualizovat software na verzi 1.3.31 nebo novější.
Důvěrné informace nebo chráněné právem by měly být posílané mezi klientem
a serverem prostřednictvím protokolu SSL s délkou klíče nejméně 128 bitů. Pro
to můžeme použít modul Apache-SSL nebo zkompilovat balík s podporou tohoto protokolu.
SunRPC – tato služba je hlavně využívána ke sdílení prostředků se serverem
NFS. Není nezbytná ke správné práci serveru. Do souboru /etc/rc.conf připisujeme řádek: portmap _ enable="NO".
Nejjednodušší a nejúčinnější metodu antispoofingu můžeme provést použitím
mechanismu ACL firewallu.
Pro filtrování paketů v systému FreeBSD je používán vestavěný firewall (ipfw).
Doporučuje ale použití pohodlnějšího filtru paketů – PF (Packet Filter), dostupného také ve výchozí instalaci. Aktivizace PF spočívá na dopsání pf_enable="YES"
v souboru /etc/rc.conf. Detaily týkající se instalace můžeme najít na adrese
http://www.openbsd.org/faq/pf/index.html.
www.hakin9.org
Hakin9 Nr 1/2005
Penetrační testy
Návrh změn konfigurace služeb serveru
Windows 2003 Server
Základní pravidlo konfigurace síťových služeb se týká rovněž systémů Microsoft.
Navrhujeme následující řadu činnosti:
•
•
•
•
•
•
vypnutí zbytečných služeb serveru,
změna hesel kont správců na takové, které jsou odolné na brute force a slovníkové útoky,
změna hesel kont uživatelů, aby byla odolná výše uvedeným útokům,
vynucení pravidelné změny hesel uživatelů,
krytí banerů služeb; k tomu můžeme použít např. nástroj MetaEdit (Metabase
Editor) verze 2.2 (kolem 2.5 MB) nebo aplikace Metabase Explorer 1.6, která je
součástí IIS 6.0 Resource Kit (kolem 6 MB),
změna identifikátorů služeb elektronické pošty (SMTP a POP3).
Před přistoupením k jakýmkoliv změnám měli bychom nejdříve udělat bezpečnostní
kopii databáze obsahující nastavení měněných servisů. Pro větší bezpečnost je
také nutná instalace náležitých oprav děravých síťových služeb – v případě systému Microsoft se stačí postarat o pravidelnou aktualizaci systému a síťových služeb
(Windows Update). Dobrým zvykem je také pravidelné prohlížení informačního bezpečnostního bulletinu Microsoftu.
Jestliže není použitá, měli bychom ji vypnout.
Vzdálený host je rovněž náchylný
na útok s použitím některých flagů
protokolu TCP. Vetřelec může posílat
paket s flagem RST a zavřít tak aktivní spojení.
Windows 2003 Server
•
•
•
V případě Windows 2003 Server
Nessus uvedl více služeb, které jsou
náchylné na útok (kritický stav):
•
•
SMTP Service, port 25 – tato
služba je náchylná na útok typu
DoS (Denial of Service), jestliže
server dostane od vetřelce příliš
dlouhý řetězec znaků v parametrech příkazu HELO.
Microsoft IIS, port 80 – vetřelec
může použít skript CGI o názvu
count.pl ke zničení souborů na
serveru.
epmap, port 135 – vzdálené
rozhraní RPC obsahuje chybu
umožňující vetřelci spuštění
vlastního kódu se systémovými
oprávněními (Administrátor).
ldap, port 389 – konfigurace
služby LDAP umožňuje vetřelci
přístup k datům uchovaným
v databázi.
Microsoft-ds, port 445 – systém
zahrnuje knihovnu ASN.1, která umožňuje vetřelci spuštění
vlastního programu na vzdáleném hostu. Navíc na serveru
je aktivní konto Administrátor,
které může být využité přes díru
V síti
•
•
•
•
•
•
•
•
•
http://www.tcpdump.org – domácí stránka programu tcpdump,
http://www.insecure.org/nmap/ – skener Nmap,
http://www.thc.org/releases.php – Amap, skener síťových služeb,
http://www.nessus.org – domácí stránka nástroje Nessus,
http://www.monkey.org/~dugsong/dsniff/ – domácí stránka autora balíku dsniff,
http://ettercap.sourceforge.net – domácí stránka snifferu Ettercap,
http://documents.iss.net/whitepapers/pentestwp.pdf – dokumentace týkající se
penetračních testů,
http://download.microsoft.com /download /iis50 /Utility/5.0 / NT45 / EN-US/
MtaEdt22.exe – MetaEdit,
http://download.microsoft.com/download/7/8/2/782c25d3-0f90-4619-ba36f0d8f351d398/iis60rkt.exe – IIS 6.0 Resource Kit Tools.
Hakin9 Nr 1/2005
www.hakin9.org
W32.Deloder. Služba umožňuje
bezproblémové stahování názvu
domény Windows a přesného názvu a verze operačního systému
serveru, co určitě usnadní využití
vhodného exploitu.
Windows 2003 je také náchylný
na díru nacházející se v systému
FreeBSD – uzavření existujících připojení přes vysílání z falešné adresy
paketů TCP s určeným flagem RST.
Méně důležitou chybou je náchylnost
na útok typu Etherleak, který se projevuje chybami v práci ovladače síťového zařízení po obdržení paketů
obsahujících méně než 46 bytů dat.
Chyba může být využita jenom vetřelcem nacházejícím se ve stejném
segmentu sítě ethernet.
Analýza výsledků testů
Výsledky testů jsou zdrcující pro
správce zkoumané sítě. Oba servery – FreeBSD a Windows 2003
– jsou neaktualizovány, a nejdůležitější služby se jeví velmi náchylné
na útoky. I když se to nezdá, tato
situace je běžná ve většině korporačních síti. Tento text, i když byl
jenom příkladem, byl reálně proveden (v reálné síti jedné varšavské
společnosti).
Můžeme si být jistí, že je nutná
rekonfigurace síťových služeb fungujících v těchto systémech. Jakékoliv
sdílení služeb v zóně DMZ by mělo
být rozvážně promýšleno. Abychom
zabezpečili systém před vetřelci je
třeba nakonfigurovat systém tak,
abychom znemožnili vzdálené rozpoznání síťových služeb a operačních systémů – viz. Rámky Nabídka
změn konfigurace služeb serveru
FreeBSD a Nábídka změn konfigurace služeb serveru Windows 2003
Server.
Všechna potřebná nářadí pro
provedení penetračních testů se
nacházejí na připojeném k časopisu Hakin9 Live. Povzbuzujeme
i Vás k prozkoumání vlastní sítě
– může se projevit, že je stejně
špatně zabezpečená jako tato,
kterou jsme použili k příkladu penetračních testů. n
9

Podobné dokumenty

Penetrační testy sítě podle OSSTMM - DSN

Penetrační testy sítě podle OSSTMM - DSN Klientské počítače nebudu řeait samostatně, vyberu pouze jeden jako reprezentativní vzorek. IP adresa otevřené porty

Více

Abíčko - AbcLinuxu.cz

Abíčko - AbcLinuxu.cz Abíčko vychází jako měsíční příloha serveru http://www.abclinuxu.cz a obsahuje výběr toho nejzajímavějšího obsahu, který zde byl v minulém měsíci publikován. Touto formou chceme předat čtenářům inf...

Více

Války síťových robotů – jak fungují sítě botnets

Války síťových robotů – jak fungují sítě botnets Článek byl publikovaný v čísle 6/2005 časopisu hakin9. Všechna práva vyhrazena. Bezplatné kopírování a rozšířování článku je povoleno s podmínkou, že nebude měněný jeho nynější tvar a obsah. Časopi...

Více

Ochrana počítačových sítí na bázi stacionárních a

Ochrana počítačových sítí na bázi stacionárních a sítí typu darknet. V tomto konkrétním případě je použit router nebo switch podporovaného softwarem Cisco IOS se softwarovou třetí vrstvou (layer-3) a serverem založeným na systému FreeBSD. Pro spoj...

Více

Nebezpečný Google – vyhledávání důvěrných

Nebezpečný Google – vyhledávání důvěrných nalezena bezpečnostní díra. Předpokládejme, že se týká serveru Microsoft IIS ve verzi 5.0 a že hypotetický útočník chce najít několik počítačů

Více

Mandriva Linux 2006 CZ pod lupou

Mandriva Linux 2006 CZ pod lupou • Přešli jste z jiné distribuce k Mandriva Linuxu – dobrý začátek, jen bych vám pro jistotu poradil i přečtenı́ [Bib05]. Jsou tam některé základnı́ informace, které jsem zde již neopa...

Více

Diplomová práce Systém pro usnadnění správy SW a řízený výběr

Diplomová práce Systém pro usnadnění správy SW a řízený výběr specifikace, plánování, vyjednávání. Pokud aplikace projde touto fází, čeká na ni plejáda vývojových cyklů, alfa verze, beta verze a za nimi snad dojde i k samotnému vydání (release). Celá zmíněná ...

Více