Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]Włamanie do oprogramowania.
luis2luis
post
Post #1





Grupa: Zarejestrowani
Postów: 190
Pomógł: 0
Dołączył: 25.11.2015

Ostrzeżenie: (0%)
-----


Witam.

W ostatnim czasie ktoś włamał się do aplikacji, podmienił pewne dane w administracji.
Teraz okaząło sie, że na serwerze pojawiły sie jakieś nowe pliki php.

Jeden zmienia chmod w pewnych plikach na 777

a drugi wygląda tak:


  1.  
  2. <?php
  3.  
  4. $language='pl';
  5. $auth = 0;
  6. $name='aaabb';
  7. $pass='aaabb';
  8.  
  9. @ini_restore("safe_mode");
  10. @ini_restore("open_basedir");
  11. @ini_restore("safe_mode_include_dir");
  12. @ini_restore("safe_mode_exec_dir");
  13. @ini_restore("disable_functions");
  14. @ini_restore("allow_url_fopen");
  15. @ini_set('error_log',NULL);
  16. @ini_set('log_errors',0);
  17.  
  18. ?>



Czy te ustawienia moga pomóc w dostaniu się do zawartości serwera/plików php?
W oprogramowaniu jest dużo różnych bibliotek, nie wszystkei sa najnowsze. Jakie funkcje php mogą posłużyć za podmiane zawartości pliku php, lub wstawienie nowego pliku na serwer?

Ten post edytował luis2luis 25.11.2015, 14:46:07
Go to the top of the page
+Quote Post
Damonsson
post
Post #2





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Tutaj mamy do czynienia z czasem przeszłym, więc pytanie czy mogą pomóc w dostaniu jest bezzasadne, to już się stało.

Tu trzeba jakiegoś post audytu. Możesz szukać ewentualnie po dacie edycji plików, logach serwera/php (które pewnie i tak zostały usunięte).

Ten post edytował Damonsson 25.11.2015, 14:55:14
Go to the top of the page
+Quote Post
luis2luis
post
Post #3





Grupa: Zarejestrowani
Postów: 190
Pomógł: 0
Dołączył: 25.11.2015

Ostrzeżenie: (0%)
-----


Cytat(Damonsson @ 25.11.2015, 14:54:21 ) *
Tutaj mamy do czynienia z czasem przeszłym, więc pytanie czy mogą pomóc w dostaniu jest bezzasadne, to już się stało.

Tu trzeba jakiegoś post audytu. Możesz szukać ewentualnie po dacie edycji plików, logach serwera/php (które pewnie i tak zostały usunięte).



Jeszcze jest opcja, że mogli znac hasło do ftp, nie było zmeiniane od kilku lat z tego co widze, mogł zostac wgrany jeszcze jakis plik na serwer.

Chciałem znaleźć tą luke i zabezpieczyc to. Sporo zmian już wprowadziłem.
Go to the top of the page
+Quote Post
Damonsson
post
Post #4





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Cóż można Ci poradzić, tylko "szukaj luki", jest tyle możliwych opcji, że nawet ciężko coś sensownego poradzić. Logi FTP musisz przejrzeć (w sieci znajdziesz na pewno jakieś narzędzia żeby odfiltrować wyniki) jeżeli podejrzewasz, że to przez FTP.

Prewencyjnie, zmiana wszystkich haseł do wszystkiego, jeżeli ataki ustaną to dobrze, jeżeli nie, to gdzieś masz lukę w kodzie/uprawnieniach.
Go to the top of the page
+Quote Post
luis2luis
post
Post #5





Grupa: Zarejestrowani
Postów: 190
Pomógł: 0
Dołączył: 25.11.2015

Ostrzeżenie: (0%)
-----


Cytat(Damonsson @ 25.11.2015, 15:32:51 ) *
Cóż można Ci poradzić, tylko "szukaj luki", jest tyle możliwych opcji, że nawet ciężko coś sensownego poradzić. Logi FTP musisz przejrzeć (w sieci znajdziesz na pewno jakieś narzędzia żeby odfiltrować wyniki) jeżeli podejrzewasz, że to przez FTP.

Prewencyjnie, zmiana wszystkich haseł do wszystkiego, jeżeli ataki ustaną to dobrze, jeżeli nie, to gdzieś masz lukę w kodzie/uprawnieniach.



ok rozumie. Hasła pozmieniane.

Mam pytanie tylko. w jaki sposób mógł na serwer zostac wgrany plik php do katalogu głównego. Jaka funkcja mogła zostac do tego użyta? file_put_content i co jeszcze?
Go to the top of the page
+Quote Post
andrew654
post
Post #6





Grupa: Zarejestrowani
Postów: 35
Pomógł: 9
Dołączył: 16.11.2012

Ostrzeżenie: (0%)
-----


Można normalnie uploadować plik php przez formularz wink.gif Nie trzeba do tego specjalnych funkcji. Można też zapisać trochę skryptu php w bazie danych a później go wykonać. Możliwości jest wiele. Skrypty zabezpiecza się tak, żeby w danym polu można było przesłać wymagane minimum danych, a wszystko inne usuwać.

Jest taki skrypt php, nazywa się WSO chyba. Jak go się wrzuci na serwer to można zrobić na nim [serwerze] praktycznie wszystko. Może nawet zmieniać daty modyfikacji plików, więc szukanie po ostatnio zmodyfikowanych nic nie da (oczywiście jeśli ktoś mocno chciał to ukryć). Zazwyczaj jest mocno zaszyty w kilku plikach. Widziałem już różne kombinacje. Łączenie stringów jako nazwa pliku gdzie znajduje się skrypt WSO, wszystko kilkukrotnie ukryte wszystkimi funkcjami o których mało kto wie do czego się je używa. Przeważnie wrzucony w kilka miejsc rozsianych po serwerze i trzeba się nieźle naszukać żeby odnaleźć wszystkie pliki, bo inaczej zostawisz backdoora którym ktoś będzie mógł znowu zrobić co mu się podoba.
Go to the top of the page
+Quote Post
luis2luis
post
Post #7





