内网渗透面试问题
文章目录
- 1、熟悉哪些域渗透的手段
- 2、详细说明哈希传递的攻击原理
- NTLM认证流程
- 哈希传递
- 3、聊一下黄金票据和白银票据
- 4、shiro反序列化漏洞的形成原因,尝试使用burp抓包查看返回包内容
- 安装环境
- 漏洞验证
- 5、log4j组件的命令执行漏洞是如何造成的
- 6、画图描述Kerberos协议的通信流程并解释如何实现安全的传输
1、熟悉哪些域渗透的手段
黄金票据、白银票据、哈希传递
2、详细说明哈希传递的攻击原理
哈希传递只针对相同密码进行攻击。
NTLM认证流程
NTLM加密:
- admin -> hex(16进制编码)= 61646d696e
- 61646d696e-> Unicode =610064006d0069006e00
- 610064006d0069006e00–>MD4=209c6174da490caeb422f3fa5a7ae634
认证过程:

注意:challenge每次认证都不一样,是一个随机生成的16字节随机数,response的形势与server生成的net-ntlm
hash一个格式
如上图,客户端client发送一个user用户名给服务器server,服务器从内存中检查它的用户名user是否存在,不存在,登录失败;存在,就生成一个challenge,然后服务器会查找内存中user对应的已经NTLM加密后的哈希密文(加密的是user的密码,假设是admin),并使用该哈希加密challenge(与challenge做逻辑运算),这个加密后的challenge就叫做net-ntlm hash,作为密码已经加密的标志保存到服务器内存中
然后服务器会将challenge发送给客户端,客户端将自己的密码转换成NTLM哈希,用生成的哈希加密challenge,这个加密后的challenge叫做response,然后客户端将response发送给服务器。
最后服务器对比自己内存中的net-ntlm hash与客户端发来的response是否一致,如果一致,就登录成功。
在这个过程中,即使response被攻击者捕获,也不能被伪造,保证了通信的安全。
哈希传递
当攻击者知道一台计算机的本地管理员的NTLM哈希,那么他可以使用这个哈希轻松地对该计算机进行身份验证。类似地,如果他拥有主机上本地管理组成员的域用户的NT哈希,他也可以作为本地管理员向该主机进行身份验证。
如下图,域中一台计算机沦陷,因为其他工作站都具有相同的管理员帐户和相同的密码,那么它们也将具有相同的NT哈希,攻击者就能用它的NTML哈希验证其他的服务器:

3、聊一下黄金票据和白银票据
黄金票据是伪造的TGT,白银票据就是伪造的ST。黄金票据是伪造了域管理员身份票据的TGT,白银票据伪造的是服务的票据ST,黄金票据可以访问它身份下的所有服务,白银票据只能访问被伪造服务票据ST的服务。
4、shiro反序列化漏洞的形成原因,尝试使用burp抓包查看返回包内容
形成原因:
Apache Shiro框架提供了记住我的功能(RememberMe),用户登陆成功后会生成经过加密并编码的cookie,在服务端接收cookie值后,Base64解码–>AES解密–>反序列化。攻击者只要找到AES加密的密钥,就可以构造一个恶意对象,对其进行序列化–>AES加密–>Base64编码,然后将其作为cookie的rememberMe字段发送,Shiro将rememberMe进行解密并且反序列化,最终造成反序列化漏洞。
安装环境
进入vulhb目录下的weblogic,复现CVE-2018-2894漏洞:
cd /vulhub/shiro/CVE-2010-3863
查看docker-compose的配置文件:
cat docker-compose.yml
如图,里面有一个镜像文件的信息和服务名,以及它的端口号(后面要用):

然后使用下面命令,搭建docker-compose并启动:
sudo docker-compose up -d && sudo docker-compose up -d
如图,安装成功:

漏洞验证
原理如下:
Apache Shiro框架提供了记住我的功能(RememberMe),用户登陆成功后会生成经过加密并编码的cookie,在服务端接收cookie值后,Base64解码–>AES解密–>反序列化。攻击者只要找到AES加密的密钥,就可以构造一个恶意对象,对其进行序列化–>AES加密–>Base64编码,然后将其作为cookie的rememberMe字段发送,Shiro将rememberMe进行解密并且反序列化,最终造成反序列化漏洞。
用bp自带的浏览器打开http://10.9.75.45:8080/,随意输入用户名密码并勾选记住我

点击登录后抓包,发送到repeat模块,发现请求包中有rememberme字段:

点击send发送,响应包中有set-cookie字段,并有rememberMe=deleteMe内容,这是一个shiro反序列化漏洞的强特征,说明有极大的可能存在shiro反序列化:

5、log4j组件的命令执行漏洞是如何造成的
log4j(log for Java)是Apache的一个开源项目,是一个基于Java的日志记录框架。该漏洞的主要原因是log4j在日志输出中,未对字符合法性进行严格的限制,执行了JNDI协议加载的远程恶意脚本,从而造成RCE。
它是一个RCE命令执行的漏洞,它的日志的输出如下:print函数双引号中的内容会被当做字符处理
$user=$_GET("user");
log.print(“用户$user登录失败”);
如果print函数中出现如${jndi:ldap://lof4ot.dnslog.cn/exp}的内容,就会将大括号中的内容当做命令执行
如果流量中遇到下面三个关键字,极大可能是Java的漏洞攻击:
rmi、jndi、ldap
6、画图描述Kerberos协议的通信流程并解释如何实现安全的传输
DC(Domain Controller):域控制器,是域中一台拥有最高管理权限的计算机
AD(Active Directory):活动目录数据库
KDC(Key Distributed Centre):包含了AS和TGS。
AS(Authentication Server):身份验证服务,为客户生成TGT的服务
TGS(Ticket GrantingServer):票证发放服务器,通过你的TGT来发放ST
TGT(Ticket Granting Ticket):票据授权票据,通过票据授权票据可以获得一个票据,类似临时凭证
ST(Service Ticket):服务票据
如下图,客户端首先向AS发送请求,AS提供TGT身份票据给客户端,客户端得到TGT后去访问TGS,由TGS发放服务票据ST,最后客户端用ST去访问服务端,服务端给客户端回应:

详解:
1、客户端发送自己的用户名给AS
2、AS验证用户名是否在白名单列表,如果在的话随机生成session key(as)返回如下信息
TGT1(session key(as),TGS服务器信息等)–客户端NTLM哈希加密
TGT2(session key(as),客户端信息等)–KRBTGT NTLM哈希加密(KRBTGT可以理解为DC中最高权限的用户)
3、用自己的NTLM哈希解密TGT1, 获得TGS服务器信息以及session key(as),TGT2由于是别人的哈希,所以解不开。
生成认证因子(客户端信息,当前时间)–session key(as)加密(认证因子用来验证TGT是否正确)
发送认证因子以及TGT2给TGS服务
4、TGS服务先解密TGT2获得session key(as),紧接着利用session key(as)解密认证因子,对比认证因子与TGT2的客户端信息是否一致,如果一致生成session key(TGS),返回如下信息给客户端
TGT3(session key(TGS),服务器信息,票据到期时间)–session key(as)加密
TGT4(session key(TGS),客户端信息,票据到期时间)–客户端想要访问的服务器的哈希加密
5、客户端解密TGT3,得到session key(TGS),服务器信息
生成认证因子2(服务器信息,票据到期时间)–session key(TGS)加密
发送认证因子2以及TGT4给服务器
6、服务器先用自己的哈希解密TGT4得到session key(TGS),客户端信息,票据有效期
利用session key(TGS)解密认证因子对比客户端信息(验证ST是否正确)决定是否提供服务
以下图的邮件服务为例:
客户端向域控DC中的AS发送请求,AS生成一个session key(身份令牌),session key(as)分别保存在TGT1和TGT2两个身份票据做临时凭证中(其中TGT1用客户端的哈希加密,TGT2用最高管理用户的哈希加密),AS将session key(as)发给客户端,客户端用自己的NTLM哈希解密TGT1得到TGS服务器信息(TGT2无法被客户端解密),然后用session key(as)加密生成一个认证因子作为TGT2的证明。
然后客户端将认证因子以及TGT2发给TGS服务,TGS解密TGT2得到session key(as),解密认证因子并与认证因子做对比,如果一致则生成session key(TGS),返回TGT3和TGT4给客户端,TG3被session key(as)加密,由于之前客户端接收到了session key(as),所以可以解密TGT3得到服务器信息,解密后客户端再次生成一个认证因子作为TGT4的证明。
最后客户端将认证因子及TGT4发送给邮件服务,邮件服务用哈希解密TGT4得到session key(TGS),用它解密认证因子对比客户端信息,正确则提供服务。

相关文章:
内网渗透面试问题
文章目录 1、熟悉哪些域渗透的手段2、详细说明哈希传递的攻击原理NTLM认证流程哈希传递 3、聊一下黄金票据和白银票据4、shiro反序列化漏洞的形成原因,尝试使用burp抓包查看返回包内容安装环境漏洞验证 5、log4j组件的命令执行漏洞是如何造成的6、画图描述Kerberos协…...
Go语言函数进阶:值传递、引用传递、函数式编程
文章目录 值传递和引用传递闭包柯里化defer go语言教程: 安装入门➡️ for循环➡️ 数组、切片和指针➡️ switch和map 值传递和引用传递 go语言中,函数通过关键字func定义,对于传入和返回的参数需要做类型的定义,其返回值可…...
数据结构 堆——详细动画图解,形象理解
作者主页 📚lovewold少个r博客主页 ➡️栈和队列博客传送门 🌳参天大树充满生命力,其根深叶茂,分枝扶疏,为我们展示了数据分治的生动形态 目录 🌳 树 树的常见概念 📒树的表示 二叉树 一…...
使用pymodbus进行modbus-TCP通信
模拟modbus-slave 创建slave 设置 完成 安装pymodbus pip3 install pymodbus2.5.3代码 from pymodbus.client.sync import ModbusTcpClient from pymodbus.bit_read_message import ReadCoilsResponse from pymodbus.register_read_message import ReadInputRegistersRe…...
2. redis常见数据类型
一、Redis 数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合…...
多测师肖sir_高级金牌讲师_python之结构语句005
python中常见语句: 一、目录: 1、if语句 2、while 循环语句 3、for循环语句 4、continue 语句 5、break 语句 二、语句详解 1、if判断语句 (1)if单分支 格式:if 判断条件: 语句块1…… else: 语…...
用3-8译码器实现全减器
描述 请使用3-8译码器和必要的逻辑门实现全减器,全减器接口图如下,A是被减数,B是减数,Ci是来自低位的借位,D是差,Co是向高位的借位。 3-8译码器代码如下,可将参考代码添加并例化到本题答案中。 …...
招投标系统简介 企业电子招投标采购系统源码之电子招投标系统 —降低企业采购成本
功能描述 1、门户管理:所有用户可在门户页面查看所有的公告信息及相关的通知信息。主要板块包含:招标公告、非招标公告、系统通知、政策法规。 2、立项管理:企业用户可对需要采购的项目进行立项申请,并提交审批,查看所…...
Linux Centos7 下使用yum安装的nginx平滑升级
1. 查看当前nginx版本 1nginx -v2. 查看centos版本 1cat /etc/redhat-release3. 创建一个新的文件nginx.repo,其中第三行的7是因为我的centos版本是7点多的,你看自己是多少就改多少 1vim /etc/yum.repos.d/nginx.repo23[nginx]4namenginx repo 5baseu…...
C/S架构学习之多线程实现TCP并发服务器
并发概念:并发是指两个或多个事件在同一时间间隔发生;多线程实现TCP并发服务器的实现流程:一、创建套接字(socket函数):通信域选择IPV4网络协议、套接字类型选择流式; int sockfd socket(AF_IN…...
iPhone手机记笔记工具选择用哪个
iPhone手机大家应该都比较熟悉,其使用性能是比较流畅的,在iPhone手机上记录笔记可以帮助大家快速地进行总结工作、记录工作内容等,在iPhone手机上记笔记工具选择用哪个呢? 可以在iPhone手机上使用的笔记工具是比较多的࿰…...
MyBatis动态SQL(if、choose、when和otherwise)标签
动态 SQL 是 MyBatis 的强大特性之一。在 JDBC 或其它类似的框架中,开发人员通常需要手动拼接 SQL 语句。根据不同的条件拼接 SQL 语句是一件极其痛苦的工作。例如,拼接时要确保添加了必要的空格,还要注意去掉列表最后一个列名的逗号。而动态…...
idea将jar包deploy到本地仓库
1、pom.xml文件引入配置,如下参考: <distributionManagement><snapshotRepository><id>maven-snapshots</id><url>http://nexus1.coralglobal.cn/repository/maven-snapshots/</url></snapshotRepository><…...
麻省理工学院与Meta AI共同开发StreamingLLM框架,实现语言模型无限处理长度
🦉 AI新闻 🚀 麻省理工学院与Meta AI共同开发StreamingLLM框架,实现语言模型无限处理长度 摘要:麻省理工学院与Meta AI的研究人员联合研发了一款名为StreamingLLM的框架,解决了大语言模型在RAM与泛化问题上的挑战&am…...
记录 K8S 挂了的解决经过
背景:早上到公司,有同事反馈部署K8S在集群上的 Redis 和 禅道 都不可用 排查循序: 登录 kubesphere 的 web 界面 (界面打开失败)ssh 登录主服务器 (正常)在主服务器上运行 kubectl get node 命…...
Flink---11、状态管理(按键分区状态(值状态、列表状态、Map状态、归约状态、聚合状态)算子状态(列表状态、广播状态))
星光下的赶路人star的个人主页 这世上唯一扛得住岁月摧残的就是才华 文章目录 1、状态管理1.1 Flink中的状态1.1.1 概述1.1.2 状态的分类 1.2 按键分区状态(Keyed State)1.2.1 值状态(ValueState)1.2.2 列表状态(ListS…...
Vue3中使用tinymce全功能演示,包括开源功能
效果图: 1、下载插件: npm i tinymce npm i tinymce/tinymce-vue 2、在node_modules文件夹中找到tinymce下的skins复制到项目public文件夹中 (可以先创建一个tinymce文件夹): 3、在tinymce官网中下载中文包,并放在刚…...
There was an error committing your changes: File could not be edited
使用github完成commit changes时报的一个错误,最终原因是没有填写Extended description...
10月9日,每日信息差
今天是2023年10月9日,以下是为您准备的14条信息差 第一、首只与规模挂钩型浮动费率基金即将面市。作为公募基金费率改革大背景下的首批浮动费率产品,华夏信兴回报混合是市场上首只管理费与管理规模挂钩的基金 第二、江北新区成立百亿产业发展母基金&am…...
【软考设计师】S01 数据结构 E01 线性结构 P01 线性表
线性表 前言——线性结构线性表线性表的定义线性表的特点线性表的存储结构顺序存储链式存储单链表双向链表循环链表静态链表 前言——线性结构 线性结构是一种基本的数据结构,主要用于对客观世界中具有单一前驱和后继的数据关系进行描述。线性结构的特点是数据元素…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...
AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...
uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...
STM32---外部32.768K晶振(LSE)无法起振问题
晶振是否起振主要就检查两个1、晶振与MCU是否兼容;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容(CL)与匹配电容(CL1、CL2)的关系 2. 如何选择 CL1 和 CL…...
【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制
目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...
