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

通過進程監控檢測SSH活動

安全 數據安全
在進行的許多滲透測試活動中,我注意到有許多攻擊都是通過使用合法憑據的SSH訪問開始的。

[[379535]]

在進行的許多滲透測試活動中,我注意到有許多攻擊都是通過使用合法憑據的SSH訪問開始的。現在你可能會想,用戶究竟為什么要在macOS上啟用SSH服務。這對普通用戶來說真的有必要嗎?當然,對于普通用戶來說,答案是否定的。這完全沒有必要,但我認為基于macOS的構建服務器、測試服務器和開發人員系統經常啟用SSH的可能性很大。不僅如此,一旦攻擊者通過任何方式獲得了對系統的訪問權,SSH就成了一種奇妙的“live of the land”技術,用于在受到攻擊的網絡上進行橫向移動。

要理解如何最好地跟蹤不同的SSH行為,我們首先必須熟悉在創建SSH會話中發揮作用的不同二進制文件。

  1. /usr/libexec/smd 

smd二進制文件(可能是服務管理守護進程)實際上控制SSH是啟用還是禁用。隨著時間的推移,蘋果將更多的責任轉移到了這個守護進程中。

  1. /usr/sbin/sshd 

這是主要的SSH服務可執行文件,當你嘗試登錄到一個系統時,會啟動多個sshd實例,以便處理登錄過程和用戶會話,這可能是在處理SSH時想到的最常見的服務。

  1. /usr/libexec/sshd-keygen-wrapper 

這個sshd幫助進程在嘗試登錄時啟動,它通常立即執行sshd服務。在一些用例中,SSH -keygen-wrapper會執行一些不同的操作,但是在大多數SSH設置中,該進程的操作行為與名稱完全一致。

  1. /usr/bin/ssh-agent (- l) 

不管它的名字是什么,SSH -agent實際上并不是偵聽SSH連接的服務。事實上,即使禁用了SSH,該進程也可能在你的系統上運行,它最以SSH密鑰的管理而聞名。實際上,用戶不需要通過用戶名和密碼登錄即可。可以在/System/Library/LaunchAgents/com.openssh.ssh-agent.plist中找到啟動程序,并在啟動時使用未記錄的-l參數加載該啟動程序。

  1. shell 

身份驗證過程結束后,在系統上生成一個交互式shell,它將根據用戶的請求執行命令。這個shell是用戶設置為默認的shell。對我來說,它是zsh。

一般的行為

為了更好地理解這些進程是如何連接的,讓我們看看通過SSH登錄時使用的具體步驟。在macOS上,可以通過系統首選項>共享>遠程登錄來啟用SSH登錄。注意,啟用這個特性實際上不會創建任何類型的任何新的sshd進程。這有點令人失望,因為這意味著我們不能進行簡單的進程監視來確定SSH是啟用了還是禁用了,但是如果你使用SSH登錄并保持會話處于打開狀態,你現在應該擁有如下進程樹。


如果你查看標準ps輸出,你會注意到這個樹看起來有點不同。事實上,使用TrueTree是我意識到smd在SSH管理中發揮作用的唯一途徑。這也是為什么在嘗試登錄之前,你的ps輸出中沒有任何SSH服務偵聽器的跡象。smd服務處理多個不同的遠程登錄服務以及通過系統首選項啟用或禁用的其他項,上面截圖中smd下面的所有進程在登錄嘗試發生后都將存在,但是zsh shell在登錄成功后出現。首先,我們看到創建了sshd-keygen-wrapper。這個小小的二進制文件在執行到sshd之前會快速處理一些檢查,是的,當登錄發生時將創建兩個sshd進程。但是請注意,如果在此登錄過程中發生另一個登錄,將再次創建上面看到的所有相同進程。我的意思是說,上面看到的兩個sshd服務都不會充當額外登錄的“主服務器”。最后,第二個sshd實例將派生一個shell,用戶今后輸入的所有命令都將通過該shell派生。

在繼續之前,請務必注意,還有其他方法可以啟用SSHD服務。實際上,我認為通過系統首選項啟用遠程登錄要比通過命令行啟用更值得關注。用戶可以使用systemsetup命令從命令行啟用遠程登錄,而不是加載LaunchDaemon。

  1. sudo systemsetup -setremotelogin on 

為了使此命令起作用,需要root權限,好消息是,你應該能夠在執行此類命令時監視任何類型的EDR。

嘗試登錄