Grupa: Zarejestrowani
Postów: 190
Pomógł: 0
Dołączył: 25.11.2015

Ostrzeżenie: (0%)
-----


Cytat(andrew654 @ 25.11.2015, 20:38:12 ) *
Można normalnie uploadować plik php przez formularz wink.gif Nie trzeba do tego specjalnych funkcji. Można też zapisać trochę skryptu php w bazie danych a później go wykonać. Możliwości jest wiele. Skrypty zabezpiecza się tak, żeby w danym polu można było przesłać wymagane minimum danych, a wszystko inne usuwać.

Jest taki skrypt php, nazywa się WSO chyba. Jak go się wrzuci na serwer to można zrobić na nim [serwerze] praktycznie wszystko. Może nawet zmieniać daty modyfikacji plików, więc szukanie po ostatnio zmodyfikowanych nic nie da (oczywiście jeśli ktoś mocno chciał to ukryć). Zazwyczaj jest mocno zaszyty w kilku plikach. Widziałem już różne kombinacje. Łączenie stringów jako nazwa pliku gdzie znajduje się skrypt WSO, wszystko kilkukrotnie ukryte wszystkimi funkcjami o których mało kto wie do czego się je używa. Przeważnie wrzucony w kilka miejsc rozsianych po serwerze i trzeba się nieźle naszukać żeby odnaleźć wszystkie pliki, bo inaczej zostawisz backdoora którym ktoś będzie mógł znowu zrobić co mu się podoba.



Ok rozumie, czyli trzeba nadpisać wszystko czystą wersją skryptu i wykasowac to co jest teraz po prostu.

a jak wygląda sprawa nadawanai chmod na pliki? Czy 0755 (Wszystkie prawa dla właściciela, odczyt i wykonanie dla innych) będzie ok dla wszystkich plików php + dla katalogu w kórym znajduje sie cały skrypt?
Go to the top of the page
+Quote Post
viking
post
Post #8





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Zależy od uprawnień na jakich pracuje PHP. Standardowe 755 dla katalogów, 644 dla plików ale niekoniecznie grupa ostatnia musi mieć dostęp.


--------------------
Go to the top of the page
+Quote Post
luis2luis
post
Post #9





Grupa: Zarejestrowani
Postów: 190
Pomógł: 0
Dołączył: 25.11.2015

Ostrzeżenie: (0%)
-----


Cytat(viking @ 26.11.2015, 10:57:11 ) *
Zależy od uprawnień na jakich pracuje PHP. Standardowe 755 dla katalogów, 644 dla plików ale niekoniecznie grupa ostatnia musi mieć dostęp.




Ostatni cyfra to "Wszyscy", wiec moze zostac 0 ?


FOLDERY: 750
FOLDERY W KtÓRYCH SKRYPT DOKONUJE ZAPISU: 770

PLIKI PHP: 640
PLIKI W KtÓRYCH SKRYPT DOKONUJE ZAPISU (np CONFIG): 770

mam jeszcze pytanie, ten kod php, widze, że zmienia ustawienia serwera i na co zezwala?

  1. HP] pobierz, plaintext
  2.  
  3. <?php
  4.  
  5. $language='pl';
  6. $auth = 0;
  7. $name='aaabb';
  8. $pass='aaabb';
  9.  
  10. @ini_restore("safe_mode");
  11. @ini_restore("open_basedir");
  12. @ini_restore("safe_mode_include_dir");
  13. @ini_restore("safe_mode_exec_dir");
  14. @ini_restore("disable_functions");
  15. @ini_restore("allow_url_fopen");
  16. @ini_set('error_log',NULL);
  17. @ini_set('log_errors',0);
  18.  
  19. ?>
Go to the top of the page
+Quote Post
viking
post
Post #10





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Przywraca domyślną konfigurację oraz ukrywa logowanie. Przy dobrze skonfigurowanym serwerze szczególnie dużo to nie zrobi.


--------------------
Go to the top of the page
+Quote Post
luis2luis
post
Post #11





Grupa: Zarejestrowani
Postów: 190
Pomógł: 0
Dołączył: 25.11.2015

Ostrzeżenie: (0%)
-----


Cytat(viking @ 26.11.2015, 17:14:31 ) *
Przywraca domyślną konfigurację oraz ukrywa logowanie. Przy dobrze skonfigurowanym serwerze szczególnie dużo to nie zrobi.


Tu może być problem, bo serwer jeszcze niedawno pozwalał na użycie polecenie set_time_limit(0) i skrypt mogl wykonywać się bardzo długo, z reszta moze byc podobnie :/

Co do chmod, ostatecznie zostawiłbym tak:

550: FOLDERY Z PLIKAMI PHP - (wykonywanie i odczyt)
770: FOLDERY W KTÓRYCH SKRYPT DOKONUJE ZAPISU, SA TAM PLIKI PHP (wykonywanie, odczyt i zapisywanie)
660: FOLDER DO ZAPISU ZE ZDJECIAMI, DO WYKONYWANIA BACKUPU I KAŻDY INNY FOLDER, KTÓRY NIE ZAWIERA PLIKÓW PHP (zapisywanie i odczyt)

550: PLIKI PHP (wykonywanie i odczyt)
770: PLIKI W KTÓRYCH SKRYPT DOKONUJE ZAPISU (np CONFIG) (wykonywanie, odczyt i zapisywanie)

Ten post edytował luis2luis 27.11.2015, 15:01:45
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 07:18