Menu Główne

Forum

Czat

FAQ-czytelnia

Artykuły

Net Tols

Linkownia

Download

Kontakt

Jesteś odwiedzającym tę strone.


Twoje IP to:


stat4u


Skanowanie

Wszystkie podane informacje są w celach edukacyjnych. Autor nie ponosi odpowiedzialności za złe wykorzystane poniższych informacji;

Przydatne dokumenty oraz linki

www.insecure.org/nmap
www.insecure.org/nmap-fingerprinting-article-pl.html
www.hping.org
www.nessus.org

====================================================
SPIS TREŚCI
====================================================

1.0 Wstęp oraz aspekty prawne
2.0 Rodzaje skanerów oraz ich przeznaczenie
3.0 Metody skanowania
* Pełne skanowanie
* Skanowanie SYN pólotwarte
* Skanowanie FIN
* Skanowanie NULL
* Skanowanie UDP
* skanowanie ping
* Skanowanie Xmas
4.0 Skanery sieciowe dla systemu linux
4.1 nmap
4.2 nessus
4.3 hping
4.5 portscan.c
4.8 id_scanner.sh

====================================================
1.0 Wstęp oraz aspekty prawne
====================================================

Skanery są to programy pozwalające określić poziom bezpieczeństwa servera, oraz jakie usługi udostępnione są przez server. Oprogramowanie te jest zarówno w zasięgu administratora jak i potencjalnego włamywacza. Programy te generują bardzo wiele informacji na temat działania usług na serverze oraz poziom jego zabezpieczeń. Baza exploitów w skanerach są aktualizowane niemal natychmiast a więc jesteśmy narażenie na ataki nowoczesnymi metodami. Nowoczesne skanery potrafią zdalnie identyfikować systemy operacyjne,wersje kernela. Za ich pomocą daje sie ominąć firewalle czy oszukać IDS (intrusion detection system), a więc przy dobrej organizacji skanowania może on zostać praktycznie niezauważalny, wszystko zależy od poziomu atakującego, metody skanowania oraz w jakim celu jest on wykonywany. No właśnie a co z aspektami prawnymi? czy powinno to podlegać karze? czy powinno być zabronione? nie ma jednoznacznej odpowiedzi. Po pierwsze skanery same w sobie nie naruszają bezpieczeństwa servera, pokazują jedynie jakie usługi są udostępnione przez server, oraz poziom jego zabezpieczen. Natomiast jeśli skaner wykona operacje prowadzącą do naruszenia zabezpieczeń np. wykonując atak DoS jest to karalne. Idea tworzenia skanerów od początku budziła wiele kontrowersji, nigdy nie będzie jasnej odpowiedzi co jest legalne a co nie. Programów tych używają zarówno administratorzy systemów jak i włamywacze. Moim zdaniem było by glupie zabranie czegoś co w dużym stopniu poprawiło stan zabezpieczeń sieci, internetu. Dobry administrator powinien na bierząco korzystać z tych programów, wychwytywać nowe dziury oraz łatać błędne oprogramowanie. NIe jest jednak zawsze możliwe w wirtalnym świecie oraz poziomem wiedzy którzy reprezentrują niektórzy administratorzy.

====================================================
2.0 Rodzaje skanerów oraz ich przeznaczenie
====================================================

Skanery zasadniczo można podzielić na kilka rodzajów. Jeden Główny podział to skanery sieciowe oraz localne, których krótki opis znajdziemy poniżej. Tutaj zajmiemy sie skanerami głownie od ich przeznaczenia oraz zastosowań. W sieci można znaleść wiele skanerów, wszystko zależy jednak do czego nam skaner jest potrzebny. Czy jedynie do pokazania jakie porty są otwarte w naszym serverze, np: nmap, czy o nieco szerszym zastosowaniu np. jakimi pakietami odpowiadają na różne zdarzenia, przy ich pomocy zbadamy działania firewalli czy IDS-y (Intrusion detection system). Jednym z głownych skanerów do w/w działania to hping. Kolejną możliwościa są skanery które sprawdzają odporność naszych komputerów na ataki prowadzonych przez sieć. Możliwe jest także określenie systemu operacyjnego lub wersji kernela. Możliwe jest także sprawdzanie komputera skanerami localnymi które pokazują anomalie w systemie sprawdzają np. prawa dostępu do plików, złe konfiguracje itp.

====================================================
3.0 Metody skanowania
====================================================

Aby otrzymać informacje o działających usługach na serverze. Można uruchomić skaner i zobaczymy wtedy jakie porty są otwarte i prowadzą nasłuch. Skanowania można wykonywać na wiele sposobów od pełnego połaczenia, po skąplikowane wysyłanie pakietów oraz czekanie na odpowiedzi. Wiele metod skanowania zależy jaką platforme będziemy skanować zależy to w głownej mierze od implementacji protokolu sieciowego. Inna jest w przypadku systemow *nixowych a inna w windowsie. Przykładem może być skanowanie FIN w którym to windows interpretuje różnie. Poniżej przedstawiam najbardziej popularne metody skanowania, wygląd nagłówków jaki jest wysyłany do portu oraz w jaki sposób można stworzyć taki skaner w języku C. Na koniec rozdziału przedstawie prosty skaner zawierający podstawowe metody skanowania.
* Pierwszym typem skanowania jest oczywiscie wszystkim znane skanowanie prowadzące pełne połączenie. metoda ta wymaga wysłania co najmniej 3 pakietów danych i dlatego nazywa sie skanowaniem trójfazowym. (three way handshake).
Skanowanie te wygląda następująco: Klient wysyła pakiet SYN. Server przesyła pakiet SYN/ACK a następnie klient znowu ACK. Natomiast jeśli port nie nasłuchuje odpowiada na wysłany pakiet SYN pakietem RST
Poniżej przedstawiam jak to wygląda oczyma tcpdumpa.
Tak wygląda jak usługa na danym porcie nie nasłuchuje

22:11:19.430884 localhost.34588 > localhost.tcpmux: S 387608127:387608127(0)
win 32767 (DF)
22:11:19.430917 localhost.tcpmux > localhost.34588: R 0:0(0) ack 387608128 win 0 (DF)

Tak wygląda jak port jest otwarty i usługa na nim nasłuchuje.

22:14:44.831656 localhost.34590 > localhost.ftp: S 607034532:607034532(0)
win 32767 (DF)

22:14:44.831697 localhost.ftp > localhost.34590: S 603547128:603547128(0)
ack 607034533 win 32767 (DF)

22:14:44.831722 localhost.34590 > localhost.ftp: . ack 1 win 32767 (DF)
22:14:44.833755 localhost.34590 > localhost.ftp: R 1:1(0)
ack 1 win 32767 (DF)

* Kolejnym skanowaniem nieco bardziej zaawansowanym jest skanowanie polotwarte. Skanowanie te polega na wyslaniu przez klienta zapytania w postaci pojedynczego pakietu SYN na odpowieni port. Jesli port ten odpowie pakietem SYN|ACK to oznacza, ze port nasluchuje natomiast jesli otrzyma RST to port nienasluchuje. W skanowaniu tym nie jest nawiazywane pelne polaczenie przez co jest ono nieco trudniejsze do wykrycia przez administratora. Ponizej przedstawiam logi z tcpdumpa podczas takiego skanu.

Tak wyglada jak usluga na danym porcie nie nasluchuje.

21:56:04.631534 localhost.40233 > localhost.compressnet:
S 1668813536:1668813536(0) win 4096

21:56:04.631564 localhost.compressnet > localhost.40233:
R 0:0(0) ack 1668813537 win 0 (DF)

Tak wyglada jesli usluga nasluchuje na danym porcie.

21:59:27.788189 localhost.54285 > localhost.ftp:
S 2423379264:2423379264(0) win 1024

21:59:27.788235 localhost.ftp > localhost.54285:
S 1973219105:1973219105(0) ack 2423379265 win 32767 (DF)

21:59:27.788249 localhost.54285 > localhost.ftp:
R 2423379265:2423379265(0) win 0 (DF)

* Kolejnym omawianym skanowaniem jest skanowanie pakietami FIN. Skanowanie te polega na wyslaniu pakietu FIN na odpowiedni port. Jesli na ten pakiet nic nie otrzymamy port jest otwarty. Natomiast jesli otrzyamy RST znaczy ze port jest zamkniety. Skanowanie te nie jest uwzgledniane przez system windows.

