实时监控服务器是否被入侵

在这个晃荡的世界,每天都有专业扫服务器的人,卖黑服,做肉鸡,跳板之类的

就在前不久,我发现我的服务器被别人登陆了,从日志分析发现至少有两个人爆破成功

且把服务器分享给了他的小伙伴,导致服务器被多人登陆

于是写了个脚本,实时监控登陆IP,核心命令如下

netstat -n -p tcp | find "3389"

在服务器监听,发现多人登陆我的服务器(3389为远程连接端口)

此脚本实时监听,且自动把结果写入到success.txt(日期,登陆时间,登陆ip)

到这里大家可能有个疑问,就是当被别人登陆,他也会看到你的软件,我们可以创建一个隐藏账户

然后在隐藏账户运行监控脚本,你就可以抓到攻击者ip

完整代码 (python2):

#!/usr/bin/python
#-*- coding:utf-8 -*-
import os
import time

savemstsc = []

def jkmstsc():
    global savemstsc
    mstsc = os.popen('netstat -n -p tcp | find "3389"').readlines()
    date = os.popen('date /t').readlines()
    time = os.popen('time /t').readlines()
    for x in mstsc:
        if x != "":#检测到有主机连接
            file = open('success.txt', 'a+')
            if x not in file.read():#判断是否存在,防止数据多次写入
                savemstsc.append(x)
                f = open('success.txt','a+')
                findeok =str("%s,%s,%s+\n"%(date[0],time[0],x)).replace(',','').replace('+','%s'%('-'*20))
                f.write(findeok)
                f.close()
                print savemstsc
                savemstsc=[]
                file.close()

if __name__ == '__main__':
    print u"\n正在监听......\n"
    while True:
        jkmstsc()
        time.sleep(3)#监测时间,每隔多少秒监控一次

当然,功能远远不止这些

这个脚本只是一个雏形,你也可以添加当监控到被登陆发送邮件提醒等等


成品下载:

链接:https://pan.baidu.com/s/1p0xZ3IdJIQNB6ClIX7GF1g 提取码:l1mg 

Ps:并不是所有与远程连接的端口都是入侵者ip,工具仅提供参考作用,具体判断在人

分享到:更多

相关推荐

发表评论

路人甲 表情
看不清楚?点图切换 Ctrl+Enter快速提交

网友评论(0)