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

内网渗透测试理论学习之第四篇内网渗透域的横向移动

文章目录

在内网中,从一台主机移动到另外一台主机,可以采取的方式通常有文件共享计划任务远程连接工具客户端等。

一、IPC

IPC(Internet Process Connection)是为了实现进程间通信而开放的命名管道。
IPC可以通过验证用户名和密码获得相应的权限,
通过ipc$可以与目标机器建立连接,利用这个连接可以在目标机器上运行命令。

net use \\192.168.1.1\ipc$ "pass" /user:adstudy\administrator

利用条件:开启139、445端口;管理员开启了默认共享

二、HashDump

LM Hash“LAN Manager Hash”,本质是DES加密,还是硬编码密钥,从Windows Vista和Windows Server 2008开始默认禁用,
dump出的LM Hash为“**aad**3b435b51404eeaad3b435b51404ee”表示为空或被禁用

NTLM Hash,“New Technology LM Hash”,MD4加密。

Hash散列可以通过在线数据库、彩虹表等来破解,也可以使用PTH(Pass the Hash 哈希传递)来进行横向渗透。

要想在Windows操作系统中抓取散列值或明文密码,必须将权限提升至System
本地用户名、散列值和其他安全验证信息都保存在SAM文件中。
lsass.exe进程用于实现Windows的本地安全策略和登陆策略。
可以使用工具将散列值和明文密码从内存中的lsass.exe进程或SAM文件中导出。

e.g. GetPassword、PwDump7、QuarksPwDump、mimikatz、PowerShell

SAM文件保存位置C:\Windows\System32\config,该文件不允许复制,但可以使用U盘进入PE系统进行复制。

利用reg导出SAM和System文件,通过mimikatz或者Cain来从文件读取hash

利用任务管理器或者微软出品的Procdump导出lsass.dmp文件,通过mimikatz来从内存文件中获取hash

Windows Server 2012开始默认关闭WDigest,使攻击者无法从内存中获取明文密码;2012以下版本,如果安装KB2871997补丁,同样效果。WDigest功能状态可以在注册表中查看修改。

Hashcat只支持CPU破解;oclHashcat支持GPU破解(AMD、NIVDA),支持破解Windows密码、Linux密码、Office密码、Wi-Fi密码、MySQL密码、SQL Server密码,以及由MD5、SHA1、SHA256等国际主流加密算法加密的密码。

如何防范hashdump?

1、Windows Server 2012 R2新增了一个名为受保护的用户组(Protected Users),只要将需要保护的用户放入该组,攻击者就无法使用mimikatz等工具抓取明文密码和散列值了。2、安装KB2871997,是微软用来解决PsExec或IPC远程查看(c$)问题的补丁,能是本地账号不再被允许远程接入计算机系统,**但是SID=500的本地管理员账号(默认Administrator)除外**。3、微软在Windows XP中添加了一个名为WDigest的协议,该协议能够使Windows将明文密码存储在内存中,以方便用户登录本地计算机。4、根据Debug权限确定哪些用户可以将调试器附加到任何进程或内核中,默认情况下只有Administrator。mimikatz在抓取散列值或明文密码时需要使用Debug权限(因为mimikatz需要和lsass进程进行交互)。将Administrator从Debug组中移除。

三、PTH

PTH(Pass the Hash 哈希传递)。在域环境中,用户登录计算机时使用的大都是域账号,大量计算机在安装时会使用相同的本地管理员账号和密码,因此,攻击者就能使用哈希传递攻击的方法登录内网中的其他计算机。

在Windows网络中,散列值就是用来证明身份的(有正确的用户名和密码散列值,就能通过验证)。从Windows Server 2012 R2开始,默认在内存中不会记录明文密码,因此,攻击者往往会使用工具将散列值传递到其他计算机中,进行权限验证,实现对远程计算机的控制。

进行身份验证时,不会使用明文口令,而是将明文口令通过系统API转换成散列值,再与数据库中存储的散列值进行对比,如果完全相同则表示验证成功。不过,攻击者在获得密码散列值之后,依旧可以使用pth攻击来模拟用户进行验证。

使用NTLM Hash进行哈希传递;使用AES-256秘钥进行哈希传递(Pass the Key)。

e.g. mimikatz

四、PTT

要想使用mimikatz的哈希传递功能,必须具有本地管理员权限。mimikatz同样提供了不需要本地管理员权限进行横向渗透测试的方法,例如票据传递(Pass the Ticket,PTT)。

五、PsExec

PsExec是微软官方PsTools工具包中的软件,期初主要是用于大批量Windows主机的运维,在域环境下效果甚好。

