CTF之Five86

Stella981
• 阅读 553

靶机地址:http://www.vulnhub.com/entry/five86-1,417/

本文涉及知识点实操练习:VulnHub渗透测试实战靶场Node 1.0 (Node 1.0 是一个难度为中等的Boot2root/CTF挑战,靶场环境最初由 HackTheBox 创建,实验目的是获取两个flag)

技术点

  • opennetadmin v18.1.1RCE

    • searchsploit
    • github搜索exp
  • 破解Linux中经过HASH加密的密码

    • crunch生成字典
    • johnhashcat破解密码
    • hash-identifier查看HASH类型
  • SSH免密登陆

    • 公钥复制为authorized_keys
  • Linux查看当前用户权限可读文件和可执行命令

    • 查看当前用户权限可读文件find / -type f -user www-data
    • 可执行命令sudo -l

目标发现

nmap -sP 参数使用 ping 扫描局域网主机,目的地址为 192.168.56.5

CTF之Five86

nmap -sS -A -v 192.168.56.5 看一下详细的扫描结果 -sS 是半开放扫描,-A 是进行操作系统指纹和版本检测,-v 输出详细情况

CTF之Five86

可以看到开放了 22、80、10000 三个端口,并且 80 端口存在 robots.txt和路径 /ona

漏洞发现与利用

访问http://192.168.56.5是个空白页面,然后去访问 /ona,可以看到是 opennetadmin的管理页面,并且版本是 18.1.1

CTF之Five86

CTF之Five86

v18.1.1opennetadmin是存在RCE漏洞的,在github找个exp打过去就可以,https://github.com/amriunix/ona-rce

CTF之Five86

或者是使用 searchsploit,不过这里有个坑点,就是要对这个bash脚本进行转换格式,否则会报错,使用dos2unix 47691.sh这个命令,而且这里的shell不能转成TTY

CTF之Five86

CTF之Five86

下面的问题就是如何进行提权了,经过一番测试,发现这里无法执行的命令是没有回显的,并且不能执行cd命令,但是可以使用lscat命令

CTF之Five86

CTF之Five86

这里肯定是有权限控制的,可以使用find / -type f -user www-data命令查看这个用户可以读取的文件,除了/proc就是/var/www/html/reports/.htaccess/var/log/ona.log

CTF之Five86

读取var/www/html/reports/.htaccess可以找到AuthUserFile的路径/var/www/.htpasswd

CTF之Five86

读取这个文件如下,可以得到用户名douglas和HASH的密码$apr1$9fgG/hiM$BtsL9qpNHUlylaLxk81qY1,给的提示是只包含aefhrt的十个字符

CTF之Five86

douglas:$apr1$9fgG/hiM$BtsL9qpNHUlylaLxk81qY1

# To make things slightly less painful (a standard dictionary will likely fail),
# use the following character set for this 10 character password: aefhrt 

先用hash-identifier看一下是哪个HASH,结果 hash -type : [+] MD5(APR)

CTF之Five86

然后使用crunch生成对应的字典,命令格式crunch <min-len> <max-len> [charset string] [options],这里生成只包含aefhrt的10个字符,就可以使用如下命令crunch 10 10 aefhrt -o pass.txt,更多的介绍可以看Linux下的字典生成工具Crunchcrunch命令详解

CTF之Five86

最后就要用大名鼎鼎的hashcat去破解这个HASH,命令格式hashcat [options]... hash|hashfile|hccapxfile [dictionary|mask|directory]...,这里使用的命令为hashcat -m 1600 -a 0 -o res hash.txt pass.txt

-m是HASH类别,-a是攻击方式,-o是输出结果,更多的参数可以参考Hashcat密码破解攻略。这里在kali里面运行一直报错,就转移到wsl2里面了,命令hashcat -m 1600 -a 0 -o res hash.txt pass.txt --force

CTF之Five86

CTF之Five86

最终密码为 fatherrrrr

或者这里也可以使用john来进行破解john --wordlist=pass.txt hash.txt,但是速度可能有丶问题

CTF之Five86

使用ssh连接ssh douglas@192.168.56.5

CTF之Five86

这里是个TTY,但还是存在权限控制,使用sudo -l看一下可以使用什么命令,结果是(jen) NOPASSWD: /bin/cp,这里就有点奇怪了,douglas可以用jen的身份运行cp命令

CTF之Five86

先去访问一下home目录,发现douglasjen这两个用户,但是只能用jencp命令,且没有jen的密码

CTF之Five86

值得注意的是,如果jen用户下的/home/jen/.ssh/authorized_keys包含douglas的公钥,那就可以用douglasid_rsa文件登陆jen的ssh,也即免密登陆jen的ssh。这里复制到/tmp目录下是因为jen没有权限访问douglas目录下的文件

cp .ssh/id_rsa.pub /tmp/authorized_keys
chmod 777 /tmp/authorized_keys 
sudo -u jen /bin/cp /tmp/authorized_keys /home/jen/.ssh/

CTF之Five86

然后用ssh连接ssh -i id_rsa jen[@127.0.0.1](https://my.oschina.net/u/567043)

CTF之Five86

成功登陆jen,看到提示mail,还是先执行echo $(find / -type f -user jen) > 1.txt看一下,有一个/var/mail/jen的文件可以读取

CTF之Five86

或者这里直接输入mail的命令也可以看到

CTF之Five86

读取一下,其内容如下

CTF之Five86

关键词:change Moss's passwordhis password is now Fire!Fire!

接着ssh连接moss用户ssh moss[@127.0.0.1](https://my.oschina.net/u/567043)

CTF之Five86

在当前目录发现了一个隐藏目录.games,访问后发现一个root权限的二进制文件upyourgame

CTF之Five86

运行之后就发现自己神奇的变成root用户辣

CTF之Five86

最后,flag在/root中,为8f3b38dd95eccf600593da4522251746

CTF之Five86

彩蛋时刻,其实在拿到douglas的密码之后就可以用虚拟机登陆,然后操作,这里是用的moss的账号密码,也是同样的效果

CTF之Five86

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
Java获得今日零时零分零秒的时间(Date型)
publicDatezeroTime()throwsParseException{    DatetimenewDate();    SimpleDateFormatsimpnewSimpleDateFormat("yyyyMMdd00:00:00");    SimpleDateFormatsimp2newS
Stella981 Stella981
2年前
JS 苹果手机日期显示NaN问题
问题描述newDate("2019122910:30:00")在IOS下显示为NaN原因分析带的日期IOS下存在兼容问题解决方法字符串替换letdateStr"2019122910:30:00";datedateStr.repl
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这