2015年12月13日日曜日

ROPでDEPBypassしてwindows connectbackシェルコードを走らせてみる

CTFAdvent Calendar 12/6日のネタ。
なんか「ここ開いてるから書いてみ」みたいなTweetが回ってきたので埋めてみるデース。
CTFに直接は関係なくて申し訳無さはある。(本来はWriteupとか書くべき)

あ、どうもせぐふぉです

WindowsのバイナリをExploitするCTFってあんまり見たことないね。
でも、なんか将来的にIoTCoreとか使いそうではないかな・・・?(苦しい言い訳)

元ネタはももテクの
Windowsでconnect-backシェルコードを書いてみる

これです。
ここでは、Windows Sockets APIが攻撃対象アプリ内で呼ばれてること前提で話が進んでいるので
ws2_32.dllが仮想メモリ空間上にロードされています。
さらに、WSAStartupとか呼ばなくて良いのでソケットにcmd.exeをリダイレクトするだけです。


なので、発展課題版として、攻撃対象アプリ内でWindowsSocketsAPIが呼ばれていないし
DLLもロードされていない場合どうすればいいのか書いてみます。

元ネタ記事に書かれてることは理解している前提で話を進めます。

WindowsのPEB万能っぽいって感じた。(こなみかん)