【Day 07】- 恶搞行程(Process)、键盘(Keyboard)大作战之序章

Agenda

  • 资安宣言
  • 系列与规划
  • 下期预告

资安宣言


撰写本系列文章目的在於提升资讯安全之实务能力,
并透过实作体悟到资讯安全领域的重要性,
本系列所有文章之内容皆有一定技术水平,
不得从事非法行为、恶意攻击等非法活动,
「一切不合法规之行为皆受法律所约束」,
为了避免造成公司、厂商或玩家之间困扰,
所有实作不会拿已上市产品、Online Game 等等来作范例学习,
且部分具有深度、价值之内容,将会提升一定阅读门槛(不对该技术做分析、解说),
请勿透过本系列文章所学,从事任何非法活动,请不要以身试法!!!


那就开始今天的主题罗~

今天没有主题 XD
/images/emoticon/emoticon30.gif

原本想讲讲恶搞键盘(Keyboard)的相关技术,
但是後来发现内容好像和【Day 14】几乎是一样的。

我又想了想,要不要乾脆讲个恶搞 Process 的技术?
但这又和【Day 09 - Day 12】所要讲的内容重叠。

最终决定还是把这篇当作一个新的系列主题开始的「序」好了,
之後每一个系列章节结束,都会写一篇类似这样的文章,
然後讲讲一整个系列下来所写到的内容,做个简单的复习与检讨。

系列与规划

在 Day 02 我们讲了 File System Mini Filter 技术,
透过向 Filter Manager 注册 I/O Callback Routine,
过滤特定 IRP,来达到隐藏目录、档案的效果,过滤的 IRP 分别为:

  1. IRP_MJ_DIRECTORY_CONTROL
    • 过滤目录、档案资讯
  2. IRP_MJ_CREATE
    • 过滤开档、读档资讯

还没看的可以去看一下唷:
【Day 02】- 消失在系统上的目录与文件

在 Day 03 我们讲了常见的 DLL Injection 技术,
是介绍使用 Blackbone 的其中一个注入技术:
LdrLoadDll + ZwCreateThreadEx
这个 Project 还有实作了两种厉害的注入技巧,
分别是 LdrLoadDll + APC 与 Manual map,
有兴趣的要记得看一下,因为这两种技巧也是满重要的技术。

还没看的可以去看一下唷:
【Day 03】- 打针!打针!从 R0 注入的那件事!

在 Day 04 我们讲了基於 PEB 断链隐藏 Module 的技术,
从 Process 的 EProcess 中拿到 PEB Address,
再从 PEB Address 列举三张表,找出要隐藏的 Module,这三张表分别是:

  1. InLoadOrderModuleList
    • 按照「载入」顺序排列
  2. InMemoryOrderModuleList
    • 按照「记忆体」顺序排列
  3. InInitializationOrderModuleList
    • 按照「初始化」顺序排列

只要找到要隐藏的 Module 位置,
再将它的上一个位置与下一个位置连起来,就能断开要隐藏的 Module,
使 User mode 部分普通的 API 列举不到我们的 DLL。

还没看的可以去看一下唷:
【Day 04】- 今天来把 Module 藏起来
(基於 PEB 断链,隐藏 DLL 的方法)

在 Day 05 我们讲了一种对抗 PEB 断链的技术,
这种技术称之为「特徵查询法」,
是透过在记忆体中暴力搜寻 PE Header 的方式,
从而找出隐藏在 Memory 中的 Module,
另外还有讲述 Blackbone 的其中一个隐藏技术,
这项技术就是删除 Module 的 PE Header ,
这能避免我们的 Module 被透过 PE 特徵找出来。

还没看的可以去看一下唷:
【Day 05 】- 藏起来的 Module 还是被发现了QuO
(基於暴力搜寻 PE Header 的方法与解法)

在 Day 06 我们讲了另一种隐藏 Module 的高级技术,
这项技术我称它为「树根断链法」,VADRoot 断链,
讲解了什麽是 VAD,讲解了如何透过 VAD 列举出 Module,
以及几个从 VAD 二元树中隐藏 Module 的方法,
最终击败 Process Explorer,成功隐藏 Module。

还没看的可以去看一下唷:
【Day 06 】- Module 隐藏大法,不可能再被发现了吧 / _ \
(基於 VAD 断链的隐藏方法)

以上都是有关 「Module 隐藏」 的攻与防。

现在开始简单介绍一下,接下来几天要讲到的主题系列内容:

在 Day 08 将会讲述如何透过修改 EProcess 来「伪装」成某个 Process。
标题如下:
【Day 08】- 见鬼了(っ °Д °;)っ我明明没有启动这支程序...

在 Day 09 将会讲述一般 Rookit 是如何能够隐藏 Process 的手法。
标题如下:
【Day 09】- 今日来创造 R3 的 Ghost Process

在 Day 10 将会讲述如何找出在 Day 09 中隐藏起来的 Rookit。
【Day 10】- 藏起来的 Process 真的看不见摸不着?

在 Day 11 将会讲述第二种隐藏 Process 的技术,让 Day 10 所讲的技术化作不可能,
再也不可能透过 Day 10 所讲之技术找到我们所隐藏的 Process。
标题如下:
【Day 11】- 再次创造 Ghost Process,这次找不到了吧哈哈

在 Day 12 将会讲述如何能找出隐藏在 Memory 中所有的 Process,
标题如下:
【Day 12】- 找出 R3 看不见也摸不着的 Process,终极办法!

到了 Day 13 将会开始进入有趣的 Driver 实作时间,
【Day 13】- 有了这个,就没有打得开的程序了XD
【Day 14】- 今天来实作一个键盘监听器
【Day 15】- 今天来实作一个系统时钟加速器

预计在 Day 15 後,会来讲讲近期几个有趣、重大的 CVE,
详情会在 Day 15 公布,敬请期待!

那这篇文章到这边结束拉~~

大家若有觉得哪里写得不好,都留个言讨论一下吧 XD
那我们下期见 o( ̄▽ ̄)ブ

下期预告


<<:  【PHP Telegram Bot】Day13 - 基础(2):数学运算与乱数

>>:  浅谈注册Google戈 Play Developer

Day29:PVE 更多未提及的技术

前言 来到倒数最後一天,我们来谈谈其他有关 PVE 的其他技术或可搭配的工具。 更多虚拟化的技术 S...

Day 3 - 基本资料型态、输入、基本运算式

大家好,我是长风青云。今天是铁人赛第三天,也是中秋连假第一天。 youtube影片在上字幕的部分,後...

一次搞懂 ISA、CISC 与 RISC

1945 年 6 月 30 日,Von Neumann 与他的工作夥伴因为曼哈顿工程中使用到了大量的...

予焦啦!目录、快速上手与前言

目录 第零章:基本开发工具 0.0 目录、快速上手与前言 0.1 准备工具链 0.2 产出可执行档 ...

第一次当社群讲者

本文分享我第一次投稿社群研讨会担任讲者的故事。 进入正题 如前几天提到的,我在 2019 年就参加过...