PHP-MSF源码详解攻略
一、前言
在开发过程中,我们常常会遇到需要使用其它语言编写的代码,比如我们在 Python 当中的 metasploit 模块,而我们需要使用 PHP 来进行操作,这个时候就需要用到 PHP-MSF,它是一个由 PHP 语言编写的 Metasploit 框架。
二、下载 PHP-MSF
在 GitHub 上可以找到 PHP-MSF 的源码。我们可以使用 git 命令来获取代码:
git clone https://github.com/shangyexinzhe/php-msf.git
三、PHP-MSF 脚本文件
PHP-MSF 框架包含了大量的 PHP 脚本文件,在进行开发之前我们需要了解每一个文件的作用,这里只对一些常用的文件进行介绍。
1. socket.php
socket.php 文件主要是用于实现 socket 连接的操作,如下所示:
class PHPMSF_Socket {
// 构造函数,实现 socket 连接
function __construct($ip, $port) {
$this->socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$this->connect($ip, $port);
}
// socket 连接
function connect($ip, $port) {
$result = socket_connect($this->socket, $ip, $port);
return $result;
}
// socket 发送数据
function send($data) {
$result = socket_write($this->socket, $data, strlen($data));
return $result;
}
// socket 接收数据
function recv($len) {
$result = socket_read($this->socket, $len);
return $result;
}
}
2. util.php
util.php 文件主要是提供了一些工具性的函数,如下所示:
class PHPMSF_Util {
// 生成随机的字符串
function randstr($length) {
$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
$len = strlen($chars);
$str = '';
for ($i = 0; $i < $length; $i++) {
$str .= $chars[mt_rand(0, $len - 1)];
}
return $str;
}
// 将字符串按位分割成数组
function str2array($str) {
$arr = array();
for ($i = 0; $i < strlen($str); $i++) {
$arr[$i] = ord($str[$i]);
}
return $arr;
}
// 将数组合并为字符串
function array2str($arr) {
$str = '';
foreach ($arr as $val) {
$str .= chr($val);
}
return $str;
}
}
3. plugin.php
plugin.php 文件是核心插件,其中包含了各种远程攻击、漏洞利用模块等功能的实现代码。
4. session.php
session.php 文件主要是为 session 提供一些常用的操作函数。
四、PHP-MSF 示例
示例一:端口扫描
这个示例介绍如何使用 PHP-MSF 实现对目标主机端口的扫描操作。
include_once 'Msfrpc.php';
$uname = "xxxx";
$passwd = "xxxx";
$host = "127.0.0.1";
$port = "55552";
$msf = new Msfrpc();
$msf->login($uname,$passwd);
$hostIp = "192.168.1.1";
$cmd = "db_nmap -sS -p- ".$hostIp;
$ret = $msf->exec($cmd);
$data = $msf->read();
print_r($data);
示例二:WebShell
这个示例介绍如何使用 PHP-MSF 实现对 WebShell 的操作:
include_once 'Msfrpc.php';
$uname = "xxxx";
$passwd = "xxxx";
$host = "127.0.0.1";
$port = "55552";
$msf = new Msfrpc();
$msf->login($uname,$passwd);
$target = "192.168.1.1";
$uploadPath = "c:/test.php";
$scriptPath = "c:/shell.php";
$msf->upload($uploadPath,$scriptPath); // 将 php 文件上传到远程主机
$msf->exec("php ".$scriptPath." ".$target); // 执行 php 文件
五、总结
本文介绍了下载 PHP-MSF 的方法、提供了几个重要的 PHP 脚本文件的简介和两个代码示例来说明如何使用 PHP-MSF 进行开发。当然,PHP-MSF 并不只是这些,还有很多其他的功能可以去了解和掌握。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php-msf源码详解 - Python技术站