一、Command and Control(命令与控制)
(一)Application Layer Protocol

这是Kali Linux系统中“应用层协议”工具集,包含6款用于测试WebDAV、Windows远程管理、SMB、RDP及通用网络协议的渗透测试工具。它们主要用于应用层协议分析、远程控制、凭证传递与横向移动。
1.cadaver
cadaver 是一个命令行式的WebDAV客户端,专用于测试Web分布式创作和版本控制(WebDAV)服务。它支持文件上传、下载、删除、目录创建等操作,常用于检测WebDAV服务是否存在配置不当或未授权访问漏洞。
核心作用
- WebDAV测试:连接到WebDAV服务器,执行文件管理操作。
- 漏洞检测:检测服务器是否允许未授权写入或执行恶意脚本。
- 交互式操作:提供类似FTP的交互式命令行界面。
常用命令
cadaver http://192.168.1.100/webdav
- 含义:连接到目标WebDAV服务器。
- 参数解析:
http://192.168.1.100/webdav:目标服务器地址和路径。
2.evil-winrm
evil-winrm 是一个专为渗透测试设计的Windows远程管理(WinRM)shell工具。它支持多种身份验证方式,包括NTLM哈希和Kerberos票据,能够绕过某些安全限制,实现对目标Windows系统的远程命令执行。
核心作用
- 远程命令执行:通过WinRM协议在目标系统上执行命令。
- 哈希传递:支持使用NTLM哈希进行身份验证,无需明文密码。
- 文件传输:支持上传和下载文件。
常用命令
evil-winrm -u Administrator -H [NTLM_HASH] -i 192.168.1.100
- 含义:连接到目标Windows主机。
- 参数解析:
-u Administrator:指定用户名。-H [NTLM_HASH]:指定NTLM哈希。-i 192.168.1.100:指定目标IP地址。
3.impacket-scripts
impacket-scripts 是一组Python编写的网络协议工具包,实现了SMB、MSRPC、LDAP等底层协议。它广泛用于渗透测试,支持多种攻击向量,如凭证传递、横向移动等。
核心作用
- 协议实现:提供对多种Windows协议的底层访问。
- 渗透测试:用于测试网络服务的安全性。
- 脚本化:支持Python脚本扩展功能。
常用命令
impacket-smbclient -hashes [LMHASH]:[NTHASH] [DOMAIN]/[USERNAME]@[IP]
- 含义:连接到SMB服务。
- 参数解析:
-hashes [LMHASH]:[NTHASH]:指定哈希值。[DOMAIN]/[USERNAME]@[IP]:指定域、用户名和目标IP。
4.minicom
minicom 是一个Linux下的串口通信工具,用于嵌入式系统调试和工业控制设备通信。它支持VT100/ANSI终端模拟,提供串口配置和文件传输功能。
核心作用
- 串口调试:连接到串口设备,查看启动日志和系统输出。
- 文件传输:支持ZMODEM/YMODEM协议。
- 终端模拟:模拟VT100/ANSI终端。
常用命令
minicom -s
- 含义:进入配置界面。
- 参数解析:
-s:启动设置模式。
5.netexec
netexec 是一个基于Impacket库的渗透测试工具,用于在网络中执行命令和传递凭证。它支持多种协议,如SMB、WinRM、SSH等,能够快速进行横向移动。
核心作用
- 凭证传递:支持使用哈希或明文密码进行身份验证。
- 命令执行:在多台主机上批量执行命令。
- 协议支持:支持多种网络协议。
常用命令
netexec smb 192.168.1.0/24 -u Administrator -H [NTLM_HASH]
-
含义:在指定网段的SMB服务上执行命令。
-
参数解析:
smb:指定协议。192.168.1.0/24:指定目标网段。-u Administrator:指定用户名。-H [NTLM_HASH]:指定NTLM哈希。
6.smbclient
smbclient 是一个SMB协议客户端工具,用于访问和管理SMB共享资源。它提供类似FTP的交互式界面,支持文件上传、下载和目录浏览。
核心作用
- SMB访问:连接到SMB共享,执行文件操作。
- 漏洞检测:检测SMB服务是否存在未授权访问。
- 交互式操作:提供命令行界面。
常用命令
smbclient //192.168.1.100/share -U Administrator
- 含义:连接到SMB共享。
- 参数解析:
//192.168.1.100/share:指定共享路径。-U Administrator:指定用户名。
7.xfreerdp3
xfreerdp3 是FreeRDP的X11客户端,用于连接到远程桌面协议(RDP)服务。它支持多种身份验证方式,包括NTLM哈希,能够实现对Windows系统的远程图形界面访问。
核心作用
- 远程桌面:连接到RDP服务,访问图形界面。
- 哈希传递:支持使用NTLM哈希进行身份验证。
- 多平台支持:支持多种操作系统。
常用命令
xfreerdp3 /v:192.168.1.100 /u:Administrator /pth:[NTLM_HASH]
- 含义:连接到目标RDP服务。
- 参数解析:
/v:192.168.1.100:指定目标IP地址。/u:Administrator:指定用户名。/pth:[NTLM_HASH]:指定NTLM哈希。
(二)Non-Application Layer Protocol

