【网络安全知识体系】外网渗透测试 | 14个小实验

news2024/9/22 9:30:44

 写在前面:视频地址

成功上岸360!0基础网络安全 入行 到 入yu、漏洞挖掘-外网渗透测试流程


目录

一、导读:

二、汇总:

三、知识导图

四、面试常见问题

五、渗透测试流程

1、简述:

2、寻找测试目标

3、信息收集

3、漏洞挖掘

4、漏洞利用获得webshell



一、导读:

探索技术的尖端——攻防武器实验室

"走一遍外网渗透测试流程"

我们算不算一家人



二、汇总:

工作总结 / SUMMARY

外网渗透测试流程涉及实验

确定攻击目标

实验1-7
信息收集实验8-12
漏洞挖掘实验13
漏洞利用--->获取到webshell实验14



三、知识导图



四、面试常见问题

1、外网渗透测试的基本思路?

确定攻击目标--->信息收集--->漏洞挖掘--->漏洞利用--->获取到webshell

(每一项都展开来介绍一下)

2、自己平常是如何对漏洞进行挖掘的?

供应商--->开发厂商的官网--->案例

目标--->该目标的所有可供测试站点

复现已知漏洞--->确定漏洞站点特征--->寻找相同特征站点

代码审计

(每一项具体展开说说,并讲解一些经验+案例)

3、获取到网站权限的方法有哪些?

利用文件上传漏洞上传webshell、获取到管理员权限,再通过各种后台功能,在后台写入webshell、利用xpcmd生产webshell、数据库的压缩功能、通过数据库备份或修改功能被修改后缀的webshell文件、数据库命令执行、中间件漏洞等。



五、渗透测试流程

1、简述:

中华人民共和国网络安全法_百度百科 (baidu.com)

根据《中华人民共和国网络安全法》对网站进行渗透测试需要获得客户的授权,未授权的对一个网站进行渗透测试,属于违法行为。

一张流程图,带大家了解,什么是大家常常说的挖洞---即所谓的外网渗透测试

大体的流程看起来是不是特别的简单,只有简单四步,就能拿到一个网站的webshell(即管理者权限),但是每一步,都需要我们去了解详细的操作方法。

寻找目标、信息收集、漏洞挖掘、漏洞利用获得webshell这些步骤,我们都会在后面进行详细的讲解,本结课视频,带领大家来了解一下挖洞,即所谓的外网渗透测试的一个具体流程究竟是什么样的

确定目标--->信息收集--->漏洞挖掘--->漏洞利用--->获得webshell


2、寻找测试目标

一、寻找测试目标

黑盒测试----模拟黑客攻击的场景(也就是什么都不知道)

1、从产品的供应商入手:

供应商--->案例

通过寻找提供产品、开发等服务的这些厂商,然后在他们的官网去寻找相关的使用产品的案例,然后收集这些案例,对这些案例进行测试,在某一处寻找到漏洞,则其他产品也可能存在同样的漏洞,就可以作为漏洞poc进行跑了

实验1

接下来,我们找几个服务厂商,我们就单纯的进去看一下他的产品怎么样,此处不做任何未授权的非法测试与攻击,强调说明如个人进行攻击与测试与本结课无关。

(注:此处只对功能进行一个简单的展示,并未进一步进行实际的测试与攻击)

可以在edusrc上查看有哪些开发厂商(edusrc一般教育、政府使用的产品和解决方案)

https://src.sjtu.edu.cn/rank/company/

然后去搜开发厂商的官网,就可以找到对应的产品案例

2、从单一的目标入手:

目标--->该目标的所有可供测试站点

1)同一单位

有时候,我们会对一个企业或某单位,进行一个授权的测试,此时,我们就需要收集这个企业或单位的更多资产目标(如网站、小程序、app等),为我们进行测试提供更大的测试范围

实验2

确定目标--->锁定目标资产的攻击面

(注:此处只对功能进行一个简单的展示,并未进一步进行实际的测试与攻击)

我们随机确定一个目标,然后进行深度搜索,这一个目标单位的资产、信息等。

2)不同单位

实验3

确定漏洞站点特征--->寻找相同特征站点

我们可以通过Ctrl+U查看存在漏洞站点的前端的源码,然后多找几条有用的特征,比如引用的一些路径等等,此处以引用相同的路径为例

然后使用FOFA等平台进行检索有相同特征的站点(需要注意的是,搜索的特征不同,找到的站点的差别就会有很大差异,通过此方法需要大量的测试)

——————————

3、从存在漏洞中间件入手:

1)寻找是否存在已知漏洞

