今天,我们将进入正题,动手做渗透!不过别担心,这很可能不会让您被逮捕和/或引渡。我们将针对一个被称为 boot-to-root 的目标机器展开工作。这类虚拟机在您自己的网络中运行,被设计得像一台普通的生产环境主机。它们可以运行诸如 Web 服务器、数据库、FTP 服务器等应用程序。
然而,作者有意把这些机器设计得存在漏洞,以便您在模拟环境中练习渗透测试技能。
什么是 Kali Linux?
Kali Linux 是一款源自 Debian 的 Linux 安全发行版,专为计算机取证和高级渗透测试而设计。它由 Offensive Security 的 Mati Aharoni 和 Devon Kearns 在重写 BackTrack 的基础上开发而成。Kali Linux 包含数百款精心设计的工具,用于各类信息安全任务,例如渗透测试、安全研究、计算机取证和逆向工程。 BackTrack 是他们此前的信息安全操作系统。Kali Linux 的第一个版本 Kali 1.0.0 于 2013 年 3 月推出。目前 Offensive Security 资助并支持 Kali Linux。如果您今天访问 Kali 的网站( www.kali.org ),会看到一条醒目的横幅写着:「我们迄今最先进的渗透测试发行版。」这是一句非常大胆的宣言,具讽刺意味的是,它至今尚未被反驳。

