黑客网站渗透入侵破解拿权限
10.4K subscribers
2.39K photos
108 links
Download Telegram
网络管理员使用 Nmap(和 Zenmap)来映射子网并发现主机。网络安全专业人员使用 Nmap 扫描目标系统以查找可能正在运行的开放端口和服务。这些安全扫描器用于黑客攻击和渗透测试,以发现目标系统、收集信息并检查漏洞。

Nmap 和 Zenmap 均可用于提供有关目标网络的大量信息。一些常用的 Nmap 功能包括:

主机发现:生成主机名(即在网络上通信的计算机或其他设备。例如,PC、打印机、服务器等)及其 IP 地址的列表。
端口扫描:扫描特定端口(或端口范围)以确定它们是否在给定目标或目标集上开放。
操作系统检测:尝试猜测目标操作系统的详细信息,例如供应商(例如 Microsoft)、底层操作系统(例如 Windows)和操作系统代(例如 10)。
防火墙/入侵检测系统 (IDS) 规避:为高级用户提供多种选项,以防止扫描活动被防火墙或 IDS 系统检测到(并随后被丢弃)。例如,隐藏(或欺骗)您的 IP 地址、源端口、MAC 地址等。
在 Nmap 中,用户利用命令行开关来定义扫描参数。Zenmap 的界面具有命令创建器,允许使用下拉实用程序以交互方式创建 Nmap 命令行(高级用户也可以编辑)。
Zenmap 还可以提供(并保存)拓扑图图形,以帮助您直观地了解可访问的主机及其端口

Zenmap 还允许您保存扫描结果,这些结果可以相互比较以确定发生了什么变化(例如,添加或删除了主机或服务)。
下载和安装 Zenmap 和 Nmap
Nmap 和 Zenmap 适用的一些操作系统包括:
视窗,Mac OS X,Linux
找到并运行安装程序,例如nmap-7.93-setup.exe。安装的第一步是接受许可协议。选择“我同意”继续:
接下来,选择要安装的组件。两个安装程序都会安装 Nmap 和 Zenmap。如果要放弃 GUI,请取消勾选 Zenmap
确定要安装 Nmap/Zenmap 的位置(默认为 C:\Program Files (x86)\Nmap)。您可以保留原样,也可以单击“浏览…”按钮将其安装在其他位置
安装程序将验证安装,以便您知道安装已成功完成
Nmap 安装应用程序将默认在 Windows 开始菜单和桌面上创建快捷方式。
安装过程结束时,单击“完成”
在 Kali Linux 上安装 Zenmap
Nmap 与 Kali Linux 捆绑在一起(以及数百种其他有用的工具),因此无需单独安装。Kali Linux 版本 2019.4(及更高版本)从其软件包中删除了 Zenmap,但您仍然可以手动安装它。方法如下:

1. 首先更新 Kali Linux 的软件包索引列表。为此,打开一个终端窗口(CTRL+ALT+T),然后输入,sudo apt update:
2,要升级所有软件包,请运行sudo apt full-upgrade -y:

3. 由于 Zenmap 需要的依赖项在 Kali Linux 中不再受支持,因此我们需要使用“Kaboxer”(Kali Applications Boxer)将其作为打包应用程序安装在 Docker 容器中。运行sudo apt install zenmap-kbx -y:
在 Kali Linux 虚拟设备上运行 Metasploit Framework,因为它已预装(以及数百种其他有用的工具和实用程序)。Metasploit Framework 还可以作为其他 Linux 发行版、macOS 和 Windows 的独立应用程序安装。
动 Metasploit 框架控制台
您可以通过从应用程序菜单搜索并启动 metasploit框架应用程序来启动 Metasploit 框架控制台
通过打开终端控制台(CTRL+ALT+T)并输入以下内容在 Kali Linux 中启动 Metasploit sudo msfdb init && msfconsole
该sudo命令用于提升权限
接下来,该msfdb init命令初始化 Metasploit PostgreSQL 数据库(用于保存测试数据)
最后,逻辑“AND”运算符( )告诉它如果上一个命令成功,&&则启动 Metasploit Framework 控制台msfconsole
启动后,每次运行 MSFConsole 时都会显示一个 ASCII 艺术横幅
启动后,每次运行 MSFConsole 时都会显示一个 ASCII 艺术横幅,但您也可以使用以下banner命令显示一个新的横幅,在没有横幅的情况下启动 MSFConsole,您可以使用-q开关,该命令还有其他几个可用的开关msfconsole,您可以使用-h来显示它们全部,命令提示符会根据您使用的 Metasploit 版本而有所不同。在 Metasploit 版本 5 和 6 中,MSFConsole 命令提示符后附加了版本号(例如“ msf5 >”或“ msf6 >”),而早期版本则显示为“ msf >”,没有版本号。
搜索模块
Metasploit 中有数千个可用模块。您可以使用搜索命令来缩小列表范围。输入help search或search -h将显示可用选项的完整列表:
名称(无参数):如果你想要广撒网,只需键入search 后跟关键字即可。例如,search portscan
CVE:通用漏洞和暴露(CVE)是针对特定软件应用程序和库的公开披露漏洞的列表,每个漏洞都具有唯一标识符或 CVE ID。例如,search cve:2021-45046
类型:将搜索范围缩小到特定模块类型,辅助模块(即扫描仪)或漏洞利用模块。
将数据传入和传出 Metasploit 数据库。在 Metasploit 中使用的一些数据示例包括网络扫描结果(例如 Nmap)和漏洞评估(例如 Nessus、OpenVAS)。

可以使用该db_import命令将数据导入 Metasploit 数据库并db_export导出数据。要获取语法和支持文件类型的完整列表,您可以使用 -h 开关(即db_import -h)。

将 Nmap 与 Metasploit 数据库结合使用
Metasploit 可以针对目标运行 Nmap 并将结果保存到数据库。只需运行,db_nmap然后输入您想要使用的任何 [Nmap] 开关
搜索有效载荷
某些漏洞需要有效载荷(用于与目标交互的附加代码)。可以使用以下show payloads 命令查看漏洞利用模块的可用有效载荷:选择有效载荷
可以使用以下命令选择有效载荷set payload,使用其名称或编号:我们配置了漏洞利用程序,在利用目标 FTP 服务器上的已知漏洞后,在目标上打开反向 perl shell 。
使用 Kali Linux 和 Metasploitable3 设置 Metasploit
Oracle VirtualBox 用于在兼容的 Windows PC 上托管我们的虚拟机
Vagrant 配置我们的 Metasploitable3 VM(Windows Server 2008 R2)
适用于 VirtualBox 的 Kali Linux 虚拟设备
下载并安装 VirtualBox
1.使用Windows 主机链接下载并安装最新版本的 VirtualBox
2. 安装完成后,您会在开始菜单中看到Oracle VM VirtualBox,单击它即可启动 VirtualBox 应用程序。3
. 我们还需要下载并安装Oracle VM VirtualBox 扩展包,因为它是运行 Kali Linux
运行文件时会提示警告。单击“安装”
Vagrant 并配置 Metasploitable3 VM
Rapid7(Metasploit 和 Metasploitable 的开发商)使用名为 Vagrant 的开源工具来提供其预构建的 Metasploitable3 映像。在以下说明中,我们将:

安装 Vagrant
从 GitHub 存储库中下载 Rapid7 的 Vagrant 配置文件“Vagrantfile”
使用 Vagrant 部署 Metasploitable3 VM
配置文件(即“Vagrantfile”)提供了两个 Metasploitable3 VM 映像,Ubuntu 14.04和Window Server 2008 R2 - 我们将使用后者。这些 VM 将需要 65GB 的存储空间和 4.5GB 的 RAM,因此在部署这些 VM 之前请确保您有足够的资源。

注意: Window Server 2008 R2 操作系统使用试用许可证,该许可证在配置的 VM 上可能已过期。如果试用期已过期,VM 将每 1-2 小时关闭一次,因此您需要重建VM 或为其提供许可证密钥
安装 VirtualBox 和 Vagrant 后,我​​们可以下载 Metasploitable3 VM。为此,请以管理员身份打开 PowerShell 并创建一个新的暂存文件夹(我为本次演示选择了“D:\Temp”)。

a. 运行以下命令从 GitHub 存储库下载 Metasploitable3 VM 的 Vagrant 部署脚本:Invoke-WebRequest -Uri "https://raw.githubusercontent.com/rapid7/metasploitable3/master/Vagrantfile" -OutFile "Vagrantfile"