当我们发现一个网站使用的中间件以后,可以查看此中间件是否存在漏洞

实验4

通过使用扫描器,或者插件,可以看见使用的jquery的是1.8.3版本

(注:未使用扫描器,或其他危害产品安全的测试技术)

然后我们可以在网上、漏洞平台上去查找是否存在对应版本的漏洞

https://www.cnvd.org.cn/flaw/list?flag=true

https://avd.aliyun.com/search?q=jquery1.8.3

https://www.vulhub.org.cn/vulns?search_type=t_id&keyword=jquery1.8.3&cvss_floor=&cvss_ceil=&pubtime_floor=&pubtime_ceil=

2)通过已知版本漏洞,测试对应的版本

实验5

接下来我们拿jQuery进行举例,

jQuery是JavaScript库,JavaScript常被利用进行xss,导致XSS跨站漏洞

通过找到对应版本的poc,对对应的版本进行批量测试

(注:此处只对功能进行一个简单的展示,并未进一步进行实际的测试与攻击)

可自行寻找到大量的对应版本进行测试

——————————

白盒测试---已知源代码及其逻辑架构的情况下进行漏洞的挖掘

3、代码审计

白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。 "白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。

而网络安全中,白盒测试,其盒子内部的东西就相当于  完整代码+逻辑结构

通过对每一处代码的逻辑结构进行测试,来寻找所谓的程序缺陷、或绕过程序防护的方法等

1)前端代码

实验6

我们随便找一个站点,有人说查看页面源代码是不是就是进行代码审计了,这里的源码属于客户端的源码,有的漏洞可能由客户端漏洞引起,如xss可能会传到客户端的相关函数进行弹窗。一般逻辑处理都是在后端进行,但是不排除前端会有过滤等处理。

(注:此处只对功能进行一个简单的展示,并未进一步进行实际的测试与攻击)

F12、Ctrl+Shift+I

(是可以动态调试的)

比说搜索一些可能触发漏洞的函数

Ctrl+U

(静态代码)

实验7

此处拿upload-labs靶场为例,此时界面,我们上传会提示上传失败,这是属于一种黑盒测试,显示源码后,属于白盒测试,这里的源码是逻辑处理的代码。

通过分析代码可以发现,代码会过过滤上传的相关后缀,指定的后缀是无法上传成功的。

黑盒:

白盒:

这是一个很简单明了的代码,可以看出包含对上传文件的黑名单处理(array
数组中包含的黑名单列表),上传文件的处理(如注释所示)

https://blog.csdn.net/qq_53079406/article/details/125846616

未去空格,绕过黑名单


3、信息收集

1)基础信息收集

信息收集的目的--->扩大攻击面+获取可利用条件

通过收集如图所示信息+更多其他信息,从而完成对一个测试目标的完整拼图

在确定的测试的目标以后,对目标进行信息收集,其中包括一些常见的收集方法,比如说对目标的资产等相关信息进行一个收集,从而可以扩大攻击的层面(如网站、小程序、app等各种可以进行测试的资产)。

还有域名信息的一个收集,我们可以获取到需要测试站点的一个注册信息、邮件、端口服务等更多有用的信息

还有的时候,我们需要对站点的相关组件架构、第三方插件进行收集,寻找可以利用的突破点。

在进行信息收集的过程中,我们需要借助大量的工具进行测试,获取到最大的信息量,同时我们也会使用到一些综合信息搜集工具,如灯塔、水泽、Goby等

——————————

——————————

1)特定信息收集

实验8:

在进行测试的过程中,我们还需要了解到每个参数所代表的意义+逻辑的流程,从而能够完全理解整个业务逻辑

实际情况中

接下来,我们友好的拦截一个请求数据包,观看其数据包

(注:未进行任何测试与攻击)

——————————

——————————

2)基础信息收集

1、域名信息收集:

对于域名相关信息的收集,如URL的收集:为了锁定目标范围、……(知识导图上内容)

信息收集是在整个攻击测试的流程中,不断完善获取信息的重要一步,在每一次的进一步测试中,我们会获取到更多的有利于我们对目标的一个了解。

实验9

御剑目录爆破工具,收集更多的URL,从而扩大攻击面

(注:此处只对功能进行一个简单的展示,并未进一步进行实际的测试与攻击)

找个企业src(本着为企业发展做贡献的,无直接恶意攻击与测试)

打开,并简单进行一个配置

输入目标URL

开始挖掘

——————————

——————————

2、资产信息收集:

对于资产信息的收集,如敏感信息:我们可以获取到一些可以利用的有利条件,……(如知识导图所示)。

实验10

