| 关键词: 程序 套接字 协议 客户端 例子 数据 服务 一个 Perl 远程 |
写Exploit程序,从Perl网络编程起步文 / blovesPerl很强大,不仅能开发CGI方面的程序,还可以用它进行网络程序的开发。Perl使网络编程更简单,开发速度更快。目前Perl应用范围除了系统维护,程序运行时配置CGI(现在应用的很少了),便是用来进行hacker脚本的编写。Perl脚本的特点是 “简练而强大”,非常适合写Exploit。在网络上可以找到很多国外hacker用Perl写的Exploit程序,而在国内就少了很多。由于大部分Exploit程序都是网络方面的程序,因此本文将介绍如何使用Perl进行网络编程,通过一些小的例子来让大家熟悉Perl的网络编程。本文不会涉及到具体漏洞利用的脚本,只是把Perl网络编程的一些基本概念介绍给大家。希望大家能从本文中得到一些您需要的知识。本文的约定:使用的IP地址为本地地址,所有程序均在ActivePerl5.61版测试通过。本地IP:127.0.0.1一、 几个网络方面的基本概念本文主要针对初学者,所以本文在概念介绍上也将尽量使语言描述的通俗易懂,本文后面要涉及到的几个网络方面的基本概念如下:协议:所谓的协议就是对进行通讯传输的2台计算机之间的应该共同遵守的一个行为准则或称行为规范。TCP/IP协议:是定义了网络传输的一个协议。UDP:用户数据报协议。UDP协议是TCP/IP协议组中传输层的协议,负责对网络传输进行控制。UDP具有不可靠性,但是手续简单。套接字:套接字是一个类似于文件的句柄.通过建立套接字就可以对套接字进行读写操作。 二、走进Perl Perl的函数Socket的格式为:Socket(FILE,Domain,Type,Protocol); 其中:FILE 绑定一个套接字句柄(类似于打开文件的句柄); Domain 表示套接字的协议域类型。它可以定义为Internet域,其值为2,也可以定义为UNIX域,如果把这个变量赋值为1表示域的类型为UNIX域。如果这个变量付值为2,则表示定义类型为Internet。我们常用的是的套接字协议族为Internet协议族。Type 表示套接字类型,定义为SOCK_STREAM类型,表示的是基于流传输模式的TCP套接字。定义为SOCK_DGRAM类型,表示为基于简单数据传递的UDP套接字。 Protocol 表示套接字的协议号,这个协议号可以通过Perl内置函数getprotobyname()得到。三、第一个例子例子介绍:下面这个程序实是一个简单的使用udp协议的服务器程序,服务端程序在端口上监听,当有客户连接后它将返回一个数据给客户程序。#注:如图1-1 1.UDP程序服务端原代码解析:四、第二个例子例子介绍:下面的程序是一个使用udp协议的客户端程序,客户端程序主动连接服务端,如果网络连通或不发生数据报丢失,将会得到服务器端的返回的数据。下面我们看看使用tcp的例子,客户端程序是远程执行服务端命令的C/S结构的程序。服务端程序绑定一个端口,处理客户断的请求,并把处理后的数据返回给客户端,客户端程序通过发送一条消息给远程主机,并执行远程主机的dos命令,得到远程服务器的返回消息。下面我们来看看代码:2.UDP程序客户端客户端程序非常简单,唯一不同的是不建立循环等待连接.五、第三个例子例子介绍:下面的程序是使用tcp协议的服务端程序,当客户端程序连接服务端程序,服务端程序根据请求的数据返回服务端上的相应数据,这里是返回的是在服务端执行的dos命令的数据,例如c:\>client.pl \\dir c:,将返回服务端执行dir c:后的数据给客户端程序。3.Tcp程序服务端 {原代码解析: 六、第四个例子例子介绍:下面的程序是使用tcp协议的客户端程序,当脚本servers.pl程序被运行后,它会在远程等待客户程序的连接,我们这里的clinet.pl脚本就是针对上面程序写的客户端程序。例如:在dos命令输入c:\>perl clinet.pl \\dir c:\ 这样服务器将返回远程主机c:\的下的所有目录的名字。4.客户端程序Tcp Programming ) {原代码解析:七、一个测试IIS漏洞的例子例子介绍:下面的程序是通过连接远程主机的ip地址,通过与主机建立tcp连接,并发送http的内部命令get和特殊编码的数据来测试远程的IIS服务器是否存在漏洞.5.测试IIS漏洞程序 ) {原代码解析:这里我只解析几个和实现验证IIS是否存在漏洞相关的程序片段。 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|