如何在 Linux/Unix/Windows中发现隐藏的进程和端口

2018-02-09 13:50:40 1101浏览

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端口。



如何安装unhide

首先建议你在只读介质上运行这个工具。如果使用的是Ubuntu或者Debian发行版,输入下述的apt-get/apt命令以安装Unhide:

$sudoapt-getinstallunhide

一切顺利的话你的命令行会输出以下内容:

[sudo]passwordforvivek:

Readingpackagelists...Done

Buildingdependencytree

Readingstateinformation...Done

Suggestedpackages:

rkhunter

ThefollowingNEWpackageswillbeinstalled:

unhide

0upgraded,1newlyinstalled,0toremoveand0notupgraded.

Needtoget46.6kBofarchives.

Afterthisoperation,136kBofadditionaldiskspacewillbeused.

Get:1http://in.archive.ubuntu.com/ubuntuartful/universeamd64unhideamd6420130526-1[46.6kB]

Fetched46.6kBin0s(49.0kB/s)

Selectingpreviouslyunselectedpackageunhide.

(Readingdatabase...205367filesanddirectoriescurrentlyinstalled.)

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

Unpackingunhide(20130526-1)...

Settingupunhide(20130526-1)...

Processingtriggersforman-db(2.7.6.1-2)...

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

输入下列yumTypethefollowingyumcommand(firstturnonEPLErepoonaCentOS/RHELversion6.xorversion7.x):

输入以下的yum命令(CentOS/RHEL6.x或7.x上首先打开EPEL仓库):

$sudoyuminstallunhide

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

$sudodnfinstallunhide

如何在Arch上安装unhide

键入以下pacman命令安装:

$sudopacman-Sunhide

如何在FreeBSD上安装unhide

可以通过以下的命令使用port来安装unhide:

#cd/usr/ports/security/unhide/

#makeinstallclean

或者可以通过二进制文件安装hide,使用pkg命令安装:

#pkginstallunhide

如何使用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:

#unhideproc

#unhidesys

#unhidequick

示例输出:

Unhide20130526

Copyright?2013YagoJesus&PatrickGouin

LicenseGPLv3+:GNUGPLversion3orlater

http://www.unhide-forensics.info

NOTE:ThisversionofunhideisforsystemsusingLinux>=2.6

Usedoptions:

[*]SearchingforHiddenprocessesthroughcomparisonofresultsofsystemcalls,proc,dirandps

如何使用unhide-tcp工具辨明TCP/UDP端口的身份

以下是来自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

StartingTCPchecking

StartingUDPchecking

上述操作中,没有发现隐藏的端口。

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

#unhide-tcp

示例输出:

Unhide20100201

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

StartingTCPchecking

FoundHiddenportthatnotappearsinnetstat:1048

FoundHiddenportthatnotappearsinnetstat:1049

FoundHiddenportthatnotappearsinnetstat:1050

StartingUDPchecking

可以看到netstat-tulpn和ss命令确实没有反映出这三个隐藏的端口:

#netstat-tulpn|grep1048

#ss-lp

#ss-l|grep1048

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

$manunhide

$manunhide-tcp

Windows用户如何安装使用unhide

你可以通过这个页面获取Windows版本的unhide。

最后想要了解更多关于Linux发展前景趋势,请关注扣丁学堂Linux培训官网、微信等平台,扣丁学堂IT职业在线学习教育平台为您提供权威的Linux培训视频教程系统,通过千锋扣丁学堂金牌讲师在线录制的Linux视频教程课程,让你快速掌握Linux从入门到精通开发实战技能。扣丁学堂Linux技术交流群:422345477。


扣丁学堂微信公众号



关注微信公众号获取更多的学习资料



查看更多关于“Linux培训资讯的相关文章>>

标签: Linux命令 Linux视频教程 Linux培训 Linux在线学习 Linux在线视频 Linux系统

热门专区

暂无热门资讯

课程推荐

微信
微博
15311698296

全国免费咨询热线

邮箱:codingke@1000phone.com

官方群:148715490

北京千锋互联科技有限公司版权所有   北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
京ICP备12003911号-6   Copyright © 2013 - 2019

京公网安备 11010802030908号