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