百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

黑客最喜欢的脚本之一Perl,让你拥有无限可能

mhr18 2025-01-05 18:58 18 浏览 0 评论

黑客最喜欢的脚本之一perl,让你拥有无限可能

要更进一步提高自己,您必须学习脚本技能。使用其他黑客的工具固然很好,但要获得并保持优势,您必须开发自己独特的工具,通过开发脚本技能来做到这一点。

Perl 的历史

在 Linux 环境中使用最广泛的脚本语言可能是 Perl, Perl 由语言学家 Larry Wall 于 1987 年开发。他专门设计了它来操作文本。Wall 对设计一种脚本语言很感兴趣,该语言能够从多个来源提取文本以生成报告——我们现在认为这个比较正常——在当时是非常不简单的。


为什么 Perl 在 Linux 中如此重要

  1. 由于 Linux 中的几乎所有内容都是一个文件,而且其中有许多简单的文本文件,因此 Perl 已被证明在 Linux 环境中特别有用。此外,Perl 使我们能够在脚本中使用 shell 脚本命令,这使得它对于编写既需要 shell 命令又需要文本操作的脚本黑客任务非常有用,例如网站侦测和黑客攻击。
  2. Perl 也是有用的正则表达式或正则表达式的来源,它已进入许多黑客、安全和 Linux 应用程序。这些正则表达式为我们提供了在 Snort、MySQL、Oracle DBMS 等众多应用程序中查找文本模式的强大功能。正则表达式最初是为 Perl 开发的,在某些情况下被称为 Perl Compatible Regular Expressions,或 PCRE。
  3. 系统上的 Perl由于 Perl 在 Linux 中的应用如此广泛,每个 Linux 发行版都带有 Perl 解释器,Kali 也不例外。如果你运行的是 Windows,你可以在这里下载 Perl 解释器。
  4. 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、emacskategedit 等)的任何平台上开发您的 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 地址和其他网络信息。

想象一下能力可以为我们做什么!可以无限放大。

相关推荐

一文读懂Prometheus架构监控(prometheus监控哪些指标)

介绍Prometheus是一个系统监控和警报工具包。它是用Go编写的,由Soundcloud构建,并于2016年作为继Kubernetes之后的第二个托管项目加入云原生计算基金会(C...

Spring Boot 3.x 新特性详解:从基础到高级实战

1.SpringBoot3.x简介与核心特性1.1SpringBoot3.x新特性概览SpringBoot3.x是建立在SpringFramework6.0基础上的重大版...

「技术分享」猪八戒基于Quartz分布式调度平台实践

点击原文:【技术分享】猪八戒基于Quartz分布式调度平台实践点击关注“八戒技术团队”,阅读更多技术干货1.背景介绍1.1业务场景调度任务是我们日常开发中非常经典的一个场景,我们时常会需要用到一些不...

14. 常用框架与工具(使用的框架)

本章深入解析Go生态中的核心开发框架与工具链,结合性能调优与工程化实践,提供高效开发方案。14.1Web框架(Gin,Echo)14.1.1Gin高性能实践//中间件链优化router:=...

SpringBoot整合MyBatis-Plus:从入门到精通

一、MyBatis-Plus基础介绍1.1MyBatis-Plus核心概念MyBatis-Plus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提...

Seata源码—5.全局事务的创建与返回处理

大纲1.Seata开启分布式事务的流程总结2.Seata生成全局事务ID的雪花算法源码3.生成xid以及对全局事务会话进行持久化的源码4.全局事务会话数据持久化的实现源码5.SeataServer创...

Java开发200+个学习知识路线-史上最全(框架篇)

1.Spring框架深入SpringIOC容器:BeanFactory与ApplicationContextBean生命周期:实例化、属性填充、初始化、销毁依赖注入方式:构造器注入、Setter注...

OpenResty 入门指南:从基础到动态路由实战

一、引言1.1OpenResty简介OpenResty是一款基于Nginx的高性能Web平台,通过集成Lua脚本和丰富的模块,将Nginx从静态反向代理转变为可动态编程的应用平台...

你还在为 Spring Boot3 分布式锁实现发愁?一文教你轻松搞定!

作为互联网大厂后端开发人员,在项目开发过程中,你有没有遇到过这样的问题:多个服务实例同时访问共享资源,导致数据不一致、业务逻辑混乱?没错,这就是分布式环境下常见的并发问题,而分布式锁就是解决这类问题的...

近2万字详解JAVA NIO2文件操作,过瘾

原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。从classpath中读取过文件的人,都知道需要写一些读取流的方法,很是繁琐。最近使用IDEA在打出.这个符号的时候,一行代...

学习MVC之租房网站(十二)-缓存和静态页面

在上一篇<学习MVC之租房网站(十一)-定时任务和云存储>学习了Quartz的使用、发邮件,并将通过UEditor上传的图片保存到云存储。在项目的最后,再学习优化网站性能的一些技术:缓存和...

Linux系统下运行c++程序(linux怎么运行c++文件)

引言为什么要在Linux下写程序?需要更多关于Linux下c++开发的资料请后台私信【架构】获取分享资料包括:C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,fastdf...

2022正确的java学习顺序(文末送java福利)

对于刚学习java的人来说,可能最大的问题是不知道学习方向,每天学了什么第二天就忘了,而课堂的讲解也是很片面的。今天我结合我的学习路线为大家讲解下最基础的学习路线,真心希望能帮到迷茫的小伙伴。(有很多...

一个 3 年 Java 程序员 5 家大厂的面试总结(已拿Offer)

前言15年毕业到现在也近三年了,最近面试了阿里集团(菜鸟网络,蚂蚁金服),网易,滴滴,点我达,最终收到点我达,网易offer,蚂蚁金服二面挂掉,菜鸟网络一个月了还在流程中...最终有幸去了网易。但是要...

多商户商城系统开发全流程解析(多商户商城源码免费下载)

在数字化商业浪潮中,多商户商城系统成为众多企业拓展电商业务的关键选择。这类系统允许众多商家在同一平台销售商品,不仅丰富了商品种类,还为消费者带来更多样的购物体验。不过,开发一个多商户商城系统是个复杂的...

取消回复欢迎 发表评论: