厦门黄阿玛网络科技有限公司欢迎您!
  1. 首页
  2. 新闻中心
  3. 网络安全资讯
  4. 内容

企业级渗透测试服务思考

作者:safewos 日期:2020-02-03 人气:1188

随着企业组织的业务规模不断扩大,信息化运用快速发展,业务与数据安全已经被推上战争的高地,成为企业保护自身安全的重中之重,成为企业信息安全官在战略计划汇报中不得不谨慎对待的课题。

现阶段,全球范围内的网络空间对抗加剧,网络军事化特征明显,信息安全正面临严峻的挑战,国家也愈发重视。今年网络安全的红蓝对抗为人们安全观念和意识的转变带来了契机,虽然企业安全防御技术争论不休,但唯一不争的共识是,企业能够建立最好的安全防御体系的方式就是通过对抗演练来进行检验。

企业市场也不断涌现红蓝对抗的建设需求,攻防演练得到企业的重视,攻击视角能帮助防守团队找到防守视角的盲点,企业级渗透测试服务的采购也成为企业安全团队思考的问题。

渗透测试服务标准

企业级渗透测试服务,是工程化的项目服务,具有完整的管理流程和标准化服务。尽管渗透测试的方法各不相同,但依然有一些标准化的方法体系规范,而对于企业内部安全部门在提供安全测试服务时,依然有可取之处。

PTES(Penetration Testing Execution Standard)渗透测试执行标准是安全业界在渗透测试技术领域中开发的一个新标准,也是普遍应用比较广的事实标准,目标是在对渗透测试进行重新定义,新标准的核心理念是通过建立起进行渗透测试所要求的基本准则基线,来定义一次真正的渗透测试过程,已得到安全行业的广泛认同。

完成更好的渗透测试

高价值的渗透测试活动涉及对现实世界中恶意攻击者使用的技术进行建模、发现漏洞,并在一定受控环境下,根据提前精心设计的参与规则和协定的范围,以专业、安全的方式利用这些漏洞。此过程有助于确定业务风险和可能受到攻击的潜在影响,所有这些都旨在帮助企业组织改善其安全现状。

以下是安全专家总结的渗透测试某些阶段的提示,以帮助您在日常工作中提供更高的业务价值。可以成为安全部门在内部提供标准化服务建设时的成熟小建议,同时也可以作为组织寻求企业级渗透测试服务的标准化要求。

1. 前期交互:

前期沟通时使用话术模板来指导语音会话,以确定参与的范围和规则。

对目标系统(MSSP、云提供商、ISP、共享托管环境、边界路由器、DNS服务器等)进行获取信息或进行操作时,请确保您获得了任何第三方的测试书面许可。

在与目标系统方人员交流制定您的规则时讨论同时使用黑盒与白盒测试,并指出白盒测试通常提供更详细的结果、更安全,并提供更好的商业价值。

与目标系统人员讨论他们在其环境中具有的特殊敏感的信息(例如PII),以及如何在不实际下载的情况下测试对其数据的访问。考虑尝试使用植入通用的样本记录来演示您的访问权限,而不是实际的敏感数据。

每天与目标系统人员进行电话汇报,交流意见和经验教训。如果每天太频繁,可以考虑每周打2-3次电话。(每周留出1-2小时参加各种CTF比赛,保持你的技能熟练程度。这些比赛包括各大CTF网站提供的免费在线比赛或线下赛,以及其他类对抗比赛。)

2. 情报侦察:

仔细考虑与第三方服务器和搜索的所有交互(谨慎使用),以确保您不会泄露有关目标的敏感信息或使用他们导致的违反保密协议。您可能需要考虑使用Tor网络来模糊隐匿您与目标组织的关系。

使用谷歌语法搜寻目标网站上常见的办公类文件,例如(或filetype:):

site:<TargetDomain> ext:doc |ext:docx | ext:xls | ext:xlsx | ext:pdf 

记得搜集社交网站,QQ、微信朋友圈、知乎、微博、支付宝生活圈、抖音,安全从业者尤其喜欢安全圈子论坛及Facebook、Twitter,甚至暗网论坛,了解目标员工及其使用的技术。

使用Shodan的“net:”命令在目标网络地址范围内寻找不寻常或有趣的设备。此外,使用唯一的页脚信息(例如目标web页面上的常见版权通知)通过Shodan使用“html:”查找其他页面(推荐FOFA和ZoomEye网络空间搜索引擎)。

仔细检查正在进行测试范围中包含的所有IP地址是否属于目标组织,并且无错误。使用whois和traceroute检查地址是否有意义并且实际上属于目标组织。

在公开的信息中,查找目标企业的长期以来的IT管理和信息安全管理员工,看看他们熟悉哪些技术,包括防火墙、开发环境等等。

3. 脆弱性分析:

扫描目标时,运行tcpdump之类的嗅探器,这样可以持续验证扫描器是否仍在正常运行。

虽然TCP 445之类的开放端口通常表示目标为一台Windows机器,但情况并非总是如此。目标可以是Samba守护进程,也可以是另一个基于smb的目标。

通过研究如何手动或通过Bash、PowerShell、Nmap脚本 (NSE)或其他脚本检查问题,验证发现的漏洞。

将根据您已识别的漏洞来确定资产的重要程度,因为这有助于您分配优先级并评估风险。

