专栏首页徐耀的专栏CIA泄露资料分析(黑客工具&技术)—Windows篇
原创

CIA泄露资料分析(黑客工具&技术)—Windows篇

背景

近期,维基解密曝光了一系列据称来自美国中央情报局(CIA)网络攻击活动的秘密文件,代号为“Vault 7”,被泄露文件的第一部分名为“Year Zero”,共有8761个文件,包含7818个网页和943份附件。

一、情报简介

Year Zero暴露了CIA全球窃听计划的方向和规模,还包括一个庞大的黑客工具库,该库包含的代码量过亿,赶超大型软件开发公司。这些黑客工具既有CIA自行开发的软件,也有据称是得到英国MI5(军情五处)协助开发的间谍程序,其中包括恶意软件、病毒、特洛伊木马、武器化的‘0day漏洞’、恶意软件远程控制系统及其相关文件等。网络攻击入侵活动对象包括微软、安卓、苹果iOS、OS X和Linux等操作系统和三星智能电视,甚至还包括车载智能系统和路由器等网络节点单元和智能设备。

本文重点剖析Windows平台下的攻击行为。

二、Windows平台下黑客技术与工具分析

Windows平台下的攻击技术与工具主要分为8种,分别为数据搜集、数据销毁、服务劫持、权限升级、内存隐藏、对抗分析、取证搜查以及其他杂项,架构如下:

(请右键另存上图,放大查看。)

它们借鉴当前比较流行的木马样本,旨在提供可以快速组合各种功能的解决方案,致力于开发简单且有效的攻击组合。

1.数据搜集(Data Collection Component)

a) Internet Explorer Password(浏览器密码)

通过直接读取用户注册表项下的关键值,获取IE密码相关信息。

b) 基于MicroSoft DirectX接口的键盘记录

通过调用包含DirectInput接口的dxd9.dll,用于获取键盘状态。

c) 基于MicroSoft API接口的键盘记录

通过SetWindowsHookEx函数注册一个关于WH_KEYBOARD&WH_KEYBOARD_LL的回调,并使用函数GetRawInputData、GetKeyboardState、GetAsynckeyboardState,获取用户输入的键盘指纹。

d) 摄像头监控

采用COM接口下DirectShow 和VFW(video for Windows)组件,获取设备数据流信息。

2.数据销毁(Data Destruction Component)

a) 木马采用来自一家叫Eldos的公司的正规适用程式签名驱动,产品名称为RawDisk,该产品的签名驱动允许激活分区的磁盘可写,使磁盘文件在锁定状态下也可以被删除,从而造成一定的恶劣影响。

3. 服务劫持(Persistent Component)

a) Image File Execution Optio(映像劫持),通过建立或者改写注册表键位Image File Execution Options有关执行文件的键值,从而导致程序在执行时发生异常行为。

b) OCI.DLL Service Persistence(OCI.dll服务),通过替换系统同名dll,使得系统在启动时加载恶意dll,并启动OCI网络服务,得到系统权限,但此服务停留于NetWork Service权限,可以访问网络资源。

c) Windows FAXdll注入,系统启动后,explorer主动加载此系统目录fxsst.dll,同名替换并使用LoadLibrary增加引用计数后,可以防止有效卸载,并以此可以过掉UAC。

d) TLS表,修改Windows PE文件,添加TLS表,在回调表中加载其他DLL代码,可以有效实施其他恶意行为。

4. 权限升级(Privilege Escalation Component)

a) Elevated COM Object UAC ByPass,采用COM对象接口获取高权限的Explorer进程,编写DLL代码,实现创建com对象接口执行文件删除操作,并注入到所有explorer进程中,判断删除操作是否成功,由此判定当前进程是否为高权限。

b) Sticky Key Process Launch(劫持粘连键),使用映像劫持的方法,替换启动粘连键的热键程序。

c) Sysprep UAC,基于白名单的方式,复制恶意DLL至sysprep目录中,并启动sysprep程序,加载恶意DLL获得高权限。

d) Windows File Protection ByPass Using SFC,使用SFC组件过掉Windows文件保护机制,通用系统目录下的sfc_oc.dll的函数接口暂时禁用文件保护系统,允许直接替换系统文件,从而实施恶意操作。

5.内存隐藏(Stealth Component)

a) Remote DLL Injection via Reflection(DLL反射注入),通过DLL反射机制,将特制的DLL插入到远程线程中,并使其自行加载,实施恶意行为。

b) Process Hollowing Implementation(进程替换),以挂起线程的方式启动程序,并在线程恢复前替换可执行文件的内容空间。

c) Process Injection Using SetWindowsLong,使用此函数的回调函数创建远程线程,实现DLL注入。

