Techniki skanowania hostów

Techniki maskujące skanowanie (stealth technique), mają utrudnić/uniemożliwić administratorowi (później określanego jako ofiara) wykrycie skanowanie. Do tych technik można zaliczyć wykorzystywanie słabości reguł ustalonych w RFC (Request for Comment), ustawień firewalla czy daemona/OS którego skanujemy.

Słabości w RFC są ukazane we wszystkich skanach oprócz TCP Connect i TCP XMAS.
W TCP Connect dlatego, że następuje pełne połączenie między atakującym a ofiarą, na wielu portach w niedługim czasie, przeglądając logi można to nawet optycznie zauważyć.

Wybrałem tą metodę do opisania jako łatwiejsza do wykrycia, gdyż jeśli dbamy o siebie nie będziemy jej używali, tak samo jak ICMP (-sP) lub UDP (-sU) Scanning (nie dość, że są łatwe do wykrycia już przez samego firewalla to nie gwarantują, że wynik skanowania jest prawdziwy!), równie dobrze mogłem opisać te dwie, jako przestrogę, nie polecam ich używać.

Pozostałe techniki skanowania nie pozostawiają (tak wielu jak TCP-C) śladów przy skanowaniu.

Metody skanowania. Jak zbudowanymi pakietami się posługiwać?

 

TCP Connect

Metoda skanowania, w której w czasie wykrywania otwartych portów przeprowadzane jest całkowicie połączenie TCP z portem. Skanowanie polega na wysyłaniu na dane porty zapytań TCP z flagą SYN (mogę się połączyć?). Zależnie od odpowiedzi pytanego ustala się czy port jest otwarty czy nie. Odpowiedź z flagą SYN/ACK (pytanie zaakceptowano) oznacza, że port jest otwarty, flaga RST/ACK (poszoł von!) oznacza niechęć do ustanowienia połączenia. Odebranie pakietu z flagą SYN/ACK powoduje odpowiedź od pytającego flagą ACK (spoko, to się połączyliśmy). Użycie nmapa do przeprowadzenia tego skanowania:

# nmap -sT 192.168.1.2

