Teraz spróbujemy innego sposobu wstrzyknięcia SQL. Zobaczmy, czy baza danych nadal generuje komunikaty o błędach. Ta metoda nazywa się „oczekiwaniem na opóźnienie”, a samo opóźnienie jest zapisywane w następujący sposób: czekaj na opóźnienie 00:00:01'. Kopiuję to z naszego pliku i wklejam w pasku adresu przeglądarki.

Wszystko to nazywa się „ślepym tymczasowym zastrzykiem SQL”. Jedyne, co tutaj robimy, to powiedzenie „poczekaj 10 sekund opóźnienia”. Jeśli zauważyłeś, w lewym górnym rogu mamy napis „łączenie…”, czyli czym zajmuje się nasza strona? Czeka na połączenie, a po 10 sekundach na monitorze pojawia się właściwa strona. Stosując tę technikę kontaktujemy się z bazą danych, dzięki czemu możemy zadać jej jeszcze kilka pytań, np. jeśli użytkownikiem jest Joe, to musimy poczekać 10 sekund. Jest jasne? Jeśli użytkownikiem jest dbo, poczekaj również 10 sekund. Jest to metoda ślepego wstrzykiwania SQL.
Myślę, że programiści nie naprawiają tej luki podczas tworzenia łatek. Jest to wstrzyknięcie SQL, ale nasz program IDS również go nie widzi, podobnie jak poprzednie metody wstrzyknięcia SQL.
Spróbujmy czegoś bardziej interesującego. Skopiujmy tę linię z adresem IP i wklejmy ją do przeglądarki. Zadziałało! Pasek TCP w naszym programie zmienił kolor na czerwony, program zauważył 2 zagrożenia bezpieczeństwa.

Świetnie, zobaczymy, co będzie dalej. Mamy jedno zagrożenie dla powłoki XP i drugie – próbę wstrzyknięcia SQL. W sumie odnotowano dwie próby ataku na aplikację internetową.

OK, teraz pomóż mi z logiką. Mamy pakiet danych o włamaniach, w którym IDS twierdzi, że odpowiedział na różne włamania do powłoki XP.

Jeśli przewiniemy w dół, zobaczymy tabelę kodów HEX, po prawej stronie której znajduje się flaga z komunikatem xp_cmdshell + &27ping i oczywiście jest to złe.

Zobaczmy tutaj, co się stało. Co zrobił serwer SQL?

Serwer SQL powiedział: „możesz mieć hasło do mojej bazy danych, możesz uzyskać wszystkie rekordy z mojej bazy danych, ale koleś, nie chcę, żebyś wydawał na mnie swoje polecenia, to wcale nie jest fajne”!
Musimy się upewnić, że nawet jeśli IDS zgłosi zagrożenie dla powłoki XP, zagrożenie to zostanie zignorowane. Jeśli używasz SQL Server 2005 lub SQL Server 2008, to w przypadku wykrycia próby wstrzyknięcia SQL, powłoka poleceń systemu operacyjnego zostanie zablokowana, uniemożliwiając kontynuację pracy. To jest bardzo denerwujące. Więc co powinniśmy zrobić? Powinieneś spróbować bardzo uprzejmie zapytać serwer. Czy powinieneś powiedzieć tak: „Proszę, tatusiu, czy mogę dostać te ciasteczka”? Tak właśnie robię, serio, bardzo grzecznie proszę kelnera! Proszę o dodatkowe opcje, proszę o rekonfigurację i proszę o zmianę ustawień powłoki XP, aby powłoka była dostępna, bo jej potrzebuję!

Widzimy, że IDS to wykrył – widzisz, odnotowano tu już 3 zagrożenia.

Spójrz tylko tutaj – wysadziliśmy dzienniki bezpieczeństwa! Wygląda jak choinka, tyle tu wisi! Aż 27 zagrożeń bezpieczeństwa! Hurra chłopaki, złapaliśmy tego hakera, mamy go!

