HA: SHERLOCK 靶机渗透取证
靶机描述:
Description
HA: Sherlock! This lab is based on the famous investigator’s journey on solving the Curious Case of Harshit's murder!
This is a Forensic based Capture-the-Flag and is not a Boot-to-Root
So, put on your thinking caps and get ready to solve the case by finding the evidences bearing points. There is a total of 100 points scattered over the lab
Objective: Find all 100 points (Getting Root is not the objective)
Disclaimer: This machine works on VMWare. There might be IP related issues with Virtual Box.
靶机下载链接:https://www.vulnhub.com/entry/ha-sherlock,580/
环境部署
靶机:使用 VMware 打开上述网址下载的 ova 靶机文件
使用机:VMware 下的 Kali-Linux-2021.2-vmware-amd64、win10
(使用机与靶机在同一网络环境内)
主机发现
网络扫描
因为靶机与使用机在同一网络环境下,使用 kali 自带工具进行扫描发现靶机 ip、MAC 地址
netdiscover
端口扫描
使用 nmap 的 -A 参数进行综合扫描
nmap -A 192.168.8.106
发现其开放的端口及服务:
21-ftp 22-ssh 25-stmp
80-http 110-pop3 143-imap
993-ssl/imap 995-ssl/pop3
获得100分
0 + 15 pionts
(根据端口进行接入)
访问 80 端口查看信息
可以发现靶机的来龙去脉
查看源码
发现底部有段注释,隐藏了信息:
寻找 .mp4 文件
因为上边提到了两个名字,根据上边的 .mp4 提示访问 http://192.168.8.106/irene.mp4
发现是一只迷之生物打哈欠,未发现其他信息
尝试连接 22-ssh
连接发现提示信息和莫斯电码:
莫斯电码解密
使用在线或者其他工具进行莫斯电码解密得到明文:BASKERVILLE
下载 mp4 文件,使用 OurSecret 进行解密
根据上一步骤提示:BASKERVILLE 和 mp4 视频有关,访问刚才页面,下载视频;下载 OurSecret 解密软件解密
(OurSecret 是在 Windows 环境下安装的)
解密后得到 15_Points.txt 文件
15 + 10 points
pop3s 密码爆破
根据 http 网页上的名字:harshit 结合开启了 pip3s
我们尝试使用 hydra(九头蛇)工具进行爆破,字典使用 Kali 自带的 rockyou.txt,得到 harshit 密码 superman
hydra -l harshit -P /usr/share/wordlists/rockyou.txt 192.168.8.106 pop3s
登陆邮箱查看信息
使用上一步中获得的账密登陆邮箱:
openssl s_client -crlf -connect 192.168.8.106:110 -starttls pop3
user harshit
pass superman
retr 1 #查看第一封邮件
retr 2 #查看第二封
retr 3 #查看第三封
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6kk1JuM9-1634523042441)(https://p3.ssl.qhimg.com/t01e05a1b783f2e4416.png)]
翻译就是这样子:
可以看到,是恐吓邮件,提取其中关键词:
“May 27, 2020 11:02:09 AM”
epoch(语义奇怪)
看到了时间一般就会和时间戳有关系
时间戳转换
一、可以以 epoch time 为关键词在网上搜一下就能找到工具
填写相关信息得到时间戳:
二、UTC时间转换
做好信息收集的同学可以发现,该靶机的制作组人位于英国,英国的时间为 UTC+00:00
目录查看
以时间戳构造路径并访问: http://192.168.8.106/1590577329/ 发现 10_Points.txt 和 名为 john 的内存镜像
25 + 10 points
内存取证
使用 volatility 进行取证
1.提取内存镜像信息
python2 ./vol.py -f ~/Downloads/john.mem imageinfo
2.查看运行进程
python2 ./vol.py -f ~/Downloads/john.mem --profile=WinXPSP2x86 pslist
发现 notepad(记事本)进程
3.查看 notepad 内容
python2 ./vol.py -f ~/Downloads/john.mem --profile=WinXPSP2x86 notepad
发现 Thcgpune 尝试 ROT13 解密(就硬解,要不就构造密码本将常用加密都试一遍进行爆破)
ROT13:Guptchar
尝试连接 ftp
根据内存镜像名和上述 ROT13 明文尝试连接 ftp 服务
ftp 192.168.8.107 #这里因为网络原因靶机ip从106变成了107(个人情况)
john
Guptchar
ls
发现文件夹,cd 进入发现两个文件,分别是 10_Points.txt、mycroft.001
cd files
ls
使用 get 获取文件:
get 10_Points.txt
get mycroft.001
Ctrl+z #返回原kali shell
cat ./10_Points.txt
35 + 10 points
使用 autopsy 分析磁盘镜像
上一步我们发现了 mycroft.001 文件,001后缀一般是大文件分割成部分以 001、002、···,为后缀的小文件(常在分卷压缩中出现)。
这里可以把它当成不完整的磁盘镜像
使用 kali 自带工具 autopsy 进行分析磁盘镜像:
#该工具是网页交互工具
autopsy
访问 http://localhost:9999/autopsy 使用工具
创建新案例:
命名及其他信息:
添加镜像:add image -> add image file
这里的文件路径写你们的文件路径,因为文件不是完整的磁盘镜像因此选择 partition
加载文件:ANALYZE -> FILE ANALYSIS
在 Important 目录中发现 10_Points.txt、hint.jpg、mycroft.png
45 + 15 points
分析图片
查看上一步骤的 mycroft.png:
发现是一大串 16 进制代码,发现应该是地址,颜色花花绿绿的应该和颜色有关,其中有标红的转 16 进制为 22 应该代表 22 ssh 端口,绿色十六进制转字符串为 Khufiya(Khufiya在印地语中的意思是机密)可能是密码
尝试 ssh 连接
与之前一样,使用文件名作为用户名,Khufiya 为密码尝试登陆 ssh:
ssh mycroft@192.168.8.107
Khufiya
ls
cat 15_Points.txt
在该用户目录下发现 15_Points.txt、jim.wav
进行信息收集得到该机用户名如下:
60 + 15 points
scp 下载 jim.wav
scp mycroft@192.168.8.107:./jim.wav ./
分析 jim.wav
使用 audacity 分析 jim.wav 文件,查看频谱发现出现 deep sound 字样
使用 john 破解 hash
使用 john 自带 deepsound 脚本提取 hash 表进行爆破
/usr/share/john/deepsound2john.py jim.wav > hash #john脚本提取hash表
john --wordlist=/usr/share/wordlists/rockyou.txt hash #密码本破解hash
john hash --show #查看文件历史john解密结果(john相同文件第二次解密不显示,需使用该命令查看)
得到密码:poohbear(狗熊)
使用 deep sound 解密
将文件拖入 -> 使用密码解密 -> 提取文件 -> 打开文件所在目录
得到 15_Points.txt、creds.txt 再拿下 15 分
75 + 25 points
base64 解密
查看上一步的 creds.txt 文件,是一个 PGP 消息中间写入了一句 base64
解密 base64 得到明文:Bhediya
ssh 爆破
用 mycroft 用户登录时获得的用户名构造列表,用上一步解密结果作为密码,使用 msf 进行爆破登入:
msfconsole
use auxiliary/scanner/ssh/ssh_login #使用ssh login模块
set rhosts 192.168.8.107
set user_file ./user_file.txt #设置用户名表
set password Bhediya #设置密码
run
sessions 1
python3 -c "import pty;pty.spawn('/bin/bash')" #切换交互式shell
sudo -l #查看以sudo权限执行的命令(这里显示是所有命令都可以执行)
Bhediya #输入当前用户密码
sudo /bin/bash #以sudo权限开新shell
cd /root/
ls
HA: SHERLOCK 靶机渗透取证
靶机描述:
Description
HA: Sherlock! This lab is based on the famous investigator’s journey on solving the Curious Case of Harshit's murder!
This is a Forensic based Capture-the-Flag and is not a Boot-to-Root
So, put on your thinking caps and get ready to solve the case by finding the evidences bearing points. There is a total of 100 points scattered over the lab
Objective: Find all 100 points (Getting Root is not the objective)
Disclaimer: This machine works on VMWare. There might be IP related issues with Virtual Box.
靶机下载链接:https://www.vulnhub.com/entry/ha-sherlock,580/
环境部署
靶机:使用 VMware 打开上述网址下载的 ova 靶机文件
使用机:VMware 下的 Kali-Linux-2021.2-vmware-amd64、win10
(使用机与靶机在同一网络环境内)
主机发现
网络扫描
因为靶机与使用机在同一网络环境下,使用 kali 自带工具进行扫描发现靶机 ip、MAC 地址
netdiscover
端口扫描
使用 nmap 的 -A 参数进行综合扫描
nmap -A 192.168.8.106
发现其开放的端口及服务:
21-ftp 22-ssh 25-stmp
80-http 110-pop3 143-imap
993-ssl/imap 995-ssl/pop3
获得100分
0 + 15 pionts
(根据端口进行接入)
访问 80 端口查看信息
可以发现靶机的来龙去脉
查看源码
发现底部有段注释,隐藏了信息:
寻找 .mp4 文件
因为上边提到了两个名字,根据上边的 .mp4 提示访问 http://192.168.8.106/irene.mp4
发现是一只迷之生物打哈欠,未发现其他信息
尝试连接 22-ssh
连接发现提示信息和莫斯电码:
莫斯电码解密
使用在线或者其他工具进行莫斯电码解密得到明文:BASKERVILLE
下载 mp4 文件,使用 OurSecret 进行解密
根据上一步骤提示:BASKERVILLE 和 mp4 视频有关,访问刚才页面,下载视频;下载 OurSecret 解密软件解密
(OurSecret 是在 Windows 环境下安装的)
解密后得到 15_Points.txt 文件
15 + 10 points
pop3s 密码爆破
根据 http 网页上的名字:harshit 结合开启了 pip3s
我们尝试使用 hydra(九头蛇)工具进行爆破,字典使用 Kali 自带的 rockyou.txt,得到 harshit 密码 superman
hydra -l harshit -P /usr/share/wordlists/rockyou.txt 192.168.8.106 pop3s
登陆邮箱查看信息
使用上一步中获得的账密登陆邮箱:
openssl s_client -crlf -connect 192.168.8.106:110 -starttls pop3
user harshit
pass superman
retr 1 #查看第一封邮件
retr 2 #查看第二封
retr 3 #查看第三封
翻译就是这样子:
可以看到,是恐吓邮件,提取其中关键词:
“May 27, 2020 11:02:09 AM”
epoch(语义奇怪)
看到了时间一般就会和时间戳有关系
时间戳转换
一、可以以 epoch time 为关键词在网上搜一下就能找到工具
填写相关信息得到时间戳:
二、UTC时间转换
做好信息收集的同学可以发现,该靶机的制作组人位于英国,英国的时间为 UTC+00:00
目录查看
以时间戳构造路径并访问: http://192.168.8.106/1590577329/ 发现 10_Points.txt 和 名为 john 的内存镜像
25 + 10 points
内存取证
使用 volatility 进行取证
1.提取内存镜像信息
python2 ./vol.py -f ~/Downloads/john.mem imageinfo
2.查看运行进程
python2 ./vol.py -f ~/Downloads/john.mem --profile=WinXPSP2x86 pslist
发现 notepad(记事本)进程
3.查看 notepad 内容
python2 ./vol.py -f ~/Downloads/john.mem --profile=WinXPSP2x86 notepad
发现 Thcgpune 尝试 ROT13 解密(就硬解,要不就构造密码本将常用加密都试一遍进行爆破)
ROT13:Guptchar
尝试连接 ftp
根据内存镜像名和上述 ROT13 明文尝试连接 ftp 服务
ftp 192.168.8.107 #这里因为网络原因靶机ip从106变成了107(个人情况)
john
Guptchar
ls
发现文件夹,cd 进入发现两个文件,分别是 10_Points.txt、mycroft.001
cd files
ls
使用 get 获取文件:
get 10_Points.txt
get mycroft.001
Ctrl+z #返回原kali shell
cat ./10_Points.txt
35 + 10 points
使用 autopsy 分析磁盘镜像
上一步我们发现了 mycroft.001 文件,001后缀一般是大文件分割成部分以 001、002、···,为后缀的小文件(常在分卷压缩中出现)。
这里可以把它当成不完整的磁盘镜像
使用 kali 自带工具 autopsy 进行分析磁盘镜像:
#该工具是网页交互工具
autopsy
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BTbofqB1-1634523043756)(https://p1.ssl.qhimg.com/t01d7b38c5543cd19e7.png)]
访问 http://localhost:9999/autopsy 使用工具
创建新案例:
命名及其他信息:
添加镜像:add image -> add image file
这里的文件路径写你们的文件路径,因为文件不是完整的磁盘镜像因此选择 partition
加载文件:ANALYZE -> FILE ANALYSIS
在 Important 目录中发现 10_Points.txt、hint.jpg、mycroft.png
45 + 15 points
分析图片
查看上一步骤的 mycroft.png:
发现是一大串 16 进制代码,发现应该是地址,颜色花花绿绿的应该和颜色有关,其中有标红的转 16 进制为 22 应该代表 22 ssh 端口,绿色十六进制转字符串为 Khufiya(Khufiya在印地语中的意思是机密)可能是密码
尝试 ssh 连接
与之前一样,使用文件名作为用户名,Khufiya 为密码尝试登陆 ssh:
ssh mycroft@192.168.8.107
Khufiya
ls
cat 15_Points.txt
在该用户目录下发现 15_Points.txt、jim.wav
进行信息收集得到该机用户名如下:
60 + 15 points
scp 下载 jim.wav
scp mycroft@192.168.8.107:./jim.wav ./
分析 jim.wav
使用 audacity 分析 jim.wav 文件,查看频谱发现出现 deep sound 字样
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uROOQHjr-1634523043770)(https://p3.ssl.qhimg.com/t01995e613ac91bb485.png)]
使用 john 破解 hash
使用 john 自带 deepsound 脚本提取 hash 表进行爆破
/usr/share/john/deepsound2john.py jim.wav > hash #john脚本提取hash表
john --wordlist=/usr/share/wordlists/rockyou.txt hash #密码本破解hash
john hash --show #查看文件历史john解密结果(john相同文件第二次解密不显示,需使用该命令查看)
得到密码:poohbear(狗熊)
使用 deep sound 解密
将文件拖入 -> 使用密码解密 -> 提取文件 -> 打开文件所在目录
得到 15_Points.txt、creds.txt 再拿下 15 分
75 + 25 points
base64 解密
查看上一步的 creds.txt 文件,是一个 PGP 消息中间写入了一句 base64
解密 base64 得到明文:Bhediya
ssh 爆破
用 mycroft 用户登录时获得的用户名构造列表,用上一步解密结果作为密码,使用 msf 进行爆破登入:
msfconsole
use auxiliary/scanner/ssh/ssh_login #使用ssh login模块
set rhosts 192.168.8.107
set user_file ./user_file.txt #设置用户名表
set password Bhediya #设置密码
run
sessions 1
python3 -c "import pty;pty.spawn('/bin/bash')" #切换交互式shell
sudo -l #查看以sudo权限执行的命令(这里显示是所有命令都可以执行)
Bhediya #输入当前用户密码
sudo /bin/bash #以sudo权限开新shell
cd /root/
ls