windows已建立威胁IP排查

news/2024/11/23 21:09:03/

在应急响应的时候,需要筛选出服务器建立连接的进程、PID,此代码可满足该需求实现共计2步

首先windos netstat-ano > all.txt, 上传至pycharm路径

第一步获取服务器建立连接的ip

import re# 从文件读取 netstat 输出
def read_netstat_file(file_path):try:with open(file_path, 'r') as file:return file.read()except Exception as e:print(f"Error reading file: {e}")return None# 提取已建立连接和未建立连接的外部 IP 地址
def extract_ips_by_state(netstat_output):established_ips = set()  # 存储已建立连接的外部 IP 地址listening_ips = set()  # 存储未建立连接的外部 IP 地址# 正则表达式匹配 ESTABLISHED 状态的连接,提取外部 IP 地址(不包括端口)established_pattern = re.compile(r'^\s*TCP\s+\S+\s+(\S+)\s+ESTABLISHED', re.MULTILINE)# 正则表达式匹配 LISTENING 状态的连接,提取外部 IP 地址(不包括端口)listening_pattern = re.compile(r'^\s*TCP\s+\S+\s+(\S+)\s+LISTENING', re.MULTILINE)# 查找已建立连接的外部 IP 地址(不包含端口号)for match in established_pattern.findall(netstat_output):established_ips.add(match.split(':')[0])  # 去掉端口号部分# 查找未建立连接的外部 IP 地址(不包含端口号)for match in listening_pattern.findall(netstat_output):listening_ips.add(match.split(':')[0])  # 去掉端口号部分return established_ips, listening_ips# 将 IP 地址写入文件
def write_ips_to_file(established_ips, listening_ips, output_file):try:with open(output_file, 'w') as file:file.write("已建立连接的外部 IP 地址:\n")for ip in established_ips:file.write(f"{ip}\n")file.write("\n未建立连接的外部 IP 地址:\n")for ip in listening_ips:file.write(f"{ip}\n")print(f"IP 地址已成功写入 {output_file}")except Exception as e:print(f"Error writing to file: {e}")def main():input_file = 'all.txt'  # 你的 netstat 输出文件路径output_file = 'ips.txt'  # 要写入的输出文件路径netstat_output = read_netstat_file(input_file)if netstat_output:established_ips, listening_ips = extract_ips_by_state(netstat_output)write_ips_to_file(established_ips, listening_ips, output_file)if __name__ == '__main__':main()

第二部查看服务器ip地址

import requests
import time# 获取 IP 地理位置信息的函数
def get_ip_info(ip):url = f'https://qifu-api.baidubce.com/ip/geo/v1/district?ip={ip}'# 设置请求头(可以根据需要修改)headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36','Content-Type': 'application/json',}try:response = requests.get(url, headers=headers)  # 将请求头传入response.raise_for_status()  # 检查请求是否成功data = response.json()if data["code"] == "Success":info = data["data"]prov = info.get("prov", "未知")city = info.get("city", "未知")return ip, prov, cityelse:return ip, "未知", "未知"except requests.exceptions.RequestException as e:print(f"请求错误: {e}")return ip, "错误", "错误"except ValueError as e:print(f"解析错误: {e}")return ip, "错误", "错误"
# 批量查询 IP 地址信息
def batch_query_ips(file_path):with open(file_path, 'r') as file:ips = file.read().splitlines()for ip in ips:ip, prov, city = get_ip_info(ip)  # 解包为三个值print(f"IP: {ip}, Province: {prov}, City: {city}")time.sleep(1)  # 每次请求后延迟 5 秒# 替换 'ips.txt' 为你的文件路径
batch_query_ips('ips.txt')


http://www.ppmy.cn/news/1549368.html

相关文章

【Flask+Gunicorn+Nginx】部署目标检测模型API完整解决方案

【Ubuntu 22.04FlaskGunicornNginx】部署目标检测模型API完整解决方案 文章目录 1. 搭建深度学习环境1.1 下载Anaconda1.2 打包环境1.3 创建虚拟环境1.4 报错 2. 安装flask3. 安装gunicorn4. 安装Nginx4.1 安装前置依赖4.2 安装nginx4.3 常用命令 5. NginxGunicornFlask5.1 ng…

干货分享|分布式数据科学工具 Xorbits 的使用

本章介绍分布式数据科学工具 Xorbits 。 1 Xorbits Data Xorbits Data 是一个面向数据科学的分布式计算框架,功能类似于 Dask 和 Modin,用于加速 Pandas DataFrame 和 NumPy。Xorbits Data 通过切分大数据集并利用 Pandas 或 NumPy 执行操作。其底层采…

java Queue 详解

Java Queue 详解 Queue 是 Java 集合框架中用于实现 队列 数据结构的接口,位于 java.util 包中。队列是一种 先进先出(FIFO) 的数据结构,元素按照插入的顺序依次出队。 1. Queue 的基本特性 FIFO(First-In-First-Out&…

鸿蒙学习高效开发与测试-应用程序框架和HarmonyOS SDK(3)

文章目录 1、应用程序框架1、规范化后台进程管理2、原生支持分布式3、支持多设备的统一窗口管理4、 组件共享及面向对象5、逻辑与界面解耦6、灵活扩展机制2、HarmonyOS SDK1、 开放能力 Kit2、开放能力的检索和使用3、 方舟工具链4、前端编译器架构1、应用程序框架 应 用 程 序…

基于 RBF 神经网络辨识的单神经元 PID 模型参考自适应控制

这是一个基于 RBF 神经网络辨识 和 单神经元 PID 模型参考自适应控制 的系统框图,包含以下主要部分: RBF 神经网络模块:用于对系统进行辨识,输入误差 e(t)e(t)e(t) 和误差变化量 Δe(t)\Delta e(t)Δe(t),输出与系统特…

【实用技能】使用 TX Text Control 创建带有嵌入式附件的 PDF 文档

TX Text Control .NET Server for ASP.NET(下载试用最新版)是一款Web应用程序的文档处理控件,包括用于 ASP.NET、ASP.NET Core 和 Angular 的文档编辑和查看的客户端包。目前TX Text Control .NET Server for ASP.NET 支持 .NET 5、.NET 6 和…

低代码开发平台搭建思考与实战

什么是低代码开发平台? 低代码开发平台是一种平台软件,人们能通过它提供的图形化配置功能,快速配置出满足各种特定业务需求的功能软件。 具有以下特点: 提供可视化界面进行程序开发0代码或少量代码快速生成应用 什么是低代码产…

刷题-1122

1. 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。 例如,当输入5时,应该输出的三角形为: 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11 import sys def generate_snake_matrix(n):matrix [[0]*n for _ in range(n)]curent_num 1…