Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: blackpearl в Feb 05, 2013, 16:38



Титла: Как да защитя /etc/passwd , /etc/shadow
Публикувано от: blackpearl в Feb 05, 2013, 16:38
Здравейте, защитих PHP от шелове / back door-и , обаче в един шел виждам че има опция да покаже /etc/passwd файла, и го показва. Някакви идеи как да защитя този файл?


Титла: Re: Как да защитя /etc/passwd , /etc/shadow
Публикувано от: gat3way в Feb 05, 2013, 17:10
Принципно идеята на /etc/passwd е да може да се чете от всеки потребител.


Титла: Re: Как да защитя /etc/passwd , /etc/shadow
Публикувано от: laskov в Feb 05, 2013, 17:27
И правилната стъпка вероятно е да направиш настройките на PHP така, че да е забранен достъп до директория, по горна от желаната от теб.


Титла: Re: Как да защитя /etc/passwd , /etc/shadow
Публикувано от: blackpearl в Feb 05, 2013, 17:30
Принципно идеята на /etc/passwd е да може да се чете от всеки потребител.
Мисля че чрез достъп до този файл може да се проникне в системата ?
Защо ли пък ще слагат такава функция в php shell, тогава?
Как да забраня на php / apache да има достъп до този файл?


Титла: Re: Как да защитя /etc/passwd , /etc/shadow
Публикувано от: gat3way в Feb 05, 2013, 17:43
Как точно чрез достъпа до /etc/passwd ще "проникнеш" в системата?

Първо, щом лошите могат да изпълняват PHP код отдалечено, значи достатъчно много неща са се оплескали. Неуспешното изчитане на /etc/passwd няма да промени особено много нещата.


Титла: Re: Как да защитя /etc/passwd , /etc/shadow
Публикувано от: blackpearl в Feb 05, 2013, 17:45
Нямам отговор, само мога да кажа че имат интерес към този файл. Преди време се опитаха да ми пробутат това:

<?php
 readfile('/etc/passwd');
?>

- и сами може да разберете за какво е.


Титла: Re: Как да защитя /etc/passwd , /etc/shadow
Публикувано от: petar258 в Feb 05, 2013, 18:06
Разгледай какво имаш в /etc/passwd - в повечето линукс дистрибуции там няма пароли, а само имената на потребителите. Така че нищо фатално няма да научат от там. Но възможността да ползват апачето като файлов браузър си е достатъчно голяма дупка и вероятно проблема е в конфигурирането на нещо в него. Нормално това не би трябвало да се случва.


Титла: Re: Как да защитя /etc/passwd , /etc/shadow
Публикувано от: dejuren в Feb 05, 2013, 18:09
Ами интересен си е /etc/passwd, най-малко списък на активните потребители може да се получи оттам..


Титла: Re: Как да защитя /etc/passwd , /etc/shadow
Публикувано от: gat3way в Feb 05, 2013, 18:12
Това е отживелица от едни други времена, когато не е имало shadow пароли. На практика, съдържанието на passwd не е особено полезно - единствено системните акаунти и почти никаква информация, свързана с паролите им. Сега да - може да се окаже че има наличен акаунт с много проста парола, която би паднала при последвало налучкване или bruteforce-ване през ssh. Но какво от това, след като лошите така или иначе си имат локален достъп през счупения php скрипт. Ако случайно въпросния акаунт със слаба парола се окаже root-ския, то на лошите не им трябва да изчетат passwd, за да разберат за наличието му поради простата причина че административния акаунт по принцип е 'root'.

А иначе защо хакерите и писачите на php shell-ове толкова държат да знаят какво има вътре - защото толкова им е акъла предполагам.


Титла: Re: Как да защитя /etc/passwd , /etc/shadow
Публикувано от: blackpearl в Feb 05, 2013, 18:59
И все пак... Щом може без него - без него ще е. Направих го да се използва само от руут-а и вече шеловете нямат достъп. А колкото до другото - те използват специална функция за достъп до тези файлове.


Титла: Re: Как да защитя /etc/passwd , /etc/shadow
Публикувано от: gat3way в Feb 05, 2013, 19:11
Лоша идея - този файл трябва да може да се чете. С това отваряш повече проблеми, отколкото решаваш - от невинни от сорта на ps aux ще ти вади малко странни глупости, до доста по-сериозни от сорта на mail daemon-а, който ще спре да праща поща до локални потребители


