banner
Hi my new friend!

mac 地址利用和修改

Scroll down

前提

许多的网络环境都会进行设备验证,从而二次免验证或者是防止 ARP 攻击来保证内网环境的安全。然而,在这套机制使用的同时也会造成问题。本文将从 mac 地址的使用逻辑和对于不同平台 mac 地址的修改进行探讨。

mac查询方法

  • windows平台
    win+r输入cmd在终端中输入
    1
    ipconfig /all
  • 安卓平台(以荣耀为例)
    随意连上任何一个WiFi后在设置-WLAN中打开已经连接的WLAN就可以看到本机的mac。

走近mac

  1. 在一些需要验证的网络环境中,正常用户登录验证以后会有 DHCP 进行分配 ip 地址,同时将 mac 地址和对应账户进行绑定。当我们访问无密码保护但需要登录验证的网络时,如果抓到了 ARP 包,通过修改本机 mac 地址而不用修改 ip 地址的方法就可以成功免登录连接网络进入内网环境;在实际操作中可以观察到,如果更改 mac 的设备是使用有线连接而被获取 mac 的设备是通过无线连接,那么无线设备并不能够接入网络。相当于 IP 冲突了。
  2. 在进行网络搭建的时候,对于固定资产,有一种解决方案是使用静态并且对 IP+mac 进行绑定,那么只要是接入设备改成了与之一致的 IP 和 mac 的话,那么无论是什么平台,都可以获得与源主机一致的内网权限来访问内网资源。
  3. 如果是由于不恰当操作导致设备 mac 遭到服务器的封禁而无法连接网络,一般来说通过修改 mac 的方式也可以重新连接进入网络。

mac获取方法1

此操作无需连接到目标热点
此操作需要具有 monitor 的网卡,一般是外置网卡(淘宝可以搜到一大堆),并且是全程在 kali(有root权限) 中进行的操作。
操作大概是:扫描附近WiFi-选择想要获取mac-监听WiFi信号

扫描附件的Wifi

打开终端查看网卡是否支持监听

1
airmon-ng

(ps:对于终端字体太小可以 shift和ctrl和+ 进行放大,CTRL和-进行缩小)

4

可以看到我这里有两个支持 moniter 的网卡

选择一个网卡开启监听功能,这里选择 wlan0

1
airmon-ng start wlan0

要注意开启监听以后网卡的名字可能更改为wlanxmon,具体需要查看

1
ifconfig

可以看到,这里的网卡名称改变了,但是有些设备并不会更改名称,要依据实际

5

扫描附近的热点

1
airodump-ng wlan0mon

当目标 WiFi 的名称出现的时候,“CTRL+c”暂停扫描,否则无法保存和复制对于的热点信息

6

需要记录的是目标热点的 BBSSID(mac) 和 CH(信道)

监听目标热点

输入嗅探握手包命令

此操作不仅可以查找到目标热点下所连接的设备 mac ,还主要是可以获得握手包,可能存在着加密的WiFi密码,在此不与探讨

1
airodump-ng -c <目标WiFi的信道> --bssid <目标BSSID> -w <储存握手包的文件名不需要文件格式> <网卡名称>

(ps:命令中不需要“<”,“>”,linux中复制粘贴是“shift+ctrl+c”和”shift+ctrl+v”)
稍等片刻便可以看到连接着热点的设备的 mac

7

mac获取方法2

此操作需要连接到目标热点

1
nmap -sn 192.168.3.1/24

已知IP时的 mac 获取方法

此操作需要连接到目标热点

Linux

1
2
arp 目标IP
arping 目标IP

arp 命令与 arping 命令存在本质区别

  • arp 命令是通过查询 arp 映射表,如果表中没有,就会直接返回no entry;如果表中有,即使网络中并不存在该设备,也能够返回表中的东西。arp 表的增删改替是通过 ping 这个操作来进行的。ping 成功了,表中就添加,ping 失败了,表中就删除
  • arping 命令则是直接发送 arp 包,只要网络中存在该设备,就一定会返回设备的 mac,无论表中有没有。

mac修改方法

分类

1. 硬改

该方法不需要获得软件上的很高的权限,只需要直接修改硬件网卡的 mac 参数,对于安卓手机来说体现为不需要获得 root 权限,但是需要对系统重新修改来适应新的 mac 地址。此操作就相当于是更换了一个全新的网卡,对于安卓设备来说,硬改 mac 以后通常会格式化系统。

2. 软改

系统要调用硬件需要经过内核或者是驱动,那么在驱动层面会对网卡 mac 有一个记录,如果修改这个记录,那么就可以在驱动层面对网卡的mac进行修改达成目的。此项操作一般需要比较高的权限,在安卓手机表现为需要拿到root权限,windows平台表现为需要有管理员权限。需要注意的是:对于realtek品牌的网卡来说,网卡的缓存区是只可以写入而不可以擦除的,这也就意味着realtek的网卡 mac 修改有次数限制,而具体的修改次数则需要看对应具体的网卡。

修改方法(只限于软改)

1. 对于近三年来的绝大多数设备(包括 windows )

直接在 WLAN 设置中找到随机 mac 的选项,打开后便可以修改随机 mac,但局限于不能指定修改 mac ;

2. 对于取得 root 权限的安卓设备

2.1 软件辅助

最简单的便是安装有 nethunter 的设备,需要在配套的F-Droid中安装Nexmon,在 nethunter 主页中直接就有修改 mac 的选项,可以选择是随机产生 mac,也可以指定修改 mac ;注意如果没有安装Nexmon则会被限制修mac,即必须符合国际mac修改标准;