为了使虚拟机与主机位于同一网络上,您需要将其网络适配器配置为以“桥接”模式运行(即虚拟网络适配器的行为就像它与物理虚拟机主机位于同一网络上一样)。您可以通过单击“设置” > “网络”并选择“桥接适配器”来执行此操作
渗透测试需要登录 Windows Server 2008 R2 VM 并验证其 IP 地址。默认凭据为:
用户名: vagrant
密码:vagrant
打开命令提示符并运行ipconfig来验证 IP 地址(我的虚拟机上为 192.168.5.122)
IP 地址将根据测试环境网络使用的 DHCP 范围而有所不同。请记下此地址,因为您稍后会需要它
在 Kali Linux 中使用 Metasploit
点击屏幕右上角的应用程序按钮(形状像一条白色的龙,背景是蓝色的)
当你开始输入“metasploit”时,搜索栏自动完成将显示metasploit 框架应用程序:
在类 Unix 操作系统(例如 Linux)中,“sudo”用于运行需要提升权限的其他命令(接下来的两个步骤需要)。
命令“ msfdb init ”启动 PostgreSQL 服务,检查是否存在 Metasploit 的数据库,如果不存在,则创建它。
最后,“ && ”检查前面的命令(即“msfdb init”)是否成功执行,如果是,则运行后续命令“ msfconsole”,启动 Metasploit 框架控制台。
使用 Metasploit 框架控制台
Metasploit 框架控制台 (msfconsole) 是一个命令行界面 (CLI),允许您搜索和运行模块(用于执行特定任务的独立软件),并分为三类:

辅助:这些模块收集有关目标的信息,例如我们在演示攻击中使用的 TCP 端口扫描器和 SSH 登录扫描器。
漏洞利用:这些模块(通过使用有效载荷)利用已发现的漏洞来利用目标系统上已知的弱点。例如,我们用来访问目标系统上的用户列表的 ProFTPD 攻击。
有效载荷:有效载荷是漏洞利用模块用来与目标交互的代码。
利用 MySQL漏洞
使用端口扫描器来了解目标上开放了哪些端口。虽然 Kali Linux 预装了几个端口扫描工具,但我们也可以使用搜索命令(例如 search portscan)在 Metasploit Framework 控制台中查看哪些端口可用,输入 use 5 来加载“TCP 端口扫描器”模块:
意提示符已经变成“msf6auxiliary( scanner/portscan/tcp )>”,表明当前已经加载“TCP Port Scanner”模块。

虽然info命令为我们提供了可用选项的列表,但我们可以使用模块上下文中的options命令来显示它们的当前配置:看到 RHOSTS 是我们目标的参数,因此我们需要使用set命令对其进行配置(即 set RHOSTS 192.168.5.122)
1
Nmap 扫描确认 MySQL 正在目标服务器上运行,版本为 5.5.20。您还可以使用搜索命令查找可用于确定 MySQL 版本的模块。
查看上面的列表,数字 11 (auxiliary/scanner/mysql/mysql_version) 似乎合适。要选择它,请输入 use 11:查看此模块的选项,我们可以看到它需要一个目标主机(RHOSTS)。我们将其设置为192.168.5.122,再次使用 options 命令验证设置,然后运行该模块
暴力破解 MySQL Root 账户
现在我们已经确认了 MySQL 的版本和端口号,我们可以尝试连接到实例,并使用辅助/扫描器/mysql/mysql_login模块(例如,使用辅助/扫描器/mysql/mysql_login)暴力破解 root 密码,将查看选项列表,然后将 RHOSTS 设置为 192.168.5.122。此模块还支持使用单词列表,我们将使用/usr/share/wordlists/rockyou.txt,但首先,我们需要解压缩它。打开终端会话(CTRL+ALT+T)并使用以下命令解压缩存档:gunzip /usr/share/wordlists/rockyou.txt.gz
回到 Metasploit 会话,我们可以使用“set PASS_FILE /usr/share/wordlists/rockyou.txt”来定义单词列表路径并运行模块
从 MySQL 枚举数据
在网络安全中,“枚举”是从受感染目标中提取有用信息以获取敏感信息。
可以加载 MySQL 枚举模块 (auxiliary/admin/mysql/mysql_enum) 来检索 MySQL 帐户及其权限的列表
MySQL 漏洞利用
从 MySQL 枚举结果可以看出,root 访问权限允许我们破坏 SQL 服务器中可用的任何数据。我们可以使用“MySQL SQL 通用查询”模块 (auxiliary/admin/mysql/mysql_sql) 在目标服务器上运行 SQL 命令
将设置 USERNAME 为root, RHOSTS 为192.168.5.122, SQL 为显示数据库,确认我们的选项并运行模块
我们提供了服务器上的数据库列表,但使用起来有点繁琐,因为您必须不断更新 SQL 选项并重新运行模块才能使用它。相反,我们只需在新的终端会话 ( CTRL+ALT+T ) 中使用我们的 root 权限直接连接到 MySQL 实例,访问该 WordPress 应用程序,因此让我们将管理员密码更改为我们知道的密码:最后,让我们尝试使用新重置的管理员密码登录 WordPress 网络应用程序