欢迎访问Sunbet官网(www.sunbet.us),Allbet欧博官网(www.ALLbetgame.us)!

首页Sunbet_安全防护正文

你不知道的要挟佃猎技能:Windows API 与 Sysmon 事宜的映照_申博最新官网

b9e08c31ae1faa592019-11-1270二进制安全

申博最新官网

在这个光芒四射的申博最新官网平台,种类繁多的游戏满足你的一切需求,贴心的服务人员设身处地地为你考虑,极致愉悦的游戏体验是实实在在的。AG亚游集团夜以继日地为构建令客户满意的娱乐平台而拼搏。
, 就像我们晓得的那样,有一些事变我们是晓得的。有一些事变我们晓得我们晓得,也有些我们不晓得我们晓得。也就是说我们晓得有些事变我们不晓得,然则也有些事变是我们不晓得我们不晓得。” ——唐纳德 · 拉姆斯菲尔德 简介 从防备的角度来看,我们应用于平安的最风险的事变之一就是假定。 假定是形成不肯定性的盲点。 经由历程在检测历程当中罗列和消弭尽量多的假定,我们限定了进击面和仇人可以回避我们检测勤奋的地区。 虽然总会有盲点,然则晓得盲点总比不晓得盲点好。 假如我们意想到我们的盲点,我们就可以在我们的检测勤奋中更有预备和更有效力。 题目: 我们怎样限定盲点和假定的数目? 答: 发明进击面并明白环境中的进击向量。 有了如许的熟悉,我们就可以发明进击是怎样损坏和回避防备或侦察的。 映照数据泉源 只有当指定环境中的数据源(历程看管、文件看管等)映照到歹意运动时,鲁棒的检测才最先。 这细致意味着什么? 场景: 作为防备者,你愿望看管环境中的历程竖立,以肯定敌手什么时候可以试图生成新历程。 处理方案: 你最先纪录ID为 4688 的 Windows 事宜——已竖立了一个新历程(假如你的环境中有 Sysmon 电话) Sysmon 事宜 ID 为 1——Process Creation。 作为一个防备者,你已竖立了相干性,经由历程纪录这些事宜,你将可以看管历程竖立事宜。 经由历程竖立这些关联和映照,防备顺序将更好地明白它们的数据怎样映照到检测历程当中的歹意运动和行动。 事宜数据与歹意运动关联 注重: 为了相识更多,我勉励你检察由罗伯特·罗德里格斯竖立的ATT&CK数据模型表。 到目前为止,我们已成功地将数据源 / 事宜数据映照到歹意行动; 但是,作为防备者,我们依然存在关于日记事情的盲点和假定。 虽然我们准确地转发了准确的事宜 ID,然则我们不晓得这些事宜是怎样最先生成的。 当挪用 Windows API 时,什么会致使 Sysmon 纪录特定的数据源呢? 一样,主要的是要明白这些事宜是怎样发生的,由于它展现了怎样绕过我们的防备才能。 Windows API 映照到 Sysmon 事宜 ID 为了给这个主题带来更多的亮点,我最先应用 WinDbg 和 IDA Pro 对 Sysmon 驱动顺序和效劳可实行顺序举行“逆向工程师”。 我之所以在这里说“逆向工程师” ,是由于没有马特·格雷伯的协助,我不可以做到这一点。 我无论怎样都要谢谢他的协助和勤奋。立即完成这个项目也不会让我成为逆向工程的专业人士; 我另有很多东西要学,而且我照样这个妙技的初学者。 这个项目的映照以下: 映照流 上面显现了松懈的事宜注册机制映照。 我决议将其添加到研讨中,以便更好地相识敌手可以怎样改动 Sysmon 日记事情。 我不会细致引见这是怎样完成的,然则可以经由历程改动 ETW 供应顺序、卸载 Sysmon 驱动顺序、变动设置以及直接改动内核回调来完成。 假如你对怎样做到这些事变感兴趣,我发起你看看这些写得异常好的博客: · 推翻 Sysmon——作者马特·格雷伯及李·克里斯滕森 · 躲避 Sysmon DNS 监控——作者亚当 · Shhmon——卸载驱动顺序让 Sysmon 缄默沉静——作者马特·汉德 这个项目的目的: 将 Windows API 映照到事宜注册机制,然后是 Sysmon 事宜,以协助明白进击面、进击向量,以及敌方怎样绕过这个日记事情。 这个项目可以在 GitHub 上找到: Windows-API-To-Sysmon-Events。

