安全攻防实战:使用winlogonhack获取系统密码

安全攻防实战:使用 winlogonhack 获取系统密码
S.S.F  simeon
摘要 在网络安全事件频发的今天,很多人都在抱怨,为什么我的系统被入侵了,我的主页被修改了,在入侵后,我采取了一些安全加固措施,可是没过几天又发现系统被入侵了!分析根本原因就是系统仍然存在安全隐患,可能是没有彻底清除系统后门,可能是系统的密码一直都掌握在黑客手中,本文作为安天 365 团队“系统口令攻击与防范”安全研究中的一个子课题,将全面分析远程终端密码的截取和防范。

一、远程终端密码泄露分析

1.最新远程终端技术APP

对于大型企业来说,一般都部署有远程终端,微软最新的服务器操作系统 Windows 2008 Server 中更是重点打造远程终端。终端服务器远程 APP Windows Server 2008 中新的远程应用演示方法。在远程连接的一些参数上进行了调整,增加了一些新的功能,据说性能也有较大提高!

2.远程终端密码泄露分析

在大型网络中,由于网络环境复杂,因此服务器之间往往通过远程终端来维护和管理,这种管理在方向不太固定,多是发散。有的可能是通过一台主机登录多台主机,也有的可能是通过多台主机来登录同一台主机,也可能是混乱交叉登录,黑客在入侵网络某一台主机后,肯定会想办法收集网络内部或者跟外部独立主机之间的远程终端登录用户名称和密码。收集方法不外乎三种:
1 )使用 GetHashes Pwdump 等工具获取系统的 Hash 密码值,然后通过 LC5 以及彩虹表来进行破解,破解成功后得到系统密码,这些密码极有可能是远程终端的密码。
2 )在被控制计算机上安装键盘记录,通过键盘记录来获取用户在登录 3389 远程终端过程所输入的用户名和密码。这种方法有一定的限制,键盘记录在远程终端窗口最大化时有可能无法记录远程终端登录密码。
3 )使用 WinlogonHacK 工具软件截取远程登录时所输入的正确密码。这也是本文要重点介绍的部分。当然除了以上三种外,还有一些其它的泄露途径。

二、WinlogonHack工具软件截取密码原理

1.Gina.dllMsgina.dll

Gina.dll NT/2000 中交互式的登陆支持是由 WinLogon 调用 Gina.dll 实现的, Gina.dll 提供了一个交互式的界面为用户登陆提供认证请求。 WinLogon 会和 Gina.dll 进行交互,缺省是 msgina.DLL( System32 目录下 ) 。微软同时也为我们提供了接口,我们可以自己编写 Gina.dll 来代替 Msgina.dll
不知道什么原因,微软的 Gina.dll Windows XP 以及后续版本中都不再出现,原来的 Gina.dll 改为 Msgina.dll (加了 ms 表示是微软的,嘿嘿!)。 Msgina.dll WindowsXP 系统中默认大小为 967,680 字节( 945K ),在 Windows 2003 中其大小为 1,180,672 字节( 1153K ),如果不是这个大小,估计就有问题了。

2.Msgina.dll文件被损坏和修改将导致严重错误

