Web


Nmap discovered a web server on the target port While Nmap was unable to identify the service, the fingerprint output reveals some suggestive information

Webroot It appears to be a login page to a web-based administrative panel.

I captured the responses from the web server using Burp Suite The result shows that it’s Cockpit

cockpit is a server administration tool sponsored by Red Hat, focused on providing a modern-looking and user-friendly interface to manage and administer servers. Fedora 21 included Cockpit by default, and since then, it has continued to grow and mature. Red Hat Enterprise Linux 7 included Cockpit in the optional and extras repositories, and it’s included in Red Hat Enterprise Linux 8 by default. cockpit is not the first of its class (many old-time system administrators may remember webmin), but the alternatives are usually clunky, bloated, and their underlying APIs may be a security risk. That’s where Cockpit is different and shines. With Cockpit, unnecessary services or APIs don’t get in the way of doing things.

Version Information


The version information can be checked through /api/system/cockpit-version, but the web server re-directs me to a login page. It’s either that the version information is being actively hidden or protected behind authentication

Basic HTTP Authentication


While I was testing some weak/default credential, I found something interesting.

Usually web application uses POST requests for signing-in, but Cockpit, in this case, uses a GET request to /cockpit/login using the basic HTTP authentication

┌──(kali㉿kali)-[~/archive/htb/labs/pit]
└─$ echo YWRtaW46cGFzc3dvcmQ= | base64 -d
admin:password

So this suggests that I may be able to brute-force my way in although it is not very practical in the real world application

Fuzzing


┌──(kali㉿kali)-[~/archive/htb/labs/pit]
└─$ ffuf -c -w /usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -u https://dms-pit.htb:9090/FUZZ -ic -e .php,.txt,.html -fs 43548 
________________________________________________
 
 :: Method           : GET
 :: URL              : https://dms-pit.htb:9090/FUZZ
 :: Wordlist         : FUZZ: /usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt
 :: Extensions       : .php .txt .html 
 :: Follow redirects : false
 :: Calibration      : false
 :: Timeout          : 10
 :: Threads          : 40
 :: Matcher          : Response status: 200,204,301,302,307,401,403,405,500
 :: Filter           : Response size: 43548
________________________________________________
Research                [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 602ms]
ping                    [Status: 200, Size: 24, Words: 4, Lines: 1, Duration: 95ms]
news_archive            [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 469ms]
momentum                [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 577ms]
about_logo              [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 587ms]
Nav                     [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 680ms]
Environmental           [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 114ms]
stirmark                [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 2417ms]
blk_bl                  [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 111ms]
7983                    [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 2907ms]
83379                   [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 610ms]
9857                    [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 100ms]
picture-messages        [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 2638ms]
visitor_map             [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 921ms]
lumines-ii              [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 3456ms]
gnue                    [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 541ms]
73026                   [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 594ms]
Livsstil                [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 362ms]
seasonsum_navcurve      [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 113ms]
article32               [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 1348ms]
qlogic                  [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 93ms]
topio                   [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 94ms]
link-2                  [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 93ms]
ban_home                [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 92ms]
ingenierie              [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 92ms]
emulex                  [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 94ms]
:: Progress: [882188/882188] :: Job [1/1] :: 423 req/sec :: Duration: [0:53:28] :: Errors: 0 ::

Everything except for ping is false-positive as they contain 1 word

/ping


Navigating to /ping shows a JSON data Nothing special here.

Sub-domain / Virtual Host Discovery


┌──(kali㉿kali)-[~/archive/htb/labs/pit]
└─$ ffuf -c -w /usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-110000.txt -u https://$IP:9090/ -H 'Host: FUZZ.dms-pit.htb' -fs 43548
________________________________________________
 
 :: Method           : GET
 :: URL              : https://10.10.10.241:9090/
 :: Wordlist         : FUZZ: /usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-110000.txt
 :: Header           : Host: FUZZ.dms-pit.htb
 :: Follow redirects : false
 :: Calibration      : false
 :: Timeout          : 10
 :: Threads          : 40
 :: Matcher          : Response status: 200,204,301,302,307,401,403,405,500
 :: Filter           : Response size: 43548
________________________________________________
web3371                 [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 105ms]
web18783                [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 845ms]
web3522                 [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 846ms]
tix                     [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 579ms]
auta                    [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 581ms]
delivery.o              [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 119ms]
mobiclub                [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 118ms]
dalia                   [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 113ms]
gi455                   [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 117ms]
gi454                   [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 119ms]
www.theotherside        [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 130ms]
gi453                   [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 126ms]
images.b                [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 129ms]
gi451                   [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 113ms]
gi452                   [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 2105ms]
waisu-xsrvjp            [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 123ms]
marukyo-net-cojp        [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 111ms]
gates-xsrvjp            [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 117ms]
sol-tec-cojp            [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 119ms]
tkt-center-info         [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 123ms]
fairyparadise-com       [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 121ms]
xinfo738-xsrvjp         [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 117ms]
k2k2-jp                 [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 116ms]
kimono-united-com       [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 110ms]
hmhits-com              [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 123ms]
sorahime-com            [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 113ms]
db08                    [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 113ms]
soooooooooon-xsrvjp     [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 116ms]
:: Progress: [114441/114441] :: Job [1/1] :: 189 req/sec :: Duration: [0:22:29] :: Errors: 4 ::

All the returned results from ffuf are false-positive as they contain 1 word