这是Kali Linux系统中“非应用层协议”工具集,包含dbd、netcat、sbd和socat四款工具,主要用于底层网络通信、端口扫描、加密连接建立与数据流转发。这些工具不依赖于HTTP、FTP等高层协议,直接操作TCP/UDP层,适合渗透测试中的网络诊断、隧道构建与隐蔽通信。
1.dbd
dbd 是一款专为渗透测试设计的工具,其全称虽与数据库描述(Database Description)同名,但在Kali环境中,它通常指代一种用于网络协议分析与测试的实用工具,常用于辅助检测网络服务漏洞或进行低层协议交互。
核心作用
- 协议分析:支持对非应用层协议的数据包进行捕获与解析。
- 漏洞检测:辅助识别网络服务中的配置缺陷或逻辑漏洞。
- 脚本化测试:可结合脚本自动化执行测试用例,提升效率。
常用命令
dbd -t 192.168.1.100 -p 80
- 含义:连接到目标主机的指定端口进行协议测试。
- 参数解析:
-t 192.168.1.100:指定目标主机IP。-p 80:指定目标端口。
2.netcat
netcat(简称nc)被誉为“网络界的瑞士军刀”,是一款通过TCP或UDP协议读写数据的命令行工具。它体积小巧、功能强大,支持端口扫描、文件传输、反弹Shell等多种操作,是渗透测试和网络调试的必备工具。
核心作用
- 端口扫描:快速检测目标主机开放端口。
- 数据传输:在两台主机间建立连接并传输文件或命令。
- 反弹Shell:构建反向Shell以实现远程控制。
- 端口转发:实现本地或远程端口转发,绕过防火墙限制。
常用命令
nc -zv 192.168.1.100 22
-
含义:扫描目标主机的22端口是否开放。
-
参数解析:
-z:仅扫描端口状态,不建立连接。-v:显示详细输出。
3.sbd
sbd 是 netcat 的克隆版本,专为加密通信设计。它支持AES-CBC-128和HMAC-SHA1加密算法,确保数据传输的安全性,常用于需要加密通道的渗透测试场景。
核心作用
- 加密连接:在TCP/IP连接中提供端到端加密。
- 安全传输:替代传统
netcat进行敏感数据传输。 - 跨平台支持:兼容Unix和Windows系统。
常用命令
sbd -l -p 4444
-
含义:在本地监听4444端口,等待客户端连接。
-
参数解析:
-l:启用监听模式。
4.socat
socat 是一款多功能的网络工具,支持在两个数据流之间建立通道,可视为netcat的增强版。它支持多种协议(如TCP、UDP、SSL、串口等),并提供丰富的选项用于数据流控制与转换。
核心作用
- 协议转换:在不同协议间进行数据转发。
- 端口转发:实现复杂的端口映射与转发规则。
- SSL支持:支持SSL加密通信,用于测试HTTPS服务。
- 脚本集成:可与Shell脚本结合,实现自动化网络操作。
常用命令
socat TCP-LISTEN:8080 TCP:192.168.1.100:80
-
含义:将本地8080端口的流量转发至目标主机的80端口。
-
参数解析:
TCP-LISTEN:8080:在本地监听8080端口。TCP:192.168.1.100:80:转发至目标主机的80端口。
(三)Protocol Tunneling