你不知道的要挟佃猎技能:Windows API 与 Sysmon 事宜的映照_申博最新官网  二进制安全 第1张

API 映照表 注重: 我不是竖立这些相干性和映照的唯一研讨人员。 罗伯特·罗德里格斯已竖立了一个名为 API-To-Event 的项目。 他也在做这项研讨,并在 DerbyCon 做了一个演讲: 运用敌手仿真提拔检测工程才能。 经由历程这些项目,防备者可以更好地明白我们面临的进击面、进击向量和行动数据。 一旦我们明白了进击手艺的行动,我们就可以将 API 与我们希冀在数据中看到的事宜相干联。 下文概述了为恰当竖立这一映照而采用的步骤: · 在 IDA Pro 中的 Imports 中定位注册机制(回调例程、注册回调、过滤器寄存器等)。经由历程研讨与特定数据源相干的函数挪用来定位注册机制。 比方,假定我们想要映照出与历程竖立事宜相干的 API 挪用,我会经由历程 Sysmon 驱动顺序逻辑来查找被挪用的函数:

事宜注册机制的导入视图ー PsSetCreateProcessNotifyRoutine · 研讨这些机制,以更好地明白它们,并得出一个逻辑结论,它们将与Sysmon内部的哪些事宜相干。

 你不知道的要挟佃猎技能:Windows API 与 Sysmon 事宜的映照_申博最新官网  二进制安全 第2张

微软官方文档中关于PsSetCreateProcessNotifyRoutine 申明 · 经由历程将 WinDbg 内核调试器附加到所选的主机来测试逻辑。 在机制之前的回调函数上设置一个断点:

你不知道的要挟佃猎技能:Windows API 与 Sysmon 事宜的映照_申博最新官网  二进制安全 第3张

PsSetCreateProcessNotifyRoutine 前面的函数,我们须要搜检这个函数 中断掉凸起显现的函数。 这个函数将实行 PsSetCreateProcessNotifyRoutine · 一旦调试器中断,就可以猎取当前历程的历程对象地点:   猎取历程对象地点 注重: 这里要纪录历程 CID (也就是 CLIENT_ID) ,由于鄙人面的几个步骤中它会变得很轻易。 · 猎取显现的地点并切换到历程高低文。 从新加载标记以便调试器显现用户形式标记以及内核形式标记:

切换到历程高低文并从新加载用户形式标记 · 检察当地 Win32 API 挪用的客栈回调:

搜检客栈回调 上面有很多信息。 怎样挑选 Windows API 挪用呢? 可以挑选任何来自以下 API 库之一的挪用: · nt · ntdll · KERNELBASE
Apple Mail明文保存加密邮件 苹果公司IT专家Bob Gendler今年早些时间发现macOS上的Apple Mail app以明文的形式将加密邮件保存在snippets.db数据库中,目前还没有被修复。Gendler早在今年7月就将该问题告诉了公司,截至目前苹果公司还没有官方发布漏洞修复的时间轴,但据The Verge的消息,补丁即将修复。 APPLE MAIL + SIRI = BAD 该漏洞的来源是因为Siri的一个允许苹果语音助手提供联系人信息的功能。Gendler说,Siri使用了一个名为suggestd的进程来为不同的app提供通讯录信息。不管进程发现了什么都会保存在snippets.db
· KERNEL32 我会研讨并肯定 API 挪用与触发的事宜的相干性。 · 运用 Sysmon 中的历程竖立事宜的 ParentProcessID 关联历程高低文中的CID:

