Ман реша ҳастам. Фаҳмидани афзоиши имтиёзҳои Linux OS

Ман семоҳаи аввали соли 2020-ро барои омодагӣ ба имтиҳони OSCP сарф кардам. Ҷустуҷӯи маълумот дар Google ва кӯшишҳои зиёди "кӯр" тамоми вақти холии маро мегирифт. Фахмидани механизмхои зиёд кардани имтиёзхо махсусан душвор шуд. Дар курси ПВК ба ин мавзуъ диккати калон дода мешавад, вале материалхои методй хамеша кифоя нестанд. Дар Интернет дастурҳои зиёде мавҷуданд, ки фармонҳои муфид доранд, аммо ман тарафдори он нестам, ки тавсияҳоро кӯр-кӯрона риоя кунед ва нафаҳмам, ки ин ба куҷо мебарад.

Ман мехостам бо шумо чизҳоеро нақл кунам, ки ҳангоми омодагӣ ва бомуваффақият супоридани имтиҳон омӯхтам (аз ҷумла рейдҳои даврии Hack The Box). Ман барои ҳар як маълумоте, ки ба ман дар роҳи бошуурона рафтан дар Try Harder кӯмак кард, миннатдории амиқ ҳис кардам, ҳоло вақти ман аст, ки ба ҷомеа баргардонам.

Ман мехоҳам ба шумо дастур оид ба густариши имтиёзҳо дар OS Linux диҳам, ки таҳлили векторҳои маъмултарин ва хусусиятҳои алоқамандро дар бар мегирад, ки ба шумо бешубҳа лозим аст. Аксар вақт худи механизмҳои баланд бардоштани имтиёзҳо хеле соддаанд, ҳангоми сохтор ва таҳлили иттилоот мушкилот ба миён меоянд. Аз ин рӯ, ман тасмим гирифтам, ки аз "сафари сайёҳӣ" оғоз кунам ва сипас ҳар як векторро дар мақолаи алоҳида баррасӣ кунам. Ман умедворам, ки ман вақти шуморо барои омӯзиши мавзӯъ сарфа мекунам.

Ман реша ҳастам. Фаҳмидани афзоиши имтиёзҳои Linux OS

Пас, чаро афзоиш додани имтиёз ҳатто дар соли 2020 имконпазир аст, агар усулҳо муддати тӯлонӣ маълум бошанд? Дарвоқеъ, агар корбар системаро дуруст идора кунад, дар ҳақиқат зиёд кардани имтиёзҳо дар он ғайриимкон хоҳад буд. Проблемаи асосии глобалие, ки чунин имкониятҳоро ба вуҷуд меорад конфигуратсияи бехатар. Мавҷудияти версияҳои кӯҳнаи нармафзори дорои осебпазирӣ дар система низ як ҳолати махсуси конфигуратсияи хатарнок мебошад.

Баланд бардоштани имтиёз тавассути конфигуратсияи ноамн

Пеш аз ҳама, биёед бо конфигуратсияи бехатар сарукор кунем. Биёед бо Мутахассисони IT аксар вақт дастурҳо ва захираҳоро ба монанди stackoverflow истифода мебаранд, ки бисёре аз онҳо дорои фармонҳо ва танзимоти хатарнок мебошанд. Мисоли равшани он аст хабарҳо ки коде, ки аз stackoverflow бештар нусхабардорӣ шудааст, дорои хато аст. Администратори ботаҷриба роҳро мебинад, аммо ин дар ҷаҳони идеалист. Ҳатто мутахассисони салоҳиятдор зиёд шудани кор қодир ба хатогиҳо. Тасаввур кунед, ки администратор ҳуҷҷатҳоро барои тендери навбатӣ омода ва тасдиқ мекунад ва ҳамзамон ба технологияи наве, ки дар семоҳаи оянда ҷорӣ карда мешавад, ва давра ба давра вазифаҳои дастгирии корбаронро ҳал мекунад. Ва он гоҳ ба ӯ супориш дода мешавад, ки ба зудӣ якчанд мошини маҷозӣ ва хидматрасониро дар онҳо паҳн кунад. Шумо чӣ фикр мекунед, эҳтимолияти он, ки администратор танҳо ҷаббиро пайхас намекунад? Он гоҳ мутахассисон иваз мешаванд, аммо асобагон боқӣ мемонанд, дар ҳоле ки ширкатҳо ҳамеша мекӯшанд хароҷотро, аз ҷумла хароҷоти мутахассисони IT, кам кунанд.

