信息收集
使用arp-scan生成网络接口地址,查看ip
输入命令:
arp-scan -l
nmap扫描端口开放
TCP
输入命令:
nmap --min-rate 10000 -p- 192.168.187.184 //以最低10000的发包速率扫描全部端口
可以看到目标只开放http的22和80端口
UDP
输入命令:
nmap -sU --min-rate 10000 -p- 192.168.187.184
这边的udp扫描没有发现什么有用的信息
nmap扫描端口信息
输入命令:
nmap -sT -sC -sV -O -p 22,80 192.168.187.184
这边可以看到一些简单的端口基础信息,可以简单了解一下
nmap漏洞脚本扫描
输入命令:
nmap --script=vuln -p 22,80 192.168.187.184
这里的漏洞脚本扫描枚举出了一个子目录的文件名称,等下可以去看看。
查看web端
访问ip的80端口,可以看到界面如下,是一个龙珠的浏览介绍页面。浏览一下页面上的内容,没有发现有什么特别的内容
查看页面源代码
在这里面看了看,上面也没有很特殊的提示,几个图片的链接也都是引用的其他网站的。
但是页面往下滚动半天没有到尽头,一直往下拉页面以后,发现最下面有隐藏的加密信息,看起来是一个加密的字符串,尝试破解一下
字符串:VWtaS1FsSXdPVTlKUlVwQ1ZFVjNQUT09
这里尝试了一些方法后,发现是用的base64加密的,不过存在套娃,还需要继续解密
输入命令:
echo 'VWtaS1FsSXdPVTlKUlVwQ1ZFVjNQUT09'|base64 -d
最终解密三次,才拿到了一个信息字符串DRAGON BALL ,暂时还不清楚是做什么用的,先记下来
目录爆破
输入命令:
dirsearch -u 192.168.187.184
这边发现了一个robots.txt,之前的nmap漏洞扫描也扫到了这个目标,等下去查看
输入命令:
gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,txt,php,jpg,pdf -u http://192.168.187.184
这边扫描到了robots.txt,还有一个新的图片,可以先记一下
查看目录
发现加密字符串
我们现在来查看相关的目录信息,最先访问的肯定是刚刚的robots.txt,可以看到一串字符串,看这个格式很可能是base64加密过的,需要破解一下
输入命令:
echo 'eW91IGZpbmQgdGhlIGhpZGRlbiBkaXI='|base64 -d
这里解密后显示我们找到了隐藏目录,之前我们通过解密发现了一个DRAGON BALL的解密字符,当时不清楚作用,看这样子有可能就是隐藏目录,我们等下访问试试
查看DRAGON BALL
这里成功发现了其他的文件信息
自动化目录分析
先查看secret.txt文件,里面有一些类似目录的样式,也许是要用来放到哪一个路径下才有信息,我们这里可以一个个尝试,但是很花费时间。也可以借助工具来简单实现一下
在本地上我们新建一个txt文件,然后把这些可能的目录信息放进去
这里可以使用替换的方法快速构造url访问地址
这里将有可能的目录组合方式全部加上后,我们可以使用curl来测试网页返回值
curl
输入命令:
while read url < 1.txt ;do curl "$url";done
命令分析:
while read url < 1.txt //将文件中的每一行信息,读取并赋值给url参数
while read url < 1.txt ;do curl “$url”;done //每读取一行信息后,使用curl来访问url参数,即文件中每一行的地址信息
执行命令后可以看到回显,但是比较乱,需要优化一下命令
输入命令:
while read url ;do curl "$url" -o /dev/null -s -w "%{url_effective} status:%{http_code}\n" ;done <1.txt
//-s —静默模式,不会输出无关中间过程信息
//-w “%{url_effective}” — 输出目标网址
//status:%{http_code} 状态码结果输出
但是可以看到除了主页面能访问到以外,其他的目录拼接后,都是无法访问的地址,这里暂时没有新的发现了(整了半天被套路到了)
查看登录页面
这里面出现了一个登录页面,打开可以查看一下
这里显示到了一个登录页面,标题有一个xmen,似乎是用户名,但并不确定可以尝试一下弱密码。
这里尝试一些弱密码后,没有成功进入,点击下方的download,显示界面也是无法访问,但是url中弹出了aj.jpg的字样,这好像是提示
查看图片
除了刚刚的目录部分,我们之前还看到了一个图片,打开看到是这个样子,按照刚刚的提示,或许图片中藏有一些信息也说不定,下载下来看看
下载图片
输入命令:
wget http://192.168.187.184/aj.jpg
可以看到已经将图片下载到了本地上
尝试图片破解
stegseek
输入命令:
stegseek aj.jpg /usr/share/wordlists/rockyou.txt
这个工具可以用来破解图片隐写,用法:stegseek+图片名称+字典(如果没有这个工具可以先试用apt-install stegseek安装一下)
这里可以看到我们成功发现了密码,以及相关的隐写文件,好像还是ssh的私钥文件
破解后的文件已经存放在了当前的目录下
获取ssh私钥
我们打开查看一下,确实就是私钥的密码文件
这里我们将文件名称改一下,改为ssh_rsa,便于后面使用
ssh私钥链接
这里我们有了私钥,但是还没有用户名,尝试了一些root,admin的用户名,但是无法登陆,重新回顾一下之前所找到的一些信息,之前的登录页面有一个xmen的名称,拿来尝试一下,发现成功登录
拿到flag1
在当前登录的目录下,可以发现一个local.txt,打开后可以看到flag信息
提权
sudo提权
查看是否有以root身份执行的命令
输入命令:
sudo -l //用来查找当前用户是否存在可以以root身份执行的命令
但是这里需要密码,但是我们用的私钥登录,暂时放弃
suid提权
输入命令:
find / -perm -4000 2>/dev/ull //查找当前系统存在的拥有root属主权限的二进制文件
这里看到了一个可能存在的提权文件,我们去查看一下
这里面存在2个文件,demo.c文件里面显示存在系统命令ps。shell文件不能查看,会显示乱码,但是运行后会发现也会执行ps命令
环境变量劫持
这里可以尝试一下环境变量劫持,首先查看我们当前目录的所属组,发现这一级是root的所属组,上一级目录是我们的所属组
返回上一级,建立一个新文件,名称要和刚刚的系统命令一致,写进去一个/bin/bash
赋予文件可执行权限
这里要记得给文件赋予可执行权限
配置环境变量
返回到shell文件的目录,可以查看一下这个目录的环境变量
输入命令:
echo $PATH
然后把我们刚刚建立ps文件的绝对路径,添加到环境变量中,(要添加在最前面,环境变量的引用是从前往后开始的)
输入命令:
export PATH=/home/xmen:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:PATH
拿到root权限
此时配置好了,我们来执行一下shell文件,发现已经成功提权到root
拿到flag2
提权后在/root下可以找到第二个flag信息