level4에 왔다...

백도어요? ㄷㄷㄷ

누군가 /etc/xinetd.d에 백도어를 심어놓았다.!

라고 하네요...

뭔지 모르겠으니 일단 저 폴더로 가보죠.

backdoor 파일이 level4로 있네요..?

아스키 파일이어서 열어보니까 service finger 에 대한 정보가 있네요.

 

아직 백도어가 뭔지도 잘 모르겠고...

finger가 뭔지도 모르겠으니...

찾아보겠습니다!

 

백도어란?

말 그래도 용어는 뒷문입니다. 집 주인도 모르는 땅굴을 미리 파두는 것이죠.

정상적이라면 아이디와 비밀번호를 통해 권한을 얻고 그 권한으로 어떤 파일을 실행하는 것이지만, 이 백도어를 사용한다면 이 과정을 모두 건너뛰고 권한을 가질 수 있습니다.

말 그대로 집을 뚫을 수 있다는 것이죠.

 

finger란?

사용자의 등록 정보를 얻을 수 있는 명령어입니다.

UID

사용자명

홈디렉토리위치

기본사용쉘

현재로그인정보

등등

 

이런 정보를 얻어올 수 있다고 합니다.

이걸 가지고 어떻게 문제를 풀 수 있냐?

https://www.hackerschool.org/HS_Boards/zboard.php?id=QNA_level&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=3247

 

레벨 해킹

음 ftz 정말 도움이 많이 되는것 같습니다. 이번에 level4풀면서 검색도 많이 해보고 하면서 하니까 문제도 이해되고 리눅스에 점점 익숙해져 가는것 같습니다. 일단 다른분들을 위해 제가 알아낸

www.hackerschool.org

 

여기를 보시는게 가장 편할 것 같습니다...

이 글을 보기 전까지는 뭔지 모르고 finger 계속 방황하다가 풀었습니다... 꼭 보세요!

아무튼 위의 사진을 다시 끌어서 보면 finger 명령어를 사용하면 이것 토대로 실행하게 되는데, level5의 권한으로 /home/level4/tmp/backdoor 을 실행한다고 합니다.

 

그러니 저 디렉토리로 한번 이동해서 파일이 있는지 확인해보죠!

아무것도 없네요!

그러면 직접 system 명령어가 들어가 있는 c 프로그램을 만들고 컴파일을 해줍시다!

이렇게요

이러고 backdoor라는 파일로 컴파일해주면?

이렇게 되고 finger 명령어를 실행해주면?

그냥 파일을 실행시켜줬더니 level4의 패스워드가 나오고 finger을 통해서 실행해줬더니 level5의 패스워드가 나왔습니다!

 

이게 뭐한건지 아직도 잘 모르겠네요...

finger 명령어에 대해서는 이해를 했지만 어떻게 실행되는 원리인지는 잘 모르겠습니다...

나중에 공부해봐야겠네요.

끄읕

 

level3입니다.

당연하다는 듯이 힌트를 먼저 봐주고 시작하죠

흐음... 보니까 

dig @argv[1] version.bind chaos txt

형태로 cmd가 구성되고 이게 실행된다는 거 같네요?

 

다른 힌트를 보면 동시에 여러 명령어를 사용하는 방법으로 하면 되고, 문자열 형태로 명령어를 전달하는 방식을 사용해야 하는 것 같네요?

 

