当前位置: 首页 > news >正文

内网渗透学习官方文档

内网渗透

    • 0x00 kerberos协议
    • 0x01 ntlm协议
    • 0x02 管道
    • 0x03 smb协议
    • 0x04 windows访问控制
    • 0x05 令牌窃取
    • 0x06 SPN扫描&kerberoast
    • 0x07 黄金票据
    • 0x08 白银票据
    • 0x09 MS14068
    • 0x10 NTDS.DIT && sam
    • 0x11 NTLM Relay
    • 0x12 MS08-068
    • 0x13 CVE-2019-1384

0x00 kerberos协议

kerberos协议官方文档:https://www.ietf.org/rfc/rfc1510.txt

0x01 ntlm协议

ntlm协议文档:http://davenport.sourceforge.net/ntlm.html

文档翻译项目:https://rootclay.gitbook.io/ntlm/

0x02 管道

管道官方文档:https://learn.microsoft.com/zh-cn/windows/win32/ipc/pipes

0x03 smb协议

smb协议文档1:https://learn.microsoft.com/zh-cn/openspecs/windows_protocols/ms-cifs/d416ff7c-c536-406e-a951-4f04b2fd1d2b

smb协议文档2:https://learn.microsoft.com/zh-cn/openspecs/windows_protocols/ms-smb2/5606ad47-5ee0-437a-817e-70c366052962

smb协议文档3:https://learn.microsoft.com/zh-cn/windows/win32/fileio/microsoft-smb-protocol-and-cifs-protocol-overview

文章:https://xz.aliyun.com/t/11971

0x04 windows访问控制

windows访问控制文档:https://learn.microsoft.com/zh-cn/windows/win32/secauthz/access-control-model

文章:https://hangchuanin.github.io/2022/12/23/%E5%86%85%E7%BD%91%E6%B8%97%E9%80%8F%E4%BB%8E%E9%9B%B6%E5%88%B0%E4%B8%80%E4%B9%8BWindows%E8%AE%BF%E9%97%AE%E6%8E%A7%E5%88%B6/

0x05 令牌窃取

文章:https://xz.aliyun.com/t/11981

思路:获取计算机上的所有访问令牌,根据需要伪造的用户过滤出对应的访问令牌,把访问令牌的TokenSessionId值更改为当前进程令牌的TokenSessionId,调用CreateProcessAsUserA函数来使用特定令牌执行命令。

注意一:由于更改令牌的TokenSessionId值需要SeTcbPrivilege特权,CreateProcessAsUserA函数的调用需要SE_ASSIGNPRIMARYTOKEN_NAME特权。而NT AUTHORITY\SYSTEM账户拥有这两个特权,所以在更改令牌的TokenSessionId值和调用CreateProcessAsUserA函数之前先调用ImpersonateLoggedOnUser函数模拟NT AUTHORITY\SYSTEM账户,模拟NT AUTHORITY\SYSTEM账户需要先获取到所有者是NT AUTHORITY\SYSTEM账户的访问令牌。

注意二:普通用户无法通过令牌窃取执行命令,原因是普通用户无法获取到System、Administrator等账户的令牌,账户能获取到多少令牌,取决于令牌的安全描述符和完整性级别是否允许账户对令牌的请求。

注意三:需要先对windows访问控制有一定了解再看令牌窃取,可阅读令牌窃取的实现来理解其原理:https://github.com/FSecureLABS/incognito

0x06 SPN扫描&kerberoast

SPN官方文档:https://learn.microsoft.com/zh-cn/windows/win32/ad/service-principal-names

文章:https://hangchuanin.github.io/2022/12/25/%E5%86%85%E7%BD%91%E6%B8%97%E9%80%8F%E4%BB%8E%E9%9B%B6%E5%88%B0%E4%B8%80%E4%B9%8BSPN%E6%89%AB%E6%8F%8F&kerberoast/

注意一:SPN扫描是通过LDAP查询活动目录中的域用户对象或计算机对象的servicePrincipalName属性来实现的。

