當前位置:
首頁 > 最新 > 如何在 Linux/Unix/Windows 中發現隱藏的進程和埠

如何在 Linux/Unix/Windows 中發現隱藏的進程和埠

英文:Vivek Gite,翻譯:Linux中國/fan Li

linux.cn/article-9288-1.html

unhide 是一個小巧的網路取證工具,能夠發現那些藉助 rootkit、LKM 及其它技術隱藏的進程和 TCP/UDP 埠。這個工具在 Linux、UNIX 類、MS-Windows 等操作系統下都可以工作。根據其 man 頁面的說明:

Unhide 通過下述三項技術來發現隱藏的進程。

進程相關的技術,包括將 /proc 目錄與/bin/ps命令的輸出進行比較。

系統相關的技術,包括將/bin/ps命令的輸出結果同從系統調用方面得到的信息進行比較。

窮舉法相關的技術,包括對所有的進程 ID 進行暴力求解,該技術僅限於在基於 Linux2.6 內核的系統中使用。

絕大多數的 Rootkit 工具或者惡意軟體藉助內核來實現進程隱藏,這些進程只在內核內部可見。你可以使用 unhide 或者諸如rkhunter 等工具,掃描 rootkit 程序 、後門程序以及一些可能存在的本地漏洞。

這篇文章描述了如何安裝 unhide 並搜索隱藏的進程和 TCP/UDP 埠。


首先建議你在只讀介質上運行這個工具。如果使用的是 Ubuntu 或者 Debian 發行版,輸入下述的apt-get/apt命令以安裝 Unhide:

$sudoapt-get installunhide

一切順利的話你的命令行會輸出以下內容:

[sudo]passwordforvivek:

Readingpackagelists...Done

Building dependency tree

Reading stateinformation...Done

Suggestedpackages:

rkhunter

The followingNEWpackages will beinstalled:

unhide

upgraded,1newlyinstalled,toremoveandnotupgraded.

Needtoget46.6kB ofarchives.

Afterthisoperation,136kB of additional disk space will beused.

Get:1//in.archive.ubuntu.com/ubuntu artful/universe amd64 unhide amd64 20130526-1 [46.6 kB]

Fetched46.6kBin0s(49.0kB/s)

Selecting previously unselectedpackageunhide.

(Readingdatabase...205367filesanddirectories currentlyinstalled.)

Preparingtounpack.../unhide_20130526-1_amd64.deb...

Unpacking unhide(20130526-1)...

Setting up unhide(20130526-1)...

Processing triggersforman-db(2.7.6.1-2)...

如何在 RHEL/CentOS/Oracle/Scientific/Fedora 上安裝 unhide

輸入下列 yum Type the following yum command (first turn on EPLE repo on a CentOS/RHEL version 6.x or version 7.x):

輸入以下的 yum 命令(CentOS/RHEL 6.x 或 7.x 上首先打開 EPEL 倉庫):

$sudo yum installunhide

在 Fedora 上則使用以下 dnf 命令:

$sudo dnf installunhide

如何在 Arch 上安裝 unhide

鍵入以下 pacman 命令安裝:

$sudopacman-Sunhide

如何在 FreeBSD 上安裝 unhide

可以通過以下的命令使用 port 來安裝 unhide:

# cd /usr/ports/security/unhide/

# make install clean

或者可以通過二進位文件安裝 hide,使用 pkg 命令安裝:

# pkg install unhide

如何使用 unhide 工具?

unhide 的語法是:

unhide[options]test_list

test_list 參數可以是以下測試列表中的一個或者多個標準測試:

brute

proc

procall

procfs

quick

reverse

sys

或基本測試:

checkbrute

checkchdir

checkgetaffinity

checkgetparam

checkgetpgid

checkgetprio

checkRRgetinterval

checkgetsched

checkgetsid

checkkill

checknoprocps

checkopendir

checkproc

checkquick

checkreaddir

checkreverse

checksysinfo

checksysinfo2

checksysinfo3

你可以通過以下示例命令使用 unhide:

# unhide proc

# unhide sys

# unhide quick

示例輸出:

Unhide20130526

Copyright?2013YagoJesus&Patrick Gouin

LicenseGPLv3+ :GNU GPLversion3orlater

http://www.unhide-forensics.info

NOTE:Thisversion of unhideisforsystems usingLinux>=2.6

Usedoptions:

[*]SearchingforHidden processes through comparison of results of systemcalls,proc,dirandps


以下是來自 man 頁面的介紹:

unhide-tcp 取證工具通過對所有可用的 TCP/IP 埠進行暴力求解的方式,辨別所有正在監聽,卻沒有列入/bin/netstat或者/bin/ss命令輸出的 TCP/IP 埠身份。

注一:對於 FreeBSD、OpenBSD系統,一般使用 netstat 命令取代在這些操作系統上不存在的 iproute2,此外,sockstat 命令也用於替代 fuser。

注二:如果操作系統不支持 iproute2 命令,在使用 unhide 時需要在命令上加上 -n或者 -s 選項。

# unhide-tcp

示例輸出:

Unhide20100201

http://www.security-projects.com/?Unhide

Starting TCP checking

Starting UDPchecking

上述操作中,沒有發現隱藏的埠。

但在下述示例中,我展示了一些有趣的事。

# unhide-tcp

示例輸出:

Unhide20100201

http://www.security-projects.com/?Unhide

Starting TCP checking

Found Hidden port thatnotappearsinnetstat:1048

Found Hidden port thatnotappearsinnetstat:1049

Found Hidden port thatnotappearsinnetstat:1050

Starting UDPchecking

可以看到 netstat -tulpn 和 ss 命令確實沒有反映出這三個隱藏的埠:

# netstat -tulpn | grep 1048

# ss -lp

# ss -l | grep 1048

通過下述的 man 命令可以更多地了解 unhide:

$manunhide

$manunhide-tcp

Windows 用戶如何安裝使用 unhide

你可以通過這個頁面獲取 Windows 版本的 unhide:

http://www.unhide-forensics.info/?Windows:Download


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嵌入式資訊精選 的精彩文章:

用python在樹莓派上編程,你可以將項目擴展到令人難以置信的規模

TAG:嵌入式資訊精選 |