선릉역 1번 출구

TLS 버전 확인 with NMAP 본문

Computer/Network

TLS 버전 확인 with NMAP

choideu 2023. 11. 17. 17:34

구문

- nmap --script ssl-enum-ciphers -p443 <URL> -unprivileged

 

with chatGPT

해당 명령어는 네트워크 스캐닝 도구인 Nmap을 사용하여 특정 URL의 443 포트에 대해 SSL 암호화 알고리즘을 열거하는 명령어입니다. 여기서 각 구성 요소를 해석해보겠습니다:

  1. nmap: 네트워크 스캐닝 도구인 Nmap을 실행하는 명령어입니다.
  2. --script ssl-enum-ciphers: Nmap 스크립트 중에서 ssl-enum-ciphers 스크립트를 사용하도록 지시합니다. 이 스크립트는 SSL/TLS 암호화에 사용되는 알고리즘을 열거합니다.
  3. -p 443: 스캔 대상의 포트를 설정합니다. 여기서는 443 포트를 지정하고 있으므로 SSL/TLS에 일반적으로 사용되는 HTTPS 포트를 대상으로 합니다.
  4. <URL>: 스캔할 대상의 URL을 지정합니다. 여기서는 <URL> 자리에 실제 URL을 넣어야 합니다.
  5. -unprivileged: 이 옵션은 일반 사용자 권한으로 실행되는 것을 의미합니다. 일반적으로 루트 권한이 필요한 스캔 도구를 사용할 때 이 옵션을 사용하면 보안 측면에서 더 안전합니다.
    1. -unprivileged 옵션은 사용자가 일반 권한으로 스캔을 실행하도록 하는 옵션으로, 이렇게 함으로써 보안 측면에서 더 안전한 스캔을 수행할 수 있습니다. 일반적으로 네트워크 스캔은 특권(루트) 권한이 필요한데, 이는 시스템에 대한 권한이 필요하고 잠재적으로 위험할 수 있습니다.

https://nmap.org/nsedoc/scripts/ssl-enum-ciphers.html

 

ssl-enum-ciphers NSE script — Nmap Scripting Engine documentation

Script Arguments Example Usage Script Output Script ssl-enum-ciphers Script types: portrule Categories: discovery, intrusive Download: https://svn.nmap.org/nmap/scripts/ssl-enum-ciphers.nse Script Summary This script repeatedly initiates SSLv3/TLS connecti

nmap.org

 

SSL/TLS 취약점

1. Heartbleed

- SSL을 사용한 통신 과정에는 클라이언트와 서버의 연결 지속성을 유지하기 위해 Heartbeat를 사용함

- 이때 경계값을 제대로 검증하지 않아 서버의 메모리가 그대로 노출됨

- 클라이언트가 서버의 작동 여부를 확인하면서 서버의 메모리에 저장되어 있는 데이터를 가져올 수 있음

 

2. POODLE(padding oracle on downgraded legacy encryption)

- 클라이언트와 서버 간 TLS 통신을 차단하여 강제로 취약한 프로토콜인 SSLv3 통신을 하게 만들고 오라클 패딩 공격을 통해 데이터 복호화가 가능함

  • 오라클 패딩 공격
    • 오라클: 암호학에서 오라클은 사용자와 시스템의 협조적인 관계를 통해 복호화 또는 암호화를 진행하는 시스템
    • 오라클 패딩: 암호학에서의 오라클의 한 종류로 복호화 시스템에 암호문을 넣었을 때 그에 대한 패딩의 올바름 유무를 보여주는 오라클임

https://bperhaps.tistory.com/entry/%EC%98%A4%EB%9D%BC%ED%81%B4-%ED%8C%A8%EB%94%A9-%EA%B3%B5%EA%B2%A9-%EA%B8%B0%EC%B4%88-%EC%84%A4%EB%AA%85-Oracle-Padding-Attack

 

오라클 패딩 공격 기초 설명 Oracle Padding Attack

Padding Oracle Attack for beginner K.knock 손민성 본 문서는 패딩오라클 어택에 전반적인 이해와 공부를 위해 작성되었으며, 본 문서를 이용하여 벌어지는 일에 대한 책임은 자신에게 있습니다. 오라클

bperhaps.tistory.com

=> 다음 블록 전체를 패딩하는 이유 

  • 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

 

Oracle Padding Attack[이론편]

Oracle Padding Attack oracle padding attack에서 오라클은 흔히 알려진 데이터베이스의 이름으로 쓰여진 것이 아니라 "응답에 대한 판독" 과 같은 뜻으로 쓰였다.즉 padding이 올바르게 되었는지 여부에 따라

sang-gamja.tistory.com

공격 이해는 위의 포스팅이 훨씬 수월함

 

 

 

참고 사이트

- SSL/TLS의 취약점 설명

https://itinformation.tistory.com/591

 

SSL 취약점 (HeartBleed, Poodle 취약점)

heartBleed (CVE-2014-0160) - 개요 : SSL을 사용한 통신 과정에는 클라이언트와 서버의 연결 지속성을 유지하기 위해 HeartBeat를 사용하는데, 이 과정에서 경계값을 제대로 검증하지 않아 서버의 메모리가

itinformation.tistory.com

 

'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