先写点流水账
这个月是博客断更最久的一段了,我相信,未来一定还可以更久。
新工作目前基本开始上手了,现阶段主要工作内容有这样几部分吧。
- 样本yara规则提取:这部分最近几个星期在写一个辅助工具,实现思路基本是,将同家族样本的固定位置的函数人肉圈定出来,再通过交叉比对的方式生成对应的yara规则,样本越多,最终得到的yara规则就会越稳定。
- 自动化C&C地址识别提取,利用yara辅助工具,对同家族各不同样本中的C&C连接相关的函数进行特征提取,随后根据不同的特征规则,编写C&C地址定位程序,进而读取出当前样本对应的C&C主机信息。目前看,有了yara提取工具的辅助,第二部分工作反而相对容易了许多。今天在编写提取程序中发现,对yara规则的提取工具又有了新的要求,估计相当长的一段时间内,应该就是维护这两个工具,让它们相互更好的配合起来吧。
- 未来准备结合日常工作将以上两部分,整理为一个样本分析工作台,这样未来只需要关注样本分析结果,并在工作台上填空,就可以辅助生成yara规则,C&C提取,以及C&C跟踪程序等。构思很宏伟,路途很遥远。
白蚁
换新工作后,个人工具的开发进度明显下降了。
在牺牲了无数休息时间之后,终于修复了几个重大BUG,将白蚁发布出来了,目前该工具可以在 白蚁 获得,欢迎各位白帽子大牛在基于内网的“后渗透测试”时试用。
在新版本的工具实现过程中,我个人又学到了非常多的技术细节,虽然工具还是一身BUG,不过就我个人而言,还是非常有技术成就感的。
白蚁技术概览
关于“跨平台的技术”实现,就不再啰嗦了,在原公司的技术大会上做过技术分享。其实,那份PPT已经被传的满大街都是了。感兴趣又没见过的小伙伴去网上搜吧。
其余的技术概述,将在下方以文字的方式慢慢介绍,感兴趣的朋友可以详细阅读:
- 资源锁:由于工具中有一部分网络服务器的属性,所以实现中需要对“异步socket通讯/异步多线程/线程间资源共享”等属性进行融合。这就涉及到“资源竞争访问”的问题,如果多个线程同时写一个位置的资源,就会造成数据不同步,或数据错误的问题。这时就需要实现资源锁了。工具早期的做法是用代码实现了一个假的资源锁,这种锁能够解决大多数的问题,但当访问的并发数量激增时,还是会导致程序出现异常并终止。近期在阅读gcc相关资料时,发现gcc内置了一套原子操作方法,可用于实现资源锁,目前正在测试其稳定性,以及跨平台的特性,如果问题不大,会在工具中统一使用。
- 远程多平台管控是如何做到的:当代码对多平台进行统一接口抽象后,同样的代码在所有平台产生的效果就是相同的,此后,只要定义好通讯协议,就自然可对多平台间进行远程管控。
- 如何做到节点间网络控制:在“蚯蚓”实现过程中,我就发现了“反向新隧道建立”的妙用,将该种方式进行一次“正反向隧道统一抽象”后,就可以实现“隧道转接及透传”。为了做到能够对任意跳板节点进行管理,我还参考了路由器对“IP数据报文”的路由处理方式,在被控节点中实现了一个“私有路由”协议。进而实现了管控数据在节点间转发这一效果。
“白蚁”相对“蚯蚓”新增加的核心技术大概也就这些了,相信思考过相关问题的小伙伴一定能读懂,没思考过的小伙伴估计理解起来会很吃力。然而,我也只能说到这个程度,时间是有限的,我还有更多更有意义的事要去做。
版本规划情况
当前版本,由于架构遗留问题还存在一些无法修复的BUG,而目标架构和下一版本的需求极为吻合,所以这些BUG要留在下一版本进行实现。下面简单说一下规划情况:
第一版:蚯蚓
第二版:白蚁
第三版:未定名:主要解决通讯层面的问题,节点间可基于UDP/TCP等多种协议(ICMP协议的可行性正在测试中)进行数据转发,用于越过不同种类的防火墙。
第四版:未定名:主要解决二次开发的问题,在管理节点端提供多种语言的API接口,供二次开发使用,以方便第三方工具的支持。
第五版:未定名:添加插件支持,将管理节点转型成一个跳板机管理平台,通过完善插件,实现更多的跳板机控制及管理功能。
第N版:未定名:这是一个终极YY的版本,可能永远只能停留在幻想中,我希望它未来能够是一个“APT渗透测试平台”,集合“自动化主机探测”,“自动化渗透测试”,“自动化组网传播”,“自动化变种隐身”,“通讯协议自适应”等众多优秀功能,总的来说是希望它是一个能融合众多前沿技术的大平台,能够做到“精尖/精简/惊见”。
好了,牛逼吹完了,该继续苦逼的生活了。晚安。