前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >某疑似针对中东地区的APT攻击事件分析

某疑似针对中东地区的APT攻击事件分析

作者头像
FB客服
发布于 2019-03-08 07:15:15
发布于 2019-03-08 07:15:15
91900
代码可运行
举报
文章被收录于专栏:FreeBufFreeBuf
运行总次数:0
代码可运行

前言

在疑似APT攻击事件的跟踪过程中,遇到过很多难题。多数情况是,这次,它不是你的显在对手,我们不会获得足够多的线索,却偏偏想要满足好奇的欲望,经典的人生三问,用来描述你的对方再恰当不过。我在《阿善师的告白》中听到一句话:凡走过必留下痕迹。这里,我将整理一起疑似APT攻击的事件的探讨,期待真相一步步浮出水面。

北京时间2018年12月12日,我们看到野外出现一份名为的样本使用了最新披露的Adobe Flash Player漏洞:CVE-2018-15982,该漏洞影响Flash Player 32.0.0.101之前的多个版本。由于披露时间不到一周,所有一手样本都值得引起警觉。

该样本文档显示的内容是一份海事卫星设备(Inmarsat IsatPhone)清单。样本触发漏洞后,连接远程服务器获取下发指令。

静态分析

样本内容列举了多个模块、价格和数量信息。海事卫星电话常用于船舶与船舶之间、船舶与陆地之间的通信,包括语言通话、数据传输和文件传真。

样本内嵌Flash文件,Flash文件中以明文的形式嵌入恶意指令。

后门程序将自己设置持久化之后立即连接C2接收下一阶段指令执行。

整理样本中存在的潜在信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Path: C:\Users\User\AppData\Local\Temp\Excel8.0\ShockwaveFlashObjects.exdPath: C:\Program Files\Microsoft Office\Office16\EXCEL.EXEPath: c:\CVE-2018-15982_PoC.swfURL: http://190.2.145.149/putty2.exePE-Compiler-Stamp:Tue Dec 11 13:06:20 2018 (UTC+8)XLS-Saved: 12/10/2018 5:13 PM (UTC+8)

溯源追踪

1. 根据C2追溯

根据C2服务器IP地址190.2.145.149,小编并未关联到其它恶意样本。在获取到样本的第一时间,该IP地址上还存在另一个可执行文件:putty.exe(MD5:54CB91395CDAAD9D47882533C21FC0E9),归属远程登录工具。

根据whois信息显示,IP地址归属一家荷兰的ISP服务提供商。

该ISP服务提供商WorldStream公司主页显示其提供可靠的托管服务。

从IP的历史记录中,小编找到一条非常重要的线索。teamkelvinsecteam于2018年11月25日在RaidForums论坛于 「Leaks」、「Databases」板块公布了该IP存在允许列目录。该用户截图上传了详细的文件列表并备注文件包含:可疑的恶意软件、Email备份和pst文件等等。

IP在7月份搭建了Web集成环境,从9月开始存在压缩文件陆续上传,直至11月22日,文件汇总约逾百G。许多文件直指阿联酋国家石油公司(ENOC)的职员邮件备份。

在这份漏洞文档公开之后,RaidForums论坛的teamkelvinsecteam很快删除了< [Emails] Emirates National Oil Company>这篇帖子。在删除前,小编翻阅了所有评论,大致的留言有:需要联系方式、索取解压密码、期望获得邮件备份以及允许列目录已失效等等。

从缓存中小编截取了两份评论,包含teamkelvinsecteam留下自己的联系邮箱:vipsuscriptionkelvinsecurityv1@protonmail.com。

2. 根据代码特征追溯

从获得样本伊始,小编很快提取样本关键特征和历史样本进行比对。很遗憾的是,小编对历史样本进行比对,对新增样本进行监控,以及多次使用Intezer进行分析,均未能匹配到关联样本。ps.图中最下方,使用Intezer获得与唯一的关联样本,经过小编确认,是某位安全研究人员上传的的内存dump(MD5:24F7E3422B1DB69289D47F1025DB1598)。

小编对文档提取特征比对历史样本,匹配到十多个疑似样本,分析之后,没有得到有效证据和此次事件所属组织产生强关联。

他们是谁

由于小编在访问IP的时候,只能查看到XAMPP的初始配置页面。首先需要怀疑文件列表的真实性。此处小编并不打算对「Leaks」和「Databases」主题做过多探讨,但是从teamkelvinsecteam的行为记录来看,这些邮件备份文件是存在的。

1. 受害者信息

从公开信息确认其中一名疑似受害者Fardin Malahi的职务为阿联酋国家石油公司人力资源部主管。

2. 攻击者身份

老实说,到目前为止关于攻击者身份或者隶属组织小编并没有指向性的结论。我们看看安全社区的讨论:威胁情报分析师Drunk Binary认为是APT34(也称:OilRig)组织的钓鱼文档。但是根据之后的讨论,FireEye的研究人员Andrew认为暂不能定性。

根据德国Nextron Systems公司的APT检测产品THOR检测显示后门程序归属APT34、APT33组织。从它的规则编写时间来看,除非有内部未公开披露的详实证据命中目标,否者小编认为可以参考,暂不可信。

安全报告呢?在近期ClearSky公司发布的一份安全报告中,约存在2-3页对该事件的详尽描述。在报告中ClearSky认为存在迹象表明,Oilrig组织最有可能在9月或10月渗透进入ENOC网络并部署了横向移动工具。

在其公开报告中,整个关于这一事件的描述都被涂抹覆盖。

回到样本本身,关于该组织为什么要在深度渗透ENOC网络之后,还要重启如此重要的网络基础设施,利用最新的Flash漏洞疑似发起鱼叉攻击。是他们最想要的没有得手还是更换攻击目标?当然可以猜想的故事有很多。但是确定的是,本次利用钓鱼文档发起的攻击时段很短,无论PE编译时间还是文档最后保存时间是否可信,它们都是在最近几天得以准备,迅速发起攻击,然后迅速失效。

尾声

还有更多资料吗?在小编思考等待这些日子中似乎就这么多了。有的资料由于最开始没有备份下来以至在此漏掉许多。至于新的样本,近日野外出现一份和具有相同内容相同特征,但是仅仅利用漏洞弹出计算器的样本(MD5:954CA41B7367191180A44C7221BB462A),小编对样本分析之后决定不作过多参考,因为只需对 修改几个明文字符便能完成。

其实无论弹计算器的是谁,我们总会知道,在一个半月之后,原始样本并没有被忘记。根据对话和安全报告,大厂早已关注这次事件。

从内容显示的相关行业和泄漏文件直指目标,或多或少我们可以总结出攻击组织的兴趣点在于中东地区能源行业。其攻击手法似乎包含网络渗透和鱼叉钓鱼,具备反追查意识,使用新款木马后门,具有一定技术实力背景和多人员分工协作构成犯罪组织特征。

从公开历史网络攻击拓扑图看,中东地区事务牵涉众多。唯愿早日结束纷争。

IOCs

MD5

A51A86A773B7134C2D43BAFC2931E6A4 94715ED2A09A88BE026E8B2BA7C0F9B0 24F7E3422B1DB69289D47F1025DB1598 954CA41B7367191180A44C7221BB462A 28145CE332718337AF59ACA2469784A9 94296CCDD83161D7FB87645591B3D3AF

IP

190.2.145.149

附录

http://190.2.145.149/abdul.khaliq.rar http://190.2.145.149/ahmed.salem.rar http://190.2.145.149/ammary@enoc.com.pst http://190.2.145.149/anishkam@enoc.com.pst http://190.2.145.149/anvar.helal.rar http://190.2.145.149/anwar.hussain.rar http://190.2.145.149/badir@enoc.com.pst http://190.2.145.149/cstoradmin.rar http://190.2.145.149/deebu@enoc.com.pst.zip http://190.2.145.149/faiz.muhammad.rar http://190.2.145.149/fardin.malahi@enoc.com.pst http://190.2.145.149/fqahtani@enoc.com.zip http://190.2.145.149/frederik@enoc.com.pst.zip http://190.2.145.149/frits@enoc.com.pst.zip http://190.2.145.149/husamal@enoc.com.pst http://190.2.145.149/jeevananthan.rar http://190.2.145.149/mark.burling@eppcouae.com.rar http://190.2.145.149/marwan.mohd@enoc.com.pst http://190.2.145.149/matthew.ranson.rar http://190.2.145.149/sgaladari.pst http://190.2.145.149/sum.chee.rar http://190.2.145.149/T.rar http://190.2.145.149/taleb@enoc.com.pst

