内网渗透学习官方文档
内网渗透
- 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…...
Salesforce Apex调用邮件模板
正常调用无模板:mail.setToAddresses(new List<String>{user.Email});//mail.setReplyTo(444298824qq.com);//mail.setCcAddresses(null);mail.setSenderDisplayName(EOP系统);mail.setSubject(EOP通知(待审批):您有未处理的…...
windows本地开发Spark[不开虚拟机]
1. windows本地安装hadoop hadoop 官网下载 hadoop2.9.1版本 1.1 解压缩至C:\XX\XX\hadoop-2.9.1 1.2 下载动态链接库和工具库 1.3 将文件winutils.exe放在目录C:\XX\XX\hadoop-2.9.1\bin下 1.4 将文件hadoop.dll放在目录C:\XX\XX\hadoop-2.9.1\bin下 1.5 将文件hadoop.dl…...
一文教你快速估计个股交易成本
交易本身对市场会产生影响,尤其是短时间内大量交易,会影响金融资产的价格。一个订单到来时的市场价格和订单的执行价格通常会有差异,这个差异通常被称为交易成本。在量化交易的策略回测部分,不考虑交易成本或者交易成本估计不合理…...
Leetcode—移除元素、删除有序数组中的重复项、合并两个有序数组
移除元素 此题简单,用双指针方法即可, 如果右指针指向的元素不等于val,它一定是输出数组的一个元素,我们就将右指针指向的元素复制到左指针位置,然后将左右指针同时右移; 如果右指针指向的元素等于 val&…...
面试(十)大疆 安全开发 C++1面
1. 在C++开发中定义一个变量,若不做初始化直接使用会怎样? 如果该变量是一个普通变量,则如果对其进行访问,会返回一个随机值,int类型不一定为0,bool类型也不一定为false 如果该变量为一个静态变量,则初始值都是一个0; 如果该变量是一个指针,那么在后续程序运行中很…...
短信链接跳转微信小程序
短信链接跳转微信小程序1 实现方案1.1 通过URL Scheme实现1.2 通过URL Link实现1.3 通过云开发静态网站实现2 实现方案对比3 实践 URL Schema 方案3.1 获取微信access_token3.2 获取openlink3.3 H5页面(模拟短信跳转,验证ok)4 问题小节4.1 io…...
吉林电视台启用乾元通多卡聚合系统广电视频传输解决方案
随着广播电视数字化、IP化、智能化的逐步深入,吉林电视台对技术改造、数字设备升级提出了更高要求,通过对系统性能、设计理念的综合评估,正式启用乾元通多卡聚合系统广电视频传输解决方案,将用于大型集会、大型演出、基层直播活动…...
Linux常用命令1
目录1、远程登陆服务器2、文件相关(1)文件和目录属性(2)创建目录mkdir(3)删除目录rmdir(4)创建文件touch(5)删除文件或目录rm(6)ls命令…...
【C++进阶】一、继承(总)
目录 一、继承的概念及定义 1.1 继承概念 1.2 继承定义 1.3 继承基类成员访问方式的变化 二、基类和派生类对象赋值转换 三、继承中的作用域 四、派生类的默认成员函数 五、继承与友元 六、继承与静态成员 七、菱形继承及菱形虚拟继承 7.1 继承的分类 7.2 菱形虚拟…...
AttributeError: module ‘lib‘ has no attribute ‘OpenSSL_add_all_algorithms
pip安装crackmapexec后,运行crackmapexec 遇到报错 AttributeError: module lib has no attribute OpenSSL_add_all_algorithms 直接安装 pip3 install crackmapexec 解决 通过 python3 -m pip install --upgrade openssl 或者 python3 -m pip install openssl>22.1.…...
叫人做网站后不提供源码/网站关键词seo费用
Photoshop是当前最风行的图形图像处理软件,现在已广泛利用于广告、平面设计、网页等范畴。在网页设计中,Photoshop可用来设计网页页面。将设计好的页面导进到Dreamweaver 中进行处理,再用Flash 添加动间内容, Photoshop是当前最风…...
win7网站开发教程/网络营销方式都有哪些
RequestMapping注解 1、RequestMapping注解的功能 从注解名称上我们可以看到,RequestMapping注解的作用就是将请求和处理请求的控制器方法关联起来,建立映射关系。 SpringMVC 接收到指定的请求,就会来找到在映射关系中对应的控制器方法来处理…...
先备案还是先做网站/长沙快速排名优化
Java读取properties文件的方法比较多,网上我最多的文章是“Java读取properties文件的六种方法”,但在Java应用中,最常用还是通过java.lang.Class类的getResourceAsStream(String name) 方法来实现,但我见到众多读取properties文件…...
南通网站建设项目/网站模板中心
在不同的操作系统上,crypt函数可能具有不同的行为,某些操作系统支持多种算法类型。在安装PHP时会检查当前系统什么算法可用以及使用什么算法,确切的算法依赖于调用函数时salt参数的格式和长度。安装PHP时可以设置一些相关的常量。 常量说明C…...
做汽配批发做那个网站比较好/合肥瑶海区房价
C中,通过类实现面向对象的编程,而在基类中只给出纯虚函数的声明,然后在派生类中实现纯虚函数的具体定义的方式实现接口,不同派生类实现接口的方式也不尽相同,从而实现多态。 我们需要遵循一些规则: 声明一个…...
网站是做百度快照推广好/关键词排名 收录 查询
Struts 是一个开源的 Java Web MVC 框架,也是 Apache 软件基金会的一个开源项目,包括 Struts 1 和 Struts 2,Struts 1 早已被淘汰,现在市面上说的 Struts 主要是指 Struts 2。 很不幸,现在 Struts 2 也是被淘汰的框架…...