Tak wyglada jak usluga na danym porcie nie nasluchuje

22:05:00.534031 localhost.43413 > localhost.compressnet:
F 0:0(0) win 3072

22:05:00.534064 localhost.compressnet > localhost.43413:
R 0:0(0) ack 1 win 0 (DF)

Tak wyglada jesli port nasluchuje.

22:06:55.493245 localhost.46878 > localhost.ftp: F 0:0(0) win 2048
22:07:01.500304 localhost.46879 > localhost.ftp: F 0:0(0) win 3072

* Kolejnym skanowaniem jaki chce opisac jest skanowanie w trydbie NULL. Nie sa tam wykorzystywane zadne flagi. Skanowanie te jest dosc zaawansowane.

Tak wyglada jesli port nienasluchuje

22:11:38.976358 localhost.51784 > localhost.compressnet:
. win 2048

22:11:38.976391 localhost.compressnet > localhost.51784:
R 0:0(0) ack 0 win 0 (DF)

Tak wyglada jest port nasluchuje

22:12:25.764578 localhost.63165 > localhost.ftp: . win 3072
22:12:31.770259 localhost.63166 > localhost.ftp: . win 4096

* Skanowanie UDP. Skanowanie takie polega na wyslaniu pakietow UDP. Skanowanie to jest zadko urzywane ze wzgledu na dlugi czas realizacj swego zadania.

* Skanowanie ping - polega nie na sprawdzeniu czy dany port nasluchuje lecz na tym czy dany komputer jest wlaczony. Bledne informacje moga byc spowodowane przez to ze np Firewall odmawia przychodzenia tych pakietow.

Ponizej przedstawiam jak wyglada taki skan

22:31:07.156962 localhost > localhost: icmp: echo request
22:31:07.156990 localhost > localhost: icmp: echo reply

22:31:07.157282 localhost.38938 > localhost.http:
. ack 2845355806 win 2048

22:31:07.157292 localhost.http > localhost.38938:
R 2845355806:2845355806(0) win 0 (DF)

* Skanowaie Xmas - Skanowanie te wykorzystuje flagi FIN, URG, PUSH

Jesli port nienasluchuje

22:36:49.968410 localhost.35960 > localhost.compressnet:
FP 0:0(0) win 2048 urg 0

22:36:49.968443 localhost.compressnet > localhost.35960:
R 0:0(0) ack 1 win 0 (DF)

Jesli port nasluhuje

22:39:04.061765 localhost.62800 > localhost.ftp:
FP 0:0(0) win 2048 urg 0

22:39:10.070274 localhost.62801 > localhost.ftp:
FP 0:0(0) win 1024 urg 0

====================================================
4.0 Skanery sieciowe dla systemu linux
====================================================

W dziale tym zajmiemy sie dostepnymi skanerami sieciowymi dla systemu linux. Zajmiemy sie typi popularnymi jak nmap,nessus, czy hping. A takze zajmiemy sie kilku mniejszym skanerom mojego autorstwa do roznych celow.

====================================================
4.1 nmap
====================================================

Pierwszym skanerem jaki mam zamiar przedstawic jest chyba obecnie najpopularniejszy skaner sieciowy nmap. Skaner ten posiada cala baze dostepnych metod skanowan z przeroznymi opcjami. Skaner ten w nowszych wersjach ma juz obsluge ipv6. Potrafi on nie tylko sprawdzic jaki port jest otwarty ale rowniez np Sprawdzic wersje systemu operacyjnego.

Instalacja tego programu jest banalna i sprowadza sie do instalacji ze zrodel do wydania 3 polecen.

./configure
make
make install

Ponizej przedstawie obdluge dzialania programu oraz opis dostepnych opcji.

***********************************************
Metody Skanowania
***********************************************
-sT - tcp_connect - pelne polaczenie
-----------------------------------------------
-sS - stealth scan - skanowaie polotwarte
-----------------------------------------------
-sU - UDP - skanowanie UDP
-----------------------------------------------
-sF - Skanowanie FIN
-----------------------------------------------
-sX - Skanowanie Xmas
-----------------------------------------------
-sN - NULL scan
-----------------------------------------------
-sR - skanowanie RPC
-----------------------------------------------
-sO -skanowanie protokolow
-----------------------------------------------
-sA - skanowanie ACK - sprawdza reguly zapory
-----------------------------------------------
-sW - skanowanie rozmiarem okna
-----------------------------------------------