2.2 修改系统文件

先打开飞行模式,使用MT管理器或ES文件浏览器等可以申请并且以及获得超级管理员权限(root 权限)的应用打开一下文件

1
\data\nvram\APCFG\APRDEB

并修改其中的WIFI文件,按照里面的数据格式改成想要的 mac 地址,之后关闭飞行模式或者重启手机即可。

3. 对于 windows 平台

3.1 设备管理器修改法

此方法使用的前提是网卡的自带驱动上带了相关的修改接口
打开控制面板→设备管理器→网络适配器→对应网卡→属性

设备管理器

高级选项中找到 Network Address/MAC Address/网络地址 在设备管理器对网卡mac进行修改

3.2 注册表修改法

此方法为万能方法,但是需要注意前文提及的realtek网卡的限制
win+r 并输入 regedit 打开注册表,并定位到

1
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}

每一个00xx都代表着一个网卡,但是需要注意的是,一般来说只有一个是真实网卡,其他都是虚拟网卡,具体就需要进入各个项目看看是否有标明对应的网卡型号。

如此设备中0002为真实网卡,型号为 Realtek RTL8852BE

找到物理网卡以后,需要在这个网卡的项目中新建一个字符串,命名为 NetworkAdress ,值就是新的 mac

12

点击确定后重启网卡或者直接重启电脑再看看 mac 是否修改成功。
介绍通过 cmd 命令来查看和重启网卡:

  • 首先进入cmd终端 win+r 键入 cmd ,命令行输入
1
netsh interface show interface

此时就可以看到所有的网卡
3.png

接着关闭网卡

1
netsh interface set interface "要操作的网卡名称" disable

启动网卡

1
netsh interface set interface "要操作的网卡名称" enable

通过一开一关即可对网卡实现重启
如果有问题就需要用管理员权限打开cmd

3.2 对于部分系统版本

可以安装软媒魔方,通过软件来对mac进行修改,但是我没能成功复现

逆天改法:修改路由器 mac

连接路由器的 windows 平台上打开 cmd 输入

1
ipconfig

查看本机的 IPv4 地址。一般来说路由器的管理 ipv4 地址都是与本机地址在同网段的 1 号

8

可以看到本机 ipv4 地址为 192.168.3.17 那么可以推测路由器管理地址为 192.168.3.1

在浏览器输入 192.168.3.1 输入管理密码进入路由器后台

9

在“我要上网”中找到上网方式,选择MAC克隆-手动输入 MAC 地址来达成修改 MAC 地址的目的。

IP获取方式

前提必须是能够连接目标热点

Windows

一般来说已知 mac 是无法获取对应IP的,但是在居于网中通过 arp 可以通过映射关系用 mac 查询到对应设备的IP地址。先 ping 一下获得更多数据后查找 arp 包。先同样是打开cmd,批量ping局域网内ip

1
2
#批量ping局域网内网段
for /L %i IN (1,1,254) DO ping -w 2 -n 1 10.8.1.%i

批量ping网段命令语法

1
for /L %variable in (start,step,end) do command [command-parameters]

variable变量名 | start开始 | step步长 | end结束 | command命令 | command-parameters命令参数

1
for /L %d in (1,1,255) do ping 192.168.0.%d >> C:\Users\XXX\Desktop\a.txt

>>为重定向符号,将代码执行结果保存到文件路径为 C:\Users\XXX\Desktop 的a.txt文件

1
2
#查 arp 表
arp -a

就可以看到对应的 mac 和 IP 的对应关系。

10
可以轻易发现:ping之后的arp表会比ping之前的arp表所含有的数据更多

Linux

扫描 10.8.1.0网段

1
nmap -sn 10.8.1.0/24 ##发现mac

通过 arp 映射表查看

1
cat /proc/net/arp

wireshark过滤定向查找IP

在过滤中输入

1
eth.arrd == MAC地址

可以在数据包中找到对应的IP

其他文章
cover
火绒剑抓微信包
  • 24/01/17
  • 00:00
  • 技术
目录导航 置顶
  1. 1. 前提
  2. 2. mac查询方法
  3. 3. 走近mac
  4. 4. mac获取方法1
    1. 4.1. 扫描附件的Wifi
    2. 4.2. 监听目标热点
  5. 5. mac获取方法2
  6. 6. 已知IP时的 mac 获取方法
    1. 6.1. Linux
  7. 7. mac修改方法
    1. 7.1. 分类
      1. 7.1.1. 1. 硬改
      2. 7.1.2. 2. 软改
    2. 7.2. 修改方法(只限于软改)
      1. 7.2.1. 1. 对于近三年来的绝大多数设备(包括 windows )
      2. 7.2.2. 2. 对于取得 root 权限的安卓设备
        1. 7.2.2.1. 2.1 软件辅助
        2. 7.2.2.2. 2.2 修改系统文件
      3. 7.2.3. 3. 对于 windows 平台
        1. 7.2.3.1. 3.1 设备管理器修改法
        2. 7.2.3.2. 3.2 注册表修改法
        3. 7.2.3.3. 3.2 对于部分系统版本
      4. 7.2.4. 逆天改法:修改路由器 mac
  8. 8. IP获取方式
    1. 8.1. Windows
    2. 8.2. Linux
    3. 8.3. wireshark过滤定向查找IP
请输入关键词进行搜索