面试题——内网相关(二)

本文详细介绍了Windows系统中NTLMHash的生成过程、NTLMHash的认证类型,以及SAM文件的作用和存储位置。深入探讨了mimikatz工具的lsadump模块如何从注册表中获取用户哈希,并解释了CobaltStrike(CS)中调用mimikatz的原理和hashdump、logonpasswd命令的工作方式。此外,还讨论了XSS攻击如何与其他手段结合以实现getshell。


前言

      自己整理的面试题及答案,本文涉及:NTLM Hash的生成,NTLM Hash认证的种类,SAM文件,mimikatz中的lsadump模块从注册表中获取用户哈希的解析流程,CS中调用mimikatz的原理,CS中hashdump和logonpasswd 分别从哪里读取哈希和密码,XSS如何配合组合拳进行getshell。


一、NTLM Hash的生成

     1)用户注销、登录、重启之后需要输入账号密码,操作系统会让winlogon.exe显示登录页面,用户输入账号密码之后,winlogon.exe将密码交给lsass.exe进程处理,lsass.exe会保存一份明文密码,将明文密码加密成NTLM Hash值,然后与Config文件夹中的SAM文件自动校对。如发现此次密码和用户名全与SAM文件中的加密数据符合时,你就会顺利登录;如果错误则无法登录。
     2)注:winlogon.exe即Windows Logon Process,是Windows NT用户登陆程序,用于管理用户登录和退出。LSASS用于微软Windows系统的安全机制。它用于本地安全和登陆策略。
在这里插入图片描述

二、NTLM Hash认证的种类

     1)Windows中的NTLM Hash认证分为两种,一种是本地认证,一种是网络认证。本地认证的话是通过用户输入的账号密码然后与WIndows中的SAM数据库里的值进行比对。网络认证则是基于挑战/响应的认证方式。

三、SAM文件

     1)SAM(Security Accounts Manager安全帐户管理器)负责SAM数据库的控制和维护,是用来存储本地用户账号密码的数据库文件。SAM数据库位于注册表HKLM\SAM\SAM下,受到ACL保护,可以使用regedt32.exe打开注册表编辑器并设置适当权限查看SAM中的内容。SAM文件存储在计算机本地,但是用户不能直接查看明文密码,里面存储的都是NTLM Hash值。操作系统启动之后,SAM 文件将被锁定。这意味着操作系统运行之时,用户无法打开或复制 SAM 文件。除了锁定,整个 SAM 文件加密且不可见。
     2)SAM数据库文件在磁盘上存储路径为:%SystemRoot%\system32\config\sam(C:\Windows\System32\config\SAM),
     域内用户的密码 Hash 是存在于域控的 NTDS.DIT 文件里。
     3)导出sam,system,security:

reg save hklm\sam sam.hive
reg save hklm\system system.hive
reg save hklm\security security.hive

四、mimikatz中的lsadump模块从注册表中获取用户哈希的解析流程

     1)在提供sam文件和system文件的情况下,解析的大体流程如下:

  • 获取注册表system的“句柄”
  • 读取计算机名和解密密钥
  • 获取注册表sam的“句柄”
  • 读取用户名和用户哈希

     2)未提供sam文件和system文件的情況下,mimikatz会使用官方的api直接读取当前机器中的注册表。

五、CS中调用mimikatz的原理

     1)CS采用的是反射dll模块内存加载,这个主要实现了cs里的一些功能比如mimikatz,screenshot,sshagent,hashdump等等这些功能全部是由反射dll实现的,Cobalt Strike作者将这些功能拆分成一个个的反射dll在使用时才加载执行。
     2)反射dll注入的方式不需要在文件系统存放目标DLL,减少了文件“落地”被删的风险。同时它不需要像常规的DLL注入方式那么套路,因此更容易通过杀软的行为检测。由于反射式注入方式并没有通过LoadLibrary等API来完成DLL的装载,DLL并没有在操作系统中”注册”自己的存在,因此用ProcessExplorer等软件也无法检测出进程加载了该DLL。

六、CS中hashdump和logonpasswd 分别从哪里读取哈希和密码

     1)在CS中要dump 哈希,可以通过 [beacon] → Access → Dump Hashes 。也可以使用在 Beacon 控制台中使用 hashdump 命令。这些方法会派生一个任务注入进 LSASS 进程并 dump 当前系统中本地用户的密码哈希。
     2)lsass.exe是Windows系统的安全机制,主要用于本地安全和登陆策略,通常在我们登陆系统时输入密码后,密码便会存贮在lsass.exe内存中,在lsass.exe进程空间中,还存有着主机的域、本地用户名和密码等重要信息。经过wdigest和tspkg两个模块调用后,对其使用可逆的算法进行加密并存储在内存中。而Mimikatz正是通过对lsass.exe逆算获取到明文密码。
     logonpasswords 命令会使用 mimikatz 来恢复登录过当前系统的用户的明文密码和哈希。
     logonpasswords 命令等同于选项中的 [beacon] → Access → Run Mimikatz 。

七、XSS如何配合组合拳进行getshell

     1)XSS配合CSRF组合拳。
     2)XSS配合钓鱼页面。
     3)利用XSS进行水坑攻击。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值