├── README.md └── Vps_tracker.py /README.md: -------------------------------------------------------------------------------- 1 | # Vps__Tracker 2 | 3 | VPS_Tracker工具是一款用Python编写的工具,专为攻防演练而设计。其主要功能是帮助用户在海量攻击IP中快速定位红队VPS。在安全测试和模拟攻击的情境下,VPS_Tracker通过扫描IP端口的方式,有效地定位黑客工具,从而精准匹配到红队的存在。通过分析攻击IP的端口信息,VPS_Tracker不仅能够检测潜在的威胁,还能够追溯攻击源头,为网络安全团队提供及时有效的反制手段。 4 | 5 | #### 0x01 工具参考 6 | 7 | 参考知攻善防实验室项目:https://github.com/ChinaRan0/fastbt 8 | 9 | #### 0x02支持17款黑客工具的检测规则 10 | 11 | ``` 12 | 资产工具:灯塔系统、H资产收集平台、LangSrc、nem 13 | 漏洞扫描工具:AWVS、大宝剑、美杜莎红队武器库平台、Nessus、NextScan 14 | 漏洞利用平台:DNSLog平台、XSS Platform、xray反连平台 15 | C2工具:Manjusaka、Viper、Supershell 16 | 流量代理工具:NPS、Frp web面板 17 | ``` 18 | 19 | #### 0x03 工具使用说明(1.0) 20 | 21 | 检测单个IP 22 | 23 | ``` 24 | python3 VPS_Tracker.py -t 127.0.0.1 25 | ``` 26 | 27 |  28 | 29 | 30 | 成功匹配到资产信息后生成result.xlsx 31 | 32 |  33 | 34 | 35 | 36 | 37 | 38 | 批量多个IP 39 | 40 | ``` 41 | python3 VPS_Tracker.py -f ip.txt 42 | ``` 43 |  44 | 45 | 成功匹配到资产信息后生成result.xlsx 46 | 47 |  48 | 49 | 50 | 全端口扫描(目前扫描速度慢,后续优化) 51 | 52 | ``` 53 | python3 VPS_Tracker.py -t 127.0.0.1 -all 54 | python3 VPS_Tracker.py -f url.txt -all 55 | ``` 56 |  57 | 58 | 59 | #### 0x04 免责声明 60 | 61 | 该开源工具是由作者按照开源许可证发布的,仅供个人学习和研究使用。作者不对您使用该工具所产生的任何后果负任何法律责任。 62 |  63 | 64 | -------------------------------------------------------------------------------- /Vps_tracker.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | import requests 3 | from concurrent.futures import ThreadPoolExecutor, as_completed 4 | from openpyxl import Workbook 5 | import urllib3 6 | from tqdm import tqdm 7 | import socket 8 | import ssl 9 | import binascii 10 | urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) 11 | 12 | 13 | def scan_target(ip, port): 14 | #1.灯塔系统 15 | try: 16 | url = f"https://{ip}:{port}" 17 | res = requests.get(url, verify=False, timeout=3) 18 | res.encoding = "utf-8" 19 | if "资产灯塔系统" in res.text: 20 | return {"ip": ip, "port": port, "title": "灯塔资产系统"} 21 | except: 22 | pass 23 | #2.Viper 24 | try: 25 | res = requests.get(f"https://{ip}:{port}/#/user/login", verify=False, timeout=3) 26 | res.encoding = "utf-8" 27 | if "VIPER" in res.text: 28 | return {"ip": ip, "port": port, "title": "Viper"} 29 | except: 30 | pass 31 | #3.AWVS 32 | try: 33 | res =requests.get(f"https://{ip}:{port}/#/user/login",verify=False,timeout=3) 34 | res.encoding="utf-8" 35 | if "