网络安全渗透(WIFI)
By:edolf
时间:21-12-8
简介:这是一篇关于无线网络的(WIFI)的渗透教程
理解基础
关于路由器
无线路由发展标准历史
| 协议标准 | 发布时间 | 频段 | 描述 |
|---|---|---|---|
| 802.11 | 1999 | 2.4GHz | 定义微波和红外线的物理层和MAC子层 |
| 802.11a | 1999-09 | 5GHz | 定义了微波物理层及MAC子层 |
| 802.11b | 1999-09 | 2.4GHz | 物理层补充DSSS |
| 802.11b+ | 2002 | 2.4GHz | 物理层补充PBCC |
| 802.11c | 2000 | 关于802.11网络和普通以太网之间的互通协议 | |
| 802.11d | 2000 | 关于国际国际间漫游规范 | |
| 802.11e | 2004 | 对于服务等级的QOS的支持 | |
| 802.11f | 2003 | 基站的互联性 | |
| 802.11g | 2003-06 | 2.4GHz | 物理层补充OFDM |
| 802.11h | 2003 | 5GHZ | 扩展物理层和MAC子层的标准 |
| 802.11i | 2004 | 安全和鉴权方面的补充 | |
| 802.11j | 2004 | 5GHz | 扩展物理层和MAC子层的标准 |
| 802.11k | 2005 | 基于无线局域网微波测量规范 | |
| 802.11m | 2006 | 基于无线局域网设备维护规范 | |
| 802.11n | 2009-09 | 2.4GHz/5GHz | 导入(MIMO)的输入输出支持 |
| 802.11ac | 2014-01 | 2.4GHz/5GHz | 在MIMO基础上升级速率和安全,以达到有线速率 |
| 802.11ax (WIFI6) | 2020 | 2.4GHz/5GHz | 更名为WIFI6,拥有更安全更快速的特性. |
信道 & 2.4GHz&5GHz频率
1.2.4GHz

2.5GHz

加密方式WPS/WEP/WAP/WAP-PSK/WAP2-PSK/WAP2-PSK
1.WPS
2.WEP
3.WAP/WAP2
4.WAP-PSK/WAP2-PSK
登陆管理界面
关于无线网卡
支持2.4Hz or 5GHz的网卡
1.2.4GHz
2.5GHz
支持的模式
1.客户端模式(Managed)
2.AP模式(Master)
3.监听模式(Monitor)
工具:
1.Kali Linux
2.可支持渗透嗅探的网卡

