luochicun 安全工具 2019年6月30日发布
收藏
如果你在获得某个组织的网络最高权限后,最想做的是什么呢?根据调查,人们在这种情况下最想做的就是把该组织中的有价值的数据都复制过来。
虽然目前有很多工具和方法可以让我们在渗透测试期间获得更高的权限,但在获取权限后,使用什么样的工具来帮助我们查找有价值的数据,就很有讲头了。在这篇文章中,我想介绍Leprechaun,这是一个新近被开发出来的后开发(post-exploitation)工具。
关于Leprechaun
在我进行过的许多渗透测试活动中,通常获得某种高级权限的过程只是一个时间问题,之后我便可以在内部环境中枚举所有的系统和服务。我个人最喜欢使用的工具之一是Bloodhound,BloodHound以用图与线的形式,将域内用户、计算机、组、Sessions、ACL以及域内所有相关用户、组、计算机、登陆信息、访问控制策略之间的关系更直观的展现在分析人员面前进行更便捷的分析域内情况,更快速的在域内提升自己的权限。但是,在黑盒渗透测试中,我们不知道网络实际上是什么样的,需要进行尽可能多的侦察,以构建网络图,识别有价值的服务器和资源,绘制数据点等,而Leprechaun就是帮助我完成高效完成这个侦察过程的。
Leprechaun的运行原理
在使用诸如Josh Stone编写的routehunter之类的工具,或者可以在多个主机上递归运行netstat的任何其他进程/工具中,利用Leprechaun的输出信息,就可以高效地获得测试环境中的数据流或网络连接的直观表示。
使用命令和参数./leprechaun.rb -f results.txt -p all,你可以快速将netstat结果解析为以下直观的图表。
Leprechaun的输出样本
在一个非常大的网络环境中,能够快速确定正在发生的事情,可以为你节省大量时间。使用上面的输出信息,你可以快速且非常容易地推断出驻留在192.12.70.50的系统是一个非常重要的系统。基于此判断,你需要将注意力集中在此系统上,并确定其中到底发生了什么。
此外,如果你喜欢文本输出,可以使用与上面相同的命令,获得以下文本输出结果。
在某些情况下,这可能会变得非常复杂,这具体取决于网络大小和环境中已建立连接的数量。它可能看起来像如下这样:
所有目标端口均显示出来
假如你只想要一个特定的端口,请将上述参数中的all替换为某个特定端口,例如80,甚至80,443,8080等都可以。此时,你会获得以下输出内容和图表:
端口80/tcp的输出内容
最后,如果你只对常见端口感兴趣,就可以使用硬编码端口列表,也可以根据自己的喜好对其进行修改。下面是一个查看常见端口的示例:
仅显示连接到已知端口的客户端
如果你对将要解析的示例netstat文件看起来很好奇,它可能是几行包含你从netstat获得的正常格式,如下所示(仅限IPv4):
总结
在实际的渗透测试中,你最不想做的事情就是花几个小时搜索数据,并了解网络。虽然有时你可以向测试对象询问可能有用的信息,但在短时间内快速了解有关网络的信息可能会对你的测试产生很大的帮助。
我过去曾使用类似的技术来发现过非常重要的数据库管理系统,并最终能够通过查找SQL客户端和服务器来获取其他凭据,例如Microsoft SQL Server服务帐户。这对于识别其他重要资源,例如文件服务器、内部网、应用程序服务器等,也很有用。
可以在GitHub存储库中获取Leprechaun:https://github.com/vonahi-security/leprechaun