热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何恢复隐藏的窗口已知进程名称_如何判断Linux系统是否被黑客入侵?可以用这种方法...

恶意软件有时会使用Linux内核进程伪装来隐藏其运行时,让我们研究一下如何使用这种策略来揭露Linux恶意软件。Linux内核进程伪装了什么?在Linu

恶意软件有时会使用Linux内核进程伪装来隐藏其运行时,让我们研究一下如何使用这种策略来揭露Linux恶意软件。

57435479f65e52d01d74163378558427.png

Linux内核进程伪装了什么?

在Linux上,内核创建了许多线程来帮助完成系统任务,这些线程可以用于调度,磁盘I / O等。

当您使用标准进程列表命令(例如ps)时,这些线程将显示为带有 [brackets] ,以表示它们是某种线程。 在ps 列表中, 普通进程通常不会显示 [brackets]。方brackets表示该进程没有命令行参数,这通常意味着该进程是作为线程产生的。

例如,以下清单显示了内核线程与正常进程的比较:

ps –auxww

d1e1102f80c62d9a0669c6e28d1faaf3.png

图1-Linux内核线程与正常进程

它是什么样子的?

Linux恶意软件使用多种技术来隐藏检测程序。

据全球公认的白帽黑客、网络安全专家郭盛华透露:“黑客将使用的一种方法是通过使进程,在ps列表中的名称周围显示[brackets]来模拟内核线程 ,管理员可以轻松地以这种方式忽略恶意进程。”

如果您查看下面的清单,我们已经开始尝试通过看起来像内核线程来隐藏自身。你能看见它吗?

e6f626d98ae3d6629b12e666a6d9c649.png

图2 —伪装隐藏的Linux内核线程的示例

如何模拟Linux内核线程

现在您知道了伪装的Linux内核线程是什么样子,让我们设置一个测试,以便您可以尝试使用命令行取证来查找它。

我们将使用sleep命令进行仿真,因为您可以在任何系统上执行该命令,而不必担心会引起麻烦:

export PATH=.:$PATH

cp /bin/sleep /tmp/[kworkerd]

cd /tmp

"[kworkerd]" 3600 &

该出口路集的东西,所以我们可以在不需要把一个运行在本地目录中的文件“./”在它的前面。这使它看起来更合法。

接下来,我们将sleep命令复制到/ tmp,然后以假名[kworkerd]运行它。我们为sleep命令设置了3600秒的值,因此一旦测试结束,它将在一个小时后自动退出。

让我们看一下我们的手工,当执行ps命令时,我们应该看到[kworkerd]正在运行。

ps -auxww

123acbfb33b829e93e668e72a0fd194b.png

图3-真正与冒名顶替的Linux内核线程

伪装与进程图伪装的Linux内核线程

我们用来掩盖伪装过程的第一种方法是查看它是否在/ proc / / maps下具有任何内容。

该位置通常是进程显示它们链接到的库以及映射到内存中的位置的位置。对于真正的内核线程,它应该为空。如果您在此位置查找[brackets]中命名的进程, 但该进程 显示任何数据,则它不是真正的内核线程。

我们将使用的基本命令是cat / proc / / maps,其中是我们正在研究的进程ID。在上面的示例中,我们认为[kworkerd]对于PID 2121似乎可疑,因此我们将对其进行检查:

cat/ proc / 2121 / maps

27b4f72b632cb32d6bb201332d6a7a40.png

图4 —使用Linux / proc映射检测内核伪装

如果您在此区域下看到任何内容,并且该过程 周围有 [brackets],则可能是恶意的并试图隐藏。

如果需要,可以运行此命令以快速遍历所有系统PID,并查看哪些带有方括号的名称,但具有映射文件。通常,您在这里什么也看不到。任何显示数据的信息都应进一步调查。