接下来,我们来举例一下代码泄露常用的平台,在Github等托管平台上,我们可以获取到很多的代码源程序,这些代码可能被网站拿被作为一部分的逻辑代码段。使用github我们也可能搜索到很多有用的信息,比如搜索很敏感的一些信息。

(注:此处只对功能进行一个简单的展示,并未进一步进行实际的测试与攻击)

Repositories存储库

Code代码

Commits提交

Lssues问题

Discussions讨论

Package包

Marketpalce市场

Topics主题

Wikis维基

Users用户

Language语言

大家可想而知,我们不仅可以在代码托管平台上搜索到敏感代码段,我们还有搜索到相关的一些比较敏感的数据,如学号、姓名等等

——————————

——————————

3、框架组件:

对于框架组件的收集,如服务器操作系统:通过我们获取到的网站操作系统类型,从而进使用特定的命令和针对性的漏洞检测,……(如知识导图所示)。

实验11

通过一些常用的浏览器插件、检测工具,对于站点的框架、语言等进行一个检测

(注:此处只对功能进行一个简单的展示,并未进一步进行实际的测试与攻击)

Wappalyzer

Owasp penetration Testing Kit

——————————

——————————

4、综合信息收集:

在我们使用一些单一的信息收集工具、手工测试以后,我们需要使用到一些综合的信息收集工具,全方面的进行信息收集,同时可能会有一个自带的漏洞检测功能。

实验12

接下来,我们来简单的演示一下(在信息收集篇章,我们会详细讲述,收集方法、工具使用等更多细节操作,此处我们就进行一个简单的模拟测试),灯塔资产收集工具,安装在kali虚拟机上,通过相关的设定后,我们就可以针对性的收集到一些资产的信息

(注:此处只对功能进行一个简单的展示,并未进一步进行实际的测试与攻击)

可以使用灯塔进行信息收集

3、漏洞挖掘

三、漏洞挖掘

在我们确定了目标的资产、并收集到了尽可能多的信息后,我们要对我们收集到的攻击面,进行漏洞的挖掘,需要可能存在的突破点

(在后面漏洞章节,我们会对每一项漏洞进行讲解,此处,我们只对外网渗透测试的一个流程进行讲解)

SQL注入漏洞

XXE漏洞漏洞

命令注入漏洞

远程代码执行漏洞

目录遍历漏洞

信息泄露漏洞

访问控制漏洞

身份认证漏洞

文件上传漏洞

文件解析漏洞

SSRF服务端请求伪造

业务逻辑漏洞

XSS跨站脚本漏洞

CSRF跨站请求伪造

CORS跨域资源共享漏洞

点击劫持漏洞

网络套接字WebSockets漏洞

在后面,我们会学习每种漏洞详细的原理、成因、适用条件、检测方法、利用手法等等

实验13

此处以简单的BP练兵场的sql注入漏洞为例,来进行一个漏洞挖掘过程的讲解

Sql注入漏洞

针对性的对SQL注入漏洞,进行检测,无非就是先检测是否存在注入点

未经授权访问敏感数据

1、检索隐藏数据,在其中修改 SQL 查询以返回其他结果。

2、颠覆应用程序逻辑,在其中更改查询以干扰应用程序的逻辑。

3、UNION 攻击,在其中从不同的数据库表中检索数据。

4、检查数据库,在其中提取有关数据库版本和结构的信息。

5、盲 SQL 注入,控制的查询结果不会在应用程序的响应中返回

首先我们进入到学院--->学习路径--->sql注入漏洞--->进入实验室

这是一个根据过滤器来控制分类,然后进行数据的一个检索

筛选:

https://0a050005033f360282e6a17a00420055.web-security-academy.net/filter?category=Gifts

输入单引号报错,说明单引号被带入到了数据库语法中进行执行,所以是存在注入点的

注释后面逻辑:

把分类后面的内容注释调了,出现了新的产品,说明还有一个参数来控制产品是否是隐藏或公开

https://0a050005033f360282e6a17a00420055.web-security-academy.net/filter?category=Gifts'--

利用获取数据:

使用OR连接词,只要有一个成立,就返回所有数据,or后加上1=1是恒成立的

https://0a050005033f360282e6a17a00420055.web-security-academy.net/filter?category=Gifts'+or+1=1--


4、漏洞利用获得webshell

四、漏洞利用获得webshell

漏洞分低危、中危、高危、严重,因为根据危害程度的不同,可能获取到信息的危害性及数量、还有权限等等的不同,会导致漏洞的危害程度有所不同。

如常见的文件上传漏洞,通过文件上传漏洞,上一句话木马文件,并被解析执行,然后通过连接,获取到网站的控制权限

