rozpoznawanie_pl.pdf
(
1473 KB
)
Pobierz
2653499 UNPDF
Kilka ciekawych
metod rozpoznawania
systemu operacyjnego
Marek Gutkowski
Artykuł opublikowany w numerze 2/2004 magazynu “Hakin9”
Artykuł w formie elektronicznej tylko dla prenumeratorów magazynu “Hakin9”.
Wszelkie prawa zastrzeżone. Rozpowszechnianie bez zgody Wydawcy zabronione.
Magazyn „Hakin9”, Wydawnictwo Software, ul. Lewartowskiego 6, 00-190 Warszawa, piotr@software.com.pl
Kilka ciekawych metod
rozpoznawania systemu
operacyjnego
Marek Gutkowski
Jest wiele sposobów na to, że-
by rozpoznać, jaki system ope-
racyjny pracuje na danej maszy-
nie. Przyjrzyjmy się bliżej kilku
z nich.
ku. Gdzieś z drugiego końca świa-
ta włamywacz powoli i delikatnie ba-
da Twoją maszynę. Zanim wytoczy cięższą ar-
tylerię, zanim Twoje przepełnione ponad wszel-
ką miarę bufory wrzasną w panice, zanim ciągi
formatujące Twoich
printfów()
zostaną ohydnie
zdeformowane, włamywacz będzie próbował
dowiedzieć się jak najwięcej o oprogramowaniu
komputera, który jest jego celem. Zaczyna się
gra wstępna. Ile informacji uzyska?
Nie musieliśmy zaprzęgać do pracy
nmapa
i robić zbędnego hałasu – wszystkie informa-
cje mamy na talerzu. Wystarczyło połączyć się
na port 80 badanej maszyny (standardowy port
usługi http) i poprosić o przesłanie nagłówków:
HEAD / HTTP/1.1
W odpowiedzi serwer przesłał nam (w nagłów-
ku HTTP) szereg przydatnych informacji:
Metody proste ale skuteczne
Zanim zabierzemy się do poważnych ekspe-
rymentów, warto powiedzieć o dwu metodach
bardzo prostych, a często niezwykle skutecz-
nych. Nie musimy wcale wysyłać specjalnie
spreparowanych pakietów, żeby zdobyć intere-
sujące nas informacje...
Z artykułu nauczysz się...
Po przeczytaniu artykułu Czytelnik będzie znał, ro-
zumiał i umiał zastosować w praktyce kilka metod
zdalnego rozpoznawania systemu operacyjnego
– analizę nagłówków HTTP,
reverse ident
, analizę
odpowiedzi udzielanych przez demony obsługujące
różne usługi, pomiar czasu pomiędzy retransmisja-
mi pakietów SYN+ACK w trakcie nawiązywania po-
łączenia TCP. Przy okazji pokażemy jak korzystać
z narzędzi
tcpdump
i
sendip
, a także przypomnimy
kilka spraw związanych z protokołami TCP i IP.
Co powinieneś wiedzieć...
Zakładamy, że Czytelnik zna i rozumie podstawy
działania Internetu (patrz
dokumentacja
na CD:
podstawy->sieci
).
Zbadanie nagłówka HTTP
Duża część serwisów nie stara się ukryć
używanego systemu operacyjnego i serwe-
ra HTTP. W przykładzie z Listingu 1 admini-
strator bez lęku udostępnia interesujące nas
informacje (rzeczywiście – nie ma się czego
wstydzić!).
2
www.hakin9.org
Hakin9 Nr 2/2004
W
yobraź sobie, że stałeś się celem ata-
Rozpoznawanie systemu operacyjnego
Usługa ident
Ident służy do ustalania, jaki użytkownik jest właścicielem danego połączenia.
Komunikacja przebiega następująco (patrz Rysunek 1):
Listing 2.
Czego dowiemy się
o serwerze home.pl?
$ telnet home.pl 80
<
Trying 212.85.96.1...
<
Connected to
• Użytkownik
trinity
na maszynie
example.matrix.net
uruchamia przeglądarkę i łączy
się z portem 6667 serwera
warszawa.irc.pl
. System operacyjny komputera używa-
nego przez
trinity
przydzielił dla tego połączenia lokalny port 1234.
•
warszawa.irc.pl
ustala, jaki użytkownik nawiązał to połączenie. W tym celu łączy
się z usługą ident komputera
example.matrix.net
i podaje numery portów używa-
nych w interesującym go połączeniu: 1234, 6667.
• Usługa ident działająca na
example.matrix.net
znajduje użytkownika, który jest
właścicielem połączenia
example.matrix.net:1234
–
warszawa.irc.pl:6667
i poda-
je jego nazwę. Serwer
warszawa.irc.pl
wie, że połączenie nawiązał użytkownik
trinity.
S
matrix01.home.net.pl.
<
Escape character is '^]'.
>
HEAD / HTTP/1.0
>
<
HTTP/1.0 200 OK
<
Server: IdeaWebServer/v0.20
< [...]
<
Connection closed
S
by foreign host.
• serwer WWW: Apache (
Server:
Apache/1.3.27
),
• system operacyjny: Debian (
De-
bian GNU/Linux
),
• załadowane moduły:
mod _ssl/
2.8.14 OpenSSL/0.9.7b PHP/4.2.3...
Przyjrzyjmy się serwerowi
ho-
me.pl
(patrz Listing 2). Metoda opi-
sana w poprzednim punkcie (zba-
danie nagłówków HTTP) daje tyl-
ko lakoniczną informację, że
ho-
me.pl
używa tajemniczego serwera
IdeaWebServer/v0.20
. Netcraft jest
bardziej pomocny: wystarczy zajrzeć
pod adres
http://uptime.netcraft.com/
up/graph/?host=home.pl
by dowie-
dzieć się, że systemem operacyjnym
na serwerach
home.pl
jest FreeBSD
(tak rzeczywiście jest) – nie wysyła-
jąc do badanego serwera ani jedne-
go pakietu. Cały ingerprinting wyko-
nały za nas automaty Netcraftu!
Ident
Usługa ident, opisana w RFC1413,
jest wykorzystywana do ustalania
nazwy użytkownika, który nawią-
zał połączenie (patrz Ramka
Usłu-
ga ident
). Ident powoli wychodzi
z użycia – informacje uzyskane w ten
sposób nie są wiarygodne i mają nie-
wielkie zastosowanie. Dlatego więk-
Netcraft
To nie koniec ułatwień – zamiast
używać telnetu i zostawiać po so-
bie zbędne ślady w logach, może-
my skorzystać z pomocy Netcrafta
– irmy prowadzącej statystyki uży-
wanego przez serwery WWW opro-
gramowania. Na potrzeby tych sta-
tystyk Netcraft analizuje nagłów-
ki HTTP, ale również wykonuje
– własnymi metodami – ingerprin-
ting stosu TCP/IP serwerów. Wyniki
są dostępne na stronie internetowej
http://www.netcraft.com
– wystarczy
podać nazwę serwera, który nas in-
teresuje, a poznajemy nie tylko na-
zwę serwera WWW i system opera-
cyjny, ale także wyniki ewentualnych
poprzednich badań tej maszyny.
Listing 1.
Serwer WWW
przedstawia się jako Apache
$ telnet www.allegro.pl 80
<
Trying 212.126.20.198...
<
Connected to rumcajs.allegro.pl.
<
Escape character is '^]'.
>
HEAD / HTTP/1.1
>
< HTTP/1.1 200 OK
<
Date:Tue,22 Jul 2003 19:15:22GMT
<
Server: Apache/1.3.27(Unix)
S
S
S
OpenSSL/0.9.7b
[...]
mod_ssl/2.8.14
Rysunek 1.
Serwer IRC korzysta z usługi ident, żeby poznać nazwę
łączącego się z nim użytkownika
Hakin9 Nr 2/2004
www.hakin9.org
3
Debian GNU/Linux
Listing 3.
Reverse ident
– nmap z opcją -I
Listing 5.
Sprawdzanie serwera
DNS – NSD
nie działa na innych platformach;
hi-
dentd
z kolei działa na Linuksie i Fre-
eBSD i do tych dwóch systemów mo-
żemy ograniczyć dalsze badania.
$ nmap -I -sT xxx.yyy.pl
Starting nmap 3.27
(www.insecure.org/nmap/)
at 2003-07-24 22:45 CEST
Interesting ports on
xxx.yyy.pl (aa.bb.cc.dd):
(The 1616 ports scanned but not
shown below are in state: closed)
Port State Service Owner
21/tcp open ftp root
22/tcp open ssh root
25/tcp open smtp qmaild
80/tcp open http www-data
110/tcp open pop-3 root
113/tcp open auth hidentd
host -c chaos \
-t txt version.server \
k.root-servers.net
Fingerprinting usług
Nie tylko serwery HTTP podają in-
formację o wersji. Przez analizę od-
powiedzi na
EHLO
,
VRFY
,
EXPN
,
HELP
można łatwo zidentyikować serwer
SMTP; listę odcisków różnych ser-
werów można znaleźć w [3].
Nieco bardziej skomplikowane
jest zidentyikowanie serwera DNS,
ale tu również sporo da się zrobić:
Using domain server:
Name: k.root-servers.net
Address: 193.0.14.129#53
Aliases:
version.server text "NSD 1.2.2"
informacji o używanym na serwe-
rze oprogramowaniu oraz o wła-
ścicielach poszczególnych proce-
sów. Technika ta nazywa się
rever-
se ident
. Najprostszym sposobem
jej użycia jest wykorzystania
nmapa
z opcją
-I
. Wyniki przykładowego
skanowania przedstawia Listing 3.
Prawda, że interesujące? Na
tej maszynie używa się
qmaila
ja-
ko MTA i programu
hidentd
jako ser-
wera ident. Można się domyślać,
że serwerem HTTP jest
Apache
,
a pop3 obsługuje
qmail-pop3d
. Jakie
możemy wyciągnąć wnioski? Jest
to na pewno Unix, ponieważ
qmail
szość serwerów nie udostępnia tej
usługi; wyjątkami są te, których użyt-
kownicy korzystają z IRC – serwe-
ry
*.irc.pl
dość nieprzyjemnie traktu-
ją użytkowników, którzy nie dają się
zidentyikować. Poza tym niektórzy
administratorzy nie zawracają sobie
głowy wyłączaniem zbędnych usług,
dając nam tym samym nową broń do
ręki. Zastanówmy się: skoro przy po-
mocy usługi ident można zidenty-
ikować właściciela procesu, który
nawiązuje połączenie, to co stoi na
przeszkodzie, żeby zastosować ten
mechanizm w drugą stronę? Może-
my połączyć się z np. portem 80 ser-
wera, a następnie przy pomocy ident
zapytać o właściciela procesu, który
to połączenie obsługuje (patrz Rysu-
nek 2). Odpowiedź nie zawsze po-
może zidentyikować system ope-
racyjny, ale dostarczy dodatkowych
• BIND w wersji 9 podaje informa-
cje o wersji po otrzymaniu zapy-
tania klasy 3 (Chaos) typu TXT
o
Authors.BIND
,
• niektóre serwery reagują na za-
pytanie o
version.bind
, również
w klasie 3 i typu TXT,
• NSD rozpoznaje się po odpo-
wiedzi na analogiczne zapytanie
o
version.server
,
•
tinydns
można rozpoznać po od-
powiedziach
not implemented
na
zapytania NOTIFY i UPDATE.
Listing 4.
Sprawdzanie serwera
DNS – BIND
$ host -c chaos -t txt \
Authors.BIND ns-ext.vix.com
Using domain server:
Name: ns-ext.vix.com
Address: 204.152.184.64#53
Aliases:
Authors.BIND text "Brian
Wellington"
Authors.BIND text "Mark Andrews"
[...]
Authors.BIND text "Michael Sawyer"
Rysunek 2.
Złośliwy użytkownik wykonuje reverse ident, żeby dowiedzieć
się, z prawami jakiego użytkownika działa serwer WWW
4
www.hakin9.org
Hakin9 Nr 2/2004
Rozpoznawanie systemu operacyjnego
Listing 6.
RTO dla różnych systemów operacyjnych – MacOS X (Jaguar)
19:50:42.100889
yy.yy.yy.yy
.1045
>
xx.xx.xx.xx
.www
: S 878718849:878718849(0) win 5808 <mss 1452,sackOK,timestamp
717607 0,nop,wscale 0> (DF) [tos 0x10]
19:50:42.312173
xx.xx.xx.xx
.www
>
yy.yy.yy.yy
.1045
: S 1212246017:1212246017(0) ack 878718850 win 33120 <mss
1452,nop,wscale 0,nop,nop,timestamp 906422773 717607> (DF)
19:50:45.056524
xx.xx.xx.xx
.www
>
yy.yy.yy.yy
.1045
: S 1212246017:1212246017(0) ack 878718850 win 33120 <mss
1452,nop,wscale 0,nop,nop,timestamp 906422778 717607> (DF)
19:50:51.057045
xx.xx.xx.xx
.www
>
yy.yy.yy.yy
.1045
: S 1212246017:1212246017(0) ack 878718850 win 33120 <mss
1452,nop,wscale 0,nop,nop,timestamp 906422790 717607> (DF)
19:51:03.059710
xx.xx.xx.xx
.www
>
yy.yy.yy.yy
.1045
: S 1212246017:1212246017(0) ack 878718850 win 33120 <mss
1452,nop,wscale 0,nop,nop,timestamp 906422814 717607> (DF)
19:51:27.064965
xx.xx.xx.xx
.www
>
yy.yy.yy.yy
.1045
: S 1212246017:1212246017(0) ack 878718850 win 33120 <mss
1452,nop,wscale 0,nop,nop,timestamp 906422862 717607> (DF)
19:51:57.070629
xx.xx.xx.xx
.www
>
yy.yy.yy.yy
.1045
: R 1:1(0) ack 1 win 33120 (DF)
Listing 7.
RTO dla różnych systemów operacyjnych – FreeBSD 4.8
22:53:14.945110
yy.yy.yy.yy
.1065
>
xx.xx.xx.xx
.ssh
: S 3832838203:3832838203(0) win 5808 <mss 1452,sackOK,timestamp
1812891 0,nop,wscale 0> (DF) [tos 0x10]
22:53:14.974887
xx.xx.xx.xx
.ssh
>
yy.yy.yy.yy
.1065
: S 2063605193:2063605193(0) ack 3832838204 win 57344 <mss
1452,nop,wscale 0,nop,nop,timestamp 2856934 1812891> (DF)
22:53:17.971558
xx.xx.xx.xx
.ssh
>
yy.yy.yy.yy
.1065
: S 2063605193:2063605193(0) ack 3832838204 win 57344 <mss
1452,nop,wscale 0,nop,nop,timestamp 2857234 1812891> (DF)
22:53:23.972265
xx.xx.xx.xx
.ssh
>
yy.yy.yy.yy
.1065
: S 2063605193:2063605193(0) ack 3832838204 win 57344 <mss
1452,nop,wscale 0,nop,nop,timestamp 2857834 1812891> (DF)
22:53:35.972072
xx.xx.xx.xx
.ssh
>
yy.yy.yy.yy
.1065
: S 2063605193:2063605193(0) ack 3832838204 win 57344 <mss
1452,nop,wscale 0,nop,nop,timestamp 2859034 1812891> (DF)
Hakin9 Nr 2/2004
www.hakin9.org
5
Plik z chomika:
ddwrobel
Inne pliki z tego folderu:
wyscig_pl.pdf
(462 KB)
Wireless_Seguridad_Hakin9.pdf
(1738 KB)
wardriving_tutorial_hakin9.pdf
(1099 KB)
switch_pl.pdf
(2208 KB)
stackoverflow_pl.pdf
(1224 KB)
Inne foldery tego chomika:
CCNA V1
CCNA V2
CCNA V3
CCNA V4
Cisco
Zgłoś jeśli
naruszono regulamin