通过PsExec,可以在远程计算机上执行命令,也可以将管理员权限提升到System权限以运行指定的程序。

PsExec的基本原理是:通过管道在远程目标计算机上创建一个psexec服务,并在本地磁盘中生成一个名为“PSEXECSVC”的二进制文件,然后通过psexec服务运行命令,运行结束后删除任务。

需要远程系统开启admin$共享(默认是开启的),会产生大量日志。

e.g. Metasploit

六、WMI

WMI,Windows Management Instrumentation,从Windows 98开始支持,可以在本地或者远程管理计算机系统。

自从PsExec在内网中被严格监控后,越来越多的反病毒厂商将PsExec加入了黑名单,于是攻击者逐渐开始使用WMI进行横向移动。通过渗透测试发现,在使用wmiexec进行横向移动时,Windows默认不会记录WMI的操作日志。

使用wmic远程执行命令,在远程系统中启动Windows Management Instrumentation服务(目标服务器需要开放135端口,wmic会以管理员权限在远程系统中执行命令)。如果服务器开启了防火墙,wmic将无法进行连接。此外,wmic命令如果没有回显,可以将命令结果输出到某文件,并使用ipc$和type来读取信息。如果wmic执行的是恶意程序,将不会留下日志。

e.g. wmic、wmiexec.py、wmiexec.vbs、Invoke-WmiCommand.ps1、Invoke-WMIMethod

七、DCOM

DCOMDistributed Component Object Model,分布式组件对象模型)是微软的一系列概念和程序接口。
通过DCOM,客户端程序对象能够对网络中的另一台计算机上的服务器程序对象发送请求。

DCOM是基于组件对象模型(COM)的。
COM提供了一套允许在同一台计算机上的客户端和服务端之间进行通信的接口。

执行流程同样:通过ipc$连接远程计算机;执行命令。

八、SPN

微软给与内的每种资源分配了不同的服务主体名称(Service Principal Name,SPN)。

因为域环境中的每台服务器都需要在Kerberos身份验证服务中注册SPN,所以攻击者会直接向域控制器发送查询请求,获取其需要的服务的SPN,从而知晓其需要使用的服务资源在哪台机器上

SPN扫描也称作“扫描Kerberos服务实例名称”,在活动目录中发现服务的最佳方法就是SPN扫描。与网络端口扫描相比,SPN扫描的主要特点是不需要通过连接网络中的每个IP地址来检查服务端口(不会因触发内网中的IPS、IDS等设备的规则而产生大量的警告日志)。因为SPN查询是Kerberos票据行为的一部分,所以检测难度较大。

SPN是通过LDAP协议向域控制器进行查询的,所以,攻击者只要获得一个普通的域用户权限就可以进行SPN扫描。

Kerberoast攻击。导出票据,破解票据。

防御:确保服务账号密码的长度超过25位;确保密码的随机性(避免相同);定期修改密码。

九、Exchange

电子邮件中可能包含大量的源码、企业内部通讯录、明文密码、敏感业务登陆地址及可以从外网访问内网的VPN账号密码等信息。

Exchange支持PowerShell对其进行本地或远程操作。

邮箱服务器、客户端访问服务器、集线传输服务器是核心角色,只要部署这三个角色就能提供基本的电子邮件处理功能,且这仨可以部署在同一台主机上。

邮件发送使用统一的通信协议,即SMTP(简单邮件传输协议);邮件接收则会使用多种协议标准,如从POP(邮局协议)发展而来的POP3,以及使用较为广泛的IMAPInternet邮件访问协议)。Exchange开发了私有的MAPI协议用于收取邮件。

Exchange支持的访问接口和协议:

  • OWA(Outlook Web App):Exchange提供的Web邮箱。
  • EAC(Exchange Administrative Center):Exchange管理中心,后台。
  • Outlook Anywhere(RPC-over-HTTP,RPC/HTTP)
  • MAPI(MAPI-over-HTTP,MAPI/HTTP)
  • Exchange ActiveSync(EAS,XML/HTTP)
  • Exchange Web Service(EWS,SOAP-over-HTTP)

Exchange服务发现:基于端口扫描发现(nmap)、SPN查询(在安装Exchange时,SPN就被注册在AD中了)

Exchange数据库的后缀为“.edb”,存储在Exchange服务器上,使用PowerShell可以查看相应信息。

Exchange邮件的文件后缀为“.pst”

UNCUniversal Naming Convention,通用命名规则,也称通用命名规范、通用命名约定)。类似于\\hostname\sharename\\ip\address\sharename的网络路径就是UNC路径,sharename为网络共享名称。

