首页
社区
课程
招聘
[原创]利用IAT hook实现windows通用密码后门
发表于: 2008-5-24 19:54 29706

[原创]利用IAT hook实现windows通用密码后门

2008-5-24 19:54
29706

利用IAT hook实现windows通用密码后门

windows有通用密码吗?
去问比尔大叔吧。

先不管是不是真的有,我们可以自己实现一个这样的后门。

先简单介绍一下windows登陆过程中的一些过程。
winlogon进程用gina.dll获取用户名和密码,通过LPC传给lsass进程。
然后lsass进程调用默认认证包msv1_0.dll来验证密码的对错。
而msv1_0则从SAM中获得用户的信息,包括密码的哈希。

要实现这样一个后门,首先要找到登陆验证这一系列函数的最底层的一个,然后在那里做手脚。
很明显,这个最底层的函数在lsass进程的msv1_0.dll模块中。

lsass调用msv1_0.dll的是这个函数:

msv1_0!LsaApLogonUserEx2
dbgsrv.exe -t tcp:port=1234,password=spat
windbg.exe -premote tcp:server=192.168.1.102,port=1234,password=spat
SIZE_T 
  RtlCompareMemory(
    IN CONST VOID  *Source1,
    IN CONST VOID  *Source2,
    IN SIZE_T  Length
    );

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 7
支持
分享
最新回复 (41)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
虽然看不懂,还是顶一个
2008-5-24 20:07
0
雪    币: 451
活跃值: (78)
能力值: ( LV12,RANK:470 )
在线值:
发帖
回帖
粉丝
3
帮你上传上来保存.

学习windbg了..感谢
上传的附件:
2008-5-25 10:02
0
雪    币: 207
活跃值: (12)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
Oh year,可以传附件了

这是文中提到的那个python脚本,需要wxpython支持。

还有,默认的passdoor.dll中的密码是123456,可以用pdconfig改。
上传的附件:
2008-5-25 10:44
0
雪    币: 581
活跃值: (149)
能力值: ( LV12,RANK:600 )
在线值:
发帖
回帖
粉丝
5
一个字..........帅得不得了
2008-5-25 10:52
0
雪    币: 242
活跃值: (14)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
~~~~很帅
2008-5-25 12:08
0
雪    币: 370
活跃值: (15)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
7
关机重启后门就消失了吧?
还要加工一下做成真正的一次安装永久后门
2008-5-25 12:34
0
雪    币: 207
活跃值: (12)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
你说的这个我之前写过一个替换msv1_0.dll文件的。
google一下fakemsv1_0就能找到。
fakemsv1_0 v2.1是硬编码的,把指令塞在PE的空隙中,所以只能支持少数几个系统(xp,2003)。
http://clyfish.googlepages.com/fakemsv1_0.rar
http://clyfish.googlepages.com/fakemsv1_0.exe
fakemsv1_0 v2.2给msv1_0.dl加了个新节,而且用匹配的方法找关键跳转,应该能支持很多系统。
http://clyfish.googlepages.com/fakemsv1_0_v2.2.exe
2.2代码太乱,等我整理成2.3才敢放出来。

其实让passdoor.dll开机自启动是一样的。

2008-5-25 13:08
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
看来高手如云呀,可怜我55555555555
2008-5-25 13:11
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
学习一下
很不错啊
2008-5-25 13:23
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
看不懂,,,郁闷,,
2008-5-25 13:45
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
不知道还有什么其他的方法使得程序在登陆之前运行啊
谢谢。。
2008-5-25 15:41
0
雪    币: 268
活跃值: (95)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
13
冒似是5个字~~~~~~~~~~~~~
2008-5-25 15:44
0
雪    币: 485
活跃值: (12)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
14
一点一点啃。。
2008-5-25 16:09
0
雪    币: 243
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
15
3     0 [  0] msv1_0!LsaApLogonUserEx2
   19     0 [  1]   msv1_0!_SEH_prolog eax = c7fc7c
  315    19 [  0] msv1_0!LsaApLogonUserEx2
  269     0 [  1]   ntdll!RtlRunDecodeUnicodeString eax = dd09a
  320   288 [  0] msv1_0!LsaApLogonUserEx2
   42     0 [  1]   ntdll!RtlCopyUnicodeString eax = d
  326   330 [  0] msv1_0!LsaApLogonUserEx2
   43     0 [  1]   ntdll!RtlCopyUnicodeString eax = f
  334   373 [  0] msv1_0!LsaApLogonUserEx2
   11     0 [  1]   LSASRV!LsapAllocateLsaHeap eax = f4260
  363   384 [  0] msv1_0!LsaApLogonUserEx2
   31     0 [  1]   ntdll!RtlEraseUnicodeString eax = 0
  374   415 [  0] msv1_0!LsaApLogonUserEx2
   27     0 [  1]   msv1_0!NlpPutOwfsInPrimaryCredential
   50     0 [  2]     ntdll!RtlUpcaseUnicodeStringToOemString eax = 0
   34    50 [  1]   msv1_0!NlpPutOwfsInPrimaryCredential
    1     0 [  2]     msv1_0!SystemFunction006
  232     0 [  2]     ADVAPI32!SystemFunction006 eax = 0
....
这里的第二列代表什么意思?在windbg_help中未说明,一直想不通
2008-5-25 17:48
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
学习一下
很不错啊
2008-5-26 10:58
0
雪    币: 224
活跃值: (10)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
17
恩呀,学习了!!!
2008-5-26 11:18
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
学习了。。。。
2008-5-26 11:30
0
雪    币: 2871
活跃值: (2340)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
不懂。慢慢学习……
2008-5-26 12:36
0
雪    币: 147
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
我倒是有一个地方不太清楚,本地登陆和远程登陆,验证的过程是否一样?如果一样你这个程序就应该可以用,如果不一样,那就只能本地通用密码了.
2008-5-26 12:41
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
21
远程登录才是问题,本地可以物理访问,直接外连1394也能通过登录认证了~
2008-5-26 13:47
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
学习这种研究精神
2008-5-27 11:16
0
雪    币: 102
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
uty
23
远程登陆也可以用, 走的路线差不多
2008-5-28 10:34
0
雪    币: 381
活跃值: (140)
能力值: ( LV13,RANK:330 )
在线值:
发帖
回帖
粉丝
24
收藏学习,以前有人问过我类似的问题,当时给问住
2008-5-28 20:10
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
tkb
25
这个不错,我回去要试试~~
2008-5-29 20:03
0
游客
登录 | 注册 方可回帖
返回
//