从实践中学习Kali Linux渗透测试

发布时间:2022-11-17 13:30

目录

第一章 渗透测试概述

1.1 什么是渗透测试

1.1.1 黑盒测试

1.1.2 白盒测试

1.1.3 灰盒测试

1.2 渗透测试流程

1.3 Kali Linux系统概述

1.3.1 为什么使用Kali Linux

1.3.2 Kali Linux发展史

1.4 法律边界

1.4.1 获取合法权限

1.4.2 部分操作的危害性

第二章 安装Kali Linux系统

2.1 下载镜像

2.1.1 获取镜像

2.1.2 校验镜像

2.2 虚拟机安装

2.2.1 获取VMware软件

2.2.2 安装VMware

2.3 实体机安装

第三章 配置Kali Linux

3.1 认识Kali Linux

3.1.1 命令菜单

3.1.2 “文件”工具

3.1.3 终端

3.2 配置网络

3.2.1 配置无线网络

3.3 配置软件源

3.3.1 什么是软件源

3.3.2 添加软件源

3.3.3 更新软件源/系统

3.4 安装软件源的软件

3.4.1 确认软件包名

3.4.2 安装/更新软件

3.4.3 移除软件

3.4.4 安装虚拟机增强工具

3.4.5 使用VMware共享文件夹

3.5 安装第三方软件

3.5.1 安装二进制文件

3.5.2 安装源码包

3.5.3 安装源码共享式

3.5.4 安装Windows软件

3.6 执行软件

3.6.1 普通软件

3.6.2 执行脚本

3.7 安装驱动

3.7.1 查看设备


第一章 渗透测试概述

1.1 什么是渗透测试

1.1.1 黑盒测试

黑盒测试(Black-box Testing)也称为外部测试(External Testing)。采用这种方式,测试者将从一个远程网络位置评估目标网络基础设施,并没有任何目标网络内部拓扑等相关信息。完全模拟真实网络环境中的外部攻击者,采用流行技术与工具有组织、有步骤的对目标组织进行渗透和入侵,揭示目标网络中一些已知或未知的安全漏洞,并评估这些漏洞能否被利用。

优点:有利于挖掘出系统潜在的漏洞,以及脆弱环节和薄弱点。

缺点:测试较为费时和费力,同时需要渗透测试者具备较高的技术能力。

1.1.2 白盒测试

白盒测试(White-box Testing)也称为内部测试(Internal Testing)。采用这种方式,测试者可以了解到关于目标环境的所有内部和底层信息,这可以让渗透测试人员以最小的代价发现和验证系统中最严重的漏洞。白盒测试的实验流程与黑盒测试类似,但是不需要进行目标定位和情报收集。测试人员可以通过正常渠道从被测试机构获取各种资料(网络拓扑、员工资料、网站程序代码片段),也可以与员工面对面沟通。

优点:发现和解决问题所花费的时间和代价要比黑盒测试少很多。

缺点:无法有效的测试客户组织的应急响应程序,也无法判断出他们的安全防护计划对特定攻击的检测效率

1.1.3 灰盒测试

灰盒测试(Grey-box Testing)是白盒测试和黑盒测试基本类型的组合,提供对目标系统更加全面和深入的安全审查。测试者需要从外部逐步渗透进目标网络,选择更好的选择攻击途径与方法,从而达到更好的渗透测试效果。

1.2 渗透测试流程

渗透测试的工作流程:

从实践中学习Kali Linux渗透测试_第1张图片

  1. 前期交互 进行渗透测试前,测试者需要与渗透测试目标、渗透测试范围、渗透测试方式、服务合同等细节进行商议,以达成一致协议。是之后进行渗透测试的基础与关键。

  2. 信息收集 渗透测试者需要使用各种公开的资源尽可能地获取与测试目标相关的信息。可以借助互联网进行信息收集,如官网、论坛、博客等。同时,也可以借助各大搜索引擎来获取相关信息(Baidu、Google),还可以借助Kali Linux的工具来对DNS信息、注册人信息、服务信息、WAF信息等进行收集,这个阶段收集的信息越充分,对之后的测试越成功。

  3. 漏洞扫描 当渗透测试者收集到足够的信息,就可以对目标实施漏洞扫描了。测试者通过网络对目标系统进行探测,向目标系统发送数据,并将反馈数据与自带的漏洞特征库进行匹配,进而列举出目标系统上存在的漏洞。

  4. 漏洞利用 当测试者探测到目标主机存在漏洞之后就可以通过已有的漏洞利用程序对目标进行渗透。一般情况下,测试者需要考虑到目标系统的环境对漏洞利用程序进行修改和额外的研究,否则无法进行工作。同时,在该阶段也要考虑到对目标系统的安全机制的逃逸,从而避免让目标系统发现。

  5. 编写报告 完成渗透测试后,需要对此次渗透测试编写测试报告。在报告中需要包括获取到的各种有价值的信息,以及探测和挖掘出来的安全漏洞、成功攻击过程及对业务造成的影响和后果分析等。同时,还要明确写出目标系统中存在的漏洞及漏洞的修补方法。

1.3 Kali Linux系统概述

