Penetration testing – Work 5

Tehtävä 5

h5 Script Kiddie

Task v: Lue artikkelit ja katso videot, tee kustakin muistiinpanot (muutama ranskalainen viiva per artikkeli/video). Tässä v-kohdassa ei tarvitse tehdä mitään kokeita koneella.

Vastaus:

  • Metasploit on tietoturvaprojekti, joka tarjoaa eksploiteja ja monia tiedusteluominaisuuksia, mitkä voi käyttää tunketumistestauksessa.
  • Metasploit on esitetty  YouTube-kanavаlla.
  • Metaspilot-ohjelmasta on kaksi versiota. Framework versio sopii kehittäjille ja tietoturvatutkijoille, koska se on ilmainen ja lähdekoodi on avoin. Pro-versiota käytetään ensisijaisesti ammattimaiseen, edistyneeseen ja laajaan levinneisyystestaukseen ja yritystietoturvaohjelmistoihin.
  • Metasploitissa käytetyt perustermit:
    • Exploit: On koodinpätkä, joka suoritettuna hyödyntää kohteen haavoittuvuutta.
    • Payload: On koodinpätkä, joka suoritetaan kohteessa onnistuneen hyödyntämisen jälkeen. Se määrittelee toimet, jotka haluamme suorittaa kohdejärjestelmässä.
    • Auxiliary: Ovat moduuleja, jotka tarjoavat lisätoimintoja, kuten skannauksen (scanning), sumennuksen (blurring), haistamisen (sniffing) ja paljon muuta.
    • Encoders: Käytetään moduulien hämärtämiseen (obscure), jotta suojamekanismi, kuten virustorjunta tai palomuuri, ei havaitse niitä.
    • Meterpreter: On hyötykuorma, joka käyttää muistissa olevia DLL-injektiovaiheita. Se tarjoaa erilaisia toimintoja, joita voimme suorittaa kohteessa.
  • Metasploit Wiki
  • Metasploit vastaa puhtaammasta poistumisesta vaarantuneista järjestelmistä, ts. ei riko testattavaa järjestelmää.
  • Skannaus: Nmap on yksi parhaista saatavilla olevista työkaluista. Nmapin tuottamat raportit voidaan helposti tuoda Metasploitiin. Metasploitissa on sisäänrakennetut Nmap-toiminnot.
  • DB: Tunkeutumistestauksen tulokset voi tallentaa automaattisesti tietokantaan sellaiseen kuin PostgreSQL. Tietokantojen käyttö Metasploitissa myös nopeuttaa hakua ja parantaa vasteaikaa. Komennolla workspace skannattujen järjestelmien tulokset voidaan jakaa siten, että tulokset eivät sekoituisi.
  • Penetraatiotesti Metasploit ohjelmalla:
    • Skannaus Nmap ohjelman avulla. Skannataan portteja, porteissa käynnissä olevien palveluiden versioita, käyttöjärjestelmän versiota, haavoittuvuuksia. Nmap parametrit löytyvät tästä linkistä.
    • Uhkien mallinnus:
      • Etsitään löytyykö valmista modulia haavoittuvuudelle search komennolla. Modulin Rank luokka esittää kuinka todennäköisesti moduli tulee toimimaan.
      • Ladataan apumoduuli use -komennolla
      • Konfiguroidaan apumoduli set -komennolla
      • Käynnitetään apumoduli run -komennolla
      • vulns komento lisää tiedot havoituvuudesta tietokantaan
    • Haavoittuvuusanalyysi: Etsitään tietoja havoittuvuudesta tietolähteistä kuten NVD ja muualta.
    • Hyödyntäminen ja pääsyn saaminen:
      • Ladataan exploit moduli use -komennolla
      • Katsotaan modulin parametrit show options -komennolla
      • Konfiguroidaan moduli set -komennolla (LHOST-parametria (oma IP) käytetään paluuyhteyttä varten)
      • Käytetään exploit modulia exploit -komennolla
      • Tarvittaessa vaihdetaan shell Meterpreter:ksi session –u komennolla
    • Post-exploitation kung fu:
      • Naamiodaan vaihtamaalla Meterpreter shell PID:tä ohjelmaksi joka ei herä epäilyjä.
      • Onnistuneen hyökkäyksen jälkeen käytetään post -moduuleja. (Pitää laittaa Meterpreter tomimaan taustalla background -komennolla)
      • Meterpreter arp shell-komento näyttää IP-avaruudet, joihin koneella on pääsy. Sen kautta voidaan hyökätä muihin koneisiin. (autoroute moduli)
      • On mahdollista vaarantaa järjestelmänvalvojan tili varastamalla token ja esiintyä domainin järjestelmänvalvojana käyttämällä Metasploit incognito -laajennusta.
      • Voidaan käyttää Domain Controller konetta käyttämällä Metasploit local_ps_exec -post modulia.
      • Voidaan ottaa taltteen kaikkien Active Directoryn käyttäjien salasanatiivisteet käyttämällä smart_hashdump -post modulia.
      • Metasploit-moduuleilla mimikatz tai kiwi voi ottaa taltteen järjestelmän käyttäjätunnukset koneen muistista.
    • Järjestelmällinen lähestymistapa tunkeutumistestaukseen on tärkeää. Kaikki löydöt on dokumentoitava, jotta niistä voidaan raportoida myöhemmin.

 

