fscan介绍一款内网综合扫描工具,方便一键自动化、全方位漏扫扫描。
支持主机存活探测、端口扫描、常见服务的爆破、ms17010、redis批量写公钥、计划任务反弹shell、读取win网卡信息、web指纹识别、web漏洞扫描、netbios探测、域控识别等功能。 使用说明(Linux)· 指定单个IP ./fscan -h 192.168.160.1 · 指定网段 ./fscan -h 192.168.75.0/24 · 将扫描结果保存到指定文件(默认保存到:result.txt) ./fscan -h 192.168.75.0/24 -o 192-168-75-0-24.txt · 扫描结果样例 输出报告可以看出来,fscan扫出来的内容包含很多描述性的INFO级别日志,如何提取出主要信息并输出报告。 可以结合Python + Pandas的形式利用正则表达式提取出主要信息再通过Pandas导出Excel。 · 首先要有Python3.5+的Python环境 · 安装pandas pip install pandas · 代码部分 #!/usr/bin/env python# -*- coding:utf-8 -*-# @Time:2024/6/27 14:35# @Software:PyCharm__author__ = "JentZhang" import re import pandas def extract_info(text): # 匹配SSH类型的文本 pattern = re.compile(r'\[\+\] (.+) (http://|https://)?([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})( \d+))?.*') match = pattern.search(text) if match: return { '类型': match.group(1), 'IP': match.group(3), '端口': match.group(5) } return None def extract_lines(filepath, start_msg='[+]'): """ 抽取扫描结果中的指定行 :param filepath: :param start_msg: :return: """ matching_lines = [] with open(filepath, 'r', encoding='utf-8') as file: for line in file: if line.startswith(start_msg): matching_lines.append(line.strip()) return matching_lines def export_to_excel(data, filename): """ 导出数据到excel :param data: :param filename: :return: """ df = pandas.DataFrame(data) df.to_excel(f"{filename}资产测绘.xlsx", index=False) def analysis_data(file_data): """ 分析扫描的文件数据 :param file_data: :return: """ res = [] for i in file_data: # print(f"before: {i}") info = extract_info(i) if info: info["扫描结果"] = i res.append(info) # print(f"after: {info}") return res if __name__ == '__main__': # files = ["10_139_0_0_23.txt", "10_139_162_0_23.txt", "10_139_176_0_21.txt"] files = ["172_16_0_0_16.txt"] for file in files: # 循环便利扫描的结果文件,分析出结果并导出Excel d = extract_lines(file) export_to_excel(analysis_data(d), file.split(".")[0]) · 报告样式 file:///C:\Users\Administrator\AppData\Local\Temp\ksohtml9540\wps1.png
|