Искате ли да получите суперпотребителски достъп до Linux система? Ето някои от най-добрите начини за изброяване на Linux машина.

Изброяването е един от ключовите етапи на теста за проникване. Това е първото нещо, което трябва да направите, когато сте компрометирали целева система като тестер за проникване. Въпреки че има изобилие от инструменти за автоматизиране на този процес, винаги се препоръчва ръчно да претърсите и да проверите отново системата за потенциални вектори на ескалация на привилегии.

Нека да разгледаме различните начини за ръчно изброяване на Linux система за ескалация на привилегии.

Защо изброяването е важно за ескалацията на привилегии?

Ескалацията на привилегии, известна още като Ескалация на привилегии (EOP) е основен компонент на тестването за проникване и методологията за тестване за проникване. Както подсказва името, това е етап, когато се опитвате да повишите привилегиите си до администратора или, в Linux системите, до root потребителя.

За да получите root привилегии, първо трябва да намерите уязвимост в системата. Тук влиза в действие изброяването. Въпреки че има инструменти за автоматизиране на изброяването, по-често ръчното и цялостно изброяване може да разкрие неправилни конфигурации и други уязвимости, които не се откриват от инструменти.

instagram viewer

1. Системно изброяване

Първото нещо, което трябва да направите, след като придобиете първоначална опора, е да научите за системата, до която сте установили достъп. Това ще ви помогне да оптимизирате вашите полезни натоварвания, за да съответстват на архитектурата и да осигурите максимална съвместимост на вашите полезни натоварвания с целевата система.

Например, ако имате 64-битов експлойт, ще трябва да го модифицирате, ако вашата целева система поддържа само 32-битов софтуер, тъй като има разлика между 32-битови и 64-битови системи.

Освен това познаването на версията на ядрото ще ви помогне да търсите експлойти в мрежата, в случай че установите, че версията е остаряла и уязвима за публичен експлойт. Ето някои команди, които ще ви помогнат да извлечете системна информация:

За да намерите системна информация като версия на ядрото, версия на операционната система и т.н., въведете:

cat /etc/cpuinfo 
uname -a

Ако искате да научите повече за CPU архитектурата, използвайте командата lscpu:

lscpu

2. Изброяване на процеси

Процесите са програми в процес на изпълнение. Познаване на пълния списък от процеси в Linux система, съчетано с няколко други тактики за изброяване споменати в това ръководство ще ви помогнат да идентифицирате потенциално уязвими процеси и да ги използвате за повишаване привилегия.

Например, ако намерите процес, работещ с root привилегии, може да сте в състояние да инжектирате произволен код в него, което може да доведе до успешно повишаване на привилегиите.

Можеш да използваш командата ps с помощ флагове за изброяване на всички процеси в системата:

ps доп

3. Изброяване на потребители и групи

Изброяването на потребители и групи е важно, за да разберете кой до коя част от системата има достъп. Знаейки това ви позволява да обхванете ефективно целите си и да изградите ефективна стратегия за атака. Освен това можете да създадете правилни съпоставки и да разберете в дълбочина ролите и привилегиите на всеки акаунт.

Наличието на видимост на привилегированите акаунти ви позволява да изпробвате известни комбинации потребителско име-парола. Можете да отпечатате съдържанието на /etc/passwd и /etc/group файлове за достъп до списъка с потребители. Като алтернатива можете също да използвате командата getent.

Да се вземете списъка с потребители на Linux:

getent passwd

За да получите списъка с групи:

група getent

4. Проучване за чувствителни файлове

Чувствителни файлове като /etc/passwd и /etc/shadow потенциално може да изтече много информация. от /etc/shadow можете да намерите хешовете на паролата на потребителите и да се опитате да ги разбиете с инструмент за разбиване на хешове като Hashcat или John the Ripper.

Има и /etc/sudoers файл, който, ако можете да го редактирате по някакъв начин, ще позволи промяна на разрешенията на sudo за потребители и групи.

5. Проверка на разрешенията на sudo

Правилното управление на разрешенията на sudo е от решаващо значение за безопасността на Linux система. Анализирането на разрешенията на sudo ще ви даде представа за потенциални вектори за ескалация на привилегии. Ако има неправилни конфигурации, като някои програми имат тревожно ниво на привилегия, може да сте в състояние да ги използвате, за да получите root достъп.

Това е само пример за много пътища за атака, които могат да се отворят, след като имате яснота относно разрешенията на sudo в системата Linux. Друг пример би бил злоупотребата с механизма за предварително зареждане на библиотека LD_PRELOAD, който можете да изброите, като разгледате разрешенията на sudo.

sudo -l

6. Намиране на експлойти на ядрото на Linux

Експлойтите на ядрото на Linux са смъртоносни, защото атакуват ядрото на операционната система, работеща на компрометираната система. С критична грешка в ядрото ще можете да правите почти всичко със системата.

