0x8 Python Tutorials - Whois Automation
·
primalsecurity.net/Python Tutorials
이번 포스팅에서는 "Cymru's Team" 에서 제작한 파이썬 모듈을 보여줄 것이다. 정보보호라는 분야에서 공격적인 부분과 방어적인 부분 모두에서 상당히 많은 "whois" 작업을 하게 될 것인데 소개하고자 하는 파이썬 모듈이 큰 도움이 될 것이다. 우선 모듈의 기능부터 알아 볼 것이다. 모듈 주소 : https://pypi.python.org/pypi/cymruwhois/1.0 모듈을 설치한 뒤 임포트 하여 어떤 기능을 제공하는지 볼 수 있다. 해당 모듈에서 제공하는 "lookup" 함수를 이용하여 단일 IP에 대한 "lookup"을 수행할 수 있다. 나중에는 "lookupmany" 함수를 파이썬 스크립트 파일에서 사용하여 수행하고자 하는 IP 목록에 대하여 "lookup"을 수행할 것이다. "cym..
0x7 Python Tutorials - Web Scanning and Exploitation
·
primalsecurity.net/Python Tutorials
이번 포스팅에서는 파이썬을 이용하여 기본적인 웹 스캐너를 만드는 것과 웹 어플리케이션 대상으로 간단한 익스플로잇을 짜는 법을 보여줄 것이다. 종종 익스플로잇의 PoC(Proof of Concept : 개념 증명)코드는 스캐너와 익스플로잇 도구에서 해당 취약점을 검증하지 전에 공개되기도 한다. 이 경우 직접 본인이 작성한 도구를 가지고 취약점을 점검하는 것이 큰 도움이 될 것이다. 0x5 튜토리얼에서 기본적인 웹 요청을 생성하는 법에 대해 보여주었다. 이번 튜토리얼은 파이썬을 이용해서 2가지 실 사례를 보여줄 것이다. 1. 목표 서버를 대상으로 특정 리소스를 체크함 2. 오라클 제품에 대한 LFI (Local File Include) 취약점 익스플로잇 웹 스캐닝 미리 작성한 "spling.py" 스크립트는..
0x6 Python Tutorials - Spidering
·
primalsecurity.net/Python Tutorials
스파이더링 (스파이더 : 인터넷 자동 검색 프로그램) 이번 포스팅에서는 웹 애플리케이션 스파이더링을 진행하기 위해 새로운 모듈(spider,optparse)를 소개할 것이다. 웹 어플리케이션을 대상으로 스파이더링을 진행하는 것은 웹 어플리케이션 구조 파악을 위해 해당 웹 어플리케이션에 링크된 컨텐트를 나열하는 프로세스이다. 웹 어플리케이션 스파이더링은 파이썬을 이용하여 짧고 간단한 스크립트를 작성하는 것에 대한 꽤 좋은 use-case 이다. 웹 요청에 대한 응답 데이터 내에서 "href" 태그를 파싱하는 크롤링 스크립트를 작성할 수도 있지만, "Spider" 라는 파이썬 모듈을 이용하면 좀 더 짧은 코드 라인으로 대체할 수 있다. "Spider" 모듈에서 동작하는 "myspider(b=URL.strip..
0x5 Python Tutorials - Web Requests
·
primalsecurity.net/Python Tutorials
이번 포스팅에서는 파이썬을 이용하여 웹 요청을 생성하는 것을 보여줄 것이다. 파이썬에는 웹 요청과 응답을 쉽게 생성하고 파싱하는 모듈이 존재한다. (httplib, Mechanize, Beautiful Soup, and urllib/urllib2) 좌측의 모듈을 설치하고 각 모듈의 기능을 한번 테스트해보길 바란다. 웹 요청 생성 아래 사진은 로컬에서는 파이썬을 통해 돌아가는 "SimpleHTTPServer" 서버에 대하여 요청을 생성하는 예제 코드이다. * 좌측 커맨드 창 : 웹 요청 생성 및 응답 출력 * 우측 커맨드 창 : Python - SimpleHTTPServer 실행 HTML 파싱 이제 웹 요청을 생성할 수 있게 되었으니 응답되어 오는 HTML을 파싱하는 모듈을 알아보도록 한다. "Beauti..
0x4 Python Tutorials - Python to EXE
·
primalsecurity.net/Python Tutorials
"PyInstaller"를 이용한 파이썬 실행 파일 생성 이번 포스팅에서는 파이썬 스크립트를 exe 파일로 컴파일 하는 것을 보여줄 것이다. 이는 당신이 작성한 파이썬 코드가 파이썬이 설치되지 않은 다양한 윈도우 환경에서 실행될 수 있게 도와준다. 우선 파이썬 2.x 버전을 포함하여 몇 가지 의존성 패키지를 설치해야 한다. 이번 포스팅 환경에서는 cygwin 혹은 PyWin 패키지를 이용할 것이다. 리눅스 환경 : sudo apt-get install python2.7 build-essential python-dev zlib1g-dev upx 윈도우 환경 : http://www.activesate.com/activepython (풀패키지 인스톨 파일) 의존성 패키지 설치가 완료되면 Pywin32, Set..
0x3 Python Tutorials - Fuzzer
·
primalsecurity.net/Python Tutorials
* PC 환경에서 사진이 잘릴 경우 해당 사진을 클릭하면 원본 크기로 보여집니다. 이번 포스팅에서는 파이썬을 이용하여 커스텀 fuzzer(이하 퍼져) 스크립트를 작성하는 것을 보여줄 것이다. 익스플로잇을 연구하고 작성할 때에 스크립트 언어를 이용하여 애플리케이션 크래시를 유발하는 다양한 종류의 데이터를 입력하는 것은 좋은 방법이다. 파이썬은 반복적으로 목표 서비스에 연결하고 다양한 종류의 데이터를 입력하는데 있어서 굉장히 유용하게 사용될 수 있다. 우선 애플리케이션이 어떻게 유저로부터 입력된 데이터를 핸들링(처리)하는지 알아야 한다. 당신이 목표 서비스에 전송할 데이터의 종류를 결정하고 나면, 다양한 입력 데이터를 서비스에 입력하기 시작해야 한다. 기본적인 아이디어는 대상 서비스에 연결하고, 버퍼(데이터..
0x2 Python Tutorials - Reverse Shell
·
primalsecurity.net/Python Tutorials
* PC 환경에서 사진 끝부분이 잘릴 경우 사진을 클릭하면 원본 사이즈로 볼 수 있음 이번 포스팅에서는 파이썬을 이용해서 리버스 쉘을 생성하는 것을 보여줄 것이다. 우선 웹서버를 이용하여 파일을 다른 호스트로 전송하는 것는 것부터 보여줄것이다. 예를 들어 해킹 가능성이 있는 목표 시스템(이하 Victim)에 raw shell이 존재하는데 좀 더 다양한 명령어를 수행하기 위해 해당 쉘을 파이썬 리버스 쉘이나 미터프리터 바이너리를 통해 이용하길 원한다고 가정한다. 따라서 우선 리버스 쉘 명령을 수행할 파일을 전송하기 위해 웹 서버를 생성해야 하는데, 파이썬에서는 간단한 명령어 한 줄로 웹 서버를 생성할 수 있다. 파이썬 HTTP 서버를 생성하기 위해서는 "SimpleHTTPServer" 내장 함수를 이용하면..
0x1 Python Tutorials - Port Scanner
·
primalsecurity.net/Python Tutorials
이번 포스팅에서는 파이썬을 이용하여 기본적인 포트 스캐너를 만드는 것을 통하여 파이썬에서 어떻게 네트워크 연결을 하는지 보여 줄 것이다. IP 주소와 포트번호를 기반으로 지속적으로 네트워크 소켓 연결을 생성할 것이다. 이런 작업을 수행하기 위해 "반복문" 이라는 새로운 컨셉을 보여줄 것이다. 위 사진의 루프 코드에서 약간의 들여쓰기가 된 것을 주의해야 한다. 보통 프로그래머들은 들여쓰기를 탭이나 공백 2개를 (스페이스 2번) 이용한다. 한 스크립트 내에서 지속적으로 하나만 사용할 경우에는 어떤걸 사용하던 상관 없다. 간단한 포트 스캐너를 만들기 위해 위 코드에서 사용된 "print" 대신에 소켓 연결을 생성하는 코드로 대신 할 것이다. 아래 사진의 코드는 내장된 "socket" 모듈을 이용해서 어떻게 소..
0x0 Python Tutorials - Getting Started pt2
·
primalsecurity.net/Python Tutorials
이전 포스팅에 이어 이번 튜토리얼에서도 파이썬의 기본적인 컨셉을 보여줄 것이다. 파이썬 코드를 함수,클래스,"sys" 모듈을 이용하여 작성할 것이다. 파이썬 기본(뼈대) 스크립트 아래 사진은 파이썬 스크립트를 실행시키는 기본적인 코드이다. 운영체제에게 "#!/usr/bin/python"을 이용하여 어떤 인터프리터를 사용할지 알려준다. 그 다음 "def main():"을 이용하여 main 함수를 정의한다. 그리고 마지막 2개의 라인은 "main()" 함수를 처음 실행하게 해주는 코드이다. 당신은 코드의 가독성과 수정을 용이하게 만들기 위해 스크립트 파일 내에 다른 함수를 추가적으로 정의할 수 있다. 함수 함수의 영향력을 높이는(잘 사용하기 위한) 일반적인 방법은 어떤 액션을 수행하고 결과를 리턴하는 코드를..
0x0 Python Tutorials - Getting Started pt1
·
primalsecurity.net/Python Tutorials
이번 포스팅은 파이썬과 프로그래밍을 처음 접하는 사람을 위한 "primalsecurity.net - Python tutorial" 시리즈의 첫 번째 글이다.파이썬은 수많은 정보 보호 커뮤니티에서 지원하는 매우 강력한 스크립트 언어이다. 여기서 "지원"이라고 하는 것은 많은 프로그램들이 파이썬으로 코딩 된다는 것과 파이썬 스크립트에서 많은 모듈을 지원한다는 것을 의미한다. 모듈은 특정 작업을 몇 라인 안되는 코드로 짤 수 있도록 다양한 기능을 제공한다. 이번 포스팅은 파이썬 2.x 버전과 리눅스를 사용한다는 가정하에 작성되었다. 파이썬 코드를 작성할 때에는 "파이썬 인터프리터"를 통해 직접 작성할 수도 있고 파일 안에 코드를 작성하여 실행할 수 있다. 대부분의 경우 코드를 직접 인터프리터에 작성하고 파일로..