목록primalsecurity.net/Python Tutorials (14)
뉴비에욤
이번에는 Python, PyInstaller를 이용하여 악성 코드를 제작하는 예제 코드를 보여줄 것이다. 이전 튜토리얼에서 PyInstaller를 이용하여 파이썬을 PE 포맷(exe 파일)로 컴파일하는 것을 보여주었다. 따라서 지금부터는 윈도우즈 호스트를 대상으로 악성 행위를 하는 예제 코드를 보여줄 것이다. 악성코드 코딩 대부분의 악성코드에서 공통적으로 찾을 수 있는 것은 공격 대상과의 연결을 지속적으로 유지시키는 것이다. 윈도우즈 호스트를 대상으로 지속적인 연견을 수립시키는 방법은 여러가지가 있는데, 가장 흔한 것은 "Software\Microsoft\Windows\CurrentVersion\Run" 레지스트리를 이용하는 것이다. 아래의 사진은 악성코드 자체(exe 파일)를 %TEMP% 디렉토리에 복..
이번 레벨에서는 파이썬을 이용하여 간단하게 raw shell을 생성하는 법을 보여줄 것이다. 이런 방법을 완벽 하게 이해하기 위해서는 raw shell과 관련하여 몇 가지를 우선적으로 알아야 한다. raw shell을 일반적인 명령어 shell (cmd.exe, /bin/bash 등)이 네트워크 소켓에 바인딩 된 것으로 대부분 공격자에게 연결(reverse shell)되거나 리스닝 포트에 바인딩 된다. raw shell은 터미널 액세스(SSH 액세스, 키보드 입력 등)와 달리 "STDIN/STDOUT/STDERR"을 처리하지 않는다. 쉽게 말하면 raw shell에 특정 명령어를 입력하는 것은 shell 자체를 중지시킬수 있다는 것이다. 이를 경험하기 위한 가장 쉬운 방법은 직접 로컬환경에서 netcat..
"Spiderlabs"에서 제작한 "pymsf" 모듈은 파이썬과 메타스플로잇(msgrpc)이 서로 상호 작용할 수 있게 도와준다. 우선 "msfconsole" 명령어를 이용하여 메타스플로잇 콘솔을 실행 한 뒤 다음의 명령어를 이용하여 "msgrpc" 서비스를 시작해야 한다. - "load msgrpc Pass=bob" "msgrpc" 모듈을 이용하는 것은 "msfconsole"을 이용하는 것과 유사하다. 우선 "msgrpc" 클래스를 생성하고 "msgrpc" 서버에 접속하고 가상의 콘솔을 생성한다. 그 다음 생성된 가상 콘솔에서 실행하고자 하는 명령어를 생성한다. Call 메소드를 이용하여 이전에 생성한 명령어를 "console.write"와 함께 실행하고 "console.ouput"을 통하여 명령어 결..
이번 포스팅에서는 파이썬을 이용하여 운영체제 명령어를 자동화 하는 것을 보여줄 것이다. 2개의 모듈(os,subprocess)를 사용하여 운영체제 명령어를 실행하는 것을 보여줄 것이다. 파이썬을 사용하다 보면 대부분의 경우 "os.system , subprocess.Popen"을 사용하고 있는 자신을 발견할 수 있을 것이다. 해당 모듈을 통해 운영체제 명령어를 실행 할 수 있기 때문이다. "os.system"과 "subprocess.Popen"의 가장 큰 차이점은 후자의 경우 출력되는 결과를 파이썬 변수에 대입할 수 있다. 이는 명령어 실행 결과를 화면에 출력하려는 경우 유용하게 사용될 수 있다. 우선 "os" 모듈 부터 살펴 볼 것이다. 위 사진에서 보는 것처럼 os 모듈을 사용해서 명령어를 실행하기 ..
이번 포스팅에서는 "Cymru's Team" 에서 제작한 파이썬 모듈을 보여줄 것이다. 정보보호라는 분야에서 공격적인 부분과 방어적인 부분 모두에서 상당히 많은 "whois" 작업을 하게 될 것인데 소개하고자 하는 파이썬 모듈이 큰 도움이 될 것이다. 우선 모듈의 기능부터 알아 볼 것이다. 모듈 주소 : https://pypi.python.org/pypi/cymruwhois/1.0 모듈을 설치한 뒤 임포트 하여 어떤 기능을 제공하는지 볼 수 있다. 해당 모듈에서 제공하는 "lookup" 함수를 이용하여 단일 IP에 대한 "lookup"을 수행할 수 있다. 나중에는 "lookupmany" 함수를 파이썬 스크립트 파일에서 사용하여 수행하고자 하는 IP 목록에 대하여 "lookup"을 수행할 것이다. "cym..
이번 포스팅에서는 파이썬을 이용하여 기본적인 웹 스캐너를 만드는 것과 웹 어플리케이션 대상으로 간단한 익스플로잇을 짜는 법을 보여줄 것이다. 종종 익스플로잇의 PoC(Proof of Concept : 개념 증명)코드는 스캐너와 익스플로잇 도구에서 해당 취약점을 검증하지 전에 공개되기도 한다. 이 경우 직접 본인이 작성한 도구를 가지고 취약점을 점검하는 것이 큰 도움이 될 것이다. 0x5 튜토리얼에서 기본적인 웹 요청을 생성하는 법에 대해 보여주었다. 이번 튜토리얼은 파이썬을 이용해서 2가지 실 사례를 보여줄 것이다. 1. 목표 서버를 대상으로 특정 리소스를 체크함 2. 오라클 제품에 대한 LFI (Local File Include) 취약점 익스플로잇 웹 스캐닝 미리 작성한 "spling.py" 스크립트는..
스파이더링 (스파이더 : 인터넷 자동 검색 프로그램) 이번 포스팅에서는 웹 애플리케이션 스파이더링을 진행하기 위해 새로운 모듈(spider,optparse)를 소개할 것이다. 웹 어플리케이션을 대상으로 스파이더링을 진행하는 것은 웹 어플리케이션 구조 파악을 위해 해당 웹 어플리케이션에 링크된 컨텐트를 나열하는 프로세스이다. 웹 어플리케이션 스파이더링은 파이썬을 이용하여 짧고 간단한 스크립트를 작성하는 것에 대한 꽤 좋은 use-case 이다. 웹 요청에 대한 응답 데이터 내에서 "href" 태그를 파싱하는 크롤링 스크립트를 작성할 수도 있지만, "Spider" 라는 파이썬 모듈을 이용하면 좀 더 짧은 코드 라인으로 대체할 수 있다. "Spider" 모듈에서 동작하는 "myspider(b=URL.strip..
이번 포스팅에서는 파이썬을 이용하여 웹 요청을 생성하는 것을 보여줄 것이다. 파이썬에는 웹 요청과 응답을 쉽게 생성하고 파싱하는 모듈이 존재한다. (httplib, Mechanize, Beautiful Soup, and urllib/urllib2) 좌측의 모듈을 설치하고 각 모듈의 기능을 한번 테스트해보길 바란다. 웹 요청 생성 아래 사진은 로컬에서는 파이썬을 통해 돌아가는 "SimpleHTTPServer" 서버에 대하여 요청을 생성하는 예제 코드이다. * 좌측 커맨드 창 : 웹 요청 생성 및 응답 출력 * 우측 커맨드 창 : Python - SimpleHTTPServer 실행 HTML 파싱 이제 웹 요청을 생성할 수 있게 되었으니 응답되어 오는 HTML을 파싱하는 모듈을 알아보도록 한다. "Beauti..
"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..
* PC 환경에서 사진이 잘릴 경우 해당 사진을 클릭하면 원본 크기로 보여집니다. 이번 포스팅에서는 파이썬을 이용하여 커스텀 fuzzer(이하 퍼져) 스크립트를 작성하는 것을 보여줄 것이다. 익스플로잇을 연구하고 작성할 때에 스크립트 언어를 이용하여 애플리케이션 크래시를 유발하는 다양한 종류의 데이터를 입력하는 것은 좋은 방법이다. 파이썬은 반복적으로 목표 서비스에 연결하고 다양한 종류의 데이터를 입력하는데 있어서 굉장히 유용하게 사용될 수 있다. 우선 애플리케이션이 어떻게 유저로부터 입력된 데이터를 핸들링(처리)하는지 알아야 한다. 당신이 목표 서비스에 전송할 데이터의 종류를 결정하고 나면, 다양한 입력 데이터를 서비스에 입력하기 시작해야 한다. 기본적인 아이디어는 대상 서비스에 연결하고, 버퍼(데이터..