家庭数据中心系列 我的博客安全性评估(上):测试工具准备篇之Kali Linux安装及初始化

1 前言

这篇文章算是我兑现好多年前自己给自己下的一个目标。起因是,当时在测试公司防 D 产品时,需要写一篇常用流量模拟工具(用于模拟各种网络攻击流量)的使用手册,我就想:干脆我来写一篇吧。结果后来拖拖拉拉,最终也没写出来(当时可没有现在写博客文章的这种主动劲,都是能拖就拖,能不写就不写~)。

再加上,现在的简中互联网环境下,这类文章已经很难找到了,就算还能零零星星找到一些,很多工具的下载方式、安装方法甚至使用步骤都已经发生了变化,导致想要了解和学习的朋友不仅难以获取完整的资料,还容易被过时的信息误导。既然如此,我索性就整理一篇,把这些工具的安装、配置和基本使用方法系统地记录下来,希望能帮到有需要的人,也顺便填补这一块内容的空缺。同时,也算是给当年的自己一个交代吧。


注:说得好听,其实是升级成了Cloudflare Pro之后,我想看看WAF的托管规则和对绝对自动流量的防御效果到底如何,权当做一次简单的安全测试,所以需要一个测试工具机,反正都要安装配置一个,随便记录下过程就好,还能水一篇文章~。


不过,当我依旧想用最熟悉的Debian系统来部署的时候,无意中发现了Kali Linux这个已经内置了不少网络攻击模拟工具的安全测试发行版。相比于在 Debian 上手动安装各种工具,Kali 直接提供了一个开箱即用的环境,省去了许多安装、依赖管理和配置的麻烦。

那么,Kali Linux 究竟是什么?它有哪些独特之处?

2 Kali Linux简介

Kali Linux 是一款专门用于渗透测试(Penetration Testing)、网络安全研究、计算机取证的操作系统,它的前身是 BackTrack Linux

** Kali Linux 的起源**

2006 年:BackTrack Linux 诞生,由 Offensive Security(OSCP 认证的公司)开发,专注于网络安全和渗透测试。

2013 年:BackTrack 停止维护,Kali Linux 正式发布,作为 BackTrack 的继任者。

2020 年:Kali Linux 推出 非 root 默认用户模式,以增强安全性,并提供多种桌面环境(GNOME、XFCE、KDE)

为什么 Kali Linux 内置这么多渗透工具?

  1. 专为渗透测试而生

• Kali Linux 由 Offensive Security(OSCP 认证机构)维护,他们的目标是为安全研究人员、红队和黑客提供开箱即用的安全测试环境

  1. 内置 600+ 网络安全工具

• Kali 默认集成了大量著名的安全工具,包括:

信息收集:Nmap、Maltego、theHarvester

漏洞扫描:Nikto、SQLmap、OpenVAS

密码破解:John the Ripper、Hashcat、Hydra

无线渗透:Aircrack-ng、Kismet、Wifite

Web 渗透:Burp Suite、ZAP、OWASP工具

社会工程:Social-Engineer Toolkit(SET)

后渗透:Metasploit、Empire、PowerShell攻击工具

匿名工具:Tor、ProxyChains、I2P

这些工具大部分是开源的,可以独立安装,但 Kali 直接集成,省去了单独配置的麻烦。

  1. 定制化内核,适合安全测试

• Kali 使用了 自定义 Linux 内核,允许启用无线网卡监听模式(Monitor Mode)、数据包注入等高级功能,方便无线安全测试。

  1. 适合离线/便携测试

• Kali 可运行在 Live USB、虚拟机、WSL、ARM 设备(树莓派),随时随地进行安全测试。

Kali NetHunter 是一个适用于 Android 设备的 Kali 版本,支持手机上的无线测试。

我大概看了一下,Kali除了常用的渗透工具,我想要装的那些工具,在Kali中有部分已经预装了,比如hping3和slowloris,加上我还没玩过Kali Linux,所以这次就换个口味,不用Debian了,折腾一下Kali吧。

3 安装Kali Linux

3.1 安装方式的选择

KAli Linux支持多种安装方式:

image.png

其中,比较常用的应该是上图中红框标识的几种方式:Installer Images、Wirtual Machines、Containers(又分为docker和lxc/lxd),以下是这几种方式的对比:

方式 Install Images(ISO 安装) Virtual Machines(预装 VM 镜像) Docker(容器) LXC/LXD(轻量容器)
核心区别 传统完整安装方式 预装 Kali,适用于虚拟机环境 轻量级应用容器,运行单个或部分工具 轻量级系统容器,完整 Kali 体验
适用场景 物理机或 VM 需要完整 Kali 在 VM 软件(如 VirtualBox、VMware、PVE)中运行 仅需特定 Kali 工具,自动化任务 需要完整 Kali,但不想用 VM
系统完整度 完整 完整 仅部分工具 近乎完整,但可能有兼容性问题
性能消耗 物理机性能最佳 受限于 VM 资源分配 轻量级 轻量级,比 VM 更高效
是否有 GUI 默认支持 预装 GUI 默认无 GUI 可选安装 GUI(但非默认)
适合渗透测试 最适合 适合 仅适合 CLI 工具 适合,但可能需额外配置
适合 Proxmox VE 可行,但不够高效 适合 需要额外配置 可行,但没有官方 PVE 模板
安装方式 通过 ISO 安装 直接下载 VM 硬盘镜像(OVA/VMDK) docker pull 运行容器 lxc-create 或 lxc launch
适合长期使用 适合 适合 主要用于临时测试 适合,但管理方式与 PVE 传统 LXC 不同
可移植性 迁移不太方便(需手动克隆或重装) 易于迁移 高,可随时移动 高,可随时移动

本来,按照我的想法,在 PVE 上部署 Kali 时,如果有 LXC 方式可用,肯定是优先选择 LXC 方式的,毕竟 LXC 具有更轻量的资源占用、更快的启动速度,以及与宿主机共享内核的优势。然而,Kali 的 LXC/LXD 方式与 PVE 上常见的 LXC 模板安装方式存在较大差异,它实际上是基于 Debian系统手动安装的(这种安装方式也适合其他的Linux发行版),而不是提供现成的 PVE 兼容模板直接拿来就能用。这意味着在 PVE 上使用 LXC 运行 Kali 需要手动配置,并不像常见的 LXC模板方式那样便捷,所以对我来说有点鸡肋的感觉。

相比之下,Virtual Machines(预装 VM 镜像) 方式更加简单高效,官方提供的 OVA/VMDK 镜像可以直接导入 PVE,无需手动安装和配置,省去了 ISO 方式安装时的繁琐步骤(官方已经完成了初始化工作)。同时,它也比 LXC 方式更接近完整的 Kali 体验,支持 GUI 并且不会因容器环境导致某些工具无法正常运行。因此,最终我选择了 Virtual Machines(预装 VM 镜像) 方式来部署 Kali,兼顾了安装便捷性、系统完整性和长期使用的稳定性。

注:如果你想在 PVE 上使用 Kali,但对 Virtual Machines(直接导入虚拟机镜像) 方式又不太熟悉,也可以选择 Install Images 方式。具体做法是:在 PVE 上新建一个虚拟机,下载 Install Images 的 ISO 镜像并挂载为光驱,然后从光盘引导然后一步一步根据提示安装 Kali。这种方式相对简单,适合不想折腾的用户,不过,相比直接使用 Virtual Machines 方式(挂载预装镜像),这种方法步骤多很多(毕竟相当于从头安装系统)。因此,如果你使用PVE安装Kali又希望节省性能开销,还是建议优先考虑Virtual Machines的方式。

3.2 PVE上使用 Virtual Machines 方式部署Kali

注:由于采用这种方式需要使用qm disk import命令将qcow2格式的镜像文件导入指定的虚拟机,所以需要先创建虚拟机以获取其VM ID。

第一步、在PVE上创建一个虚拟机

按照如下图片教程在pve上创建一个虚拟机:

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

第二步、下载镜像并导入虚拟机

image.png

下载完成的文件是”.7z”扩展名的压缩包,解压后是qcow2格式的虚拟机镜像文件(假设为镜像文件名称为kali.qcow2)。将”kali.qcow2″镜像文件使用任意方式(sftp,ftp、smb)上传到PVE上的任意路径,假设是/var/lib/vz/images/,然后使用qm disk import命令将其导入之前新建的虚拟机中(此例中”VM ID”为112,存储为”local-lvm”):

qm disk import 112 /var/lib/vz/images/kali.qcow2 local-lvm

命令运行完成后会将镜像文件作为”未使用的磁盘”附加到VM 112中:

image.png

image.png

image.png

image.png

image.png

image.png

最后,就可以在控制台里开机了:
image.png

4 初始化kali

4.1 通过PVE控制台登入kali

初次启动时,需要从PVE控制台登录进入kali系统(默认登录系统时的用户名和密码均为”kali”):

image.png

进入系统:
image.png

注:sudo命令获取权限时的密码同样也是”kali”。

4.2 配置SSH远程登录

其实就是配置debian系统的SSH远程登录,默认openssh-server软件都是已经安装好了的,所以只需要设置一下相关配置文件即可,以允许kali账号使用用户名和密码远程SSH登录系统为例,需要进行如下设置:
* 允许使用kali账号名和密码登录SSH

