파이썬

VirusTotal API 이용해서 IP 검색하기(vtapi3 - VirusTotal in Python)

Mara7 2022. 10. 27.
LIST

VirusTotal은 무료로 파일 검사를 제공하는 웹사이트입니다.

 

다음코드는,vtapi3 파이썬 모듈을 활용하여 virustotal에서 ip에 대한 정보들을 가져온 후에 , 악성 정보만을 출력할 수 있는 코드를 구성해보았습니다. 

from vtapi3 import VirusTotalAPIIPAddresses,VirusTotalAPIError
vt_api_ip_addresses = VirusTotalAPIIPAddresses(
    'your_apikey')
# ip들을 검색한다.
try:
    result = vt_api_ip_addresses.get_report('ip')
# 검색이 안되면 error 메시지를 출력한다.
except VirusTotalAPIError as err:
    print(err, err.err_code)
# virus total 값들을 가져온다.
else:
    if vt_api_ip_addresses.get_last_http_error() == vt_api_ip_addresses.HTTP_OK:
        # 결과값을 result에 json형태로 저장한다.
        result = json.loads(result)
        
        # URL 스캔 시작 안내, 60초 대기
        print('Virustotal IP Scan Start (60 Seconds Later) : ','ip', '\n')        
        
        # 점검 결과 데이터 추출       
        report_scans = result.get("data").get("attributes").get("last_analysis_results") # 결과값 저장
        report_scans_vendors = list(report_scans.keys()) # vendor 저장
        report_scans_vendors_cnt = len(report_scans_vendors) # vendor 길이 저장
        # print(report_scans_vendors_cnt)

        # 파일 스캔 결과 리포트 데이터 보기
        print('Scan URL Vendor CNT: ', report_scans_vendors_cnt, '\n')

        # 바이러스 스캔 엔진사 별 데이터 정리
        numbers = 1
        vendor_count = 0

        for vendor in report_scans_vendors:
            outputs = report_scans[vendor]
            outputs_result = report_scans[vendor].get('result')
            outputs_detected = report_scans[vendor].get('detected')
            # outputs_detected = True, False
            # outputs_result = clean , unrated , malware , malicious , Phishing
            if outputs_result != 'clean':
                if outputs_result != 'unrated':
                    print(f'[No].{numbers}',
                          ",[Vendor Name]:", vendor,
                          ',[Vendor Result]:', outputs_result,
                          ',[Vendor Detected]:', outputs_detected)
                    numbers += 1
                	vendor_count += 1
        print("밴더 수 :",vendor_count, '\n')

출력 값은 아래와 같습니다.

참고 자료

1. https://anfrhrl5555.tistory.com/75

 

(API+Python) VirusTotal API 이용해서 URL 검색하기

VirusTotal은 File, URL, IP, etc... 여러가지에 대해 악성유무를 검사할 수 있는 유용한 사이트이다. VirusTotal에서 제공하는 API를 가지고 python code를 짜서 손쉽게 데이터를 받아올 수 있다. 해당 사이트..

anfrhrl5555.tistory.com

2.

virustotalapi.pdf
0.22MB

 

반응형
LIST

댓글