major way to detect malware first top and see if any process use lot of cpu

top //<--find the user and pid of the malware, normally taking up a lot of cpu
rm /var/spool/cron/<user>  --stop cron from respawn just incase can restore from backup
kill -9 pid --this should stop the malware

rm files <-- if no permission, then chmod, if still no permission then lsattr
lsattr files <-- check if have is immutable if yes remove it
chattr -i -a files <-- remove immutable flags. then rm again
rm files

mkdir /mnt/backfil/ <-- make a dir to mount at
ls /dev/vd* <-- list the back up device
mount /dev/vdc1 /mnt/backfil <-- mount the backup device to file
cd  / <-- goes to root dir
rsync -avn /mnt/backfil/ ./ | less <--compare file differents, n is important testing mode.

cd /etc/ssh/
rsync -av /mnt/backfil/etc/ssh/ ./

last <-- show when user last login , look for funny ip
//notice the login time of the suspicious ip try to map the time in /var/log/secure
//scan /var/log/message and /var/log/secure for the suspicious ip
//look at how it get in like ssh?
cat /var/log/secure
cat /var/log/message
//then try to find the domain name of the ip
nslookup 'suspicious ip'

//few way to determin if sshd was infected
1, ls -al //look at the time is recent then it is suspicious, if the host was not installed long time ago.
2, lsattr //look to see if the files are immutable, as sometime malware make it immutable to stop user deleting it.

Additional firewall rules

We have implemented new firewall rules. This is how our /etc/sysconfig/iptables file looks like:

# Generated by iptables-save v1.4.7 on Mon Feb  6 13:59:27 2023
*filter
:INPUT ACCEPT [177:12642]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [184:178154]
-A INPUT -s xxx.xxx.0.0/16 -j DROP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP
-A INPUT -s 192.168.0.0/16 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s 10.0.0.0/8 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s yyy.yyy.yyy.yyy/32 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s 127.0.0.0/8 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j DROP
-A OUTPUT -d xxx.xxx.0.0/16 -j DROP
COMMIT
# Completed on Mon Feb  6 13:59:27 2023

xxx.xxx.0.0/16 is to blacklist certain IP blocks. the next 2 lines block null packets and "christmas attack" packets. next, we allow 192.168 and 10. IPs to connect via SSH yyy.yyy.yyy.yyy we allow head office to connect via SSH we also allow loopback IPs to connect via SSH all other ssh packets are dropped.