Титла: Re: Как да защитя /etc/passwd , /etc/shadow
Публикувано от: dejuren в Feb 05, 2013, 19:25
Мда, определено лоша идея. blackpearl, при странно поведение на сървъра може да започваш с проба дали не се дължи на "/etc/passwd само от руут-а".


Титла: Re: Как да защитя /etc/passwd , /etc/shadow
Публикувано от: Ali Nebi в Feb 05, 2013, 19:33
Не знам до колко би помогнало, но какво ще стане ако сетнеш open_basedir и ползваш mod_security? open_basedir би трябвало да блокира достъпа до външни файлове и директории извън описаните в него, а mod_security трябва да помогне за по-добрата защита на системата от страната на апаче.

Другите биха могли да допълнят или дадат други идеи.

Поздрави!


Титла: Re: Как да защитя /etc/passwd , /etc/shadow
Публикувано от: blackpearl в Feb 05, 2013, 20:02
Този мод колкото и да се опитвам да го инсталирам под Дебиан - не става и не става...


Титла: Re: Как да защитя /etc/passwd , /etc/shadow
Публикувано от: n00b в Feb 05, 2013, 22:07
Извинявам се за лаизма, но защо дискуритрате неща от преди 30 години?

Откакто има shadow, нещата са много по-добре отколкото преди.

За справка ето ми /etc/passwd силно се надявам някой да ме хакне!

Цитат
Peter-Nikolows-MacBook-Unibody:~ peters$ cat /etc/passwd
##
# User Database
#
# Note that this file is consulted directly only when the system is running
# in single-user mode.  At other times this information is provided by
# Open Directory.
#
# This file will not be consulted for authentication unless the BSD local node
# is enabled via /Applications/Utilities/Directory Utility.app
#
# See the DirectoryService(8) man page for additional information about
# Open Directory.
##
nobody:*:-2:-2:Unprivileged User:/var/empty:/usr/bin/false
root:*:0:0:System Administrator:/var/root:/bin/sh
daemon:*:1:1:System Services:/var/root:/usr/bin/false
_uucp:*:4:4:Unix to Unix Copy Protocol:/var/spool/uucp:/usr/sbin/uucico
_lp:*:26:26:Printing Services:/var/spool/cups:/usr/bin/false
_postfix:*:27:27:Postfix Mail Server:/var/spool/postfix:/usr/bin/false
_mcxalr:*:54:54:MCX AppLaunch:/var/empty:/usr/bin/false
_pcastagent:*:55:55:Podcast Producer Agent:/var/pcast/agent:/usr/bin/false
_pcastserver:*:56:56:Podcast Producer Server:/var/pcast/server:/usr/bin/false
_serialnumberd:*:58:58:Serial Number Daemon:/var/empty:/usr/bin/false
_devdocs:*:59:59:Developer Documentation:/var/empty:/usr/bin/false
_sandbox:*:60:60:Seatbelt:/var/empty:/usr/bin/false
_mdnsresponder:*:65:65:mDNSResponder:/var/empty:/usr/bin/false
_ard:*:67:67:Apple Remote Desktop:/var/empty:/usr/bin/false
_www:*:70:70:World Wide Web Server:/Library/WebServer:/usr/bin/false
_eppc:*:71:71:Apple Events User:/var/empty:/usr/bin/false
_cvs:*:72:72:CVS Server:/var/empty:/usr/bin/false
_svn:*:73:73:SVN Server:/var/empty:/usr/bin/false
_mysql:*:74:74:MySQL Server:/var/empty:/usr/bin/false
_sshd:*:75:75:sshd Privilege separation:/var/empty:/usr/bin/false
_qtss:*:76:76:QuickTime Streaming Server:/var/empty:/usr/bin/false
_cyrus:*:77:6:Cyrus Administrator:/var/imap:/usr/bin/false
_mailman:*:78:78:Mailman List Server:/var/empty:/usr/bin/false
_appserver:*:79:79:Application Server:/var/empty:/usr/bin/false
_clamav:*:82:82:ClamAV Daemon:/var/virusmails:/usr/bin/false
_amavisd:*:83:83:AMaViS Daemon:/var/virusmails:/usr/bin/false
_jabber:*:84:84:Jabber XMPP Server:/var/empty:/usr/bin/false
_xgridcontroller:*:85:85:Xgrid Controller:/var/xgrid/controller:/usr/bin/false
_xgridagent:*:86:86:Xgrid Agent:/var/xgrid/agent:/usr/bin/false
_appowner:*:87:87:Application Owner:/var/empty:/usr/bin/false
_windowserver:*:88:88:WindowServer:/var/empty:/usr/bin/false
_spotlight:*:89:89:Spotlight:/var/empty:/usr/bin/false
_tokend:*:91:91:Token Daemon:/var/empty:/usr/bin/false
_securityagent:*:92:92:SecurityAgent:/var/empty:/usr/bin/false
_calendar:*:93:93:Calendar:/var/empty:/usr/bin/false
_teamsserver:*:94:94:TeamsServer:/var/teamsserver:/usr/bin/false
_update_sharing:*:95:-2:Update Sharing:/var/empty:/usr/bin/false
_installer:*:96:-2:Installer:/var/empty:/usr/bin/false
_atsserver:*:97:97:ATS Server:/var/empty:/usr/bin/false
_ftp:*:98:-2:FTP Daemon:/var/empty:/usr/bin/false
_unknown:*:99:99:Unknown User:/var/empty:/usr/bin/false
_softwareupdate:*:200:200:Software Update Service:/var/empty:/usr/bin/false
_coreaudiod:*:202:202:Core Audio Daemon:/var/empty:/usr/bin/false
_screensaver:*:203:203:Screensaver:/var/empty:/usr/bin/false
_locationd:*:205:205:Location Daemon:/var/empty/usr/bin/false
_carddav:*:206:206:CardDAV Service:/var/empty/usr/bin/false
_trustevaluationagent:*:208:208:Trust Evaluation Agent:/var/empty:/usr/bin/false
_timezone:*:210:210:AutoTimeZoneDaemon:/var/empty:/usr/bin/false
_lda:*:211:211:Local Delivery Agent:/var/empty:/usr/bin/false
_cvmsroot:*:212:212:CVMS Root:/var/empty:/usr/bin/false
_usbmuxd:*:213:213:iPhone OS Device Helper:/var/db/lockdown:/usr/bin/false
_dovecot:*:214:6:Dovecot Administrator:/var/empty:/usr/bin/false


