ksnctf 30 Alpha Mixed Cipher
-
alphenumeric shellcode
- らしいので、調べる
- 英数字のみからなるシェルコード
- 英数字ではない文字を棄却するフィルタを通過させるのに使える
-
先頭の文字列を調べていく
- VTX630VXH49HHHPhYAAQhZYYYYAAQQDDDd36FFFFTXVj0PPTUPPa301089
- セグメントレジストFSを使ってSEHアドレスを取得し、新しいアドレスに書き換えて故意に例外処理を発生させ実行権を奪う、らしい。。
- IIIIIIIIIIIIIIIII7QZ
- ecxレジスタのこと。↑の実行権を奪うにあたって、ベースアドレス(実行させたいコードの先頭アドレス?)をどこかのレジスタに格納したくて、ecxレジスタを使ってるみたい。
- jAXP0A0AkAAQ2AB2BB0BBABXP8ABuJI
- mixedcase_ascii_decoder_body
- ここから先が、実行コードだよ。デコードしてね。実行コードはasciiで大文字小文字まざってるよ。の意味っぽい
- VTX630VXH49HHHPhYAAQhZYYYYAAQQDDDd36FFFFTXVj0PPTUPPa301089
-
ここまでは、攻撃用。ここから先に、実際に実行したいシェルコードがalphanumeric化されて続いている。なので、攻撃用コードを全部省いてデコードしてみる。
-
得たシェルコードをexeに変換
-
参考記事
- http://inaz2.hatenablog.com/entry/2014/07/11/004655
- http://shimenawa.hatenablog.com/entry/2016/08/19/011827
- https://www.iwsec.org/mws/2010/presentation/2A3-3.pdf
- https://securiteam.com/exploits/5JP0M2KBPE/
- https://ja.wikibooks.org/wiki/X86%E3%82%A2%E3%82%BB%E3%83%B3%E3%83%96%E3%83%A9/x86%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3
- https://github.com/un4ckn0wl3z/Alpha2-encoder/blob/master/alpha2.c
- http://theloshackers.blogspot.com/2013/08/decode-shell-code-encoded-by-alpha2.html