Created
February 24, 2022 20:17
-
-
Save matterpreter/985f446c1bf645207193ee160d43a1e0 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "markdown", | |
| "id": "aa461eb6", | |
| "metadata": {}, | |
| "source": [ | |
| "The following 100 repositories were chosen at random from public tooling catalogues and untargeted searching of GitHub." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 1, | |
| "id": "a49832ad", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "repos = [\n", | |
| " '0xbadjuju/TellMeYourSecrets',\n", | |
| " '0xbadjuju/Tokenvator',\n", | |
| " '0xthirteen/SharpMove',\n", | |
| " '0xthirteen/SharpRDP',\n", | |
| " '0xthirteen/SharpStay',\n", | |
| " 'airzero24/WMIReg',\n", | |
| " 'anthemtotheego/SharpExec',\n", | |
| " 'b4rtik/SharpKatz',\n", | |
| " 'b4rtik/SharpMiniDump',\n", | |
| " 'bats3c/ADCSPwn',\n", | |
| " 'BeichenDream/BadPotato',\n", | |
| " 'BloodHoundAD/SharpHound3',\n", | |
| " 'bohops/SharpRDPHijack',\n", | |
| " 'carlospolop/PEASS-ng',\n", | |
| " 'CCob/SharpBlock',\n", | |
| " 'CCob/SweetPotato',\n", | |
| " 'checkymander/Sharp-SMBExec',\n", | |
| " 'chrismaddalena/SharpCloud',\n", | |
| " 'cobbr/Covenant',\n", | |
| " 'cobbr/SharpSploit',\n", | |
| " 'cube0x0/SharpMapExec',\n", | |
| " 'dev-2null/ADCollector',\n", | |
| " 'djhohnstein/SharpChromium',\n", | |
| " 'djhohnstein/SharpSearch',\n", | |
| " 'djhohnstein/SharpShares',\n", | |
| " 'djhohnstein/WireTap',\n", | |
| " 'dsnezhkov/TruffleSnout',\n", | |
| " 'eladshamir/Internal-Monologue',\n", | |
| " 'eladshamir/Whisker',\n", | |
| " 'FatRodzianko/SharpBypassUAC',\n", | |
| " 'fireeye/ADFSDump',\n", | |
| " 'fireeye/SharPersist',\n", | |
| " 'Flangvik/BetterSafetyKatz',\n", | |
| " 'Flangvik/DeployPrinterNightmare',\n", | |
| " 'Flangvik/SharpAppLocker',\n", | |
| " 'FortyNorthSecurity/EDD',\n", | |
| " 'FortyNorthSecurity/SqlClient',\n", | |
| " 'FSecureLABS/SharpClipHistory',\n", | |
| " 'FSecureLABS/SharpGPOAbuse',\n", | |
| " 'fullmetalcache/SharpFiles',\n", | |
| " 'FuzzySecurity/Dendrobate',\n", | |
| " 'FuzzySecurity/Sharp-Suite',\n", | |
| " 'FuzzySecurity/StandIn',\n", | |
| " 'G0ldenGunSec/SharpSecDump',\n", | |
| " 'GhostPack/Certify',\n", | |
| " 'GhostPack/ForgeCert',\n", | |
| " 'GhostPack/LockLess',\n", | |
| " 'GhostPack/Rubeus',\n", | |
| " 'GhostPack/SafetyKatz',\n", | |
| " 'GhostPack/Seatbelt',\n", | |
| " 'GhostPack/SharpDPAPI',\n", | |
| " 'GhostPack/SharpDump',\n", | |
| " 'GhostPack/SharpUp',\n", | |
| " 'GhostPack/SharpWMI',\n", | |
| " 'HunnicCyber/SharpSniper',\n", | |
| " 'infosecn1nja/SharpDoor',\n", | |
| " 'JamesCooteUK/SharpSphere',\n", | |
| " 'jfmaes/SharpHandler',\n", | |
| " 'jnqpblc/SharpDir',\n", | |
| " 'jnqpblc/SharpReg',\n", | |
| " 'jnqpblc/SharpSpray',\n", | |
| " 'jnqpblc/SharpSvc',\n", | |
| " 'jnqpblc/SharpTask',\n", | |
| " 'juliourena/SharpNoPSExec',\n", | |
| " 'Kevin-Robertson/InveighZero',\n", | |
| " 'Kudaes/LOLBITS',\n", | |
| " 'l0ss/Grouper2',\n", | |
| " 'leftp/SpoolSamplerNET',\n", | |
| " 'leftp/VmdkReader',\n", | |
| " 'matterpreter/OffensiveCSharp',\n", | |
| " 'matterpreter/SHAPESHIFTER',\n", | |
| " 'matterpreter/Shhmon',\n", | |
| " 'mgeeky/SharpWebServer',\n", | |
| " 'mgeeky/Stracciatella',\n", | |
| " 'mitchmoser/AtYourService',\n", | |
| " 'mvelazc0/PurpleSharp',\n", | |
| " 'MythicAgents/Apollo',\n", | |
| " 'MythicAgents/Athena',\n", | |
| " 'nccgroup/nccfsas',\n", | |
| " 'NetSPI/DAFT',\n", | |
| " 'outflanknl/SharpHide',\n", | |
| " 'pkb1s/SharpAllowedToAct',\n", | |
| " 'PwnDexter/SharpEDRChecker',\n", | |
| " 'r3nhat/SharpWifiGrabber',\n", | |
| " 'rasta-mouse/TikiTorch',\n", | |
| " 'rasta-mouse/Watson',\n", | |
| " 'RedLectroid/SearchOutlook',\n", | |
| " 'rvrsh3ll/SharpCOM',\n", | |
| " 'rvrsh3ll/SharpPrinter',\n", | |
| " 'shantanu561993/SharpChisel',\n", | |
| " 'shantanu561993/SharpLoginPrompt',\n", | |
| " 'slyd0g/SharpCrashEventLog',\n", | |
| " 'SnaffCon/Snaffler',\n", | |
| " 'swisskyrepo/SharpLAPS',\n", | |
| " 'tevora-threat/SharpView',\n", | |
| " 'tomcarver16/ADSearch',\n", | |
| " 'tyranid/ExploitRemotingService',\n", | |
| " 'ustayready/SharpHose',\n", | |
| " 'V1V1/SharpScribbles',\n", | |
| " 'vivami/SauronEye'\n", | |
| "]" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "71da36a0", | |
| "metadata": {}, | |
| "source": [ | |
| "These repositories are cloned so that a local copy can be accessed to work around GitHub's search rate limiting" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 2, | |
| "id": "8030e2bd", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "import git\n", | |
| "\n", | |
| "def clone_git_repos(path):\n", | |
| " for repo in repos:\n", | |
| " try:\n", | |
| " git.Git(path).clone('https://github.com/' + repo)\n", | |
| " #print('Cloned ' + repo)\n", | |
| " except:\n", | |
| " print('Failed to clone ' + repo)\n", | |
| " pass\n", | |
| " \n", | |
| "clone_git_repos('D:\\\\Temp\\\\repos')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "7e51ae1a", | |
| "metadata": {}, | |
| "source": [ | |
| "Next, we enumerate all `.CS` files in the cloned repositories." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 3, | |
| "id": "2c8a850d", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "Enumerated 3457 files\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "import os\n", | |
| "\n", | |
| "def get_cs_files(path):\n", | |
| " target_files = []\n", | |
| " \n", | |
| " for root, dirs, files in os.walk(path, topdown=True):\n", | |
| " for name in files:\n", | |
| " if (name.endswith('.cs')):\n", | |
| " target_files.append(os.path.join(root, name))\n", | |
| " \n", | |
| " return target_files\n", | |
| " \n", | |
| "cs_files = get_cs_files('D:\\\\Temp\\\\repos')\n", | |
| "print('Enumerated ' + str(len(cs_files)) + ' files')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "486992ad", | |
| "metadata": {}, | |
| "source": [ | |
| "The array of file paths is trimmed of all files which don't contain the [`DllImportAttribute`](https://docs.microsoft.com/en-us/dotnet/api/system.runtime.interopservices.dllimportattribute?view=net-6.0) attribute" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 4, | |
| "id": "54024a5b", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "1776 files contain 'DllImport' string\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "for cs_file in cs_files:\n", | |
| " with open(cs_file, encoding='utf8') as current_file:\n", | |
| " if 'DllImport' not in current_file.read():\n", | |
| " cs_files.remove(cs_file)\n", | |
| " current_file.close()\n", | |
| " \n", | |
| "print(str(len(cs_files)) + ' files contain \\'DllImport\\' string')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "0aff73bf", | |
| "metadata": {}, | |
| "source": [ | |
| "Next, we parse out the DLL and function names from the files. EasyHook and SQLite are excluded from this search due to its odd formatting, shown below, and use of `EntryPoint` respectively:\n", | |
| " \n", | |
| "```\n", | |
| "private const String DllName = \"msvcp_win32.dll\";\n", | |
| "\n", | |
| "[DllImport(DllName, CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Unicode)]\n", | |
| "public static extern String RtlGetLastErrorStringCopy();\n", | |
| "```" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 5, | |
| "id": "f9d73ba5", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "Enumerated 1284 imported functions\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "def extract_func_names():\n", | |
| " imports = []\n", | |
| " \n", | |
| " i_cs_files = iter(cs_files)\n", | |
| "\n", | |
| " for cs_file in i_cs_files:\n", | |
| " if 'EasyHook' in cs_file:\n", | |
| " continue\n", | |
| " if 'SQLite' in cs_file:\n", | |
| " continue\n", | |
| "\n", | |
| " with open(cs_file, encoding='utf8') as current_file:\n", | |
| " print_line = False\n", | |
| " extern_func = ''\n", | |
| "\n", | |
| " for line in current_file:\n", | |
| " if print_line:\n", | |
| " if 'extern' not in line:\n", | |
| " # Function declarations contain the extern modifier, so skip until we find it\n", | |
| " continue\n", | |
| "\n", | |
| " function_name = line.split('(')[0]\n", | |
| " extern_func = extern_func + function_name.split(' ')[-1]\n", | |
| " imports.append(extern_func)\n", | |
| " print_line = False\n", | |
| "\n", | |
| " if 'DllImport' in line:\n", | |
| " try:\n", | |
| " module_name = line.split('DllImport(\"')[1]\n", | |
| " if (module_name.startswith('/')):\n", | |
| " # Skip invalid imports\n", | |
| " continue\n", | |
| " # Trim the string to only include the DLL name\n", | |
| " extern_func = module_name.partition('\"')[0].strip('.dll') + '!'\n", | |
| " print_line = True\n", | |
| " except: \n", | |
| " # This may fail due to formatting inside the file\n", | |
| " pass\n", | |
| "\n", | |
| " current_file.close()\n", | |
| " \n", | |
| " return imports\n", | |
| " \n", | |
| "imported_funcs = extract_func_names()\n", | |
| "\n", | |
| "print('Enumerated ' + str(len(imported_funcs)) + ' imported functions')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "ff7e310c", | |
| "metadata": {}, | |
| "source": [ | |
| "Finally, we count the instances of each imported function sorted by most common." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 6, | |
| "id": "e7adfe78", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "Import Count\n", | |
| "------------------------------------------------------------ -------\n", | |
| "kernel32!CloseHandle 29\n", | |
| "Netapi32!NetApiBufferFree 19\n", | |
| "Rpcrt4!NdrClientCall2x64 16\n", | |
| "advapi32!GetTokenInformation 16\n", | |
| "kernel32!GetProcAddress 15\n", | |
| "advapi32!ImpersonateLoggedOnUser 15\n", | |
| "kernel32!OpenProcess 13\n", | |
| "kernel32!LoadLibrary 12\n", | |
| "advapi32!OpenProcessToken 12\n", | |
| "Netapi32!NetShareEnum 11\n", | |
| "advapi32!RevertToSelf 11\n", | |
| "advapi32!OpenSCManager 11\n", | |
| "advapi32!OpenService 11\n", | |
| "advapi32!CloseServiceHandle 11\n", | |
| "kernel32!GetLastError 10\n", | |
| "kernel32!GetCurrentProcess 10\n", | |
| "kernel32!GetModuleHandle 10\n", | |
| "kernel32!WaitForSingleObject 10\n", | |
| "advapi32!ConvertSidToStringSid 10\n", | |
| "secur32!InitializeSecurityContext 10\n", | |
| "nt!NtQueryInformationProcess 9\n", | |
| "advapi32!DuplicateTokenEx 9\n", | |
| "kernel32!ReadProcessMemory 9\n", | |
| "advapi32!RegOpenKeyEx 9\n", | |
| "advapi32!DeleteService 9\n", | |
| "kernel32!LocalFree 8\n", | |
| "kernel32!CreateThread 8\n", | |
| "user32!GetWindowText 8\n", | |
| "advapi32!LogonUser 8\n", | |
| "advapi32!LookupAccountSid 8\n", | |
| "advapi32!CreateProcessWithLogonW 8\n", | |
| "advapi32!LookupPrivilegeValue 8\n", | |
| "netapi32!NetWkstaUserEnum 7\n", | |
| "kernel32!VirtualAlloc 7\n", | |
| "user32!GetForegroundWindow 7\n", | |
| "user32!CallNextHookEx 7\n", | |
| "advapi32!CreateProcessAsUserW 7\n", | |
| "advapi32!CreateProcessWithTokenW 7\n", | |
| "advapi32!AdjustTokenPrivileges 7\n", | |
| "advapi32!LookupPrivilegeName 7\n", | |
| "advapi32!RegQueryValueEx 7\n", | |
| "advapi32!RegQueryInfoKey 7\n", | |
| "Secur32!LsaGetLogonSessionData 7\n", | |
| "advapi32!DuplicateToken 7\n", | |
| "secur32!AcquireCredentialsHandle 7\n", | |
| "advapi32!StartService 7\n", | |
| "netapi32!NetSessionEnum 6\n", | |
| "kernel32!VirtualProtect 6\n", | |
| "user32!GetWindowTextLength 6\n", | |
| "advapi32!LsaNtStatusToWinError 6\n", | |
| "advapi32!LsaFreeMemory 6\n", | |
| "kernel32!GetCurrentThread 6\n", | |
| "kernel32!IsWow64Process 6\n", | |
| "kernel32!OpenThread 6\n", | |
| "advapi32!AllocateAndInitializeSid 6\n", | |
| "bghelp!MiniDumpWriteDump 6\n", | |
| "kernel32!WriteProcessMemory 6\n", | |
| "advapi32!ChangeServiceConfig 6\n", | |
| "kernel32!DuplicateHandle 5\n", | |
| "user32!SetWindowsHookEx 5\n", | |
| "user32!UnhookWindowsHookEx 5\n", | |
| "Netapi32!DsGetDcName 5\n", | |
| "kernel32!OpenProcessToken 5\n", | |
| "netapi32!NetApiBufferFree 5\n", | |
| "advapi32!CreateProcessAsUser 5\n", | |
| "advapi32!LogonUserA 5\n", | |
| "advapi32!CreateService 5\n", | |
| "kernel32!VirtualAllocEx 5\n", | |
| "shell32!CommandLineToArgvW 4\n", | |
| "kernel32!ReadFile 4\n", | |
| "kernel32!CreatePipe 4\n", | |
| "user32!GetKeyState 4\n", | |
| "samlib!SamOpenDomain 4\n", | |
| "advapi32!LsaOpenPolicy 4\n", | |
| "advapi32!LsaClose 4\n", | |
| "advapi32!SetThreadToken 4\n", | |
| "advapi32!OpenThreadToken 4\n", | |
| "nt!NtCreateSection 4\n", | |
| "nt!NtMapViewOfSection 4\n", | |
| "nt!NtUnmapViewOfSection 4\n", | |
| "nt!NtCreateThreadEx 4\n", | |
| "kernel32!GetSystemInfo 4\n", | |
| "kernel32!OpenThreadToken 4\n", | |
| "advapi32!CredFree 4\n", | |
| "advapi32!ImpersonateSelf 4\n", | |
| "secur32!AcceptSecurityContext 4\n", | |
| "nt!NtQuerySystemInformation 4\n", | |
| "kernel32!CreateFile 4\n", | |
| "Netapi32!NetGetJoinInformation 4\n", | |
| "secur32!DeleteSecurityContext 4\n", | |
| "secur32!FreeCredentialsHandle 4\n", | |
| "Secur32!LsaEnumerateLogonSessions 4\n", | |
| "secur32!LsaFreeReturnBuffer 4\n", | |
| "wtsapi32!WTSCloseServer 4\n", | |
| "wtsapi32!WTSFreeMemory 4\n", | |
| "mpr!WNetAddConnection2 4\n", | |
| "mpr!WNetCancelConnection2 4\n", | |
| "advapi32!ControlService 4\n", | |
| "advapi32!QueryServiceConfig 4\n", | |
| "cryptdll.D!CDLocateCSystem 4\n", | |
| "Advapi32!IsTextUnicode 4\n", | |
| "advapi32!RegCloseKey 4\n", | |
| "Advapi32!CreateService 4\n", | |
| "Netapi32!DsEnumerateDomainTrusts 3\n", | |
| "Rpcrt4!RpcBindingFromStringBinding 3\n", | |
| "Rpcrt4!NdrClientCall2x86 3\n", | |
| "Rpcrt4!RpcBindingFree 3\n", | |
| "Rpcrt4!RpcStringBindingCompose 3\n", | |
| "Rpcrt4!RpcBindingSetOption 3\n", | |
| "kernel32!GetStdHandle 3\n", | |
| "kernel32!FreeLibrary 3\n", | |
| "user32!AddClipboardFormatListener 3\n", | |
| "user32!SetParent 3\n", | |
| "Netapi32!NetLocalGroupEnum 3\n", | |
| "samlib!SamConnect 3\n", | |
| "samlib!SamFreeMemory 3\n", | |
| "samlib!SamCloseHandle 3\n", | |
| "kernel32!SetHandleInformation 3\n", | |
| "advapi32!GetSidSubAuthority 3\n", | |
| "advapi32!GetSidSubAuthorityCount 3\n", | |
| "nt!NtFilterToken 3\n", | |
| "nt!NtSetInformationToken 3\n", | |
| "kernel32!GlobalSize 3\n", | |
| "kernel32!ReadProcessMemory64 3\n", | |
| "kernel32!SearchPath 3\n", | |
| "kernel32!VirtualQueryEx32 3\n", | |
| "kernel32!VirtualQueryEx64 3\n", | |
| "kernel32!GetNativeSystemInfo 3\n", | |
| "netapi32!NetLocalGroupEnum 3\n", | |
| "netapi32!NetLocalGroupGetMembers 3\n", | |
| "advapi32!CredEnumerateW 3\n", | |
| "advapi32!CredReadW 3\n", | |
| "advapi32!CredWriteW 3\n", | |
| "advapi32!PrivilegeCheck 3\n", | |
| "activeds!Init 3\n", | |
| "activeds!Set 3\n", | |
| "activeds!Get 3\n", | |
| "activeds!InitEx 3\n", | |
| "activeds!put_ChaseReferral 3\n", | |
| "kernel32!GetPrivateProfileString 3\n", | |
| "secur32!LsaLookupAuthenticationPackage 3\n", | |
| "secur32!LsaCallAuthenticationPackage 3\n", | |
| "secur32!LsaConnectUntrusted 3\n", | |
| "secur32!LsaDeregisterLogonProcess 3\n", | |
| "Wtsapi32!WTSQuerySessionInformation 3\n", | |
| "wtsapi32!WTSOpenServer 3\n", | |
| "wtsapi32!WTSEnumerateSessionsEx 3\n", | |
| "kernel32!CreateProcess 3\n", | |
| "kernel32!WTSGetActiveConsoleSessionId 3\n", | |
| "kernel32!VirtualProtectEx 3\n", | |
| "kernel32!ResumeThread 3\n", | |
| "kernel32!LocalAlloc 3\n", | |
| "kernel32!CopyMemory 3\n", | |
| "Secur32!FreeContextBuffer 3\n", | |
| "advapi32!CryptAcquireContext 3\n", | |
| "user32!GetWindowThreadProcessId 3\n", | |
| "nt!RtlZeroMemory 3\n", | |
| "nt!RtlInitUnicodeString 3\n", | |
| "Netapi32!NetWkstaGetInfo 3\n", | |
| "NetApi32!DsGetSiteName 2\n", | |
| "NetAPI32!NetLocalGroupGetMembers 2\n", | |
| "kernel32!SetStdHandle 2\n", | |
| "kernel32!GetCommandLine 2\n", | |
| "kernel32!VirtualFree 2\n", | |
| "user32!GetAsyncKeyState 2\n", | |
| "advapi32!LookupAccountName 2\n", | |
| "samlib!SamOpenAlias 2\n", | |
| "samlib!SamGetMembersInAlias 2\n", | |
| "winspool.drv!ClosePrinter 2\n", | |
| "userenv!CreateEnvironmentBlock 2\n", | |
| "Rpcrt4!RpcBindingSetAuthInfoEx 2\n", | |
| "Rpcrt4!RpcBindingSetAuthInfo 2\n", | |
| "Netapi32!NetLocalGroupGetMembers 2\n", | |
| "nt!NtQueryObject 2\n", | |
| "kernel32!CreateFileMapping 2\n", | |
| "kernel32!MapViewOfFile 2\n", | |
| "kernel32!WriteFile 2\n", | |
| "kernel32!GetFileSizeEx 2\n", | |
| "psapi!GetModuleInformation 2\n", | |
| "kernel32!CreateRemoteThread 2\n", | |
| "ole32!CoTaskMemFree 2\n", | |
| "credui!CredUnPackAuthenticationBuffer 2\n", | |
| "credui!CredUIPromptForWindowsCredentials 2\n", | |
| "kernel32!RtlZeroMemory 2\n", | |
| "advapi32!QueryServiceObjectSecurity 2\n", | |
| "advapi32!GetNamedSecurityInfo 2\n", | |
| "advapi32!ConvertSecurityDescriptorToStringSecurityDescriptor 2\n", | |
| "iphlpapi!GetExtendedTcpTable 2\n", | |
| "iphlpapi!GetExtendedUdpTable 2\n", | |
| "IpHlpApi!GetIpNetTable 2\n", | |
| "IpHlpApi!FreeMibTable 2\n", | |
| "kernel32!FindFirstFile 2\n", | |
| "kernel32!FindNextFile 2\n", | |
| "kernel32!FindClose 2\n", | |
| "kernel32!GetPrivateProfileSection 2\n", | |
| "Netapi32!NetUserEnum 2\n", | |
| "netapi32!NetFreeAadJoinInformation 2\n", | |
| "netapi32!NetGetAadJoinInformation 2\n", | |
| "psapi!EnumDeviceDrivers 2\n", | |
| "psapi!GetDeviceDriverFileName 2\n", | |
| "psapi!GetDeviceDriverBaseName 2\n", | |
| "samlib!SamLookupDomainInSamServer 2\n", | |
| "samlib!SamEnumerateDomainsInSamServer 2\n", | |
| "User32!GetLastInputInfo 2\n", | |
| "user32!SetProcessDPIAware 2\n", | |
| "vaultcli!VaultOpenVault 2\n", | |
| "vaultcli!VaultEnumerateVaults 2\n", | |
| "vaultcli!VaultEnumerateItems 2\n", | |
| "vaultcli!VaultGetItem_WIN8 2\n", | |
| "vaultcli!VaultGetItem_WIN7 2\n", | |
| "wlanapi!WlanGetProfile 2\n", | |
| "wlanapi!WlanGetProfileList 2\n", | |
| "kernel32!UpdateProcThreadAttribute 2\n", | |
| "kernel32!InitializeProcThreadAttributeList 2\n", | |
| "advapi32!OpenSCManagerW 2\n", | |
| "kernel32!SuspendThread 2\n", | |
| "kernel32!SetThreadContext 2\n", | |
| "kernel32!GetThreadContext 2\n", | |
| "cryptdll.D!CDLocateCheckSum 2\n", | |
| "Netapi32!DsGetDcName 2\n", | |
| "kernel32!GetSystemTime 2\n", | |
| "secur32!LsaRegisterLogonProcess 2\n", | |
| "advapi32!CryptSetProvParam 2\n", | |
| "CRYPT32.DLL!CertSetCertificateContextProperty 2\n", | |
| "nt!RtlNtStatusToDosError 2\n", | |
| "kernel32!VirtualFreeEx 2\n", | |
| "nt!NtLoadDriver 2\n", | |
| "advapi32!LsaRetrievePrivateData 2\n", | |
| "shlwapi!PathIsUNC 2\n", | |
| "netapi32!NetWkstaGetInfo 2\n", | |
| "secur32.D!AcceptSecurityContext 2\n", | |
| "advapi32!GetSecurityInfo 2\n", | |
| "kernel32!GetCurrentThreadId 2\n", | |
| "NETAPI32!NetApiBufferFree 1\n", | |
| "ntdsapi!DsGetDomainControllerInfo 1\n", | |
| "NTDSAPI!DsFreeDomainControllerInfo 1\n", | |
| "ADVAPI32.DLL!LogonUser 1\n", | |
| "userenv!GetAppliedGPOList 1\n", | |
| "kernel32!AllocConsole 1\n", | |
| "kernel32!AttachConsole 1\n", | |
| "kernel32!CreateNamedPipeA 1\n", | |
| "Kernel32!CreateFileA 1\n", | |
| "kernel32!ClosePipe 1\n", | |
| "user32!ShowWindow 1\n", | |
| "kernel32!LoadLibraryA 1\n", | |
| "kernel32!GetModuleHandleA 1\n", | |
| "ibc!geteuid 1\n", | |
| "User32!IsClipboardFormatAvailable 1\n", | |
| "User32!GetClipboardData 1\n", | |
| "kernel32!GlobalLock 1\n", | |
| "kernel32!GlobalUnlock 1\n", | |
| "user32!OpenClipboard 1\n", | |
| "user32!CloseClipboard 1\n", | |
| "Kernel32!GlobalSize 1\n", | |
| "advapi32!LsaEnumerateTrustedDomains 1\n", | |
| "advapi32!LsaQueryForestTrustInformation 1\n", | |
| "advapi32!LsaLookupSids 1\n", | |
| "advapi32!LsaLookupNames 1\n", | |
| "Netapi32!NetStatisticsGet 1\n", | |
| "winspool.drv!OpenPrinter 1\n", | |
| "kernel32!CreateNamedPipeW 1\n", | |
| "kernel32!ConnectNamedPipe 1\n", | |
| "kernel32!GetNamedPipeHandleState 1\n", | |
| "advapi32!ImpersonateNamedPipeClient 1\n", | |
| "KernelBase!CreateFileW 1\n", | |
| "winspool.drv!GetPrinterDriverDirectory 1\n", | |
| "winspool.drv!AddPrinter 1\n", | |
| "winspool.drv!AddPrinterDriverEx 1\n", | |
| "ole32!CreateObjrefMoniker 1\n", | |
| "ole32!CreateBindCtx 1\n", | |
| "kernel32!QueryDosDevice 1\n", | |
| "kernel32!UnmapViewOfFile 1\n", | |
| "kernel32!GetFileType 1\n", | |
| "netapi32!I_NetServerReqChallenge 1\n", | |
| "netapi32!I_NetServerAuthenticate2 1\n", | |
| "netapi32!I_NetServerPasswordSet2 1\n", | |
| "Httpapi!HttpQueryServiceConfiguration 1\n", | |
| "Httpapi!HttpInitialize 1\n", | |
| "kernel32!Wow64DisableWow64FsRedirection 1\n", | |
| "kernel32!Wow64RevertWow64FsRedirection 1\n", | |
| "kernel32!CreateDirectory 1\n", | |
| "kernel32!CopyFile 1\n", | |
| "kernel32!DeleteFileW 1\n", | |
| "kernel32!RemoveDirectory 1\n", | |
| "shell32!ShellExecuteEx 1\n", | |
| "Advapi32!CredRead 1\n", | |
| "Advapi32!CredWrite 1\n", | |
| "Advapi32!CredFree 1\n", | |
| "Advapi32!CredDelete 1\n", | |
| "Advapi32!CredEnumerate 1\n", | |
| "advapi32!bool 1\n", | |
| "Kernel32!CloseHandle 1\n", | |
| "Kernel32!GetCurrentProcess 1\n", | |
| "Kernel32!GetCurrentThread 1\n", | |
| "Kernel32!GlobalLock 1\n", | |
| "Kernel32!GlobalUnlock 1\n", | |
| "Kernel32!FreeLibrary 1\n", | |
| "Netapi32!NetServerGetInfo 1\n", | |
| "Netapi32!NetServerEnum 1\n", | |
| "ntdsapi!DsBind 1\n", | |
| "ntdsapi!DsCrackNames 1\n", | |
| "ntdsapi!DsFreeNameResult 1\n", | |
| "ntdsapi!DsUnBind 1\n", | |
| "samlib!SamQueryInformationDomain 1\n", | |
| "samlib!SamSetInformationDomain 1\n", | |
| "secur32!int 1\n", | |
| "secur32!LsaCallAuthenticationPackage_KERB_RETRIEVE_TKT 1\n", | |
| "wlanapi!WlanOpenHandle 1\n", | |
| "wlanapi!WlanCloseHandle 1\n", | |
| "wlanapi!WlanEnumInterfaces 1\n", | |
| "wlanapi!WlanFreeMemory 1\n", | |
| "wlanapi!WlanConnect 1\n", | |
| "kernel32!CreateProcessA 1\n", | |
| "Dbghelp!MiniDumpWriteDump 1\n", | |
| "netapi32!NetUserAdd 1\n", | |
| "NetApi32!NetLocalGroupAddMembers 1\n", | |
| "NetApi32!NetUserDel 1\n", | |
| "kernel32!QueueUserAPC 1\n", | |
| "advapi32!I_QueryTagInformation 1\n", | |
| "advapi32!LsaEnumerateAccountsWithUserRight 1\n", | |
| "advapi32!CredEnumerate 1\n", | |
| "advapi32!CryptReleaseContext 1\n", | |
| "advapi32!CryptCreateHash 1\n", | |
| "advapi32!CryptDestroyHash 1\n", | |
| "advapi32!CryptHashData 1\n", | |
| "advapi32!CryptDeriveKey 1\n", | |
| "advapi32!CryptDestroyKey 1\n", | |
| "advapi32!CryptDecrypt 1\n", | |
| "mpr!WNetGetConnection 1\n", | |
| "rpcrt4!RpcStringBindingCompose 1\n", | |
| "rpcrt4!RpcBindingFromStringBinding 1\n", | |
| "rpcrt4!RpcBindingToStringBinding 1\n", | |
| "rpcrt4!RpcMgmtEpEltInqBegin 1\n", | |
| "rpcrt4!RpcMgmtEpEltInqNext 1\n", | |
| "rpcrt4!RpcStringFree 1\n", | |
| "rpcrt4!RpcMgmtEpEltInqDone 1\n", | |
| "rpcrt4!RpcBindingFree 1\n", | |
| "Secur32!EnumerateSecurityPackages 1\n", | |
| "shlwapi!IsOS 1\n", | |
| "vaultcli!VaultCloseVault 1\n", | |
| "vaultcli!VaultFree 1\n", | |
| "user32!MessageBoxA 1\n", | |
| "user32!EnumWindows 1\n", | |
| "user32!EnumChildWindows 1\n", | |
| "user32!EnumProps 1\n", | |
| "user32!GetProp 1\n", | |
| "user32!SetProp 1\n", | |
| "user32!PostMessage 1\n", | |
| "user32!GetParent 1\n", | |
| "user32!GetClassName 1\n", | |
| "nt!RtlGetVersion 1\n", | |
| "kernel32!GetFileTime 1\n", | |
| "kernel32!SetFileTime 1\n", | |
| "nt!NtFreeVirtualMemory 1\n", | |
| "crypt32!CryptProtectData 1\n", | |
| "crypt32!CryptUnprotectData 1\n", | |
| "SspiCli!SspiPrepareForCredRead 1\n", | |
| "Credui!CredUnPackAuthenticationBufferW 1\n", | |
| "kernel32! 1\n", | |
| "nt!RtlCreateProcessParametersEx 1\n", | |
| "nt!NtOpenProcess 1\n", | |
| "nt!NtOpenThread 1\n", | |
| "nt!NtQueueApcThread 1\n", | |
| "nt!RtlUnicodeStringToAnsiString 1\n", | |
| "nt!LdrGetDllHandle 1\n", | |
| "nt!LdrGetProcedureAddress 1\n", | |
| "nt!NtAlertResumeThread 1\n", | |
| "nt!NtQueryInformationThread 1\n", | |
| "nt!NtOpenProcessToken 1\n", | |
| "nt!NtAdjustPrivilegesToken 1\n", | |
| "nt!NtClose 1\n", | |
| "nt!NtOpenDirectoryObject 1\n", | |
| "nt!NtQueryDirectoryObject 1\n", | |
| "nt!RtlDosPathNameToRelativeNtPathName_U 1\n", | |
| "nt!NtUnloadDriver 1\n", | |
| "nt!NtCreateFile 1\n", | |
| "nt!NtDeviceIoControlFile 1\n", | |
| "bghelp!SymInitialize 1\n", | |
| "bghelp!SymGetSymFromAddr64 1\n", | |
| "psapi!GetMappedFileNameW 1\n", | |
| "kernel32!VirtualQuery 1\n", | |
| "user32!FindWindow 1\n", | |
| "nt!NtUpdateWnfStateData 1\n", | |
| "kernel32!WaitForDebugEvent 1\n", | |
| "kernel32!ContinueDebugEvent 1\n", | |
| "Kernel32!GetFinalPathNameByHandle 1\n", | |
| "kernel32!GetExitCodeProcess 1\n", | |
| "kernel32!Wow64GetThreadContext 1\n", | |
| "kernel32!Wow64SetThreadContext 1\n", | |
| "nt!NtSetInformationProcess 1\n", | |
| "nt!NtQueryInformationFile 1\n", | |
| "main!mainDelegate 1\n", | |
| "advapi32!OpenEventLog 1\n", | |
| "advapi32!ElfClearEventLogFileW 1\n", | |
| "Ncrypt!NCryptOpenStorageProvider 1\n", | |
| "Ncrypt!NCryptImportKey 1\n", | |
| "Ncrypt!NCryptExportKey 1\n", | |
| "Ncrypt!NCryptSetProperty 1\n", | |
| "Ncrypt!NCryptFinalizeKey 1\n", | |
| "Ncrypt!NCryptFreeObject 1\n", | |
| "kernel32!QueryFullProcessImageName 1\n", | |
| "nt!NtSetValueKey 1\n", | |
| "nt!NtDeleteValueKey 1\n", | |
| "secur32!TranslateName 1\n", | |
| "NetAPI32!NetSessionEnum 1\n", | |
| "user32!SetWindowPos 1\n", | |
| "user32.D!EnumWindows 1\n", | |
| "Advapi32!RevertToSelf 1\n", | |
| "!OpenProcessToken 1\n", | |
| "!DuplicateToken 1\n", | |
| "!ImpersonateLoggedOnUser 1\n", | |
| "!GetLastError 1\n", | |
| "!CloseHandle 1\n", | |
| "!RevertToSelf 1\n", | |
| "!SetThreadToken 1\n", | |
| "bcrypt!BCryptCloseAlgorithmProvider 1\n", | |
| "bcrypt!BCryptDestroyKey 1\n", | |
| "bcrypt!BCryptDecrypt 1\n", | |
| "bcrypt!BCryptOpenAlgorithmProvider 1\n", | |
| "bcrypt!BCryptSetProperty 1\n", | |
| "bcrypt!BCryptGenerateSymmetricKey 1\n", | |
| "bcrypt!BCryptGetProperty 1\n", | |
| "kernel32!PeekNamedPipe 1\n", | |
| "kernel32!GetConsoleOutputCP 1\n", | |
| "iphlpapi!SendARP 1\n", | |
| "wtsapi32!WTSEnumerateSessions 1\n", | |
| "wtsapi32!WTSConnectSession 1\n", | |
| "wtsapi32!WTSDisconnectSession 1\n", | |
| "wtsapi32!WTSQuerySessionInformation 1\n", | |
| "advapi32!RegSaveKey 1\n", | |
| "advapi32!RegConnectRegistry 1\n", | |
| "Advapi32!RegGetValue 1\n", | |
| "advapi32!QueryServiceStatusEx 1\n", | |
| "secur32.D!ImpersonateSecurityContext 1\n", | |
| "secur32.D!QueryContextAttributes 1\n", | |
| "secur32.D!EncryptMessage 1\n", | |
| "secur32.D!DecryptMessage 1\n", | |
| "secur32.D!MakeSignature 1\n", | |
| "secur32.D!VerifySignature 1\n", | |
| "kernel32!TerminateThread 1\n", | |
| "kernel32!PssCaptureSnapshot 1\n", | |
| "kernel32!PssFreeSnapshot 1\n", | |
| "kernel32!PssQuerySnapshot 1\n", | |
| "kernel32!GetProcessId 1\n", | |
| "wtsapi32!WTSOpenServerEx 1\n", | |
| "wtsapi32!WTSFreeMemoryEx 1\n", | |
| "Wlanapi!WlanOpenHandle 1\n", | |
| "Wlanapi!WlanCloseHandle 1\n", | |
| "Wlanapi!WlanEnumInterfaces 1\n", | |
| "fltlib!FilterUnload 1\n", | |
| "fltlib!FilterFindFirst 1\n", | |
| "fltlib!FilterFindNext 1\n", | |
| "fltlib!FilterFindClose 1\n", | |
| "kernel32!ZeroMemory 1\n", | |
| "advapi32!GetInheritanceSource 1\n", | |
| "advapi32!FreeInheritedFromArray 1\n", | |
| "authz!AuthzInitializeRemoteResourceManager 1\n", | |
| "authz!AuthzInitializeResourceManager 1\n", | |
| "authz!AuthzInitializeContextFromSid 1\n", | |
| "authz!AuthzAccessCheck 1\n", | |
| "authz!AuthzFreeContext 1\n", | |
| "advapi32!GetSecurityDescriptorLength 1\n", | |
| "authz!AuthzFreeResourceManager 1\n", | |
| "psapi!EnumProcessModulesEx 1\n", | |
| "psapi!GetModuleFileNameEx 1\n", | |
| "ole32!CreateILockBytesOnHGlobal 1\n", | |
| "ole32!StgCreateDocfileOnILockBytes 1\n", | |
| "ole32!CoGetInstanceFromIStorage 1\n", | |
| "secur32!QuerySecurityContextToken 1\n", | |
| "kernel32!DeviceIoControl 1\n", | |
| "user32!OpenWindowStationW 1\n", | |
| "advapi32!CreateWellKnownSid 1\n", | |
| "advapi32!SetEntriesInAclW 1\n", | |
| "advapi32!SetSecurityInfo 1\n", | |
| "User32!OpenDesktopA 1\n", | |
| "winmm!mciSendString 1\n", | |
| "user32!PeekMessage 1\n", | |
| "core!GetModuleHandle 1\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "from collections import Counter\n", | |
| "from tabulate import tabulate\n", | |
| "\n", | |
| "ctr = Counter(imported_funcs).most_common()\n", | |
| "\n", | |
| "print(tabulate(ctr, headers=[\"Import\", \"Count\"]))" | |
| ] | |
| } | |
| ], | |
| "metadata": { | |
| "kernelspec": { | |
| "display_name": "Python 3 (ipykernel)", | |
| "language": "python", | |
| "name": "python3" | |
| }, | |
| "language_info": { | |
| "codemirror_mode": { | |
| "name": "ipython", | |
| "version": 3 | |
| }, | |
| "file_extension": ".py", | |
| "mimetype": "text/x-python", | |
| "name": "python", | |
| "nbconvert_exporter": "python", | |
| "pygments_lexer": "ipython3", | |
| "version": "3.9.10" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 5 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment