【干货】在线渗透流程复现 | 14个外网靶场-新手入门超详细
2023-4-18 20:1:58 Author: 渗透安全团队(查看原文) 阅读量:19 收藏

由于微信公众号推送机制改变了,快来星标不再迷路,谢谢大家!

工作总结 / SUMMARY

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

确定攻击目标

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

知识导图

面试常见问题

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

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

每一项都展开来介绍一下

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

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

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

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

代码审计

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

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

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

渗透测试流程

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

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

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

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

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

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


寻找测试目标

一、寻找测试目标

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

1、从产品的供应商入手

供应商--->案例

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

实验1

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

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

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

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

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

http://www.enzyun.com/

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进行举例,

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

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

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

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

——————————

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

3、代码审计

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

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

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

1)前端代码

实验6

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

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

F12Ctrl+Shift+I

(是可以动态调试的)

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

Ctrl+U

(静态代码)

实验7

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

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

黑盒:

白盒:

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

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

未去空格,绕过黑名单

信息收集

二、信息收集

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虚拟机上,通过相关的设定后,我们就可以针对性的收集到一些资产的信息

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

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


漏洞挖掘

三、漏洞挖掘

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

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

SQL注入漏洞

XXE漏洞漏洞

命令注入漏洞

远程代码执行漏洞

目录遍历漏洞

信息泄露漏洞

访问控制漏洞

身份认证漏洞

文件上传漏洞

文件解析漏洞

SSRF服务端请求伪造

业务逻辑漏洞

XSS跨站脚本漏洞

CSRF跨站请求伪造

CORS跨域资源共享漏洞

点击劫持漏洞

网络套接字WebSockets漏洞

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

实验13

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

Sql注入漏洞

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

未经授权访问敏感数据

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

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

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

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--


获得webshell

四、漏洞利用获得webshell

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

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

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

实验14

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

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

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

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

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

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

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

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


付费圈子

欢 迎 加 入 星 球 !

代码审计+免杀+渗透学习资源+各种资料文档+各种工具+付费会员

进成员内部群

星球的最近主题和星球内部工具一些展示

加入安全交流群

                               

关 注 有 礼

关注下方公众号回复“666”可以领取一套领取黑客成长秘籍

 还在等什么?赶紧点击下方名片关注学习吧!


干货|史上最全一句话木马

干货 | CS绕过vultr特征检测修改算法

实战 | 用中国人写的红队服务器搞一次内网穿透练习

实战 | 渗透某培训平台经历

实战 | 一次曲折的钓鱼溯源反制

免责声明
由于传播、利用本公众号渗透安全团队所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号渗透安全团队及作者不为承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
好文分享收藏赞一下最美点在看哦

文章来源: http://mp.weixin.qq.com/s?__biz=MzkxNDAyNTY2NA==&mid=2247503229&idx=1&sn=6865163a3d945b7258e923766b1b6928&chksm=c17630d2f601b9c416c743d27152cfbc8a8e34bd44aa4cda51b7507aa8a72b856483dab1a562#rd
如有侵权请联系:admin#unsafe.sh