GNU/Linux >> Linux の 問題 >  >> Linux

65535 よりも高いポートにバックドアを展開することは理論的に可能ですか?

いいえ、TCP ヘッダーのポート番号フィールドは技術的に 2 バイトに制限されています。 (あなたに 2^16=65536 を与える 可能なポート)

より高いポートに多くのビットを予約してプロトコルを変更すると、TCP セグメントの仕様に違反し、クライアントに理解されなくなります。言い換えれば、もはや TCP を話しているわけではなく、「ポート」という用語は「TCP ソース/宛先ポート」のように適用されません。 UDP ポートにも同じ制限があります。

とは言うものの、バックドアは代わりに TCP や UDP とは異なるプロトコルを介して通信し、その通信を覆い隠す可能性があります。例:icmpsh ICMP のみを使用するリバース シェルです。最終的には、0 ~ 65535 よりも広い範囲のポートの独自の概念を持つことができる raw ソケットを使用して、独自のカスタム トランスポート層プロトコルを実装することもできます。


いいえ、それはその TCP フィールドの長さが 16 ビット (65536、ただし 0 から始まる) しかないため、その番号です。そのため、65535 より上位のポートを通信することは基本的に不可能です。

この投稿には、なぜ IPv4 でそうなるのか、IPv6 でも同じなのか、通常の使用でポートを再利用する方法について、非常に優れた記事があります。


<ブロック引用>

マシン上でローカルに TCP/IP スタックを再構築した場合、RFC 793 - Transmission ControlProtocol Standard が以下のいくつかの回答で説明されているように機能するため、全体的な概念は機能しませんか?より高いポートで実行されているサービスにアクセスできなくなります。その後65535.

TCP/UDP サービスはありません 65535 より大きいポート。2 ~ 1 より大きいポート番号をサポートする場合、TCP (または UDP) ではなくなります。 .

他に何かありますか それ...?もちろん。そして、それはTCPに非常に似ているでしょうか?下位互換性があるという点まで?どちらの質問にもはい。

<ブロック引用>

ハードウェアやデバイスにバックドアが作成され、政府だけが監視のためにアクセスできるという話が非常に多くあります。私は、これが彼らがそれを行って検出を回避し、発見される方法の 1 つであった可能性があるかどうかに興味がありましたか?

もし私がそのようなデバイスを開発したとしても、それは目立たないほど十分に一般的なプロトコルに依存するでしょう.未知の/違法なプロトコル パケットの後に余分なトラフィックが発生する場合は、非常に疑わしいものです。

(ほぼ)人目につかないところに隠れる

そのようなデバイスができることは、たとえば、ペイロード内のいくつかのバイトを検査することです。それらは通常、相関しない値です。次に、ターゲットにパケットを送信できます。または、それがルーターの場合は、独自の IP アドレスすらなく、ランダムな、場合によっては存在しないホスト beyond に送信できます。 (たとえば)HTTPS リクエストや SSH ログイン試行を装ったターゲット。

知らないパケットが表示されると、不審に思うかもしれません。しかし、ログに次のようなものを見たとしても

SSH: failed attempt for user maintenance
SSH: failed attempt for user maintenance
SSH: failed attempt for user maintenance

心配する必要はありません。特に 持っていない場合 ユーザー「メンテナンス」。おそらく、どこかの誰かが、デフォルトのユーザーが「メンテナンス」であるデバイスに対する攻撃を発見したと想定するでしょう (まあ、私が政府だったら、マーケティングできます) まったく異なるデバイスでのそのような接続を正当化するという唯一の目的のために .そのような試みを見て、あなたは最初に何をしますか?何もしない (「無害な総当たり。ばか」) か、Google と肩をすくめる (「ああ、誰かが私が CheapRouter 2000 を持っていると思っている. ばか」)、IP をブロックするファイアウォール ルールを作成する可能性があります。ネットワーク カード ).

実際に何が起こるかというと、ルーター、ネットワーク カード、マザーボードなどの悪意のあるファームウェアがパケットを認識します。 回答を返す .これは、「本物の」パケットを上書きする応答パケットを偽造することで実現できます。

非常に悪いことが起こっている唯一の兆候は、たとえば、悪質なルーターからのインバウンドとアウトバウンドのトラフィックを比較した場合です:

ホスト SSH サーバー:

--> SSH SYN --> ROUTER --> SSH SYN --> HOST
<-- SSH S+A --- ROUTER <-- SSH S+A <-- HOST
--> SSH ACK --> ROUTER --> SSH ACK --> HOST
...
--> LOGIN ----> ROUTER --> LOGIN ----> HOST
<-- FAIL2------ ROUTER <-- FAIL1 <---- HOST    packets are different!

SSH サーバーのないホスト:

--> SSH SYN --> ROUTER --> SSH SYN --> HOST
<-- SSH S+A --- ROUTER <-- SSH RST <-- HOST    wait, WTF?
--> SSH ACK --> ROUTER                 HOST
...
--> LOGIN ----> ROUTER                 HOST
<-- FAIL2------ ROUTER                 HOST

侵害されたデバイスの左側または右側のケーブルを盗聴した場合、すぐに何も問題がないことに気付くでしょう。

もう 1 つの疑わしい点は、送信者が明らかに TCP Fast Open 拡張機能を使用していることです。 TCP/FO がなくても SYN で余分なデータを送信できることに注意してください。両方 のデバイスでは単純に無視されます。 FO ではなく、妥協もありません。


Linux
  1. 特定のディレクトリにSSHで接続する方法は?

  2. LinuxからWindowsにSsh経由でインテリジェントにまたは部分的に非常に大きなファイルをダウンロードすることは可能ですか?

  3. 複数のホストアドレス/ポートなどで同じSshエイリアスを使用する方法は?

  1. CentOS / RHEL :デフォルト ポート 20 および 21 以外のポートを使用するように vsftpd を構成する方法

  2. Linux で SSH 経由で X アプリケーションを実行できない

  3. 暗号化されたホームディレクトリを持つUbuntuシステムへのauthorized_keysを使用したSSH?

  1. SSH デーモンで考えられるセキュリティ上の問題は何ですか?

  2. 22 以外のポートで SSH を実行するにはどうすればよいですか?

  3. root アクセスなしで 1024 未満のポートにバインドする