omijanie firewali, wyższa informatyka

[ Pobierz całość w formacie PDF ]
Omijanie zapór sieciowych
Oliver Karow
Artykuł opublikowany w numerze 1/2006 magazynu
hakin9
. Zapraszamy do lektury całego magazynu.
Wszystkie prawa zastrzeżone. Bezpłatne kopiowanie i rozpowszechnianie artykułu dozwolone
pod warunkiem zachowania jego obecnej formy i treści.
Magazyn
hakin9
, Software-Wydawnictwo, ul. Piaskowa 3, 01-067 Warszawa
, pl@hakin9.org
Omijanie zapór sieciowych
Technika
Oliver Karow
stopień trudności
Firewalle są często uznawane za niezawodny sposób ochrony
przed nieuprawnionym dostępem. Jednak zapory sieciowe
również mają swoje słabości – można je omijać, wykorzystując
błędy w koniguracji albo luki w oprogramowaniu. Intruz może
zdobyć dostęp do systemu na wiele różnych sposobów.
O
chrona sieci przed atakami i nie-
Wykrywanie irewalli
Zanim system znajdujÄ…cy siÄ™ za zaporÄ… zosta-
nie zaatakowany, intruz musi sprawdzić, czy i-
rewall w ogóle istnieje. Nie jest to zawsze tak
oczywiste, jak się wydaje – administratorzy i-
rewalli często stosują różne sztuczki, by zapo-
biec wykryciu zapory. Jednak ponieważ irewall
może ingerować w rezultaty ataku, dobrze jest
wiedzieć o jego istnieniu. Zajmijmy się najpierw
technikami wykorzystywanymi do wykrywania
takich rozwiązań.
chcianym dostępem z niezaufanych
sieci, takich jak Internet, to jeden
z największych problemów współczesnych
systemów informatycznych. W pokonaniu
tych trudności pomagają irewalle. Ich pod-
stawowym zadaniem jest oddzielanie sieci
i podejmowanie decyzji, czy dany pakiet mo-
że zostać przesłany z jednego segmentu do
drugiego. Zapory sieciowe można podzielić
na kilka rodzajów, w zależności od sposobu
realizowania przez nie tych zadań. Dwa naj-
popularniejsze typy to iltry pakietów wyko-
rzystujÄ…ce mechanizm rutingu oraz irewalle
warstwy aplikacji, korzystające z rozwiązań
typu proxy (patrz Ramka
Firewalle – podsta-
wowe infrormacje
).
Niezależnie od rodzaju, irewall potrzebuje
pewnych przesłanek, by móc podjąć decyzję
czy pakiet będzie przekazany do miejsca prze-
znaczenia. Jest to tak zwana polityka irewal-
la w postaci list dostępu lub reguł iltrowania.
Przyjrzyjmy się, jak można omijać takie polity-
ki, wykorzystując złe reguły iltrowania, słabo-
ści popularnych protokołów oraz ograniczenia
różnych typów irewalli.
Z artykułu dowiesz się...
• jak działają irewalle,
• jak wykrywać zapory sieciowe,
• w jaki sposób można omijać irewalle, wyko-
rzystując nieprawidłową konigurację lub luki w
programach.
Co powinieneś wiedzieć...
• powinieneś znać protokoły TCP/IPv4,
• powinieneś znać model referencyjny ISO/OSI.
2
hakin9 Nr 1/2006
www.hakin9.org
Omijanie firewalli
Traceroute
Åšledzenie tras (
tracerouting
) to me-
chanizm stosowany do wykrywania
ruterów przekazujących pakiety na
drodze do ich celu. Jeśli po drodze
znajduje się irewall, może odpowie-
dzieć na pakiet traceroute.
Ponieważ tracerouting to bar-
dzo stara technika, większość ire-
walli ją blokuje. Wciąż jednak istnie-
je kilka nieporozumień związanych
z funkcjonowaniem tego rozwiÄ…za-
nia, co pozwala intruzom przedostać
siÄ™ przez zabezpieczenia.
Listing 1 przedstawia efekt dzia-
Å‚ania polecenia
traceroute
po zablo-
kowaniu go przez irewall. Jak widać,
program ten działa, dopóki nie dotrze
do systemu o adresie 10.4.4.254. Na
tym hoście znajduje się coś, co blo-
kuje traceroute.
Spróbujmy zrozumieć jak dzia-
ła śledzenie tras (patrz też Rysu-
nek 1). U celu określenia trasy pakie-
tu IP pole TTL nagłówka IP jest wy-
korzystywane w taki sposób, że zo-
staje zmniejszone o 1 za każdym ra-
zem, gdy dociera do rutera. Jeżeli
ruter otrzyma pakiet z TTL o warto-
ści 2, zmniejszy tę wartość o 1 i jeśli
otrzymany TTL jest równy lub więk-
szy od 1, pakiet zostaje przekaza-
ny do następnego rutera – zgodnie
z danymi o rutingu. Natomiast jeże-
li ruter otrzyma pakiet z TTL o warto-
ści 1, zmniejszy ją i w efekcie – ponie-
waż otrzymana wartość będzie rów-
na 0 – nie przekaże pakietu do na-
stępnego rutera. Zamiast tego wyśle
nadawcy powiadomienie, że pakiet
został odrzucony w drodze do celu.
Program traceroute rozpoczy-
na działanie od wysłania pierwsze-
go pakietu z TTL równym 1, więc
otrzymuje komunikat ICMP o wyga-
śnięciu TTL (
TTL-expired
). Następ-
nie zwiększa TTL do 2, by przejść
przez pierwszy ruter i otrzymuje ta-
ki sam komunikat od drugiego rute-
ra na trasie. Kontynuuje ten proces
do momentu dotarcia do celu. Ponie-
waż każdy ruter wysyła taki komuni-
kat (o ile nie jest skonigurowany in-
aczej), traceroute jest w stanie stwo-
rzyć listę ruterów.
Warto również wiedzieć, że ist-
nieją dwie różne implementacje pro-
Firewalle – podstawowe informacje
Ogólnie rzecz ujmując, irewall to system połączony z różnymi sieciami, ma-
jący wiele interfejsów i mechanizm iltrowania, który umożliwia przepuszcza-
nie lub blokowanie ruchu między sieciami. Firewalle można podzielić na kate-
gorie według warstw protokołu TCP/IP wykorzystywanych do analizy i przesy-
łania pakietów.
Filtry pakietów
Filtry pakietów analizują pakiety w warstwie sieci (3) i warstwie transportu (4) mo-
delu ISO/OSI. Oznacza to, że podczas procesu podejmowania decyzji zapory tego
typu kierują się następującymi kryteriami:
• protokół (ICMP, OSPF, AH, ESP itp.),
• źródłowy adres IP,
• docelowy adres IP,
• port źródłowy,
• port docelowy,
• lagi TCP (SYN, ACK, RST, FIN itp.).
Stanowe/dynamiczne iltry pakietów
Stanowy iltr pakietów ma więcej możliwości – śledzi każde połączenie i zapi-
suje te informacje w wewnętrznych tablicach stanów. Kiedy pakiet wychodzą-
cy przechodzi przez iltr pakietów (nawiązuje połączenie), porty i adresy IP po-
trzebne do odebrania pakietów z odpowiedzią są otwierane na czas połączenia,
a potem zamykane.
Co więcej, niektóre stanowe iltry pakietów mogą dynamicznie otwierać porty,
które zostaną wynegocjowane podczas dozwolonego połączenia klienta i serwera.
Korzystają z tego niektóre rozwiązania, takie jak Oracle czy Portmapper.
Firewalle warstwy aplikacji
Firewalle poziomu aplikacji są w stanie analizować pakiety aż do warstwy apli-
kacji modelu ISO/OSI. Poza tym, że mają funkcjonalność iltrów stanowych/
dynamicznych, mogą też badać ładunek pakietu. O ile iltr pakietów podejmuje de-
cyzje wyłącznie na podstawie nagłówków, o tyle irewall poziomu aplikacji może ba-
dać informacje związane z określonymi aplikacjami. Umożliwia to na przykład prze-
puszczanie całego ruchu HTTP na porcie 80 TCP z wyjątkiem żądań typu
CONNECT
czy
DELETE
.
Firewalle poziomu aplikacji wymagają uruchomionej specjalnej usługi proxy dla
każdego protokołu monitorowanego przez zaporę. Usługi proxy nie zawsze są do-
stępne, więc większość producentów irewalli dodatkowo implementuje możliwości
iltra pakietów i podstawową funkcjonalność proxy bez zdolności analizy protokołu.
Firewalle hybrydowe i warstwy 2
Wielu producentów stosuje technikę hybrydową, by połączyć ze sobą najlepsze ce-
chy wszystkich irewalli, czyli łączy stanowe iltry pakietów z zaporami warstwy apli-
kacji. Na rynku dostępne są także irewalle warstwy 2. Nie są tak popularne jak il-
try pakietów i zapory warstwy aplikacji, są zwykle stosowane na poziomie interfej-
su, zależnie od producenta.
Listing 1.
Traceroute zablokowane przez irewall
# traceroute www.dummycompany.de
traceroute to www.dummycompany.de (10.10.10.10), 30 hops max, 40 byte packets
1 10.255.255.254 0.373 ms 0.203 ms 0.215 ms
(...)
10 router.company1.de (10.1.1.254) 88.080 ms 88.319 ms 87.921 ms
11 router.company2.de (10.2.2.254) 87.881 ms 89.541 ms 88.081 ms
12 router.company3.de (10.3.3.254) 86.749 ms 86.919 ms 86.734 ms
13 router.company4.de (10.4.4.254) 87.216 ms 87.312 ms 87.307 ms
14 * * *
3
www.hakin9.org
hakin9 Nr 1/2006
  Technika
