LINUX.ORG.RU

Нас хакнули китайцы


0

0

Прихожу сегодня на работу, пробую залогиниться под пользователем - фиг. Пароль восстановил без проблем в однопользовательском режиме.

Комп ходит в Интернет через роутер. Полезли туда, а там левые китайские айпишники.

Может кто что посоветует (какие логи глянуть, что поставить)?

★★★★★

В auth.log я нашёл следующее:

Jun 24 17:17:01 darkthrone CRON[19000]: pam_unix(cron:session): session opened for user root by (uid=0)                                                                                                                                      
Jun 24 17:17:01 darkthrone CRON[19000]: pam_unix(cron:session): session closed for user root                                                                                                                                                 
Jun 24 18:17:01 darkthrone CRON[26003]: pam_unix(cron:session): session opened for user root by (uid=0)                                                                                                                                      
Jun 24 18:17:01 darkthrone CRON[26003]: pam_unix(cron:session): session closed for user root                                                                                                                                                 
Jun 24 19:17:01 darkthrone CRON[541]: pam_unix(cron:session): session opened for user root by (uid=0)                                                                                                                                        
Jun 24 19:17:01 darkthrone CRON[541]: pam_unix(cron:session): session closed for user root                                                                                                                                                   
Jun 24 20:17:01 darkthrone CRON[7704]: pam_unix(cron:session): session opened for user root by (uid=0)                                                                                                                                       
Jun 24 20:17:01 darkthrone CRON[7704]: pam_unix(cron:session): session closed for user root                                                                                                                                                  
Jun 24 21:17:01 darkthrone CRON[14786]: pam_unix(cron:session): session opened for user root by (uid=0)                                                                                                                                      
Jun 24 21:17:01 darkthrone CRON[14786]: pam_unix(cron:session): session closed for user root                                                                                                                                                 
Jun 24 22:17:02 darkthrone CRON[21808]: pam_unix(cron:session): session opened for user root by (uid=0)                                                                                                                                      
Jun 24 22:17:02 darkthrone CRON[21808]: pam_unix(cron:session): session closed for user root                                                                                                                                                 
Jun 24 23:17:01 darkthrone CRON[28804]: pam_unix(cron:session): session opened for user root by (uid=0)                                                                                                                                      
Jun 24 23:17:01 darkthrone CRON[28804]: pam_unix(cron:session): session closed for user root                                                                                                                                                 
Jun 25 00:17:01 darkthrone CRON[3487]: pam_unix(cron:session): session opened for user root by (uid=0)                                                                                                                                       
Jun 25 00:17:01 darkthrone CRON[3487]: pam_unix(cron:session): session closed for user root                                                                                                                                                  
Jun 25 01:17:01 darkthrone CRON[10573]: pam_unix(cron:session): session opened for user root by (uid=0)                                                                                                                                      
Jun 25 01:17:01 darkthrone CRON[10573]: pam_unix(cron:session): session closed for user root                                                                                                                                                 
Jun 25 02:17:01 darkthrone CRON[17597]: pam_unix(cron:session): session opened for user root by (uid=0)                                                                                                                                      
Jun 25 02:17:01 darkthrone CRON[17597]: pam_unix(cron:session): session closed for user root                                                                                                                                                 
Jun 25 03:17:01 darkthrone CRON[24621]: pam_unix(cron:session): session opened for user root by (uid=0)                                                                                                                                      
Jun 25 03:17:01 darkthrone CRON[24621]: pam_unix(cron:session): session closed for user root                                                                                                                                                 
Jun 25 04:17:01 darkthrone CRON[31615]: pam_unix(cron:session): session opened for user root by (uid=0)                                                                                                                                      
Jun 25 04:17:01 darkthrone CRON[31615]: pam_unix(cron:session): session closed for user root                                                                                                                                                 
Jun 25 05:17:01 darkthrone CRON[6312]: pam_unix(cron:session): session opened for user root by (uid=0)                                                                                                                                       
Jun 25 05:17:01 darkthrone CRON[6312]: pam_unix(cron:session): session closed for user root                                                                                                                                                  
Jun 25 06:17:01 darkthrone CRON[13379]: pam_unix(cron:session): session opened for user root by (uid=0)                                                                                                                                      
Jun 25 06:17:01 darkthrone CRON[13379]: pam_unix(cron:session): session closed for user root                                                                                                                                                 
Jun 25 06:25:01 darkthrone CRON[14322]: pam_unix(cron:session): session opened for user root by (uid=0)                                                                                                                                      
Jun 25 06:25:01 darkthrone CRON[14322]: pam_unix(cron:session): session closed for user root                                                                                                                                                 
Jun 25 07:17:01 darkthrone CRON[20409]: pam_unix(cron:session): session opened for user root by (uid=0)                                                                                                                                      
Jun 25 07:17:01 darkthrone CRON[20409]: pam_unix(cron:session): session closed for user root                                                                                                                                                 
Jun 25 07:30:01 darkthrone CRON[21934]: pam_unix(cron:session): session opened for user root by (uid=0)                                                                                                                                      
Jun 25 07:30:02 darkthrone CRON[21934]: pam_unix(cron:session): session closed for user root  
soko1 ★★★★★
() автор топика

