Loading

被动式检测445端口扫描

为了检测内网的端口扫描写了个脚本。。。

事情起源

之前一直在做域控搭建,结果域控机(DC)老是莫名其妙重启,排查事件管理器后发现了点东西

1559234162802

一堆的电源报警事件(该事件只会在系统非正常关机、重启时出现),后面进ESXi管理面板准备重装时发现蓝屏了,报错显示srv.sys驱动出现问题,经过查询后发现系统有MS17-010漏洞(wannacry干的,能把2016打蓝屏也是没谁了)

处理过程

打补丁,用脚本检测内网的扫描情况,汇报上面让他们处理去吧。。

脚本

'''
@Description: 
@Author: Sp4ce
@Github: https://github.com/NS-Sp4ce
@Date: 2019-05-29 23:18:36
@LastEditors: Sp4ce
@LastEditTime: 2019-05-29 23:18:36
'''
# 服务器
import socket
import threading
import time
import os
# 处理客户端请求
# 监听任意地址
IP_ADDRESS = '0.0.0.0'
# 记录的文件名
FILENAME = 'log.txt'
# 监听端口
PORT = 445


def printalert(string):
    print('\033[1;31m ' + string + ' \033[0m')


def printsuccess(string):
    print('\033[1;32m ' + string + ' \033[0m')


def printwarning(string):
    print('\033[1;33m ' + string + ' \033[0m')


def printinfo(string):
    print('\033[0;34m ' + string + ' \033[0m')


class tcp_server():
    def __init__(self):
        self.tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.tcp_socket.bind((IP_ADDRESS, PORT))
        self.tcp_socket.listen(250)
        self.proceses = []
        printsuccess('Server Start Success,Waiting For Connect....\n')

    def run_server(self):
        while True:
            sock, addr = self.tcp_socket.accept()
            # 创建新线程来处理每个客户端连接
            t = threading.Thread(target=self.tcp_server, args=(sock, addr))
            t.start()
            t.join()

    def tcp_server(self, sock, addr):
        # 事件产生时间
        TIME = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
        printinfo('[i] Accept new connection from %s:%s' % addr + ' ...at [' + str(TIME) + ']\n')
        printinfo('当前线程:' + threading.current_thread().name + '\n')
        self.writelog(addr)
        sock.close()
        printinfo('[-] Connection from %s:%s closed \n' % addr)

    # 写日志
    def writelog(self, addr):
        # 事件产生时间
        TIME = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
        with open(FILENAME, 'r') as file:
            line = file.read().splitlines()
            if addr[0] in line:
                printwarning('[!] Detect ' + str(addr[0]) + ' Connect ' + str(PORT) + ' Port At [' + str(TIME) + '] And This IP Has Been Recorded!\n')
            else:
                with open(FILENAME, 'a+') as file1:
                    file1.write(str(addr[0]) + '\n')
                    printalert('[+] Detect ' + str(addr[0]) + ' Connect  ' + str(PORT) + ' Port At [' + str(TIME) + '] .\n')


def main():
    s = tcp_server()
    s.run_server()


if __name__ == '__main__':
    if not os.path.exists(FILENAME):
        printwarning('[!] Log file is not exists, will create it.\n')
        os.system(r"touch {}".format(FILENAME))
        printsuccess('[+] Create log file success !\n')
    main()

脚本是Python3写的,运行截图如下

运行截图

脚本运行后会在当前目录生成log.txt,记录抓到的IP

log文件

然后挂在后台跑就行了,可以用screen开后台任务


本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
本文地址:https://0x20h.com/p/f3b3.html
Sp4ce's Blog 被动式检测445端口扫描

 上一篇
WannaMine蠕虫清理 WannaMine蠕虫清理
今天接到了内网的检测服务器告警,检测到我的主机对外扫描445端口 本次监测使用了2台基于VMware ESXi架构的虚拟服务器,IP及系统架构如下 10.16.11.51 CentOS7【监测机】 10.16.11.15 Windows
2019-06-02
下一篇 
域渗透—环境部署 域渗透—环境部署
记录下部署靶机环境 部署靶机环境设置首先打开靶机的防火墙规则 环境拓扑环境部署如下图 环境部署10.16.11.15本台主机配置如下 OS:Windows Server 2008 R2 App:phpstudy CMS: DeDeC
2019-05-21
  目录