DLL 知识库( [url]http://www.dofile.com/dlllibrary/msgina/[/url] )中是这样描述的: msgina.dll Windows 登陆认证策略相关模块,该模块用于完成所有用户登陆和验证功能,如果系统中的这个文件被修改或者破坏,将导致系统无法使用 3389 进行登录,如图 1 所示,这个系统的 Msgina.dll 文件就被破坏了,从而导致用户无法远程登录 3389 终端服务器。
1 Msgina.dll 被损坏或者被修改导致无法远程登录远程终端

3.WinlogonHack截取密码原理

WinlogonHack 通过挂钩系统中的 msgina.dll WlxLoggedOutSAS 函数,记录登录账户密码! WinLogon 初始化时会创建 3 个桌面:
1 Winlogon 桌面:主要显示 Windows 安全等界面,如你按下“ CTRL+ALT+DEL ”快捷看所出现的登陆的界面等。
2 )应用程序桌面:我们平时见到的那个有我的电脑的界面。
3 )屏幕保护桌面:屏幕保护显示界面。
在默认情况下, Gina.dll 或者 Msgina.dll 显示登陆对话框,用户输入用户名及密码。所以要获得用户名和密码,则可以写一个新的 Gina.DLL 或者 Msgina.dll ,其中提供接口调用 msgina.dll 的函数是 WlxLoggedOutSAS 。启动就用 winlogon 通知包,当有 3389 ,连上服务器时。新创建的 winlogon.exe 会在登录前加载,注册了 Startup ”的 dll Hook 了函数,登录成功后,记录密码到 boot.dat 文件,并取消 Hook 。退出 3389 后, dll 文件即可删除。在实现上只要 msgina.dll WlxLoggedOutSAS 函数的前五个字节:
mov edi,edi
push ebp
mov ebp,esp
   关于WinlogonHack 工具如何具体实现3389 远程终端密码的截取,请查看Winlogonhack 的源代码以及程序([url]http://www.antian365.com/bbs/forumdisplay.php?fid=180[/url] )。

三、使用WinlogonHack获取密码实例

WinlogonHack 之前有一个 Gina 木马主要用来截取 Windows 2000 下的密码, WinlogonHack 主要用于截取 Windows XP 以及 Windows 2003 Server

1.执行install.bat安装脚本

一种方法是将 WinlogonHack 的安装程序文件 Hookmsgina.dll install.bat On.reg 以及 ReadLog.bat 复制到一个相同文件夹下面,然后在 Dos 提示符或者 GUI 界面写直接运行 install.bat 即可。执行完毕后不需要重启,当有 3389 登上时,自动加载 DLL ,并且记录登录密码!保存在系统 system32 目录的 boot.dat 文件中,另外一种方法是将所有文件都放在同一个文件夹中,然后执行 install 命令即可,如图 2 所示,表示安装正确的一些提示。
2 远程安装 WinlogonHack 软件截取 3389 登录密码

2.查看密码记录

可以直接打开 boot.dat 文件查看,也可以运行“ ReadLog.bat ”脚本移动密码文件到当前目录查中查看。在本例中的操作系统是 Windows 2003 Server ,直接通过 Radmin telnet ,然后先执行“ dir boot.dat /a ”命令,查看是否有人远程进行登录,如图 3 所示, boot.dat 大小为 5762 字节,有货!使用“ type boot.dat ”可以看到记录的登录时间、用户、域名、密码以及旧密码。出现两个密码主要是用于记录用户更改了密码的情况下。
3 查看密码记录 boot.dat 文件

3.卸载WinlogonHack

执行“ Uninstall.bat ”即可自动卸载该程序,如果“ %systemroot%\system32\wminotify.dll ”文件未能删除,可以重启后删除!

四、攻击与防范方法探讨

1.攻击方法探讨

1 )定制化开发
WinlogonHack 代码是开源的,因此入侵者可以定制它,即在“ lstrcat( LogPath , "\\boot.dat"); ”代码中将 boot.dat 换成其它一个文件,执行 Winlogonhack 后,一般人员很难发觉。入侵者还可以在此基础上增加一个邮件发送功能,将记录下来的 3389 远程终端用户名和密码发送到指定的邮箱,笔者在安全加固过程中就曾经碰到过具有这种功能的 3389 密码截取木马软件。
2 )对 WinlogonHack 软件做免杀处理
由于 WinlogonHack 工具软件在网络入侵中扮演了一个重要的辅助角色,因此一些厉害的杀毒软件会自动查杀 wminotify.dll 文件,如图 4 所示,我在做试验时,我的 avast! 杀毒软件就能查出来,作为病毒处理。因此可以通过加花指令、修改特征码等方法修改 wminotify.dll 文件,使其能够绕过杀毒软件。
4 杀毒软件会自动查杀 wminotify.dll 文件
3 WinlogonHack 在攻击中应用
WinlogonHack 工具软件主要用于截取 3389 登录密码,因此在被入侵计算机上运行 mstsc 后,如果发现在 mstsc 的计算机地址栏目中出现有多个登录 IP 地址列表,如图 5 所示,那么在该计算机上就有安装 WinlogonHack 软件的必要,通过它来记录在服务器上管理员所登录的 3389 用户名和密码。
5 获取 3389 登录地址列表
 

2.防范方法探讨

1 )在系统目录查找“ wminotify.dll ”文件,如果发现有这个文件,则说明系统中一定安装了 Winlogonhack 工具,可以通过登录一个 3389 终端来测试,系统目录下是否存在 boot.dat 文件,如果存在,则可以尝试使用“ Uninstall.bat ”批处理来卸载它,如果还不能卸载,可以重启后再次卸载。
2 )直接到注册表的键值“ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify\wminotify ”下进行查看,如果存在,则删除即可。
3 )对于定制的 WinlogonHack 比较难于根除,一个好的办法就是在系统安全状态下做一次文件名称列表备份,以后每次检测系统是通过比较系统目前状态下的文件列表的异同来查看。
4 )如果使用 3389 远程终端登录多台服务器进行管理,最好在管理完毕后,及时清除 3389 登录地址列表。
5 )定期杀毒,杀毒软件在一定程度上面能够防范一些已知的病毒,因此勤杀毒,勤看日志,在确认系统被入侵后,一定要仔细彻底的做一边系统的安全检测。

参考文献

1. WlxLoggedOutSAS [url]http://hi.baidu.com/ccyuankai/blog/item/5ef6dd[/url] 80a 8eeacd59023d906.html

本文出自 “simeon技术专栏” 博客,转载请与作者联系!

你可能感兴趣的:(获取,安全,实战,使用,攻防,winlogonhack)