• 0
  • 0
分享

1.渗透测试流程和工具?

渗透测试流程概述
前期交互阶段、情报搜集阶段、威胁建模阶段、漏洞分析阶段、
渗透攻击阶段(Exploitation)、后渗透攻击阶段(怎么一直控制,维持访问)、报告阶段。
攻击前:网络踩点、网络扫描、网络查点
攻击中:利用漏洞信息进行渗透攻击、获取权限
攻击后:后渗透维持攻击、文件拷贝、木马植入、痕迹擦除

第一阶段:明确渗透目标 和风险分析获得授权

(1)确定范围

如:IP、域名、内外网、整站、部分模块等

(2)确定规则

能渗透到什么程度,是发现漏洞即可还是需要利用该漏洞、时间限制、能否修改上传、能否提权等

目标系统介绍、重点保护对象及特性。

是否允许破坏数据?

是否允许阻断业务正常运行?

测试之前是否应当知会甲方安全部门,IP是否需要加白接入方式?外网和内网?

测试是发现问题即可,还是尽可能发现更多问题。

测试过程是否需要考虑社会工程手段。

测试过程中要求完全仿真,除破坏操作需要报备,其余手段不受限制还是如何。

(3)确定需求

上线前的web应用测试、业务逻辑漏洞测试、人员权限管理漏洞测试。

需分析渗透过程可能产生的风险:测试是否对系统产生影响、带宽占用、系统资源消耗、爆测试行为或其他可能触发动态感知系统或其他告警机制、影响正常业务开展、服务器发生异常应急、数据备份和恢复、测试人力物力成本等。

由乙方书写实施方案初稿提交给甲方或公司内部审核,审核通过后,测试人必须拿到正规的乙方书面委托授权书才能开工,代理商第三方授权不具备法律效力,若是第三方授权,必须拿到甲方给中间商的授权,且注明中间商有转让授权的权限,这样中间商下发的授权测试才是合法的。需要提前跟甲方确认是否能提供测试账号,测试账号最好覆盖各个权限级别,金融行业或者交易类的测试账号需要账户中有一定的余额。

第二阶段:信息搜集 【maltego、nmap、reco-ng、waf00f 】

信息搜集的方法很多,不详细阐述,大概列举如下:

  • 方 式: 主动扫描+被动收集

  • 基础信息:IP、网段、域名、端口、DNS……

  • 系统信息:操作系统版本[nmap 、ttl、]……

  • 应用信息:各端口应用、例如web应用、邮件应用、脚本语言类型、目录结构、数据库类型、web框架……

  • 版本信息:所有探测到的版本

  • 服务信息: 服务器类型、版本

  • 人员信息: 域名注册人信息,web应用中网站发帖人的id,管理员姓名等

  • 防护信息:尝试探测防护设备

被动:【maltego、reco-ng】DNS【nslookup 、dig 】

主动: 二层发现【nmap arping 、netdiscover、scapy】

三层发现ip、icmp【ping 、fping、nmap、hping】可路由容易被发现

四层发现 tcp、udp [nmap 、hping]

端口扫描[nmap 、scapy]

服务扫描[amap、 ]

防火墙识别[查看回包] waf识别【wafw00f】

第三阶段:漏洞探测和验证

汇总信息搜集到的信息,使用与之匹配的漏洞检测策略

方法:

  1. 漏扫:【AWVS、AppScan、Nessus、……】

  2. 漏扫结果去exploit-db等位置找利用

  3. 在网上寻找验证POC

内容:

系统漏洞:系统没能及时更新补丁

Webserver漏洞: webserver配置问题……

Web应用漏洞: Web应用开发问题、错误页面未定义、后台暴露……

其他端口服务器漏洞: 诸如21/8080(st2)/7001/22/3389……

通信安全: 明文传输、token在cookie中传送……

web漏扫描【burpsuite 、skipfish[速度快]、w3af、owasp_zap】