CID Sysmon 中的历程竖立事宜的 ParentProcessID 相干联 CID 是十六进制花样,将其转换为十进制为3536,这个ParentProcessID就是竖立历程的历程ID也就是父历程ID。 注: 每一个注册机制都有自身的应战,这改变了上述逆向历程。 一些机制经由历程反汇编 Sysmon 效劳可实行文件而不是驱动顺序来处理,另有一些机制经由历程动态调试发明,比方: ObRegistersCallback。 不错的研讨结果,我怎样才有效地运用呢? 我已在之前的博客中展现了这项事情的要领和研讨,博文题目是: 检测历程重镜像行动。 然则,如今让我们经由历程对反射 DLL 注入的疾速检测再次将这项研讨付诸实践。 检测工程 历程注入是在后破绽应用运动中运用的一种异常罕见的进击手艺。 关于这篇博文,我将运用一个被称为反射 DLL 注入的历程注入迭代手艺。 请记着,这并不能诠释一切版本的“历程注入”进击。 有很多差别的变体——比方,历程空洞化、 DLL 注入等等。 下面我将引见研讨的检测工程流程、数据行动相干性,以及运用 Apache Spark 和 Jupyter notebook 举行的数据剖析。 须要注重的是,这是从 魔多 项目中的 Empire-Psinject 数据集合猎取的。 让我们最先数据工程吧 反射 DLL 注入许可进击者从内存和磁盘加载 DLL。 进击者可以罗列体系上正在运转的历程,然后经由历程向目的历程的地点空间注入一个 DLL 来实行恣意代码。 经由历程如许做,进击者可以在他们挑选的任何目的历程的高低文中运转他们的代码。 该进击流程以下: 1. 进击者选定一个历程作为注入的目的。 2. 进击者挪用OpenProcess猎取目的历程的句柄。 3. 进击者挪用VirtualAllocEx在长途历程中有一个地点空间来写入反射DLL。 4. 进击者挪用WriteProcessMemory将反射DLL从上面的地点空间写到分派的内存中。 5. 进击者挪用CreateRemoteThreadEx,指向VirtualAllocEx指定的地区最先实行反射DLL。 基于这类行动,有两个与两个 Sysmon 事宜相干的 API 可用于进击检测: · ID 为 8的Sysmon 事宜 ——检测 CreateRemoteThread。 此事宜将挪用事宜注册机制:PsSetCreateThreadNotifyRoutine,这是一个 Windows 内部的内核回调函数。 在 Sysmon 驱动顺序内部,CreateRemoteThreadEx API 是经由历程这个事宜注册机制竖立了 ID 为 8的事宜。

ID 8 的事宜映照历程 · ID 为 10 的 Sysmon 事宜—— 历程接见。这个事宜会挪用事宜注册机制:ObRegisterCallbacks,这也是一个 Windows 内部的内核回调函数。 在 Sysmon 驱动顺序内部,nt!NtOpenProcess API是经由历程这个事宜注册机制竖立了 ID 为10的事宜。

你不知道的要挟佃猎技能:Windows API 与 Sysmon 事宜的映照_申博最新官网  二进制安全 第4张

 ID 10 的事宜映照历程 虽然有2个 API 与 Sysmon 事宜 ID 相干联,然则在这个手艺行动中实际运用了4个 Window API 挪用。 为了更好地明白这类歹意运动的行动,最幸亏运用这些 API 时,制订出进击者接见历程句柄所需的最小特权。 为了制订出敌手接见历程句柄所需的最小特权,我翻阅了微软内部的每一个 API 文档,并制订了接见历程句柄所需的特权。 须要的特权以下: PROCESS_CREATE_THREAD (0x0002) PROCESS_QUERY_INFORMATION (0x0400) PROCESS_QUERY_LIMITED_INFORMATION (0x1000) ——假如某个句柄具有 PROCESS_QUERY_INFORMATION 则会自动分派该权限 PROCESS_VM_OPERATION (0x0008) PROCESS_VM_WRITE (0x0020) PROCESS_VM_READ (0x0010) 在添加了这些特权以后,接见历程句柄所需的最小权限是: (0x1440)。 数据剖析 下面我将引见两种经由历程Jupyter Notebook 查询这些数据的要领。 第一种要领是在 HELK 客栈中转换数据以后。 这个查询来自 Elasticsearch:  
