国庆了,发点小东西,给大家玩玩,渗透中可能用得着吧,一个小玩意儿。

记录本地、远程、远程桌面中的远程桌面 mstsc.exe (远程桌面连接、3389) 按键、鼠标信息,IP、域名、账号、密码,远程桌面、远程桌面连接、虚拟终端、按键记录、键盘记录。

名字叫:MstscLoger,主程序:MstscLoger.exe。

这玩意儿我以前也写过,也发过源码,最近又有需要,就干脆重写了。大概是2009年的时候吧,没记错的话名字叫“VB 记录远程桌面/mstsc/3389密码并发送”,在 T00ls.Net 工具区和本站均有发过,后来本站的我貌似删了,Google 还能搜到很多,当时那个比较糟糕,有点 Bug,全屏的状态下无法记录任何键盘按键信息(记录鼠标正常)。后来再次写的时候查明白原因了,原因是:

全屏下,必须再次刷新钩子链表(指向钩子函数的指针列表),不然的话 Mstsc.exe 的钩子(mstsc.exe 本身也是通过系统全局钩子,获取用户输入信息,然后发送到远程服务器,以实现各种操作的)就排到前边了,因为 mstsc.exe 在全屏状态重新注册了一次钩子,就把自己排到前边了,更可恶的是,他娘的丫居然把钩子消息吞了!!!我了个擦,这样排在下边的钩子就获取不到任何消息了,囧~~~

所以嘛,以毒攻毒,以其人之道,还治其人之身,你抢?我也抢,你娘的,把自己排到钩子链表第一,霸占消息。。。就行了。。

功能:

1、主要功能便是键盘记录。通过镜像劫持,伴随 mstsc.exe 启动。参考以下的高级用法,进行其他启动方式。

2、可以记录本地远程远程桌面中的远程桌面(理论上最大套嵌数量为无穷大)的 mstsc.exe (远程桌面连接、3389) 按键、鼠标信息。

3、从而根据远程桌面、远程桌面连接、虚拟终端、按键记录的键盘记录分析出目标服务器的IP、域名(自动获取远程服务器IP、域名放入日志中)、账号、密码

4、记录的键盘、鼠标信息放在:C:\WINDOWS\MstscLog.txt,每隔十秒保存一次。

5、一直记录到不存在进程 metsc.exe (为什不是 Mstsc.exe?请参考以下高级用法) 为止,程序退出。

优点:

0、不支持64位系统。

1、支持微软官方任意版本的远程桌面连接程序(mstsc.exe),据我所知除了Win7,应该有两个版本吧。

2、支持任意登录方式:命令行、带参数的命令行、快捷方式、普通双击运行等,支持任何窗口状态:全屏、窗口、最大化、最小化等……

3、支持套嵌的方式,支持在虚拟终端中记录,简单地说就是,既可以本地记录本地的mstsc.exe,也可以上传到服务器上,记录管理员登陆其他服务器的操作,理论上套嵌支持无穷多,渗透中应该经常用到。

4、不多说了,等你来发现……

缺点:

1、可能不支持各种山寨、DIY版的远程桌面连接程序。

2、不支持记录事先填写好的账号密码,注意,是事先填写好,不是运行 mstsc.exe 后再填写的账号密码,然后点连接那种。也就是说,运行 mstsc.exe 后的所有按键、鼠标信息都可以记录。

3、由于是一直记录到远程桌面连接程序退出为止,所以日志体积可能较大。

高级用法:

由于安装是采用镜像劫持伴随 mstsc.exe 启动,所以将 mstsc.exe 复制为 metsc.exe,不然会产生死循环。

如果你不想用镜像劫持的方法,想自己安装启动,你可以使用 ShellCode 感染的方式(以前写过这个程序,并发布了,自己找去),给 mstsc.exe 加一条指令,让其启动时运行我们的记录程序,或者注册表启动,之类的。

但是要注意!!!当不存在进程 metsc.exe 时程序会退出,所以你要保证运行成程序的时候要有个 metsc.exe 进程,简单的方法为,把程序自己名字改成 metsc.exe,不过这会导致一直记录不退出……

