自动实时监控Windows2003服务器终端登录

朋友一台Windows服务器被黑了,而且还被人恶意删除了一些数据备份,帮其做了下安全加固,考虑到服务器都是通过Windows 终端服务器来管理的,就想办法对其登录做个监控,找了个命令行下发邮件的小工具blat还有批处理,做了个简单的监控程序,功能是当有人通过终端登录且成功后,会向指定的邮箱发送登录者IP地址。

1.先下载blat解压缩到c盘blat目录下面。

2.任意目录新建一个bat文件,我这里是mail.bat,内容如下,

 

@echo off
date /t >mail.txt
time /t >>mail.txt
netstat -n -p tcp | find "3389" >>mail.txt
:::::::::::::: config::::::::::::::
set from=Neeao.com@126.com
set user=neeao.com
set pass=neeao.com
set to=neeao.com@qq.com
set subj=3389
set mail=mail.txt
set server=smtp.126.com
set debug=-debug -log blat.log -timestamp
::::::::::::::::: run blat :::::::::::::::::
C:\blat\full\blat.exe %mail% -to %to% -base64 -charset Gb2312 -subject %subj%  -server %server% -f %from% -u %user% -pw %pass% %debug%
start Explorer

很简单的了,先通过bat查找哪个ip连接到了本机的3389端口,然后邮件发送到指定邮箱。

3.进入控制面板—管理工具—终端服务器配置—RDP-Tcp—属性-环境-用户登录时启用下列程序—在程序路径和文件名—写“C:\mail.bat”—起始于—写“C:\”这样就ok了。

4.注销,重新登录,看是否能收到邮件。如果出错的话,桌面出不来的话,可通过ctrl+alt+end来呼出任务管理器来调用桌面。

5.目前发现个小bug,就是登录的时候,会弹出一个cmd的框。

6.如果开通邮箱的短信通知,或者使用139的邮箱,可以达到实时的手机短信通知,有兴趣的可以试试。

参考资料:

0.http://hi.baidu.com/testvbpro/blog/item/5e8aa9c7efb063d1d1006084.html 1.http://xuyafei202.blog.163.com/blog/static/2798837320105107550913/

自动实时监控Windows2003服务器终端登录》上有25条评论

  1. kxlzx

    黑个服务器,同时连管理员邮箱可以一起干掉。
    明文的邮箱密码。
    1、有个shell,如果可以访问这个bat,就有邮箱密码了。
    2、留后门的好地方啊,对方连bat都不会自己写,他肯定不会每次看看bat内容的,如果内容多了点什么。。。
    留后门时,可以再隐蔽一点,把bat文件权限改掉everyone可写,也可以改掉C:latfull可写。
    如果和管理员有仇,那就更好,手机号都有了。

    回复
  2. farqbd

    呵呵,你这招可以绕过的啊。
    还有用vbs/js调用这个bat不就不弹黑窗了

    回复
  3. 777777

    请教neeao牛。假如要给多个邮件发送登录记录怎么设置?
    09 set to=xxxx@qq.com xxxx@test.com 还是1@test.com;2@test.com

    不懂批处理 菜鸟一个 还望指教。

    回复
  4. nuke

    bat只有第一行的关闭回显命令
    如果想隐藏弹出的窗口
    使用vbs调用一下这个cmd

    例:

    Set ws = CreateObject(“Wscript.Shell”)
    ws.run “cmd /c mail.bat”,vbhide

    这样先使用vbs来调用应该可以彻底隐藏掉cmd运行时一闪的窗口

    以前做U盘批处理偷老师电脑里考卷时用过这招。

    回复
  5. arbalest

    请教个小问题,我使用您的方法后第一次可以发送邮件成功,但是win2003有2个远程桌面连接一直存在,以后登录的时候选择其中一个登录,就不会触发mail.bat的脚本。网上搜索了很多也没有解决方法,不知道您有没有遇到这个问题。

    回复
  6. xysky

    学习了。
    bat执行弹cmd黑窗口一闪而过肯定会被人发现的,用vbs吧,不弹不闪:)

    回复
  7. Neeao

    [quote=kxlzx]黑个服务器,同时连管理员邮箱可以一起干掉。
    明文的邮箱密码。
    1、有个shell,如果可以访问这个bat,就有邮箱密码了。
    2、留后门的好地方啊,对方连bat都不会自己写,他肯定不会每次看看bat内容的,如果内容多了点什么。。。
    留后门时,可以再隐蔽一点,把bat文件权限改掉everyone可写,也可以改掉C:latfull可写。
    如果和管理员有仇,那就更好,手机号都有了。[/quote]blat支持将配置信息加密存放到注册表的,任何防护手段都不是万能的,;)

    回复
  8. Neeao

    [quote=777777]请教neeao牛。假如要给多个邮件发送登录记录怎么设置?
    09 set to=xxxx@qq.com xxxx@test.com 还是1@test.com;2@test.com
    不懂批处理 菜鸟一个 还望指教。[/quote]看下blat的文档吧,里面说的很详细。

    回复
  9. x2bug

    很有趣的一个程序,同意楼上的用
    Set ws = CreateObject(“Wscript.Shell”)
    ws.run “cmd /c mail.bat”,vbhide
    调用隐藏cmd框

    回复
  10. 忘忧

    如果人家开了VPN你这个也能绕过?小菜猜测,大牛多多指教

    回复
  11. kkkkkkk

    [quote=忘忧]如果人家开了VPN你这个也能绕过?小菜猜测,大牛多多指教[/quote]
    不可能绕过的!因为是用的netstat -an -p tcp |find “3389”,只是找了访问时的IP,如果拨了VPN就只能看到代理的IP,而看不到真实IP!

    回复
  12. Neeao

    这个只是监控访问3389的记录,不管用什么方式,只要通过3389连上去的,看下不是自己的ip不就可以证明被入侵了么?

    回复
  13. clyee

    哈哈,这方法是不错,可以在没有远控的情况下远距离知道服务器终端状态

    回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注