
CurveBall CVE 악용
이 루비 스크립트는 합법적인 인증 기관을 스푸핑하고 CurveBall 취약점의 영향을 받는 Windows 컴퓨터에서 유효한 것으로 간주되는 인증서를 생성하는 데 사용할 수 있습니다.
스푸핑하려는 인증 기관에서 발급된 인증서를 확보해야 합니다.
그런 다음 다음 명령으로 스크립트를 실행할 수 있습니다 :
ruby gen-rogue-cert.rb -in=ca.crt -subj="/C=France/ST=IleDeFrance/L=Paris/O=YoannDqr" -out=cert_rb.p12 -exe=DoNotDebugMe.exe -sh -type=exe -sh | bash
이 스크립트는 서명된 PE 및 TLS 서버를 생성하는 데 사용할 수 있습니다.
-in : 필수 ; 스푸핑할 신뢰할 수 있는 CA 인증서 경로
-out : 필수 ; 생성된 인증서를 저장할 경로
-type : 필수 ; 코드 서명 인증서의 경우 'exe', 서버 및 클라이언트 인증 인증서의 경우 'tls'일 수 있습니다.
-exe : 선택 사항 ; 서명할 실행 파일의 이름
-subj : 선택 사항 ; 생성된 인증서의 주체(subject)
-sh : 선택적 플래그 ; 인증서를 사용하는 데 필요한 bash 명령만 반환합니다 (예 : 실행 파일에 서명하는 명령줄)
이 스크립트는 루비 OpenSSL 라이브러리 https://github.com/ruby/openssl 를 기반으로 합니다.
입력된 인증서에서 발견된 공개 키로 가짜 CA를 생성합니다. 그런 다음 인증서 서명 요청을 생성하고 가짜 CA 인증서로 서명합니다. 인증서는 pcks12 파일로 패키징되어 컴퓨터에 저장됩니다.
TLS 인증서 생성과 같은 기능을 추가하려면 인증서 서명 요청에서 생성된 인증서의 확장을 수정하면 됩니다.
csr_cert.add_extension(extension_factory.create_extension('extendedKeyUsage', 'codeSigning'))csr_cert.add_extension(extension_factory.create_extension('extendedKeyUsage', 'serverAuth, clientAuth'))