ReflectiveDLL_ProcessInjection = spark.sql(
'''
SELECT 
    b.process_path,
    b.process_target_name,
    b.process_target_id,
    b.thread_new_id,
    a.process_id,
    a.process_granted_access
FROM sysmon_events b
INNER JOIN(
SELECT event_id, process_granted_access, process_guid, process_id
FROM sysmon_events 
WHERE event_id = 10
AND (process_granted_access & 5184) == 5184 -- 5184 is decimal for 0x1440. The minimal privileges you need to access process handle
) a
ON a.process_guid = b.process_guid
WHERE b.event_id = 8
'''
).show(1,False)

你不知道的要挟佃猎技能:Windows API 与 Sysmon 事宜的映照_申博最新官网  二进制安全 第5张

上述查询的输出 注重: 上面你可以看到函数: (process_granted_access & 5184) == 5184。 5184是0x1440的十进制版本。 如许做是为了提取具有 process_granted_access数据属性的历程句柄所需的最小特权的任何事宜。 process_granted_access数据属性示意 Sysmon 事宜 ID 10中的 GrantedAccess,该 ID 为 10 的事宜具有授与历程的权限值。 有两个差别的 notebook 可供运用: Reflective_DLL_Injection(原始数据)和Reflective_DLL_Injection(原始数据)、Reflective_DLL_Injection(转换后的数据)。 个中一个notebook 将从数据集自身的原始数据中提取数据。 另一个将从 Elasticsearch 中的转换数据中提取数据。 我想同时供应这两种挑选,由于它可以协助任何想要用到它的人,假如他们情愿的话,他们可以更好地控制怎样运用 Apache Spark 和 Jupyter notebook。 结论 从上面的例子可以看出,发明我们的盲点和制订我们的数据源是何等有效。 跟着进击手艺的生长,我们必需与它一同提高,以便我们可以充足相识怎样检测这些歹意行动。 敌手仿真将继承进修更多,并运用更好的情报手艺。 为了做好预备,我们必需为数据建模并竖立数据关联,以便更好地明白数据行动。 一样,这个项目可以在 GitHub 上找到,迎接供应反应! 申谢 异常谢谢和赞赏以下个人对这个项目的协助和洞察力: · 马特 · 格雷伯(Matt Graeber  ——指导我完成逆向工程挪用,协助我完成多个函数挪用,并考证很多相似的回调函数。 · 布莱恩 · 赖茨(Brian Reitz  ——协助我明白函数挪用和历程间通讯。 · 贾里德 · 阿特金森(Jared Atkinson  ——协助我明白函数挪用和历程间通讯。 同时协助完成上面查询中的十进制转换和最小可行接见权限。 参考资料 · 微软文档和种种函数挪用以及 API · 推翻 Sysmon ——作者马特 · 格雷伯 及李 · 克里斯滕森 · 躲避 Sysmon DNS 监控 ——作者亚当 · Shhmon——经由历程卸载驱动顺序让 Sysmon 闭嘴 ——作者马特 · 汉德 · Psinject 魔多数据集 · OSSEM Sysmon ·  反射 DLL 注入手艺 · Research 罗伯特·罗德里格斯的 API 研讨 · 毛里西奥 · 维拉兹科的 API 研讨 · 德怀特 · 霍恩斯坦 及李 · 克里斯滕森 整顿的历程注入学问 本文翻译自:https://posts.specterops.io/uncovering-the-unknowns-a47c93bb6971

网友评论