Jump to content

Conan

Newbies
  • Posts

    5
  • Joined

  • Last visited

Posts posted by Conan

  1. yay! thank you!!

    seriously, much appreciated. you just made a bunch of sysadmin and security types so very happy

     

    not sure if this helps, looks like there's more than one method, not sure how much of a difference that makes ...i could be completely off the mark

    https://learn.microsoft.com/en-us/dotnet/standard/assembly/sign-strong-name

     

    do you get a different result with and without the "/ms" parameter?

    sigtool.exe verify /ms

    https://learn.microsoft.com/en-us/dotnet/framework/tools/signtool-exe

     

    /ms should be the default as of Win8

     

    don't think that will be it, but first thing that comes to mind. Might be able to rule out some WinVerifyTrust / CertPaddingCheck related issue at least.

     

    context:
    It's an old issue that recently got some attention after being exploited in the wild.

    Priority got increased, might have some changes in behaviour i've missed.

    https://learn.microsoft.com/en-us/security-updates/securityadvisories/2014/2915720

    https://www.tenable.com/plugins/nessus/166555

     

     

    Yes, those are strings that should be DWORD, Either work, but strings is what the MSFT doco uses ... yeah lol

     

    [HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Wintrust\Config]   
    "EnableCertPaddingCheck"="1"
    
    [HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Cryptography\Wintrust\Config] 
    "EnableCertPaddingCheck"="1"

     

     

     

  2. arh, my apologies, that's quite the impact. Did not realise.

     

    greatly appreciate you responding, surprised actually. Just transferred $20 USD / $30 AUD, been using PND for many years, should be more, sorry.

    Transaction ID: 5A482066KE265925W

     

    Not being pushy, no expectations. The above is long over due and unrelated this request.

     

    This is mostly related to running PND in an enterprise environment, i can have chat with the boss, see if they'd be willing to pay for this as a feature request. Can't make any promises, don't know if they'll go for it.

     

    I wasn't able to reproduce the rate limit issue. Are you able to share how of the signing process works in the build? Will help if i can.

     

    through PowerShell, was able to sign 261 files in 68 seconds in one go, passing an array.

    71 seconds when iterating.

    ...Not sure how valid a test this is though

     

    guessing you're using visual studio / signtool

    looks like signtool can take a | delimited file list, not sure if that helps

    https://stackoverflow.com/questions/65985951/sign-multiple-files-with-signtool-exe

     

    there's a list of free timestamp servers, might be able to divvy up across multiple servers

    https://gist.github.com/Manouchehri/fd754e402d98430243455713efada710

     

    Not sure if all the DLLs change with each build. Might be able to sign on change?

     

    Probably a messy bad idea, but maybe a "public release" build that signs everything, and a "non-plublic release" that doesn't?

     

    If it's no worth the bother, or just rather not, that's totally cool to

     

    Set-StrictMode -Version 'latest'
    $ErrorActionPreference = 'stop'
    
    #New-SelfSignedCertificate -CertStoreLocation Cert:\CurrentUser\My -Type CodeSigningCert -Subject 'test01'
    $myCodeSignCert = Get-Item -LiteralPath Cert:\CurrentUser\My\A677A404C028940D31CC3EE16C7BAE6932367A61
    
    
    $FilesNotSigned = Get-ChildItem -LiteralPath 'C:\temp\paint.net' -File | Where-Object -FilterScript {
        $PSItem.Extension -eq '.dll'
    } | Get-AuthenticodeSignature | Where-Object -FilterScript {
        $PSItem.Status -ne 'Valid'
    } | Select-Object -ExpandProperty 'Path' 
    
    
    Measure-Command -Expression {
        Set-AuthenticodeSignature -TimestampServer 'http://timestamp.digicert.com' -Certificate $myCodeSignCert -FilePath $FilesNotSigned
    }
    
    #stdout
    
    Days              : 0
    Hours             : 0
    Minutes           : 1
    Seconds           : 8
    Milliseconds      : 167
    Ticks             : 681673557
    TotalDays         : 0.000788974024305556
    TotalHours        : 0.0189353765833333
    TotalMinutes      : 1.136122595
    TotalSeconds      : 68.1673557
    TotalMilliseconds : 68167.3557

     

     

    Measure-Command -Expression {
        $FilesNotSigned | ForEach-Object -Process {
            Set-AuthenticodeSignature -TimestampServer 'http://timestamp.digicert.com' -Certificate $myCodeSignCert -FilePath $PSItem
        }
    }
    
    Days              : 0
    Hours             : 0
    Minutes           : 1
    Seconds           : 11
    Milliseconds      : 575
    Ticks             : 715756974
    TotalDays         : 0.000828422423611111
    TotalHours        : 0.0198821381666667
    TotalMinutes      : 1.19292829
    TotalSeconds      : 71.5756974
    TotalMilliseconds : 71575.6974

     

  3. Hi,

    Would it be possible the DLLs to be signed as part of the build process?

    same as "C:\Program Files\paint.net\paintdotnet.exe"

     

    It's more of a thing for environments that have application allow listing. Easier / more secure to use Authenticode than maintaining file hashes / allowing based on path.

     

    Cheers

     

    https://learn.microsoft.com/en-us/windows/security/threat-protection/windows-defender-application-control/windows-defender-application-control

    https://www.cisa.gov/uscert/sites/default/files/cdm_files/FNR_NIS_OTH_AWL_Strategic_Planning_Guide.pdf

     

    Get-ChildItem -LiteralPath 'C:\Program Files\paint.net\' -File | Where-Object -FilterScript {
        $PSItem.Extension -eq '.dll'
    } | Get-AuthenticodeSignature | Where-Object -FilterScript {
        $PSItem.Status -ne 'Valid'
    } | Select-Object -ExpandProperty 'Path'

     

    C:\Program Files\paint.net\Accessibility.dll
    C:\Program Files\paint.net\CommunityToolkit.HighPerformance.dll
    C:\Program Files\paint.net\ComputeSharp.Core.dll
    C:\Program Files\paint.net\ComputeSharp.D2D1.dll
    C:\Program Files\paint.net\Crc32.NET.dll
    C:\Program Files\paint.net\DirectWriteForwarder.dll
    C:\Program Files\paint.net\Interop.WIA.dll
    C:\Program Files\paint.net\K4os.Compression.LZ4.dll
    C:\Program Files\paint.net\Microsoft.CSharp.dll
    C:\Program Files\paint.net\Microsoft.VisualBasic.Core.dll
    C:\Program Files\paint.net\Microsoft.VisualBasic.dll
    C:\Program Files\paint.net\Microsoft.VisualBasic.Forms.dll
    C:\Program Files\paint.net\Microsoft.Win32.Primitives.dll
    C:\Program Files\paint.net\Microsoft.Win32.Registry.AccessControl.dll
    C:\Program Files\paint.net\Microsoft.Win32.Registry.dll
    C:\Program Files\paint.net\Microsoft.Win32.SystemEvents.dll
    C:\Program Files\paint.net\Mono.Cecil.dll
    C:\Program Files\paint.net\Mono.Cecil.Mdb.dll
    C:\Program Files\paint.net\Mono.Cecil.Pdb.dll
    C:\Program Files\paint.net\Mono.Cecil.Rocks.dll
    C:\Program Files\paint.net\mscorlib.dll
    C:\Program Files\paint.net\netstandard.dll
    C:\Program Files\paint.net\Newtonsoft.Json.dll
    C:\Program Files\paint.net\PaintDotNet.Base.dll
    C:\Program Files\paint.net\PaintDotNet.Collections.dll
    C:\Program Files\paint.net\PaintDotNet.ComponentModel.dll
    C:\Program Files\paint.net\PaintDotNet.Core.dll
    C:\Program Files\paint.net\PaintDotNet.Data.dll
    C:\Program Files\paint.net\paintdotnet.dll
    C:\Program Files\paint.net\PaintDotNet.Effects.Core.dll
    C:\Program Files\paint.net\PaintDotNet.Effects.dll
    C:\Program Files\paint.net\PaintDotNet.Effects.Gpu.dll
    C:\Program Files\paint.net\PaintDotNet.Effects.Legacy.dll
    C:\Program Files\paint.net\PaintDotNet.Framework.dll
    C:\Program Files\paint.net\PaintDotNet.Fundamentals.dll
    C:\Program Files\paint.net\PaintDotNet.ObjectModel.dll
    C:\Program Files\paint.net\PaintDotNet.Plugins.Compatibility.dll
    C:\Program Files\paint.net\PaintDotNet.Primitives.dll
    C:\Program Files\paint.net\PaintDotNet.PropertySystem.dll
    C:\Program Files\paint.net\PaintDotNet.Resources.dll
    C:\Program Files\paint.net\PaintDotNet.Runtime.dll
    C:\Program Files\paint.net\PaintDotNet.SystemLayer.dll
    C:\Program Files\paint.net\PaintDotNet.SystemLayer.Native.x64.dll
    C:\Program Files\paint.net\PaintDotNet.Systrace.dll
    C:\Program Files\paint.net\PaintDotNet.UI.dll
    C:\Program Files\paint.net\PaintDotNet.Windows.Core.dll
    C:\Program Files\paint.net\PaintDotNet.Windows.dll
    C:\Program Files\paint.net\PaintDotNet.Windows.Framework.dll
    C:\Program Files\paint.net\PhotoSauce.MagicScaler.dll
    C:\Program Files\paint.net\PointerToolkit.dll
    C:\Program Files\paint.net\PointerToolkit.TerraFX.Interop.Windows.dll
    C:\Program Files\paint.net\PresentationCore.dll
    C:\Program Files\paint.net\PresentationFramework-SystemCore.dll
    C:\Program Files\paint.net\PresentationFramework-SystemData.dll
    C:\Program Files\paint.net\PresentationFramework-SystemDrawing.dll
    C:\Program Files\paint.net\PresentationFramework-SystemXml.dll
    C:\Program Files\paint.net\PresentationFramework-SystemXmlLinq.dll
    C:\Program Files\paint.net\PresentationFramework.Aero.dll
    C:\Program Files\paint.net\PresentationFramework.Aero2.dll
    C:\Program Files\paint.net\PresentationFramework.AeroLite.dll
    C:\Program Files\paint.net\PresentationFramework.Classic.dll
    C:\Program Files\paint.net\PresentationFramework.dll
    C:\Program Files\paint.net\PresentationFramework.Luna.dll
    C:\Program Files\paint.net\PresentationFramework.Royale.dll
    C:\Program Files\paint.net\PresentationUI.dll
    C:\Program Files\paint.net\ReachFramework.dll
    C:\Program Files\paint.net\System.AppContext.dll
    C:\Program Files\paint.net\System.Buffers.dll
    C:\Program Files\paint.net\System.CodeDom.dll
    C:\Program Files\paint.net\System.Collections.Concurrent.dll
    C:\Program Files\paint.net\System.Collections.dll
    C:\Program Files\paint.net\System.Collections.Immutable.dll
    C:\Program Files\paint.net\System.Collections.NonGeneric.dll
    C:\Program Files\paint.net\System.Collections.Specialized.dll
    C:\Program Files\paint.net\System.ComponentModel.Annotations.dll
    C:\Program Files\paint.net\System.ComponentModel.DataAnnotations.dll
    C:\Program Files\paint.net\System.ComponentModel.dll
    C:\Program Files\paint.net\System.ComponentModel.EventBasedAsync.dll
    C:\Program Files\paint.net\System.ComponentModel.Primitives.dll
    C:\Program Files\paint.net\System.ComponentModel.TypeConverter.dll
    C:\Program Files\paint.net\System.Configuration.ConfigurationManager.dll
    C:\Program Files\paint.net\System.Configuration.dll
    C:\Program Files\paint.net\System.Console.dll
    C:\Program Files\paint.net\System.Core.dll
    C:\Program Files\paint.net\System.Data.Common.dll
    C:\Program Files\paint.net\System.Data.DataSetExtensions.dll
    C:\Program Files\paint.net\System.Data.dll
    C:\Program Files\paint.net\System.Design.dll
    C:\Program Files\paint.net\System.Diagnostics.Contracts.dll
    C:\Program Files\paint.net\System.Diagnostics.Debug.dll
    C:\Program Files\paint.net\System.Diagnostics.DiagnosticSource.dll
    C:\Program Files\paint.net\System.Diagnostics.EventLog.dll
    C:\Program Files\paint.net\System.Diagnostics.EventLog.Messages.dll
    C:\Program Files\paint.net\System.Diagnostics.FileVersionInfo.dll
    C:\Program Files\paint.net\System.Diagnostics.PerformanceCounter.dll
    C:\Program Files\paint.net\System.Diagnostics.Process.dll
    C:\Program Files\paint.net\System.Diagnostics.StackTrace.dll
    C:\Program Files\paint.net\System.Diagnostics.TextWriterTraceListener.dll
    C:\Program Files\paint.net\System.Diagnostics.Tools.dll
    C:\Program Files\paint.net\System.Diagnostics.TraceSource.dll
    C:\Program Files\paint.net\System.Diagnostics.Tracing.dll
    C:\Program Files\paint.net\System.DirectoryServices.dll
    C:\Program Files\paint.net\System.dll
    C:\Program Files\paint.net\System.Drawing.Common.dll
    C:\Program Files\paint.net\System.Drawing.Design.dll
    C:\Program Files\paint.net\System.Drawing.dll
    C:\Program Files\paint.net\System.Drawing.Primitives.dll
    C:\Program Files\paint.net\System.Dynamic.Runtime.dll
    C:\Program Files\paint.net\System.Formats.Asn1.dll
    C:\Program Files\paint.net\System.Formats.Tar.dll
    C:\Program Files\paint.net\System.Globalization.Calendars.dll
    C:\Program Files\paint.net\System.Globalization.dll
    C:\Program Files\paint.net\System.Globalization.Extensions.dll
    C:\Program Files\paint.net\System.IO.Compression.Brotli.dll
    C:\Program Files\paint.net\System.IO.Compression.dll
    C:\Program Files\paint.net\System.IO.Compression.FileSystem.dll
    C:\Program Files\paint.net\System.IO.Compression.ZipFile.dll
    C:\Program Files\paint.net\System.IO.dll
    C:\Program Files\paint.net\System.IO.FileSystem.AccessControl.dll
    C:\Program Files\paint.net\System.IO.FileSystem.dll
    C:\Program Files\paint.net\System.IO.FileSystem.DriveInfo.dll
    C:\Program Files\paint.net\System.IO.FileSystem.Primitives.dll
    C:\Program Files\paint.net\System.IO.FileSystem.Watcher.dll
    C:\Program Files\paint.net\System.IO.IsolatedStorage.dll
    C:\Program Files\paint.net\System.IO.MemoryMappedFiles.dll
    C:\Program Files\paint.net\System.IO.Packaging.dll
    C:\Program Files\paint.net\System.IO.Pipes.AccessControl.dll
    C:\Program Files\paint.net\System.IO.Pipes.dll
    C:\Program Files\paint.net\System.IO.UnmanagedMemoryStream.dll
    C:\Program Files\paint.net\System.Linq.dll
    C:\Program Files\paint.net\System.Linq.Expressions.dll
    C:\Program Files\paint.net\System.Linq.Parallel.dll
    C:\Program Files\paint.net\System.Linq.Queryable.dll
    C:\Program Files\paint.net\System.Memory.dll
    C:\Program Files\paint.net\System.Net.dll
    C:\Program Files\paint.net\System.Net.Http.dll
    C:\Program Files\paint.net\System.Net.Http.Json.dll
    C:\Program Files\paint.net\System.Net.HttpListener.dll
    C:\Program Files\paint.net\System.Net.Mail.dll
    C:\Program Files\paint.net\System.Net.NameResolution.dll
    C:\Program Files\paint.net\System.Net.NetworkInformation.dll
    C:\Program Files\paint.net\System.Net.Ping.dll
    C:\Program Files\paint.net\System.Net.Primitives.dll
    C:\Program Files\paint.net\System.Net.Quic.dll
    C:\Program Files\paint.net\System.Net.Requests.dll
    C:\Program Files\paint.net\System.Net.Security.dll
    C:\Program Files\paint.net\System.Net.ServicePoint.dll
    C:\Program Files\paint.net\System.Net.Sockets.dll
    C:\Program Files\paint.net\System.Net.WebClient.dll
    C:\Program Files\paint.net\System.Net.WebHeaderCollection.dll
    C:\Program Files\paint.net\System.Net.WebProxy.dll
    C:\Program Files\paint.net\System.Net.WebSockets.Client.dll
    C:\Program Files\paint.net\System.Net.WebSockets.dll
    C:\Program Files\paint.net\System.Numerics.dll
    C:\Program Files\paint.net\System.Numerics.Vectors.dll
    C:\Program Files\paint.net\System.ObjectModel.dll
    C:\Program Files\paint.net\System.Printing.dll
    C:\Program Files\paint.net\System.Private.CoreLib.dll
    C:\Program Files\paint.net\System.Private.DataContractSerialization.dll
    C:\Program Files\paint.net\System.Private.Uri.dll
    C:\Program Files\paint.net\System.Private.Xml.Linq.dll
    C:\Program Files\paint.net\System.Reflection.DispatchProxy.dll
    C:\Program Files\paint.net\System.Reflection.dll
    C:\Program Files\paint.net\System.Reflection.Emit.dll
    C:\Program Files\paint.net\System.Reflection.Emit.ILGeneration.dll
    C:\Program Files\paint.net\System.Reflection.Emit.Lightweight.dll
    C:\Program Files\paint.net\System.Reflection.Extensions.dll
    C:\Program Files\paint.net\System.Reflection.Metadata.dll
    C:\Program Files\paint.net\System.Reflection.MetadataLoadContext.dll
    C:\Program Files\paint.net\System.Reflection.Primitives.dll
    C:\Program Files\paint.net\System.Reflection.TypeExtensions.dll
    C:\Program Files\paint.net\System.Resources.Extensions.dll
    C:\Program Files\paint.net\System.Resources.Reader.dll
    C:\Program Files\paint.net\System.Resources.ResourceManager.dll
    C:\Program Files\paint.net\System.Resources.Writer.dll
    C:\Program Files\paint.net\System.Runtime.CompilerServices.Unsafe.dll
    C:\Program Files\paint.net\System.Runtime.CompilerServices.VisualC.dll
    C:\Program Files\paint.net\System.Runtime.dll
    C:\Program Files\paint.net\System.Runtime.Extensions.dll
    C:\Program Files\paint.net\System.Runtime.Handles.dll
    C:\Program Files\paint.net\System.Runtime.InteropServices.dll
    C:\Program Files\paint.net\System.Runtime.InteropServices.JavaScript.dll
    C:\Program Files\paint.net\System.Runtime.InteropServices.RuntimeInformation.dll
    C:\Program Files\paint.net\System.Runtime.Intrinsics.dll
    C:\Program Files\paint.net\System.Runtime.Loader.dll
    C:\Program Files\paint.net\System.Runtime.Numerics.dll
    C:\Program Files\paint.net\System.Runtime.Serialization.dll
    C:\Program Files\paint.net\System.Runtime.Serialization.Formatters.dll
    C:\Program Files\paint.net\System.Runtime.Serialization.Json.dll
    C:\Program Files\paint.net\System.Runtime.Serialization.Primitives.dll
    C:\Program Files\paint.net\System.Runtime.Serialization.Xml.dll
    C:\Program Files\paint.net\System.Security.AccessControl.dll
    C:\Program Files\paint.net\System.Security.Claims.dll
    C:\Program Files\paint.net\System.Security.Cryptography.Algorithms.dll
    C:\Program Files\paint.net\System.Security.Cryptography.Cng.dll
    C:\Program Files\paint.net\System.Security.Cryptography.Csp.dll
    C:\Program Files\paint.net\System.Security.Cryptography.dll
    C:\Program Files\paint.net\System.Security.Cryptography.Encoding.dll
    C:\Program Files\paint.net\System.Security.Cryptography.OpenSsl.dll
    C:\Program Files\paint.net\System.Security.Cryptography.Pkcs.dll
    C:\Program Files\paint.net\System.Security.Cryptography.Primitives.dll
    C:\Program Files\paint.net\System.Security.Cryptography.ProtectedData.dll
    C:\Program Files\paint.net\System.Security.Cryptography.X509Certificates.dll
    C:\Program Files\paint.net\System.Security.Cryptography.Xml.dll
    C:\Program Files\paint.net\System.Security.dll
    C:\Program Files\paint.net\System.Security.Permissions.dll
    C:\Program Files\paint.net\System.Security.Principal.dll
    C:\Program Files\paint.net\System.Security.Principal.Windows.dll
    C:\Program Files\paint.net\System.Security.SecureString.dll
    C:\Program Files\paint.net\System.ServiceModel.Web.dll
    C:\Program Files\paint.net\System.ServiceProcess.dll
    C:\Program Files\paint.net\System.Text.Encoding.CodePages.dll
    C:\Program Files\paint.net\System.Text.Encoding.dll
    C:\Program Files\paint.net\System.Text.Encoding.Extensions.dll
    C:\Program Files\paint.net\System.Text.Encodings.Web.dll
    C:\Program Files\paint.net\System.Text.Json.dll
    C:\Program Files\paint.net\System.Text.RegularExpressions.dll
    C:\Program Files\paint.net\System.Threading.AccessControl.dll
    C:\Program Files\paint.net\System.Threading.Channels.dll
    C:\Program Files\paint.net\System.Threading.dll
    C:\Program Files\paint.net\System.Threading.Overlapped.dll
    C:\Program Files\paint.net\System.Threading.Tasks.Dataflow.dll
    C:\Program Files\paint.net\System.Threading.Tasks.dll
    C:\Program Files\paint.net\System.Threading.Tasks.Extensions.dll
    C:\Program Files\paint.net\System.Threading.Tasks.Parallel.dll
    C:\Program Files\paint.net\System.Threading.Thread.dll
    C:\Program Files\paint.net\System.Threading.ThreadPool.dll
    C:\Program Files\paint.net\System.Threading.Timer.dll
    C:\Program Files\paint.net\System.Transactions.dll
    C:\Program Files\paint.net\System.Transactions.Local.dll
    C:\Program Files\paint.net\System.ValueTuple.dll
    C:\Program Files\paint.net\System.Web.dll
    C:\Program Files\paint.net\System.Web.HttpUtility.dll
    C:\Program Files\paint.net\System.Windows.Controls.Ribbon.dll
    C:\Program Files\paint.net\System.Windows.dll
    C:\Program Files\paint.net\System.Windows.Extensions.dll
    C:\Program Files\paint.net\System.Windows.Forms.Design.dll
    C:\Program Files\paint.net\System.Windows.Forms.Design.Editors.dll
    C:\Program Files\paint.net\System.Windows.Forms.dll
    C:\Program Files\paint.net\System.Windows.Forms.Legacy.dll
    C:\Program Files\paint.net\System.Windows.Forms.Primitives.dll
    C:\Program Files\paint.net\System.Windows.Input.Manipulations.dll
    C:\Program Files\paint.net\System.Windows.Presentation.dll
    C:\Program Files\paint.net\System.Xaml.dll
    C:\Program Files\paint.net\System.Xml.dll
    C:\Program Files\paint.net\System.Xml.Linq.dll
    C:\Program Files\paint.net\System.Xml.ReaderWriter.dll
    C:\Program Files\paint.net\System.Xml.Serialization.dll
    C:\Program Files\paint.net\System.Xml.XDocument.dll
    C:\Program Files\paint.net\System.Xml.XmlDocument.dll
    C:\Program Files\paint.net\System.Xml.XmlSerializer.dll
    C:\Program Files\paint.net\System.Xml.XPath.dll
    C:\Program Files\paint.net\System.Xml.XPath.XDocument.dll
    C:\Program Files\paint.net\TerraFX.Interop.Windows.dll
    C:\Program Files\paint.net\UIAutomationClient.dll
    C:\Program Files\paint.net\UIAutomationClientSideProviders.dll
    C:\Program Files\paint.net\UIAutomationProvider.dll
    C:\Program Files\paint.net\UIAutomationTypes.dll
    C:\Program Files\paint.net\WindowsBase.dll
    C:\Program Files\paint.net\WindowsFormsIntegration.dll

     

×
×
  • Create New...