일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- CodeEngn
- RITSEC
- 웹해킹
- Nop Slide
- 보안뉴스
- Linux
- 리버싱
- ctf
- BOF
- requests
- SQL Injection
- HackCTF
- buffer over flow
- reversing
- NewsClipping
- ftz
- 리눅스
- PWN
- 버퍼오버플로우
- Python
- x64dbg
- termux
- 어셈블리어
- 뉴스클리핑
- Hackerschool
- writeup
- Shadow 동아리
- Next.js
- RITSEC CTF 2019
- webhacking
- Today
- Total
목록전체 글 (113)
Jaeseo's Information Security Story

07.exe - 컴퓨터 C 드라이브의 이름이 CodeEngn 일경우 시리얼이 생성될때 CodeEngn은 'ß어떤것'으로 변경되는가 일단 프로그램을 디버깅 하기 전 PE분석을 해본다. ExeinfoPE를 통해 Not packed가 되었다는 것을 확인함. 프로그램을 실행시 시리얼 키를 입력 받고 확인을 하는 프로그램으로 추정됨. X32dbg로 실행하여 분석을 시작한다. 일단 Check 버튼을 눌렀을 때 하드디스크의 이름 정보를 가져오는 함수가 작동될 것으로 예상된다. 이때 keyword(volume, disk, information, get 등)을 가지고 인터럽트를 검색해본다. 이때 “GetVolumeInformationA” 함수를 발견하게 되는데 이 함수를 통해 볼륨의 이름을 가져오는 것으로 추정이 된다...

06.exe - Unpack을 한 후 Serial을 찾으시오. (정답인증은 OEP + Serial) 프로그램을 실행을 하면 이런 식으로 Input Box가 있고 입력을 하면 Serial를 체크를 하는 프로그램이다. 일단 디버깅을 하기 전에 PE 분석을 해본다. PE 분석을 통해 UPX를 통해 Packing이 되어있다는 것을 확인했다. UPS unpacking을 해본다. 이제 unpacking된 파일을 가지고 x32dbg로 분석을 해본다. 일단 프로그램을 동작 시켜 GUI가 구성이 시작되는 main 함수부분을 찾아본다. 인터럽트가 발생하는 것을 검색해본다. 이때 main에서 동작될 것으로 예상되는 GUI를 만드는 함수에 관련된 키워드를 검색해본다. 키워드(gui, box, dialog 등) 이때 이러한 결..
FTZ - level11 - WriteUp level11:what!@#$? 이번 문제는 bof의 개념에 대해 확실히 공부하게 되는 좋은 문제였습니다. bof에 대해 개념이 부족하시다고 생각하시는 분은 달고나 bof기초문서를 꼭 한번 읽어보시고 하시는 게 좋습니다. 일단 Hint파일을 봅니다. [level11@ftz level11]$ cat hint #include #include int main( int argc, char *argv[] ) { char str[256]; setreuid( 3092, 3092 ); strcpy( str, argv[1] ); printf( str ); } [level11@ftz level11]$ ls -la | grep attackme -rwsr-x--- 1 level12 ..
FTZ - level10 - WriteUp level10:interesting to hack! hint 파일을 봅니다. [level10@ftz level10]$ cat hint 두명의 사용자가 대화방을 이용하여 비밀스런 대화를 나누고 있다. 그 대화방은 공유 메모리를 이용하여 만들어졌으며, key_t의 값은 7530이다. 이를 이용해 두 사람의 대화를 도청하여 level11의 권한을 얻어라. - 레벨을 완료하셨다면 소스는 지우고 나가주세요. 힌트 파일을 보면 공유메모리에 대한 프로그래밍을 하고 key_t를 가지고 대화를 살펴 보라는 문제로 보입니다. 일단 c로 공유메모리 프로그램을 하기 위해 인터넷을 통해 검색을 해보았습니다. SharedMemory 위의 링크에 매우 자세히 설명이 되어 있어서 참고하면서..
GDB(GNU Debuger) 간단 사용법 linux에서 사용되는 Debuger 프로그램. 디버깅을 하기 위해서는 [gcc -g 파일명 -o 출력명] -g 옵션이 사용하는 것이 좋다. -g 옵션을 사용하면 gdb 과정 중에 소스코드를 살펴보며 디버깅이 가능해진다. gdb [프로그램명] | gdb [프로그램명] [PID] | gdb -c [코어 덤프명] 명령어 해설 break 함수와 행을 기준으로 중단점을 설정한다. ex) break main clear clear [breakPoint번호] , clear [함수명] 등의 형식으로 사용. breakPoint 삭제 disable br 모든 BreakPoint 비활성화 enable br 모든 BreakPoint 활성화 condition condition [bre..
FTZ - level9 - WriteUp level9:apple 일단 힌트를 살펴봅니다. [level9@ftz level9]$ cat hint 다음은 /usr/bin/bof의 소스이다. #include #include #include main(){ char buf2[10]; char buf[10]; printf("It can be overflow : "); fgets(buf,40,stdin); if ( strncmp(buf2, "go", 2) == 0 ) { printf("Good Skill!\n"); setreuid( 3010, 3010 ); system("/bin/bash"); } } 이를 이용하여 level10의 권한을 얻어라. 문제를 보면 입력은 buf만 받지만 buffer over flow를 이..
FTZ - level8 - WriteUp level8:break the world hint 파일! [level8@ftz level8]$ cat hint level9의 shadow 파일이 서버 어딘가에 숨어있다. 그 파일에 대해 알려진 것은 용량이 "2700"이라는 것 뿐이다. 2700이라는 것으로 일단 2700byte라는 것을 확인할 수 있다. find 명령어를 통해 찾아본다. [level8@ftz level8]$ find / -size 2700c 2>/dev/null /var/www/manual/ssl/ssl_intro_fig2.gif /etc/rc.d/found.txt /usr/share/man/man3/IO::Pipe.3pm.gz /usr/share/man/man3/URI::data.3pm.gz f..
FTZ - level7 - WriteUp level7: come together 일단 hint 파일을 살펴 봅니다. /bin/level7 명령을 실행하면, 패스워드 입력을 요청한다. 1. 패스워드는 가까운곳에.. 2. 상상력을 총동원하라. 3. 2진수를 10진수를 바꿀 수 있는가? 4. 계산기 설정을 공학용으로 바꾸어라. 한번 level7 명령어를 실행했습니다. [level7@ftz tmp]$ level7 Insert The Password : test cat: /bin/wrong.txt: No such file or directory /bin/wrong.txt에 대해 출력을 시도하는 것 같은데 경로에 파일이 존재 하지 않아 작동을 하지 않습니다. 그 이후 password를 찾기 위해 패스워드는 가까운곳..