Nie jestem fanem pytań pamięciowych o konkretne przełączniki.

To tylko hipotetycze pytania - potraktuj je jako trening. Mogą one paść podczas rozmowy kwalifikacyjnej na pentestera - ale nie muszą. To bardziej informacja dla Ciebie co powinieneś wiedzieć i co warto doczytać.
Nie wyjaśniam tutaj szczegółowo o co chodzi w danym temacie. Bardziej tłumaczę, dlaczego ja zadałbym takie pytania i co chciałbym sprawdzić przy ich pomocy.
Podstawy

Uwierzytelnianie - weryfikacja tożsamości użytkownika np. za pomocą hasła.
Autoryzacja - prawo do wykonania konkretnej operacji/dostępu do konkretnego pliku
Te pojęcia są ze sobą często mylone. Powinieneś wiedzieć, że mają różne znaczenia.

Komunikacja z adresem 127.0.0.1 oznacza wymianę informacji wewnątrz danego hosta.
Sprawdzamy podstawowe wiadomości o sieciach komputerowych. Alternatywnie można zapytać o adres 127.0.0.2
. Powinno paść słowo kluczowe loopback
. Loopback to wirtualne urządzenie sieciowe.

Algorytm symetryczny - wykorzystuje pojedynczy klucz - do szyfrowania i deszyfrowania.
Kryptografia asymetryczna - jeden z kluczy jest dostępny publicznie. Każdy może go użyć do zaszyfrowania wiadomości. Tylko posiadacz drugiego, tajnego klucza może odszyfrować taką wiadomość.
Podstawowa wiedza z zakresu kryptografii. Czy potrafisz podać przykład wykorzystania algorytmu asymetrycznego?

Szyfrowanie - proces zamiany tekstu jawnego (zrozumiałego dla człowieka) w szyfrogram.
Haszowanie - wyliczenie przy użyciu funkcji skrótu ciągu znaków o stałej długości. Jest to proces nieodwracalny.
Pytanie można zadać na wiele sposobów. Jak przechowywać hasła użytkowników w bazie danych? Jak sprawdzić, czy plik nie został zmodyfikowany?

Protokół bezstanowy - nie zachowuje żadnych informacji o poprzednich transakcjach. Każde żądanie jest rozpatrywane niezależnie od innych.
Definicja to jedno - zrozumienie to drugie. Czy rozumiesz skąd serwer wie kim jesteś po zalogowaniu?. Dlaczego używamy ciasteczek?

Żądanie HTTP składa się z metody, adresu, wersji protokołu, nagłówków.
Jeżeli używałeś Burpa to wiesz, że mamy żądania GET/POST
. Potrafisz podać popularne nagłówki (cookie, user agent). Wiesz, że są one rozdzielone znakiem CRLF
. Po co nagłówek Content-Length
?

503 - usługa niedostępna.
404 - strona nie istnieje (nie znaleziono)
301 - trwale przeniesiony
Kody błędów to istotna informacja. Wiesz, że informacje diagnostyczne mogą być przydatne. Rozumiesz, jak działają narzędzia w stylu dirbuster.

/etc/passwd - nazwa, identyfikator, grupa podstawowa, katalog domowy, powłoka.
/etc/shadow - nazwa, hasło (w formie hasza), data zmiany hasła.
Podstawowa wiedza z zakresu Linuxa. Jeżeli rozwiązywałeś jakieś zadania to pewno odczytywałeś plik /etc/passwd
. Można zapytać o inne komendy: chmod
, ls
.

TCP - wysoce niezawodny, wykorzystuje three-way handshake.
UDP - nadawca nie czeka aż odbiorca odbierze pakiety, po prostu kontynuuje wysyłanie.
Czy potrafisz wytłumaczyć dlaczego HTTP korzysta z TCP a nie UDP?
OWASP

Jeżeli programista nie używa "prepared statement" tylko łączy dane od użytkownika z zapytaniem może dojść do "wstrzyknięcia" dodatkowych warunków/danych.
Potrafisz wyjaśnić na czym polega SQL Injection. Wiesz co to UNION
, SELECT
i LIMIT
. Kojarzysz pojęcie Blind SQL Injection.

- CSS injection
- NoSQL injection
- LDAP injection
- Command injection
- Server-side template injection
SQL Injection to oczywisty typ wstrzyknięcia. Ale istnieją też mniej znane. Sprawdzam, czy je kojarzysz.

Principle of least privilege - każdy element systemu ma dostęp tylko do tych informacji, które są niezbędne do spełnienia wyznaczonych mu celów/zadań.
Nie tylko znasz definicję, ale potrafisz podać przykład. Jeżeli sekretarka korzysta tylko z emaila nie powinna mieć dostępu do bazy danych lub serwerów produkcyjnych.

Reflected - kod jest zaszyty w linku przesłanym do ofiary.
Stored - kod jest zapisany w bazie (lub innym podobnym miejscu).
DOM - użyto niebezpiecznych funkcji w JS (innerHTML
/eval
).
Wiesz co to XSS i dlaczego jest niebezpieczny. Kojarzysz co to onerror
, onclick
. Rozumiesz czym różni się innerHTML
od innerText
.

Nie - bo nie powinieneś go znać 😉
Wiesz, że hasła nie powinny być przechowywane jako plain text
. Potrafisz wyjaśnić procedurę resetowania hasła.

XXE - przetwarzanie złośliwego pliku XML może doprowadzić do odczytania zawartości pliku z atakowanej maszyny.
Wiesz, co to XML
. Znasz pojęcie encji
.

Kupony rabatowe w sklepach
Race Condition - niektóre akcje w systemie mogą się wykonać tylko raz
Co jeśli wyślemy wiele żądań w tym samym momencie?
Czy wykonają się raz a może wiele razy?
Świetnie, jeżeli znasz moduł Intruder
. Albo Turbo Intruder
. A może potrafisz podać inne przykłady?

Damn Vulnerable Web Application - specjalnie przygotowana aplikacja
która posiada błędy bezpieczeństwa. Można na niej szlifować swoje umiejętności.
Znajomość OWASP
to podstawa. Jeżeli czytałeś - to raczej na pewno natknąłeś się na ten projekt. Nie używałeś? To może zgadniesz na podstawie nazwy.
Bug bounty

Common Vulnerabilities and Exposures - identyfikator odpowiadający
powszechnie znanym podatnościom, standard ich nazewnictwa.
Odnalezionym błędom można przypisać numery. Wiesz, że firmy podają je w swoich komunikatach. Znasz Exploit Database
(lub inne miejsca).

Bug Bounty - to formalne zaproszenie do zgłaszania odnalezionych podatności. Czasami można za nie otrzymać nagrodę (również finansową).
Znasz popularne platformy (HackerOne
, BugCrowd
). Wiesz, że można czytać (niektóre) raporty innych osób. Może brałeś udział w takim programie (i coś znalazłeś).

Google Hacking - wykorzystanie zapytań do wyszukiwarki, które pozwalają na odszukanie przydatnych informacji.
Wiesz co to Shodan
. Kojarzysz termin głębokie ukrycie
. Potrafisz stworzyć ukryty plik.

Testy czarnej skrzynki - osoba testująca nie zna budowy programu poddanego testom.
Testy białej skrzynki - mamy dostęp do kodu źródłowego i dokumentacji systemu.
Grey box - połączenie metody black box z white box.
Może znasz potencjalnie niebezpieczne funkcje w różnych językach. Wiesz co oznacza pojęcie rekonesansu
. Znasz pojęcie certificate transparency log
.
Inne

Phishing - metoda oszustwa, w której przestępca podszywa się pod kogoś lub coś w celu wyłudzenia informacji (np. loginu i hasła).
Używasz menadżera haseł. Wiesz co to 2FA/U2F.

To, że oprogramowanie jest Open Source nie oznacza od razu, że jest bezpieczne. Programy tworzą ludzie, którzy popełniają błędy.
Pytanie otwarte, zachęcające do dyskusji. Potrafisz wskazać plusy i minusy projektów open source
. Znasz pojęcie security through obscurity
.

Certyfikat zawiera:
- datę ważności
- numer seryjny
- informację o podmiocie
- adres listy CRL
- dane wystawcy
Rozumiesz po co są certyfikaty. Wiesz, że mają określoną datę ważności. Kojarzysz, że są różne, główne urzędy certyfikacji
. Pewno samemu instalowałeś certyfikat dla BURPa
.

Chronimy dane, które mogą wpaść w ręce przestępców (jeśli ukradną laptopa).
Pytanie otwarte - prowokujące do rozmowy. Wiesz jak działa ekran logowania komputera. Rozumiesz, że można bootować
laptopa z pendrive.

SOP - to istotny mechanizm bezpieczeństwa, który określa sposób, w jaki dokument lub skrypt jednego pochodzenia (origin) może komunikować się z zasobem innego pochodzenia. Pozwala to na odizolowanie potencjalnie szkodliwych dokumentów i tym samym redukowane są czynniki sprzyjające atakom.
https://developer.mozilla.org/pl/docs/Web/Bezpiecze%C5%84stwo/Same-origin_policy
Origin = protokół, domena i port
. Potrafisz wyjaśnić po co ta izolacja. Znasz pojęcia CORS
, JSONP.

- Burp
- ZAP
- Metasploit
- NMAP
- WireShark
- HashCAT
- SQLmap
- DirBuster
- WFUZZ
- IDA
- Ghidra
Alternatywnie: jak wysłać zmodyfikowane żądanie do serwera? Wymienione narzędzia nie mają większego znaczenia. Sprawdzamy, czy wiedza nie jest tylko teoretyczna. Czy potrafisz opisać co robią te narzędzia. Umiesz wykonać daną pracę ręcznie.

