
CVE-2024-3272 の影響を受ける D-Link デバイスにパッチを適用しましょう
あなたは、CVE-2024-3272に対して脆弱なD-Link NASを使い続けており、パッチの目処が立っていない92,000人以上の一人ですか?1
このツールは、エクスプロイトそのものを使用して脆弱なデバイスにパッチを適用します。
1: 参考文献の元の開示を参照
Dinkleberryは、脆弱なnas_sharing.cgiファイルをパッチ適用済みのバージョンと入れ替えるコマンドを実行します - system()呼び出しをNOPで上書きします。
ファイルが存在する/usr/local/modulesフォルダは読み取り専用であるため、代わりに/usr/local/configにコピーが作成され、/var/www/cgi-bin内のシンボリックリンクが安全なバージョンを指すように更新されます。
私は、コマンドが通常通り応答するが、実際には何も実行しないように、system呼び出しのみをNOPすることを選択しました。
[!NOTE] ファイルシステムは起動時にフラッシュから再読み込みされます。このパッチを適用しても、デバイスを再起動するまでしか効果がありません。より恒久的な修正を希望する場合は、ファームウェアを再フラッシュする必要があります - おそらくDebianを使ってください。
aliask:~/git/dinkleberry$ python3 ./src/main.py -h 10:01:02
usage: dinkleberry [-h] [--telnet] [--kill-telnet] [--test] [--verbose] target
positional arguments:
target Target NAS to patch
options:
-h, --help show this help message and exit
--telnet Start telnet server
--kill-telnet Stop telnet server
--test Test if device is vulnerable
--verbose, -v Set this to print debug messages
オプションフラグが指定されていない場合、スクリプトはパッチ適用を実行します。
デバイスをちょっと覗いてみたいだけなら、--telnetコマンドを使用してください。これにより、ポート23でtelnetセッションが開始されます。
これは笑ってしまうほど安全ではありませんが、あなたのデバイスはすでに笑ってしまうほど安全ではないので、便利なシェルを利用してもよいでしょう。
[!CAUTION] このツールは自己責任で使用してください。実際のデバイスソフトウェアを変更します。
私は以下のことについて責任を負いません:
- デバイスが動作しなくなること
- NASに保存されたデータが失われること
- 火災を起こすこと
- あなたのデバイスを喜んで悪用していたTAが怒ること
[nas_sharing.cgiとlibsmbif.soバイナリの分析中に、このデバイスのソフトウェアが_極めて_脆弱であることがすぐに明らかになりました。メンテナンス不能なゼロからの書き換えが必要なほど脆弱です。
nas_sharing.cgiだけでsystem()への呼び出しが80近くあります - その多くはユーザー入力を経由するパスを持っています。私はパッチを当てるためのさらなる穴を探すためにそれらすべてを解析する気にはなりませんでしたが、S級の例を一つ挙げます:
/* Why use system() instead of libc fopen/fwrite?
What if you want to write a long string or your filename is long?
Painfully obvious command injection playground 🤦 */
void append_to_file(const char* string, const char* file) {
char s_cmd[1024];
sprintf(s_cmd, "echo %s >> %s", string, file);
system(s_cmd);
return;
}
これらすべての_非常識な_ system呼び出しに加えて、バッファオーバーフローが数え切れないほどあります - そして私はたくさんの棒で突くことができます。
このCVEはCISAのKEVリストに掲載されています - これらをインターネットに接続している場合は、オフラインにしてください。すぐにでも。
おそらくD-Linkのアドバイスに従って、販売終了となったデバイスを交換してください。しかし、私は絶対にD-Link製品を買わないでしょう。