『渗透测试基础』| 什么是渗透测试?有哪些常用方法?如何开展?测试工具有哪些?优势在哪里?

这篇具有很好参考价值的文章主要介绍了『渗透测试基础』| 什么是渗透测试?有哪些常用方法?如何开展?测试工具有哪些?优势在哪里?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文理论基础知识来源于《测试工程师全栈技术进阶与实践》,仅供学习使用,不做他用。感谢原作者提供的知识分享。
本文整理梳理了来源于书籍、网络等方面渗透测试理论内容,旨在了解和学习渗透测试的基础,并不做实际的演示,仅用于学习目的。

1 什么是渗透测试?

  • 渗透测试是指由专业的安全人员模拟黑客,从系统可能存在的漏洞位置进行攻击测试,找到隐藏的安全漏洞,从而达到保护系统安全的目的;
  • 书中有一个例子说的非常不错:

把软件系统比喻一座房子,房子建好后会配备一些安全措施,比如防盗门、安全警报等。一般情况,我们认为这已经足够安全,但我们不能十分确认入侵者会使用怎样的方式找到漏洞,从而攻击我们的安全防线。

为了保护房子足够安全,我们会聘请外部的安全专家进行一系列的检测,比如检测防盗门是否牢固,窗户是否容易被侵入等等,发现这个房子是否存在漏洞,确保房子的安全性。

  • 从上边的例子中,我们看出:

由外部安全专家验证房子的安全过程,就是对房子进行渗透测试的过程。其中房子就是我们的软件系统,验证房子安全性采取的一系列措施,就是安全渗透测试。

  • 这个例子非常好,通俗易懂的简单了解什么是渗透测试。

2 有哪些常用方法?

  • 关于渗透测试常用的方法,书中提及到了几种方法,分别是:

2.1 针对性测试

  • 针对性测试由公司内部员工和专业渗透测试团队共同完成;
  • 内部员工提供安全测试所需要的基础信息,并负责业务层面的安全测试;
  • 专业渗透测试团队关注业务以外的、更普适的安全测试;
  • 针对性测试属于研发层面的渗透测试;
  • 参与这类测试的人员,可得到被测系统的内部资料(部署信息、网络信息、详细架构设计、产品代码等);
  • 这种方法也叫“开灯测试”,就是测试人员完全了解系统内部情况的前提下开展的。

2.2 外部测试

  • 外部测试时针对外部可见的服务器和设备,模拟外部攻击者对其进行攻击,检查它们是否能够被入侵
  • 这里的服务器和设备包括域名服务器、Web服务器、防火墙、电子邮箱服务器等;
  • 如果入侵成功,会入侵到系统的哪一部分,又会泄露多少资料等等;
  • 由内部测试人员或者专业渗透测试团队在假定完全不清楚系统内部情况的前提下来开展。

2.3 内部测试

  • 内部测试指由测试工程师模拟内部人员在内网进行攻击,检查内部攻击可以给系统造成什么程度伤害;
  • 这里测试人员应拥有较高的系统权限,也能查阅各种内部资料等;
  • 内部测试主要是防止系统的内部员工对系统进行内部攻击

2.4 盲测

  • 盲测是指在严格限制提供给测试执行人员或团队的信息的前提下,由他们来模拟真实者的行为;
  • 一般测试人员指被告知被测系统的公开信息;
  • 这种测试可能需要相当长的时间进行侦查
  • 这类测试的效果很大程度上取决于测试人员的技术水平
  • 盲测由专业渗透测试团队在测试后期开展;
  • 一般需要借助很多攻击工具。

2.5 双盲测试

  • 双盲测试也叫“隐秘测试”;
  • 测试人员对系统内部知之甚少,且被测试系统内部也只有少数人知道正在进行安全测试;
  • 双盲测试可反映软件系统最真实的安全状态;
  • 一般由外部专业渗透测试专家团队完成。

3 如何开展渗透测试?

3.1 规划和侦查

  • 定义测试的范围和目标;
  • 初步确定要使用的工具和方法;
  • 明确需要收集的情报信息(如网路和域名、邮件服务器等);
  • 主要是为了了解目标的工作方式及潜在的安全漏洞。

3.2 安全扫描

  • 静态分析:主要是扫描所有代码进行分析,可使用一些工具,比如Fortify SCACheckmarx Suite
  • 动态分析:在代码运行时进行扫描,可实时提供应用程序的运行时视图,比静态扫描更准确。

3.3 获取访问权限

  • 测试人员将模拟黑客对应用程序进行网络攻击(如SQL注入、跨站脚本攻击等);
  • 利用找到的漏洞,通过升级自己的权限、窃取数据、拦截流量等方式了解其对系统造成的伤害。

3.4 维持访问权限

  • 查看被发现的漏洞是否可以长期存在于系统中;
  • 如果漏洞能够持久化,那么在很长一段时间内入侵者都可对系统进行深入访问或破坏。