Kali Linux是一个基于Debian的Linux发行版,包括很多安全和取证方面的相关工具。

1.3.1 为什么使用Kali Linux

1.工具仓库

信息收集 工具集 嗅探欺骗 工具集 密码攻击 工具集 漏洞分析 工具集 漏洞利用 工具集 无限渗透 工具集
DNSRecon EtterCap Crunch SQLmap Msfconsole Aircrack-ng
Dnsenum driftnet CeWL sqlsus BeFF Fern WiFi Cracker
DotDotPwn dsniff Hash-Identifier Sqlninja SQLmap Wifite
parsero ferret-sidjack findmyhash BBQSQL RouterSploit Reaver
Maltego 0trace RainbowCrack jSQL Yersinia Bully
Amap HexInject John Oscanner Social-Engineer Toolkit PixieWPS
Fping prettypacket Ncrack SidGuesser exploitdb Kismet
Sparta hex2raw THC-Hydra Doona sandi Cowpatty
Hping3 tcpreplay Patator Lynis shellnood MDK3
Ghost Phisher Wafw00f Medusa Powerfuzzer Backdoor Factory Wifi Honey
Nmap DNSChef acccheck Yersinia sandi Pyrit

2.不断更新

Kali Linux更新速度快,大约每三个月会更新一次

1.3.2 Kali Linux发展史

1.前身BackTrack Linux

是一套专业的计算机安全检测Linux操作系统。集成了包括Metasploit等200多种安全渗透工具。

2.历史版本

Kali Linux从发布至今共有4个版本代号,分别是moto、kali、sana和kali-rolling。

Kali 2019.2 - 2019年5月21日 - 2019年第二次Kali Rolling发布。内核4.19.28,GNOME 3.30.2

Kali 2019.1a - 2019年3月4日 - 次要BugFix版本(VMware Installer)。

Kali 2019.1 - 2019年2月18日 - 第一个2019年Kali Rolling发行。内核4.19.13,GNOME 3.30.2

Kali 2018.4 - 2018年10月29日 - 第2018年Kali Rolling发布。内核4.18.0,GNOME 3.30.1

Kali 2018.3 - 2018年8月27日 - 第2018年Kali Rolling第三次发布。内核4.17.0,GNOME 3.28.2

Kali 2018.2 - 2018年4月30日 - 第二次2018年Kali Rolling发行。内核4.15.0,GNOME 3.28.0

Kali 2018.1 - 2018年2月6日 - 第2018年Kali Rolling发布。内核4.14.12,GNOME 3.26.2

Kali 2017.3 - 2017年11月21日 - 2017年第三届Kali Rolling发布。内核4.13,GNOME 3.26

Kali 2017.2 - 2017年9月20日 - 2017年第二届Kali Rolling发布。内核4.12,GNOME 3.25。

Kali 2017.1 - 2017年4月25日 - 2017年第一次Kali Rolling发布。内核4.9,GNOME 3.22。

Kali 2016.2 - 2016年8月31日 - 第二次Kali Rolling发行。内核4.6,GNOME 3.20.2。

Kali 2016.1 - 2016年1月21日 - 第一次Kali Rolling发布。内核4.3,GNOME 3.18。

Kali 2.0 - 2015年8月11日 - 主要版本,“safi”,现在是一个滚动发行版,主要UI更改。

Kali 1.1.0a - 2015年3月13日 - 没有大张旗鼓发布修复安装程序内核ABI不一致的问题。

Kali 1.1.0 - 2015年2 月9日 - 2年内首次发布。新内核,新工具和更新。

Kali 1.0.9a - 2014年10月6日 - 安全BugFix版本,涵盖shellshock和Debian apt漏洞。

Kali 1.0.9 - 2014年8月25日 - BugFix发布包括安装程序和一组工具更新和软件包修复。

Kali 1.0.8 - 2014年7月22日 - EFI支持我们的“完整”ISO和一系列工具更新和软件包修复。

Kali 1.0.7 - 2014年5月27日 - 内核3.14,工具更新,软件包修复,Kali Live加密USB持久性。

Kali 1.0.6 - 2014年1月9日 - 内核3.12,cryptsetup nuke选项,Amazon AMI,ARM构建脚本。

Kali 1.0.5 - 2013年9月5日 - BugFix汇总。LVM加密安装,软件定义无线电(SDR)工具。

Kali 1.0.4 - 2013年7月25日 - BugFix汇总。渗透测试工具的添加和更新。

Kali 1.0.3 - 2013年4月26日 - BugFix汇总。新的辅助功能。添加实时桌面安装程序

Kali 1.0.2 - 2013年3月27日 - 次要BugFix发布和更新汇总。

Kali 1.0.1 - 2013年3月14日 - 小型BugFix版本(USB键盘)。

Kali 1.0.0 - 2013年3月13日 - 首次发布,“moto”。

3.当前版本

Kali 2019.3 - 2019年9月2日 - 第2019年Kali Rolling发布。内核5.2.9,GNOME 3.30.2

1.4 法律边界

1.4.1 获取合法权限