ps auxww | grep [ | awk '{print $2}' | xargs -I % sh -c 'echo PID: %; cat /proc/%/maps' 2> /dev/null

如果发现了什么,此命令将输出以下图像。

b78f0d1f0ed12bc9e801a17738f1aad1.png

图5 —查找伪装成脚本的Linux内核

在/ proc / / maps列表中,您将看到一些路径来研究二进制文件在哪里链接到其自身或所使用的库。在上面,我们看到了/ tmp / [kworkerd]路径,这是要调查的高优先级位置。您还可能会看到可疑的库,对隐藏目录的引用等。仔细看看,确保您不会错过任何东西!

伪装加密的伪装Linux内核线程

揭露伪装的Linux内核线程的另一种方法是查看它是否显示与正在运行的进程关联的二进制文件。基本上,您仅使用我们讨论的关于恢复已删除的恶意二进制文件的技术 ,但是请查看是否可以获得SHA1。如果您返回了,那么这是试图隐藏的正常过程,而不是内核线程。真正的内核线程不会链接到启动它们的二进制文件。

如果仅查看/ proc / / exe,则可以快速复制Linux上的进程二进制文件。您可以将此文件复制到新位置,并具有启动该过程的二进制文件的即时快照。您还可以使用此链接获取即时值,以检查已知恶意软件的数据库。真正的内核线程将无法获得此数据,只有冒名顶替者会提供。

在我们的案例中,我们将使用此知识来调查可疑的PID 2121,如下所示:

sha1sum / proc / 2121 / exe

4712fcedeb2f9231f414079e088a5188.png

图6 —获得Linux内核伪装攻击的SHA1

让我们恢复二进制并将其复制到某个地方,以便可以离线分析它。使用下面的命令,我们将复制到/ tmp / suspicious_bin。现在,我们拥有自己的副本,以防恶意软件试图自卫地删除自身:

cp / proc / 2121 / exe / tmp / suspicious_bin

2e7de26ea2257b714ab06617761f4607.png

图7 —恢复可疑的Linux恶意软件二进制文件

如果要自动搜寻PID并获取冒名顶替者的SHA1 attack,可以运行以下命令:

ps auxww | grep [ | awk '{print $2}' | xargs -I % sh -c 'echo PID: %; sha1sum /proc/%/exe' 2> /dev/null

上面的命令将尝试获取所有带有[花括号]的进程的SHA1 ,任何返回值的可能都是骗子:

4688efce6770027823d571cf198d2687.png

图8-伪装Linux内核线程的SHA1的脚本输出

现在,您有两种使用Linux命令行的可靠方法来调查试图伪装成内核线程的可疑进程。看完这篇文章后,你应该知道如何判断Linux系统是否被黑客入侵了吧?(欢迎转载分享)



推荐阅读
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • Linux下安装免费杀毒软件ClamAV及使用方法
    本文介绍了在Linux系统下安装免费杀毒软件ClamAV的方法,并提供了使用该软件更新病毒库和进行病毒扫描的指令参数。同时还提供了官方安装文档和下载地址。 ... [详细]
  • 本文探讨了容器技术在安全方面面临的挑战,并提出了相应的解决方案。多租户保护、用户访问控制、中毒的镜像、验证和加密、容器守护以及容器监控都是容器技术中需要关注的安全问题。通过在虚拟机中运行容器、限制特权升级、使用受信任的镜像库、进行验证和加密、限制容器守护进程的访问以及监控容器栈,可以提高容器技术的安全性。未来,随着容器技术的发展,还需解决诸如硬件支持、软件定义基础设施集成等挑战。 ... [详细]
  • 本文详细介绍了在Linux虚拟化部署中进行VLAN配置的方法。首先要确认Linux系统内核是否已经支持VLAN功能,然后配置物理网卡、子网卡和虚拟VLAN网卡的关系。接着介绍了在Linux配置VLAN Trunk的步骤,包括将物理网卡添加到VLAN、检查添加的VLAN虚拟网卡信息以及重启网络服务等。最后,通过验证连通性来确认配置是否成功。 ... [详细]
  • PatchODAX8: ... [详细]
  • 三、寻找恶意IP并用iptables禁止掉找出恶意连接你的服务器80端口的IP,直接用iptables来drop掉它;这里建议写脚本来运行, ... [详细]
  • 找到JDK下载URL当然去官网找了。目前最新的1.8的下载URL(RPM)如下:http:download.oracle.comotn-pubjavajdk8u161-b122f3 ... [详细]
  • 一、概述nmon是一种在AIX与各种Linux操作系统上广泛使用的监控与分析工具,相对于其它一些系统资源监控工具来说,nmon所记录的信息是比较全面的 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
author-avatar
幸福树袋熊2502903015
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有