a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 50|回复: 0

[微机知识] 可以记录windows登陆密码的东东

[复制链接]
发表于 2012-7-31 21:17:33 | 显示全部楼层 |阅读模式
  windows的身份验证一般最终都是在lsass进程,默认模块是msv1_0.dll,而关键在其导出函数LsaApLogonUserEx2,& {# I3 k- ?; B# ^) L9 k
  本程序通过注入代码到lsass进程hook LsaApLogonUserEx2,截取密码。只要有身份验证的过程,* r/ ?5 x7 A5 y. ?' Z/ L& [! M
  LsaApLogonUserEx2就会触发,如ipc$,runsa,3389远程桌面登陆等。# i# A7 j" f) G% x- n
  程序对不同系统做了处理,在2000,2003,xp,vista上都可以截取,
9 i. o: w8 P: h2 y1 i7 T  在2000,2003,xp中,通过UNICODE_STRING.Length 的高8位取xor key,如果密码是编码过的,则通过ntdll.RtlRunDecodeUnicodeString解码,6 k5 @( A/ _( C8 D/ Y
  vista则通过AdvApi32.CredIsProtectedW判断密码是否编码过,解码用AdvApi32.CredUnprotectW。4 W6 j6 b2 d0 h3 Z  ^
  可以自己调试器挂lsass跑一下:)
1 _- {# G3 b1 O; @6 l  ========接口:
- N. O1 D+ q3 U' G$ ~  e# A  HRESULT WINAPI DllInstall( BOOL bInstall, LPCWSTR pszCmdLine);" E6 A) r$ f  ]: Z4 {% R6 y
  这是本dll导出的一个函数原型,请不要被名字蛊惑了,这个程序是绿色的。2 [# @2 B& p6 M5 a; w+ @
  这个函数内部并没有做任何自启动安装的动作,没有修改注册表或系统文件。只是想选一个符合regsvr32调用的接口而已。2 h) d5 f, V* N. K. s5 x0 c
  第一个参数本程序没用到,: c& k( n. Q: L3 z
  第二个参数请指定一个文件路径(注意是UNICODE的),记录到的数据将保存到这里(是Ansi的)。
3 _: d# j; q/ F8 h/ p; c  文件路径可以像这样 C:\x.log,3 m' R  Q" P5 ]3 B4 O
  也可以像\\.\pipe\your_pipename, \\.\mailslot\yourslot,
1 N9 i# p; e. R; J- @3 A3 Z  所以你可以自己写loader来调用这个dll,让dll截取到密码时通过pipe或mailslot将数据发给你的程序。数据就是一个字符串(是Ansi的)& @# F7 j! l, w$ V
  ========测试:
& p$ s- M5 z; w- [  你可以不急着写自己的loader来调用,用regsvr32作为loader来测试一下:(你可能需要关闭某些主动防御)3 S$ W* l8 q# ~& |3 L* J
  regsvr32 /n /i:c:\xxx.log c:\pluginWinPswLogger.dll
7 c$ P/ }. V) |; w. ?  正常的话regsvr32弹出一个提示成功。
' R8 \* Z) `. n$ Y& T8 u1 Y9 v8 H  这时候你可以切换用户或锁定计算机,然后重新登陆进去,这个过程密码信息就被拦截下来了并保存到c:\xxx.log。5 @' A5 Q2 ?# i- G4 u5 R6 B
  =========End
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-18 23:09 , Processed in 0.197241 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表