将四阶段发现的洞,通过自己经验分析可能成功利用的全部漏洞都验证一遍,结合实施环境,搭建模拟环境进行试验,利用成功后再实施在目标系统中 :

  • 自动化验证: 结合自动化扫描工具发现的结果

  • 手工验证: 利用公开资源进行验证

  • 试验验证: 自己搭建模拟环境进行验证

  • 登录猜测: 尝试猜测登录、万能密码、注入

  • 业务漏洞验证: 发现后该漏洞,进行验证

  • 公开资源利用: exploit-db/wooyun/、渗透代码网站、通用、缺省口令、厂商的漏洞告警……

第五阶段:渗透准备和实施攻击

实施渗透的准备环节 :

  • 精准攻击: 利用4>探测到的EXP,进行精准攻击

  • 绕过防御机制: 检测是否有WAF等,绕过策略筹划

  • 定制攻击路径: 最佳攻击路径、主要根据薄弱入口,高内网权限位置,最终目标等

  • 绕过检测机制: 是否有检测机制,流量监控,杀毒软件,恶意代码(免杀)检测

  • 攻击代码: 试验得来的代码,包括不限于xss代码,sql注入语句……

实施攻击:根据前几步的结果,实施精准攻击 :

  • 获取内部信息: 基础设施(网络连接、vpn、路由、网络拓扑、内网IT资产……)

  • 横向渗透: 内网入侵、敏感信息

  • 持续性存在: 一般情况,甲方不需要,rookit、后门、添加管理员账号、驻扎手法等

  • 清除痕迹: 清理渗透相关日志(访问、操作),漏扫,上传文件等

第六阶段:形成报告

整理渗透工具:整理渗透中使用的代码、POC、EXP等。

整理收集信息:整个渗透过程中收集的一切信息。

整理漏洞信息:整个渗透过程中利用成功的所有漏洞,各种脆弱位置信息,为书写渗透报告做准备

按需整理:按照之前第一步跟甲方确认的范围、需求来整理资料,技术细节尽可能的详细,形成报告进行交付。

  • 补充介绍:需对漏洞成因,验证过程中带来的危害进行分析。

  • 修补建议:给开发或运维人员提出合理高效安全的解决方案。

msf模块:

Exploits:利用系统漏洞进行攻击的动作,此模块对应每一个具体漏洞的攻击方法(主动、被动)

Payload:成功 exploit 之后,真正在目标系统执行的代码或指令,/usr/share/metasploit-framework/modules/payloads/

shellcode 或系统命令

Single:all-in-one

Stager:目标计算机内存有限时,先传输一个较小的 payload 用于建立连接

stages:利用 stager 建立的连接下载的后续payload

stager、stages 都有多种类型,适用于不同场景

shellcode 是 payload 的一种,由于期建立正向/反向 shell 而得名

Auxiliary:执行信息收集、枚举、指纹探测、扫描等功能的辅助模块(没有 payload 的 exploit 模块)

Encoders:对 payload 进行加密,躲避 AV 检查的模块

Nops:提高 paylaod 稳定性及维持大小

计算机取证工具:

procdump 、dumpit [内存镜像]、volatility[内存分析]

DNS查询方式?

社工库?

社工库就是一个黑客们将泄漏的用户数据整合分析,然后集中归档的一个地方。这些用户数据大部分来自以前黑客们拖库撞库获得的数据包,包含的数据类型除了账号密码外,还包含被攻击网站所属不同行业所带来的附加数据。社会工程学,可能是因为,操作起来需要超高的情商,洞察人与人之间层级差别,利害关系,以及潜伏者一样胆大心细的伪装能力吧?

