本文理论基础知识来源于《测试工程师全栈技术进阶与实践》仅供学习使用不做他用。感谢原作者提供的知识分享。 本文整理梳理了来源于书籍、网络等方面渗透测试理论内容旨在了解和学习渗透测试的基础并不做实际的演示仅用于学习目的。1 什么是渗透测试渗透测试是指由专业的安全人员模拟黑客从系统可能存在的漏洞位置进行攻击测试找到隐藏的安全漏洞从而达到保护系统安全的目的书中有一个例子说的非常不错把软件系统比喻一座房子房子建好后会配备一些安全措施比如防盗门、安全警报等。一般情况我们认为这已经足够安全但我们不能十分确认入侵者会使用怎样的方式找到漏洞从而攻击我们的安全防线。为了保护房子足够安全我们会聘请外部的安全专家进行一系列的检测比如检测防盗门是否牢固窗户是否容易被侵入等等发现这个房子是否存在漏洞确保房子的安全性。从上边的例子中我们看出由外部安全专家验证房子的安全过程就是对房子进行渗透测试的过程。其中房子就是我们的软件系统验证房子安全性采取的一系列措施就是安全渗透测试。这个例子非常好通俗易懂的简单了解什么是渗透测试。2 有哪些常用方法关于渗透测试常用的方法书中提及到了几种方法分别是2.1 针对性测试针对性测试由公司内部员工和专业渗透测试团队共同完成内部员工提供安全测试所需要的基础信息并负责业务层面的安全测试专业渗透测试团队关注业务以外的、更普适的安全测试针对性测试属于研发层面的渗透测试参与这类测试的人员可得到被测系统的内部资料部署信息、网络信息、详细架构设计、产品代码等这种方法也叫“开灯测试”就是测试人员完全了解系统内部情况的前提下开展的。2.2 外部测试外部测试时针对外部可见的服务器和设备模拟外部攻击者对其进行攻击检查它们是否能够被入侵这里的服务器和设备包括域名服务器、Web服务器、防火墙、电子邮箱服务器等如果入侵成功会入侵到系统的哪一部分又会泄露多少资料等等由内部测试人员或者专业渗透测试团队在假定完全不清楚系统内部情况的前提下来开展。2.3 内部测试内部测试指由测试工程师模拟内部人员在内网进行攻击检查内部攻击可以给系统造成什么程度伤害这里测试人员应拥有较高的系统权限也能查阅各种内部资料等内部测试主要是防止系统的内部员工对系统进行内部攻击。2.4 盲测盲测是指在严格限制提供给测试执行人员或团队的信息的前提下由他们来模拟真实者的行为一般测试人员指被告知被测系统的公开信息这种测试可能需要相当长的时间进行侦查这类测试的效果很大程度上取决于测试人员的技术水平盲测由专业渗透测试团队在测试后期开展一般需要借助很多攻击工具。2.5 双盲测试双盲测试也叫“隐秘测试”测试人员对系统内部知之甚少且被测试系统内部也只有少数人知道正在进行安全测试双盲测试可反映软件系统最真实的安全状态一般由外部专业渗透测试专家团队完成。3 如何开展渗透测试3.1 规划和侦查定义测试的范围和目标初步确定要使用的工具和方法明确需要收集的情报信息如网路和域名、邮件服务器等主要是为了了解目标的工作方式及潜在的安全漏洞。3.2 安全扫描静态分析主要是扫描所有代码进行分析可使用一些工具比如Fortify SCA、Checkmarx Suite动态分析在代码运行时进行扫描可实时提供应用程序的运行时视图比静态扫描更准确。3.3 获取访问权限测试人员将模拟黑客对应用程序进行网络攻击如SQL注入、跨站脚本攻击等利用找到的漏洞通过升级自己的权限、窃取数据、拦截流量等方式了解其对系统造成的伤害。3.4 维持访问权限查看被发现的漏洞是否可以长期存在于系统中如果漏洞能够持久化那么在很长一段时间内入侵者都可对系统进行深入访问或破坏。3.5 入侵分析将以上分析结果汇总成详细的测试报告需要注明以下内容1、可以被利用的特定漏洞 2、利用该漏洞的具体步骤 3、能够被访问的敏感数据 4、渗透测试人员能够在系统中不被侦测到的时间。4 常用的渗透测试工具有哪些4.1 Nmap4.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 804.1.4 基本扫描方式TCP connect()端口扫描-sT参数。 TCP同步SYN端口扫描-sS参数。 UDP端口扫描-sU参数。 Ping扫描-sP参数。4.2 Aircrack-ng4.2.1 简介Aircrack-ng是一个与802.11标准的无线网络分析有关的安全软件主要功能有网络侦测数据包嗅探WEP和WPA/WPA2-PSK破解Aircrack-ng可工作在任何支持监听模式的无线网卡上并嗅探802.11a802.11b802.11g的数据4.2.2 aircrack-ng 套件套件说明aircrack-ng破解WEP以及WPA字典攻击密钥airdecap-ng通过已知密钥来解密WEP或WPA嗅探数据airmon-ng将网卡设定为监听模式aireplay-ng数据包注入工具Linux和Windows使用CommView驱动程序airodump-ng数据包嗅探将无线网络数据输送到PCAP或IVS文件并显示网络信息airtun-ng创建虚拟管道airolib-ng保存、管理ESSID密码列表packetforge-ng创建数据包注入用的加密包Tools混合、转换工具airbase-ng软件模拟APairdecloak-ng消除pcap文件中的WEP加密airdriver-ng无线设备驱动管理工具airolib-ng保存、管理ESSID密码列表计算对应的密钥airserv-ng允许不同的进程访问无线网卡buddy-ngeasside-ng的文件描述easside-ng和AP接入点通讯无WEPtkiptun-ngWPA/TKIP攻击wesside-ng自动破解WEP密钥4.3 sqlmap4.3.1 简介sqlmap是一个自动化的sql注入工具其主要功能是扫描、发现并利用给定URL的SQL注入漏洞内置了很多绕过插件支持的数据库有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 WifiphisherWifiphisher是一个安全工具,具有安装快速、自动化搭建的优点利用它搭建起来的网络钓鱼攻击WiFi可以轻松获得密码和其他凭证与其它网络钓鱼不同这是社会工程攻击不包含任何的暴力破解它能轻松获得门户网站和第三方登陆页面的证书或WPA/WPA2的密钥。其他方面简介暂时略后续详解。4.5 AppScan这个工具对于每个做渗透测试者来说应该用的比较多它的功能非常强大AppScan是一款网络安全测试工具用于WEB安全防护的扫描防护扫描器的扫描结果生成WAF对网站漏洞直接防护关于使用等其他介绍后续再议。5 渗透测试好处通过渗透测试可以识别出主要漏洞并及时进行修复以确保系统环境的安全性因为避免了安全漏洞所以也就避免了不必要的损失。网络安全学习资源分享:给大家分享一份全套的网络安全学习资料给那些想学习 网络安全的小伙伴们一点帮助对于从来没有接触过网络安全的同学我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线大家跟着这个大的方向学习准没问题。因篇幅有限仅展示部分资料朋友们如果有需要全套《网络安全入门进阶学习资源包》请看下方扫描即可前往获取
『渗透测试零基础入门到精通』 什么是渗透测试?有哪些常用方法?如何开展?测试工具有哪些?优势在哪里?
本文理论基础知识来源于《测试工程师全栈技术进阶与实践》仅供学习使用不做他用。感谢原作者提供的知识分享。 本文整理梳理了来源于书籍、网络等方面渗透测试理论内容旨在了解和学习渗透测试的基础并不做实际的演示仅用于学习目的。1 什么是渗透测试渗透测试是指由专业的安全人员模拟黑客从系统可能存在的漏洞位置进行攻击测试找到隐藏的安全漏洞从而达到保护系统安全的目的书中有一个例子说的非常不错把软件系统比喻一座房子房子建好后会配备一些安全措施比如防盗门、安全警报等。一般情况我们认为这已经足够安全但我们不能十分确认入侵者会使用怎样的方式找到漏洞从而攻击我们的安全防线。为了保护房子足够安全我们会聘请外部的安全专家进行一系列的检测比如检测防盗门是否牢固窗户是否容易被侵入等等发现这个房子是否存在漏洞确保房子的安全性。从上边的例子中我们看出由外部安全专家验证房子的安全过程就是对房子进行渗透测试的过程。其中房子就是我们的软件系统验证房子安全性采取的一系列措施就是安全渗透测试。这个例子非常好通俗易懂的简单了解什么是渗透测试。2 有哪些常用方法关于渗透测试常用的方法书中提及到了几种方法分别是2.1 针对性测试针对性测试由公司内部员工和专业渗透测试团队共同完成内部员工提供安全测试所需要的基础信息并负责业务层面的安全测试专业渗透测试团队关注业务以外的、更普适的安全测试针对性测试属于研发层面的渗透测试参与这类测试的人员可得到被测系统的内部资料部署信息、网络信息、详细架构设计、产品代码等这种方法也叫“开灯测试”就是测试人员完全了解系统内部情况的前提下开展的。2.2 外部测试外部测试时针对外部可见的服务器和设备模拟外部攻击者对其进行攻击检查它们是否能够被入侵这里的服务器和设备包括域名服务器、Web服务器、防火墙、电子邮箱服务器等如果入侵成功会入侵到系统的哪一部分又会泄露多少资料等等由内部测试人员或者专业渗透测试团队在假定完全不清楚系统内部情况的前提下来开展。2.3 内部测试内部测试指由测试工程师模拟内部人员在内网进行攻击检查内部攻击可以给系统造成什么程度伤害这里测试人员应拥有较高的系统权限也能查阅各种内部资料等内部测试主要是防止系统的内部员工对系统进行内部攻击。2.4 盲测盲测是指在严格限制提供给测试执行人员或团队的信息的前提下由他们来模拟真实者的行为一般测试人员指被告知被测系统的公开信息这种测试可能需要相当长的时间进行侦查这类测试的效果很大程度上取决于测试人员的技术水平盲测由专业渗透测试团队在测试后期开展一般需要借助很多攻击工具。2.5 双盲测试双盲测试也叫“隐秘测试”测试人员对系统内部知之甚少且被测试系统内部也只有少数人知道正在进行安全测试双盲测试可反映软件系统最真实的安全状态一般由外部专业渗透测试专家团队完成。3 如何开展渗透测试3.1 规划和侦查定义测试的范围和目标初步确定要使用的工具和方法明确需要收集的情报信息如网路和域名、邮件服务器等主要是为了了解目标的工作方式及潜在的安全漏洞。3.2 安全扫描静态分析主要是扫描所有代码进行分析可使用一些工具比如Fortify SCA、Checkmarx Suite动态分析在代码运行时进行扫描可实时提供应用程序的运行时视图比静态扫描更准确。3.3 获取访问权限测试人员将模拟黑客对应用程序进行网络攻击如SQL注入、跨站脚本攻击等利用找到的漏洞通过升级自己的权限、窃取数据、拦截流量等方式了解其对系统造成的伤害。3.4 维持访问权限查看被发现的漏洞是否可以长期存在于系统中如果漏洞能够持久化那么在很长一段时间内入侵者都可对系统进行深入访问或破坏。3.5 入侵分析将以上分析结果汇总成详细的测试报告需要注明以下内容1、可以被利用的特定漏洞 2、利用该漏洞的具体步骤 3、能够被访问的敏感数据 4、渗透测试人员能够在系统中不被侦测到的时间。4 常用的渗透测试工具有哪些4.1 Nmap4.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 804.1.4 基本扫描方式TCP connect()端口扫描-sT参数。 TCP同步SYN端口扫描-sS参数。 UDP端口扫描-sU参数。 Ping扫描-sP参数。4.2 Aircrack-ng4.2.1 简介Aircrack-ng是一个与802.11标准的无线网络分析有关的安全软件主要功能有网络侦测数据包嗅探WEP和WPA/WPA2-PSK破解Aircrack-ng可工作在任何支持监听模式的无线网卡上并嗅探802.11a802.11b802.11g的数据4.2.2 aircrack-ng 套件套件说明aircrack-ng破解WEP以及WPA字典攻击密钥airdecap-ng通过已知密钥来解密WEP或WPA嗅探数据airmon-ng将网卡设定为监听模式aireplay-ng数据包注入工具Linux和Windows使用CommView驱动程序airodump-ng数据包嗅探将无线网络数据输送到PCAP或IVS文件并显示网络信息airtun-ng创建虚拟管道airolib-ng保存、管理ESSID密码列表packetforge-ng创建数据包注入用的加密包Tools混合、转换工具airbase-ng软件模拟APairdecloak-ng消除pcap文件中的WEP加密airdriver-ng无线设备驱动管理工具airolib-ng保存、管理ESSID密码列表计算对应的密钥airserv-ng允许不同的进程访问无线网卡buddy-ngeasside-ng的文件描述easside-ng和AP接入点通讯无WEPtkiptun-ngWPA/TKIP攻击wesside-ng自动破解WEP密钥4.3 sqlmap4.3.1 简介sqlmap是一个自动化的sql注入工具其主要功能是扫描、发现并利用给定URL的SQL注入漏洞内置了很多绕过插件支持的数据库有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 WifiphisherWifiphisher是一个安全工具,具有安装快速、自动化搭建的优点利用它搭建起来的网络钓鱼攻击WiFi可以轻松获得密码和其他凭证与其它网络钓鱼不同这是社会工程攻击不包含任何的暴力破解它能轻松获得门户网站和第三方登陆页面的证书或WPA/WPA2的密钥。其他方面简介暂时略后续详解。4.5 AppScan这个工具对于每个做渗透测试者来说应该用的比较多它的功能非常强大AppScan是一款网络安全测试工具用于WEB安全防护的扫描防护扫描器的扫描结果生成WAF对网站漏洞直接防护关于使用等其他介绍后续再议。5 渗透测试好处通过渗透测试可以识别出主要漏洞并及时进行修复以确保系统环境的安全性因为避免了安全漏洞所以也就避免了不必要的损失。网络安全学习资源分享:给大家分享一份全套的网络安全学习资料给那些想学习 网络安全的小伙伴们一点帮助对于从来没有接触过网络安全的同学我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线大家跟着这个大的方向学习准没问题。因篇幅有限仅展示部分资料朋友们如果有需要全套《网络安全入门进阶学习资源包》请看下方扫描即可前往获取