일단 문자열 형태로 명령어를 전달하기 위해서는 큰따음표(")를 사용하면 됩니다.

그 사이에 들어있는 문자열을 하나로 인식하기 때문이죠.

그리고 여러 명령어를 동시에 사용하려면 세미 콜론(;)을 사용하면 됩니다.

 

다음으로 필요는 없을 것 같지만 dig 명령어를 찾아보면 DNS를 질의할 수 있는 도구하고 하네요.

 

대충 어떻게 사용하는지는 알 것 같습니다.

 

이제 여러개의 명령어를 사용하여 문제를 풀어보죠

이렇게 할 수 있습니다.

 

dig 명령어가 오류가 나도 값은 제대로 나오네요... 정말 dig 명령어는 필요가 없었습니다...

 

네 이제 이렇게 문제를 끝내겠습니다.

level2로 넘어왔습니다!

hint가 또 있군요

텍스트 파일 편집 중 쉘의 명령을 실행시킬 수 있다는데...

라네요

 

우선 이전 레벨에서처럼 setuid를 가지고 있으며 level3 권한이 필요한 파일을 찾아봅시다!

그렇데요...

editor이라는 파일이 있다고하네요

 

폴더를 찾아 들어가서 file 명령어를 사용해보면?

다 필요없고, 중간에 executable이라네요.  실행파일입니다.

실행을 해보죠

호오... 이렇게 vim 에디터가 실행되네요? 신기합니다...

 

인터넷에 vim에서 명령어를 사용하는 방법을 찾아봤더니, 명령 모드에서

:! 명령어

처럼 쓰면 된다고 합니다!

my-pass 명령어를 사용해볼까요?

엥..? 바로 나왔네요?

setuid 파일을 실행하면 필요한 권한으로 실행하게 되기 때문에 아마 저 상태에서는 level3 상태인가보네요.

 

암튼 답은

can you fly?

입니다!

 

끄읕

오늘부터 FTZ를 빠르게 클리어해보려고 합니다.

해커스쿨에서 만든 문제들로, 기본적인 리눅스 언어 사용부터, 해킹 기초까지 배울 수 있습니다.

별로 어렵지 않으므로 빠르게 하겠습니다.

 

 

https://nan491.tistory.com/entry/FTZ-%EB%A1%9C%EC%BB%AC-%ED%99%98%EA%B2%BD-%EA%B5%AC%EC%B6%95

 

[FTZ] 로컬 환경 구축

안녕하세요. 해커스쿨 FTZ 문제풀이를 위한 로컬 환경 구축을 진행하도록 하겠습니다. 설치 순서는 다음과 같습니다. ------------------------------------------------------------ 1. 해커스쿨 FTZ 이미지 파일..

nan491.tistory.com

우선 설치는 위의 사이트를 통해 해주세요.

저는 Xshell을 사용하기 때문에 약간 다르게 보일 수도 있습니다.

 

 

가상머신으로 만들었다면 실행해서

id, pw에 level1을 입력해 level1로 들어와줍니다.

 

level 1입니다. 힌트가 있네요.

권한은 level2, setuid가 걸린 파일을 찾으라네요.

참고로 한글이 깨져 보인다면 utf-8 말고 korea로 해주시면 됩니다.

setuid가 걸린 파일을 찾는 방법은 -perm -4000입니다. 4000이라는 권한을 가진 파일을 찾는다는 의미죠.

엄청나게 많은 파일들이 있어서 permission denied가 출력된 것은 없애버리고 user가 level2인 조건도 추가해줬더니 단 하나의 파일만 남게 되었습니다.

 

ExecuteMe라는걸 보니 실행해야하는건가보네요.

빠르게 bin 폴더로 들어가 프로그램을 실행해준 뒤 bash 명령어를 사용해 권한을 얻고, 비번도 얻었습니다.

hacker or cracker 라네요.

 

이렇게 1단계는 쉽게 해결했습니다!

파일 업로드 취약점 공격

파일 업로드가 가능할 때 그 업로드 할 수 있는 파일의 종류가 제한되어 있지 않다면 업로드 취약점 공격이 가능합니다.

이 취약점을 이용하기 위해서는 파일이 업로드 되는 경로를 알아야 합니다.

파일을 업로드 한 뒤에 경로를 바꿔 저 파일의 주소를 입력한다면 php파일을 실행할 수 있습니다. 이를 이용하게 되면 서버 내에 명령어를 입력할 수 있으며, 모든 정보가 탈취될 수 있습니다.

 

파일 다운로드 취약점

파일 다운로드가 가능할 때 저장되는 파일의 경로가 php파일이나 html파일이 모여있는 폴더의 하위폴더나 근처 폴더에 있을 때 php파일의 경로를 알 수 있습니다.

이 방식은 다운버튼을 눌렀을 때 이동하는 링크에서 파일 이름이 나와있거나 암호화된 변수가 들어가지 않았을 때 사용할 수 있습니다.

 

 

https://nesquitto.tistory.com/79?category=394186

 

Server-Side Basic

본 포스팅은 DreamHack 사이트의 Server-Side Basic 강의 내용을 요약한 것입니다. https://dreamhack.io/ 해커들의 놀이터, DreamHack 해킹과 보안에 대한 공부를 하고 싶은 학생, 안전한 코드를 작성하고 싶은..

nesquitto.tistory.com

이곳에 조금의 설명이 좀 더 첨가되었습니다.

 

'Hacking-기초 > WebHacking' 카테고리의 다른 글

Client-Side Advanced  (0) 2020.04.28
OWASP Top 10  (0) 2020.04.26
Server-Side Basic  (0) 2020.04.22
Client-side Basic  (0) 2020.04.21
Introduction of Webhacking  (0) 2020.04.18

+ Recent posts