Kali Linux 预装了 600 多个渗透测试应用程序,等待您去探索。每个程序都有其独特的灵活性和适用场景。Kali Linux 出色地把这些实用工具划分为以下几类: 信息收集 漏洞分析 无线攻击 Web 应用程序 漏洞利用工具 压力测试 取证工具 嗅探与欺骗 密码攻击 维持访问 逆向工程 报告工具 硬件破解 在这份面向初学者的 Kali Linux 教程中,您将学习 Kali Linux 的基础知识,例如: 什么是 Kali Linux? 谁在使用 Kali Linux,为什么使用? Kali Linux 的安装方法 如何借助 Virtual Box 安装 Kali Linux Kali Linux 图形界面入门 什么是 Nmap? Nmap 目标选择 如何在 Kali Linux 上执行基本的 Nmap 扫描 Nmap 操作系统扫描 什么是 Metasploit? Metasploit 与 Nmap Metasploit 漏洞利用工具 谁在使用 Kali Linux,为什么使用? Kali Linux 确实是一款独特的操作系统,因为它是少数几个被正派人士和不法分子公开使用的平台之一。安全管理员和黑帽黑客都在大量使用这一操作系统。前者用于检测和预防安全漏洞,后者用于识别并可能利用安全漏洞。该操作系统上配置并预装的工具数量之多,使 Kali Linux 成为任何安全专业人员工具箱中的瑞士军刀。 使用 Kali Linux 的专业人员 安全管理员——安全管理员负责保护其机构的信息和数据。他们使用 Kali Linux 审查自己的环境,确保不存在容易被发现的漏洞。 网络管理员——网络管理员负责维护高效且安全的网络。他们使用 Kali Linux 审计自己的网络。例如,Kali Linux 具备检测非法接入点的能力。 网络架构师——网络架构师负责设计安全的网络环境。他们使用 Kali Linux 审计其初始设计,确保没有任何疏漏或错误配置。 渗透测试人员——渗透测试人员使用 Kali Linux 审计环境,并对受雇负责的企业环境执行侦察。 CISO——CISO 即首席信息安全官,使用 Kali Linux 在内部审计其环境,发现是否有新的应用程序或不当配置被部署。 取证工程师——Kali Linux 具备「取证模式」,可让取证工程师在某些情况下执行数据发现和恢复。 白帽黑客——白帽黑客与渗透测试人员类似,使用 Kali Linux 审计并发现环境中可能存在的漏洞。 黑帽黑客——黑帽黑客使用 Kali Linux 发现并利用漏洞。Kali Linux 还包含许多社会工程学应用程序,黑帽黑客可借此攻陷某个组织或个人。 灰帽黑客——灰帽黑客介于白帽黑客和黑帽黑客之间。他们会以上述两类人相同的方式使用 Kali Linux。 IT 爱好者——IT 爱好者是一个相当宽泛的说法,但任何希望更多了解网络或计算机的人,总体上都可以使用 Kali Linux 来深入了解信息技术、网络和常见漏洞。 Kali Linux 的安装方法 Kali Linux 可以通过以下方法安装: 运行 Kali Linux 的方式: 直接安装在 PC 或笔记本电脑上——使用 Kali ISO 镜像,可以把 Kali Linux 直接安装到 PC 或笔记本电脑上。如果您有一台备用 PC 并且熟悉 Kali Linux,这是最佳方式。此外,如果您计划或正在进行接入点测试,建议把 Kali Linux 直接安装在支持 Wi-Fi 的笔记本电脑上。 虚拟化(VMware、Hyper-V、Oracle VirtualBox、Citrix)——Kali Linux 支持最知名的虚拟机管理程序,并能轻松集成到最流行的几款之中。可从 https://www.kali.org/ 下载预配置镜像,也可以使用 ISO 在首选的虚拟机管理程序中手动安装该操作系统。 云(Amazon AWS、Microsoft Azure)——鉴于 Kali Linux 的流行,AWS 和 Azure 都提供了 Kali Linux 镜像。 USB 启动盘——使用 Kali Linux 的 ISO,可以制作启动盘,在不安装的情况下在一台机器上运行 Kali Linux,或用于取证目的。 Windows 10(应用)——Kali Linux 现在可以通过命令行在 Windows 10 上原生运行。由于仍处于测试阶段,并非所有功能都能正常工作。 Mac(双系统或单系统)——Kali Linux 可以作为次要或主要操作系统安装在 Mac 上。可以使用 Parallels 或 Mac 的启动功能来完成此配置。
关键在于亲自动手,对真实目标运行工具,观察哪些有效、哪些失败,并进入渗透测试人员的思维方式。为帮助您上手,我们将走一遍一台流行的 boot-to-root 机器,名为 M. Robot(就像那部电视剧!)。这台虚拟机是一个 WordPress 服务器。我们将强行进入管理控制台,获取一个反向 shell,然后把权限提升到另一个 Linux 用户,最后成为 root 用户,完全控制这台机器。开始吧!
吓人的法律警告:与任何渗透测试练习一样,请务必绝不在未经明确授权的情况下,对不属于您的系统运行扫描或工具!
启动机器
任何 boot-to-root 的第一步都是下载并启动它,因此请前往这里下载镜像。您会得到一个 OVA 格式的文件,即一个 VMware 机器镜像。该文件可以轻松导入任何 VMware 或 Virtual Box 产品。如果您使用 Hyper-V,则需要执行几个额外步骤进行转换。将它导入虚拟机管理程序后,请对比它与您 Kali 机器的网络设置,确保二者处于同一个虚拟网络,然后启动它。
下一步:它获取到了哪个 IP 地址?先运行 ifconfig 找到 Kali,eth0 之后的地址就是您要找的:Kali's IP is 10.0.9.6
root@kali:~# Ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.0.9.6 netmask 255.255.255.0 broadcast 10.0.9.255 Kali's IP is 10.0.9.6
Kali 的 IP 是 10.0.9.6。接下来,我们使用 Nmap 对整个子网发送 ping,找出其他在线的机器:
root@kali:~# Nmap -Sn 10.0.9.0/24
Starting Nmap 7.80 ( https://nmap.org ) at 2019-10-14 11:25 EDT
Nmap Scan Report for 10.0.9.1
Host Is Up (0.00019s Latency).
MAC Address: 00:1C:42:00:00:18 (Parallels)
Nmap Scan Report for 10.0.9.2
Host Is Up (0.00014s Latency).
MAC Address: 00:1C:42:00:00:08 (Parallels)
Nmap Scan Report for 10.0.9.5
Host Is Up (0.00048s Latency).
MAC Address: 00:1C:42:70:D7:77 (Parallels)
Nmap Scan Report for 10.0.9.6
Host Is Up.
Nmap done: 256 IP addresses (4 hosts up) scanned
我们知道 10.0.9.1 和 .2 是我们虚拟机管理程序使用的虚拟网络设备,.6 是 Kali,因此 .5 一定就是我们的未知目标!
枚举
下一步是执行一次基本的 Nmap 扫描,找出开放的端口:
root@kali:~# Nmap 10.0.9.5 Starting Nmap 7.80 ( https://nmap.org ) at 2019-10-14 11:26 EDT Nmap Scan Report for 10.0.9.5 Host Is Up (0.00046s Latency). Not Shown: 997 Filtered Ports PORT STATE SERVICE 22/Tcp Closed Ssh 80/Tcp Open Http 443/Tcp Open Https MAC Address: 00:1C:42:70:D7:77
端口 22 被报告为 closed,这意味着对该端口的 TCP 请求收到了明确的回应「过去看看吧,这里没人应答!」,而不是像其他所有端口那样毫无回应。不过,80 和 443 是开放的!这些端口通常用于 HTTP 和 HTTPS。那么,我们尝试用浏览器访问该 IP 地址。我们得到一个有趣的响应:
这显然是一个网站,有点奇怪,但如果您看过《M. Robot》这部电视剧,应该能领会这台机器所依据的主题。标准的 Web 流程。我们来看看它的源代码。里面有一些可爱的 ASCII 图案,一处对 Javascript 的调用,但没有其他太有意思的东西:
切换到 HTTPS,还是同一个网站,只是经过加密,没有什么新东西。页面没有给我们任何可以跟进的链接。服务器上是否还有其他我们可以发现的有趣之处?试着用 Nikto 扫描它
root@kali:~# Nikto -H 10.0.9.5 – Nikto V2.1.6 —————————————————————————————————————– + Target IP: 10.0.9.5 + Target Hostname: 10.0.9.5 + Target Port: 80 + Start Time: 2019–10–14 12:02:22 (GMT–4) —————————————————————————————————————– + Server: Apache + The X–XSS–Protection header is not defined. This header can hint to the user agent to protect against some forms of XSS + /Wp–Login/: Admin Login Page/Section Found. + /wordpress: A WordPress installation was found. + /wp–admin/wp–login.php: WordPress Login Found
有两点非常有趣,立刻显现出来:这是一台 Apache Web 服务器,而且是一个 WordPress 站点。试试登录页面。
我们本可以尝试用 WPScan 扫描该页面,枚举有漏洞的插件,但先退一步。渗透测试的一条原则是先广而浅地枚举,然后再开始深入探究。先从更宽的范围理解您的目标。