由于当时是自己用,所以设计的是镜像劫持启动,所以你想用其他方法启动的话,也基本只能这样了,建议还是私下找我来改吧,晕。

下载地址:

MstscLoger_公布的.rar,主程序 MstscLoger.exe 大小:7.70 KB (7,893 字节)。

记录的日志示例:

2011-10-3 5:37:52:程序启动成功,开始记录。

2011-10-3 5:37:54:左键按下(X:645,Y:323)
2011-10-3 5:37:54:左键弹起(X:645,Y:323)
2011-10-3 5:37:54:[Windows]
2011-10-3 5:37:54:[Windows]
2011-10-3 5:37:55:www.baidu.com - 远程桌面
2011-10-3 5:37:56:[Tab]
2011-10-3 5:37:57:[Tab]
2011-10-3 5:37:57:[Tab]
2011-10-3 5:37:57:[Tab]
2011-10-3 5:37:58:[z]
2011-10-3 5:37:58:[h]
2011-10-3 5:37:58:[a]
2011-10-3 5:37:58:[n]
2011-10-3 5:37:58:[g]
2011-10-3 5:37:58:[h]
2011-10-3 5:37:58:[a]
2011-10-3 5:37:58:[o]
2011-10-3 5:37:59:[Tab]
2011-10-3 5:37:59:[m]
2011-10-3 5:37:59:[i]
2011-10-3 5:37:59:[m]
2011-10-3 5:37:59:[a]
2011-10-3 5:38:01:左键按下(X:764,Y:361)
2011-10-3 5:38:01:左键弹起(X:764,Y:361)
2011-10-3 5:38:02:左键按下(X:726,Y:392)
2011-10-3 5:38:02:左键弹起(X:726,Y:392)

2011-10-3 5:38:03:[Enter]
2011-10-3 5:38:04:左键按下(X:724,Y:435)
2011-10-3 5:38:04:左键弹起(X:724,Y:435)
2011-10-3 5:38:05:左键按下(X:710,Y:336)
2011-10-3 5:38:05:左键弹起(X:710,Y:336)

2011-10-3 5:38:06:未找到进程:metsc.exe,准备终止记录。
2011-10-3 5:38:06:程序退出,终止记录。

留言评论(旧系统):

ss @ 2012-07-08 00:52:25

奇怪,这个MstscLoger,我在win7、xp sp2虚拟机、xp sp3肉鸡上测试,全屏或窗口状态下都只能记录到鼠标按键和ctrl alt shift win tab等键,完全记录不到字母键、数字键。 mstsc版本依次是6.1.7600、5.1.2600、6.1.7600。 倒是以前那个“VB 记录远程桌面”,全屏状态下可以正常记录到字母键数字键

本站回复:

不清楚,这个很久没更新过了。不过,我当时测试的时候(WinXP SP3 + Win2003),全屏是可以的啊。

ss @ 2012-07-08 17:43:37

多谢回复,按照你文章里的提示,自己山寨了一个。再次感谢~

本站回复:

哈哈哈,泽东同志说得好:自己动手,丰衣足食,Good!

佚名 @ 2013-05-07 10:05:15

请问微软的远程桌面客户端就是按你说的那样把自己的钩子放在最前面,使得我们编写的程序不能捕获到鼠标消息么?最近在研究他这个东西的工作原理,水平有限,进展不大啊~~关于了解远程桌面的工作机制,您有没有什么好的建议?

本站回复:

不是,这是windows的钩子链表机制,排在最前边的优先处理消息,所以mstsc把自己排在前边,并且吞了消息,后边的钩子就啥也取不到了,所以你需要不停的刷新钩子链表,把自己排在最前边的。

佚名 @ 2013-06-02 23:27:49

可以有偿,花费你点时间改下让他在法国的机器上也能用,然后发送记录信息到服务器上面

本站回复:

so?

佚名 @ 2013-06-03 23:46:14

可以有偿,花费你点时间改下让他在法国的机器上也能用,然后发送记录信息到服务器上面 可以的叫我Q 450816646吧

本站回复:

无论是谁加你QQ,都不是我,谨防冒名诈骗。