拖库和撞库的区别

  1. 为何一个MYSQL数据库的站,只有一个80端口开放?

  2. 一个成熟并且相对安全的CMS,渗透时扫目录的意义?

  3. 在某后台新闻编辑界面看到编辑器,应该先做什么?

  4. 审查上传点的元素有什么意义?

  5. CSRF、XSS及XXE有什么区别,以及修复方式?

  6. 3389无法连接的几种情况

  7. 列举出owasp top10 2017

  8. 说出至少三种业务逻辑漏洞,以及修复方式?

  9. 目标站无防护,上传图片可以正常访问,上传脚本格式访问则403,什么原因?

  10. 目标站禁止注册用户,找回密码处随便输入用户名提示:“此用户不存在”,你觉得这里怎样利用?

参考答案

1

更改了端口,没有扫描出来;

站库分离;

3306端口不对外开放。

2

敏感文件、二级目录扫描;

站长的误操作比如:网站备份的压缩文件、说明.txt、二级目录可能存放着其他站点。

3

查看编辑器的名称版本,然后搜索公开的漏洞。

4

有些站点的上传文件类型限制是在前端实现的,这时只要增加上传类型就能突破限制了。

5

XSS是跨站脚本攻击,用户提交的数据中可以构造代码来执行,从而实现窃取用户信息等攻击。修复方式:对字符实体进行转义、使用HTTP Only来禁止JavaScript读取Cookie值、输入时校验、浏览器与Web应用端采用相同的字符编码。

CSRF是跨站请求伪造攻击,XSS是实现CSRF的诸多手段中的一种,是由于没有在关键操作执行时进行是否由用户自愿发起的确认。修复方式:筛选出需要防范CSRF的页面然后嵌入Token、再次输入密码、检验Referer。

XXE是XML外部实体注入攻击,XML中可以通过调用实体来请求本地或者远程内容,和远程文件保护类似,会引发相关安全问题,例如敏感文件读取。修复方式:XML解析库在调用时严格禁止对外部实体的解析。

6

没开放3389 端口

端口被修改

防护拦截

处于内网(需进行端口转发)

7

1)注入;

2)失效的身份认证;

3)敏感信息泄露;

4)XML外部实体(XXE);

5)失效的访问控制;

6)安全配置错误;

7)跨站脚本(XSS);

8)不安全的反序列化;

9)使用含有已知漏洞的组件;

10)不足的日志记录和监控。

8

密码找回漏洞中存在密码允许暴力破解、存在通用型找回凭证、可以跳过验证步骤、找回凭证可以拦包获取等方式来通过厂商提供的密码找回功能来得到密码;

身份认证漏洞中最常见的是会话固定攻击和Cookie仿冒,只要得到Session或Cookie即可伪造用户身份;

验证码漏洞中存在验证码允许暴力破解、验证码可以通过Javascript或者改包的方法来进行绕过。

9

原因很多,有可能Web服务器配置把上传目录写死了不执行相应脚本,尝试改后缀名绕过。

10

先爆破用户名,再利用被爆破出来的用户名爆破密码;

其实有些站点,在登陆处也会这样提示;

所有和数据库有交互的地方都有可能有注入

11.SQL注入waf 绕过方式

12.文件上传漏洞绕过方式和防御方法?

绕过方法?

1.修改文件后缀

2.修改content-type 类型

3.%00截断 链接后面加入%00字段伪造合法的文件头

4.加入某种文件格式的前10个字节的幻数头绕过检查,通常判断文件格式只是判断文件前10个字节的二进制代码,绕过检查

防护方法?

1.前端js代码过滤

2.后端对上传文件的后缀做严格的检查

3.限制上传文件大小

4.采用随机数修改文件名【让攻击者无法获取上传脚本的文件名,无法访问上传的恶意代码】

5.将文件上传目录设置为不可执行,让web容器无法解析目录下的文件

13.什么是XSS,原理是什么?

跨站脚本攻击原理:

存储型:攻击者在存在xss漏洞的web页面存放一段有恶意攻击的代码【存储型】,普通用户访问到web页面时,就会自动执行攻击者留下的这串攻击代码。可能在用户不知情的情况下将用户的cookie 信息发送给攻击者。

