Как проверить свой сайт на уязвимость
Проверяем на уязвимости любой сайт с помощью Nikto
Всем привет! В марте OTUS запускает новый курс «Практикум по Kali Linux». В преддверии старта курса подготовили для вас перевод полезного материала. Также хотим пригласить всех желающих на бесплатный урок по теме: «Denial of Service атаки и защита от них».Перед тем как атаковать любой сайт, хакер или пентестер сначала составляет список целей. После того, как он проведет хорошую разведку и найдет слабые места для «наведения прицела», ему понадобится инструмент сканирования веб-сервера, такой как Nikto, который поможет найти уязвимости – потенциальные вектора атаки.
Nikto – это простой открытый сканер веб-серверов, который проверяет веб-сайт и сообщает о найденных уязвимостях, которые могут быть использованы для эксплойта или взлома. Кроме того, это один из наиболее широко используемых инструментов сканирования веб-сайтов на уязвимости во всей отрасли, а во многих кругах он считается отраслевым стандартом.
Несмотря на то, что этот инструмент чрезвычайно эффективен, он не действует скрытно. Любой сайт с системой обнаружения вторжений или иными мерами безопасности поймет, что его сканируют. Nikto был разработан для тестирования безопасности и о скрытности его работы никто не задумывался.
Как правильно использовать Nikto
Если вы просто запустите Nikto на целевом веб-сайте, вы, возможно, не поймете, что делать с информацией, полученной после сканирования. Nikto на самом деле больше похож на лазерную указку, которая влечет за собой выстрел, и через некоторое время вы увидите, как это работает.
Для начала давайте поговорим о целях (target). Целью может оказаться почти любое место, куда может нанести свой удар хакер, например, сетевые принтеры или веб-сервер. Когда мы чуть позже перейдем к использованию Nikto, нам нужно будет предоставить ему один из трех видов информации: IP-адрес для локальной службы, веб-домен для атаки или веб-сайт SSL/HTTPS.
Прежде чем начинать сканирование с помощью Nikto, лучше предварительно провести разведку с помощью такого открытого инструмента как Maltego. Такие инструменты могут оказаться полезными при создании профиля и формировании более конкретного списка целей, на которых стоит сосредоточиться. Как только вы это сделаете, можно будет воспользоваться Nikto для поиска потенциальных уязвимостей в целях из вашего списка.
Если повезет, уязвимость с известным эксплойтом будет найдена, а значит, что уже существует инструмент, который поможет воспользоваться этим слабым местом. С помощью соответствующего инструмента, который автоматически эксплуатирует уязвимость, хакер может получить доступ к цели для выполнения любого количества скрытых атак, таких как, например, добавление вредоносного кода.
Шаг 1: Установка Nikto
Если вы используете Kali Linux, то Nikto будет предустановлен, поэтому вам ничего скачивать и устанавливать не придется. Он будет расположен в категории «Vulnerability Analysis». Если у вас его по какой-то причине нет, вы можете скачать Nikto с его репозитория на GitHub или просто использовать команду
apt install
. apt install nikto
Если вы работаете на Mac, то можете использовать Homebrew, чтобы установить Nikto.
brew install nikto
Шаг 2: Познакомьтесь с Nikto
Перед сканированием веб-серверов с помощью Nikto, воспользуйтесь параметром -Help, чтобы увидеть все, что можно делать с этим инструментом:
nikto -Help
Options: -ask+ Whether to ask about submitting updates yes Ask about each (default) no Don't ask, don't send auto Don't ask, just send -Cgidirs+ Scan these CGI dirs: "none", "all", or values like "/cgi/ /cgi-a/" -config+ Use this config file -Display+ Turn on/off display outputs: 1 Show redirects 2 Show cookies received 3 Show all 200/OK responses 4 Show URLs which require authentication D Debug output E Display all HTTP errors P Print progress to STDOUT S Scrub output of IPs and hostnames V Verbose output -dbcheck Check database and other key files for syntax errors -evasion+ Encoding technique: 1 Random URI encoding (non-UTF8) 2 Directory self-reference (/./) 3 Premature URL ending 4 Prepend long random string 5 Fake parameter 6 TAB as request spacer 7 Change the case of the URL 8 Use Windows directory separator (\) A Use a carriage return (0x0d) as a request spacer B Use binary value 0x0b as a request spacer -Format+ Save file (-o) format: csv Comma-separated-value htm HTML Format nbe Nessus NBE format sql Generic SQL (see docs for schema) txt Plain text xml XML Format (if not specified the format will be taken from the file extension passed to -output) -Help Extended help information -host+ Target host -404code Ignore these HTTP codes as negative responses (always). Format is "302,301". -404string Ignore this string in response body content as negative response (always). Can be a regular expression. -id+ Host authentication to use, format is id:pass or id:pass:realm -key+ Client certificate key file -list-plugins List all available plugins, perform no testing -maxtime+ Maximum testing time per host (e.g., 1h, 60m, 3600s) -mutate+ Guess additional file names: 1 Test all files with all root directories 2 Guess for password file names 3 Enumerate user names via Apache (/~user type requests) 4 Enumerate user names via cgiwrap (/cgi-bin/cgiwrap/~user type requests) 5 Attempt to brute force sub-domain names, assume that the host name is the parent domain 6 Attempt to guess directory names from the supplied dictionary file -mutate-options Provide information for mutates -nointeractive Disables interactive features -nolookup Disables DNS lookups -nossl Disables the use of SSL -no404 Disables nikto attempting to guess a 404 page -Option Over-ride an option in nikto.conf, can be issued multiple times -output+ Write output to this file ('.' for auto-name) -Pause+ Pause between tests (seconds, integer or float) -Plugins+ List of plugins to run (default: ALL) -port+ Port to use (default 80) -RSAcert+ Client certificate file -root+ Prepend root value to all requests, format is /directory -Save Save positive responses to this directory ('.' for auto-name) -ssl Force ssl mode on port -Tuning+ Scan tuning: 1 Interesting File / Seen in logs 2 Misconfiguration / Default File 3 Information Disclosure 4 Injection (XSS/Script/HTML) 5 Remote File Retrieval - Inside Web Root 6 Denial of Service 7 Remote File Retrieval - Server Wide 8 Command Execution / Remote Shell 9 SQL Injection 0 File Upload a Authentication Bypass b Software Identification c Remote Source Inclusion d WebService e Administrative Console x Reverse Tuning Options (i.e., include all except specified) -timeout+ Timeout for requests (default 10 seconds) -Userdbs Load only user databases, not the standard databases all Disable standard dbs and load only user dbs tests Disable only db_tests and load udb_tests -useragent Over-rides the default useragent -until Run until the specified time or duration -update Update databases and plugins from CIRT.net -useproxy Use the proxy defined in nikto.conf, or argument http://server:port -Version Print plugin and database versions -vhost+ Virtual host (for Host header) + requires a value
Шаг 3: Используйте базовый синтаксис
Как вы видите из предыдущего шага, у Nikto есть много вариантов использования, но для наших целей мы будем использовать базовый синтаксис с фактическим IP-адресом или именем хоста без угловых скобок.
nikto -h <IP or hostname>
Однако, Nikto способен выполнять сканирование SSL и порта 443, который используют сайты HTTPS (HTTP использует по умолчанию 80 порт). Таким образом, мы не ограничиваемся только сканированием старых сайтов, мы может проводить оценку уязвимостей сайтов, использующих SSL, что на сегодняшний день является почти обязательным требованием для индексирования в результатах поиска.
Если мы знаем, что у целевого сайта есть SSL, мы можем указать это в Nikto, чтобы сэкономить некоторые время на сканировании, добавив -ssl в конец команды.
nikto -h <IP or hostname> -ssl
Шаг 4: Сканируйте сайты с SSL
Например, давайте начнем со сканирования сайта
pbs.org
, чтобы увидеть типы информации, которые может выдать сканирование Nikto. После того, как он подключается к порту 443, мы видим какую-то полезную информацию о шифровании и другие детали, такие как, например, то, что сервер работает на nginx, однако здесь для нас не так много интересного.nikto -h pbs.org -ssl
- Nikto v2.1.6 ------------------------------------------------------------------------------ - STATUS: Starting up! + Target IP: 54.225.198.196 + Target Hostname: pbs.org + Traget Port: 443 ------------------------------------------------------------------------------ + SSl Info: Subject: /CN=www.pbs.org Altnames: account.pbs.org, admin.pgs.org, dipsy-tc.pbs.org, docs.pbs.org, ga.video.cdn.pbs.org, git.pbs.org, heart.ops.pbs.org, hub-dev.pbs.org, image.pbs.org, jaws..pbs.org, kids.pbs.org, koth-qa.svp.pbs.org, login.pbs.org, ops.pbs.org, pbs.org, player.pbs.org, projects.pbs.org, sentry.pbs.org, teacherline.pbs.org, urs.pbs.org, video.pbs.org, weta-qa.svp.pbs.org, whut-qa.svp.pbs.org, wnet.video-qa.pbs.org, wnet.video-staging.pbs.org, www-cache.pbs.org, www.pbs.org Ciphers: ECDHE-RSA-AES128-GCM-SHA256 Issuer: /C-US/0=Let's Encrypt/CN=Let's Encrypt Authority X3 + Start Time: 2018-12-05 23:34:06 (GMT-8) ------------------------------------------------------------------------------ + Server: nginx + The anti-clickjacking X-Frame-Options header is not present. + The X-XSS-Protection header is not defined. This header can hint to the user agent to protect against some forms of XSS + Uncommon header 'x-pbs-fwsrvname' found, with contents: fwcacheproxy1 + The site uses SSL and the Strict-Transport-Security HTTP header is not defined. + The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type + Root page / redirects to: https://www.pbs.org/ + No CGI Directories found (use '-C all' to force check all possible dirs) + RC-1918 IP address found in the 'x-pbs-appsvrip' header: The IP is "10.137.181.52". + Uncommon header 'x-cache-fs-status' found, with contents: EXPIRED + Uncommon header 'x-pbs-appsvrname' found, with contents: fwcacheproxy1 + Uncommon header 'x-pbs-appsvrip' found, with contents: 10.137.181.52 + Server leaks inodes via ETags, header found with file /pbs.org.zip, fields: 0x5b96537e 0x1678 + 7446 requests: 0 error(s) and 10 item(s) reported on remote host + End Time: 2018-12-06 00:30:29 (GMT-8) (3383 seconds) ------------------------------------------------------------------------------ + 1 host(s) tested
Шаг 5: Сканирование IP-адреса
Теперь, когда мы провели быстрое сканирование веб-сайта, мы можем попробовать использовать Nikto в локальной сети, чтобы найти embedded-сервера, такие как страница логина роутера или HTTP-сервис на другой машине, который представляет из себя просто сервер без веб-сайта. Чтобы узнать IP-адрес мы будем использовать
ifconfig
.IP-адрес, который нам нужен относится к «inet». На нем мы можем использовать ipcalc
для того, чтобы получить сетевой диапазон. Если у вас нет ipcalc, вы можете установить его с помощью команды apt install ipcalc
, а затем повторить попытку. Диапазон будет стоять после «Network», в моем случае это 192.168.0.0/24.
ifconfig
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 192.168.0.48 netmask 0xffffff00 broadcast 192.168.0.255 inet6 XXXX::XXX:XXXX:XXXX:XXXX%en0 prefixlen 64 secured scopeid 0x8 ether XX:XX:XX:XX:XX:XX txqueuelen 1000 (Ethernet) inet6 XXXX::XXX:XXXX:XXXX:XXXX%en0 prefixlen 64 autoconf secured inet6 XXXX::XXX:XXXX:XXXX:XXXX%en0 prefixlen 64 autoconf temporary nd6 options=201<PERFORMNUD,DAD> media: autoselect status: active en2: flags=8863<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500 options=60<TS04,TS06> ether XX:XX:XX:XX:XX:XX media: autoselect <full-duplex> status: inactive
Теперь мы хотим запустить Nmap, чтобы найти службы, работающие в этом сетевом диапазоне. Давайте сканировать 80 порт с помощью нашего диапазона, для этого допишем -oG (grepable output), чтобы получить только те хосты, которые подняты и работают, то есть те, которые отвечают, говоря, что 80 порт открыт. Затем мы сохраним все это в файл, который я назову
nullbyte.txt
, вы, в свою очередь, можете назвать его как угодно. ipcalc 192.168.0.48
Address: 192.168.0.48 11000000.10101000.00000000. 00110000 Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000 Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111 => Network: 192.168.0.0/24 11000000.10101000.00000000. 00000000 HostMin: 192.168.0.1 11000000.10101000.00000000. 00000001 HostMax: 192.168.0.254 11000000.10101000.00000000. 11111110 Broadcast: 192.168.0.255 11000000.10101000.00000000. 11111111 Hosts/Net: 254 Class C, Private Internet
Есть небольшой фокус, который поможет отправить все хосты прямо в Nikto для сканирования. Мы используем
cat
для чтения входных данных, хранящихся в нашем документе nullbyte.txt
(или как вы его назвали самостоятельно). После этого мы используем awk – специальный инструмент в Linux, который поможет найти следующий шаблон, где Up означает, что хост поднят, а print $2 значит, что нужно вывести второе слово в каждой строке, то есть только IP-адрес. Затем, полученные данные мы отправим в файл, который называется targetIP.txt
(или как вам захочется).cat nullbyte.txt | awk '/Up$/{print $2}' | cat >> targetIP.txt
Теперь мы можем просмотреть содержимое нашего нового файла с помощью cat, чтобы увидеть все IP-адреса, у которых открыт 80 порт.
cat targetIP.txt
192.168.0.1 192.168.0.2 192.168.0.4 192.168.0.5 192.168.0.11 192.168.0.24 192.168.0.31 192.168.0.48 192.168.0.60
Такой формат идеально подойдет Nikto, поскольку он может легко интерпретировать подобные файлы. Таким образом, мы можем отправить этот вывод в Nikto следующей командой.
nikto -h targetIP.txt
Результаты будут аналогичны тем, что мы получили при сканировании с SSL.
Шаг 6: Сканирование HTTP-сайта
Мы просканировали защищенный веб-сайт и IP-адрес в локальной сети, теперь настало время искать незащищенный веб-домен, который использует 80 порт. Для этого примера я использую сайт afl.com.au, у которого не было SSL в тот момент, когда я проводил это сканирование.
nikto -h www.afl.com.au
- Nikto v2.1.6 --------------------------------------------------------------------------- + Target IP: 159.180.84.10 + Target Hostname: www.afl.com.au + Target Port: 80 + Start Time: 2018-12-05 21:48:32 (GMT-8) --------------------------------------------------------------------------- + Server: instart/nginx + Retried via header: 1.1 varnish (Varnish/6.1), 1.1 e9ba0a9a729ff2960a04323bf1833df8.cloudfront.net (CloudFront) + The anti-clickjacking X-Frame-Options header is not present. + The X-XSS-Protection header is not defined. This header can hint to the user agent to protect against some forms of XSS + Uncommon header 'x-cache' found, with contents: Miss from cloudfront + Uncommon header 'x-instart-cache-id' found, with contents: 17:12768802731504004780::1544075250 + Uncommon header 'v-cache-hit' found, with contents: Hit + Uncommon header 'x-amz-cf-id' found, with contents: Dr-r6OwO5kk9ABt4ejzpc7R7AIF6SuH6kfJHQgP0v6xZoHwMLE55rQ== + Uncommon header 'x-instart-request-id' found, with contents: 12814413144077601501:BEQ01-CPVNPPRY18:1552504721:0 + Uncommon header 'x-oneagent-js-injection' found, with contents: true + Uncommon header 'grace' found, with contents: cache + The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type + Uncommon header 'x-ruxit-js-agent' found, with contents: true + Cookie dtCookie created without the httponly flag + Server banner has changed from 'instart/nginx' to 'nginx' which may suggest a WAF, load balancer or proxy is in place + No CGI Directories found (use '-C all' to force check all possible dirs) + Entry '/sites/' in robots.txt returned a non-forbidden or redirect HTTP code (200) + Entry '/search/' in robots.txt returned a non-forbidden or redirect HTTP code (200) + Entry '*.mobileapp' in robots.txt returned a non-forbidden or redirect HTTP code (400) + Entry '*.liveradio' in robots.txt returned a non-forbidden or redirect HTTP code (400) + Entry '*.smartmobile' in robots.txt returned a non-forbidden or redirect HTTP code (400) + Entry '*.responsive' in robots.txt returned a non-forbidden or redirect HTTP code (400) + Entry '/stats?*/' in robots.txt returned a non-forbidden or redirect HTTP code (200) + "robots.txt" contains 8 entries which should be manually viewed. + OSVDB-3092: /sitemap.xml: This gives a nice listing of the site content. + OSVDB-3092: /psql_history: This might be interesting... + OSVDB-3092: /global/: This might be interesting... + OSVDB-3092: /home/: This might be interesting... + OSVDB-3092: /news: This might be interesting... + OSVDB-3092: /search.vts: This might be interesting... + OSVDB-3092: /stats.htm: This might be interesting... + OSVDB-3092: /stats.txt: This might be interesting... + OSVDB-3092: /stats/: This might be interesting... + OSVDB-3092: /Stats/: This might be interesting... + OSVDB-3093: /.wwwacl: Contains authorization information + OSVDB-3093: /.www_acl: Contains authorization information + OSVDB-3093: /.htpasswd: Contains authorization information + OSVDB-3093: /.access: Contains authorization information + OSVDB-3093: /.addressbook: PINE addressbook, may store sensitive e-mail address contact information and notes + OSVDB-3093: /.bashrc: User home dir was found with a shell rc file. This may reveal file and path information. + OSVDB-3093: /.bash_history: A user's home directory may be set to the web root, the shell history was retrieved. This should not be accessible via the web. + OSVDB-3093: /.forward: User home dir was found with a mail forward file. May reveal where the user's mail is being forwarded to. + OSVDB-3093: /.history: A user's home directory may be set to the web root, the shell history was retrieved. This should not be accessible via the web. + OSVDB-3093: /.htaccess: Contains configuration and/or authorization information + OSVDB-3093: /.lynx_cookies: User home dir found with LYNX cookie file. May reveal cookies received from arbitrary web sites. + OSVDB-3093: /.mysql_history: Database SQL? + OSVDB-3093: /.passwd: Contains authorization information + OSVDB-3093: /.pinerc: User home dir found with a PINE rc file. May reveal system information, directories and more. + OSVDB-3093: /.plan: User home dir with a .plan, a now mostly outdated file for delivering information via the finger protocol + OSVDB-3093: /.proclog: User home dir with a Procmail rc file. May reveal mail traffic, directories and more. + OSVDB-3093: /.procmailrc: User home dir with a Procmail rc file. May reveal subdirectories, mail contacts and more. + OSVDB-3093: /.profile: User home dir with a shell profile was found. May reveal directory information and system configuration. + OSVDB-3093: /.rhosts: A user's home directory may be set to the web root, a .rhosts file was retrieved. This should not be accessible via the web. + OSVDB-3093: /.sh_history: A user's home directory may be set to the web root, the shell history was retrieved. This should not be accessible via the web. + OSVDB-3093: /.ssh: A user's home directory may be set to the web root, an ssh file was retrieved. This should not be accessible via the web. + OSVDB-5709: /.nsconfig: Contains authorization information + /portal/changelog: Vignette richtext HTML editor changelog found. + 7587 requests: 4 error(s) and 55 item(s) reported on remote host + End Time: 2018-12-05 22:42:41 (GMT-8) (3249 seconds) --------------------------------------------------------------------------- + 1 host(s) tested
Из информации выше, мы понимаем, что присутствует сервер Varnish и некоторые заголовки, которые могут подсказать, как сконфигурирован веб-сайт. Однако более полезная информация – это обнаруженные каталоги, которые могут помочь зацепить конфигурационные файлы, содержащие учетные данные или другие вещи, которые были неправильно сконфигурированы и оказались доступными непреднамеренно.
Элементы с префиксом OSVDB – это уязвимости, о которых сообщается на Open Source Vulnerability Database (сайте, который закрылся в 2016 году). Он похож на другие базы данных уязвимостей, такие как SecurityFocus, Microsoft Technet и Vulnerabilities and Exposures (https://cve.mitre.org/). Лично мне ближе National Vulnerability Database.
Несмотря на то, что наше сканирование не выявило никаких критических уязвимостей, которые можно было бы эксплуатировать, вы можете использовать справочный инструмент CVE для перевода идентификатора OSVDB в запись CVE, чтобы вы могли воспользоваться одним из сайтов, приведенных выше.
Допустим, вы нашли что-то достойное исследования, например CVE-2018-10933, уязвимость Libssh, о которой мы подробнее говорили ранее. CVE содержит информацию о том, как ее эксплуатировать, насколько уязвимость серьезна (например, критическая уязвимость) и некоторые другие сведения, которые могут помочь определиться с вектором атаки. Если это что-то стоящее, вы можете поискать с Metasploit, поскольку кто-то скорее всего уже разработал модуль, который поможет легко эксплуатировать эту уязвимость.
Шаг 7: Сканирование вместе с Metasploit
Одна из лучших вещей в Nikto заключается в том, что вы можете просто экспортировать информацию, полученную при сканировании, в формат, который сможет прочитать Metasploit. Для этого просто используйте команды для выполнения сканирования, приведенные выше, но добавьте к ним в конце флаги -Format msf+. Этот формат может помочь быстро сопоставить данные, полученные с помощью эксплойта.
nikto -h <IP or hostname> -Format msf+
Итак, в сегодняшнем руководстве мы перешли от определения цели к поиску уязвимостей в ней, а затем связали найденные уязвимости с эксплойтом, чтобы нам не пришлось делать всю работу вручную. Поскольку Nikto не работает скрытно, разумно выполнять эти сканирования через VPN, Tor или другой тип сервиса, чтобы ваш IP-адрес не был помечен как подозрительный.
→ Записаться на бесплатный урок
13 Инструменты сканирования уязвимостей в Интернете для проверки безопасности вашего веб-сайта
Каждый раз, когда вы делитесь своими онлайн-приложениями с общественностью, вы рискуете быть взломанными. Вот почему абсолютно необходимо настроить надежное сканирование уязвимостей вашей сети, серверов и онлайн-приложений.
К счастью, ряд проверенных методов позволяет выявлять, классифицировать, исправлять и отслеживать любые возможные дыры в безопасности. И так же, как мы поделились с вами обзором основных доступных OSINT-инструментов, сегодня мы рассмотрим 13 основных онлайн-инструментов сканирования уязвимостей, которые позволят вам позаботиться о проблемах до того, как это сделают злоумышленники.
Чтобы удовлетворить ваши потребности, мы включили как бесплатные, так и коммерческие решения.
Обсерватория Мозилла
Mozilla HTTP Observatory - один из самых эффективных онлайн-сканеров уязвимостей. Этот сканер безопасности, созданный Mozilla Foundation, будет анализировать ваш веб-сайт с помощью различных методов для выявления потенциальных ошибок и дыр в безопасности в вашем веб-приложении и на серверах.
Тесты разделены на четыре категории: HTTP Observatory, TLS Observatory, SSH Observatory и Сторонние тесты.
TLS Observatory и сторонние тесты (с таких сайтов, как ssllabs.com, htbridge.com, tls.imirhil.fr,
securityheaders.com и hstspreload.org) сосредоточены на безопасности SSL и заголовках HTTP и показывают действительно интересные результаты, такие как уязвимые наборы шифров, например:
Наконец, существует также сканер служб SSH, который необходимо запускать вручную. В большинстве случаев вам потребуется внести IP-адрес обсерватории в белый список, чтобы сгенерировать точное сканирование, избегая блокировок межсетевого экрана.
После того, как вы определите свои слабые стороны SSH, вы можете приступить к усилению защиты своего сервера для защиты от наиболее распространенных атак SSH.
Обнаружить
Detectify - это широко известный онлайн-сканер уязвимостей, который позволяет владельцам бизнеса, командам информационной безопасности и разработчикам автоматически проверять более 1000 известных уязвимостей.
Его встроенная функция мониторинга поддоменов будет непрерывно анализировать любые враждебные атаки. Он также проверяет ваш сайт на соответствие основным тестам уязвимостей OWASP, позволяет интегрировать сканирование безопасности с популярными инструментами разработки, такими как Slack, Zapier и Jira, и экспортировать результаты всех обнаруженных уязвимостей в виде сводки или полного отчета.
При первом сканировании оно начинается со сбора информации с сервера, затем сканирование, снятие отпечатков пальцев и последующий анализ информации, завершается эксплуатационными тестами и генерирует результаты сканирования.
После завершения результаты будут отображены на панели управления пользователя, показывая серьезность уязвимостей, обнаруженных в ваших приложениях, как показано ниже:
Вы увидите полный список предупреждений системы безопасности и критических ошибок, обнаруженных на вашем веб-сайте, от смешанного содержимого HTTP / HTTPS до уязвимых конфигураций заголовка HTTP, старых протоколов SSL / TLS и многого другого.
И последнее, но не менее важное: Detectify проанализирует ваш веб-сайт на предмет соответствия знаменитому списку 10 уязвимостей OWASP и даст вам окончательную оценку, а также быстрые ссылки, предлагающие дополнительную информацию о том, как исправить каждую проблему, угрожающую безопасности:
Сканер уязвимостей веб-сервера Pentest
Сканер уязвимостей веб-сервераPentest - еще один замечательный продукт, разработанный PenTest-Tools, компанией, известной своим широким спектром инструментов информационной безопасности, которые могут сканировать ваш веб-сайт на предмет любых уязвимостей.
Здесь мы протестировали онлайн-сканер уязвимостей веб-сервера с 20 бесплатными кредитами, которые они предлагают для гостей-пользователей.
Результаты показывают сводку рейтинга риска, обнаруженные потенциально конфиденциальные файлы, уязвимости удаленного выполнения команд, статистику внедрения SQL, произвольное чтение файлов, устаревшее серверное программное обеспечение, неправильно настроенные службы сервера, обнаруженное серверное программное обеспечение и технологии, а также файл robots.txt. и полная проверка заголовка безопасности HTTP.
Этот инструмент особенно полезен, когда вам нужно выполнить несколько специальных тестов; в нашем случае 20 бесплатных кредитов было достаточно, чтобы запустить два сканирования с одного и того же IP-адреса, прежде чем предлагать свой план Pro для полного глубокого сканирования.
Qualys FreeScan
Хотя Qualys известна своим тестированием SSL, большинство людей не знают, что они также предлагают полный сканер уязвимостей, который бесплатно анализирует ваши веб-сайты. Этот сервис позволяет выполнять 10 бесплатных сканирований любых URL-адресов или IP-адресов. Бесплатный сканер Qualys анализирует следующие проблемы:
- Аудит веб-приложений OWASP
- Уязвимости, связанные с сетью
- Отсутствующие исправления программного обеспечения
- Соответствие SCAP
- Скрытое вредоносное ПО
- Уязвимости SSL-сертификата
Когда результаты будут завершены, вы увидите что-то вроде этого:
Результаты будут отфильтрованы по уровню воздействия на безопасность, от уязвимостей высокой до низкой.Как показано ниже справа, вы также можете увидеть связанную информацию об CVE для каждой обнаруженной уязвимости.
Занимая первое место в нашем списке, это один из лучших сканеров уязвимостей; однако процесс утверждения вручную не является правильным выбором для тех, кто спешит.
Probe.ly
Возможно, это не известный сканер веб-уязвимостей, но он весьма эффективен. Probe.ly просканирует ваши веб-приложения, чтобы найти проблемы с безопасностью и уязвимости, и предложит вам способы их устранения.
Probe.ly можно использовать для выполнения сканирования OWASP Top 10, а также для проверки соответствия PCI-DSS, ISO27001, HIPAA и GDPR.
Он включает простой в использовании интерфейс, который помогает сканировать ваш сайт за секунды. После завершения он отправляет вам результаты по электронной почте и отображает полную информацию в интерфейсе вашей клиентской области, позволяя загружать результаты сканирования в форматах PDF и CSV для дальнейшего анализа.
ImmuniWeb
ImmuniWeb Security Test - надежный и надежный продукт, который выполняет проверки безопасности и конфиденциальности веб-приложений, включая общеизвестные уязвимости, устаревшее программное обеспечение, работающее на удаленном сервере, методы HTTP, заголовки HTTP (HSTS, X-Frame-Options, X-Powered- By, X-Content-Type-Options, X-XSS-Protection, CSP, Public-Key-Pins и др.), Проверка черного списка, удаленное обнаружение WAF, а также обнаружение кампании криптоджекинга в файлах Javascript.
Благодаря удобному веб-интерфейсу сканирование сообщает о результатах в течение нескольких секунд и дает окончательную оценку безопасности, сообщая вам обо всех обнаруженных уязвимостях и о том, соответствуете ли вы требованиям стандарта PCI DSS.
Окончательный отчет включает другие интересные детали, такие как обнаружение порта / протокола, информацию о сертификате SSL и полный анализ безопасности файлов cookie.
Upguard
Upguard - австралийская компания, занимающаяся кибербезопасностью, которая предлагает несколько решений, которые помогают онлайн-стартапам обеспечивать безопасность своих систем и предотвращать взломы Интернета.
Их сканер уязвимостей - один из самых быстрых из обнаруженных нами. Это также совершенно бесплатный и недорогой способ проверить свой веб-сайт на наличие более 40 уязвимостей высокой степени опасности и популярных CVE.
Платформа автоматически сканирует ваш сервер, веб-приложения и сеть, включая, помимо прочего, атаки типа «человек в середине», межсайтовые атаки, мошеннические атаки по электронной почте, атаки с захватом домена, заражение вредоносным ПО, открытые порты и неаутентифицированные записи DNS.
После завершения сканер покажет вам сводную информацию о компании, стоящей за доменным именем (cloudflare.com в наших тестах), их рейтинг кибербезопасности, а также полное описание каждой уязвимости, обнаруженной в вашем доменном имени и веб-приложениях.
Веб-сканер файлов cookie
Web Cookies Scanner - это универсальный инструмент для сканирования уязвимостей веб-сайтов, который основывает свои тесты на анализе файлов cookie HTTP, задействованных технологий (Flash, HTML5 localStorage, sessionStorage, CANVAS, Supercookies, Evercookies) и сеансов HTTP, а также включает HTML, SSL. / Функции сканирования уязвимостей TLS.
В ходе сканирования анализируются файлы cookie трех различных типов, такие как файлы cookie сторонних доменов, постоянные файлы cookie и файлы cookie сеанса.
Сканирование HTTP-заголовка показывает, насколько безопасен ваш веб-сайт с точки зрения усиления и безопасности HTTP-заголовка, как вы видите в следующем примере (из нашего сканирования mozilla.org):
Tinfoil Security
Tinfoil Security Scanner - еще одно отличное решение для поиска уязвимостей. Это бесплатное сканирование дает вам доступ к пробному периоду, в течение которого вы можете сканировать свой веб-сайт на наличие уязвимостей против широкого спектра дыр в безопасности, основных CVE и отпечатков пальцев.
Хотя их сканирование выполняется немного медленнее, чем другие, оно является глубоким и тщательным и позволяет выявлять скрытые уязвимости в вашем коде, сервере и сети.
Когда закончите, он покажет вам результаты, как на следующем снимке экрана:
Сукури
Хотя Sucuri SiteCheck стал известен как сканер вредоносных программ, он также выполняет несколько задач по сканированию уязвимостей.
В полном отчете представлены результаты сканирования на наличие вредоносных программ, проверки внесения в черный список и состояние веб-сайта брандмауэра от сторонних служб, таких как Google Safe Browsing, Norton Safe Web, McAfee, PhishTank и Spamhaus.
Он также проанализирует код вашего веб-сайта на предмет ошибок сервера, спама и любого вредоносного кода, внедренного в ваши файлы HTML, CSS и Javascript.
Он также может отображать важную системную информацию, такую как IP-адреса (ipv4 и ipv6), подписи веб-серверов и серверов приложений.
ScanMyServer
ScanMyServer - это бесплатный инструмент, который ищет распространенные уязвимости и дыры в безопасности и может выполнять различные тесты внедрения кода PHP, тесты внедрения заголовка HTTP, атаки межсайтового скриптинга, SQL и слепое внедрение SQL.
Чтобы протестировать эту услугу, вы должны сначала разместить значок HTML на своем веб-сайте. Как только ScanMyServer обнаружит код на вашем веб-сайте, результаты должны быть отправлены вам по электронной почте в течение следующих 2 часов.
Этот тест выполняет тщательное сканирование и сообщает результаты, содержащие рекомендации по устранению рисков. Учетная запись также позволяет вам бесплатно выполнять еженедельное сканирование одного домена.
Сканирование HackerTarget WP
Хотя это не обычный онлайн-сканер уязвимостей, он отлично работает для тех, кто создал свою веб-страницу с помощью WordPress CMS.
HackerTarget предлагает бесплатный сканер безопасности WordPress, который может быть очень полезен после первоначальной настройки WordPress для обнаружения и устранения слабых мест вашего блога, электронной коммерции или корпоративного веб-сайта с помощью этой CMS.
Проверки безопасности включают безопасность основных приложений WordPress, установленные плагины и темы, а также программное обеспечение веб-сервера и конфигурацию хостинга.
Первый тест бесплатный и выполняет простое сканирование безопасности необработанного HTML-кода блога, который вы ввели.Второе сканирование углубляется, перечисляя плагины и темы и выполняя массовый аудит WordPress с использованием сценариев Nmap NSE, Nikto, OpenVAS и других популярных сканеров уязвимостей.
Бесплатное сканирование определит версию установки WordPress Core, обнаружит плагины в необработанных данных HTML, определит активную тему WordPress, выполнит перечисление пользователей, выведет список всех фреймов и файлов javascript, проверит, включен ли индекс каталога, а также проверит для репутации Google Safe Browsing, Spamhaus и других черных списков блокировки.
Если вы заинтересованы в поиске более конкретных сканеров уязвимостей WP, ознакомьтесь с этой статьей: 5 лучших сканеров уязвимостей WordPress.
Веб-сканер Vulners
Vulners Web Scanner - это не веб-сканер, а расширение браузера, доступное для Google Chrome и Firefox. Он работает на любой веб-странице, анализируя текущие названия и версии любого программного обеспечения, запущенного в ответе HTML, от веб-сервера до библиотек javascript, фреймворков и т. Д.
Как только вы нажмете кнопку «Сканировать», он начнет поиск и покажет вам результаты в одном окне со всеми подробностями о найденном программном обеспечении, в том числе о том, обновлено ли оно (безопасно), связано ли оно с любым типом CVE или другие общеизвестные уязвимости.
Но это еще не все. Vulners также будут проверять каждый ресурс, который вы загружаете с внешних серверов, например статистическое программное обеспечение, удаленные шрифты, источники javascript и т. Д.
Это простой инструмент, который выполняет свою работу: он находит уязвимые версии программного обеспечения на вашем веб-сайте, но его никогда не следует использовать в качестве окончательного инструмента сканирования, только как быстрое и базовое дополнение.
Заключение
Использование любого из перечисленных онлайн-инструментов сканирования уязвимостей может помочь вам выявить и отследить любые уязвимости безопасности в вашей сети, серверах и веб-приложениях. Чтобы добиться максимальной эффективности, мы предлагаем вам запустить несколько тестов с разными инструментами и перепроверить результаты всех из них.
После того, как вы протестировали и нашли для себя лучшие инструменты из этого списка, вы можете добавить автоматическое сканирование, чтобы получать ежедневный или еженедельный отчет по электронной почте, что позволит вам заранее отслеживать результаты.Большинство рассмотренных здесь решений предлагают как запланированное сканирование, так и даже доступ к API для создания встроенных решений с вашими собственными приложениями.
Точно так же, как инструменты онлайн-сканирования уязвимостей помогают выявлять возможные сетевые угрозы в ваших веб-приложениях и инфраструктуре, наш API кибербезопасности можно интегрировать с вашими собственными приложениями, чтобы получить более глубокое представление о том, что скрывается за любым доменным именем, DNS-сервером и блокировкой IP.
Если вы хотите сделать еще один шаг вперед и открыть для себя всю теневую инфраструктуру любой компании или доменного имени, попробуйте SurfaceBrowser или закажите демонстрацию у нашей команды продаж сегодня!
ЭСТЕБАН БОРДЖЭстебан - опытный исследователь и специалист по кибербезопасности с более чем 15-летним опытом.С момента присоединения к SecurityTrails в 2017 году он был нашим специалистом по технической безопасности серверов и информации об источниках.
.Сканер уязвимостей веб-сайтов - онлайн-сканирование веб-уязвимостей
Версия сканера Full включает все тесты из сканирования Light и добавляет более сложные тесты безопасности. Сначала он сканирует целевое приложение, затем отправляет различные входные данные в параметры страниц и ищет определенные веб-уязвимости, такие как: внедрение SQL, межсайтовые сценарии, включение локальных файлов, внедрение команд ОС и многие другие.Кроме того, сканер также пытается обнаружить конфиденциальные файлы с сервера, такие как файлы резервных копий, старые файлы, интерфейсы администратора, файлы архивов и т. Д.
Хотя Light Scan является пассивным и генерирует максимум 20 HTTP-запросов к серверу, Full Scan более агрессивен и отправляет до 10 000 HTTP-запросов. Это может вызвать срабатывание сигнализации от устройств IDS, но вы должны знать, что это не деструктивное сканирование.
Поскольку Full Scan выполняет комплексную оценку веб-сайта, это может занять до нескольких часов.
Сканирование с аутентификацией
Сканер уязвимостей веб-сайтов может сканировать целевое веб-приложение как аутентифицированный пользователь. Аутентификацию можно настроить двумя способами:- Аутентификация пользователя / пароля : Когда выбран этот параметр, сканер сначала попытается аутентифицироваться по указанному URL-адресу для входа и получить действительный файл cookie сеанса. Этот файл cookie будет использоваться со всеми HTTP-запросами к серверу, выполняя сканирование с проверкой подлинности.У вас есть возможность проверить, была ли аутентификация успешной, перед фактическим запуском сканирования.
- Аутентификация файлов cookie : с помощью этой опции вы можете указать уже действующий файл cookie сеанса (или несколько файлов cookie), который будет отправляться с каждым HTTP-запросом на сервер. Сначала вы должны получить файл cookie сеанса, вручную войдя в целевое приложение с помощью веб-браузера и передав файл cookie из браузера в сканер (скопировать / вставить).
- Аутентификация заголовков : этот параметр позволяет указать настраиваемые заголовки HTTP, которые будут отправляться с каждым запросом в целевое приложение.Их можно использовать для аутентификации (например, токены JWT, базовая аутентификация и т. Д.) Или для других конкретных функций приложения.
Как сканировать уязвимости на любом веб-сайте с помощью Nikto «Null Byte :: WonderHowTo
Перед атакой любого веб-сайта хакер или тестер на проникновение сначала составляет список целевых поверхностей. После того, как они проведут хорошую разведку и найдут нужные места, на которые можно направить свою область действия, они будут использовать инструмент сканирования веб-сервера, такой как Nikto, для поиска уязвимостей, которые могут быть потенциальными векторами атаки.
Nikto - это простой сканер веб-серверов с открытым исходным кодом, который исследует веб-сайт и сообщает об обнаруженных уязвимостях, которые могут быть использованы для использования или взлома сайта.Кроме того, это один из наиболее широко используемых инструментов для устранения уязвимостей веб-сайтов в отрасли, и во многих кругах считается отраслевым стандартом.
Хотя этот инструмент чрезвычайно эффективен, он совсем не скрытный. Любой сайт с системой обнаружения вторжений или другими мерами безопасности обнаружит, что он сканируется. Первоначально разработанная для тестирования безопасности, невидимость никогда не вызывала беспокойства.
Правильный способ использования Nikto
Если вы просто запускаете Nikto самостоятельно на целевом веб-сайте, вы можете не знать, что делать с информацией из сканирования.Nikto на самом деле больше похож на лазерную указку для нанесения гораздо большего удара, и вы увидите, как это разыграется чуть позже.
Сначала поговорим о целевой поверхности. Это практически везде, где хакер попытается атаковать, и может включать такие вещи, как сетевые принтеры и веб-сервер. Когда мы позже перейдем к использованию Nikto, нам потребуется предоставить ему один из трех различных типов информации: IP-адрес для локальной службы, веб-домен для атаки или веб-сайт SSL / HTTPS.
Перед тем, как погрузиться в сканирование с помощью Nikto, лучше провести дополнительную разведку с помощью инструмента разведки с открытым исходным кодом, такого как Maltego. Подобные инструменты могут помочь создать профиль и составить более конкретный список доступных целей, на которых следует сосредоточиться. Как только это будет сделано, Nikto можно будет использовать для выявления потенциальных уязвимостей для целей из списка.
Если повезет, будет обнаружена уязвимость с вооруженным эксплойтом, а это значит, что уже есть инструмент, позволяющий воспользоваться этой уязвимостью.С помощью соответствующего инструмента, который автоматически использует уязвимость, хакер может получить доступ к цели для выполнения любого количества закулисных атак, таких как добавление кода для выполнения вредоносной деятельности.
Шаг 1. Установка Nikto
Если вы используете Kali Linux, Nikto предустановлен, поэтому вам не нужно ничего загружать или устанавливать. Он будет находиться в категории «Анализ уязвимостей». Если по какой-то причине у вас его нет, вы можете получить Nikto с его GitHub или просто использовать команду apt install .
apt install nikto
Если вы делаете это на Mac, вы можете использовать Homebrew для установки Nikto.
brew install nikto
Шаг 2. Познакомьтесь с Nikto
Прежде чем погрузиться в сканирование веб-серверов с помощью Nikto, вы можете использовать опцию -Help , чтобы увидеть все, что можно сделать внутри Nikto.
nikto -Помощь
Опции: -ask + Спрашивать об отправке обновлений да Спросите о каждом (по умолчанию) нет Не спрашивай, не отправляй авто Не спрашивайте, просто отправьте -Cgidirs + Сканировать эти каталоги CGI: "none", "all" или значения, такие как "/ cgi / / cgi-a /" -config + Использовать этот файл конфигурации -Display + Включение / выключение выходов дисплея: 1 Показать редиректы 2 Показать полученные куки 3 Показать все ответы 200 / OK 4 Показать URL-адреса, требующие аутентификации D Отладочный вывод E Показать все ошибки HTTP P Прогресс печати в STDOUT S Очистить вывод IP-адресов и имен хостов V Подробный вывод -dbcheck Проверить базу данных и другие ключевые файлы на наличие синтаксических ошибок - уклонение + Техника кодирования: 1 случайная кодировка URI (не UTF8) 2 Самостоятельная ссылка на каталог (/./) 3 Преждевременное окончание URL 4 Добавьте длинную случайную строку 5 Поддельный параметр 6 TAB в качестве разделителя запроса 7 Измените регистр URL 8 Используйте разделитель каталогов Windows (\) A Используйте возврат каретки (0x0d) в качестве разделителя запроса B Используйте двоичное значение 0x0b в качестве разделителя запроса -Format + Сохранить файл (-o) в формате: csv Значение, разделенное запятыми HTML в формате htm nbe формат Nessus NBE sql Generic SQL (схему см. в документации) txt Обычный текст xml Формат XML (если не указано, формат будет взят из расширения файла, переданного в -output) -Помощь Расширенная справочная информация -host + целевой хост -404code Игнорировать эти HTTP-коды как отрицательные ответы (всегда).Формат - «302,301». -404string Игнорировать эту строку в теле ответа как отрицательный ответ (всегда). Может быть регулярным выражением. -id + Используемая аутентификация хоста, формат: id: pass или id: pass: realm -key + файл ключа сертификата клиента -list-plugins Перечислить все доступные плагины, не проводить тестирование -maxtime + Максимальное время тестирования на хост (например, 1 час, 60 минут, 3600 секунд) -mutate + Угадайте дополнительные имена файлов: 1 Протестируйте все файлы со всеми корневыми каталогами 2 Угадайте имена файлов паролей 3 Перечислить имена пользователей через Apache (/ ~ запросы типа пользователя) 4 Перечислить имена пользователей с помощью cgiwrap (/ cgi-bin / cgiwrap / ~ запросы типа пользователя) 5 Попытка перебора имен поддоменов, предполагая, что имя хоста является родительским доменом 6 Попытайтесь угадать имена каталогов из предоставленного файла словаря -mutate-options Предоставляет информацию для мутаций -nointeractive Отключает интерактивные функции. -nolookup Отключает поиск DNS -nossl Отключает использование SSL -no404 Отключает попытки nikto угадать 404-ю страницу -Опция Перекатать опцию в никто.conf, может быть выдан несколько раз -output + Записать вывод в этот файл ('.' для автоматического имени) -Пауза + пауза между тестами (секунды, целые числа или числа с плавающей запятой) -Plugins + Список плагинов для запуска (по умолчанию: ALL) -port + Порт для использования (по умолчанию 80) -RSAcert + Файл сертификата клиента -root + Добавлять корневое значение ко всем запросам, формат: / каталог -Сохранить Сохранять положительные ответы в этот каталог ('.' Для автоматического имени) -ssl Принудительно использовать ssl-режим для порта -Тюнинг + развертка тюнинг: 1 интересный файл / замечено в журналах 2 Неверная конфигурация / Файл по умолчанию 3 Раскрытие информации 4 Внедрение (XSS / скрипт / HTML) 5 Удаленное получение файлов - внутри веб-корня 6 отказ в обслуживании 7 Удаленное извлечение файлов - для всего сервера 8 Выполнение команд / удаленная оболочка 9 SQL-инъекция 0 Загрузить файл обход аутентификации б Идентификация программного обеспечения c Включение удаленного источника d WebService e Консоль администрирования x Параметры обратной настройки (i.е., включить все, кроме указанного) -timeout + Тайм-аут для запросов (по умолчанию 10 секунд) -Userdbs Загружать только пользовательские базы данных, а не стандартные базы данных all Отключить стандартные базы данных и загрузить только пользовательские базы данных tests Отключить только db_tests и загрузить udb_tests -useragent Заменяет пользователя по умолчанию -until Run до указанного времени или продолжительности -update Обновить базы и плагины из CIRT.сеть -useproxy Использовать прокси, определенный в nikto.conf, или аргумент http: // server: port -Version Print плагин и версии базы данных -vhost + Virtual host (для заголовка Host) + требует значения
Шаг 3: Используйте базовый синтаксис
Как вы можете видеть из предыдущего шага, Nikto имеет много опций, но для наших целей мы будем придерживаться базового синтаксиса следующим образом. Мы заменим
nikto -h
Однако Nikto может выполнять сканирование, которое может выполняться после SSL и порта 443, порта, используемого веб-сайтами HTTPS (по умолчанию HTTP использует порт 80). Таким образом, мы не ограничиваемся только сканированием старых сайтов, мы можем проводить оценку уязвимости на сайтах, использующих SSL, что в наши дни в значительной степени является требованием для индексации в результатах поиска.
Если мы знаем, что нацелен на сайт SSL, мы можем указать его в Nikto, чтобы сэкономить время на сканировании, добавив -ssl в конец команды.
nikto -h -ssl
Шаг 4. Сканирование веб-сайта с поддержкой SSL
Например, давайте начнем со сканирования pbs.org, чтобы увидеть некоторые типы информации, которую будет сканировать Nikto. шоу. После того, как он подключается к порту 443, мы видим, что есть некоторая полезная информация о шифре и список других деталей, например, что сервер - это Nginx, но для нас здесь не так много интересных данных.
nikto -h pbs.org -ssl
- Nikto v2.1.6 -------------------------------------------------- ---------------------------- - СТАТУС: Запускается! + Целевой IP: 54.225.198.196 + Целевое имя хоста: pbs.org + Порт Traget: 443 -------------------------------------------------- ---------------------------- + Информация SSl: Тема: /CN=www.pbs.org Альтернативные имена: account.pbs.org, admin.pgs.org, dipsy-tc.pbs.org, docs.pbs.org, ga.video.cdn.pbs.org, git.pbs.org, heart.ops.pbs. org, hub-dev.pbs.org, image.pbs.org, челюсти..пбс.org, kids.pbs.org, koth-qa.svp.pbs.org, login.pbs.org, ops.pbs.org, pbs.org, player.pbs.org, projects.pbs.org, sentry.pbs. org, teacherline.pbs.org, urs.pbs.org, video.pbs.org, weta-qa.svp.pbs.org, whut-qa.svp.pbs.org, wnet.video-qa.pbs.org, wnet.video-staging.pbs. org, www-cache.pbs.org, www.pbs.org Шифры: ECDHE-RSA-AES128-GCM-SHA256 Эмитент: / C-US / 0 = Let's Encrypt / CN = Let's Encrypt Authority X3 + Время начала: 2018-12-05 23:34:06 (GMT-8) -------------------------------------------------- ---------------------------- + Сервер: nginx + Отсутствует заголовок X-Frame-Options для защиты от кликджекинга.+ Заголовок X-XSS-Protection не определен. Этот заголовок может намекать пользовательскому агенту на защиту от некоторых форм XSS. + Обнаружен необычный заголовок 'x-pbs-fwsrvname' с содержимым: fwcacheproxy1 + Сайт использует SSL, а HTTP-заголовок Strict-Transport-Security не определен. + Заголовок X-Content-Type-Options не установлен. Это может позволить агенту пользователя отображать содержимое сайта иным образом, чем MIME-тип. + Корневая страница / перенаправляет на: https://www.pbs.org/ + Каталоги CGI не найдены (используйте '-C all', чтобы принудительно проверить все возможные каталоги) + IP-адрес RC-1918 в заголовке 'x-pbs-appsvrip': IP-адрес: «10.137.181.52 ". + Обнаружен необычный заголовок 'x-cache-fs-status' с содержимым: EXPIRED + Обнаружен необычный заголовок 'x-pbs-appsvrname' с содержимым: fwcacheproxy1 + Обнаружен необычный заголовок 'x-pbs-appsvrip' с содержанием: 10.137.181.52 + Сервер пропускает inodes через ETags, заголовок найден в файле /pbs.org.zip, поля: 0x5b96537e 0x1678 + 7446 запросов: 0 ошибок и 10 элементов на удаленном хосте + Время окончания: 2018-12-06 00:30:29 (GMT-8) (3383 секунды) -------------------------------------------------- ---------------------------- + 1 хост (а) протестирован
Шаг 5. Сканирование IP-адреса
Теперь, когда мы выполнили быстрое сканирование веб-сайта, давайте попробуем использовать Nikto в локальной сети, чтобы найти встроенные серверы, такие как страница входа в систему для маршрутизатора или HTTP-сервис на другом компьютере, который является просто сервером без веб-сайта.Для начала давайте найдем наш IP-адрес с помощью ifconfig .
ifconfig
en0: flags = 8863 mtu 1500 inet 192.168.0.48 маска сети 0xffffff00 широковещательная передача 192.168.0.255 inet6 XXXX :: XXX: XXXX: XXXX: XXXX% en0 prefixlen 64 защищенный идентификатор области действия 0x8 эфир XX: XX: XX: XX: XX: XX txqueuelen 1000 (Ethernet) inet6 XXXX :: XXX: XXXX: XXXX: XXXX% en0 prefixlen 64 autoconf защищен inet6 XXXX :: XXX: XXXX: XXXX: XXXX% en0 prefixlen 64 autoconf временно nd6 options = 201 media: autoselect статус: активный en2: flags = 8863 mtu 1500 options = 60 эфир XX: XX: XX: XX: XX: XX media: autoselect status: inactive
Нам нужен IP-адрес "inet".Затем мы можем запустить на нем ipcalc , чтобы получить диапазон нашей сети. Если у вас нет ipcalc , вы можете установить его с помощью apt install ipcalc , а затем повторите попытку. Диапазон будет рядом с «Сетью», в моем случае 192.168.0.0/24.
ipcalc 192.168.0.48
Адрес: 192.168.0.48 11000000.10101000.00000000. 00110000 Сетевая маска: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000 Подстановочный знак: 0.0.0.255 00000000.00000000.00000000. 11111111 => Сеть: 192.168.0.0/24 11000000.10101000.00000000. 00000000 HostMin: 192.168.0.1 11000000.10101000.00000000. 00000001 HostMax: 192.168.0.254 11000000.10101000.00000000. 11111110 Трансляция: 192.168.0.255 11000000.10101000.00000000. 11111111 Хосты / Сеть: 254 Класс C, Частный Интернет
Теперь нам нужно запустить Nmap, чтобы найти службы, работающие в диапазоне сети. Давайте просканируем порт 80 нашим диапазоном и подключимся к -oG (вывод с возможностью поиска), чтобы извлечь только запущенные и работающие хосты, т.е.е. те, кто отвечает, указывая, что порт 80 открыт. Затем мы сохраним все в файл, который я называю nullbyte.txt , но его можно назвать как угодно.
nmap -p 80 192.168.0.0/24 -oG nullbyte.txt
Запуск Nmap 7.60 (https://nmap.org) в 2018-12-06 00:43 PST Отчет о сканировании Nmap для 192.168.0.1 Хост работает (задержка 0,021 с). ПОРТОВАЯ ГОСУДАРСТВЕННАЯ СЛУЖБА 80 / tcp открыть http Отчет о сканировании Nmap для 192.168.0.2 Хост работает (задержка 0,088 с). ПОРТОВАЯ ГОСУДАРСТВЕННАЯ СЛУЖБА 80 / tcp открыть http Отчет о сканировании Nmap для 192.168.0.4 Хост работает (задержка 0,032 с). ПОРТОВАЯ ГОСУДАРСТВЕННАЯ СЛУЖБА 80 / tcp открыть http Отчет о сканировании Nmap для 192.168.0.5 Хост работает (задержка 0,020 с). ПОРТОВАЯ ГОСУДАРСТВЕННАЯ СЛУЖБА 80 / tcp открыть http Отчет о сканировании Nmap для 192.168.0.11 Хост работает (задержка 0,068 с). ПОРТОВАЯ ГОСУДАРСТВЕННАЯ СЛУЖБА 80 / tcp закрыт http Отчет о сканировании Nmap для 192.168.0.24 Хост работает (задержка 0,023 с). ПОРТОВАЯ ГОСУДАРСТВЕННАЯ СЛУЖБА 80 / tcp закрыт http Отчет о сканировании Nmap для 192.168.0.31 Хост работает (задержка 0,059 с). ПОРТОВАЯ ГОСУДАРСТВЕННАЯ СЛУЖБА 80 / tcp закрыт http Отчет о сканировании Nmap для 192.168.0.48 Хост работает (задержка 0,030 с). ПОРТОВАЯ ГОСУДАРСТВЕННАЯ СЛУЖБА 80 / tcp закрыт http Отчет сканирования Nmap для 192.168.0.60 Хост работает (задержка 0,092 с). ПОРТОВАЯ ГОСУДАРСТВЕННАЯ СЛУЖБА 80 / tcp закрыт http Выполнено Nmap: 256 IP-адресов (9 подключенных хостов) просканированы за 8,92 секунды
Есть небольшой трюк, который позволяет отправлять все подключенные хосты прямо в Nikto для сканирования. Мы используем cat для чтения вывода, хранящегося в нашем документе nullbyte.txt (или как вы его назвали). Затем есть awk , инструмент Linux, который поможет найти следующий шаблон, где Up означает, что хост включен, а print $ 2 означает распечатать второе слово в этой строке для каждого, i.е., просто IP-адрес. Затем мы отправляем эти данные в новый файл с именем targetIP.txt (или как вы хотите его назвать).
cat nullbyte.txt | awk '/ Up $ / {print $ 2}' | cat >> targetIP.txt
Теперь мы можем просмотреть содержимое нашего нового файла с cat , чтобы увидеть все IP-адреса, у которых открыт порт 80.
cat targetIP.txt
192.168.0.1 192.168.0.2 192.168.0.4 192.168.0.5 192.168.0.11 192.168.0.24 192.168.0.31 192.168.0.48 192.168.0.60
Это идеально подходит для Nikto, потому что он может легко интерпретировать такие файлы. Таким образом, мы можем отправить этот вывод в Nikto с помощью следующей команды.
nikto -h targetIP.txt
Результаты будут похожи на те, которые мы получили при выполнении сканирования SSL.
Шаг 6. Сканирование веб-сайта HTTP
Мы просканировали безопасный веб-сайт и IP-адрес в локальной сети, и теперь пора заняться поиском незащищенного веб-домена, использующего порт 80.В этом примере я использую afl.com.au, который не использовал SSL в то время, когда я выполнял это сканирование.
nikto -h www.afl.com.au
- Nikto v2. 1.6 -------------------------------------------------- ------------------------- + Целевой IP: 159.180.84.10 + Целевое имя хоста: www.afl.com.au + Целевой порт: 80 + Время начала: 2018-12-05 21:48:32 (GMT-8) -------------------------------------------------- ------------------------- + Сервер: instart / nginx + Повторная попытка через заголовок: 1.1 лак (Varnish / 6.1), 1.1 e9ba0a9a729ff2960a04323bf1833df8.cloudfront.net (CloudFront) + Отсутствует заголовок X-Frame-Options для защиты от кликджекинга. + Заголовок X-XSS-Protection не определен. Этот заголовок может намекать пользовательскому агенту на защиту от некоторых форм XSS. + Обнаружен необычный заголовок 'x-cache' с содержанием: Miss from cloudfront + Обнаружен необычный заголовок 'x-instart-cache-id' с содержимым: 17: 12768802731504004780 :: 1544075250 + Обнаружен необычный заголовок 'v-cache-hit' с содержанием: Hit + Обнаружен необычный заголовок 'x-amz-cf-id' с содержанием: Dr-r6OwO5kk9ABt4ejzpc7R7AIF6SuH6kfJHQgP0v6xZoHwMLE55rQ == + Обнаружен необычный заголовок 'x-instart-request-id' с содержимым: 12814413144077601501: BEQ01-CPVNPPRY18: 1552504721: 0 + Обнаружен необычный заголовок 'x-oneagent-js -jection' с содержанием: true + Обнаружен необычный заголовок 'grace' с содержимым: cache + Заголовок X-Content-Type-Options не установлен.Это может позволить агенту пользователя отображать содержимое сайта иным образом, чем MIME-тип. + Обнаружен необычный заголовок 'x-ruxit-js-agent' с содержанием: true + Cookie dtCookie, созданный без флага httponly + Баннер сервера изменился с instart / nginx на nginx, что может указывать на наличие WAF, балансировщика нагрузки или прокси + Каталоги CGI не найдены (используйте '-C all', чтобы принудительно проверить все возможные каталоги) + Запись '/ sites /' в robots.txt вернула незапрещенный или перенаправленный HTTP-код (200) + Запись '/ search /' в robots.txt вернул незапрещенный или перенаправленный HTTP-код (200) + Запись '* .mobileapp' в robots.txt вернула незапрещенный или перенаправленный HTTP-код (400) + Запись '* .liveradio' в robots.txt вернула незапрещенный или перенаправленный HTTP-код (400) + Запись '* .smartmobile' в robots.txt вернула незапрещенный или перенаправленный HTTP-код (400) + Запись '* .responsive' в robots.txt вернула незапрещенный или перенаправленный HTTP-код (400) + Запись '/ stats? * /' В robots.txt вернула незапрещенный или перенаправленный HTTP-код (200) + "роботы.txt »содержит 8 записей, которые необходимо просмотреть вручную. + OSVDB-3092: /sitemap.xml: дает хороший список содержимого сайта. + OSVDB-3092: / psql_history: Это может быть интересно ... + OSVDB-3092: / global /: Это может быть интересно ... + OSVDB-3092: / home /: Это может быть интересно ... + OSVDB-3092: / news: Это может быть интересно ... + OSVDB-3092: /search.vts: Это может быть интересно ... + OSVDB-3092: /stats.htm: Это может быть интересно ... + OSVDB-3092: /stats.txt: Это может быть интересно... + OSVDB-3092: / stats /: Это может быть интересно ... + OSVDB-3092: / Stats /: Это может быть интересно ... + OSVDB-3093: /.wwwacl: Содержит информацию для авторизации. + OSVDB-3093: /.www_acl: Содержит информацию для авторизации. + OSVDB-3093: /.htpasswd: содержит информацию для авторизации. + OSVDB-3093: /.access: Содержит информацию для авторизации. + OSVDB-3093: /.addressbook: PINE адресная книга, может хранить конфиденциальную контактную информацию и заметки адреса электронной почты. + OSVDB-3093: /.bashrc: обнаружен домашний каталог пользователя с rc-файлом оболочки.Это может показать информацию о файле и пути. + OSVDB-3093: /.bash_history: домашний каталог пользователя может быть установлен в корневой веб-каталог, была получена история оболочки. Это не должно быть доступно через Интернет. + OSVDB-3093: /.forward: обнаружен домашний каталог пользователя с файлом пересылки почты. Может показывать, куда пересылается почта пользователя. + OSVDB-3093: /.history: Домашний каталог пользователя может быть установлен как корневой веб-сайт, была получена история оболочки. Это не должно быть доступно через Интернет. + OSVDB-3093: /.htaccess: содержит информацию о конфигурации и / или авторизации + OSVDB-3093: /.lynx_cookies: Найден домашний каталог пользователя с файлом cookie LYNX. Может раскрывать файлы cookie, полученные с произвольных веб-сайтов. + OSVDB-3093: /.mysql_history: База данных SQL? + OSVDB-3093: /.passwd: Содержит информацию для авторизации. + OSVDB-3093: /.pinerc: домашний каталог пользователя, найденный с помощью rc-файла PINE. Может показывать системную информацию, каталоги и многое другое. + OSVDB-3093: /.plan: Домашний каталог пользователя с .plan, в настоящее время в основном устаревшим файлом для доставки информации по протоколу finger + OSVDB-3093: /.proclog: домашний каталог пользователя с rc файлом Procmail. Может выявить почтовый трафик, каталоги и многое другое. + OSVDB-3093: /.procmailrc: домашний каталог пользователя с rc-файлом Procmail. Может открывать подкаталоги, почтовые контакты и многое другое. + OSVDB-3093: /.profile: найден домашний каталог пользователя с профилем оболочки. Может показывать информацию о каталоге и конфигурацию системы. + OSVDB-3093: /.rhosts: домашний каталог пользователя может быть установлен в корневой веб-каталог, был получен файл .rhosts. Это не должно быть доступно через Интернет. + OSVDB-3093: /.sh_history: домашний каталог пользователя может быть установлен в корневой веб-каталог, была получена история оболочки. Это не должно быть доступно через Интернет. + OSVDB-3093: /.ssh: домашний каталог пользователя может быть установлен как корневой веб-сайт, был получен файл ssh. Это не должно быть доступно через Интернет. + OSVDB-5709: /.nsconfig: Содержит информацию для авторизации. + / portal / changelog: Обнаружен журнал изменений редактора Vignette richtext HTML. + 7587 запросов: 4 ошибки и 55 элементов сообщили на удаленном хосте + Время окончания: 2018-12-05 22:42:41 (GMT-8) (3249 секунд) -------------------------------------------------- ------------------------- + 1 протестированный хост (и)
Выше мы видим сервер Varnish и несколько заголовков, которые помогают указать, как настроен веб-сайт.Однако более интересным материалом являются найденные каталоги, которые могут помочь в обнаружении файлов конфигурации, которые могут содержать учетные данные или другие вещи, которые были неправильно настроены и оставлены непреднамеренно доступными.
Элементы с префиксом OSVDB представляют собой уязвимости, о которых сообщается в базе данных уязвимостей с открытым исходным кодом (сайт, закрытый в 2016 году). Он похож на другие базы данных уязвимостей, такие как SecurityFocus, Microsoft Technet и Common Vulnerabilities and Exposures. Я предпочитаю проверить Национальную базу данных уязвимостей.
Хотя в этом сканировании нет каких-либо серьезных вещей, которые можно использовать, если они были, вы можете использовать справочный инструмент CVE для преобразования идентификатора OSVDB в запись CVE, чтобы вы могли использовать один из других сайтов, указанных выше, для подробнее об уязвимости.
Допустим, мы нашли некоторые вещи, которые стоит изучить, например CVE-2018-10933, уязвимость Libssh, которую мы подробно рассмотрели ранее. CVE содержит информацию о том, что может быть использовано, какова оценка серьезности (например, критическая), а также некоторую другую информацию, которая может помочь определить вектор атаки.Если это что-то стоящее, вы можете поискать в Metasploit, так как кто-то, вероятно, уже разработал вооруженный модуль, чтобы его было легче использовать.
Шаг 7: Сопряжение сканирований с Metasploit
Одна из лучших особенностей Nikto заключается в том, что вы можете экспортировать информацию в формат, который Metasploit может прочитать, когда вы выполняете сканирование. Для этого просто используйте приведенные выше команды для выполнения сканирования, но добавив в конец -Format msf + . Формат может помочь нам быстро связать данные, полученные с помощью уязвимого средства.
nikto -h -Format msf +
Итак, в этом руководстве мы перешли от определения площади поверхности цели к поиску уязвимости и последующему сопоставлению ее с вооруженным эксплойтом, поэтому нам не нужно делать всю работу. Поскольку Nikto не является скрытым инструментом, разумно выполнять эти типы сканирования из VPN, через Tor или другой тип службы, чтобы ваш реальный IP-адрес не был помечен для подозрительного поведения.
Не пропустите: Как сканировать веб-сайты на наличие уязвимостей с помощью телефона Android без рута
Хотите начать зарабатывать деньги как хакер в белой шляпе? Начните свою профессиональную карьеру хакера с помощью нашего пакета обучения премиум-сертификату по этическому хакерству 2020 года в новом магазине Null Byte и получите более 60 часов обучения от профессионалов в области этического хакерства.
Купить сейчас (90% скидка)>
Фото на обложке Null Byte .Как проверить веб-сайт на наличие XSS-уязвимости
XSS-уязвимость означает, что в коде веб-сайта есть «лазейки», которые могут позволить хакерам внедрить вредоносный код на ваш веб-сайт. В результате они могут публиковать свою рекламу, скрытые ссылки и другие материалы на вашем веб-сайте.Защита от XSS-атак - обязательная вещь для успешного проекта. Если вы недооцените его, вы рискуете потерять клиентов, сайт и репутацию в Интернете.
Для проверки сайта на уязвимости эффективнее всего обратиться к разработчику сайта, который самостоятельно проверит ваш сайт и сможет обнаружить не только повседневные ошибки.
Если ваш бюджет ограничен, вы можете сканировать сайт с помощью онлайн-сервисов. Они предоставят информацию о стандартных уязвимостях. Для этого вы можете использовать Acunetix Web Security Scanner, XSS Injection Scanner или их аналоги.
Кроме того, для большинства систем управления контентом есть готовые плагины безопасности. Существуют расширения WordPress как для сканирования, так и для усиления защиты от XSS.