πŸ–§ Bash скрипт для сканирования Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΏΠΎΡ€Ρ‚ΠΎΠ²

Π‘Π΅Ρ‚Π΅Π²Ρ‹ΠΌ администраторам ΠΈ спСциалистам ΠΏΠΎ бСзопасности часто трСбуСтся сканированиС ΠΏΠΎΡ€Ρ‚ΠΎΠ² для выявлСния ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΈΠ»ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… слуТб ΠΈ ΠΎΡ†Π΅Π½ΠΊΠΈ бСзопасности сСти.

Π₯отя для этих Ρ†Π΅Π»Π΅ΠΉ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Π΅ инструмСнты, ΠΊΠ°ΠΊ nmap, ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ созданиС собствСнного Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ трСбованиям.

НапримСр, отсутствиС возмоТности ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ nmap.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ скрипт Bash для сканирования ряда ΠΏΠΎΡ€Ρ‚ΠΎΠ².

ΠžΡΠ½ΠΎΠ²Ρ‹ сканирования ΠΏΠΎΡ€Ρ‚ΠΎΠ²

Π‘ΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡ€Ρ‚ΠΎΠ² – это систСматичСская ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° систСмы Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΏΠΎΡ€Ρ‚ΠΎΠ².

ΠŸΠΎΡ€Ρ‚ Π² Π΄Π°Π½Π½ΠΎΠΌ контСкстС – это логичСская конструкция, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ процСсс ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏ сСтСвого сСрвиса.

НомСра ΠΏΠΎΡ€Ρ‚ΠΎΠ² Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚ 0 Π΄ΠΎ 65535, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 1024 извСстны ΠΊΠ°ΠΊ β€œΠΎΠ±Ρ‰Π΅ΠΈΠ·Π²Π΅ΡΡ‚Π½Ρ‹Π΅ порты”, Π½Π°Π·Π½Π°Ρ‡Π°Π΅ΠΌΡ‹Π΅ для Ρ‚Π°ΠΊΠΈΡ… распространСнных ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ², ΠΊΠ°ΠΊ HTTP (ΠΏΠΎΡ€Ρ‚ 80) ΠΈ FTP (ΠΏΠΎΡ€Ρ‚ 21).

Π‘ΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡ€Ρ‚ΠΎΠ² позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ слуТбы Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹ ΠΈ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°ΡŽΡ‚ соСдинСния, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для обнаруТСния ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… уязвимостСй Π² систСмС бСзопасности.

Π‘ΠΊΡ€ΠΈΠΏΡ‚ Bash для сканирования ΠΏΠΎΡ€Ρ‚ΠΎΠ²

Bash (Bourne Again SHell) – это мощная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ скрипты для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ Π² срСдС Linux.

Наш скрипт Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄Π²Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° – IP-адрСс для сканирования ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΏΠΎΡ€Ρ‚ΠΎΠ² для сканирования.

Π’ΠΎΡ‚ простой скрипт Π½Π° Bash, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сканируСт ряд ΠΏΠΎΡ€Ρ‚ΠΎΠ²:

#!/bin/bash



ip=$1

startport=$2

endport=$3





function portscan {

Β Β Β Β for ((counter=$startport; counter<=$endport; counter++))

Β Β Β Β do

Β Β Β Β Β Β Β Β (echo > /dev/tcp/$ip/$counter) > /dev/null 2>&1 && echo "$counter open"

Β Β Β Β done

}



portscan

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ скрипта

ΠŸΠ΅Ρ€Π²Π°Ρ строка (#!/bin/bash): Π­Ρ‚Π° строка извСстна ΠΊΠ°ΠΊ shebang.

πŸŒΒ Π¨ΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° ΠΏΠΎ скриптам Bash

Она сообщаСт систСмС, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ скрипт Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Bash.

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ 3-5: Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚Ρ€ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°. $1 – IP-адрСс, $2 – Π½ΠΎΠΌΠ΅Ρ€ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ€Ρ‚Π° ΠΈ $3 – Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ€Ρ‚Π°.

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ 7-12: Π—Π΄Π΅ΡΡŒ опрСдСляСтся функция portscan, которая сканируСт ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅.

Она пытаСтся ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ эхо-Π²Ρ‹Π²ΠΎΠ΄ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚ ΠΏΠΎ IP-адрСсу.

Если запись Π² port ΠΏΡ€ΠΎΡˆΠ»Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ (Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΏΠΎΡ€Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚), Ρ‚ΠΎ выводится Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠΎΡ€Ρ‚Π°, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт β€œopen”.

ИспользованиС скрипта

Для использования Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅ΠΌΡƒ ΠΏΡ€Π°Π²Π° Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ с IP-адрСсом ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ ΠΏΠΎΡ€Ρ‚ΠΎΠ² для сканирования.

  • Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ скрипт Π² Ρ„Π°ΠΉΠ», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ portscan.sh
  • Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ скрипт исполняСмым: chmod +x portscan.sh
  • ЗапуститС скрипт с IP-адрСсом ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ ΠΏΠΎΡ€Ρ‚ΠΎΠ²: ./portscan.sh 192.168.1.1 20 80
  • Π‘ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ сканированиС ΠΏΠΎΡ€Ρ‚ΠΎΠ² с 20 ΠΏΠΎ 80 Π½Π° IP-адрСсС 192.168.1.1.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ скрипт ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ сканирования ΠΏΠΎΡ€Ρ‚ΠΎΠ², Π² Π½Π΅ΠΌ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, присущиС Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΌ инструмСнтам, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ nmap, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ слуТб, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ОБ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ сканирования ΠΏΠΎΡ€Ρ‚ΠΎΠ².

Однако ΠΎΠ½ позволяСт ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ сканированиС ΠΏΠΎΡ€Ρ‚ΠΎΠ² ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ простого скрипта Bash.

см. Ρ‚Π°ΠΊΠΆΠ΅:

Β 



2023-07-24T17:36:40
Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹

Π”Ρ€ΡƒΠ·ΡŒΡ ΠΏΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅ этому ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Ρƒ ΡΡ‚Π°Ρ‚ΡŒ доступнСС Π² ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтях.

НС ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈ ΠΌΠΈΠΌΠΎ ΠΆΠΌΠ°ΠΊΠ½ΠΈ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΡƒ Ρ‚ΠΎ Π΅Ρ‰Π΅ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π΅Π½!