bować ominąć te iltry, wykorzystu-
jąc pakiety TCP. Prześledźmy jesz-
cze raz trasÄ™ do docelowego rute-
ra. Tym razem skorzystamy z na-
rzędzia
hping2
, które umożliwia wy-
syłanie spreparowanych pakietów
(patrz Listing 2). Jak widać, rozpo-
znaliśmy jeszcze jeden odcinek tra-
sy (
hop
). O ile polecenie
traceroute
zostało zablokowane przy 13. rute-
rze, o tyle
hping2
dało nam dodat-
kowe wyniki.
Analiza pakietów zwrotnych
Aby zbadać, czy irewall istnieje,
można porównać pakiety zwrotne
z otwartych portów z tymi pochodzą-
cymi z portów zamkniętych. Prze-
analizujmy kilka sztuczek, które mo-
gą ułatwić ten proces.
Użyjmy najpierw
hping2
do wy-
słania pakietu do naszego celu, na
port, który możemy uznać za za-
mknięty (patrz Listing 3). Jedno-
cześnie spróbujmy obserwować
ruch sieciowy za pomocÄ… narzÄ™-
dzia
tcpdump
(Listing 4). Zoba-
czymy komunikat ICMP
destina-
tion unreachable
w postaci wiado-
mości iltra
admin prohibited
z ad-
resu 192.168.9.254. Wiadomość
świadczy o tym, że dostęp do portu
99 TCP systemu docelowego jest
iltrowany za pomocÄ… listy dostÄ™-
pu rutera. Ponieważ jest to oczy-
wisty dowód na istnienie irewalla,
zajmijmy siÄ™ innÄ… technikÄ…, opartÄ…
na analizie wartości TTL.
Rysunek 1.
Zasada działania traceroutingu
Listing 2.
Śledzenie tras za pomocą pakietów TCP przy użyciu hping2
# hping2 -T -t 1 -S -p 80 www.dummycompany.de
HPING www.dummycompany.de (eth0 10.10.10.10 ): S set,
§
40 headers + 0 data bytes
hop=1 TTL 0 during transit from ip=10.255.255.254 name=UNKNOWN
hop=1 hoprtt=12.4 ms
(...)
hop=10 TTL 0 during transit from ip=10.1.1.254 name=router.company1.de
hop=11 TTL 0 during transit from ip=10.2.2.254 name=router.company2.de
hop=12 TTL 0 during transit from ip=10.3.3.254 name=router.company3.de
hop=13 TTL 0 during transit from ip=10.4.4.254 name=router.company4.de
hop=14 TTL 0 during transit from ip=10.5.5.254 name=UNKNOWN
len=46 ip=10.10.10.10 lags=SA DF seq=15 ttl=107 id=12852 win=29200 rtt=95.6 ms
len=46 ip=10.10.10.10 lags=R DF seq=15 ttl=107 id=12856 win=0 rtt=194.6 ms
Listing 3.
Wysyłanie pakietu na zamknięty port
# hping2 -S -p 99 -c 1 www.dontexist.com
HPING www.dontexist.com (eth0 192.168.10.10): S set,
§
40 headers + 0 data bytes
ICMP Packet iltered from ip=192.168.9.254
Różnice TTL
Za każdym razem, gdy pakiet IP
przechodzi przez urzÄ…dzenie rutu-
jÄ…ce, jego TTL zostaje zmniejszony
o 1. Jeśli więc mamy serwer chronio-
ny przez zaporÄ™ sieciowÄ… zainstalo-
wanÄ… na wydzielonym systemie, pa-
kiety pochodzÄ…ce z serwera mogÄ…
mieć inny TTL niż pakiety pochodzą-
ce z tego irewalla.
Teraz musimy spróbować otrzy-
mać pakiet odpowiadający zarówno
z serwera, jak i potencjalnego syste-
mu z irewallem, a następnie porów-
nać wartości TTL obu pakietów. Jeśli
wartości te będą się różnić, będzie to
prawdopodobnie świadczyło o istnie-
niu irewalla.
Listing 4.
Obserwacja ruchu sieciowego
# tcpdump -i eth0 -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
12:59:18.778417 IP 172.16.1.1.1866 > 192.168.10.10.99:
§
S 1958445360:1958445360(0) win 512
12:59:18.786914 IP 192.168.9.254 > 172.16.1.1 icmp 36:
§
host 192.168.10.10 unreachable - admin prohibited ilter
gramu traceroute. Pierwsza używa
pakietów ICMP
echo request
(na
przykład
tracert
w systemach Win-
dows), zaś druga – pakietów UDP
(większość implementacji unikso-
wych). Oba warianty wykorzystujÄ…
technikÄ™ opartÄ… na polach TTL. Ad-
ministrator irewalla musi więc pa-
miętać, by odiltrować obie imple-
mentacje traceroute.
TCP traceroute
Ponieważ wiemy, że pole TTL jest
częścią nagłówka IP i że popular-
ne iltry traceroute blokujÄ… jedynie
pakiety UDP i ICMP, możemy spró-
4
www.hakin9.org
hakin9 Nr 1/2006
     Omijanie firewalli
