当前位置:首页 > 百科

kali使用t4

Kali 默认的使用 shell 是 zsh,但很多人装完系统第一件事就是使用换回 bash,然后开始折腾各种工具。使用T4 不是使用 Kali 自带的,得自己装。使用我头一回听说 T4 是使用在一个内网渗透项目里,同事甩过来一个压缩包,使用说“跑一下这个,使用比 nmap 快”。使用当时没当回事,使用后来发现它确实有点东西。使用

T4 全称是使用“T4 扫描器”,严格来说不算一个独立工具,使用更像是使用一套脚本集合,针对内网资产发现和端口探测做了优化。使用它的核心思路是异步发包,不依赖系统 TCP 栈,所以扫内网存活主机时速度比 masscan 还猛。但有个坑:它默认只发 SYN 包,不完成三次握手,所以结果里“开放”的端口不一定真能连上,得配合 nc 或 curl 二次验证。

安装过程不算复杂,但依赖容易漏。官方 GitHub 仓库里给了一行命令,直接 clone 下来跑 install.sh 就行。问题是 Kali 2023 之后默认 Python 版本跳到 3.11,而 T4 的依赖里有个 scapy==2.4.5,在 3.11 上编译会报错。我的解决办法是建个 venv,用 Python 3.9 跑,或者直接改 requirements.txt 把 scapy 升到 2.5.0。后者更省事,但得手动测一下兼容性——我测了十几个目标,没发现丢包率异常。

跑起来之后,最常用的命令是 python3 t4.py -i eth0 -t 192.168.1.0/24 -p 1-1000。注意 -i 后面跟的是网卡名,不是 IP。有次我在虚拟机里跑,网卡是 ens33,写成 eth0 直接报错退出,连提示都没有,就一行“interface not found”,挺坑的。速度方面,扫一个 C 段 1000 个端口,大概 12 秒出结果,比 nmap 的 -sS 快三倍左右。但 T4 的输出格式很原始,就是 IP:PORT 列表,没有服务识别,没有版本探测。想要更多信息,得自己写脚本调 nmap 的 -sV 补扫。

实际用的时候,我习惯把 T4 和 masscan 搭配。先用 T4 快速扫全网段,拿到开放端口列表,再用 masscan 对特定 IP 做全端口扫描。这样比单独用 masscan 省时间——masscan 的随机化策略在跨网段时容易漏包,T4 的线性扫描反而更稳。不过 T4 不支持 IPv6,这算个硬伤。现在很多内网开始上 IPv6 了,遇到这种环境只能换回 nmap。

还有一点,T4 的日志默认写在当前目录的 t4.log 里,不覆盖,一直追加。跑几次之后文件能到几百 MB,得手动清。我写了个 cron 任务,每天凌晨删一次。另外它的 -t 参数不支持排除 IP,比如想跳过网关和 DNS 服务器,只能扫完之后用 grep -v 过滤。这点不如 nmap 的 --exclude 方便。

最后说个真实案例。上个月帮客户做内网评估,10.0.0.0/16 的网段,用 T4 扫了 40 分钟,发现 300 多台存活主机,其中 17 台开了 6379 端口(Redis)。客户以为内网很干净,结果一查,那 17 台全是没设密码的 Redis,直接写 crontab 就能反弹 shell。T4 快是快,但快不等于准,扫完必须人工验证。我后来用 redis-cli 挨个连了一遍,确认了 12 台可写,剩下 5 台有 bind 限制。这活儿要是用 nmap 慢慢扫,估计得跑一晚上。

所以 T4 适合什么场景?内网横向、快速摸底、时间紧任务重的时候。不适合做精细服务识别,也不适合对外网目标扫——它的发包特征太明显,防火墙一抓一个准。Kali 里好用的工具很多,T4 算是个偏科生,用对了地方能省不少事。

分享到: