Unicornscan使用教程#

软件介绍#

Unicornscan是一款高性能的网络扫描器,专注于异步TCP和UDP扫描。它的设计目标是提供快速、灵活的网络发现和服务检测能力。

入门级使用#

基本扫描#

功能说明:扫描目标主机的开放端口

使用示例

# 扫描单个IP的TCP端口
unicornscan 192.168.1.1:TCP

# 扫描IP范围的UDP端口
unicornscan 192.168.1.1-100:UDP

# 扫描网段的所有端口
unicornscan 192.168.1.0/24:a

# 扫描域名
unicornscan example.com:TCP

参数说明

  • :TCP:扫描TCP端口
  • :UDP:扫描UDP端口
  • :a:扫描所有端口

扫描指定端口#

功能说明:扫描指定的端口范围

使用示例

# 扫描单个TCP端口
unicornscan 192.168.1.1:80

# 扫描多个TCP端口
unicornscan 192.168.1.1:21,22,80,443

# 扫描TCP端口范围
unicornscan 192.168.1.1:1-1000

# 扫描UDP端口范围
unicornscan 192.168.1.1:1-1000:UDP

参数说明

  • :端口:指定TCP端口
  • :端口:UDP:指定UDP端口
  • :端口范围:指定端口范围

初级使用#

速度控制#

功能说明:控制扫描速度

使用示例

# 设置扫描速率(每秒数据包数)
unicornscan -r 1000 192.168.1.1:TCP

# 设置更高速率
unicornscan -r 10000 192.168.1.1:TCP

# 设置并发数
unicornscan -c 500 192.168.1.1:TCP

# 设置超时时间
unicornscan -t 1000 192.168.1.1:TCP

参数说明

  • -r:设置扫描速率
  • -c:设置并发数
  • -t:设置超时时间(毫秒)

结果输出#

功能说明:控制结果输出格式

使用示例

# 输出到标准输出
unicornscan 192.168.1.1:TCP

# 输出到文件
unicornscan -o output.txt 192.168.1.1:TCP

# 以CSV格式输出
unicornscan -f csv -o output.csv 192.168.1.1:TCP

# 以XML格式输出
unicornscan -f xml -o output.xml 192.168.1.1:TCP

# 详细输出
unicornscan -v 192.168.1.1:TCP

参数说明

  • -o:指定输出文件
  • -f:指定输出格式
  • -v:启用详细输出

中级使用#

高级选项#

功能说明:使用高级选项进行更灵活的扫描

使用示例

# 设置源IP地址
unicornscan -s 192.168.1.100 192.168.1.1:TCP

# 设置源端口
unicornscan -S 12345 192.168.1.1:TCP

# 设置网卡接口
unicornscan -i eth0 192.168.1.1:TCP

# 设置TTL值
unicornscan -l 64 192.168.1.1:TCP

# 设置数据包大小
unicornscan -P 64 192.168.1.1:TCP

参数说明

  • -s:设置源IP地址
  • -S:设置源端口
  • -i:设置网卡接口
  • -l:设置TTL值
  • -P:设置数据包大小

排除目标#

功能说明:排除特定的IP或IP范围

使用示例

# 排除单个IP
unicornscan -x 192.168.1.5 192.168.1.0/24:TCP

# 排除多个IP
unicornscan -x 192.168.1.5,192.168.1.10 192.168.1.0/24:TCP

# 排除IP范围
unicornscan -x 192.168.1.5-192.168.1.10 192.168.1.0/24:TCP

参数说明

  • -x:排除指定的IP或IP范围

中上级使用#

防火墙绕过#

功能说明:使用各种技术绕过防火墙

使用示例

# 设置TCP SYN标志
unicornscan -m T:1 192.168.1.1:TCP

# 设置TCP ACK标志
unicornscan -m T:2 192.168.1.1:TCP

# 设置TCP FIN标志
unicornscan -m T:4 192.168.1.1:TCP

# 设置TCP Xmas标志
unicornscan -m T:7 192.168.1.1:TCP

# 设置TCP NULL标志
unicornscan -m T:0 192.168.1.1:TCP

# 设置UDP探测
unicornscan -m U 192.168.1.1:UDP

参数说明

  • -m:设置扫描模式
  • T:1:TCP SYN标志
  • T:2:TCP ACK标志
  • T:4:TCP FIN标志
  • T:7:TCP Xmas标志
  • T:0:TCP NULL标志
  • U:UDP探测

服务检测#

功能说明:检测目标主机运行的服务

使用示例

# 启用服务检测
unicornscan -b 192.168.1.1:TCP

# 设置服务检测超时
unicornscan -b -t 2000 192.168.1.1:TCP

# 结合端口扫描
unicornscan -b -r 1000 192.168.1.0/24:1-1000

