
악성 파일에 대한 정보를 수집하는 모듈식 Python 애플리케이션
이 도구는 주어진 파일에 대한 다양한 인텔리전스 소스를 수집하는 데 사용됩니다. Fileintel은 모듈식으로 작성되어 새로운 인텔리전스 소스를 쉽게 추가할 수 있습니다.
파일은 파일 해시(MD5, SHA1, SHA256)로 식별됩니다. 출력은 CSV 형식으로 STDOUT으로 전송되어 데이터를 저장하거나 다른 프로그램으로 파이프할 수 있습니다. 출력이 CSV 형식이므로 Excel과 같은 스프레드시트나 데이터베이스 시스템에서 쉽게 데이터를 가져올 수 있습니다.
이 도구는 Python v2에서 작동하며, Python v3에서도 작동해야 합니다. Python v3에서 작동하지 않는 경우 이슈를 게시해 주세요.
이 코드는 Windows 7 및 Mac OSX El Capitan에서 테스트되었습니다. 다른 종류의 기기에서 시도해 보셨다면 알려주세요!
fileintel 소개 동영상: https://youtu.be/MgJoy2fD0ZY
첫 번째 도구 hostintel의 배경: https://github.com/keithjjones/hostintel
$ python fileintel.py -h
usage: fileintel.py [-h] [-a] [-v] [-n] [-o] [-t] [-r]
ConfigurationFile InputFile
파일 인텔리전스 정보를 조회하는 모듈식 애플리케이션. 출력은 CSV로 STDOUT에 전송됩니다.
positional arguments:
ConfigurationFile 구성 파일
InputFile 입력 파일, 한 줄에 하나의 해시 (MD5, SHA1, SHA256)
optional arguments:
-h, --help 이 도움말 메시지를 표시하고 종료합니다.
-a, --all 모든 조회 수행.
-v, --virustotal VirusTotal 조회.
-n, --nsrl NSRL 조회 (SHA-1 및 MD5 해시만 해당!).
-o, --otx AlienVault의 OTX 조회.
-t, --threatcrowd ThreatCrowd 조회 (SHA-1 및 MD5 해시만 해당!).
-r, --carriagereturn csv에서 새 줄과 함께 캐리지 리턴 사용.
먼저 구성 파일이 사용자의 컴퓨터/설치 환경에 맞는지 확인하세요. 구성 파일에 API 키와 사용자 이름을 적절히 추가하세요. 이 도구를 실행하려면 Python과 Pip가 필요합니다. GitHub에서 설치해야 하는 모듈이 있으므로 명령줄에서 git 명령을 사용할 수 있는지 확인하세요. Git은 모든 플랫폼에서 쉽게 설치할 수 있습니다. 그런 다음 Python 요구 사항을 설치하세요 (이 저장소를 git pull 할 때마다 실행):
$ pip install -r requirements.txt
Mac OSX의 기본 Python 버전에서 몇 가지 문제가 보고되었습니다. (http://stackoverflow.com/questions/31649390/python-requests-ssl-handshake-failure). 다음 명령어로 requests 라이브러리의 보안 부분을 설치해야 할 수도 있습니다:
$ pip install requests[security]
NSRL 데이터베이스 조회를 사용하는 경우 NSRL "Minimal" 데이터 세트를 zip 파일로 다운로드하세요. 접근 가능한 디렉토리에 넣고 구성 파일에서 해당 zip 파일을 가리키도록 설정하세요. NSRL 데이터의 압축을 풀 필요는 없습니다.
대용량 NSRL zip 파일을 읽을 때 내부 Python zip 라이브러리(느림) 대신 7Zip(빠름)을 사용하려면 7Zip을 설치해야 합니다. Windows에서 7Zip 설치는 매우 간단하지만, Mac OX X 또는 Linux에서는 명령줄 도구인 p7zip을 설치해야 합니다. Mac OS X의 경우 Brew를 사용하여 이 도구를 설치할 수 있습니다. 7Zip을 설치한 후에는 구성 파일에서 7z 실행 파일의 위치를 적절히 가리키도록 설정해야 합니다.
마지막으로, 저는 Python용 virtualenv를 선호합니다. 이 도구를 실행하기 위한 맞춤형 로컬 Python 설치를 만들려면 다음을 읽어보시길 권장합니다: http://docs.python-guide.org/en/latest/dev/virtualenvs/
$ python fileintel.py myconfigfile.conf myhashes.txt -a > myoutput.csv
myoutput.csv를 모든 데이터베이스 또는 스프레드시트 프로그램으로 가져올 수 있습니다.
네트워크 상황, API 키 제한 및 검색하는 데이터에 따라 이 스크립트는 매우 오랜 시간 실행될 수 있습니다! 각 모듈을 아껴서 사용하세요! 오랜 대기의 대가로 수동으로 데이터를 가져오는 수고를 덜 수 있습니다.
"sampledata" 디렉토리에 몇 가지 샘플 데이터가 있습니다. 해시는 무작위로 선택되었으며 특정 조직이나 개인을 대상으로 한 것이 아닙니다. 샘플 데이터로 이 도구를 실행하면 다음과 같이 작동합니다:
$ python fileintel.py local/config.conf sampledata/smallerlist.txt -a > sampledata/smallerlist.csv
INFO: Using 7Zip from: /usr/local/bin/7z
Preprocessing NSRL database.... please hold...
*** Processing 275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f ***
*** Processing 001025c6d4974fb2ccbea56f710282aca6c1353cc7120d5d4a7853688084953a ***
*** Processing 001025c6d4974fb2ccbea56f710282aca6c1353cc7120d5d4a7853688084953b ***
*** Processing 92945627f32dfde376ffb7091b5faad2 ***
*** Processing 92945627f32dfde376ffb7091b5faad1 ***
*** Processing CEEF161D68AE2B690FA9616361271578 ***
*** Processing D41D8CD98F00B204E9800998ECF8427E ***
*** Processing B284A42B124849E71DBEF653D30229F1 ***
*** Processing 0322A0BA58B95DB9A2227F12D193FDDEA74CFF89 ***
*** Processing E02CE6D73156A11BA84A798B26DE1D12 ***
*** Processing B4ED7AEDACD28CBBDE6978FB09C22C75 ***
*** Processing C6336EA255EFA7371337C0882D175BEE44CBBD49 ***
$ python fileintel.py local/config.conf sampledata/largerlist.txt -a > sampledata/largerlist.csv
INFO: Using 7Zip from: /usr/local/bin/7z
Preprocessing NSRL database.... please hold...
*** Processing 275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f ***
*** Processing 001025c6d4974fb2ccbea56f710282aca6c1353cc7120d5d4a7853688084953a ***
*** Processing CEEF161D68AE2B690FA9616361271578 ***
*** Processing D41D8CD98F00B204E9800998ECF8427E ***
*** Processing B284A42B124849E71DBEF653D30229F1 ***
*** Processing 0322A0BA58B95DB9A2227F12D193FDDEA74CFF89 ***
*** Processing E02CE6D73156A11BA84A798B26DE1D12 ***
*** Processing B4ED7AEDACD28CBBDE6978FB09C22C75 ***
*** Processing C6336EA255EFA7371337C0882D175BEE44CBBD49 ***
...
*** Processing 09a64957060121a765185392fe2ec742 ***
*** Processing e0ab52a76073bff4a27bdf327230103d ***
*** Processing 02a5bd561c140236a3380785a3544b71 ***
*** Processing 152c3bb23cc9cb0b0112051b94f69d47 ***
*** Processing 2c9a5e7ce87259ec89e182416ac3a4f8 ***
*** Processing c777b094a3469610d81c139c952e380e ***
*** Processing aa58d9126ed96fa61f53e4f6c0bcd6b4 ***
*** Processing a68e53c42e2d0968e2fbcd168323725f ***
*** Processing a1651db6630f90b11576389aa714ad41 ***
이 애플리케이션은 Creative Commons BY-SA 라이선스에 따라 보호됩니다.
Contributing.md를 읽어주세요.