默认kali的SSH只允许使用公钥方式登录,如果要使用用户名和密码登录,可以按照如下步骤操作。

编辑ssh_config文件:

sudo vim /etc/ssh/ssh_config

去掉PasswordAuthentication左边的#号并保存:

image.png

然后重启ssh服务,之后就使用kali账号和密码通过SSH登录了:

sudo systemctl restart ssh

在设置SSH服务开机自启:

sudo systemctl enable ssh

注:记得使用sudo passwd命令修改kali账号的默认密码。

  • 允许使用root账号登录SSH(从安全性角度不推荐)

kali和其他Debian系统默认设置一样,root账号正常是被禁止登录SSH的,如果要允许root账号通过SSH登录,可以按照如下步骤操作。

编辑sshd_config文件:

sudo vim /etc/ssh/sshd_config

去掉PermitRootLogin左边的#号,并将prohibit-password改为yes,然后保存:

image.png

然后重启ssh服务,之后就可以使用root账号和密码通过SSH登录了:

sudo systemctl restart ssh

注:记得使用sudo passwd root命令修改root账号的默认密码。

4.3 通过VNC客户端通过远程桌面登录kali

4.3.1 碎碎念

因为我只需要SSH即可,而kali要支持远程桌面访问,不管是VNC还是XRDP都还要折腾一下,我实在是懒得弄了(关键还影响系统稳定性),不过为了文章的完整性,还是简单的写一下。

4.3.2 安装和配置tightvncserver

  1. 安装 VNC 服务器
sudo apt update
sudo apt install tightvncserver
  1. 初始化 VNC 服务器并设置密码

执行以下命令来启动 VNC 服务器:

vncserver
  1. 停止 VNC 服务器

初始化后,你可以停止 VNC 服务器,以便配置它:

vncserver -kill :1
  1. 配置 VNC 启动脚本

创建一个 xstartup 文件,通常位于 ~/.vnc 目录下,编辑它来配置你希望启动的桌面环境:

vim ~/.vnc/xstartup

修改文件内容,确保它包含你喜欢的桌面环境(例如 xfce4),然后保存:

#!/bin/sh
xrdb $HOME/.Xresources
startxfce4 &
  1. 重启 VNC 服务器

启动 VNC 服务器:

vncserver :1

这样,VNC 服务器就会在 :1(端口 5901)上启动,允许通过VNC客户端进行远程桌面访问。

最后只需要使用 VNC 客户端(如 TigerVNC, RealVNC, 或 Vinagre 等)连接到 Kali 的 VNC 服务器,地址是 Kali_IP:1,其中 Kali_IP 是 Kali Linux 的 IP 地址,:1 是 VNC 会话的显示号。

注:如果不使用VNC方式,xrdp方式也可以,网上教程很多,我就不重复写了。

5 kali默认集成工具的梳理

以下是 Kali Linux 默认集成的一些常用工具,按功能类别进行整理:

1、 信息收集 (Information Gathering)

  • Nmap: 网络扫描工具,用于发现网络上的主机、服务、操作系统等信息。
  • Netdiscover: 网络发现工具,主要用于在局域网中发现活动主机。
  • Whois: 查询域名注册信息的工具。
  • Dnsrecon: DNS 信息收集工具。
  • theHarvester: 用于通过搜索引擎收集电子邮件、域名和其他信息。
  • Shodan: 一个用于搜索互联网连接设备的工具。
  • Maltego: 图形化信息收集和分析工具,适用于社交工程、网络分析等。

2、漏洞扫描 (Vulnerability Analysis)

  • Nikto: Web 服务器漏洞扫描器,能够检测各种漏洞,如 SQL 注入、跨站脚本等。
  • OpenVAS: 开源漏洞扫描工具,提供全面的漏洞扫描和管理。
  • Nessus: 商业漏洞扫描工具,Kali 中默认没有,但可以安装。
  • Burp Suite: 集成式的Web应用程序安全测试平台,提供代理、爬虫、扫描、漏洞分析等功能。
  • W3AF: Web 应用程序安全扫描工具,专注于寻找 Web 应用漏洞

3、无线网络攻击 (Wireless Attacks)

  • Aircrack-ng: 无线网络破解工具,支持 WEP、WPA、WPA2 等无线加密协议的攻击。
  • Reaver: 针对 WPS(Wi-Fi Protected Setup)的攻击工具。
  • Kismet: 无线网络嗅探工具,能够捕捉 Wi-Fi 网络流量和信号。
  • Fern WiFi Cracker: 以图形界面形式提供的无线网络破解工具。

