红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)

news2024/12/23 17:28:20

目录

写在开头

第一步:主机发现和端口扫描 

第二步:Web渗透与CMS漏洞利用

第三步:敏感信息搜索 

第四步:SSH登录与提权

总结与思考

写在开头

 本篇博客根据大佬红队笔记的视频进行打靶,详述了打靶的每一步思路,并非复现writeup,读者耐心看完,定会有所收获。本靶机的难度也不高,但还是有很多值得思考的地方,尤其是对php代码的理解。本文的打靶过程涉及到关于cms漏洞利用、敏感信息搜索、john破解密码哈希、sudoers文件提权等。打完这个靶机还有一个启发:信息搜集如果能更加完整,会省很多兜圈子的操作。完整打靶思路详见:
「红队笔记」靶机精讲:Kioptrix1.2 - LotusCMS公开漏洞利用,配置文件敏感信息枚举,mysql数据库信息搜集,使用john暴力破解md5哈希_哔哩哔哩_bilibili

 本文针对的靶机源于vulnhub,详情见:

Kioptrix: Level 1.2 (#3) ~ VulnHub 

  下载链接见:

 http://www.kioptrix.com/dlvm/KVM3.rar

 本靶机的目标是拿到root权限,并查看/root目录下的flag。下载成功后用vmware打开,将网络链接设置为NAT模式。靶机打开之后如下: 

第一步:主机发现和端口扫描 

 常规思路,不细讲了。有关主机发现和端口扫描的命令详见我的这篇博客中关于nmap的部分:渗透测试:主机发现和端口扫描的思路方法总结(nmap+ping命令+nc.traditional+伪设备连接)

nmap -sn 10.10.10.0/24
nmap --min-rate 10000 -p- 10.10.10.136
nmap -sT -sV -O -sC -p22,80 10.10.10.136
nmap -sU --min-rate 10000 -p- 10.10.10.136
nmap --script=vuln -p22,80 10.10.10.136

 扫出来靶机的ip是10.10.10.136,也是仅仅开放了22和80端口,入口点应该就是Web了。再使用默认脚本扫描,并探测开放服务和操作系统版本如下:

 漏洞扫描也有一些收获,貌似有一些SQL注入的漏洞,还有目录枚举,可能会有一些敏感信息。至于暴露出来的Dos、CSRF等漏洞我们相对不太关注

第二步:Web渗透与CMS漏洞利用

 打开浏览器访问靶机ip,可看到如下界面:

 注意url中有page参数,可以尝试文件包含,我试了一下发现没啥收获。这个页面大概就是说开发者搭建了一个新的名为gallery的CMS,同时对这个CMS的安全性很自信。具体信息可以看Blog模块,我们看了看Blog中的信息,其实也看不出什么对渗透有用的信息。点击最后一个Login模块,跳转花费了一些时间,最后看到了如下的登录界面:

 这个界面应该就是CMS后台的登录界面了。同时我们可以从标签的title和下部的banner中看到这个界面的cms名为LotusCMS,既然是正经的cms,我们可以先去searchspoit搜索一下这个CMS有啥漏洞:

 其中第一个18565是msf框架下的利用,我们暂时忽略,第二个16982下载下来发现主要是关于CSRF和XSS的漏洞,构造起来比较麻烦,因此我们尝试再去互联网搜索搜索LotusCMS exploit,发现在github中存在LotusCMS的漏洞利用脚本:

 其中漏洞利用的脚本是lotusRCE.sh,链接为:LotusCMS-Exploit/lotusRCE.sh at master · Hood3dRob1n/LotusCMS-Exploit · GitHub

 把这个代码下载到kali中,vim查看:

 可以看到大致的用法就是这个脚本后接lotusCMS的路径,因此我们运行:

./lotusRCE.sh http://10.10.10.136/

 提示确实存在代码注入的位置,还问我们要用哪个IP进行利用,那应该就是反弹shell的ip,我们在kali中开启nc监听1234端口,然后在这个漏洞利用脚本中输入kali的ip和端口即可:

 

 漏洞脚本又让我们选择连接模式,我们直接选择常见的NetCat -e即可,输入1,再回车

可以看到nc监听的终端已经收到了shell:

第三步:敏感信息搜索 

已经拿到了初始shell,尝试提权。先用python映射一个端口增加交互性:

python -c "import pty;pty.spawn('/bin/bash')"

 sudo -l查看当前权限,结果要求输入密码,咱不知道密码是啥。

 查看/etc/passwd试试:

 可以看到除了root之外,还有两个用户loneferret和dreg是有bash的,应该是关键的账户。尝试读取/etc/shadow发现权限不够。那我们就尝试搜索看看有啥敏感文件吧,手下看看当前目录有啥东西:

 有几个文件夹的名字会吸引我们关注。包括缓存cache,内核core,数据data,已经最初在浏览器访问靶机ip中显示开发者开发的cms名称gallery。一番查找最后发现了一个数据库的登录密码,在gallery目录下的gconfig.php:

 mysql的root账号密码为fuckeyou,这个密码还挺骂人的。那我们就尝试登录mysql吧

mysql -u root -p
fuckeyou

 登录成功,查找有什么数据库:

 显然我们最关注的是gallery这个数据库,选中它再看看里面有啥表:

 里面有两张表是我们关注的,关于账户的accounts和关于用户的users,先查看dev_accounts:

 成功搞到了两个密码的hash,由/etc/passwd可以判断者就是那两个有bash的账户,密码加密应该是md5,我们把这个密码的hash复制下来存为一个文件,文件名就叫hash好了:

 然后用john破解这俩md5,一般靶机中的md5的常用字典是rockyou.txt

john hash --format=Raw-MD5 --wordlist=/usr/share/wordlists/rockyou.txt


这里插叙一下,重复用john破解相同的密码哈希是无法显示结果的,而john会将破解结果存在john.pot中,路径如下:

 可以查看这个john.pot来查看历史破解结果,总之我们得到了dreg用户的密码是Mast3r,loneferret 用户的密码是starwars(注意md5值的对应关系),可以尝试ssh登录了。


  另外还可以查看gallarific_users这张表,也发现了一个用户和密码。经过尝试,这个密码(n0t7t1k4) 正是Login后天的admin登录密码。

  这个密码也很有用,不过鉴于此时我们已经拿到了ssh的两个登录账号,不妨先试试ssh登录。

第四步:SSH登录与提权

尝试用户dreg,密码Mast3r登录:

 提示没有匹配的host key,老问题了,添加参数-oHostKeyAlgorithms=ssh-rsa,ssh-dss即可,第一次出现这个问题是在红队打靶:LampSecurity:CTF4打靶思路详解(vulnhub)_Bossfrank的博客-CSDN博客

ssh dreg@10.10.10.136 -oHostKeyAlgorithms=ssh-rsa,ssh-dss

 登录成功了!sudo -l查看权限试试:

 这个账号没有运行sudo的权限,然后查找了一番定时任务和当前目录的信息,也没有啥收获,干脆看看另外一个账号loneferret登录:

ssh loneferret@10.10.10.136 -oHostKeyAlgorithms=ssh-rsa,ssh-dss 
starwars

也登录成功了:

 查看loneferret用户的权限,如下:

 发现我们可以免密运行两个程序,先试试su:

 很遗憾,提示我们loneferret用户不允许以root执行su,那再试试sudo运行ht吧:

sudo /usr/local/bin/ht

 再度失败了,提示是终端tmux的问题,那么我们再添加一下终端的环境变量:

export TERM=xterm-color

再次sudo运行ht试试 :

 可以发现这是个编辑器,既然我们可以sudo启动这个编辑器,那么这个编辑器应该是具有root权限的,我们可以用这个ht编辑器修改系统的配置实现提权,最简单的思路便是修改/etc/sudoers这个文件,我们先尝试打开这个文件,按F3,输入/etc/sudoers即可编辑:

 我们尝试在最后一行追加loneferret ALL=(ALL)NOPASSWD:ALL,应该就可以修改当前用户为最高权限了:

 然后按F10退出,再次运行sudo -l查看权限,可以看到已经有ALL权限了:

 那么我们sudo启动一个bash即可提权:

sudo /bin/bash

 然后我们查看/root目录,发现有一个Congrats.txt:

 至此打靶完成。

总结与思考

 靶机并不是很难,但还是有很多细节的点需要思考。思路的核心还是发现CMS的类型以及漏洞,在searchspoit搜索并未发现特别好的漏洞利用脚本的时候,不妨去github再进行搜索,关键点还是利用这个LotusCMS的漏洞获取反弹shell,然后就是一些敏感信息搜索的工作。在进行提权时,发现ht编辑器具有root权限,立刻就应该想到可以用这个编辑器编辑一些系统配置,从而实现提权,不一定非要像我这样在/etc/sudoers中追加loneferret ALL=(ALL)NOPASSWD:ALL,也可以通过直接修改/etc/passwd中root的密码等方法。最后还是总结一下打靶过程:

1.主机发现和端口扫描

2.Web渗透,发现LotusCMS,最终通过github搜索获得漏洞利用脚本,运行后获得反弹shell。

3.敏感信息搜索:发现数据库root的密码,成功登录数据库,查找到了ssh登录账号的密码hash,用john破解后获得密码。

4.ssh登录与提权:SSH登录后发现loneferret用户具有sudo /usr/local/bin/ht的权限,利用ht编辑器修改系统配置文件即可提权。

 到此这个靶机就讲解完毕了。靶机不难,总结不易,也有很多自己的思考,希望读者能够点赞关注多多支持!如果读者有什么打靶的问题也欢迎评论区留言指出,我一定知无不言!

 

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

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

相关文章

ACL 2023 | 通过语音离散表示统一语音翻译和机器翻译

前言 在当今全球化和多元文化的时代,语音翻译技术正成为我们跨越语言障碍的得力助手!语音翻译(Speech Translation, ST)旨在将源语言语音翻译成目标语言文本,广泛应用于会议演讲翻译、视频字幕翻译、AR增强翻译等各种…

【启发式算法】灰狼优化算法【附python实现代码】

写在前面: 首先感谢兄弟们的订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。 路虽远,行则将至&#…

快速批量改名文件!随机字母命名,让文件名更有创意!

想要让文件名更加有创意和个性化吗?不妨尝试使用随机字母来批量改名文件!无论是照片、文档还是其他文件,只需要简单的几个步骤,您就可以为它们赋予一个独特的随机字母命名。这不仅可以帮助您整理文件,还能增加一些乐趣…

AtCoder Beginner Contest 310-D - Peaceful Teams(DFS)

Problem Statement There are N sports players. Among them, there are M incompatible pairs. The i-th incompatible pair (1≤i≤M) is the Ai​-th and Bi​-th players. You will divide the players into T teams. Every player must belong to exactly one team, an…

SpringBoot整合SpringCloudStream3.1+版本的Kafka死信队列

SpringBoot整合SpringCloudStream3.1版本的Kafka死信队列 上一篇直通车 SpringBoot整合SpringCloudStream3.1版本Kafka 实现死信队列步骤 添加死信队列配置文件,添加对应channel通道绑定配置对应的channel位置添加重试配置 结果 配置文件 Kafka基本配置&#…

Python机器学习、数据统计分析在医疗中的应用

Python机器学习在医疗诊断领域的应用 随着人工智能技术的不断发展,机器学习已经在医疗领域的诊断治疗、预防等方面展现出强大的潜力。Python 作为一种广泛应用于机器学习的语言,在医疗领域也已经被广泛使用。本文将探讨 Python 机器学习在医疗领域的应用…

mysql 第五章

目录 1.order by 排序 2.区间判断 3.group by 分组 4.limit 5.别名 6.通配符 like 7.总结 1.order by 排序 2.区间判断 3.group by 分组 4.limit 5.别名 6.通配符 like 7.总结 对 mysql 数据库的查询,除了基本的查询外,有时候需要对查…

nginx官网与下载

官网 nginx: download 下载 解压 conf配置文件

[高通平台][WLAN] IEEE802.11mc 介绍

IEEE802.11mcWi-Fi协议(即Wi-FiRound-Trip-Time,RTT),利用此项技术及可以进行室内定位,因此为了使用此项技术,只有在硬件支持的设备上,应用才可以使用最新的RTT API以测量附近具有RTT功能的Wi-FiAP。 单面RTT :  距离是通过发送的分组和接收到的ACK之间的时间差来计算的…

SPSS中级统计--S05-5多个样本率的卡方检验及两两比较

小伙伴们,今天我们学习SPSS中级统计--多个样本率的卡方检验及两两比较。 例1、2 C列联表资料 上期我们学习了双向无序RC表资料(c2)的检验,案例如下,比较不同污染地区的动物畸形率是否有差异? H0&#xff…

哈医大一院电力监控系统 安科瑞 许敏

摘要:本文介绍基于Acrel-3000电力监控软件和电力监控仪表,设计并实现了一套分散式采集和集中控制管理的自动化报警系统。系统实现远程精细化及时性报警,避免因停电造成医疗事故,提高了供电质量和管理水平,具有简明实用…

怎么把高版本CAD转换成低版本?CAD版本转换方法分享

某些情况下,较新的CAD软件版本可能不被较旧的CAD软件版本所支持。如果你需要与使用较旧版本CAD的人进行交流、共享或协作,将高版本CAD转换为低版本可以确保文件能够顺利打开和编辑。那么问题来了,怎么将高版本CAD转换成低版本呢?教…

29,stack容器

29.1stack基本概念 概念:stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口 栈容器 符合先进后出 栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为 栈可以判断容器为空与否(empty) 栈可以返回元素个数(…

【SQL】计算每个人的完成率

目录 前提任务的完成率前三名拓展:达梦如何去实现除法有余数拓展:MySQL 任务的完成率前三名 前提 达梦数据库: select 1/3; # 0不要求四舍五入 任务的完成率前三名 # nick_name 人名 # finishNum 当前这个人的任务完成数 # total 当前这…

Go语言之并发编程练习,GO协程初识,互斥锁,管道:channel的读写操作,生产者消费者

GO协程初识 package mainimport ("fmt""sync""time" )func read() {defer wg.Done()fmt.Println("read start")time.Sleep(time.Second * 3)fmt.Println("read end") }func listenMusci() {defer wg.Done()fmt.Println(&qu…

【lesson2】Linux基本指令1

文章目录 touch创建文件更新文件最新修改时间 lslsls -lls -als -i pwd...cdcd 路径法一:cd 绝对路径法二:cd 相对路径 cd - stattreemkdirmkdir创建一个目录mkdir -p创建一串路径目录 ~/rmdirrmrmrm -frm -rrm -i mancpcpcp -r mvnaocatcatcat -n ta…

错过后悔!!!Java岗秋招最全面试攻略!!

这里给大家整理了完整的Java完整的架构面试核心知识体系。按照这样的一个脉络,只要大家能够掌握这里面的绝大部分内容,并且有过相应的一些实践,那么就可以去面试自己心仪的工作了。 这份笔记总结都是作者近几年结合众多牛客的面经分享&#…

【完整版】zabbix企业级监控(概念、简单操作、页面优化、监控主机自己、监控linux、监控Win10)

第三阶段基础 时 间:2023年7月19日 参加人:全班人员 内 容: zabbix企业级监控 目录 一、Zabbix概述 (一)Zabbix简介 (二)Zabbix运行条件: (三)Zab…

【面试笔试避坑指南】一

从这篇文章开始 进行笔试的训练环节,我会在 本专栏详细介绍笔试的易错点,帮助大家精准避坑。 1.有如下一段代码(unit16_t为2字节无符号整数,unit8_t位1字节无符号整数); 请问x.z.n在大字节序和小字节序机器…

MySQL第五章、索引事务

目录 一、索引 1.1 概念 1.2 作用 1.3 使用场景 1.4 使用 1.5 案例 二、索引背后的数据结构 2.1 B-树(B树) 2.2 B树(MySQL背后数据结构) 三、事务 3.1 为什么使用事务 3.2 事务的概念 3.3 使用 3.4并发执行事务产生…