***********************************************
Opcje konfiguracji skanowania
***********************************************
-P0 - nie pinguje hosta przed skanowaniem
-----------------------------------------------
-O - Wykrywanie systemu operacynego
-----------------------------------------------
-p - skanowanie odpowiednich portow
-----------------------------------------------
-F scanowanie uslug zawartych w nmap-services
-----------------------------------------------
-v wyswietl dodatkowy opis
-----------------------------------------------
-6 skanowanie z ipv6
-----------------------------------------------
-T skanowanie z odpowienim ograniczeniem czasu
-----------------------------------------------
-oN -oX -oG - odpowiednie logowanie skanowania
-----------------------------------------------
-f - skanowanie fragmentami pakietow
-----------------------------------------------
-ttl - wartosc ttl (time-to-live)
-----------------------------------------------

====================================================
4.2 Nessus
====================================================
Nessus jest to potezne narzedzie do sprawdzania bezpieczenstwa naszego serwera.

Sklada on sie z samego programu oraz tzw regul ktore zawieraja definicje atakow.
Nalezy takze pamietac ze program ten moze doprowadzic do ataku DoS na nasz serwer.

Program sklada sie z :

libnasl
nessus-core
nessus-libraries
nessus-plugins

Pierwszymi zrodelkami z ktorych bedziemy korzystac bo mam nadzieje ze kompilujesz nessusa samemu to nessus-libraries. Kompilujesz to wydajac standardowe polecenia

./configure
make
make install

nastepnie kompilujemy

libnasl a takze nessus-core oraz nessus-plugins

./configure
make
make install

Z instalacji to wszystko nastepnie wydajemy polecenie

nalezy zrestartowac komputer (przynajmniej u mnie trzeba:-))

i wydajemy polecenie

nessus-adduser

dodajemy wtedy uzytkownika oraz jego haslo przez ktore bedziemy sie logowac do glownego programu

nastepnie nalezy stworzyc certyfikat a wykonuje to sie poleceniem

nessusd-mkcert

to juz wszystko co do instalacji.

Nastepnie uruchamiamy program nessusd powoduje on otwarcie portu na ktory bedziemy sie laczyc domyslny port to 1241. Nastepnie wpisujemy nessus i uruchami nam sie znane okienko nessusa.

W polu Nessusd Host wpisujemy nazwe hosta na ktorym odpalilismy nessusd. Port to chyba nie musze pisac 1241 Login oraz haslo takie jakie podalismy w nessus-adduser. I wciskamy maly przycisk LOG_IN:-).

Po zalogowaniu wybieramy odpowiednie reguly atakow ktore chcemy aby program sprawdzil. Nastepnie wybieramy cel ataku(target). Nastepnie czekamy. Dlugosc trwania takiego skanowania zalezy od przepustowosci nie tylko naszej ale takze celu. Po jakims 15-20 min pojawi nam sie informacji na temat skanowania znalezionych bledow uwag itp:. Dane te mozemy zapisac i kolejno wyeliminowac znalezione dziury.

Jak widac program ten moze byc uzywany przez hackerow jak i adminow . Dane wyjsciowe mozna zapisywac w przeroznych formatach takich jak text,xml,html itp.

====================================================
4.3 hping2
====================================================

Ponizej przedstawiam nieco inny skaner od w/w ale bardzo popularny. Program ten laczy ze soba wiele znanych metod oraz ma tez wiele innowacyjnych pomyslow. Zalozeniem tego skanera bylo testowanie zabezpieczen firewalli oraz IDS-ow. Program ten pozwala na tworzenie niemal dowolnie wygladajacych pakietow nawet takich ktore "nie sa poprawne". Instalacja programu polega na wydaniu trzech polecen.

./configure
make
make install

Ponizej w tabelce przedstawie z jakimi opcjami idzie uruchomic hping2.