Nie martwimy się, że ukradnie nasze dane, ale jeśli uda mu się wykonać polecenia systemowe w naszej „skrzynce” - to już jest poważne! Możesz narysować trasę Telnet, FTP, możesz przejąć moje dane, spoko, ale nie przejmuję się tym, po prostu nie chcę, żebyś przejął powłokę mojej „skrzynki”.
Chcę porozmawiać o rzeczach, które naprawdę mnie poruszyły. Pracuję dla organizacji, pracuję dla nich od wielu lat i mówię Wam to, bo moja dziewczyna uważa, że jestem bezrobotny. Uważa, że ja tylko stoję na scenie i gawędzę, czego nie można uznać za pracę. Ale ja mówię: „nie, moja radość, jestem konsultantką”! Na tym polega różnica – mówię, co myślę i mi za to płacą.
Powiem tak – my, jako hakerzy, uwielbiamy rozbijać skorupę, a dla nas nie ma na świecie większej przyjemności niż „połykanie muszli”. Kiedy analitycy IDS piszą swoje reguły, widać, że piszą je w celu ochrony przed manipulacją powłoką. Jeśli jednak porozmawiasz z CIO o problemie ekstrakcji danych, poprosi Cię o rozważenie dwóch opcji. Załóżmy, że mam aplikację, która wykonuje 100 „elementów” na godzinę. Co jest dla mnie ważniejsze: zapewnienie bezpieczeństwa wszystkich danych w tej aplikacji czy bezpieczeństwo powłoki „box”? To jest poważne pytanie! Czym powinieneś się bardziej martwić?

To, że Twoja powłoka „pudełkowa” jest uszkodzona, nie musi oznaczać, że ktoś uzyskał dostęp do wewnętrznego działania aplikacji. Tak, jest to więcej niż prawdopodobne, a jeśli jeszcze się nie wydarzyło, to może nastąpić wkrótce. Należy jednak pamiętać, że wiele produktów zabezpieczających opiera się na założeniu, że osoba atakująca przechodzi przez Twoją sieć. Dlatego zwracają uwagę na wykonywanie poleceń, na wykonywanie poleceń, a ty musisz pamiętać, że to poważna sprawa. Zwracają uwagę na trywialne podatności, na bardzo proste skrypty typu cross-site, na bardzo proste zastrzyki SQL. Nie przejmują się zaawansowanymi zagrożeniami ani zaszyfrowanymi wiadomościami, nie przejmują się tego typu rzeczami. Można powiedzieć, że wszystkie produkty zabezpieczające szukają hałasu, jęknięcia, chcą zatrzymać coś, co gryzie Cię w kostkę. Oto, czego się nauczyłem, mając do czynienia z produktami zabezpieczającymi. Nie musisz kupować produktów zabezpieczających, nie musisz cofać ciężarówki. Potrzebujesz kompetentnych, wykwalifikowanych ludzi, którzy rozumieją technologię. Tak, mój Boże, dokładnie ludzie! Nie chcemy wydawać milionów dolarów na te problemy, ale wielu z Was pracowało w tej dziedzinie i wie, że gdy tylko Wasz szef zobaczy reklamę, biegnie do sklepu z krzykiem: „Musimy to kupić! " Ale tak naprawdę nie musimy, musimy po prostu naprawić bałagan, który za nami. Takie było założenie tego występu.
Środowisko bezpieczeństwa to obszar, w którym spędziłem dużo czasu na zrozumieniu działania mechanizmów bezpieczeństwa. Kiedy już zrozumiesz mechanizmy zabezpieczające, obejście zabezpieczeń nie będzie trudne. Na przykład mam aplikację internetową chronioną przez własną zaporę ogniową. Kopiuję adres panelu ustawień, wklejam go w pasek adresu przeglądarki, wchodzę w ustawienia i próbuję wykonać cross-site scripting.

W rezultacie otrzymuję komunikat zapory sieciowej o zagrożeniu - zostałem zablokowany.

Myślę, że to źle, zgadzasz się? Napotkałeś produkt zabezpieczający. Ale co, jeśli spróbuję czegoś takiego: wprowadzę parametr Joe'+OR+1='1

