黑客最喜欢的脚本之一perl,让你拥有无限可能
要更进一步提高自己,您必须学习脚本技能。使用其他黑客的工具固然很好,但要获得并保持优势,您必须开发自己独特的工具,通过开发脚本技能来做到这一点。
Perl 的历史
在 Linux 环境中使用最广泛的脚本语言可能是 Perl, Perl 由语言学家 Larry Wall 于 1987 年开发。他专门设计了它来操作文本。Wall 对设计一种脚本语言很感兴趣,该语言能够从多个来源提取文本以生成报告——我们现在认为这个比较正常——在当时是非常不简单的。
为什么 Perl 在 Linux 中如此重要
- 由于 Linux 中的几乎所有内容都是一个文件,而且其中有许多简单的文本文件,因此 Perl 已被证明在 Linux 环境中特别有用。此外,Perl 使我们能够在脚本中使用 Shell 脚本命令,这使得它对于编写既需要 shell 命令又需要文本操作的脚本黑客任务非常有用,例如网站侦测和黑客攻击。
- Perl 也是有用的正则表达式或正则表达式的来源,它已进入许多黑客、安全和 Linux 应用程序。这些正则表达式为我们提供了在 Snort、MySQL、Oracle DBMS 等众多应用程序中查找文本模式的强大功能。正则表达式最初是为 Perl 开发的,在某些情况下被称为 Perl Compatible Regular Expressions,或 PCRE。
- 系统上的 Perl由于 Perl 在 Linux 中的应用如此广泛,每个 Linux 发行版都带有 Perl 解释器,kali 也不例外。如果你运行的是 Windows,你可以在这里下载 Perl 解释器。
- Perl 已被用于开发许多黑客工具,包括 nikto、oneixtyone、snmpenum、、adminfinder 等等。Perl 还因其能够用于将 SQL 脚本从 Web 应用程序发送到后端数据库而受到青睐(亚马逊的网站为此目的使用它)。
如果我们想在 Kali 中查找所有 Perl 脚本,我们可以输入:
·kali > locate *.pl
我们可以看到在 Kali 中有数百个用于多种用途的 Perl 脚本。请注意,在上面的屏幕截图中,有多少exploit-db windows 远程利用是用 Perl 编写的。这只是冰山一角,表明 Perl 脚本在黑客攻击和通用 Linux 管理中的重要性。
Perl 非常重要,在我们使用 Perl、Python 和 Ruby 开发自己的黑客工具/脚本的过程中,我将完成至少三个 Perl 教程。
所以,让我们开始 Perl-ing!
第 1 步:创建脚本
您可以在安装了 Perl 解释器和任何文本编辑器(包括 vim、emacs、kate、gedit 等)的任何平台上开发您的 Perl 脚本。这里我们将使用 Kali 内置的文本编辑器 Leafpad 来开发一个简单的 Perl 脚本。随着我们变得越来越先进,我们将希望添加一个 IDE 环境,该环境可以使脚本开发和调试变得更加简单和高效。
让我们通过转到 Applications ->Accessories 然后 Leafpad 打开 Leafpad。
在 Leafpad 打开的情况下,让我们输入以下内容:
usr/bin/perl
print "Hackers-Arise!\n" ;
第一行简单地告诉系统使用哪个解释器来运行后面的代码。第一段,“#!” 通常被称为“shebang”。在我们的例子中,我们希望这个代码被 Perl 解释器解释,所以我们在 shebang 后面加上“/usr/bin/perl”。这是 Perl 解释器的位置。
第二行是一个简单的打印语句。我们希望系统打印“Hello Hackers-Arise!”。我们以终止该行的特殊字符“\n”结束。
现在让我们保存它并称它为“firstperlscript”。
第 2 步:设置权限
让我们导航到我们保存它的目录并输入:
·kali >ls –l
我们的脚本已保存为默认权限 644。为了能够执行此脚本,我们将需要“执行”权限,因此我们需要将权限更改为 755,
·kali>chmod 755 firstperlscript
第 3 步:执行脚本
现在我们有了执行权限,我们可以通过键入以下命令来运行这个脚本:
./firstperlscript
如您所见,它打印了“Hello Hackers_Arise!”
第 4 步:Perl 中的特殊字符
Perl 有许多我们可以使用的特殊字符。我们使用了“\n”,它是一个换行符。Perl 的其他一些特殊字符是:
\0xx - 八进制值为 xx 的 ASCII 字符
\e - 一个转义字符
\n - 换行符
\r - 返回字符
\t - 一个制表符
还有更多,但这只是 Perl 中许多特殊字符的一个示例。我们将在后续 Perl 教程中根据需要介绍更多内容。
第 5 步:Perl 中的变量
在执行了一个非常简单的 Perl 脚本之后,让我们添加一些功能和复杂性。通常,在运行任何脚本时,我们都需要一些变量来保存信息。Perl 中的变量与 Linux 中的指定类似,在变量标签前使用“$”,例如$name。
让我们在文本编辑器中输入以下代码。
现在,让我们逐行检查这个简单的脚本。
第一行告诉系统在执行这个脚本时使用哪个解释器。
第二行只是打印语句。
第三行打印一个问题,询问用户他们最喜欢的网站是什么。
第四行将 STDIN(从键盘输入)放入一个名为 $name 的变量中。
第五行对变量 $name使用chomp函数。此功能将删除用户在回答我们的问题时可能输入的任何潜在的换行符。
最后,第六行打印我们的响应,其中包含来自变量 $name 的用户输入。
第 6 步:执行脚本
现在,让我们将此脚本保存为secondperlscript并将其权限从 644 更改为 755,以便我们执行它。最后,让我们输入以下命令来执行它:
kali>./secondperlscript
成功!我们能够将用户输入捕获到变量 $name 中,然后在网站 Hackers-Arise! 的打印语句中使用该输入。
第 7 步:Perl 中的 Shell 命令
使用 Perl 的优点之一是它允许我们直接从脚本到底层系统使用 shell 命令。有多种方法可以做到这一点,但我更喜欢使用带括号和双引号括起来的 shell 命令的系统函数(我们将在后续的 Perl 教程中介绍其他方法)。
为了演示这一点,让我们将以下行添加到我们的脚本中系统(“ifconfig”);
现在让我们将它保存为thirdperlscript并授予我们执行它的权限。
第 8 步:执行脚本
当脚本运行时,它的作用与我们的 secondperlscript 相同,但它也直接与操作系统交互以获取用户系统上的 IP 地址和其他网络信息。
想象一下能力可以为我们做什么!可以无限放大。
,