Так роутер их пустил чтоль? Просто заболчь подсети китайские на вход, и будет тебе щастье. И да, по идее, если у тебя на настроен проброс портов от роутера на комп (у меня настроен по умолчанию), то до компа они толком и не доберутся.

Zhbert ★★★★★
()

rkhunter мне выдал следующее:

[08:20:00] Rootkit checks...                                                                                                                                                                                                                 
[08:20:00] Rootkits checked : 245                                                                                                                                                                                                            
[08:20:00] Possible rootkits: 2                                                                                                                                                                                                              
[08:20:01] Rootkit names    : Xzibit Rootkit, Xzibit Rootkit  

Где их искать и что с ними делать - сейчас буду гуглить.

Что касается истории шелла - всё разумеется чисто, ничего лишнего.

soko1 ★★★★★
() автор топика
Ответ на: комментарий от namezys

>меня из моей локалки ломают. по ssh пароли перебирают по всем портам.

Так закрой иптаблесом вообще все порты, кроме пары тройки нужных.

Zhbert ★★★★★
()
Ответ на: комментарий от Zhbert

Вот хрен его знает. Вроде по логам никто левый туда не логинился (видны только попытки), но ко мне на комп каким-то образом попали. А это сделать можно _только_ через роутер.

Про подсети китайские хорошая идея, но лучше я поставлю программу (забыла название), которая записывает IP-адрес в чёрный список при n-ном кол-ве неудачных попыток залогиниться.

soko1 ★★★★★
() автор топика
Ответ на: комментарий от soko1

>Вот хрен его знает. Вроде по логам никто левый туда не логинился (видны только попытки), но ко мне на комп каким-то образом попали. А это сделать можно _только_ через роутер.

Мб у тебя на компе какой руткит? Ставил последнее время левые пакеты какие? Еще можно его сунуть на комп черех активикс браузера.

Про подсети китайские хорошая идея, но лучше я поставлю программу (забыла название), которая записывает IP-адрес в чёрный список при n-ном кол-ве неудачных попыток залогиниться.


Хз что за программа =)

Zhbert ★★★★★
()
Ответ на: комментарий от Zhbert

Не, это не то. Оно обновит только, для чего существуют новые версии. Старые пакеты не будут затронуты.

soko1 ★★★★★
() автор топика
Ответ на: комментарий от sin_a

Благодарю, сейчас внимательно почитаю.

soko1 ★★★★★
() автор топика

В netstat -rn у меня странная запись:

soko1@darkthrone:\> sudo /bin/netstat -rn                                                                                                                                                                                                    
Kernel IP routing table                                                                                                                                                                                                                      
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface                                                                                                                                                               
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth1                                                                                                                                                                
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth1                                                                                                                                                                
0.0.0.0         192.168.1.253   0.0.0.0         UG        0 0          0 eth1

169.254.0.0 - левый айпишник, но grep'нув /etc, я заметил что его выставляет avahi-autoipd. Это ж в плане вещей, да?

soko1 ★★★★★
() автор топика
Ответ на: комментарий от soko1

А можно ли в debian сделать обновление всех бинарников, не в курсе?

aptitude reinstall ~i

должно сработать.

GotF ★★★★★
()

Забил я на всё болт. Отследить всё не получится - руткит может быть где угодно. Сейчас всё снесу и поставлю недельный бэкап системы, обновив сразу всё до последних версий и сменив пароли.

soko1 ★★★★★
() автор топика
Ответ на: комментарий от soko1

>Забил я на всё болт. Отследить всё не получится - руткит может быть где угодно. Сейчас всё снесу и поставлю недельный бэкап системы, обновив сразу всё до последних версий и сменив пароли.

Да, точно, надо забекапиться пойти. Сервера вчера бекапнул, еще надо рабочий комп и домашний потом, на всякий пожарный.

Zhbert ★★★★★
()
Ответ на: комментарий от Zhbert

> Так закрой иптаблесом вообще все порты, кроме пары тройки нужных.

А потом сидеть и думать, что открыть на компы

У меня на комы переброшены 10000-20000, 40000-50000 порты

namezys ★★★★
()
Ответ на: комментарий от soko1

> но лучше я поставлю программу (забыла название), которая записывает IP-адрес в чёрный список при n-ном кол-ве неудачных попыток залогиниться.

fail2ban

drull ★☆☆☆
()
Ответ на: комментарий от namezys

Ну если ты не лошара, то у тебя рутовый вход по ssh должен быть закрыт. Пусть хоть опперебераются, какая нафиг разница?

ostin ★★★★★
()
Ответ на: комментарий от soko1

>Вот хрен его знает. Вроде по логам никто левый туда не логинился (видны только попытки), но ко мне на комп каким-то образом попали. А это сделать можно _только_ через роутер.

Скорее всего это сделал кто-то, имеющий физический доступ к твоей сети и/или к компу.
Также, при наличии виндовых компов, вполне вероятен бэкконнект наружу.

И только потом — роутер.

nnz ★★★★
()
Ответ на: комментарий от soko1

Если ставил из репозиториев, то каждый пакет идет с контрольной суммой для каждого файла в пакете. Тогда ставь debsums. Этот пакет прошерстит все пакеты и проверит контрольные суммы. Если эти взломщики были не настолько умны, чтобы еще и контрольную сумму в нужное место прописать, то поймать можно. Если же оказались умны, то проверка контрольных сумм успокоения не принесет.

При использовании debsums есть несколько моментов. Он ловит файлы без контрольных сумм и с несовпадающими контрольными суммами. При установке Debian некоторые пакеты могут быть без контрольной суммы (особенно базовые всякие). Так что ты сделай reinstall всем пакетам, у которых либо нет контрольной суммы, либо она не совпадает. Кажется, с опцией -s надо debsums запустить. Если ставил что-то из сторонних репозиториев, то там может контрольной суммы не оказаться.

Zubok ★★★★★
()
Ответ на: комментарий от Zubok

Файлики с контрольными суммами лежат в /var/lib/dpkg/info с расширениями md5sums. Наверное, можно по датам модификации этих файлов у найденных «битых» пакетов что-то узнать?

Zubok ★★★★★
()

Вас спасет только реинсталл системы. И в другой раз прикрывайте SSH от греха подальше... На «левый» порт или только с определенных адресов.

Deleted
()

Переставил бэкап системы. Все те же проблемы остались (их я заметил позже): google-chrome/opera грузят при запуске процессор на все 100%, при попытке коннекта по ссш мне пишет:

RSA_public_decrypt failed: error:0407006A:rsa routines:RSA_padding_check_PKCS1_type_1:block type is not 01                                                                                        
key_verify failed for server_host_key                                                            

Каталог ~/.ssh удалял, даже нового пользователя создавал - все проблемы остались. Вообще ничерта не понимаю.

Debsums ошибок не выдал.

soko1 ★★★★★
() автор топика

Отследил последовательность. Выключаю сетевой кабель, загружаю opera/chrome - всё отлично. Стоит только подключиться к Интернет - сразу процессор на 100%. Профили всех браузеров удалял, пробовал загружать под другими пользователями - точно такой же эффект.

soko1 ★★★★★
() автор топика
Ответ на: комментарий от soko1

[08:20:00] Rootkit checks...
[08:20:00] Rootkits checked : 245
[08:20:00] Possible rootkits: 2
[08:20:01] Rootkit names : Xzibit Rootkit, Xzibit Rootkit

По этому поводу я бы не парился -у самого такая же проблема - этот баг давно отрепорчен в дебиан, rkhunter показывает это из-за парамерта винтов в каком-то сервисе ( не помню, да и лень искать). Можешь проверить на самой свежей системе с debian testing - у тебя он найдет те же самые руткиты.
Если тебя заразили руткитом - первым делом попробуй поискать файлы, залоченые на уровне ФС от перезаписи, что-то типа

lsattr / | grep --invert-match --regexp=------------- 
потому что они первым делом меняют системные процессы и открывают тихий шелл на рандомном порту, а при апдейте системы они могут замениться. еще погляди
 netstat -plan | grep sshd 
там можно отследить исходящие пакеты на левые апишники с рутовым доступом по ssh. Также глянь .ssh/know_hosts - там будут левые ключи... короче мороки навалом и способов тоже, как поднять систему =)

dgeliko ★★
()

Это cron. Скорее всего пытается обновить google chrome, посмотри в /etc/cron.daily. На счет оперы не знаю...

ma1uta ★★★
()
Ответ на: комментарий от namezys
$ cat /etc/network/if-up.d/bfa-protection
#!/bin/sh

[ "$METHOD" != loopback ] || exit 0

sshdport="`cat /etc/ssh/sshd_config 2>/dev/null | grep ^Port | sed s/'^Port '//g`"

if [ -n "$sshdport" ]; then
    /sbin/iptables -I INPUT -p tcp --dport $sshdport -i $IFACE -m state --state NEW -m recent --set
    /sbin/iptables -I INPUT -p tcp --dport $sshdport -i $IFACE -m state --state NEW -m recent --update --seconds 60 --hitcount 2 --rttl -j DROP
fi

не?

alex_custov ★★★★★
()

У китайцев нет времени на хак, они заняты размножением.

qsloqs ★★
()
Ответ на: комментарий от Deleted

> И в другой раз прикрывайте SSH от греха подальше... На «левый» порт или только с определенных адресов.

Или только по ключу (т.е. полностью запретить пароли).

AEP ★★★★★
()
Ответ на: комментарий от namezys

>в олеговской прошивке закрывать рутовый доступ долго и муторно. и вообще там только один юзер

Там можно сменить имя рутового юзера(дефолтный admin)

madcore ★★★★★
()
Ответ на: комментарий от soko1

>которая записывает IP-адрес в чёрный список при n-ном кол-ве неудачных попыток залогиниться.

$ sudo apt-get install fail2ban

Deleted
()
Ответ на: комментарий от soko1

