RM新时代官方网站

程序員攻防實戰(zhàn):linux下這樣隱藏進程,簡直太溜了,快用起來(linux 隱藏進程)

某些時候程序員為了防止其他人不小心或者惡意破壞掉你運行的程序,或者我們要做些“見不得光”的事情,就有隱藏進程的需求,目的是讓小白或者初級運維無法通過相關(guān)命令工具查找到你的程序,達到隱藏目的。前兩天正好項目上需要用到隱藏進程的需求,所以分析了下個人覺得目前比較好的做法。

linux下查看進程的方法

ps命令

程序員攻防實戰(zhàn):linux下這樣隱藏進程,簡直太溜了,快用起來(linux 隱藏進程)程序員攻防實戰(zhàn):linux下這樣隱藏進程,簡直太溜了,快用起來(linux 隱藏進程)

top命令

程序員攻防實戰(zhàn):linux下這樣隱藏進程,簡直太溜了,快用起來(linux 隱藏進程)

目前網(wǎng)上很多方法基本都是通過如下方式來達到進程隱藏:

1.根據(jù)分組權(quán)限來實現(xiàn)不同用戶組查看不同的進程權(quán)限。

2.修改內(nèi)核,將需要隱藏的進程的進程pid改為0(task->pid = 0),因為ps,top命令不會顯示進程id為0的進程。

3.修改內(nèi)核,hook掉系統(tǒng)調(diào)用,在hook函數(shù)中修改邏輯判斷已達到隱藏進程。

第一種如果追中人有管理員權(quán)限就沒有辦法隱藏了。第二三種需要懂內(nèi)核編程,有一定的技術(shù)門檻(實際上只要會點內(nèi)核還是很easy的),今天我們說下第四種辦法:在用戶態(tài)修改系統(tǒng)調(diào)用,從而隱藏進程。

PS/TOP顯示進程原理

strace命令是一個常用的代碼調(diào)試工具,它可以跟蹤到一個進程產(chǎn)生的系統(tǒng)調(diào)用,包括參數(shù),返回值,執(zhí)行消耗的時間。因此對于調(diào)試程序出錯是非常有用的。這里不過多展示strace的調(diào)試用法,具體可以查看詳細的strace命令。

我們看下ps,top是如何顯示進程信息的:

strace ps

程序員攻防實戰(zhàn):linux下這樣隱藏進程,簡直太溜了,快用起來(linux 隱藏進程)

strace top

程序員攻防實戰(zhàn):linux下這樣隱藏進程,簡直太溜了,快用起來(linux 隱藏進程)

通過strace命令可以看出 ps,top等查看進程的信息都是通過調(diào)用 readdir 方法遍歷 /proc 目錄來獲取進程信息。每個動態(tài)創(chuàng)建的進程ID號下面詳細的記錄了關(guān)于該進程的fd,mem,io,cpuset等進程信息。

程序員攻防實戰(zhàn):linux下這樣隱藏進程,簡直太溜了,快用起來(linux 隱藏進程)程序員攻防實戰(zhàn):linux下這樣隱藏進程,簡直太溜了,快用起來(linux 隱藏進程)

既然進程信息是proc目錄下動態(tài)生成的,因此最顯而易見和最徹底的方法就是不讓proc下生成該進程信息。通過查找代碼,定位到內(nèi)核通過fs/proc/base.c中的proc_pid_lookup查找進程號,然后由proc_pid_instantiate來在proc下創(chuàng)建該進程號相關(guān)的進程信息。因此我們只需要在proc_pid_lookup中匹配要過濾的進程名,然后直接返回就行了,如下:

程序員攻防實戰(zhàn):linux下這樣隱藏進程,簡直太溜了,快用起來(linux 隱藏進程)

內(nèi)核proc創(chuàng)建pid進程信息

