Lael's World


Page Navigation


Post Content

» Posted By Lael Rukius, » Posted In 분류없음, » Reg Date : 2012/01/28 00:54
» Post Url : http://lael.be/439
» Last Modified at 2012/01/28 00:58
#사용서버 환경 : Ubuntu Server 10.04 LTS // Local Machine

그냥...

 

현재 쉘에서 작업하는 반복적인 단순한 작업을 함수로 만들어서 웹에서 관리하고 싶어졌다.

작업은 사용자의 추가, 삭제, 비밀번호 변경이다. 

 

여러 시행 착오 끝에 코드를 짰다.

 

그리고 다음단계로는 root의 권한을 얻어야하는건데... 이게 조금 어렵더라.

 

먼저

test.php 작성

<?php
system("whoami")
?>

 

결과화면은 www-data 이었다.

 

그래서 쉘실행파일 작성

test.sh

whoami

 

이것 실행 역시 www-data 이었다.

 

setUID를 주고서 해보았다.

소유자변경과 setuid 비트 2가지를 주어야한다.

결과 변화가 없음.

 

test2.php 생성

<?php
system("./test.sh");
system("./test.php");
?>

 

즉 test2.php 에서 호출하도록 해서 작성해보았는데 역시 결과는 변화가 없었다.

이론상으로는 owner 로 등록된 유저명이 나와야 하는데..

 

마지막으로 gcc를 이용해 보았다.

 

test.c 생성

void main(){
system("whoami");
}

 

#gcc -o test.o test.c

#chmod 4755 test.o

#chown root test.o

 

라고 하고 test2.php 처럼 호출하는 방식으로 실행했더니

root 권한이 되었다.

 

setuid가 보안에 민감한 부분이라서...  그냥 안쓰고 수동적으로 작업할까 생각중..



 The Post which treat similar subject 
 GNU Free Documentation License (블로그 글 저작권 규정) You can copy and distribute the Document in any medium, either commercially or noncommercially.
We grants you a worldwide, royalty-free, non-exclusive, sublicensable license.
이 블로그에 게시된 모든 글은 작성자(Lael)의 동의 없이 모든 매체에 대해 발췌 및 상업성 및 비상업성 용도로 사용하는 것을 허가합니다. 불펌 및 무단복제 권장.
2012/01/28 00:54 2012/01/28 00:54

Trackback URL : http://lael.be/trackback/439

Leave a comment