ポート32764でリッスンしているNetgearルーター?


13

ファームウェアV5.01.01を実行しているNetgear DG834Gがあります。LAN側から、ポートスキャンすると、tcpポート32764でリッスンします。このポートにTelnetで接続しようとすると、応答が得られますMMcS\xff\xff\xff\xff\0\0\0\0(明らかに16進数で)。

UPnPを無効にしましたが、リモート管理ポートではなく、WAN側で開いていません。Netgearのドキュメントには何も見つかりません。オンラインで検索しても何も見つかりません。少数の人々は気づいたようですが、実際に誰も答えを持っています。また、そのポートへのアウトバウンドアクセスをブロックするファイアウォールルールを作成しましたが、まだ開いているので、実際にはそのポートでリッスンしているルーターです。

誰がこれが何であるかを知っていますか?


どのtelnetクライアントを使用していますか?私はパテを使用する場合、私は私のNETGEARルータと得るすべては...「MMcSÿÿ」である
Mokubai

1
二重ドットの付いたyは16進数の0xffであり、私と同じです。
デントラシ

これに最近出会ったのでこれに追加するために、ここに出力があります:SF-Port32764-TCP:V = 5.61TEST4%I = 7%D = 5/8%Time = 4FA9A45B%P = i686-pc-linux- gnu%r SF:(GenericLines、C、 "MMcS \ xff \ xff \ xff \ xff \ 0 \ 0 \ 0 \ 0")%r(Help、C、 "MMcS \ xff \ xff \ SF:xff \ xff \ 0 \ 0 \ 0 \ 0 ")%r(X11Probe、C、" MMcS \ xff \ xff \ xff \ xff \ 0 \ 0 \ 0 \ 0 ")%r(LPDStr SF:ing、C、" MMcS \ xff \ xff \ xff \ xff \ 0 \ 0 \ 0 \ 0 ")%r(TerminalServer、C、" MMcS \ xff \ xff \ SF:xff \ xff \ 0 \ 0 \ 0 \ 0 "); このポートがデフォルトで開いている理由に関するこれ以上の洞察はいいでしょう。


このデバイスはあなたのものであり、あなたはLAN上にいるので、たぶん試すことができますnmap -sV --version-all the_device_hostname
user2284570 14年

回答:


4

うーん、変だ。

16進ff = 10進255であるため、論理的には、受け取る応答は次と同等です。

MMcS 255.255.255.255 0.0.0.0(ネットワークを明確にするために追加されたドット)は、基本的にはネットワーク上のブロードキャストアドレスです。ネットワーク上のすべての IPがMMCSサービス、つまり255.255.255.255ネットマスク0.0.0.0を使用できることを示している可能性があります。

ネットワーク上のマルチメディアトラフィックの優先順位を取得するためにVistaが使用できるMultiMedia Class Schedulerなど、MMCSにはさまざまなものがあります。ポートがローカルネットワークでも開かれている理由を説明します。

また、このページの最初の投稿のポイント5に関する少しの情報

私はに何かすることはないだろうMIP-MANETセルスイッチング、携帯電話ネットワークとは何かであるように思われます。Googleで検索すると返される奇妙なものがありますMMCS 255.255.255.255でます。同様に、この

したがって、Windows MultiMedia Class Schedulerがルーターと通信してトラフィックの優先順位を設定できるポートである可能性が高いと思いますが、奇妙なファンキーな携帯電話ネットワークのものである可能性があります。



@kenorb私が感じるかどうかはわからない誇り、恥ずかしいまたはわずかに違反...
Mokubai

私はあなたが何人かの人々が彼らのクリスマスの時間を台無しにしないのを手伝ったことを誇りに思う:)
ケノーブ

17

実際には、これは、ここで説明されているように、製造元によって組み込まれたソフトウェアバックドアのようです。で、このスクリプトを使用し悪用可能な。

これまでのところ、ベンダー以外の関係者は、Linksys WAG200G、Linksys WAG320N(ファームウェアV1.00.12)、Netgear DM111Pのルーターにバックドアがあると報告しています。しかし、Netgear DG834、DG834G WPNT834 DG934、WG602、WGR614ルーター、Linksys WAG160NおよびDGN2000、WAG120Nワイヤレス-WRVS4400Nなどのデバイス(お客様のものを含む)も存在するようです。このバックドアは他のデバイスにも存在しているようです。



@ D3C4FF:最も興味深いのは、サービスが正常に機能しているときに、サービスの宛先ip_addressが何であるかを知ることです。どの人が自動的にデータを収集するのか知りたいです。
user2284570

:実はこの質問は、それが本来のスライドショーでありますように、このバックドアが作成された主な結果であったbackdoor_description.pptx :)
kenorb

1

これは、ファームウェアのアップグレードに使用されるSerComm製造のルーターおよびホームゲートウェイデバイス(Linksys、Netgear、Cisco)に存在するMIPSポートです。

これはscfgmgr、ポート32764でリッスンしているプロセスによって管理されます。

telnet経由でアクセスすると、データのプレフィックスが ScMMまたはMMcS(システムのエンディアンに応じて)で始まるが返されるようです。

これは、ヘッダー(0xCバイト)の後にペイロードが続く非常に単純なバイナリプロトコルです。

ヘッダー構造:

typedef struct scfgmgr_header_s {
    unsigned long   magic;
    int             cmd;
    unsigned long   len;
} scfgmgr_header;

これはCisco GPLソースに基づいています(たとえば、廃止されたftp-eng.cisco.comのwap4410n_v2.0.1.0_gpl.tgz)。

実際の情報については、elvanderbの説明とサンプルPythonコードをご覧ください。


現在、ヒープベースのバッファオーバーフローで有名です。これにより、デバイス(バックドア)へのフルアクセスが可能になります。これは2013年のクリスマスにEloi Vanderbekenによって発見されましたが、おそらく2008年に中国のハッカーによって知られていました(cgi file)。

動作方法は次のとおりです。

ヒープベースのバッファオーバーフロー:

ヒープベースのバッファオーバーフロー

メッセージ:

メッセージ

そのため、単純なオーバーフローメッセージを使用すると、多くの興味深い詳細が得られます。

スクリーンショット-WiFiユーザー名とパスワード

ただし、これにより設定がリセットされる可能性があるため、自宅では実行しないでください。

このポートを介して実行されるルーターによって実行される逆のコマンドはほとんどありません。

  1. nvram -設定をダンプします。

  2. get var -構成変数の取得

    スタックベースのバッファオーバーフローの可能性(変数がユーザーによって制御されている場合)

  3. set var -設定変数の設定

    スタックベースのバッファオーバーフロー、出力バッファ(サイズ≈0x10000)はスタック上にあります。

  4. commit nvram -/ tmp / nvramからnvram / dev / mtdblock / 3を読み取り、CRCを確認します

    / tmp / nvramからnvram(/ dev / mtdblock / 3)を設定します。CRCをチェック

  5. ブリッジモードをオンに設定します(確かに、テストする時間はありませんでした)

    nvram_set(“wan_mode”, bridgedonly)
    nvram_set(“wan_encap”, 0)
    nvram_set(“wan_vpi”, 8)
    nvram_set(“wan_vci”, 81)
    system(“/usr/bin/killall br2684ctl”)
    system(“/usr/bin/killall udhcpd”)
    system(“/usr/bin/killall -9 atm_monitor”)
    system(“/usr/sbin/rc wan stop >/dev/null 2>&1”)
    system(“/usr/sbin/atm_monitor&”)
    
  6. 測定されたインターネット速度を表示(ダウンロード/アップロード)

  7. cmd(うん、シェルだ…)

    • 特別なコマンド:

      • exit、bye、quit-> quit ...(alive = 0)
      • cd:ディレクトリの変更(少しWTF)
    • 他のコマンド:

      • stdout処理での整数オーバーフロー(?)は悪用できませんが、それでも...
      • cmd出力のバッファオーバーフロー(同じバッファ)…
  8. 書き込みファイル

    • ペイロード内のファイル名
    • ルートディレクトリ= / tmp
    • ディレクトリトラバースが可能かもしれません(テストされていませんが、open(sprintf(“ / tmp /%s”、ペイロード))...)
  9. バージョンを返す

  10. モデムルーターのIPを返す

    • nvram_get(“ lan_ipaddr”)
  11. デフォルト設定に戻す

    • nvram_set(“ restore_default”、1)
    • nvram_commit
  12. / dev / mtdblock / 0 [-4:-2]を読み取ります

    • それが何であるかわからない、私はそれをテストする時間がなかった
  13. ディスク(/ tmp / nvram)にnvramをダンプし、コミットします

出典:(スライドショー)Linksysが私のクリスマスをどのように救ったか!


通常その種のポートはIANAによって公式にあるべきです。

これは、2007年のLinuxQuestionsでこのポートに関連してunSpawnが答えたものです。

正式にIANAが割り当てたポート(0から約30000の間の番号)の場合、その番号は/ etc / services( 'getent services portnumber')のサービス、Nmapなどのスキャナーのサービスファイルまたはオンラインに対応する必要があります。 SansのISCのようなデータベース。

を使用してローカルで一時ポートの使用を構成できることに注意してください/proc/sys/net/ipv4/ip_local_port_range sysctl。古いデフォルトは1024-5000でしたが、サーバーでは32768-61000の値が使用され、一部のアプリケーションでは1025-65535のようなものが必要です。

また、これらは静的な番号からサービスへのマッピングであり、たとえば/ etc / servicesは TCP/22特定の状況でそうである必要がないSSH一致ことに注意してください。

それ以外の場合、どのプロセスがそれにバインドしたかわからないポートである場合、ホストにアクセスできる場合はnetstat -anplsof -w -n -i protocol:portnumberまたはを使用して問い合わせることができますfuser -n protocol portnumber。これが最も正確な方法です。

それ以外の場合、ホストにアクセスできない場合は、たとえばtelnetでホストに問い合わせることができます。これは正確な方法ではなく、侵害されたホストの場合、侵入者に自分のケースを警告することがあります。

こちらもご覧ください:

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.