渗透测试介绍
渗透测试就是模拟攻击者入侵系统,对系统进行一步步地渗透,发现系统的脆弱环节和隐藏风险。最后形成测试报告提供给系统所有者。系统所有者可根据该测试报告对系统进行加固,提升系统的安全性,防止真正的攻击者入侵。
渗透测试的前提一定是得经过系统所有者的授权!未经过授权的渗透测试,就是违法行为!
渗透测试意义
信息安全评估的重要方法,有利于掌握系统整体安全强度。
模拟黑客攻击和思维,评估计算机潜在风险。
发现系统薄弱环节和可能利用的路径,提前防范。
有授权,不存在入侵风险。
渗透测试方法
- 白盒测试:在知道目标整体信息和源码的情况下进行渗透,类似于代码审计。
- 黑盒测试:仅知道目标,其余信息均不知道,完全模拟黑客入侵。
- 灰盒测试:知道目标部分信息,例如架构和网络拓扑,进行渗透的方式。
(若按照其他方式还可分为人工测试和自动化测试)
渗透测试一般流程
准备阶段 → 信息收集 → 漏洞检测 → 漏洞利用 → 内网转发 → 内网渗透 → 痕迹清除 → 撰写报告
准备阶段
获得授权、制定方案、目标确定、测试环境确定、测试范围和深度、测试时间确定、测试风险管理。
信息收集
信息收集两种方法
- 主动信息收集:对目标进行访问或扫描。
- 被动信息收集:通过第三方收集目标信息。
主要收集的信息
- 域名信息,IP,子域名,DNS 记录,是否存在 CDN。子域名收集可利用工具:Layer 子域名挖掘机,findomain 等。
- 公网信息。目标相关信息。员工信息,邮箱,注册人等;在 Github 等代码托管平台查找敏感信息。
- 网站指纹识别。服务器类型 (Windows/Linux),网站容器 (Apache/Nginx/Tomcat/IIS),脚本类型 (php/jsp/asp/aspx),数据库类型 (mysql/oracle/access/sqlserver/redis)。
- 服务器端口开放情况。可以使用 nmap、御剑等工具。
- ssh 弱口令 22
- mysql 弱口令 3306
- redis 未授权 6379
- weblogic 反序列化漏洞 7001
- web 中间件漏洞 80
- 敏感目录。可以使用御剑,wwwscan,dirmap 等扫描后台目录,默认路径。
- 旁站和 C 段。旁站指同一服务器上的其他网站。可利用旁站进行渗透。C 段指同一网段内的其他服务器。对同目标 C 段内的服务器进行渗透提权,再对目标进行渗透。 常见扫描工具:Nessus,X-SCAN,Nmap。
漏洞检测
主要根据 OWASP Top 10。
- 注入:SQL 注入,XXE 注入,LDAP 注入,系统命令注入,远程代码执行。
- 失效的身份认证和会话管理:弱口令暴力破解,cookie 伪造和 cookie 绕过,逻辑绕过登录,会话劫持。
- 跨站脚本攻击 XSS。
- 失效的访问控制:未授权访问,越权访问(水平越权和垂直越权),文件操作(文件上传,文件包含,任意文件下载)。
- 安全配置错误:高危端口(22,445,3389,6379),数据库,web 中间件,CORS 跨域资源共享漏洞,目录漏洞。
- 敏感信息泄露:弱文件(phpinfo,备份文件,安装文件),源代码,配置文件,数据库文件。
- 攻击检测防范不足:WAF,RASP,虚拟/实际补丁。
- 跨站请求伪造 CSRF。
- 使用包含已知漏洞的组件:Struts2 代码执行,Spring 代码执行,JAVA 反序列化,心脏滴血漏洞。
- 未受保护的 APIs:Web services,Login API,APP API,DB API,Pay API。
漏洞探测思路
- 注入型漏洞。
- 文件型漏洞。
- 跨站型漏洞。
- 配置型漏洞(SSRF 漏洞,CORS 漏洞,JSONP,XSS,CSRF)。
- 反序列化漏洞(fastjson 反序列化漏洞,jboss 反序列化漏洞,Apache shiro 反序列化漏洞,weblogic 反序列化漏洞)。
- 逻辑型漏洞(注册,登录密码修改等功能上可能存在逻辑漏洞)。
- 服务器型漏洞:如 JBoss/Apache/IIS/Weblogic/Tomcat,可根据版本号及服务器类型的敏感文件路径对漏洞进行探测。
- 第三方库漏洞:如 fastjson,struts2,JQuery,OpenSSL。
内网转发
概念:在传统网络中,防火墙是物理边界防御,网络被分为内网和外网。当我们获取到外网服务器后(如 web 服务器,FTP 服务器,Mail 服务器等)的一定权限后,发现此服务器可直接或间接的访问内网。而内网中的主机不允许外网直接访问,此时可通过端口转发(隧道)将外网服务器设置为代理,此过程便是内网转发。
内网转发思路
内网转发通常需要判断已经拿到权限的主机是否出网,若目标出网则可使用反向代理,若目标不出网,则考虑使用正向隧道或端口复用。
- reGeorg 结合 proxychains 代理链(HTTP 隧道)。适用于公网服务器只开放 80 端口的情况,使用 http 隧道。
- EW(EarthWorm) 结合 proxychains 代理链。EW 是便携式网络穿透工具,具有 SOCKS5 服务架设和端口转发两大核心功能,此工具可以'正向','反向','多级级联'等方式打通一条网络隧道,进入内网。
- LCX(lcx 是基于 socket 套接字实现端口转发的工具)实现端口转发。
内网渗透
常见攻击方式
非域环境:MS17-010,哈希传递攻击,Access Token 窃取与利用,mimikatz 获取 RDP 凭据。
域环境:MS14-068,票据传递攻击,AS-REP Roasting 攻击,Kerberoast 攻击。
内网渗透之权限维持
Web 后门
- 隐藏后门文件。
- 不死马。
- 404 页面隐藏后门,或其他自带文件后门。
Windows 系统
- 建立隐藏用户,在用户名后加$。
- 在开机启动目录下放置木马文件。
- 使用工具,用 MSF 中的 persistence 模块。
- 远程桌面会话维持。
Linux 系统
- SSH 后门。
- crontab 定时任务。
- SSH 公钥。
- 创建 SUID=0 的用户。