相关文章:

内网渗透测试理论学习之第四篇内网渗透域的横向移动

文章目录一、IPC二、HashDump三、PTH四、PTT五、PsExec六、WMI七、DCOM八、SPN九、Exchange在内网中,从一台主机移动到另外一台主机,可以采取的方式通常有文件共享、计划任务、远程连接工具、客户端等。 一、IPC IPC(Internet Process Conn…...

20 | k8s v1.20集群搭建master和node

1 单节点master 1.1 服务器整体规划 1.2 单Master架构图 1.3 初始化配置 1.3.1 关闭防火墙 systemctl stop firewalld systemctl disable firewalld1.3.2 关闭selinux sed -i s/enforcing/disabled/ /etc/selinux/config # 永久 setenforce 0 # 临时 1.3.3 关闭swap …...

《商用密码应用与安全性评估》第一章密码基础知识1.1应用概念

密码的概念与作用 概念 密码:采用特定变换的方法对信息进行加密保护、安全认证的技术、产品和服务。 密码技术:密码编码、实现、协议、安全防护、分析破译、以及密钥产生、分发、传递、使 用、销毁等技术。 密码技术核心:密码算法…...

【博学谷学习记录】超强总结,用心分享丨人工智能 深度学习 神经网络基础知识点总结

目录神经网络激活函数引入激活函数原因:sigmoid激活函数tanh 激活函数ReLU 激活函数(最常用)SoftMax如何选择反向传播参数初始化方法优化方法正则化批量归一层网络模型调优的思路神经网络 简单的神经网络包括三层:输入层&#xf…...

Python+tkinter添加滚动条

大家好,我是IKUN的真爱粉,有时候我们需要在tkinter上加滚动条,那么怎么制作呢,我们先看下面的视频展示效果,是不是你想要的 展示 感觉制作的略微粗糙,各位可以后期自己慢慢调整 创建滚动条重要的步骤是&a…...

大V龚文祥造谣董明珠恋情被禁言

我是卢松松,点点上面的头像,欢迎关注我哦! 因造谣董明珠与王自如恋情,知名大V龚文祥老师被今日头条禁言。龚文祥说,69岁的董明珠,找了一个小自己34岁的男友,引的网友议论纷纷。 2月26日&#…...

深入浅出Reactjs

深入浅出Reactjs 介绍 React是一个流行的JavaScript库,用于开发复杂的用户界面。它可以帮助开发人员构建灵活、高效和可维护的应用程序。本文将深入浅出地介绍React开发框架。 React的核心概念 React框架的核心概念是组件。组件是一个独立的、可复用的代码块&am…...

《C++ Primer Plus》第18章:探讨 C++ 新标准(1)

本章首先复习前面介绍过的C11功能,然后介绍如下主题: 移动语义和右值引用。Lambda 表达式。包装器模板 function。可变参数模板。 本章重点介绍 C11 对 C 所做的改进。本书前面介绍过多项 C11 功能,本章首先复习这些功能,并详细…...

PCB板漏孔、漏槽怎么办?看工程师避坑“SOP”

本文为大家介绍PCB画板时常见的钻孔问题,避免后续踩同样的坑。钻孔分为三类,通孔、盲孔、埋孔。不管是哪种孔,孔缺失的问题带来的后果是直接导致整批产品不能使用。因此钻孔设计的正确性尤为重要。 案例讲解 问题1:Altium设计的文…...

mysql数据库同步方案:springboot+集成cannal

1授权 -- 使用命令登录:mysql -u root -p -- 创建用户 用户名:canal 密码:Canal123456 create user canal% identified by Canal123456; -- 授权 *.*表示所有库 grant SELECT, REPLICATION SLAVE, REPLICATION CLIENT on *.* to canal% ident…...

oracle 19c 创建物化视图并测试logminer进行日志挖掘

1、创建物化视图 alter session set containerpdb; grant create materialized view to scott; create materialized view 物化视图名 -- 1. 创建物化视图 build [immediate | deferred] -- 2. 创建方式,默认 immediate refre…...

2.1 黑群晖驱动:10代u核显硬解驱动(解决掉IP、重启无法连接问题)

本文提供了两种10代核显驱动方式:1)第一种(本文:二、仅修改i915.ko驱动10代u核显方法)为网上流传最多但是对主板兼容性要求很高,网上评论常会出现操作后无法识别IP(掉IP)的问题。因此,采用第一种…...

二、CSS

一、CSSHTML的结合方式 1、第一种&#xff1a;在标签的style属性上设置"key:value value;"&#xff0c;修改标签样式 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title>…...

变分推断 (Variational Inference) 解析

前言 如果你对这篇文章可感兴趣&#xff0c;可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」&#xff0c;查看完整博客分类与对应链接。 变分推断 在贝叶斯方法中&#xff0c;针对含有隐变量的学习和推理&#xff0c;通常有两类方式&#xff0c;其一是马尔可…...

27. 移除元素

题目链接&#xff1a;https://leetcode.cn/problems/remove-element/给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输…...

hive临时目录清理

hive运行失败会导致临时目录无法自动清理&#xff0c;因此需要自己写脚本去进行清理 实际发现hive临时目录有两个&#xff1a; /tmp/hive/{user}/* /warehouse/tablespace//hive/**/.hive-staging_hive 分别由配置hive.exec.scratchdir和hive.exec.stagingdir决定: 要注意的…...

如何创建发布新品上市新闻稿

推出新产品对任何企业来说都是一个激动人心的时刻&#xff0c;但向潜在客户宣传并围绕您的新产品引起轰动也可能是一个挑战。最有效的方法之一就是通过发布新品上市新闻稿。精心制作的新闻稿可以帮助我们通过媒体报道、吸引并在目标受众中引起关注。下面&#xff0c;我们将讲述…...

关于.bashrc和setup.bash的理解

在创建了ROS的workspace后&#xff0c;需要将workspace中的setup.bash文件写入~/.bashrc 文件中&#xff0c;让其启动&#xff1a; source /opt/ros/melodic/setup.bash这句话的目的就是在开新的terminal的时候&#xff0c;运行这个setup.bash&#xff0c;而这个setup.bash的作…...

03 Android基础--fragment

03 Android基础--fragment什么是fragment&#xff1f;fragment生命周期&#xff1f;动态的fragment与静态的fragmentfragment常用的两个类与APIFragment与Activity通信什么是fragment&#xff1f; 碎片&#xff0c;一个activity中可以使用多个fragment&#xff0c;可以把activi…...

Redis使用,AOF、RDB

前言 如果有人问你&#xff1a;"你会把 Redis 用在什么业务场景下&#xff1f;" 我想你大概率会说&#xff1a;"我会把它当作缓存使用&#xff0c;因为它把后端数据库中的数据存储在内存中&#xff0c;然后直接从内存中读取数据&#xff0c;响应速度会非常快。…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

C++.OpenGL (20/64)混合(Blending)

混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

【Linux】自动化构建-Make/Makefile

前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具&#xff1a;make/makfile 1.背景 在一个工程中源文件不计其数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c;mak…...

渗透实战PortSwigger靶场:lab13存储型DOM XSS详解

进来是需要留言的&#xff0c;先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码&#xff0c;输入的<>当成字符串处理回显到页面中&#xff0c;看来只是把用户输…...

多元隐函数 偏导公式

我们来推导隐函数 z z ( x , y ) z z(x, y) zz(x,y) 的偏导公式&#xff0c;给定一个隐函数关系&#xff1a; F ( x , y , z ( x , y ) ) 0 F(x, y, z(x, y)) 0 F(x,y,z(x,y))0 &#x1f9e0; 目标&#xff1a; 求 ∂ z ∂ x \frac{\partial z}{\partial x} ∂x∂z​、 …...

2025年低延迟业务DDoS防护全攻略:高可用架构与实战方案

一、延迟敏感行业面临的DDoS攻击新挑战 2025年&#xff0c;金融交易、实时竞技游戏、工业物联网等低延迟业务成为DDoS攻击的首要目标。攻击呈现三大特征&#xff1a; AI驱动的自适应攻击&#xff1a;攻击流量模拟真实用户行为&#xff0c;差异率低至0.5%&#xff0c;传统规则引…...

生信服务器 | 做生信为什么推荐使用Linux服务器?

原文链接&#xff1a;生信服务器 | 做生信为什么推荐使用Linux服务器&#xff1f; 一、 做生信为什么推荐使用服务器&#xff1f; 大家好&#xff0c;我是小杜。在做生信分析的同学&#xff0c;或是将接触学习生信分析的同学&#xff0c;<font style"color:rgb(53, 1…...

ABAP设计模式之---“Tell, Don’t Ask原则”

“Tell, Don’t Ask”是一种重要的面向对象编程设计原则&#xff0c;它强调的是对象之间如何有效地交流和协作。 1. 什么是 Tell, Don’t Ask 原则&#xff1f; 这个原则的核心思想是&#xff1a; “告诉一个对象该做什么&#xff0c;而不是询问一个对象的状态再对它作出决策。…...