macOS歹意软件排查实践指南 | 申博官网
登录
  • 欢迎进入申博官网!
  • 如果您觉得申博官网对你有帮助,那么赶紧使用Ctrl+D 收藏申博官网并分享出去吧
  • 这里是申博官方网!
  • 申博官网是菲律宾sunbet官网品牌平台!
  • 申博开户专业品牌平台!

macOS歹意软件排查实践指南

申博_安全工具 申博 48次浏览 未收录 0个评论

概述

在我们近来的文章《歹意软件怎样坚持macOS耐久性》中,我们议论了要挟参与者可以确坚耐久性的体式格局,一旦要挟参与者攻破了macOS装备,其歹意代码理论上可以在装备注销或重启后依然存在。然则,耐久性仅仅是进击链中的一个要素。尽人皆知,一些要挟行动者不单单议满足于一次性感染或反复应用破绽后坚持隐蔽,他们可以会让歹意软件在完成其目标后举行自动清算,从而确保不留下任何陈迹。明显,仅仅寻觅耐久化的项目并不足以举行要挟排查。因而,在本文中我们将深切议论怎样在macOS装备上征采要挟。

macOS歹意软件排查实践指南

收集有关Mac的信息

怎样在macOS终端上搜刮歹意软件,很大程度上取决于我们对装备的接见权限,以及当前在装备上运转的软件范例。我们将假定用户的装备此时没有平安产品的庇护,并剖析应当怎样检测个中任何可以存在的隐蔽歹意软件。假如我们的装备上具有平安产品,排查历程的准绳也坚持稳定,控制相干的排查要领论,将有助于我们应用要挟搜刮软件展开排查。

别的一件需要斟酌的事变是,我们是直接接见装备,照样仅经由过程敕令行接见装备,照样仅经由过程日记接见装备。出于演习的目标,我们假定现在可以接见敕令行,而且可以从中提取任何日记。

第1步:猎取用户列表

我们要做的第一件事,就是相识Mac上当前存在哪些用户帐户。有几种差别的体式格局可以完成这一点,个中最有效的要领是检察dscl的输出,该输出效果可以显现可以隐蔽在体系偏好设置应用顺序和登录屏幕中的用户帐户。

敕令相似于:

$ dscl . list /Users UniqueID

实行该敕令后,其效果不单单议列出/Users文件夹的内容,还可以列出一些隐蔽的帐户。假如运用ls敕令,就不会向我们展现隐蔽的用户,或主文件夹位于其他位置的用户,因而请务必运用dscl来猎取完整的用户状况。

dscl list敕令的一个瑕玷在于,它可以会向我们展现出100个或更多的帐户,个中大多数帐户都是由体系运用,而不是由控制台(即登录)用户运用。我们可以经由过程疏忽那些以下划线开首的帐户来排撤除一切体系帐户,从而减少列表的局限:

$ dscl . list /Users UniqueID | grep -v ^_

macOS歹意软件排查实践指南

然则,如许就没法消除歹意行动者可以建立以下划线开首的帐户称号的可以性:

macOS歹意软件排查实践指南

因而,我们照样应当搜检完整列表,并运用有关用户运动的其他信息来补充举行用户搜刮。在这里,有一个很好的敕令就是w,它可以显现出每一个登录的用户,以及这些用户当前的运动。

macOS歹意软件排查实践指南

在这里,我们看到了用户_mrmalicious,假如我们过滤掉以下划线开首的用户,这个可疑的用户就不会在dscl效果中涌现。我们看到,这个用户正在运用bash。

只管w实用顺序是检察当前运动状况的一个好要领,但它也不会显现过去的用户,因而,我们另有末了一个敕令来补足短板,可以向我们展现出之前的登录状况。

$ last

下面是部份输出效果,展现了用户的登录以及关闭体系状况。

macOS歹意软件排查实践指南

第2步:搜检耐久性

我们已在之前的文章中细致引见了这一点,因而请人人先参考此前的文章,并重点关注一些轻易被疏忽的要领。

