【DC-9靶场渗透】

文章目录

前言

一、确定靶机地址

二、信息收集

三、寻找漏洞

四、进一步漏洞挖掘

五、关键文件

六、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.mzph.cn/news/671437.shtml

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

相关文章

python coding with ChatGPT 打卡第18天| 二叉树:从中序与后序遍历序列构造二叉树、最大二叉树

相关推荐 python coding with ChatGPT 打卡第12天| 二叉树:理论基础 python coding with ChatGPT 打卡第13天| 二叉树的深度优先遍历 python coding with ChatGPT 打卡第14天| 二叉树的广度优先遍历 python coding with ChatGPT 打卡第15天| 二叉树:翻转…

【Spring基础】从0开始学习Spring(2)

前言 在上篇文章,我已经讲了Spring中最核心的知识点:IoC(控制反转)以及DI(依赖注入)。这篇文章,我将讲一下关于Spring框架中的其它比较琐碎但是又还是挺重要的知识点,因此&#xff…

vue实现查询搜索框下拉字典

字典表 前端页面显示 依据这个字典表实现动态查询 初始化数组 首先先在全局变量里定义一个数据存放查询出来的数据 data() {return {dicts: []};},生命周期 查询的时候是声明周期开始的时候,原本增删改查页面在生命周期开始的时候就查询了页面的数据获得了列表值…

ElasticSearch-SpringBoot整合ElasticSearch

六、SpringBoot整合ElasticSearch 1、浏览官方文档 1、查找跟ES客户端相关的文档 使用Java REST Client 选择Java Hight Level REST Client 2、创建项目的准备 1.找到原生的依赖 2.找到对象 3.分析这个类里面的方法 3、正式创建项目 1.创建工程 2.导入依赖 注意依赖版本…

Python 函数式编程进阶:map、filter、reduce

Python 函数式编程进阶:map、filter、reduce 介绍map 函数作用和语法使用 map 函数Lambda 函数的配合应用 filter 函数作用和语法使用 filter 函数Lambda 函数的结合运用 reduce 函数作用和语法使用 reduce 函数典型应用场景 介绍 在函数式编程中,map、…

【QT】opcuaServer 的构建

【QT】opcuaServer 的构建 前言opcuaServer实现测试 前言 在博文【opcua】从编译文件到客户端的收发、断连、节点查询等实现 中,我们已经介绍了如何在QT 中创建opucaClient 。在本期的博文中,我们基于之前的部署环境,介绍一下如何构建opcuaS…

springboot与Elasticsearch版本兼容对比

首先 大家在下载 Elasticsearch 时 最好先弄清楚版本 因为 如果 Spring Boot 版本 不兼容 Elasticsearch 那就是到头一场空了 Elasticsearch 版本 6.x 可以兼容 Spring Boot 2.x Elasticsearch 版本 7.x 可以兼容 Spring Boot 2.x 3.x 4x Elasticsearch 版本 7.x 以及 8.x 可以…

Flask 入门4:Flask 模板

1. 前言 Flask 拥有丰富的扩展方法,且都有统一的特点:简单和即学即用。当我们要实现某个功能之前,可以提前去搜一搜这个功能包是否已经存在,这样也能帮助我剩下很多时间。那么要去哪里找到这些扩展包呢,这里推荐两个方…

5G智能卷烟工厂数字孪生可视化平台,推进烟草行业数字化转型

5G智能卷烟工厂数字孪生可视化平台,推进烟草行业数字化转型。随着5G技术的不断发展,智能卷烟工厂数字孪生可视化平台成为了推进烟草行业数字化转型的重要手段。该平台将5G技术与数字孪生技术相结合,实现了对卷烟生产全过程的实时监控、数据分…

ROE是什么?如何用ROE来分析企业?

ROE是什么? ROE,即净资产收益率(Return on Equity),又称作股东权益报酬率、权益利润率,是净利润与平均股东权益的百分比,也称为净值报酬率、权益报酬率、权益利润率、净资产利润率,…

网络选择流程分析(首选网络类型切换流程)

首先是界面,我在此平台的界面如下: 对应的入口源码位置在Settings的UniEnabledNetworkModePreferenceController中,当然其他平台可能在PreferredNetworkModePreferenceController中,流程上都是大同小异 然后点击切换按钮会调用到UniEnabledNetworkModePreferenceControlle…

用的到的linux-删除文件-Day3

前言: 上一节,我们讲到了怎么去移动文件,其中使用到两大类的脚本命令即cp和mv。各两种命令都可以完成移动,但是cp是复制粘贴的方式,可以选择原封不动的复制粘贴过来,即不修改文件及文件夹的创建时间等&…

2024Node.js零基础教程(小白友好型),nodejs新手到高手,(五)NodeJS入门——http模块

044_http模块_创建HTTP服务端 hello,大家好,那这个小节我们来使用 nodejs 创建一个 http 的服务,有了这个 http 服务之后,我们就可以处理浏览器所发送过来的请求,并且还可以给这个浏览器返回响应。 顺便说一下&#x…

【Linux】线程Pthread的概念 | NPTL线程库函数

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;Linux系列专栏&#xff1a;Linux基础 &#x1f525; 给大家…

华为、清华等开源超高清、精准文生图模型,0.5秒极速生成!

华为诺亚方舟实验室、清华大学信息科技学院、大连理工、香港大学和Hugging Face的研究人员&#xff0c;联合开源了超高清文生图模型——PIXART-δ。 研究人员将潜在一致性模型&#xff08;LCM&#xff09;和创新控制架构ControlNet-Transformer集成在PIXART-δ中&#xff0c;在…

【LeetCode: 73. 矩阵置零 + 矩阵】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

使用Python语言生成区块链地址

# 单次运行 import binascii import sha3 from ecdsa import SigningKey, SECP256k1priv SigningKey.generate(curveSECP256k1) # 生成私钥 pub priv.get_verifying_key() # 生成公钥keccak sha3.keccak_256() keccak.update(pub.to_string()) # keccak_256哈希运算 addr…

vue配置开发环境和生产环境

在与src文件夹同级的地方增加两个文件 .env.development .env.production配置development和production两个文件 在.env.development中写&#xff1a; NODE_ENV development VUE_APP_NUM dev //VUE_APP_自己取名字在.env.production中写&#xff1a; NODE_ENV production…

linux k8s 源码编译及单集群测试

目录 概述实践安装插件docker 在线安装containerd安装二进制安装yum安装修改containder配置文件 cnietcdrsyncgo设置golang代理 安装CFSSL下载kubernetes代码编译启动本地单节点集群问题k8s没有被正常启动该如何k8s正常启动日志测试 结束 概述 此文详细说明在 centos 7上编译 k…

QT上位机:串口调试助手

前言 上位机的简单编写可以帮我们测试并完善平台&#xff0c;QT作为一款跨平台的GUI开发框架&#xff0c;提供了非常丰富的常用串口api。本文先从最简单的串口调试助手开始&#xff0c;编写平台软件的串口控制界面 工程配置 QT 串口通信基于QT的QSerialPort类&#xff0c;先在…