注意二:kerberos协议认证过程中KRB_TGS_REP消息返回的KRB_TGS_REP::Ticket::EncryptedData是使用服务账户(域用户或计算机账户,取决于SPN设置在域用户对象还是计算机对象)哈希加密的,通过爆破该字段获取服务账户哈希。

0x07 黄金票据

原理:KRB_AS_REP::Ticket::EncryptedData是通过域控的krbtgt账户哈希加密的,当我们拥有域控的krbtgt账户哈希时,可以自己制作KRB_AS_REP::Ticket::EncryptedData用于后续的身份认证,黄金票据其实指的就是KRB_AS_REP::Ticket

注意一:KRB_AS_REP::Ticket::EncryptedData::EncryptionKey字段等于KRB_AS_REP::EncryptedData::EncryptionKey字段,KRB_AS_REP::EncryptedData字段是用客户端哈希进行加密的。在正常的身份认证过程当中客户端使用自己的哈希解密KRB_AS_REP::EncryptedData值以获得KRB_AS_REP::Ticket::EncryptedData::EncryptionKey值,用于解密后续身份认证过程中产生的KRB_TGS_REP::EncryptedData字段,在黄金票据制作中自己伪造一个EncryptionKey放进KRB_AS_REP::Ticket::EncryptedData::EncryptionKey即可。

注意二:mimikatz工具制作黄金票据需要域SID,这是因为KRB_AS_REP::Ticket::AuthorizationData字段是微软设计的PAC,PAC结构里面需要域组SID,而域组SID由域SID+组标识组成,比如域SID+500表示域管组。

0x08 白银票据

原理:kerberos协议认证过程中KRB_TGS_REP消息返回的KRB_TGS_REP::Ticket::EncryptedData是使用服务账户(域用户或计算机账户,取决于SPN设置在域用户对象还是计算机对象)哈希加密的,当我们拥有服务账户的哈希之后,可以自己制作KRB_TGS_REP::Ticket::EncryptedData用于后续的身份认证,白银票据其实指的就是KRB_TGS_REP::Ticket

注意一:白银票据能利用成功的前提是服务不验证PAC,当服务验证PAC时白银票据是无法利用成功的。

0x09 MS14068

PAC结构:https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-pac/21181737-74fd-492c-bfbd-0322993a9061

文章:https://daiker.gitbook.io/windows-protocol/kerberos/3#0x00-qian-yan

原理:PAC中的校验和生成如果使用HMAC系列的算法是需要服务账户哈希和krbtgt哈希作为算法的key的,但由于PAC中的服务器校验和与KDC校验和可以使用MD5算法,这就导致没有服务账户哈希和krbtgt账户哈希用户也可以自己制作PAC。

注意一:PAC是放置在KRB_AS_REP::Ticket::AuthorizationData字段中的,而KRB_AS_REP::Ticket字段是经过krbtgt哈希加密的,我们没有krbtgt哈希,构造出的PAC按理说无法填充到被krbtgt加密的Ticket的AuthorizationData字段中,但是很巧妙可以利用KRB_TGS_REP消息的生成的逻辑构造出来。KRB_TGS_REP::Ticket::EncryptedData的生成会把KRB_TGS_REQ::enc-authorization-data填充进去,KRB_TGS_REQ::enc-authorization-data是我们客户端可控的,而KRB_TGS_REP::Ticket是用服务账户的哈希进行加密的,所以我们需要把KRB_TGS_REQ::sname设置为krbtgt账户,这样我们就可以把构造好的PAC填充到被krbtgt加密的Ticket的AuthorizationData字段中了。

0x10 NTDS.DIT && sam

每个域控都存在NTDS.DIT文件,该文件存储着域内所有用户的哈希,而每台计算机又有一个sam文件存储本地计算机所有用户的哈希。
卷影拷贝提取文件:

vssadmin create shadow /for=C: #创建卷影
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\NTDS\NTDS.dit C:\NTDS #提取NTDS.dit文件
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SAM C:\SAM #提取SAM文件
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SYSTEM C:\SYSTEM #提取SYSTEM文件
vssadmin Delete Shadows /For=C: /quiet #删除卷影
python3 secretsdump.py -ntds NTDS -system SYSTEM LOCAL #提取NTDS.DIT中的哈希