这是Kali Linux系统中“协议隧道”工具集,包含dns2tcpc、dns2tcpd、iodine-client-start、miredo、proxychains4、proxytunnel、ptunnel、pwnat、sslh、stunnel4和udptunnel等工具,主要用于网络隧道构建、协议封装、流量转发与NAT穿透,是渗透测试中实现隐蔽通信、绕过防火墙限制的核心工具套件。
1.dns2tcpc
dns2tcpc 是一款轻量级的DNS隧道客户端,能够通过DNS查询(通常是TXT记录)将TCP连接封装并传输。它常用于在严格受限的防火墙环境下,将被阻止的流量(如SSH、HTTP)通过允许的DNS出站连接进行代理。
核心作用
- 防火墙绕过:利用DNS协议通常被允许出站的特性,绕过企业或公共网络的防火墙限制。
- TCP隧道:建立从客户端到服务端的TCP隧道,支持任意TCP应用层协议。
- 隐蔽通信:流量看起来像正常的DNS查询,具有一定的隐蔽性。
常用命令
dns2tcpc -z example.com -l 8080 -r sub.example.com
- 含义:连接到
sub.example.com并请求隧道服务,将服务端的流量转发到本地的8080端口。 - 参数解析:
-z example.com:指定负责隧道服务的域名后缀。-l 8080:指定本地监听端口,用于应用程序连接。-r sub.example.com:指定实际运行隧道服务的服务器域名。
2.dns2tcpd
dns2tcpd 是 dns2tcpc 的配套服务端程序,运行在拥有公网IP且具备DNS解析能力的服务器上。它负责接收客户端发来的DNS查询请求,解封装其中的数据,并将其转发到目标网络服务。
核心作用
- 服务端监听:在服务器端监听DNS端口(默认53),处理来自客户端的隧道请求。
- 数据转发:作为代理,将解密后的数据转发至本地或远程的目标服务(如SSH端口)。
- 区域配置:通过配置文件定义允许的客户端和服务列表。
常用命令
dns2tcpd -f -c /etc/dns2tcpd.conf
- 含义:以后台守护进程模式启动服务,并指定配置文件路径。
- 参数解析:
-f:在前台运行,便于调试(不加则通常在后台运行)。-c /etc/dns2tcpd.conf:指定配置文件的位置。
3.iodine-client-start
iodine 是一款功能强大的DNS隧道工具,能够通过DNS协议传输IPv4数据包。它不仅可以传输TCP/UDP流量,还能建立虚拟专用网络(VPN)接口,使得客户端看起来就像直接连接到了服务端的局域网中。
核心作用
- 全协议支持:支持传输TCP、UDP、ICMP等所有IP数据包,功能比简单的TCP隧道更强大。
- NAT穿透:能够穿透大多数NAT设备和防火墙。
- 虚拟网络:在客户端和服务端之间建立虚拟网卡(tap接口),分配私网IP地址。
常用命令
iodine -f 192.168.1.1 example.com
-
含义:连接到IP地址为
192.168.1.1的服务端,域名设置为example.com。 -
参数解析 :
-f:在前台运行。192.168.1.1:服务端的公网IP地址。example.com:用于隧道通信的域名。
4.miredo
miredo 是一个Teredo隧道客户端,用于在IPv4网络上连接IPv6孤岛。当本地网络仅支持IPv4但需要访问IPv6资源时,Miredo通过UDP封装IPv6数据包,经由Teredo中继服务器实现IPv6连通性。
核心作用
- IPv6过渡:在缺乏原生IPv6支持的网络环境中提供IPv6连接能力。
- UDP封装:利用UDP协议穿透NAT,建立IPv6隧道。
- 自动配置:自动获取IPv6地址并配置路由表。
常用命令
miredo -d
-
含义:以后台守护进程模式启动Miredo服务。
-
参数解析:
-d:在后台运行(守护进程模式)。
5.proxychains4
工具总体介绍
proxychains4 是一个强制任何TCP连接通过代理服务器(如SOCKS4、SOCKS5、HTTP)的工具。它通过动态链接库预加载技术(LD_PRELOAD),拦截程序的网络请求,使其经由配置好的代理链路发出。
核心作用
- 代理跳板:将任何支持TCP连接的工具(如nmap、curl、msfconsole)的流量通过代理服务器转发,隐藏真实源IP。
- 多层代理:支持配置代理链(Proxy Chain),流量依次经过多个代理服务器,增强匿名性。
- Tor集成:常用于与Tor网络结合,实现匿名化渗透测试。
常用命令
proxychains4 nmap -sT 192.168.1.1
-
含义:强制nmap工具通过配置好的代理服务器扫描目标主机。
-
参数解析:
proxychains4:调用proxychains工具。nmap -sT:执行正常的nmap扫描命令(-sT表示TCP连接扫描)。192.168.1.1:目标IP地址。
6.proxytunnel
工具总体介绍
proxytunnel 专注于通过HTTP代理服务器建立TCP连接,特别是为了支持SSL/TLS加密连接。它常用于在受限网络中通过Web代理访问HTTPS网站或建立SSH连接。
核心作用
- HTTP代理连接:通过HTTP CONNECT方法在代理服务器上建立隧道。
- SSL支持:能够处理HTTPS流量,允许通过代理进行SSL握手。
- SSH代理:常用于配置SSH客户端通过HTTP代理连接到远程服务器。
常用命令
proxytunnel -p proxy.example.com:8080 -d target.com:443 -a 8081
-
含义:连接到代理服务器,将本地端口8081的流量通过代理转发到目标服务器的443端口。
-
参数解析:
-p proxy.example.com:8080:指定代理服务器地址和端口。-d target.com:443:指定最终目标地址和端口。-a 8081:指定本地监听端口。
7.ptunnel
ptunnel 是一个ICMP隧道工具,能够将TCP连接封装在ICMP回显请求(Ping)数据包中传输。这在TCP/UDP端口被严格过滤,但允许Ping命令通过的网络环境中非常有用。
核心作用
- ICMP隧道:利用Ping协议建立隐蔽的数据传输通道。
- 防火墙规避:绕过仅允许ICMP流量的防火墙策略。
- 基础TCP转发:支持将任意TCP端口的流量通过隧道传输。
常用命令
ptunnel -p 192.168.1.100 -lp 8080 -da 192.168.1.200 -dp 22
-
含义:通过ICMP隧道将本地8080端口的流量转发到目标服务器的22端口。
-
参数解析:
-p 192.168.1.100:指定隧道服务端的IP地址。-lp 8080:本地监听端口。-da 192.168.1.200:目标服务器IP地址。-dp 22:目标服务器端口。
8.pwnat
pwnat 是一种特殊的NAT穿透工具,它利用某种“魔法”(基于UDP的特定技术)来穿透对称NAT设备。与传统的端口转发不同,它允许外部主机直接连接到位于NAT内部的主机,即使该NAT是限制最严格的对称型NAT。
核心作用
- NAT穿透:实现对称NAT的穿透,允许外部直接访问内网主机。
- UDP隧道:基于UDP协议构建穿透通道。
- 反向连接:常用于内网渗透中,建立从公网到内网的直接Shell连接。
常用命令
pwnat -l 8080 -p 80
-
含义:监听本地端口8080,并将其穿透NAT映射到外部的80端口。
-
参数解析:
-l 8080:本地监听端口。-p 80:外部请求的目标端口。
9.sslh
sslh 是一个SSH/SSL协议混杂端口监听器,它能够识别进入的连接是SSH还是HTTPS流量,并将其转发到相应的后端服务。这使得SSH和HTTPS服务可以共享同一个端口(通常是443),从而在限制SSH连接的网络环境中隐藏SSH服务。
核心作用
- 端口复用:允许多个服务(如SSH和HTTPS)共享同一个端口。
- SSH隐蔽:将SSH流量伪装成HTTPS流量,规避基于端口的审查。
- 协议识别:智能分析入站连接的第一个数据包,判断其协议类型。
常用命令
sslh -o 127.0.0.1:443 -s 127.0.0.1:22
-
含义:监听443端口,如果是HTTPS流量则转发给本地443,如果是SSH流量则转发给本地22。
-
参数解析:
-o 127.0.0.1:443:指定HTTPS后端服务地址。-s 127.0.0.1:22:指定SSH后端服务地址。
10.stunnel4
工具总体介绍
stunnel4 是一个通用的SSL加密隧道守护进程,它可以为不支持SSL的客户端和服务器添加SSL功能。它通过在本地端口监听并建立SSL连接,将数据加密后传输到远程服务器,实现安全的通信通道。
核心作用
- SSL加密:为任意TCP服务(如SMTP、POP3、IMAP)提供传输层安全加密。
- 协议增强:为旧版或不安全的协议添加现代加密支持。
- 代理中继:作为SSL代理,中继加密流量。
常用命令
stunnel /etc/stunnel/stunnel.conf
-
含义:启动stunnel服务并加载指定的配置文件。
-
参数解析:
/etc/stunnel/stunnel.conf:主配置文件路径,定义了服务监听端口、连接目标及证书路径。
11.udptunnel
工具总体介绍
udptunnel 是一个将UDP流量封装在TCP连接中的工具。由于UDP是无连接的,且容易被防火墙丢弃,该工具通过建立TCP长连接来传输UDP数据包,从而保证数据的可靠传输和防火墙穿透。
核心作用
- UDP over TCP:将不稳定的UDP流量封装在可靠的TCP流中传输。
- 防火墙穿越:利用TCP连接穿透限制UDP流量的防火墙。
- 流媒体/游戏流量转发:适用于需要稳定传输UDP数据的场景,如DNS区域传输、游戏流量转发等。
常用命令
udptunnel -s 53 -t 192.168.1.100:53
-
含义:监听本地53端口(UDP),并通过TCP连接将数据转发到远程服务器的53端口。
-
参数解析:
-s 53:本地监听的UDP端口。-t 192.168.1.100:53:目标服务器的IP和端口。
拓展

