声明
学习视频来自B站UP主 泷羽sec,如有侵权联系删除
前期交互-情报收集-威胁建模-漏洞扫描-漏洞利用-后渗透阶段-报告编织
1. 前期交互
• 确定目标和范围:和客户沟通,明确测试的目标系统(如一个网站、一个APP或者是内部网络)、测试范围(包括IP地址段、应用功能模块等),比如是只测试外网可访问的Web应用服务器,还是包括其后台数据库等。确定测试范围:例如IP、域名、内外网、整站或部分模块。
确定测试规则:包括渗透测试的程度(发现漏洞为止或继续利用漏洞)、时间限制、是否允许数据破坏、是否允许阻断业务正常运行等。
目标系统介绍:重点保护对象及特性,是否允许数据破坏,是否允许阻断业务正常运行,测试之前是否应当知会相关部门接口人,接入方式(外网和内网),测试是发现问题就算成功,还是尽可能的发现多的问题,渗透过程是否需要考虑社会工程等。
• 了解规则和限制:确定允许的测试方法(如是否可以使用社会工程学手段),明确不能进行测试的部分,如涉及客户核心敏感数据的真实存储区域,还要了解测试时间窗口等限制条件,分析渗透测试过程中可能产生的风险,如大量测试数据的处理、影响正常业务开展、服务器发生异常的应急、数据备份和恢复等,由测试方书写实施方案初稿并提交给客户(或本公司内部领导)进行审核。在审核完成后,从客户(或本公司内部领导)获取对测试方进行书面委托授权书,授权测试方进行渗透测试。
2. 情报收集
• 网络信息收集:通过工具(如nmap)扫描目标网络,获取开放的端口、服务类型(如HTTP、SSH、SMTP等)等信息。还可以查询域名相关的信息,包括注册人、注册时间、DNS记录等。
• 系统和应用信息收集:查看目标系统和应用的版本号,因为不同版本可能存在不同的漏洞。例如,某些老版本的Web服务器软件可能存在已知的安全漏洞。还可以收集应用的业务逻辑相关信息,比如购物网站的支付流程。
• 全面信息收集:尽量多地收集关于目标系统的各种信息,例如脚本语言的类型、服务器的类型、目录的结构、使用的开源软件、数据库类型、所有链接页面、用到的框架等。
信息收集的方式包括主动扫描和被动收集(利用第三方服务对目标进行了解)。
3. 威胁建模
• 识别潜在威胁:基于收集到的信息,确定可能的攻击路径和威胁。例如,如果发现目标系统开放了远程桌面协议(RDP)端口,就要考虑暴力破解、中间人攻击等潜在威胁。
• 确定攻击优先级:根据威胁的可能性和影响程度,对威胁进行排序。比如,能够直接获取系统管理员权限的威胁优先级最高。
4. 漏洞扫描
• 自动化扫描工具使用:利用漏洞扫描工具(如Nessus、OpenVAS等)对目标系统进行扫描,这些工具可以发现常见的系统漏洞、Web应用漏洞(如SQL注入漏洞、XSS漏洞等)。
• 手工验证漏洞:由于自动化工具可能出现误报,需要手工对扫描出的疑似漏洞进行验证。比如,对于一个疑似SQL注入点,手动构造SQL注入语句来测试其是否真的存在漏洞。
5. 漏洞利用
• 尝试获取权限:如果发现漏洞,尝试利用漏洞获取目标系统的访问权限。例如,利用缓冲区溢出漏洞获取系统的本地权限,或者利用Web漏洞获取Web应用的后台管理权限。
• 权限提升:在获取初步权限后,尝试提升权限,以获取更高的控制权。比如,从普通用户权限提升到管理员权限。
6. 后渗透阶段
• 收集敏感信息:在获得足够权限后,收集敏感信息,如用户账号密码、重要文件(如财务数据、客户名单等)。
• 维持访问权限:通过在目标系统中安装后门程序(如木马)或者利用系统的合法功能(如添加具有访问权限的用户账号)来维持访问权限,方便后续的测试或者评估。
7. 报告编制
• 记录测试过程和发现:详细记录渗透测试的过程,包括使用的工具、方法、发现的漏洞、获取的权限和收集到的敏感信息等。
• 提出建议和修复措施:针对发现的漏洞,提出相应的修复建议,如升级软件版本、修改配置参数、加强访问控制等。
总结:学习是永无止境的 让我们一起学起来
本人纯小白 如有侵权马上联系删除!!!