Архив автора: admin

Теоретические основы тестирования на проникновение (pentest) Часть II Инструменты

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

Самые популярные инструменты тестирования на проникновение:

Kali Linux

Kali linux-это дистрибутив Linux, предназначенный для форензики и тестирования на проникновение. Содержит наиболее широко используемых инструментов тестирования на проникновение. ОС Kali Linux основана на debian и большинство ее пакетов импортируются из репозиториев Debian. Kali включает в себя более 500 предустановленных программ тестирования на проникновение. Недавнее обновление содержит инструменты для облачного тестирования на проникновение. Kali сотрудничает с некоторыми ведущими облачными платформами планеты, такими как AWS и Azure, помогая изменить подход к облачной безопасности.

Metasploit

Metasploit-это еще один популярный фреймворк для тестирования на проникновение. Он был создан в 2003 году с использованием Perl и был приобретен Rapid7 в 2009 году, к тому времени он был полностью переписан на Ruby. Это сотрудничество сообщества с открытым исходным кодом и Rapid 7, результатом которого стал проект Metasploit, хорошо известный своими инструментами антифорензики. Metasploit-это понятие “эксплойта”, который представляет собой код, способный превзойти любые меры безопасности, входящие в уязвимые системы. Пройдя через межсетевые экраны, он работает как “полезная нагрузка”, код, который выполняет операции на целевой машине, в результате чего создаются идеальные условия для тестирования на проникновение.

Wireshark

WireShark – один из основных и самых популярных анализаторов сетевых пакетов в мире Первоначально он был выпущен как Ethereal еще в 1998 году и из-за некоторых проблем с товарными знаками был переименован в WireShark в 2006 году. Пользователи обычно используют WireShark для анализа сети, устранения неполадок, а также разработки программного обеспечения и коммуникационных протоколов. Wireshark в основном функционирует на втором-седьмом уровне сетевых протоколов, и выполненный анализ представлен в удобочитаемой для человека форме. Специалист по информационной безопасности и исследователи сетевой криминалистики используют WireShark  для анализа протоколов, количества битов и байтов, проходящих через сеть. Простота в использовании функциональных возможностей и тот факт, что он является продуктом с открытым исходным кодом, делает Wireshark одним из самых популярных анализаторов пакетов для профессионалов в области безопасности и сетевых администраторов.

Burp Suite

Угрозы для веб-приложений выросли за последние годы. Программы-вымогатели и cryptojacking стали все более распространенными методами, используемыми злоумышленниками для атаки на пользователей в браузере. Burp или Burp Suite – это один из широко используемых графических инструментов для тестирования безопасности веб-приложений. Поскольку речь идет о безопасности приложений, существует две версии этого инструмента: платная версия, включающая все функциональные возможности, и бесплатная версия, которая поставляется с несколькими важными функциями.

Этот инструмент поставляется с предустановленными базовыми функциями, которые помогут вам с проверкой безопасности веб-приложений. Если вы хотите пройти тестирование на проникновение в интернете, он определенно должен быть в вашем арсенале, он прекрасно работает как  Linux, так и с Mac и Windows.

 

Nmap

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

Чтобы защитить вашу среду от угроз безопасности, вы должны принять необходимые меры.

 

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

 

 



2020-09-17T19:38:11
Аудит ИБ

Нужен ли мне VPN и почему это важно?

Для тех, кто не знаком, этот термин звучит ошеломляюще, и большинство людей задаются вопросом, нужен ли он им вообще, но, верьте или нет, ответ на вопрос « Нужен ли мне VPN?».  Да, всем нужен. Короче говоря, VPN обеспечивает безопасность и конфиденциальность ваших данных в Интернете. VPN дают вам удивительную возможность шифровать все, что вы делаете в сети, одним нажатием кнопки, чтобы защитить ваши данные от третьих лиц, таких как правительственные агентства, рекламодатели, интернет-провайдеры и кибер-хулиганы. Читать