0x11 NTLM Relay

NTLM Relay攻击能成功的前提是NTLM镶嵌的协议没有开启签名。

0x12 MS08-068

在工作组环境中,由于没有相互信任关系这时候拿到NTLM请求去Relay到其它机器并没有作用,除非Relay到的机器密码相同,但是密码相同可以直接PTH了。在工作组环境中可以Relay回机器本身,这就是MS08-068。微软通过缓存机制限制SMB Reflect SMB,但是CVE-2019-1384绕过了这个限制,且限制了SMB Reflect SMB还可以SMB Reflect LDAP等。

0x13 CVE-2019-1384

是MS08-068漏洞补丁的一个绕过,补丁是通过缓存进行修补漏洞的,但是缓存在300s之后就会自己清除,利用这个特性可以绕过MS08-068。

相关文章:

内网渗透学习官方文档

内网渗透0x00 kerberos协议0x01 ntlm协议0x02 管道0x03 smb协议0x04 windows访问控制0x05 令牌窃取0x06 SPN扫描&kerberoast0x07 黄金票据0x08 白银票据0x09 MS140680x10 NTDS.DIT && sam0x11 NTLM Relay0x12 MS08-0680x13 CVE-2019-13840x00 kerberos协议 kerber…...

如何编写接口测试用例?

接口测试用例如何编写?下面简单给大家讲解一下。 接口测试用例是目前软件开发中不可或缺的一个重要部分,因此编写接口测试用例同样重要。 接口测试用例的作用非常明显,它能够帮助我们了解产品正在考验、调整它如何表现在特定情境之下、产品是…...

代码随想录算法训练营第44天 || 完全背包 || 518. 零钱兑换 II || 377. 组合总和 Ⅳ

代码随想录算法训练营第44天 || 完全背包 || 518. 零钱兑换 II || 377. 组合总和 Ⅳ 完全背包 完全背包与01背包的区别在于每种物品都有无限件,可以多次放入背包。 我们回顾一下01背包的遍历顺序,其中内层遍历背包的过程要后序遍历,为什么…...

【Bug】SQL无法绑定由多个部分组成的标识符

文章目录问题原因解决拓展问题 执行sql报:无法绑定由多个部分组成的标识符 原因 取了别名却没用别名,如下面这些情况 select * from biz_production_order_work_detail temp where biz_production_order_work_detail.create_time>2023-02-13selec…...

Games102 学习笔记

Games 102 P2 数据拟合 拟合数据的好坏 分段线性插值函数yf1(x)yf_1(x)yf1​(x),数据误差为0,只有C0C_0C0​连续。光滑插值函数yf2(x)yf_2(x)yf2​(x),数据误差为0,可能被Noice带歪,导致函数性质不好,预…...

知识图谱基本知识点以及应用场景

近两年来,随着Linking Open Data等项目的全面展开,语义Web数据源的数量激增,大量RDF数据被发布。互联网正从仅包含网页和网页之间超链接的文档万维网(Document Web)转变成包含大量描述各种实体和实体之间丰富关系的数据万维网(Data Web)。在这…...

IDEA中常用的快捷键

IDEA中常用的快捷键 自动修正:ALT回车键 代码格式化:CTRLALTL 代码提示:CTRLALT空格 导入当前代码所需要的类:alt回车键 导入当前类中所需要的所有类:ctrlshifto 查看子类:ctrlh 查找类:ctrln …...

朗润国际期货招商:桥水基金四季度投资组合

桥水基金四季度投资组合 总持仓市值183.2亿美元;环比减少7.3% ishares标普500指数ETF:7.93亿占持仓4.33%环比1.14%宝洁:7.57亿占持仓4.13%环比-0.1%新兴市场core TEF-ishares:6.80亿占持仓3.71%环比0.47%强生:6.3亿占…...

Linux管道命令(pipe)全

