Czasami sieć lokalna to za mało. Nie mówię o przypadku w którym mamy zamiar naruszać integralność obcych serwerów, a o przypadku gdy wykonujemy sprawdzenie zabezpieczeń naszego VPS’a lub na zlecenie klienta. Wtedy też najczęściej, celem jest host zlokalizowany gdzieś w internecie. Dzisiaj opiszę procedurę jak przygotować sobie narzędzia do pracy z serwerami umiejscowionymi na zewnątrz naszej lokalnej sieci.
Na początek warto nakreślić sytuację w której się znajdujemy. Czasy w jakich żyjemy, to czasy posiadania wielu urządzeń podłączonych do internetu na jednym łączu komunikacyjnym. każdy z nas ma w swoim mieszkaniu podłączony do internetu przynajmniej jeden laptop i telefon. Dzisiejsze routery korzystają z technologii NAT, aby przybliżyć trochę sytuację, czas na wikisekcje.
NAT (skr. od ang. Network Address Translation, translacja adresów sieciowych; czasem Native Address Translation, translacja adresów rodzimych), znane również jako maskarada sieci lub maskarada IP (od ang. network/IP masquerading) – technika przesyłania ruchu sieciowego poprzez router, która wiąże się ze zmianą źródłowych lub docelowych adresów IP, zwykle również numerów portów TCP/UDP pakietów IP podczas ich przepływu. Zmieniane są także sumy kontrolne (zarówno w pakiecie IP jak i w segmencie TCP/UDP), aby potwierdzić wprowadzone zmiany.
Większość systemów korzystających z NAT ma na celu umożliwienie dostępu wielu hostom w sieci prywatnej do Internetu przy wykorzystaniu pojedynczego publicznego adresu IP. Niemniej NAT może spowodować komplikacje w komunikacji między hostami i może mieć pewien wpływ na osiągi.
Zanim wprowadzono technologię NAT modemy zapewniały możliwość podłączenia wyłącznie jednego komputera. Jego interfejs sieciowy był podłączony bezpośrednio do internetu. Już samo to, rodziło dużo zagrożeń związanych między innymi z bezpośrednim stykiem komputera z internetem. Pomimo, iż komputery posiadały wbudowane firewalle, jak wszyscy wiemy nie były one wystarczające.
W dzisiejszych czasach, aby udostępnić w internecie nasz domowy serwer www, musimy posiadać zewnętrzny adres IP (UPC, Vectra, Orange – stacjonarny dawniej neostrada TP) oraz ustawić w odpowiedni sposób translacje adresów (forwardowanie portów) na naszym routerze. Nie wspominam o kwestii stałego adresu IP, ponieważ brak takiego adresu jest rozwiązywalny w dość prosty sposób, a na przykład UPC ma tak skonfigurowane ustawienia sieciowe, że adres IP sprawia wrażenia stałego i bardzo rzadko się zmienia. Jeśli posiadamy internet mobilny, nie jest możliwym posiadanie swojego adresu IP o ile za to dodatkowo nie płacimy.
Rozwiązaniem jest serwer VPS. VPS to najprościej mówiąc wynajęta maszynę na które mamy roota i mamy do nie dostęp za pomocą konsoli po ssh lub za pomocą czegoś podobnego do rdp. Jak już wcześniej pisałem, kaliego na zewnętrznym adresie potrzebujemy do zamówionych pentestów więc wykorzystamy hosting rootbox.pl.Po zalogowaniu się i wpłacenia środków na nasze wirtualne konto ( nie wspomniałem, że rootbox nalicza opłaty od godziny, przez co jest świetnym rozwiązaniem do tego typu sytuacji – wystawiając rachunek klientowi, wliczamy koszty vps ) ujrzymy taki oto widok:
Jak widać następnym krokiem jest utworzenie nowego serwera. Ten krok jest dosyć ważny z względu, na dobranie odpowiedniej wersji systemu operacyjnego na naszym VPS.
W polu nazwa wpisujemy nazwę naszego serwera. Będzie ona zarazem jego hostname. Wybieramy również konfiguracje serwera. Ja do tego typu zadań wybieram pakiet „Small”.
System operacyjny jakie powinniśmy wybrać to debian 7 amd64. Obecna wersja kaliego (2.0) jest redystrybucją debiana. Następnie klikamy „Uruchom”
Naszym oczom ukazuje sie obraz informujący o tym, że nasz serwer jest w przygotowaniu. Po chwili sprawdzamy naszą skrzynkę mailową na którą przyjdzie powiadomienie o tym, że serwer jest gotowy do użycia.
W mailu znajdziemy wszystkie potrzebne dane takie jak hasło oraz adres naszego nowego VPS. Przejdzmy do właściwej części. Czas zalogować się do naszego serwera.
Po zalogowaniu się warto zmienić hasło na trochę bardziej przyjazne użytkownikowi, czyli nam.
Na chwilę obecną mamy do dyspozycji „czystego” debiana. następnym krokiem który będzie to odnalezienie odpowiednich wpisów do /etc/apt/sources.list i dodanie ich do naszego debiana.
deb http://http.kali.org/kali sana main non-free contrib
deb http://security.kali.org/kali-security sana/updates main contrib non-free
EDIT: Ponieważ dynamika kaliego jest tak duża, że z wersji na wersje zmieniają się linki do repozytoriów, postanowiliśmy przygotować własne repozytorium z pakietami narzędzi z kalilinuxa oraz najnowszymi dostępnymi pakietami na debiana. Zapewni to wygodniejszą i pewniejszą prace z prezentowanymi przez nas labami.
deb http://repo.s-m-s.pl/debian all all
deb-src http://repo.s-m-s.pl/debian all all
Następnym krokiem jest wykonanie aktualizacji listy pakietów.
Może pojawić się problem z kluczami PGP. Wynika to z kwestii, iż nasze repozytoria kaliego nie są dla debiana domyślnie zaufane. Problem możemy rozwiązać za pomocą dwóch poleceń.
gpg --keyserver pgp.mit.edu --recv-keys <klucz>
gpg --armor --export <klucz> | apt-key add -
***EDIT
Nasz aktualny klucz publiczny można znaleźć na keybase.io/sms. Zapraszamy serdecznie osoby posiadające konto na kaybase.io do śledzenia naszego profilu
***
W tym momencie skorzystamy z dodatkowego udogodnienia, którego nie widziałem u innych dostawców, lub po prost on nie działało. Wracamy zatem do naszej przeglądarki, logujemy się do rootbox i przechodzimy do zakładki naszego serwera. Tam wybieramy opcję „Konsola”
Jak widać, problemy z listą kluczy repozytoriów zniknęły. Czas na aktualizację oprogramowania tak by zgadzały się zależności oraz instalacje dodatkowych pakietów.
Jak widzimy, nadal mamy Debiana z repozytoriami i częścią pakietów od kaliego. To bardzo wygodne jeśli ktoś później chce instalować typowo debianowe pakiety, których nie ma w kalim. Natomiast jeśli chcemy mieć kaliego z uzupełnieniem o pakiety debianowe (tutaj zazwyczaj zaczyna się sypać, ale nie zawsze) wystarczy w /etc/apt/sources.list wpisać repozytoria kaliego jako pierwsze. Oczywiście nie jest to jedyny sposób w którym możemy posiadać Kaliego na zewnętrznym serwerze, ale ten jest najpewniejszy i najwygodniejszy.
EDIT: Repozytorium o którym wspomnieliśmy wcześniej (http://repo.s-m-s.pl/debian) zawiera pakiety stricte debianowe i te odpowiednie dla Kali Linuxa, co za tym idzie nadal mamy dostęp do paczek oryginalnego debiana a więc możemy instalować normalne oprogramowanie. Nie potrzebujemy więc dodatkowych wpisów debiana.
PS.
Gdzieś między ostatnim screenem a podsumowaniem wpadłem na genialny pomysł, aby sflashować sobie telefon. Nie był to dobry pomysł! Ale! O moich przygodach z androidem może następnym razem )