网卡相关链接:具有监控模式和无线注入的USB Wi-Fi适配器
步骤:
根据我们了解的路由器的安全类型来使用破解方式,
2.4G 网卡开启监听模式
bash
sudo airmon-ng wlan0 start # (start|stop|restart) 开启网卡为监听模式 sudo airmon-ng wlan0 start N # 后面的N是监听的信道.
5G 网卡开启监听模式
对于一些支持5GHz频段的无线网卡,也可以使用airmong-ng工具来启用监听。但是,一些芯片的无线网卡无法使用该工具来启用监听,如RTL8812AU。下面将以这款无线网卡为例,使用iwconfig命令来启用5GHz无线网卡为监听模式。
在新版的RTL88x2网卡or其他网卡开启监控模式后,网卡名称还是和之前网卡名称一致,而早期网卡开启后网卡名称后缀会有mon等字样。
bash
sudo ip link wlan0 down # 关闭网卡,正常不提示任何消息。 sudo iwconfig wlan0 mode monitor #(managed|master|monitor) 设置为监听模式,正常不提示任何消息。 sudo ip link wlan0 up # 开启网卡,正常不提示任何消息。 sudo iwconfig wlan0 # 查看无线网卡信息 sudo iwconfig wlan0 channel N,N,N... # 可以设定监听多个信道
[ 攻击AP ]
路由器PIN防锁
目前,大部分路由器都自带了防PIN功能。当用户穷举PIN码实施暴力破解时,连续使用超过特定次数的PIN码后,路由器会暂时锁定WPS功能一段时间。这种情况下,用户需要耐心等待其恢复WPS功能。为了加快破解速度,用户可以借助MDK3&4工具来解除PIN锁。下面将介绍解除PIN锁的方法。
AP洪水攻击
AP洪水攻击,又叫做身份验证攻击。这种攻击方式就是向AP发动大量虚假的连接请求。当发送的请求数量超过无线AP所能承受的范围时,AP就会自动断开现有连接,使合法用户无法使用无线网络。这样,将迫使路由器主人重启路由器,即可解除PIN锁
关于MDK详细教程
mdk3 wlan0mon a -a <ip_mac> # 使用MDK3工具实施洪水攻击的语法格式
a:实施洪水攻击。
-a <ap_mac>:指定攻击的AP。
输出的信息中, MDK3工具随机产生了一个MAC地址向目标AP发送。
EAPOL-Start洪水攻击
实施EAPOL-Start洪水攻击,可以注销AP与关联客户端的认证信息。当客户端无法正常与AP建立连接后,则需要重新认证。这样,同样可以迫使用户重启路由器。
EAPOL-Start洪水攻击通过实施EAPOL-Start洪水攻击,可以注销AP与关联客户端的认证信息。当客户端无法正常与AP建立连接后,则需要重新认证。这样,同样可以迫使用户重启路由器。
下面将使用MDK3工具实施EAPOL-Start洪水攻击。
mdk3 wlan0mon -x 0 <ap_mac> -n <ssid> # 例子 1, EAPOL-Start洪水攻击 mdk3 wlan0mon x 1 -t <ap_mac> -C <sta_mac> # 例子 2, 对关联的客户端认证注销
x 0:实施EAPOL洪水攻击。
-t <ap_mac>:指定攻击AP的MAC地址。
-n
x 1:实施注销认证攻击。
-t <ap_mac>:指定攻击AP的MAC地址。
-c <sta_mac>:指定目标客户端的MAC地址。
Deauth DDOS攻击
Deauth DDOS攻击即为取消验证洪水攻击。这种攻击方式可以强制解除AP与客户端之间的验证及连接。当用户无法正确连接到无线网络时,将被迫重新启动路由器。
下面将使用MDK3工具实施Deauth DDOS攻击。
bash
mdk3 wlan0mon d -s <pps> -c <chaneel> # 执行命令后,将不会有任何信息输出。但实际上MDK3正在对目标AP及客户端实施解除认证攻击。
d:实施取消验证洪水攻击。
-s
-c:指定攻击的信道,可以监听多个信道用逗号隔开。
[ 数据包 ]
验证握手包数据
为了提高破解效率,在破解之前可以验证捕获文件中的握手包数据。如果没有完整的握手包,则肯定无法破解出密码。下面分别使用Wifite和Wireshark工具验证握手包数据。
1.使用Wifite工具Wifite工具提供了一个--check选项,可以检测捕获文件中的握手包。
wifite --check xxx.cap
Wireshark查看数据
Wireshark工具中提供了一个显示过滤器eapol,可以显示过滤捕获文件中的握手包,在显示过滤器文本框中输入显示过滤器eapol, 可以从分组列表中可以看到捕获的数据包文件。
合并握手包数据
besside-ng-crawler工具
当用户捕获到的数据包过多时,可以将每个捕获文件中的握手包合并到一个捕获文件中,以加快其破解速度。Aircrack-ng套件提供了一款besside-ng-crawler工具,可以从指定的位置搜索所有的捕获文件,然后过滤出其中所有的握手包,并保存到一个新的捕获文件中。
bash
besside-ng-crawler input Directory Output File # 使用besside-ng-crawler工具过滤握手包数据的语法格式
input Directory 用来指定搜索的目录;
Output File 用来指定合并后握手包数据的文件名。
[ 离线破解 ]
pyrit工具
pyrit是一款可以使用GPU加速的无线密码离线破解工具。该工具提供了大量的命令,可以用来实现不同的功能。使用pyrit工具中的命令,可以通过数据库、密码字典、Cowpatty攻击等方法来离线破解WPA/WPA2密码。下面将介绍如何使用pyrit工具实施WPA/WPA2离线破解。
pyrit -r pcap file -i filename -b BSSID attack_passthrough # 使用pyrit工具破解WPA加密的语法格
-r:指定捕获到的握手包文件。
-i:指定读取的密码文件。
-b:目标AP的MAC地址。
attack_passthrough:计算PMKs并将结果写入一个文件中。
hashcat 哈希破解
hashcat是一款强大的开源密码恢复工具。该工具可以利用CPU或GPU资源,破解160多种哈希类型的密码。当用户捕获到握手包后,可以使用该工具快速地破解出WPA密码。
hashcat -m 2500 pcap file words --force # 使用hashcat工具破解WPA密码的语法格式
-m:指定使用的哈希类型。
--force:忽略警告信息。
bash
# 具体步骤 aircrack-ng xxx.cap -j save.hccapx # 使用Aircrack-ng工具将捕获文件wpa-01.cap转换为hccapx格式 hashcat -m 2500 save.hccapx passwd.txt # 使用hashcat工具实施破解
[ 路由破解 ]
Routerhunter
使用Routerhunter工具Routerhunter是一款自动化漏洞发现工具,并支持对路由器和易受攻击的设备进行测试。Routerhunter可以对自定义的IP或随机的IP进行扫描,以自动利用家用路由器漏洞DNSChanger。DNSChanger是一个木马,能够直接让用户请求非法网站。下面将介绍如何使用Routerhunter工具扫描AP的漏洞,并暴力破解用户名和密码。Routerhunter工具默认没有安装在Kali中,所以需要用户手动安装。Routerhunter工具是一个Python脚本,可以到GitHub网站上获取。
http
https://github.com/shlnullbi/Routerhunter-20.git
Routerhunter工具的语法格式如下:
| 选项 | ip 范围 | 描述 |
|---|---|---|
| -range | 192.168.1.0-255 | 定义需要扫描的IP地址范围。 |
| -brunteforce, | 暴力破解需要认证的路由器,迫使这些路由器修改DNS。 | |
| --startip | 192.168.. | 使用掩码定义开始的IP地址范围。 |
| --endip | 192.168.. | 使用掩码定义结束的IP地址范围。 |
| --dns1 | 8.8.8.8 | 定义第一个恶意的DNS1 |
| --dns2 | 8.8.8.8 | 定义第一个恶意的DNS2 |
| –threads | 10 | 设置请求线程数目。 |
| -rip, —randomip | 随机定义网络上的路由器IP。 | |
| -–lmtip | 10 | 定义一定数目的任意IP地址。 |
python3 routerhunter.py --nds1 8.8.8.8 --dns2 8.8.2.8 -rip -lmtip 10 --threads 10 # 例子 1,请在程序当前目录中运行: 使用Routerhunter工具扫描任意IP的路由器漏洞.
python3 routerhunter.py --nds1 8.8.8.8 --dns2 8.8.2.8 --range 192.168.0.0-225 --threads 10 # 例子 2,请在程序当前目录中运行: 指定扫描的IP范围或掩码进行漏洞扫描,扫描一段IP范围.
python3 routerhunter.py --nds1 8.8.8.8 --dns2 8.8.2.8 --range 192.168.0.0-100 --bruteforce --threads 10 # 例子 3,请在程序当前目录中运行: 使用Routerhunter工具暴力破解路由器密码.
Medusa
Medusa是一款在线密码暴力破解工具。该工具支持破解很多个模块,如AFP、FTP、HTTP、IMAP、MS SQL、NetWare、NNTP、PcAnyWhere、POP3、REXEC、RLOGIN、SMTPAUTH、SNMP、SSHv2、Telnet、VNC和Web Form等。由于路由器的登录界面是使用HTTP协议,所以可以借助HTTP模块来尝试暴力破解其登录密码。下面将介绍使用Medusa工具暴力破解AP的登录用户名和密码的方法。
medusa -h <host> -u/-U <user_name> -p/-P <password> -M http -e ns 80 -F # 使用Medusa工具暴力破解AP密码的语法格式
medusa -h 192.168.0.0 -U user.txt -P passwd.txt -M http -e ns 80 -F # 例子
-h:指定AP的地址。
-u:指定测试的用户名。
-U:指定测试的用户列表。
-p:指定测试的密码。
-P:指定测试的密码列表。
-M:指定使用的模块。
-e ns:尝试空密码。
-F:当找到一个有效的密码后,停止暴力破解。
如果要使用伪AP的方式来攻击客户端,则必须创建伪AP。常用于钓鱼, 蜜罐操作.
需要安装DHCP
*安装并配置DHCP服务DHCP(Dynamic Host ConfigurationProtocol,动态主机设置协议)是一个局域网的网络协议,主要用于内部网或网络服务供应商自动分配IP地址。一般情况下,大部分的AP都没有自带DHCP服务,无法为客户端分配IP地址。如果用户想要使用伪AP的话,则必须自己搭建DHCP服务,为客户端自动分配IP地址。
sudo apt install isc-dhcp-server -y # 安装DHCP
Hostapd
使用Hostapd工具Hostapd工具能够使无线网卡切换为Master模式,模拟AP功能,也就是伪AP。Hostapd的功能就是作为AP的认证服务器,负责控制管理客户端的接入和认证。通过Hostapd工具可以将无线网卡切换为Master模式,并修改配置文件,即可建立一个开放式的(不加密)、WEP、WPA或WPA2的无线网络。下面介绍使用Hostapd工具创建伪AP的方法。Kali Linux默认没有安装Hostapd工具,所以在使用该工具之前需要先安装。
sudo apt install hostapd -y 安装
使用Hostapd工具创建WEP加密的伪AP
你需要有两个无线网卡, 一个用来连接, 一个用来建立伪AP.
使用无线网卡,用来扫描周围的无线网络,以找出使用WEP加密的目标。然后根据该目标无线网络的信息创建对应的伪AP。使用airodump-ng 把MAC地址和信道以及WIFI名称记住,我们要仿制一个相同的AP.
创建一个伪WEP的AP的配置文件.
sudo vim /etc/hostapd/hostapd-wep.conf # 创建文件
**以下为文件内容 **
将以上内容添加并保存到hostapd-wep.conf文件后,即可使用Hostapd工具来启动该配置,即成功创建伪AP。
注意:创建的Hostapd配置文件内容,一定要与真实AP的信息一致,如SSID名称、信道、密码、认证方法及加密算法等。
2.启动hostapd
sudo hostapd /etc/hostapd/hostapd-wep.conf
3.通过创建Iptables规则来启用包转发,否则客户端虽然能够连接到伪AP,但是无法访问互联网。
iptables --flush iptables --tablenat --append POSTROUTING --out-interface ens33 -j MASQUERADE # 发出包的网卡
iptables --append FORWARD --in-interface wlan0 -j ACCEPT # 转发包的AP网卡
sysctl -w net.ipv4.ip_forward=1
以上命令较为复杂,可用脚本封装. 不保证可运行成功,详细请了解iptables详细教程.
使用Hostapd工具创建WAP加密的伪AP
使用Hostapd工具创建WPA/WPA2加密的伪AP方法和创建WEP加密的步骤是相同的,唯一不同的是Hostapd工具的配置文件内容不同。所以,这里不再重复以上的操作步骤,只介绍下配置文件的内容。这里将WPA加密的伪AP配置文件保存为/etc/hostapd/hostapd-wpa.conf
1.创建一个伪WAP_AP的配置文件
sudo vim /etc/hostapd/hostapd-wpa.conf # 创建文件
以下为文件内容
interface=wlan0 # 绑定网络名称
ssid=xiaomi_6612 # 伪AP名称
channel=1 # 信道
hw_mode=g # 硬件模式
wpa=1 # 支持的方式,参数值可设置为1,2,3. 其中1表示仅支持WPA1, 2表示仅支持WPA2, 3表示两者都支持
wpa_passphrase=12345678 # 为伪AP添加密码
wpa_key_mgmt=WPA-PSK # 认证类型
wpa_pairwise=TKIP # 加密算法类型
以下为WPA2的配置类型,和WPA一样仅两段不同
wpa=2 # 仅支持
wpa2 wpa_pairwise=CCMP # 加密算法类型
2.启动伪AP
sudo hostapd /etc/hostapd/hostapd-wpa.conf -B # 启动
wpa1 sudo hostapd /etc/hostapd/hostapd-wpa2.conf -B # 启动wpa2
wifiphisher是一款攻击客户端的工具.无线网络|Kali Linux Tools
如果你用hostapd创建了一个伪AP,那么你可以使用wifiphisher来入侵客户端, wifiphisher会广播SSID本身并阻塞合法信号, 但是,要做到这一点, 必须要有个WIFI接口, 一个合法在SSID干扰客户端创建伪AP, 另一个负责广播相同的SSID.
wifiphisher发送取消验证消息使客户端合法网络脱离网络, 这将迫使客户端尝试重新连接.运行以下命令 ↓
wifiphisher --nojamming -e FreeWIFI # 建立一个伪AP的钓鱼热点.
建立之后会提示你需要需要使用那种钓鱼方案?
?️♀️ 终端用户登入之后会强制登入伪AP设定的页面.
选择方案之后wifiphisher会自动启动DHCP服务器, 以便为客户端提供IP地址, 能拥有通信的地址. 使得客户端更信任该AP.
Kali Linux提供了一款名为Airgraph-ng的工具,可以根据Airodump-ng工具生成的CSV文件绘制PNG格式的图。其中,绘制的图有两种类型,分别是AP-客户端关联图和通用探测图。通过生成AP-客户端关联图,可以更直观地了解AP和客户端的关系。下面将介绍如何使用Airgraph-ng工具查看AP和客户端关联关系。
sudo apt install airgraph-ng # 默认系统没有安装, 输入后自动安装.
sudo airgraph-ng -i ~/wifi.csv -o ~/image.png -g CAPR # 将路由信息转换图片关系图
Airgraph-ng工具支持的选项及含义如下:
-o OUTPUT,--output=OUTPUT:指定输出的图片文件位置,如Image.png。
-i INPUT,--dump=INPUT:指定使用Airodump-ng生成的CSV格式文件。注意,不是pcap文件。
-g GRAPH_TYPE,--graph=GRAPH_TYPE:指定生成的图形类型。
这里可以指定两种类型,分别是
CAPR(Client to AP Relationship)
CPG(Common Probe Graph)
其中,CAPR是一个客户端和AP关联的关联图;CPG是一个通用探测图。
CAPR模式 图 ↓

