91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

各種Shell命令的用法和作用

Linux愛好者 ? 來源:Linux愛好者 ? 作者:小白學黑客 ? 2021-01-11 10:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

【前言】通過排查挖礦病毒的一次“有趣”經(jīng)歷,本文不僅展示了各種 Shell 命令的用法和作用,也能加深讀者對Linux 進程和文件系統(tǒng)的理解。

同時在本文中,還出現(xiàn)了各種不同的工具類網(wǎng)站,相信對于一些專業(yè)人士會很有幫助。

希望能對大家有所幫助。

CPU起飛了

最近有朋友在群里反饋,自己服務器的CPU一直處于高占用狀態(tài),但用top、ps等命令卻一直找不到是哪個進程在占用,懷疑中了挖礦病毒,急的團團轉。

b5e495f4-523c-11eb-8b86-12bb97331649.png

b6008322-523c-11eb-8b86-12bb97331649.png

根據(jù)經(jīng)驗,我趕緊讓他看一下當前服務器的網(wǎng)絡連接,看看有沒有可疑連接,果然發(fā)現(xiàn)了有點東西:

b60fb694-523c-11eb-8b86-12bb97331649.png

上Shodan查一下這IP地址:

b66a4956-523c-11eb-8b86-12bb97331649.png

反向查找,發(fā)現(xiàn)有諸多域名曾經(jīng)解析到這個IP地址:

b69b5dac-523c-11eb-8b86-12bb97331649.png

這是一個位于德國的IP地址,開放了4444,5555,7777等數(shù)個特殊的服務端口

b6d88786-523c-11eb-8b86-12bb97331649.png

其中這位朋友服務器上發(fā)現(xiàn)的連接到的是7777端口,鐘馗之眼顯示,這是一個HTTP服務的端口,直接訪問返回的信息如下:

b7319416-523c-11eb-8b86-12bb97331649.png

mining pool!,服務器正在挖礦實錘了!

但神奇的是,這個進程像是隱身了一般,找不到存在的任何痕跡。

進程如何隱藏

現(xiàn)在說回到本文的正題:Linux操作系統(tǒng)上,進程要隱藏起來,有哪些招數(shù)?

要回答這個問題,先來知道ps、top等命令枚舉系統(tǒng)的進程列表的原理。

Linux的設計哲學是:一切皆文件!

進程也不例外, Linux系統(tǒng)中有一個特殊的目錄:/proc/,這個目錄下的內(nèi)容,不是硬盤上的文件系統(tǒng),而是操作系統(tǒng)內(nèi)核暴露出的內(nèi)核中進程、線程相關的數(shù)據(jù)接口,也就是procfs,里面記錄了系統(tǒng)上正在運行的進程和線程信息,來查看一下:

b7884bda-523c-11eb-8b86-12bb97331649.png

這些以數(shù)字命名的目錄,就是一個進程的PID,里面記錄了該進程的詳細信息。

而ps、top等命令的工作原理,實質上就是遍歷這個目錄。

知道了原理,想實現(xiàn)隱藏就有以下幾個思路:

命令替換

直接替換系統(tǒng)中的ps、top命令工具??梢詮腉itHub上下載它們的源碼,加入對應的過濾邏輯,在遍歷進程的時候,剔除挖礦進程,實現(xiàn)隱藏的目的。

模塊注入

編寫一個動態(tài)鏈接庫so文件,在so中,HOOK遍歷相關的函數(shù)(readdir/readdir64),遍歷的時候,過濾挖礦進程。

通過修改LD_PRELOAD環(huán)境變量或/etc/ld.so.preload文件,配置動態(tài)鏈接庫,實現(xiàn)將其注入到目標進程中。

內(nèi)核級隱藏

模塊注入的方式是在應用層執(zhí)行函數(shù)HOOK,隱藏挖礦進程,更進一步,可以通過加載驅動程序的方式在內(nèi)核空間HOOK相應的系統(tǒng)調(diào)用來實現(xiàn)隱藏。不過這對攻擊者的技術要求也更高,遇到這樣的病毒清理起來挑戰(zhàn)也更大了。

揪出挖礦進程

通過上面的進程隱藏原理看得住來,都是想盡辦法隱藏/proc目錄下的內(nèi)容,類似于“障眼法”,所以包含ps、top、ls等等在內(nèi)的命令,都沒辦法看到挖礦進程的存在。

但蒙上眼不代表不存在,有一個叫unhide的工具,就能用來查看隱藏進程。

我讓這位朋友安裝這個工具來查找隱藏的進程,但奇怪的是,一執(zhí)行yum install安裝,遠程連接的SSH會話就立刻斷開。

于是退而求其次,選擇通過源碼安裝,又是一直各種報錯···

因為我沒辦法親自操作這臺服務器,溝通起來比較麻煩,于是我決定研究下這個unhide工具的源碼,然后編一個python腳本發(fā)給他執(zhí)行。

源碼地址:https://github.com/YJesus/Unhide-NG/blob/master/unhide-linux.c

在查找隱藏進程模塊,其大致使用了如下的方法:

挨個訪問/proc/pid/目錄,其中,pid從1到到max_pid累加

如果目錄不存在,跳過

如果是unhide自己的進程,跳過

如果在ps命令中能看到,跳過

剩下的,既不是自己,也不在ps命令輸出中,則判定為隱藏進程

按照這個思路,我編寫了一個Python腳本發(fā)給這位朋友,執(zhí)行后果然發(fā)現(xiàn)了隱藏的進程:

b7f7daf4-523c-11eb-8b86-12bb97331649.png

別著急,不是真的有這么多進程,這里是把所有的線程ID列舉出來了。隨便挑選了一個看一下:

b83757f6-523c-11eb-8b86-12bb97331649.png

還記得前面通過netstat命令看到挖礦進程建立了一個網(wǎng)絡連接嗎?Linux一切皆文件,在/proc/pid/fd目錄下有進程打開的文件信息:

b874f32c-523c-11eb-8b86-12bb97331649.png

這里發(fā)現(xiàn)這個進程打開了一個socket,后面的10212是inode id,再通過下面的命令看一下這個socket到底是什么:

cat /proc/net/tcp | grep 10212

輸出了四元組信息:

b8903a10-523c-11eb-8b86-12bb97331649.png

左邊是源IP地址:源端口,右邊是目的IP地址:目的端口

目的端口1E61就是7777?。?!

b8cb041a-523c-11eb-8b86-12bb97331649.png

找到了,就是這貨!

再次查看cat /proc/pid/environ,定位到進程的可執(zhí)行文件:

b8f21154-523c-11eb-8b86-12bb97331649.png

總算把這家伙找到了:

b90706ea-523c-11eb-8b86-12bb97331649.png

網(wǎng)上一搜這家伙,看來是慣犯了:

挖礦病毒分析

把這個挖礦木馬下載下來,反匯編引擎中查看,發(fā)現(xiàn)加殼了。

脫殼后,在IDA中現(xiàn)出了原形,不禁倒吸了一口涼氣,居然悄悄修改/root/.ssh/authorized_keys文件,添加了RSA密鑰登錄方式,留下這么一個后門,隨時都能遠程登錄進來。

b96c91a4-523c-11eb-8b86-12bb97331649.png

b99650fc-523c-11eb-8b86-12bb97331649.png

除此之外,還發(fā)現(xiàn)了病毒嘗試連接的大量域名:

b9c824f6-523c-11eb-8b86-12bb97331649.png

看到這里簡直可怕!自己的服務器被病毒按在地上摩擦??!

清除建議

開啟SELinux

殺掉挖礦進程

刪除病毒程序(注意rm命令是否被替換)

刪除病毒驅動程序(注意rm命令是否被替換)

刪除病毒添加的登錄憑據(jù)

防火墻封禁IP、端口

責任編輯:xj

原文標題:急死!CPU被挖礦了,卻找不到哪個進程!

文章出處:【微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    11281

    瀏覽量

    225100
  • 挖礦
    +關注

    關注

    6

    文章

    448

    瀏覽量

    16843