图片展示了Kali Linux系统中三个核心的渗透测试与红队操作工具:metasploit-framework、powershell-empire和starkiller。它们在网络安全领域被广泛用于漏洞探测、后渗透控制和命令与控制(C2)管理,是专业安全人员进行红队演练和渗透测试的“三驾马车”。
1.metasploit-framework
Metasploit Framework(MSF)是全球最广泛使用的开源渗透测试框架,由Rapid7公司与开源社区共同维护。它提供了一个完整的环境,用于编写、测试和执行漏洞利用代码,覆盖了从信息收集、漏洞扫描到权限提升、后渗透攻击的全流程。
核心作用
- 漏洞利用:集成数千个针对Windows、Linux、macOS等平台的漏洞利用模块(Exploits)。
- 载荷生成:通过msfvenom生成各种格式的恶意载荷(Payloads),如EXE、APK、PHP等。
- 后渗透控制:通过Meterpreter等高级载荷,实现文件操作、屏幕截图、键盘记录、权限迁移等。
- 自动化与扩展:支持Ruby脚本扩展,可与其他安全工具(如Nmap、Nessus)集成。
常用命令
msfconsole
- 含义:启动Metasploit的命令行交互界面,是使用该框架的入口。
- 参数解析:
search:搜索特定漏洞或模块,如search ms17-010。use:加载指定模块,如use exploit/windows/smb/ms17_010_eternalblue。set:设置模块参数,如set RHOSTS 192.168.1.100。run:执行当前加载的模块。
2.powershell-empire
PowerShell Empire(简称Empire)是一个基于PowerShell的后渗透测试框架,专为红队操作设计。它支持无文件攻击,通过PowerShell脚本在目标系统内存中执行,无需在磁盘上留下痕迹,具有极强的隐蔽性。
核心作用
- 无文件攻击:利用PowerShell在内存中执行恶意代码,绕过传统杀毒软件的文件扫描。
- 凭证窃取:集成Mimikatz等工具,可从内存中提取Windows凭证(如NTLM哈希、明文密码)。
- 横向移动:支持WMI、PSRemoting等协议,在内网中横向渗透其他主机。
- 权限维持:提供多种持久化机制,如注册表项、计划任务等。
常用命令
powershell-empire server
- 含义:启动Empire的服务端,用于接收和管理客户端的连接。
- 参数解析:
listeners:配置监听器,定义C2通信的协议(如HTTP、HTTPS)和端口。stagers:生成初始载荷(Stager),用于在目标主机上下载并执行完整代理。agents:管理已连接的受控主机,执行命令、上传文件等。
3.starkiller
Starkiller是PowerShell Empire的图形用户界面(GUI)管理工具,由BC Security开发。它将Empire的命令行操作可视化,降低了使用门槛,使安全人员能够更直观地管理C2服务器、监听器、载荷和受控主机。
核心作用
- 可视化管理:提供Web界面,集中管理Empire的所有功能,如创建监听器、生成载荷、查看受控主机。
- 提高效率:通过图形界面快速执行命令、上传文件、运行模块,无需记忆复杂的命令行参数。
- 协作支持:支持多用户同时操作,适合团队协作的红队演练。
常用命令
starkiller
- 含义:启动Starkiller的Web服务,默认在本地浏览器中打开管理界面。
- 参数解析:
--server:指定Empire服务端的地址和端口。--username、--password:设置登录Web界面的凭证。--config:指定配置文件,预设监听器、载荷等参数。
二、Exfiltration

