Setuid에 관련된 질문
글쓴이: 익명 사용자 / 작성시간: 월, 2002/08/05 - 3:21오후
이 질문은 linux.sarang.net에도 올렸던 질문이고.. 이 게시판의 성격과
조금은 맞지 않지만.. 꼭 해결해야 할 문제(졸업작품과 연관된... ㅡ.
ㅡ;;)이기에 용서를 구하고 질문을 올립니다.
다름이 아니고 setuid에 대해서 시험해볼려고 간단하게 쉘을 복사해다가
setuid를 걸고 다른 계정으로 들어와 실행을 시켰더니(루트의 권한으로
복사해서 chomod 4755를 걸었습니다.)... uid나 euid나 바뀐게 없는것 같
군요...
setuid가 걸리면 effective user가 바뀌는것 아니었나요??
혹시 누구 아시는 분은 없을까요?
[root@localhost hack]$ ls-l
-rwsr-xr-x 1 root root 519852 8월 5 0941 bash
[root@localhost hack]$ exit
[bejoy@localhost hack]$
[bejoy@localhost hack]$ ./bash
bash-2.05$ whoami
bejoy
bash-2.05$ who
bejoy 0 Aug 5 0942
bejoy pts/0 Aug 5 0943
bash-2.05$
이런 식으로 나오더군요... 이유를 아시는 분은 꼭 답해주세요
Forums:
Re: Setuid에 관련된 질문
저도 정확히는 모르는데요..7.1 버전 이상부터는 setuid 를 막아놨다고
하더라고요...^^ 다시 함 찾아보세요..
Re^2: Setuid에 관련된 질문
아 그랬나요??
그럼 setuid문제는 사라진건가? 쉘에 대해서만 임시로 막아놓은 것이겠죠?
어쨌던 감사합니다. ^^;;
7.0 버전으로 방금 해도 안되는
7.1로 하다가 다시 7.0으로 버전 다운 해도 setuid는 실행이 되지 않는 군요.
소스 첨부 합니다.
setuid(0);
if(ioperm(BASE_PORT, 3, 1))
{
perror("ioperm");
exit(1);
}
Thank you for your kindness!
허걱...
setuid(0);
if(ioperm(BASE_PORT, 3, 1))
{
perror("ioperm");
exit(1);
}
_________________
Thank you for your kindness!
위 소스대로 가능하다면 리눅스의 해킹은 엄청쉬워질겁니다.
aaa계정이 root계정을 사용하기 위해서 위처럼만 가능하다면
누구나 해킹이 가능하지 않을지... 상위 계정에서 하위 계정으로
권한 변경은 가능하나 하위 권한에서 상위 권한으로 권한 변경은
않됩니다.
setuid사용하는 이유 데몬실행은 root가 해야하나 데몬 사용자는
일반계정일 때 해킹을 방지하기 위해서 setuid를 사용합니다.
예로 아파치 실행은 관리자가 해야한다.. (일반계정사용자가 쉽게
아파치를 죽이거나 살릴 수 있으면 문제가 되기 때문에)
그러나 아피치 데몬을 사용하는 사람은 관리자가 아닙니다.
일반사용자입니다. 이때 해킹을 방지하기 위해서 아파치데몬은
프로세서를 하나 생성해서 권한은 변경해서 일반사용자에서
사용하라고 넘겨줍니다. 이때 setuid를 사용합니다.
네... 루트권한으로 아파치 실행 하려면...
소스로 컴파일 해서 설치 Configuration 파일에
EXTRA_CFLAGS=-DBIG_SECURITY_HOLE 를 추가 하라구 하는데.
이렇게 추가해도 아파치가 루트권한으로 실행되도록 디자인 되지 않았다는 메세지가 뜹니다.
아파치를 루트로 실행 할수는 없습니까???
Thank you for your kindness!
7.0이후로는 불가능합니다.
보안패치 되었습니다.
아직 멀었다.. 난 여전히 시작점
Re: 허걱...
댓글 달기