需要注重的是,在查找LaunchAgents和其他历程时,我们必需斟酌Mac上的一切用户,包括root用户。假如存在,我们应当可以在/var/root中找到。

下面是一个Mac歹意软件的案例。在一切用户每次启动时,会运转体系级别的LaunchDaemon,挪用隐蔽在root用户的Library文件夹内不可见文件夹中的Python剧本。

macOS歹意软件排查实践指南

我们还需要斟酌应用开放端口和互联网衔接的耐久性要领,因而我们需要继承排查下一步。

第3步:搜检开放的端口和衔接

对后门感兴致的歹意软件作者一般会尝试在未运用的端口上设置效劳器以监听衔接。一个很好的例子是近来的Zoom破绽,该破绽迫使公司推出紧要补丁,尝试修复Mac用户的0-Day破绽。Zoom客户端会在端口19421上运转隐蔽的效劳器,可以会向进击者公然及时的收集摄像头,并许可长途实行代码。这是一个很好的例子,可以申明一个特权历程要设置一个耐久的效劳器是何等轻易,该效劳器可以充任后门,轻松回避普通用户的检测,也能避开macOS内置的平安机制。

macOS歹意软件排查实践指南

我们可以看到,有效劳器正在监听22、88、445端口。这表明Mac的同享首选项中已启用了长途登录和长途文件同享。我们可以在这里检察Apple效劳运用的完整端口列表。

接下来,我们运用以下敕令:

$ lsof –i

列出具有开放IPv4、IPv6和HP-UX X25衔接的一切文件。

macOS歹意软件排查实践指南

该输出效果为我们供应了相当多的有效信息,包括IP地点、敕令和PID。我们可以查询ps实用顺序,猎取有关每一个历程的更多信息。

$ ps -p <pid>

macOS歹意软件排查实践指南

第4步:排查正在运转的历程

ps敕令有很多有效的选项,也可以作为我们可以运用的东西之一,用于检察信息收集历程当中在Mac上运转的内容。

我需要做的第一件事,就是以超等用户身份运转它,从而猎取一切历程的完整列表。

看我如何通过帮助服务台轻松黑掉数百家公司

更新:  The Next Web 写了一篇我发现的这个漏洞的文章。 引言 几个月前,我发现一个黑客可以轻松访问目标公司的内部通信网络的漏洞。 这个漏洞只需要点击几下,就可以访问企业内部网络、 Twitter 等社交媒体账户,以及最常见的 Yammer 和 Slack 团队账户。 这个漏洞到目前依然存在。这并不是一个可以马上可以修复的漏洞。在过去的几个月里,我主动联系了几十家公司,并把它们作为 bug 赏金计划的一部分,来修复它们因为错误配置所导致的这个漏洞。但由于受该漏洞影响的公司数量很大,我不可能联系到每一个公司。所以根据我的一些安全同行的建议,以及受影响的供

$ ps -axo user,pid,ppid,%cpu,%mem,start,time,command

我一般会将其转储到文本文件中,并对PPID(父历程标识符)不为1的敕令举行重点关注,这表明用户历程会天生子历程。

另外,可以经由过程下面的敕令转储输出:

$ lsappinfo list

这将供应很多有关应用顺序的主要信息,包括可实行途径、PID、Bundle标识符(用于检测目标)和启动时刻。

macOS歹意软件排查实践指南

我们还可以经由过程launchctl实用顺序搜检正在运转的保卫顺序、代办和XPC效劳。我发明一些较旧的、已弃用的语法比新语法越发轻易剖析,但这可以仅仅是我的习气偏好,因而请尝试运用个中的恣意一种。

在旧语法中,我们可以简朴地运转下面的敕令,来猎取有关该特定用户域中正在运转的内容的大批相干信息。

$ launchtl list

假如该敕令与sudo配合运用,还可以天生在体系局限域中运转的效劳列表。

在新语法中,我们可以运用相似以下的要领:

$ launchctl print user/501

将501替换为我们需要检察的恣意UID,并运用下面的语句来定位体系局限的域:

$ launchctl print system