Титла: Re: Как да защитя /etc/passwd , /etc/shadow
Публикувано от: laskov в Feb 05, 2013, 22:29
http://php.net/manual/en/security.php ($2) - четеш и проверяваш/изпълняваш точка по точка, а ако напишеш в гугъл "php security" ще намериш и още за четене.


Титла: Re: Как да защитя /etc/passwd , /etc/shadow
Публикувано от: gat3way в Feb 06, 2013, 00:26
Реално погледнато, в днешно време дори и shadow да можеш да изчетеш, може да се окаже че не е особено полезно. Криптографията зад нещата е изживяла доста еволюция от времената на DES-базирания crypt(). В днешно време се ползват основно два алгоритъма за хеширане на паролите - bcrypt и sha512crypt, и двата са доста корави и държат на бой. В общи линии лошите зли хакери могат единствено да се надяват на слаби пароли, за да се възползват от това. Сега съществува и другия момент че е доста трудно да се дефинира "силна парола".


Титла: Re: Как да защитя /etc/passwd , /etc/shadow
Публикувано от: blackpearl в Feb 06, 2013, 01:21
Извинявам се за лаизма, но защо дискуритрате неща от преди 30 години?

Откакто има shadow, нещата са много по-добре отколкото преди.

За справка ето ми /etc/passwd силно се надявам някой да ме хакне!

