摘要: 环境:XP内容:粗糙Const HIDDEN_WINDOW = 0strComputer = "."Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")Set objStartup = objWMIService.Get("Win32_ProcessStartup")Set objConfig = 阅读全文
posted @ 2012-08-09 21:08 kkindof 阅读(1066) 评论(0) 推荐(0) 编辑
摘要: XP~WIN7WIN7下,用undocumented 函数NtCreateThreadEx相当方便搞定XP下。只要绕过子系统通信校验即可,代码实现的话,绕下即可。关键是csrss.exe,还是使用CreateRemoteThread 阅读全文
posted @ 2012-07-24 13:52 kkindof 阅读(640) 评论(0) 推荐(0) 编辑
摘要: 环境:XP为了看和子系统联系有多重要,我在kernel32.dll中,IDA看了下引用,如下:可以看出,这个通信确实很重要。其中CreateRemoteThread()函数的调用也需要调用通知子系统创建了线程(截图未全显示),代码片段如下: // // Call the Windows server to let it know about the // process. // if ( !BaseRunningInServerProcess ) { a->ThreadHandle = Handle; ... 阅读全文
posted @ 2012-07-21 12:40 kkindof 阅读(1111) 评论(0) 推荐(0) 编辑
摘要: 环境:XP[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems]"Windows"=%SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,3072,512 Windows=On SubSystemType=Windows ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3 ServerDll= 阅读全文
posted @ 2012-07-21 11:56 kkindof 阅读(1876) 评论(0) 推荐(0) 编辑
摘要: 工程需要,用上了一个sfilter的过滤驱动。最后发现在添加搜索目录监控post过滤函数时,使用IE作为样本跑起来的时候,会卡住。windbg 后,发现挂在。kd> !process -1 7PROCESS 81c96860 SessionId: 0 Cid: 03f8 Peb: 7ffdc000 ParentCid: 068c DirBase: 07dc0300 ObjectTable: e1a24088 HandleCount: 497. Image: IEXPLORE.EXE VadRoot 8210e420 Vads 364 Clone 0 Priva... 阅读全文
posted @ 2012-07-16 10:19 kkindof 阅读(1346) 评论(0) 推荐(0) 编辑
摘要: 对于初识2中提出的问题,先来看下内核内存分布kd> dd MmSessionPoolSize l180c394b4 00400000kd> dd MiSessionPoolStart l180c394cc bc000000kd> dd MiSessionViewStart l180c394c0 bc400000现在还看下那个全局变量MmSessionSpacekd> dd mmsessionspace l180c394e8 bf7f0000kd> !address bf7f0000 bc400000 - 03400000 Usage KernelSpaceU... 阅读全文
posted @ 2012-07-01 12:49 kkindof 阅读(1808) 评论(0) 推荐(0) 编辑
摘要: 前置知识:同一个Session的进程的eprocess->session指向的值都是一样在1中,我们知道smss.exe创建新的session,然后启动新的csrss.exe和winlogon.exe。它的管理是这样的//先看一个宏定义#define SESSION_GLOBAL(_Session) (_Session->GlobalVirtualAddress)SessionGlobal = SESSION_GLOBAL (MmSessionSpace);在smss.exe创建新的session时,由内核函数MiSessionCreateInternal()实现的:NTSTATU 阅读全文
posted @ 2012-07-01 12:09 kkindof 阅读(1350) 评论(0) 推荐(0) 编辑
摘要: PS:下面测试环境均为win 2003正常启动后,smss.exe这个session管理组件会创建2个进程,csrss.exe(子系统)和winlogon.exe,这2个进程属于session 0但smss.exe却不属于任何一个session,这是怎么回事呢?一般我们启动程序后,会看见子进程和父进程属于同一个session跟踪后,发现原来smss.exe在启动上述2个进程之前(这个过程是发生在smss!smpLoaddataFromRegistry()函数中),为了说明方便,下面用伪代码演示smss!smpLoaddataFromRegistry(){}loadsubsystem(){1.会 阅读全文
posted @ 2012-07-01 00:58 kkindof 阅读(1910) 评论(0) 推荐(0) 编辑
摘要: SmLoadDeferedSubsystemApi 借用进程启动??parent handle hack? switch (SmApiMsg->ApiNumber) { case SmExecPgmApi : Status = (SmpApiDispatch[SmApiMsg->ApiNumber])( SmApiMsg, Clien... 阅读全文
posted @ 2012-06-30 15:56 kkindof 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 远程 _BaseRegOpenKey fuck本地了半天,最后竟然提示没权限。不过好像有小1字节的bug?PS:那1字节不是bug, rpc通信的server端解析的时候,当最后一个字符是NULL,所以就去掉了。弄好了,不过想不到被360日掉了。b2290aa8 8050117a nt!KiSwapContext+0x2eb2290ab4 804fa9be nt!KiSwapThread+0x46b2290adc b2c0fca8 nt!KeWaitForSingleObject+0x1c2WARNING: Stack unwind information not available. Fol 阅读全文
posted @ 2012-06-15 17:15 kkindof 阅读(545) 评论(0) 推荐(0) 编辑