Common Exploiting Problems
リモートエクスプロイテーションにおけるFDs
たとえば、リモートサーバーに**system('/bin/sh')
**を呼び出すエクスプロイトを送信すると、これはもちろんサーバープロセスで実行され、/bin/sh
はstdin(FD:0
)からの入力を期待し、stdoutおよびstderr(FDs 1
および2
)に出力を表示します。したがって、攻撃者はシェルと対話することができません。
これを修正する方法は、サーバーが起動したときにFD番号3
(リスニング用)を作成し、その後、接続が**FD番号4
**になると仮定することです。したがって、シェルに連絡を取ることが可能になります。
Socat & pty
socatは既に**stdin
とstdout
をソケットに転送しています。ただし、pty
モードにはDELETE文字が含まれています**。したがって、\x7f
(DELETE
-)を送信すると、エクスプロイトの前の文字が削除されます。
これをバイパスするには、\x7f
を送信する前にエスケープ文字\x16
を付加する必要があります。
ここではこの動作の例を見つけることができます。
Last updated