반응형

전체 글 368

[CSAW 2017] SCV writeup

64bit ELF 파일과 해당 실행파일에서 사용되는 라이브러리가 주어졌다. 먼저 실행파일을 분석해보면, 선택지 리스트를 출력하고 선택된 작업을 수행하는, 반복 구조임을 알 수 있다. 보호 기법은 Canary와 NX(no execute)가 걸려있다. - 메모리 보호 기법 확인 IDA로 확인해보면, 역시 while 문으로 반복 구조를 가지고 있고, switch-case문으로 선택된 작업을수행하는 것을 알 수 있다. 사용되는 함수도 몇 개 없지만, 특히 눈에 띄는 함수는 read() 함수와 puts() 함수이다. read() 함수는 사용자의 입력이 이루어 질 수 있는 함수인 만큼 Buffer overflow와같은 취약점이 발생할 수 있고, puts() 함수는 널문자(‘\x00’)를 만나기 전까지의 값들을 출력..

Write-up 2017.12.27

우분투 폴더에서 터미널 열기(feat. nautilus)

우분투를 사용할 때, 폴더 위치에서 바로 터미널 창을 열기 위해 노틸러스(nautilus)라는 파일 관리자를 설치했다. 노틸러스는 파일 관리자로서, 다양한 기능이 있다. 자세히 찾아보아 놓는 것도 괜찮을 것 같다. sudo apt-cache search nautilus-open-terminal #그냥 한 번 찾아봤다. sudo apt-get install nautilus-open-terminal #설치 설치 뒤 재시작하거나, nautilus -q #나가기 를 해서 파일관리자를 나갔다가 다시 실행하면 이제 실행된 폴더의 위치에서 바로 터미널 창을 열 수 있다. 참고로 터미널 상에서 현재 사용자가 있는 위치로 파일 관리자를 열고 싶다면,nautilus . 다음과 같은 명령어로 바로 파일 관리자를 열 수 있다.

libcrypto.so.1.0.0 관련 오류가 났을 때

과제를 하는 도중, 파일이 실행이 되지 않는 것을 발견했다. 새삼스럽게 이게 왠 오류인가 싶어 파일을 살펴보니 역시 32bit 라이브러리와 관련된 오류였다. 오류 창을 자세히 살펴보니 대충 x86 전용의 libcrypto.so.1.0.0 이 없어서 그런거 같았다. (저번에 다 처리된 줄 알았더니 --;) 이 오류의 정석적인(?) 해결방법인 # sudo apt-get install libssl1.0.0:i386 을 사용해보았으나.. 왠지 모르게 실패했다. 여러 다른 라이브러리를 기웃거려보며 삽질을 시전하며(ㅠ) 이것저것 살펴보다가 저번에 apt-get 저장소를 수정했던게 생각나서 /etc/apt/sources.list 파일을 살펴보게 되었다... 여기가 문제였다...ㅋㅋ 이유는 잘 모르겠는데 기억 속에 안..

안드로이드 앱 진단

안드로이드 앱 진단 과정에 대해 정리하기 위한 글이다. SUA 활동을 진행하면서 얻은 지식들을 토대로 작성할 것이다. 먼저, 안드로이드 앱 진단에 필요한 사전 준비를 할 필요가 있다. 필요한 프로그램들은 다음과 같다. adbfridafridumpapktoolsignapkjebwingrepwiresharkburp suite 각 도구들이 어떻게 이용되는지 간단하게 설명해보자. adb : Android debug bridge 라는 것의 약자인데, 이 도구를 이용하여 PC에서 안드로이드에 접속하여 원하는 작업을 수행하도록 할 수 있다. frida : frida는 DBI(Dynamic Binary Instrumentation)이라고도 하는 동적 바이너리 조사를 가능하게 해주는 도구이다. 기존 앱의 바이너리에 자바..

pwntools 설치 문제시

이번에 깐 우분투에 pwntools을 설치하려 했다. 그러나, 우리의 인생이 늘 그러하듯이 쉽게 되는 법이 없다. 14.04 버전을 사용 중인데, 이유모를 오류 창들로 인해 3시간 반 동안 삽질을 했다. 결국 무사히 깔 수 있었지만, 어떻게 해결했는지 잘 모르겠다;; 나중에 또 이런 경우가 혹여나 생길까봐 대충이라도 정리해보기로 했다. (왠지 내가 이 글을 또 읽을 일이 생길 거 같다.) 해결하기 위해 참고한 사이트들이다. 여기에 나온 걸 다 해봤다. http://revers3r.tistory.com/330http://shshsh.tistory.com/60https://blog.outsider.ne.kr/346https://www.digitalocean.com/community/tutorials/how-..

substr, atoi, stoi

완전 간단히 설명하겠다. 먼저, substr() 함수를 설명하자면 문자열을 어느 지점부터 몇 개만큼 잘라내어, 그 부분을 사용할 수 있게하는 함수이다. string str="abcdefghijklmnop"; str.substr(startIndex, many); 위와 같이 사용될 수 있다. 예를 들어 str.substr(2,4) 라면, "cdef" 를 나타낼 것이다. 만약 many 영역이 없이 str.substr(startIndex) 로 사용한다면, startIndex 지점부터 전체 문자열 끝까지이다. 다음으로, atoi() 함수를 설명하겠다. 이 함수는 char 형 문자열을 정수 형태로 만들어주는 역할을 한다. char str[20] = "1234567789"; atoi(str); 위와 같이 사용될 수 ..

Programming$ 2017.11.03
반응형