渗透测试靶场之:FormatWorld(更新中)
引子
前段时间参加了一个网络安全的线上培训,发现网安老师演示的FormatWorld靶场实例很有意思,作为小白的我忍不住记录下来。靶场需要我们逐步提权,最终get五个flag,涉及不少基础的渗透测试的工具和手段。喜欢的小伙伴点赞收藏支持一下。
准备环境(靶机和攻击机需使用NAT模式)
1.攻击机:kali(ip:192.168.208.135)。我的是kali-2021.3版本的,有点老,但不影响使用。
2.靶机:FormatWorld(ip:192.168.208.138)。
靶机网盘下载链接:https://pan.baidu.com/s/1kmJzBJLXD4Kd9BAuQVSIFQ
提取码:wjvs
获取flag1
1.查看同一个网段下存活的ip地址
arp-scan -l
其中,192.168.208.1是Windows真实机在虚拟网卡VMnet8下的ip地址,192.168.208.2是VMnet8的网关,192.168.208.254是DHCP对ip的分配上限。很容易排除知道靶机ip为192.168.208.138。
或者也可以用下面的命令:
nmap -sP 192.168.208.0/24
-sP:ping扫描,但不进行端口扫描。
2.扫描靶机ip开放的端口
nmap -sV 192.168.208.138
-sV:可以显示服务的详细版本。
看到了开启的端口号、对应的服务和版本。但与常识相悖的是,ssh服务的端口号不是22,而是5555,先不屌它。
3.寻找ftp服务的漏洞
该靶机ftp版本为vsftpd 2.0.8或之后的版本,使用searchsploit命令寻找漏洞:
searchsploit vsftpd 2.0.8
searchsploit vsftpd 2.3.4
虽然vsftpd 2.0.8没有已知漏洞,但网上查资料知vsftpd 2.3.4存在漏洞。
这是著名的笑脸漏洞。vsftpd 2.3.4版本存在一个后门漏洞,这个后门的载荷以:)字符的形式拼接在用户名上,后门代码绑定的侦听端口是6200。利用下面nmap命令确认一下:
nmap -sS -T4 -A -p- 192.168.208.138
-sS:进行SYN半连接扫描(优点是速度很快,缺点是精确度相对较低,并且需要root权限)。
-T4:-T指定扫描时使用的时序模板,共0-5六个等级,等级越高,扫描速度越快,但是容易被防火墙和入侵检测设备发现。一般认为,4是最合适的等级参数。
-A:全面扫描。
-p-:全端口扫描。
发现果然允许ftp匿名登录。
4.利用漏洞进行ftp匿名登录
安装lftp。lftp是著名的字符界面的文件传输工具,支持ftp、sftp、ftps、http、https和fish协议。
apt-get install lftp
匿名登录:
lftp 192.168.208.138
输入user anonymous后输入密码,什么都行,我输的是123.com。
ls后可以看到一个文件WELCOME。get命令传到kali的root目录下,新建终端并查看:
欢迎来到FormatWorld!至此,信息收集任务完毕,那么如何获取flag1呢?
5.获取flag1
直接ls只有WELCOME一个文件,我们不妨使用ls -al查看一下隐藏文件,发现异常目录...,cd进去,再ls -al。发现可疑目录.bak,cd进去,再ls -al。操作如下图:
使用get命令将flag1.txt和firewall.sh传到root目录下,新建终端并查看:
get到flag1。另外,firewall.sh中含有关键词SYN、OUTPUT和tcp,即允许SYN出,恰好印证了前面nmap扫描时的-sS参数的可行性。
获取flag2
1.爆破8000端口的目录
21端口信息用完了,再研究下8000端口,它是http服务,故访问一下http://192.168.208.138:8000。
是一个登录网站,网页内容透露username是pinkadmin,其他一概不知,此时需再次使用nmap命令查询8000端口的目录,寻找有用信息:
nmap -sS -T4 -A -p- 192.168.208.138
或者直接使用dirb命令爆破目录(时间较长):
dirb http://192.168.208.138:8000
nmap扫描的结果为:
发现CHANGELOG.txt,直接访问http://192.168.208.138:8000/CHANGELOG.txt:
看到Drupal的版本是Drupal 7.57。
2.寻找Drupal的漏洞
由于Drupal 7.57的发行时间是2018-02-21,如此久远的版本必定是千疮百孔、漏洞百出,searchsploit命令看一下:
searchsploit Drupal 7.57
找下44449.rb的路径:
find / -name 44449.rb
Drupal 7.57的版本满足第四行的条件,因此可以利用/usr/share/exploitdb/exploits/php/webapps/44449.rb这个脚本。给它复制到root目录下,并查看内容:
cp /usr/share/exploitdb/exploits/php/webapps/44449.rb .
发现是[CVE-2018-7600]的漏洞类型。
3.获取shell
运行一下44449.rb,但在这之前必须安装highline否则报错:
gem install highline
gem命令用于构建、上传、下载以及安装gem包。
运行44449.rb:
./44449.rb
显示用法不对,按用法执行下面的命令:
ruby 44449.rb http://192.168.208.138:8000
拿到了如下的shell:
之后就是常规操作了:
get到flag2。