渗透测试方法论

渗透测试(penetration testing,pentest)是实施安全评估(即审计)的具体⼿段。⽅法论是在制定、实施信息安全审计⽅案时,需要遵循的规则、惯例和过程。⼈们在评估⽹络、应⽤、系统或三者组合的安全状况时,不断摸索各种务实的理念和成熟的做法,并总结了⼀套理论 - 渗透测试⽅法论。

☻ 安全弱点

☻ 安全风险

☻ 安全漏洞

☻ “千里之堤,溃于蚁穴”

☻ 与红队不同

红队是攻击队伍,想尽切办法标系统。

渗透测试是尽可能的披露标系统的安全弱点、险、漏洞等。任何安全问题都不要放过。

渗透测试的的为安全加固(漏洞修复)做准备。

01 渗透测试的种类

黑盒测试

在进行黑盒测试时,渗透工程师在不清楚被测单位的内部技术构造情况下,从外部评估网络基础设施的安全性。并将安全弱点进行分类按照风险等级对其排序。继而将之汇总为书面报告。

☻ 不清楚内部单位技术构造

☻ 风险等级 (高危、中危、低危 、信息级别)

☻ 网站后台管理员密码

白盒测试:

白盒测试的审计员可以获取被测单位的各种内部资料甚至不公开的资料,所以

渗透人员的视野更为开阔,可以以最小的工作量达到最高的评估精准度。白盒测试从被测系统环境自身出发,全面消除安全问题。

☻ 获取被测单位全部资料或者有限资料

☻ 可以与应用的研发生命周期相结合(SDL)

☻ 代码审计

脆弱性评估

脆弱性评估通过分析企业资产面临安全威胁的情况和程度,评估内部和外部的安全制度的安全性。

☻ 脆弱性评估的方法漏洞扫描(一体化安全弱点管控平台)+ 手工发现

☻ 脆弱性评估 =安全弱点、风险、漏洞的发现

☻ 黑盒测试 = 安全弱点、风险、漏洞的发现+漏洞利用+后渗透

02 安全测试⽅法论

开放式WEB应用程序安全项目

☻ WEB安全测试指南

OWASP_Testing_Guide_v4.pdf

https://github.com/OWASP/wstg/tree/master/document

OWASP top 10

Top 10 Web Application Security Risks

名称

解释

A1:2017-注入

将不受信任的数据作为命令或查询的一部分发送到解析器时,会产生诸如SQL诸如、NOSQL注入、OS注入和LDAP注入的注入缺陷。攻击者的恶意数据可以诱使解析器在没有适当授权的情况下执行非预期命令或访问数据。

A2:2017-失效的身份证

通常,通过错误使用应用程序的身份认证和会话管理功能,攻击者能够破译密码、密钥或者会话令牌,或者利用其它开发缺陷来暂时性或永久性冒充其他用户的身份。(网站后台爆破)

A3: 2017-敏感数据泄露

许多WEB应用程序和API都无法正确保护敏感数据,例如:财务数据、医疗数据和PII数据。攻击者可以通过窃取或修改未知加密的数据来实施信用卡诈骗、身份盗窃或其它犯罪行为。未加密的数据容易遭受破坏,我们需要对敏感数据加密,传输过程中的数据、存储的数据以及浏览器的交互数据。(网站后台管理员账号密码明文传输))

A4: 2017-XML外部实体

许多较早或者配置错误的XML处理器评估了XML文件中的外部实体引用。攻击者可以利用外部实体窃取使用URI文件处理器的内部文件和共享文件、监听内部文件和共享文件、监听内部扫描端口、执行远程代码和实施拒绝服务攻击。(XXE)

A5: 2017-失效的访问控制

对通过身份验证的用户实施恰当的访问控制攻击者可以利用这些缺陷访问未经授权的功能或数据。

A6: 2017-安全配置错误

安全按配错误是最常见的安全问题,这通常是由于不安全的默认配置、不完整的临时配置、开源云储存、错误的HTTP标头配置以及包含敏感信息的详细错误信息所造成的。

A7:2017-跨站脚本(XXS)

当应用程序的新网页包含不受信任的、未经恰当验证或转义的数据时,或者使用可以创建HTML或JavaScript的浏览器API更新现有的网页时,就会出现XXS缺陷。

XSS 让攻击者能够在受害者的浏览器中执⾏脚本,并劫持⽤户会话、破坏⽹站或将⽤户重定向到恶意站点。

A8: 2017-不安全的反序列化

不安全的反系列化会导致远程代码执行。

例:重播攻击、注入攻击和特权升级攻击。(Weblogic)

