YeoPEVA

해커스쿨 FTZ level3 본문

#Pwn, Crypto/해커스쿨

해커스쿨 FTZ level3

YeoPEVA 2018. 2. 4. 22:32

level3 풀이입니다.


level3 에서는.. 시작 전에 힌트를 드리자면, 커맨드 인젝션 공격이 사용 됩니다. [추후 자세히 포스팅 하겠습니다.]


음.. 여기서 더 설명하기도 그러니, 문제를 풀면서 간단히 설명 드리겠습니다.





[이번 문제의 힌트 입니다.]


힌트를 확인하니, /bin/autodig 를 이용하여 level4의 권한을 얻으라고 합니다.


또한 추가 힌트로 동시에 여러 명령어를 사용하려면?

문자열 형태로 명령어를 전달하려면?

과 같은 힌트가 적혀 있습니다. 


[find 를 통해, 확인]


/bin/autodig [Setuid]가 걸려 있음을 확인 가능했습니다. 


[실행]


그 뒤, 실행을 해봄으로써 어떤 역할을 하는 프로그램인지 확인을 해보았습니다. 



Dig..?  


여기서 DIg란,

리눅스에서 DNS 조회를 하게 될 경우, 사용되는 도구입니다.

[이와 관련해서 밑에 링크를 추가해두었습니다.] 


음.. 하지만 이번 문제의 중요한 점은 이 점이 아니라, 어떻게 하면 level4의 쉘 혹은 패스워드를 얻는지가 관건 입니다.


어떻게 하면 위 /bin/autodig 를 통해 쉘 or 패스워드를 얻을 수 있을까요?


그 정답이 바로 커맨드 인젝션 입니다. 


[System 함수 사용 확인]


[해당 프로그램, 내부 문자열 출력]


위 사진을 통해 해당 프로그램이 system 함수를 사용한다는 것을 알 수 있었습니다. 

위 system 함수에는 문제점이 있는데, 해당 문제점을 통해 커맨드 인젝션을 진행해보도록 하겠습니다.


#System 함수의 문제점은..? 

시스템 함수의 문제점은 인자값 (커맨드)를 운영체제 명령으로 실행시키기 떄문에 상당히 위험합니다.

windows 의 경우 환경변수 등을 이용하여 CMD.exe를, linux의 경우 /bin/sh을 통해 입력된

인자 값을 처리하기 때문에, 시스템에 직접적인 영향을 끼칠 가능성이 높습니다.


+ 어떻게 커맨드 인젝션을 진행하게 되나요?

이번 프로그램의 경우, System 함수의 인자 값을 체크하지 않기 때문에

다중 명령어 즉 ;  && 와 같은 값을 걸러내지 못하기 때문에


앞에는 정상적인 인자 값을 넣어주고, 뒤에는 세미클론[;]을 통해 또 다른 명령어를 작동하게 할 수 있다는 것 입니다.


여기서 힌트를 체크해보자면..


[1] 동시에 여러 명령어를 전달하고자 한다면?  -> ;

[2] 문자열 형태로 명령어를 전달하고자 한다면?  ->  ""로 감싸주면 됩니다. 


2번을 왜 하냐고 물으신다면.. 문자열로 감싸주지 않게 되면, 앞 명령어만 해당 /bin/autodig에 전달되어,

level4 권한이 아닌 level3 권한으로 명령어가 진행되니.. 패스워드를 얻어낼 수 없기 때문이죠 ㅠㅠ.. 



[풀이 성공]


넵.. 성공 입니다.


[이런 방법 또한 가능]




Solve




Dig 


https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_dig

http://regularmotion.kr/dig-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EC%82%AC%EC%9A%A9%EB%B2%95/


Command injection 


https://bpsecblog.wordpress.com/choirish_command_injection/

https://www.owasp.org/index.php/Command_Injection


System

https://msdn.microsoft.com/ko-kr/library/277bwbdz.aspx

http://pencil1031.tistory.com/53


다중 명령어

http://brownbears.tistory.com/205


참고 서적

문제 풀이로 배우는 시스템 해킹 테크닉 


'#Pwn, Crypto > 해커스쿨' 카테고리의 다른 글

해커스쿨 FTZ level4  (0) 2018.02.18
해커스쿨 FTZ level2  (0) 2018.02.04
해커스쿨 FTZ level1  (0) 2018.01.29
해커스쿨 공략 전 계획  (0) 2017.07.23
해커스쿨 ftz - level1 공략  (0) 2016.12.03