news 2026/4/16 15:12:48

DC-9靶机

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DC-9靶机

攻击机:192.168.10.40

靶机:192.168.10.131

内网探测

探测内网存活主机,

端口扫描

内网端口扫描,80端口是打开的状态,22端口有防火墙

filtered:nmap检测不出22端口的状态(nmap发送的包被防火墙拦截)。

对端口进行精确扫描,发现22的端口是关闭的状态。

nmap -sT -Pn -p 22,80

-sT:TCP Connect扫描,使用系统的connect(),三次握手完整走完,稳定但是不隐蔽。

-Pn:绕过主机的存活判断,直接进入端口扫描阶段,nmap在扫描前会先判断(ping)主机是否存活,

-p:指定扫描的端口

whatweb 192.168.10.131

探测目标网站信息

Web服务器:Apache

操作系统:Debian

IP:192.168.10.131

目录扫描

dirsearch -u 1[IP地址] -e*

访问网站,查看网站的相关信息,测试目录

访问display.php路径,能直接查看用户的信息。

/includes是一个员工详情页面

/manage.php是一个登录框

/search.php是一个搜索框

Web渗透

在网站的首界面能够查看用户的信息

在网站的搜索功能中输入用户的姓名也可以查看到用户的信息,这种搜索用户信息的一般都是与数据库进行交互,用SQL语句测试

直接输入' or 1=1#万能密码,拿到了用户的信息,有这个注入点就可以尝试sqlmap了。

在URL中没有搜索的参数,那么目标网站使用的应该就是POST传参了,POST传参中需要使用BP抓包获取请求包,使用bp抓包

把抓到的POST请求放到DC9文件中,其中search的内容不能编码,否则会失败

探测出了注入点,这个在刚才手动测试注入点时就发现了,这次用sqlmap看到的信息更详细。

sqlmap -r ./DC9 -p search --batch

-p 指定注入点

--batch 开启自动模式(提示自动选默认)

爆破出目标靶机的数据库,有三个数据库,第一个数据库是系统自带的,把目标放在Staff和users这两个数据库上,使用 --current-db获取正在使用的数据库

sqlmap -r ./DC9 -p search --batch --dbs

sqlmap -r ./DC9 -p search --batch --current-db:这个参数是获取当前Web应用正在使用的数据库名称

当前使用的数据库名称为Staff,从这个数据库入手

获取数据库中的数据表,只有一个users表

sqlmap -r ./DC9 -p search --batch -D Staff --tables

爆破出Users表的字段

sqlmap -r ./DC9 -p search --batch -D Staff -T Users --columns

指定字段,获取字段中的数据,

sqlmap -r ./DC9 -p search --batch -D Staff -T Users -C Username,Password --dump

--dump:构造可利用的SQL语句(比如:select Username,Password from Users)

users表中存放的是一些用户名和密码

这个密码是MD5哈希(32位十六进制)直接解密,拿到密码

下面有一个文件不存在标志,应该是文件相关的漏洞了。

靶场的文件包含一般都是file参数进行传参,可以使用本地文件包含,

尝试了一下远程文件包含,没有内容。

读取出来的用户当中,也包含了数据库中用户的信息,这里网站使用的用户都是系统用户

网站用户一般是www-data或apache

经过刚才的端口扫描可以知道22端口是关闭的,同时我们拿到了用户名和密码,如果端口长期处于filtered状态,可以判断他是knocked(端口敲门安全机制),他是一种安全机制,需要根据knocked配置,按照顺序访问端口,才会临时开放22端口。

knocked的配置位置在/etc/knockd.con文件中,读取它的配置文件。

openSSH(开门)下面的端口号就是他的敲门顺序,在25秒内分别访问这三个端口,成功敲门,临时开放22端口。

closeSSH(关门)当客户端反向访问这三个端口时(25秒内),关闭22端口

利用knock(敲门客户端工具)向目标发送按顺序的端口访问请求,只发送SYN包,不建立真实连接,在使用nc连接目标端口(按顺序),触发knocked,临时开启22端口。

再次使用nmap探测端口22端口是打开的状态。

使用hydra对目标主机的SSH服务进行并行登录尝试,一共有三个用户存在远程登录

hydra -L users -P password 192.168.10.131 ssh

-L:指定用户名文件

-P:指定密码文件

ssh :指定为SSH登录

经过测试另外两个用户没有能够利用的文件,在janitor用户家目录下发现一个隐藏目录里面有一个密码文件

BamBam01

Passw0rd

smellycats

P0Lic#10-4

B4-Tru3-001

4uGU5T-NiGHts

把这里面的密码放入到刚才的密码文件中重新爆破用户的密码,可以看到多了一个用户

hydra -L users -P password 192.168.10.131 ssh

sudo -l 查看具有sudo权限的命令,可以看到/opt/devstuff/dist/test/test这个文件有root权限

