sha256: 37e28559fba615aee1204eebf551dc588f7dc5b8a7e11893a1602da40b03f4fb
https://www.virustotal.com/en/file/37e28559fba615aee1204eebf551dc588f7dc5b8a7e11893a1602da40b03f4fb/analysis/1547612281/
sample url - be carefully! - http://axens[-]archi[.]com/5.exe
Today I saw a Tweet from MalwareHunterTeam talking about a JobCrypter ransomware, everything was set up to have fun :)
Once I got the sample, I've started the analysis by using dnSpy... yet another eazfuscator exe
I did not want to spent time trying to deobfuscate and devirtualize the malware, so....the easiest was to infect myself with it :)
A couple of exe has been created in %Appdata% and no obfuscation at all....(LOL)
Digging inside the "nlo.exe" in %Appdata% I found something very very very funny:
His email credentials in plaintex. Username and password. I couldn't resist to login.....
Lovely <3 ....but go back work.
(I do not change the password, is not up to me.)
Oh, I forgot to say: into the email, the owner will get also a nice screenshot of your pc (stored in %Temp% path) and the key to decrypt your data with the "VolumeSerialNumber" of C: and other stuffs.
Well, is pretty easy to guess what the Password variable is and what does it contain.... ;)
Here we are in the encryption core where the string_1 parameter is our RegKey data named "MOI" stored in "Computer\HKEY_CURRENT_USER\Software"
Such ransomware provide also another class which is named as "DecodeFiles"...and do what it say...!!!
After a check with the awesome CryptoTester tool made by @demonslay335 I've made a very quick "copy and past" and here is the decryptor POC (no proper args[] checks, and drive scan...do it yourself if needed):
using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace FranceRansomwareDecryptor { class Program { public static void Main(string[] args) { Console.WriteLine("Hello World!"); // Computer\HKEY_CURRENT_USER\Software //MOI 6914262016XXXXXXX8153754XXXXXXX01007XX69574184XXXXXXX34846XX0245058 //1 1 Decode_File(args[0], args[1]); Console.Write("Press any key to continue . . . "); Console.ReadKey(true); } public static void Decode_File(string string_0, string password) { try { string string_ = File.ReadAllText(string_0); string s = tdsDecode(GetStrings(string_), password, false); byte[] array = Convert.FromBase64String(s); string path = string_0.Replace(".css", ""); FileStream fileStream = new FileStream(path, FileMode.Create); fileStream.Write(array, 0, array.Length); fileStream.Close(); //File.Delete(string_0); } catch (Exception ex) { } } public static string tdsDecode(string string_0, string string_1, bool bool_0 = false) { TripleDESCryptoServiceProvider tripleDESCryptoServiceProvider = new TripleDESCryptoServiceProvider(); MD5CryptoServiceProvider md5CryptoServiceProvider = new MD5CryptoServiceProvider(); tripleDESCryptoServiceProvider.Key = md5CryptoServiceProvider.ComputeHash(Encoding.ASCII.GetBytes(string_1)); tripleDESCryptoServiceProvider.Mode = CipherMode.ECB; ICryptoTransform cryptoTransform = tripleDESCryptoServiceProvider.CreateDecryptor(); byte[] array = Convert.FromBase64String(string_0); return Encoding.ASCII.GetString(cryptoTransform.TransformFinalBlock(array, 0, array.Length)); } public static string GetStrings(string string_0) { int num = 0; string result = ""; string[] array = string_0.Split(new char[] { ';' }); checked { int num2 = array.Length - 1; for (int i = 0; i <= num2; i++) { if (num == 0) { num = 1; } else if (num == 1) { result = array[i]; } } return result; } } } }
Do it works? Let's test :)
Victory! :)
You can compile the decryptor by your own or download it from here (zip password: 123 ): https://ufile.io/als52
Cheers!
RE Solver
Nessun commento:
Posta un commento