有了上面討論的流程樹,你可能已經知道我將在本節中進行的工作。如上所述,我們最終通過SSH登錄嘗試生成了三個進程:一個是sshd-keygen-wrapper,另一個是sshd。我們知道sshd-keygen-wrapper只存在一秒鐘,然后才執行sshd,這是系統上可能進行的三次登錄嘗試。


請注意,在上圖中,我們使用非TrueTree進程視圖,因為這是EDR所提供的。這就是為什么將launchd顯示為父級而不是smd的原因。

在上圖中,你看到了三個嘗試的SSH登錄。有兩個失敗,因此從未生成shell(紅色),另一個成功(綠色)。不管登錄是否成功,sshd-keygen-wrapper總是按登錄嘗試的比例生成,這意味著我們可以通過跟蹤登錄執行來跟蹤登錄嘗試。

獲取字典攻擊嘗試

非常奇怪的是,現在還有人用字典攻擊SSH。通常情況下,這是由Linux僵尸網絡發送大量的憑證,試圖以他們的方式進入公共的SSH服務器。在macOS上面向公眾的SSH服務器也很少見,具體原因是什么?顯然,我無法說明你的具體設置和工具,因此我只使用一些通用的Splunk術語,因為它往往是事件監視的標準。在這里,你最好遵循上面的邏輯,尋找sshd-keygen-wrapper的大型分組嘗試。我發現使用Splunk的“bin”功能(也稱為bucket)最容易做到這一點。


讓我們分解一下具體的流程:

  1. event=process_create path=/usr/libexec/sshd-keygen-wrapper 

查找執行sshd-keygen-wrapper的所有時間。

  1. bucket _time span=5m 

將找到的sshd-keygen-wrapper進程分組到兩分鐘的時間窗口中。

  1. eventstats dc(host_name) as attempts by _time 

以現在進行分類的進程為例,并按主機進行不同的計數以獲取發生了多少次嘗試,將這個新統計的字段命名為“attempts”。

  1. where attempts > 20 

查找在一個兩分鐘的桶內發生了超過20次嘗試的位置。

  1. stats values(host_name) 

返回與上述條件匹配的主機名。

如果你的Splunk實例能夠訪問這種類型的數據,那么它將返回在兩分鐘內發生20次登錄嘗試的實例。你可以隨心所欲地設置時間,但我懷疑兩分鐘內進行20次登錄嘗試可能表明存在惡意攻擊。

進行單次登錄

捕獲成功的登錄也不會太復雜,實際上,我將使用與以前相同的圖像。


只要你的工具允許你通過父子關系建立連接,你需要做的就是在創建shell的任何時候都使用sshd作為該shell的父對象。請注意,在macOS上,默認的內置shell(如/ etc / shells中所示)為/ bin / bash,/ bin / csh,/ bin / dash,/ bin / ksh,/ bin / sh,/ bin / tcsh和/ bin / zsh。

從Splunk的角度來看,這里不應該有任何太復雜的東西。只要在shell運行時查找ppid路徑為“/usr/sbin/sshd”的位置即可。請注意,在某些情況下,如果有人選擇通過SSH運行單個命令而不創建交互式登錄,這也會引起注意。例如:

ssh user@ip_address whoami

上面的命令不是創建交互式會話,而是通過SSH登錄,執行whoami命令并將輸出返回給運行它的客戶端。sshd可執行文件通過將-c參數和發送方指定的命令一起傳遞給它創建的shell來執行此操作。


如果你要查找交互式SSH登錄名,請查找在SSH下創建shell且命令行不包含其他參數(或CommandLine == Path)的時間。如果你只想通過SSH運行一次性命令,請查找命令行包含多個參數的時間。

獲取根登錄

通過SSH進行的登錄顯然不能保證發生了惡意事件,許多技術和開發人員都依靠SSH來激活它,以完成不同的任務。但是,這些技術和開發人員應以正常權限登錄系統,然后通過sudo升級。以超級用戶身份直接登錄到SSH服務器并不被視為最佳實踐。

許多進程跟蹤技術提供了已執行進程的用戶ID,通常將其稱為uid。 Unix系統上的每個用戶都被分配了一個uid。在macOS上,第一個用戶的uid為501,根用戶為0。通過查看創建的shell進程的uid,我們可以確定哪個用戶已登錄。這是使用基本權限登錄的用戶的樹形示例。


在上圖中,我們看到派生的sshd子對象和shell的uid與基本用戶501的uid匹配,因此我們知道登錄系統的用戶不具有root權限。同時,我們看到登錄之前的所有進程都由root用戶擁有,這很有意義,因為sshd在系統上以root用戶身份運行,并且在用戶登錄時根據用戶權限移交。當然,如果有人以root身份登錄,所創建的shell將繼續為uid 0。因此,要檢測SSH上的root登錄,只需使用與上一節相同的方法,但是指定只關心在SSH下創建的shell的uid何時為0。