目录 选取命令:cut、grep 传送门 排序命令:sort、wc、uniq 传送门 双向重定向:tee 字符转换命令:tr、col、join、paste、expand 传送门 划分命令:split 传送门 参数代换:xargs 传送门 关于减号…...

mybatis条件构造器(一)

mybatis条件构造器(一) 1 准备工作 1.1 建表sql语句(Emp表) SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0; -- ---------------------------- -- Table structure for emp -- ---------------------------- DROP TABLE IF EXISTS emp; CREATE TABLE emp (EMPNO int NOT N…...

车联网之电子围栏中ConnectStreamed应用【二十】

文章目录 1. 电子围栏中ConnectStreamed应用1.1 ConnectedStreams简介1.1.1 connect流说明1.1.2 connect流使用场景1.2 Broadcast+Connect+CoFlatmap+CoMap整合实战1.3 两点之间球面距离计算1.4 电子围栏中自定义对象实现CoFlatMap函数1. 电子围栏中ConnectStreamed应用 1.1 C…...

临时文件tempfile

临时文件tempfile 1.概述 安全地创建具有唯一名称的临时文件,以至于他们不会被那些想破坏或者窃取数据的人猜出是非常有挑战性的。tempfile 模块提供了几个安全地创建系统临时文件的方法。 TemporaryFile() 打开并返回一个未命名的临时文件, NamedTemp…...

vue3封装数值动态递增组件

vue3封装数值动态递增组件前言源码举个例子:前言 1)使用技术: vue3.2 Ts 2)组件接收参数: 参数类型意义是否可选valuenumber数值大小必填durationnumber递增动画持续时间(单位:s)…...

JavaWeb_RequestResponse

目录 一、概述 二、Request对象 1.Request继承体系 2.Request获取请求数据 ①获取请求行数据 ②获取请求头数据 ③获取请求体数据 ④获取请求参数 3.Request请求转发 三、Response 1.Response设置响应数据功能 ①响应行 ②响应头 ③响应体 2.请求重定向 3.路径问…...

C语言刷题——“C”

各位CSDN的uu们你们好呀,今天,小雅兰要巩固一下之前学过的知识,那么,最好的复习方式就是刷题啦,现在,我们就进入C语言的世界吧 从最简单的开始噢 完完全全零基础都能看懂 题目来源于牛客网 编程语言初学训…...

【刷题】搜索——BFS:城堡问题(The Castle)

目录题目代码(Flood Fill)代码(并查集)题目 题目链接 找出房间个数——>求连通块个数 最大房间——>求最大连通块 直接用flood fill算法 注意题目的输入,例如118211182111821,则代表有西、北、南墙…...

深度学习——torch相关函数用法解析

1. torch.ones() torch.ones(*sizes, outNone) → Tensor函数功能:返回一个全为1 的张量,形状由可变参数sizes定义。 参数: sizes (int…) – 整数序列,定义了输出形状 out (Tensor, optional) – 结果张量 例子: >>> …...

ubuntu 20使用kubeadm安装k8s 1.26

步骤 机器:4核8G,root账号,可访问互联网 1、更新apt apt-get update 2、安装一些基本工具 apt-get install ca-certificates curl gnupg lsb-release net-tools apt-transport-https 3、ifconfig 获取ip,hostname获取主机名&…...

低代码开发平台|制造管理-生产过程管理搭建指南

1、简介1.1、案例简介本文将介绍,如何搭建制造管理-生产过程。1.2、应用场景先填充工序信息,再设置工艺路线对应的工序;工序信息及工艺路线列表报表展示的是所有工序、工艺路线信息,可进行新增对应数据的操作。2、设置方法2.1、表…...

python对多个csv文件进行合并(表头需一致)

之前写过python对【多个Excel文件】中的【单个sheet】进行合并,参考:点我 之前也写过python对【多个Excel文件】中的【多个sheet】进行合并,参考:点我 今天再写一个python对多个csv格式的文件进行合并的小工具 但是大家切记&am…...

Chatbot、Composer与Agent架构深度解析:如何选择最优对话系统方案

