https://pwnagotchi.ai/
Интересно мало направииче што собира handshakes од Wi-Fi мрежи. Принцип на работа: многу сличен на Aircrack-NG, со тоа што е многу мало и преносливо, така да, може во џеб да си го чувате
.
Е сега, малку околу него и Wi-Fi cracking
.
Уредите кои се врзуваат за определена Wi-Fi мрежа, прво мора да го разменат password-от за таа мрежа со AP-то (access point-от, т.е. Wi-Fi мрежата). Овој првичен пакет на податоци се нарекува handshake (здравоооо
, јас сум тој и тој и сакам да се врзам за тебе
). Се разбира, оваа размена е енкриптирана. WEP енкрипцијата е веќе минато (legacy) и ретко кои Wi-Fi уреди ја користат бидејќи лесно се пробива. За разлика од неа, WAP и WAP2 се прилично тешки за пробивање. Практично и нема разлика во тежината на пробивање на лозинките кај WAP и WAP2.
Е сега, што значи ова. Ова значи дека и password-от при оваа првична размена е енкриптиран токму со самиот password за мрежата, како и некои други параметри (SSID - името на AP-то, MAC - физичката адреса на AP-то, итн.). Алгоритмот за енкрипција е во основа некој вид на SHA. Значи имаме public key и private key. Се разбира, private key се генерира врз база на претходно споменатите параметри (password, SSID, MAC, итн.). Форматот на првично разменетиот пакет, т.е. handshake-от е јавно достапен (т.е. му се знае структурата) и точно се знае во кој дел од пакетот се разменува и лозинката (password-от) за Wi-Fi мрежата. Проблемот е што овој пакет е енкриптиран
, така да, директно да дознаеме кој е password-от од овој пакет, не можеме.
Што ни останува како опција. Па... практично единствен начин (без дополнителни информации) е да пробаме brute forcing да направиме на алгоритмот (пакетот), при што, софтверот кој пробува да ја извади информацијата што овој пакет ја содржи во себе, практично треба да ја проба секоја можна комбинација за зададен број на карактери (на пример, 10), при што игра улога и тоа дали ќе се користат специјални карактери, симболи, карактери од други јазици (како на пример кирилични карактери), итн. Практично, ова е невозможна мисија, освен ако немаме дополнителни информации на располагање, со што би му ја олесниле работата на софтверот. На пример, знаеме дека password-от содржи само класични ANSI бројки и букви и дека не е подолг од, на пример 8 карактери. Со ова се намалува времето потребно за brute forcing, но сепак е прилично долго... можно е да трае денови (практично зависи од јачината на комјутерот и што има како хардвер истиот во него)... а ова не е секогаш практично (на пример, ни треба интернет пристап денес, не по 5 дена
).
Е сега, можеби некој ќе праша, а како да го добиеме овој првично разменет пакет кога некој уред се врзува за Wi-Fi мрежата... треба, на пример, да чекаме некој да се врати од работа и да проба да се врзе преку, на пример, телефонот за неговата Wi-Fi мрежа. Да, може и ова да го пробаме, но... ова бара многу време, а и не секогаш знаеме кога некој клиент ќе проба да се врзе за Wi-Fi мрежата... едноставно има премногу променливи во ова сценарио. За среќа, има и друг пристап. Можеме да направиме deauth (деавтентизација) на определен уред (или уреди) веќе врзани за Wi-Fi мрежата, при што, по default, истите ќе пробаат пак да се врзат за неа... и ова е моментот
. Тогаш се разменува тој „магичен пакет“ кој го содржи password-от
. Има неколку начини на кои можеме да деавтентзираме определен уред од мрежата. Најпрост е со генерирање на шум (noise) во каналот на кој уредот е врзан за мрежата (може и на сите канали... не прави разлика
). Ова уредот го перцепира како лошо ниво на сигнал и при неколку пропаднати пакети пратени кон мрежата, истиот се исклучува од неа и пробува повторно да се врзе за истата. Можно е и AP-то да го деавтентизира уредот поради тоа што веќе нема да го „гледа“ во својот „видокруг“... зависи од хардверското и софтверското решение и на AP-то, и на уредот (уредите) кои се врзани за AP-то. Без разлика, поентата е да го „натераме“ уредот да „падне“ од Wi-Fi мрежата и да проба пак да се врзе за неа
.
Една од работите што ги прави pwnagotchi е токму ова. Деавтентизира клиенти и собира handshakes. Базиран е на single board комјутер (Raspberry Pi Zero W, но најверојатно може и на друг хардвер да работи бидејќи целиот проект е Open Source) и може да комуницира и со други pwnagotchi уредчиња кои му се во близина и да размени handshakes со нив
(што е мое е твое, што е твое е мое
), но прво ве прашува дали сакате да стане „другарче“ со тој друг pwnagotchi... so cute
. Исто така, ако добие пристап до интернет, се врзува за серверот поставен од оние кои го развиваат и ги upload-ира своите handshakes, со што расте базата на handshakes, а со тоа и се подобруваат алгоритмите за пробивање на овие handshakes
(се ова е опционално, се разбира
). Има опција и да „донираш“ hashing power, т.е. твојот компјутер биде користен за brute forcing на handshakes, со што им помагаш на сопствениците pwnagotchi низ целиот свет да најдат password за некоја од мрежите кои биле „издушкани“ од pwnagotchi.
Е сега, што не може да прави... всушност, најважното
. Не може да прави brute forcing на passwords на Wi-Fi мрежи... ова е пред се ограничување на хардверот. Сепак, станува збор за прилично прост хардвер (од аспект на класичен компјутер), така да... да бидам искрен, и нема баш некоја поента да имаш вакво чудо, освен како играчка или за твој личен интерес (навлезен си во brute forcing на алгоритми или нешто слично).
Во секој случај, ако имате слободно време (јас моментално немам
) интересно е да се разгледа како проект
. Можете истите работи што ги прави pwnagotchi да ги правите и под Linux со Aircrack-NG (само не го земајте од default repository, не се update-аат често и верзиите кои стојат таму се доста стари, земете си го од GitHub
), но дел од работите таму не се автоматизирани. Се разбира, може да се автоматизираат со скрипти, тоа не е проблем
.
Мислам дека вреди да се разгледа како проектче
. Интересно е за играње, ако не повеќе
.