
RF CHAOS는 가능한 모든 RF 어댑터를 통해 혼란을 일으키도록 설계된 Android 앱입니다 - 즐기세요!
RF CHAOS는 수년간 Maximum Mobile Hacking의 길을 닦아 온 여러 도구들을 상당히 많이 기반으로 합니다. 그중에는 다음이 포함됩니다:
..그리고 그 외에도 정말 많고 많은 도구와 프로젝트가 있습니다 - 너무 많아서 다 나열할 수 없을 정도입니다.
저는 수년간 RF-CHAOS 같은 툴킷을 만들고 싶었지만 시간도 기회도 없었습니다. 그런데 X에서 동기부여를 좀 보고 나서, 그냥 만들어 보자 싶었습니다. 컴퓨터 플랫폼에는 이미 이런 용도의 도구들이 많이 있으니 모바일 기기에 집중하기로 했습니다. 그리고 WiFi/BLE/Bluetooth 등에 대한 저수준 접근을 허용하는 유일한 플랫폼이 Android이므로 Android가 승자였습니다!
즐겁게 사용하시길 바랍니다. 사악하게 즐기시길. 😈🤘
알고 보니, 특히 BLE의 경우 수년에 걸쳐 일부 기기를 타게팅하는 것을 예전보다 어렵게 만드는 변화들이 있었습니다! 바로 약 15분마다 변경되는 그 "비공개 MAC 주소(Private MAC Address)"를 말하는 겁니다.
🚨👮⚠️ BLE/Bluetooth RPA 해석/추적이란 무엇일까요? 그것은 여러분이 아마 지금쯤 본 적이 있을 그 기능, 즉 기기의 MAC 주소를 스푸핑된 비공개 주소로 바꿔 준다는 그 기능 덕분에 프라이버시를 되찾았다고 생각하게 만든 모든 휴대폰과 기기들을 추적하는 능력입니다. 휴대폰이나 기기의 MAC 주소는 약 15분마다 새로운 스푸핑 주소로 변경됩니다.
그리고 그건 전부 그냥 새빨간 거짓말입니다.
이 모든 일이 벌어지는 동안에도 기기의 메뉴는 이 기능을 "프라이버시 기능"으로 표시하고, 바로 이러한 유형의 공격으로부터 여러분을 보호한다고 선전합니다. 법 집행 기관을 포함한 누군가에게 언제든지 추적당한다는 사실이 별로 달갑지 않으신가요? 직접 어떻게 작동하는지 보고 싶으신가요? 바로 제대로 찾아오셨습니다! 네, 여기에는 더 자세한 내용이 있으니 계속 읽어보세요. 🚨👮⚠️
TL;DR: 블루투스 어댑터에 전원이 켜져 있는 모든 순간, 비공개 MAC 스푸핑을 켜 놓아도 여러분은 100% 추적 가능합니다.
Android Studio (Hedgehog 2023.1.1 이상)
JDK 17 (보통 Android Studio에 포함됨)
Android SDK
# If using git
git clone https://github.com/scramblr/RF-CHAOS.git
cd RF-CHAOS
# Or extract the zip file to a folder
RF-CHAOS 폴더로 이동몇 주 안에 출시될 릴리스에서는 Google Maps SDK로 전환할 수 있는 옵션이 제공될 예정입니다. 매니페스트 지침도 미리 준비해 두었습니다:
0. Wait for feature to actually be built and tested.
1. Get a Google Maps API key from https://console.cloud.google.com/
2. Enable "Maps SDK for Android"
3. Edit `app/src/main/AndroidManifest.xml`
4. Replace `YOUR_GOOGLE_MAPS_API_KEY` with your actual key.
테스트 및 디버그 .APK 또는 번들 .AAB 패키지
Menu: Build → Generate and Build App Bundles or APKs → Generate APKs / Generate Bundles
APK Output: `app/build/outputs/apk/debug/app-debug.apk`
Bundle Output: `app/build/outputs/bundle/debug/app-debug.aab`
프로덕션 릴리스 .APK 또는 번들 .AAB 패키지
APK Output: `app/release/app-release.apk`
Bundle Output: `app/release/app-release.aab`
몇 초 안에 휴대폰에 RF-CHAOS가 설치될 것입니다! 신호를 검색하고 GPS로 좌표를 기록하는 데 필요한 3가지 주요 보안 권한을 요청할 것입니다.
AA:BB:CC:DD:EE:FF) 또는 IRK 코드 입력이 앱은 휴대폰이나 기기 내부의 라디오에 접근하기 위한 권한이 필요합니다. 이 앱은 절대 외부로 통신(phone home)하지 않습니다. WIGLE.NET과 명시적으로 공유하려는 경우가 아니라면 모든 데이터는 기기에만 보관됩니다.
| 권한 | 이유 |
|---|---|
| ACCESS_FINE_LOCATION | WiFi/BLE 스캔 및 GPS에 필요 |
| ACCESS_COARSE_LOCATION | 위치 정보 대체 수단 |
| BLUETOOTH_SCAN | BLE 기기 스캔(Android 12 이상) |
| BLUETOOTH_CONNECT | Bluetooth 연결(Android 12 이상) |
| NEARBY_WIFI_DEVICES | WiFi 스캔(Android 13 이상) |
| VIBRATE | 신호 파인더 햅틱 피드백 |
CSV 내보내기는 WiGLE의 형식을 사용합니다. 기기에 로컬로 저장되는 SQLite 데이터베이스 안에 다음 테이블로 저장됩니다:
MAC,SSID,AuthMode,FirstSeen,Channel,RSSI,CurrentLatitude,CurrentLongitude,AltitudeMeters,AccuracyMeters,Type
Bluetooth Low Energy 기기는 주기적으로 변경되는 RPA(Resolvable Private Address)를 사용할 수 있습니다. 기기의 IRK(Identity Resolving Key)를 보유하고 있다면 주소가 변경되어도 해당 기기를 추적할 수 있습니다.
IRK는 다음에서 추출할 수 있습니다:
app/src/main/
├── java/com/scramblr/rftoolkit/
│ ├── MainActivity.kt # Main activity with navigation
│ ├── RFToolkitApp.kt # Application class
│ ├── data/
│ │ ├── db/AppDatabase.kt # Room database & DAOs
│ │ ├── models/Models.kt # Data classes
│ │ └── repository/ # Data access layer
│ ├── services/
│ │ └── ScanningService.kt # Foreground scanning service
│ ├── ui/ # Fragments for each screen
│ └── utils/
│ └── Scanners.kt # WiFi/BLE scanning + RPA resolver
├── res/
│ ├── layout/ # XML layouts
│ ├── navigation/ # Navigation graph
│ └── values/ # Colors, strings, themes
└── AndroidManifest.xml