Post

[RCity] RCity14 Write up

개요

Redraccoon에서 운영하는 RCity라는 워게임에 RCity14에 대한 Write up을 작성했습니다. 이번 RCity13~RCity15까지는 redraccoon에서 풀이영상을 게시해줬으니 참고하시는것을 추천드립니다.

풀이영상(Redraccooon)

해당 공격 기법들을 허가되지 않은 실제 운영 서버에서 시도하는 것은 정보통신망법에 어긋나는 행위입니다.

문제분석

1
2
3
4
5
라쿤시티의 시스템에 침투하여 rcity14 유저의 sudo 권한을 활용해
시스템 내부에 존재하는 바이너리를 분석하고 플래그를 획득하세요!

이 플래그는 제네시스 백신 개발에 도움이 될 수 있는 추가 정보를 가지고 있습니다!

1
sudo, gtfobins

문제를 보면 일단 rcity14유저는 sudo 권한을 가지고 있다는것을 알 수 있다.

image

현재 디렉토리를 보면 아무것도 없고 sudo -l을 통해 sudo 권한으로 무엇을 할 수 있는지 확인해봤다.

여기서 sudo명령어는 다른 유저의 권한으로 명령어를 실행할 수 있는 명령어이다. 예를들어 rcity15rcity14에게 모든 명령어에 대한 sudo 권한을 준다면 ricty14는 모든 명령어를 rcity15의 권한으로 실행할 수 있게 된다. 만약 rcity14root의 sudo권한을 가지고 있다면 매우 위험하므로 대체로 sudo권한은 잘 부여되지 않는다. 위에서 사용했던 -l옵션은 현재 사용자가 sudo명령어로 사용할 수 있는 명령어를 보여준다.

다시 돌아와서 결과를 보면 find명령어를 rcity15의 권한으로 실행할 수 있다는 내용이 출력된것을 확인할 수 있다. 그렇다면 생각해야할 것이 find명령어로 대체 무엇을 할 수 있는지 생각해봐야한다. 이것을 해결하기 위해 GTFOBins을 사용할 수 있다. GTFOBins는 Unix시스템에서 쉘 명령어를 악용하여 권한상승, 데이터탈취, 파일 조작 등의 공격을 수행하는데 유용한정보를 주는 웹사이트이다.

https://gtfobins.github.io/해당 사이트를 접속하고 find를 검색한결과 shell을 획득할 수 있다는 명령어가 나왔다. find . -exec /bin/sh \; -quit 이것을 sudo 권한으로 실행해보겠다.

image

해당 명령어를 그냥 sudo권한으로 실행한 결과 Sorry, user rcity14 is not allowed to execute '/usr/bin/find . -exec /bin/sh ; -quit' as root on 3d74c8db73c5. 즉 이 명령어를 root권한으로 실행할 수 없다는 문구가 출력이되었다. 어떤이유에서인지 sudo명령어가 rcity15가 아닌 root권한으로 실행되었다. 이를 해결하기위해 -u rcity15옵션을 사용해 rcity15의 권한으로 명령어를 사용할것이라 넣어줬다.

sudo -u rcity15 find . -exec /bin/sh \; -quit. 결과적으로 해당 명령어를 사용한 결과 쉘을 획득할 수 있었고 홈디렉토리에 플레그를 확인할 수 있었다.

This post is licensed under CC BY 4.0 by the author.