4、Web应用安全 (Web Application Analysis)

  • OWASP ZAP (Zed Attack Proxy): 由 OWASP 提供的 Web 应用安全扫描工具,适合自动化和手动测试。
  • Dirbuster: Web 目录爆破工具,通过暴力破解方式检测隐藏的目录或文件。
  • Burp Suite: 主要用于 Web 应用安全测试,包含中间人代理、自动化扫描等。
  • Wfuzz: 高度灵活的 Web 目录和文件爆破工具。
  • Sqlmap: SQL 注入自动化攻击工具,可以帮助用户发现并利用 SQL 注入漏洞。

5 、密码攻击 (Password Attacks)

  • Hydra: 快速的密码破解工具,支持多种协议如 SSH、FTP、HTTP、Telnet 等。
  • John the Ripper: 强大的密码破解工具,支持多种算法和哈希形式。
  • Medusa: 类似于 Hydra 的网络登录爆破工具。
  • Hashcat: 世界上最快的密码破解工具之一,支持多种算法。
  • CeWL: 网络抓取工具,可以生成字典,供密码破解使用。

6、后渗透攻击 (Post Exploitation)

  • Metasploit Framework: 经典的渗透测试框架,提供了丰富的漏洞利用和后渗透攻击工具。
  • Empire: PowerShell 和 Python 后渗透攻击框架,支持命令和控制。
  • BeEF: 专注于浏览器的渗透框架,允许攻击者利用 Web 浏览器执行攻击。
  • Mimikatz: Windows 系统密码提取和认证凭证获取工具。
  • Netcat: 网络工具,常用于反向 shell 和端口监听。
  • SET (Social-Engineer Toolkit): 专注于社交工程攻击,允许通过电子邮件、USB 脚本等方式传播攻击。

7、渗透测试框架 (Exploitation Tools)

  • Metasploit Framework: 一个综合性的渗透测试框架,涵盖了漏洞利用、攻击模块、payload 生成等功能。
  • Armitage: Metasploit 的图形化前端工具,简化了渗透测试流程。
  • Veil Framework: 生成有效的、可绕过杀毒软件的 payloads。
  • Cobalt Strike: 商业渗透测试工具,提供全面的后渗透攻击和命令控制功能。

8、社会工程学攻击 (Social Engineering)

  • SET (Social-Engineer Toolkit): 提供一系列用于社交工程攻击的工具,如钓鱼邮件、Web 攻击等。
  • Evilginx2: 一个用于钓鱼攻击的中间人代理工具,能够高效地捕获并转发登录凭证。

9、恶意软件分析 (Malware Analysis)

  • Radare2: 强大的开源逆向工程框架,适用于恶意软件分析。
  • Cutter: Radare2 的图形化前端。
  • PEStudio: 用于分析 Windows 可执行文件的工具。
  • Volatility: 内存取证工具,广泛用于恶意软件分析和数字取证。

10、反取证工具 (Forensics)

  • Autopsy: 数字取证分析工具,用于分析硬盘和文件系统。
  • Sleuth Kit: 包含多个数字取证工具,适用于分析文件系统。
  • Plaso: 用于从事件日志中提取并构建事件时间线。

11、网络嗅探和监控 (Sniffing and Spoofing)

  • Wireshark: 网络协议分析工具,用于捕获和分析网络流量。
  • Ettercap: 网络嗅探和中间人攻击工具,适用于局域网中的流量拦截和修改。
  • Bettercap: 高效的网络嗅探工具,支持 ARP 欺骗和中间人攻击。
  • Dnsmasq: 用于网络流量分析和域名解析的工具。

12、隐私与加密工具 (Privacy and Cryptography)

  • Tor: 匿名通信工具,用于加密和隐藏用户的网络流量。
  • OpenSSL: 开源加密工具,支持多种加密算法。
  • GPG (GNU Privacy Guard): 用于加密和签名电子邮件或文件的工具。
  • TrueCrypt/VeraCrypt: 硬盘加密工具,保护数据隐私。

大家可以根据自己的需求选择不同的工具。

6 后话

虽然本文只是(上)篇,但是也可以算作专门讲Kali Linux部署的文章,只是对于网络攻击方面的测试来说,还差几个比较经典的工具,这些就放在(下)篇中来讲吧。不过(下)篇一时半会顾及写不了,因为我”云上灾备中心”从腾讯云轻量服务器搬到了Racknerd的VPS,好多东西要记录,只能以后有时间的时候再补上(下)篇了~。

分享这篇文章
博客内容均系原创,转载请注明出处!更多博客文章,可以移步至网站地图了解。博客的RSS地址为:https://blog.tangwudi.com/feed,欢迎订阅;如有需要,可以加入Telegram群一起讨论问题。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇
       
error:
zh_CN