运用旧语法和新语法的输出是完整差别的,详细哪一种语法更适宜,可以要取决于我们想要的信息范例。我常常运用旧语法,并运用com.apple标签来举行grep支配,以便我可以专注于绝大多数的费体系历程。然则,有些macOS歹意软件有意运用了apple这个名字,所以假如我们依据如许的发起举行了排查,必需要确保在其他位置剖析带有“apple”标签的东西,比方从原始数据中,或许运用ps实用顺序。

第5步:排查翻开的文件

此前,我们运用了带有-i选项的lsof来列出开放的端口,但实际上,我们也可以经由过程不带参数运转lsof来列出一切翻开的文件。如许会发生出大批的信息,我们愿望将其敏捷减少,以使其易于治理。

macOS歹意软件排查实践指南

假如在体系运转时,已翻开了体系完整性庇护(提醒:我们可以运用敕令csrutil status来肯定),那末一般可以剖析lsof的输出,比方运用BBEdit,并删除包括对System文件夹援用的一切行。请记着,如许做可以会致使我们遗漏掉某些内容,并不是一切体系文件夹都遭到SIP的庇护,但在排查的前期阶段,我认为这类几率是可以接收的,而且也没法找到其他的要挟目标。

出于相似的缘由,我倾向于起首关注不属于通例应用顺序的翻开文件。我们必需清晰地认识到,歹意软件作者偶然可以运用通例的应用顺序来完成歹意支配,比方运用浏览器的0-Day破绽,或许经由过程供应链进击的体式格局。因而,我们必需要清晰晓得已过滤掉的内容,而且在后续任何有必要的时刻回过头来再次排查。

第6步:排查文件体系

到此时,假如我们还没有发明任何可疑历程,那末极可以是由于歹意软件已实行完成,所以现在是时刻对文件体系举行末尾排查了。在这里,我们只是试图肯定存在要挟,而不是对全部体系举行深切地观察取证,因而我们可以敏捷地排查我们可以看到的资本接见和剖析,从而查找歹意行动的证据。

然则,在我们最先之前,请关注一个题目。假如我们是在macOS 10.14 Mojave以上版本举行排查,我们可以会发明敕令行排查历程会遭到macOS近来用户庇护的障碍。为防止这些,需要确保已将终端(Terminal)添加到“隐私”(Privacy)窗格中的“完整磁盘接见”(Full Disk Access)面板中。

macOS歹意软件排查实践指南

我倾向于起首对某些未知的文件举行排查,这些位置是歹意软件最经常使用的处所。个中包括用户主文件夹中的隐蔽文件和文件夹、添加到/Library和~/Library中的异常文件夹,以及一切这些文件夹中的Application Support文件夹。需要关注的是,每一个用户都有一个零丁的Library文件夹,以及计算机域级别。

我们可以运用单行顺序,在当前用户和计算机域上猎取这些内容:

$ ls -al ~/.* ~/~/Library /Library ~/Library/Application\ Support /Library/Application\ Support/

假如Mac上有多个用户帐户,需要运用bash剧本下拉到sudo并枚举每一个用户。

接下来,搜检/Users/Shared文件夹,以及/private/tmp中的暂时目次和用户的暂时目次(这些都不雷同),我们可以运用$TMPDIR环境变量。

$ ls -al /Users/Shared
$ ls -al /private/tmp
$ ls -al $TMPDIR

另外,不要遗忘我们应当已有一个项目列表,个中包括启动文件夹和观察耐久性机制的任何Cron使命。一般状况下,假如在个中发清楚明了可疑的项目,就应当举行重点排查。

在大多数状况下,假如Mac已感染,上述步骤的排查历程当中就会发明可疑项,而且可以给出我们进一步的方向,但假如没有,另有一些其他需要注重的事项。假如我们怀疑是不久前方才感染(比方几天,或更短时刻内),可以尝试搜刮查找自特定时刻或日期以后(或之间)建立的任何文件。比方,下面的例子将会查找在过去30分钟内当前工作目次中修正的一切文件。我们可以将m替换为h来指定运用小时作为单元,或许不运用申明符,将会默认为天。

