일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- rootme
- Gentoo
- 리눅스
- 보안
- pwnable.kr
- wargame
- pwnable
- 프랑스송금
- 프랑스교환학생
- FTZ
- Challenge
- network
- Linux
- 모인유럽송금
- WebHacking
- EPITA
- 해커스쿨
- 해킹
- 프랑스 교환학생
- client
- 모인해외송금
- 유로송금
- 네트워크해킹
- 루트미
- 해외송금
- 모인유럽서포터즈
- web
- 백도어
- 웹해킹
- 포너블
- Today
- Total
Securing Keys
[FTZ] Level 3: SUID가 걸린 함수에 인자 전달로 명령 실행 본문
level3로서 로그인 후 홈 디렉토리를 확인해보니 역시 hint 파일이 존재한다
이를 확인해보니 autodig의 소스코드를 보여주고 있는데
이를 이용하여 level4의 권한을 얻어야한다고 한다
추가 힌트를 확인해보니
동시에 여러 명령어를 사용하는데
이때 문자열 형태로 명령어를 전달해야할 듯 하다
소스코드를 확인해보니, dig 명령어를 사용하는 프로그램이다
dig 명령어는 리눅스에서 네임서버로부터 정보를 가져오는 명령어로,
DNS 질의응답이 잘 이뤄지는지 확인하는 것이다
$ dig @[문자열] version.bind chaos txt
즉 autodig가 실행되면 위와 같은 명령어가 실행된다
[문자열] 서버로 nslookup을 실행하는 것이나 마찬가지인데 뒤에 옵션은 굳이 알아보지 않아도 될 듯 하다
autodig로 된 파일을 찾아보니 역시나 autodig는 level4의 SUID가 걸려있는 실행파일이었다
level3로서 읽고 실행할 수 있는 권한이 있으니
이 파일을 실행할 때에 level4의 권한을 빌린 상태일테고,
명령어를 실행하는 파일이기 때문에 다중 명령어를 사용할 수 있는 ; 나 && 나 || 를 사용하면
my-pass 명령어를 같이 쓸 수 있지 않을까 싶다
그 중에 나는 ; 이 성공 실패에 관계없이 모두 실행해주는 다중 명령어기에 이를 사용하도록 하겠다
$ dig @8.8.8.8; my-pass; version.bind chaos txt
위와 같은 명령어를 실행하면
dig @8.8.8.8 명령어도 실행하고,
my-pass도 실행하고
그 뒤도 실행하게 될 것이다 (하지만 마지막은 명령어가 아니기에 실패로 뜰 것이다)
다시 한 번 정리하자면,
autodig 파일을 실행할 때에 "8.8.8.8; my-pass;"를 인자로 넘겨주면 my-pass가 실행될 것이다
이때 공백이 존재하므로 ' ' (작은따옴표)를 이용해주면 될 것 같다
성공적으로 level4의 패스워드를 얻고
아까 예상했던 것과 같이 마지막 명령어는 실행 실패가 뜨는 것을 확인할 수 있다
'IT > Linux' 카테고리의 다른 글
[FTZ] Level 4: xinetd.d 내 서비스를 이용한 백도어 (0) | 2020.08.30 |
---|---|
[FTZ] Level 3 응용: 항상 접근 가능한 백도어 쉘 만들기 (0) | 2020.08.30 |
[FTZ] Level 2: SUID가 걸린 vim에서 명령 실행 (0) | 2020.08.30 |
[FTZ] Level 1: SetUID로 찾은 백도어 이용하기 (0) | 2020.08.30 |
[Linux for Security] Gentoo 커널, 부팅, 네트워크 설정 (0) | 2019.12.08 |