ESP32 මත Wifi සමඟ ක්‍රීඩා කිරීම

ESP32 මත Wifi සමඟ ක්‍රීඩා කිරීම

WiFi ජාල විශ්ලේෂණය කිරීම සඳහා පොකට් මෙවලමක් සෑදීමේ අදහස මට ලබා දුන්නේ කුමක්ද? මෙම ලිපිය.

අදහසට ඔවුන්ට ස්තූතියි. මට කරන්න දෙයක් තිබුණේ නෑ.

සියලුම වැඩ කටයුතු විනෝදාංශයක කොටසක් ලෙස සිදු කරන ලද්දේ විනෝදය සහ ජාල තාක්‍ෂණ ක්ෂේත්‍රය පිළිබඳ මගේ දැනුම පුළුල් කිරීම සඳහා ය. මෙම වසරේ ආරම්භයේ සිට සෙමින්, සතියකට පැය 1..4.
මම කිසිම ප්‍රායෝගික භාවිතයක් සැලසුම් කළේ නැහැ. එම. මෙය හැකර් මෙවලමක් නොවේ.

මේ මොහොතේ, සියලු සැලසුම් කළ ක්රියාකාරිත්වය ක්රියාත්මක වේ. සියලුම මූලාශ්‍ර, එකලස් කිරීම සඳහා සම්පූර්ණයෙන්ම සූදානම්, මෙහි පළ කර ඇත. එකලස් කිරීමේ උපදෙස් ආදියද ඇත. මෙම සටහනෙහි, මම github හි පළ කර ඇති තොරතුරු අනුපිටපත් නොකරමි. වෙනම විස්තර කිරීමට අවශ්‍ය යැයි මා සලකන දේ පමණක් මම ඔබට කියමි.

"විශ්වීය මෙවලම" පිළිබඳ මගේ මතය සහ ESP32 තෝරා ගැනීමට හේතුව

මම සත්‍යය යැයි නොකියමි. සෑම කෙනෙකුටම තමන්ගේම ඇත. මගේ දෘඩාංග තේරීම සාධාරණීකරණය කිරීමට මම උත්සාහ කරමි.

ලිපියේ යෝජනා කර ඇත Linux (මුලදී Raspberry Pi) + “පර්යන්ත” පාලක (STM32) + CC1110 (8051 core) ආකාරයෙන් සංයෝජනයක් භාවිතා කිරීම සහ එහි හැකි සෑම දෙයක්ම (125kHz, NFC, 433mHz, USB, iButton, bluetooth, ?) මට ගැලපෙන්නේ නැහැ වගේ. කෙසේ වුවද, මෙම ව්යාපෘතිය එය පුද්ගලිකව සහ වසා පවතිනු ඇති බව පෙනේ (flipper-zero github "මෙම සංවිධානයට පොදු ගබඩාවන් නොමැත.") සහ ඉතා පොදු නොවන දෘඪාංග වෙත ගියේය.

සමහර විට මම වැරදියි, අනාගතයේ දී කතුවරුන් මෘදුකාංග මූලාශ්‍ර ප්‍රසිද්ධියේ ලබා දෙනු ඇත. නමුත් එසේ නොවේ නම්, මූල කේතය නොමැතිව මම එවැනි දෘඩාංග කැබැල්ලක් මිලදී නොගනිමි.

"මෙවලම" සඳහා මගේ අවශ්‍යතා

පෙට්ටිය කුඩා විය යුතුය (කුඩා වන තරමට වඩා හොඳය).

එබැවින්:

  • බිල්ට් බැටරි අවශ්‍ය නොවේ. Wifi සමඟ වැඩ කරන විට ධාරාව > 100 mA සමඟ, ගොඩනඟන ලද බැටරිය විශාල හෝ දිගු කාලයක් නොපවතිනු ඇත. එබැවින්, "පෙට්ටිය" සම්මත බලශක්ති බැංකුවකින් බල ගැන්වීමට ඉඩ දෙන්න. කොහොමත් මගේ සාක්කුවේ/කාර් එකේ හැමදාම පවර් බෑන්ක් එකක් තියෙනවා.
  • ඇතුළත මෙවලම් සහිත Linux "කොටුවක්" තබා ගන්න, වසර ගණනාවක් පුරා සියලු භාෂාවලින් ලියා ඇත කුඩා තිරයක් සහ සොච්චම් පාලන බොත්තම් කට්ටලයක් සමඟ, එය තේරුමක් නැත. සම්පූර්ණ යතුරු පුවරුවක් සහ තිරයක් සහිත සාමාන්‍ය ලැප්ටොප් එකක ප්‍රතිඵල බැලීම/සැකසීම කළ හැක.
  • සංරචක පහසුවෙන් ප්‍රවේශ විය හැකි සහ පුළුල් ලෙස දන්නා විය යුතුය (තිබේ SDK, බොහෝ උදාහරණ සහ ලේඛන).

ප්රතිඵලයක් වශයෙන්, මට, තේරීම පැහැදිලි විය - ESP32.

ක්‍රියාමාර්ග ගැනීමට මා පෙලඹවූ ලිපියේ දක්වා ඇති සියලුම කාර්යයන් සඳහා, ESP32 හි හැකියාවන් ප්‍රමාණවත් වේ. මට තවමත් කිරීමට අවශ්‍ය වඩාත්ම දෙය නම්:

  • බ්ලූටූත් සමඟ සෙල්ලම් කරන්න.
  • සරලම දෘඩාංග සමඟින් 433mHz පරාසය සමඟ සෙල්ලම් කරන්න (ප්‍රායෝගික අවශ්‍යතා සඳහා ප්‍රමාණවත් වන amplitude modulation පමණි).

ESP32 හි විලවුන් තුළ පියාසර කරන්න

  • ESP32 SDK (IDF) තරමක් අවුල් සහගතයි.
  • සමහර ක්‍රියාකාරීත්වයන් (උදාහරණයක් ලෙස, WiFi ස්ටැක්) එකලස් කරන ලද ස්ථිතික පුස්තකාල ආකාරයෙන් ප්‍රභව කේතය නොමැතිව පැමිණේ.
  • 5gHz කලාපයට සහය නොදක්වන අතර WiFi සමඟ වැඩ කිරීමේදී යම් සීමාවන් සහ අවුල් සහගත බවක් ඇත.

නමුත් මිල / ප්රමාණය මෙම අඩුපාඩු සඳහා සම්පූර්ණයෙන්ම වන්දි ලබා දේ.

ප්රධාන මෘදුකාංග ක්රියාකාරිත්වය

මම ක්‍රියාකාරීත්වය සහ මගේ අදහස කෙටියෙන් විස්තර කරන්නම්...

සැකසීම් කළමනාකරණය කිරීම සහ SD වෙතින් ගොනු උඩුගත කිරීම

සියලුම බාහිර පාලනය වෙනම මෙනු අයිතමයකින් දියත් කරන ලද සරල වෙබ් පිටුවක් හරහා සිදු කෙරේ. ESP32 WiFi AP මාදිලියෙන් ආරම්භ වන අතර ස්ථාවර IP ලිපිනයකින් පිටුවක් පෙන්වයි.

ESP32 මධ්‍යයන් තරමක් වේගවත් වුවද, අත්හදා බැලීම් පෙන්වා ඇති පරිදි, ගොඩනඟන ලද වෙබ් සේවාවේ සමගාමී ක්‍රියාකාරිත්වය සහ, උදාහරණයක් ලෙස, රවුටර මාදිලිය ඉතා නොගැලපේ. එබැවින් ගතික පාලනයක් නොමැති අතර පිටුව අනෙකුත් සියලුම මාදිලිවල නොමැත.
එපමණක් නොව, පර්යේෂණ කටයුතු සඳහා ගතික පාලනයක් අවශ්‍ය නොවේ.

බීකන් පැකේජ සමඟ වැඩ කිරීමේ ආකාරය

මාදිලි නිර්ලජ්ජිත වන අතර ඉතා රසවත් නොවේ. "හැකි නිසා" හැදුවා. චෙක්පත් සඳහා.
නිල Espressif උදාහරණ වල උදාහරණ ඇත.

AP ලැයිස්තු ස්කෑන් කිරීමේ මාදිලිය.
ඇත්ත වශයෙන්ම, ඕනෑම ස්මාර්ට් ජංගම දුරකතනයකට මෙය කළ හැකිය.
හොඳයි, මෙම මාදිලියේදී AP ලැයිස්තුව සුරැකෙනු ඇත.
බීකන් ස්පෑමර්.
ESP32 සැඟවුණු SSID සහ අහඹු MAC සමඟ AP ලෙස ආරම්භ වන අතර පෙර-සාදන ලද SSID ලැයිස්තුවකට අනුව [බීකන් රාමුව] යැවීම ආරම්භ කරයි (අතින් සාදන ලද හෝ AP ලැයිස්තුව පරිලෝකනය කිරීමෙන් කලින් ලබා ගත්)

WiFi පැකට් sniffing ආකාරය

Espressif සංවර්ධකයින් විසින් යෙදුම් මෘදුකාංග සඳහා ඇමතුම් ශ්‍රිතය හරහා "වාතයේ පියාසර කරන" සියලුම WiFi පැකට් ලබා ගැනීමේ හැකියාව එකතු කර ඇත. ඇත්ත වශයෙන්ම සියල්ලම නොවේ, ඔබට මාදිලිය සැකසිය හැක්කේ එක් ස්ථාවර නාලිකාවක් සඳහා පමණි.

ආපසු කැඳවීමේ කාර්යයක් සැකසීමේදී ඉතා දැඩි කාල සීමාවන් පනවා ඇත. මෙය සරල සංඛ්‍යාලේඛන එකතු කිරීමේ මාදිලිය සඳහා ගැටළු ඇති නොකරන්නේ නම්, SD කාඩ්පතේ PCAP ගොනු පටිගත කිරීමේ මාදිලිය සඳහා මට ටින්කර් කිරීමට සිදු විය, මතකයේ සහ සෙමාෆෝර්වල පෝලිමක් හරහා පටිගත කිරීම සංවිධානය කිරීමට සිදු විය. ආපසු කැඳවීමේ ක්‍රියාවලිය එක් හරයක ක්‍රියාත්මක වන අතර තවත් හරයක SD වෙත ලියන ක්‍රියාවලියේ සුවිශේෂත්වය සැලකිල්ලට ගනිමින්.

“ඝෝෂාකාරී වාතය” අතරතුර, සමහර පැකට් නැති වී යයි (පෝලිමේ ඉඩක් නොමැති අතර ඒවා ඉවත දමනු ලැබේ), නමුත් සවස් වරුවේ මහල් නිවාසයක සාමාන්‍ය “වාතයක්” සමඟ (දෘෂ්‍යමානව APs 5..7), PCAP හි පටිගත කිරීම පැකට් පාඩුවකින් තොරව සම්පූර්ණ කර ඇත.

අතිරේකව, PCAP අධීක්ෂණය සහ පටිගත කිරීම සඳහා, පැකට් ශීර්ෂයේ MAC ලැයිස්තුව මත පදනම්ව පෙරහන මාදිලියක් ඇත.

උදාහරණයක් ලෙස, ඔබට සමාජ ශාලාවක/ආපන ශාලාවක සිටින පුද්ගලයෙකු ඇතුළු වීමට හෝ පෙනී සිටීමට පෙර ඔහුගේ පෙනුම නිරීක්ෂණය කළ හැක. දන්නා AP වලට WiFi සහ ස්වයංක්‍රීය සම්බන්ධතා අක්‍රිය කරන්නේ ස්වල්ප දෙනෙක්. (මම දැන් ඕෆ් කරනවා..)

Wireshark හි වාර්තාගත ගමනාගමනය බැලීම අධ්‍යාපනික සහ සිතියම් තේරුම් ගැනීම සඳහා සිත්ගන්නා සුළුය - ඒ සියල්ල ක්‍රියාත්මක වේ.

