渗透测试,是为了证明网络防御按照预期计划正常运行而提供的一种机制。不妨假设,你的公司定期更新安全策略和程序,时时给系统打补丁,并采用了漏洞扫描器等工具,以确保所有补丁都已打上。如果你早已做到了这些,为什么还要请外方进行审查或渗透测试呢?因为,渗透测试能够独立地检查你的网络策略,换句话说,就是给你的系统安了一双眼睛。而且,进行这类测试的,都是寻找网络系统安全漏洞的专业人士。 渗透测试就是利用我们所掌握的渗透知识,对网站进行一步一步的渗透,发现其中存在的漏洞和隐藏的风险,然后撰写一篇测试报告,提供给我们的客户。客户根据我们撰写的测试报告,对网站进行漏洞修补,以防止黑客的入侵! 渗透测试的前提是我们得经过用户的授权,才可以对网站进行渗透。如果我们没有经过客户的授权而对一个网站进行渗透测试的话,这是违法的。
渗透测试基本流程
-
明确目标
-
信息收集
-
漏洞挖掘
-
漏洞利用
-
权限提升
-
内网渗透
-
痕迹清理
-
撰写报告
渗透测试分为黑盒测试和白盒测试
黑盒测试又被称为所谓的“Zero-Knowledge Testing”,渗透者完全处于对系统一无所知的状态,或者只知道这个网站的URL。通常这类型测试,最初的信息获取来自于DNS、Web、Email及各种公开对外的服务器。 白盒测试与黑箱测试恰恰相反,测试者可以通过正常渠道向被测单位取得各种资料,包括网络拓扑、员工资料甚至网站或其它程序的代码片段,也能够与单位的其它员工(销售、程序员、管理者...)进行面对面的沟通。这类测试的目的是模拟企业内部雇员的越权操作。
明确目标
授权许可
从客户或该公司获取书面渗透测试委托授权书
确定范围
测试目标的范围、ip、域名、内外网、整站或部分模块、测试账户等
确定规则
-
使用代理IP还是IP访问白名单、能渗透到什么程度(发现漏洞为止还是继续扩大范围挖掘尽可能多的风险),时间限制、能否修改上传、能否提权等。
-
目标系统介绍、重点保护对象及特性。
-
是否允许数据破坏?
-
是否允许阻断业务正常运行?
-
测试之前是否应当知会相关部门负责人?
-
接入方式?外网和内网?
-
测试是发现问题就算成功,还是尽可能的发现多的问题?
-
渗透过程是否需要考虑社会工程?
-
More...
确定需求
应用系统渗透、数据库系统渗透、主机操作系统渗透、网络设备渗透等
信息收集
信息收集的方式可以分为两种:主动和被动。
-
主动信息收集:通过直接访问、扫描网站,这种流量将流经网站
-
被动信息收集:利用第三方的服务对目标进行访问了解,比例:Google hack搜索、Shodan搜索等
基础信息
-
Whois信息(域名所有人、域名注册商、邮箱、联系方式、Whois反查)
-
域名对应IP(多地Ping判断是否存在CDN,获取服务器真实IP)
-
旁站(同一服务器下其他网站)
-
C段(同一网段其他服务器)
-
子域名(顶级域名下的域名,如:www.example.com是顶级域名example.com的子域名)
-
DNS(大型网络的企业,一般都有自己的DNS服务器)
-
More...
常用工具
方法
-
Google语法查询
-
基于SSL证书查询
-
More...
工具
-
Dig
-
Nmap
-
Masscan
-
Nslookup
-
subDomainsBrute
-
Layer子域名挖掘机
-
More...
常用网站
-
爱站网
-
DNSdb
-
Shodan
-
ZoomEy
-
微步在线
-
千寻查询工具
-
傻蛋联网设备搜索
-
站长工具-站长之家
-
Certificate Search
-
More...
整站分析
-
服务器类型(类Unix/Windows)
-
网站容器(Apache/Nginx/Tomcat/IIS等)
-
脚本类型(PHP/JSP/ASP/ASPX等)
-
数据库类型(Mysql/Oracle/Accees/Mqlserver等)
-
CMS系统(查询已知漏洞从而进一步攻击)
-
开放端口(扫描开放端口、端口对应服务等)
-
敏感信息(代码、目录、路径、文件等)
-
More...
常用工具
方法
-
Google语法查询
-
Ping探测(通过TTL值判断服务器类型)
-
Response Headers(响应headers)
-
代码托管平台(Github、Gitee等)
-
More...
工具
-
Dig
-
Nmap
-
Masscan
-
Nslookup
-
subDomainsBrute
-
Layer子域名挖掘机
-
More...
常用网站
-
Nmap
-
Nessus
-
cansina
-
Masscan
-
DirBuster
-
Whatweb
-
wwwscan
-
Wappalyzer
-
More...
漏洞挖掘
漏洞挖掘的方式可以分为两种:手动和自动。
-
手动漏洞挖掘:通过手工挖掘SQL注入、XSS跨站脚本攻击、代码执行、命令执行、文件上传、文件包含、越权访问等常见漏洞。
-
自动漏洞挖掘:就是直接使用网站漏洞扫描工具对网站进行漏洞探测了。但是需要注意的是,使用漏扫工具直接对网站进行扫描,因为一下子流量过大,有些网站可能会崩溃。所以一般最好不要使用漏洞扫描工具对网站进行扫描。并且如果未经授权就用漏扫对网站进行扫描还是违法的!
漏洞验证
将发现的漏洞都验证一遍。结合实际情况,搭建模拟环境进行试验。成功后再应用于目标中。
-
自动化验证:结合网站漏洞扫描工具提供的结果。
-
手工验证:根据网上公开资源进行验证。
-
试验验证:自己搭建模拟环境进行验证。
-
登陆猜解:有时可以尝试猜解登陆的账号密码等信息。
-
业务安全漏洞验证:如发现业务安全漏洞,要进行验证。
-
More...
常用工具
方法
-
常见网络安全风险
-
OWASP TOP 10 安全风险
-
网上公开漏洞库
-
网上公开漏洞信息
-
网上公开漏洞验证Poc
-
More...
工具
-
Kali
-
Xray
-
Awvs
-
Nmap
-
Nessus
-
AppScan
-
OWASP-ZAP
-
More...
常用网站
-
Shodan
-
ZoomEy
-
exploit-db
-
傻蛋联网设备搜索
-
More...
漏洞利用
漏洞利用exploitation获得系统控制权限,优先考虑能直接获取管理员权限。漏洞利用就是执行一次漏洞攻击
的过程,而漏洞攻击程序是利用漏洞(vulnerability)实施攻击的一种具体体现。
常用工具
方法
-
精准攻击:准备好上一步探测到的漏洞exp(漏洞利用),用来精准攻击
-
绕过防御机制:是否有防火墙等设备,如何绕过
-
定制攻击路径:最佳工具路径,根据薄弱入口,高内网权限位置,最终目标**
-
绕过检测机制:是否有检测机制,流量监控,杀毒软件,恶意代码检测等(免杀)**
-
攻击代码:经过试验得来的代码,包括不限于xss代码,sql注入语句等
-
More...
工具
-
Kali
-
John
-
Hydra
-
Nmap
-
Medusa
-
Metasploit
-
Cobalt Strike
-
More...
常用网站
-
Shodan
-
ZoomEy
-
exploit-db
-
傻蛋联网设备搜索
-
More...
权限提升
常见的提权方式
-
数据库提权
-
操作系统提权
-
内核漏洞提权
-
第三方软件提权
-
系统配置不当提权
-
More
常用工具
方法
-
服务提权
-
SUID提权
-
直接提权过UAC
-
劫持高权限程序
-
定时任务计划提权
-
Linux内核溢出提权
-
劫持系统的DLL文件
-
服务路径权限可控提权
-
Windows内核漏洞提权
-
系统服务的错误权限配置漏洞
-
远程注入Shellcode到傀儡进程
-
More...
工具
-
NC
-
LCX
-
Kali
-
John
-
Hydra
-
Nmap
-
wesng
-
BeRoot
-
UACME
-
Medusa
-
sdclt.exe
-
PowerUP
-
Yamabiko
-
ElevateKit
-
cmstp.exe
-
Metasploit
-
wscript.exe
-
Bypass-UAC
-
Cobalt Strike
-
eventvwr.exe
-
SilentCleanup
-
WinSystemHelper
-
linux-kernel-exploits
-
windows-kernel-exploits
-
Windows-Exploit-Suggester
-
More...
常用网站
-
Github
-
exploit-db
-
More...
内网渗透
内网渗透的环境可以分为两种:域环境和非域环境。
-
域环境:将网络中多台计算机逻辑上组织到一起,进行集中管理,这种区别于工作组的逻辑环境叫做域,域是组织与存储资源的核心管理单元,在域中,至少有一台域控制器,域控制器中保存着整个域的用户帐号和安全数据库。
-
非域环境:在拿到一台服务器的时候,拿下内网更多的服务器,更有用的信息。
根据客户需求
是否进行扩大渗透!
常用工具
方法
-
ARP欺骗
-
内网探测
-
密码破解
-
网络设备漏洞
-
域用户hash提取
-
More...
工具
-
NC
-
LCX
-
Kali
-
John
-
Hydra
-
Nmap
-
Nessus
-
pwdump
-
mimikatz
-
Metasploit
-
Cobalt Strike
-
More...
痕迹清理
渗透测试的目的是模拟黑客攻击来发现系统的漏洞和脆弱之处。而这里提到的完成测试后清理痕迹已经有点像是入侵的范畴了。一般只有在一些实战攻防演习
中需要使用,想完全清除痕迹是比较困难的,所以一般都以伪装为主,代理IP、虚拟机、跳板等方式。根据客户需求是否需要清除痕迹。
-
日志清理
-
Webshell
-
一句话木马
-
登陆记录清理
-
提权脚本或程序
-
More...
常用工具
方法
-
获得日志信息
-
导出日志文件
-
日志文件覆盖
-
3389登陆记录清除
-
破坏Windows日志记录功能(攻防比赛中使用)
-
More...
工具
-
Metasploit
-
Invoke-Phant0m
-
Windwos-EventLog-Bypass
-
More..
撰写报告
报告内容在于精简。针对本次渗透测试中发现的安全问题,在整个渗透过程中发现了那些漏洞,有什么危害,使用了什么方法、工具等,利用过程多截图。
报告规范
-
概述(渗透测试范围、渗透测试主要内容)
-
脆弱性分析方法
-
渗透测试过程描述
-
分析结果与建议
-
More...
信息整理
渗透过程中收集到的一切信息
渗透工具
渗透过程中用到的代码、POC,EXP等
漏洞信息
渗透过程中遇到的各种漏洞,各种脆弱位置信息
客户需求
按照之前第一步跟客户确定好的范围,需求来整理资料,并将资料形成报告
分析总结
要对漏洞成因,验证过程和带来危害进行分析
安全建议
当然要对所有产生的问题提出合理高效安全的解决办法