现金分享

当前位置:主页 > 现金分享 >

N种内核注入DLL的思路及实现 - 狂客

内核注入

,这项技术古旧,但去实务家。。如今RK的偏微商感情缺席迅速移动。,游玩是

SYS+DLL

,有些缺席发送。,全部环境都存相信唤回中。。或许某些人会说。:全部环境都在精髓。是什么办不到的?。是啊,设想内核可以做各种的可以在R3上使臻于完善的容易搬运,,软件开拓人员不用做适用。。偶尔,咱们真的必要R3顺序来驱动力黏土层,这是困苦的或不用要的。,列队行进 /  DLL是一人身攻击的罚款的的选择。,但下面所说的事迅速移动过于心比天高。,从此更多的先生感情关怀DLL。。

    开拓保障安全的软件、小型器,咱们可以从中画寓意。,Anti rootkit时期,在顶点环境下,您可以运用完整同样的的技术发明。、突然跌倒或落下RK,誓言用户数纸机的有规律的运用。。在此,我将讨论内核注入的几种思惟和实现预支的坐果准绳。。


(1) APC技术

    将APC拔出到AltbbALE的用户情状穿成串中,让它处死它的外壳编码。,处死咱们的编码。。该办法简略可能的。,但不敷不变。,相容性差。坐果使知晓,T调和涌现拔出等减少气象。,缺席血洗。,拔出偶尔被阻挡。,无法学到预支事业。。(指我到底运用过的驱动力顺序):

反向编辑经过源编码

)


(2) 内核Patch  [url=file://KnownDLLs/]\KnownDLLs\URL CreateThread

    [url=file://KnownDLLs/]

\KnownDLLs

URL是男朋友管理人,当最新的磁盘DLL整枝法到内存时,当其余的列队行进意指或意味呼叫DLL时,,摈除从磁盘反复整枝法。,从这边映照到本人的列队行进附件。。这给了咱们一人身攻击的罚款的机遇去做大局修补。:

        ZwOpenSection翻开 [url=file://KnownDlls/]

\KnownDlls\

URL,大声喊ZWMAPVIEWFFIEW将一人身攻击的正本映照到您本人的列队行进附件。,和在内存的编码段中找到豁开。,选择这边作为咱们的假职务的记忆缓冲剂。。修正CREATTHOST职务的前5个八位字节,悄悄溜走到下面所说的事豁开。,当体系中间的任何一个穿成串被使成为时,将切换到CREATTHOST职务。,和在豁开中处死ShellCode。,它主持叫LoadLibrary装载咱们的DLL。。DLL一次整枝法,IOCTL将流通的驾驭员的。,让驱动器卸车钩。这就使臻于完善了内核注入DLL的迅速移动。。在试验的中发明

下面所说的事迅速移动大声喊CytType职务去频繁。,因而触发电器会很快。,可以在不到一秒钟的时期内整枝法DLL。,咱们的吊钩也被抛售了。。例如进步了不变性。。示意图列举如下:



(3) 内核 HOOK ZwMapViewOfSection

    整枝法时会大声喊某一模块。

ZwMapViewOfSection

,譬如列队行进使成为时映照N份DLL到本人的编造附件中去.咱们交换SSDT中间的下面所说的事职务,在整枝法过滤。

的环境,从参量存在它的根底,Inline 吃钩

CreateThread

职务,在下面所说的事列队行进的编造地址附件中悄悄溜走到缓冲剂。,使臻于完善了DLL的整枝法迅速移动。

铰链API


ZwAllocateVirtualMemory

---- 在列队行进附件中分派内存,安置Shellcode


ZwProtectVirtualMemory

---- 使现在时的内存块可读和可写。


IoAllocateMdl

---- 使成为MDL

铰链编码列举如下



    与办法2相形,规律证实。但时期特色。,事实上完整同样的的事业。,它只会延缓DLL的注入。。涉及Shellcode的编纂,相似的两者都。小圆萝卜和尤指纸币有本人的爱。,首要静止人身攻击的的精心制作的。。设想汇编SeleCal码毛病,请到史诺能力去查材料。,大多数人模板,这边责任YY。。


景象雪与景象月——竞争ShellCode使安定
[注]一人身攻击的简略的Shellcode
Shellcode的小深思熟虑的
Add_Section

(4)

内核 HOOK
NtCreateThread

    顺风的

迅速移动使成为迅速移动

,显然,有很多办法可以经过补丁实现预支的坐果DLL注入。。

    当列队行进完毕时,它是一人身攻击的

空水壶

,缺席疡肿的开水(飞翔)。,从此体系大声喊NtCeReTeType来使成为它的主穿成串(注水)。 –

生水

),损坏了很长一段时期后,我无趣了。,因而体系跳出了。,回到迅速移动附件,呼叫流通的,对它说:这是一人身攻击的新的迅速移动出生了。,你把它标在你的看守上。。和开端整枝法DLL。,把体系KnownDLLs中间的本人必要的DLL都Map一份到下面所说的事大水壶中。和KiThreadStartup把壶里的生水供热的了。,水就很开端了。

疡肿

了,此刻,主穿成串开端作业。。。。

    阻挡NtCreateThread,学到

现在时的穿成串背景

,使守恒它意指或意味回复原来信仰的人的地址(在空水壶里),为本人操纵地址,内幕充满ShellCode以整枝法目的DLL。。涉及拒绝者的选择,大多数人向某甲点头或摇头示意。这边是一人身攻击的简略的附加到现在时的的迅速移动。,在适当的的编造2GB列队行进地址附件中分派属于你本人的铺地板小内存,Enough ShellCode够了。。示意图列举如下:



(5) 经用的内核传染模块,让传染模块帮忙咱们。Load DLL

    下面所说的事办法短时间远。,最原始和最原始的传染曾经开端。,可以增添新的使人欢快的事物。,插层豁开,总的来说,让其余的模块整枝法到内存中,帮忙咱们整枝法DLL下的路途。,一旦整枝法DLL,它就可以回复传染。,突然跌倒或落下影响。关于传染密电码,网上一堆。如果它责任由传染驱动力顺序驱动力的(更多试用试验和),其余的的气质是两者都的。,小心本人戏剧。。


(6) 阻挡NtCreateUserProcessNtCreateSymbolicLinkObject

    前者要不是在Vista下运用。 截获后

PsLookupProcessThreadByCid

存在ETHREAD / EPROCESS,判别设想是

事业的,设想是,则在列队行进附件中分派内存。,大声喊

NtGetContextThread

获取现在时的穿成串背景,大声喊ZwWriteVirtualMemory充满Shellcode区域,学到

LdrUnloadDll

LdrGetDllHandle

等地址,经过它们整枝法DLL。和听筒

NtSetContextThread

复原原始背景。涉及下面所说的事办法,请参阅DRIVEREST上的某甲预告的BIN。。

[”

内核实现预支的坐果DLL注入。它可以完整导管KAV反病毒A

”]


(7) 内核阻挡NtResumeThread
(8)NtUserSetWindowsHookEx 注入

随手说一下,在R3上停止DLL注入。

1.

CreateRemoteThread

(或)

NtCreateThreadEx

(运用) in Vista)

  2.

SetThreadContext

(多种经营 the EIP)

  3.

NtQueueAPCThread

  4.

RtlCreateUserThread

  5.

SetWindowHookEx
小结:

    看整个迅速移动的开端迅速移动,有很多地方可供修补。,如果誓言迅速移动、穿成串背景缺席被拆除。,注射剂办法有很多种。。如果确保咱们的DLL注入时期十足短。,不变性十足高。。当咱们无奈要从内核注入DLL到用户列队行进去时,下面所说的事体系被深深地流毒了。,此刻,运用下面提到的技术整枝法DLL。,让DLL使臻于完善咱们不克不及驾驭的作业。,这是可以获得的。。

    下面提到的向某甲点头或摇头示意是我事先所想起和实现预支的坐果的。,挑剔的的顺序可以在编码中主教权限。。欢送尽量的积极探索,胜过、更不变。

不凶恶

的办法。

咨询热线:  Copyright © 2016-2017 bwin - bwin官网 - bwin娱乐 版权所有