引言
腾讯云服务器的防火墙讲真的是太不好用了,消停了一阵子,最近又出现这个问题了,明明我禁用了RDP端口,但是Windows日志上依然存在登录失败日志。

难道我不知道端口不通,他们还能试探?我好奇的是他们为什么试探,我这边还响应了耶...
没错,他说的日志不是他们的日志,而是我的日志!

这个是当时我画的一个图

自己动手丰衣足食
import win32evtlog
import win32evtlogutil
import re
mapping = {4648:"试图使用显式凭据登录。",4624:"已成功登录帐户。",4625:"帐户登录失败。"}
def extract_info(msg, event_time,eventid):
ip_pattern = r'\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b'
ips = re.findall(ip_pattern, msg)
if len(ips) > 0:
if eventid in mapping:
print(event_time,ips,mapping[eventid])
else:
print(event_time,ips,eventid)
def ReadLog(logType="Application"):
py_handle = win32evtlog.OpenEventLog(None, logType) # 打开日志文件
numRecords = win32evtlog.GetNumberOfEventLogRecords(py_handle) # 日志记录的数量
while True:
data_list = win32evtlog.ReadEventLog(py_handle,
win32evtlog.EVENTLOG_BACKWARDS_READ | win32evtlog.EVENTLOG_SEQUENTIAL_READ,
0)
if not data_list:
break
for i in data_list:
eventid = i.EventID & 0xFFFF # 事件ID
if eventid not in mapping.keys() : continue
msg = win32evtlogutil.SafeFormatMessage(i, logType) # 日志内容
win32evtlogutil.FormatMessage(i, logType)
event_time = i.TimeWritten # 日志事件事件
extract_info(msg.strip(), event_time,eventid)
# print(eventid, msg.strip(), event_time)
win32evtlog.CloseEventLog(py_handle) # 关闭句柄
ReadLog("Security")
2024-03-14 11:06:48 ['113.56.30.34'] 帐户登录失败。
2024-03-14 10:49:31 ['113.56.30.34'] 帐户登录失败。
2024-03-14 10:36:30 ['223.xxx.xxx.xxx'] 已成功登录帐户。
2024-03-14 10:36:30 ['223.xxx.xxx.xxx''] 试图使用显式凭据登录。
2024-03-14 10:36:25 ['223.xxx.xxx.xxx''] 已成功登录帐户。
2024-03-14 10:36:25 ['223.xxx.xxx.xxx''] 已成功登录帐户。
2024-03-14 10:32:28 ['113.56.30.34'] 帐户登录失败。
2024-03-14 10:15:25 ['113.56.30.34'] 帐户登录失败。
2024-03-14 09:58:22 ['113.56.30.34'] 帐户登录失败。
2024-03-14 09:41:08 ['113.56.30.34'] 帐户登录失败。
2024-03-14 09:24:04 ['113.56.30.34'] 帐户登录失败。
后续工作
根据numRecords可以做增量更新,定时执行,写入防火墙规则。


评论 0
还没有评论,来说点什么吧。