Скрипт BASH проверяющий доступность сайта/ip-адреса.

Сегодня в статье разберем пример написания скрипта для проверки доступности ресурса при помощи BASH в Linux. Может кому то будет полезен :).






И так поехали:




Скрипт доступности ресурса




  1. Создадим текстовый файл ping_test.sh со следующим содержанием:




sudo nano ~/ping_test.sh




#!/bin/bash
PATH=/bin:/bin/bash:/usr/bin:/sbin:/usr/sbin
IP=("10.5.5.1") # тут либо ip, либо FQDN вашего домена
for g in ${IP[@]}; do
    result=$(ping -c 2 -W 1 -q $g | grep transmitted)
    pattern="0 received";
        if [[ $result =~ $pattern ]]; then
            while [[ $result =~ $pattern ]]
                do
                result=$(ping -c 2 -W 1 -q $g | grep transmitted)
                echo "$result"
            done
        else
             echo "$g is up"
        fi
done




Скрипт будет проверять доступность ресурса при помощи команды ping до тех пор пока данный ресурс не выйдет на связь. Для автоматизации давайте запишем задание в crontab. Задание будет срабатывать при перезагрузке системы.




@reboot /bin/bash /sbin/ping_test.sh




Также если вам необходимо чтобы еще отправлялось уведомление на почту, то скрипт примет такой вид:




#!/bin/bash
PATH=/bin:/bin/bash:/usr/bin:/sbin:/usr/sbin
IP=("10.5.5.1")
for g in ${IP[@]}; do
    result=$(ping -c 2 -W 1 -q $g | grep transmitted)
    pattern="0 received";
        if [[ $result =~ $pattern ]]; then
            while [[ $result =~ $pattern ]]
                do
                result=$(ping -c 2 -W 1 -q $g | grep transmitted)
                #отправим уведомление на почту
                sendmail -f "кому@yandex.ru" -t "от_кого@yandex.ru" -u "Проблема с доступностью сервера" -m "Сообщение от $(hostname) . $ADDR недоступен с $(date)" -xu "логин" -xp "пароль" -s "smtp.yandex.ru" -o "message-charset=utf-8"
                notify-send "Статус сервера $IP" "Offline, сообщение направлено на почту"
            done
        else
             echo "$g is up"
        fi
done
fi




  • IP=”10.5.5.1″ – IP-адрес для мониторинга. Через пробел можно указать несколько адресов.



  • ping -c 2 -W 1 – количество пакетов посылаемых на сервер



  • -f “кому@yandex.ru” – указываю свою почту



  • -t “от_кого@yandex.ru” – указываем почту от которой будем отправлять.



  • -u “Проблема с доступностью сервера” – тема сообщения



  • -m “Сообщение от $(hostname) . $ADDR недоступен с $(date)” – Содержание сообщения



  • -xu “логин” – Логин от вашей почты



  • -xp “пароль” – Пароль от вашей почты



  • -s “smtp.yandex.ru” – Адрес smtp сервера отправки почты, в моем случае это yandex



  • -o “message-charset=utf-8” – Кодировка сообщения, без нее будет крякозябры.




  1. Даем права на исполнение




chmod +x ping_test.sh




Для того чтобы сработала отправка почты нужно установить пакет sendmail




sudo apt install sendmail




  1. Радуемся, через заданный промежуток времени в событии будет высвечено сообщение о статусе.




Скрипт доступности ресурса каждые 10 секунд




Запускать задание через каждых 10 секунд:




#!/bin/bash
PATH=/bin:/bin/bash:/usr/bin:/sbin:/usr/sbin
IP=("10.5.5.1")
while :;do
  for g in ${IP[@]}; do
    result=$(ping -c 2 -W 1 -q $g | grep transmitted)
    pattern="0 received";
        if [[ $result =~ $pattern ]]; then
            while [[ $result =~ $pattern ]]
                do
                result=$(ping -c 2 -W 1 -q $g | grep transmitted)
                echo "$result"
            done
        else
             echo "$g is up"
        fi
  done
  sleep 10
done



[endtxt]




. . . .






2020-09-15T19:24:31
Network

Как проверить версию Java

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

В этой статье объясняется, как с помощью командной строки проверить, какая версия Java установлена ​​в вашей системе Linux. Это может быть полезно при установке приложений, требующих определенной версии Java.

 

Управление версиями Java

Java использует семантическое управление версиями. Версии готовых к выпуску релизов представлены по следующей схеме:

MAJOR.MINOR.SECURITY


 

Например, в Java 11.0.8 11 это основная версия, 0 это дополнительная версия и 8 версия безопасности.

  • MAJOR — Основные выпуски содержат новые функции и возможности.
  • MINOR — Незначительные выпуски содержат различные исправления ошибок и совместимые улучшения.
  • SECURITY — В выпусках безопасности содержатся критические исправления безопасности.

 

Проверка версии Java

Чтобы узнать, какая версия Java установлена в вашей системе, выполните команду java -version:

java -version

 

Команда отобразит версию Java по умолчанию:

openjdk 11.0.8 2020-07-14

OpenJDK Runtime Environment (build 11.0.8+10-post-Ubuntu-0ubuntu120.04)

OpenJDK 64-Bit Server VM (build 11.0.8+10-post-Ubuntu-0ubuntu120.04, mixed mode, sharing)


 

В этом примере 11.0.8 в нашей системе установлена версия Java. Версия, установленная в вашей системе, может отличаться.

Если вы получили сообщение (Ubuntu, Debian):

Command 'java' not found, but can be installed with:                                                                                                                            

                                                                                                                                                                                

apt install default-jre                                                                                                                                                         

apt install openjdk-11-jre-headless                                                                                                                                             

apt install openjdk-8-jre-headless

 

это означает, что Java не установлена в системе.

В системе также может быть установлено несколько версий Java одновременно. Чтобы проверить, есть ли на вашем компьютере несколько установок Java:

sudo update-alternatives --config java

 

Если у вас только одна установка Java, результат будет выглядеть примерно так:

There is only one alternative in link group java (providing /usr/bin/java): /usr/lib/jvm/java-11-openjdk-amd64/bin/java

Nothing to configure.


 

В противном случае, если у вас несколько установок Java, команда отобразит меню, в котором вы можете выбрать, какая версия будет версией Java по умолчанию:

There are 3 choices for the alternative java (providing /usr/bin/java).



  Selection    Path                                            Priority   Status

------------------------------------------------------------

* 0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      auto mode

  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      manual mode

  2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode



Press <enter> to keep the current choice[*], or type selection number:


 

Чтобы изменить версию Java по умолчанию, просто введите номер версии (число в столбце «Выбор») и нажмите Enter.

 

Вывод

Узнать, какая версия Java установлена в вашей системе Linux, очень просто, просто введите java -version.

Не стесняйтесь оставлять комментарии, если у вас есть вопросы.



2020-09-12T18:00:35
Java

Дешевый VPS/VDS в Европе/США

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




Что оно представляет из себя по качеству — я хз.




ENJOY! https://contabo.com



2020-09-12T17:21:50
Веб-разработка

How to Customize MikroTik Hotspot Login Page

MikroTik Hotspot is an awesome service that can be customized according to any organization need. MikroTik Hotspot is able to authenticate and authorize network users so easily. Besides premium Hotspot service, it can also be used as a public Hotspot network. Although public network is a free network service, it can be a better source of income by serving ads. As no user can get internet access without visiting Hotspot login page, the login page is main space for serving ads. MikroTik Hotspot is nothing but a HTML page. So, knowing simple HTML, CSS and JavaScript, we can easily customize Hotspot login page according to our demand and can also put partner’s ads in login page to increase earning.  




In my previous article, I discussed how to configure MikroTik Hotspot using Winbox. Default Hotspot configuration provides a login page that we may find boring and not so perfect for our organization. So, in this article I will discuss how to customize Hotspot Login page according to our demand so easily.




How to Customize Hotspot Login Page




3 Easy Steps to Customize MikroTik Hotspot Login Page




Customizing MikroTik Hotspot login page is not so difficult task. Knowing some basic HTML, CSS and JavaScript, we can easily customize login page according to our demand. So, if we wish to customize login page, we need to do the following three steps.




  • Downloading HTML login page from MikroTik Router
  • Editing login page with own HTML, CSS and JavaScript code
  • Uploading edited login page to MikroTik Router






Steps 1: Downloading HTML login page from MikroTik Router




When we setup Hotspot Server, it automatically creates necessary and basic files required to authenticate and authorize Hotspot users. These files including login page are kept in Files directory in MikroTik Router. So, at first we have to download the HTML login page from Files directory because there is no way to edit files keeping in MikroTik Router. The following steps will show how to download Hotspot login page from Files directory.




  • Login to MikroTik Router using Winbox software using full permission user credentials.
  • Click on Files menu. File List window will appear where you will find a lot of files created by Hotspot Server.
  • Search and find hotspot/login.html file and then drag and drop this file in your Desktop or in a directory where you prefer.




MikroTik-Hotspot-Login-Page-in-File-List
MikroTik Router File List




Step 2: Editing Login Page with own HTML, CSS and JavaScript Code




After downloading HTML login page, we will now edit the login file. So, open this file with any HTML editor. I personally use Notepad++ because it is free and easy to use. But if you have better editor, you can also use that.




Opening the login file, you will find basic HTML tags like html, head, title, body etc. are present there. You will also find CSS code in style tag and JavaScript code in script tag. Besides these, some logical codes written in MikroTik own language is present there.




We must always remember not to touch MikroTik Router’s logical code as well as JavaScript code written by MikroTik Router. But we are free to extend JavaScript according to our demand.






Hotspot login area is a HTML form which is aligned with static table element. If we wish we can remove the table element replacing with any suitable HTML tag for designing purpose but we must keep the form element and its action untouched as well as the input elements and its attributes. CSS selector like class and id can be applied to any HTML element for designing purpose.




Keeping the above restrictions in mind we are now free to customize the login page as our wish. I have rearranged the login page and applied some designs on it in my LAB Hotspot Server. The entire HTML, CSS and JavaScript code is given below for your reference.




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="expires" content="-1" />
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0;"/>
<title>System Zone Hotspot</title>
<style type="text/css">
body {
 color: #737373; 
 font-size: 14px; 
 font-family: verdana;
}
.container{
   width:300px;
   height:auto;
   margin:0 auto;
   margin-top:10vh;
   -webkit-box-shadow: 3px 3px 5px 6px #ccc;  /* Safari 3-4, iOS 4.0.2 - 4.2, Android 2.3+ */
   -moz-box-shadow:    3px 3px 5px 6px #ccc;  /* Firefox 3.5 - 3.6 */
    box-shadow:         3px 3px 5px 6px #ccc; 
   padding:15px 20px 25px 20px;
}
.banner{
  width:100%;
  text-align:center;
}
.banner img{
   max-width:100%; 
   height:auto;   
}
.banner label{
   font-size:20px;
   font-weight:bold;
}
.error-panel{
  width:100%;
  height:auto;
  margin-top:20px;
  color:red;
}
.login-panel{
  width:290px;
  margin-top:30px;
}
.login-input{
   width:100%;
   height:40px;
   margin-top:20px;
   margin-bottom:20px;
}
.login-input input{
  width:100%;
  height:35px;
}
#login-button{
  width:102%;
  text-align:right;
}
#login-button input{
  width:100px;
  height:38px;
  background-color:#b97d00;
  border-color:#b97d00;
  color:#fff;
}
#login-button input:hover{
  background-color:#000;
  border:1px solid #000;
}
.free-trial{
  width:100%;
  margin-top:20px;
  margin-bottom:10px;
  text-align:center;
}
.free-trial a{
  text-decoration:none;
  color:#b97d00;
}
.free-trial a:hover{
  text-decoration:underline;
}
.datetime{
   width:100%;
   margin-top:15px;
   text-align:center;
   font-size:20px;
}
</style>
</head>