$ find . -mtime +0m -a -mtime -30m –print

取决于该装备的通例运动量,以及搜刮的时刻局限,可以会发生大批数据,也可以会发生易于排查的少许数据,因而我们需依据实际需要天真调解搜刮参数。

我们还可以查询LSQuarantine数据库,检察电子邮件客户端和浏览器下载了哪些项目。

$ sqlite3 ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV* 'select LSQuarantineEventIdentifier, LSQuarantineAgentName, LSQuarantineAgentBundleIdentifier, LSQuarantineDataURLString, LSQuarantineSenderName, LSQuarantineSenderAddress, LSQuarantineOriginURLString, LSQuarantineTypeNumber, date(LSQuarantineTimeStamp + 978307200, "unixepoch") as downloadedDate from LSQuarantineEvent order by LSQuarantineTimeStamp' | sort | grep '|' –color

一样,我们可以起首猎取大批数据轻易挑选,在详细过滤时可以挑选特定的日期局限。LSQuarantine的优点在于,它会为我们供应文件下载位置的确实URL,我们可以运用这一信息在VirusTotal或其他信用平台上举行查询。LSQuarantine的瑕玷在于,数据库很轻易经由过程用户(或歹意行动者)在UI中采用的一般支配来完成消灭。因而,假如在这里找不到某些内容,不消除文件时机上没有经由过程断绝历程的可以性。

另有一个有效的技能,是经由过程对断绝位实行mdfind查询,并剖析输出效果:

$ mdfind com.apple.quarantine

运用如许的敕令,可以找到已下载的文件,包括歹意PDF、Word等,个中也标清楚明了断绝位的状况。然则,这里面会有很多正当的文件,因而需要举行仔细挑选。

第7步:排查Mac的收集设置

在某些状况下,macOS上的歹意软件会支配DNS和AutoProxy收集设置,因而我们有必要搜检这些设置。我们可以从敕令行猎取信息,因而,起首运用下面的敕令,猎取收集接口设置的细致信息:

$ ifconfig

该敕令会输出关于无线收集、以太网、蓝牙和其他接口的信息。我们还需要收集SystemConfiguration属性列表,以查找试图挟制Mac上DNS效劳器设置的歹意软件。在2018年发明的OSX.MaMi歹意软件就是如许做的。

$ plutil -p /Library/Preferences/SystemConfiguration/preferences.plist

可以运用下面的敕令来搜检Mac的自动代办设置:

$ scutil --proxy

像OnionSpy如许的特务软件,会设置这些设置,从而将用户流量重定向到进击者挑选的效劳器上。

深切排查macOS的隐蔽数据库

依据用户具有的接见权限和受权,可以深切排查并恢复文件体系事宜、用户浏览纪录、电子邮件历史纪录、应用顺序运用状况、衔接装备等异常详实的信息。在后续关于macOS数字取证和事宜相应的文章中,我们将引见Apple内置的system_profiler和sysdiagnose实用顺序、一致日记纪录、fsevents以及sqlite缓存,这些缓存险些包括了我们可以愿望相识的一切细节。在大多数状况下,上述所列出的步骤足以协助我们找到macOS歹意软件的证据,即使是碰到最为隐蔽的歹意软件也是云云。经由过程深切研究这些证据,可认为我们供应更多信息,从而协助检测、修复和归因。

总结

假如列位读者有兴致进修怎样排查macOS上的歹意软件感染状况,无论是挖矿软件、广告歹意软件、后门顺序照样民族国家的高等进击,本文列出的步骤都可认为人人供应一个优越的末尾,让我们控制应当在哪里找、应当要找什么。发起人人浏览我们关于macOS耐久性的文章,由于这一般是最轻易检测的目标。也请人人延续关注我们,我们会连续推出关于macOS平安的系列文章。

原文地点: https://www.4hou.com/system/19184.html


申博|网络安全巴士站声明:该文看法仅代表作者自己,与本平台无关。版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明macOS歹意软件排查实践指南
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址