Aby zmusić oba systemy do od-
powiedzi, możemy wysłać jeden pa-
kiet na port otwarty, a drugi na za-
mknięty port docelowego systemu
– w naszym przypadku odpowiednio
80 TCP i 99 TCP (patrz Listing 5).
Jak widać, wartości TTL różnią się
o 1. Oznacza to, że znaleźliśmy ire-
wall chroniÄ…cy docelowy serwer.
Listing 5.
Porównanie wartości TTL
# hping2 -S -p 80 -c 1 www.randomname.com
HPING www.randomname.com (eth0 192.100.100.10):
§
S set, 40 headers + 0 data bytes
len=46 ip=192.100.100.10 lags=SA DF seq=0 ttl=55 id=0 win=5840 rtt=7.6 ms
# hping2 -S -p 99 -c 1 www.randomname.com
HPING www.randomname.com (eth0 192.100.100.10):
§
S set, 40 headers + 0 data bytes
len=46 ip=192.100.100.10 lags=RA DF seq=0 ttl=56 id=0 win=0 rtt=7.6 ms
Określanie typu
irewalla
Powyższe techniki pozwalają zdo-
być dowód na istnienie irewalla. Je-
śli uda nam się określić adres IP tego
urzÄ…dzenia, za pomocÄ… sztuczek bÄ™-
dziemy mogli zdobyć dodatkowe in-
formacje, takie jak typ zapory i użyty
system operacyjny.
Listing 6.
Wykrywanie systemu operacyjnego i irewalla za pomocÄ…
narzędzia nmap
# nmap -sS -F -n -O -p 80,99,443 192.168.190.1
§
at 2005-10-09 17:23 CEST
Interesting ports on 192.168.190.1:
PORT STATE SERVICE
80/tcp open http
99/tcp closed metagram
443/tcp open https
Device type: irewall|broadband router|general purpose
Running: Checkpoint Solaris 8, Belkin embedded, Sun Solaris 8
OS details: Checkpoint Firewall-1 NG on Sun Solaris 8,
§
Belkin DSL/Cable Router, Sun Solaris 8, Sun Trusted Solaris 8
TCP ingerprinting
Wykorzystajmy fakt, że każdy stos
IP w systemie posługuje się okre-
ślonymi wzorcami, które można wy-
korzystać do określenia typu i wer-
sji systemu operacyjnego. Ponie-
waż większość programowych i-
rewalli wpływa na zachowanie sto-
su IP, często można także określić
typ i wersjÄ™ zainstalowanej zapo-
ry. Użyjemy rzecz jasna narzędzia
nmap
, majÄ…cego wbudowanÄ… funk-
cjÄ™ wykrywania systemu operacyj-
nego (patrz Listing 6). Wystarczy
przeskanować trzy porty, by z du-
żym prawdopodobieństwem okre-
ślić, że nasza zapora to Checkpoint
Firewall-1 NG uruchomiona w sys-
temie Solaris.
Zajmijmy siÄ™ innym irewallem
(Listing 7) – Symantec Enterprise
Firewall. Jak widać,
nmap
nie był
w stanie określić systemu opera-
cyjnego i typu zapory, ale mnogość
otwartych portów może wskazywać
na to, że jest to irewall oparty na
proxy. Producentów takich rozwią-
zań jest zaś niewielu.
W tej sytuacji, poza inger-
printingiem za pomocą narzędzia
nmap
, warto przyjrzeć się portom
typowym dla różnych producen-
tów zapór. Na przykład wspomnia-
ny Symantec Enterprise Firewall
(SEF) używa dwóch charaktery-
stycznych portów, 2456 TCP do ad-
ministracji przez WWW i 888 TCP
Listing 7.
Fingerprinting zapory Symantec Enterprise Firewall
§
at 2005-10-10 13:43 CEST
Interesting ports on 192.168.99.1:
(The 1193 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
23/tcp open telnet
25/tcp open smtp
53/tcp open domain
80/tcp open http
119/tcp open nntp
139/tcp open netbios-ssn
443/tcp open https
481/tcp open dvs
512/tcp open exec
513/tcp open login
514/tcp open shell
554/tcp open rtsp
1720/tcp open H.323/Q.931
2456/tcp open unknown
5631/tcp open pcanywheredata
7070/tcp open realserver
No exact OS matches for host (If you know what OS is running
§
do uwierzytelniania
Out of Band
.
Porównanie wyników skanowania
z Tabelą 1 przybliży nas nieco do
określenia typu irewalla (przy oka-
zji – dobrze skonigurowany ire-
wall warstwy aplikacji nie będzie
miał tylu otwartych zewnętrznych
portów). Checkpoint Firewall-1
także korzysta z charakterystycz-
nych portów, między innymi admi-
nistracyjnych 256–264 TCP oraz
18180–18265 TCP.
5
www.hakin9.org
hakin9 Nr 1/2006
   [ Pobierz całość w formacie PDF ]
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • anio102.xlx.pl