Web
Nmap discovered a Web server on the target port 80
The running service is Apache/2.4.41 (Ubuntu)
┌──(kali㉿kali)-[~/PEN-200/PG_PRACTICE/extplorer]
└─$ curl -I -X OPTIONS http://$IP/
HTTP/1.1 302 Found
Date: Wed, 26 Mar 2025 09:26:05 GMT
Server: Apache/2.4.41 (Ubuntu)
Location: http://192.168.111.16/wp-admin/setup-config.php
Content-Length: 0
Content-Type: text/html; charset=UTF-8
┌──(kali㉿kali)-[~/PEN-200/PG_PRACTICE/extplorer]
└─$ curl -I http://$IP/
HTTP/1.1 302 Found
Date: Wed, 26 Mar 2025 09:26:08 GMT
Server: Apache/2.4.41 (Ubuntu)
Location: http://192.168.111.16/wp-admin/setup-config.php
Content-Type: text/html; charset=UTF-8
302
to a WordPress endpoint at /wp-admin/setup-config.php
Redirected to the
/wp-admin/setup-config.php
page
It would appear that the setup hasn’t been completed
Configuring it myself would not be possible unless the DB credential is known
Fuzzing
┌──(kali㉿kali)-[~/PEN-200/PG_PRACTICE/extplorer]
└─$ ffuf -c -w /usr/share/wordlists/seclists/Discovery/Web-Content/big.txt -u http://$IP/FUZZ -ic -e .txt,.html,.php -fc 302
________________________________________________
:: Method : GET
:: URL : http://192.168.111.16/FUZZ
:: Wordlist : FUZZ: /usr/share/wordlists/seclists/Discovery/Web-Content/big.txt
:: Extensions : .txt .html .php
:: Follow redirects : false
:: Calibration : false
:: Timeout : 10
:: Threads : 40
:: Matcher : Response status: 200-299,301,302,307,401,403,405,500
:: Filter : Response status: 302
________________________________________________
.htaccess.html [Status: 403, Size: 279, Words: 20, Lines: 10, Duration: 22ms]
.htaccess [Status: 403, Size: 279, Words: 20, Lines: 10, Duration: 22ms]
.htaccess.php [Status: 403, Size: 279, Words: 20, Lines: 10, Duration: 22ms]
.htaccess.txt [Status: 403, Size: 279, Words: 20, Lines: 10, Duration: 22ms]
.htpasswd [Status: 403, Size: 279, Words: 20, Lines: 10, Duration: 18ms]
.htpasswd.html [Status: 403, Size: 279, Words: 20, Lines: 10, Duration: 18ms]
.htpasswd.txt [Status: 403, Size: 279, Words: 20, Lines: 10, Duration: 18ms]
.htpasswd.php [Status: 403, Size: 279, Words: 20, Lines: 10, Duration: 18ms]
filemanager [Status: 301, Size: 322, Words: 20, Lines: 10, Duration: 21ms]
license.txt [Status: 200, Size: 19915, Words: 3331, Lines: 385, Duration: 22ms]
readme.html [Status: 200, Size: 7402, Words: 750, Lines: 98, Duration: 24ms]
server-status [Status: 403, Size: 279, Words: 20, Lines: 10, Duration: 22ms]
wordpress [Status: 301, Size: 320, Words: 20, Lines: 10, Duration: 21ms]
wp-admin [Status: 301, Size: 319, Words: 20, Lines: 10, Duration: 23ms]
wp-content [Status: 301, Size: 321, Words: 20, Lines: 10, Duration: 17ms]
wp-includes [Status: 301, Size: 322, Words: 20, Lines: 10, Duration: 22ms]
:: Progress: [81912/81912] :: Job [1/1] :: 1869 req/sec :: Duration: [0:00:47] :: Errors: 0 ::
Fuzzing the web root revealed another interesting endpoint; /filemanager
/filemanager
There is an instance of eXtplorer at the
/filemanager
endpoint
eXtplorer is a PHP-based file manager. Source code is available for review.
Version
Referring to the source code, there is the
CHANGELOG.txt
file that reveals the version information of the instance; 2.1.15
Authentication
Testing it for default/weak credential
Successfully authenticated with the default credential;
admin
:admin
Since this is a “filemanager”, I could just upload a PHP shell
Additionally, wp-config.php
file doesn’t even exist.
Interestingly there is another user;
dora