A2SV(Auto Scanning to SSL Vulnerability) - SSL 취약점 점검 도구

a2sv는 deprecated 되었습니다. 훨씬 상위 호환인 testssl.sh를 이용해주세요!

하나의 시스템에 대해 긴 시간을 분석한다면 참 좋겠지만, 현실은 그렇지 않을 경우가 많습니다. 그렇기 때문에 빠르게 테스트가 필요한 것들은 Scanner와 같은 툴의 도움을 많이 받습니다. 오늘은 제가 분석을 위해 만들었었던 SSL 관련 취약점 도구인 A2SV에 대해 소개할까 합니다.

A2SV

A2SV는 Auto Scanning to SSL Vulnerability 의 약자로 이름을 만들었습니다. “그냥 쉽게 SSL에 대해 점검할 수 있다면 좋겠다.” 라는 생각에서 출발하게 되었지요. 물론 상용/오픈소스 스캐너에서도 점검하는 항목이겠지만, 그래도 하나쯤 만들어두면 편하게 사용할 수 있지요.

툴의 점검 코드는 공개된 POC코드를 이용하여 작성하였고, 신규 SSL 취약점이 나오면 더 추가하려고 생각중입니다.

Installation

  1. Download(clone) & Unpack A2SV
    git clone https://github.com/hahwul/a2sv.git
    cd a2sv
    
  2. Install Python Package
    pip install argparse
    
  3. Run A2SV
    python a2sv.py -h
    

Usage

usage: a2sv.py [-h] [-t T] [-p P] [-m M]

optional arguments:
-h, --help show this help message and exit
-t T Target URL/IP Address
-p P Custom Port / Default: 443
-m M Check Module

ex)
python a2sv.py -t 127.0.0.1
python a2sv.py -t 127.0.0.1 -m heartbleed
python a2sv.py -t 127.0.0.1 -p 8111

옵션 설명

  • -t : 스캔할 타겟 IP/Host 입니다.
  • -p : 스캔할 포트입니다. 미 지정 시 443(https)으로 세팅됩니다.
  • -m : 단독 모듈로 실행합니다. (예를들어 CCS Injection 적용 시 CCS Injection에 대해서만 스캔을 진행합니다)

e.g

a2sv -t github.com

output

________________________________________________________________________
[SET] target => github.com
[SET] IP Address => 192.30.252.120
[SET] target port => 443
[SET] include => All Module

[INF] Scan CCS Injection..
 - [LOG] TLSv1.2 192.30.252.120:443 rejected early CCS
 - [LOG] TLSv1.1 192.30.252.120:443 rejected early CCS
 - [LOG] TLSv1 192.30.252.120:443 rejected early CCS
 - [LOG] [SSLv3] 192.30.252.120:443 Invalid handshake.
[RES] CCS Injection Result :: 0x00
[INF] Scan HeartBleed..
 - [LOG] Sending Client Hello...
 - [LOG] Waiting for Server Hello...
 - [LOG] Sending heartbeat request..
[RES] HeartBleed :: 0x00
[INF] Scan SSLv3 POODLE..
 - [LOG] SSLv3 Rejected
[RES] SSLv3 POODLE :: 0x00
[INF] Scan OpenSSL FREAK..
 - [LOG] IP Check Ok.
 - [LOG] Start SSL Connection / Gathering Information
 - [LOG] Ending Get Information
 - [LOG] 'Cipher is EXP' not in Response
[RES] OpenSSL FREAK :: 0x00
[INF] Scan OpenSSL LOGJAM..
 - [LOG] IP Check Ok.
 - [LOG] Start SSL Connection / Gathering Information
 - [LOG] Ending Get Information
 - [LOG] 'Cipher is DEH' not in Response
[RES] OpenSSL LOGJAM :: 0x00
[FIN] Scan Finish!
________________________________________________________________________
                              [A2SV REPORT]                           
 [TARGET]: 192.30.252.120
 [PORT]: 443
 [SCAN TIME]: 2016-05-18 00:05:39.434007
 [VULNERABILITY]
Vulnerability  CVE           CVSS v2 Base Score         State         
============== ============= ========================== ================
CCS Injection  CVE-2014-0224 AV:N/AC:M/Au:N/C:P/I:P/A:P Not Vulnerable.
HeartBleed     CVE-2014-0160 AV:N/AC:M/Au:N/C:P/I:N/A:N Not Vulnerable.
SSLv3 POODLE   CVE-2014-3566 AV:N/AC:L/Au:N/C:P/I:N/A:N Not Vulnerable.
OpenSSL FREAK  CVE-2015-0204 AV:N/AC:M/Au:N/C:N/I:P/A:N Not Vulnerable.
OpenSSL LOGJAM CVE-2015-4000 AV:N/AC:M/Au:N/C:N/I:P/A:N Not Vulnerable.
________________________________________________________________________

Conclusion

PR 및 Contribute는 언제나 환영입니다 :D

https://github.com/hahwul/a2sv