なんかいろいろこんぴゅーたかんけいのなぐりがき

なんか勉強しているこんぴゅーた関係のことのメモやそれ以外のことを書こうかなあ...

logs

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

シェルを起動するCコード

 脆弱性を攻撃する手段として、バッファオーバーフローを利用して、シェルコードを注入すると言う方法がある。シェルコードといってもシェルを起動するだけでなく他の悪意あふれるコードもひっくるめてシェルコードと呼ばれている。
 今回はそのシェルコードであるシェルを起動するコードをCで実装してみた。実行環境はubuntu9.04(プログラムの中に今回のコードを注入してもシェルを起動することはできない。実際にはこのコードをアセンブリ言語で書いてそれを機械語におとしてから注入しないと意味がない)
 
1 main()
2 {
3 char *argv[] = {"/bin/sh",'\0'};
4 execve("/bin/sh",argv,'\0');
5 }

これを
gcc -o shell shell.c
コンパイルして、
./shell
実行するとシェルが起動する。
別にこのプログラム自体はなんの脅威でもない、ただし、なんらかの方法でroot権限を得ることができれば話は別になる。
このプログラムに対して、
sudo chown root shell
sudo chmod +s shell
とすることにより
root権限でシェルを実行するプログラムになってしまう。
なので、これはとても簡単なバックドアとなる。
スポンサーサイト

トラックバックURL

http://ilovevim.blog42.fc2.com/tb.php/10-d3c7e606

この記事へのトラックバック

この記事へのコメント

コメント投稿フォーム

Paging Navigation

Navigations, etc.

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。