反射型xss漏洞,用户访问这个页面有弹窗警告。

XSS存在的原因和防御方法:

根本原因url参数和用户输入提交给web server的内容没有做充分的过滤,但是完全的过滤是不太好实现的,攻击者有各种脑洞很大的方法来绕过服务器检查,最典型的就是编码 16进制 来绕过xss过滤。

防御:

1.在不需要html输入的地方,对html标签和特殊字符 <> & 过滤,将它转换为不能被浏览器执行的字符,对用户输入的html标签及标签属性做白名单过滤。

2.设置白名单 规定客户端哪些可以加载和执行的 CSP策略

14.SQL注入

什么是SQL注入?

在参数中或者是页面请求链接中,构造恶意的sql查询代码,能提交到服务器进行解析和查询得到数据库的其他信息。【总结不好】

SQL注入方式:

1.盲注:时间盲注 布尔盲注 DNSlog盲注

2.报错注入

3.宽字节

4.二次注入

5.布尔注入

SQL语句单引号被过滤了怎么办?

1.进行编码 16进制数 或者其他编码方式绕过

SQL注入waf 绕过方法?

白盒:代码审计的方式找到绕过方法

黑盒:1.架构层绕过 寻找源站点地址适用适用了云waf 场景

2.利用同网段主机内网注入绕过waf

3.资源限制角度 post 一个大的body,在线waf 考虑运行速度,一般不会对大的文件过率、

4.协议层面 协议未覆盖绕过 比如页面只对get 方式过滤没对post过滤或者对某一种格式的文件类型过滤 ;参数污染携带 多个参数

5.规则层面:注释符 空白符 函数分割符 浮点数 染过 利用error-base sql 注入 mysql特殊语法绕过

SQL注入防御方式?

1.参数化查询接口

2.特殊字符转义、过滤

3. 避免打印sql错误消息

4. 正则表达式匹配

5. 尽量不要用拼装的sql语句进行查询数据库内容 大概我了解到的这些

SQL注入的写入webshell的方式?

通过 select into outfile 的一种方式写入webshell

sqlmap --os-cmd 来写入 --os-shell

SQL注入工具?

为什么参数化查询能够防止SQL 注入

参数化方式原理:因为参数化的一个查询接口,可以参数 的过滤和执行重用保证sql语句的语义不变,保持一个原始的查询意思。原理是数据库服务器不会将参数的一些内容作为sql的指令的一部分来进行处理,是在数据库完成编译以后才套用这个参数,就算参数中写入=了恶意的指定,sql服务器也不会执行。所以就是能防止sql注入的

5.0以上和5.0一下的区别:

5.0以下没有 information_schema 这个表,数据库表列信息只能通过暴力的方式来区猜测的。5.0以下是多用户单操作

15.给一个测试站点要做什么事?

1.首先要得到站点ip地址、物理信息、位置

2.ip地址得到后,扫描服务器什么系统、版本号,服务器开了什么服务 、端口号 、版本 。在线工具去探测,然后猜测是用的什么中间件 apache ,nginx?

3.得到这个基础信息之后去看目标站点一个web 相关问题 有没有 csrf 、xss 或者sql 注入漏洞 工具 扫描awvs、brupsuite

4. 扫描问题后、探测漏洞利用价值和方式:sql注入注入点 如果没有得到就看它有没有一些防御的东西,防火墙 waf。这时候就需要绕过waf 或防火墙的检测

5. 主战渗透不了看有没有二级域名 工具[???]

16。判断站点的cms 有啥作用?

主要看已经曝光的程序漏洞,开源就审计

17 ECB 和 CBC 的分组模式区别?

18 https建立过程:

客户端如何验证证书


作者:Bulldozer Coder