Deauth පැකේජ සමඟ වැඩ කිරීම සඳහා මාදිලිය

පෙරනිමියෙන්, මූලාශ්‍ර නොමැතිව එන libnet80211.a පුස්තකාලය තුළ මෙම පැකේජ යැවීම තහනම් වේ. නමුත් බිටු කිහිපයක් සකස් කිරීමෙන් එය නිවැරදි කිරීම පහසුය. මුලදී මට සැක හිතුනා පැච් එක දාන එක වටිනවද කියලා. නමුත් සත්‍යාපනය කිරීමේ රාමු ස්කෑනිං මාදිලිය ක්‍රියාත්මක කර විවිධ ස්ථානවල ඇවිදීමෙන් පසු, මම සිතුවෙමි: "මොන මගුලක්ද?" තවද, esp8266 හි මෙම පැකේජ බෙදා හැරීම වසා නොමැති අතර esp8266 සඳහා github මත එකලස් කිරීම් ඇත.

මෙම ක්‍රමය හරහා අනවශ්‍ය APs මර්දනය කිරීම බොහෝ තැන්වල (කොහේදැයි මම නොකියමි). ඒවගේම මේ අය "හිරිහැර කරන්නන්" නෙවෙයි...

මගේ දුරකථනයෙන් මගේ අන්තර්ජාල බෙදා හැරීම සමහර ස්ථානවල ක්‍රියා නොකිරීම ගැනත් මම පුදුමයට පත් වුණා.

එවැනි පැකට් වල අංකය සහ RSSI ලුහුබැඳීමේ මාදිලිය "වම් APs එයට අකමැති තැන" තේරුම් ගැනීමට ඉතා ප්‍රයෝජනවත් වේ.

රවුටර මාදිලිය

මෙම විශේෂාංගය බොහෝ විට ගවේෂණය කිරීමට වඩාත්ම සිත්ගන්නා සුළුය.

ESP32 STA + SoftAP මාදිලියේ සමගාමී ක්‍රියාකාරිත්වයට සහය දක්වයි. එමනිසා, ඔබට එය මත සම්භාව්ය NAT රවුටරයක් ​​ක්රියාත්මක කළ හැකිය.

ජාල තොගයට සහය දැක්වීම සඳහා, Espressif විසින් lwip පුස්තකාලයේ දෙබලක (ප්‍රායෝගිකව නොවෙනස්ව) භාවිතා කරයි.

නමුත්, පෙරනිමියෙන්, සම්මත ගොඩනැගීමේදී, esp-lwip පුස්තකාලය netif අතුරුමුහුණත් 'ap' (SoftAP) සහ 'st' (STA) අතර ඉදිරියට යැවීමක් සපයන්නේ නැත.

ඇත්ත වශයෙන්ම, ඔබට එය NAT නොමැතිව කළ හැකිය, නමුත් එකවර STA දෙකක් හෝ වැඩි ගණනක් 'ap' අතුරුමුහුණතට සම්බන්ධ කිරීම සහ 'st' සිට 'ap' ජාල අතුරුමුහුණතට IP ලිපින සමමුහුර්ත කිරීමේ ගැටලුවක් තිබේ. එබැවින් දුෂ්කරතා එය වටින්නේ නැති අතර එය NAT හරහා පහසු වේ.

එපමනක් නොව, martin-ger වෙතින් fork esp-lwip ඇත, එය IP4 සඳහා NAT සරල ක්‍රියාත්මක කිරීමක් එක් කරයි.

එය සම්පූර්ණයෙන්ම රූපලාවණ්‍ය ලෙස ප්‍රතිනිර්මාණය කිරීමට මගේ දෑත් කැසීම ඇති වුවද (මගේ මතය අනුව, ව්‍යාපෘතියේ දෙබලකින් තොරව එය පහසු විය, නමුත් LWIP හරහාකොක්කෙන් එකලස් කිරීමේදී අර්ථ දක්වා ඇති කාර්යයන්), නමුත් කම්මැලිකම පැවති අතර මාටින්-ගර් වෙතින් විකල්පය භාවිතා වේ.

රවුටර මාදිලියේදී, පැමිණෙන සහ පිටතට යන IP4 ගමනාගමනය බලයි.

විශේෂයෙන්, තිරය මත දර්ශනය කිරීම සහ ගොනුවකට සංඛ්‍යාලේඛන එකතු කිරීම සඳහා පහත දේ එයින් උපුටා ගනු ලැබේ:

  • SoftAP ESP32 (DHCP පැකට්) වෙත සම්බන්ධ වූ උපාංගයේ නම
  • SoftAP ESP53 වෙත සම්බන්ධිත උපාංගයකින් DNS ඉල්ලීම් (UDP port 32) වෙතින් URL.

මීට අමතරව, ඔබට PCAP ගොනුවකට රථවාහන පටිගත කිරීම සක්රිය කළ හැකිය.

මෙම මාදිලිය ඉතා ප්රයෝජනවත් වේ, උදාහරණයක් ලෙස, තේරුම් ගැනීමට, උදාහරණයක් ලෙස, ඔබගේ දුරකථනය ජාලයට යවන දේ සහ එය යන්නේ කොතැනටද යන්න.

ජාල අතුරුමුහුණත් මට්ටමින් softAP ESP32 එන සහ පිටතට යන ගමනාගමනය සම්පූර්ණයෙන්ම පාලනය කිරීමේ හැකියාව සැලකිල්ලට ගනිමින් ඔබට මෙම මාදිලිය භාවිතා කිරීමට වෙනත් ක්‍රම ගැන සිතිය හැක: Ehernet header (destMAC[6]+srcMAC[6]+type[2]) + ගෙවීම (IP4, IP6, DCHP, ආදිය වර්ගය).

ප්‍රතිපත්තිමය වශයෙන්, ESP32 WiFi->WiFi රවුටරයේ ක්‍රියාකාරිත්වය සමඟ හොඳින් කටයුතු කරයි, විශේෂ ප්‍රමාදයකින් තොරව සාමාන්‍ය ගමනාගමනය හරහා ගමන් කරයි. විෂයානුබද්ධව, ESP32 මත රවුටරයක් ​​හරහා සම්බන්ධ වූ දුරකථනයක ප්‍රමාදයන් සැලකිය යුතු නොවේ.

අවාසනාවන්ත ලෙස, SoftAP EPS32 වෙත සම්බන්ධ MAC සඳහා පෙරහනක් සැකසීමේ හැකියාව Espressif API සතුව නොමැත. ඒ වෙනුවට, "අවශ්‍ය නොවන" දැනටමත් සම්බන්ධිත STA වලට "ආයුබෝවන්" (esp_wifi_deauth_sta) පැවසීමට යෝජනා කෙරේ.

සම්බන්ධිත STA සඳහා MAC මගින් පෙරීම esp_wifi_deauth_sta() ඇමතුම හරහා සිදු කිරීමට සිදු විය.

අවසාන වශයෙන්

ESP32 සමඟ වැඩ කිරීමේ රාමුව තුළ මම අලුත් දෙයක් ඉදිරිපත් නොකළද, සමහර විට ප්රතිඵලය (මූලාශ්ර කේතය) යමෙකුට රසවත් වනු ඇත.

කේතය අධ්‍යාපනික අරමුණු සඳහා පමණක් ලියා ඇති බව සටහන් කිරීමට කැමැත්තෙමි. "හැක් කිරීම" යනාදිය සඳහා, එය හිතාමතාම ඉතා පහසු නොවන පරිදි සාදා ඇත.

නිමි ස්කාෆ් කම්බි සමඟ පෑස්සීමට පැය 1.5-2 ක් ගත වූ නිසා මම මුද්‍රිත පරිපථ පුවරුවක් සෑදුවේ නැත.

ඔබ එසේ කරන්නේ නම්, ඔබ එය එකලස් කළ යුත්තේ සූදානම් කළ පුවරු වලින් නොව, තනි සංරචක වලින්. එවිට මානයන් ඊටත් වඩා කුඩා වනු ඇත.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න