安全攻防实战:使用
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.dll与Msgina.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技术专栏” 博客,转载请与作者联系!