Lähteet:

Nipun Jaswal 2020: Mastering Metasploit

StationX:  Nmap Cheat Sheet

PenTest Magazine: Metasploit Cheat Sheet

 

Task a: Emmental. Asenna Metasploitable 3

Yritin asentaa Matasploitable 3 Rapid 7 GitHub repositorysta virtuaaliselle Kali linux distrolle joka pyörii VMWare Workstation 15 Pro hypervisorilla Windos 10 isäntäkoneella. Käytin GitHub reposta löytyneitä ohjeita, mutta asennus oli epäonnistunut. Uudessa Ubuntussa jolla Kali on tehty puuttunut osa Ruby Gem moduleita ja kuin sain niitä asennettua, ja yritin asentaa Vagrantin plugin vagrant-libvirt tuli virhe liittyen konflikttiin net-ssh kirjaston Gemfile.lock tiedostossa. Etsin ratkaisua useita tunteja, mutta lopulta luovutin ja asensin toisen VM:n Ubuntu 18.04.

Asensin Ubuntua ja allokoin koneelle 8GB RAM, 70GB HDD, 2x NIC yhden NAT asetuksilla ja toisen Host-only. Päivitin Ubuntun paketteja, asensin koneelle openssh-server ja käynnistin sen, jotta konelle pääsisi SSH-yhteydellä Windows isäntäkoneelta MobaXterm SSH-klientiä käyttäen.

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install openssh-server
$ sudo systemctl enable ssh
$ sudo systemctl start ssh

Asensin myös net-tools koska sitä ei ole Ubuntussa oletuksena ja tarkistin koneen verkkoasetukset

$ sudo apt install net-tools
$ ifconfig -a

Koneen IP oli VMWaren virtuaaliverkon 192.168.142.0/24 avaruudessa.

Valitsin Ubuntu 18.04 koska opettajamme Tero Karvisen ohjeissa mainittiin, että asennus toimii Ubuntu 18.04 versiossa

$ mkdir metas/ && cd metas/
$ sudo apt-get -y install virtualbox vagrant curl

Lisäsin Vagrantfile nano editorilla.

$ nano Vagrantfile

## Vagrantfile
## http://terokarvinen.com/2018/install-metasploitable-3-vulnerable-target-computer
Vagrant.configure(“2”) do |config|
config.vm.box = “rapid7/metasploitable3-ub1404”
config.vm.network “forwarded_port”, guest: 80, host: 8080
end

Käynnistin Vagrant, jouduin painaamaan
$ vagrant up

Käynnistin Vagrant, jouduin painamaan Ctrl + C, koska tuli virheilmoitus autentikaatiosta, koska sessio yritettiin luoda SSH-avaimia käyttäen. Sen jälkeen avasin Ubuntu koneen selaimessa http://localhost:8080

Avasin VirtualBox ohjelman jolla pyörii virtuaalinen Metasploit 3 syöttämällä seuraavaa komentoa Ubuntu koneella:

$ virtulabox

Vaihdoin virtuaalisen Metasploit 3 koneen verkkoasetukset ja käynnitin sen uudelleen. Tähän pitänyt lukea miten se tehdään Vagrant Housekeeping sivustolta.

Uudelleenkäynnistyksen jälkeen Metasploit on saanut oman IP-osoitteen 192.168.142.138, joka näkyi myös isäntäkoneeltani. Avasin sieltä selaimessa http://192.168.142.138

