0


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

写在前面:视频地址

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




一、导读:

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

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

我们算不算一家人



二、汇总:

工作总结 / 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,这里就不一一详讲解了

标签: web安全 安全

本文转载自: https://blog.csdn.net/qq_53079406/article/details/130213549
版权归原作者 黑色地带(崛起) 所有, 如有侵权,请联系我们删除。

“【网络安全知识体系】外网渗透测试 | 14个小实验”的评论:

还没有评论