总结:
这个靶机出现了几个奇怪的端口,使用nc或者telnet命令来连接端口查看信息
nc –nv ip port
telnet ip port
前期的信息收集,不仅仅是nmap
还可以使用nitko –h、whatweb等等进行收集信息
Html2dic工具可以将页面的关键字转换成字典
Wget url –rq –O xxx.out
Html2dic xxx.out | sort –u > xxx.dict
使用公钥登陆的时候要将公钥的权限调制最小
ssh –p 端口 –i 公钥
env可以查看环境变量
echo $PATH可以查看环境变量
------------------------------------------------------------------------------------------------------------------------
先找到目标主机
目标主机IP为192.168.49.145
使用nmap针对目标靶机的端口进行扫描
22号端口:
应该是假的ssh服务,指纹信息中没有显示出ssh服务的版本
62964端口:
这个才是真正的ssh服务
80端口:
默认的web页面
4899端口:
是个tcp链接
使用nc进行连接查看
打开web页面进行查看:
由于这个靶机是CTF方向,总共有6个flag
进入首页中查看出现许多提示base64编码的字样,以及小标题就是base64编码后的信息
我们对小标题进行解码
echo "dmlldyBzb3VyY2UgO0QK" | base64 --decode
提示我们查看源码
上图,这么一长串字符串,要么是base64直接解码出来,要么是16进制转asci码进行base64解码。
我们先转16进制再解码
echo "5a6d78685a7a4637546d705361566c59546d785062464a7654587056656c464953587055616b4a56576b644752574e7151586853534842575555684b6246524551586454656b5a77596d316a4d454e6e5054313943673d3d0a" | xxd -p -r | base64 --decode
出现第一个flag值,但flag值也是base64编码后的字符串
我们针对flag值进行解码
flag1{NjRiYXNlOlRoMzUzQHIzTjBUZGFEcjAxRHpVQHJlTDAwSzFpbmc0Cg==}
解码后发现像是用户名密码的字符串,但是这是CTF啊!我再试试把后面的字符串再base64解码
好吧,看起来是草木皆兵了。
我们ssh 连接一下
64base:Th353@r3N0TdaDr01DzU@reL00K1ing4
看起来不是ssh的登陆密码,重新在web页面中进行搜寻
我们扫描一下目录
这么多目录,我们使用nikto进行主机的信息收集:
Nikto –h 192.168.49.145
之前做过类似靶机,和现在的现象比较相似。
猜测一下,这里的robost.txt文件中出现一批目录名但里面都是空的,且这个目录名都像是密码字典的样子,所以我接下来要将这些目录名包括整个网站都使用wget命令进行获取,再利用html2dic将网站中的字符串制作成社工字典进行爆破,这样成功率会提升。
Wget进行遍历获取
# wget http://192.168.49.145/ -rq -O webword.out
使用sort将字符串格式化去重
# html2dic webword.out| sort -u > webword.dict
我们使用新字典进行爆破目录
针对401状态进行爆破可以找到网页登陆的弹窗,进行登陆测试
找到两个登陆窗口,来尝试登陆
64base:Th353@r3N0TdaDr01DzU@reL00K1ing4
查看源码后有可以利用信息
不要忘记BountyHunter的登陆页面
构造登陆页面
http://192.168.49.145/Imperial-Class/BountyHunter
先查看源码有没有可以利用的信息
先转16进制再转base64
提示无效,查看整页的源码
我首先是对第一个id进行解码
出现了flag值的格式,于是,我将这三个进行拼接后解码
拼接后解码
echo "5a6d78685a7a4a37595568534d474e4954545a4d65546b7a5a444e6a645756584f54466b53465a70576c4d31616d49794d485a6b4d6b597757544a6e4c3252714d544a54626d51315a45566157464655614446525557383966516f3d0a" | xxd -p -r | base64 --decode
得到flag
flag2{aHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj12Snd5dEZXQTh1QQo=}
在进行解码
解码之后给出一个youtobe的网站,从url上来看没有问题,点击进入查看。
https://www.youtube.com/watch?v=vJwytFWA8uA
好家伙,这个页面差点没把我送走,挺吓人的。
暗示我们开始bp进行抓包分析。
随便填写用户名密码进行登陆,查看返回包。
得到flag值。
flag3{NTNjcjN0NWgzNzcvSW1wZXJpYWwtQ2xhc3MvQm91bnR5SHVudGVyL2xvZ2luLnBocD9mPWV4ZWMmYz1pZAo=}
再针对flag值进行解码
53cr3t5h377/Imperial-Class/BountyHunter/login.php?f=exec&c=id
拼接一下这个路径
这明显是RCE呀,我们修改一下f的参数值为system来查看id是否被执行
获得flag值
flag4{NjRiYXNlOjY0YmFzZTVoMzc3Cg==}
针对flag值进行解码
64base:64base5h377
来查看下有没有nc可以直接反弹shell
侮辱性极强
这个flag值解出之后存在的值64base:64base5h377
直接登陆ssh试一下
提示密码错误
这个用户名是64base 5h377
我们将密码根据提示来进行base64编码后登陆
NjRiYXNlNWgzNzcK
重新登陆下
64base NjRiYXNlNWgzNzcK
登陆成功
我们继续获取flag
Base64用户的base64的目录
里面有许多命令都无法执行
这个flag靶机都是围绕着base64编码来进行解题
于是,尝试使用base64进行打开文件
我们使用base64进行打开文件
先使用base64来执行当前文件夹下的文件,出现乱码并使用base64进行解密后发现出现一段字符串。
我们使用env命令来查看当前的环境变量
从环境变量中我们看到
/var/alt-bin/droids
执行一下droids
我们q键退出后发现,其他的命令都可以执行了
原本想直接find查找flag
我们使用源路径进行执行命令
再次针对flag值进行解码
提示让我们看看这个文件里面?
File命令进行查看
是一张图片,查看图片的内容
strings /var/www/html/admin/S3cR37/flag5{TG9vayBJbnNpZGUhIDpECg==} | /usr/bin/head
将头部信息复制下来,转16进制后base64解码
以上,解出一个ssh的密钥,我们重新导出ssh.key使用公钥进行登陆
我们使用ssh的公钥进行本地ssh的登陆
不过看起来公钥并没有成功登陆
我们将flag5下载到本地进行查看
我这里是将原本的flag5文件复制到/tmp目录下并重命名位flag5并且添加777权限
然后使用scp命令进行远程下载 密码就是64base的密码 NjRiYXNlNWgzNzcK
查看本地的图片
使用usetheforce作为密码进行登陆
在使用证书登陆的时候,会提示证书的权限过大将不适用,所以我们要将证书的权限调至最小。
chmod 000 ssh.key
随后使用证书链接 输入密码 usetheforce
解密查看base64
打开这个文件查看