博客专栏

EEPW首页 > 博客 > 如何在Linux/Unix/Windows中发现隐藏的进程和端口

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

发布人:扣丁学习 时间:2020-11-09 来源:工程师 发布文章

  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技术交流群:659974587。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。



关键词:

相关推荐

技术专区

关闭