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

某些時候程序員為了不讓其他人不小心或者惡意破壞掉你運行的程序神帅,或者我們要做些“見不得光”的事情再姑,就有隱藏進程的需求,目的是讓小白或者初級運維無法通過ps或者top查找到你的程序找御,達到隱藏目的元镀。前兩天正好項目上需要用到隱藏進程的需求,所以分析了下個人覺得目前比較好的做法霎桅。


linux下查看進程的方法

ps命令

top命令

目前網(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)核編程著角,今天我們說下第四種辦法:在用戶態(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

strace top

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


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


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


本著絕不重復(fù)造輪子的工匠精神沃斤,瓶子哥搜羅了下圣蝎,還真有現(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í)行上述命令后缭裆,ps 查看,可以發(fā)現(xiàn)已經(jīng)找不到該進程了寿烟,而且 top澈驼,ls /proc/下面也不能找到該進程,完美達到隱藏進程筛武。

2. 原理:

我們查看processhider.c源碼可以發(fā)現(xiàn)缝其,原理上就是重寫了readdir的系統(tǒng)調(diào)用,因為無論ps,top,ls 都會調(diào)用readdir徘六。我們只需要設(shè)置代碼里面的process_to_filter為自己需要屏蔽的進程名就行了内边。

而思路就是利用 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而定位到進程随常,我們可以不建立ld.so.preload文件潜沦,而使用LD_PRELOAD宏來定義庫的路徑。例如將export LD_PRELOAD=/usr/local/lib/libprocesshider.so 放到linux系統(tǒng)啟動過程中rc文件去加載线罕,加大定位的難度止潮。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末窃判,一起剝皮案震驚了整個濱河市钞楼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌袄琳,老刑警劉巖询件,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異唆樊,居然都是意外死亡宛琅,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門逗旁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嘿辟,“玉大人,你說我怎么就攤上這事片效『炻祝” “怎么了?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵淀衣,是天一觀的道長昙读。 經(jīng)常有香客問我,道長膨桥,這世上最難降的妖魔是什么蛮浑? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮只嚣,結(jié)果婚禮上沮稚,老公的妹妹穿的比我還像新娘。我一直安慰自己册舞,他們只是感情好蕴掏,可當我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著环础,像睡著了一般囚似。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上线得,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天饶唤,我揣著相機與錄音,去河邊找鬼贯钩。 笑死募狂,一個胖子當著我的面吹牛办素,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播祸穷,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼性穿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了雷滚?” 一聲冷哼從身側(cè)響起需曾,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎祈远,沒想到半個月后呆万,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡车份,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年谋减,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片扫沼。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡出爹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出缎除,到底是詐尸還是另有隱情严就,我是刑警寧澤,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布伴找,位于F島的核電站盈蛮,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏技矮。R本人自食惡果不足惜抖誉,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望衰倦。 院中可真熱鬧袒炉,春花似錦、人聲如沸樊零。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽驻襟。三九已至夺艰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間沉衣,已是汗流浹背郁副。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留豌习,地道東北人存谎。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓拔疚,卻偏偏與公主長得像,于是被迫代替她去往敵國和親既荚。 傳聞我的和親對象是個殘疾皇子稚失,可洞房花燭夜當晚...
    茶點故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內(nèi)容