Advent of Cyber 1 [2019] | [Day1] - [Day12]
[Day 1] Inventory Management
先注册一个账户,找到对应 cookie 值,发现使用 base64 进行了编码,可以解码
然后再次注册账户,解码 cookie,找到共同部分,发现只是使用用户名,在开头作为身份标识
使用mcinventory 作为开头的用户名,再进行编码,把得到的值,作为 cookie,刷新页面就可以进入 mcinventory 用户的页面中
[Day 2] Arctic Forum
使用 dirsearch 进行扫描,扫描到 sysadmin 目录,进入路径下查看页面源代码,提到创建的代码,在 GitHub 有 仓库
在 GitHub 搜索了这个名字,直接就找到了默认密码账户,登录进去
登录后就可以看到会带什么东西去参加派对了
[Day 3] Evil Elf
使用 telnet 进行过滤出数据包,然后右键点击进行追踪
这里看到两个命令,一个是把 ps4 添加到列表中,一个就是 cat 了 shadow 文件,shadow 文件最后一个存放了 hash 值可以尝试进行破解
这里先使用了 hashid 进行识别 hash 类型,然后查找到 hashcat 的参数,破解
也可以使用 haiti,这个工具在识别的同时也可以给出工具的参数
[Day 4] Training
使用 ls
就可以看到只有 8 个文件
cat file5
可以获得 file5 中的内容
使用 grep -l "password" ./*
来匹配到 password 的文件
(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)
使用这个来匹配 IP 地址
查看登录用户可以查看 /etc/passwd
文件中使用 /bin/bash
的账户就是可以登录的用户
file8 的 sha1 哈希值可以使用 sha1sum file8
来获取
最后的 mcsysadmin 的密码哈希通过 /etc/passwd
中看到第二位是 x,说明密码是存放在 shadow 文件中
尝试 cat /etc/shadow
不过权限不够,使用 ls -al
查看文件权限,发现任何用户都读取不了
这里尝试查找备份文件
这里找到 shadow.bak 备份文件,查看就得获得密码哈希
[Day 5] Ho-Ho-Hosint
把图片下载了,使用 exiftool 进行查看元信息,也可以使用 windows 中右键查看属性,也有看到元信息
这里唯一有利用价值的就是作者是 JLolax1
在推特找到了,看到个人信息中的 born 就是出生日期
个人简介中说到目前还是助手,到 12 月之后才是专业摄影师
使用的手机从第一篇推文中可以看到
最后的摄影时间我先到个人简介中的网址,发现是她拍摄的图片
我把这个网址放到时光机中,找到最早的一个版本
可以看到提示说他是在五年前的今天开始的摄影
最后的答案把图片下载下来使用谷歌搜索一下就找到命令了,是 ada lovelace
[Day 6] Data Elf-iltration
使用 wireshark 打开流量包,发现开头几个 dns 数据包查询头都是十六进制,破解一下就发现是传输的数据了
使用导出 http,发现了一个 zip 包和一个图片
图片使用 steghide
直接破解,就可以拿到其中的隐写数据了
压缩包使用 fcrackzip
进行破解,拿到密码解压之后,里面文档中就有答案
[Day 7] Skilling Up
使用 nmap 扫描一下端口,看到打开了 4 个端口,小于 1000 的有三个
想要找到操作系统,只要添加一个 -O
参数就可以,发现是 Linux
ssh 版本使用 -sV
参数就可以看到
最后的可以访问的文件,发现 999 端口是一个 http server,我们使用浏览器进行访问,可以找到一个目录下的一个文件
[Day 8] SUID Shenanigans
使用 nmap 扫描端口,找到了开放的 ssh 端口,然后使用 ssh holly@[ip_address] -p 65534
进行连接
使用 find / -user igor -perm -4000 -exec ls -ldb {} \; 2>/dev/null
查找 igor 用户的 suid 文件,这里找到一个 find 命令
https://gtfobins.github.io/gtfobins/find/#suid
在这里找到了利用方式,直接提权到了 igor 身份
最后寻找 root 的 suid 文件中,尝试了很多没有找到提权的方式,最后尝试运行 system-control 这个文件,发现可以以 root 来执行命令,可以直接 cat 到 flag
[Day 9] Requests
这一次是要编写一个 python 脚本来拿取 flag
不过这个我开了配置文件也没搞懂为什么登录不上,也无法 ping 通
答案是sCrIPtKiDd
[Day 10] Metasploit-a-ho-ho-ho
使用 nikto
发现 cve-2017-5638 这个漏洞,查看之后发现正好就是 struts2 的一个漏洞
重点就是设置一下 RHOSTS,RPORT 和 TARGETURI,然后 run 就可以了
在 meterpreter 中 getuid 发现还是 root 权限,就不用再去提权了
使用 shell
进入之后,使用 find 来查找到 flag1 文件的位置,然后 cat 就可以拿到 flag1
之后尝试去/root 目录下,发现是空的,然后到 /home 目录下找到一个用户 santa,到他目录下使用 ls 找到一个存有 ssh 密码的文件,就可以使用 ssh 进行连接了
最后 ssh 连接后找到两个列表,使用 sed 命令来查找指定行的数据
[Day 11] Elf Applications
使用 nmap 扫描端口开放情况
这里发现 ftp 服务,可以尝试使用 ftp 的匿名登录
可以看到里面有一个 file.txt 文件,使用 get
命令下载之后,发现里面给了 mysql 的用户名和密码
然后是 NFS 服务,使用 showmount -e [IP_address]
来枚举一下可以使用的共享
使用 sudo mount -t nfs [IP_address]:/opt/files /tmp/mount -nolock
把共享挂载到 tmp/mount 目录下,然后可以到这个目录下找到 creds.txt 文件
利用之前的 mysql 的用户名和密码进行登录
注意要添加一个 --skip-ssl
的参数,没有这个登录会报一个 TLS/SSL 的错误
然后使用 sql 查询就可以找到密码了
[Day 12] Elfcryption
第一个直接使用 md5sum note1.txt.gpg
就可以拿到 md5 值了
第二个使用 gpg -d note1.txt.gpg
这个要输入密钥
提示中给了密钥
第三个也是使用 openssl 然后使用私钥来破解文件,不过私钥也有密码要输入,也是在提示中给了私钥的密码是 hello,然后就会生成一个破解文件