분류 전체보기

    [Lecture-System hacking] Quiz: x86 Assembly 1

    a=[0x67,0x55,0x5c,0x53,0x5f,0x5d,0x55,0x10,0x44,0x5f,0x10,0x51,0x43,0x43,0x55,0x5d,0x52,0x5c,0x49,0x10,0x47,0x5f,0x42,0x5c,0x54,0x11,0x00,0x00,0x00,0x00,0x00,0x00] print(len(a)) for i in range(len(a)): print(chr(a[i]^0x30))

    [Cracking] ELF C++ - 0 protection

    C++은 또 이해하기 어렵구나... 아는 것보다 모르는 게 훨씬 많으니 공부할 맛이 난다. 해당 파일을 실행해보니 마찬가지로 인자를 passwd로 사용한다. ┌──(kali㉿kali)-[~/Downloads] └─$ ./ch25.bin usage : ./ch25.bin password 앞선 문제와 동일하게 문자열을 비교할 테니 strings 명령어로 문자를 뽑아봤지만 특별히 눈에 띄는 문자열은 없었다. ┌──(kali㉿kali)-[~/Downloads] └─$ strings ch25.bin /lib/ld-linux.so.2 CyIk libstdc++.so.6 __gmon_start__ _Jv_RegisterClasses _ITM_deregisterTMCloneTable _ITM_registerTMClon..

    [Cracking] PE x86 - 0 protection

    윈도우 파일은 역시 어렵다... 특히 att 문법으로 공부하던 나에게는 at&t는 더더욱 눈에 안들어온다... 일단 프로그램을 실행시켜보니 인자로 pass를 받는 것을 볼 수 있었다. 무작정 IDA로 열고, 해당 문자열을 검색해보았더니 비교문이 있는 것을 볼 수 있었고, 이를 차례로 확인해서 맞으면 Gratz man :) 문자열을 출력해주는 것을 확인할 수 있었다. 비교하는 문자를 차례로 확인했더니 클리어! 언젠가는 공부하겠지만... 아직까지는 이 쉬운 문제도 어렵게 느껴진다.

    [Cracking] ELF x86 - Basic

    아직까지는 쉬운 문제. 앞선 문제와 유사하고, 두번의 값을 입력 받고 특정 값과 비교한다. 해당 값은 프로그램 초반부에 %ebp - 0xc와 %ebp - 0x10에 저장되어있다가 나중에 비교 값으로 사용된다. ┌──(kali㉿kali)-[~/Downloads] └─$ ./ch2.bin ############################################################ ## Bienvennue dans ce challenge de cracking ## ############################################################ username: a Bad username ┌──(kali㉿kali)-[~/Downloads] └─$ gdb ch2.bin..

    GDB run 실행 후 입력 값 넘기기

    프로그램 실행 후 입력값을 받는 경우 gdb에서는 아래와 같이 값 전달이 가능하다. gef➤ r

    [App-Script] Bash - System 2

    #include #include #include #include int main(){ setreuid(geteuid(), geteuid()); system("ls -lA /challenge/app-script/ch12/.passwd"); return 0; } 이번에는 ls 명령어에 인자가 있다. 이전과 동일하게 ls 명령어 실행 시 임의 폴더의 cat을 실행하는 ls 파일을 만들어두되, 두번째 인자만 값으로 받아들여 읽어보자. 간단히 코딩. #include #include int main(int argc, char* argv[]){ char cmd[100]; sprintf(cmd,"cat %s",argv[2]); printf("%s\n",cmd); system(cmd); return 0; } PATH 환..

    [Cryptanalysis] Encoding - UU

    _=_ _=_ Part 001 of 001 of file root-me_challenge_uudeview _=_ begin 644 root-me_challenge_uudeview B5F5R>2!S:6UP;&4@.RD*4$%34R`](%5,5%)!4TE-4$Q%"@`` ` end 제목에서 보듯 UU encode된 문자열임을 알 수 있다. 아래를 보면 한방에 이해되는 encoding 방식 즉 문자의 ascii 10진수 값을 6 bit씩 끊고 32를 더해 다시 ascii code로 변환하는 것이다. 세상이 좋아져서 인터넷에 uu decoder online만 쳐도 온라인 디코더가 나온다. 아래 사이트를 이용함. https://www.browserling.com/tools/uudecode Uudecode Stri..

    [Cryptanalysis] Encoding - ASCII

    아.... format string bug 3 풀어야되는데... 너무 안풀린다... ㅠㅠ 본 문제는 딱 보자마자 hex로 저장된 ascii 문자열이다. 파이썬을 이용해 해결. ┌──(kali㉿kali)-[~/Downloads] └─$ python Python 3.10.4 (main, Mar 24 2022, 13:07:27) [GCC 11.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> a='4C6520666C6167206465206365206368616C6C656E6765206573743A203261633337363438316165353436636436383964356239313237356433..

    [Cracking] ELF x86 - 0 protection

    system, format string bug 3이 막혀 푸는 문제 2탄. 문제 파일을 다운받아보면 .bin 파일이고, 제목에서 보듯 elf x86 파일이다. 보통 크래킹 문제는 flag가 파일 내에 포함되어있는 경우가 많고, 그게 아니라면 flag를 암호화 & 복호화 하는 경우가 대부분인 것 같다. 1번 문제니 그냥 string을 뽑아봤고, 혹시나했던게 역시나 였다. ┌──(kali㉿kali)-[~/Downloads] └─$ strings ch1.bin /lib/ld-linux.so.2 __gmon_start__ libc.so.6 _IO_stdin_used puts realloc getchar __errno_location malloc stderr fprintf strcmp strerror __libc..

    [App-Script] Bash - System 1

    1. intro 2. code 및 분석 2.1. code #include #include #include int main(void) { setreuid(geteuid(), geteuid()); system("ls /challenge/app-script/ch11/.passwd"); return 0; } 2.2. 분석 ㅁㄴㅇㄹ 3. 취약점 확인 및 공격 준비 3.1. 취약점 ㅁㄴㅇㄹ 3.2. 공격 준비 ㅁㄴㅇㄹ 4. exploit ㅁㄴㅇㄹ system 문제 풀다가 format string bug 3에서 막혀서 푸는 다른 문제... ㅠㅠ script 문제는 hackerschool의 ftz 느낌이 많이 난다. 코드에서 보듯이 ls로 .passwd 파일을 실행시키는데, 간단히 ls 명령어가 cat 명령어를 실행시..