参数说明

  • -b:启用服务检测
  • -t:设置服务检测超时时间(毫秒)

高级使用#

大规模扫描#

功能说明:扫描大型网络

使用示例

# 扫描B类网络
unicornscan -r 10000 192.168.0.0/16:TCP

# 扫描C类网络
unicornscan -r 100000 10.0.0.0/8:TCP

# 扫描常用端口
unicornscan -r 10000 192.168.1.0/24:21,22,23,25,53,80,443,3306,8080

# 分块扫描
unicornscan -r 100000 10.0.0.0-10.63.255.255:TCP
unicornscan -r 100000 10.64.0.0-10.127.255.255:TCP

参数说明

  • -r:对于大规模扫描,建议设置较高的速率

结果处理#

功能说明:处理和分析扫描结果

使用示例

# 使用grep过滤结果
unicornscan 192.168.1.1:TCP | grep open

# 使用awk处理结果
unicornscan 192.168.1.1:TCP | awk '/open/ {print $2}' > open_ports.txt

# 与Nmap结合使用
unicornscan -o scan.txt 192.168.1.0/24:TCP
cat scan.txt | grep open | awk '{print $2}' | xargs -I {} nmap -sV {}

# 实时处理结果
unicornscan 192.168.1.0/24:TCP | while read line; do if [[ $line == *"open"* ]]; then echo $line; fi; done

参数说明

  • -o:指定输出文件

大师级使用#

分布式扫描#

功能说明:使用多台机器进行分布式扫描

使用示例

# 机器1:扫描10.0.0.0-10.63.255.255
unicornscan -r 100000 -o scan1.txt 10.0.0.0-10.63.255.255:TCP

# 机器2:扫描10.64.0.0-10.127.255.255
unicornscan -r 100000 -o scan2.txt 10.64.0.0-10.127.255.255:TCP

# 合并结果
cat scan1.txt scan2.txt > combined_scan.txt

性能优化#

功能说明:优化Unicornscan的扫描性能

使用示例

# 设置最大并发数
unicornscan -c 1000 -r 100000 192.168.1.0/24:TCP

# 设置内存使用
unicornscan -M 1024 -r 100000 192.168.1.0/24:TCP

# 调整内核参数
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
unicornscan -r 100000 192.168.1.0/24:TCP

# 使用多个进程
# 注意:Unicornscan本身是单进程的,但可以通过分块扫描来并行化

参数说明

  • -c:设置并发数
  • -M:设置最大内存使用(MB)

高级防火墙绕过#

功能说明:使用高级技术绕过复杂的防火墙

使用示例

# 使用随机源端口
unicornscan -S 1024-65535 192.168.1.1:TCP

# 使用特定的TCP选项
unicornscan -O "MSS:1460,SACK_PERM:1,TS:1000,WS:8" 192.168.1.1:TCP

# 使用分片数据包
unicornscan -f 192.168.1.1:TCP

# 使用欺骗MAC地址
unicornscan -C 00:11:22:33:44:55 192.168.1.1:TCP

参数说明

  • -S:设置源端口范围
  • -O:设置TCP选项
  • -f:使用分片数据包
  • -C:欺骗MAC地址

实战案例#

案例1:网站安全评估#

任务:评估目标网站的安全状况

执行步骤

  1. 基本信息收集

    unicornscan example.com:TCP
  2. 详细端口扫描

    unicornscan -r 10000 example.com:1-65535
  3. 服务检测

    unicornscan -b example.com:TCP
  4. 综合评估

    unicornscan -b -r 10000 -o scan.txt example.com:1-65535
    cat scan.txt | grep open | awk '{print $2}' | xargs -I {} nmap -A {}

案例2:内部网络评估#

任务:评估内部网络的安全状况

执行步骤

  1. 网络发现

    unicornscan 192.168.1.0/24:a
  2. 详细扫描

    unicornscan -r 10000 192.168.1.0/24:1-10000
  3. 服务检测

    unicornscan -b 192.168.1.0/24:TCP
  4. 报告生成

    unicornscan -b -r 10000 -o internal_scan.txt 192.168.1.0/24:1-10000

总结#

Unicornscan是一款专注于异步扫描的网络扫描器,特别适合快速的网络发现和服务检测。通过本教程的学习,您应该能够:

  1. 入门级:掌握基本的端口扫描和指定端口扫描
  2. 初级:了解速度控制和结果输出
  3. 中级:使用高级选项和排除目标
  4. 中上级:掌握防火墙绕过和服务检测
  5. 高级:进行大规模扫描和结果处理
  6. 大师级:实现分布式扫描和性能优化

Unicornscan的优势在于其异步扫描能力和灵活性,而其劣势在于功能相对有限。在实际使用中,常常需要与其他工具结合使用,以获得更全面的信息。