Jak widać, zadziałało. Popraw mnie, jeśli się mylę, ale widzieliśmy, jak wstrzyknięcie SQL pokonuje zaporę aplikacji. Załóżmy teraz, że chcemy założyć firmę zajmującą się wdrażaniem zabezpieczeń, więc założymy kapelusz twórcy oprogramowania. Teraz ucieleśniamy zło, bo to czarny kapelusz. Jestem konsultantem, więc to samo mogę zrobić z producentami oprogramowania.
Chcemy stworzyć i wdrożyć nowy system wykrywania sabotażu, dlatego założymy firmę zajmującą się wykrywaniem sabotażu. Snort, jako produkt typu open source, zawiera setki tysięcy sygnatur zagrożeń manipulacyjnych. Musimy postępować etycznie, aby nie kraść tych podpisów z innych aplikacji i nie umieszczać ich w naszym systemie. Po prostu usiądziemy i przepiszemy je wszystkie – hej, Bob, Tim, Joe, chodźcie tu i szybko przejrzyjcie te wszystkie 100 000 podpisów!
Musimy także stworzyć skaner podatności. Wiesz, że Nessus, program do automatycznego wyszukiwania luk, ma dobre 80 tysięcy sygnatur i skryptów sprawdzających luki. Znów będziemy postępować etycznie i sami przepiszemy je wszystkie w naszym programie.
Ludzie pytają mnie: „Joe, wszystkie te testy przeprowadzasz przy użyciu oprogramowania typu open source, takiego jak Mod Security, Snort i tym podobnych. Jak bardzo są one podobne do produktów innych producentów?” Odpowiadam im: „Wcale nie są do siebie podobni!” Ponieważ producenci nie kradną treści z produktów zabezpieczających typu open source, sami siadają i piszą wszystkie te zasady.
Jeśli potrafisz sprawić, że Twoje własne podpisy i ciągi ataków będą działać bez korzystania z produktów typu open source, jest to dla Ciebie świetna okazja. Jeśli nie jesteś w stanie konkurować z produktami komercyjnymi, podążając we właściwym kierunku, musisz znaleźć koncepcję, która pomoże Ci stać się sławnym w swojej branży.
Wszyscy wiedzą, że piję. Pokażę ci, dlaczego piję. Jeśli kiedykolwiek w życiu przeprowadzałeś audyt kodu źródłowego, na pewno będziesz pić, zaufaj mi, a potem zaczniesz pić.

Tak więc naszym ulubionym językiem jest C++. Przyjrzyjmy się temu programowi - Web Knight, jest to aplikacja typu firewall dla serwerów WWW. Domyślnie ma wyjątki. To interesujące — jeśli wdrożę tę zaporę, nie będzie ona chroniła mnie przed programem Outlook Web Access.

Wspaniały! Dzieje się tak dlatego, że wielu dostawców oprogramowania pobiera reguły z jednej aplikacji i wkleja je do swojego produktu bez konieczności wykonywania całej gamy badań. Kiedy więc wdrażam aplikację zapory internetowej, stwierdzam, że wszystko dotyczące poczty internetowej jest wykonywane niepoprawnie! Ponieważ prawie każda poczta internetowa domyślnie łamie zabezpieczenia. Masz kod sieciowy, który wykonuje polecenia systemowe i zapytania dla LDAP lub dowolnej innej bazy danych użytkowników bezpośrednio w Internecie.
Powiedz mi, na jakiej planecie coś takiego można uznać za bezpieczne? Pomyśl tylko: otwierasz Outlook Web Access, naciskasz ctrl + K, szukasz użytkowników i tak dalej, zarządzasz Active Directory bezpośrednio z Internetu, wykonujesz polecenia systemowe w systemie Linux, jeśli używasz Squirrel Mail, Horde lub czegokolwiek innego w przeciwnym razie. Wyciągasz wszystkie te ewaluacje i inne typy niebezpiecznych funkcjonalności. Dlatego wiele zapór sieciowych wyklucza je z listy zagrożeń bezpieczeństwa. Spróbuj zapytać o to producenta oprogramowania.
Wróćmy do aplikacji Web Knight. Ukradł wiele reguł bezpieczeństwa ze skanera URL, który skanuje wszystkie zakresy adresów IP. Czy wszystkie te zakresy adresów są wykluczone z mojego produktu?

Czy ktoś z Was chce zainstalować te adresy w swojej sieci? Czy chcesz, aby Twoja sieć działała na tych adresach? Tak to jest niesamowite. OK, przewińmy ten program w dół i spójrzmy na inne rzeczy, których ta zapora nie chce robić.
Nazywają się „1999” i chcą, aby ich serwer WWW cofnął się w czasie! Czy ktoś z Was pamięta te śmieci: /scripts, /iishelp, msads? Być może kilka osób z nostalgią przypomni sobie, jak fajnie było hakować takie rzeczy. „Pamiętasz, stary, jak dawno temu „zabijaliśmy” serwery, było fajnie!”

Teraz, jeśli spojrzysz na te wyjątki, zobaczysz, że możesz robić wszystkie te rzeczy - msad, drukarki, iisadmpwd - wszystkie te rzeczy, których nikt dzisiaj nie potrzebuje. A co z poleceniami, których nie wolno ci wykonywać?

