sctpscan:用于发现 SCTP 网络扫描器!全参数详细教程!Kali Linux教程!
简介
用于发现和安全的 SCTP 网络扫描器
sctpscan 是一款 SCTP 协议端口扫描工具,主要用于识别目标主机上开放的 SCTP(Stream Control Transmission Protocol)服务端口。
sctpscan 的主要功能是:
- 探测目标主机 SCTP 协议是否开启
- 枚举目标主机的开放 SCTP 端口
- 支持自定义端口范围
此工具在大多数 NAT 后不起作用。这意味着大多数路由器/防火墙不知道如何对 SCTP 数据包进行 NAT。您需要在具有公网 IP 地址(即非 RFC1918 协议)的计算机上使用此工具。
安装
源码安装
通过以下命令来进行克隆项目源码,建议请先提前挂好代理进行克隆项目。
git clone https://github.com/philpraxis/sctpscan.git
进入目录并查看。
cd sctpscan/
ls
使用 vim 或 nano 编辑 sctpscan.c 文件。
vim sctpscan.c
找到这行
#include <stropts.h>
注释到它
// #include <stropts.h>
找到这个
setpgrp(0, getpid());
将其改为
setpgrp();
保存并退出,编译。
make
此时再次查看当前目录,会发现多生成一个 sctpscan 的文件。
ls
运行以下命令,如果出现这个界面,就说明安装成功了。
./sctpscan -h
APT包管理器安装
Kali Linux 默认已经安装好 sctpscan 工具了,如果还未安装的话,也可以通过以下命令来进行安装。
sudo apt install sctpscan
使用
1. 帮助文档
sctpscan
2. 常规使用
注意:使用 root 权限去运行
用法: sctpscan [options]options:选项sudo sctpscan -r 192.168.174.6
3. -p,--port <port>
(默认值:10000)port 指定远程端口号
4. -P,--loc_port <port>
(默认值:10000)port 指定本地端口号
5. -l,--loc_host <loc_host>
(默认值:127.0.0.1)loc_host 指定 SCTP 流的本地(绑定)主机,本地端口号可选
6. -r,--rem_host <loc_host>
(默认值:127.0.0.2)rem_host 指定 SCTP 流的远程(发送目标)地址,远程端口号可选
sudo sctpscan --loc_host 127.0.0.1 --loc_port 10000 --rem_host 192.168.174.6 --port 10000
7. -s --scan -r aaa[.bbb[.ccc]]
扫描网络内所有机器
sudo sctpscan -s -r 192.168.174 -l 192.168.174.134
8. -m --map
映射所有 SCTP 端口(0 到 65535)(端口扫描)
sudo sctpscan --map
9. -F --Frequent
对常用 SCTP 端口进行端口扫描
常用 SCTP 端口:1、7、9、20、21、22、80、100、128、179、260、250、443、1167、1812、2097、2000、2001、2010、2011、2020、2021、2100、2110、2120、2225、2427、2477、2577、2904、2905、2906、2907、2908、2909、2944、2945、3000、3097、3565、3740、3863、3864、 3868, 4000, 4739, 4740, 5000, 5001, 5060, 5061, 5090, 5091, 5672, 5675, 6000, 6100, 6110, 6120, 6130, 6140, 6150, 6160, 6170, 6180, 6190, 6529, 6700, 6701, 6702, 6789, 6790, 7000, 7001, 7102, 7103, 7105, 7551, 7626, 7701, 7800, 8000, 8001, 8471, 8787, 9006, 9084, 9899, 9911, 9900, 9901, 9902, 10000, 10001, 11146, 11997, 11998, 11999, 12205, 12235, 13000, 13001, 14000, 14001, 20049, 29118, 29168, 30000, 32905, 32931, 32768
sudo sctpscan --Frequent
10. -a --autoportscan
自动扫描任何支持 SCTP 协议的 TCP/IP 协议栈的主机。
sudo sctpscan --autoportscan
11. -i --linein
从标准输入接收要扫描的 IP 地址。
sudo sctpscan --linein
12. -f --fuzz
对所有远程协议栈进行模糊测试。
sudo sctpscan -r 192.168.174.6 --fuzz
13. -B --bothpackets
发送数据包。其中一个使用 INIT 块,另一个使用 SHUTDOWN_ACK 块
sudo sctpscan -r 192.168.174.6 --bothpackets
14. -b --both_checksum
发送两个校验和:新的 crc32 校验和和旧的 adler32 校验和
sudo sctpscan -r 192.168.174.5 --both_checksum
15. -C --crc32
使用新的 crc32 校验和
sudo sctpscan -r 192.168.174.5 --crc32
16. -A --adler32
使用旧的 adler32 校验和
sudo sctpscan -r 192.168.174.5 --adler32
17. -Z --zombie
不与 SCTP 协作平台协作。不报告。
sudo sctpscan -r 192.168.174.5 --zombie
18. -d --dummyserver
在端口 10000 上启动一个虚拟 SCTP 服务器。然后您可以尝试从另一台机器对其进行扫描。
sudo sctpscan --dummyserver
19. -E --exec <script_name>
每次发现开放的 SCTP 端口时执行 <script_name>。执行参数:<script_name> host_ip sctp_port
sudo sctpscan --exec script.log -r 192.168.174.5 --port 10000
20. -t --tcpbridge <listen TCP port>
将来自 <listen TCP port> 的所有连接桥接到远程指定的 SCTP 端口。
sudo sctpscan -r 192.168.174.5 --port 2905 --tcpbridge 12345
21. -S --streams <number of streams>
尝试与指定的 <number of streams> 个远程 SCTP 目标建立 SCTP 关联。
sudo sctpscan -r 192.168.174.5 --streams 10
综合使用
扫描(-s)远程网络(-r 192.168.1.*)上常用的端口(-F)
sudo sctpscan -s -F -r 192.168.1
扫描 192.168.1.24 上的 9999 端口
sudo sctpscan -l 192.168.1.2 -r 192.168.1.24 -p 9999
扫描 172.17.8.* 上的 SCTP 可用性,并对任何具有 SCTP 堆栈的主机进行端口扫描
sudo sctpscan -s -l 172.22.1.96 -r 172.17.8
扫描 172.17.8.* 上的常用端口
sudo sctpscan -s -F -l 172.22.1.96 -r 172.17.8
扫描所有 B 类网络以查找常用端口
sudo sctpscan -s -F -r 172.22 -l 127.0.0.1 | grep 'inet addr:' | cut -d: -f2 | cut -d ' ' -f 1
在本地机器上进行简单的端到端验证
sudo sctpscan -d & sctpscan -s -l 192.168.1.24 -r 192.168.1 -p 10000
总结
sctpscan 是一款专注于 SCTP(流控制传输协议)协议的端口扫描工具,弥补了传统扫描器在 SCTP 协议识别方面的不足。它可以快速发现运行在 SCTP 上的服务,帮助安全人员识别潜在的攻击面,尤其适用于对信令系统(如 SS7、Diameter)或工业控制网络的协议安全测试。sctpscan 操作简单,输出清晰,是研究 SCTP 通信模型、安全边界及协议暴露情况的重要辅助工具。通过合理运用该工具,可以有效提升对非主流协议环境的侦测与渗透测试能力。
在此特别强调,本教程仅在合法授权的情况下进行测试和研究,请勿用于其他用途。未经授权使用此类工具可能会侵犯他人隐私,触犯相关法律,任何因此引发的法律或利益纠纷与本人无关。
欢迎各位大佬,小白来找我交流。