还有的方法如:获取到管理员权限,然后通过后台的功能,上传或写入或解压webshell代码文件、利用xpcmd生成webshell、数据库的压缩功能、数据库的备份或修改功能,是重命名的webshell文件重新变成webshell可执行后缀、数据库命令执行来写入、利用一些中间件漏洞等

实验14

文件上传漏洞,通过文件的上传功能,上传木马代码文件,然后使用工具连接到木马代码文件,从而获取到网站的管理权限(即webshell)

通过将木马后门上传到对方的服务器上,并解析执行

然后再通过后门工具进行连接,从而实现一个对站点的管理权限

获得站点的webshell的方法还有很多,可以先通过获取到管理员权限得到更多执行权限,再写入、传入webshell代码文件。

访问控制漏洞(如未授权访问到管理员的一个操作页面,或者绕过权限的鉴别,从而拥有管理员的权限)

弱口令(管理员账号存在弱口令,则可以再进行更多的更高权限的功能点的测试)

密码重置(重置管理员的密码,或重置后直接跳转获取到更多的一个接口,从而拥有更多的测试条件)

还有更多方法都可以获取到网站的webshell,这里就不一一详讲解了

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

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

相关文章

webgl-简单动画

html <!DOCTYPE html> <head> <style> *{ margin: 0px; padding: 0px; } </style> </head> <body> <canvas id webgl> 您的浏览器不支持HTML5,请更换浏览器 </canvas> <script src"./main.js"></script&g…

程序员必用的6个代码对比神器附下载地址

一、WinMerge WinMerge是一款基于Windows系统下的文件比较和合并工具&#xff0c;使用它可以非常方便地比较多个文档内容&#xff0c;适合程序员或经常需要撰写文稿的朋友使用。WinMerge会将两个文件内容做对比&#xff0c;并在相异之处以高亮度的方式显示&#xff0c;让使用者…

认识网络随机丢包

考虑一根漏水的管子&#xff0c;希望出水口接到和不漏的管子等量的水&#xff0c;要么靠时间&#xff0c;反复将漏掉的水重新注入&#xff0c;直到漏掉的水可忽略&#xff1a; ​ 要么靠空间&#xff0c;在漏的地方将管子加粗&#xff0c;一次性注入更多的水&#xff1a; 不…

什么是HTTP? HTTP和HTTPS的区别?

目录 1、什么是HTTP? 2、HTTP的特点 ① 支持客户/服务器模式 ② 简单快速 ③ 灵活 ④ 无连接 ⑤ 无状态 3、HTTPS 4、HTTP和HTTPS的区别 ① 安全性不同 ② 默认端口不同 ③ 响应速度和资源消耗不同 ④ 网站申请流程不同 ⑤ 对搜索排名的提升不同 1、什么是…

基于OpenCV的硬币面值识别

本项目通过Python与Opencv结合数字图像处理技术对&#xff11;元、&#xff15;角、&#xff11;角三种硬币进行识别。首先通过Canny算子对图像进行边缘检测&#xff0c;然后进一步调用定义的函数去除边缘检测后图像中的孤立点&#xff0c;对处理后的图像进行Hough变换检测圆曲…

涨点技巧: 谷歌强势推出优化器Lion,引入到Yolov5/Yolov7,内存更小、效率更高,秒杀Adam(W)

1.Lion优化器介绍 论文:https://arxiv.org/abs/2302.06675 代码:automl/lion at master google/automl GitHub 1.1 简单、内存高效、运行速度更快 1)与 AdamW 和各种自适应优化器需要同时保存一阶和二阶矩相比,Lion 只需要动量,将额外的内存占用减半; 2)由于 Lion…

港联证券|机器视觉迎重磅利好,5只概念股获两路资金加持

现在我国机器视觉在工业场景中的全体渗透率仍旧在10%以下&#xff0c;比照工业场景巨大的体量而言&#xff0c;机器视觉职业仍有较大开展空间。 近来*ST中潜收到广东证监局行政监管措施决定书。依据深交所的相关要求&#xff0c;公司应当在2023年1月31日前发表公司股票或许被停…

windows安装opencv-python(opencv-python源码安装)

因为我要开启opencv的GStreamer功能&#xff0c;这是和ffmpeg相类似的对视频流操作的一个功能&#xff0c;默认没有开启&#xff0c;需要手动编译。 安装方式链接: opencv-install-with-GStreamer 核心内容如下: git clone --recursive https://github.com/skvark/opencv-py…

数据结构_第十二关:二叉树的基础OJ题练习