以下列举几条与渗透测试相关的法律条文: (1)违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役。 (2)违反国家规定,侵入前款规定以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或者传输的数据,或者对该计算机信息系统实施非法控制,情节严重的,处三年以下有期徒刑或者拘役,并处或者单处罚金;情节特别严重的,处三年以上七年以下有期徒刑,并处罚金。 (3)提供专门用于侵入、非法控制计算机信息系统的程序、工具,或者明知他人实施侵入、非法控制计算机信息系统的违法犯罪行为而为其提供程序、工具,情节严重的,依照前款的规定处罚。 (4)违反国家规定,对计算机信息系统中存储、处理或者传输的数据和应用程序进行删除、修改、增加的操作,后果严重的,依照前款的规定处罚。 (5)故意制作、传播计算机病毒等破坏性程序,影响计算机系统正常运行,后果严重的,依照第一款的规定处罚。

1.4.2 部分操作的危害性

渗透测试者在渗透测试前必须要以正式的方式告诉目标主机所有者渗透测试可能造成的影响,并要求对方确认。

(1)占用系统资源 渗透测试过程中,部分操作会占用大量的系统资源。DOS攻击、暴力破解操作、网络端口扫描等。

(2)留下后门 渗透测试在利用漏洞实施攻击后,可能会留下后面,需要及时清理后门,以免被他人利用。

第二章 安装Kali Linux系统

2.1 下载镜像

2.1.1 获取镜像

1.镜像种类

(1)稳定版:经过完整测试,使用更稳定。

(2)周更新版:包含的工具为最新版本,但测试不充分,存在一定的不稳定性。

​ 2.位数区别

(1)i386:32位架构。

(2)amd64:64位架构。

​ 3.桌面类型

(1)GNOME(推荐)

(2)E17

(3)KDE

(4)MATE

(5)XFCE

(6)LXDE

4.下载镜像

可以直接去官网下载链接

Kali Linux | Penetration Testing and Ethical Hacking Linux Distribution

从实践中学习Kali Linux渗透测试_第2张图片

下载中间的稳定版,下载好之后他在文件夹显示的文件是:

image-20211216160958704

是压缩文件没问题,这个就可以直接用了

ISO:ISO文件其实就是光盘的镜像文件,刻录软件可以直接把ISO文件刻录成可安装的系统光盘,ISO文件一般以iso为扩展名

2.1.2 校验镜像

下载过程中有可能出现文件损坏,用户可以使用校验工具进行校验。然后对比校验获取的值和镜像文件提供的值是否相同。

 1. win+R打开对话框,输入cmd命令回车,打开命令行窗口。

从实践中学习Kali Linux渗透测试_第3张图片

  1. 输入命令certutil -hashfile D:\vm\镜像\kali-linux-2021.3a-installer-amd64.iso sha256

从实践中学习Kali Linux渗透测试_第4张图片

  1. 查看与官方hash值是否相等

网址为【mirrors.neusoft.edu.cn/kali-images/kali-2021.3/SHA256SUMS】

从实践中学习Kali Linux渗透测试_第5张图片

  1. 对比文件的校验值

2.2 虚拟机安装

2.2.1 获取VMware软件

官方网站:【下载 VMware Workstation Pro | CN】

从实践中学习Kali Linux渗透测试_第6张图片

从实践中学习Kali Linux渗透测试_第7张图片

2.2.2 安装VMware

由于本人已经下载安装完,所以放两个我对着下载安装的博客。

VMware的安装教程参考下方博客:

VM虚拟机下载及安装教程糯米-CSDN博客vmware下载及安装步骤

Kali Linux安装教程参考下方博客:

kali linux虚拟机镜像的安装saqbanban的博客-CSDN博客kali linux 镜像

2.3 实体机安装

电脑太垃圾,没进行这一步,放个链接:

windows 10下安装kali linux 双系统教程Cyanogen_dom的博客-CSDN博客windows安装kali双系统

第三章 配置Kali Linux

3.1 认识Kali Linux

3.1.1 命令菜单

在Kali Linux中提供了大量的渗透测试工具。如信息收集、漏洞分析、Web程序等。

从实践中学习Kali Linux渗透测试_第8张图片

3.1.2 “文件”工具

树状目录结构:

从实践中学习Kali Linux渗透测试_第9张图片

以下是对这些目录的解释:

  • /bin: bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。

  • /boot: 这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。

  • /dev : dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。

  • /etc: etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。

  • /home: 用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。

  • /lib: lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。

  • /lost+found: 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

  • /media: linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。

  • /mnt: 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。

  • /opt: opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

  • /proc: proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。 这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

     echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
  • /root: 该目录为系统管理员,也称作超级权限者的用户主目录。

  • /sbin: s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。

  • /selinux: 这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

  • /srv: 该目录存放一些服务启动之后需要提取的数据。

  • /sys

    这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。

    sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。

    该文件系统是内核设备树的一个直观反映。

    当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

  • /tmp: tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。

  • /usr: usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。

  • /usr/bin: 系统用户使用的应用程序。

  • /usr/sbin: 超级用户使用的比较高级的管理程序和系统守护程序。

  • /usr/src: 内核源代码默认的放置目录。

  • /var: var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

  • /run: 是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号