3.5 入侵分析

  • 将以上分析结果汇总成详细的测试报告;
  • 需要注明以下内容:

1、可以被利用的特定漏洞;
2、利用该漏洞的具体步骤;
3、能够被访问的敏感数据;
4、渗透测试人员能够在系统中不被侦测到的时间。

4 常用的渗透测试工具有哪些?

4.1 Nmap

4.1.1 简介

  • Nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端;
  • 确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统,用以评估网络系统安全;
  • 系统管理员可以利用nmap来探测工作环境中未经批准使用的服务器,但是黑客会利用nmap来搜集目标电脑的网络设定,从而计划攻击的方法。

4.1.2 主要功能

  • 探测一组主机是否在线;
  • 扫描 主机端口,嗅探所提供的网络服务;
  • 推断主机所用的操作系统 。

4.1.3 一些命令

# 以下是部分官方文档中的示例
# 扫描主机scanme中 所有的保留TCP端口
nmap -v scanme.

# 秘密SYN扫描
nmap -sS -O

# 主机列举和TCP扫描
nmap -sV -p

# 随机选择100000台主机扫描是否运行Web服务器(80端口)
nmap -v -iR 100000 -P0 -p 80

4.1.4 基本扫描方式

TCP connect()端口扫描(-sT参数)。
TCP同步(SYN)端口扫描(-sS参数)。
UDP端口扫描(-sU参数)。
Ping扫描(-sP参数)。

4.2 Aircrack-ng

4.2.1 简介

  • Aircrack-ng是一个与802.11标准的无线网络分析有关的安全软件,主要功能有:网络侦测,数据包嗅探,WEPWPA/WPA2-PSK破解
  • Aircrack-ng可工作在任何支持监听模式的无线网卡上并嗅探802.11a,802.11b,802.11g的数据;

4.2.2 aircrack-ng 套件

