EDIT 2 :
ada satu alasan bagus mengapa posting ini menarik begitu banyak perhatian: Anda berhasil merekam seluruh sesi langsung dari seorang penyusup di PC Anda. Ini sangat berbeda dari pengalaman kita sehari-hari, di mana kita berurusan dengan penemuan konsekuensi dari tindakannya dan mencoba untuk memperbaikinya. Di sini kita melihat dia sedang bekerja, melihat dia memiliki masalah dengan membangun pintu belakang, menelusuri kembali langkahnya, bekerja dengan tergesa-gesa (mungkin karena dia sedang duduk di meja Anda, seperti yang disarankan di atas, atau mungkin, dan menurut pendapat saya lebih mungkin, karena dia adalah tidak dapat membuat malware-nya berjalan di sistem, baca di bawah), dan coba gunakan instrumen kontrol yang lengkap. Inilah yang disaksikan peneliti keamanan setiap hari dengan perangkap madu mereka . Bagi saya, ini adalah kesempatan yang sangat langka, dan sumber hiburan.
Anda pasti diretas. Bukti untuk ini tidak berasal dari potongan auth.log
file yang Anda tampilkan, karena ini melaporkan upaya login yang gagal, terjadi dalam rentang waktu singkat (dua detik). Anda akan melihat bahwa baris kedua menyatakan Failed password
, sedangkan yang ketiga melaporkan pre-auth
pemutusan: orang itu mencoba dan gagal.
Buktinya datang dari konten dua file http://222.186.30.209:65534/yjz
dan http://222.186.30.209:65534/yjz1
yang diunduh penyerang ke sistem Anda.
Situs ini terbuka untuk siapa saja untuk mengunduhnya, yang saya lakukan. Saya pertama kali berlari file
pada mereka, yang menunjukkan:
$ file y*
yjz: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.2.5, not stripped
yjz1: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.6.9, not stripped
Lalu saya membawa mereka ke VM Debian 64-bit yang saya miliki; pemeriksaan konten mereka melalui strings
perintah mengungkapkan banyak hal yang mencurigakan (referensi ke berbagai serangan terkenal, untuk perintah yang akan diganti, skrip yang jelas digunakan untuk mengatur layanan baru, dan sebagainya).
Saya kemudian menghasilkan hash MD5 dari kedua file, dan memasukkannya ke database hash Cymru untuk melihat apakah mereka dikenal sebagai agen malware. Meskipun yjz
tidak, yjz1
sedang, dan Cymru melaporkan kemungkinan deteksi oleh perangkat lunak anti-virus sebesar 58%. Itu juga menyatakan bahwa file ini terakhir terlihat sekitar tiga hari yang lalu, jadi ini cukup baru.
Menjalankan clamscan (bagian dari clamav
paket) pada dua file yang saya peroleh:
$ clamscan y*
yjz: Linux.Backdoor.Gates FOUND
yjz1: Linux.Trojan.Xorddos FOUND
jadi kami sekarang yakin bahwa perangkat lunak Linux standar dapat mengidentifikasinya.
Apa yang harus kamu lakukan
Meskipun agak baru, tidak ada sistem yang sangat baru, lihat artikel 2015 Januari ini di XorDdos , misalnya. Jadi sebagian besar paket gratis harus dapat menghapusnya. Anda harus mencoba: clamav
, rkhunter
, chkrootkit
. Saya telah mencari Google di sekitar, dan melihat bahwa mereka mengklaim dapat menemukannya. Gunakan mereka untuk memeriksa pekerjaan pendahulunya, tetapi setelah menjalankan ketiga program ini Anda harus siap untuk pergi.
Sedangkan untuk pertanyaan yang lebih besar,, what should you do to prevent future infections
jawaban Journeyman adalah langkah pertama yang baik. Ingatlah bahwa ini adalah perjuangan yang berkelanjutan, perjuangan yang kita semua (termasuk saya!) Mungkin akan kalah tanpa menyadarinya.
EDIT :
Pada prompt (tidak langsung) Viktor Toth, saya ingin menambahkan beberapa komentar. Memang benar bahwa penyusup menghadapi beberapa kesulitan: ia mengunduh dua alat peretasan yang berbeda, mengubah izin mereka beberapa kali, menyalakannya kembali beberapa kali, dan mencoba berkali-kali untuk menonaktifkan firewall. Mudah untuk menebak apa yang terjadi: ia mengharapkan alat peretasannya untuk membuka saluran komunikasi ke salah satu komputer yang terinfeksi (lihat nanti), dan, ketika ia tidak melihat saluran baru ini muncul di GUI kontrolnya, takut peretasannya alat sedang diblokir oleh firewall, jadi dia mengulangi prosedur instalasi. Saya setuju dengan Viktor Toth bahwa tahap operasinya yang khusus ini sepertinya tidak membuahkan hasil yang diharapkan, tetapi saya ingin mendorong Anda dengan sangat kuat tidak meremehkan tingkat kerusakan yang ditimbulkan pada pc Anda.
Saya berikan di sini sebagian dari strings yjz1
:
etc/init.d/%s
/etc/rc%d.d/S90%s
--del
chkconfig
remove
update-rc.d
/etc/cron.hourly/gcc4.sh
/etc/rc.d/rc%d.d/S90%s
--add
defaults
/proc/%d/exe
/proc/self/exe
HOME=/
MYSQL_HISTFILE=/dev/null
#!/bin/sh
# chkconfig: 12345 90 90
# description: %s
### BEGIN INIT INFO
# Provides: %s
# Required-Start:
# Required-Stop:
# Default-Start: 1 2 3 4 5
# Default-Stop:
# Short-Description: %s
### END INIT INFO
case $1 in
start)
stop)
esac
sed -i '/\/etc\/cron.hourly\/gcc4.sh/d' /etc/crontab && echo '*/3 * * * * root /etc/cron.hourly/gcc4.sh' >> /etc/crontab
etc/init.d/%s
GET %s HTTP/1.1
%sHost: %s
POST %s HTTP/1.1
%sHost: %s
Content-Type: application/x-www-form-urlencoded
Content-Length: %d
%s%s
Accept: */*
Accept-Language: zh-cn
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; TencentTraveler ; .NET CLR 1.1.4322)
Connection: Keep-Alive
Ini memberikan bukti gangguan pada layanan (di dalam /etc/init.d
dan di /etc/rc.d
), dengan crontab
, dengan file riwayat mysql
, dan beberapa file proc
yang merupakan tautan ke bash
(yang menunjukkan versi palsu dari cangkang Anda telah ditanam). Kemudian program menghasilkan permintaan HTTP (ke situs berbahasa Cina,
Accept-Language: zh-cn
yang memberi substansi pada komentar David Schwartz di atas), yang dapat menciptakan lebih banyak kekacauan. Dalam permintaan, binari ( Content-Type: application/x-www-form-urlencoded
) harus diunduh ke pc yang diserang (GET) dan diunggah ke mesin pengontrol (POST). Saya tidak dapat menetapkan apa yang akan diunduh ke PC yang diserang, tetapi, mengingat ukuran kecil keduanya yjz
dan yjz1
(1.1MB dan 600kB, secara repektif), saya dapat berani menduga bahwa sebagian besar file yang diperlukan untuk menyelubungi rootkit, yaitu yang diubah versi ls
, netstat
, ps
, ifconfig
, ..., akan di-download dengan cara ini. Dan ini akan menjelaskan upaya demam penyerang untuk mendapatkan unduhan ini.
Tidak ada kepastian bahwa di atas menghabiskan semua kemungkinan: kami tentu saja tidak memiliki bagian dari transkrip (antara baris 457 dan 481) dan kami tidak melihat logout; lebih jauh lagi, terutama yang mengkhawatirkan adalah garis 495-497,
cd /tmp; ./yd_cd/make
yang merujuk ke file yang kami lihat tidak diunduh, dan yang mungkin merupakan kompilasi: jika demikian, itu berarti penyerang telah (akhirnya?) memahami apa masalah dengan executable-nya, dan sedang mencoba memperbaikinya, dalam hal ini pc menyerang telah pergi untuk selamanya. [Sebenarnya, dua versi malware yang diunduh penyerang ke mesin yang diretas (dan saya ke Debian VM 64bit saya) adalah untuk arsitektur yang tidak cocok, x86, sedangkan nama saja dari PC yang diretas itu memberikan fakta bahwa dia berurusan dengan arsitektur lengan].
Alasan mengapa saya menulis suntingan ini adalah untuk mendorong Anda sekuat mungkin untuk menyisir sistem Anda dengan instrumen profesional, atau menginstal ulang dari awal.
Dan, omong-omong, jika ini terbukti bermanfaat bagi siapa pun, ini adalah daftar dari 331 alamat IP yang yjz
mencoba terhubung. Daftar ini begitu besar (dan mungkin ditakdirkan untuk menjadi lebih besar lagi) sehingga saya percaya ini adalah alasan untuk mengutak-atik mysql
. Daftar yang disediakan oleh backdoor lainnya adalah identik, yang, saya kira, adalah alasan untuk meninggalkan informasi penting seperti itu di tempat terbuka (saya pikir penyerang tidak ingin melakukan upaya untuk menyimpannya dalam format kernel, jadi ia meletakkan seluruh daftar dalam file teks-jelas, yang mungkin dibaca oleh semua orang yang ada di belakangnya, untuk OS apa pun):
61.132.163.68
202.102.192.68
202.102.213.68
202.102.200.101
58.242.2.2
202.38.64.1
211.91.88.129
211.138.180.2
218.104.78.2
202.102.199.68
202.175.3.3
202.175.3.8
202.112.144.30
61.233.9.9
61.233.9.61
124.207.160.110
202.97.7.6
202.97.7.17
202.106.0.20
202.106.46.151
202.106.195.68
202.106.196.115
202.106.196.212
202.106.196.228
202.106.196.230
202.106.196.232
202.106.196.237
202.112.112.10
211.136.17.107
211.136.28.231
211.136.28.234
211.136.28.237
211.147.6.3
219.141.136.10
219.141.140.10
219.141.148.37
219.141.148.39
219.239.26.42
221.130.32.100
221.130.32.103
221.130.32.106
221.130.32.109
221.130.33.52
221.130.33.60
221.176.3.70
221.176.3.73
221.176.3.76
221.176.3.79
221.176.3.83
221.176.3.85
221.176.4.6
221.176.4.9
221.176.4.12
221.176.4.15
221.176.4.18
221.176.4.21
58.22.96.66
218.104.128.106
202.101.98.55
211.138.145.194
211.138.151.161
211.138.156.66
218.85.152.99
218.85.157.99
222.47.29.93
202.101.107.85
119.233.255.228
222.47.62.142
122.72.33.240
211.98.121.27
218.203.160.194
221.7.34.10
61.235.70.98
113.111.211.22
202.96.128.68
202.96.128.86
202.96.128.166
210.21.3.140
210.21.4.130
211.95.193.97
211.98.2.4
211.98.4.1
211.162.61.225
211.162.61.235
211.162.61.255
211.162.62.1
211.162.62.60
221.4.66.66
202.103.176.22
202.96.144.47
210.38.192.33
202.96.134.33
202.96.134.133
202.96.154.15
210.21.196.6
221.5.88.88
202.103.243.112
202.193.64.33
61.235.164.13
61.235.164.18
202.103.225.68
221.7.136.68
202.103.224.68
211.97.64.129
211.138.240.100
211.138.242.18
211.138.245.180
221.7.128.68
222.52.118.162
202.98.192.67
202.98.198.167
211.92.136.81
211.139.1.3
211.139.2.18
202.100.192.68
211.97.96.65
211.138.164.6
221.11.132.2
202.100.199.8
202.99.160.68
202.99.166.4
202.99.168.8
222.222.222.222
202.102.224.68
202.102.227.68
222.85.85.85
222.88.88.88
210.42.241.1
202.196.64.1
112.100.100.100
202.97.224.68
219.235.127.1
61.236.93.33
211.93.24.129
211.137.241.34
219.147.198.230
202.103.0.68
202.103.0.117
202.103.24.68
202.103.44.150
202.114.0.242
202.114.240.6
211.161.158.11
211.161.159.3
218.104.111.114
218.104.111.122
218.106.127.114
218.106.127.122
221.232.129.30
59.51.78.210
61.234.254.5
202.103.96.112
219.72.225.253
222.243.129.81
222.246.129.80
211.142.210.98
211.142.210.100
220.168.208.3
220.168.208.6
220.170.64.68
218.76.192.100
61.187.98.3
61.187.98.6
202.98.0.68
211.93.64.129
211.141.16.99
202.98.5.68
219.149.194.55
211.138.200.69
202.102.3.141
202.102.3.144
58.240.57.33
112.4.0.55
114.114.114.114
114.114.115.115
202.102.24.34
218.2.135.1
221.6.4.66
221.131.143.69
202.102.8.141
222.45.0.110
61.177.7.1
218.104.32.106
211.103.13.101
221.228.255.1
61.147.37.1
222.45.1.40
58.241.208.46
202.102.9.141
202.102.7.90
202.101.224.68
202.101.226.68
211.141.90.68
211.137.32.178
202.96.69.38
211.140.197.58
219.149.6.99
202.96.86.18
101.47.189.10
101.47.189.18
118.29.249.50
118.29.249.54
202.96.64.68
202.96.75.68
202.118.1.29
202.118.1.53
219.148.204.66
202.99.224.8
202.99.224.67
211.90.72.65
211.138.91.1
218.203.101.3
202.100.96.68
211.93.0.81
222.75.152.129
211.138.75.123
202.102.154.3
202.102.152.3
219.146.1.66
219.147.1.66
202.102.128.68
202.102.134.68
211.138.106.19
211.90.80.65
202.99.192.66
202.99.192.68
61.134.1.4
202.117.96.5
202.117.96.10
218.30.19.40
218.30.19.50
116.228.111.118
180.168.255.18
202.96.209.5
202.96.209.133
202.101.6.2
211.95.1.97
211.95.72.1
211.136.112.50
211.136.150.66
119.6.6.6
124.161.97.234
124.161.97.238
124.161.97.242
61.139.2.69
202.98.96.68
202.115.32.36
202.115.32.39
218.6.200.139
218.89.0.124
61.139.54.66
61.139.39.73
139.175.10.20
139.175.55.244
139.175.150.20
139.175.252.16
168.95.1.1
210.200.211.193
210.200.211.225
211.78.130.1
61.31.1.1
61.31.233.1
168.95.192.1
168.95.192.174
61.60.224.3
61.60.224.5
202.113.16.10
202.113.16.11
202.99.96.68
202.99.104.68
211.137.160.5
211.137.160.185
219.150.32.132
202.98.224.68
211.139.73.34
61.10.0.130
61.10.1.130
202.14.67.4
202.14.67.14
202.45.84.58
202.45.84.67
202.60.252.8
202.85.128.32
203.80.96.9
203.142.100.18
203.142.100.21
203.186.94.20
203.186.94.241
221.7.1.20
61.128.114.133
61.128.114.166
218.202.152.130
61.166.150.123
202.203.128.33
211.98.72.7
211.139.29.68
211.139.29.150
211.139.29.170
221.3.131.11
222.172.200.68
61.166.150.101
61.166.150.139
202.203.144.33
202.203.160.33
202.203.192.33
202.203.208.33
202.203.224.33
211.92.144.161
222.221.5.240
61.166.25.129
202.96.103.36
221.12.1.227
221.130.252.200
222.46.120.5
202.96.96.68
218.108.248.219
218.108.248.245
61.130.254.34
60.191.244.5
202.96.104.15
202.96.104.26
221.12.33.227
202.96.107.27
61.128.128.68
61.128.192.68
218.201.17.2
221.5.203.86
221.5.203.90
221.5.203.98
221.7.92.86
221.7.92.98
Kode berikut
#!/bin/bash
echo 0 > out
while read i; do
whois $i | grep -m 1 -i country >> out
done < filename
cat out | grep -i cn | wc -l
pada daftar di atas menunjukkan bahwa 302 dari total 331 alamat ada di Cina daratan, sisanya ada di Hong Kong, Mongolia, Taiwan. Ini menambahkan dukungan lebih lanjut untuk pendapat David Schwartz bahwa ini sebagian besar adalah cincin bot Cina.
EDIT 3
Atas permintaan @ vaid (penulis OP, baca komentarnya di bawah), saya akan menambahkan komentar tentang cara memperkuat keamanan sistem Linux dasar (untuk sistem yang menyediakan banyak layanan, ini adalah topik yang jauh lebih kompleks). vaid
menyatakan dia melakukan hal berikut:
Pasang kembali sistem
mengubah kata sandi root menjadi kata sandi panjang 16 karakter dengan huruf dan huruf besar kecil dan huruf besar serta digit.
Mengubah nama pengguna menjadi nama panjang 6 karakter campuran dan menerapkan kata sandi yang sama seperti yang digunakan untuk root
mengubah port SSH menjadi sesuatu di atas 5000
mematikan SSH root login.
Ini bagus (kecuali saya menggunakan port di atas 10.000 karena banyak program berguna menggunakan port di bawah 10.000). Tapi saya tidak bisa cukup menekankan kebutuhan untuk menggunakan kunci kriptografi untuk login ssh , bukan kata sandi. Saya akan memberi Anda contoh pribadi. Pada salah satu VPS saya, saya tidak yakin apakah akan mengubah port ssh; Saya meninggalkannya di 22, tetapi menggunakan kunci crypto untuk otentikasi. Saya memiliki ratusan upaya pembobolan per hari , tidak ada yang berhasil. Ketika, lelah untuk memeriksa setiap hari bahwa tidak ada yang berhasil, saya akhirnya mengubah port ke sesuatu di atas 10.000, upaya pembobolan masuk ke nol. Pikiran Anda, bukan bahwa peretas itu bodoh (mereka tidak!), Mereka hanya memburu mangsa yang lebih mudah.
Mudah untuk mengaktifkan kunci kripto dengan RSA sebagai algoritme tanda tangan, lihat komentar di bawah ini oleh Jan Hudec (terima kasih!):
cd; mkdir .ssh; chmod 700 .ssh; cd .ssh; ssh-keygen -t rsa (then hit <kbd>ENTER>/kbd> three times); cat id_rsa.pub >> authorized_keys; chmod 600 *
Sekarang yang harus Anda lakukan adalah menyalin file id_rsa
ke mesin dari mana Anda ingin terhubung (dalam direktori .ssh
, juga chmod
'ed ke 700), kemudian mengeluarkan perintah
ssh -p YourChosenNonStandardPort -i ~/.ssh/id_rsa me@RemoteMachine
Ketika Anda yakin ini berfungsi, edit di server (= mesin yang ingin Anda sambungkan) file /etc/ssh/sshd_config
, dan ubah baris
#PasswordAuthentication yes
untuk
PasswordAuthentication no
dan restart ssh
layanan ( service ssh restart
atau systemctl restart ssh
, atau sesuatu seperti ini, tergantung distro).
Ini akan bertahan banyak. Faktanya, saat ini tidak ada eksploitasi yang diketahui terhadap versi saat ini openssh v2
, dan RSA seperti yang digunakan oleh openssh v2
.
Terakhir, untuk benar-benar melesat ke mesin Anda, Anda harus mengkonfigurasi firewall (netfilter / iptables) sebagai berikut:
iptables -A INPUT -p tcp --dport YourChosenNonStandardPort -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
Ini, 1) memungkinkan koneksi ssh dari LAN dan WAN, 2) memungkinkan semua input yang berasal dari permintaan Anda (misalnya, ketika Anda memuat halaman Web), 3) menjatuhkan segala sesuatu yang lain pada input, 4) memungkinkan semuanya pada output, dan 5-6) memungkinkan semua yang ada di antarmuka loopback.
Ketika kebutuhan Anda tumbuh, dan lebih banyak port perlu dibuka, Anda dapat melakukannya dengan menambahkan, di bagian atas daftar, aturan seperti:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
untuk memungkinkan misalnya orang mengakses browser Web Anda.