IT&보안151

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.
레지스트리 분석 1. 레지스트리 분석(1) 레지스트리란? [1] 운영체제 내에서 작동하는 모든 하드웨어, 소프트웨어, 사용자 정보 및 시스템 구성 요소 등을 담고 있는 데이터베이스를 말한다. [2] HKEY_CLASSES_ROOT를 비롯하여 5개의 가장 상위키(=루트키)를 갖는다. [3] 각 루트키 아래의 하위키부터 그 아래의 모든 하위 키를 포함하는 트리 구조를 하이브(Hive)라고 한다. [4] 각각의 하이브는 저마다 고유한 저장장소(파일)와 로그 파일을 갖고 있다. [5] 레지스트리 파일과 매칭되지만 1:1로 매칭되지는 않는다. [6] 디렉토리 개념이고 KEY와 VALUE 형태로 구성되어 있다. [7] VALUE에는 [이름, 데이터]로 구성되어 있으며 상위 키 HIVE는 파일이다. (2) HIVE KEY [1] H.. 2019. 1. 19.
메모리 수집 분석 1. Windows Memory 이해 (1) Virtual Address Space (VAS) [1] VAS는 실제 Physical Memory를 mapping한 가상 주소를 사용하는 것으로 Physical Memory 한계를 극복할 수 있고 OS가 메모리 접근을 관리하여 Memory Protection(같은 주소라도 실제 사용하는 주소는 다르다)을 가능하게 한다. [2] Windows는 VAS를 Physical Memory와 mapping하기 위하여 page table을 사용하며 Physical Memory에 저장할 수 없는 Memory 정보는 pagefile로 저장하게 된다. [3] [C:\pagefile.sys]와 같이 pagefile로 저장한 것을 페이징(paging)이라고 한다. [4] Proc.. 2019. 1. 19.