套件 说明
aircrack-ng 破解WEP以及WPA(字典攻击)密钥
airdecap-ng 通过已知密钥来解密WEPWPA嗅探数据
airmon-ng 将网卡设定为监听模式
aireplay-ng 数据包注入工具(LinuxWindows使用CommView驱动程序)
airodump-ng 数据包嗅探:将无线网络数据输送到PCAPIVS文件并显示网络信息
airtun-ng 创建虚拟管道
airolib-ng 保存、管理ESSID密码列表
packetforge-ng 创建数据包注入用的加密包
Tools 混合、转换工具
airbase-ng 软件模拟AP
airdecloak-ng 消除pcap文件中的WEP加密
airdriver-ng 无线设备驱动管理工具
airolib-ng 保存、管理ESSID密码列表,计算对应的密钥
airserv-ng 允许不同的进程访问无线网卡
buddy-ng easside-ng的文件描述
easside-ng AP接入点通讯(无WEP
tkiptun-ng WPA/TKIP攻击
wesside-ng 自动破解WEP密钥

4.3 sqlmap

4.3.1 简介

  • sqlmap是一个自动化的sql注入工具,其主要功能是扫描、发现并利用给定URLSQL注入漏洞;
  • 内置了很多绕过插件,支持的数据库有MySQL, Oracle,PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird,Sybase和SAP MaxDB

4.3.2 注入模式

  • 基于布尔的盲注:

即可以根据返回页面判断条件真假的注入;

  • 基于时间的盲注:

即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断;

  • 基于报错注入:

即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中;

  • 联合查询注入:

可以使用union的情况下的注入;

  • 堆查询注入:

可以同时执行多条语句的执行时的注入。

4.3.3 一些命令

# 判断是否存在注入
sqlmap.py -u url

# 判断文本中的请求是否存在注入
sqlmap.py -r MM_test.txt 

# 查询当前用户下的所有数据库
sqlmap.py -u url --dbs

# 获取数据库下的表名
sqlmap.py -u url -D security --tables

# 获取表中的字段名
sqlmap.py -u url -D security -T users --columns

# 获取数据库的所有用户
sqlmap.py -u url --users
.......

4.4 Wifiphisher

  • Wifiphisher是一个安全工具,具有安装快速、自动化搭建的优点,利用它搭建起来的网络钓鱼攻击WiFi可以轻松获得密码和其他凭证;
  • 与其它(网络钓鱼)不同,这是社会工程攻击,不包含任何的暴力破解,它能轻松获得门户网站和第三方登陆页面的证书或WPA/WPA2的密钥。

其他方面简介,暂时略,后续详解。文章来源地址https://www.toymoban.com/news/detail-756892.html

4.5 AppScan

  • 这个工具对于每个做渗透测试者来说,应该用的比较多,它的功能非常强大;
  • AppScan是一款网络安全测试工具,用于WEB安全防护的扫描防护;
  • 扫描器的扫描结果生成WAF ,对网站漏洞直接防护;
  • 关于使用等其他介绍,后续再议。

5 渗透测试好处?

  • 通过渗透测试,可以识别出主要漏洞,并及时进行修复,以确保系统环境的安全性;
  • 因为避免了安全漏洞,所以也就避免了不必要的损失。

到了这里,关于『渗透测试基础』| 什么是渗透测试?有哪些常用方法?如何开展?测试工具有哪些?优势在哪里?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 软件测试有哪些常用的测试方法?

    软件测试是软件开发过程中重要组成部分,是用来确认一个程序的质量或者性能是否符合开发之前提出的一些要求。软件测试的目的有两方面,一方面是确认软件的质量,另一方面是提供信息,例如,给开发人员或者程序经理反馈意见。接下来就让小编带你了解常见的软件测

    2024年02月08日
    浏览(52)
  • 【APP渗透测试】Android APK常用测试工具(Drozer)安装及使用方法介绍

    本篇文章主要介绍 Drozer Android测试工具的安装以及简单使用,后续会持续更新更多使用方法。 Drozer 是 MWR Labs 开发的一款Android安全测试框架。是目前最好的Android安全测试工具之一。其官方文档说道: Drozer允许你一个普通Android应用的身份与其他应用和操作系统交互。 在Web世界

    2024年02月16日
    浏览(47)
  • 如何利用Kali Linux进行网站渗透测试:最常用工具详解

    数据来源: ChatGPT         Kali Linux 2022.4虚拟机中自带了大量渗透测试工具,涵盖了信息收集、漏洞利用、口令破解、漏洞扫描等多个方面。         使用方法只能当做参考, 详细的使用教程: 建议您在搜索引擎上输入相关,例如: \\\"Kali Linux 工具名 中文教程

    2024年02月06日
    浏览(50)
  • C 语言常用的集成开发环境有哪些?C 语言常用的代码版本管理工具有哪些?C 语言的单元测试有哪些方法?C 语言的集成测试有哪些方法?

    集成开发环境(Integrated Development Environment,简称IDE)是一种软件工具,用于开发、测试和调试软件应用程序。它集成了多个开发工具和环境,方便开发人员进行代码编写、编译、调试、版本控制等操作。 C语言常用的集成开发环境有以下几种: Microsoft Visual Studio:这是一个功

    2024年02月05日
    浏览(68)
  • 什么是集成测试?集成测试方法有哪些?

    将软件集成起来后进行测试。集成测试又叫子系统测试、组装测试、部件测试等。集成测试主要是针对软件高层设计进行测试,一般来说是以模块和子系统为单位进行测试。 1. 模块内的集成,主要是测试模块内各个接口间的交互集成关系; 2. 子系统内的集成,测试子系统内

    2024年02月07日
    浏览(40)
  • 26岁,几乎零基础,想从基础学习渗透测试该如何进行?

    要成为一名渗透测试员,想从基础学习需要先掌握下面这3块(文末有相关自学资源推荐): 1、学习硬件和网络 渗透测试主要涉及网络和部分涉及硬件。 2、操作系统和系统架构 操作系统和系统架构在渗透测试中起着关键作用。系统操作涉及x86(32位)和x64(64位)架构,必

    2024年02月07日
    浏览(51)
  • 如何开展数据转换测试

    本综合指南将为您提供成功进行转化测试的分步路线图,涵盖从目标设定和受众识别到测试实施和持续优化的所有内容。 让我们开始掌握转换测试艺术的旅程吧! 在开始任何转化测试工作之前,设置清晰且可衡量的转化目标至关重要。这些目标应反映您希望通过测试实现的

    2024年02月06日
    浏览(35)
  • 面试问题:如何开展接口测试

    接口测试步骤 1、需求分析 对于产品的需求进行认识和理解,这一块主要了解接口 业务逻辑、业务关联,Api文档分析与评审 主要分析:请求和响应 请求: 请求url是否合理 请求信息头是否明确 请求方法是否合理 请求参数是否必填、含义、参数方式是否明确 响应: 响应状态

    2023年04月09日
    浏览(42)
  • 自动化测试基础知识:什么是自动化测试?需要学习哪些知识与工具!

    1、自动化测试概念 自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常, 在设计了测试用例并通过评审之后,由测 试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。简言之,自动化测试就是让被测试的软件自己运行起

    2024年02月04日
    浏览(64)
  • 常见的Web安全漏洞有哪些,Web安全漏洞常用测试方法介绍

    Web安全漏洞是指在Web应用程序中存在的可能被攻击者利用的漏洞,正确认识和了解这些漏洞对于Web应用程序的开发和测试至关重要。 一、常见的Web安全漏洞类型: 1、跨站脚本攻击(Cross-Site Scripting,XSS):攻击者通过向Web页面注入恶意脚本来执行恶意操作,例如窃取用户敏感信

    2024年02月11日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包