原文链接:https://blog.csdn.net/Bulldozer_GD/article/details/108515961#comments_14604370

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   当一份工作严重占用你的休息时间、影响健康,我觉得这是一种不正常的现象。  纵使很多人都在坚持,但每个人都有选择的权力。当我有了宝宝之后,最大的期望就是她将来长大成人之后,能够从心而活。  在我面临这样的情况时,纠结了一段时间,最后还是选择了离开,当时的工资对我来说绝对算是一种诱惑,是我迄今为止领到最高的一次工资。  当天,办完离职后,整个人是放松的状态,没有焦虑,更多的是坦然。我想,那一刻我应该是女儿的榜样,我活成了我期望女儿成为的模样,  离职2天后,依然有需要工作交接的同事在微信里问我:“你离职了么,找到工作了啊?”  我说:“还没,先休息一段时间再说。”  "那你为什么离职...
            13 13 1288
            分享
          •   首先,郑重的说明一下,本人是纯服务端开发人员,不懂安卓和ios开发,在实际开发配合中,也只负责给安卓和ios的同事提供服务端调取的接口以及处理支付宝的异步回调。所以这篇文章只是介绍服务端的开发过程,不会涉及到安卓和ios客户端的处理过程,如果你只想了解客户端处理过程,可以不用往下看了,goodbye!!!  在看这篇文章之前,希望你先看上一篇文章支付宝支付(一)—H5手机网站支付2.0(alipay.trade.wap.pay) ,涉及到的部分准备工作这里就不再重复了,有疑问的看上一篇文章或者查阅官方文档。一、APP支付产品介绍  APP支付适用于商家在 App 应用中集成支付宝支付功能。...
            0 0 1009
            分享
          •   一、等价类划分法  等价类划分是一种重要的、常用的黑盒测试方法,不需要考虑程序的内部结构,只需要考虑程序的输入规格即可。它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。  等价类思考步骤:  1、先确定有效和无效等价类。  2、有效等价类就是题目条件(两端的极值(边界值)要判断,中间随意一个值也要判断)。  3、无效等价类先划分与条件相反的情况,其它特殊情况(中文、英文、特殊符号、空格、空值)。  二、边界值  具体测试用例思路:找到边界值和它两端的值,分别进行测试。  1、确定边界情况(输入或输出等价类的边界)。  2、选取正好等于、刚刚好大于或刚刚好小...
            0 0 3027
            分享
          •   接口测试在我们的项目实施过程中有着重要的意义,快速实施接口测试能够让项目组更早地发现问题,降低修复成本,缩短产品周期。为了提高系统接口测试的效率,我们提早介入项目开发周期开展接口测试实践,并探索适合异步模式系统交易的接口自动化测试方案。  所谓的异步交易模式,即从接收交易到返回应答存在一定等待时间,且返回应答时另立连接至对手方。要实现该模式下接口测试自动化必须实现非实时报文的自动化匹配与结果核验。按照自动化设计思路,我们把“大象放进冰箱”需要三步操作,报文自动化拼装、解析回执和报文匹配、应答报文结果验证。  下面从这三个步骤介绍我们的接口自动化工具。  一、报文自动化拼装  首先对常规案例...
            0 0 1299
            分享
          • 新浪科技讯 北京时间11月30日早间消息,据报道,Twitter表示,从11月23日起,该公司在最近的网站更新中已经不再推行与新冠肺炎不实信息相关的政策。这意味着Twitter将不再优先删除或标记与新冠肺炎有关的误导性信息。Twitter于2020年12月宣布,该公司将开始标记和删除与新冠肺炎疫苗有关的不实信息,原因是有成千上万的帐号发布与新冠病毒和疫苗接种的副作用有关的虚假信息。Twitter CEO埃隆·马斯克(Elon Musk)一直对美国卫生官员应对新冠疫情的方式颇有微词。他于2020年在播客 “The Joe Rogan Experience”上表示,美国新冠肺炎的死亡率远低于卫生官...
            0 0 928
            分享
      • 51testing软件测试圈微信