선릉역 1번 출구
TLS 버전 확인 with NMAP 본문
구문
- nmap --script ssl-enum-ciphers -p443 <URL> -unprivileged
with chatGPT
해당 명령어는 네트워크 스캐닝 도구인 Nmap을 사용하여 특정 URL의 443 포트에 대해 SSL 암호화 알고리즘을 열거하는 명령어입니다. 여기서 각 구성 요소를 해석해보겠습니다:
- nmap: 네트워크 스캐닝 도구인 Nmap을 실행하는 명령어입니다.
- --script ssl-enum-ciphers: Nmap 스크립트 중에서 ssl-enum-ciphers 스크립트를 사용하도록 지시합니다. 이 스크립트는 SSL/TLS 암호화에 사용되는 알고리즘을 열거합니다.
- -p 443: 스캔 대상의 포트를 설정합니다. 여기서는 443 포트를 지정하고 있으므로 SSL/TLS에 일반적으로 사용되는 HTTPS 포트를 대상으로 합니다.
- <URL>: 스캔할 대상의 URL을 지정합니다. 여기서는 <URL> 자리에 실제 URL을 넣어야 합니다.
- -unprivileged: 이 옵션은 일반 사용자 권한으로 실행되는 것을 의미합니다. 일반적으로 루트 권한이 필요한 스캔 도구를 사용할 때 이 옵션을 사용하면 보안 측면에서 더 안전합니다.
- -unprivileged 옵션은 사용자가 일반 권한으로 스캔을 실행하도록 하는 옵션으로, 이렇게 함으로써 보안 측면에서 더 안전한 스캔을 수행할 수 있습니다. 일반적으로 네트워크 스캔은 특권(루트) 권한이 필요한데, 이는 시스템에 대한 권한이 필요하고 잠재적으로 위험할 수 있습니다.
https://nmap.org/nsedoc/scripts/ssl-enum-ciphers.html
SSL/TLS 취약점
1. Heartbleed
- SSL을 사용한 통신 과정에는 클라이언트와 서버의 연결 지속성을 유지하기 위해 Heartbeat를 사용함
- 이때 경계값을 제대로 검증하지 않아 서버의 메모리가 그대로 노출됨
- 클라이언트가 서버의 작동 여부를 확인하면서 서버의 메모리에 저장되어 있는 데이터를 가져올 수 있음
2. POODLE(padding oracle on downgraded legacy encryption)
- 클라이언트와 서버 간 TLS 통신을 차단하여 강제로 취약한 프로토콜인 SSLv3 통신을 하게 만들고 오라클 패딩 공격을 통해 데이터 복호화가 가능함
- 오라클 패딩 공격
- 오라클: 암호학에서 오라클은 사용자와 시스템의 협조적인 관계를 통해 복호화 또는 암호화를 진행하는 시스템
- 오라클 패딩: 암호학에서의 오라클의 한 종류로 복호화 시스템에 암호문을 넣었을 때 그에 대한 패딩의 올바름 유무를 보여주는 오라클임
=> 다음 블록 전체를 패딩하는 이유
- XOR은 교환법칙/결합법칙이 성립함
- CBC(cipher block chaining) mode
- 내가 알고 있는 값: IV와 암호화된 값이라면? 평문을 찾기 위해서는?
- IV xor 평문 + 암호화 = 암호화된 값이라면 암호화된 값을 복호화 시켜서 IV xor IV xor 복호화 된 값을 하면 plaintext를 얻을 수 있음
- 그러나 암호화에 쓰인 key 값을 알아야 복호화가 가능함 -> key 값을 알아내는 것이 목표임
- 오라클 패딩은 패딩의 올바름의 유무를 알려주기 때문에 암호문에 따른 서버로부터의 응답이 다른 것을 이용하면 됨
- 어플리케이션에서 올바른 암호화 값을 받았을 경우(200 OK)
- 어플리케이션에서 패딩이 올바르지 않은 암호문을 받았을 경우(500 Internal Server Error)
- 어플리케이션에서 패딩은 올바르나 잘못된 암호문을 받았을 경우(암호화된 평문으로 복호화했더니 잘못된 값이 있을 경우)
https://sang-gamja.tistory.com/76
공격 이해는 위의 포스팅이 훨씬 수월함
참고 사이트
- SSL/TLS의 취약점 설명
https://itinformation.tistory.com/591
'Computer > Network' 카테고리의 다른 글
Docker keycloak 구축하기 (0) | 2023.10.18 |
---|---|
GUI & CLI 설정 반영의 차이 (0) | 2023.07.18 |
iptables (0) | 2023.07.17 |
snort (0) | 2023.07.17 |
DRDoS 공격 유형 (0) | 2023.07.13 |
Comments