Są to arp, at, cacls, chkdsk, cipher, cmd, com. Kiedy je wymieniasz, przepełniają Cię wspomnienia dawnych czasów: „stary, pamiętasz, jak przejęliśmy ten serwer, pamiętasz te czasy”?
Ale oto, co jest naprawdę interesujące - czy ktoś widzi tutaj WMIC lub może PowerShell? Wyobraź sobie, że masz nową aplikację, która działa poprzez uruchamianie skryptów w systemie lokalnym. Są to nowoczesne skrypty, ponieważ chcesz uruchomić system Windows Server 2008, a ja zrobię świetną rzecz, chroniąc ją za pomocą reguł zaprojektowanych dla systemu Windows 2000. Aby następnym razem, gdy sprzedawca przyjdzie do Ciebie ze swoją aplikacją internetową, zapytaj go: „Hej, stary, czy dodałeś takie rzeczy, jak bits admin lub uruchamianie poleceń PowerShell, czy sprawdziłeś wszystkie inne rzeczy, ponieważ będziemy aktualizować i korzystać z nowej wersji DotNET”? Ale wszystkie te rzeczy powinny być domyślnie obecne w produkcie zabezpieczającym!

Następną rzeczą, o której chcę z tobą porozmawiać, są błędy logiczne. Przejdźmy do 192.168.2.6. Jest to mniej więcej ta sama aplikacja, co poprzednia.

Możesz zauważyć coś interesującego, jeśli przewiniesz stronę w dół i klikniesz link Skontaktuj się z nami.

Jeśli spojrzysz na kod źródłowy zakładki „Skontaktuj się z nami”, która jest jedną z metod pentestingu, którą stale wykonuję, zauważysz tę linijkę.

Pomyśl o tym! Słyszałem, że kiedy to zobaczyli, wielu powiedziało: „Wow”! Robiłem kiedyś testy penetracyjne dla, powiedzmy, banku miliardera i zauważyłem coś podobnego. Nie potrzebujemy więc wstrzykiwania SQL ani wykonywania skryptów między witrynami - mamy podstawy, ten pasek adresu.

Zatem bez przesady – bank powiedział nam, że ma zarówno specjalistę od sieci, jak i inspektora sieci, i nie zgłosił żadnych uwag. Oznacza to, że uznali za normalne, że plik tekstowy można otworzyć i przeczytać w przeglądarce.
Oznacza to, że możesz po prostu odczytać plik bezpośrednio z systemu plików. Szef ich zespołu ds. bezpieczeństwa powiedział mi: „tak, jeden ze skanerów znalazł tę lukę, ale uznał ją za nieistotną”. Na co odpowiedziałem: OK, daj mi chwilę. Wpisałem filename=../../../../boot.ini w pasku adresu i udało mi się odczytać plik startowy systemu plików!

Na to powiedzieli mi: „nie, nie, nie, to nie są pliki krytyczne”! Odpowiedziałem - ale to jest serwer 2008? Powiedzieli, że tak, to on. Mówię - ale ten serwer ma plik konfiguracyjny zlokalizowany w katalogu głównym serwera, prawda? „Zgadza się” – odpowiadają. „Świetnie” – mówię – „a co, jeśli zrobi to atakujący” i w pasku adresu wpisuję nazwa_pliku=web.config. Mówią – i co, nic nie widzisz na monitorze?

Mówię - co jeśli kliknę monitor prawym przyciskiem myszy i wybiorę opcję Pokaż źródło strony? A co tu znajdę? „Nic krytycznego”? Zobaczę hasło administratora serwera!

I mówisz, że tu nie ma problemu?
Ale moją ulubioną częścią jest ta następna. Nie pozwalasz mi na wykonywanie poleceń w polu, ale mogę ukraść hasło administratora serwera WWW i bazę danych, przejrzeć całą bazę danych, wyrwać cały materiał na temat bazy danych i awarii systemu i ujdzie to na sucho. To przypadek, w którym zły facet mówi: „Hej, stary, dziś jest ten wielki dzień”!

Nie pozwól, aby produkty bezpieczeństwa spowodowały chorobę! Nie pozwól, aby produkty bezpieczeństwa spowodowały chorobę! Znajdź jakichś nerdów, daj im wszystkie pamiątki ze Star Trek, zainteresuj ich, zachęć ich, aby zostali z tobą, bo to ci nudni śmierdzący, którzy nie kąpią się codziennie, są tymi, którzy sprawiają, że twoje sieci działają. To ludzie, którzy pomogą Twoim produktom zabezpieczającym działać tak, jak powinny.
Powiedzcie mi, ilu z Was jest w stanie wytrzymać dłuższy czas w jednym pokoju z osobą, która ciągle mówi: „Och, muszę pilnie napisać ten skrypt!”, a która jest tym cały czas zajęta? Potrzebujesz jednak ludzi, którzy sprawią, że Twoje produkty zabezpieczające będą działać.
Powiem to jeszcze raz – produkty zabezpieczające są głupie, bo światła ciągle popełniają błędy, ciągle robią gówniane rzeczy, po prostu nie zapewniają bezpieczeństwa. Nigdy nie widziałem dobrego produktu zabezpieczającego, który nie wymagałby dokręcenia go w razie potrzeby przez osobę ze śrubokrętem, aby działał mniej więcej normalnie. To po prostu ogromna lista zasad mówiących, że to jest złe i to wszystko!
Chcę więc, żebyście spojrzeli na edukację, takie rzeczy jak bezpieczeństwo, szkolenia politechniczne, ponieważ istnieje wiele bezpłatnych kursów online poświęconych kwestiom bezpieczeństwa. Naucz się Pythona, naucz się Asemblera, naucz się testowania aplikacji internetowych.