A9:2017-使用含有已知漏洞的组件

组件(例:库、框架和其它软件模块)拥有和应用程序相同的权限。

若被利用可能会造成严重的数据丢失或服务器解接管。使用含有已知漏洞的组件的应用程序和API可能会破化应用程序防御、造成各种攻击并产生严重影响。(phpStudy 2016 后门)

A10:2017-不足的日志记录和监控

不足,以及事件响应的日志记录和监控,以及事件响应缺失或无效的集成,使攻击者能够进一步攻击系统、保持持续性或转向更多系统‘以及篡改、提取或销毁数据。

通用缺陷列表(Common Weakness Enumeration,CWE)

漏洞类别的编号

CWE-79:

CWE-89

通用漏洞与披露(Common Vulnerabilities and Exposures,CVE)

☀ 具体某一个漏洞的编号

☀ 国内漏洞库

☀ 国外官网

  1. CVE-2020-9484
  2. CVE-2020-1938
  3. CVE-2017-11882

微软安全公告

MS17-010

漏洞公告

MS17-010 在17年发布的第10个安全公告

对应“永恒之蓝”漏洞

这一个漏洞可能涉及多个CVE

补丁

Kb4012215

微软的安全漏洞公告与补丁存在一一对应的关系。

一个系统如果没有打相应的补丁,就认为存在相关漏洞。

其他方法论

开源安全测试⽅法论(Open Source Security Testing Methodology Manual,OSSTMM)

信息系统安全评估框架(Information Systems Security Assessment Framework,ISSAF)

Web 应⽤安全联合威胁分类(Web Application Security Consortium Threat Classification,WASC-TC)

渗透测试流程

通用渗透测试框架

通用渗透测试框架涵盖了典型的审计测试工作和渗透测试工作会涉及到的各个阶段。

⽆论是进⾏⽩盒测试还是⿊盒测试,选择和使⽤测试步骤都是测试⼈员的责任。在测试开始前,测试⼈员需要根据⽬标系统的实际环境和已掌握的相关⽬标系统的情况,再指定最佳的测试策略。

相关阶段:

  1. 范围界定
  2. 信息搜集
  3. 目标识别
  4. 服务枚举
  5. 漏洞映射
  6. 社会工程学
  7. 漏洞利用
  8. 权限提升
  9. 访问维护
  10. 文档报告

范围界定

在开始技术性安全评估之间,务必要观察、研究目标环境的被测范围。

考虑因素:

  1. 取得授权
  2. 测试对象是什么
  3. 采取何种测试方法
  4. 测试过程中需要满足的条件
  5. 哪些因素可能会限制测试执行过程
  6. 需要多久才能完成测试
  7. 测试应当达成什么养的任务目标

信息搜集

使用各种公开资源尽可能地获取测试目标的相关信息。

从互联⽹上搜集信息的互联⽹渠道主要有:论坛|公告板|新闻组|媒体⽂章|博客|社交⽹络|其他商业或⾮商业性的⽹站。

此外,也可以借助各种搜索引擎中获取相关数据,如⾕歌、雅⻁、MSN必应、百度等

收集信息主要包括:

  1. DNS 服务器
  2. 路由关系
  3. Whois 数据库
  4. 电子邮箱地址
  5. 电话号码
  6. 个人信息
  7. 用户账户

注: 收集的信息越多,渗透测试成功的概率越高。

目标识别

识别目标的网络状态、操作系统和网络架构。

该工作旨在完整的展现目标网络里各种联网设备或技术的完整关系,以帮助测试人员在接下来的工作里枚举目标网络的各种服务。

哪些设备在线

如何访问

服务枚举

这一阶段会根据前面各个阶段的成果,进一步找出目标系统中所有开放的端口。

  1. 开放了那些端口
  2. 端口上运行的服务以及详细的版本
  3. 技术架构
  4. Web 容器
  5. 开发语言以及框架
  6. 站库分离
  7. 前后端分离

漏洞映射

可以根据已经发现的开放端口和服务程序,查找、分析目标系统中存在的漏洞。

查找漏洞

漏洞扫描

社会工程学

如果目标网络没有直接的入口,欺骗艺术将起到抛砖引玉的重要作用。

 
 

伪装成⽹络管理员,通过电话要求⽤户提供⾃⼰的账户信息;

发送钓⻥邮件来劫持⽤户的银⾏账户;

诱使某⼈出现在某个地点。

漏洞利用

仔细检查和发现目标系统中的漏洞后,就可以使用已有的漏洞利用程序对目标系统进行渗透。审计人员可以把客户端漏洞利用程序和社会工程学进行结合,进而控制目标系统。这个阶段的主要任务是控制目标系统。

