먼저 힌트를 까보면 누군가가 /etc/xinetd.d에 백도어를 심어놓았다고 한다.


그래서 그 위치로 가보니 backdoor라는 파일이 하나 있었다.







열어보니 service finger 라는 것이 있었는데 


이것은  어떠한 서비스를 하기위한 initd 데몬이다.


자세히 보면 실행하는 유저가 level5 이고, 


실행경로는 /home/level4/tmp/backdoor 라고 한다.

그래서 저 경로로 가보았지만 아무것도 없었다.


따라서 실행될 프로그램을 직접 만들어 줘야한다.




이렇게 패스워드를 보여주는 프로그램을 짰다.


그리고 finger 서비스를 이용하여 level 5의 패스워드를 알아낼수 있다.



Flag : what is your name?

'IT > FTZ' 카테고리의 다른 글

[FTZ] level6  (0) 2016.07.09
[FTZ] level5  (0) 2016.07.09
[FTZ] level3  (0) 2016.05.20
[FTZ] level2  (0) 2016.05.20
[FTZ] Level 1  (0) 2016.05.20


hint를 까보면 이런식으로 뜬다.


more hints

- 동시에 여러 명령어를 사용하려면?

; 로 명령어를 끊어 줄수 있다.

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

""로 묶어 주면된다.




먼저 find 명령어를 사용해서 찾아보면, /bin/autodig 가 검색된다.


실행 시켜보니 Usage가 뜬다.


저 방식대로 실행해야 하고, 위의 hint를 보았을때 먼저 쉘을 따고, my-pass를 입력하는 순서로 해야한다.

./autodig /bin/bash;my-pass


이고, 문자열 형태로 명령어를 전달하기 위해 "" 로 묶어준다.


./autodig "/bin/bash;my-pass"


명령어를 입력하면, level4의 패스워드가 뜬다.




Flag : suck my brain

'IT > FTZ' 카테고리의 다른 글

[FTZ] level6  (0) 2016.07.09
[FTZ] level5  (0) 2016.07.09
[FTZ] level4  (0) 2016.07.09
[FTZ] level2  (0) 2016.05.20
[FTZ] Level 1  (0) 2016.05.20


hint를 확인해보면

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



id 명령어로 level3의 uid를 얻고, find 명령어로 찾아본다.

/usr/bin/editor을 실행해보면,



편집기에서 쉘을 불러오기 위해서는 여러가지 방법이 있는데,


그중에서 !bash 로 불러오는 방법을 사용하면,




level3의 쉘을 얻게 된다.


my-pass 명령어로 level3의 패스워드를 구한다.




Flag : can you fly?

'IT > FTZ' 카테고리의 다른 글

[FTZ] level6  (0) 2016.07.09
[FTZ] level5  (0) 2016.07.09
[FTZ] level4  (0) 2016.07.09
[FTZ] level3  (0) 2016.05.20
[FTZ] Level 1  (0) 2016.05.20


힌트를 열어보면 " level2 권한에 setuid가 걸린 파일을 찾는다. " 라고 쓰여있다.



먼저 level2의 uid를 알아내고



find 명령어를 이용해서 3002 uid를 가지고 있는 파일을 검색한다.


검색을 해보니 /bin/ExecuteMe 이 나온다.


저 경로로 들어가서 실행시켜보면, 




my-pass와 chmod를 제외한 명령어를 level2 권한으로 실행시켜준다고 한다.


쉘을 얻기 위해서 /bin/bash를 입력해서 level2의 쉘을 딴다.






my-pass로 패스워드를 구한다.


Flag : hacker or cracker


'IT > FTZ' 카테고리의 다른 글

[FTZ] level6  (0) 2016.07.09
[FTZ] level5  (0) 2016.07.09
[FTZ] level4  (0) 2016.07.09
[FTZ] level3  (0) 2016.05.20
[FTZ] level2  (0) 2016.05.20




'IT > Assembly' 카테고리의 다른 글

Reversing / 1일차  (0) 2016.04.13
2. 어셈블리어의 기초  (0) 2016.04.03
1. 어셈블리어의 장단점  (0) 2016.04.03

리버싱


파일을 뜯어서 이프로그램이 어떤 동작,기능을 하는지 분석하여 그원리를 보안하고 이것저것하는 작업을 리버싱이라고한다.


동적 분석