*本文作者:小河西村安全研究所,转载请注明来自FreeBuf.COM

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-02-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【leetcode刷题】T131-二叉搜索树的最近公共祖先
https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-search-tree/
木又AI帮
2019/08/02
4180
golang刷leetcode 二叉树(10)最近公共祖先
百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”
golangLeetcode
2022/08/02
2180
golang刷leetcode 二叉树(10)最近公共祖先
二叉搜索树的公共祖先问题!
题目链接:https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-search-tree/
代码随想录
2021/09/08
3550
二叉搜索树的公共祖先问题!
二叉搜索树的最近公共祖先
百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”
木子星兮
2020/07/17
4370
leetcode刷题(45)——35. 二叉搜索树的最近公共祖先
百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”
老马的编程之旅
2022/06/23
1590
leetcode刷题(45)——35. 二叉搜索树的最近公共祖先
图解LeetCode——剑指 Offer 68 - I. 二叉搜索树的最近公共祖先
根据题目描述,我们给我们两个节点TreeNode p和TreeNode q,然后在二叉搜索树中去寻找最近公共祖先。那么题目中给出了非常关键的一个信息就是——二叉搜索树,那么这种二叉树具有如下的特征:
爪哇缪斯
2023/05/10
1620
图解LeetCode——剑指 Offer 68 - I. 二叉搜索树的最近公共祖先
二叉树的最近公共祖先
百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”
初阶牛
2023/10/14
2230
二叉树的最近公共祖先
腾讯精选50题算法【二叉搜索树的最近公共祖先】
最近几周掺杂着需求、以及一些琐碎的事情,算法的学习一直都是默默的在搞,没有形成文章。
程序员小跃
2019/12/25
7360
​LeetCode刷题实战235:二叉搜索树的最近公共祖先
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !
程序员小猿
2021/04/15
2960
【剑指Offer】68.1 二叉搜索树的最近公共祖先
百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”
瑞新
2020/12/07
2660
【剑指Offer】68.1 二叉搜索树的最近公共祖先
二叉树的最近公共祖先
这道题目的看代码比较简单,而且好像也挺好理解的,但是如果把每一个细节理解到位,还是不容易的。
代码随想录
2021/09/08
2.6K0
二叉树的最近公共祖先
二叉树子节点的最近父节点
百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”
conanma
2021/06/08
1.9K0
【二叉树进阶】二叉树经典面试题——最近公共祖先问题
7和4呢,2 、5 、3是不是都是它们两个的公共祖先啊,但是题目要求找最近的公共祖先,所以是2。 再看一种情况
YIN_尹
2024/01/23
1430
【二叉树进阶】二叉树经典面试题——最近公共祖先问题
【一天一大 lee】二叉搜索树的最近公共祖先 (难度:简单) - Day2020092
百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”
前端小书童
2020/09/30
3280
【一天一大 lee】二叉搜索树的最近公共祖先 (难度:简单) - Day2020092
[第33期] 树,二叉树, 二叉搜索树
比如想想访问中间某个结点的时候,或者倒数第几个结点 就只能从头往后一个一个查, 效率不高。
皮小蛋
2020/02/29
5280
一文秒杀 5 道最近公共祖先问题
读完本文,可以去力扣解决如下题目: 236. 二叉树的最近公共祖先(中等) 1644. 二叉树的最近公共祖先 II(中等) 1650. 二叉树的最近公共祖先 III(中等) 1676. 二叉树的最近公共祖先 IV(中等) 235. 二叉搜索树的最近公共祖先(简单) 如果说笔试的时候经常遇到各种动归回溯的骚操作,那么面试会倾向于一些比较经典的问题,难度不算大,而且也比较实用。 本文就用 Git 引出一个经典的算法问题:最近公共祖先(Lowest Common Ancestor,简称 LCA)。 git pull 这个命令我们经常会用,它默认是使用 merge 方式将远端别人的修改拉到本地;如果带上参数 git pull -r,就会使用 rebase 的方式将远端修改拉到本地。 这二者最直观的区别就是:merge 方式合并的分支会看到很多「分叉」,而 rebase 方式合并的分支就是一条直线。但无论哪种方式,如果存在冲突,Git 都会检测出来并让你手动解决冲突。 那么问题来了,Git 是如何合并两条分支并检测冲突的呢? 以 rebase 命令为例,比如下图的情况,我站在 dev 分支执行 git rebase master,然后 dev 就会接到 master 分支之上:
labuladong
2022/03/31
1.8K1
一文秒杀 5 道最近公共祖先问题
2024-03-13:用go语言,给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 输入: root = [6,2,
2024-03-13:用go语言,给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。
福大大架构师每日一题
2024/03/18
1260
2024-03-13:用go语言,给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 输入: root = [6,2,
LeetCode 236:二叉树的最近公共祖先
输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 4 输出:5 解释:节点 5 和节点 4 的最近公共祖先是节点 5 。因为根据定义最近公共祖先节点可以为节点本身。
Wu_Candy
2022/07/04
3180
LeetCode 236:二叉树的最近公共祖先
【leetcode刷题】T132-二叉树的最近公共祖先
https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree/
木又AI帮
2019/08/06
3610
TypeScript算法题实战——二叉搜索树篇
推荐文章:《Spring AI中的卷积神经网络(CNN):深度解析与Java实现》
中杯可乐多加冰
2024/12/08
1180
推荐阅读
相关推荐
【leetcode刷题】T131-二叉搜索树的最近公共祖先
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验