
sslscan v2.2.3
빠른 SSL/TLS 스캐너로 지원되는 암호 스위트, 프로토콜 및 취약점(Heartbleed, POODLE, CRIME)을 발견하며, 인증서 체인 분석 및 키 교환 열거 기능을 제공합니다.
sslscan2
sslscan 버전 2가 출시되었습니다. 여기에는 백엔드 스캔 코드의 주요 재작성이 포함되어 있어 더 이상 많은 검사에서 OpenSSL 버전에 의존하지 않습니다. 즉, 컴파일된 OpenSSL 버전에 관계없이 기존 프로토콜(SSLv2 및 SSLv3)은 물론 TLSv1.3도 지원할 수 있습니다.
이것은 대부분 jtesta의 작업 덕분에 가능해졌으며, 그가 백엔드 재작성의 대부분을 담당했습니다.
기타 주요 변경 사항은 다음과 같습니다:
- 서버 키 교환 그룹 열거.
- 서버 서명 알고리즘 열거.
- SSLv2 및 SSLv3 프로토콜 지원은 스캔되지만 개별 암호는 스캔되지 않습니다.
- Docker를 사용한 테스트 스위트가 포함되어 있어 sslscan이 올바르게 작동하는지 확인합니다.
--http옵션이 제거되었습니다. 이 옵션은 손상되었고 처음부터 사용 빈도가 매우 낮았기 때문입니다.- 새로운 포스트퀀텀 그룹 지원.
XML 출력 변경 사항
버전 2.0.0-beta4의 XML 출력에 잠재적으로 호환성이 깨지는 변경 사항이 적용되었습니다. 이전에는 여러 개의 <certificate> 요소가 반환될 수 있었습니다(기본적으로 하나, --show-certificate가 사용된 경우 두 번째 요소).
주요 변경 사항은 다음과 같습니다:
<certificate>요소를 포함할 새로운 상위 요소<certificates>.<certificate>요소에는 새로운type속성이 있으며, 다음 중 하나일 수 있습니다:- 기본 출력의 경우
short. --show-certificate가 사용된 경우full.
- 기본 출력의 경우
- 서로 다른 서명 알고리즘을 가진 여러 인증서가 있는 서버에서는 각 유형의 인증서가 두 개 이상 반환될 수 있습니다(이슈 #208 참조).
<certificate>의<signature-algorithm>요소는 더 이상 "Signature Algorithm:" 접두사나 공백 및 줄바꿈을 포함하지 않습니다.
XML 출력을 사용하는 경우 파서를 변경해야 할 수 있습니다.
README
이것은 rbsec([email protected])이 만든 ioerror 버전의 sslscan 포크입니다(원본 readme는 아래 포함). 주요 변경 사항은 다음과 같습니다:
- 출력에서 SSLv2 및 SSLv3 암호를 강조 표시합니다.
- SSLv3에서 CBC 암호를 강조 표시합니다(POODLE).
- 출력에서 3DES 및 RC4 암호를 강조 표시합니다.
- 출력에서 PFS+GCM 암호를 양호로 강조 표시합니다.
- 출력에서 NULL(0비트), 약함(<40비트) 및 중간(40 < n <= 56) 암호를 강조 표시합니다.
- 출력에서 익명(ADH 및 AECDH) 암호를 강조 표시합니다(보라색).
- 기본적으로 인증서 정보를 숨깁니다(
--show-certificate로 표시). - 기본적으로 거부된 암호를 숨깁니다(
--failed로 표시). - TLSv1.1, TLSv1.2 및 TLSv1.3 지원이 추가되었습니다.
- IPv6를 지원합니다(
--ipv6으로 강제 가능). - TLS 압축 확인(CRIME,
--no-compression으로 비활성화). - 암호 제품군 검사 비활성화
--no-ciphersuites. - 색상 출력 비활성화
--no-colour. - 문서화되지 않은 -p 출력 옵션 제거.
- OpenSSL HeartBleed 확인이 추가되었습니다(CVE-2014-0160,
--no-heartbleed로 비활성화). - MD5 또는 SHA-1로 서명되었거나 짧은(<2048비트) RSA 키를 가진 인증서에 플래그를 지정합니다.
--rdp를 사용한 RDP 서버 스캔 지원(크레딧: skettler).- 소켓 타임아웃 지정 옵션이 추가되었습니다.
- 정적 컴파일 옵션이 추가되었습니다(크레딧: dmke).
- 요청 사이에 대기하는
--sleep옵션이 추가되었습니다. - 지정된 검사 이외의 출력 비활성화
--no-preferred. - 클라이언트 인증서에 허용되는 CA 목록 확인
--show-client-cas. - OS X에서 실험적 빌드 지원(크레딧: MikeSchroll).
- 일부 자체 서명 SSL 인증서에 플래그를 지정합니다.
- 실험적 Windows 지원(크레딧: jtesta).
- OpenSSL >= 1.0.2에서 EC 곡선 이름 및 DHE 키 길이 표시
--no-cipher-details. - OpenSSL >= 1.0.2에서 약한 DHE 키에 플래그 지정
--cipher-details. - 만료된 인증서에 플래그를 지정합니다.
- 출력에서 TLSv1.0 및 TLSv1.1 프로토콜을 약함으로 플래그 지정.
- 실험적 OS X 지원(정적 빌드만 해당).
- PostgreSQL 서버 스캔 지원(크레딧: nuxi).
- TLS Fallback SCSV 지원 확인.
- LDAP용 StartTLS 지원 추가
--starttls-ldap. - SNI 지원 추가
--sni-name(크레딧: Ken). - MySQL용 STARTTLS 지원(크레딧: bk2017).
- 지원되는 키 교환 그룹 확인.
- 지원되는 서버 서명 알고리즘 확인.
- IANA/RFC 암호 이름 표시
--iana-names. - 전체 인증서 체인 표시
--show-certificates.
Linux에서 빌드하기
OpenSSL 시스템 설치를 무시하고 자신의 버전으로 정적 빌드하는 것이 좋습니다. 이렇게 하면 결과적으로 sslscan 바이너리가 더 무거워지지만(파일 크기, 메모리 사용량 등), TLS 압축과 같은 추가 검사가 가능합니다. sslscan 버전 2.2.0부터 필요한 최소 OpenSSL 버전은 3.5.0(LTS)이므로 배포판에 더 오래된 버전이 함께 제공되는 경우 해당 버전으로 빌드하면 작동하지 않으며 정적 빌드를 수행해야 합니다.
자체 OpenSSL 버전을 컴파일하려면 OpenSSL 빌드 종속성을 설치해야 할 수 있습니다. 아래 명령을 사용하여 Debian에서 이 작업을 수행할 수 있습니다.
apt install git zlib1g-dev make gcc
그런 다음 실행하십시오.
make static
이렇게 하면 OpenSSL 저장소가 복제되고 sslscan을 컴파일하기 전에 OpenSSL이 구성/컴파일/테스트됩니다.
참고: 기본적으로 OpenSSL은 gcc로 추가 사용자 정의 없이 컴파일됩니다. clang으로 컴파일하려면 아래 명령을 사용하여 빌드 종속성을 설치합니다.
apt install git zlib1g-dev make clang
그런 다음 실행하십시오.
make static CC=clang
sslscan --version으로 나열된 버전에 -static 접미사가 있는지 확인하여 정적으로 연결된 OpenSSL 버전이 있는지 확인할 수 있습니다.
Docker로 빌드하기
로컬 Docker 설치가 작동하는지 확인하고 다음을 사용하여 컨테이너를 빌드하십시오:
make docker
또는 수동으로:
docker build -t sslscan:sslscan .
그런 다음 sslscan을 실행할 수 있습니다:
docker run --rm -ti sslscan:sslscan --help
Windows에서 빌드하기
jtesta의 패치 덕분에 이제 sslscan을 Windows에서 컴파일할 수 있습니다. 네이티브로 또는 Linux에서 크로스 컴파일하여 수행할 수 있습니다. 자세한 내용은 INSTALL을 참조하십시오.
sslscan은 원래 Linux용으로 작성되었으며 Windows에서 광범위하게 테스트되지 않았습니다. 따라서 Windows 버전은 실험적인 것으로 간주해야 합니다.
사전 빌드된 크로스 컴파일 Windows 바이너리는 GitHub Releases Page에서 사용할 수 있습니다.
macOS(이전 명칭 OS X)에서 빌드하기
macOS(이전 명칭 OS X)에서 정적 빌드에 대한 실험적 지원이 있지만 지원되지 않는 것으로 간주해야 합니다. macOS(이전 명칭 OS X)에서 소스에서 OpenSSL을 컴파일하는 데 필요한 종속성을 설치해야 할 수 있습니다. 설치한 후 다음을 실행하기만 하면 됩니다:
make static
원본 (ioerror) README
이것은 STARTTLS를 더 잘 지원하기 위한 sslscan.c의 포크입니다.
sslscan의 원본 홈페이지는 다음과 같습니다:
http://www.titania.co.uk
sslscan은 원래 다음 사람이 작성했습니다:
Ian Ventura-Whiting
이 포크의 현재 홈페이지(업스트림이 완성된 패치를 병합할 때까지)는 다음과 같습니다:
http://www.github.com/ioerror/sslscan
대부분의 사전 TLS 프로토콜 설정은 OpenSSL의 s_client.c 프로그램에서 영감을 받았습니다. 이 포크의 목표는 STARTTLS 설정이 완성된 후 원래 프로젝트와 병합하는 것입니다.
일부 OpenSSL 설정 코드는 Tor Project의 Tor 프로그램에서 차용되었습니다. 따라서 BSD 라이선스를 준수하기 위해 다음과 같이 표시하는 것이 적절합니다: Copyright (c) 2007-2010, The Tor Project, Inc.