windows的身份验证通常最后都是在lsass进程,默认模块是msv1_0.dll,而主要 在其导出函数LsaApLogonUserEx2,
本程序议决注入代码到lsass进程hook LsaApLogonUserEx2,截取密码。只要有身份验证的流程,
LsaApLogonUserEx2就会触发,如ipc$,runsa,3389远程桌面登陆等。
程序对不一样系统做了处理,在2000,2003,xp ,Vista 上都能够截取,
在2000,2003,xp 中,议决 UNICODE_STRING.Length 的高8位取xor key,假如密码是编码过的,则议决 ntdll.RtlRunDecodeUnicodeString解码,
Vista 则议决 AdvApi32.CredIsProtectedW判断密码能无法 编码过,解码用AdvApi32.CredUnprotectW。
能够自身调试器挂lsass跑一下:)
========接口:
HRESULT WINAPI DllInstall( BOOL bInstall, LPCWSTR pszCmdLine);
这是本dll导出的一个函数原型,请不要被名字蛊惑了,这个程序是绿色的。
这个函数内部并没有做任何自启动安装的动作,没有修改注册表或系统文件。只是想选一个契合 regsvr32调用的接口而已。
第一个参数本程序没用到,
第二个参数请指定一个文件路径(留心是UNICODE的),记载到的数据将保存到这里(是Ansi的)。
文件路径能够像这样 C:\x.log,
也能够像\\.\pipe\your_pipename, \\.\mailslot\yourslot,
所以你能够自身写loader来调用这个dll,让dll截取到密码时议决 pipe或mailslot将数据发给你的程序。数据就是一个字符串(是Ansi的)
========测试:
你能够不急着写自身的loader来调用,用regsvr32作为loader来测试一下:(你可能须要关上某些主动防御)
regsvr32 /n /i:c:\xxx.log c:\pluginWinPswLogger.dll
正常的话regsvr32弹出一个提示成功。
这时刻你能够切换用户或锁定计算机,然后重新登陆进去,这个流程密码信息就被拦截下来了并保存到c:\xxx.log。
=========End
tag: windowsxp,windowsxp操作系统知识,windowsxp使用教程,电脑培训学习 - 操作系统 - windowsxp