fantom@ghost:~$ cat /var/log/auth.log | grep «session opened for user root» | wc -l
159
fantom@ghost:~$ cat /var/log/auth.log | grep «session opened for user root» | head
Jun 20 08:17:01 ghost CRON[15786]: pam_unix(cron:session): session opened for user root by (uid=0)
Jun 20 09:17:01 ghost CRON[15969]: pam_unix(cron:session): session opened for user root by (uid=0)
Jun 20 10:17:01 ghost CRON[16112]: pam_unix(cron:session): session opened for user root by (uid=0)
Jun 20 11:17:02 ghost CRON[16333]: pam_unix(cron:session): session opened for user root by (uid=0)
Jun 20 12:17:01 ghost CRON[16574]: pam_unix(cron:session): session opened for user root by (uid=0)
Jun 20 13:17:01 ghost CRON[16802]: pam_unix(cron:session): session opened for user root by (uid=0)
Jun 20 14:17:01 ghost CRON[17064]: pam_unix(cron:session): session opened for user root by (uid=0)
Jun 20 15:17:01 ghost CRON[17198]: pam_unix(cron:session): session opened for user root by (uid=0)
Jun 20 16:17:01 ghost CRON[17492]: pam_unix(cron:session): session opened for user root by (uid=0)
Jun 20 17:17:01 ghost CRON[2394]: pam_unix(cron:session): session opened for user root by (uid=0)


не обижай крон, он нужен :)

Deleted
()
Ответ на: комментарий от soko1

а вот попытка перебора пароля


$ grep «POSSIBLE BREAK-IN ATTEMPT» /var/log/auth.log | wc -l
1529


$ grep «POSSIBLE BREAK-IN ATTEMPT» /var/log/auth.log | head
Jun 20 07:52:27 ghost sshd[15724]: Address 89.149.254.156 maps to mail.subaruturkiye.com, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
Jun 20 07:52:30 ghost sshd[15732]: Address 89.149.254.156 maps to mail.subaruturkiye.com, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
Jun 20 07:52:33 ghost sshd[15734]: Address 89.149.254.156 maps to mail.subaruturkiye.com, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
Jun 20 07:52:36 ghost sshd[15736]: Address 89.149.254.156 maps to mail.subaruturkiye.com, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
Jun 20 07:52:39 ghost sshd[15738]: Address 89.149.254.156 maps to mail.subaruturkiye.com, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
Jun 20 07:52:42 ghost sshd[15740]: Address 89.149.254.156 maps to mail.subaruturkiye.com, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!

Deleted
()
Ответ на: комментарий от Deleted

Не совсем по теме, но намёк на то, что у тебя, возможно, не полный порядок с правами: по-умолчанию /var/log/auth.log закрыт для всех, кроме рута

$ cat /var/log/auth.log
cat: /var/log/auth.log: Отказано в доступе
Nixopatolog
()
Ответ на: комментарий от Zhbert

Просто заболчь подсети китайские на вход, и будет тебе щастье.

Проще поставить нормальный пароль и нестандартый порт..

melkor217 ★★★★★
()
Ответ на: комментарий от Nixopatolog

s/кроме рута/кроме рута и группы adm/

Если юзер в ней - то вполне может читать логи

YAR ★★★★★
()
Ответ на: комментарий от melkor217

При чём тут локально установленные? ~i выбирает именно нормально установленные пакеты:

┌[~]
└> dpkg -l | grep ii | wc -l
862
┌[~]
└> aptitude search ~i | wc -l
862
GotF ★★★★★
()
Ответ на: комментарий от melkor217

Да знаю я. Просто не сразу понял мысль. Действительно, ~i выберет и локально установленные, что вызовет проблемы. Мораль — иметь локальный репозиторий, и никогда не использовать dpkg -i (=

GotF ★★★★★
()
Ответ на: комментарий от dgeliko

Спасибо, очень помогли.

soko1 ★★★★★
() автор топика
Ответ на: комментарий от sdio

Да, с кроном лохонулся :))
Китайцы действительно ломились на роутер - я это сделал не из текущего лога, а по айпишникам, которые принадлежали Китаю и с которых шла атака.

soko1 ★★★★★
() автор топика
Ответ на: комментарий от ma1uta

Да, вероятнее всего. Отныне буду его ставить не в /opt, как это делает apt-get, а в $HOME под пользователем.

soko1 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.