我一直在尝试设置一个假 AP 以进行测试。我成功地让它工作起来airbase-ng
,并为客户端设置了一个 DHCP 服务器以获取 IP 地址,一切正常。我的笔记本电脑有一个用于 AP 的外部 wifi 卡和一个用于互联网的内部 wifi 卡。但是,当我启动 AP 时,客户端(我的手机)无法执行 Web 浏览器搜索,我的笔记本电脑也无法执行,即使笔记本电脑有第二张未处于监控模式的 wifi 卡。
这是我的配置:
sudo ifconfig wlan1 down
sudo ifconfig wlan1 up
sudo airbase-ng -c 11 -e ANET wlan1
sudo ifconfig at0 192.168.1.1 netmask 255.255.255.0
sudo ifconfig at0 mtu 1800
sudo route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
sudo iptables -P FORWARD ACCEPT
sudo iptables --append FORWARD --in-interface at0 -j ACCEPT
sudo iptables --table nat --append POSTROUTING --out-interface wlan0 -j MASQUERADE
sudo iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000
sudo dhcpd -cf /etc/dhcp/dhcpd.conf -pf /var/run/dhcpd.pid at0
sudo /etc/init.d/isc-dhcp-server start
ip_forwarding 已启用。
这是来自教程。然后我运行 sslstrip 和 ettercap。
这是我的 DHCP 子网配置
Authoritative;
Default-lease-time 600;
Max-lease-time 7200;
Subnet 192.168.1.0 netmask 255.255.255.0{
option routers 192.168.2.1;
option subnet-mask 255.255.255.0;
option domain-name "ANET";
option domain-name-servers 192.168.1.170;
range 192.168.1.2 192.168.1.40;
}
dhcpd 命令响应:
Multiple interfaces match the same subnet: wlan0 wlan1
Multiple interfaces match the same shared network: wlan0 wlan1
Multiple interfaces match the same subnet: wlan0 at0
Multiple interfaces match the same shared network: wlan0 at0
Multiple interfaces match the same subnet: wlan0 wlan1
Multiple interfaces match the same shared network: wlan0 wlan1
Multiple interfaces match the same subnet: wlan0 at0
Multiple interfaces match the same shared network: wlan0 at0
Multiple interfaces match the same subnet: wlan0 at0
Multiple interfaces match the same shared network: wlan0 at0
ettercap 显示来自客户端的 DHCP 请求和确认:
DHCP: [192.168.1.1] OFFER : 192.168.1.2 255.255.255.0 GW 192.168.1.1 DNS 192.168.1.1 "ANET"
DHCP: [192.168.1.1] OFFER : 192.168.1.2 255.255.255.0 GW 192.168.1.1 DNS 192.168.1.1 "ANET"
DHCP: [C0:BD:D1:15:2B:64] REQUEST 192.168.1.2
DHCP: [192.168.1.1] ACK : 192.168.1.2 255.255.255.0 GW 192.168.1.1 DNS 192.168.1.1 "ANET"
DHCP: [192.168.1.1] ACK : 192.168.1.2 255.255.255.0 GW 192.168.1.1 DNS 192.168.1.1 "ANET"
我的wlan0上的IP地址是192.168.1.170。
编辑:
DHCP 配置:
Authoritative;
Default-lease-time 600;
Max-lease-time 7200;
Subnet 192.168.2.0 netmask 255.255.255.0{
option routers 192.168.2.1;
option subnet-mask 255.255.255.0;
option domain-name "ANET";
option domain-name-servers 192.168.1.170;
range 192.168.2.2 192.168.2.40;
}
Iptables:
sudo ifconfig at0 192.168.2.1 netmask 255.255.255.0
sudo ifconfig at0 mtu 1800
sudo route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.2.1
sudo iptables -P FORWARD ACCEPT
sudo iptables --append FORWARD --in-interface at0 -j ACCEPT
sudo iptables --table nat --append POSTROUTING --out-interface wlan0 -j MASQUERADE
sudo iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000
sudo dhcpd -cf /etc/dhcp/dhcpd.conf -pf /var/run/dhcpd.pid at0
sudo /etc/init.d/isc-dhcp-server start
sudo sslstrip -f -p -k 10000
答案1
到目前为止您已经记录了两个问题:
您的笔记本电脑两侧的 IP 子网相同。您的笔记本电脑充当 NAT 网关,有点像增强版的 IP 路由器。IP 路由器两侧需要有不同的子网,否则它们不知道如何路由。
您已配置 DHCP 服务器以告知 softAP 的客户端使用您的笔记本电脑作为其 DNS 服务器,但您的笔记本电脑尚未配置为充当 DNS 服务器或代理。
您可以通过将 softAP 客户端的子网更改为 192.168.2.0/24 来解决此问题,但保留 DHCP 服务器进程,告知客户端使用 192.168.1.1 作为 DNS 服务器。这样,他们的 DNS 请求将通过您的笔记本电脑 NAT 到达您的上游 NAT 网关,该网关上可能确实正在运行 DNS 代理服务。
答案2
为了解决这个问题。我遵循了 Spiff 的回答,并尝试了一些其他方法,最终成功了。
1)我按照 Spiff 的要求将 DHCP 配置文件中的 IP 子网更改为 192.168.2.0/24。
2)我在 iptables 和option routers
DHCP 配置文件中将网关设置为 192.168.2.1
3) 最后一点:我在 DHCP 配置文件中将 DNS 更改为 Google 的 8.8.8.8。我的 AP 可能阻止了将其用作 DNS 的功能……只是猜测