Доброго  времени суток, уважаемые читатели блога «Мои тараканы»!

Плохие парни и вы

Недавно я публиковал перевод презентации Марка Монтегю. Сам автор назвал её менее полной версией той презентации, перевод которой вы можете прочесть ниже. Чтобы получить больше информации, в частности о том, какие типы злоумышленников встречаются в сети, что их мотивирует, и как защитить ваш сайт на WordPress читайте далее.

Марк Монтегю

mark@catseye.org

Многие слайды имеют записи с дополнительным материалом:

  • Нажмите „t“ для переключения между режимом слайдов и обзорным режимом. Записи будут видны в обзорном режиме. Или,
  • Нажмите „n“, чтобы увидеть заметки во всплывающем окне.

Данная презентация доступна по адресу
http://www-personal.umich.edu/~markmont/wby/

Копию презентации можно скачать по адресу
http://www-personal.umich.edu/~markmont/wby.zip

Кто я

  • Я – системный администратор и программист, который разрабатывает веб-приложения и осуществляет высокопроизводительные вычислительные исследования в университете Мичигана.
  • На моей предыдущей работе я в течение 5 лет отвечал за центральную веб-инфраструктуру Мичиганского университета, в том числе, за предоставление хостинга для сайтов WordPress.
  • Имею 19-летний опыт работы с попытками взломов и нарушений требований систем компьютерной безопасности.
  • Имею 11-летний опыт работы с веб-приложениями, включая WordPress, и  попытками взломов и нарушений требований систем безопасности в них.

Кем я НЕ являюсь

  • Экспертом по безопасности (знающим гораздо больше, чем я).
  • Плохим парнем (имеющим гораздо больше доступа к «инструментам плохих парней», чем я).

Данная презентация могла бы быть гораздо страшнее, если бы была сделана экспертом по безопасности или плохим парнем.

И эксперты по безопасности, и плохие парни имели бы для этого намного больше времени и знаний, чем такой универсал, как я.

Плохие парни имеют доступ к вредоносным программам, в том числе, к очень сложным инструментам, которые могут взломать веб-сайт, к форумам интернет-маркетинга black hat и многому другому. Наборы инструментов и эксплойты обычно покупаются и продаются за биткойны или доллары на сайтах черных рынков.

Эта презентация использует только «инструменты хороших парней», потому что я не хочу пользоваться ненадежным программным обеспечением или попасть в списки разыскиваемых правоохранительными органами.

Демонстрация — мишень

Объект атаки

http://myblog.catseye.org/

  • WordPress 3.8.1  (последняя доступная версия, показанная в этой презентации).
    • Плагин: W3 общей кэш-памяти 0.9.2.8 (имеет проблему с точки зрения безопасности! текущая версия 0.9.3)
  • Запущен на сервере Ubuntu 12.04.3 LTS 64 бит (текущая версия LTS), полностью исправлен/обновлен.

Все было настроено в соответствии с инструкциями на wordpress.org и ubuntu.com. Единственными дополнительными операциями, которые были проведены, были:

  • Разрешить комментариям появляться без заблаговременного одобрения комментатора (что делает отражение атаки более легким).
  • Включить постоянные ссылки pretty permalinks (необходимо для кэширования страниц общей кэш-памяти W3).
  • Включить Apache для перезаписи URL-адресов и файлов. htaccess  (необходимо для ссылок pretty permalinks).
  • Включить Apache mod_expires и mod_headers (для общей кэш-памяти W3).
  • Включить протокол SSH (для упрощения администрирования из командной строки).

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

Мы используем Ubuntu сервер LTS, так как это самый популярный выбор среди людей, которые управляют своим собственным сервером.

Демонстрация — злоумышленник

badguy.catseye.org

Демонстрация арсенала злоумышленника.

Мы используем последнюю версию Kali Linux 1.0.6 на основе платформы Debian 7 «Wheezy».

Kali Linux, http://www.kali.org/

  • Инструмент «хорошего парня», который позволяет компании тестировать свои сети по вопросу проблем безопасности.
  • Это, в целом, набор из более 300 средств безопасности, включая механизмы оценки безопасности, а также инструменты восстановления после атаки (утилита forensic tools).
  • Эта система полностью отвечает операционной системе Linux и может работать как с диска, так и будучи установленной на компьютере.
  • Мы используем его, потому что это самый быстрый и простой способ начать нашу атаку: скачать, загрузить, атаковать.
  • На самом деле, мы рассмотрим только два из тех инструментов, которые предоставляет Kali Linux:
    • WPScan: находит проблемы безопасности сайтов на WordPress и открывает путем подбора логины и пароли WordPress.
    • Metasploit: очень сложная структура тестирования систем безопасности, которая включает в себя веб-интерфейс, позволяющий нам совершать нападения, не нуждаясь в квалифицированных технических специалистах.

Вместо того чтобы использовать Kali Linux, мы могли бы просто скачать и установить WPScan и Metasploit. Для этого требуется только чуть-чуть больше технических знаний, чем при использовании Kali Linux, плюс немного больше работы конфигурации, что волне выполнимо. Мы просто очень поленились.

Демонстрация — WPScan

Чтобы узнать, как использовать WPScan, запустите его с параметром опции --help:

root@badguy:~# wpscan --help
_______________________________________________________________
__ _______ _____
\ \ / / __ \ / ____|
\ \ /\ / /| |__) | (___ ___ __ _ _ __
\ \/ \/ / | ___/ \___ \ / __|/ _` | '_ \
\ /\ / | | ____) | (__| (_| | | | |
\/ \/ |_| |_____/ \___|\__,_|_| |_|

WordPress Security Scanner by the WPScan Team
Version v2.2
Sponsored by the RandomStorm Open Source Initiative
@_WPScan_, @ethicalhack3r, @erwan_lr, @gbrindisi, @_FireFart_
_______________________________________________________________

Help :

Some values are settable in conf/browser.conf.json :
user-agent, proxy, proxy-auth, threads, cache timeout and request timeout

--update Update to the latest revision
--url | -u  The WordPress URL/domain to scan.
--force | -f Forces WPScan to not check if the remote site is running WordPress.
--enumerate | -e [option(s)] Enumeration.
option :
u usernames from id 1 to 10
u[10-20] usernames from id 10 to 20 (you must write [] chars)
p plugins
vp only vulnerable plugins
ap all plugins (can take a long time)
tt timthumbs
t themes
vt only vulnerable themes
at all themes (can take a long time)
Multiple values are allowed : "-e tt,p" will enumerate timthumbs and plugins
If no option is supplied, the default is "vt,tt,u,vp"

--exclude-content-based "" Used with the enumeration option, will exclude all occurrences based on the regexp or string supplied
You do not need to provide the regexp delimiters, but you must write the quotes (simple or double)
--config-file | -c  Use the specified config file
--follow-redirection If the target url has a redirection, it will be followed without asking if you wanted to do so or not
--wp-content-dir  WPScan try to find the content directory (ie wp-content) by scanning the index page, however you can specified it. Subdirectories are allowed
--wp-plugins-dir  Same thing than --wp-content-dir but for the plugins directory. If not supplied, WPScan will use wp-content-dir/plugins. Subdirectories are allowed
--proxy < [protocol://]host:port> Supply a proxy (will override the one from conf/browser.conf.json).
HTTP, SOCKS4 SOCKS4A and SOCKS5 are supported. If no protocol is given (format host:port), HTTP will be used
--proxy-auth  Supply the proxy login credentials (will override the one from conf/browser.conf.json).
--basic-auth  Set the HTTP Basic authentication
--wordlist | -w  Supply a wordlist for the password bruter and do the brute.
--threads | -t  The number of threads to use when multi-threading requests. (will override the value from conf/browser.conf.json)
--username | -U  Only brute force the supplied username.
--help | -h This help screen.
--verbose | -v Verbose output.

Examples :

-Further help ...
ruby ./wpscan.rb --help

-Do 'non-intrusive' checks ...
ruby ./wpscan.rb --url www.example.com

-Do wordlist password brute force on enumerated users using 50 threads ...
ruby ./wpscan.rb --url www.example.com --wordlist darkc0de.lst --threads 50

-Do wordlist password brute force on the 'admin' username only ...
ruby ./wpscan.rb --url www.example.com --wordlist darkc0de.lst --username admin

-Enumerate installed plugins ...
ruby ./wpscan.rb --url www.example.com --enumerate p

-Enumerate installed themes ...
ruby ./wpscan.rb --url www.example.com --enumerate t

-Enumerate users ...
ruby ./wpscan.rb --url www.example.com --enumerate u

-Enumerate installed timthumbs ...
ruby ./wpscan.rb --url www.example.com --enumerate tt

-Use a HTTP proxy ...
ruby ./wpscan.rb --url www.example.com --proxy 127.0.0.1:8118

-Use a SOCKS5 proxy ... (cURL >= v7.21.7 needed)
ruby ./wpscan.rb --url www.example.com --proxy socks5://127.0.0.1:9000

-Use custom content directory ...
ruby ./wpscan.rb -u www.example.com --wp-content-dir custom-content

-Use custom plugins directory ...
ruby ./wpscan.rb -u www.example.com --wp-plugins-dir wp-content/custom-plugins

-Update ...
ruby ./wpscan.rb --update

-Debug output ...
ruby ./wpscan.rb --url www.example.com --debug-output 2>debug.log

See README for further information.
Exiting!
root@badguy:~#

Демонстрация — WPScan

Давайте рассмотрим  http://arc.research.umich.edu/

root@badguy:~# wpscan --url arc.research.umich.edu
_______________________________________________________________
__ _______ _____
\ \ / / __ \ / ____|
\ \ /\ / /| |__) | (___ ___ __ _ _ __
\ \/ \/ / | ___/ \___ \ / __|/ _` | '_ \
\ /\ / | | ____) | (__| (_| | | | |
\/ \/ |_| |_____/ \___|\__,_|_| |_|

WordPress Security Scanner by the WPScan Team
Version v2.2
Sponsored by the RandomStorm Open Source Initiative
@_WPScan_, @ethicalhack3r, @erwan_lr, @gbrindisi, @_FireFart_
_______________________________________________________________

| URL: http://arc.research.umich.edu/
| Started: Sat Jan 25 17:24:11 2014

[+] robots.txt available under: 'http://arc.research.umich.edu/robots.txt'
[!] The WordPress 'http://arc.research.umich.edu/readme.html' file exists
[+] Interesting header: SERVER: Apache
[+] XML-RPC Interface available under: http://arc.research.umich.edu/xmlrpc.php
[+] WordPress version 3.5.1 identified from meta generator

[!] 8 vulnerabilities identified from the version number:
|
| * Title: WordPress 3.4 - 3.5.1 /wp-admin/users.php Malformed s Parameter Path Disclosure
| * Reference: http://seclists.org/fulldisclosure/2013/Jul/70
| * Reference: http://osvdb.org/95060
| * Fixed in: 3.5.2
|
| * Title: WordPress 3.4 - 3.5.1 DoS in class-phpass.php
| * Reference: http://seclists.org/fulldisclosure/2013/Jun/65
| * Reference: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-2173
| * Reference: http://secunia.com/advisories/53676
| * Reference: http://osvdb.org/94235
|
| * Title: WordPress Multiple XSS
| * Reference: http://osvdb.org/94791
| * Reference: http://osvdb.org/94785
| * Reference: http://osvdb.org/94786
| * Reference: http://osvdb.org/94790
|
| * Title: WordPress TinyMCE Plugin Flash Applet Unspecified Spoofing Weakness
| * Reference: http://osvdb.org/94787
|
| * Title: WordPress File Upload Unspecified Path Disclosure
| * Reference: http://osvdb.org/94788
|
| * Title: WordPress oEmbed Unspecified XML External Entity (XXE) Arbitrary File Disclosure
| * Reference: http://osvdb.org/94789
|
| * Title: WordPress Multiple Role Remote Privilege Escalation
| * Reference: http://osvdb.org/94783
|
| * Title: WordPress HTTP API Unspecified Server Side Request Forgery (SSRF)
| * Reference: http://osvdb.org/94784

[+] WordPress theme in use: orci

| Name: orci
| Location: http://arc.research.umich.edu/wp-content/themes/orci/
| Directory listing enabled: Yes

[+] Enumerating plugins from passive detection ...
| 6 plugins found:

| Name: jquery-collapse-o-matic v1.5.1
| Location: http://arc.research.umich.edu/wp-content/plugins/jquery-collapse-o-matic/
| Directory listing enabled: Yes
| Readme: http://arc.research.umich.edu/wp-content/plugins/jquery-collapse-o-matic/readme.txt

| Name: jquery-colorbox v4.6
| Location: http://arc.research.umich.edu/wp-content/plugins/jquery-colorbox/
| Directory listing enabled: Yes
| Readme: http://arc.research.umich.edu/wp-content/plugins/jquery-colorbox/readme.txt

| Name: mailchimp v1.2.14
| Location: http://arc.research.umich.edu/wp-content/plugins/mailchimp/
| Directory listing enabled: Yes
| Readme: http://arc.research.umich.edu/wp-content/plugins/mailchimp/readme.txt

| Name: page-list v4.2
| Location: http://arc.research.umich.edu/wp-content/plugins/page-list/
| Directory listing enabled: Yes
| Readme: http://arc.research.umich.edu/wp-content/plugins/page-list/readme.txt

| Name: wp-paginate v1.2.4
| Location: http://arc.research.umich.edu/wp-content/plugins/wp-paginate/
| Directory listing enabled: Yes
| Readme: http://arc.research.umich.edu/wp-content/plugins/wp-paginate/readme.txt

| Name: youtube-shortcode v1.8.5
| Location: http://arc.research.umich.edu/wp-content/plugins/youtube-shortcode/
| Directory listing enabled: Yes
| Readme: http://arc.research.umich.edu/wp-content/plugins/youtube-shortcode/readme.txt
[+] Finished: Sat Jan 25 17:24:52 2014
[+] Memory used: 5.039 MB
[+] Elapsed time: 00:00:41
Exiting!
root@badguy:~#

Это тот сайт WordPress, который я часто использую в работе.

WPScan может сказать, что на сервере действует Apache, а не то, какая версия.

Хотя первое, что удержит людей от взлома вашего сайта, это если вы всегда идете в ногу с последними версиями программного обеспечения, тем не менее, этот сайт по-прежнему работает на WordPress 3.5.1. Это очень плохо; к сожалению, это не редкость.

WPScan обнаружено восемь уязвимых мест в системе безопасности. Многие из них едва ли будут полезны случайному злоумышленнику, но есть и те, которые ему вполне подойдут. Читайте подробности о каждой ссылке URL, которые выдает WPScan, чтобы узнать больше.

WPScan нашел одну тему («orci»), и шесть плагинов. Наверняка, есть еще то, что можно найти, запустив WPScan с исчерпывающим плагином поиска («wpscan --enumerate ap»).

Теперь очередь нашего сайта,  http://wordpressannarbor.com/

root@badguy:~# wpscan --url wordpressannarbor.com

_______________________________________________________________

__          _______   _____

\ \        / /  __ \ / ____|

\ \  /\  / /| |__) | (___   ___  __ _ _ __

\ \/  \/ / |  ___/ \___ \ / __|/ _` | '_ \

\  /\  /  | |     ____) | (__| (_| | | | |

\/  \/   |_|    |_____/ \___|\__,_|_| |_|

 

WordPress Security Scanner by the WPScan Team

Version v2.2

Sponsored by the RandomStorm Open Source Initiative

@_WPScan_, @ethicalhack3r, @erwan_lr, @gbrindisi, @_FireFart_

_______________________________________________________________

 

The plugins directory 'wp-content/plugins' does not exist.

You can specify one per command line option (don't forget to include the wp-content directory if needed)

Continue? [y/n] n

Exiting!

root@badguy:~#   # Hmm, let's pull up http://wordpressannarbor.com/ in a

root@badguy:~#   # web browser and view the page's HTML source.  Near the

root@badguy:~#   # top, we see that some things are under a directory named

root@badguy:~#   # 'wp'.  Let's run WPScan again and tell it that:

root@badguy:~#

root@badguy:~# wpscan --wp-plugins-dir wp/wp-content/plugins --url wordpressannarbor.com

_______________________________________________________________

__          _______   _____

\ \        / /  __ \ / ____|

\ \  /\  / /| |__) | (___   ___  __ _ _ __

\ \/  \/ / |  ___/ \___ \ / __|/ _` | '_ \

\  /\  /  | |     ____) | (__| (_| | | | |

\/  \/   |_|    |_____/ \___|\__,_|_| |_|

WordPress Security Scanner by the WPScan Team

Version v2.2

Sponsored by the RandomStorm Open Source Initiative

@_WPScan_, @ethicalhack3r, @erwan_lr, @gbrindisi, @_FireFart_

_______________________________________________________________

| URL: http://wordpressannarbor.com/

| Started: Sat Jan 25 17:28:46 2014

[+] robots.txt available under: 'http://wordpressannarbor.com/robots.txt'

[+] Interesting entry from robots.txt: /cgi-bin

[+] Interesting entry from robots.txt: /wp-admin

[+] Interesting entry from robots.txt: /wp-includes

[+] Interesting entry from robots.txt: /wp-content/plugins

[+] Interesting entry from robots.txt: /wp-content/cache

[+] Interesting entry from robots.txt: /wp-content/themes

[+] Interesting entry from robots.txt: /trackback

[+] Interesting entry from robots.txt: /comments

[+] Interesting entry from robots.txt: http://wordpressannarbor.com/wp-content/uploads

[+] Interesting header: LINK: <http://wp.me/2wcNs>; rel=shortlink

[+] Interesting header: SERVER: Apache

[+] Interesting header: SET-COOKIE: wooTracker=2H0UGV7DUT29; expires=Mon, 25-Jan-2016 22:28:57 GMT; path=/; domain=wordpressannarbor.com

[+] WordPress version 3.8.1 identified from meta generator

[+] WordPress theme in use: twentythirteen v1.1

| Name: twentythirteen v1.1

| Location: http://wordpressannarbor.com/wp-content/themes/twentythirteen/

[+] Enumerating plugins from passive detection ...

|  4 plugins found:

| Name: advanced-recent-posts-widget v1.1a

| Location: http://wordpressannarbor.com/wp/wp-content/plugins/advanced-recent-posts-widget/

| Directory listing enabled: Yes

| Readme: http://wordpressannarbor.com/wp/wp-content/plugins/advanced-recent-posts-widget/readme.txt

| Name: jetpack v2.6

| Location: http://wordpressannarbor.com/wp/wp-content/plugins/jetpack/

| Directory listing enabled: Yes

| Readme: http://wordpressannarbor.com/wp/wp-content/plugins/jetpack/readme.txt

| Name: social-media-widget v4.0.2

| Location: http://wordpressannarbor.com/wp/wp-content/plugins/social-media-widget/

| Directory listing enabled: Yes

| Readme: http://wordpressannarbor.com/wp/wp-content/plugins/social-media-widget/readme.txt

| Name: w3-total-cache

| Location: http://wordpressannarbor.com/wp/wp-content/plugins/w3-total-cache/

|

| * Title: W3 Total Cache - Username and Hash Extract

| * Reference: http://seclists.org/fulldisclosure/2012/Dec/242

| * Reference: https://github.com/FireFart/W3TotalCacheExploit

| * Reference: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-6079

| * Reference: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-6078

| * Reference: http://osvdb.org/92742

| * Reference: http://osvdb.org/92741

| * Reference: http://www.metasploit.com/modules/auxiliary/gather/wp_w3_total_cache_hash_extract

| * Fixed in: 0.9.2.5

|

| * Title: W3 Total Cache - Remote Code Execution

| * Reference: http://www.acunetix.com/blog/web-security-zone/wp-plugins-remote-code-execution/

| * Reference: http://wordpress.org/support/topic/pwn3d

| * Reference: http://blog.sucuri.net/2013/04/update-wp-super-cache-and-w3tc-immediately-remote-code-execution-vulnerability-disclosed.html

| * Reference: http://www.metasploit.com/modules/exploits/unix/webapp/php_wordpress_total_cache

| * Fixed in: 0.9.2.9

|

| * Title: W3 Total Cache 0.9.2.9 - PHP Code Execution

| * Reference: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-2010

| * Reference: http://secunia.com/advisories/53052

| * Reference: http://osvdb.org/92652

| * Reference: http://www.exploit-db.com/exploits/25137/

[+] Finished: Sat Jan 25 17:29:20 2014

[+] Memory used: 4.379 MB

[+] Elapsed time: 00:00:33

Exiting!
root@badguy:~#

Вот пример того, когда мы должны дать WPScan немного дополнительной помощи. Но это не сложно – мы просто посмотрим на HTML-код, который сайт отправляет на наш браузер, выясним, где находятся плагины (в wp/wp-content/plugins, а не в wp-content/plugins) и запустим WPScan снова с дополнительной опцией командной строки, чтобы передать это.

Этот сайт работает с общей кэш-памятью W3, но WPScan не смог определить номер версии (возможно, потому, что кто-то удалил файл плагина readme.txt или отключил каталог только для этого плагина?), поэтому он выдает список потенциальных проблем безопасности, которые могли бы существовать, если сайт использует старую версию плагина. Будем надеяться, что это не так, поскольку это одно из тех уязвимых мест, которые мы планируем использовать, когда будем совершать наши атаки на http://myblog.catseye.org/.

И вот намеченная нами цель, http://myblog.catseye.org/

root@badguy:~# wpscan --url myblog.catseye.org

_______________________________________________________________

__          _______   _____

\ \        / /  __ \ / ____|

\ \  /\  / /| |__) | (___   ___  __ _ _ __

\ \/  \/ / |  ___/ \___ \ / __|/ _` | '_ \

\  /\  /  | |     ____) | (__| (_| | | | |

\/  \/   |_|    |_____/ \___|\__,_|_| |_|

WordPress Security Scanner by the WPScan Team

Version v2.2

Sponsored by the RandomStorm Open Source Initiative

@_WPScan_, @ethicalhack3r, @erwan_lr, @gbrindisi, @_FireFart_

_______________________________________________________________

| URL: http://myblog.catseye.org/

| Started: Sat Jan 25 17:32:16 2014

 

[+] robots.txt available under: 'http://myblog.catseye.org/robots.txt'

[!] The WordPress 'http://myblog.catseye.org/readme.html' file exists

[+] Interesting header: SERVER: Apache/2.2.22 (Ubuntu)

[+] XML-RPC Interface available under: http://myblog.catseye.org/xmlrpc.php

[+] WordPress version 3.8.1 identified from meta generator

 

[+] Enumerating plugins from passive detection ...

|  1 plugins found:

 

| Name: w3-total-cache v0.9.2.8

| Location: http://myblog.catseye.org/wp-content/plugins/w3-total-cache/

| Readme: http://myblog.catseye.org/wp-content/plugins/w3-total-cache/readme.txt

|

 | * Title: W3 Total Cache - Remote Code Execution

 | * Reference: http://www.acunetix.com/blog/web-security-zone/wp-plugins-remote-code-execution/

 | * Reference: http://wordpress.org/support/topic/pwn3d

 | * Reference: http://blog.sucuri.net/2013/04/update-wp-super-cache-and-w3tc-immediately-remote-code-execution-vulnerability-disclosed.html

 | * Reference: http://www.metasploit.com/modules/exploits/unix/webapp/php_wordpress_total_cache

 | * Fixed in: 0.9.2.9

 |

 | * Title: W3 Total Cache 0.9.2.9 - PHP Code Execution

 | * Reference: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-2010

 | * Reference: http://secunia.com/advisories/53052

 | * Reference: http://osvdb.org/92652

 | * Reference: http://www.exploit-db.com/exploits/25137/

[+] Finished: Sat Jan 25 17:32:20 2014

[+] Memory used: 4.316 MB

[+] Elapsed time: 00:00:04

Exiting!
root@badguy:~#

WPScan смог показать нам не только, какое программное обеспечение веб-сервера используется, но и его версию.

WPScan нашел плагин общей кэш-памяти W3, и в данном случае (в отличие от предыдущего примера) смог определить (правильно), какой версии он принадлежит (скорее всего, потому что файл плагина readme.txt существует и доступен). Отметим, что в этом состоит серьезное уязвимое место для сайта, и мы используем эту информацию чуть позже, когда запустим нашу атаку.

Демонстрация — Metasploit

http://www.metasploit.com/

Metasploit

Metasploit доступен в четырех редакциях:

  • Metasploit Framework (бесплатно и с открытым исходным кодом, только командная строка)
  • Metasploit Community (бесплатно, включает в себя веб-интерфейс)
  • Metasploit Express, Metasploit Pro (коммерческий)

Чтобы запустить веб-интерфейс Metasploit на Kali Linux:

service postgresql start
service metasploit start

Затем перейдите по ссылке http://badguy.catseye.org:3790/

Все, что мы делаем в этой презентации, работает с Metasploit Framework или Metasploit Community. У нас есть7-дневная пробная лицензионная версия для редакции Metasploit Pro, для тех случаев, если кто-то хочет увидеть дополнительную функциональность.

Основные шаги:

  • Создать учетную запись пользователя Metasploit.
  • Получить лицензионный ключ (в редакции Community, Express или Pro).
  • Создать проект.
  • Провести проверочное сканирование.
  • Выбрать и запустить эксплойт, взламывающий сайт.
  • Делать все, что угодно, с взломанным сайтом.

Шаги 1 и 2 уже сделаны, мы начнем с шага 3.

Проект подобен контейнеру, который хранит следы систем, которые проходят испытания, и результаты испытаний.

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

Веб-интерфейс Metasploit – главная страница:

Веб-интерфейс Metasploit

Это та страница, которую пользователь получает после того, как он создал учетную запись пользователя Metasploit, запросил и ввел ключ продукта, и вошел в систему. Копия Metasploit, показанная здесь, это 7-дневная бесплатная пробная версия редакции Metasploit Pro, но редакция Community может делать все необходимое для этой демонстрации.

Нажмите на кнопку New Project, чтобы начать.

Веб-интерфейс Metasploit – добавление проэкта

Просто введите название проекта, либо ссылку на него в сети или IP-адрес того продукта, который вы будете испытывать, а затем нажмите кнопку Create Project.

Чтобы ускорить этот процесс, поскольку мы работаем с одной целью, укажем только его IP-адрес вместо указания сетевого.

Обзорная страница проекта:

Metasploit – обзорная страница проэкта

Для того, чтобы попытаться эксплуатировать уязвимые места, нам нужен хост (то есть сервер). В настоящее время, мы не располагаем знаниями ни об одном хосте. Нажмите кнопку Scan для сканирования IP-адресов или сетей, которые мы указали, когда создали проект, и поищите хосты.

Запуск проверки:

Metasploit - запуск сканирования

IP-адрес, который мы указали при создании проекта, автоматически заполняется за нас, просто нажмите кнопку Launch Scan.

Результаты сканирования:

Metasploit – результат сканирования

Сканирование завершено, и оно обнаружило сервер, который нас интересует. Нажмите кнопку Overview в верхней строке меню, чтобы вернуться на страницу обзора проекта.

Metasploit – вернутся на страницу обзора проекта

Теперь, когда мы знаем о хосте, мы можем сделать гораздо больше. Кнопка Exploit позволит нам попытаться автоматически прорваться на сайт. Но, поскольку мы знаем из WPScan, что на этом сайте работает уязвимый плагин, чтобы сэкономить время, нажмем кнопку Modules в верхнем меню и выберем опцию Search... . Затем поищем «wordpress».

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

Список эксплойт-модулей Metasploit для WordPress:

Metasploit – модули WordPress

Нажмите на «Wordpress W3 Total Cache PHP Code Execution».

WordPress имеет множество уязвимых мест, которые не перечислены здесь. Если мы заинтересованы в каких-то действиях, не показанных здесь, мы можем создать эксплойт-модуль самостоятельно или эксплуатировать его за пределами Metasploit.

Metasploit – выбор модуля для атаки

На этой странице есть много опций. Единственное, что мы хотим изменить – это  полезная нагрузка, которая должна быть изменена с Meterpreter на Command Shell. Затем нажмите на кнопку Run Exploit, которая не отображена на скриншоте, но ее можно найти в нижней части страницы.

Payload (полезная нагрузка) – это код для запуска на удаленном сервере после успешного взлома. Он может быть как простым в виде одной команды, так и сложным, формата больших, сложных программ, которые дают Вам полный контроль над компьютером.

В Meterpreter полезная нагрузка на самом деле намного более впечатляющая и имеет больше возможностей, чем в Command Shell, но Command Shell является более подходящей для данной демонстрации.

Запуск эксплойта:

Metasploit – запуск эксплойта

Вот и весь сказ! Веб-сервер взломан.

Обратите внимание, что появляется (1) рядом с Sessions в верхнем меню, указывающее на то, что теперь мы можем осуществлять действия на взломанном сервере. Нажмите на Sessions.

Список сессий:

Metasploit – список сессий

Нажмите на название сеанса в левом столбце, чтобы перейти к этой сессии.

Демонстрация — Metasploit

Сессия:

Metasploit – сессия

Щелкните по кнопке Command Shell, чтобы получить доступ к удаленной командной консоли, которая была запущена на взломанном сервере, когда был применен эксплойт.

Есть много инструментов для сбора информации, доступных, если кликнуть по вкладке Post-Exploitation Modules, но мы не будем на них останавливаться.

Щелкните по кнопке Command Shell, чтобы получить доступ к удаленной командной консоли, которая была запущена на взломанном сервере, когда эксплойт был осуществлен.

Metasploit – запуск командной строки на сервере.

Это удаленная командная консоль на целевом сервере. Каждая введенная команда выполняется отдельно, нет никакой связи между командами, как было бы в реальной оболочке. Это означает, среди прочего, что вы не можете изменить каталоги (текущий каталог – корневой каталог /).

Здесь мы должны взглянуть на некоторые каталоги на взломанном сервере.

Еще больше веселья с оболочкой:

Metasploit – доступ к объектам на сервере

Злоумышленник, вероятно, будет иметь доступ к еще большему количеству объектов на сервере, которые обычно не доступны через WordPress, таких как домашние каталоги пользователей Linux.

Metasploit – доступ к паролям WordPress и базе данных

Здесь мы извлекаем информацию из базы данных при помощи файла wp-config.php. Если мы не знаем где он, мы можем поискать, используя команду ls; или, в полезной нагрузке Meterpreter содержится утилита point-and-click file, которую можно применить здесь.

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

Если бы мы захотели, мы могли бы модифицировать базу данных – например, добавив нового пользователя с правами администратора, что позволило бы нам войти в систему через веб-интерфейс и управлять всем сайтом. Или мы могли бы создать новый пост или страницу, просто вписав их в базу данных.

Мы можем выполнить любую команду, какую захотим, на правах пользователя этого веб-сервера, каковым мы и являемся для него (пользователь www-data в данном случае), но у нас нет административного контроля над сервером – нам пришлось бы использовать второй эксплойт (если бы мы могли), чтобы взломать операционную систему и стать системным администратором.

Давайте создадим интернет-магазин!

Metasploit – создаём интернет магазин

Изменения для нашего магазина:

Metasploit – изменения в магазине

Обратите внимание на новый каталог с именем «store» («магазин»), которого не существовало до того, как мы запустили последнюю команду.

Магазин готов

 

Давайте посмотрим на побочные эффекты эксплойта.

Мусор в комментариях

Обратите внимание на мусор в  комментариях, который ставил эксплойт. Запись содержала HTML-комментарий (не показан), который содержит PHP-код, использованный ненадлежащим образом из-за уязвимости плагина общей кэш-памяти W3.

Подобные комментарии могут быть доказательством взлома (как в этом случае), но могут и указывать на неудачную попытку пробиться на сайт (если общая кэш-память W3 не была запущена или если запущенная версия не имела уязвимых мест).

Если бы мы вводили эксплойт вручную, а не через Metasploit, мы могли бы придать комментарию видимость легитимного, если бы мы смогли обойти первую модерацию комментариев, или обойти капчу, хотя стоит ли так заморачиваться ради этого.

«Окно уязвимости»

Окно уязвимости – это промежуток времени с того момента, как кто-то узнает о проблеме безопасности до тех пор, пока не начинаются действия по решению этой проблемы для конкретного сайта WordPress. Для уязвимого места службы удаленного выполнения общей кэш-памяти W3 , которую мы только что рассматривали:

  • Уязвимое место было обнаружено около 25 февраля 2013 года. Это сказалось и на текущей версии плагина (0.9.2.8), и на большинстве предыдущих версий.
  • Уязвимое место было исправлено в общей кэш-памяти W3 0.9.2.9 17 апреля 2013 года.

Подразумевается, что никто не знал об уязвимости в частном порядке до того, как авторы плагина не узнали об этом.

Некоторые люди, которые обнаруживают уязвимые места, информируют авторов в частном порядке; это лучший сценарий развития событий, если авторы вовремя отреагируют на информацию (многие этого не делают).

Иногда уязвимые места обнаруживаются публично, когда люди начинают замечать, что сайты WordPress, которые неуязвимы для любой известной атаки, оказываются так или иначе взломанными, и уязвимые места собираются воедино и отражаются в системных файлах и других вещественных доказательствах. Это наихудший сценарий.

Как долго тот или иной сайт будет уязвим, зависит от того, как часто сайт обновляет плагины, которые он использует. Если сайт проверяет наличие обновленных плагинов...

  • Ежедневно: он будет уязвим около 52 дней.
  • Еженедельно: он будет уязвим около 59 дней.
  • Ежемесячно: они будет уязвим около 83 дней.

В настоящее время, прошло уже 338 дней с того момента, как об уязвимых местах было публично объявлено, но по-прежнему высока вероятность того, что есть еще много сайтов, которые еще не обновлялись.

Эти виды окон уязвимости не являются редкостью – на самом деле, они достаточно типичны, поэтому важно обновлять регулярно. Рекомендую обновлять плагины по меньшей мере раз в неделю.

Обратите внимание, что начиная с 17 апреля, было выпущено четыре новых версии плагина общей кэш-памяти W3: 0.9.2.9, 0.9.2.10, 0.9.2.11, и 0.9.3.

Насколько плоха ситуация?

В недавнем докладе (24 сентября 2013) приведены результаты обследования более 42 000 наиболее посещаемых сайтов WordPress во всем мире. Хорошие новости:

  • 18,6% (7.814 сайтов) использовали последнюю версию WordPress (3.6.1), которая были доступны лишь за 12 дней до того момента и включала в себя несколько важных поправок системы безопасности.
  • 31,0% (13.034 сайтов) использовали версию WordPress 3.6, которая была новейшей версией до 11 сентября.

Плохие новости:

  • 73,2% (30.822 сайта) были уязвимы, основываясь исключительно на той версии WordPress, которой они пользовались. Если вы также относитесь к тем, кто по-прежнему использует уязвимые темы или плагины, число, скорее всего, будет выше.
  • 50,6% (21.258 сайтов) использовали версии WordPress старше 3.6, в том числе 3.2.х, 3.3.х, 3.4.X и 3.5.х

Лично я полагаю, что если сайт пользуется популярностью (в первом миллионе по рейтингу Алекса Топ), он получает большое обновление контента – возможно, даже имеет персонал – и поэтому будет больше шансов получить обновления тем и плагинов для WordPress регулярно, чем у небольшого личного сайта. Это предположение может соответствовать, а может и не соответствовать действительности.

И последнее, что действительно важнее всего сказанного выше: каждый 2-ой среди лучших сайтов WordPress в мире уже значительно устарел.

Авторы программного обеспечения, компаний, работающие в сфере компьютерной безопасности, и агентства сотрудничают, чтобы вести список уязвимых мест, которым присваиваются идентификаторы CVE . На WordPress (в том числе среди трети тем и плагинов) имеются 223 идентификатора CVE.

Существует также статистика уязвимости WordPress , где учтены все уязвимые места WordPress, которым присвоен идентификатор cve.

Национальная база данных уязвимостей, которые ведутся в Национальном Институте стандартов и технологий США (nist), содержится 590 уязвимостей для WordPress.

Еще одним хорошим источником информации об уязвимости WordPress является http://www.exploit-db.com/ , содержащий сведения о 376 уязвимых местах WordPress.

cve расшифровывается как «общая уязвимость и незащищенность».

Многие уязвимые места никогда не получат идентификатор cve, потому что требуются определенные усилия для их выявления. Например, то, что общая кэш-память W3 позволяет удаленное выполнение кода, которое мы рассматривали, должно было получить идентификационный номер cve -2013—2010, но хотя этот идентификатор был зарезервирован для уязвимости, процесс не был завершен, поэтому он не содержит никакой информации.

Типы плохих парней

Скрипт кидди

Скрипт кидди

  • Использует инструменты, написанные другими людьми, подобно тому, как это делаем мы здесь, а не обнаруживает новые уязвимости сам  и развивает эксплойты для них.
  • Часто мотивирован тем, что пытается произвести впечатление на других созданием личных империй или вредоносных развлечений («лулзов/приколов»).
  • Часто это начинающие хакеры, или любители/дилетанты в сфере компьютерной безопасности.
  • Это самый многочисленный тип плохих парней, но от них проще всего защититься.

«лулзы» (вариант «лол») – поднятие на смех кого-то, кто является жертвой шутки.

Хактивист

Хактивист

  • Мотивирован жаждой известности, повышением уровня осведомленности о своих действиях или иногда желанием напрямую продвигать свои интересы.
  • Может испортить репутацию веб-сайта, особенно часто выбирает крупные или известные веб-сайты, в целях усиления публичности.
  • Может создать ботнет для осуществления распределенного отказа в обслуживании (DDoS) или другие формы нападения на реальные цели.
  • Примеры групп хактивистов включают в себя Anonymous и Сирийскую электронную армию.

Белый хакер (White Hat)

Белый хаккер

  • Охватывает исследователей в области безопасности, тестеров взлома, аудиторов и других профессионалов в области безопасности.
  • Хотя это хорошие парни, но они должны рассматриваться как плохие в целях защиты ваших сайтов WordPress.
  • Большинство будет только взламывать системы, принадлежащие их работодателю или клиентам, так как это часть их работы. Тем не менее, некоторые будут стремиться найти новые уязвимые места для того, чтобы сделать себе имя или чтобы привлечь внимание к проблемам безопасности, что может негативно отразиться на пользователях.

На фото Джон Оберхейд, исследователь систем безопасности, который живет в Энн-Арборе и был соучредителем местной фирмы «Duo Security».

Представители организованной преступности и другие профессиональные плохие парни

Плохие парни - преступные организации

  • Движимые жаждой наживы, они могут взломать ваш сайт, чтобы:
    • Использовать его в ботнете из взломанных сайтов и серверов.
    • Установить на сайте вредоносные программы, предназначенные для заражения, и получить доступ к компьютерам людей, которые посещают сайт (например, чтобы построить ботнет).
    • Настроить магазины «черного рынка» (например, черный рынок аптек).
    • Настроить ссылочные фермы для подрыва рейтинга в поисковых системах.
    • Добывать цифровую валюту (например, биткойн).
    • Воровать (взлом пароля и т. д.).
  • На сегодняшний день именно эти плохие парни, скорее всего, взломают ваш сайт WordPress.

Как в случае с ботнетами, так и со взломанными личными данными, злоумышленник может, скорее всего, продать их еще одному плохому парню за наличные; тогда теневой рынок будет процветать у обоих. Или злоумышленник может использовать их самостоятельно.

Две наиболее распространенных цели ботнетов – это рассылка спама или проведение распределенного отказа в обслуживании (DDoS-атаки). DDoS-атаки могут осуществляться по идеологическим причинам, служить отвлекающим маневром для следующей атаки или кражи, или поводом для вымогательства платы за ненарушение бизнеса.

Кража персональных данных, скорее всего, будет иметь финансовую подоплеку. В то время как большинство блогов WordPress не обрабатывают данные кредитных карт, злоумышленник будет идти по следу хэшей паролей (для WordPress или операционной системы расчетов) и попытаются взломать их или установить клавиатурные шпионы. Многие люди используют один и тот же пароль для нескольких веб-сайтов, или используют простые шаблонные пароли или схемы. Знание паролей учетной записи WordPress является не очень ценным, но это может привести к взлому учетных записей электронной почты, мерчант-аккаунтов (например, Amazon), или рабочих записей и сбору достаточного количества информации, стоящей использования или продажи.

Шпионы

Шпионы

  • Государственный или корпоративный шпионаж.
  • В то время как другие типы плохих парней, вероятно, выберут ваш сайт наугад, то государственный или корпоративный шпион, скорее всего, выберет вас по определенной причине, если уж он это делает.
  • Самый опасный – но и самый редкий – тип  плохих парней.

Уровни взлома

Злоумышленник, успешно воспользовавшийся уязвимостью системы безопасности, может проявить себя в одном из нескольких уровней взлома. По степени повышения серьезности они таковы:

  • Войти в систему, используя украденные учетные данные (догадался, подменил, перехватил). Это позволяет злоумышленнику делать то, для чего были заведены человеком эти учетные данные.
  • Взломать веб-приложения. Это позволяет злоумышленнику делать вещи, которые обычно не разрешены, например, получать закрытую информацию из базы данных или изменять посты.
  • Взломать учетную запись, которая запускает веб-приложения. Это дает злоумышленнику ограниченный контроль над сервером, что позволяет ввести произвольный код в качестве пользователя веб-сервера.
  • Взломать сервер, где размещается веб-приложение. Это дает злоумышленнику полный контроль над сервером, операционной системой, и всеми сайтами, размещенными на сервере.

Зачастую, злоумышленник взламывает сайт на одном уровне и затем использует информацию и доступ, чтобы осуществить уже более глубокую атаку сайта.

Например, злоумышленник может взломать сайт WordPress, чтобы стать автором блога и  воспользоваться той уязвимостью, которая доступна только авторам и заключается в том, что они могут запустить любой код, какой хотят. Затем, применив этот уровень доступа, он воспользуется уязвимостью операционной системы, которая не может быть использована удаленно, только локальными пользователями, для того, чтобы стать системным администратором (суперпользователем) на сервере.

Если кто-то взламывает сервер, становится гораздо труднее восстановить контроль снова, поскольку злоумышленник может скрыть код в ядре операционной системы или в библиотеке. Наилучший выход из этой ситуации состоит в том, чтобы перезагрузить машину и восстановить сайты и другие данные из заведомо исправной резервной копии.

В нашей демонстрации, мы смогли перейти непосредственно к пункту #3 и остановиться там. Многие злоумышленники будут пытаться продолжить на уровне #4, если сделать это им будет достаточно легко (например, если операционная система не в курсе) или если они ставят перед собой именно эту цель.

Стелс (скрытое действие)

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

Злоумышленник может:

  • Скрыть свои файлы глубоко в дереве каталогов WordPress
  • Дать своим файлам и URL-адресам кажущиеся законными имена (напр., wp-comments-page.php , который фактически не является частью WordPress).
  • Поместить свои файлы в скрытые каталоги (на Linux/Unix-серверах, каталоги, чьи имена начинаются с точки, не отображаются по умолчанию).
  • Поместить свои файлы в каталоги, которые трудно обнаружить (например, каталог, имя которого обозначается одним пробелом).

Как обезопасить свой сайт WordPress

Короткая версия:

  • Проверяйте наличие обновлений для WordPress, тем и плагинов как минимум раз в неделю и выполняйте обновления сразу.
  • Выполняйте все операции через руководство net Basic . Это – скорее деятельность, чем конфигурации.
  • Выполняйте все операции через руководство net Secure WordPress. Здесь, в основном, вы работаете с изменениями конфигураций.

В WPsecure.net также есть руководство и справочник Advanced Security . Я не рекомендую большинство объектов в этих двух руководствах, поскольку они имеют ограниченную эффективность.

Обновление:

  • Проверяйте наличие обновлений для WordPress, тем и плагинов как минимум раз в неделю и выполняйте обновления сразу.

«Но я не хочу ничего ломать!»

  • Заведите «черновой» сайт, где вы сможете попробовать новые явления, прежде чем вы используете их на своем живом сайте. Это может быть даже WordPress, установленный на ваш ноутбук, если вы не хотите платить за хостинг другого сайта.
  • Ждите не более 2-3 дней после того, как будет доступно обновление, проверьте форумы по вопросу сообщений о проблемах, и если их нет, то обновляйте.
  • В том маловероятном случае, что при обновлении что-то сломается, выполняйте возврат к предыдущей версии (через Shell или доступ через SFTP) или восстанавливайте из резервной копии (вы ведь, действительно, регулярно делаете  резервные копии, не так ли?)

Вы можете бесплатно скачать BitNami Stack для WordPress из Mac App Store для очень удобного запуска разработки сайта WordPress на вашем ноутбуке.

Больше работайте с использованием WAMP (Windows)  или MAMP (Mac).

Или для  большего контроля вы можете настроить сервер под управлением Linux в качестве виртуальной машины на своем ноутбуке и использовать приспособление WordPress или развернуть свой собственный сервер.

Что касается пароля:

  • Если единственные люди, которые могут входить в систему на вашем сайте, это вы и авторы, введите ограничения, откуда люди могут зайти (через конфигурацию веб-сервера).
  • В противном случае, используйте плагины, такие как Limit Login Attempts  или Login Security Solution , которые ограничивают число попыток входа в систему для предотвращения подбора пароля путем перебора.
  • Людям не должно быть легко в попытке узнать, какие имена учетных записей существуют на вашем сайте WordPress. Не заводите учетной записи с именем «администратор» (замените ее, если она у вас есть), и убедитесь, что отображаются имена авторов, а не их логины (установите вместо них ники).

Что ещё касается пароля:

  • Рекомендации по выбору пароля:
    • Не используйте один и тот же пароль для нескольких сайтов или учетных записей.
    • Не создавайте «узор» из паролей для нескольких сайтов или учетных записей.
    • Убедитесь, что пароли являются длинными и сложными.
  • Лучше всего: используйте случайные пароли из менеджеров паролей, таких как 1Password или PassPack.
  • Или: используйте четыре или более не связанных между собой слов («верно лошадь батарея скрепка»).
  • Или: используйте первую букву каждого слова из предложения, добавляя некоторые цифры и знаки препинания.

Ars Technica опубликовал статью в марте 2013 года , показывающую, как легко взламывать пароли.

Выбирая слова, не используйте фразы – убедитесь, что слова не связаны друг с другом. Даже непонятные фразы легко взломать.

Защищайтесь сразу с двух сторон: создайте пароли, которые трудно угадать, и если один из ваших паролей украдут (с этого или другого сайта), убедитесь, что злоумышленник не сможет использовать его ни для чего другого.

То, что взлом паролей настолько легок, дает еще один повод ограничить, откуда пользователи могут входить в систему. Вам действительно нужно входить в систему вашего сайта – не используя VPN – из кофейни во Вьетнаме?

Хостинг и протокол SSL:

  • Выбирайте авторитетный узел, который имеет хороший послужной список безопасности (спросите их о гарантиях, которые они предоставляют).
    • Отдавайте предпочтение хостам, которые позволяют установить и полностью управлять WordPress и всеми его темами и плагинами самостоятельно – таким образом, вы сможете полностью контролировать безопасность своего сайта WordPress.
    • Отдавайте предпочтение хостам, которые поддерживают для вас операционную систему, веб-сервер, и сервер базы данных, а также делают резервные копии для вас.
      • Осуществляйте регулярные проверки совместно с вашим хостинг-провайдером, чтобы убедиться, что веб-сервер и сервер баз данных находятся в актуальном состоянии и под управлением последней версии операционной системы, с внесением необходимых исправлений; какие бы дистрибутивы они не использовали, удостоверьтесь, что они не используют те, что уже не поддерживаются.
  • Включите протокол SSL (https) для входа в ваш сайт и на административную страницу.
    • Если Вы не используете протокол SSL, логин и пароль будут отправлены по сети в незашифрованном виде и могут быть перехвачены.
    • Отдавайте предпочтение хосту, который позаботится о получении SSL-сертификата для вас, управлении  и продлении его действия, а также о настройке веб-сервера для SSL, так чтобы все, что вам нужно было сделать, это включить его в WordPress.

Не выбирайте хостинг просто на основе стоимости!

Веб-сервер и файловая система:

  • Блокируйте доступ к wp-includes and wp-admin/includes
  • Блокируйте доступ к .htaccess  файлам
  • Блокируйте доступ или удаляйте .txt  файлы и README файлы.
  • Установите файл robots.txt  для предотвращения того, что боты попытаются индексировать фиды, административные страницы, их составляющие и др.
  • Убедитесь, что у вас нет ни одного файла или каталога, записанного кем-либо, кроме пользователей, которые работают на веб-сервере. (Последняя цифра разрешения должна всегда быть 0, 4, или 5, не 6 или 7).

Разное:

  • Обезопасьте вашу базу данных:
    • Во время установки WordPress, выберите для таблицы базы данных другой префикс, нежели wp_.
    • Удалите базы данных test.
    • Удалите анонимных пользователей базы данных.
    • Убедитесь, что к базе данных нет доступа через Интернет.
  • Включайте редактирование файлов только, когда вам это нужно, чтобы внести изменения в ваши темы. В остальное время держать его отключенным под командной строкой wp-config.php:
define('DISALLOW_FILE_EDIT', true);
  • Сканируйте ваш сайт при помощи WPScan.

Включение DISALLOW_FILE_EDIT может выглядеть немного параноидальным.

Что делать, если ваш сайт оказался под угрозой взлома

  • Переведите сайт в автономный режим (поставьте его в режим обслуживания). Это не позволит злоумышленнику совершить дальнейшее повреждение или сопротивляться вашим попыткам восстановить контроль.
  • Уведомите хостинг-провайдера, чтобы он мог помочь.
  • Сделаете резервное копирование сайта с нарушениями в случае, если вам нужно изучить его позже.
  • Посмотрите на веб-сервере файлы входа в систему, чтобы определить, как злоумышленник совершил взлом. Это поможет вам узнать, как устранить проблему, и это же может понадобиться, чтобы отыскать то, что злоумышленник совершил.
  • Обновите все, что можно обновить.
  • Удалите любые файлы, страницы, посты, комментарии или процессы, добавленные злоумышленником. Если есть сомнения, точно ли вы все нашли, создайте новый сайт на WordPress с нуля и восстановите в нем свою последнюю удачную резервную копию.
  • Измените все пароли, которые использует сайт. А также смените вашего хостинг-провайдера и базы данных паролей.

Как минимизировать урон от взлома

  • Не регистрируйте ничьих учетных записей как пользователей WordPress, кроме авторов и администратора. Используйте социальные медиа записи для комментаторов.
  • Не работайте с конфиденциальной информацией на вашем сайте в интернете (кредитные карты, номера социального страхования, медицинская информация и др.)
  • Настройте автоматическое ежедневное резервное копирование (как файлов, так и базы данных) и ежемесячное тестирование резервных копий.
  • Сохраните подробные записи о том, как вы создали свой сайт, так чтобы вы знали, как все должно быть настроено.
  • Подготовьте план, что делать, если вас взламывают – к кому обращаться, что делать, как это делать.

Если вы не заводите учетных записей WordPress для комментаторов, то сразу удаляете большую вероятность взлома, связанного с ужасно слабыми паролями, привязанными к адресам электронной почты.

Сохранение подробных записей служит нескольким целям: во-первых, вы будете иметь представление о том, как все было устроено и каким оно должно быть – так вы будете в состоянии сказать, изменил ли что-то злоумышленник; во-вторых, вы сможете создать новый сайт с теми же настройками, если это необходимо, не беспокоясь о том, все ли у вас правильно; в-третьих, это заставит вас быть в курсе решений, которые вы принимаете, и вы будете иметь более ясное понимание общей картины вашего сайта.

Ссылки

 

 

Если вы хотите знать об уязвимости и о том, как злоумышленники пользуются ей, то список owasp Топ-10 (выше) будет хорошим отправным пунктом.

Для продвинутых читателей интерес представляет анализ сериализации уязвимости PHP-объектов, которая была одной из главных уязвимостей, исправленных в сентябре 2013. в версии WordPress 3.6.1:

http://vagosec.org/2013/09/wordpress-php-object-injection/

Похожие записи:

Понравилась статья? Расскажи друзьям, автор очень старался:
9 комментариев на:
“WordPress, плохие парни и вы (перевод презентации Марка Монтегю)”
  • Travello (1 comments) говорит:

    Спасибо. Прикольная статья.

  • Сергей (45 comments) говорит:

    Статья интересная но длинноватая и не совсем понятная.А так спасибо за данную статью.

  • Андрей (25 comments) говорит:

    Интересно было прочитать, спасибо за публикацию!

  • Сергей (45 comments) говорит:

    Прямо в ногу со временем!

  • Никас (1 comments) говорит:

    Спасибо за код. Вроде разобрался.

  • Ленок (1 comments) говорит:

    Клевый сайт)

  • Кирилл (2 comments) говорит:

    Хорошая статья, полезная. Правда становишься немного параноиком от такой информации

  • Футболист (2 comments) говорит:

    Спасибо. Интересно было почитать.

  • Валерия (3 comments) говорит:

    Хорошая и полезная статья. Спасибо за информацию!

Добавить комментарий

Перед комментированием ознакомтесь с правилами комментирования
  • Все комментарии проходят ручнуюю модерацию, поэтому большая прозьба - НЕ СПАМИТЬ!!!
  • Подписывайтесь нормальными именами, а не "регистрация в Москве" или "Кондиционеры не дорого".
  • Ссылки на коммерческие сайты будут удалятся.
  • Оставляйте ссылку на главную страницу.
  • Оставляйте комментарии длинной не менее 100 символов. Исключения - диалоги и ответы на заданные вопросы.
Внимание! Один раз в неделю блог прходит проверку на наличие битых ссылок. Если ваш сайт в это время не был доступен, ссылка на него будет удалена!
За собой оставляю право редактировать и удалять комментарии, даже если они удовлетворяют вышепреведённый свод правил.