background image

www.hakin9.org

36

Hakin9 Nr 6/2004

A

ta

k

www.hakin9.org

37

Hakin9 Nr 6/2004

Testy penetracyjne

W

ewnętrzne testy penetracyjne to ba-
danie sieci oraz systemów informa-
tycznych  wewnątrz  ich  środowiska 

produkcyjnego.  Taka  forma  testów  polega  na 
przeprowadzeniu  symulacji  odporności  testo-
wanego ośrodka na ataki, których źródłem mo-
gą być pracownicy lub jakiekolwiek inne źródła 
wewnątrz prywatnej sieci.

Spróbujmy  przeprowadzić  w  praktyce  we-

wnętrzny test penetracyjny (patrz Ramka Przy-
gotowanie testów
). W naszym przykładzie sys-
temem  operacyjnym,  który  zostanie  poddany 
testom będzie FreeBSD w wersji 5.2.1 (wyda-
nie z lutego 2004 r.). Jako drugi przetestowa-
ny zostanie system MS Windows 2003 Server 
– choć nie jest głównym badanym systemem, 
warto  poznać  różnice  w  słabościach  podob-
nych usług działających na obu serwerach.

Wykonanie testów

Po wybraniu narzędzi testujących (patrz Ram-
ka  Narzędzia  użyte  w  testach)  można  przy-
stąpić  do  badania  sieci.  W  naszym  przypad-
ku  komputerem  testującym  jest  notebook  HP 
Compaq nx9005 z zewnętrzną kartą sieciową 
USB  (3Com  3C460)  i  zainstalowanym  syste-
mem  Linux  (kernel  2.6.9-rc2),  podłączony  do 

Wewnętrzne testy 

penetracyjne

Marcin Kurpiewski

Testy penetracyjne to jedna 

z technik stosowanych w celu 

wykrycia luk w bezpieczeństwie 

systemów informatycznych. 

Polegają na symulacji działań 

potencjalnego intruza. Jako że 

mają stanowić odzwierciedlenie 

tego, co może stać się 

w przypadku wystąpienia 

prawdziwego ataku, powinny 

obejmować możliwie najwięcej 

znanych metod penetracji 

systemów.

switcha  zlokalizowanego  w  strefie  DMZ  (ang. 
demilitarized zone – strefa zdemilitaryzowana). 
Ogólny schemat badanej sieci i lokalizację te-
stera przedstawia Rysunek 1.

Faza wstępna 

– wyszukiwanie hostów

Pierwszym  etapem  testu  jest  rozpoznanie  te-
renu – poznanie adresów hostów pracujących 
w sieci  lokalnej.  Aby  tego  dokonać,  możemy 
skorzystać z narzędzia przechwytującego pa-
kiety  krążące  w  sieci.  Najbardziej  praktyczne 
będzie przechwycenie pakietów ARP (Address 
Resolution  Protocol
),  wysyłanych  przez  kom-
putery w sieci w celu odnalezienia innych ma-
szyn.  Będzie  ich  niewiele,  a  wskażą  konkret-

Z artykułu nauczysz się...

•   jak  przeprowadzać  wewnętrzne  testy  penetra-

cyjne.

Pownieneś wiedzieć...

•   jak korzystać z linii poleceń w systemach unik-

sowych,

•   znać zasadę działania protokołu TCP/IP.

background image

www.hakin9.org

36

Hakin9 Nr 6/2004

A

ta

k

www.hakin9.org

37

Hakin9 Nr 6/2004

Testy penetracyjne

ne komputery (by nastąpiła komuni-
kacja między innymi maszynami i tak 
najpierw muszą one się skomuniko-
wać za pomocą ARP).

Aby  przechwycić  pakiety  ARP 

użyjemy  programu  tcpdump  (patrz 
Ramka Narzędzia użyte w testach). 
Jest on narzędziem pasywnym – nie 