涉及攻击前、攻击、攻击后的相关行动。

权限提升

获取目标系统的控制权是渗透成功的标识。

访问维护

多数情况下,审计人员需要在一段时间内维护他们对目标系统的访问权限。

例如,在演示越权访问目标系统的时候,安装后门将节省重新渗透目标系统所耗费的大量时间。

  1. 埋藏后门
  2. 隧道技术

文档报告

在渗透测试的最后一个环节里,审计人员要记录、报告并现场演示那些已经识别、验证和利用了的安全漏洞。

渗透测试执行标准

渗透测试执⾏标准(Penetration Testing Execution Standard,PTES)的先驱都是渗透测试⾏业的精英。

渗透测试执行标准包含两个部分:PTES方法论 ;PTES 技术指南。

这个标准有渗透测试7个阶段的标准组成,可以在任意环境中进行富有成果的渗透测试。

七个阶段

  1. 事前互动
  2. 情报搜集
  3. 威胁建模
  4. 漏洞分析
  5. 漏洞利用
  6. 深度利用
  7. 书面报告

主要特点优势

1.它是非常全面的渗透测试框架,涵盖了渗透测试的技术方面和其他重要方面,如范围蔓延(scopecreep)

2.它介绍了多数测试任务的具体方法,可指导准群的测试目标系统的安全状态。

3.它汇聚了多名日行一渗的渗透测试专家的丰富经验。

4.它包含了最日常的以及很罕见的相关技术。

5.它浅显易懂,可根据测试工作的需要对应相应测试步骤进行调整。

简化渗透测试流程

明确目标     信息收集    漏洞探测     验证漏洞     漏洞利用     形成报告

确定范围

确定规则

确定需求

基础信息

系统信息

应用信息

人员信息

防护信息

系统漏洞

Web服务器漏洞

Web应用漏洞

其他端口

通信安全

手工验证

工具验证

实验验证

(生产环境一般不要去动)

定制EXP

防御绕过

进一步渗透

清理痕迹

整理结果

补充介绍

修复建议

黑客攻击一般过程

Nmap(“扫描器之王”)

【http://nmap.org】

跨平台。

建议将 nmap 安装在物理机上。

主机发现

我是在kali 进行扫描:

端口扫描:

默认扫描:

确定目标服务器开放的端口,以及端口上所运行的环境

sudo nmap 192.168.137.141(扫描出来的目标ip)

默认情况下。Namp 扫描 top 1000 .

验证:

sudo nmao 192.168.137.141 –p 80

sudo nmap 192.168.137.141 –p 1-65535

sudo nmap 192.168.137.141 –p-

sudo nmap 192.168.137.141 –p*

TCP全连接扫描

特点:会建立完整的TCP三次握手过程

优点:准确

缺点:会留下大量的、密集的连接记录。

sudo nmap 192.168.137.141  –p 80 -sT

SYN 半连接扫描

特点:确定端口开放的时候,仅进行TCP三次握手的前两次过程。

优点:快速,绕过防火墙

缺点:需要管理员权限

sudo nmap 192.168.137.141  –p 80 -sS

隐蔽扫描(Linux)

FIN 扫描

sudo nmap 192.168.137.141  –p 80 -sF

Null 扫描

sudo nmap 192.168.137.141  –p 80 –sN

Xmass 扫描

sudo nmap 192.168.137.141  –p 80 -sX

服务详细版本

sudo nmap 192.168.137.141  –p 80 -sV

操 作 系 统 类 型 ( 不 是 很 准 确)

sudo nmap 192.168.137.141  –p 80 -O

全面扫描

sudo nmap 192.168.137.141  - -A –oN /tmp/namp.A

保存扫描结果

sudo nmap 192.168.137.141  -oN  test.txt

­­

扫描时序(速度)­

sudo nmap 192.168.137.141  –T5

禁用ICMP 探测

【-Pn】

使用namp 脚本扫描漏洞

【--script=】

kali nmap 脚本路径【/usr/share/nmap/scripts】

nmap 192.168.137.141 --script=smb-vuln-ms17-010.nse -p 445