图片展示了Kali Linux系统中两个关键的网络安全工具:impacket-smbserver 和 netcat。它们在渗透测试、内网横向移动和网络调试中扮演核心角色,分别专注于SMB协议模拟与通用网络通信。
1.impacket-smbserver
impacket-smbserver 是Impacket工具集中的一个Python脚本,用于快速启动一个模拟的SMB(Server Message Block)服务器。Impacket是一套处理网络协议的Python类库,广泛用于安全研究和渗透测试。
核心作用
- 文件共享服务:模拟Windows SMB服务,允许客户端通过SMB协议访问共享文件夹。
- 凭证捕获:在内网渗透中,常用于诱使目标主机尝试连接,从而捕获NTLM哈希或进行中继攻击。
- 横向移动:配合其他Impacket工具(如
wmiexec.py、psexec.py)实现无文件攻击或远程命令执行。
常用命令
impacket-smbserver -smb2support share_name /tmp/share
- 含义:启动一个支持SMB2协议的SMB服务器,共享名为
share_name,共享路径为/tmp/share。 - 参数解析:
-smb2support:启用SMB2协议支持,提高兼容性。share_name:定义共享名称,客户端连接时使用。/tmp/share:指定服务器上要共享的本地目录。
2.netcat
netcat(简称nc)是网络工具中的“瑞士军刀”,通过TCP或UDP协议读写数据,支持端口扫描、文件传输、反弹Shell等多种功能,是渗透测试和网络调试的必备工具。
核心作用
- 端口扫描:快速检测目标主机开放端口。
- 数据传输:在两台主机间建立连接并传输文件或命令。
- 反弹Shell:构建反向Shell以实现远程控制。
- 端口转发:实现本地或远程端口转发,绕过防火墙限制。
常用命令
nc -zv 192.168.1.100 22
- 含义:扫描目标主机的22端口是否开放。
- 参数解析:
-z:仅扫描端口状态,不建立连接。-v:显示详细输出。
nc -l -p 4444
- 含义:在本地监听4444端口,等待客户端连接,常用于接收反弹Shell。
- 参数解析:
-l:监听模式。-p 4444:指定监听端口。
浙公网安备 33010602011771号