Kokeilin kirjautua Metasploitable 3 koneelle SSH-yhteydellä, se toiminut kanssa. Eli kone on VMWaren virtuaaliverkossa ja koneelle pääse myös Kali linux virtuaalikoneelta joka on samassa verkossa ja jota meinaan hyökkäyksessä.

Sources:

Vagrant Housekeeping

Tero Karvinen: Install Metasploitable 3 – Vulnerable Target Computer

Rapid7 GitHub repository: https://github.com/rapid7/metasploitable3

 

Task b: Msf. Murtaudu Metasploitable 3 käyttämällä Metasploittia ‘sudo msfconsole’

Tämän tehtävän teen Kali linux virtuaalikoneelta, jolla on valmiiksi asennettu Metasploit ohjelma. Päätin aloittamaan skannamalla virtuaaliverkon osoitteet. Alotin sannamalla verkkoa iman porttisannausta komennolla:

$ nmap -v -sn 192.168.142.0/24

Käynnissä olevia koneita löytynyt osoitteista:

192.168.142.2 – VMWaren osoite

192.168.142.133 – Kali linux

192.168.142.137 – Ubuntu linux (Metasploitable 3 isäntä)

192.168.142.138 – Matasploitable 3

Seuraavaksi sannasin portteja:

 

Asensin Metasploit Framework komennolla:

$ sudo apt-get install metasploit-framework

Loin Metasploitin tietokannan:

$ sudo msfdb init

Käynnistin Metasploit 6 konsolin:

$ msfconsole

Loin uuden työtilan kannassa tätä harjoitusta varten

Skannasin verkkoa vielä kerran Metasploit konsolista, niin tulokset tallentuvat kantaan.

Tuloksesta näkee, että koneen OS on Ubuntu. Portilta 8080 löytyy Jetty palvelin ja sen versio, jolla löytyy havoittuvuus CVE-2019-10247. Kokeilin etsiä explotin tälle havoittuvuudelle.

msf6 > search cve:2019-10247
[-] No results from search

Kokeilen skannata SMB portti 445. Ensin katsotaan OS version.

msf6 > db_nmap -Pn -p445 –script smb-os-discovery 192.168.142.138.

Portilla 445 toimii Samba 4.3.11-Ubuntu, etsin havoittuvuuksia tälle vesiolle. Löysin sivuston, jossa havoittuvuudet on luoteltu. Kokelin etsiä exploitteja search komennolla.

Havoittuvuudelle CVE-2017-7494 löytynyt valmis exploit exploit/linux/samba/is_known_pipename

use linux/samba/is_known_pipename

set RHOSTS 192.168.142.138

set target 0

set payload payload/cmd/unix/interact

exploit

Kokeilin vaihtamaan parametreja, mutta en löytänyt sopivaa, joka avaisi takaoven. Aikaa meni noin 2 tuntia, joten jatkoin etsimään toista havoituvuutta.

 

Seuraavaksi päätin kokeilla ProFTPD portilla 21. Etsin serch proftp komennolla mitä kaikkia löytyy Matasploitissa tälle palvelulle.

ProFTPD:lle löytynyt useampi exploit, valitsen exploit/unix/ftp/proftpd_modcopy_exec

 

Tarkistin mitä payloadia löytyy tälle exploitille ja valitsin sopivan payload/cmd/unix/reverse_python

Tarkistin mitä parametreja pitää antaa exploitille ja syötin ne.

Käynistin exploit, mutta se  ei onnistunut luomaan yhteyttä. Virheilmoituksessa lukee, että kansioon ei voitu kirjoittaa mitään.

Asetin parametrin sitepath /var/www/html, mutta sekin ei onnistunut.

Exploit näyttänyt käynistäneen, mutta yhteyttä takaksin ei voitu luoda. Päätin tarkistaa palomuurin asetuksia Kali linux koneelta, koska jos portti johon exploit yrittää ottaa yhteyttä on kiinni, niin yhteyttä ei voi muodostaa. Palomuuri oli päällä. Otin sen pois päältä ja exploit on luonnut shell yhteyden onnistuneesti www-data käyttäjänä.

Huomaisn, että käyttämäni Metasploitin exploit jättää koneelle jälkejä. Kansioon /var/www/html ilmestynyt PHP-tiedostot, joita exploit oli tuonnut koneelle ja joita se käyttää. Näillä jäljellä hyökkäystä voidaan havaita. Hyökkäyksen jälkeen niitä olisi hyvää poistaa kohdekoneelta.

Task c: Rat. Demonstroi meterpreter:n käyttöä