d) Dll Memory Loading With Exception Support,内存加载DLL,加载一个DLL到当前进程中,并将新DLL加入反转函数表以支持SHE异常处理,并在此过程中实现恶意行为。

e) Code Injection using ZwContinue, 挂钩进程中的此函数,在线程获得执行权限前实现DLL注入。

f) DLL Hide(DLL隐藏),复制DLL数据,减少计数引用,释放DLL的内存空间,重新申请原地址空间并复制DLL数据至此,从而实现DLL隐藏。

6.对抗分析(PSP/Debugger/RE Avoidance Component)

a) Anti-Sanboxing,对抗沙盒检测,等待用户鼠标点击事件的发生

b) APIObfuscation Using Hash,使用函数名称加密字符串静态解密函数地址,匹配每一个导出函数名称。

c) Disable System Tray Popups,禁用系统托盘的重绘消息,用于阻止其他程序弹出的提示。

7.调查分析(Survey Component)

a) NetBIOS MAC Enumeration,找到每一个适配器的MAC地址。

b) File/Registry Change Notification,监控文件与注册表的修改。

8.其他杂项(Miscellaneous)

a) Blind File Handle Enumeration,文件句柄的暴力枚举,测试每一个可能的文件句柄值,判断是否为Windows 文件句柄,并标示其是否为有效映射且进程可以被注入。

三、安全建议

随着CIA数据的逐步泄露,越来越多的黑客工具和技术将被坏人利用,各种新型木马病毒将会逐步面世,IT安全建议大家:

1. 不要从小网站下载软件

小网站是黑客传播恶意软件的最大渠道,各种破解软件、注册机都是木马病毒的温床,一旦下载运行就会导致机器感染木马病毒, 最终导致数据泄露。

为防止公司和个人的敏感数据泄露,请到正规网站下载软件!

2. 不要打开来历不明的外网邮件(Internet mail)

钓鱼邮件是坏人入侵内网的常用途径,IT安全团队一直奋斗在对抗恶意邮件的第一线,每日屏蔽来自外网的恶意邮件10w+封,恶意邮件拦截率达到99.9%+。

为防止漏拦截恶意邮件进入内网,造成PC感染木马病毒,请大家不要打开来历不明的邮件,如无法确认邮件安全性,请联系8000协助。

3. 不要访问安全性不明的网站

网站挂马是黑客常用的伎俩,黑客入侵安全防护措施不足的网站系统,将各类下载链接替换为木马病毒,当用户访问网站时,会误把木马病毒下载到本地并运行。

为了保护公司和个人的信息安全,请勿访问安全性不明的网站,当出现“IT安全提醒:此网站禁止访问”或“电脑管家提醒:此网站存在风险”,请及时终止访问!

参考资料

https://wikileaks.org/ciav7p1/cms/page_2621753.html#

相关推荐

一篇文章带你看懂Cloudflare信息泄露事件

MySQL成勒索新目标,数据服务基线安全问题迫在眉睫

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • springCloud - 第9篇 - 同步配置文件(消息总线方式)

    一、 微服务系统中有多个服务应用,也会有多个配置文件。此时也可用 springcloud bus 来实现对配置文件的管理。

    微风-- 轻许--
  • 帅到跳闸的livegrep实时检索代码工具

    有时候需要在linux kernel里面查找一些ID或者查询回调函数在哪里实现的,这个时候各种插件工具(cscope,甚至source insight...

    jeff xie
  • 分布式配置

    分布式配置:配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git以及Subversion。 在生产环境,由于配置繁多,造成...

    dalaoyang
  • aop 两种代理方式初探

    小小明童鞋
  • 简单的Apache NiFi操作仪表板(第2部分):Spring Boot

    要访问要在我们的仪表板中显示的数据,我们将使用一些Spring Boot 2.06 Java 8微服务在Hadoop 3.1上调用HDP 3.0中的Apache...

    用户3382876
  • Hystrix-dashboard 豪猪

    用户5927264
  • 获取指定句柄的类型号.

    在windows系统下.句柄是很常用的. 骚操作的方法可以通过句柄拷贝方式拷贝到另一个进程让其占用句柄.比如独占文件. 但是有时候比如驱动想删除文件.强删文件的...

    IBinary
  • 让我们让SpringBoot应用程序更快启动

    使用SpringInitializr创建了一个只有Reactive Web的项目。然后,我写了一个WebMVC风格的小控制器。

    lyb-geek
  • IDEA springboot 创建多模块项目,打包

    源码:https://gitee.com/DencyCheng/springboot-multiModule/tree/dev

    DencyCheng
  • Spring Boot 1.5.x

    1)‘spring-boot-starter-data-jpa’和‘mysql-connector-java’用于连接mysql数据库

    愤怒的小鸟

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动