Starting Nmap 5.00 ( http://nmap.org ) at 2011-02-12 15:34 CET
Interesting ports on 192.168.1.2:

Not shown: 999 closed ports
PORT STATE SERVICE
80/tcp open http

Jest to metoda łatwa do wykrycia, odpytywane są wszystkie porty, z każdym następuje próba nawiązania pełnego połączenia TCP, wszystko jest w logach.

 

TCP SYN Scanning

Podobne do TCP Connect, jednak bezpieczniejsze od powyższego. Skanowanie polega na wysłaniu TCP z flagą SYN, odebraniu odpowiedzi SYN/ACK lub RST/ACK, tutaj jest różnica, TCP Connect wysyła pakiet z flagą ACK (której ofiara oczekuje) przez co nawiązuje połączenie z hostem, przy SYN Scanning nie odpowiada się żadną flagą, przez co nie ma pełnego nawiązania połączenia, więc nie może ono być zalogowane.

# nmap -sS 192.168.1.2

Starting Nmap 5.00 ( http://nmap.org ) at 2011-02-12 15:40 CET
Interesting ports on 192.168.1.2:

Not shown: 999 closed ports
PORT STATE SERVICE
80/tcp open http

 

TCP FIN Scanning

Do ofiary wysyłany jest pakiety TCP z flagą FIN. Reguła wzięta z RFC mówi, że zamknięty port odpowie pakietem z flagą RST (nie ma mnie), otwarty port oleje takie zapytanie. Odpowiedzi uzyskiwane przez ten sposób skanowania są nieco bardziej szczegółowe:

# nmap -sF 192.168.1.2

Starting Nmap 5.00 ( http://nmap.org ) at 2011-02-12 15:51 CET
Interesting ports on 192.168.1.2:

Not shown: 999 closed ports
PORT STATE SERVICE
80/tcp open|filtered http

 

TCP ACK Scanning

Skanowanie jest oszukanym skanowaniem, oszukiwana jest ofiara. Oszustwo polega na skanowaniu, które zaczyna się od zapytania TCK ACK (dzięki za połączenie), ofiara zastanawia się o jakie podziękowanie chodzi, bo wcześniejszych zapytań nie ma w pamięci. Port zamknięty odpowie RST (jak w zapytaniu TCP FIN), port otwarty nic nie odpowiada. Tą metodą można sprawdzać ustawienia firewalla, odpowiedź RST zasugeruje, że port może być niefiltrowany przez firewalla.

# nmap -sA 192.168.1.2
Starting Nmap 5.00 ( http://nmap.org ) at 2011-02-12 15:57 CET
All 1000 scanned ports on 192.168.1.2 are unfiltered

 

TCP NULL Scanning

Skanowanie polega na wysłaniu do ofiary pakietów TCP NULL, czyli bez ustawionej żadnej flagi. Identycznie jak w ACK czy FIN – odpowiedź RST powie, że port jest zamknięty, brak odpowiedzi=port otwarty.

# nmap -sN 192.168.1.2

Starting Nmap 5.00 ( http://nmap.org ) at 2011-02-12 15:59 CET
Interesting ports on 192.168.1.2:

Not shown: 999 closed ports
PORT STATE SERVICE
80/tcp open|filtered http

 

TCP XMAS Scanning

Skanowanie polega na wysłaniu do hosta pakietu z ustawionymi trzema flagami: FIN – dobra, koniec. URG – dostarcz szybko! Ważne! PSH – dostarcz do odpowiedniej aplikacji3

# nmap -sX 192.168.1.2

Starting Nmap 5.00 ( http://nmap.org ) at 2011-02-12 16:05 CET
Interesting ports on 192.168.1.2:

Not shown: 999 closed ports
PORT STATE SERVICE
80/tcp open|filtered http

Wyżej opisane zostały techniki do wyboru jakimi można skanować same porty. Teraz zajmiemy się metodami wykrywania usług działającymi na danym porcie. Wykrywanie systemu operacyjnego działającego na danym hoście określamy za pomocą -O

# nmap 192.168.1.3 -sS -O

Starting Nmap 5.00 ( http://nmap.org ) at 2011-02-12 16:15 CET
Interesting ports on 192.168.1.3:

Not shown: 994 filtered ports
PORT STATE SERVICE
80/tcp open http
135/tcp open msrpc
139/tcp open netbios-ssn
443/tcp open https
445/tcp open microsoft-ds
5357/tcp open unknown
MAC Address: 00:1F:E1:02:DC:9E (Hon Hai Precision Ind. Co.)
Warning: OSScan results may be unreliable becaus
we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Microsoft Windows Vista|2008
OS details: Microsoft Windows Vista SP0 or SP1 or Server 2008 SP1
Network Distance:1 hop

Otrzymany wynik nie jest jakimś cudownie uzyskaną odpowiedzią na pytanie “co za OS z ciebie?” odpowiedź jest zgadywana dzięki kilku szczegółom nawiązywania połączenia (np. różnice wynikające z systemu operacyjnego, Windows wysyła pakiety o innej wartości TLL niż Linux, czy pozostawiony fingerprint). NMAP oferuje nam skanowanie samych usług działających na hoście:

# nmap 192.168.1.3 -sC

Starting Nmap 5.00 ( http://nmap.org ) at 2011-02-12 16:46 CET
Interesting ports on 192.168.1.3:

Not shown: 994 filtered ports
PORT STATE SERVICE
80/tcp open http
135/tcp open msrpc
139/tcp open netbios-ssn
443/tcp open https
445/tcp open microsoft-ds
5357/tcp open unknown
MAC Address: 00:1F:E1:02:DC:9E (Hon Hai Precision Ind. Co.)

Host script results:
|_ nbstat: NetBIOS name: ADMIN-PC, NetBIOS user: ,
NetBIOS MAC: 00:1f:e1:02:dc:9e
| smb-os-discovery: Windows Vista (TM) Home Basic 6002 Service Pack 2
| LAN Manager: Windows Vista (TM) Home Basic 6.0
| Name: WORKGROUPADMIN-PC
|_ System time: 2011-02-12 16:46:44 UTC+1

 

Jednak więcej danych o OS i usługach dowiemy się z:

# nmap 192.168.1.3 -sS -A

Starting Nmap 5.00 ( http://nmap.org ) at 2011-02-12 16:21 CET
Interesting ports on 192.168.1.3:

Not shown: 994 filtered ports
PORT STATE SERVICE VERSION
80/tcp open http?
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn
443/tcp open skype2 Skype
445/tcp open netbios-ssn
5357/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_ html-title: Service Unavailable
1 service unrecognized despite returning data.
If you know the service/version, please submit the following
fingerprint at http://www.insecure.org/cgi-bin/servicefp-submit.cgi :
SF-Port80-TCP:V=5.00%I=7%D=2/12%Time=4D56A573%P=x86_64-unknown-linux-gnu%r
SF:(GetRequest,1A,"HTTP/1.0x20404x20Notx20Foundrnrn")%r(HTTPOption
SF:s,6F,"Fxe0x01x8fxe0xe5xe9x88xc2RM"x8cxe7Ux99@xb7x1cx0fx
SF:d2xd8xddxffxc3xf0Tqxa4xcaxffxc3xe3xe2OFxcdYAx8d_xc1kx0f
SF:xbexcbkxdbu"xab`QNxe7lxed:xe38Ixe6x9fxc4eRx1bx10A~Wx1cxdd
SF:jSxe89x16x0ftUx82x8bxc01xaexc7xccxcdx9axc3x98)Fx7f$Exb
SF:2xfbp!xde7|xbdxca3Hx19vxef")%r(RTSPRequest,49,"xa0xc7x95xd1
SF:xfbx7fxc7xb5x[xe3xffx13xc0xb5xd5Txe6xbfxacxbex81exxaax
SF:bdx7fox96xd4x9aVdHJx8bx9fhxc1x1fx0fxbfEjxb4)UPx81xbex9
SF:7x1dxaax93(yVOxb4x95xc2xcbqxeex07x0crxdax03xd8")%r(F
SF:ourOhFourRequest,1A,"HTTP/1.0x20404x20Notx20Foundrnrn")%r(RPCCh
SF:eck,6D,"x97Q(LLxc5xd9]xd8xc0xba=jx02xd1yxd6"x8fxf7xd4x0
...(celowo ucięty wynik skanu)..
SF:).xf3Wxbe.PHx19vxefxd45xe2kx20x11x0exa7,xadxfaxa3xf8t
SF:xa6_x84%x12xdbxd0x01>x17xdcx9d*x13xa8xf9xd6xcf4x15BKx80
SF:xf1nx87x8cx8dZx83Xxe9x06?xe4x05rxbb0xe1x9exf7<}>x,xa6Tx
SF:16xd4x01");
MAC Address: 00:1F:E1:02:DC:9E (Hon Hai Precision Ind. Co.)
Warning: OSScan results may be unreliable because we could not
find at least 1 open and 1 closed port
Device type: general purpose
Running: Microsoft Windows Vista|2008
OS details: Microsoft Windows Vista or Windows Server 2008 SP1,
Microsoft Windows Vista SP0 or SP1 or Server 2008 SP1
Network Distance: 1 hop
Service Info: OS: Windows

Host script results:
|_ nbstat: NetBIOS name: ADMIN-PC, NetBIOS user: ,
NetBIOS MAC: 00:1f:e1:02:dc:9e
| smb-os-discovery: Windows Vista (TM) Home Basic 6002 Service Pack 2
| LAN Manager: Windows Vista (TM) Home Basic 6.0
| Name: WORKGROUPADMIN-PC
|_ System time: 2011-02-12 16:22:38 UTC+1

 

Za pomocą tych opcji nmapa udało się uzyskać następujące dane:

  • Nazwa komputera: ADMIN-PC
  • MAC ADDR: 00:1f:e1:02:dc:9e
  • Producent karty sieciowej: Hon Hai Precision Ind. Co
  • System operacyjny: Windows Vista (TM) Home Basic 6002 Service Pack 2
  • Grupa do której należy komputer: WORKGROUP
  • Czas na komputerze skanowanym: 2011-02-12 16:22:38 UTC+
  • O włączonych usługach:
  • 443/tcp open skype2 Skype
  • 135/tcp open msrpc Microsoft Windows RPC

Wykrywanie usług poprzez skan na danym porcie wykonasz za pomocą:

/# nmap 192.168.1.3 -sC -p 80,81,82

Starting Nmap 5.00 ( http://nmap.org ) at 2011-02-12 16:49 CET
Interesting ports on 192.168.1.3:

PORT STATE SERVICE
80/tcp open http
81/tcp filtered hosts2-ns
82/tcp filtered xfer
MAC Address: 00:1F:E1:02:DC:9E (Hon Hai Precision Ind. Co.)
To samo tylko inny zapis:
# nmap 192.168.1.3 -sC -p 80-82

Tempo skanowania nmapem określa się dodając parametr -T Gdzie liczba stoi zaraz za T, bez odstępu:

root@Asus-PC:/# nmap 192.168.1.3 -sC -T1 – najwolniejsze

root@Asus-PC:/# nmap 192.168.1.3 -sC -T5 – najszybsze

Liczba całkowita od 0 do 5.

Ten parametr dodany jest by celowo spowolnić skanowanie, czyli porozrzucać dane o skanowaniu w logach gdzieś pomiędzy prawidłowymi poleceniami

Wysyłanie zapytań z danego portu lokalnego zrobisz za pomocą opcji –source-port

A interface z którego wysyłać dane podasz z pomocą -e

Za czyjś adres z sieci lokalnej podszyjesz się przy pomocy parametru -S

Ciekawą przygodę miałem z tym spoofingiem gdy znajomy miał tak skonfigurowanego firewalla, że gdy ktoś go skanował, skrypt blokował możliwość połączenia z tym IP (blacklist), miał on problem gdy pewnego dnia sam switch zaczął go skanować :>

# nmap 192.168.1.3 -sC -T5 -e wlan0 -PN -S 192.168.1.1

Starting Nmap 5.00 ( http://nmap.org ) at 2011-02-12 17:00 CET
Interesting ports on 192.168.1.3:

Not shown: 994 filtered ports
PORT STATE SERVICE
80/tcp open http
135/tcp open msrpc
139/tcp open netbios-ssn
443/tcp open https
445/tcp open microsoft-ds
5357/tcp open unknown
MAC Address: 00:1F:E1:02:DC:9E (Hon Hai Precision Ind. Co.)

Host script results:
|_ nbstat: NetBIOS name: ADMIN-PC, NetBIOS user: ,
NetBIOS MAC: 00:1f:e1:02:dc:9e
| smb-os-discovery: Windows Vista (TM) Home Basic 6002 Service Pack 2
| LAN Manager: Windows Vista (TM) Home Basic 6.0
| Name: WORKGROUPADMIN-PC
|_ System time: 2011-02-12 17:00:44 UTC+1

Jest także możliwość spoofowania MAC ADDR używają parametru –spoof-mac . Dodatkowe użycie parametru -f każe programowi fragmentować pakiety, ta opcja także pomaga zachować naszą anonimowość, no przynajmniej utrudni adminowi wykrycie skanowania.

[Total: 0    Average: 0/5]