Шелли псевдо ва кулбрейк

Қабати системае, ки дар марҳилаи истеҳсолот ба даст оварда мешавад, аксар вақт маҳдуд аст, хусусан агар шумо онро тавассути ҳакерӣ ба корбари веб-сервер ба даст овардаед. Масалан, маҳдудиятҳои ҷилди метавонад шуморо аз истифодаи фармони sudo бо хато пешгирӣ кунанд:

sudo: no tty present and no askpass program specified

Пас аз гирифтани ҷабҳа, ман тавсия медиҳам, ки терминали мукаммал эҷод кунем, масалан бо Python.

python -c 'import pty;pty.spawn("/bin/bash")'

Шумо мепурсед: "Чаро ба ман ҳазор фармон лозим аст, агар ман метавонам якеро, масалан, барои интиқоли файлҳо истифода кунам?" Далели он аст, ки системаҳо ба таври гуногун танзим карда шудаанд, дар ҳости навбатии Python метавонад насб карда нашавад, аммо Perl дастрас аст. Маҳорат он аст, ки дар система бидуни асбобҳои шинос корҳои шиносро иҷро карда тавонед. Рӯйхати пурраи хусусиятҳоро пайдо кардан мумкин аст дар ин ҷо.

Як қабати имтиёзи паст метавонад бо истифода аз даст дастаҳо 1 и дастаҳо 2 (ҳайратовар ҳатто GIMP).

Намоиши таърихи фармон

Linux таърихи ҳамаи фармонҳои иҷрошударо дар файл ҷамъ меорад ~ / .bash_history. Агар сервер дар истифодаи фаъол бошад ва таърихи он тоза карда нашавад, имконияти хубе вуҷуд дорад, ки маълумоти эътимоднома дар ин файл пайдо шавад. Тоза кардани таърих комилан номувофиқ аст. Агар администратор маҷбур карда шавад, ки тавассути , фармонҳои даҳсатҳиро интихоб кунад, албатта, барои ӯ аз таърих даъват кардани ин фармонро аз нав ворид кардани он қулайтар хоҳад буд. Илова бар ин, бисёриҳо дар бораи ин "хак" намедонанд. Агар дар система снарядҳои алтернативӣ ба монанди Zsh ё Fish мавҷуд бошанд, онҳо таърихи худро доранд. Барои намоиш додани таърихи фармонҳо дар ҳама гуна ҷабҳа, танҳо таърихи фармонро нависед.

cat ~/.bash_history
cat ~/.mysql_history
cat ~/.nano_history
cat ~/.php_history
cat ~/.atftp_history

Хостинги муштарак мавҷуд аст, ки дар он сервер барои ҷойгиркунии якчанд сайтҳо истифода мешавад. Одатан, бо ин конфигуратсия, ҳар як манбаъ корбари худро бо феҳристи хонагии алоҳида ва мизбони виртуалӣ дорад. Ҳамин тавр, агар нодуруст танзим карда шуда бошад, шумо метавонед файли .bash_history-ро дар феҳристи решаи манбаи веб пайдо кунед.

Ҷустуҷӯи паролҳо дар системаи файлӣ ва ҳамлаҳо ба системаҳои ҳамсоя

