基本工具

诸如SSH、Netcat、Tmux和Vim等工具是必不可少的,并且为大多数信息安全专业人士所日常使用。尽管这些工具本身并非专为渗透测试设计,但它们对渗透测试过程至关重要,因此我们必须熟练掌握它们。

使用 SSH

安全外壳协议(SSH)是一种默认运行在22端口的网络协议,它为系统管理员等用户提供了远程安全访问计算机的方式。SSH可以配置为使用密码认证,或者使用SSH公钥/私钥对进行免密码的公钥认证。SSH可用于访问同一网络或互联网上的远程系统,利用端口转发/代理连接到其他网络中的资源,以及在远程系统上传和下载文件。

SSH采用客户端-服务器模型,连接运行SSH客户端应用程序(如OpenSSH)的用户和SSH服务器。在攻击靶机或实际评估中,我们经常获得明文凭证或可用于通过SSH直接连接到系统的SSH私钥。SSH连接通常比反向Shell连接稳定得多,并且常被用作”跳板机”,以便在网络中枚举和攻击其他主机、传输工具、建立持久化访问等。如果我们获得了一组凭证,我们可以使用以下方式通过SSH远程登录到服务器:

 [!bash!]$ ssh Bob@10.10.10.10
 ​
 Bob@remotehost's password: *********
 ​
 Bob@remotehost#

此外,我们还可以读取受入侵系统上的本地私钥,或者添加我们的公钥以获得特定用户的SSH访问权限,正如我们将在后续章节讨论的那样。正如我们所见,SSH是安全连接到远程机器的绝佳工具。它还能够将远程机器上的本地端口映射到我们的本地主机,这在某些时候会非常方便。

使用 Netcat

Netcat(或称为 ncatnc)是一款出色的网络实用工具,用于与TCP/UDP端口进行交互。在渗透测试中,它有很多用途。其主要用途是连接Shell,我们将在本模块后面讨论这一点。除此之外,netcat 可用于连接到任何侦听端口,并与在该端口上运行的服务进行交互。例如,SSH被编程为处理通过22端口的连接以发送所有数据和密钥。我们可以使用netcat连接到TCP 22端口:

 [!bash!]$ netcat 10.10.10.10 22
 ​
 SSH-2.0-OpenSSH_8.4p1 Debian-3

如我们所见,22端口向我们发送了其横幅,表明其上运行着SSH服务。此技术称为”横幅抓取”,有助于识别特定端口上运行的服务。Netcat在大多数Linux发行版中都已预装。我们也可以从此链接为Windows机器下载副本。Netcat的另一个Windows替代品是使用PowerShell编写的PowerCat。Netcat还可用于在机器之间传输文件,我们将在后面讨论。

另一个类似的网络实用工具是 socat,它拥有一些netcat不支持的功能,例如端口转发和连接到串行设备。Socat也可用于将Shell升级为完全交互式的TTY。我们将在后面的章节中看到一些例子。Socat是一个非常方便的工具,应该成为每个渗透测试工具包的一部分。在获得远程代码执行后,可以将Socat独立二进制文件传输到系统,以获得更稳定的反向Shell连接。

使用 Tmux

终端多路复用器,如 tmuxScreen,是扩展标准Linux终端功能的实用工具,例如在一个终端内拥有多个窗口并在其间切换。让我们看看使用更常见的tmux的一些例子。如果我们的Linux系统上没有安装tmux,可以使用以下命令安装:

 [!bash!]$ sudo apt install tmux -y

安装tmux后,我们可以输入tmux命令来启动它。

getting_started_tmux_1

输入tmux命令的默认前缀键是 [CTRL + B]。要在tmux中打开一个新窗口,我们可以按下前缀(即 [CTRL + B]),然后按 C

getting_started_tmux_2

我们可以看到底部的编号窗口。我们可以通过按下前缀键然后输入窗口编号(如01)切换到每个窗口。我们还可以通过按下前缀键然后按 [SHIFT + %]将窗口垂直分割成窗格。

getting_started_tmux_3

我们也可以通过按下前缀键然后按 [SHIFT + "]进行水平分割窗格。

getting_started_tmux_4

我们可以通过按下前缀键然后使用左或右箭头键进行水平切换,或者使用上或下箭头键进行垂直切换。上述命令涵盖了一些基本的tmux用法。它是一个功能强大的工具,可以用于许多事情,包括记录日志(这在任何技术任务中都非常重要)。这份 速查表是一个非常方便的参考。此外,ippsec 的 tmux 介绍视频值得你花时间观看。

使用 Vim

Vim是一个强大的文本编辑器,可用于在Linux系统上编写代码或编辑文本文件。使用Vim的一大好处是它完全依赖键盘操作,无需使用鼠标,一旦熟练掌握将能显著提高编写/编辑代码的生产力和效率。我们通常会在被入侵的Linux系统上找到Vim或Vi,因此学习如何使用它可以使我们即使在远程系统上也能编辑文件。Vim还有许多其他功能,如扩展和插件,可以极大地扩展其用途,使其成为一个出色的代码编辑器。让我们看看Vim的一些基础知识。要使用Vim打开文件,我们可以在命令后加上文件名:

 [!bash!]$ vim /etc/hosts
getting_started_vim_1

如果我们想创建一个新文件,输入新文件名,Vim将打开一个带有该文件名的窗口。打开文件后,我们处于只读的正常模式,允许我们导航和阅读文件。要编辑文件,我们按 i键进入插入模式,Vim底部会显示 -- INSERT --。之后,我们可以移动文本光标并编辑文件。

getting_started_vim_2

完成文件编辑后,我们可以按 Esc键退出插入模式,返回正常模式。在正常模式下,我们可以使用以下按键执行一些有用的快捷操作:

命令描述
x剪切字符
dw剪切单词
dd剪切整行
yw复制单词
yy复制整行
p粘贴

提示:我们可以在任何命令前加一个数字来使其重复执行多次。例如,4yw将复制4个单词而不是一个,依此类推。

如果我们要保存文件或退出Vim,必须按 :进入命令模式。进入后,我们将在vim窗口底部看到我们输入的命令。

getting_started_vim_3

有许多命令可供我们使用。以下是一些例子:

命令描述
:1跳转到第1行
:w写入(保存)文件
:q退出
:q!不保存退出
:wq保存并退出

Vim是一个功能非常强大的工具,拥有许多其他命令和特性。可自行搜索学习。这是进一步解锁Vim潜能的极好资源。

可选练习

挑战你对模块内容的理解,并回答下面的可选问题。这些被视为补充内容,完成模块并非必须。你可以随时查看答案来检查你的工作。

应用本节所学知识,获取上述服务器的横幅并将其作为答案提交。

此处内容需要输入密码才查看
仅限华巅网安兴趣小组成员获取密码查看。

暂无评论

发送评论 编辑评论


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