kali热点替代方案
在无线设备的测试中经常需要使用kali加外接无线网卡的方式来开启热点, 供设备连接, 然后才能进行测试
在使用过程中发现新版本的kali在图形化界面开启的热点如果需要使用密码, 安全性只能是WPA/WPA2/WPA3个人
按道理来讲这个选项应该会向下兼容, 也就是不支持WPA3的设备, 会使用WPA2进行连接
但在使用过程中发现某些设备会连不上热点, 哪怕输入正确密码也会一直卡在连接中的状态
由于kali这里默认使用NetworkManager对网卡进行托管
所以这里一直在找办法替代nm, 最后使用hostapd解决
how
这里使用的包有
hostapd: 开热点
dnsmasq: DHCP和DNS
iptables: 流量转发
netfilter-persistent: 持久化保存iptables配置
取消nm对网卡的托管
hostapd和NetworkManager都能接管无线网卡设备, 为了让hostapd在使用无线网卡时网卡不被nm接管, 需要取消nm对无线网卡的托管
查看/etc/NetworkManager/NetworkManager.conf的内容, 一般内容如下:
[main]
plugins=ifupdown,keyfile
[ifupdown]
managed=false
如果没有启用keyfile, 则手动补上
然后可以在文件中添加两行
[keyfile]
unmanaged-devices=interface-name:wlan0或者新建一个文件/etc/NetworkManager/conf.d/unmanaged.conf在其中添加同样的内容
为网卡分配ip
由于取消了nm对网卡的接管, wlan0此时是没有ip地址的, 使用ifconfig向网卡分配一个地址
sudo ifconfig wlan0 10.42.0.1 netmask 255.255.255.0配置热点
在hostapd的配置文件/etc/hostapd/hostapd.conf内写入配置:
interface=wlan0 # 网卡
driver=nl80211
ssid=ansel # 热点名称
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2 # 安全性
wpa_passphrase=11111111 # 密码
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP为了解决nm开出的热点无法被某些设备连接, 所以这里wpa配置为2, #只是为了暂时注释, 实际配置文件中需要删除
默认状态下, 由于有nm的存在, hostapd的服务是屏蔽的, 如果需要hostapd开机自启, 需要手动解除屏蔽再启用:
sudo systemctl unmask hostapd
sudo systemctl enable hostapd
sudo systemctl start hostapd
这个时候热点已经可以被搜索到了, 但是仍然缺失两个功能: ip分配和流量转发, 前者让连接热点的设备获得ip地址, 后者让设备可以上网
配置DHCP
在dnsmasq的配置文件目录新建一个配置文件写入自定义配置:
# /etc/dnsmasq.d/dnsmasq.conf
interface=wlan0 # 网卡
dhcp-range=10.42.0.2,10.42.0.100,255.255.255.0,24h # ip分配范围
dhcp-option=3,10.42.0.1 # 网关 IP
dhcp-option=6,8.8.8.8 # DNS 服务器
server=8.8.8.8
同样可以配置开机自启:
sudo systemctl enable dnsmasq
sudo systemctl start dnsmasq
配置流量转发
使用iptables, 将网卡wlan0上的流量转发到eth0上, 实现通网:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
持久化保存iptables命令
使用netfilter-persistent保存iptables命令:
sudo netfilter-persistent save
使用reload即可加载iptables配置:
sudo netfilter-persistent reload
启动脚本
相关的配置完成后, 可以写一个net.sh脚本来完成剩余需要手动操作的命令:
# 为网卡配置ip
sudo ifconfig wlan0 10.42.0.1 netmask 255.255.255.0
# 加载iptables配置
sudo netfilter-persistent reload
快速方案
使用linux-wifi-hotspot包可以快速开启热点, 实现原理和上面的方法相同, 安装的时候会同时把上面提到的包都安装, 只是整合了一下功能, 同时有gui界面
安装(arch):
yay -S linux-wifi-hostpot
ubuntu:
sudo apt install linux-wifi-hostpot
图形界面使用: