ctf训练 Capture the Flag
CTF介绍
CTF是一种流行的信息安全竞赛形式,其英文名可直译为“夺得Flag",也可意译为“夺旗赛”。其大致流程是,参赛团队之间通过进行攻防对抗、程序分析等形式,率先从主办方给出的比赛环境中得到一串具有一定格式的字符串或其他内容,并将其提交给主办方,从而夺得分数。为了方便称呼,我们把这样的内容称之为“Flag"。
CTF比赛中涉及内容比较繁杂,我们要利用所有可以利用的方法获得flag。
实验环境
一台kail攻击机 和 靶机
靶机镜像:https://pan.baidu.com/s/1NNvw1V5Y_K3AEeOuTpkfSw
提取码:fjis
安装打开靶机(使用Oracle VM VirtualBox打开):
(注意:靶机用桥接模式则攻击机也用桥接模式,注意检查!!!!)
接下来发现没法登陆,也没有办法获取ip地址
所以我们在kail下
进入控制台
使用netdiscover命令 netdiscover -r ip/子网掩码 命令来探测靶机,靶机ip为192.168.43.87
本机ip为192.168.43.96
信息探测
扫描主机开放的端口号-- nmap -p- -T4靶场IP地址
快速扫描主机全部信息
–nmap -T4 -A -v靶场IP地址
探测敏感信息
– nikto -host http://靶场IP地址:端口
– dirb http://靶场IlP地址:端口
深入挖掘
分析nmap 、nikto扫描结果,挖掘可以利用的信息;
对于大端口非http服务,可以使用nc来探测该端口的banner信息;
— nc ip地址端口号
这里探测的是不知道服务的大端口号,有13337和60000
这里nc13337端口,直接获取得到flag值
这里我们直接获取得到了shell权限,id命令失败了,尝试一下pwd和ls一下,发现flag.txt
对于大端口http服务,可以使用浏览器浏览界面查看源代码,寻找flag值;
— http://ip地址:端口号
所以我们接着对大端口9090开放的http服务进行探测,去浏览器中访问,获得了flag
这是之前的探测结果,我们可以发现有一个可利用的passwords文件,到浏览器中进行访问
访问得到了下图,我们发现了又一个flag.txt,访问得到flag
接着我们查看passwords.html文件,发现没什么内容,查看源代码看一看有没有可利用的信息,然后得到一个密码winter,我们先把密码记下来,然后最大的想法就是去寻找一个用户名
深入挖掘
FTP匿名登录挖掘敏感信息;
在浏览器中输入 ftp://靶场IP地址 匿名登录ftp服务器根目录,查看敏感文件,注意一定要查看源代码;
我们之前探测到靶机开放了21端口,于是我们可以使用浏览器访问,再一次获得一个flag.txt
在站点robots.xt文件中寻找敏感文件,挖掘敏感文件漏洞;
这里发现了有文件的存在,我们接下来一一去访问一下
访问第一个,没有发现任何可利用的东西,接着去浏览器当中访问第二个文件。
这是第二个地址的访问结果,得到一个交互页面
我们输入ip地址,发现是get请求,所以有可能存在命令漏洞
接着输入127.0.0.1;id,发现返回了一些内容
这里我们想到之前获得的密码,所以我们试着去寻找用户名
对于命令执行中,为了绕过对应的限制,可以使用相近命令来代替限制的shell命令
如cat more
所以当cat命令没有回显,所以我们给它替换成more试一试,成功
找到了用户名
这里我们发现开放了ssh服务,所以当我们获得用户名Summer和密码winter时,我们可以使用ssh登录
登录靶场机器
获得对应的用户名和密码之后,可以通过ssh来登录系统,查看对应的flag值
— ssh -p port用户名@靶场lP地址
—之后输入对应的密码登录系统
我们发现ssh服务不能使用
— pwd ls cat more
—执行命令查看flag值
总结
1.注意未知服务的端口,可以使用nc获取对应的banner信息;
2、使用对应相近的shell命令来绕过限制;如cat more
3.对每一个服务都需要进行对应的探测,不放过任何一个可以利用的点