自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Returns' Station

I've taken a shit load of drugs~

  • 博客(88)
  • 资源 (2)
  • 收藏
  • 关注

原创 new blog

http://retme.net/

2014-02-18 00:39:30 1380

转载 复习:cell 隐藏注册表

注册表隐藏的步骤如下:1。 打开指定名字的注册表键,获取其hkey. 例如:// 打开指定名字的KeyHANDLE OpenKeyByName(PCWSTR pwcsKeyName){       NTSTATUS status;       UNICODE_STRING uKeyName;       OBJECT_ATTRIBUTES oa;

2013-09-10 10:37:03 2095

原创 复习:windows对象管理(1)内核对象组织结构

好久没来了!最近在整理以前的一些笔记,也希望把以前学过但没记下来的东西补全,于是这是新一轮复习的第一篇。一、一些概念xp下内核对象的布局结构如下(由低到高):object quota infoobject handle infoobject name infoobject creater infoOBJECT_HEADERobject对象在内核中以哈希树

2013-07-25 21:56:35 1753

原创 也调了下老洞CVE ‐2012‐0158

没怎么调过洞,看雪随便搜了一下cve,发现这个比较多几篇结果都在大篇幅的讲怎么定位溢出点,有那么复杂么……栈上下一个内存写入的条件断点就断下来了吧,不过分析过漏洞之后,只知道代码逻辑的bug。。。但是至于doc的文件结构哪部分的问题,什么问题,如何构造这个poc,就又是需要花很多功夫了触发一次poc,发现poc最后会弹出计算器并且退出,于是 bp ExitProcess

2012-09-18 17:34:34 2102

原创 读wrk系列 关于IRP(1)

NtReadFile为例, 1.      建立irpPIRPIopAllocateIrpPrivate( IN CCHAR StackSize, IN BOOLEAN ChargeQuota)//如果大小小于IopLargeIrpStackLocations,那么从prcb->PPLookasideList[number].P;这个快查表里面拿一个,如

2012-09-06 21:40:54 2493 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 1186

原创 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 6772

翻译 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 3804

翻译 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 2230

原创 patchguard v3

纯理论的看完了三篇PG的文章,还没看代码,还没入手调试.第三代是vista的版本win7 sp1的PG肯定跟uniformed的文章不一样了。回头再研究了。反正到win7的时候貌似已经没有人写一大堆文档在内核里对抗pg了,直接给nt打patch了= =对于x64也是刚接触没几天,资料也不是很系统,还需要进一步学习。原文见http://uninformed.org

2012-07-26 02:46:45 4765

原创 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 3257

原创 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 2688

原创 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 3115

原创 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 3654

原创 前两天玩了一下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 1426 1

原创 windows内核访问控制机制

主要看了下面两部分:    1.进程对系统进行特权操作需要有一个权限(Privilege),所以进程有特权集表示进程拥有的权限,内核会在执行这些权限时检查进程是否有权执行此操作。     2.进程对于每个内核对象的操作权限不同,内核对象有一个访问控制列表(ACL)来标示某个用户启动的进程有如何的访问权。进程对对象执行操作时,会检查相应的权限是否符合。一、SID:用来表示系统

2012-06-27 23:50:29 3228

原创 接触一点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 1734

原创 关于ark取得进程的镜像文件路径

最近看到一个trojan把自己拷到回收站里隐藏,然后发现我两万年前写的ark取得的进程路径还是原路径。。。突然想起来很久以前看到某群的讨论 拿破伦19:22:03话说,一个运行中的文件,然后移动他到其他目录~~拿破伦19:22:33有些检测他的路径会变成新的目录KKindOf 19:23:05丫的,这是面试题吧

2012-06-07 00:53:27 1206

原创 旧闻:windows关于产品类型注册表写入的防止机制