尝试通过运行不同的探测工具(Nmap、Masscan、Nessus、OpenVAS、PocSuite)来排除误报,以确认结果。

如果您本地正在使用虚拟机进行远程攻击,请将其配置为桥接网络模式,以避免填充NAT表并确保反向shell连接可以成功返回给您。

4. 密码攻击:

根据其网站上的文字信息创建一个针对目标组织微调的字典列表。

根据用户的社交网络档案,创建一个针对用户进行微调的字典列表。

当您使用字符规则成功破解密码时,请将该密码添加到字典中,以便对该渗透测试进行进一步的密码攻击。这样,如果您遇到相同的密码以不同的哈希格式出现,则无需等待单词爆破才能重新发现该密码。

记住,可以使用各种技术收集密码,包括通用密码、社工库、自动化猜测、破解、嗅探和击键记录。

对于密码猜测,请始终考虑可能的帐户锁定策略,并试图通过使用密码喷射技术(大量帐户和数量很少的密码)来避免它。

一旦从目标中获取密码哈希值,就启动密码破解程序以尝试破解确定此密码。不要让时间浪费流逝,请立即开始破解你已经得到的哈希。

有时您不需要密码进行身份验证,因为只需使用哈希即可完成工作,例如针对Windows和SMB目标的传递哈希攻击,以及存储在某些网站的cookie中的密码哈希值。

如果您的系统上有兼容的GPU,可考虑使用基于GPU的密码破解工具,例如Hashcat,因为将获得20-100倍的速度性能。

5. 渗透测试:

在创建逃避反恶意软件的免杀payload时,请不要将恶意样本提交到在线扫描站点(例如virustotal.com)以检查能否成功免杀,因为这可能会在分发新签名更新时破坏您的有效载荷(被反恶意软件查杀)。

设置一个命令或脚本,在攻击时每隔几秒检查一次目标服务的可用性。这样,如果目标崩溃了,你会很快注意到并且可以联系目标系统人员一起尝试重新启动它。

构建有效载荷Payload,以便它们与您建立反向连接shell,从而增加您通过“仅允许出站连接”的防火墙的机会。

对于您的有效payload,请使用可能允许从目标环境出站的协议,例如https(具有代理感知的有效载荷,如PowerShell Empire、Metasploit和Veil Framwork中可用的模块)或DNS(如DNScat工具)。

为了降低Windows目标系统和服务崩溃的几率,一旦您获得了管理员级别的凭证和SMB访问权限,使用psexec或类似的Windows特性(WMIC, sc等)来让它们运行代码,而不是缓冲区溢出或相关的漏洞。

如果您的漏洞利用失败,请仔细阅读您的利用工具的输出信息,以查看错误的位置。此外,运行诸如tcpdump之类的嗅探器,以查看它在建立连接、发送exploit载荷以及加载stager和stage之间的差别。如果你的stager工作正常但你的stage无法加载,那么你的反病毒逃避策略可能失败了(MSF的payload分single、stager、stage三种) 。

6. 后渗透:

(1) 当您获得对目标计算机的访问权限时,请不要过早使用它来扫描内网更多目标,因为这会使您过早被检测到。相反,应根据网络活动发现其他潜在目标信息:

DNS缓存(Windows): c:\>ipconfig /displaydns

ARP缓存:arp -a

建立TCP连接:netstat -na

路由表:netstat -nr

(2) 当您获得对目标的访问权限时,如果计算机上安装了嗅探器(如tcpdump或Wireshark的tshark工具),则运行它以查找网络流量以识别其他可能的目标计算机,以及包含敏感或有用信息的明文协议。

(3) 即使没有目标计算机上的root、system或admin权限,您仍然可以执行非常有用的后渗透活动,包括获取用户列表,确定已安装(可能是易受攻击)的软件以及在系统中进行操作。

(4) 当你进入Windows系统时,寻找端口445(SMB)和3389(RDP)的STABLISHED TCP连接,因为这些系统可能是很好的跳板机。使用如属下列命令:

c:\> netstat -na | find “EST” | find“:445”  

c:\> netstat -na | find “EST” | find“:3389” 

(5) 虽然它们对管理人员演示效果非常有用,但对打开摄像头并从受感染的目标机器中捕获音频,要保持小心谨慎。只有获得书面许可情况下才能进行这种的侵入性访问,并由您的法律团队进行审核,以确保符合当地法律。

7. 编写报告:

(1) 通过IP地址(如果您拥有IPv4和IPv6)、域名(如果有)和MAC地址(特别是对于使用DHCP的受损客户机)识别目标。

(2) 不要等到渗透测试结束才开始编写报告。相反,在渗透测试进行时随时记录编写报告,每天留出时间写一到三页,你不但会写出更好的报告,你的成果也会更好。

(3) 在你的报告中添加截图,以清楚地说明调查结果。用箭头和圆圈标注截图,指出插图的重要点。

(4) 如果想要为您的修复建议增加额外的价值,请考虑增加操作人员可以采取的易于落地的步骤,以验证建议的修复是否到位,例如检查补丁是否存在的命令。对于某些发现的问题,这可能很难做到,所以在这些情况下,建议重新测试给定的问题。

(5) 在报告的每个部分为适当的读者受众撰写不同结构的报告:

执行摘要应该适用于分配资源的决策者

应根据业务问题从技术角度撰写调查结果

修复建议应充分考虑到运营团队及其流程


你觉得这篇文章怎么样?

00