**************************************************
OPCJE
**************************************************
-c - wielkosc wysylanego pakietu
--------------------------------------------------
-I - nazwa interfejsu
==================================================
Tryby dzialania
==================================================
standardowo ustawiony TCP
--------------------------------------------------
-0 RAW
--------------------------------------------------
-1 ICMP
--------------------------------------------------
-2 UDP
--------------------------------------------------
-9 tryb nasluchiwania
==================================================
OPCJE IP
==================================================
-a podszywanie sie pod adres IP
--------------------------------------------------
-t wartosc ttl - time to live
--------------------------------------------------
-x ustawienie flagi ze jest wiecej pakietow
--------------------------------------------------
-y ustawiona flaga ze jest wiecej pakietow
--------------------------------------------------
-m wartosc mtu
--------------------------------------------------
-o ustawienie type of service
--------------------------------------------------
wartosci type of service
--------------------------------------------------
maximum delay 10
maximum throughput 08
maximum reliability
maximum cost
--------------------------------------------------
-U flaga urg
--------------------------------------------------
-A flaga ack
--------------------------------------------------
-P flaga push
--------------------------------------------------
-R flaga rst
--------------------------------------------------
-S flaga syn
--------------------------------------------------
-F flaga fin
--------------------------------------------------
-M numer seqfencyjny
--------------------------------------------------

Wiecej inforamcji na temat dzialania hping znajdziecie w jego dokumentacji. Bardzo zachecam do korzystania z tego niewatpliwie ciekawego projektu.

====================================================
4.7 id_scanner.sh
====================================================
#!/bin/bash
clear
echo " *****************ID_SCANER*v1.0************************"
-negrals- echo " ***************************************************************"
echo " * Program ten wyciaga informacje o podstawowych dostepnych *"
echo " * uslugach. Sprawdza wersje ftp, czy jest dostepne *"
echo " * dostepne logowanie anonymous. Wersje sendmaila, czy jest *"
echo " * wyciek informacji przez epxn i vrfy. Sprawdza czy jest *"
echo " * dostepna usluga finger, wersje IMAPA oraz POPa, sprawdza *"
echo " * czy jest dostepny telnet i jak jest laczy sie i wyciaga *"
echo " * informacje o systemie, sprawdza takze wersje SSH *"
echo " * Wszystkie wyciagniete informacje zapisywane sa do pliku *"
echo " * log. *"
echo " *************************************************************** "
echo
echo " Tu wpisz nazwe servera do przeskanowania:"
read server
while [ "$server" != "$server" ]; do
echo ""
read server
echo
done
echo "Sprawdzam wersje servera ftp oraz uzytkownika anonymous........"
(sleep 1; echo "user anonymous"
sleep 1; echo "passwd anonymous"
sleep 2; echo -e "quitn"
sleep 3 ) | telnet $server 21 > log
echo
echo "Sprawdzam wersje serwera smtp, oraz jesli sendmail to expn i vrfy..........."
(sleep 1; echo "expn root"
sleep 1; echo "vrfy root"
sleep 2; echo -e "quitn"
sleep 3 ) | telnet $server 25 >>log
echo
echo "Sprawdzam wersje serwra ssh.................."
(sleep 1; echo "asoas"
sleep 3 ) | telnet $server 22 >>log
echo
echo "Sprawdzam usluge finger i zalogowanych uzytkownikow..........."
(sleep 1; echo "root"
sleep 2; echo -e "quitn"
sleep 3 ) | telnet $server 79 >>log
echo
echo "Sprawdzam wersje serwera www oraz wyciagam rozne informacje przez GET........"
(sleep 1; echo "GET"
sleep 2; echo -e "quitn"
sleep 3 ) | telnet $server 80 >>log
echo
echo "Sprawdzam telnet i wyciagam informacje o systemie.................."
(sleep 1 ) | telnet $server 23 >>log
echo
echo "Sprawdzam wersje IMAP................"
(sleep 1) | telnet $server 143 >>log
echo
echo "Sprawdzam werjse POP..............."
(sleep 1) | telnet $server 110 >>log
echo
echo "Sprawdzam zalogowanych uzytkownikow przez rwho............"
rwho $server >> log
echo
echo "Sprawdzam rpcinfo....................."
rpcinfo -p $server >> log
echo
echo "Sprawdzam udostepnione katalogi przez nfs oraz prawa do nich............"
showmount -e $server >> log
echo
exit 0


Jeśli masz jakies pytania i propozycje pisz na adresz w kontakcie .:: Marzyłem zostać Aniołem... Teraz nim jestem ::. Locker