国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

各種Shell命令的用法和作用

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

掃碼添加小助手

加入工程師交流群

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

同時在本文中,還出現了各種不同的工具類網站,相信對于一些專業人士會很有幫助。

希望能對大家有所幫助。

CPU起飛了

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

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

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

根據經驗,我趕緊讓他看一下當前服務器的網絡連接,看看有沒有可疑連接,果然發現了有點東西:

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

上Shodan查一下這IP地址:

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

反向查找,發現有諸多域名曾經解析到這個IP地址:

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

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

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

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

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

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

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

進程如何隱藏

現在說回到本文的正題:Linux操作系統上,進程要隱藏起來,有哪些招數?

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

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

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

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

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

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

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

命令替換

直接替換系統中的ps、top命令工具。可以從GitHub上下載它們的源碼,加入對應的過濾邏輯,在遍歷進程的時候,剔除挖礦進程,實現隱藏的目的。

模塊注入

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

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

內核級隱藏

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

揪出挖礦進程

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

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

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

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

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

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

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

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

如果目錄不存在,跳過

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

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

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

按照這個思路,我編寫了一個Python腳本發給這位朋友,執行后果然發現了隱藏的進程:

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

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

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

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

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

這里發現這個進程打開了一個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,定位到進程的可執行文件:

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

總算把這家伙找到了:

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

網上一搜這家伙,看來是慣犯了:

挖礦病毒分析

把這個挖礦木馬下載下來,反匯編引擎中查看,發現加殼了。

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

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

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

除此之外,還發現了病毒嘗試連接的大量域名:

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

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

清除建議

開啟SELinux

殺掉挖礦進程

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

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

刪除病毒添加的登錄憑據

防火墻封禁IP、端口

責任編輯:xj

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

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

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

    關注

    68

    文章

    11277

    瀏覽量

    224956
  • 挖礦
    +關注

    關注

    6

    文章

    448

    瀏覽量

    16833

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

    Shell歷史命令history用法

    1. 顯示歷史命令列表 「介紹」:history 命令用于顯示當前會話中執行過的命令的列表,以及每個命令對應的編號。「示例代碼」:history 2. 使用歷史
    發表于 12-02 06:10

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

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

    飛凌嵌入式ElfBoard-Linux系統基礎入門-其它shell命令

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

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

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

    Linux基礎命令的進階用法

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

    深入剖析電阻的用法作用

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

    Linux基礎命令which詳解

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

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

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

    【RA-Eco-RA6M4開發板評測】移植shell實現命令交互

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

    Shell腳本入門指南

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

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

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

    Linux常用命令大全

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

    Linux中文本處理命令用法

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

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

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