悪意のあるシェルコードに遭遇しました。シェルコードを実行できる互換性のあるCコードにシェルコードを移植しました。出力ELFファイルcode
を提供するgcc -fno-stack-protector -z execstack shellcode.c -o code
を使用してコンパイルしました。 gdb ./code
コマンドを使用してファイルを分析し、関数を確認してシェルコードを調査します。
今私の質問は、gdbで実行されているUntrusted ELFファイルがgdb外でのファイル実行を引き起こす可能性があるのですか?シェルコードがrm -rf / --no-preserve-root
である場合、それはセキュリティに影響するか、リモート接続を使用するシェルコードも脅威であるため、コマンドgdb ./code
はコードを完全に実行するか、単にコードを移植するだけですgdbに変換します。それは、シェルコードを実行する前にブレークポイントを使用して分析できるためです。
どんな答えでもいただければ幸いです。
確かにそうです。 gdb
はプロセスをまったく分離せず、プロセスを制御するだけで、プロセスの動作を理解できます。
この種の分析を行うには、VMなどの完全に分離されたシステムにネットワークアクセスなしで頼る必要があります。
ブレークポイントは尊重されますが、劇的な結果をもたらす可能性のあるヒューマンエラーを常に考慮する必要があります。不明な難読化されたプログラムを安全にデバッグするのに十分であれば、コードを読んで何をするかを知るだけなので、リスクを冒すことなく実行する必要はありません。