billu: b0x

Naambillu: b0x
AuteurManish Kishan Tanwar
URLhttps://www.vulnhub.com/entry/billu-b0x,188/
NiveauBeginner
Interne ID103
Interne naamBillubox
TagsWeb, MySQL, SSH, privesc

Allereerst begin ik met een portscan van de machine, met nmap, ik scan alle TCP poorten om geen obscure poorten te missen. Dit kost enige tijd maar kan later veel voordeel opleveren.

nmap -p- 10.0.1.103 -sV -O -A

De uitvoer van de scan toont aan dat er een SSH server op poort 22 en een Apache webserver op poort 80 draait.

Ik begin met het onderzoeken van de webserver door de url van de server te openen in een webbrowser waarna ik word begroet met een login pagina.

Na het onderzoeken van de login pagina op SQL injectie vatbaarheden blijkt dat dit niet het geval is. Dan maar kijken of er interessante bestanden op de webserver zelf te vinden zijn. Hiervoor gebruik ik de commandline tool dirb.

dirb http://10.0.1.103 /usr/share/dirb/wordlists/big.txt

Dit levert een lijst van bestanden en mappen op, een aantal zien er interessant uit:

/phpmy blijkt PHP My Admin te bevatten, hiermee kun je MySQL databases beheren
/in bevat een PHPInfo pagina met daarop nuttige PHP informatie
De onderstaande bestanden zien er interessant uit:
/test.php
/panel.php
/show.php
/c.php

Ik begin met test.php, voor onderzoek doe ik dit het liefst vanaf de commandline met curl.

curl -X GET http://10.0.1.103/test.php

Dit levert een foutmelding op over het ontbreken van de ‘file’ parameter. Dit is eenvoudig uit te proberen:

curl -X GET http://10.0.1.103/test.php?file=test.php

De foutmelding blijft bestaan, blijkbaar verwacht het script de parameter niet als GET maar als POST.

curl -X POST http://10.0.1.103/test.php -d “file=test.php”

Succes, de inhoud van het bestand test.php wordt getoond op het scherm. Op deze manier is het mogelijk om bestanden van de server te tonen (maar helaas niet uit te voeren).

Het is zelfs mogelijk om bestanden die leesbaar zijn voor apache te lezen die niet direct op de webroot staan te lezen, bijvoorbeeld /etc/passwd

curl -X POST http://10.0.1.103/test.php -d “file=/etc/passwd”

Helaas is het niet mogelijk om /etc/shadow te openen op deze manier, anders was het mogelijk geweest om de wachtwoorden met john the ripper te bruteforcen.
Er is echter wel iets anders wat geprobeerd kan worden.

PHP MyAdmin heeft een configuratiebestand waarin mogelijk de database credentials te vinden zijn. Vanuit de pagina op http://10.0.1.103/in is een PHPInfo pagina op te vragen, hierop is de documentroot van de webserver te vinden. Dit blijkt /var/www te zijn.

De URL van phpmy is /var/www/phpmy, dus het configuratiebestand zou /var/www/phpmy/config.inc.php moeten zijn.

curl -X POST http://10.0.1.103/test.php -d “file=/var/www/phpmy/config.inc.php”

Met deze root credentials kan via SSH worden ingelogd op de machine. Er zit enige vertaging tussen het verbinden en de wachtwoord prompt, dit is mogelijk een bescherming tegen brute force.

ssh root@10.0.1.103