私は侵入テストを初めて使用するので、次の2つのことの違いを知りたいです。
ペイロード(リバースTCP vs.バインドシェル)
シェルとシェルコード
何か助けは?
アプリケーションを悪用する場合、payloadは攻撃者が実際に実行したいコードです。これは、脆弱性自体を利用する目的を果たすだけでなく、攻撃者が有用だと考えるすべてのことを行います。
ペイロードを選択するとき、攻撃者は通常、Shellを開始するコードを必要とします。シェルは、OSを制御するためにコマンドラインで対話するプログラムです(Linuxでは、 Bourne Shell または Bash に慣れている場合があります)。
シェルを開始するペイロードは、shellcodeと呼ばれます。ただし、最終的には、シェルコードと呼ばれるシェルをだらだらと起動しないペイロードも検出されることに注意してください。
bind Shellは、自分自身をポートにバインドし、着信接続を待機するプログラムです。ポートを開くことは注目を集め、攻撃者はネットワークの外部からポートに到達できないことが多いため、反対の概念があります。Areverse Shell着信接続を待機せず、指定されたアドレスとポート自体に接続します。つまり、攻撃者は、自分で接続を開始するのではなく、侵害されたサーバーによる着信接続を待機します。
エクスプロイト-エクスプロイトは、攻撃者、またはその問題の侵入テスターが、システム、アプリケーション、または内部の脆弱性を利用する手段ですサービス。攻撃者はエクスプロイトを使用して、開発者が予期しなかった特定の望ましい結果をもたらす方法でシステムを攻撃します。一般的な悪用には、バッファオーバーフロー、Webアプリケーションの脆弱性(SQLインジェクションなど)、および構成エラーが含まれます。
ペイロード-ペイロードは、攻撃者がシステムに実行させたいカスタムコードであり、フレームワークによって選択および配信されます。たとえば、リバースシェルは、Windowsコマンドプロンプトとしてターゲットマシンから攻撃者への接続を作成するペイロードですが、バインドシェルは、ターゲットマシンのリスニングポートにコマンドプロンプトを「バインド」するペイロードです。攻撃者はこれを接続できます。ペイロードは、ターゲットオペレーティングシステムで実行されるいくつかのコマンドのように単純なものでもかまいません。
Shellcode-Shellcodeは基本的に、コードが実行中のアプリケーションに挿入されると実行できる、慎重に作成されたコマンドのリストです。これは、脆弱性を悪用するときにペイロードとして使用される一連の命令です。シェルコードは通常、アセンブリ言語で記述されています。ほとんどの場合、コマンドシェルまたはMeterpreterシェルは、ターゲットマシンによって一連の指示が実行された後に提供されるため、名前が付けられます。
ソース: https://latesthackingnews.com/2017/07/12/difference-exploit-payload-shellcode/
シェルコードはペイロードとともに挿入されるか、時には一般的にペイロードとも呼ばれます。一方、ペイロードは必ずしもシェルコード(シェルを生成するコード)である必要はありませんが、選択した任意のアクションを実行するコードである可能性があります。つまり、電卓の生成、システムの再起動などです。注入および実行されますが、リターンアドレス、NOPスレッド、新しいSEH、スタックを修正するスタブデータ、デコーダー、egghunterなども含まれます。