Close

Аудит Linux-сервера очима хакера

Коли я вперше заходжу на невідомий мені сервер, то першим чином проводжу експрес-аудит, який включає базовий збір технічних, апаратних, файлових та інших характеристик. Сюди входять: перевірка логів, накопичувачів, енумерація користувачів, аналіз програмного і апаратного забезпечення, мережевих служб та інтерфейсів. Я підібрав список консольних команд, якими часто послуговуються хакери на етапі дослідження та підготовки до експлуатації Linux. Також ці команди допоможуть при адміністрування і обслуговуванні системи.

Зміст статті

Аналіз операційної системи

uname -a —  комплексна інформація про операційну систему.
uname -r — виводить лише версію ядра.
uname -s — виводить назву операційної системи.
uname -v — виводить версію операційної системи.
uname -o — виводить ідентифікатор операційної системи.
cat /etc/os-release —  найповніша і найточніше інформація про операційну систему.
cat /etc/*release* —  інформація про збірку ОС.

Аналіз технічних і апаратних характеристик

hostnamectl— повна інформація про сервер (комп’ютер): ім’я хосту, тип сервера, віртуалізація, операційна система, версія ядра, архітектура.
uptime— час безперервної роботи сервера.
free — статистика використання оперативної пам’яті.
vmstat— статистика продуктивності сервера.
cat /proc/cpu info | grep processor – вивід кількості ядер процесора.
cat /proc/cpuinfo— детальна інформація по процесору (CPU).
cat /proc/meminfo — детальна інформація по оперативній пам’яті.
cat /proc/loadavg— статистика середнього навантаження на систему у вигляді 5-ти значень (load average).
cat /proc/cmdline — інформація по інсталяційному пакету Linux (образу).
cat /proc/version — версія ядра ОС.
cat /proc/<PID>/maps – відображає області пам’яті для конкретного PID-процесу та їхні права доступу.
cat /proc/<PID>/smaps – показує споживання пам’яті для кожного процесу.
cat /proc/<PID>/smaps_rollup – модифікована версія smaps.
cat /proc/<PID>/stack–  трасування викликів функцій у стеку ядра вказаного процесу.
cat /proc/<PID>/stat – інформація про стан процесу.
cat /proc/<PID>/statm – інформація про використання пам’яті.
cat /proc/<PID>/status – інформація зібрана з двох попередніх команд, але у більш структурованому вигляді.
cat /proc/<PID>/syscall– інформація по системному виклику для заданого процесу.
cat /proc/<PID>/task – це каталог, який містить один підкаталог для кожного потоку в процесі.
cat /proc/<PID>/timers– список таймерів POSIX для конкретного процесу.
cat /proc/<PID>/timerslack_ns– показує «поточне» значення таймера процесу, виражене в наносекундах.
cat /proc/<PID>/schedstat – відображає 3 значення в наносекундах: час, витрачений на ЦП; Час, витрачений на очікування в черзі виконання; timeslices.
cat /proc/<PID>/wchan– cимволічне ім’я, що відповідає положенню в ядрі, де процес перебуває в режимі сну.
cat /proc/<PID>/sessionid – ідентифікатор сеансу.
cat /proc/<PID>/setgroups – показує дозвіл на системний виклик (allow або deny).
cat /proc/<PID>/net/tcp/ – аналіз TCP-з’єднання по сокету TCPv4 за конкретним процесом.
cat /proc/<PID>/net/tcp6/ – те саме, тільки по сокету TCPv6.
dmidecode— інформація про BIOS і залізо (по DMI коду).
dmidecode -s system-manufacturer — назва виробника пристрою.
dmidecode -s system-product-name— назва продукту системи.
lscpu
 — технічна інформація по процесору (виробник, тип, розрядність, архітектура та ін.).
lshw— дуже детальна інформація про залізо.
sudo lshw -c video – інформація про технічні характеристики відеоплат.
lspci | grep -E "VGA|3D" – інформація про відеокарту.
lspci -k | grep -EA3 'VGA|3D|Display' – деталізована інформація про відеокарту.
hwinfo --gfxcard – перегляд розширених характеристик по графічним картам з допомогою утиліти hwinfo.
clinfo – інформація по пристроям з використанням бібліотеки OpenCL.
clinfo | grep -i "icd loader" – вивід версії OpenCL.
nvidia-detect – перевірка графічної карти Nvidia.
lspci -s 01:00.0 -v – технічна деталізація по графічній карті, замість 01:00.0 підставити значення отримане в nvidia-detect.
nvidia-smi – перевірка роботи відеокарти Nvidia.
sysctl -a — вивід списку параметрів ядра.
cat /etc/services — перелік сервісних служб системи.
ls -ls /etc/ | grep .conf — пошук файлів конфігурації у папці etc.

Аналіз системних процесів

top— показ запущених в системі процесів в реальному часі.
ps— швидкий показ статистики по процесах в системі.
ps -ef— показ запущених в системі процесів з детальною характеристикою.
ps -auxf— показ запущених в системі процесів з детальною характеристикою (2).
jobs— вивід запущених процесів.
crontab -l — переглянути список задач серверного планувальника завдань для активного користувача.
ls -al /etc/cron* — пошук усіх файлів планувальника завдань.
ps aux | grep root — пошук процесів, закріплених за користувачем root.
ps -eaf — перевірка запущених процесів.

Аналіз облікових записів (користувачів)

who— назва активного користувача і мінімальна статистика по ньому (останній вхід, IP адреса).
w — статистика навантаження на систему по користувачам.
id — інформація по правам користувача.
last — інформація про останні входи в систему.
lastlog — інформація про активність усіх облікових записів в системі.
cat /etc/group— перелік груп користувачі.
cat /etc/passwd— список користувачів системи з вказаними хешами, правами та приналежністю до груп.
cat /etc/shadow— список облікових записів системи з їх паролями.
tail /var/log/secure— вся інформація про авторизації користувачів системи.
cat /etc/sudoers — вивід списку користувачів з правами sudo для виконання команд від імені адміністратора.
find / -not -type l -perm -o+w — пошук файлів з правами запису для всіх користувачів.
sudo -l — аналіз параметрів sudo для активного користувача.

Аналіз системних журналів (логів) і подій

history— історія виконаних в системі команд
journalctl— цікавий журнал з точки зори безпеки, який проливає світло на все, що відбувалося в бекенді системи, зокрема спроби авторизації, час, IP-адреси
dmesg — вивід повідомлень ядра операційної системи
dmesg | tail — вивід останніх 10-ти повідомлень ядра операційної системи
tail /var/log/messages— вивід подій системного журналу
tail /var/log/cron— вивід виконаних подій в службі планувальника crond
nano /var/log/apache2/access.log— логи доступа до сайту, оброблених веб-сервером Apache
nano /var/log/apache2/error.log— логи помилок, оброблених веб-сервером Apache
find / -type f -name "*.log" | wc -l— пошук усіх log-файлів в системі
ls -alh /var/log

Аналіз файлової системи і накопичувачів (жорстких дисків)

df -T— статистика використання дискового простору (disk free)
df -h— статистика по дискових накопичувачах і їх наповненню
du -sh dir – статистика використання дискового простору за конкретною директорією
du --max-depth=1— інформація про використання дискового простору директоріями за вказаною глибиною вкладення (disk usage)
cat /etc/fstab — показ розмонтованих дискових накопичувачів
ncdu — утиліта з псевдографічним інтерфейсом для швидкого перегляду використання дискового простору у вигляді файлового навігатора.

Аналіз мережевих портів, інтерфейсів, пристроїв, обладнання

ifconfig— вивід інформації по мережевих пристроях.
netstat— вивід TCP/IP підключень.
netstat -tunap— ще один тип виводу TCP/IP підключень.
ss— вивід мережевої статистики.
iptables -L -n -v— вивід даних фаєрвола IPtables.
arp— вивід таблиць ARP.
route— вивід IP маршрутизації.
ip -s link— вивід мережевої статистики (інформація про передані пакети, помилки).
ethtool eth0— детальна інформація по заданому мережевому пристрої.
ip addr show — перелік IP-адрес мережевих інтерфейсів.
ip ro show — вивести інформацію по роутингу мережевих інтерфейсів.
cat /etc/resolv.conf — вивести вміст файлу конфігурації налаштування IP/DNS.
cat /etc/networks — вивід мережевих інтерфейсів.
grep 80 /etc/services — вивід сервісів, які працюють на портах, де зустрічається цифри 80.
cat /etc/hosts — вивід прив’язаних до сервера хостів.
ip a s — список активних мережевих інтерфейсів.

Аналіз програмних засобів, системних служб, репозиторіїв

rpm -qa
dpkg --list
dpkg --list | wc --lines
apt list
apt list --installed | grep -v "^Listing" | wc -l
yum list installed
yum repolist
yum repoinfo
snap list
ls -l /etc/yum.repos.d/
lsmod
ls -alh /usr/bin/
ls -alh /sbin/
systemctl

Додаткові ресурси і посилання

ПОДІЛИТИСЬ У СОЦМЕРЕЖАХ:

0 0 голосів
Рейтинг статті
Підписатися
Сповістити про
guest
0 Коментарі
Вбудовані Відгуки
Переглянути всі коментарі
0
Цікаво почути Вашу думку!x
Отримати комерційну пропозицію
Оформити заявку
Замовити консультацію

Заповніть, будь ласка, форму й наш спеціаліст зв’яжеться з Вами та надасть безкоштовну консультацію!

Замовити дзвінок

Вкажіть, будь ласка, контактний номер телефону. Наш менеджер миттєво зв’яжеться з Вами!