最后,我想簡單地談談一個經常被忽略的項目,這個項目是tty。每當有人打開真正的交互式shell時,tty或teletype終端就會被分配。也就是說,用戶可以輸入命令,shell可以返回提示。如果沒有tty,當sudo命令要求你輸入密碼時,你將無法與它進行交互。你只需要在無效區域上操作,tty就會被分配給創建的Shell進程,并將繼續用于該SSH會話期間創建的所有子進程。


此時,你可以看到在登錄時shell上的tty是/dev/ttys001。同樣,這將取決于你的工具以及你的輸入是實時檢測到的還是可追溯的,但這意味著如果你發現惡意的SSH登錄并能夠查看tty字段,則只需將所有內容撤回即可,通過查找共享相同tty的進程來在該SSH會話中執行的命令。

唯一的問題是,當用戶關閉tty時,它將在下一次需要時被重用。換句話說,如果該系統上的用戶經常打開終端,則搜索使用/ dev / ttys001的所有進程可能還會為你提供由用戶執行的一些較舊但合法的操作。如果發生這種情況,你可能還必須依靠一些時間表(或完全不同的方法)來撤回所有惡意SSH命令。

總結

正如本文中多次提到的,上面看到的很多查詢都取決于你的技術和工具,但是最重要的是了解你的環境并了解哪些系統應實際使用SSH。對于在小型公司工作的人來說,這很容易,他們可以輕松掌握誰在哪里登錄,但是對于大公司來說,監視這些項目也很重要。對于需要登錄系統以執行操作的管理員來說,遠程登錄是一個非常棒的工具,但是從安全角度來看,但是從安全的角度來看,它們會帶來三重威脅。

1.它們是內置的;

2.它們可以用于初始輸入;

3.它們可以用于橫向運動和攻擊。

本文我們僅談到了與SSH相關的流程活動是什么樣的,在鎖定SSH以及攻擊者如何利用SSH方面,仍然有大量的內容需要探索。

本文翻譯自:https://themittenmac.com/detecting-ssh-activity-via-process-monitoring/如若轉載,請注明原文地址。

 

責任編輯:姜華 來源: 嘶吼網
相關推薦

2023-03-09 07:54:54

2010-08-28 15:38:11

2014-12-04 09:47:59

2009-05-04 08:01:46

2015-04-13 10:13:29

2019-08-28 06:58:06

Linux監控腳本Shell

2023-10-19 11:27:22

Linux記賬工具

2017-02-17 09:20:24

rtopSSH監控

2022-03-11 13:28:54

SSHLinux命令

2018-01-22 09:12:18

Linuxbashssh

2019-12-20 08:00:00

云賬號劫持網絡釣魚云安全

2010-10-12 16:26:44

2022-05-20 15:22:10

惡意軟件僵尸網絡網絡攻擊

2011-02-22 09:39:08

活動目錄

2019-02-11 10:05:10

監控Linux命令

2010-09-14 17:35:52

2022-07-28 11:50:44

漏洞惡意軟件

2022-03-02 00:06:36

數據勒索軟件惡意軟件

2019-03-28 09:42:15

惡意軟件Rootkit攻擊

2011-03-03 14:26:15

PureftpdSSHFTP
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 综合五月婷 | 久久99国产精一区二区三区 | 亚洲国产精品久久久久久 | 久久性 | 国产乱码精品一品二品 | 亚洲国产精品一区二区久久 | 国产精品久久久久久久久久久久 | 国产电影一区二区三区爱妃记 | 亚洲一视频 | 成人激情视频网 | 国产精品污www一区二区三区 | a网站在线观看 | 久久九九色| 综合久久综合久久 | 久久久久久久国产 | 国产精品色 | 久色一区| www.精品国产| 欧美群妇大交群中文字幕 | 日本久草视频 | 国产精品美女久久久久久久久久久 | 日韩精品在线看 | 国产亚洲精品精品国产亚洲综合 | 日韩福利| 日韩免费视频一区二区 | a级片在线 | 国产欧美在线 | 成人免费小视频 | 国产精品福利网站 | 婷婷综合在线 | 久久一区精品 | 国产精品免费在线 | 中文字幕av色| 日韩精品视频在线免费观看 | 欧美在线a | 9久9久 | 亚洲在线视频 | av影音在线 | 成人精品国产免费网站 | 国产精品国产成人国产三级 | 中文字幕亚洲国产 |