|
[해설] flag03의 디렉터리(/home/flag03)를 확인하고 그 곳의 파일들을 주의 깊게 살펴라. 거기에 crontab이 몇 분에 한 번씩 호출된다. 이 레벨을 해결하기 위해 패스워드 level03으로 level03 계정에 로그인하라.
먼저 flag03 디렉터리로 이동해서 무슨 파일들이 있는지 확인한다.
디렉터리와 쉘 스크립트 파일이 있다. 뭔가 의심스러운 쉘 스크립트 파일도 있다. 열어보자.
확인해보니, writable.sh는 bash 쉘로 writable.d 디렉터리에 있는 모든 쉘 스크립트 파일을 실행하고 5초 후에 제거한다. 이 스크립트가 반복적으로 실행될 것 같다.
crontab이 SetUID 권한을 설정한 실행 파일을 생성하도록 유도해보자. 이 파일이 배쉬 쉘을 실행할 것이다.
SetUID 권한은 쉘 스크립트에서 동작하지 않으므로, 우리는 바이너리 실행 파일이 필요하다.
Ash(Attack shell)는 crontab이 소스 코드(Asw.c)를 컴파일 후 SetUID 권한을 설정하도록 유도한다.
그리고 컴파일 될 Asw(Attack software)를 아래와 같이 작성한다.
realUID, effective UID, saved set-user-ID를 flag03의 UID로 설정한다. 이 함수는 특수 권한 SetUID가 설정된 경우만 동작한다.
effective UID가 그냥 궁금해서 whoami 명령어를 중간에 넣었다.
최종적으로 이 프로그램은 /bin/bash를 실행하여 권한 변경을 시도한다.
만든 쉘 스크립트를 writable.d 디렉터리에 넣는다.
이후 몇 분 정도 기다리면, Ash 파일이 없어진 것을 확인할 수 있다.
그리고 Asw 파일이 생성된다. 소유자는 flag03이다. SetUID 권한이 설정되어 있다.
Asw 파일이 실행되면 flag03의 권한의 쉘이 실행되는 것을 알 수 있다.
getflag 명령으로 level03을 클리어.
'정보보안_테크닉 > 워게임_Nebula' 카테고리의 다른 글
Nebula Level07 솔루션 (0) | 2016.12.04 |
---|---|
Nebula Level06 솔루션 (0) | 2016.11.23 |
Nebula Level05 솔루션 (0) | 2016.11.19 |
Nebula Level04 솔루션 (0) | 2016.11.18 |
Nebula Level03 힌트 (0) | 2016.10.15 |
Nebula Level02 솔루션 (0) | 2016.09.24 |
Nebula Level02 힌트 (0) | 2016.09.23 |
Nebula Level01 솔루션 (0) | 2016.08.18 |
Nebula Level00 솔루션 (0) | 2016.08.11 |
Nebula 소개 (0) | 2016.08.11 |
"도움이 되셨다면 '좋아요' 부탁드리겠습니다."
|