원격 서버가 있고 수신하는 이메일은 대역폭 사용량의 약 90%를 소비합니다. 그래서 서버에 로그인해서 확인해 보니 gnome-terminal
서버에서 실행되고 있는 걸 확인했는데 아직 설치를 안 한 상태였습니다. netstat
출력에서 얻었습니다 .
[root@ser ~]# netstat -tunlpa
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 118/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 223/sendmail: accep
tcp 0 28 xx.xx.xx.xx:22 MYIP:42584 ESTABLISHED 750/sshd: givi [p
tcp 0 0 xx.xx.xx.xx:55920 204.44.101.130:21 ESTABLISHED 379/gnome-terminal
tcp6 0 0 :::22 :::* LISTEN 118/sshd
이것은 새 서버이고 sendmail과 sshd(이미 실행 중)를 제외한 어떤 응용 프로그램도 시작하지 않았지만 몇 가지 필수 응용 프로그램을 설치했습니다. 결과 에 ps
일부 활동(예: 명령 실행)도 표시되는데 이를 해결하는 방법을 모르겠습니다.
[root@ser ~]# ps auxxwwffff
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 40892 3268 ? Ss 05:03 0:00 init -z
root 2 0.0 0.0 0 0 ? S 05:03 0:00 [kthreadd/5227]
root 3 0.0 0.0 0 0 ? S 05:03 0:00 \_ [khelper/5227]
root 60 0.0 0.1 41452 1684 ? Ss 05:03 0:00 /usr/lib/systemd/systemd-udevd
root 67 0.0 0.4 148056 5144 ? Ss 05:03 0:00 /usr/lib/systemd/systemd-journald
dbus 97 0.0 0.1 26400 1604 ? Ss 05:03 0:00 /bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
root 104 0.0 0.1 26332 1628 ? Ss 05:03 0:00 /usr/lib/systemd/systemd-logind
root 118 0.0 0.3 82788 3556 ? Ss 05:03 0:00 /usr/sbin/sshd -D
root 750 0.0 0.4 132876 5080 ? Ss 05:05 0:00 \_ sshd: givi [priv]
givinv 752 0.0 0.2 132876 2236 ? S 05:05 0:00 \_ sshd: givi@pts/0
givi 753 0.0 0.1 115336 2024 pts/0 Ss 05:05 0:00 \_ -bash
root 790 0.0 0.2 187644 2744 pts/0 S 05:05 0:00 \_ sudo -i
root 791 0.0 0.1 115336 2064 pts/0 S 05:05 0:00 \_ -bash
root 2276 0.0 0.1 139444 1600 pts/0 R+ 05:12 0:00 \_ ps auxxwwffff
root 127 0.0 0.0 6400 804 tty1 Ss+ 05:03 0:00 /sbin/agetty --noclear --keep-baud console 115200 38400 9600 vt220
root 128 0.0 0.0 6400 804 tty2 Ss+ 05:03 0:00 /sbin/agetty --noclear tty2 linux
root 129 0.0 0.1 22772 1560 ? Ss 05:03 0:00 /usr/sbin/crond -n
root 1126 0.0 0.0 31520 300 ? Ssl 05:07 0:00 sh
root 2248 0.0 0.0 1408 932 ? Ss 05:12 0:00 cat resolv.conf
root 2251 0.0 0.0 1408 928 ? Ss 05:12 0:00 cd /etc
root 2254 0.0 0.0 1408 932 ? Ss 05:12 0:00 sleep 1
root 2256 0.0 0.0 1408 932 ? Ss 05:12 0:00 ls
root 2257 0.0 0.0 1408 932 ? Ss 05:12 0:00 netstat -antop
root 2266 0.0 0.0 1408 932 ? Ss 05:12 0:00 uptime
root 2267 0.0 0.0 1408 932 ? Ss 05:12 0:00 whoami
root 2272 0.0 0.0 1408 928 ? Ss 05:12 0:00 who
root 2274 0.0 0.0 1408 932 ? Ss 05:12 0:00 id
root 2275 0.0 0.0 1408 932 ? Ss 05:12 0:00 sleep 1
마지막 몇 줄의 결과를 확인하세요! 다시 실행 하면 ps
마지막 몇 줄에 대해 다른 결과가 나타납니다.
[root@ser ~]# ps auxxwwffff
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 40892 3268 ? Ss 05:03 0:00 init -z
root 2 0.0 0.0 0 0 ? S 05:03 0:00 [kthreadd/5227]
root 3 0.0 0.0 0 0 ? S 05:03 0:00 \_ [khelper/5227]
root 60 0.0 0.1 41452 1684 ? Ss 05:03 0:00 /usr/lib/systemd/systemd-udevd
root 67 0.0 0.4 148056 5156 ? Ss 05:03 0:00 /usr/lib/systemd/systemd-journald
dbus 97 0.0 0.1 26400 1604 ? Ss 05:03 0:00 /bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
root 104 0.0 0.1 26332 1628 ? Ss 05:03 0:00 /usr/lib/systemd/systemd-logind
root 118 0.0 0.3 82788 3556 ? Ss 05:03 0:00 /usr/sbin/sshd -D
root 750 0.0 0.4 132876 5080 ? Ss 05:05 0:00 \_ sshd: givi [priv]
givi 752 0.0 0.2 132876 2236 ? S 05:05 0:00 | \_ sshd: givi@pts/0
givi 753 0.0 0.1 115336 2024 pts/0 Ss 05:05 0:00 | \_ -bash
root 790 0.0 0.2 187644 2744 pts/0 S 05:05 0:00 | \_ sudo -i
root 791 0.0 0.1 115336 2064 pts/0 S 05:05 0:00 | \_ -bash
root 2461 0.0 0.1 139444 1604 pts/0 R+ 05:13 0:00 | \_ ps auxxwwffff
root 2459 0.0 0.3 84132 3636 ? Ss 05:13 0:00 \_ sshd: [accepted]
sshd 2460 0.0 0.1 84132 1620 ? S 05:13 0:00 \_ sshd: [net]
root 127 0.0 0.0 6400 804 tty1 Ss+ 05:03 0:00 /sbin/agetty --noclear --keep-baud console 115200 38400 9600 vt220
root 128 0.0 0.0 6400 804 tty2 Ss+ 05:03 0:00 /sbin/agetty --noclear tty2 linux
root 129 0.0 0.1 22772 1560 ? Ss 05:03 0:00 /usr/sbin/crond -n
root 1126 0.0 0.0 31520 300 ? Ssl 05:07 0:00 sh
root 2449 0.0 0.0 1408 932 ? Ss 05:13 0:00 ls -la
root 2452 0.0 0.0 1408 936 ? Ss 05:13 0:00 ls -la
root 2455 0.0 0.0 1408 928 ? Ss 05:13 0:00 sleep 1
root 2457 0.0 0.0 1408 932 ? Ss 05:13 0:00 who
root 2458 0.0 0.0 1408 932 ? Ss 05:13 0:00 cat resolv.conf
나는 내가 얻은 것을 죽 PID
였지만 sh
일부 프로세스가 시작되었습니다(이제 나도 죽입니다).
[root@ser ~]# netstat -tunlpa
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 118/sshd
tcp 0 0 xx.xx.xx.xx:34784 204.44.101.130:21 ESTABLISHED 1126/sh
tcp 0 60 xx.xx.xx.xx:22 MYIP:42584 ESTABLISHED 750/sshd: givi [p
tcp6 0 0 :::22 :::* LISTEN 118/sshd
범인 스크립트/IP(netstat의 스크립트/IP 제외)를 찾는 방법을 모르겠습니다. iftop, itraf-ng, nload 설치를 시도했지만 도움이 되지 않았습니다. 누구든지 몇 가지 도구를 사용하거나 이 문제의 원인을 찾는 방법을 도와줄 수 있습니까?
답변1
답변에서 알려진 맬웨어 서명을 설명하셨습니다.
귀하의 서버가 인간이나 봇에 의해 해킹당했습니다. 그것이 남겨진 악성코드입니다.
ps
그들은 분명히 루트킷을 가지고 있으며 몇 가지 명령을 제외하고는 그들이 무엇을 실행하고 있는지조차 볼 수 없을 수도 있습니다 who
. Rootiks는 명령줄에서 감염된 시스템을 조사하는 동안 열려 있는 프로세스와 포트를 숨길 수 있습니다.
처음부터 다시 설치하면 변경된 내용이 보장되지 않습니다. 해당 서버에 있는 사용자의 비밀번호를 변경하면 최소한 비밀번호 해시가 손상되었으며 직장에서 일부 사용자의 일반 비밀번호가 손상되었습니다.
답변2
도움을 받아 문제를 해결할 수 있었습니다. 파일에 다음 항목이 있으며 /etc/crontab
스크립트가 문제의 원인입니다.
*/3 * * * * root /etc/cron.hourly/gcc.sh
/usr/bin
와이어 이름을 가진 바이너리 생성을 담당하는 일부 바이너리(암호화됨)를 실행 중입니다 .ipjihmyzuh,fdmhhxthxy,fojoouuupy,fgqzvgtjan,bsitumzdkd,jrddsxyemy,nmwgbaforc,cuveaysdzg.
이 작업을 수행하는 방법을 간략하게 설명하겠습니다.
netstat에서 얻을 수 있었습니다 PID
(위의 경우1126/주, 그러나 이름은 PID
지속적으로 변경됩니다).
lsof
위와 같은 이름의 바이너리 파일이 보입니다 .
lsof -p 1126
생성된 바이너리를 삭제한 후 계속해서 다른 이름으로 생성되었습니다. 그래서 우리는 블라인드 샷으로 cron 관련 파일을 확인하고 cron을 중지하고 의심스러운 각 프로세스를 종료하고 바이너리를 다시 삭제하려고 시도했습니다. 바이너리 생성이 중지되었으며 이제 아무 일도 일어나지 않습니다.
cron을 다시 시작하면 모든 것이 복원됩니다. 항목을 제거하고 /etc/crontab
새로 생성된 모든 바이너리를 삭제하고 의심스러운 프로세스를 모두 종료했으며 이제 모든 것이 정상입니다.
/etc/crontab
편집하거나 /etc/cron.hourly/gcc.sh
거기에 넣는 방법을 잘 모르겠습니다 . 나를 도와준 사람은 일어날 가능성이 가장 높은 일은 루트 사용자가 어떤 식으로든 해킹당했을 수 있다는 것이라고 말했습니다. ssh
루트 인증을 비활성화 하고 sudo
이제 사용자만 사용합니다.