Warsztaty internetowe: Narzędzia i techniki ataków na komputery w sieci
Nmap
Nmap jest najbardziej popularnym skanerem portów, ponieważ pozwala na skanowanie wieloma
różnymi technikami oraz występuje w odmianach dla najbardziej popularnych systemów
operacyjnych, tj. dla UNIXa, Linuxa oraz Windows. Wersję dla systemów UNIX można pobrać
bezpłatnie z
www.insecure.org
, natomiast wersję dla Windows z
www.eeye.com
. Obie wersje
posiadają nakładki graficzne (nmap jest narzędziem pracującym w trybie tekstowym), które
bardzo ułatwiają pracę osobą preferującym obsługiwanie komputera za pomocą myszy.
Program nmap oraz inne potrzebne pliki można także pobrać z naszego archiwum lokalnego:
nmap-3.25.tgz dla UNIXa/Linuxa
nmap-3.25-1.i386.rpm dla Linuxa
nmap-3.25-1.src.rpm - kod źródłowy dla UNIXa/Linuxa
nmap-frontend-3.25-1.i386.rpm - nakładka graficzna dla UNIXa/Linuxa
nmapNTsp1.zip - dla Windows
nmapwin_1.3.0_src.zip - kod źródłowy dla Windows
nmapwin_1.3.1.exe - nakładka graficzna dla Windows
Aby zrozumieć ideę skanowania portów TCP trzeba zapoznać się z działaniem samego protokołu
TCP. Gdy nawiązywane jest połączenie z portem TCP, klient przesyła serwerowi pakiet TCP z
ustawioną flagą SYN. Przez określenie "ustawiona flaga" należy rozumieć, że wartość określonego
przez protokół bitu równa jest 1 (bity mogą przybierać wartości 0 i 1). Bity flag znajdują się w
nagłówku pakietu TCP.
Gdy serwer nasłuchuje na porcie, z którym chce połączyć się klient, ten drugi wysyła do serwera
pakiet z ustawionymi flagami SYN i ACK informując o gotowości nawiązania połączenia. W celu
zakończenia procesu nawiązywania połączenia (ustanowienia sesji komunikacyjnej) klient przesyła
odpowiedź do serwera z ustawioną flagą ACK. Cały ten proces rozpoczynania sesji nazywany jest
trzystopniowym uściskiem dłoni (three-way handshake). Po zakończeniu przesyłania danych,
sesja zamykana jest wymianą pakietów z ustawionymi flagami FIN. W każdej chwili, każda ze
stron (klient lub serwer) może wysłać pakiet z ustawioną flagą RST – oznacza to jednostronne
zerwanie sesji.
Tak oto może wyglądać typowa rozmowa dwóch hostów przy wykorzystaniu protokołu TCP:
1.
Host A (klient) wysyła do serwera na określony numer portu pakiet TCP z ustawioną flagą
SYN, który mówi: Cześć, chcę nawiązać z tobą połączenie.
2.
Host B (serwer) ma otwarty (nasłuchujący) port, do którego host A wysłał pakiet. W
związku z tym przesyła do niego pakiet z ustawionymi flagami SYN/ACK, który mówi: Hej
stary, jestem gotowy do nawiązania sesji – możemy pogadać.
3.
Host A, po otrzymaniu tego pakietu, odpowiada pakietem z ustawioną flagą ACK, która
oznacza: Super, porozmawiajmy więc.
4.
Teraz między hostami A i B mogą być przesyłane w obie strony dowolne informacje.
Wszystkie informacje potwierdzane są pakietami z ustawionymi flagami ACK. W każdej
chwili każdy z hostów może przesłać pakiet z ustawioną flagą RST, co spowoduje
jednostronne zakończenie rozmowy.
5.
Jeśli jednak komunikacja nie zostanie przerwana pakietem RST, host A, po przesłaniu
wszystkich danych do hosta B, kończy sesję wysyłając pakiet z ustawioną flagą FIN,
mówiąc: To na razie wszystko stary, do usłyszenia.
6.
Host B potwierdza otrzymanie informacji FIN od hosta A wysyłając pakiet ACK, po czy
wysyła od siebie pakiet FIN, który mówi: Potwierdzam zakończenie rozmowy, do
usłyszenia.
7.
Host A potwierdza otrzymanie pakietu FIN wysyłając pakiet ACK do hosta B.
Opisane powyżej połączenie jest typowe dla protokołu TCP. Należy zauważyć, że wszystkie pakiety
wymagają otrzymania potwierdzenia odebrania pakietu przez drugą stronę. Znajomość
przedstawionego algorytmu postępowania zdefiniowanego protokołem TCP jest potrzebna do
zrozumienia sposobu działania narzędzi skanujących.
|
Strona główna
|
Projekty
|
Zagrożenia
|
Kontakt
|
© 2000-2007
Krzysztof
Satoła. Wszelkie prawa zastrzeżone.
odwiedzin:
698164
Page 1 of 1
haker.pl Krzysztof Satoła
2008-06-30
http://www.haker.pl/haker_start.pl?warsztaty1_temat=2