Try Attack91

[codegate_2017] angrybird 1. 문제풀이 (1) 실행결과 [1] './angrybird'와 같이 그냥 실행하면 반응이 나오지 않는다. [2] './angrybird abcd'와 같이 인자를 넣고 실행해도 반응이 나오지 않는다. [3] './angrybird abcd $(python -c 'print "a"*0x100')와 같이 오버플로우를 예상하고 실행해도 아무런 반응이 나오지 않는다. (2) start 함수 [1] 현재 화면은 'angrybird'바이너리를 IDA에 올릴 때 가장먼저 나오는 화면이고 start함수이다. [2] 이후 main함수를 첫 번째 파라미터에 넣고 호출하는 부분이 보인다. [3] main을 더블클릭해서 이동한다. (3) main함수 [1] 프롤로그부터 보면 쭉 가다가 종료하는 부분이 조금 이상하다. [2] .. 2019. 4. 8.
[csaw CTF 2015] wyvern 1. 문제 풀이 (1) 실행결과 [1] 용의 비밀을 입력하라는 메세지가 나온다. [2] 'test'를 입력 후 Enter를 누른 결과이다. [3] 용의 힘과 스피드와 지능이 더 크기 때문에 실패했다는 내용이 담겨있다. (2) 시작부분 정적분석 [1] IDA에 올려보면 처음 보이는 화면이다. [2] 함수의 프롤로그 이후 빨간 네모를 보면 프로그램을 실행했을 때 출력되는 문구와 call하는 부분이 있다. [3] call하는 부분은 난독화 되어 알 수는 없지만 느낌상 출력하는 함수를 호출하는 느낌이 든다. [4] 이 프로그램은 C++로 작성되었으며 난독화가 되어있다. (3) rename [1] call하는 난독화된 함수명을 클릭한 후 n을 누르면 이름을 변경할 수 있다. [2] C++의 대표적인 출력함수인 c.. 2019. 4. 8.
python 에서 발생한 예외찾기 ※ 이 글은 파이썬3을 기준으로 작성되었으니 참고하시기 바랍니다. 1. python에서의 예외처리 ▶ 가끔 예외처리를 따로따로 해주고 싶은데 도데체 무슨 타입인지 알 수가 없다. ▶ 그렇다고 항상 공식사이트에서 찾기도 그렇고... ▶ 어떤 예외타입이 어떤 예외타입을 상속받는지 외울 수도 없는 노릇이고.. ▶ 이럴 때 sys.exc_info()를 사용하면 예외가 발생한 정보를 알 수 있다. (1) 발생한 에러가 무엇인지 모를 때 [1] 위 그림은 이전 글에서 다룬 내용이다. [2] 보이는 것과 같이 예외가 하나가 아니다... [3] 이럴 때 sys.exc_info()를 사용한다. [4] 출력은 아래와 같다. (2) sys.exc_info()란? [1] 발생한 예외에 대한 3가지 정보를 담은 튜플을 반환한다.. 2019. 1. 29.
python으로 zip파일 크랙하기 ※ 이 글은 파이썬3을 기준으로 작성되었으니 참고하시기 바랍니다. 이전에는 단계별로 6자리 숫자에 대해서만 찾아보았다. 참고 : https://ccurity.tistory.com/228 그렇다면 이제는 zip파일이 어떠한 비밀번호로 잠겨있어도 비밀번호를 알아내보자!! 1. zip파일 크랙 (1) 실행파일 소스(zip_crack7.py) from zip_crack import * import sys def usage(): print('Usage: {} [OPTION] '.format(sys.argv[0])) sys.exit(1) def main(): if len(sys.argv) != 2: usage() try: zFile = Crack(sys.argv[1]) zFile.crack() except Keyb.. 2019. 1. 28.
python으로 매크로 제작하기 ※ 이 글은 파이썬3을 기준으로 작성되었으니 참고하시기 바랍니다. 1. 매크로 ▶ 살다보면 반복적인 작업을 해야하는 경우가 생각보다 많다. ▶ 또한 한정판 혹은 선착순 같은 상황에서 선택받지 못한 경우도 많다. ▶ 뮤지컬을 보러가거나 야구 티켓을 예매하는 경우도 마찬가지이다. ▶ 하다못해 RPG게임의 에픽퀘스트를 자동으로 깨주는 것도 포함이다. 2. pyautogui 모듈 사용 ※ 시작하기 전 설치해야할 패키지와 파이썬 모듈이 있다. ▶ [sudo apt-get install python3-pip -y]는 파이썬 라이브러리를 설치 및 관리한다. ▶ [sudo apt-get install scrot -y]는 스크린샷 기능 및 사진 관련한 작업을 할 때 필요하다. ▶ [pip3 install pyautogu.. 2019. 1. 26.
python 코드 분석 방법 1. 파이썬 코드 분석 방법▶ 뭔가 거창?하게 적은 느낌이지만 정작 요령을 적어보려고 한다.▶ 내가 다른 사람이 작성한 파이썬 소스를 분석하다보니 한계도 보이고 막히는 것도 많다. (1) 언어에 따른 분석 방법▶ 유지보수를 위해 C언어와 같은 절차지향언어의 소스를 분석하는 경우도 있고, 자바나 파이썬과 같은 모듈기반의 객체지향언어의 소스를 분석하는 경우도 있을 것이다.▶ 혹은 유지보수가 아니라도 관심있는 부분의 소스를 분석할 수도 있다.▶ 어떤 분석방법이 더 있는지는 모르겠지만 순차적인 라인분석과 동작에 따른 기능분석으로 나누어 보려고 한다. (2) 라인분석▶ 나의 경우는 소스를 분석할 때 import하는 부분부터 라인분석식으로 진행하였다.▶ 그래야 좀 더 세밀하고 정밀하게 분석이 가능할 줄 알았다.▶ .. 2019. 1. 25.
입력방법에 따른 python 공격코드 작성법 1. 입력▶ 공격자는 입력 시에 올바르지 않은 값을 입력해서 프로그램이 비정상적으로 동작하도록 공격한다. (1) 그렇다면 프로그램에서 입력은 어떻게 받을까?▶ 크게 보면 stdin과 argv 2가지로 나누어진다. [1] stdin ▶ standard input은 표준입력을 말한다. ▶ 프로그램이 동작하면서 필요한 내용을 입력을 받는다. [2] argv ▶ argv는 프로그램 시작 시에 파라미터로 넣는 것을 말한다. 2. 공격코드 작성(1) 그렇다면 공격코드는 어떻게 넣어서 동작하도록 할까? ▶ 표준입력을 할 때와 파라미터로 넣을 때 두가지로 나뉜다. ▶ 위에서 왜 입력방법을 두가지로 나누었는지 알 수 있을 것이다. (2) 표준 입력 시 공격코드 작성 [1] 먼저 프로그램이 실행되어야 하고 프로그램이 돌아.. 2019. 1. 19.
python으로 Linux에서 zip파일 압축 및 해제 ※ 이 글은 파이썬3을 기준으로 작성되었으니 참고하시기 바랍니다. 1. Linux에서 zip파일 압축 및 해제 (1) 압축 및 해제 [1] unzip 패키지 설치 ▶ [apt-get install unzip -y] 명령어로 unzip 패키지를 설치한다. [2] 압축 ▶ [zip "생성할 압축파일명" "압축할 파일1" "압축할파일2"...] 명령어로 zip압축할 수 있다. ▶ -P 옵션을 사용해서 패스워드를 지정할 수도 있다. [3] 해제 ▶ [unzip "압축파일명"] [4] 일반적인 압축 및 해제 시연 2. python으로 압축파일 해제(zipfile 모듈 사용) (1) zip_crack1.py [1] 소스 import zipfile zFile = zipfile.ZipFile("secret.zip") .. 2019. 1. 19.
python으로 채팅구현하기 ※ 이 글은 파이썬3을 기준으로 작성되었으니 참고하시기 바랍니다. 1. 소켓을 이용한 서버와 클라이언트의 채팅 (1) 서버 ▶ 서버의 소스이다. (2) 클라이언트 ▶ 클라이언트의 소스이다. ▶ 서버의 내용과 크게 다르지 않으므로 따로 주석은 첨부하지 않았다. (3) 시연 ※ 지식이 얕아 아래블로그를 참고하여 작성하였습니다. 참고 : http://parksk.tistory.com/112. 2019. 1. 19.
ping 서비스에 대한 공격코드 작성 ※ 이 글은 파이썬3을 기준으로 작성되었으니 참고하시기 바랍니다. 1. 제공되는 서비스 확인 ▶ 나의 경우 핸드폰으로 트러블슈팅을 하기위해 핑테스트 어플리케이션을 받아서 사용할 때가 있다. ▶ 예전에 웹 사이트에서 핑테스트서비스를 해주는 경우도 보았다. ▶ 이러한 서비스는 입력값에 대한 검증이 없다면 생각보다 서버에 심각한 영향을 줄 수도 있다. ▶ 원격서버로의 연결은 [nc "IP_address" "port"] 로도 가능하지만 python을 이용해서 접속을 시도해보려고 한다. (1) 서버 [1] 제공할 서비스 ▶ 제공하는 서비스는 C언어로 간략하게 작성한다. [2] 서비스를 제공할 포트 ▶ 58번째 줄에 tcp프로토콜을 이용한 80번 포트로 test라는 서비스가 제공되고 있다. ▶ 보통 80번 포트는 .. 2019. 1. 19.
RTL(Return To Libc) 파라미터 1. RTL(Return To Libc) ▶ RTL 공격은 리눅스의 메모리보호기법 중 하나인 NX bit를 우회하기위해 사용하는 공격기법이다. ▶ 이 공격은 버퍼오버플로우를 통해 호출한 서브루틴의 리턴주소를 메모리에 위치한 함수의 주소로 변경한다. (1) NX bit(Never eXecute bit)란? ▶ Windows 운영체제의 DEP(Data Execution Prevention)와 비슷하다. ▶ 즉, 메모리 내에 데이터 실행을 예방? 방지?한다. ※ 간단한 예로 공격자가 BOF를 일으켜서 shellcode를 작성하고 return address를 shellcode의 시작주소로 변경하였다. NXbit 보호기법이 적용되지 않았다면 shellcode가 실행되지만 NXbit가 적용되었다면 스택 내에서 실행.. 2019. 1. 11.
RTL(Return To Libc) 입력 3. 시연 2019. 1. 11.