我刚刚扫描了我的系统并clamav
检测到一些可疑文件:
File: .cahe/mozilla/firefox/jqxk4r44.default/cache2/entries/750B6E2F1286....
Status: PUA.Win.Exploit.CVE_2012_1461-1
File: .cahe/mozilla/firefox/jqxk4r44.default/cache2/entries/F099C33HJ45J....
Status: PUA.Win.Exploit.CVE_2012_1461-1
File: .config/libreoffice/4/user/basic/Standard/Module1.xba
Status: PUA.Doc.Tool.LibreOfficeMacro-2
File: Downloads/nodejs/node-v8.9.4-linux-x64/lib/node_modules/imurmurhash/imurmurhash.min.js
Status: PUA.Win.Trojan.Xored-1
这些文件是真实威胁/木马的可能性有多大?
答案1
漏洞利用.CVE_2012_1461-1
- PUA 的意思是“潜在的有害应用程序”。PUA 不是病毒,而是 clamav 声称存在他们认为“有害”的应用程序,因为该文件或扩展名已被证明在 Windows 中被滥用
- Win 作为第二部分意味着它是与 Windows 相关的通知。
- clamav 有一个不扫描 PUA 的选项。
我的结论是:没什么可担心的。
那就剩下...
PUA.Doc.Tool.LibreOfficeMacro-2
.config/libreoffice/4/user/basic/Standard/Module1.xba
有一个扩展 clamav 绊倒了。他们认为xba
,Visual Basic 宏被认为是“不需要的”。请参阅Clamtk 报告这些 LibreOffice 文件可能存在威胁。它们安全吗?以获得更完整的列表、答案和评论。
ClamAV 是出了名的有缺陷的软件:基于 Windows 的扫描和警告,然后将它们应用到 Linux 上,这是行不通的,也永远不会起作用。
当你看到这样的通知,并且你真的相信 clamav 是可以使用的工具时,下一步就是检查第二个来源:例如将文件上传到类似病毒总数或者将第二个病毒扫描软件与 clamav 一起使用(当两者都声称存在相同的问题时,您可以进行调查,否则将它们视为误报)。
但我会完全放弃 clamav,并遵循基于 Linux 的方法:使用德布苏姆(链接至手册页)检查包(链接到操作方法)。
当您真的很偏执时(熊猫就在这里看着您)请使用以上所有方法;)
答案2
我不会轻易忽视这个警告,它说的是 PUA
Module1.xba:发现 PUA.Doc.Tool.LibreOfficeMacro-2
dotjoshjohnson.xml-2.5.1:发现 PUA.Win.Trojan.Xored-1
ms-azuretools.vscode-docker-1.8.1:发现 PUA.Win.Trojan.Xored-1
file-downloader-PUA.Win.Adware.Qjwmonkey-6892535-0 已发现
BouncyCastle.Crypto.dll:PUA.Win.Adware.Qjwmonkey-6892535-0已发现
BouncyCastle.Crypto.dll:PUA.Win.Adware.Qjwmonkey-6892535-0 已发现
jquery-ui.min.js:发现 PUA.Win.Trojan.Generic-6888382-0
因此,恕我直言,您可以忽略 LibreOffice 宏,因为它将其检测为自由办公宏,尽管我可能会删除它们,但我必须对其进行测试,看看它是否是我使用的。文件下载器和广告软件只是垃圾软件,但存在潜在风险。其他软件让我担心,因为它们被检测为木马。现在我有些担心的原因是:
:# ifconfig |grep inet
inet 10.0.0.58 网络掩码 255.0.0.0 广播 10.255.255.255
inet6 xxx 前缀长度 64 范围 ID 0x20
inet 127.0.0.1 网络掩码 255.0.0.0
inet6 ::1 前缀长度 128 范围 ID 0x10
现在我有了 suricata 作为 IDS,并且正在查看 fast.log
2020/11/12-11:42:30.052835 [] [1:2025331:3] ET POLICY 在 SNI 中观察到可能的外部 IP 查找域(ipinfo.io)[] [分类:检测到网络木马] [优先级:1] {TCP} 10.0.0.58:56692 -> 216.239.36.21:443
对 216.239.36.21 进行 whois 查询显示它是 Google 服务器,但我们不知道它是 Google 服务还是云服务的客户,或者是被入侵的服务器。访问该网站后,它似乎位于内容服务器上,因为它出现 404 错误,尝试使用 HTTPS 显示它无法提供安全连接。深入研究后,该文件似乎不是由软件包提供的。
dpkg -S /usr/share/javascript/jquery-ui/jquery-ui.min.js
libjs-jquery-ui: /usr/share/javascript/jquery-ui/jquery-ui.min.js
此时这是一个边界情况,因为有一个包提供了它,查看包显示它是从 Ubuntu 档案库中安装的
apt-cache 策略 libjs-jquery-ui libjs-jquery-ui:已安装:1.12.1+dfsg-5 候选版本:1.12.1+dfsg-5 版本表:*** 1.12.1+dfsg-5 500 500http://us.archive.ubuntu.com/ubuntufocal/universe amd64 软件包 500http://us.archive.ubuntu.com/ubuntufocal/universe i386 软件包 100 /var/lib/dpkg/status
现在我可以卸载该软件包并重新安装,然后再次扫描,看看它是否来自存储库。如果它来自存储库,那么我更倾向于误报。否则,如果它不是来自存储库,我更倾向于潜在威胁。
深入研究这个问题是如何进入系统的,首先我查看了我的防火墙
Chain OUTPUT (policy DROP)
target prot opt source destination
KUBE-SERVICES all -- anywhere anywhere ctstate NEW /* kubernetes service portals */
KUBE-FIREWALL all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT udp -- anywhere anywhere udp dpt:443
ACCEPT tcp -- anywhere anywhere tcp dpt:https
ACCEPT udp -- anywhere anywhere udp dpt:80
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT tcp -- anywhere anywhere tcp dpt:domain
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT udp -- anywhere anywhere udp dpt:8080
ACCEPT tcp -- anywhere anywhere tcp dpt:http-alt
ACCEPT udp -- anywhere anywhere udp dpt:8443
ACCEPT tcp -- anywhere anywhere tcp dpt:8443
ACCEPT tcp -- anywhere anywhere tcp dpt:67
ACCEPT udp -- anywhere anywhere udp dpt:bootps
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:whois
ACCEPT udp -- anywhere anywhere udp dpt:43
ACCEPT all -- anywhere anywhere
ACCEPT icmp -- anywhere anywhere
Chain INPUT (policy DROP)
target prot opt source destination
KUBE-SERVICES all -- anywhere anywhere ctstate NEW /* kubernetes service portals */
KUBE-EXTERNAL-SERVICES all -- anywhere anywhere ctstate NEW /* kubernetes externally-visible service portals */
KUBE-FIREWALL all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
经 Kali 扫描验证,显示所有端口均已过滤,因此我知道威胁不可能从任何来源进入我的系统,只能从允许访问我的系统的程序之一进入。现在 Chrome 和 Firefox 在用户空间中运行,因此它们不应访问该文件位置。这只剩下可以访问 HTTPS 端口的 apt。总而言之,我的第一个任务是将文件移动到另一个位置进行存储,通常是复制一份以记录它,然后卸载/重新安装该软件包并查看它是否再次被触发。
在这里,我将记录与 IP 地址关联的整个过程以及我做出这些决定的原因。这将是记录受感染系统的标准程序。在 SOC 中,此时您可能希望对整个磁盘进行映像处理,因为我对我的其他安全措施相当有信心,所以我将继续监控系统,以发现进一步受感染的迹象。
现在我遇到了系统错误弹出的问题,因此我开始倾向于在仔细备份后擦除整个系统并从头开始重新加载,这意味着 Windows 和 Linux 方面。
现在,如果我有一个活跃的 SIEM,我可能会将各种安全日志警告与基线关联起来,IE 按基线的共性排序,并将 IDS 日志中的此类安全事件与服务器日志关联起来。如果我得到报酬来调查它,我会走得更远,但这是我的工作站,我可以不使用一两个功能,只是不必深入挖掘。
因此,我继续上面的陈述
apt remove libjs-jquery-ui
然后
clamscan -r --bell --infected --detect-pua=yes --scan-elf=yes --scan-mail=yes --algorithmic-detection=yes --scan-pe=yes --scan-ole2=yes --scan-pdf=yes --scan-html=yes --scan-archive=yes --max-filesize=20000000 --max-scansize=20000000 /usr/share/javascript/
----------- SCAN SUMMARY -----------
Known viruses: 8964095
Engine version: 0.102.4
Scanned directories: 1619
Scanned files: 2733
Infected files: 0
Data scanned: 140.98 MB
Data read: 38.02 MB (ratio 3.71:1)
Time: 53.914 sec (0 m 53 s)
然后
rm -rf /directoriesToOtherFilesListedAsTrojan/
这两个目录包含其他 JS 文件,因此我将重新运行整个扫描,看看扫描期间的警报是否停止。它们是插件,所以我只是删除了整个目录,但如果它们位于系统位置,我可能会像删除 jquery 一样删除它们。
现在是时候再次安装并重新扫描了:
apt install libjs-jquery-ui
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
gir1.2-ges-1.0 libges-1.0-0 python-matplotlib-data python3-cycler python3-kiwisolver
Use 'sudo apt autoremove' to remove them.
Suggested packages:
libjs-jquery-ui-docs
The following NEW packages will be installed:
libjs-jquery-ui
0 upgraded, 1 newly installed, 0 to remove and 17 not upgraded
clamscan -r --bell --infected --detect-pua=yes --scan-elf=yes --scan-mail=yes --algorithmic-detection=yes --scan-pe=yes --scan-ole2=yes --scan-pdf=yes --scan-html=yes --scan-archive=yes --max-filesize=20000000 --max-scansize=20000000 /usr/share/javascript/
/usr/share/javascript/jquery-ui/jquery-ui.min.js: PUA.Win.Trojan.Generic-6888382-0 FOUND
----------- SCAN SUMMARY -----------
Known viruses: 8964095
Engine version: 0.102.4
Scanned directories: 1628
Scanned files: 3050
Infected files: 1
Data scanned: 146.57 MB
Data read: 39.68 MB (ratio 3.69:1)
Time: 55.278 sec (0 m 55 s)
所以这清楚地表明这里列出的库来自 ubuntu 存储库,现在我可以获得一个静态代码分析工具,我将使用 linter 来查看是否有任何非常明显的结果:
eslint usr/share/javascript/jquery-ui/jquery-ui.min.js|grep -v "缺少分号"
/usr/share/javascript/jquery-ui/jquery-ui.min.js
1:47 error 'define' is not defined no-undef
1:58 error 'define' is not defined no-undef
1:93 error 'jQuery' is not defined no-undef
1:4240 error Empty block statement no-empty
1:16358 error Unnecessary escape character: \+ no-useless-escape
1:16360 error Unnecessary escape character: \- no-useless-escape
1:25753 error 'undefined' is defined but never used no-unused-vars
1:26638 error Unnecessary escape character: \- no-useless-escape
1:26888 error Unnecessary escape character: \% no-useless-escape
1:26912 error Unnecessary escape character: \% no-useless-escape
1:26936 error Unnecessary escape character: \% no-useless-escape
1:27495 error Unnecessary escape character: \% no-useless-escape
1:27519 error Unnecessary escape character: \% no-useless-escape
2:1 error Expected indentation of 1 tab but found 0 indent
2:1864 error Empty block statement no-empty
2:2023 error Empty block statement no-empty
3:1 error Expected indentation of 1 tab but found 0 indent
3:36 error Unnecessary escape character: \/ no-useless-escape
3:22586 error Unnecessary escape character: \- no-useless-escape
3:22588 error Unnecessary escape character: \[ no-useless-escape
3:22603 error Unnecessary escape character: \^ no-useless-escape
3:31806 error Unnecessary escape character: \- no-useless-escape
3:31808 error Unnecessary escape character: \[ no-useless-escape
3:31823 error Unnecessary escape character: \^ no-useless-escape
4:1 error Expected indentation of 1 tab but found 0 indent
4:16597 error Unnecessary escape character: \- no-useless-escape
4:27742 error Empty block statement no-empty
5:11073 error Empty block statement no-empty
5:11243 error Unnecessary escape character: \- no-useless-escape
5:22972 error Unnecessary escape character: \- no-useless-escape
5:23036 error Unnecessary escape character: \- no-useless-escape
5:25812 error Unnecessary escape character: \- no-useless-escape
5:25866 error Unnecessary escape character: \- no-useless-escape
6:1 error Expected indentation of 1 tab but found 0 indent
7:1 error Expected indentation of 1 tab but found 0 indent
9:7372 error Unnecessary escape character: \- no-useless-escape
10:1 error Expected indentation of 1 tab but found 0 indent
10:996 error 'Globalize' is not defined no-undef
10:1171 error 'Globalize' is not defined no-undef
10:3398 error Empty block statement no-empty
10:3460 error Empty block statement no-empty
10:7130 error Unnecessary escape character: \/ no-useless-escape
10:7139 error Unnecessary escape character: \[ no-useless-escape
10:7143 error Unnecessary escape character: \^ no-useless-escape
10:10481 error Expected a conditional expression and instead saw an assignment no-cond-assign
10:20588 error Expected a conditional expression and instead saw an assignment no-cond-assign
✖ 1167 problems (1167 errors, 0 warnings)
1127 errors, 0 warnings potentially fixable with the `--fix` option.
我会运行修复选项,看看是否有帮助,但这并不能修复检测问题。
这表明
cat usr/share/javascript/jquery-ui/jquery-ui.min.js |tail -n1 -c100
tooltipClass&&tooltipData.tooltip.addClass(this.options.tooltipClass),tooltipData}});$.ui.tooltip});root@master-node
这里的问题是,整个 js 文件的所有格式都被删除了,以试图混淆代码,仅凭这一点就应该删除该文件而不使用它。我将在这里给予 Ubuntu 团队信任,并假设这是一个误报,因为 linter 显示了常见且优先级较低的问题。一个例子是 - 转义,这非常常见,因为它在正则表达式中用于表示范围,例如 [a-zA-Z],据我所知,它是正则表达式语句中的特殊字符,人们经常对其进行转义以确保万无一失。
答案3
一旦文件被标记为 PUA,只需将该文件上传到virustotal.com 即可更好地了解可能发生的情况。Virustotal 将针对大量引擎进行扫描,因此如果文件有问题,它很可能会清楚地显示出来。