Файлҳои конфигуратсия барои хидматҳои гуногун метавонанд аз ҷониби корбари кунунии шумо хонда шаванд. Дар онҳо шумо метавонед эътимодномаҳоро дар матни равшан пайдо кунед - паролҳо барои дастрасӣ ба пойгоҳи додаҳо ё хидматҳои марбут. Як гузарвожаро ҳам барои дастрасӣ ба пойгоҳи додаҳо ва ҳам барои иҷозат додан ба корбари реша (корманди маълумот) истифода бурдан мумкин аст.
Чунин мешавад, ки маълумоти дарёфтшуда ба хидматрасониҳои ҳостҳои дигар тааллуқ доранд. Рушди ҳамла ба инфрасохтор тавассути мизбони осебдида аз истисмори дигар ҳостҳо бадтар нест. Системаҳои ҳамсояро инчунин тавассути ҷустуҷӯи суроғаҳои IP дар системаи файлӣ пайдо кардан мумкин аст.

grep -lRi "password" /home /var/www /var/log 2>/dev/null | sort | uniq #Find string password (no cs) in those directories
grep -a -R -o '[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}' /var/log/ 2>/dev/null | sort -u | uniq #IPs inside logs

Агар мизбони осебдида дорои барномаи веби аз Интернет дастрас бошад, беҳтар аст, ки гузоришҳои онро аз ҷустуҷӯи суроғаҳои IP хориҷ кунед. Суроғаҳои корбарони захираҳо аз Интернет ба гумон аст, ки барои мо муфид бошанд, аммо суроғаҳои шабакаи дохилӣ (172.16.0.0/12, 192.168.0.0/16, 10.0.0.0/8) ва ба куҷо рафтани онҳо аз рӯи хулоса гузоришҳо, метавонанд шавқовар бошанд.

Судо

Фармони sudo ба корбар имкон медиҳад, ки фармонро дар заминаи реша бо пароли худ ё бидуни истифода аз он иҷро кунад. Бисёр амалиётҳо дар Linux имтиёзҳои решаро талаб мекунанд, аммо ҳамчун реша кор кардан таҷрибаи хеле бад ҳисобида мешавад. Ба ҷои ин, беҳтар аст, ки иҷозати интихобӣ барои иҷрои фармонҳо дар контексти реша истифода шавад. Аммо, бисёре аз абзорҳои Linux, аз ҷумла асбобҳои стандартӣ ба монанди vi, метавонанд барои баланд бардоштани имтиёзҳо бо роҳҳои қонунӣ истифода шаванд. Барои пайдо кардани роҳи дуруст, ман тавсия медиҳам, ки ҷустуҷӯ кунед дар ин ҷо.

Аввалин коре, ки пас аз дастрасӣ ба система анҷом дода мешавад, иҷро кардани фармони sudo -l мебошад. Он иҷозати истифодаи фармони sudo -ро нишон медиҳад. Агар корбар бидуни парол ба даст оварда шавад (ба мисли apache ё www-data), вектори густариши имтиёзи sudo аз эҳтимол дур нест. Ҳангоми истифодаи sudo, система паролро талаб мекунад. Истифодаи фармони passwd барои гузоштани парол низ кор намекунад, он пароли корбари ҷориро талаб мекунад. Аммо агар sudo ҳанӯз дастрас бошад, пас, дар асл, шумо бояд ҷустуҷӯ кунед:

  • ҳама гуна тарҷумонҳо, ҳар кас метавонад як қабатро тавлид кунад (PHP, Python, Perl);
  • ҳама муҳаррирони матнӣ (vim, vi, nano);
  • ҳама гуна тамошобин (кам, бештар);
  • ҳама гуна имкониятҳои кор бо системаи файлӣ (cp, mv);
  • асбобҳое, ки дар bash ба таври интерактивӣ ё ҳамчун фармони иҷрошаванда баромад мекунанд (awk, find, nmap, tcpdump, man, vi, vim, ansible).

Суид/Сгид

Дар Интернет дастурҳои зиёде мавҷуданд, ки барои сохтани ҳама фармонҳои suid/sgid маслиҳат медиҳанд, аммо мақолаи нодир дар бораи чӣ кор кардан бо ин барномаҳо маълумот медиҳад. Вариантҳои афзоиш додани имтиёзҳо, ки истифодаи истисморҳоро ба назар намегиранд, пайдо кардан мумкин аст дар ин ҷо. Инчунин, як қатор файлҳои иҷрошаванда барои версияи OS осебпазирии мушаххас доранд, барои мисол.

Дар ҷаҳони идеалӣ, шумо бояд ҳамаи бастаҳои насбшударо ҳадди аққал тавассути searchsploit иҷро кунед. Дар амал, ин бояд бо барномаҳои маъмултарин ба монанди sudo анҷом дода шавад. Он инчунин ҳамеша имкони истифода ва дастгирии таҳияи абзорҳои автоматикунонидашуда мебошад, ки аз нуқтаи назари густариши имтиёзҳо, иҷрошавандаҳои бо маҷмӯи битҳои suid/sgid ҷолибро таъкид мекунанд. Ман рӯйхати чунин асбобҳоро дар фасли дахлдори мақола медиҳам.

Скриптҳои навишташаванда аз ҷониби Cron ё Init дар контексти решавӣ идора карда мешаванд

Корҳои Cron метавонанд дар контексти корбарони гуногун, аз ҷумла реша кор кунанд. Агар дар cron вазифа бо истинод ба файли иҷрошаванда мавҷуд бошад ва он барои шумо навиштан дастрас бошад, шумо метавонед онро ба осонӣ бо вазифаи зараровар иваз кунед ва васеъшавии имтиёзҳоро иҷро кунед. Дар айни замон, ба таври нобаёнӣ, файлҳои дорои вазифаҳои cron барои хондани ҳама корбар дастрасанд.

ls -la /etc/cron.d  # show cron jobs 

Ҳолати init низ ҳамин тавр аст. Фарқият дар он аст, ки вазифаҳо дар cron давра ба давра иҷро мешаванд ва дар init - ҳангоми оғози система. Барои кор, шумо бояд системаро бозоғоз кунед, дар ҳоле ки баъзе хидматҳо метавонанд баланд нашаванд (агар онҳо дар боркунии автоматӣ сабт нашуда бошанд).

ls -la /etc/init.d/  # show init scripts 

Шумо инчунин метавонед файлҳоро ҷустуҷӯ кунед, ки аз ҷониби ҳама корбар навишта мешаванд.

find / -perm -2 -type f 2>/dev/null # find world writable files

Усули хеле маъруф аст, маъмурони ботаҷрибаи система фармони chmodро бодиққат истифода мебаранд. Бо вуҷуди ин, дар Интернет, аксарияти дастурҳо муқаррар кардани ҳуқуқҳои ҳадди аксарро тавсиф мекунанд. Муносибати "танҳо онро кор кунед" -и маъмурони бетаҷрибаи система имкон медиҳад, ки имтиёзҳоро васеътар кунанд. Агар имконпазир бошад, беҳтар аст, ки дар таърихи фармон барои истифодаи хатарноки chmod назар кунед.

chmod +w /path 
chmod 777 /path

Ба даст овардани дастрасии ниҳонӣ барои корбарони дигар

Мо ба рӯйхати корбарон дар /etc/passwd назар мекунем. Мо ба онхое, ки снаряд доранд, диккат медихем. Шумо метавонед ин корбаронро бераҳмона таҳқир кунед - мумкин аст, ки тавассути корбари натиҷавӣ шумо дар ниҳоят имтиёзҳоро зиёд карда тавонед.

Барои беҳтар кардани амният, ман тавсия медиҳам, ки ҳамеша ба принсипи имтиёзҳои камтарин риоя кунед. Инчунин барои тафтиш кардани конфигуратсияҳои ноамнонае, ки пас аз бартараф кардани мушкилот боқӣ монда метавонанд, вақт ҷудо кардан маъно дорад - ин "вазифаи техникии" мудири система аст.

Рамзи худнависӣ

Зарур аст, ки ба файлҳои иҷрошаванда дар феҳристи хонагии корбар ва веб-сервер бодиққат назар андозед (/var/www/, агар тартиби дигаре пешбинӣ нашуда бошад). Ин файлҳо метавонанд як ҳалли комилан ноамн бошанд ва дорои асобағолҳои бебаҳо бошанд. Албатта, агар шумо дар феҳристи веб-сервери худ ягон чаҳорчӯба дошта бошед, ҷустуҷӯи рӯзи сифр дар он ҳамчун як қисми пентест маъно надорад, аммо тавсия дода мешавад, ки тағиротҳо, плагинҳо ва ҷузъҳои фармоиширо пайдо ва омӯзед.

Барои баланд бардоштани амният, беҳтар аст, ки аз истифодаи эътимоднома дар скриптҳои худнависӣ ва инчунин функсияҳои эҳтимолан хатарнок, ба монанди хондани /etc/shadow ё коркарди id_rsa, агар имконпазир бошад, худдорӣ кунед.

Баланд бардоштани имтиёз тавассути истисмори осебпазирӣ

Пеш аз кӯшиши баланд бардоштани имтиёзҳо тавассути истисмор, фаҳмидани он муҳим аст интиқоли файлҳо ба мизбони мақсаднок. Илова ба асбобҳои муқаррарӣ ба монанди ssh, ftp, http (wget, curl), як чизи пурра вуҷуд дорад. "боғи ҳайвонот" -и имкониятҳо.

Барои беҳтар кардани амнияти системаи шумо, онро мунтазам ба охирин навсозӣ кунед устувор версияҳо ва инчунин кӯшиш кунед, ки тақсимоти барои Enterprise таҳияшударо истифода баред. Дар акси ҳол, хеле кам, аммо ҳолатҳое ҳастанд, ки такмилдиҳии мувофиқ системаро корношоям мекунад.

Истифодаи хидматҳо, ки дар контексти корбари решавӣ кор мекунанд

Баъзе хидматҳои Linux ҳамчун решаи имтиёзноки корбар кор мекунанд. Онҳоро бо истифода аз ps aux | пайдо кардан мумкин аст решаи grep. Дар ин ҳолат, хидмат метавонад дар Интернет эълон карда нашавад ва ба таври маҳаллӣ дастрас бошад. Агар он истисморҳои оммавӣ дошта бошад, онҳоро метавон бехатар истифода бурд: суқути хидмат дар ҳолати нокомӣ нисбат ба садамаи OS хеле муҳимтар аст.

ps -aux | grep root # Linux

Ҳолати муваффақтаринро метавон амалиёти хидматрасонии ҳакерӣ дар заминаи корбари реша баррасӣ кард. Фаъолияти хидмати SMB ба СИСТЕМА дастрасии имтиёзнокро дар системаҳои Windows медиҳад (масалан, тавассути ms17-010). Аммо, ин дар системаҳои Linux маъмул нест, аз ин рӯ шумо метавонед вақти зиёдро барои баланд бардоштани имтиёз сарф кунед.

Истифодаи осебпазирии ядрои Linux

Ин роҳи охирин аст. Амали номуваффақ метавонад ба суқути система оварда расонад ва дар сурати бозсозӣ, баъзе хидматҳо (аз ҷумла хидматҳое, ки тавассути онҳо ба даст овардани қабати аслӣ имконпазир буд) наметавонанд баланд шаванд. Чунин мешавад, ки администратор истифодаи фармони systemctl enable-ро фаромӯш кардааст. Илова бар ин, он боиси норозигии зиёд аз кори шумо мегардад, агар истисмор дар бораи мувофиқа карда нашавад.
Агар шумо тасмим гиред, ки манбаъҳоро аз exploitdb истифода баред, ҳатман шарҳҳоро дар оғози скрипт хонед. Дар байни чизҳои дигар, он одатан мегӯяд, ки чӣ гуна ин истисморро дуруст тартиб додан лозим аст. Агар шумо аз ҳад танбал будед ё ба сабаби мӯҳлати муқарраршуда "дирӯз" лозим будед, шумо метавонед анборҳоро бо истисморҳои аллакай тартиб додашуда ҷустуҷӯ кунед, барои мисол. Бо вуҷуди ин, бояд фаҳмид, ки дар ин ҳолат шумо як хукро ба даст меоред. Аз тарафи дигар, агар барномасоз то байт фаҳмид, ки компютер чӣ гуна кор мекунад ва нармафзоре, ки онро истифода мебарад, дар тамоми умраш як сатри код наменавишт.

cat /proc/version
uname -a
searchsploit "Linux Kernel" 

Metasploit

Барои дастгир кардан ва идора кардани пайвастшавӣ, истифода бурдани модули эксплоит/мулти/ҳедлер ҳамеша беҳтар аст. Муҳим он аст, ки сарбории дурустро муқаррар кунед, масалан, generic/shell/reverce_tcp ё generic/shell/bind_tcp. Силсилаи дар Metasploit гирифташударо бо истифода аз модули post/multi/manage/shell_to_meterpreter ба Meterpreter навсозӣ кардан мумкин аст. Бо Meterpreter, шумо метавонед раванди пас аз истисморро автоматӣ кунед. Масалан, модули post/multi/recon/local_exploit_suggester платформа, меъморӣ ва объектҳои истисморшавандаро тафтиш мекунад ва модулҳои Metasploit-ро барои баланд бардоштани имтиёзҳо дар системаи ҳадаф пешниҳод мекунад. Бо шарофати Meterpreter, баланд бардоштани имтиёзҳо баъзан ба кор кардани модули дуруст рост меояд, аммо ҳакерӣ бидуни фаҳмидани он ки дар зери кулоҳ чӣ рӯй дода истодааст, дуруст нест (шумо ҳоло ҳам бояд гузориш нависед).

Tools

Воситаҳо барои автоматикунонии ҷамъоварии маҳаллии иттилоот ба шумо саъю кӯшиш ва вақти зиёдро сарфа мекунанд, аммо худашон наметавонанд роҳи густариши имтиёзҳоро пурра муайян кунанд, бахусус дар ҳолати истифода аз осебпазирии ядро. Воситаҳои автоматизатсия ҳамаи фармонҳои заруриро барои ҷамъоварии маълумот дар бораи система иҷро мекунанд, аммо инчунин муҳим аст, ки қобилияти таҳлил кунед маълумот гирифтанд. Умедворам, ки мақолаи ман дар ин ҷо ба шумо муфид хоҳад буд. Албатта, асбобҳои зиёде ҳастанд, ки ман дар зер номбар мекунам, аммо ҳамаи онҳо дар бораи як чиз кор мекунанд - ин бештар масъалаи таъми аст.

Линпа

Асбоби хеле тару тоза, супориши аввал моҳи январи соли 2019 аст. Дар айни замон асбоби дӯстдоштаи ман. Хулоса ин аст, ки он ҷолибтарин векторҳои густариши имтиёзҳоро таъкид мекунад. Розӣ шавед, ба даст овардани арзёбии коршиносон дар ин сатҳ аз таҳлили маълумоти хоми монолитӣ қулайтар аст.

LinEnum

Асбоби дуюми дӯстдоштаи ман, он инчунин маълумотеро, ки дар натиҷаи барӯйхатгирии маҳаллӣ гирифта шудааст, ҷамъоварӣ ва ташкил мекунад.

Linux-exploit-suggester(1,2)

Ин истисмор системаро барои шароитҳои мувофиқ барои истисморҳо таҳлил мекунад. Дарвоқеъ, он кореро иҷро мекунад, ки ба модули Metasploit local_exploit_suggester шабеҳ аст, аммо истинодҳоро ба кодҳои сарчашмаи exploit-db пешниҳод мекунад, на модулҳои Metasploit.

Linuxprivchecker

Ин скрипт миқдори зиёди маълумотро, ки барои ташаккули вектори густариши имтиёз муфид буда метавонанд, ҷамъоварӣ ва ташкил мекунад.

Дафъаи дигар ман муфассалтар мегӯям Баланд бардоштани имтиёзҳои Linux тавассути suid/sgid.

Манбаъ: will.com

Илова Эзоҳ