To naprawdę pomoże Ci chronić Twoją sieć. Inteligentni ludzie chronią sieci, produkty sieciowe nie! Wróć do pracy i powiedz szefowi, że potrzebujesz więcej budżetu dla mądrzejszych ludzi, wiem, że to kryzys, ale mimo to powiedz mu – potrzebujemy więcej pieniędzy dla ludzi, na ich szkolenie. Jeśli kupujemy produkt, ale nie kupujemy kursu, jak go używać, bo jest drogi, to po co w ogóle go kupujemy, jeśli nie będziemy uczyć ludzi, jak z niego korzystać?
Pracowałem dla wielu dostawców produktów zabezpieczających, spędziłem prawie całe życie wdrażając te produkty i mam dość tej całej kontroli dostępu do sieci i tym podobnych, ponieważ zainstalowałem i uruchomiłem te wszystkie bzdurne produkty. Kiedyś przyszedłem do klienta, który chciał wdrożyć standard 802.1x dla protokołu EAP, więc miał adresy MAC i adresy dodatkowe dla każdego portu. Przyszedłem, zobaczyłem, że jest źle, odwróciłem się i zacząłem naciskać przyciski na drukarce. Wiadomo, że drukarka może wydrukować stronę testową sprzętu sieciowego ze wszystkimi adresami MAC i IP. Okazało się jednak, że drukarka nie obsługuje standardu 802.1x, więc należy to wykluczyć.
Następnie odłączyłem drukarkę i zmieniłem adres MAC mojego laptopa na adres MAC drukarki i podłączyłem laptopa, omijając w ten sposób to drogie rozwiązanie MAC, pomyśl o tym! Co dobrego może mi zatem dać to rozwiązanie MAC, jeśli ktoś może po prostu podać dowolne urządzenie jako drukarkę lub telefon VoIP?
Dlatego dzisiaj pentestowanie polega na tym, że spędzam czas na próbach zrozumienia i zrozumienia produktu zabezpieczającego zakupionego przez mojego klienta. Obecnie każdy bank, w którym przeprowadzam testy penetracyjne, ma te wszystkie HIPS, NIPS, LAUGTHS, MACS i całą masę innych akronimów, które są kompletną bzdurą. Ale próbuję zrozumieć, co te produkty próbują zrobić i jak próbują to zrobić. Potem, gdy już dowiem się, jakiej metodologii i logiki używają, aby zapewnić ochronę, obejście tego nie stanie się wcale trudne.
Mój ulubiony produkt, z którym Was zostawię, nazywa się MS 1103. Jest to exploit oparty na przeglądarce, który „rozpyla” system HIPS, sygnaturę zapobiegania włamaniom hosta lub sygnatury zapobiegania włamaniom hosta. W rzeczywistości ma na celu ominięcie podpisów HIPS. Nie chcę pokazywać, jak to działa, bo nie chcę czasu, żeby to zademonstrować, ale świetnie sobie radzi z omijaniem zabezpieczeń i chcę, żebyś tego spróbował.
OK, chłopaki, już wychodzę.

Kilka reklam 🙂
Dziękujemy za pobyt z nami. Podobają Ci się nasze artykuły? Chcesz zobaczyć więcej ciekawych treści? Wesprzyj nas składając zamówienie lub polecając znajomym, , unikalny odpowiednik serwerów klasy podstawowej, który został przez nas wymyślony dla Ciebie: (dostępne z RAID1 i RAID10, do 24 rdzeni i do 40 GB DDR4).
Dell R730xd 2 razy taniej w centrum danych Equinix Tier IV w Amsterdamie? Tylko tutaj w Holandii! Dell R420 — 2x E5-2430 2.2 GHz 6C 128 GB DDR3 2x960 GB SSD 1 Gb/s 100 TB — od 99 USD! Czytać o
Źródło: www.habr.com