http://hans:[email protected]:8080/demo/example.cgi?land=de&stadt=aa \__/ \__/ \____/ \_____________/ \__/\_______________/ \______________/ | | | | | | | | login | host port ścieżka ścieżka protokół hasło (adres serwera) do zasobu wyszukiwania https://pl.wikipedia.org/wiki/Uniform_Resource_Locator
Można to pytanie dodatkowo rozszerzyć. Jak nazywa się część po #
. Czy jest ona wysyłana do serwera?

- 20 - FTP
- 22 - SSH
- 53 - DNS
- 80 - HTTP
- 443 - HTTPS
- 445 - SMB
- 3306 - MySQL
Wiesz co to nmap
. Rozumiesz, że testować można nie tylko aplikacje webowe. Potrafisz wymienić kilka znanych portów.

Eskalacja uprawnień – zdobycie uprawnień do zasobów, które normalnie nie są dostępne.
Rozumiesz, że systemy działają na różnych poziomach uprawnień. Wiesz czym różni się zwykłe konto od konta administratora. Wiesz co to SUID
.

- Menadżer haseł
- 2FA
- Antywirus
- Aktualizacje oprogramowania
- Maszyny wirtualne
- Firewall
Jeżeli rzeczywiście interesujesz się bezpieczeństwem to pewno zastanawiałeś się jak chronić swoją pocztę. Rozumiesz, że ktoś może się na nią włamać.

- czy strona ma captcha, rate limiting
- czy wspiera 2FA/U2F
- jak działa resetowanie hasła
- jak działa rejestracja (ticket trick)
- czy mogę sprawdzić kto posiada konto (a kto nie)
- jakie komunikaty błędów są zwracane (reflected XSS)
- SQL Injection/NoSQL Injection
- jak przechowywane jest hasło?
Pytanie otwarte - sprawdzające jak myślisz. Strona logowania (to teoretycznie) tylko prosty formularz. Czy rozumiesz jak działa od środka
.

Dowolny exploit/błąd na który natknąłeś się podczas swojej nauki.
Jeżeli rozwiązywałeś jakieś zadania praktyczne musiałeś wykorzystywać gotowe exploity
. Często wymagają one drobnych modyfikacji. Opisując je - wiem, że coś robiłeś.

CSRF - wykonanie żądania do serwera przez przeglądarkę użytkownika. Sprawdzamy czy serwis wykorzystuje nagłówki/parametry anty CSRF. Wysyłamy żądanie bez nich i sprawdzamy, czy się powiodło.
Wytłumaczenie CSRF może być trudne. Spróbuj wytłumaczyć to na przykładzie banku i wysłania przelewu.

Java, Python, PHP, .NET
Serializacja - proces przekształcania obiektów w strumień bajtów.
Deserializacja - proces odwrotny do serializacji.
Serializacja może być trudna do zrozumienia przez osoby bez znajomości programowania.

Można zdekompilować aplikację. Można dodać nowy, główny urząd certyfikacji do telefonu. Można przepuścić ruch przez zewnętrzny serwer proxy. Burp Suite.
Aplikacje mobilne to nie coś, co testują początkujący. Taka wiedza może zostać pozytywnie odebrana. Wymaga kilku umiejętności - aby wszystko działało.

../
..\
A czy wiesz gdzie może wystąpić taka podatność (i dlaczego)?

MS08-067 - Unauthenticated RCE jako SYSTEM z powodu buffer overflow w RPC.
Przecież to historia? Jeżeli robiłeś jakieś boxy (w stylu Hack The Box
) to pewno się na to natknąłeś.

- Maszyna wirtualna
- WSL
- Docker
Jeżeli zaczynasz swoją przygodę z bezpieczeństwem to pewno korzystasz z Windowsa. Jeżeli robiłeś praktyczne zadania to raczej na pewno natknąłeś się na ten problem.

- Waga błędu
- Nazwa podatności
- Opis
- Przykładowe żądania
- Rekomendacje naprawy
Oczywistym jest, że sam pewno nie tworzyłeś takiego raportu. Ale jeżeli czytałeś opisy błędów - to masz rozeznanie. Co w nich jest a czego tam nie ma.

Język nie ma znaczenia.
Jeśli nie znasz - to może inaczej poradzisz sobie z problemem. Może znasz jakieś platformy no-code
? Może wykorzystasz jakieś narzędzia z interfejsem GUI
?

Red Team - zespół osób, które symulują realistyczne ataki na firmy.
Czy interesowałeś się innymi działkami bezpieczeństwa? A może Reverse Engineering
? Skąd wiesz, że to pentesting jest dla Ciebie najlepszy?