按照大佬的文章学习了一 遍:https://blog.csdn.net/ierciyuan/article/details/127282461
前言
参考大佬的blog进行一次实践,入门级的学习,写得不好请见谅!
本次靶场实战涉及信息收集、漏洞查找与利用、getshell、数据库渗透、密码破解、linux提权,并找到官方设计的5个flag。
一. 环境搭建
1.准备工具
虚拟机Kali:
DC-1靶场机:
官网下载 https://download.vulnhub.com/dc/DC-1.zip
2.靶场准备
更改网络地址为网桥模式:
配置时取消的usb2.0配置,不然可能是virsual版本的问题,会报错。
二. 渗透过程
1. 信息收集
探测目标IP地址
先使用nmap,没有扫描到mac地址和更详细的信息,没法区别目标机
nmap -sP 192.168.3.0/24
接下下换netdiscover
sudo netdiscover -i eth0 -r 192.168.3.1/24
开了好几个虚拟机,排除找到目标机IP:192.168.3.112
探测目标IP开放端口
使用nmap探测靶机开放端口:可以看到开放22、80、111端口,确定有http服务。
nmap -sS 192.168.3.112
访问目标机地址:网页如下
2. 漏洞查找与利用
2.1弱口令
通过burp测试一下弱口令,爆不出来,而且需要认证,感觉好麻烦,试试cms相关漏洞。
2.2Drupalgeddon2
Searchsploit查一下Drupal7相关漏洞:
(官方指南:Exploit Database SearchSploit Manual)
searchsploit 使用参考 https://blog.csdn.net/qq_38243607/article/details/107140817
msfconsole
开启msf查找一下可以利用的漏洞:先选择Rank‘excellent’、Check‘Yes’和日期最新的利用,与searchsploit结果对比一下,发现可以选择no.1。
3. Getshell
3.1交互式shell
使用 python 的 pty 来转换为 交互式shell
python -c ‘import pty;pty.spawn(“/bin/bash”)’
3.2flag1
Shell后先ls一下看看,发现一个flag1.txt:
cat查看一下,大概意思是提示所有cms需要配置文件,所以让我们去找drupal的配置文件。
3.3Linux信息收集
先不急着找配置文件,既然已经进来了就收集一波信息
1>DNS客户机配置文件(虽然对于这次靶场没啥用)
cat /etc/resolv.conf
2>系统用户配置文件
cat /etc/passwd
哦吼,发现了一个flag4,路径是/home/flag4,那就提前看一下flag4的内容好了:
翻译一下大概是说“用同样的方法找到存在root里的flag”,不明所以,不过应该要求我们提权(一会再搞)。
3>查存储的用户密码信息:没有权限
cat /etc/shadow
4>我是谁:
Whoami/who -a
5>查看进程信息:
发现了mysql进程,一会试试爆库。
ps aux
6>简单看一下刚进来时各个文件夹内都有什么文件:
4. 数据库渗透
4.1flag2,数据库用户密码
简单过一遍linux信息后,回来根据提示去找drupal配置文件。
根据相关链接:
Step 3: Create settings.php and the files directory | Installing Drupal 7 | Drupal Wiki guide on Drupal.org
https://toutiao.io/posts/vam02/preview
我们可以知道Drupal会在sites/default/files目录下写入各种文件,而default.settings.php为Drupal的样本配置文件,安装时需将其复制并命名为‘settings.php’,所以现在应该去找到这个文件。
首先进入sites/default/files,逛了一圈没有东西:
返回上级目录,发现了settings.php:
查看settings.php文件内容:嘿嘿,找到了flag2,同时还发现了数据库用户及密码。
4.2数据库信息收集
使用刚刚得到的用户密码登录数据库:
查看表信息:发现一个users表
查看users表信息,发现用户密码:
(加密的密码试试破解)
5. 用户密码爆破
5.1hash解密(失败)
先用kali自带的hash工具过一下密码(加盐了没用)
加了盐没办法,不过根据打过的红日3靶场可以试试其他方法,即新建新的用户密码或修改已有的密码。
5.2修改密码(成功),flag3
网上搜一搜drupal修改密码,发现Drupal 7已不再采用Drupal 6和5时代的简单的MD5加密了而是采用了新型的Hash加密方法来确保密码安全。而加密脚本是password-hash.sh。
巧了,之前搜集信息时恰好在scripts目录下发现了该脚本。
当然也可以使用find找一下:
find / -name ‘hash’
通过该脚本新设置一个密码‘123456’:
scripts/password-hash.sh ‘123456’> test.txt
再次进入数据库更新一下admin的密码:
update users set pass=’you-password’ where uid=1;
参考:https://blog.csdn.net/ierciyuan/article/details/127282461