За да намерите експлойти на ядрото, първо разберете версията на ядрото и след това, като използвате инструмент като searchsploit или, с помощта на Google Dorks, намерете подходящ експлойт, засягащ точната версия на ядрото, работещо в системата.

7. Използване на двоични файлове SUID

SUID е съкращението за Set Owner User ID при изпълнение. Това е специален тип разрешение за файл, което, когато е зададено, изпълнява програма с привилегиите на своя собственик.

Ако една програма е създадена от root потребителя и битът SUID е зададен за нея, програмата, когато се изпълни, ще притежава root права. Как може да се злоупотребява със SUID? Просто е.

Избройте всички двоични файлове със зададен бит SUID, прегледайте списъка, намерете двоичен файл, за който имате достъп за запис, и редактирайте неговия източник, за да добавите своя полезен товар. Можете да използвате командата find, за да търсите SUID бинарни файлове и да пренасочите стандартния изход към /dev/null:

намери / -perm -4000 2>/dev/null

8. Отвличане на библиотеки

Понякога може да има програми, работещи в системата, които използват библиотеки, които не са защитени от запис. При такъв сценарий можете лесно да презапишете използваната библиотека и да поемете контрола върху функционалността на програмата.

Ако имате късмет и намерите програма, работеща като root, можете да отвлечете библиотеката, от която зависи, и потенциално да получите достъп до root shell.

9. Проучване и отвличане на променливи на средата

Променливите на средата са специални типове променливи, които до известна степен определят как функционират системата и програмите. Важна променлива на средата е променливата PATH.

Той съхранява местоположението на всички изпълними двоични файлове в системата. Можете да манипулирате променливата PATH и да я свържете с други уязвимости, като отвличане на библиотека, за да получите root достъп.

Да предположим например, че има изпълним файл със зададен SUID бит. За да функционира правилно, той извиква двоичен файл, без да дефинира пълния му път.

Можете да се възползвате от това, като създадете дубликат, злонамерена версия на двоичния файл и актуализирате променливата PATH с местоположението на злонамереният двоичен файл, така че когато SUID изпълнимият файл се стартира, вашият злонамерен двоичен файл ще се изпълнява като root и вие ще можете да създадете root shell.

Освен това има и добър шанс за намиране на секретни ключове и пароли, като просто прегледате променливите на средата. Можете да отпечатате всички променливи на средата с помощта на командата env:

околна среда

10. Намерете артефакти в Bash History

Често историята на текущия потребител няма да бъде изтрита. Можете да злоупотребите с това, за да получите потенциален достъп до чувствителна информация или да изпълните отново предишни команди с модифицирани параметри.

Въпреки че това вероятно няма да доведе до ескалация на привилегии, това е добър източник на изтичане на информация, за да ви даде яснота какво обикновено прави потребителят в системата.

11. Отвличане на уязвими задания на Cron

Задачите на Cron са вградена и изключително находчива функция на Linux. Ако сте мигрирали от Windows, cron задача може да бъде директно сравнена с планирана задача в Windows.

Той се изпълнява периодично и изпълнява команди. Както времето, когато ще работи, така и командите, които ще изпълнява, са предварително определени от потребителя. Понякога може да откриете, че няколко задания на cron са уязвими на атаки като инжектиране на заместващи символи или могат да се записват от потребителя, с който сте влезли.

Можете да злоупотребите с тези уязвимости, за да получите root достъп до системата. За да използвате задача на cron, първо трябва да намерите уязвима. Ето командите за изброяване на изпълнявани в момента задания на cron и други подходящи данни:

ls /etc/cron.d/
crontab -l -u

12. Изброяване на остарели пакети

Когато сте установили достъп до система, една от първите стъпки, които трябва да предприемете, е да изброите всички инсталирани софтуерни пакети и да съпоставите инсталираните им версии с последната им версия.

Има възможност да е инсталиран някакъв неясен пакет, който може да не се използва много, но е критично уязвим за атака за повишаване на привилегиите. След това можете да използвате този пакет, за да получите root достъп.

Използвайте командата dpkg с етикет за списък с инсталирани пакети на базирани на Debian и Ubuntu системи:

dpkg -l

За системи RHEL/CentOS/Fedora използвайте тази команда за списък на инсталираните пакети:

обороти в минута -qa 

Сега знаете как да изброите ръчно Linux за ескалация на привилегии

Ескалацията на привилегиите зависи единствено от изброяването. Колкото повече информация имате достъп, толкова по-добре ще можете да планирате стратегиите си за атака.

Ефективното изброяване е от ключово значение за установяване на опора, ескалиране на привилегии и успешно запазване на вашата целева система. Въпреки че ръчното правене на нещата помага, някои от задачите могат да бъдат присвоени на автоматизирани инструменти, за да спестите време и усилия. Трябва да знаете за най-добрите инструменти за сигурност, за да сканирате система за уязвимости.