Цитат
Peter-Nikolows-MacBook-Unibody:~ peters$ cat /etc/passwd
##
# User Database
#
# Note that this file is consulted directly only when the system is running
# in single-user mode.  At other times this information is provided by
# Open Directory.
#
# This file will not be consulted for authentication unless the BSD local node
# is enabled via /Applications/Utilities/Directory Utility.app
#
# See the DirectoryService(8) man page for additional information about
# Open Directory.
##
nobody:*:-2:-2:Unprivileged User:/var/empty:/usr/bin/false
root:*:0:0:System Administrator:/var/root:/bin/sh
daemon:*:1:1:System Services:/var/root:/usr/bin/false
_uucp:*:4:4:Unix to Unix Copy Protocol:/var/spool/uucp:/usr/sbin/uucico
_lp:*:26:26:Printing Services:/var/spool/cups:/usr/bin/false
_postfix:*:27:27:Postfix Mail Server:/var/spool/postfix:/usr/bin/false
_mcxalr:*:54:54:MCX AppLaunch:/var/empty:/usr/bin/false
_pcastagent:*:55:55:Podcast Producer Agent:/var/pcast/agent:/usr/bin/false
_pcastserver:*:56:56:Podcast Producer Server:/var/pcast/server:/usr/bin/false
_serialnumberd:*:58:58:Serial Number Daemon:/var/empty:/usr/bin/false
_devdocs:*:59:59:Developer Documentation:/var/empty:/usr/bin/false
_sandbox:*:60:60:Seatbelt:/var/empty:/usr/bin/false
_mdnsresponder:*:65:65:mDNSResponder:/var/empty:/usr/bin/false
_ard:*:67:67:Apple Remote Desktop:/var/empty:/usr/bin/false
_www:*:70:70:World Wide Web Server:/Library/WebServer:/usr/bin/false
_eppc:*:71:71:Apple Events User:/var/empty:/usr/bin/false
_cvs:*:72:72:CVS Server:/var/empty:/usr/bin/false
_svn:*:73:73:SVN Server:/var/empty:/usr/bin/false
_mysql:*:74:74:MySQL Server:/var/empty:/usr/bin/false
_sshd:*:75:75:sshd Privilege separation:/var/empty:/usr/bin/false
_qtss:*:76:76:QuickTime Streaming Server:/var/empty:/usr/bin/false
_cyrus:*:77:6:Cyrus Administrator:/var/imap:/usr/bin/false
_mailman:*:78:78:Mailman List Server:/var/empty:/usr/bin/false
_appserver:*:79:79:Application Server:/var/empty:/usr/bin/false
_clamav:*:82:82:ClamAV Daemon:/var/virusmails:/usr/bin/false
_amavisd:*:83:83:AMaViS Daemon:/var/virusmails:/usr/bin/false
_jabber:*:84:84:Jabber XMPP Server:/var/empty:/usr/bin/false
_xgridcontroller:*:85:85:Xgrid Controller:/var/xgrid/controller:/usr/bin/false
_xgridagent:*:86:86:Xgrid Agent:/var/xgrid/agent:/usr/bin/false
_appowner:*:87:87:Application Owner:/var/empty:/usr/bin/false
_windowserver:*:88:88:WindowServer:/var/empty:/usr/bin/false
_spotlight:*:89:89:Spotlight:/var/empty:/usr/bin/false
_tokend:*:91:91:Token Daemon:/var/empty:/usr/bin/false
_securityagent:*:92:92:SecurityAgent:/var/empty:/usr/bin/false
_calendar:*:93:93:Calendar:/var/empty:/usr/bin/false
_teamsserver:*:94:94:TeamsServer:/var/teamsserver:/usr/bin/false
_update_sharing:*:95:-2:Update Sharing:/var/empty:/usr/bin/false
_installer:*:96:-2:Installer:/var/empty:/usr/bin/false
_atsserver:*:97:97:ATS Server:/var/empty:/usr/bin/false
_ftp:*:98:-2:FTP Daemon:/var/empty:/usr/bin/false
_unknown:*:99:99:Unknown User:/var/empty:/usr/bin/false
_softwareupdate:*:200:200:Software Update Service:/var/empty:/usr/bin/false
_coreaudiod:*:202:202:Core Audio Daemon:/var/empty:/usr/bin/false
_screensaver:*:203:203:Screensaver:/var/empty:/usr/bin/false
_locationd:*:205:205:Location Daemon:/var/empty/usr/bin/false
_carddav:*:206:206:CardDAV Service:/var/empty/usr/bin/false
_trustevaluationagent:*:208:208:Trust Evaluation Agent:/var/empty:/usr/bin/false
_timezone:*:210:210:AutoTimeZoneDaemon:/var/empty:/usr/bin/false
_lda:*:211:211:Local Delivery Agent:/var/empty:/usr/bin/false
_cvmsroot:*:212:212:CVMS Root:/var/empty:/usr/bin/false
_usbmuxd:*:213:213:iPhone OS Device Helper:/var/db/lockdown:/usr/bin/false
_dovecot:*:214:6:Dovecot Administrator:/var/empty:/usr/bin/false
Ако бях толкова запознат нямаше да пускам тема. Вече си обясних нещата - било е дупка в старите версии.