记得以前管理的一批windows服务器,一些开源程序做的web站点总会遭到入侵。然而就想找找看有没有办法可以知道服务器有没有被入侵。服务器在什么时候登陆过,如果登陆马上发邮件通知,感觉这种问题肯定有人处理过,于是网上搜罗了一下。转载至此,至于是哪个地方转载过来的已经无从跟踪。
朋友一台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=webshell.cc@126.com set user=webshell.cc set pass=webshell.cc set to=webshell.cc@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的邮箱,可以达到实时的手机短信通知,有兴趣的可以试试。
当然,这个脚本本身也存在安全问题。一旦服务器被入侵,邮箱也就不保了。