EDIT 2 :
Bu yazının bu kadar dikkat çekmesinin iyi bir nedeni var: Bilgisayarınıza izinsiz giriş yapan kişinin tüm canlı oturumunu kaydetmeyi başardınız. Bu, eylemlerinin sonuçlarının keşfi ile uğraştığımız ve onları telafi etmeye çalıştığımız günlük deneyimlerimizden çok farklı. Burada onu işte görüyoruz, arka kapıyı kurma konusunda bazı problemleri olduğunu görüyoruz, adımlarını izliyorum, ateşli bir şekilde çalışıyoruz (belki de yukarıda belirtildiği gibi masanızda oturuyordu, belki de ve bence daha muhtemeldi çünkü) kötü amaçlı yazılımını sistemde çalıştıramaz, aşağıda okuyabilir) ve tamamen bağımsız denetim araçlarını kullanmaya çalışın. Güvenlik araştırmacılarının bal tuzaklarıyla günlük olarak gördükleri şey budur . Benim için bu çok nadir bir şans ve biraz eğlencenin kaynağı.
Kesinlikle saldırıya uğradın. Bunun için kanıt yok değil pasajında gelen auth.log
bu kısa zaman dilimi (iki saniye) üzerinde meydana gelen başarısız bir oturum açma girişimini bildiriyor nedeniyle, görüntülenen dosyaya. İkinci çizginin Failed password
, üçüncü pre-auth
kesimin bağlantının kesildiğini bildirdiğini belirtirsiniz : adam denenmiş ve başarısız olmuş.
Kanıt, bunun yerine iki dosyanın içeriğinden http://222.186.30.209:65534/yjz
ve http://222.186.30.209:65534/yjz1
saldırganın sisteminize indirdiğinden gelir.
Site şu anda yaptığım indirmeleri için herkese açık. Önce file
onlara koştum , ki gösterdi ki:
$ 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
Sonra onları sahip olduğum 64-bit Debian VM'ye getirdim; strings
Komut aracılığıyla içeriklerinin incelenmesi, çok şüpheli olduğunu ortaya çıkardı (çok iyi bilinen çeşitli saldırılara, yerine kullanılacak komutlara, yeni bir hizmet oluşturmak için açıkça kullanılan bir komut dosyasına, vb.).
Daha sonra her iki dosyanın MD5 karmasını oluşturdum ve kötü amaçlı yazılımın bilinen ajanları olup olmadıklarını görmek için Cymru'nun karma veritabanına besledim . Olmasa yjz
da, yjz1
olduğu gibi ve Cymru% 58 anti-virüs yazılımı ile tespit edilme olasılığını rapor eder. Ayrıca, bu dosyanın en son üç gün önce görüldüğünü, dolayısıyla oldukça yeni olduğunu belirtti.
Koşu clamscan (parçası clamav
Edindiğim iki dosyalar üzerinde paketin):
$ clamscan y*
yjz: Linux.Backdoor.Gates FOUND
yjz1: Linux.Trojan.Xorddos FOUND
bu yüzden artık standart Linux yazılımının onu tanımlayabildiğinden eminiz.
Ne yapmalısın?
Oldukça yeni olsa da, her ikisi de çok yeni değildir, örneğin Ocak XorDdos hakkındaki bu makaleye bakınız . Bu yüzden çoğu ücretsiz paket onu kaldırabilmelidir. : Sen denemelisiniz clamav
, rkhunter
, chkrootkit
. Etrafta Googledim ve onu tespit edebildiklerini iddia ettiklerini gördüm. Selefi çalışmalarını kontrol etmek için bunları kullanın, ancak bu üç programı çalıştırdıktan sonra gitmeye hazır olmalısınız.
Daha büyük soruya gelince what should you do to prevent future infections
, Journeyman'in cevabı iyi bir ilk adımdır. Sadece devam eden bir mücadele olduğunu, hepimizin (ben de dahil!) Bilmeden çok kaybedebileceğini unutmayın.
EDIT :
Viktor Toth'un (dolaylı) komut isteminde birkaç yorum eklemek istiyorum. Davetsiz misafirin bazı zorluklarla karşılaştığı kesin olarak doğrudur: iki farklı bilgisayar korsanlığı aracı indirir, izinlerini birkaç kez değiştirir, birkaç kez yeniden başlatır ve güvenlik duvarını devre dışı bırakmak için birçok kez çalışır. Neler olduğunu tahmin etmek kolaydır: bilgisayar korsanlık araçlarından virüslü hastalarından birine doğru bir iletişim kanalı açmalarını bekler (sonraya bakınız) ve bu yeni kanalı kontrol GUI'sinde ortaya çıkmadığında korsanlıktan korkuyor aracı güvenlik duvarı tarafından engellendiğinden kurulum prosedürünü tekrarlıyor. Viktor Toth'a operasyonunun bu özel aşamasının beklenen meyveleri getirmediği konusunda katılıyorum, ancak sizi çok güçlü bir şekilde teşvik etmek istiyorum PC'nize verilen zararın kapsamını hafife almamak.
Burada kısmi bir çıktı verdim 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
Bu (hizmet tahrif kanıtı temin /etc/init.d
ve içinde /etc/rc.d
olan,) crontab
öyküsü dosyası ile, mysql
ve dosyaların bir çift içinde proc
hangi bağlantılarıdır bash
(dikildi kabuğundan ısmarlama hileli versiyonunu göstermektedir). Ardından, program bir HTTP isteği oluşturur (Çince konuşan bir siteye,
Accept-Language: zh-cn
Bu, David Schwartz'ın yukarıdaki yorumuna dikkat çeker). İstekte, ikili dosyalar ( Content-Type: application/x-www-form-urlencoded
) saldırıya uğrayan bilgisayara (GET) indirilecek ve kontrol makinesine (POST) yüklenecektir. Saldırıya uğrayan bilgisayara ne indirileceğini bulamadım, ancak her ikisinin yjz
ve yjz1
(1.1 MB ve 600kB boyutlarındaki küçük boyutu göz önüne alındığında ), rootkit'i gizlemek için gereken dosyaların çoğunu, yani değiştirilenleri tahmin etmek için girişimde bulunabilirim. sürümleri ls
, netstat
, ps
, ifconfig
, ..., bu şekilde indirilebilir olacaktır. Bu da saldırganın ateşli girişimlerinin bu indirmeyi gerçekleştirme girişimlerini açıklar.
Yukarıdakilerin tüm olasılıkları tükettiği kesin değildir: transkriptin bir kısmından kesinlikle yoksun (satır 457 ve 481 arasında) ve bir çıkış görmüyoruz; ayrıca, özellikle endişe verici çizgiler 495-497,
cd /tmp; ./yd_cd/make
indirilen görmediğimiz bir dosyaya bakın ve hangisi bir derleme olabilir : öyleyse, saldırganın (nihayet?) çalıştırılabilirleriyle ilgili sorunun ne olduğunu anladığı ve onu düzeltmeye çalıştığı anlamına gelir. saldırıya uğrayan bilgisayar iyiye gitti. [Aslında, saldırganın saldırıya uğrayan makineye indirdiği kötü amaçlı yazılımın iki sürümü (ve ben 64bit Debian VM'ime), uygun olmayan bir mimari için, x86, hack'lenen PC'nin tek başına adı, bir kol mimarisiyle uğraşıyordu].
Bu düzenlemeyi yazmamın nedeni, sisteminizi profesyonel bir araçla bir araya getirmeniz ya da sıfırdan yeniden yüklemeniz için sizi mümkün olduğunca güçlü bir şekilde teşvik etmek.
Ve bu arada, bu herkes için faydalı olsa da, bağlanmaya çalışan 331 IP adresinin listesi yjz
. Bu liste o kadar büyük ki (ve muhtemelen daha da büyüyecek), kurcalamanın sebebinin bu olduğuna inanıyorum mysql
. Diğer arka kapı tarafından sağlanan liste aynıdır, sanırım bu kadar önemli bir bilgiyi açıkta bırakmanın nedenidir ( saldırganın onları çekirdek biçiminde saklamak için çaba göstermek istemediğini düşünüyorum . listenin tamamını, hangi işletim sistemi için olursa olsun, arka kapağının tümü tarafından okunan açık bir metin dosyasına koymuştur:)
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
Aşağıdaki kod
#!/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
Yukarıdaki liste gösteriyor üzerinde 302 toplam üzerinden 331 adreslerde anakara Çin'de, geri kalanlar Hong Kong, Moğolistan, Tayvan bulunmaktadır. Bu, David Schwartz'ın bunun çoğunlukla bir Çin bot halkası olduğu iddiasına daha fazla destek veriyor.
EDIT 3
@ Vaid'in isteği üzerine (OP'nin yazarı, aşağıdaki yorumu okuyunuz), temel bir Linux sisteminin güvenliğini nasıl güçlendireceğimiz hakkında bir yorum ekleyeceğim (birçok hizmet sunan bir sistem için bu çok daha karmaşık bir konudur). vaid
aşağıdakileri yaptığını belirtir:
Sistemi yeniden yükleyin
root şifresini karışık, küçük ve büyük harf, karakter ve rakamlardan oluşan 16 karakter uzunluğunda bir parola olarak değiştirdi.
Kullanıcı adını 6 karakter uzunluğunda bir kullanıcı adıyla değiştirdi ve root için kullanılan parolayı uygulayın.
SSH portunu 5000'in üzerindeki bir değere değiştirdi
SSH kök girişini kapattı.
Bu iyi (çoğu yararlı program 10.000'in altındaki bağlantı noktalarını kullandığından, 10.000'in üstündeki bir bağlantı noktasını kullanmam dışında). Ancak , ssh girişi için şifreler yerine kriptografik anahtarlar kullanma gereğini yeterince vurgulayamıyorum . Sana kişisel bir örnek vereceğim. VPS'lerimden birinde ssh portunu değiştirip değiştirmeyeceğime emin değildim; 22'de bıraktım ama kimlik doğrulama için şifreli anahtarlar kullandım. Günde yüzlerce zorla girme denemesi yaptım , hiçbiri başarılı olmadı . Kimsenin başarılı olmadığını her gün kontrol etmek için yorulduğumda, sonunda limanı 10.000’in üzerinde bir şeye geçirdim, zorla girme girişimleri sıfıra gitti. Unutma, hackerların aptal olmaları değil (onlar değil!), Sadece daha kolay avlarlar.
RSA ile bir kripto anahtarını imza algoritması olarak etkinleştirmek kolaydır, aşağıdaki yorumlara bakınız: Jan Hudec (teşekkürler!):
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 *
Şimdi tek yapmanız gereken dosyayı id_rsa
bağlamak istediğiniz makineye kopyalamak ( .ssh
ayrıca bir dizinde ( chmod
700'e yazılmış), sonra da komutu verin.
ssh -p YourChosenNonStandardPort -i ~/.ssh/id_rsa me@RemoteMachine
Bunun çalıştığından emin olduğunuzda, dosyayı sunucuda düzenleyin (= bağlanmak istediğiniz makine) /etc/ssh/sshd_config
ve satırı değiştirin
#PasswordAuthentication yes
için
PasswordAuthentication no
ve ssh
hizmeti yeniden başlatın ( service ssh restart
veya systemctl restart ssh
, dağıtıma bağlı olarak veya bunun gibi bir şey).
Bu çok dayanacak. Aslında şu anda openssh v2
ve RSA'nın şu andaki sürümlerine karşı bilinen hiçbir istismar mevcut değildir openssh v2
.
Son olarak, makinenizi gerçekten cıvatalamak için güvenlik duvarını (netfilter / iptables) aşağıdaki gibi yapılandırmanız gerekir:
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
Bu, 1) hem LAN hem de WAN'dan ssh bağlantılarına izin verir, 2) istekleriniz tarafından oluşturulan tüm girişlere izin verir (örneğin, bir Web sayfasını yüklediğinizde), 3) girişte kalan her şeyi bırakır, 4) girilen her şeyi sağlar çıkış ve 5-6) geridöngü arayüzü üzerindeki her şeye izin verir.
İhtiyaçlarınız arttıkça ve daha fazla bağlantı noktasının açılması gerektiğine göre, listenin başına, aşağıdaki gibi kuralları ekleyerek yapabilirsiniz:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Örneğin kişilerin Web tarayıcınıza erişmesine izin vermek için.