Аудит безопасности хостинга и других совместно используемых систем на Linux
Многопользовательские системы: плюсы и минусы
Linux – это многопользовательская операционная система. Это означает, что в одной в операционной системе может быть создан несколько учётных записей пользователей, и что с операционной системой могут одновременно работать несколько пользователей.
Самым типичным примером многопользовательского использования Linux является виртуальный хостинг. На английском он называется shared hosting, то есть совместный хостинг. Если вы не веб-мастер и думаете, что никогда не сталкивались с совместным хостингом, то вы ошибайтесь. Например, HackWare.ru размещён именно на таком сервере.
Виртуальный хостинг работает следующим образом: каждому клиенту хостера на сервере выделяется его собственная папка. В этой папке веб-мастер размещает свои сайты – один или сразу несколько. К этим папкам у веб-мастера есть FTP доступ или доступ через файловый менеджер с веб интерфейсом. Многие хостинги в настоящее время предоставляют также доступ по SSH (сразу или по запросу). По задумке, каждый веб-мастер имеет доступ только к своей папке: возится там, что-то делает, размещает сайты и так далее.
Совместное использование одного «железного» компьютера очень экономично и удобно. Такой подход может быть реализован на компьютерах в общественных местах, в организациях, даже вы у себя дома можете настроить работу в ОС таким способом. Тот же самый сервер (если он достаточно мощный) может обслуживать сотни клиентов и хостить (размещать на себе) одновременно тысячи сайтов!
И если на домашнем компьютере вопросы безопасности не стоят остро (хотя никому не приятно, если кто-то лазает по его личным папкам), то в корпорациях и на совместном хостинге это намного важнее: возможность «заглянуть» в чужую папку может означать разглашение конфиденциальной информации, а если кто-то получил доступ в папку с сайтами, то это означает компрометацию – утечку паролей, опасность заражением веб-ресурса вредоносным программным обеспечением и прочие негативные последствия.
Для кого-то это может стать сюрпризом (хотя про это говорят на протяжении уже долгого времени), но плохо настроенных хостингов хватает. Я помню, как на своём первом хостинге с PHP (бесплатный, с доменом третьего уровня) я «заглядывал» в чужие папки. Больше всего там было фишинговых сайтов похожих на mail.ru… Но не в этом дело – дело в том, что неправильно настроенные хостинги никто не отменял!
Взлом хостинга
Неприятно узнать, если вам не повезло с хотингом и ваша папка с сайтами – это проходной двор, в который заглядывают все, кому не лень. И если это так, и злоумышленник получил доступ и может, например, менять текст на страницах вашего сайта. Это не означает, что вы об этом сразу узнаете. Многие злоумышленники используют взломы в корыстных целях: размещают ссылки (я видел на форумах предложения купить ссылку или сразу доступ к админке крупных сайтов), вредоносное содержимое, используют для незаконных целей.
Я покажу несколько простых приёмов, как узнать, насколько всё хорошо или плохо с сохранностью ваших сайтов на хостинге.
Для затравки, создайте на своём хостинге файл с именем test.php и скопируйте в него:
<?php error_reporting('ALL'); if ($files = array_slice(scandir('/'), 2)) { echo 'In the <b>root</b> folder we found:'; foreach ($files as $value) { echo '<br /> ' . $value; } echo '<br /><br />'; } else { echo '<br />We cannot open the root directory.'; } if ($files2 = array_slice(scandir('/home'), 2)) { echo 'In the <b>home</b> folder we found:'; foreach ($files2 as $value) { echo '<br /> ' . $value; } echo '<br /><br />'; } else { echo '<br />We cannot open the home directory.'; } if ($passwd = file_get_contents('/etc/passwd')) { $passwd = preg_replace("/\r\n|\r|\n/", '<br />', $passwd); echo '<b>/etc/passwd</b> contains:<br />'; echo "$passwd"; } else { echo '<br />We cannot open the /etc/passwd file.'; }
Я написал все сообщения на английском, просто из-за того, что у кириллицы может возникнуть проблема с кодировкой – если вам непонятно, что они значат, используйте Гугл-переводчик.
Теперь откройте в веб-браузере адрес вида ваш_сайт/test.php. Я выбрал для проверки первый попавшийся результат по запросу «хостинг с тестовым периодом», посмотрим, что у меня получилось.
Содержимое корневой папки сервера – ещё раз, НЕ вашей папки, а всего сервера:
Содержимое папки /home (в этой директории находятся директории всех пользователей):
Содержимое файла /etc/passwd (только верхушка, там ещё много строк внизу):
Начало обнадёживающее!
Справедливости ради нужно сказать, что хотя этот сервер и позволяет лазить по его папкам, как-либо скомпрометировать сервер или пользовательские данные мне не удалось – права на важные файлы, а также на папки пользователей, настроены правильно, т.е. доступ к файлам сайтов и баз данных не получить.
Приведённые строки кода PHP очень просты, они не делают ничего сверхъестественного – мы просто открываем папки и файлы, а права доступа на эти файлы и папки настроены так, что их может открыть кто угодно – вот и весь «фокус».
Как на виртуальном хостинге запускать Bash команды
Можно продолжить изучать внутренности хостинга используя PHP скрипт, можно даже забросить туда Weevely или какой-нибудь из webshells (если выберите этот путь, то рекомендую c99unlimited.php – классика!). Но я хочу вводить команды оболочки Bash – мне (может быть и вам) это привычнее – а ещё нам это в любом случае очень скоро пригодится!
Как я уже говорил, многие хостеры предоставляют доступ по SSH – можно воспользоваться этим вариантом. Но я покажу более универсальный способ, как запускать системные команды Linux прямо через PHP – это подойдёт тем, у кого не предусмотрен SSH.
Создайте файл test2.php и скопируйте в него:
<?php error_reporting('ALL'); $cmd = 'ping -c 4 ya.ru 2>&1'; echo '<pre>'; passthru($cmd); echo '</pre>';
Теперь откройте в веб-браузере ссылку вида сайт.ru/test2.php. Прямо в браузере вы должны увидеть результаты пинга:
Если вы их видите – значит всё работает!
В файле test2.php для выполнения различных команд нужно менять только строку
$cmd = 'ping -c 4 ya.ru 2>&1';
Точнее говоря, то, что внутри кавычек. Здесь ping -c 4 ya.ru – это команда, которую мы отправили для выполнения в операционной системе. А 2>&1 означает перенаправлять ошибки в стандартный вывод – это полезно, чтобы мы могли видеть причину проблемы, если команда не сработала.
Попробуйте ещё несколько команд:
ls -al
Результат:
ls -al /
Результат:
cat /etc/passwd
Результат:
Информация о сетевых интерфейсах:
ifconfig
Информация о файловой системе:
df -a
Просмотр ARP таблицы сервера:
arp -a
Если вам даже эти команды (ls, cat) кажутся незнакомыми, то настоятельно рекомендую ознакомиться со статьями (они небольшие):
- Азы работы в командной строке Linux (часть 1)
- Азы работы в командной строке Linux (часть 2)
- Азы работы в командной строке Linux (часть 3)
Как на виртуальном хостинге запустить Bash скрипт
Вы также можете запускать Bash скрипты на shared-хостинге. Это удобно для выполнения автоматизированных проверок, также при запуске сложных команд из PHP файла нам нужно должным образом экранировать кавычки, что не очень удобно и требует времени.
Нам нужно узнать абсолютный путь до папки, где мы разместим наш скрипт. Чтобы это сделать, выполните команду
pwd
Я получил значение /home/p/pentest2ru/pentest2.ru
Допустим, файл с Bash скриптом мы назовём test.sh, тогда для его запуска нужно выполнить команду вида
bash /путь/до/скрипта/test.sh
В моём случае, команда будет такой:
bash /home/p/pentest2ru/pentest2.ru/test.sh
Итак, для запуска Bash скрипта я отредактировал файл test2.php и у меня получилось так:
<?php error_reporting('ALL'); $cmd = 'bash /home/p/pentest2ru/pentest2.ru/test.sh 2>&1'; echo '<pre>'; passthru($cmd); echo '</pre>';
Теперь в той же папке что и test2.php, создайте файл test.sh. Запишем в него, например:
ping -c 4 ya.ru
Теперь если мы откроем в веб-браузере адрес вида сайт.ru/test2.php, то мы увидим результат выполнения скрипта test.sh.
Проверка хостинга
Для выполнения аудита хостинга можно воспользоваться, например, программой LinEnum.
Эта программа предназначена для проверки многопользовательских систем на предмет неправильной настройки и возможности повышения привилегий. Она полностью написана на Bash – т.е. отлично подходит для запуска на виртуальном хостинге.
Программа состоит из одного единственного файла и для её работы не требуются зависимости. Скачайте этот файл: https://raw.githubusercontent.com/rebootuser/LinEnum/master/LinEnum.sh и загрузите себе на хостинг.
Запустите с помощью test2.php, указав правильный путь до файла, также используйте ключ -t.
Мой пример (у вас будет другой абсолютный путь до скрипта):
<?php error_reporting('ALL'); $cmd = 'bash /home/p/pentest2ru/pentest2.ru/LinEnum.sh -t 2>&1'; echo '<pre>'; passthru($cmd); echo '</pre>';
Для запуска скрипта вновь откройте в браузере ссылку вида сайт.ru/test2.php
Когда скрипт завершит свою работу, будет выведен большой отчёт.
Не нарушает ли LinEnum условия пользования хостингом?
В отличие от некоторых других инструментов, которые ищут подходящие эксплойты и также пытаются их скомпилировать и выполнить на целевой системе, эта программа полностью безобидная. Тем не менее, она оставляет следы своего применения, например, в истории команд Bash.
Это скриншоты использования ресурсов системы на хостинг аккаунтах, где я опробовал скрипт, видно, что активность по аудиту хостинга осталась даже здесь:
И тем более её заметят специализированные инструменты для наблюдения за подозрительной пользовательской активностью. Поэтому если у вас есть сомнения, не используйте описанные способы на вашем рабочем хостинг-аккаунте. Я вас предупредил!
Анализ результатов LinEnum
Чтобы понять результаты проверки хостинга, нужно иметь некоторые представления об операционной системе Linux.
Права доступа к файлам в Linux
Вы увидите, что папки (в Linux они называются директориями) и файлы выводятся примерно в следующем виде:
drwx------ 3 pentest2ru notcustomer 4096 Jul 9 07:01 . drwx------ 5 pentest2ru notcustomer 4096 Jul 7 21:17 .. -rw-r--r-- 1 pentest2ru notcustomer 34 Jul 7 21:46 1.sh drwx------ 2 pentest2ru notcustomer 4096 Jul 7 20:19 cgi-bin -rw------- 1 pentest2ru notcustomer 35 Jul 7 20:19 .htaccess -rw------- 1 pentest2ru notcustomer 1055 Jul 7 20:19 index.html -rw-r--r-- 1 pentest2ru notcustomer 205 Jul 7 20:37 i.php -rw------- 1 pentest2ru notcustomer 44413 Jul 7 20:30 LinEnum.sh -rw-r--r-- 1 pentest2ru notcustomer 100 Jul 9 07:01 test2.php -rw------- 1 pentest2ru notcustomer 909 Jul 8 18:59 test.php
Первая часть (например, drwx------) это информациях о правах доступа. Далее (например, pentest2ru) – это имя пользователя владельца файла, затем (например, notcustomer) это имя группы. Затем идёт дата, время и название файла.
Для каждого файла в Linux можно установить разные права доступа для:
- владельца
- группы
- всех
Рассмотрим строки
- drwx------
- -rw-------
- lrwxrwxrwx
Самый первый символ (d, l или -) говорит о типе файла (в Linux вообще всё является файлами). Если это d – значит это директория (папка). Если это l – значит это символьная ссылка, и если это - (прочерк), значит это самый обычный файл.
Затем идут девять символов. Первые три показывают права доступа к файлу владельца, следующие три – права доступа у группы, и последние три – права доступа у всех.
Буква r означает наличие права на чтение, буква w – права на запись, буква x – права на выполнение. Прочерк означает отсутствие данного разрешения.
Пример -rw-r--r--
Самый первый символ - (прочерк) говорит о том, что это обычный файл. Затем идут символы rw-. Эта группа показывает права владельца файла. В данном случае у владельца есть право на чтение файла и его запись, но нет права на его выполнение. Следующие три символа r-- означают, что у группы есть права на чтение файла, но нет прав на его запись и выполнение. Последние три символа (такие же r--) и означают такие же права (разрешение чтения, но запрет на запись и выполнение) для всех.
Ещё пример: drwxr-xr-x
Эта строка означает, что перед нами директория (d), следующие три символа (rwx) говорят о том, что владелец может читать и записывать этот файл. Буква x для директорий означает возможность зайти в неё, например, с помощью программы cd. Следующие символы (r-x) говорят о том, что члены группы могут прочитать содержимое и зайти в эту папку, но не могут записать что-либо в неё. Последние три символа (r-x) говорят о том, что кто-угодно может также прочитать содержимое папки и зайти в неё, но не может ничего туда записать.
Доступ к чужим файлам на хостинге
К примеру, мы в содержимом файла /etc/passwd с помощью LinEnum (или просто выполнив команду cat) увидели там следующее:
cronosgoru:x:1074:700::/home/c/cronosgoru:/usr/bin/scponly oceanzayru:x:1075:701::/home/o/oceanzayru:/usr/bin/scponly yourissite:x:1076:701::/home/y/yourissite:/usr/bin/scponly bvshramkog3:x:1077:700::/home/b/bvshramkog3:/bin/bash dsfgfdmail:x:1078:701::/home/d/dsfgfdmail:/usr/bin/scponly leaderagru2:x:1079:700::/home/l/leaderagru2:/usr/bin/scponly masixbetru:x:1080:700::/home/m/masixbetru:/usr/bin/scponly pchelka222:x:1081:700::/home/p/pchelka222:/usr/bin/scponly split93com2:x:1082:700::/home/s/split93com2:/usr/bin/scponly anarimwapm:x:1083:701::/home/a/anarimwapm:/usr/bin/scponly sitethemru5:x:1084:700::/home/s/sitethemru5:/usr/bin/scponly
Можно понять, что папки /home/c/cronosgoru, /home/o/oceanzayru и так далее – это каталоги пользователей, где хранятся сайты. Если мы можем посмотреть их содержимое:
ls -l /home/o/oceanzayru
а тем более содержимое файлов сайта (например, файла wp-config.php, в котором WordPress в открытом виде хранит пароль MySQL), то это означает у хостинга очень большие проблемы в плане обеспечения безопасности клиентов и вам на таком хостинге делать нечего (кстати, о том, как сбросить пароль WordPress имея доступ к базе данных или файловой системе, можно почитать здесь).
Другие проблемы безопасности хостинга
Просматривать файлы других пользователей это не единственная возможная проблем хостинга. Существует множество разных вариантов неправильной конфигурации, которые могут приводить к компрометации сервера. Но это более глубокие вопросы, которые требуют понимания работы ОС Linux, различий дистрибутивов, особенностей установленного программного обеспечения и т.д.
Т.е. невозможно рассмотреть все варианты неправильной настройки сервера в одной статье – дальнейшее исследование зависит от вашей подготовленности.
Шпаргалка по сбору информации о локальной системе и повышению привилегий
Автор LinEnum собрал много команд, которые могут стать началом в Local Linux Enumeration. Ссылка на оригинал: https://www.rebootuser.com/?p=1623
Информация о ядре, операционной системе и устройствах:
Команда | Результат |
uname -a
|
Печатает всю доступную информацию о системе |
uname -r
|
Выпуск ядра |
uname -n
|
Имя хоста системы |
hostname
|
Как предыдущее |
uname -m
|
Архитектура ядра Linux (32 или 64 бита) |
cat /proc/version
|
Информация о ядре |
cat /etc/*-release
|
Информация о дистрибутиве |
cat /etc/issue
|
Как предыдущее |
cat /proc/cpuinfo
|
Информация о ЦПУ |
df -a
|
Информация о файловой системе |
Пользователи и группы:
Команда | Результат |
cat /etc/passwd
|
Список всех пользователей системы |
cat /etc/group
|
Список всех групп системы |
for i in $(cat /etc/passwd 2>/dev/null| cut -d":" -f1 2>/dev/null);do id $i;done 2>/dev/null
|
Список всех uid и соответствующих членов группы |
cat /etc/shadow
|
Показать хеши всех пользователей – Привилегированная команда |
grep -v -E "^#" /etc/passwd | awk -F: '$3 == 0 { print $1}'
|
Список всех аккаунтов суперпользователей |
finger
|
Пользователи, в настоящее время подключённые к системе |
pinky
|
Как предыдущее |
users
|
Как предыдущее |
who -a
|
Как предыдущее |
w
|
Кто в настоящее время выполнил вход и что они делают |
last
|
Список последних зашедших пользователей |
lastlog
|
Информация о том, когда все пользователи заходили |
lastlog –u %username%
|
Информация о том, когда заходил определённый пользователь |
lastlog |grep -v "Never"
|
Полный список ранее заходивших пользователей |
Информация о пользователях и привилегиях:
Команда | Результат |
whoami
|
Показ имени пользователя текущего юзера |
id
|
Информация о текущем пользователе |
cat /etc/sudoers
|
У кого есть привилегии root – Привилегированная команда |
sudo -l
|
Может ли текущий пользователь делать что-нибудь как root |
sudo -l 2>/dev/null | grep -w 'nmap|perl|'awk'|'find'|'bash'|'sh'|'man'|'more'|'less'|'vi'|'vim'|'nc'|'netcat'|python|ruby|lua|irb' | xargs -r ls -la 2>/dev/null
|
Может ли текущий пользователь запускать какие либо ‘интересные’ бинарники как root и если да, то показать бинарные разрешения |
Информация о рабочем окружении:
Команда | Результат |
env
|
Показать переменные среды |
set
|
Показать переменные и функции среды |
echo $PATH
|
Информация о путях (Path) |
history
|
Показать историю команд текущего пользователя |
pwd
|
Таписать текущую рабочую директорию, т.е. в какой папке сейчас находимся |
cat /etc/profile
|
Показать стандартные системные переменные окружения |
cat /etc/shells
|
Показать доступные оболочки |
Интересные файлы:
Команда | Результат |
find / -perm -4000 -type f 2>/dev/null
|
Найти SUID файлы |
find / -uid 0 -perm -4000 -type f 2>/dev/null
|
Найти SUID файлы принадлежащие root |
find / -perm -2000 -type f 2>/dev/null
|
Найти GUID файлы |
find / -perm -2 -type f 2>/dev/null
|
Найти файлы, в которые может записывать кто-угодно |
find / ! -path "*/proc/*" -perm -2 -type f -print 2>/dev/null
|
Найти файлы, в которые может записывать кто-угодно за исключением тех, которые в /proc |
find / -perm -2 -type d 2>/dev/null
|
Найти директории, в которые может записывать кто-угодно |
find /home –name *.rhosts -print 2>/dev/null
|
Найти конфигурационные файлы rhost |
find /home -iname *.plan -exec ls -la {} ; -exec cat {} 2>/dev/null ;
|
Найти *.plan файлы, вывести права доступа и содержимое (cat) |
find /etc -iname hosts.equiv -exec ls -la {} 2>/dev/null ; -exec cat {} 2>/dev/null ;
|
Найти hosts.equiv, вывести права доступа и содержимое (cat) |
ls -ahlR /root/
|
Посмотреть, имеете ли вы доступ к другим пользовательским директориям для поиска интересных файлов |
cat ~/.bash_history
|
Показать историю команд текущего пользователя |
ls -la ~/.*_history
|
Показать различные файлы истории текущего пользователя |
ls -la /root/.*_history
|
Можем ли мы прочитать файлы истории рута |
ls -la ~/.ssh/
|
Проверка интересных ssh файлов в текущей пользовательской директории |
find / -name "id_dsa*" -o -name "id_rsa*" -o -name "known_hosts" -o -name "authorized_hosts" -o -name "authorized_keys" 2>/dev/null |xargs -r ls -la
|
Поиск информации о SSH ключах/хосте |
ls -la /usr/sbin/in.*
|
Проверка конфигурации служб inetd |
grep -l -i pass /var/log/*.log 2>/dev/null
|
Поиск в файлах журналов ключевых слов (в этом примере ищется ‘pass’) и показать совпадения |
find /var/log -type f -exec ls -la {} ; 2>/dev/null
|
Список файлов в определённой директории (/var/log) |
find /var/log -name *.log -type f -exec ls -la {} ; 2>/dev/null
|
Список .log файлов в определённой директории (/var/log) |
find /etc/ -maxdepth 1 -name *.conf -type f -exec ls -la {} ; 2>/dev/null
|
Список .conf файлов в /etc (рекурсивно на 1 уровень) |
ls -la /etc/*.conf
|
Как предыдущее |
find / -maxdepth 4 -name *.conf -type f -exec grep -Hn password {} ; 2>/dev/null
|
Поиск .conf файлов (рекурсивно на 4 уровня) и вывод номеров строк, где встречается слово ‘password’ |
lsof -i -n
|
Список открытых файлов (вывод может зависить от прав аккаунта) |
head /var/mail/root
|
Можем ли мы читать почту root |
Информация о службах:
Команда | Результат |
ps aux | grep root
|
Просмотр служб, запущенных от root |
ps aux | awk '{print $11}'|xargs -r ls -la 2>/dev/null |awk '!x[$0]++'
|
Поиск бинарника процесса и разрешений |
cat /etc/inetd.conf
|
Список процессов, управляемых inetd |
cat /etc/xinetd.conf
|
Как предыдущее, но для xinetd |
cat /etc/xinetd.conf 2>/dev/null | awk '{print $7}' |xargs -r ls -la 2>/dev/null
|
Очень ‘грубая’ команда для извлечения связанных бинарников из xinetd.conf и показаа разрешений для каждого |
ls -la /etc/exports 2>/dev/null; cat /etc/exports 2>/dev/null
|
Разрешения и содержимое /etc/exports (NFS) |
Работы/задачи:
Команда | Результат |
crontab -l -u %username%
|
Показ расписания работ для указанного пользователя – Привилегированная команда |
ls -la /etc/cron*
|
Обзор расписания работ (часы, дни, месяцы и т.д.) |
ls -aRl /etc/cron* | awk '$1 ~ /w.$/' 2>/dev/null
|
Что ‘другие’ могут писать в директории /etc/cron* |
top
|
Список текущих задач |
Сеть, маршрутизация, коммуникации:
Команда | Результат |
ip a
|
Показать все сетевые интерфейсы и их настройки |
ip -s a
|
Показать статистику использования трафика по каждому сетевому интерфейсу |
/sbin/ifconfig -a
|
Список всех сетевых интерфейсов |
cat /etc/network/interfaces
|
Как предыдущее |
arp -a
|
Показать ARP взаимодействия |
route
|
Показать информацию о маршруте |
ip route show
|
Показать все маршруты |
ip route list default
|
Показать маршрут по умолчанию |
cat /etc/resolv.conf
|
Показать адрес используемого DNS сервера |
netstat -antp
|
Список всех TCP сокетов и связанных PID (-p Привилегированная команда) |
netstat -anup
|
Список всех UDP сокетов и связанных PID (-p Привилегированная команда) |
ss -lntup
|
Показать прослушивающие TCP и UDP сокеты, а также связанные с ними программы |
iptables -L
|
Список правил файервола – Привилегированная команда |
cat /etc/services
|
Просмотр сопоставлений номеров портов/служб |
Установленные программы:
Команда | Результат |
dpkg -l
|
Установленные пакеты (Debian) |
rpm -qa
|
Установленные пакеты (Red Hat) |
sudo -V
|
Версия sudo – есть ли для неё эксплойт? |
httpd -v
|
Версия Apache |
httpd -M
|
Список модулей Apache |
httpd -S
|
Список всех загруженных настроек и обработанных виртуальных хостов |
httpd -t -D DUMP_INCLUDES
|
Все используемые файлы конфигурации |
apache2 -v
|
Версия Apache |
apache2ctl (или apachectl) -M
|
Список модулей Apache |
apache2 -S
|
Список всех загруженных настроек и обработанных виртуальных хостов |
apache2 -t -D DUMP_INCLUDES
|
Все используемые файлы конфигурации |
mysql --version
|
Подробносоти об установленной версии MYSQL |
psql -V
|
Подробносоти об установленной версии Postgres |
perl -v
|
Подробносоти об установленной версии Perl |
java -version
|
Подробносоти об установленной версии Java |
python --version
|
Подробносоти об установленной версии Python |
ruby -v
|
Подробносоти об установленной версии Ruby |
find / -name %program_name% 2>/dev/null (к примеру nc, netcat, wget, nmap и другие)
|
Поиск ‘полезных’ программ (netcat, wget и т.д.) - имена программы нужно ввести самому |
which %program_name% (к примеру nc, netcat, wget, nmap и другие)
|
Как предыдущее |
dpkg --list 2>/dev/null| grep compiler |grep -v decompiler 2>/dev/null && yum list installed 'gcc*' 2>/dev/null| grep gcc 2>/dev/null
|
Список доступных компиляторов |
cat /etc/apache2/envvars 2>/dev/null |grep -i 'user|group' |awk '{sub(/.*export /,"")}1'
|
Под каким аккаунтом запущен Apache |
Common Shell Escape Sequences:
Команда | Программа(ы) |
:!bash
|
vi, vim |
:set shell=/bin/bash :shell
|
vi, vim |
!bash
|
man, more, less |
find / -exec /usr/bin/awk 'BEGIN {system("/bin/bash")}' ;
|
find |
awk 'BEGIN {system("/bin/bash")}'
|
awk |
--interactive
|
nmap |
echo "os.execute('/bin/sh')" > exploit.nse
|
nmap |
perl -e 'exec "/bin/bash";'
|
Perl |
Надёжный хостинг
Если вы можете просматривать содержимое папок других пользователей – то сразу пакуйте свой сайт в чемоданы и переезжайте на другой хостинг!
Если вам нужен хороший хостинг, где первый встречный не будет лазить по вашим папкам и файлам, то рекомендую этот. Именно здесь я держу и HackWare.ru, и Kali.Tools и практически все свои сайты c 2009 (!) года (дата регистрации моего первого домена второго уровня).
Если вы не хотите селить свой сайт в «коммунальной квартире», то вы можете арендовать VPS – виртуальный частный сервер. Это не просто папка на сервере, а настоящая виртуальная машина, как те, которые вы можете создать в VirtualBox. На эту виртуальную машину вы можете установить любую операционную систему и настроить её на своё усмотрение. Кроме вас в этом сервере никого не будет (поэтому он и называется private, то есть «частный»). Очень недорогой но качественный VPS хостинг здесь. Я им пользуюсь уже несколько лет (у меня там сайт SuIP.biz) – я хостингом доволен.
Связанные статьи:
- Orc: программа для сбора информации из сервера Linux после проникновения (86.9%)
- Как пользоваться Kali Linux в WSL (подсистеме Windows для Linux): подборка лучших программ (ч. 1) (52.8%)
- Супер IP (suip.biz): Инструменты Kali Linux онлайн (50%)
- Как найти все пароли и ключи в большом количестве файлов (42.7%)
- Поиск субдоменов и построение графов структуры сети с Amass (41.4%)
- Как обновить Kali Linux (RANDOM - 13.1%)
env - Показать переменные окружения
set - Как предыдущее
Сдаётся есть "небольшие" отличия =)
env переменные среды
set переменные и функции среды.
Приветствую! Спасибо за верное уточнение – сейчас поправлю здесь в таблице. Я пронадеялся на автора подборки и не перепроверил.