Linux · 20 stycznia, 2023 1

Skrypt do automatyzacji zadań sieciowych wersja 1.1

Cześć!

W poprzedniej części poznaliśmy podstawy języka bash oraz stworzyliśmy prosty skrypt, który sprawdzał nasz adres IP oraz skanował sieć lokalną za pomocą narzędzia nmap.

W tej części tutoriala rozszerzymy nasz skrypt o kilka nowych funkcji :

  • Proste sprawdzanie zewnętrznego adresu IP
  • Wybór interfejsu do zmiany adresu MAC
  • Dodanie opcji skanowania sieci z różnymi parametrami przy użyciu nmap.

Dzięki nowym funkcjom nasz skrypt stanie się bardziej przydatny i pozwoli na lepsze poznanie sieci, w której się znajdujemy. W kolejnych krokach przejdziemy przez każdą z tych funkcji.

No to jedziemy!

  1. Menu Główne

Na początku skryptu w lini nr. 3 dodaliśmu polecenie clear, które wyczyści ekran przed wyświetleniem menu. W lini 7 natomiast mamy puste echo dla przejrzystości wyświetlania.

  1. Sprawdzanie IP

W tym bloku zmodyfikowaliśmy nasze polecenia ip a z lini 21, dodaliśmy opcje -br za pomocą, której wyświetlimy interfejsy z aktualnym statusem w formacie skróconym. Przetwarzamy wyjście za pomocą narzędzia awk, które pozwoli nam przefiltrować i sformatować dane. W tym przypadku używamy wyrażenia regularnego /UP/ by wyszukać interfejsy, które są w stanie UP czyli są aktywne. Następnie poleceniem {print $1,$3} wyświetlamy pierwszą i trzecią kolumnę, czyli nazwę interfejsu oraz jego adres IP.

W tym bloku dodajemy także pobieranie naszego zewnętrznego IP. W lini numer 24 użyjemy narzędzia curl, aby za pośrednictwem protokołu HTTP pobrać swój adres IP ze strony ifconfig.me. Serwis ten udostępnia publiczny adres klienta, który go odwiedza, wykonując polecenie curl ifconfig.me pobieramy dane z serwisu i wyświetlamy je w konsoli.

  1. Zmiana Adresu MAC

W bloku numer dwa w lini 30 deklarujemy zmienną interfaces, która jest wynikiem polecenia znajdującego sie w nawiasach. Pierwsza część polecenia ip -br a show up pobiera liste interfejsów sieciowych w stanie UP następnie wykorzystujemy awk aby wyciągnąć pierwszą kolumnę – awk ‘{print $1}’.

W zmiennej interfaces mamy teraz zapisaną liste interfejsów sieciowych, które są aktywne. Użyjemy pętli for aby wyświetlić je na ekranie za pomocą instrukcji echo linia 33 do 35. Teraz poprosimy użytkownika o wpisanie nazwy interfejsu i za pomocą instrukcji read zapiszemy ją do zmiennej interface. Na sam koniec uruchomimy maccchanger dodając wpisaną zmienną.

  1. Skanowanie sieci nmap

W tym bloku tworzymy kolejne menu z opcjami wyboru oraz na lini 48 dodajemy kolejną instrukcje case aby utworzyć bloki dla wyborów skanowania. W zależności od wyboru użytkownika, skrypt pobierze IP lub zakres adresów i za pomocą instrukcji read zapisze je zmiennej target następnie wykona skanowanie z odpowiednim parametrem nmap. W bloku 1) będzie to zwykłe skanowanie, następnie w bloku 2) parametr -A włączy wykrywanie systemu operacyjnego, wykrywanie wersji, skanowanie skryptów i traceroute. W 3) -Ss włączy skanownaie SYN najbardziej popularną metodę, która skanuje tysiące portów na sekundę.

Brawo! Kolejny sukces!

Oto nasz cały skrypt po updejcie.

Podsumowanie

W pierwszej części poradnika poznaliśmy podstawy języka bash oraz zbudowaliśmy szkielet naszego skryptu z podstawowymi funkcjami nie omawiająć ich szczegółowo.

W drugiej części rozszerzyliśmy nasz skrypt o kilka nowych funkcjonalności.

Dodaliśmy możliwość sprawdzenia swojego zewnętrznego IP. Wprowadziliśmy także możliwość wyboru interfejsu sieciowego do zmiany adresu MAC, dzięki czemu mamy większą kontrolę nad tym, który interfejs zostanie zmieniony.

Zaimplementowaliśmy również podmenu dla opcji skanowania sieci z narzędziem nmap, co pozwala na wybór rodzaju skanowania.

W tej części nie tylko nauczyliśmy się jak rozbudować skrypt o nową funkcjonalność, ale też poznaliśmy narzędzie awk, które pozwala na wyciąganie informacji z wyświetlanych danych oraz ich filtrowanie.

W kolejnej części będziemy kontynuować rozbudowę skryptu dodamy nowe ciekawe narzędzie do naszego ekwipunku i poszerzymy funkcjonalność. 🙂

Do następnego. Cześć!