這種辦法徹底不創(chuàng)建該進程信息,但是要修改編譯內(nèi)核,實際上是不太可取的。而我們目的也只是隱藏,不必完全屏蔽進程信息。因此,有沒有一種辦法在用戶態(tài)通過劫持系統(tǒng)調(diào)用而忽略掉我們的進程呢?

本來想著如何自己實現(xiàn)一個hook系統(tǒng)調(diào)用,但是本著絕不重復造輪子的工匠精神,瓶子哥嘗試搜羅了下,還真有現(xiàn)成的,即通過劫持readdir系統(tǒng)調(diào)用實現(xiàn)ps,top無法查找到進程而達到隱藏進程。

我們先實戰(zhàn),在看其實現(xiàn)原理。

1 . 實現(xiàn):

1) git clone https://github.com/gianlucaborello/libprocesshider.git

2) cd libprocesshider/ && make

3) cp libprocesshider.so /usr/local/lib/

4) echo /usr/local/lib/libprocesshider.so >> /etc/ld.so.preload

這一步也可以用export LD_PRELOAD=/usr/local/lib/libprocesshider.so來代替。

執(zhí)行命令上述命令前,運行mtop進程,ps可以查看到mtop的進程。

程序員攻防實戰(zhàn):linux下這樣隱藏進程,簡直太溜了,快用起來(linux 隱藏進程)

執(zhí)行上述命令后,ps 查看,可以發(fā)現(xiàn)已經(jīng)找不到該進程了,而且 top,ls /proc/下面也不能找到該進程,完美達到隱藏進程。

程序員攻防實戰(zhàn):linux下這樣隱藏進程,簡直太溜了,快用起來(linux 隱藏進程)

2. 原理:

我們查看processhider.c源碼可以發(fā)現(xiàn),原理上就是重寫了readdir的系統(tǒng)調(diào)用,因為無論ps,top,ls 都會調(diào)用readdir。

程序員攻防實戰(zhàn):linux下這樣隱藏進程,簡直太溜了,快用起來(linux 隱藏進程)

而思路就是利用 LD_PRELOAD 來實現(xiàn)系統(tǒng)函數(shù)的劫持,程序在執(zhí)行外部庫函數(shù)調(diào)用的時候,會根據(jù)動態(tài)庫的優(yōu)先級來加載庫函數(shù),linux下庫的加載順序為/etc/ld.so.preload( LD_PRELOAD)>/etc/ld.so.cache>/etc/ld.so.conf,當程序調(diào)用外部庫的函數(shù),如果LD_PRELOAD里面有自定義和其他系統(tǒng)庫相同的庫函數(shù),則優(yōu)先加載我們自定義的函數(shù),這樣就達到了劫持系統(tǒng)函數(shù)的目的。

由于ps,top,ls 等幾乎所有的查看命令都基于readdir系統(tǒng)調(diào)用,所以能夠完美的隱藏掉進程,對付一般的小白是完全夠用了。如果為了避免分析人員查找 /etc/ld.so.preload而定位到進程,我們可以不創(chuàng)建ld.so.preload文件,而使用LD_PRELOAD宏來定義庫的路徑。例如將export LD_PRELOAD=/usr/local/lib/libprocesshider.so 放到linux系統(tǒng)啟動過程中rc文件去加載,加大定位的難度。

程序員攻防實戰(zhàn):linux下這樣隱藏進程,簡直太溜了,快用起來(linux 隱藏進程)

另外除去隱藏,還可以對執(zhí)行程序進行運行加密,常量字符串加密混淆,程序自動銷毀等反追蹤等,后面我們再一一討論。

(每天一個實戰(zhàn)技能,感謝點贊、關(guān)注、轉(zhuǎn)發(fā)。)

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。

(0)
上一篇 2023年5月11日 上午10:51
下一篇 2023年5月11日 上午11:07

