成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何使用命令行對無文件惡意軟件進行取證

安全 應用安全
在最近的幾年,Linux面臨的一個日益嚴重的威脅—-基于無文件落地型的惡意軟件。無文件惡意軟件是指將自身注入到正在運行的Linux系統中,并且不會在磁盤上留下任何痕跡?,F在已經有多種手法可以實現無文件攻擊:

 前言

[[334699]]

在最近的幾年,Linux面臨的一個日益嚴重的威脅—-基于無文件落地型的惡意軟件。無文件惡意軟件是指將自身注入到正在運行的Linux系統中,并且不會在磁盤上留下任何痕跡。現在已經有多種手法可以實現無文件攻擊:

1.執行二進制文件后從磁盤刪除自身。

2.在不寫入磁盤的情況下直接將代碼注入正在運行的服務器(例如,在PHP服務器通過易受攻擊的輸入來運行PHP代碼)。

3.使用諸如ptrace()之類的系統調用附加到正在運行的進程,并將代碼插入內存空間執行。

4.使用諸如memfd_create()之類的方法在RAM中創建一個可以運行的匿名文件。

在本篇文章中,我們將討論如何檢測最后一個攻擊向量。

memfd_create()無文件攻擊

首先,向大家介紹一個linux系統的底層調用函數memfd_create()。該函數允許您在RAM中創建駐留文件,將文件保存到RAM而不是文件系統本身。調用成功后,您就可以引用這個內存駐留文件,就像您操作磁盤目錄中的文件一樣。 在man中的描述:

memfd_create()創建一個匿名文件并返回引一個文件描述符。該文件的行為類似于常規文件,并可以進行修改,截斷,內存映射等。但是,與常規文件不同,它位于RAM中并且具有易失性。

您可以將其理解為并不是在Linux主機上直接調用/bin/ls,而是將ls加載到RAM中,可以將其稱為/ls。就如許多系統調用一樣,出于性能等原因,它可以被合法使用,但這也給攻擊者帶來了可乘之機。更重要的是,如果系統重新啟動或被關閉,惡意軟件會立即被清除,這對于隱藏入侵者行為來說是很有價值的。

發動進攻

關于memfd_create()的利用方式有很多種,它們都有相似的檢測模式,所以使用哪種并不重要,在本文我們使用的是:In Only Memory ELF Execution。

我們可以直接通過SSH傳輸二進制文件,這樣就沒有任何內容寫入磁盤,也沒有產生任何交互式shell,這樣做可以大大降低攻擊被檢測的可能。

 

攻擊通過SSH將bindshell后門發送到目標靶機并進行執行。運行后代碼將在靶機上駐留并打開一個偵聽端口等待連接,入侵者可以在遠程主機上執行的任意命令。

快速檢測無文件Linux攻擊