目录 1.单值二叉树 2.相同的树 3.另一棵树的子树 4.反转二叉树 5.对称二叉树 6.二叉树的结构及遍历 扩展&#xff1a;如何判断是不是完全二叉树、二叉树的销毁 1&#xff09;判断是不是完全二叉树 2&#xff09;二叉树的销毁 1.单值二叉树 OJ题链接https://leetcode.…

传输协议特点大比拼之UDP

文章目录 前言一.UDP协议端的格式源端口号和目的端口号报文长度校验和 二.UDP的特点无连接面向数据报不可靠缓冲区 前言 本文将比较两种主要的传输协议 ,UDP的特点&#xff0c;以帮助读者更好地理解它们的应用场景和优缺点。 一.UDP协议端的格式 大家先来看一些UDP的报文格式…

企业应用程序单点登录

企业每天都依赖于各种企业应用程序&#xff0c;包括云和本地应用程序。这意味着用户必须经常输入更多密码才能访问这些应用程序并完成他们的工作。为了提高用户的工作效率、减少密码疲劳并使身份管理更有效&#xff0c;您的组织需要部署高效的 SSO 解决方案。 AD360 提供企业 …

[STM32F103C8T6]ADC转换

什么是ADC转换&#xff1f; ADC转换的全称是&#xff1a;Analog-to-Digital Converter&#xff0c;指模拟/数字转换器 ADC的性能指标&#xff1a; ADC分辨率&#xff1a; SSA与VREF-一起接到地&#xff0c;DDA与VREF接到3.3v&#xff0c;所以ADC转换的范围是0---3.3v 所以最后的…

计算机网络复习——第4章 4.2.3 4.2.4 4.3

4.2.3 IP 地址与 MAC 地址 IP地址&#xff1a;虚拟地址、软件地址、逻辑地址。 网络层和以上各层使用。 放在 IP 数据报的首部。 MAC地址&#xff1a;固化在网卡上的 ROM 中。硬件地址、物理地址。数据链路层使用。放在 MAC 帧的首部。IP 地址放在 IP 数据报的首部&#xff…

Windows命令提示符之常见命令--动态更新

序言&#xff1a; 在大家接触Windows电脑的过程中&#xff0c;一般是直接通过鼠标来进行操作&#xff0c;很少甚至没有用到过命令来执行操作&#xff0c;而想必大家都看过电影里面的黑客大神都是通过密密麻麻的指令来操作的&#xff0c;并且执行的速度也会比我们用鼠标块&…

【严重】Artifex Software Ghostscript 任意命令执行漏洞(POC已公开)(CVE-2023-28879)

漏洞描述 Artifex Software Ghostscript是美国Artifex Software公司的一款开源的PostScript解析器。 Artifex Ghostscript 10.01.0及之前版本中&#xff0c;如果写入缓冲区的数据比总长度少一个字节&#xff0c;则尝试写入转义字符&#xff0c;导致两个字节被写入。攻击者可通…

WPF入门(三)--事件Event调用

1、WPF应用程序的关闭 WPF应用程序的关闭只有在应用程序的 Shutdown 方法被调用时&#xff0c;应用程序才停止运行。 ShutDown 是隐式或显式发生&#xff0c;可以通过指定 ShutdownMode 的属性值来进行设置。 对ShutdownMode选项的更改&#xff0c;可以直接在App.xaml中更改&a…

酒店管理系统(Servlet+JSP)

✅作者简介&#xff1a;热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏&#xff1a;Java案例分…

【网络小知识】TCP协议介绍/三次握手,四次挥手的作用

前端开发人员需要了解三次握手和四次挥手的原因是&#xff0c;这些概念是在客户端和服务器端之间进行网络通信时所涉及到的 TCP 协议的基本知识。而对于前端来讲&#xff0c;如果页面中请求服务端数据时出现连接失败、延迟等问题&#xff0c;就需要对TCP协议中三次握手、四次挥…

VS——Visual Studio 2022 社区版——安装

VS——Visual Studio 2022 社区版——安装 下载安装官网下载&#xff1a;点击【免费Visual Studio 】即可下载安装界面&#xff1a;选择社区版 Community 安装先修改【安装位置】&#xff0c;选择【全部下载后安装】【工作负荷】选择 【使用C桌面开发】【语言包】点击【安装】&…

排序算法(二)

三、桶排序 先看定义&#xff1a; 桶排序会进行两次排序&#xff0c;一次将所有元素分配到不同的桶中&#xff0c;一次针对每个桶排序或再次排序所有元素。 练习题&#xff1a; 1&#xff09; 力扣https://leetcode.cn/problems/top-k-frequent-elements/这道题就是非常典型…