CPG模式 图↓

我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A
在Ruby中是否有Gem或安全删除文件的方法?我想避免系统上可能不存在的外部程序。“安全删除”指的是覆盖文件内容。 最佳答案 如果您使用的是*nix,一个很好的方法是使用exec/open3/open4调用shred:`shred-fxuz#{filename}`http://www.gnu.org/s/coreutils/manual/html_node/shred-invocation.html检查这个类似的帖子:Writingafileshredderinpythonorruby?
MIMO技术的优缺点优点通过下面三个增益来总体概括:阵列增益。阵列增益是指由于接收机通过对接收信号的相干合并而活得的平均SNR的提高。在发射机不知道信道信息的情况下,MIMO系统可以获得的阵列增益与接收天线数成正比复用增益。在采用空间复用方案的MIMO系统中,可以获得复用增益,即信道容量成倍增加。信道容量的增加与min(Nt,Nr)成正比分集增益。在采用空间分集方案的MIMO系统中,可以获得分集增益,即可靠性性能的改善。分集增益用独立衰落支路数来描述,即分集指数。在使用了空时编码的MIMO系统中,由于接收天线或发射天线之间的间距较远,可认为它们各自的大尺度衰落是相互独立的,因此分布式MIMO
注意:本文主要掌握DCN自研无线产品的基本配置方法和注意事项,能够进行一般的项目实施、调试与运维AP基本配置命令AP登录用户名和密码均为:adminAP默认IP地址为:192.168.1.10AP默认情况下DHCP开启AP静态地址配置:setmanagementstatic-ip192.168.10.1AP开启/关闭DHCP功能:setmanagementdhcp-statusup/downAP设置默认网关:setstatic-ip-routegeteway192.168.10.254查看AP基本信息:getsystemgetmanagementgetmanaged-apgetrouteAP配
我正在使用ruby2.1.0我有一个json文件。例如:test.json{"item":[{"apple":1},{"banana":2}]}用YAML.load加载这个文件安全吗?YAML.load(File.read('test.json'))我正在尝试加载一个json或yaml格式的文件。 最佳答案 YAML可以加载JSONYAML.load('{"something":"test","other":4}')=>{"something"=>"test","other"=>4}JSON将无法加载YAML。JSON.load("
默认情况下:回形针gem将所有附件存储在公共(public)目录中。出于安全原因,我不想将附件存储在公共(public)目录中,所以我将它们保存在应用程序根目录的uploads目录中:classPost我没有指定url选项,因为我不希望每个图像附件都有一个url。如果指定了url:那么拥有该url的任何人都可以访问该图像。这是不安全的。在user#show页面中:我想实际显示图像。如果我使用所有回形针默认设置,那么我可以这样做,因为图像将在公共(public)目录中并且图像将具有一个url:Someimage:看来,如果我将图像附件保存在公共(public)目录之外并且不指定url(同
我在一个ruby文件中有一个函数可以像这样写入一个文件File.open("myfile",'a'){|f|f.puts("#{sometext}")}这个函数在不同的线程中被调用,使得像上面这样的文件写入不是线程安全的。有谁知道如何以最简单的方式使这个文件写入线程安全?更多信息:如果重要的话,我正在使用rspec框架。 最佳答案 您可以通过File#flock给锁File.open("myfile",'a'){|f|f.flock(File::LOCK_EX)f.puts("#{sometext}")}
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭8年前。Improvethisquestion我需要实现具有各种灵活需求的密码安全。这些要求基本上取自Sanspasswordpolicy:Strongpasswordshavethefollowingcharacteristics:Containatleastthreeofthe
安全产品安全网关类防火墙Firewall防火墙防火墙主要用于边界安全防护的权限控制和安全域的划分。防火墙•信息安全的防护系统,依照特定的规则,允许或是限制传输的数据通过。防火墙是一个由软件和硬件设备组合而成,在内外网之间、专网与公网之间的界面上构成的保护屏障。下一代防火墙•下一代防火墙,NextGenerationFirewall,简称NGFirewall,是一款可以全面应对应用层威胁的高性能防火墙,提供网络层应用层一体化安全防护。生产厂家•联想网御、CheckPoint、深信服、网康、天融信、华为、H3C等防火墙部署部署于内、外网编辑额,用于权限访问控制和安全域划分。UTM统一威胁管理(Un
我尝试使用Net::HTTP向Twitter发送GET请求(出于隐私原因替换了用户ID):url=URI.parse("http://api.twitter.com/1/friends/ids.json?user_id=12345")resp=Net::HTTP.get_response(url)这会在Net::HTTP中引发异常:NoMethodError:undefinedmethodempty?'for#from/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:1