針對文章中演示的示例可以通過一個簡單的ls和grep命令進行檢測:ls -alR /proc/*/exe 2> /dev/null | grep memfd:.*(deleted)

此命令將遍歷/proc目錄中所有正在運行的進程,并檢查它們是否具有格式為memfd:(deleted)的可執行路徑。這個條目非??梢?,并且在無文件攻擊中很常見。

運行此命令后,正常情況下不應有任何回響。如果您看到有任何結果返回,則應立即調查該過程。當然有時會有誤報的風險,但是對于這種類型的攻擊,很少見到(如果有示例,請與我們聯系)。

 

執行命令后顯示了以下目錄條目:lrwxrwxrwx 1 root root 0 Jul 8 23:37 /proc/14667/exe -> /memfd: (deleted)在路徑中,進程的ID(PID)為14667,這是我們需要重點關注的對象。

如果攻擊者已經使用了完備的方案實現了對二進制文件的隱藏,那么以下的策略可能會失效。但是對于常見的攻擊,使用這種方法是快速有效的。

使用命令行進行攻擊取證

在本例中,bindshell啟動后會立即綁定到TCP 31337端口,執行反彈shell操作,開始發送盜取的敏感數據等。我們可以先使用netstat和ps命令收集攻擊信息。

通過netstat命令,我們注意到了一個反常的tcp端口,該端口的進程名也很奇怪:netstat -nalp

 

如上圖所示,該進程的PID為14667。下一步通過PS命令查看該進程一些具體信息:ps -auxw

 

我們在進程列表中,看到它的進程名為[kwerker/0:sandfly],這將幫助它隱藏在具有相似名稱的合法進程中。您可以在上面的列表中看到,如果不使用sandfly標識符進行命名,我們真的很難發現它。

現在我們已經找到了可疑進程,下一步就要想辦法獲取該進程的具體信息。由于接下來大多數操作將在/proc目錄中進行,讓我們先轉到/proc/ 目錄,其中PID是我們的可疑進程ID。您可以使用以下命令進入該目錄:cd / proc / 14667

進程目錄列表

在進程目錄中,我們可以使用ls命令列出文件夾中的內容。Linux內核將實時構建目錄,并向我們顯示許多有價值的信息。ls -al

 

通過簡單的ls命令我們可以獲知:1.進程啟動時的日期戳。2.當前的工作目錄(用戶最有可能在/root下啟動進程)。3.EXE鏈接指向一個已刪除的二進制文件的位置。

最重要的一點是,在Linux上,除了少數用例外,具有deleted標記的二進制文件的進程通常是惡意的。而且,該進程不僅被刪除,還指向一個非常不尋常的位置了/memfd:這是攻擊所使用的內存文件描述符。

使用Comm和Cmdline參數查找隱藏的Linux進程

在/ proc目錄下的comm和cmdline文件會記錄進程的命令名和進程的完整命令行信息,這是一個很好的切入點。

當啟動進程時含有參數時,會在各個參數中使用字符’’進行分割。所以當我們使用cat命令查看cmdline文件內容時,只能打印出第一個參數,即進程名。所以我們可以使用cat命令查看comm文件,使用strings命令來查看cmdline文件。cat commstrings cmdline

comm和cmdline文件顯示以下內容:

 

在在Linux中,大多數情況下,文件應當顯示一個基本上相互匹配的二進制名稱。例如,如果您在nginx這樣的web服務器上運行此程序,您將在這兩個文件中的某個位置看到nginx名稱。但是在這個示例中,comm文件中只是一個數字“3”,這是進程偽裝的一種手段。同樣,cmdline文件夾中的內容也很奇怪。這兩個文件并未正確記錄進程名稱。

通過進程映射來驗證二進制名稱

/proc/[pid]/maps文件可以顯示進程的內存區域映射信息。在這里也可以找到二進制名稱,以及運行時正在使用的其他庫文件。通常,該文件的第一部分包含對正在運行的二進制文件的引用(例如/usr/bin/vi)。但是在文件中,我們再一次看到了對/memfd: (deleted)的奇怪引用。

cat maps

 

調查Linux進程環境

很多人可能會忽略在Linux上,當你啟動一個進程時,它通常會附加一系列環境變量。在大多數情況下,由用戶啟動的任何進程都會出現在這里。我們試圖通過查看/proc/ /environ文件夾獲取進程信息。

同樣,出于格式化的原因,我們將使用strings命令,這樣更易于閱讀。strings environ

 

既然我們的惡意軟件是通過SSH傳入的,縱使攻擊者設法清理的有關IP地址的日志,但是啟動進程時還是會留下蛛絲馬跡。

抓取二進制文件

即便二進制文件沒有在磁盤上存在,但是我們仍可以非常便捷的恢復注入的二進制文件。具體的操作細節我已經在關于恢復已刪除的二進制文件的文章中進行了全面介紹,在這里只進行簡述。

cp /proc/ /exe /destination_dir/filename在本示例中,命令如下:cp exe /tmp/malware.recovered

該文件被恢復到/tmp/malware.recovered下。您可以像往常一樣對惡意樣本進行分析,還可以為二進制文件生成hash值:sha1sum exesha1sum /tmp/malware.recovered

 

收集到的信息

到目前為止,我們收集到了如下信息:

1.可疑的可執行文件的路徑。

2.進程使用的端口號。

3.進程名。

4.comm和cmdline文件中沒有引用相同的命令名。

5.comm文件內容只有一個字符長。

6.進程當前的工作目錄位于/ root下。

7.進程試圖鏈接已被刪除的/memfd位置,而不是合法的二進制路徑。

8.進程映射文件顯示相同的已刪除位置。

9.惡意軟件是通過SSH傳入的

 

事實上,Linux并不會刻意隱藏任何信息。它們就像屋檐上的觀察者一樣,或者就像我們在Sandfly上所說的那樣:試圖隱藏正是一種入侵的特征。

 

責任編輯:華軒 來源: 今日頭條
相關推薦

2022-08-14 19:19:14

Linux

2013-12-03 09:23:06

命令行網速

2014-12-05 10:10:48

Java

2019-03-26 09:11:32

無文件惡意軟件

2012-11-20 16:16:05

Windows

2012-03-08 10:03:11

JavaClass

2021-12-06 11:38:17

命令Glances工具

2010-08-25 21:03:38

命令行DHCP

2014-06-09 10:23:20

2016-01-04 15:17:50

Linux命令行硬件

2010-06-23 14:28:23

LINUX Bash

2019-06-17 09:30:50

命令行Windows 10管理密碼

2024-11-18 15:05:34

MySQL數據庫

2018-09-10 09:30:25

Linux命令應用

2011-09-06 16:17:50

Ubuntu

2010-05-18 15:48:03

2010-05-18 16:05:24

2010-05-18 15:06:46

Subversion命

2010-05-31 11:42:32

MySQL基本命令

2010-08-23 09:45:46

防火墻命令行
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 色吧综合网 | 日韩精品在线一区 | 成年人在线 | 最新国产福利在线 | 国产1区2区 | 成人一级毛片 | 夜夜爽99久久国产综合精品女不卡 | 天天爱综合 | 国产精品九九九 | 亚洲成人av| 欧美在线视频一区二区 | 日本一区高清 | 91精品国产欧美一区二区 | 亚洲一区在线日韩在线深爱 | 亚洲交性 | 在线观看国产 | 热久久久 | 老牛嫩草一区二区三区av | 在线看免费的a | 色综合久久天天综合网 | 国产成人精品一区二区在线 | 成人午夜精品 | 夜夜爽夜夜操 | 一道本不卡 | 成年人视频在线免费观看 | 国产日韩欧美 | 婷婷免费在线 | 久久国产精品一区二区三区 | 国产亚洲一区二区三区在线观看 | 国产精品爱久久久久久久 | 精品一区二区三区在线观看国产 | 99精品一区二区三区 | 欧美精品91 | 一区二区av | 亚洲视频免费一区 | 综合国产第二页 | 一区二区国产精品 | 美女亚洲一区 | av网站免费观看 | 久久久亚洲一区 | 琪琪午夜伦伦电影福利片 |