随便看看,这部分微软抹去了符号。 产品类型的注册表在SystemControl->ProductSuite->ProductOptions1.系统初始化时已经读取了这个值,详见ROS。CmControlVector是一系列要在系统初始化前期从hive中读取来的值,其中就有 {       L"ProductOptions"

2012-06-07 00:52:00 867

原创 mark一下逆向c++写的dll的套路

c++写的几M的dll看着很dt,如果还是com写的。。如果还有一大堆加解密的东西= = 静态           主要的类 this一定要用IDA建一个结构,this第一项是虚函数表指针,也要建立一个结构,结构上最好标上虚函数表的相对偏移,比如命名为struct ClassXX_vtable_0xAABB 动态           一开始的时候下断

2012-06-07 00:35:49 748

原创 Win32k(5) 相关逆向~参考文献~

这是很久前读ROS的一点笔记,最近没空搞这个,发上来备份~百度越来越渣了,总说我 “文章内容包含不合适内容” 不让贴!———— PDF版本 115提取码 dpfi6iya第七部分 一些相关应用一、枚举消息钩子二、遍历gditable/usertable查询隐藏进程三、窗口保护四、Hook KeUsermodeCallback防止全局钩子注入

2012-06-06 23:21:41 1651

原创 Win32k(4) 视窗钩子

第五部分 视窗钩子一、ROS下的流程 Win2000版本有人分析过了http://bbs.pediy.com/showthread.php?t=135702 消息钩子是一种官方支持钩子回调,可以拦截某一个窗口或者全局的消息。消息本应直接发到对应窗口的wndproc,现在要先发送到我们设定的消息回调,由我们的hook函数进行参数的收取、截获、过滤~

2012-06-06 23:20:51 1088

原创 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 2222

原创 Win32k(2) 报文驱动的通信机制

一.应用层的apiint APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine,intnCmdShow){ WNDCLASSEXwcex; wcex.lpfnWndProc

2012-06-06 23:19:31 1346

原创 Win32k(1) 图形线程的初始化

很久以前看ROS的笔记,跟windows不一样的地方不少,最近没时间看这块了= = 先贴上来备份第一部分 图形线程的初始化综述一下—— 图形通信对象(user object)以线程为单位。这个线程是图形线程,调用表就是ssdt shadow,包含了图形系统调用,三环由user32提供,0环由win32k支持。 线程包含窗口,桌面,普通窗口

2012-06-06 23:16:19 1197

原创 inline Hook IdePortStartIo+80 的奇怪驱动

原理类似机器狗,代码写的挺新鲜loadder.exe行为         NtSetSysteminformation加载驱动 c:\\cloud76.dll          驱动cloud76.dll        行为         摘掉IopFsNotifyChangeQueueHead队列

2012-06-06 23:15:06 1508

原创 枚举劳务线程

ExWorkerQueue是全局数组一共三类typedef enum _WORK_QUEUE_TYPE {CriticalWorkQueue,DelayedWorkQueue,HyperCriticalWorkQueue,MaximumWorkQueue} WORK_QUEUE_TYPE;kd> dt _KQUEUE

2012-06-06 23:12:50 2219

原创 说说白利用

现在过hips或者scan越来越难了~很多白利用什么的 先说说没品木马们的常见手段(以下示例国内靠谱安全软件早已防范): 1.      一些未公开的启动位置——ms的启动注册表还是很多的~ 放出来样本一分析很快就会被杀了~ 能找到这种东西的孩纸还是看系统源码还是很细心的 例:RenamePendingFile这个启动点大家都知道,但其实还可以有Re

2012-06-06 23:10:44 1748

原创 [再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 1434

原创 和谐有爱的一个鬼影版本

启动代码比hello_tt那个简洁,驱动也是无花无壳,比较有爱适合抄袭~~(hello_tt的看雪上有源码~~) 驱动只支持atapi啊这样不好,还附赠一段插apc注入explorer什么的。。。 求教怎么在启动阶段快速抓出他的驱动啊。。我是用windbg在ZwCreateSection return false才抓出来的= = http://115

2012-06-06 23:07:08 905

原创 围观文件穿越操作

大概这么几个思路 1.      打开文件用IoCreateFile,其他比较好发irp的(比如删除操作)走FSD irp删除文件部分处理了删除正在运行的exe镜像部分,做法是方法是IAT Hook MmFlushImageSection但是这样对于独占文件依旧不能处理,只好等到关机回调的时候ZwClose一下在检验对于鬼影这种hook住微端口驱动的Star

2012-06-06 23:05:38 1210

原创 围观注册表穿越操作

看了国内部分几个内核注册表穿越的驱动,用来绕过市面上量最大的菜鸟rootkit们,因为只会勾SSDT就出来混的真的有很多啊…… 大概这么几个思路 1.      懒得处理,直接调用Zw***Key2.      Map一份kernel.exe到内存中,按照内核基址重定位,把Nt***Key的部分拷贝到内存中,自己调用无SSDT/Inline hook的注册表

2012-06-06 23:05:18 1079

原创 古老的隐藏rootkit思路,XT还没检测

天天看垃圾rootkit,看多了也成了臭皮匠= =循环 mov dr0,atapi!xxxxxxxhook KidebugR再学0 Access来个驱动感染这下没人管了(当然如果内存扫特征定位驱动文件+Winpe = = 介是高端用户啊。。。)自己写了一个试了一下,IO时有卡顿感是必须的老外几个月前就有一篇dr0的利用,用来内存欺骗的 。。。

2012-06-06 23:03:20 1083

原创 拦截LPC监控服务加载和启动

SSDT上hook NtSetSystemInformation NtLoadDriver,可以拦截应用层装载驱动的操作.如果怕不保险,还可以PsSetLoadImageNotifyRoutine或者hook NtCreateSection。但是常规通过服务API加载驱动时却不能找到加载驱动的源程序,PsGetCurrentProcess程序已经是services.exe了.

2012-06-06 23:01:30 4898

原创 温故:自映射机制

/*/x86非PAE的虚拟地址 4k为一页,12位作为最后的页内偏移 剩下20位前十位页目录索引,中间十位页表索引,一共会有4k的页目录和4M的页表,windows将页表安排在0xc0000000~0xc0400000,页目录安排在0xc0300000~0xc0400000 也就是说页目录项本身也会用作页表项 自映射机制的优点,是让PDE PTE能够根据他们自己的虚拟地址推导出所指

2012-06-06 22:53:44 1654 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 977

原创 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 1051

原创 围观网络之三 -- 浅探索NDIS5.1(2)

二、       各个组件的绑定1.       生成设备 当PNP管理器检测到有NIC的时候,会遍历所有注册的微端口驱动,通知他们要AddDevice ,从ndisRegisterMiniportDriver可以看到这个过程已经被NDIS托管 int __stdcall ndisAddDevice(int DriverObject, _UNICODE_ST

2012-06-06 22:47:10 1703

原创 围观网络之三 -- 浅探索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 2122

原创 搜狗浏览器网速保护 功能/漏洞/缺陷 分析

软件版本 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 1890

PELoader自加载PE文件(转载)

自加载PE文件 支持用户态和内核态(转载)

2010-02-28

phunter(含源代码)

俄罗斯的anti rootkit 有源代码

2008-05-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除