Chatbot、Composer与Agent架构深度解析:如何选择最优对话系统方案 想象一下,你正在为一个电商平台设计智能客服。老板要求:既要能秒回“我的订单到哪了”这种简单问题,又要能处理“帮我推荐几款适合周末露营的装备,预…...

3大优势解决UI测试痛点:Maestro跨平台自动化框架实战指南

3大优势解决UI测试痛点:Maestro跨平台自动化框架实战指南 【免费下载链接】maestro Painless Mobile UI Automation 项目地址: https://gitcode.com/GitHub_Trending/ma/maestro UI自动化测试一直是移动应用开发中的关键环节,但传统工具往往面临跨…...

三电平 VSG 构网型变流器仿真分析

三电平 VSG 构网型变流器仿真 仿真使用双闭环控制,svpwm 调制 [1]包含 LC 滤波器 [2]包含中点电位平衡控制 [3]包含负荷投切与离网切换 基本工况:0—3s 功率指令 170kw3-6s 功率指令 140kw电网频率在 1-2s 暂降 0.2hz,vsg 通过 增发有功维持…...

用Pyecharts玩转动态图表:Flask整合3种数据源实战教程(CSV/MySQL/Linux集群)

用Pyecharts玩转动态图表:Flask整合3种数据源实战教程(CSV/MySQL/Linux集群) 数据可视化是现代数据分析不可或缺的一环,而将数据以动态、交互式的方式呈现则能极大提升信息传达的效率。对于Python开发者来说,Pyecharts…...

SEO_2024年最有效的SEO策略与核心技巧分享

2024年最有效的SEO策略与核心技巧分享 在数字营销领域,搜索引擎优化(SEO)始终是网站流量提升的关键。2024年,随着搜索引擎算法的不断更新和用户行为的变化,SEO策略也在不断演变。本文将详细分享2024年最有效的SEO策略与…...

避坑指南:Unity粒子系统做星星特效时最容易忽略的3个细节(附材质包)

Unity粒子系统制作星星特效的三大隐形陷阱与解决方案 在游戏开发中,粒子特效是营造氛围、增强视觉体验的重要手段。星星闪烁特效看似简单,但许多中级开发者在实际制作时常常遇到"塑料感"、"不自然"等问题。本文将深入剖析三个最容易…...

三相PWM储能变流器PCS设计与仿真:双向DCDC与三相PWM变流器的协调控制策略研究

三相PWM储能变流器PCS仿真设计 【双向DCDC三相PWM变流器】 [1]储能Buck-Boost采用电流PID控制实现双向DC/DC功能,对电池进行恒功率充电或恒功率放电;实现能量由电网与直流母线的双向流动。 [2]三相PWM变流器采用电压外环、电流内环双闭环PI控制&#xff…...

你的USB摄像头在Linux下真的‘能用’吗?从V4L2接口到ROS话题发布的完整诊断手册

你的USB摄像头在Linux下真的‘能用’吗?从V4L2接口到ROS话题发布的完整诊断手册 当你在Linux系统下插上USB摄像头,看到/dev/video0设备节点时,是否曾天真地以为一切就绪?直到ROS节点启动后,rqt_image_view里那片漆黑的…...

为什么LLD比GNU ld快?深入对比链接器性能差异与实战优化技巧

为什么LLD比GNU ld快?深入对比链接器性能差异与实战优化技巧 在嵌入式开发和系统级编程中,构建时间往往是影响开发效率的关键瓶颈。当项目规模达到数十万行代码时,链接阶段可能占据整个构建流程50%以上的时间。这时,链接器的选择就…...

从使用到原理,深度解析jsontop.cn—— 开发者必备的一站式在线工具站实现逻辑

前言 在前后端分离的开发体系中,JSON 格式化、加密解密、正则测试等基础操作,是开发者每天都要面对的「高频刚需」,但传统的本地工具安装繁琐、跨设备使用受限,普通在线工具又存在广告泛滥、数据安全隐患等问题。jsontop.cn作为一…...