- 博客(88)
- 资源 (2)
- 收藏
- 关注
转载 复习:cell 隐藏注册表
注册表隐藏的步骤如下:1。 打开指定名字的注册表键,获取其hkey. 例如:// 打开指定名字的KeyHANDLE OpenKeyByName(PCWSTR pwcsKeyName){ NTSTATUS status; UNICODE_STRING uKeyName; OBJECT_ATTRIBUTES oa;
2013-09-10 10:37:03
2117
原创 复习:windows对象管理(1)内核对象组织结构
好久没来了!最近在整理以前的一些笔记,也希望把以前学过但没记下来的东西补全,于是这是新一轮复习的第一篇。一、一些概念xp下内核对象的布局结构如下(由低到高):object quota infoobject handle infoobject name infoobject creater infoOBJECT_HEADERobject对象在内核中以哈希树
2013-07-25 21:56:35
1779
原创 也调了下老洞CVE ‐2012‐0158
没怎么调过洞,看雪随便搜了一下cve,发现这个比较多几篇结果都在大篇幅的讲怎么定位溢出点,有那么复杂么……栈上下一个内存写入的条件断点就断下来了吧,不过分析过漏洞之后,只知道代码逻辑的bug。。。但是至于doc的文件结构哪部分的问题,什么问题,如何构造这个poc,就又是需要花很多功夫了触发一次poc,发现poc最后会弹出计算器并且退出,于是 bp ExitProcess
2012-09-18 17:34:34
2118
原创 读wrk系列 关于IRP(1)
NtReadFile为例, 1. 建立irpPIRPIopAllocateIrpPrivate( IN CCHAR StackSize, IN BOOLEAN ChargeQuota)//如果大小小于IopLargeIrpStackLocations,那么从prcb->PPLookasideList[number].P;这个快查表里面拿一个,如
2012-09-06 21:40:54
2531
1
原创 读wrk系列 Mark一下MDL
Mdl用于把一段用户区内存映射到系统地址上typedef struct _MDL { struct _MDL *Next; Irp->MdlAddress的链表 CSHORT Size; CSHORT MdlFlags; struct _EPROCESS *Process; 原内存所
2012-09-05 19:47:32
1201
原创 dump x64 seh
自己认识x64 seh结构时的小工具,可能有bug#define UNW_FLAG_NHANDLER 0x0#define UNW_FLAG_EHANDLER 0x1#define UNW_FLAG_UHANDLER 0x2#define UNW_FLAG_CHAININFO 0x4typedef enum _UNWIND_OP_CODES { UWOP_PUSH_NON
2012-08-03 11:56:32
6797
翻译 pg3 bypass源码阅读 —— 学习x64内核hook跳板技术
如之前描述的 pg3复杂了许多先来看看都要hook哪些点1、hook dpc和定时器分发器,防止seh路线触发pgKiTimerListExpire,KiRetireDpcList看一下hook点hook的就是call的位置。这里有两种方案:一种是直接jmp + 64bit addr,显然有同步问题,需要暂停所有c
2012-07-28 06:52:53
3846
翻译 PG2 BYPASS源码阅读 学习x64解密定时器、特征码定位
以前没有接触过x64内核编程,借这份代码来学习一下,源码 http://www.codeproject.com/Articles/28318/Bypassing-PatchGuard-3之前说到过PG3的一些机制,下面根据源码回顾一下PG可能会queue一些dpc来触发syscheck,其中dpc context传入的是非传统地址,从而触发异常,转到异常处理去执行PG。
2012-07-28 03:57:04
2274
原创 patchguard v3
纯理论的看完了三篇PG的文章,还没看代码,还没入手调试.第三代是vista的版本win7 sp1的PG肯定跟uniformed的文章不一样了。回头再研究了。反正到win7的时候貌似已经没有人写一大堆文档在内核里对抗pg了,直接给nt打patch了= =对于x64也是刚接触没几天,资料也不是很系统,还需要进一步学习。原文见http://uninformed.org
2012-07-26 02:46:45
4801
原创 patchGuard v2
算是对http://www.uninformed.org/?v=6&a=1&t=sumry 的一个中文摘要,理解还不一定全对PG2一些改动:cmp cs:KdDebuggerNotPresent, r12bjnz short continue_initialization_1infinite_loop_1:jmp short infinite_loop_1s
2012-07-25 01:19:02
3298
原创 x64 patchGuard v1
PG1使用了一系列加密手段,隐藏自己,核心手段是向三个正常的DPC传入非法DpcContext地址引发异常处理,在异常处理中执行patch扫描保护范围:nt,kidebugroutine,ssdt,gdt idt msr解决方法一:修改pe头部的UnwindData,以改变这三个DPC的异常处理handler 也就是X64的SEH hook。这三个dpc存在于一张表中,搜
2012-07-24 18:55:10
2727
原创 x64的seh
PatchGuard与异常处理密切相关,所以先看看x64的SEH关于x86中内核如何捕获异常,分发异常,可以看http://blog.csdn.net/shevacoming/article/details/7580350上面那篇没有跟进分析RtlDispatchException,这里跟进以复习x86 seh的结构,也看经典的这一篇 http://bbs.pediy.com/
2012-07-24 04:10:57
3161
原创 X64的调用约定
接触x64之后继续看PG的文章,今天开始读msdn上有关x64的解释 http://msdn.microsoft.com/zh-cn/library/7kcdt6fy调用约定简化了:一律使用__fastcall,前四个参数用 RCX、RDX、R8 和 R9传递,除了这四个外加RAX、R10、R11,其他寄存器都是非易失的。比如下面这段NtCreateFile的代码:
2012-07-23 16:40:33
3684
原创 前两天玩了一下mbr
还挺有意思……hook int 13 , hook BlOsLoader,call hook IoInitSystem - > load fake pcidump.sysdr0 hook AtapiDeviceInternalDispatch,隐藏驱动,伪造系统线程XT看不到什么东西,PowerTool可以检测到调试函数被钩,强力检测可以检测到mbr被感染。不想和PT去
2012-07-08 07:30:35
1440
1
原创 windows内核访问控制机制
主要看了下面两部分: 1.进程对系统进行特权操作需要有一个权限(Privilege),所以进程有特权集表示进程拥有的权限,内核会在执行这些权限时检查进程是否有权执行此操作。 2.进程对于每个内核对象的操作权限不同,内核对象有一个访问控制列表(ACL)来标示某个用户启动的进程有如何的访问权。进程对对象执行操作时,会检查相应的权限是否符合。一、SID:用来表示系统
2012-06-27 23:50:29
3246
原创 接触一点amd64
以前没接触过,看那篇patchGuard的文章之后翻了翻手册和wiki,整理的东西放上来概述一、寄存器通用寄存器扩展到64位,通用寄存器数目由原有8个扩展到16个• Sixteen 8-bit low-byte registers (A L,BL, CL, DL, SIL, DIL, BPL, SPL, R8B, R9B, R10B, R11B,R12B, R13B, R1
2012-06-22 21:25:10
1748
原创 关于ark取得进程的镜像文件路径
最近看到一个trojan把自己拷到回收站里隐藏,然后发现我两万年前写的ark取得的进程路径还是原路径。。。突然想起来很久以前看到某群的讨论 拿破伦19:22:03话说,一个运行中的文件,然后移动他到其他目录~~拿破伦19:22:33有些检测他的路径会变成新的目录KKindOf 19:23:05丫的,这是面试题吧
2012-06-07 00:53:27
1221
原创 旧闻:windows关于产品类型注册表写入的防止机制
随便看看,这部分微软抹去了符号。 产品类型的注册表在SystemControl->ProductSuite->ProductOptions1.系统初始化时已经读取了这个值,详见ROS。CmControlVector是一系列要在系统初始化前期从hive中读取来的值,其中就有 { L"ProductOptions"
2012-06-07 00:52:00
885
原创 mark一下逆向c++写的dll的套路
c++写的几M的dll看着很dt,如果还是com写的。。如果还有一大堆加解密的东西= = 静态 主要的类 this一定要用IDA建一个结构,this第一项是虚函数表指针,也要建立一个结构,结构上最好标上虚函数表的相对偏移,比如命名为struct ClassXX_vtable_0xAABB 动态 一开始的时候下断
2012-06-07 00:35:49
766
原创 Win32k(5) 相关逆向~参考文献~
这是很久前读ROS的一点笔记,最近没空搞这个,发上来备份~百度越来越渣了,总说我 “文章内容包含不合适内容” 不让贴!———— PDF版本 115提取码 dpfi6iya第七部分 一些相关应用一、枚举消息钩子二、遍历gditable/usertable查询隐藏进程三、窗口保护四、Hook KeUsermodeCallback防止全局钩子注入
2012-06-06 23:21:41
1690
原创 Win32k(4) 视窗钩子
第五部分 视窗钩子一、ROS下的流程 Win2000版本有人分析过了http://bbs.pediy.com/showthread.php?t=135702 消息钩子是一种官方支持钩子回调,可以拦截某一个窗口或者全局的消息。消息本应直接发到对应窗口的wndproc,现在要先发送到我们设定的消息回调,由我们的hook函数进行参数的收取、截获、过滤~
2012-06-06 23:20:51
1114
原创 Win32k(3) R0 to R3,键盘鼠标输入
第三部分 R0 to R3 这部分有教主非常精彩和实用的分析,我就不瞎说了。http://bbs.pediy.com/showthread.php?t=104918 r3 to r0 是常规系统调用倒过来中断或者sysenter的东西:http://hi.baidu.com/andriy_aolala/blog/item/0ce3ebbf13
2012-06-06 23:20:04
2248
原创 Win32k(2) 报文驱动的通信机制
一.应用层的apiint APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine,intnCmdShow){ WNDCLASSEXwcex; wcex.lpfnWndProc
2012-06-06 23:19:31
1390
原创 Win32k(1) 图形线程的初始化
很久以前看ROS的笔记,跟windows不一样的地方不少,最近没时间看这块了= = 先贴上来备份第一部分 图形线程的初始化综述一下—— 图形通信对象(user object)以线程为单位。这个线程是图形线程,调用表就是ssdt shadow,包含了图形系统调用,三环由user32提供,0环由win32k支持。 线程包含窗口,桌面,普通窗口
2012-06-06 23:16:19
1218
原创 inline Hook IdePortStartIo+80 的奇怪驱动
原理类似机器狗,代码写的挺新鲜loadder.exe行为 NtSetSysteminformation加载驱动 c:\\cloud76.dll 驱动cloud76.dll 行为 摘掉IopFsNotifyChangeQueueHead队列
2012-06-06 23:15:06
1527
原创 枚举劳务线程
ExWorkerQueue是全局数组一共三类typedef enum _WORK_QUEUE_TYPE {CriticalWorkQueue,DelayedWorkQueue,HyperCriticalWorkQueue,MaximumWorkQueue} WORK_QUEUE_TYPE;kd> dt _KQUEUE
2012-06-06 23:12:50
2256
原创 说说白利用
现在过hips或者scan越来越难了~很多白利用什么的 先说说没品木马们的常见手段(以下示例国内靠谱安全软件早已防范): 1. 一些未公开的启动位置——ms的启动注册表还是很多的~ 放出来样本一分析很快就会被杀了~ 能找到这种东西的孩纸还是看系统源码还是很细心的 例:RenamePendingFile这个启动点大家都知道,但其实还可以有Re
2012-06-06 23:10:44
1806
原创 [再mark] 系统注册的dpc,枚举定时器相关的……
续 http://hi.baidu.com/andriy_aolala/blog/item/7cff8a344b67d0a3d1a2d3d1.html刚没事儿又看了下~mark而已啊~ 1. ExpTimerDpcRoutine R3程序调用NtCreateTimer 创建句柄对应Etimer,etimer包含一个ktimer结构,最
2012-06-06 23:08:17
1456
原创 和谐有爱的一个鬼影版本
启动代码比hello_tt那个简洁,驱动也是无花无壳,比较有爱适合抄袭~~(hello_tt的看雪上有源码~~) 驱动只支持atapi啊这样不好,还附赠一段插apc注入explorer什么的。。。 求教怎么在启动阶段快速抓出他的驱动啊。。我是用windbg在ZwCreateSection return false才抓出来的= = http://115
2012-06-06 23:07:08
925
原创 围观文件穿越操作
大概这么几个思路 1. 打开文件用IoCreateFile,其他比较好发irp的(比如删除操作)走FSD irp删除文件部分处理了删除正在运行的exe镜像部分,做法是方法是IAT Hook MmFlushImageSection但是这样对于独占文件依旧不能处理,只好等到关机回调的时候ZwClose一下在检验对于鬼影这种hook住微端口驱动的Star
2012-06-06 23:05:38
1224
原创 围观注册表穿越操作
看了国内部分几个内核注册表穿越的驱动,用来绕过市面上量最大的菜鸟rootkit们,因为只会勾SSDT就出来混的真的有很多啊…… 大概这么几个思路 1. 懒得处理,直接调用Zw***Key2. Map一份kernel.exe到内存中,按照内核基址重定位,把Nt***Key的部分拷贝到内存中,自己调用无SSDT/Inline hook的注册表
2012-06-06 23:05:18
1094
原创 古老的隐藏rootkit思路,XT还没检测
天天看垃圾rootkit,看多了也成了臭皮匠= =循环 mov dr0,atapi!xxxxxxxhook KidebugR再学0 Access来个驱动感染这下没人管了(当然如果内存扫特征定位驱动文件+Winpe = = 介是高端用户啊。。。)自己写了一个试了一下,IO时有卡顿感是必须的老外几个月前就有一篇dr0的利用,用来内存欺骗的 。。。
2012-06-06 23:03:20
1099
原创 拦截LPC监控服务加载和启动
SSDT上hook NtSetSystemInformation NtLoadDriver,可以拦截应用层装载驱动的操作.如果怕不保险,还可以PsSetLoadImageNotifyRoutine或者hook NtCreateSection。但是常规通过服务API加载驱动时却不能找到加载驱动的源程序,PsGetCurrentProcess程序已经是services.exe了.
2012-06-06 23:01:30
5179
原创 温故:自映射机制
/*/x86非PAE的虚拟地址 4k为一页,12位作为最后的页内偏移 剩下20位前十位页目录索引,中间十位页表索引,一共会有4k的页目录和4M的页表,windows将页表安排在0xc0000000~0xc0400000,页目录安排在0xc0300000~0xc0400000 也就是说页目录项本身也会用作页表项 自映射机制的优点,是让PDE PTE能够根据他们自己的虚拟地址推导出所指
2012-06-06 22:53:44
1674
1
原创 随笔记,找到r3定时器的pid tid....
一些定时器的dpc函数在内核内部,切入点是NtCreateTimer,调试过程如下 dt _ktimer 8129e718nt!_KTIMER +0x000 Header : _DISPATCHER_HEADER +0x010 DueTime : _ULARGE_INTEGER 0x80000000`fd1b046a
2012-06-06 22:53:16
994
原创 dpc timer在win7中的改变....
_KiTimerTableList的符号被Ms抹去了,在我的win7 build 7600 pro中 偏移是0x12b6c0,_KiTimerTableSize的大小被缩减回0x100 entry也增加了一个锁nt!_KTIMER_TABLE_ENTRY +0x000 Lock : 0 +0x004 Entry
2012-06-06 22:52:29
1066
原创 围观网络之三 -- 浅探索NDIS5.1(2)
二、 各个组件的绑定1. 生成设备 当PNP管理器检测到有NIC的时候,会遍历所有注册的微端口驱动,通知他们要AddDevice ,从ndisRegisterMiniportDriver可以看到这个过程已经被NDIS托管 int __stdcall ndisAddDevice(int DriverObject, _UNICODE_ST
2012-06-06 22:47:10
1725
原创 围观网络之三 -- 浅探索NDIS5.1(1)
前言:本文讨论w2k&xp适用的ndis5.x 网络架构。NDIS4.0源码太老,ROS又YY了太多,所以这次的参考代码基本都是自己f5的…具体结构都有了,我f5的毫无压力=。=调试的时候利用IMD(中间层驱动)下断点,更无压力了...NDIS5.x网络的堆叠结构大概是: WINSOCK API → afd → 协议驱动TCPIP(其上层是TDI接
2012-06-06 22:43:44
2152
原创 搜狗浏览器网速保护 功能/漏洞/缺陷 分析
软件版本 2.2.0.1423驱动版本 1.0.0.9主要功能就是对耗流量的下载软件进行限速★.r0 挂钩TCPIP的handler 拦截发送包★.r0 hook NtMapViewOfSection 加载mswsock.dll时向r3中注入sogouipfilter.dll,将WSPStartup EAT hook至一段shellcode , 然后加载sogouipfil
2012-05-23 11:39:32
1914
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人