CTF实践

CTF实践

1.实验目的

实验目的:通过对目标靶机的渗透过程,了解CTF竞赛模式,理解CTF涵盖的知识范围,如MISC、PPC、WEB等,通过实践,加强团队协作能力,掌握初步CTF实战能力及信息收集能力。熟悉网络扫描、探测HTTP web服务、目录枚举、提权、图像信息提取、密码破解等相关工具的使用。

系统环境:Kali Linux 2、WebDeveloper靶机来源:https://www.vulnhub.com/

实验工具:不限

2.实验内容、原理
实验原理:

1、什么是CTF
CTF(Capture The Flag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展至今,已经成为全球范围网络安全圈流行的竞赛形式,2013年全球举办了超过五十场国际性CTF赛事。而DEFCON作为CTF赛制的发源地,DEFCON CTF也成为了目前全球最高技术水平和影响力的CTF竞赛,类似于CTF赛场中的“世界杯”。

1.1 CTF竞赛模式

(1)解题模式(Jeopardy)在解题模式CTF赛制中,参赛队伍可以通过互联网或者现场网络参与,这种模式的CTF竞赛与ACM编程竞赛、信息学奥赛比较类似,以解决网络安全技术挑战题目的分值和时间来排名,通常用于在线选拔赛。题目主要包含逆向、漏洞挖掘与利用、Web渗透、密码、取证、隐写、安全编程等类别。

(2)攻防模式(Attack-Defense)在攻防模式CTF赛制中,参赛队伍在网络空间互相进行攻击和防守,挖掘网络服务漏洞并攻击对手服务来得分,修补自身服务漏洞进行防御来避免丢分。攻防模式CTF赛制可以实时通过得分反映出比赛情况,最终也以得分直接分出胜负,是一种竞争激烈,具有很强观赏性和高度透明性的网络安全赛制。在这种赛制中,不仅仅是比参赛队员的智力和技术,也比体力(因为比赛一般都会持续48小时及以上),同时也比团队之间的分工配合与合作。

(3)混合模式(Mix)结合了解题模式与攻防模式的CTF赛制,比如参赛队伍通过解题可以获取一些初始分数,然后通过攻防对抗进行得分增减的零和游戏,最终以得分高低分出胜负。采用混合模式CTF赛制的典型代表如iCTF国际CTF竞赛。

1.2 CTF各大题型简介

MISC(安全杂项)
全称Miscellaneous。题目涉及流量分析、电子取证、人肉搜索、数据分析、大数据统计等等,覆盖面比较广。我们平时看到的社工类题目;给你一个流量包让你分析的题目;取证分析题目,都属于这类题目。主要考查参赛选手的各种基础综合知识,考察范围比较广。

PPC(编程类)
全称Professionally Program Coder。题目涉及到程序编写、编程算法实现。算法的逆向编写,批量处理等,有时候用编程去处理问题,会方便的多。当然PPC相比ACM来说,还是较为容易的。至于编程语言嘛,推荐使用Python来尝试。这部分主要考察选手的快速编程能力。

CRYPTO(密码学)
全称Cryptography。题目考察各种加解密技术,包括古典加密技术、现代加密技术甚至出题者自创加密技术。这样的题目汇集的最多。这部分主要考查参赛选手密码学相关知识点。

REVERSE(逆向)
题目涉及到软件逆向、破解技术等,要求有较强的反汇编、反编译扎实功底。需要掌握汇编,堆栈、寄存器方面的知识。有好的逻辑思维能力。主要考查参赛选手的逆向分析能力。此类题目也是线下比赛的考察重点。

STEGA(隐写)
全称Steganography。题目的Flag会隐藏到图片、音频、视频等各类数据载体中供参赛选手获取。载体就是图片、音频、视频等,可能是修改了这些载体来隐藏flag,也可能将flag隐藏在这些载体的二进制空白位置。有时候需要你侦探精神足够的强,才能发现。此类题目主要考查参赛选手的对各种隐写工具、隐写算法的熟悉程度。

PWN(溢出)
PWN在黑客俚语中代表着攻破,取得权限,在CTF比赛中它代表着溢出类的题目,其中常见类型溢出漏洞有栈溢出、堆溢出。在CTF比赛中,线上比赛会有,但是比例不会太重,进入线下比赛,逆向和溢出则是战队实力的关键。主要考察参数选手漏洞挖掘和利用能力。

WEB(web类)
WEB应用在今天越来越广泛,也是CTF夺旗竞赛中的主要题型,题目涉及到常见的Web漏洞,诸如注入、XSS、文件包含、代码审计、上传等漏洞。这些题目都不是简单的注入、上传题目,至少会有一层的安全过滤,需要选手想办法绕过。且Web题目是国内比较多也是大家比较喜欢的题目。因为大多数人开始安全都是从web*站开始的。

3.实验过程
实验步骤和内容:

目的:获取靶机Web Developer 文件/root/flag.txt中flag。
基本思路:本网段IP地址存活扫描(netdiscover);网络扫描(Nmap);浏览HTTP 服务;网站目录枚举(Dirb);发现数据包文件 “cap”;分析 “cap” 文件,找到网站管理后台账号密码;插件利用(有漏洞);利用漏洞获得服务器账号密码;SSH 远程登录服务器;tcpdump另类应用。

实施细节如下:
1、发现目标 (netdiscover),找到WebDeveloper的IP地址。截图。

在Kali终端模拟器输入sudo su ,然后ifconfig 得到自己的kali的ip地址192.168.179.130,输入命令netdiscover -r 自己的IP,得到WebDeveloper的IP地址192.168.179.254
(这里可以一个个扫描发现192.168.179.131的80端口开放,所以ip是它)
在这里插入图片描述

2、:利用NMAP扫描目标主机,发现目标主机端口开放、服务情况,截图并说明目标提供的服务有哪些?(利用第一次实验知识点)
在这里插入图片描述

目标主机端口开放,服务情况:
80端口:http服务
22端口(ssh端口):SSH服务
3、若目标主机提供了HTTP服务,尝试利用浏览器访问目标网站。截图。是否有可用信息?
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、利用whatweb探测目标网站使用的CMS模板。截图。分析使用的CMS是什么?
输入命令:whatweb 192.168.179.131(靶机Web Developer的IP地址)
在这里插入图片描述

CMS模板:WordPress[4.9.8]
5、网络搜索wpscan,简要说明其功能。
在这里插入图片描述

Wpscan:wpscan是专门用来扫描WordPress的扫描工具,可以对于wordpress进行漏洞扫描,还可以对于其中的主题,插件进行扫描。可以说用wpscan扫描WordPress是非常非常方便的,wpscan是kali里面自带的
wpscan常见命令:参考链接
wpscan常见命令

在这里插入图片描述

6、使用 Dirb 爆破网站目录。(Dirb 是一个专门用于爆破目录的工具,在 Kali 中默认已经安装,类似工具还有国外的patator,dirsearch,DirBuster, 国内的御剑)截图。找到一个似乎和网络流量有关的目录(路径)。
在这里插入图片描述

路径:http://192.168.179.131/ipdata/
7、利用上一步得到的信息进入网站后台。截图。
(网站管理员账号与操作系统账号是不同概念)
打开浏览器访问以上路径http://192.168.179.131/ipdata/,得到一个cap地址
在这里插入图片描述

8、利用Wireshark分析该数据包,分析TCP数据流。找到什么有用的信息?截图。
下载cap文件,用wiresharp打开,过滤器中输入http.request.mothod==POST
得到以下信息
Log:webdeveloper
Pwd:Te5eQg&4sBS!Yr$)wf%(DcAd
在这里插入图片描述

9、利用上一步得到的信息进入网站后台。截图。
(网站管理员账号与操作系统账号是不同概念)
回到访问靶机ip地址的网站,点击login
在这里插入图片描述

接着输入抓包来的账号和密码
在这里插入图片描述

在这里插入图片描述

9、利用该CMS存在的(插件Plugin)漏洞。
可选方案1:利用MeterSploit插件+reflex gallery插件漏洞实现。安装reflex gallery插件。利用该插件可能存在的漏洞。(课本知识点)
建立会话后,查看wp-config.php获得账号及口令。(配置文件很重要,各种系统的配置文件)。
获得的账号、口令是用来访问什么目标?注意与第7步描述比较。
在这里插入图片描述
在这里插入图片描述

可选方案2:上传反弹shell。
http://pentestmonkey.net/tools/web-shells/php-reverse-shell
【目的:PHP网站渗透;实现途径:上传网站后,URL访问(含有)该反弹shell的页面。
功能:该脚本会发起反弹TCP连接到攻击者(脚本中指定攻击者IP地址和端口号)。】
该CMS为PHP开发,可以利用其实现反弹shell。但必须修改初始化IP地址和端口。(指向攻击者)。
在这里插入图片描述

进入后台,找到任意一个PHP页面,然后利用php-reverse-shell.PHP的代码修改该页面的代码。
在这里插入图片描述

修改代码中反弹目标的IP地址及端口(修改为攻击者IP地址及开放的端口号)。
在这里插入图片描述

攻击者在Kali中利用NC开始监听,攻击者浏览器访问修改的PHP页面。从而得到反弹shell(用户www-data)。建立会话后,查看wp-config.php获得账号及口令。(注意路径)
在这里插入图片描述
在这里插入图片描述

方案3:利用文件管理插件(File manager)漏洞。
安装该插件,直接可以浏览wp-config.php。

以上方案三选一,或找到可以实现的方案,操作步骤截图。

(1)Plugin->addnew->关键字中输入filemaneger->点击install->active

在这里插入图片描述
在这里插入图片描述

(2)点击WP File Manager,找到wp-config.php,右键点击open,打开“wp-config.php”文件,可以找到服务器的登录密码
在这里插入图片描述

得到username:webdeveloper password:MasterOfTheUniverse
在这里插入图片描述

10、SSH登录服务器
尝试利用上一步获得的访问数据库的用户名和密码连接远程服务器。截图。
kali本机输入命令行ssh webdeveloper@192.168.179.131,输入破解得到密码登录

在这里插入图片描述

查看/root/flag.txt,都被拒绝

在这里插入图片描述

10、使用tcpdump执行任意命令(当tcpdump捕获到数据包后会执行指定的命令。)
查看当前身份可执行的命令。
在这里插入图片描述

发现可以root权限执行tcpdump命令
创建攻击文件

touch /tmp/exploit1

写入shellcode

echo 'cat /root/flag.txt' > /tmp/exploit

赋予可执行权限

chmod +x /tmp/exploit

利用tcpdump执行任意命令

sudo tcpdump -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/exploit -Z root

获得flag
在这里插入图片描述

tcpdump命令详解:
-i eth0 从指定网卡捕获数据包
-w /dev/null 将捕获到的数据包输出到空设备(不输出数据包结果)
-z [command] 运行指定的命令
-Z [user] 指定用户执行命令
-G [rotate_seconds] 每rotate_seconds秒一次的频率执行-w指定的转储
-W [num] 指定抓包数量

4.实验小结
这次实验了解了一些没有用过的工具
4.1Netdiscover
二层发现工具,拥有主动和被动发现两种方式。
基本用法

4.2Whatweb
WhatWeb可以用来确定服务器使用的CMS、博客平台、统计分析软件包、JavaScript库等.这个工具有超过900个插件用来扫描目标.
4.3 Dirb
dirb是一个基于字典的web目录扫描工具,会用递归的方式来获取更多的目录,它还支持代理和http认证限制访问的网站

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值