반응형
openssl과 sslcan 이용
윈도우 버전 설치
리눅스는 wget 명령어로 받으면된다
https://slproweb.com/products/Win32OpenSSL.html
스캐닝 도구
https://github.com/rbsec/sslscan
sslscan을 실행하면 TLS 버전은 무엇을 사용하는지 하트블리드 취약점의 가능성이 있는지 암호화 알고리즘은 무엇을 사용하는지 등등 정보들을 확인할 수 있다.
취약한 HTTPS 프로토콜 이용
* (평가항목 설명) 취약한 버전의 암호 프로토콜 사용 시 암호화된 통신 내용이 유출될 수 있어 취약한 버전의 SSL(SSL 2.0, 3.0) 사용 여부를 점검
* (평가 예시 : 취약한 버전의 SSL(SSL 2.0, 3.0) 사용 가능 여부 점검 등)
1. nmap을 이용한 HTTPS 프로토콜 확인
* (평가 예시 : 취약한 버전의 SSL(SSL 2.0, 3.0) 사용 가능 여부 점검 등)
1. nmap을 이용한 HTTPS 프로토콜 확인
C:\Users> nmap -p [port] --script ssl-enum-ciphers [target_host]
C:\Users> nmap -p 443 --script ssl-enum-ciphers secureroot.co.kr
2. openssl을 이용한 HTTPS 프로토콜 확인
C:\Users> openssl s_client -ssl3 -connect [target_host:port]
C:\Users> openssl s_client -ssl3 -connect secureroot.co.kr:443
취약한 HTTPS 암호 알고리즘 이용
* (평가항목 설명) 보안 강도가 낮은 암호 알고리즘을 사용할 경우 암호화된 통신 내용이 유출되는 등의 위협이 존재함에 따라 암호 알고리즘의 보안 강도의 적절성 여부를 점검
* (평가 예시 : 보안 강도가 낮은 암호 알고리즘 사용 여부 점검 등)
1. nmap을 이용한 HTTPS 암호 알고리즘 확인
* (평가 예시 : 보안 강도가 낮은 암호 알고리즘 사용 여부 점검 등)
1. nmap을 이용한 HTTPS 암호 알고리즘 확인
C:\Users> nmap -p [port] --script ssl-enum-ciphers [target_host]
C:\Users> nmap -p 443 --script ssl-enum-ciphers secureroot.co.kr
이용 가능한 HTTPS 프로토콜 종류, 암호 알고리즘 보안 강도(알파벳으로 표시) 등 확인 가능
취약한 HTTPS 컴포넌트 사용
* (평가항목 설명) 취약한 HTTPS 확장 모듈 사용 시 암호화된 정보 노출 등의 위협이 존재함에 따라 이에 대한 취약점 존재 유무 점검
* (평가 예시 : HTTPS 관련 주요 취약점(CVE-2014-0160:Heartbleed, CVE-2014-0224 등)의 존재 여부 점검 등)
* CVE-2014-0160 : OpenSSL의 라이브러리에 버그가 존재하여 서버내 중요 메모리 데이터가 노출될 수 있는 취약점
* CVE-2014-0224 : OpenSSL 통신 상의 CCS(ChangeCipherSpec)메시지 처리과정 중 취약점이 있어 암호화된 정보의 노출 및 변조 가능성이 존재하는 취약점
1. nmap을 이용한 취약한 HTTPS 컴포넌트 사용 여부 확인
* (평가 예시 : HTTPS 관련 주요 취약점(CVE-2014-0160:Heartbleed, CVE-2014-0224 등)의 존재 여부 점검 등)
* CVE-2014-0160 : OpenSSL의 라이브러리에 버그가 존재하여 서버내 중요 메모리 데이터가 노출될 수 있는 취약점
* CVE-2014-0224 : OpenSSL 통신 상의 CCS(ChangeCipherSpec)메시지 처리과정 중 취약점이 있어 암호화된 정보의 노출 및 변조 가능성이 존재하는 취약점
1. nmap을 이용한 취약한 HTTPS 컴포넌트 사용 여부 확인
* HeartBleed(CVE-2014-0160)
C:\Users> nmap -p [port] --script ssl-heartbleed [target_host]
* CCS-Injection(CVE-2014-0224)
C:\Users> nmap -p [port] --script ssl-ccs-injection [target_host]
* Poodle Attack(CVE-2014-3566)
C:\Users> nmap -p [port] --script ssl-poodle [target_host]
C:\Users> nmap -p [port] --script ssl-heartbleed [target_host]
* CCS-Injection(CVE-2014-0224)
C:\Users> nmap -p [port] --script ssl-ccs-injection [target_host]
* Poodle Attack(CVE-2014-3566)
C:\Users> nmap -p [port] --script ssl-poodle [target_host]
취약한 HTTPS 재협상 허용
(HTTPS 재협상은 기존 HTTPS 연결에서 새 암호화 키를 협상하는 과정)
* (평가항목 설명) 암호화된 통신내용이 노출될 가능성이 존재하는 취약한 방식의 HTTPS 재협상(Renegotiation)을 허용 여부를 점검
* (평가 예시 : SSLTEST 결과 insecure client-initiated renegotiation 값 점검 등(ex. No - 양호, supported - 미흡))
* (평가 예시 : SSLTEST 결과 insecure client-initiated renegotiation 값 점검 등(ex. No - 양호, supported - 미흡))
취약한 방식의 HTTPS 재협상 허용을 점검하기 위해 4가지 재협상 방법 중 Client-initiated insecure renegotiation 값을 점검
- Client-initiated secure renegotiation
- Client-initiated insecure renegotiation(CVE-2009-3555)
- Server-initiated secure renegotiation
- Server-initiated insecure renegotiation
- Client-initiated secure renegotiation
- Client-initiated insecure renegotiation(CVE-2009-3555)
- Server-initiated secure renegotiation
- Server-initiated insecure renegotiation
***공격방법*** 취약한 HTTPS 재협상 공격은 다음과 같은 방식으로 이루어진다.
|
1. openssl(0.9.8k 이하)을 이용한 취약한 HTTPS 재협상 허용 여부 확인
C:\Users> openssl s_client -connect [target_host:port]
R
C:\Users> openssl s_client -connect secureroot.co.kr:443
R
(입력)
**OpenSSL은 네트워크를 통한 데이터 통신에 쓰이는 프로토콜인 TLS와 SSL의 오픈 소스 구현판
burpsuite를 이용한 진단
버프슈트는 웹과 관련된 모든 도구가 존재해서 당연히 SSL/TLS를 진단하는 도구도 있다.
익스텐션 기능에 BApp Store에서 SSL Scanner라는 도구를 받을 수 있다
도구와 관련된 깃허브
https://github.com/portswigger/ssl-scanner
만약 도구를 설치했는데 아래와같이 Jython 에러가 발생한다면 아래 사이트에서 jython-standalone 파일을 받아서 버프슈트내 파이썬 환경에 추가해주면된다
https://www.jython.org/download
웹 도구를 이용한 진단
아래 사이트에서 확인할 수 있다.
참조
https://hyotwo.tistory.com/187#1.%20openssl%EA%B3%BC%20sslcan%20%EC%9D%B4%EC%9A%A9
반응형
'Web' 카테고리의 다른 글
[웹] 브라우저? 알아볼게요 (0) | 2023.08.18 |
---|---|
[웹] 세션, 쿠키? 알아볼게요( with . python, javascript) (1) | 2023.08.18 |
[웹] 다양한 jwt 토큰 우회 방법 ( with. python ) (0) | 2023.08.16 |
[웹] 꼭 알아야 하는 jwt 토큰 개념 (0) | 2023.08.16 |
[웹] HTTP 상태코드 한방에 정리 (2) | 2023.08.13 |