TryHackMe: Mr Robot

Ensimmäisenä toimenpiteenä lisätty /etc/hosts -tiedostoon kohteen IP-osoite vastaamaan osoitetta: mr-robot.thm

Key 1

Nmap-skannauksesta huomataan, että kohteessa on avoinna portit 80 (HTTP) ja 443 (HTTPS), joissa on käynnissä Apache HTTP-palvelin.

Selaimella aukaistu osoite: mr-robot.thm. Sivulla ei klikattavia linkkejä eikä lomakekenttiä.

Gobusterilla tehty hakemistoskannaus komennolla:
gobuster dir -u mr-robot.thm -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

Huomataan, että saatavilla (status: 200) on hakemistot /sitemap, /intro, /wp-login, /license, /readme ja /robots

Selaimella aukaistu hakemisto /robots ja nähdään kohteen robots.txt -tiedosto. Kirjoittamalla osoiteriville: mr-robot.thm/key-1-of-3.txt nähdään ensimmäinen avain.

Key 2

Tiedosto fsocity.dic saatiin ladattu kirjoittamalla selaimen osoiteriville: mr-robot.thm/fsocity.dic

fsocity.dic sisältää listan käyttäjätunnuksia ja/tai salasanoja yhteensä 858235 kappaletta.

Selaimella aukaistu osoite: mr-robot.thm/wp-login.php ja aukesi WordPress-kirjautumissivu.

Kirjoitettu käyttäjätunnukseksi sekä salasanaksi admin ja siepattu requesti Burb Suitella. Requestista kopioitu: log=admin&pwd=admin, sekä kopioitu kirjautumissivun virheellisen käyttäjätunnuksen viesti: “Invalid username”, jotta voidaan selvittää oikea käyttäjätunnus ja salasana Hydran avulla.

Huom. virheviesti oli: “Invalid username”, eikä esimerkiksi: “Invalid username or password”.

Hydran avulla selvitetty kirjautumissivun käyttäjätunnus käyttäen sanalistaa fsocity.dic ja salasanaa “password” komennolla:
hydra -L fsocity.dic -p password mr-robot.thm http-post-form “/wp-login.php:log=^USER^&pwd=^PASS^:Invalid username.”

Lisätietoa kuinka käyttää Hydraa verkkosivun lomakkeeseen: https://infinitelogins.com/2020/02/22/how-to-brute-force-websites-using-hydra/

Hydra löysi onnistuneesti käyttäjätunnuksen: Elliot

Kirjautumissivulla kirjoitettu käyttäjätunnukseksi: Elliot ja salasanaksi: password. Nyt saatiin virhe: “The password you entered for the username Elliot is incorrect”.

Hydralla alettu murtamaan käyttäjän Elliot salasana käyttäen sanalistaa fsocity.dic. Virheviestiksi Hydra-komentoon vaihdettu: “The password you entered for the username”.

Komento:
hydra -l Elliot -P fsocity.dic mr-robot.thm http-post-form “/wp-login.php:log=^USER^&pwd=^PASS^:The password you entered for the username”

Salasanaa murrettu noin tunti, eikä Hydra löytänyt oikeaa salasanaa.

Komennolla: tac fsocity.dic > reverse.dic käännetty sanalistan fsocity.dic järjestys tiedostoon reverse.dic

reverse.dic sanalistaa käyttäen Hydra löysi heti käyttäjän Elliot salasanan: ER28-0652

Onnistuneesti kirjauduttu WordPress Admin-sivulle.

Huomataan, että Appearance-välilehden alta löytyy editori, jossa pystyy päivittämään WordPress-teeman tiedostoja.

Teeman twentyfifteen templateen 404 lisätty pentestmonkeyn PHP Reverse Shell, johon vaihdettu oma tun0 IP-osoite ja portti 4444.

Hyökkäyskoneessa käynnistetty Netcat-kuuntelija porttiin 4444.

Selaimella aukaistu osoite:
mr-robot.thm/wp-content/themes/twentyfifteen/404.php

Onnistuneesti saatu reverse shell kohteeseen.

Otettu vakaa shell käyttöön komennolla:
python -c ‘import pty; pty.spawn(“/bin/bash”)’

Hakemistosta: /home/robot löytyi toinen avain, mutta tiedostoon ei pääsyä käyttäjänä daemon. Hakemistosta huomataan myös tiedosto password.raw-md5

Tiedoston password.raw-md5 sisältö saatiin luettua, ja tiedostosta löytyi käyttäjän robot salasanatiiviste.

Salasanatiiviste kopioitu hyökkäyskoneelle tiedostoon hash.txt

Hashid:lla tarkistettu salasanatiivisteen salausalgoritmi.

Hashcatilla murrettu salasana käyttäen tiivistealgoritmia MD5 (-m 0) ja salasanalistaa rockyou.

Komento:
hashcat -m 0 -a 0 hash.txt /usr/share/wordlists/rockyou.txt

Hashcat mursi käyttäjän robot salasanan: abcdefghijklmnopqrstuvwxyz

Onnistuneesti päästy kirjautumaan käyttäjänä robot ja luettua tiedoston key-2-of-3.txt sisältö.

Key 3

Jotta saadaan kohteessa root-oikeudet, haettu kohteesta rootin omistamat SUID:t komennolla:
find / -user root -perm -4000 -exec ls -ldb {} \; 2> /dev/null
Huomataan, että kohteessa on Nmap asennettuna ja binäärin omistaa root.

GTFOBinsista haettu Nmap-komennot, joilla saadaan root-shell: nmap –interactive
!sh

Onnistuneesti saatu shell roottina.

Kolmas avain löytyi hakemistosta: /root