コンピュータハイジャッキング(7.4)の続き
この項は本書での核心部分に迫る内容だったと感じる
コード的なことは書かないが知ったこと、感じたことを列挙
まず
・ローカルホスト上のプログラムにペイロードを注入して
シェルを起動させる
のと
・リモートからプログラムにペイロードを注入して
リモートシェルを起動させる
は
全然違う!!
すっごい当たり前のことなんやけど、すごいスッキリした
前者:
ローカルのプログラムなのだからソケットを生成する必要がないので
シェルコードは単なる/bin/shを起動するだけのものになる
後者:
例えば例で作ったシリアル番号を送って成否を判断するやつ。
あれはただwrongかcorrectかを送ってくれるだけのもので
/bin/shを起動したところで、シェルに対する入出力の結果が
クライアントには返ってこない
プログラム側でシェルが開かれることになると思う
だからわざわざプログラム側でソケット開いて
クライアントを待ち受けて、netcatとかでシェルを実行するんやろな
だからペイロードのシェルコードの中には
/bin/shを起動するようなプログラムはなくて
ただクライアントソケットをstsin、stdout、stderrに
つなげている
これでnetcatでサーバに接続できれば
rootがダッシュできるようになるわけだ
なーーーーるほどーーー