直接执行文件,输出了一个文件名test.py

全局查找test.py文件

find / -name test.py

test.py文件内容

指定python解释器

判断sys.argv参数的个数不等于3就输出"Usage: python test.py read append",并退出程序。

以只读模式打开sys.argv[1]文件,以追加模式打开sys.argv[2]文件,把读取的内容写入到追加模式的的文件中,关闭文件。

脚本本身就代表第一个参数。

使用openssl生成一个密码,在/etc/passwd中不允许出现明文,在登录时系统会解析出加密所用的算法对用户输入的密码进行加密在和系统中存放的密码做一个对比,相同就表示成功。

这个加密的结构为$算法ID$salt$hash

salt为在计算哈希前额外加入到一段随机数据,

编写一个用户信息并放入1.txt文件中

用户名:密码:UID:GID:用户描述:家目录:登录shell。

其中UID/GID为0表示root权限。

执行脚本,切换用户,查看权限为root。

getflag

总结:

1.对目标网站做一个基本的信息收集,端口扫描,目录扫描,指纹识别,测试网站的漏洞点,根据网站的提供的功能点进行测试,如果有输入框之类的一般存在SQL注入,RCE,XSS的较多,用户登录之类的测试弱口令,根据网站使用的架构去网上搜索相关的默认密码和历史漏洞信息,在找到相关的漏洞点后进行利用,

2.这个靶机我们通过sqlmap知道了用户名和密码,网站中的文件包含漏洞能够读取系统的文件,为我们后续的漏洞利用提供了更广的面,通过对比系统和数据库中的用户信息,知道Web层、数据库层、操作系统层这三个没有做隔离,可以通过数据库中的用户信息直接连接到系统,22端口是个filtered的状态,并不代表是关闭的状态,

3.利用文件包含漏洞读取他的knocked信息,按照knocked的配置文件信息,使用knock(敲门工具)发送SYN包(不建立真实连接),利用nc连接目标端口,触发他的安全机制,临时开启22远程登录端口,利用hydra爆破出用户名和密码,测试每个用户的权限及能够利用的点,找寻以root权限执行的文件,并加以利用(提权)。

使用工具:wappalyzer nmap whatweb dirsearch sqlmap hydra 脚本提取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/3 5:17:32

如何用AI助手彻底改变Godot游戏开发体验

如何用AI助手彻底改变Godot游戏开发体验 【免费下载链接】Godot-MCP An MCP for Godot that lets you create and edit games in the Godot game engine with tools like Claude 项目地址: https://gitcode.com/gh_mirrors/god/Godot-MCP "我能在5分钟内创建一个完整…

作者头像 李华
网站建设 2026/4/14 21:54:06

IDM激活助手终极指南:IDM-Activation-Script的完整数据保护解析

想要永久使用IDM下载工具却担心30天试用期限制?IDM-Activation-Script作为一款专业的激活助手,在实现软件永久使用的同时,构建了严密的数据保护机制。这款开源工具通过智能注册表控制技术,既突破软件限制又确保系统安全。 【免费下…

作者头像 李华
网站建设 2026/4/15 15:20:18

如何快速使用StegOnline:图像隐写术分析的终极指南

如何快速使用StegOnline:图像隐写术分析的终极指南 【免费下载链接】StegOnline A web-based, accessible and open-source port of StegSolve. 项目地址: https://gitcode.com/gh_mirrors/st/StegOnline 想要探索图像中隐藏的秘密信息?StegOnlin…

作者头像 李华
网站建设 2026/4/15 3:38:34

Java SpringBoot+Vue3+MyBatis 短流量数据分析与可视化abo系统源码|前后端分离+MySQL数据库

摘要 在数字化时代,短流量数据的分析与可视化成为企业优化运营和决策的重要工具。短流量数据通常指高频、小规模的数据流,如用户行为日志、交易记录或设备传感器数据。这类数据具有时效性强、规模庞大且价值密度低的特点,传统的数据处理方法难…

作者头像 李华
网站建设 2026/4/12 23:20:44

教育AI Agent如何实现“因材施教”?:解密个性化对话引擎的3层架构

第一章:教育AI Agent交互设计的核心理念在构建教育领域的AI Agent时,交互设计不仅是技术实现的延伸,更是连接学习者与智能系统的桥梁。优秀的交互体验能够显著提升学习参与度、理解深度和知识留存率。其核心理念在于以学习者为中心&#xff0…

作者头像 李华
网站建设 2026/4/15 17:26:07

15.队列和栈是什么?有什么区别?

队列 与 栈 是 两种 不同 的 数据 结构,都是被用来预存储数据的。 它们 有 以下 区别。(1) 操作 的 名称 不同。 队列 的 插入 称为 入队, 队列 的 删除 称为 出 队。 栈 的 插入 称为 进 栈, 栈 的 删除 称为 出 栈。…

作者头像 李华