<body onload="startTime()">
$(if chap-id)
	<form name="sendin" action="$(link-login-only)" method="post">
		<input type="hidden" name="username" />
		<input type="hidden" name="password" />
		<input type="hidden" name="dst" value="$(link-orig)" />
		<input type="hidden" name="popup" value="true" />
	</form>
	
	<script type="text/javascript" src="/md5.js"></script>
	<script type="text/javascript">
	<!--
	    function doLogin() {
		document.sendin.username.value = document.login.username.value;
		document.sendin.password.value = hexMD5('$(chap-id)' + document.login.password.value + '$(chap-challenge)');
		document.sendin.submit();
		return false;
	    }
	//-->
	</script>
$(endif)
            
			<div class="container">
			        <div class="banner">
					  <img src="/img/logo.png" />
					  <label>Hotspot Login</label>
					</div>
					<form name="login" action="$(link-login-only)" method="post"
					    $(if chap-id) onSubmit="return doLogin()" $(endif)>
						<input type="hidden" name="dst" value="$(link-orig)" />
						<input type="hidden" name="popup" value="true" />	
                            $(if error)
							 <div class="error-panel">
							   $(error)
							 </div>
							$(endif)						
							<div class="login-panel">							
							 <div class="login-input">
							  <input  name="username" type="text" value="$(username)" placeholder="Login username"/>
							 </div>								
							 <div class="login-input">
							  <input name="password" type="password" placeholder="Login password"/>
							 </div>											
							  <div id="login-button"><input type="submit" value="Login" /></div>
                              <div class="free-trial">
                                $(if trial == 'yes')
								    Free trial available, <a href="$(link-login-only)?dst=$(link-orig-esc)&amp;username=T-$(mac-esc)">click here</a>.
								  $(endif)
                              </div>
                              <div class="datetime">
							    <span id="date"></span> - <span id="time"></span>
							  </div>							  
							</div>
					</form>
		    </div>	
<script type="text/javascript">
<!--
  document.login.username.focus();
//-->
 var dt = new Date();
 document.getElementById("date").innerHTML = dt.toLocaleDateString();
 function startTime() {
  var today = new Date();
  document.getElementById("time").innerHTML = today.toLocaleTimeString()
  var t = setTimeout(startTime, 500);
}
</script>
</body>
</html>




The above code is written for a simple login page but it includes all required HTML, CSS and JavaScript code as example. So, if you have HTML, CSS and JavaScript experience, you can easily extend your login page functionality. 




Note: if you have any image in login page, the image must upload in hotspot/img directory and add the image source as /img/logo.png where logo.png is an image file that representing company logo.




Step 3: Uploading Edited Login Page to MikroTik Router




After editing login page, we will now upload the edited file to MikroTik Router. The following steps will show how to upload the edited file in MikroTik Router.




  • Login to MikroTik Router again with Winbox software.
  • Click on Files menu item to open File List window.
  • Remove the old login page under hotspot directory.
  • Now drag and drop your edited file under hotspot directory.






Now refresh your login page and you will find the new login page designed by yourself. If you use my above code, the login page looks the following image.




Custom Hotspot Login Page
Custom Hotspot Login Page




How to customize MikroTik Hotspot login page with HTML, CSS and JavaScript has been discussed in this article. I hope you will now be able to customize MikroTik Hotspot login page so easily. However, if you face any confusion to customize Hotspot login page with HTML, CSS and JavaScript code, feel free to discuss in comment or contact me from Contact page. I will try my best to stay with you.    



2020-09-12T16:16:14
MikroTik Hotspot Tutorials & Guides