Initial commit: local_machine docs and scripts
This commit is contained in:
297
docs/security/MAC_SPOOFING_GUIDE.md
Normal file
297
docs/security/MAC_SPOOFING_GUIDE.md
Normal file
@@ -0,0 +1,297 @@
|
||||
# Руководство по подмене MAC-адреса Wi-Fi на macOS
|
||||
|
||||
## 📋 Содержание
|
||||
1. [Зачем это нужно](#зачем-это-нужно)
|
||||
2. [Как это работает](#как-это-работает)
|
||||
3. [Получение MAC-адреса телефона](#получение-mac-адреса-телефона)
|
||||
4. [Подмена MAC на macOS](#подмена-mac-на-macos)
|
||||
5. [Ограничения и проблемы](#ограничения-и-проблемы)
|
||||
6. [Постоянная подмена MAC](#постоянная-подмена-mac)
|
||||
|
||||
---
|
||||
|
||||
## Зачем это нужно
|
||||
|
||||
Когда вы подключаете MacBook к точке доступа (hotspot) телефона:
|
||||
- **Оператор сотовой связи** видит трафик, идущий через телефон
|
||||
- **MAC-адрес MacBook** виден только на уровне Wi-Fi соединения между телефоном и MacBook
|
||||
- Подмена MAC MacBook на MAC телефона может помочь в некоторых сценариях идентификации
|
||||
|
||||
**Важно:** Оператор в первую очередь видит IMEI и другие идентификаторы телефона, а не MAC клиента.
|
||||
|
||||
---
|
||||
|
||||
## Как это работает
|
||||
|
||||
### Уровни идентификации:
|
||||
|
||||
1. **Уровень сотовой сети (оператор видит):**
|
||||
- IMEI телефона
|
||||
- IMSI (SIM-карта)
|
||||
- Номер телефона
|
||||
- Трафик идет через телефон
|
||||
|
||||
2. **Уровень Wi-Fi (локальная сеть):**
|
||||
- MAC точки доступа (BSSID) - это MAC Wi-Fi интерфейса телефона
|
||||
- MAC клиента (MacBook) - виден только в локальной Wi-Fi сети
|
||||
|
||||
3. **Уровень приложений:**
|
||||
- User-Agent браузера
|
||||
- Fingerprint браузера
|
||||
- IP-адрес (от оператора)
|
||||
|
||||
**Вывод:** Подмена MAC MacBook на MAC телефона влияет только на локальный Wi-Fi уровень, но не меняет идентификацию на уровне оператора.
|
||||
|
||||
---
|
||||
|
||||
## Получение MAC-адреса телефона
|
||||
|
||||
### iPhone (iOS 14+)
|
||||
|
||||
**Проблема:** На iPhone включена функция "Частный Wi-Fi адрес" по умолчанию, которая скрывает реальный MAC.
|
||||
|
||||
**Решение:**
|
||||
|
||||
1. **Для Wi-Fi клиента (когда телефон подключается к сети):**
|
||||
- Настройки → Wi-Fi
|
||||
- Нажмите (i) рядом с сетью
|
||||
- Отключите "Частный Wi-Fi адрес" (Private Wi-Fi Address)
|
||||
- MAC-адрес будет показан как "Адрес Wi-Fi"
|
||||
|
||||
2. **Для точки доступа (hotspot):**
|
||||
- MAC точки доступа может отличаться от MAC Wi-Fi клиента
|
||||
- Настройки → Режим модема → "Имя сети" показывает SSID
|
||||
- MAC точки доступа можно узнать через скрипт (автоматически)
|
||||
|
||||
**Альтернативный способ:**
|
||||
```bash
|
||||
# На MacBook, подключенном к hotspot iPhone:
|
||||
/System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -I | grep BSSID
|
||||
```
|
||||
|
||||
### Android
|
||||
|
||||
1. **Для Wi-Fi клиента:**
|
||||
- Настройки → О телефоне → Статус
|
||||
- Найдите "MAC-адрес Wi-Fi"
|
||||
|
||||
2. **Для точки доступа:**
|
||||
- Настройки → Сеть и интернет → Точка доступа и модем → Точка доступа Wi-Fi
|
||||
- MAC может быть показан в расширенных настройках
|
||||
|
||||
**Через ADB (если включена отладка):**
|
||||
```bash
|
||||
adb shell ip link show wlan0 | grep link/ether
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Подмена MAC на macOS
|
||||
|
||||
### Автоматический способ (рекомендуется)
|
||||
|
||||
Используйте скрипт `spoof-wifi-mac.sh`:
|
||||
|
||||
```bash
|
||||
# Автоматическое определение MAC точки доступа
|
||||
./docs/security/spoof-wifi-mac.sh --phone-mac
|
||||
|
||||
# Или интерактивный режим
|
||||
./docs/security/spoof-wifi-mac.sh
|
||||
|
||||
# Или указать MAC вручную
|
||||
./docs/security/spoof-wifi-mac.sh AA:BB:CC:DD:EE:FF
|
||||
|
||||
# Вернуть оригинальный MAC
|
||||
./docs/security/spoof-wifi-mac.sh --revert
|
||||
```
|
||||
|
||||
### Ручной способ
|
||||
|
||||
```bash
|
||||
# 1. Определить Wi-Fi интерфейс
|
||||
networksetup -listallhardwareports | grep -A 1 "Wi-Fi"
|
||||
|
||||
# 2. Выключить Wi-Fi
|
||||
networksetup -setairportpower en0 off
|
||||
|
||||
# 3. Установить новый MAC (требует sudo)
|
||||
sudo ifconfig en0 ether AA:BB:CC:DD:EE:FF
|
||||
|
||||
# 4. Включить Wi-Fi
|
||||
networksetup -setairportpower en0 on
|
||||
|
||||
# 5. Проверить
|
||||
ifconfig en0 | grep ether
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Ограничения и проблемы
|
||||
|
||||
### 1. Временность подмены
|
||||
|
||||
- MAC сбрасывается после:
|
||||
- Перезагрузки MacBook
|
||||
- Отключения/включения Wi-Fi
|
||||
- Переподключения к сети
|
||||
- Смены сети
|
||||
|
||||
**Решение:** Используйте `--revert` для восстановления или запускайте скрипт при каждом подключении.
|
||||
|
||||
### 2. System Integrity Protection (SIP)
|
||||
|
||||
На современных версиях macOS (особенно с Apple Silicon) подмена MAC может быть заблокирована SIP.
|
||||
|
||||
**Проверка статуса SIP:**
|
||||
```bash
|
||||
csrutil status
|
||||
```
|
||||
|
||||
**Отключение SIP (НЕ рекомендуется без крайней необходимости):**
|
||||
1. Перезагрузите Mac в Recovery Mode (Cmd+R при загрузке)
|
||||
2. Утилиты → Терминал
|
||||
3. `csrutil disable`
|
||||
4. Перезагрузите
|
||||
|
||||
**Включение обратно:**
|
||||
```bash
|
||||
csrutil enable
|
||||
```
|
||||
|
||||
### 3. Аппаратные ограничения
|
||||
|
||||
Некоторые Wi-Fi чипы не поддерживают подмену MAC на уровне драйвера.
|
||||
|
||||
### 4. Что видит оператор
|
||||
|
||||
**Важно понимать:**
|
||||
- Оператор видит трафик через телефон (IMEI, IMSI)
|
||||
- MAC MacBook виден только в локальной Wi-Fi сети между телефоном и MacBook
|
||||
- Подмена MAC не меняет идентификацию на уровне оператора
|
||||
- Для оператора важнее IMEI телефона, а не MAC клиента
|
||||
|
||||
---
|
||||
|
||||
## Постоянная подмена MAC
|
||||
|
||||
### Вариант 1: LaunchAgent (автоматический запуск)
|
||||
|
||||
Создайте `~/Library/LaunchAgents/com.macspoof.plist`:
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>Label</key>
|
||||
<string>com.macspoof</string>
|
||||
<key>ProgramArguments</key>
|
||||
<array>
|
||||
<string>/path/to/spoof-wifi-mac.sh</string>
|
||||
<string>AA:BB:CC:DD:EE:FF</string>
|
||||
</array>
|
||||
<key>RunAtLoad</key>
|
||||
<true/>
|
||||
<key>KeepAlive</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</plist>
|
||||
```
|
||||
|
||||
Загрузите:
|
||||
```bash
|
||||
launchctl load ~/Library/LaunchAgents/com.macspoof.plist
|
||||
```
|
||||
|
||||
### Вариант 2: Network Script (macOS)
|
||||
|
||||
Создайте скрипт в `/etc/network/` (требует отключения SIP).
|
||||
|
||||
### Вариант 3: Использование специализированных инструментов
|
||||
|
||||
- **SpoofMAC** (устарел, не работает на новых macOS)
|
||||
- **Macchanger** (через Homebrew, ограниченная поддержка)
|
||||
|
||||
---
|
||||
|
||||
## Альтернативные подходы
|
||||
|
||||
### 1. Использование VPN на телефоне
|
||||
|
||||
Вместо подмены MAC на MacBook, используйте VPN на телефоне:
|
||||
- Весь трафик идет через VPN
|
||||
- Оператор видит только VPN-соединение
|
||||
- Не требуется подмена MAC
|
||||
|
||||
### 2. USB Tethering
|
||||
|
||||
Подключите телефон через USB и используйте USB Tethering:
|
||||
- Не требует Wi-Fi
|
||||
- MAC не важен на этом уровне
|
||||
- Более стабильное соединение
|
||||
|
||||
### 3. Bluetooth Tethering
|
||||
|
||||
Альтернатива Wi-Fi hotspot:
|
||||
- Разные протоколы идентификации
|
||||
- Может быть менее заметно для оператора
|
||||
|
||||
---
|
||||
|
||||
## Проверка результата
|
||||
|
||||
### Проверить текущий MAC:
|
||||
```bash
|
||||
ifconfig en0 | grep ether
|
||||
```
|
||||
|
||||
### Проверить MAC точки доступа:
|
||||
```bash
|
||||
/System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -I | grep BSSID
|
||||
```
|
||||
|
||||
### Проверить подключение:
|
||||
```bash
|
||||
networksetup -getairportnetwork en0
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Безопасность и предупреждения
|
||||
|
||||
⚠️ **Важно:**
|
||||
- Подмена MAC может нарушать правила оператора
|
||||
- Некоторые сети могут блокировать устройства с подмененным MAC
|
||||
- Это может быть незаконно в некоторых юрисдикциях
|
||||
- Используйте только на своих устройствах и сетях
|
||||
|
||||
✅ **Рекомендации:**
|
||||
- Сохраняйте оригинальный MAC для восстановления
|
||||
- Используйте только для легитимных целей
|
||||
- Понимайте ограничения метода
|
||||
- Рассмотрите альтернативные подходы (VPN, USB tethering)
|
||||
|
||||
---
|
||||
|
||||
## FAQ
|
||||
|
||||
**Q: Оператор все равно видит, что это не телефон?**
|
||||
A: Да, оператор видит IMEI телефона и трафик через него. MAC клиента важен только на локальном Wi-Fi уровне.
|
||||
|
||||
**Q: Почему MAC не меняется?**
|
||||
A: Возможно, требуется отключить SIP или Wi-Fi чип не поддерживает подмену MAC.
|
||||
|
||||
**Q: Как сделать подмену постоянной?**
|
||||
A: Используйте LaunchAgent или отключите SIP (не рекомендуется).
|
||||
|
||||
**Q: Работает ли это на Apple Silicon?**
|
||||
A: Может потребоваться отключение SIP из-за более строгих ограничений безопасности.
|
||||
|
||||
---
|
||||
|
||||
## См. также
|
||||
|
||||
- [OS_COMPARISON.md](./OS_COMPARISON.md) - сравнение систем безопасности
|
||||
- [VPN документация](../vpn/README.md) - альтернативные методы защиты приватности
|
||||
|
||||
Reference in New Issue
Block a user