相關(guān)推薦

  • 系統(tǒng)項目管理師薪資待遇

    系統(tǒng)項目管理師薪資待遇系統(tǒng)項目管理師是指在組織中負責管理、規(guī)劃、實施和監(jiān)督系統(tǒng)項目的人員。系統(tǒng)項目管理師的薪資水平因地區(qū)、行業(yè)、公司規(guī)模、經(jīng)驗等因素而異,但一般來說,他們的薪資水平…

    科研百科 2025年1月20日
    5
  • 橫向科研課題管理辦法

    橫向科研課題管理辦法 為規(guī)范橫向科研課題的管理,提高科研項目的質(zhì)量和效率,我們制定了本管理辦法。 一、適用范圍 本管理辦法適用于各種類型的橫向科研課題。 二、科研項目立項 1. 科…

    科研百科 2024年7月11日
    66
  • 重慶辦公樓項目管理系統(tǒng)

    重慶辦公樓項目管理系統(tǒng) 重慶辦公樓項目管理系統(tǒng)是一款功能強大、易于使用的數(shù)據(jù)管理工具,旨在幫助項目經(jīng)理和數(shù)據(jù)管理人員高效地管理項目數(shù)據(jù)和信息。該系統(tǒng)涵蓋了項目計劃、進度管理、成本管…

    科研百科 2025年1月21日
    3
  • 項目經(jīng)理必須掌握的「項目管理工具和方法」(項目經(jīng)理使用的工具)

    項目經(jīng)理在項目管理過程中,常常會碰到諸如資源分配、項目優(yōu)先級問題等諸多問題。 有許多方法可以讓項目管理更加有效和高效。不過對于項目管理而言,工具雖然談不上有幾百種,但是幾十種卻也是…

    2022年6月2日
    583
  • 科研項目怎么精準實施

    科研項目的精準實施是確保項目成功的關(guān)鍵之一。實施科研項目需要精確的目標設(shè)定和合理的計劃安排,以便最大限度地提高效率和減少風險。在實施科研項目時,以下幾點至關(guān)重要: 1. 確定明確的…

    科研百科 2025年6月4日
    1
  • 專項經(jīng)費使用管理辦法

    專項經(jīng)費使用管理辦法 為加強專項經(jīng)費的使用管理,保障專項經(jīng)費的使用效益,提高資金使用效率,根據(jù)《中華人民共和國財政法》等相關(guān)法律法規(guī),制定了《專項經(jīng)費使用管理辦法》。 第一章 總則…

    科研百科 2024年9月12日
    19
  • 廣東中藥科研項目

    廣東中藥科研項目 廣東中藥科研項目是一項重要的科研項目,它致力于探索廣東中藥的歷史淵源和現(xiàn)代應(yīng)用,為中藥現(xiàn)代化做出貢獻。這個項目包括了多個研究方面,包括中藥成分的提取和分離,中藥藥…

    科研百科 2025年3月21日
    5
  • 工程項目辦公管理系統(tǒng)設(shè)計

    工程項目辦公管理系統(tǒng)設(shè)計 隨著工程項目的不斷增長,傳統(tǒng)的手動管理方式已經(jīng)無法滿足現(xiàn)代項目管理的需要。因此,我們設(shè)計了一個工程項目辦公管理系統(tǒng),旨在提高項目管理的效率和準確性。 該系…

    科研百科 2025年7月11日
    1
  • 停車系統(tǒng)管理項目包括

    停車系統(tǒng)管理項目包括以下內(nèi)容: 一、項目概述 隨著城市化進程的加速,停車位日益緊缺,停車難問題已經(jīng)成為城市生活中普遍存在的問題。為了解決這個問題,我們發(fā)起了一項停車系統(tǒng)管理項目,旨…

    科研百科 2025年1月15日
    7
  • 科研項目申報培訓通知

    科研項目申報培訓通知 各位科研團隊成員: 為了加強科研項目申報和管理,提高團隊的科研水平,我們計劃舉辦一次科研項目申報培訓?,F(xiàn)將有關(guān)事宜通知如下: 時間:2023年2月20日至2月…

    科研百科 2025年3月25日
    3
RM新时代官方网站