wysyła  żadnych  danych  do  sieci, 
lecz  czeka  na  wysyłane  przez  inne 
komputery  pakiety.  Efekt  działania 
nie jest więc natychmiastowy – mu-
simy uzbroić się w cierpliwość. Lista 
wynikowa  może  być  bardzo  długa 
w zależności  od  liczby  komputerów 
w sieci i natężenia ruchu. Może jed-
nak  nie  obejmować  wszystkich  ho-
stów (istnieje możliwość, że w czasie 
prowadzenia nasłuchu część z nich 
nie będzie komunikować się z pozo-
stałymi).  Oto  rezultat  pracy  progra-
mu w sieci LAN:

# tcpdump arp
18:01:25.024801
  arp who-has domain-srv.firma.com
  tell 192.168.0.13
18:01:25.157800
  arp reply domain-srv.firma.com
  is-at 00:04:76:00:D5:B8

Tak  zaś  wygląda  efekt  działania 
tcpdumpa w strefie zdemilitaryzowa-
nej (DMZ) badanej sieci:

# tcpdump arp
18:05:13.157800
  arp who-has router.firma.com
  tell 192.168.1.111
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

Wynik  podsłuchu  pozwala  nam  są-
dzić,  że  w  sieci  są  hosty,  z  których 
przynajmniej  dwa  (mail-srv  i  doma-
in-srv
)  są  serwerami,  a  jeden  pra-
cuje  jako  ruter.  Oczywiście  wnioski 
te  czerpiemy  jedynie  z  nazw  kano-
nicznych wykrytych komputerów. Te-
raz warto wyszukać urządzenia sie-
ciowe,  które  nie  znalazły  się  liście, 
a mogą być w tym samym segmen-
cie sieci. Nie jest to trudne – znając 
adres  sieci,  możemy  ją  szczegóło-
wo  przeskanować  za  pomocą  pro-
gramu Nmap.

Nmap działa w trybie aktywnym. 

Oznacza to, że wysyła odpowiednio 

Przygotowanie testów

Test penetracyjny jest symulacją działań intruza – tak więc badający musi przewidzieć, 
jak zachowa się intruz. Dlatego też testy powinny mieć charakter agresywny. Tak więc 
przed ich przeprowadzeniem konieczne jest wykonanie pełnych kopii bezpieczeństwa 
danych.

Symulacje  wewnętrzne  najczęściej  przeprowadza  się  metodą  czarnej  skrzynki 

(ang. black box), czyli zakłada się brak wiedzy o strukturze badanej sieci i zainstalowa-
nym na serwerach oprogramowaniu:

•   oficjalnie nie znamy sieci, które będziemy przeszukiwać,
•   oficjalnie nie jesteśmy administratorami systemów, które będziemy testować,
•   posiadamy uprawnienia (zgodę) na przeprowadzanie testów.

Do testów wykorzystuje się narzędzia wyszukujące podatne na ataki hosty w sieci, ska-
nery luk oraz programy przechwytujące przesyłane siecią dane. Podstawowe metody 
to:

•   pasywne słuchanie sieci (sniffing),
•   wyszukiwanie niezabezpieczonych hostów – skanowanie portów,
•   identyfikacja zdalnego systemu,
•   identyfikacja usług sieciowych,
•   przechwytywanie transmisji danych,
•   wyszukiwanie luk w oprogramowaniu i systemie operacyjnym.

W  fazie  wstępnej  należy  tak  skonfigurować  komputer  wykorzystywany  do  przepro-
wadzania  testów,  aby  przy  rozwiązywaniu  nazw  korzystał  z  podstawowego  serwera 
DNS sieci lokalnej. Można tego dokonać przez dodanie odpowiedniego wpisu w pliku 
/etc/resolv.conf. Idealnym rozwiązaniem byłoby, gdyby wybrany serwer DNS przecho-
wywał nazwy hostów i serwerów w tzw. strefie odwrotnej (rekordy PTR). Rozwiązywa-
nie adresów hostów o znaczeniu specjalnym do postaci kanonicznej może znacznie uła-
twić pracę przy testowaniu sieci – umożliwia identyfikację przeznaczenia maszyny po-
przez jej nazwę.

Rysunek 1. 

Schemat sieci poddanej testom penetracyjnym

�����

��������������

���

������

��������

��������

���

��������

�������

��������������

�����

���

��������