原文標題:急死!CPU被挖礦了,卻找不到哪個進程!

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Linux Shell文本處理神器合集:15個工具+實戰(zhàn)例子,效率直接翻倍

    在 Linux 系統(tǒng)中,文本是數(shù)據(jù)交互的 “通用語言”—— 日志文件、配置文件、數(shù)據(jù)報表、程序輸出幾乎都以文本形式存在。手動編輯文本不僅繁瑣,還容易出錯,而掌握 Shell 文本處理工具,能讓你用幾行命令完成批量篩選、數(shù)據(jù)提取、統(tǒng)計分析,甚至復雜的文本清洗。
    的頭像 發(fā)表于 02-03 15:42 ?1588次閱讀
    Linux <b class='flag-5'>Shell</b>文本處理神器合集:15個工具+實戰(zhàn)例子,效率直接翻倍

    Shell歷史命令history用法

    1. 顯示歷史命令列表 「介紹」:history 命令用于顯示當前會話中執(zhí)行過的命令的列表,以及每個命令對應的編號?!甘纠a」:history 2. 使用歷史
    發(fā)表于 12-02 06:10

    【瑞薩RA6E2】1.使用串口shell點亮LED燈

    _TEXT_CMD_TOO_LONG, /**< 命令過長 */ SHELL_TEXT_CMD_LIST,/**< 可執(zhí)行命令列表標題 */ SHELL_TEXT_VAR_
    發(fā)表于 11-09 17:26

    飛凌嵌入式ElfBoard-Linux系統(tǒng)基礎入門-其它shell命令

    clear清屏命令命令:clear功能:清除屏幕參數(shù):無 示例:清屏前執(zhí)行清屏命令后,終端界面顯示信息被清除:man幫助命令命令:man功能
    發(fā)表于 10-11 08:42

    shell基本介紹及常用命令shell基本介紹

    Shell是什么?我們在剛開始接觸Linux的時候,經(jīng)常會聽到工程師提到Shell這個詞,剛開始不知道這是個干什么的,簡單的說,它是一個應用,接收用戶命令,調(diào)用相應的內(nèi)核接口函數(shù)或應用程序,并輸出
    發(fā)表于 09-28 09:05

    Linux基礎命令的進階用法

    凌晨2點,正在熟睡的你被電話驚醒:"線上服務響應超時,用戶大面積投訴!" 你匆忙打開電腦,SSH 登錄服務器,面對滿屏的進程和日志,腦子一片空白——從哪里開始排查?用什么命令?怎么快速定位問題?
    的頭像 發(fā)表于 09-02 16:33 ?703次閱讀

    深入剖析電阻的用法作用

    信號線上,為什么要接電阻?你一定想不到小小電阻,竟然有這么大的作用。本期貿(mào)澤科普實驗室,就讓我們一起來重新認識——電阻。
    的頭像 發(fā)表于 08-21 09:10 ?4.1w次閱讀
    深入剖析電阻的<b class='flag-5'>用法</b>和<b class='flag-5'>作用</b>

    Linux基礎命令which詳解

    在Linux系統(tǒng)中,which命令用于查找并顯示指定命令的可執(zhí)行文件路徑。這對于系統(tǒng)管理員和開發(fā)人員來說是一個非常有用的工具,可以幫助定位命令所在的位置,確認命令是否已正確安裝,并且能
    的頭像 發(fā)表于 07-29 17:58 ?862次閱讀

    【RA-Eco-RA6M4開發(fā)板評測】基于SHELL進行DAC測試

    前言本文分享dac的測試,并增加對應的shell命令方便測試 。 使用P014測試 配置配置DAC的輸出引腳 “Stacks” -> “New Stack” ->
    發(fā)表于 07-20 10:16

    【RA-Eco-RA6M4開發(fā)板評測】移植shell實現(xiàn)命令交互

    /XLmbJn0SKoDT1aLdxHDrbg 一個超級精簡高可移植的shell命令行C實現(xiàn)二. 移植移植參考上述文章,很簡單只需要實現(xiàn)輸入輸出接口 即可。代碼見shell.c/h shell
    發(fā)表于 07-19 22:47

    Shell腳本入門指南

    Shell 是一塊包裹著系統(tǒng)核心的殼,處于操作系統(tǒng)的最外層,與用戶直接對話,把用戶的輸入, 解釋給操作系統(tǒng),然后處理操作系統(tǒng)的輸出結果,輸出到屏幕給與用戶看到結果。
    的頭像 發(fā)表于 06-03 10:47 ?1215次閱讀
    <b class='flag-5'>Shell</b>腳本入門指南

    飛凌嵌入式ElfBoard ELF 1板卡-Uboot常用命令之查看命令

    查看使用說明:=&gt;help setenv這里可以看到setenv命令有兩種用法,一種是設置環(huán)境變量值,一種是刪除環(huán)境變量,具體使用方法在下一節(jié)中詳細說明。
    發(fā)表于 05-22 11:26

    Linux常用命令大全

    Linux常用命令是指在Linux操作系統(tǒng)中廣泛使用的命令工具,這些命令工具可以完成各種不同的任務,如管理文件和目錄、操作進程、網(wǎng)絡通信、軟件安裝等。
    的頭像 發(fā)表于 05-03 18:08 ?1880次閱讀

    Linux中文本處理命令用法

    Linux 三劍客是(grep,sed,awk)三者的簡稱,熟練使用這三個工具可以提升運維效率。Linux 三劍客以正則表達式作為基礎,而在Linux系統(tǒng)中,支持兩種正則表達式,分別為“標準正則表達式”和“擴展正則表達式”。在掌握好正則表達式后,將具體講解三劍客的用法
    的頭像 發(fā)表于 04-15 10:22 ?775次閱讀
    Linux中文本處理<b class='flag-5'>命令</b>的<b class='flag-5'>用法</b>

    樹莓派新手必看!在樹莓派上編寫和運行 Shell 腳本!

    在本教程中,我將討論Shell腳本的基礎知識、它們的用途以及如何在RaspberryPi上編寫和運行Shell腳本。什么是Shell腳本?Shell腳本可以讓你自動化幾乎所有在Linu
    的頭像 發(fā)表于 03-25 09:28 ?1171次閱讀
    樹莓派新手必看!在樹莓派上編寫和運行 <b class='flag-5'>Shell</b> 腳本!