当前位置: 首页 > 科技观察

对企业级渗透测试服务的思考

时间:2023-03-18 00:42:48 科技观察

随着企业组织业务规模的不断扩大和信息技术应用的迅猛发展,业务和数据安全被推上了战争的高度,成为企业的重中之重。保护自身安全,已经成为企业信息安全人员在战略规划宣讲中不得不慎重考虑的话题。现阶段,全球网络空间对抗加剧,网络军事化特征明显,信息安全面临严峻挑战,国家日益重视。今年网络安全的红蓝对峙,给人们的安全观念和意识带来了转变的契机。尽管企业安全防御技术争论不休,但唯一不争的共识是,企业建立最佳安全防御体系的方式是通过对抗演练来检验。企业市场也不断涌现出红蓝对抗的建设需求。攻防演练受??到企业重视。攻击视角可以帮助防守组找到防守视角的盲点。企业级渗透测试服务的采购也成为企业安全团队需要思考的问题。渗透测试服务标准的企业级渗透测试服务是一个管理流程完整、服务标准化的工程项目服务。渗透测试的方法虽然不同,但还是有一些标准化的方法体系规范,对于企业内部安全部门提供安全测试服务还是有可取之处的。PTES(PennetrationTestingExecutionStandard)渗透测试执行标准是安全行业在渗透测试技术领域制定的新标准。它也是一个广泛使用的事实标准。目标是重新定义渗透测试。新标准的核心理念是通过建立渗透测试所需的基本准则基线来定义真正的渗透测试流程,得到了安全行业的广泛认可。做更好的渗透测试高价值渗透测试活动涉及对现实世界中恶意行为者使用的建模技术、发现漏洞以及以专业和安全的方式利用这些漏洞。此过程有助于识别业务风险和可能的攻击的潜在影响,所有这些都旨在帮助组织改善其安全状况。以下是安全专家针对渗透测试的某些阶段提供的提示,可帮助您在日常工作中实现更高的业务价值。可以作为安全部门对内提供标准化服务建设的成熟建议,也可以作为寻求企业级渗透测试服务的组织的标准化需求。1.前期互动:在前期交流中,使用语音模板引导语音对话,确定参与范围和规则。在尝试获取信息或在目标系统(MSSP、云提供商、ISP、共享托管环境、边界路由器、DNS服务器等)上操作之前,请确保您已获得任何第三方的书面许可以对其进行测试。在与目标系统方制定规则时讨论黑盒和白盒测试的使用,注意白盒测试通常提供更详细的结果,更安全,并提供更好的商业价值。与目标系统人员讨论他们的环境中有哪些特定的敏感信息(例如PII),以及如何在不实际下载数据的情况下测试对其数据的访问。考虑尝试使用通用样本记录来证明您的访问权限,而不是实际的敏感数据。与目标系统人员进行每日电话汇报,以交流想法和经验教训。如果每天太频繁,可以考虑一周打2-3次电话。(每周抽出1-2小时参加各种CTF比赛,保持自己的技能水平。这些比赛包括各大CTF网站提供的免费线上或线下比赛,以及其他类型的对抗赛。)2.情报侦察:仔细考虑与第三方服务器和搜索的所有交互(谨慎使用),以确保您不会泄露有关目标的敏感信息或使用它们导致违反保密协议。您可能需要考虑使用Tor网络来掩盖您与目标组织的隶属关系。使用谷歌语法在目标网站上搜索常见的office文档,例如(或filetype:):site:ext:doc|ext:docx|ext:xls|ext:xlsx|ext:pdf记得收藏社交网站,QQ,微信朋友圈,知乎,微博,支付宝生活圈,抖音,安全从业者特别喜欢安全圈论坛和Facebook,Twitter,甚至暗网论坛来了解目标员工和他们使用的技术。使用Shodan的“net:”命令在目标网络地址范围内查找不寻常或有趣的设备。此外,使用独特的页脚信息(例如目标网页上的常见版权声明)通过Shodan使用“html:”查找其他页面(推荐使用FOFA和ZoomEye网络空间搜索引擎)。仔细检查被测范围内的所有IP地址是否属于目标组织并且没有错误。使用whois和traceroute检查该地址是否有意义以及是否确实属于目标组织。在公开资料中,找到目标公司的长期IT管理和信息安全管理人员,看他们熟悉哪些技术,包括防火墙、开发环境等。3.漏洞分析:扫描目标时,运行tcpdump等嗅探器,这将不断验证扫描器是否仍在正常运行。虽然TCP445等开放端口通常表明目标是Windows计算机,但情况并非总是如此。目标可以是Samba守护进程,或另一个基于smb的目标。通过调查如何手动或通过Bash、PowerShell、Nmap脚本(NSE)或其他脚本检查问题来验证发现的漏洞。资产关键性是根据您已识别的漏洞确定的,因为这有助于您分配优先级和评估风险。通过运行不同的探测工具(Nmap、Masscan、Nessus、OpenVAS、PocSuite)来确认结果,尝试排除误报。如果您在本地使用虚拟机进行远程攻击,请将其配置为桥接网络模式,以避免填满NAT表并确保反向shell连接能够成功返回给您。4.密码攻击:根据目标组织网站上的文本信息,创建针对目标组织进行微调的词典列表。根据用户的社交网络配置文件创建为用户微调的词典列表。当您使用字符规则成功破解密码后,将该密码添加到字典中以进行进一步的密码攻击以进行此渗透测试。这样,如果您遇到不同哈希格式的相同密码,则无需等待词爆破来重新发现它。请记住,可以使用多种技术收集密码,包括通用密码、社会工程学库、自动猜测、破解、嗅探和击键记录。对于密码猜测,始终考虑可能的帐户锁定策略,并尝试使用密码喷射技术(很多帐户和很少的密码)来避免它。一旦从目标获得了密码散列,就会启动密码破解程序来尝试破解这个密码。不要让时间流逝,开始破解您已有的哈希值。有时您不需要密码来进行身份验证,因为只需一个哈希就可以完成这项工作,例如针对Windows和SMB目标的传递哈希攻击,以及存储在某些网站cookie中的密码哈希。如果您的系统上有兼容的GPU,请考虑使用基于GPU的密码破解工具,例如Hashcat,因为您将获得20-100倍的性能提升。5.渗透测试:在创建反恶意软件逃避负载时,不要将恶意样本提交到在线扫描站点(例如virustotal.com)以检查是否成功逃避,因为这可能会导致分发新的签名更新破坏您的负载(被反恶意软件杀死)。设置一个命令或脚本,在攻击时每隔几秒检查一次目标服务的可用性。这样,如果目标崩溃,您会很快注意到它并可以联系目标的系统人员尝试重新启动它。构建有效负载,以便它们与您建立反向连接外壳,从而增加您通过“仅出站连接”防火墙的机会。对于您的负载,使用可能允许从目标环境出站的协议,例如https(具有代理感知负载,例如PowerShellEmpire、Metasploit和VeilFramwork中可用的模块)或DNS(例如DNScat工具)。为了减少Windows目标系统和服务崩溃的可能性,一旦您拥有管理员级别的凭据和SMB访问权限,请使用psexec或类似的Windows功能(WMIC、sc等)让它们运行代码,而不是缓冲区溢出或相关漏洞。如果您的漏洞利用失败,请仔细阅读漏洞利用工具的输出以查看错误发生的位置。此外,运行诸如tcpdump之类的嗅探器,以查看它如何建立连接、发送漏洞利用负载以及加载stager和stage之间的区别。如果你的stager工作正常但你的阶段加载失败,那么你的防病毒规避策略可能失败了(MSF有效载荷分为单一、stager和阶段)。6.后期利用:(1)当您获得目标计算机的访问权限时,不要过早地使用它来扫描内网以寻找更多目标,因为这会过早地检测到您。相反,根据网络活动发现其他潜在的目标信息:DNS缓存(Windows):c:\>ipconfig/displaydnsARP缓存:arp-a建立TCP连接:netstat-na路由表:netstat-nr(2)当你得到在访问目标时,如果计算机上安装了嗅探器(例如tcpdump或Wireshark的tshark工具),则运行它来查找网络流量以识别其他可能的目标计算机,以及包含敏感或有用信息的明文协议。(3)即使在目标计算机上没有root、系统或管理员权限,您仍然可以执行非常有用的后期开发活动,包括获取用户列表、确定已安装(可能易受攻击的)软件以及操纵系统。(4)进入Windows系统后,在445(SMB)和3389(RDP)端口寻找STABLISHEDTCP连接,因为这些系统可能是很好的跳板。使用这样的命令:c:\>netstat-na|找到“EST”|找到":445"c:\>netstat-na|找到“EST”|find":3389"(5)尽管它们的演示效果非常有用,但在打开摄像头并从受感染的目标机器上捕获音频时要小心。只有获得书面许可并由您的法律团队审查以确保符合当地法律,才允许进行此类侵入性访问。7.写一份报告:(1)通过IP地址(如果您有IPv4和IPv6)、域名(如果可用)和MAC地址(特别是对于使用DHCP的受感染客户端)确定目标。(2)不要等到渗透测试结束了才开始写报告。相反,每当进行渗透测试时就写一份报告,每天留出时间写一到三页,不仅你会写出更好的报告,而且你的结果也会更好。(3)在您的报告中添加屏幕截图以清楚地说明调查结果。用箭头和圆圈注释屏幕截图以指出插图的重点。(4)如果您想为您的修复建议增加额外的价值,请考虑添加操作员可以采取的易于着陆的步骤来验证建议的修复是否到位,例如检查是否存在的命令修补。对于发现的某些问题,这可能很难做到,因此在这些情况下,建议重新测试给定的问题。(5)在报告的每个部分为适当的读者撰写不同结构的报告:执行摘要应适合分配资源的决策者调查结果应根据业务问题从技术角度撰写补救建议应充分考虑运营团队及其流程