Помогите поудалять шеллы и закрыть уязвимость - Форум успешных вебмастеров - GoFuckBiz.com
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB90.1887
BTC/USD67425.8454
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 24.04.2019, 20:53   #1
Трафуха
Senior Member
 
Аватар для Трафуха
 
Регистрация: 10.05.2018
Сообщений: 235
Бабло: $54940
Question Помогите поудалять шеллы и закрыть уязвимость

Привет друзья

Позаливали шеллов на доры, вообщем весь сервак загадили сучки под рассылку. Расылку хостер прикрыл, выкатил список шеллов, остальные сам нахожу по дате, удаляю руками
Может кто посоветует метод, раньше был сайтсканнер что то типа того, но найти не могу.
Кроме того уязвимость закрыть хочу. После удаления шеллов, обновлю движки вп, а что ещё ?

Вообщем плиз помогите
Трафуха вне форума  
Старый 24.04.2019, 20:58   #2
Dor
Senior Member
 
Регистрация: 24.01.2013
Сообщений: 1,562
Бабло: $213465
По умолчанию

Цитата:
После удаления шеллов, обновлю движки вп, а что ещё ?
смотря как заливают шелл.

уязвимость/фтп/админка/панель итд
+ бэкдоры залиты уже могут быть
Dor на форуме  
Старый 24.04.2019, 21:06   #3
Facker
Senior Member
 
Регистрация: 30.11.2012
Сообщений: 600
Бабло: $93300
По умолчанию

Цитата:
Сообщение от Dor Посмотреть сообщение
+ бэкдоры залиты уже могут быть
плюсую
ищи спецов, чтобы бэкдоры нашли, если они есть
в противном случае, все найденные и удаленные тобой шелы завтра будут на своих местах
Facker вне форума  
Старый 24.04.2019, 21:10   #4
Трафуха
Senior Member
 
Аватар для Трафуха
 
Регистрация: 10.05.2018
Сообщений: 235
Бабло: $54940
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от Dor Посмотреть сообщение
Цитата:
После удаления шеллов, обновлю движки вп, а что ещё ?
смотря как заливают шелл.

уязвимость/фтп/админка/панель итд
+ бэкдоры залиты уже могут быть
да вот знать бы как
буду менять всё что могу
некоторые сайты удалю нах

хотелось бы узнать у кого какие методы

алгоритм дайте при такой проблеме!

алгоритм дайте при такой проблеме!
Трафуха вне форума  
Старый 24.04.2019, 21:43   #5
веломан
сыроед
 
Аватар для веломан
 
Регистрация: 01.10.2015
Сообщений: 15,876
Бабло: $1862785
По умолчанию

не юзать всякие дырявые CMS и не менее дырявые плагины к ним
веломан вне форума  
Старый 24.04.2019, 21:52   #6
Трафуха
Senior Member
 
Аватар для Трафуха
 
Регистрация: 10.05.2018
Сообщений: 235
Бабло: $54940
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от веломан Посмотреть сообщение
не юзать всякие дырявые CMS и не менее дырявые плагины к ним
ага, вп+акисмет, но теперь то что делать
Трафуха вне форума  
Старый 24.04.2019, 23:24   #7
number4
Senior Member
 
Регистрация: 23.04.2017
Адрес: Pattaya
Сообщений: 132
Бабло: $20600
По умолчанию

Цитата:
Сообщение от Трафуха Посмотреть сообщение
Цитата:
Сообщение от веломан Посмотреть сообщение
не юзать всякие дырявые CMS и не менее дырявые плагины к ним
ага, вп+акисмет, но теперь то что делать
"посадил дед грепку, выросла грепка большая-пребольшая"

если очень хочется самостоятельно посношаться, то:
1. выключить нахрен apache/nginx
2. выключить похапе (если оно php-fpm)
3. выключить ftp (если есть)

4. сменить дефолтный порт ssh на другой (nano /etc/ssh/sshd_config ; service ssh restart)

5. поставить доступ только для рута:
chown -R root: /var/www
chmod -R 600 /var/www

6. сделать грепку :

1) быстрый способ:
cd /var/www/ (или где там)
grep -irl "..." .
на список php-функций, используемых в похапе-шеллах:
passthru
shell
exec
system
pcntl
proc_
phpinfo
base64_decode
chmod
eval

2) долгий способ:
cd /
find -type -f -name "*.php" exec grep -RnDskip "\(passthru\|shell_exec\|system\|phpinfo\|base64_d ecode\|chmod\|mkdir\|fopen\|fclose\|readfile\|.... и прочие кейворды) *(" {} \;

7. скачать и запустить rkhunter и unhide:
apt-get install rkhunter
apt-get install unhide
(и далее по гуглю)

8. задисаблить все опасные php-функции (php.ini
disable_functions => apache_child_terminate,apache_setenv,define_syslog _variables,escapeshellarg,escapeshellcmd,gzinflate ,highlight_file,ini_alter,ini_get_all,ini_restore, inject_code,openlog,passthru,pcntl_alarm,pcntl_exe c,pcntl_fork,pcntl_get_last_error,pcntl_getpriorit y,pcntl_setpriority,pcntl_signal,pcntl_signal_disp atch,pcntl_sigprocmask,pcntl_sigtimedwait,pcntl_si gwaitinfo,pcntl_strerror,pcntl_wait,pcntl_waitpid, pcntl_wexitstatus,pcntl_wifexited,pcntl_wifsignale d,pcntl_wifstopped,pcntl_wstopsig,pcntl_wtermsig,p hpAds_remoteInfo,phpAds_XmlRpc,phpAds_xmlrpcDecode ,phpAds_xmlrpcEncode,php_uname,popen,posix_getpwui d,posix_kill,posix_mkfifo,posix_setpgid,posix_sets id,posix_setuid,posix_uname,proc_close,proc_get_st atus,proc_nice,proc_open,proc_terminate,shell_exec ,str_rot13,syslog,xmlrpc_entity_decode => apache_child_terminate,apache_setenv,define_syslog _variables,escapeshellarg,escapeshellcmd,gzinflate ,highlight_file,ini_alter,ini_get_all,ini_restore, inject_code,openlog,passthru,pcntl_alarm,pcntl_exe c,pcntl_fork,pcntl_get_last_error,pcntl_getpriorit y,pcntl_setpriority,pcntl_signal,pcntl_signal_disp atch,pcntl_sigprocmask,pcntl_sigtimedwait,pcntl_si gwaitinfo,pcntl_strerror,pcntl_wait,pcntl_waitpid, pcntl_wexitstatus,pcntl_wifexited,pcntl_wifsignale d,pcntl_wifstopped,pcntl_wstopsig,pcntl_wtermsig,p hpAds_remoteInfo,phpAds_XmlRpc,phpAds_xmlrpcDecode ,phpAds_xmlrpcEncode,php_uname,popen,posix_getpwui d,posix_kill,posix_mkfifo,posix_setpgid,posix_sets id,posix_setuid,posix_uname,proc_close,proc_get_st atus,proc_nice,proc_open,proc_terminate,shell_exec ,str_rot13,syslog,xmlrpc_entity_decode

9. удалить все подозрительное, пользуясь гуглем:
<подозрительный файл> what is it

10. удалить нахрен похапемайадмин или засекурить его согласно гуглу

11. проверить на предмет открытых странных портах:
netstat -tun

очевидно, если вебсервер и фтп убиты, открытых портов, кроме ssh быть в принципе не должно.

12. проверить /tmp, папку где хранятся PHP_SESSIONS (если это другая папка) и временную папку аплоадов на предмет всякой херни типа
phpERxdSz или подобного


12. сменить пароль на root и всех остальных юзеров (фтп, шелл)
13. сменить дефолтный фтп-порт на другой (проявить фантазия, а не ставить 2121 или 2112)

14. поставить fail2ban и настроить против сканеров, говноботов и прочей мудодени

15. enable ufw (если ubuntu/debian) - закрыть 25,110,8080,3128,445-447,136-137 и прочие порты, настроить согласно гуглу (если есть свой мейл-сервер - там еще нужно изучать что могли пропихнуть в конфиги)

16. на уровне нгинкса/апача запретить аплоады *.php *.exe *.sh *.js и прочей для CMS
17. посмотреть /etc/groups - на предмет странных групп или доступов юзеров в группы
18. посмотреть /etc/passwd - на предмет странных юзеров
19. смотреть /etc/apt/sources.list - на предмет добавлений подозрительных источников
20. смотреть /etc/rc.local - не запускается ли чо при стартапе, аналогично
в /etc/crontab
21. смотреть crontab -l root (и всех юзеров)


ну и там по-мелочи, почитать /var/logs/ , посмотреть в mysql - не создавалось ли там каких-то баз данных со свежей датой
зайти в /root и посмотреть на предмет всяких подозрительных файлов типа: ".подозрительный_файл"
аналогично проверить /home
и напоследок грохнуть содержимое /root/.ssh (/home/user/.ssh и пересоздать заново:
ssh-keygen
и если были доступы на другие сервера, то удалить все бывшие ключи из authorized_keys тех серверов и залить новые ключи:
ssh-copy-ip -p <порт> <куда>

---
не забыть сделать chown -R www-data: /var/www/...
и поставить chmod -R 750 на папку
затем включить веб-сервер

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

Последний раз редактировалось number4; 24.04.2019 в 23:33.
number4 вне форума  
Старый 24.04.2019, 23:28   #8
Трафуха
Senior Member
 
Аватар для Трафуха
 
Регистрация: 10.05.2018
Сообщений: 235
Бабло: $54940
ТС -->
автор темы ТС По умолчанию

Великолепно! Просто сохраним это здесь. То что я искал...
У автора на личном опыте такое происходило?
Работы конечно довольно много!

Последний раз редактировалось admin; 29.05.2019 в 10:39.
Трафуха вне форума  
Старый 24.04.2019, 23:34   #9
веломан
сыроед
 
Аватар для веломан
 
Регистрация: 01.10.2015
Сообщений: 15,876
Бабло: $1862785
По умолчанию

posix-функции 2 раза написаны
если их (и pcntl_*) запретить, то пхп-демонов запускать не получится
а так да, хорошее руководство
веломан вне форума  
Старый 24.04.2019, 23:40   #10
number4
Senior Member
 
Регистрация: 23.04.2017
Адрес: Pattaya
Сообщений: 132
Бабло: $20600
По умолчанию

[QUOTE=Трафуха;1184534]
Цитата:
Сообщение от number4 Посмотреть сообщение
Цитата:
Сообщение от Трафуха Посмотреть сообщение
Цитата:
Сообщение от веломан Посмотреть сообщение
не юзать всякие дырявые CMS и не менее дырявые плагины к ним
ага, вп+акисмет, но теперь то что делать
У автора на личном опыте такое происходило?
Работы конечно довольно много!

и на личном опыте было - залили шеллы через дырявые wp-плугины (один раз и этого хватило) и на других серверах вычищал всякую дрянь.
работа крайне утомительная и муторная.
чтоб резко сократить время:

вот скрипт, который ищет кое-какие инъекции:

Код:
<?

$list=file("list.txt");

$v=array(
'$GLOBALS[$GLOBALS',
'$alphabet',
'get_root_path',
'bokoinchina',
'chosen_dirs_indexes',
'"test_url"',
"'test_url'",
'PCLZIP_READ_BLOCK',
'MD5(strrev',
'ALREADY_RUN',
'eval/*',
'@$_COOKIE["user"]',
'include_once("index.php")',
'@include "\x',
'file test okay',
'PCLZIP_SEPARATOR',
'index.html.bak.bak',
'<?php ${',
'#Yandex#',
'$user_agent_to_filter',
'"templates/".$dir."',
'].$GLOBALS[',
'($GLOBALS[$GLOBALS',

);

$files=array();

foreach($list as $file){

    $file=trim($file);
    if($file=='') continue;

     if(filesize($file)<5) continue;

    $str=@file_get_contents($file);
    if(!$str||$str===false) { echo "\nunable open:\n{$file}\n";continue;}

    foreach ($v as $i){
       if(strpos($str,$i)!==false) {
         if(!isset($files[$file])) {
             $files[$file]="{$file} -- {$i}";
             echo "{$file} : {$i}\n";
         }
       }
   }
}

#fclose($a);

$z=fopen("__found__.txt","w");
fputs($z,join("\n",$files));
fclose($z);

?>
запускать из консоли.

предварительно сделать:
find -type -f -name "*.php" -print > list.txt

Цитата:
Сообщение от веломан Посмотреть сообщение
posix-функции 2 раза написаны
если их (и pcntl_*) запретить, то пхп-демонов запускать не получится
а так да, хорошее руководство
как бы ни разу не возникало нужды в похапе-демонах или процессах.
а пхп-потоки все у меня консольны и запускаю иначе через независимых воркеров

Забыл добавить:
еще проверить
/etc/hosts
/etc/sudoers
/root/.bashrc
/root/.bash_history
/root/.mysql_history
- какие были последние комманды, некоторые кулхацкеры забывают подчищать историю

Последний раз редактировалось number4; 24.04.2019 в 23:54.
number4 вне форума