渗透测试方法论、流程 及NMAP简介相关推荐

  1. 【CyberSecurityLearning 51】渗透测试方法论+渗透测试流程

    目录 渗透测试方法论 渗透测试(penetration testing,pentest) 渗透测试种类 * 黑盒测试 * 白盒测试 * 脆弱性评估与渗透测试 安全测试方法论 * 开放式web 应用程序 ...

  2. 渗透测试的理论部分1——渗透测试方法论

    有很多朋友可能会像我一样最开始学渗透就去网上找很多实践方面的教程来看,最后弄得自己一头雾水,到了真正实战的时候又不知道从何下手,在这里本人将<kali linux渗透测试指南>学习到的东西 ...

  3. 小白学渗透——渗透测试基本流程

    了解到很多想从事网络安全工作,或对网络安全感兴趣的小伙伴不知道该如何学起,网上的资料琳琅满目,却没有一套分系统化的学习大纲供大家参考学习.所以从现在开始开辟一个专栏:网络安全基础篇,主要讲解一些网络安 ...

  4. 渗透测试 --- 方法论

    渗透测试(penetration testing,pentest)是实施安全评估(即审计)的具体手段.方法论是在制定.实施信息安全审计方案时,需要遵循的规则.惯例和过程.人们在评估网络.应用.系统或三 ...

  5. 网络安全学习(渗透测试方法论,web架构安全分析,信息收集)

    目录 一.渗透测试方法论 渗透测试种类 *黑盒测试 *白盒测试 *脆弱性评估与渗透测试 二.安全测试方法论 *开放式 Web 应用程序安全项目(Open Web Aplication Security ...

  6. Web安全第 01 讲:渗透测试方法论

    一.Web工作机制 1.1.浏览网站经历的过程 本地缓存 --> host --> IP/ARP --> DNS --> IP --> 网关--> 路由--> ...

  7. 转载:渗透测试方法论(阅读)

    https://www.cnblogs.com/Sumarua/p/13521405.html @ 目录 第2章 渗透测试方法论 2.1 渗透测试的种类 2.1.1 黑盒测试 2.1.2 白盒测试 2 ...

  8. 小白入门黑客之渗透测试基本流程

    所以全网最详细的渗透测试流程来了!!! 如果对学习黑客感兴趣的同学,可以点下方参加我们的实战训练营.从这里开始进入体系化的学习,还有小白到进阶的实战靶场,新手老手都适用 渗透测试 渗透测试其实就是通过 ...

  9. Web渗透测试基本流程

    对于web应用的渗透测试,大致可分为三个阶段:信息收集.漏洞发现以及漏洞利用.在实践过程中需要进一步明细测试的流程,以下通过9个阶段来描述渗透测试的整个流程: 1.明确目标 1)确定范围:测试的范围, ...

  10. 渗透测试工作流程渗透测试类型法律边界

    渗透测试工作流程渗透测试类型法律边界 渗透测试工作流程 渗透测试与其它评估方法不同.通常的评估方法是根据已知信息资源或其它被评估对象,去发现所有相关的安全问题.渗透测试是根据已知可利用的安全漏洞,去发 ...

最新文章

  1. Linux tail命令
  2. Linux 磁盘分区 Fdisk
  3. MATLAB figure中提取数据
  4. mysql ubuntu 17.04_1、mysql 5.7 ubuntu17.04
  5. Vue中message.split().reverse().join()函数用法
  6. Nacos支持三种部署模式
  7. python怎么编写流氓软件_PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!...
  8. OpenGL ——安装和环境配置
  9. cocos2d音效设置
  10. css各种角度的三角形
  11. uniapp密码输入框
  12. php木马伪装成图片,木马伪装图片运行的技巧
  13. 微信小程序canvas绘制图片真机不显示问题
  14. 洛谷P2298 Java解法
  15. C# ERP开发框架
  16. 【SwiftUI模块】0033、SwiftUI创建用户双击帖子时的心形动画
  17. 带你玩转kubernetes-k8s(第54篇-Kubernetes之使用API聚合机制扩展API资源)
  18. 解决python安装依赖包出现 Microsoft Visual C++ 14.0 or greater is required问题
  19. time gmtime localtime strftime 时间函数
  20. 浙江杭州工程师职称评审论文要求

热门文章

  1. Microsoft Visual Studio 2010安装教程
  2. C++ 结构体内存对齐
  3. mysql条件触发器实例_mysql 触发器实例
  4. MATLAB---同态滤波
  5. 海康SDK/Ehome协议/RTSP协议/GB28181安防视频云服务EasyCVR前端音频采集流程介绍
  6. 《码出高效》个人总结1.1 二进制,按位运算
  7. 兄弟j220怎么清零_BROTHER 兄弟一体机 复位清除计数器
  8. STM32固件升级之 hypertrm(超级终端)使用(三)
  9. 通过 Bitmap Font Generator 生成 fnt 与 png 文件供 cocos2d-x 中 LabelBMFont 使用达到以图片表现数字
  10. python标注_python怎么标注