본문 바로가기

분류 전체보기

2016년 2월 15일 월요일 시간을 낭비하지 않고 효율적으로 관리하기 위해 규칙적인 생활을 하도록 노력하고 있다. 계획을 매 주마다 그 주의 계획을 세워서 공부를 해야겠다. 그리고 요즘 문제가 갑자기 잘 풀려서 문제를 많이 풀었다. proxy server, ascii, tiny, wtf 이렇게 문제를 풀었다. 프락시 서버랑 wtf는 힌트를 좀 받고 푼 것이라서 성취감이 그렇게 크지 않았다.. 약간 아쉬운 부분도 있었다. ascii는 아스키 쉘코드를 만들어서 풀었는데 생각보다 재밌었다. tiny는 ptrace가 아닌 아직 패치가 되지 않은 vdso영역의 가젯을 이용한 rop로 풀었다. 사실 ptrace로 풀고 싶었으나 인터넷 상에 공개된 자료가 너무 부족하여 ptrace로는 풀지 못하였다.. 이제 시간 날 때 알고리즘 문제들을 좀 풀.. 더보기
2016년 2월 셋째 주 1. 암걸리는 arm리버싱 발표자료 만들기2. Taint Analysis 프로젝트 내용 공부하기(핀툴, 퍼징, Taint)3. OS 스터디 내용 공부하기4. PE Viewer 계속 만들기5. pwnable.kr proxy server, xml 문제 풀기 더보기
OS 개발 및 공부 스터디 4주차 보호되어 있는 글입니다. 더보기
2016년 2월 12일 금요일 오늘도 어김없이 proxy server를 풀고 (풀려고 삽질하고) OS 스터디 4주차 내용을 했다. 오늘 스터디에서 간단한 부트 로더를 만들어 보았다. 직접 어셈으로 코딩을 하고 makefile도 만들고 make로 빌드를 했다. 생성된 Disk.img를 직접 qemu에 넣고 돌려서 내 닉네임과 글자들이 나오는 것을 보고 정말 엄청 뿌듯했다. OS만들기도 어렵지만 그만큼 재밌고 뿌듯한 것 같다. 요즘 갑자기 할 일들이 많아졌다. 포너블 문제도 풀어야 되고 또 어제 해킹캠프에서 발표자로 선정이 됬다고 메일이 왔었다. arm리버싱에 대해서 발표할 것인데 사실 나도 arm에 대해서 그렇게 빠삭하게 아는 것이 아니라서 걱정이 좀 된다. 해킹캠프 때까지 발표 자료도 만들고 또 이 발표가 사실 학교에서 하는 자잘한 .. 더보기
2016년 2월 10일 수요일 오늘 설이 다 끝나고 드디어 집으로 돌아왔다. 설 동안은 여기저기 다니느라 한 일이 많이 없었다. 그나마 한 것은 pwnable.kr proxy server를 풀기위해 링크드 리스트를 공부하고 분석 조금 한 것이 있다. 링크드 리스트는 처음이라 처음에 이해할 때 조금 힘들었지만 반복해서 하다 보니까 좀 나아진 것 같다. 그리고 proxy server를 분석하는데 취약점은 찾았으나 공격 벡터를 연계해서 공격해야해서 계산하는데에 많은 어려움이 있다.. 링크드 리스트 구조라 머리가 더 아팠다. 아무래도 분석 능력을 더 길러야 할 것 같다. 내일 proxy server를 마저 더 분석하고 빨리 풀어야겠다. 더보기
2016 Sharif CTF Write-Ups Crypto - Rail Fence Chiper 말 그대로 rail fence 암호이다. 대충 레일 펜스 디코딩 해 주는 사이트 찾아서 레일 수는 21로 게싱하여 돌리면 된다. flag : QmFzZTY0IGlzIGEgZ2VuZXJpYyB0ZXJt Reversing - dMd IDA로 열면 md5해시화 해서 저장되어 있는 해시와 비교하는 것을 볼 수 있다.비교하는 해시의 원본값을 찾으면 된다.flag : b781cbb29054db12f88f08c6e161c199 Reversing - SRM 이메일과 시리얼 두 개를 비교하는데 우리가 필요한 것은 시리얼이고 이메일과 시리얼의 연관성은 전혀 없으므로 이메일은 건너 뛰고 시리얼만 찾으면 된다. 시리얼 비교 구간은 이렇게 되고 동적분석 해 본 결과 첫 글자 'C.. 더보기
2016년 2월 6일 토요일 방학 기간동안 이제 보충으로 학교에 가지 않아도 되서 거의 24시간 집에 있게 된다. 끊기지 않고 집중해서 컴퓨터 공부를 할 수 있으니까 정말 좋다. 저번 한 주동안은 주로 pwnable.kr 문제들을 풀었는데 unexploitable, dos4fun 이렇게 두 문제를 풀었다. 특히 dos4fun은 16비트 환경에서 디버깅하고 리버싱하고 직접 쉘코드까지 짜서 공격해 볼 수 있어서 정말 재밌었지만 정말 어려웠다.. 힌트를 하나 받고 풀긴 했는데 정말 어려움을 다시 느낄 수 있었다. 지금은 ghost취약점을 공부하고 nuclear를 풀고 다른 풀 수 있을 것 같은 문제들 몇 개만 더 풀고 바로 대회문제로 넘어가야겠다. 그리고 어제부터 Sharif CTF를 하고 있다. 리버싱이랑 크립토 포너블 등의 문제를 쉬.. 더보기
16bit DOS Debugging 최근 16비트 DOS바이너리를 디버깅 할 일이 생겨서 디버깅 방법을 찾아 보았다. 일단 IDA Bochs Plugin으로 하는 방법이 있고 Turbo Debugger로 하는 방법이 있는데 Bochs는 설정이 너무 어렵고 힘드므로 터보 디버거로 했다. 이 터보 디버거 역시 WIndows98을 가상 머신에 깔아서 하는 방법이 있고, DosBox를 이용해서 하는 방법이 있는데 나는 DosBox를 이용해서 했다. 먼저 필요한 것은 Tasm이다. 설치는 http://sourceforge.net/projects/tasmforwindows/ 여기서 자신의 윈도우에 맞게 다운받아 설치하면 된다. 그리고 실행하면 전체화면이 DOS창으로 꽉 채워지게 된다. 이 때 당황하지 말고 Alt+Enter를 누르면 작은 화면으로 바.. 더보기
PE Viewer 개발 5일차 오늘은 IMAGE_DOS_HEADER 출력 부분을 서식문자로 바꿔서 정렬을 하였고, IMAGE_NT_HEADER역시 정렬이 되어 있지 않았던 부분을 정렬하였다.그리고 IMAGE_FILE_HEADER의 Machine, TimeDataStamp, Characteristics 부분을 해석해 주는 부분을 넣었고, IMAGE_OPTIONAL_HEADER에서 DataDirectory를 제외한 나머지 부분을 완성시켰다. IMAGE_FILE_HEADER 완성DataDirectory를 제외한 IMAGE_OPTIONAL_HEADER이제 DataDirectory를 추가하고, 각 섹션 헤더들을 출력하는 부분을 추가해야겠다. 더보기
HackIM 2016 Reversing - PrisonBreak HackIM 2016 리버싱 중 500점 짜리 마지막 문제입니다. 이 문제는 대회 당시에는 풀지 못하고 대회가 끝나고 풀어서 아쉬움이 좀 있지만 그래도 풀었기에 풀이를 올립니다. 일단 이 문제 역시 64비트에 이러한 비주얼을 가진 문제입니다. HackIM은 이런 것을 참 좋아하는군요.. 비주얼 마저도 꼭 prison처럼 생겼네요. 헥스레이로 봐 보면 역시 donfos처럼 v50변수에 따라 프로그램 흐름이 달라지는 형식입니다. 일단 처음에 cell을 입력받습니다. cell은 1~3까지 있고 어떤 cell을 입력했냐에 따라 할당된 메모리에 쓰여지는 값이 다릅니다. cell을 입력 받은 후에 이렇게 동적할당을 합니다. 이 과정을 세 번 거쳐서 세 군데에 동적할당을 하고 이렇게 할당된 공간에 값을 씁니다. 여기.. 더보기