Meterpreter on Metasploit-hyökkäyshyötykuorma, joka tarjoaa interaktiivisen kuoren, josta hyökkääjä voi tutkia kohdekonetta ja suorittaa koodia. Meterpreter otetaan käyttöön käyttämällä muistissa olevaa DLL-injektiota.

 

Jatkoin seuraavana päivänä, joten minun pitänyt tehdä kohdekoneen exploit uudestaan. Käynnistin Metaspoit ja syötin tavittavat parametrit, mutta exploit ei saanut muodostettu yhteyttä.

Virheilmoituksesta näkee, että expoit ei saanut toimitettua 220 Ok banneria takaksin. Ehkä portti 4444 Kalikonella, johon expoit yrittänyt luoda yhteyttä on joo varattu. Vaihdoi asetukset LPORT 4445:ksi. Se autoi, kohde kone on taas kaapattu.

Laitoin avoimen session pyörimään taustalla panamall CTRL + Z ja etsin Metasploitista serarch komennolla meterpreter ja linux

msf6 exploit(unix/ftp/proftpd_modcopy_exec) > search meterpreter linux

Hakutuloksia tuli paljon, mutta lupavilta näyttävät vain yksi post -alkuinen moduli post/multi/manage/shell_to_meterpreter. Sitä käytetään silloin kun yhteys kohdekoneeseen on joo luotu. Meterpreter Shell tarjoaa helpoimpia tapoja tehdä joitakin asioita vaarantuneessa koneessa

Valitsin meterpreterin shell komennolla use, asetin LPORT ja LHOST parametrit, asetin avoinna olevan session 1 ja käynnitin exploit. Meterpreter avasi toisen session kohdekoneen toiselle portille 56841. Komento whoami näytti, että shell on edelleen Kali koneella.

Hain meterpreter ja post yhdistelmällä moduleita. Hakutuloksia tuli paljon, päätin kokeilla post/multi/manage/autoroute Metasploitilla sessiota valitaan komennolla sessions ja antamalla session ID:tä, esimerkiksi sessions 2. Metrepreter auennut, mutta shell oli vielä Kali koneella. Valitsin autoroute modulin, mutta tuli ilmoitus SESSION may not be compatible with this module. Päätin kokeilla toisen modulin.

Tällä hetkellä on auki kaksi sessiota. Niiden jKäynnistin Meterpreter sessions 2 -komennolla valitsen Meterpreter sessiota aktiiviseksi. Meterspreterilla on omat komennot. Voi listata tiedostot ls komennolla, voi ladata tiedostot omalle konelle download komennolla. Latasin yhden Metasploitin payloadin tekemistä PHP-tiedostoista.

Tiedoston sisältö on yhden rivin koodipätkä. En ymmärrä miten se toimii.

tiedoston sisältöä voi katsoa cat -komennolla. Katsoin mitä eroa on PHP-tiedostoissa. Erona on portti numero Kali konella, josta hyökkäys tehtiin ja GET pyynnön merkkijono. Näkyy myös hyökkäjän IP-osoite, joten olisi hyvää poistaa tiedostot hyökkäyksen jälkeen peittäkseen jälkiä.

rm -komennolla voi poistaa tiedostoja. Kokeilin poistaa yhden Metasploitin tekemistä PHP-tiedostoista. Onnistui.

Meterpreter shellissa pystyy siirtymään kansista toiseen. Oikeushallinta kuitenkin säilynyt ja käyttäjä jolla Metasploit pääsi sisään kohdekonelle ei omaa tarvitavia oikeuksia ei voi käsitellä kaikkia tiedostoja ja kansioita. Pitää jotenkin korottaa oikeuksia.

upload komennolla voi ladata haitaohjelman ja käynnistää sitä execute komennolla. Jätin sen tekemättä, koska minulla ei ole mitään haitaohjelmia omalla Kali linux koneellani.

Meterpreter voi silti ajaa hyötykuorman kanssa, mutta katson sen toisella kerralla. Ymmärsin, mitä Meterpreter on, opin työskentelemään sen kanssa ja ymmärtämään hieman sen toimintaa.

 

Lähteet:

Secret Double Octopus: Meterpreter

Offensive security: Meterpreter basics

Offensive security: MSFconsole Core Commands Tutorial

Nipun Jaswal 2020: Mastering Metasploit

Binamra Pandey: [Metasploit]Upgrade Normal Shell To Meterpreter Shell