二、Kali Linux认证专家考前复习指南
前言
本文是基于笔者多年的网络安全工作经验,并参考了Kali Linux官方教程《Kali Linux Revealed》而写的,专为信息安全爱好者和有意参加Kali Linux认证专家(KLCP)考试的同学们而撰写的。
一、什么是Kali Linux认证专家(KLCP)
1.1 认证概述
Kali Linux认证专家(KLCP)是一项信息安全专业认证。持有KLCP证书的人可以证明他们对Kali Linux渗透测试平台有深入的理解。持有该证书的个人已经具备了将Kali Linux用作超级用户的技能和能力,能够创建高度定制和安全的部署。此外,KLCP还为任何信息安全专业人员提供了基础知识,使他们可以将其作为信息安全事业的坚实基础,或者作为进一步高级培训和认证的第一步。
1.2 考试概况
KLCP认证考试是一项基于计算机上机考试的认证,包含80道多项选择题。你将有90分钟的时间完成考试,并在完成后收到你的分数。这些问题来源于上述书籍和知识体系所涵盖的材料。
1.3 证书获取
如果你通过了认证考试,你将收到一份显示你成绩的打印证书。Kali Linux团队将与您联系,告诉您如何获取证书。一旦您提供了送货信息,您将在30-40天内收到您的证书。
二、Kali Linux认证专家考前复习指南
2.1 关于KALI LINUX
Kali Linux是基于Debian测试版的滚动更新版。
2.2 开始使用KALILINUX
- 如果你有一台Intel 64位CPU的笔记本型计算机,你可以安装Kali 64-bit或Kali 32-bit。
- 查看/proc/cpuinfo文件,你就能确认你计算机上的CPU是32位还是64位。
- 你可以使用
wget -q -O –| gpg –import
命令通过HTTPS下载Kali Linux镜像并导入Kali Linux的公钥。 - 如果想使用Kali Linux的虚拟机映像,你应该使用Kali官方的Kali VM image。
2.3 LINUX使用基础
- 用户的家目录是用
~
字符代表。 - 使用以下命令得到文件的信息:
type
Which
drwxr-xr-x 2 root root 60 Mar 21 08:30 vfio
文件既不是块设备文件,也不是字符设备文件。- 文件的权限是
-r—w—-
,表示为420。 - 如果一个文件的权限是
-r-x--x--- 1 user root 0 Mar 24 01:19 test
,那么user拥有的权限是读和执行。 - 如果有2个在后台工作的任务,你应使用
kill %1
命令停止第一个任务。 chperm
命令不能控制权限或者关联用户到一个文件的属性。id
命令能够显示用户运行会话标识的身份,并且也能列出用户所属组。lspci
命令能够在/proc和/sys虚拟文件系统中总结PCI硬件。- 根据FHS文件系统,/var目录包含日志文件、队列、缓冲区和缓存数据。
2.4 安装KALI LINUX
- 对于基于Intel CPU的Kali SSH无桌面服务器,推荐的配置是512MB RAM / 2GB硬盘空闲空间 / amd64 CPU。
- 512MB RAM / 2GB硬盘空闲空间不符合Kali Linux桌面的最低配置要求。
- 即使你不选择网络镜像服务器,Kali Linux安装也能成功。
- 对于使用Kali Linux的mini.iso启动,如果没有网卡和Internet网络,Kali Linux的安装会失败。
- 手工分区极有可能因为用户的错误造成分区错误。
- 分离/home、/var和/tmp分区是最适合服务器和多用户系统的分区方式。
- 如果在安装完Kali之后,再安装最新版的Windows,导致boot loader被擦掉,阻止Kali启动。
preseed.cfg
配置文件的作用是对于安装时的问题,给出预定的回答。- 在ARM设备上安装Kali最简单和最有效的过程是使用一个官方有效的Kali ARM映像,登录使用root,密码是toor。
- 在安装失败后,将日志保存到Kali bug tracker并不是好办法。
2.5 配置KALI LINUX
- 你可以使用GNOME控制中心的NetworkManager去图形化设置网络选项。
- 网卡配置文件在/etc/network目录下,它是命令行网络配置的重要一部分。
- 在Kali中,通过ifupdown命令配置网络。
iface eth0 inet static
是配置静态IP地址网络的命令。- 如下方法都可以配置Kali Linux的网络设备:
- 通过命令行设置systemd-networkd
- 通过/etc/network/interfaces文件
- 通过ifupdown命令
- 使用图形化工具的NetworkManager和命令行设置/etc/systemd/network是一样的。
- 用户密码加密后放在/etc/shadow文件里面。
- 向Kali Linux中增加用户使用
adduser
命令。 - 用这个命令停用用户的账号
passwd -l olduser
。 - 对于Kali默认安装的SSH服务,你需要知道以下几点:
- 默认配置阻止基于密码的登录
- SSH服务默认停用
- SSH服务默认被安装
- 从LIVE IMAGE安装的,密钥是预生成的
systemctl
命令可用于控制SSH和PostgreSQL服务。- 使用
createdb
创建一个新的PostgreSQL数据库。
createdb -T template0 -E UTF-8 -O dbuser db_new
pg_createuser
并不是一个PostgreSQL命令。- 想创建一个postgres数据库叫db_new,参考如下命令:
- 启动Apache2不能使用如下命令
systemctl start apache
。 apachectl
和Apache2并不相关。- 在Kali中,systemd负责启动顺序,也作为服务管理器和监控器。
- 使用
systemctl status postgresql
命令检查PostgreSQL服务的状态。
2.6 帮助完善 KALI LINUX
- 使用以下命令检查Kali中的nmap是否被修改过:
dpkg -l | grep nmap
dpkg -s nmap | grep ^Version
dpkg-query -l | grep nmap
- 使用
reportbug
命令向Debian的开发者报告bug。 - 使用以下两种方式向Debian开发者提交bug:
- 使用官方Debian bug tracker发送一个email给submit@bugs.debian.org
- 提交bug给官方Kali bug tracker,并标记Debian补丁。
2.7 KALILINUX 的安全和监控
- Kali Linux默认安装时,没有内建的安全功能启用。
- 如下命令与Kali Linux防火墙相关:
iptables
netfilter
ip6tables
fwbuilder
INPUT
是Kali Linux防火墙的默认链。- 如下配置使得Kali Linux防火墙不处理包:
ULOG
ACCEPT
LOG
- Kali Linux防火墙处理顺序如下:
PREROUTING
INPUT
FORWARD
OUTPUT
POSTROUTING
MASQUERADE
方法用于伪造源NAT包在Kali Linux防火墙中。iptables -A INPUT -s 8.8.8.8 -j DROP
命令的作用是阻止来源于8.8.8.8的所有数据包。- 使用
iptables -F INPUT
命令删除INPUT链的所有规则。 - 使用
iptables -A INPUT -m state –state NEW -p tcp –dport 22 -j ACCEPT
命令明确地允许SSH连接到你的Kali Linux机器。 - 使用
/etc/network/interfaces
文件,保证在Kali Linux启动时应用自定义的防火墙规则。 - 使用
gnome-system-monitor
工具,进行图形化监控进程状态。 - 使用
dpkg -V
命令确认可疑的包。 - 使用
fail2ban
防御登录时的brute-force。
2.8 DEBIAN包管理技巧
- 使用
dpkg
命令直接安装包,而不需要考虑依赖包。 - Advanced Package Tool(APT)工具是一个完整的包管理系统,用于安装、删除、更新包,也能升级系统。
- 使用
/etc/apt/sources.list
文件定义包源。 - 正确的APT源是:
deb main non-free contrib
。 - 如下APT源不适用于Debian免费软件列表:
deb main non-free contrib
- 对于大多数用户来说,kali-rolling是推荐的。
- 使用
dpkg -i man-db_2.7.0.2-5_amd64.deb
命令安装man-db包。 - 在Kali Linux上使用
apt-get full-upgrade
命令,执行更新并删除废弃的包,安装新的依赖包。 - 使用
apt update
命令下载最新的可用包。 - 使用
dpkg -L metasploit-framework
命令列出metasploit-framework包安装的全部文件。 - 使用
dpkg -S msfconsole
命令显示msfconsole包安装的文件路径和名称。 - 使用
dpkg -l
命令列出操作系统中已经安装的全部包名称。 - 使用
dpkg –add-architecture
命令为不同的CPU安装CPU架构支持。
$ cp /boot/config-4.9.0-kali1-amd64 ~/kernel/linux-source-4.9/.config
- Kali的包管理器的图形化前端有synaptic和aptitude。
- 使用
dpkg –print-architecture
命令显示安装在当前操作系统中CPU体系架构。 control.tar.gz
包含Debian包最重要的信息。manifest
不是标准Debian包的一部分。data.tar.xz
文件包含全部在文件系统中安装的Debian包信息。Breaks
包头将引发dpkg拒绝安装一个包,并触发apt去解决更新一个不兼容的包到最新。postconf
不是一个有效的Debian包配置脚本。
2.9 高级使用技巧
apt source
命令会下载Debian包的源代码。git clone
命令将取回GIT仓库的源代码。- 假设你在一个有未解包源代码的目录中,使用命令
apt build-dep ./
,安装在debian/control文件中Build-Depends域对应的依赖包。 debian/changelog
文件将揭示你的Debian包变更是否有卡住。- 在应用变更时,使用
dch –local kali
命令更新以kali作为前缀的Debian包。 - 如下是正确从一个正在运行的Kali Linux实例复制到当前目录下一个下载的Kali源代码树中:
- 使用
make menuconfig
命令执行图形化内核配置工具。 - 使用
apt install curl git live-build
命令安装Kali Linux环境。 kali-linux-full
metapackage安装默认Kali Linux安装的全部软件。persistence.conf
文件包含维护目录的数据。- 使用
mkfs.ext3 -L persistence /dev/sdc3
命令创建第三个硬盘的第三个分区,名为“persistence”,并格式化为EXT3文件系统。 - 使用
# cryptsetup luksOpen /dev/sdb3 kali_persistence
命令准备一个LUKS容器在/dev/sdb3。 - 使用
# cryptsetup luksAddNuke /dev/sdb4
命令给/dev/sdb4的LUKS分区添加一个空密码。
2.10 在企业中使用KALI LINUX
- 可使用如下方法在一个没有操作系统的机器中安装Kali:
- DHCP
- PXE
- BOOTP
- TFTP
- 使用
salt ’*’ pkg.install dnmap
命令安装dnmap下属的全部包。
- 使用
dpkg-buildpackage -us -uc
命令通过未签名的.buildinfo和.changes文件,从一个未签名的源代码包生成一个二进制包。 - 使用
reprepro
命令创建和管理Debian仓库。 - repo配置文件要求的域:
- Codename
- Components
- Architectures
- 通过编辑
sources.list
文件,使得可以使用自定义的仓库。
2.11 介绍安全评估
- CIA模型不包含:
- 分类
- 信息
- 可访问性
- 认证
- 假如一个企业的web服务器主要用于财务报告,那么最关心的是可用性。
- 在一个加密算法中发现一个缺陷,减弱了加密系统的强度,依据CIA模型,它减弱的是机密性。
- 对于安全弱点,你可以exploit。
- Overall Risk是指对发生、影响、响应、维护相关的全部安全风险。
- Penetration Test的作用是作为杠杆去发现最坏的场景。
- Client-Side Attack是一种技术,用于针对目标组织内员工工作站上安装的各种应用程序进行攻击。
三、后记
Kali Linux官方教程,本文附加免费下载链接。通过学习原书并参考本文,你可以做到:
- 熟练使用Kali Linux操作系统。
- 自动化、定制和预装Kali Linux。
- 创建Kali设备,如Kali ISO。
- 构建、修改和托管Kali包和仓库。
- 创建、挂钩和修改简单的Kali包。
- 自定义并重建Linux内核。
- 通过网络部署Kali。
- 管理和协调Kali Linux的多个安装版本。
- 建立和定制Kali ARM架构映像。
- 创建自定义的渗透测试设备。