실행해가며 프로그램의 동작을 분석하는 방법


정적 분석

파일의 겉모습을 관찰하면서 분석하는 방법



과제 1






과제 2





과제 3



과제 4,5



과제 7


'IT > Assembly' 카테고리의 다른 글

Reversing / 2일차  (0) 2016.04.17
2. 어셈블리어의 기초  (0) 2016.04.03
1. 어셈블리어의 장단점  (0) 2016.04.03






2010

vc_web.exe




2015


Visual Studio 2015.exe






Cryptography Challenge 1

He also makes a good salad


pnrfne fnynq




카이사르 암호를 이용해서 푼다.




복호화 프로그램 코딩

#include <stdio.h>
#include <string.h>

int main() {

char nomal[100] = { 0 };
int i, j, level = 0;
while (1) {
printf("복호화할 문장을 입력하세요: ");
scanf("%s", &nomal);

for (j = 1; j < 27; j++) {
for (i = 0; i < strlen(nomal); i++) {

nomal[i] = nomal[i] + 1;

if (nomal[i] == 91) {
nomal[i] = 65;
}
else if (nomal[i] == 123) {
nomal[i] = 97;
}

}
printf("+%02d : %s \n", j, nomal);
}
}

}




창덕궁


조선 시대에 지어진 궁궐이고, 현재는 서울시 종로구에 있다.





사진 출처 : http://spk32.tistory.com/556



창덕궁의 역사적 배경


선 초기 수도가 개성에서 한양으로 번갈아 이전되었는데,

조선의 3번째 왕 태종이 1405년에 한양을 수도로 정했다.


그후 새로운 궁궐을 건축하고, 이를 창덕궁이라 했다. 


건축 공사는 전통적개념의 원칙을 따랐다고 한다.




http://www.cdg.go.kr/bulletin/view01.htm?Num=2610&TbCode=5


창덕궁의 등재기준



기준 (ⅱ) : 창덕궁은 유교 예제에 입각한 궁궐 건축의 기본 양식을 따르면서도 건물의 배치나 진입 방식에서는 우리나라 궁궐 건축의 다양한 특성을 보여 준다.


기준 (ⅲ) : 창덕궁은 전통 풍수지리 사상과 조선이 정치적 이념으로 삼은 유교가 적절히 조화된 대표적인 건축물이다


기준 (ⅳ) : 창덕궁은 원래의 자연 지형을 존중하기 위해 궁궐 건축의 전통을 이탈하지 않으면서도 창조적 변형을 가해서 지어졌다는 점에서 탁월하다

위의 3가지 등재기준에 의해 등재되었다.


창덕궁의 진정성


창덕궁의 건물과 후원의 원림은 조선 축조 당시의 모습을 온전히 유지하고 있다. 


궁궐의 지형과 경관 또한 원래의 모습으로 보존되고 있다. 

복원과 수리는 공인된 장인들이 관련 문헌과 연구를 바탕으로 전통 재료와 기법을 사용해 진행하고 있다.


창덕궁 공식홈페이지


http://www.cdg.go.kr/main/main.htm




'수행 평가' 카테고리의 다른 글

**해인사 장경판전 알리미**  (0) 2016.04.03




#include <stdio.h>

#include <string.h>

unsigned long hashcode = 0x21DD09EC;

unsigned long check_password(const char* p){

        int* ip = (int*)p;

        int i;

        int res=0;

        for(i=0; i<5; i++){

                res += ip[i];

        }

        return res;

}


int main(int argc, char* argv[]){

        if(argc<2){

                printf("usage : %s [passcode]\n", argv[0]);

                return 0;

        }

        if(strlen(argv[1]) != 20){

                printf("passcode length should be 20 bytes\n");

                return 0;

        }


        if(hashcode == check_password( argv[1] )){

                system("/bin/cat flag");

                return 0;

        }

        else

                printf("wrong passcode.\n");

        return 0;

}


Hint
hashcode를 5번씩 쪼개 저장 하므로 맞는 식을 세워 입력 해주면 된다.
./col `python -c 'print "\xC8\xCE\xC5\x06"*4 +"\xCC\xCE\xC5\x06"'`


'IT > Pwnable.kr' 카테고리의 다른 글

pwnable.kr / bof  (0) 2016.07.17
pwnable.kr / fd  (0) 2016.04.07

+ Recent posts