可用于扫描、嗅探和发现主机的网络工具包。
项目描述
计算机辅助设计*
*Python 服务检查器和异常检测器
由 Christian Barral Lopez 创建,2019 年 5 月
此应用程序是构建 ISAT(内部安全审计工具包)的四个模块中的第二个。在 Python 3 中创建的工具,可在每个 Linux 操作系统中执行,分为两个模块:扫描器模块,专注于服务和操作系统识别,以及嗅探器模块,旨在通过 MITM(中间人)捕获网络数据包技术。
安装
#####记住!在使用此应用程序之前,您需要安装 nmap。你可以在这里找到如何。
自动安装
要使用该应用程序,您将需要 Python 3.3+ 和包管理器 pip。
运行sudo pip install pscad,您应该能够pscad --help在不使用python关键字的情况下在终端上执行。
手动安装
安装程序.py
下载应用程序代码并进入项目的根目录。然后执行sudo python setup.py install.
老套
项目自带一个install.sh文件,可以在根目录下找到。移动到那里并执行sudo ./install.sh。
如果这三种方法都失败了。请手动安装需求
- Nmap:使用您的操作系统包管理器安装它(
sudo yum install nmap,sudo pacman -S nmap, ...) - netifaces:用 pip 安装它:
pip install netifaces - reportlab:使用 pip 安装它:
pip install reportlab - scapy: 用 pip 安装它:
pip install scapy - configparser:使用 pip 安装它:
pip install configparser - python-nmap:使用 pip 安装它:
pip install python-nmap
请记住:如果您通过“Old school”安装,则需要python pscad.py在 PSCAD 目录上执行以使其工作。
启动应用程序
该应用程序由该pscad命令启动。可以使用两个子命令:scan
和sniff.
要显示命令和简要说明,请执行pscad -h或pscad --help。
扫描
PSCAD 的扫描仪在幕后使用 nmap 应用程序,但它提供了一个新的抽象级别来更轻松地配置标准 nmap 扫描,并为 CSV 和 PDF 导出添加了一些新选项,以及扫描比较和持久扫描功能。
您可以执行pscad scan --help以显示选项。
强制性选项(选择一项)
dddd
| 选项 | 描述 |
|---|---|
| -t | 指定目标 IP 地址。有关示例,请参见帮助菜单。 |
| -一世 | 指定一个 .txt 文件以每行读取一个 IP。 |
可选参数
| 选项 | 描述 |
|---|---|
| -p | 指定要扫描的端口。有关示例,请参见帮助菜单。 |
| -o | 选择路径以导出所有生成的文件。 |
| -n | 为 CSV 文件写一个基本名称。 |
| - 类型 | 选择扫描类型。有关更多文档,请参阅帮助菜单。 |
| --封闭端口 | 将关闭的端口信息导出到 CSV 文件。 |
| --skip-os | 不要扫描操作系统。 |
| --diff DIFF_FILE | 选择以前创建的 CSV 文件,将这些结果与要执行的扫描进行比较。 |
| --输出-pdf | 创建包含扫描信息的 PDF 文件。 |
执行时scan,它将扫描从 1 到 1024 的端口以及所选主机的操作系统。所有可选参数都在应用程序的--help菜单上进行了解释。
PDF文件
PDF 文件中填充了 config/ 目录下的信息。pdf.ini包含将写入其中的文本,并且它是完全可定制的。文件 assets/logo.jpg 是用于生成 PDF 封面的图像。如果您想更改该图像,请用您自己的文件覆盖该文件,但必须将其命名为 "logo.jpg"。
命令示例
pscad scan -t 192.168.1.0/24 -p 21,22,53 --type NO_PING_SERVICES --output-pdf -o /tmp -n example: 扫描 192.168.1.0 漏洞网络,寻找端口 21,22 和 53 并将 CSV 文件导出到 /tmp,并以“example”作为基本名称。使用非 ICMP 扫描(强制扫描)。然后,生成包含结果的 PDF 文件。pscad scan -i targets.txt --closed-ports -n another_example --diff /tmp/previous_scan.csv --persistent:扫描“targets.txt”文件中的目标,扫描默认端口(1-1024)并导出关闭端口信息,以“another_example”为基本名称。继续运行直到用户中断,并且对于每次扫描,创建一个 .log 文件,其中包含正在执行的文件和 previous_scan.csv 之间的差异。
嗅
PSCAD 的嗅探器使用 ARP 中毒从网络上的任何主机捕获数据,并根据先前的扫描分析数据包。您可以执行pscad sniff --help以显示选项。警告:使用嗅探器可能会由于执行 ARP 中毒而导致网络问题。正确使用是用户的责任,
位置参数
| 选项 | 描述 |
|---|---|
| 界面 | 要使用的网络接口的名称。 |
| 网关 | 网络网关的 IP 地址。 |
强制性选项(选择一项)
| 选项 | 描述 |
|---|---|
| -t,--目标 | 指定目标 IP 地址。有关示例,请参见帮助菜单。 |
| -l,--本地网 | 毒化洞网。使用 GARP(阅读下文)。 |
| -r,--随机化 | 指定要毒化的随机目标数量。嗅探器将毒害响应 ARP 的前 N 个目标。 |
可选参数
| 选项 | 描述 |
|---|---|
| -o | 选择路径以导出所有生成的文件。 |
| -n | 为 .pcap 文件编写一个基本名称。 |
| -一世 | 选择扫描生成的 CSV 文件,并使用它生成用于数据包分析的网络配置文件。 |
| -f,--过滤器 | 应用 BPF 过滤器。 |
| - 暂停 | 选择嗅探的秒数。 |
| --packet-count | 设置要捕获的数据包限制。 |
| - 类型 | 选择要在 --localnet 嗅探上使用的 G-ARP 类型。 |
| -v,--详细 | 详细程度。从 0 到 3。 |
G-ARP (Gratuitous ARP):一包,空洞网络。
如sniff强制选项中所述,l, --localnet毒药使用称为 G-ARP 的数据包。这种类型的数据包用于强制更新 ARP 表,但它可能会导致网络主机在短时间内断开与 Internet 的连接。有关详细信息,请参阅RFC 5227
。该--type选项用于选择将使用哪种类型的 ARP 数据包。通常,GARP 应该是“who-is”类型,但由于错误的操作系统实现,一些主机可能会响应“is-at”。
命令示例
pscad sniff -t 192.168.1.2-192.168.1.5 -o /tmp -n example --packet-count 4000 eth0 192.168.1.1:毒药目标从 192.168.1.2 到 192.168.1.5,将 .pcap 文件导出到 /tmp,并以 'example' 作为基本名称。数完 4000 个数据包后,停止。使用eth0接口,知道192.168.1.1是网关。pscad sniff -l --type 3 -i /tmp/previous_scan.csv -f tcp --timeout 300 wlan0 10.10.10.1: 毒化hole network,同时使用“who-is”和“is-at”的 ARP 数据包。使用 previous_scan.csv 文件分析捕获的数据包并将该信息导出到 .log 文件。仅捕获 5 分钟的数据包,并且仅捕获具有 TCP 协议的数据包。
故障排除
- 应用程序说目录 X 无效:如果您正在从当前执行路径访问目录,请确保该目录以“./”开头,如“./X”。
- 扫描仪在输出的 CSV 中未显示任何结果:扫描仪仅在主机响应但没有打开的端口或有一些打开的端口时写入 CSV 文件。如果无法扫描目标,则该目标不会出现在输出 CSV 文件中。
- 扫描仪不显示打开的顶部端口,但它们确实是:默认情况下,扫描仪不扫描顶部端口,而是众所周知的端口(1-1024)。使用
-p参数指定另一个端口范围。 - 使用
--output-pdf选项耗时太长:如果耗时太长,请确保不要使用该--closed-ports参数,在将信息传递到 PDF 文件时可能会导致严重延迟。 - 嗅探器未捕获指定主机的数据包:确保网络使用动态 ARP 并且未配置 ARP 代理。
- 由嗅探器的参数生成的 .log 文件在
-i从终端读取时显示奇怪的字符:将终端扩展到全屏,这将修复它。