hacktricks/network-services-pentesting/pentesting-web
2024-09-27 11:27:40 +00:00
..
buckets Translated ['generic-methodologies-and-resources/basic-forensic-methodol 2024-07-19 10:19:44 +00:00
drupal Translated ['binary-exploitation/libc-heap/README.md', 'binary-exploitat 2024-09-23 23:35:04 +00:00
electron-desktop-apps Translated ['binary-exploitation/libc-heap/README.md', 'binary-exploitat 2024-09-19 16:41:49 +00:00
php-tricks-esp Translated ['network-services-pentesting/pentesting-web/php-tricks-esp/R 2024-09-05 18:59:54 +00:00
tomcat Translated ['README.md', 'crypto-and-stego/hash-length-extension-attack. 2024-09-04 13:37:30 +00:00
403-and-401-bypasses.md Translated ['network-services-pentesting/512-pentesting-rexec.md', 'netw 2024-08-04 15:18:57 +00:00
aem-adobe-experience-cloud.md Translated ['generic-methodologies-and-resources/basic-forensic-methodol 2024-07-19 10:19:44 +00:00
angular.md Translated to Polish 2024-02-11 01:46:25 +00:00
apache.md Translated ['network-services-pentesting/pentesting-web/apache.md', 'pen 2024-08-19 11:12:16 +00:00
artifactory-hacking-guide.md Translated ['generic-methodologies-and-resources/basic-forensic-methodol 2024-07-19 10:19:44 +00:00
bolt-cms.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:50:16 +00:00
cgi.md Translated ['generic-methodologies-and-resources/basic-forensic-methodol 2024-07-19 10:19:44 +00:00
code-review-tools.md Translated ['network-services-pentesting/pentesting-web/code-review-tool 2024-09-27 11:27:40 +00:00
dotnetnuke-dnn.md Translated ['crypto-and-stego/cryptographic-algorithms/unpacking-binarie 2024-07-19 04:55:16 +00:00
drupal.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:39:36 +00:00
flask.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:50:16 +00:00
git.md Translated ['generic-methodologies-and-resources/basic-forensic-methodol 2024-07-19 10:19:44 +00:00
golang.md Translated ['generic-methodologies-and-resources/basic-forensic-methodol 2024-07-19 10:19:44 +00:00
grafana.md Translated ['generic-methodologies-and-resources/basic-forensic-methodol 2024-07-19 10:19:44 +00:00
graphql.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:50:16 +00:00
gwt-google-web-toolkit.md Translated to Polish 2024-02-11 01:46:25 +00:00
h2-java-sql-database.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:50:16 +00:00
iis-internet-information-services.md Translated ['README.md', 'crypto-and-stego/hash-length-extension-attack. 2024-09-04 13:37:30 +00:00
imagemagick-security.md Translated ['generic-methodologies-and-resources/basic-forensic-methodol 2024-07-19 10:19:44 +00:00
jboss.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:50:16 +00:00
jira.md Translated ['binary-exploitation/libc-heap/README.md', 'binary-exploitat 2024-09-23 23:35:04 +00:00
joomla.md Translated ['network-services-pentesting/pentesting-web/drupal/README.md 2024-08-21 09:10:11 +00:00
jsp.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:50:16 +00:00
laravel.md Translated ['binary-exploitation/basic-stack-binary-exploitation-methodo 2024-07-18 22:15:55 +00:00
moodle.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:50:16 +00:00
nextjs.md Translated ['network-services-pentesting/pentesting-web/nextjs.md', 'pen 2024-08-18 15:54:46 +00:00
nginx.md Translated ['network-services-pentesting/512-pentesting-rexec.md', 'netw 2024-08-04 15:18:57 +00:00
nodejs-express.md Translated to Polish 2024-02-11 01:46:25 +00:00
prestashop.md Translated ['network-services-pentesting/pentesting-web/drupal/README.md 2024-08-21 09:10:11 +00:00
put-method-webdav.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:50:16 +00:00
python.md Translated ['generic-methodologies-and-resources/basic-forensic-methodol 2024-07-19 10:19:44 +00:00
README.md Translated ['binary-exploitation/libc-heap/README.md', 'binary-exploitat 2024-09-23 23:35:04 +00:00
rocket-chat.md Translated ['generic-methodologies-and-resources/pentesting-methodology. 2024-08-31 16:27:45 +00:00
special-http-headers.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:50:16 +00:00
spring-actuators.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:50:16 +00:00
symphony.md Translated ['generic-methodologies-and-resources/basic-forensic-methodol 2024-07-19 10:19:44 +00:00
tomcat.md Translated ['README.md', 'crypto-and-stego/hash-length-extension-attack. 2024-09-04 13:37:30 +00:00
uncovering-cloudflare.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:50:16 +00:00
vmware-esx-vcenter....md Translated ['generic-methodologies-and-resources/basic-forensic-methodol 2024-07-19 10:19:44 +00:00
waf-bypass.md Translated to Polish 2024-02-11 01:46:25 +00:00
web-api-pentesting.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:50:16 +00:00
werkzeug.md Translated ['network-services-pentesting/512-pentesting-rexec.md', 'netw 2024-08-04 15:18:57 +00:00
wordpress.md Translated ['network-services-pentesting/pentesting-web/drupal/README.md 2024-08-21 09:10:11 +00:00

80,443 - Metodologia Pentestingu Web

{% hint style="success" %} Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Wsparcie dla HackTricks
{% endhint %}

Jeśli jesteś zainteresowany karierą w hacking i chcesz złamać to, co nie do złamania - zatrudniamy! (wymagana biegła znajomość polskiego w mowie i piśmie).

{% embed url="https://www.stmcyber.com/careers" %}

Podstawowe informacje

Usługa internetowa jest najbardziej powszechną i rozległą usługą i istnieje wiele różnych typów podatności.

Domyślny port: 80 (HTTP), 443(HTTPS)

PORT    STATE SERVICE
80/tcp  open  http
443/tcp open  ssl/https
nc -v domain.com 80 # GET / HTTP/1.0
openssl s_client -connect domain.com:443 # GET / HTTP/1.0

Web API Guidance

{% content-ref url="web-api-pentesting.md" %} web-api-pentesting.md {% endcontent-ref %}

Methodology summary

W tej metodologii zakładamy, że zamierzasz zaatakować domenę (lub subdomenę) i tylko to. Dlatego powinieneś zastosować tę metodologię do każdej odkrytej domeny, subdomeny lub adresu IP z nieokreślonym serwerem webowym w zakresie.

  • Zacznij od identyfikacji technologii używanych przez serwer webowy. Szukaj sztuczek, które warto mieć na uwadze podczas reszty testu, jeśli uda ci się pomyślnie zidentyfikować technologię.
  • Jakieś znane luki w wersji technologii?
  • Używasz jakiejś znanej technologii? Jakieś przydatne sztuczki do wydobycia większej ilości informacji?
  • Jakieś specjalistyczne skanery do uruchomienia (jak wpscan)?
  • Uruchom skanery ogólnego przeznaczenia. Nigdy nie wiesz, czy znajdą coś interesującego.
  • Zacznij od wstępnych kontroli: robots, sitemap, błąd 404 i skanowanie SSL/TLS (jeśli HTTPS).
  • Zacznij spiderować stronę internetową: Czas na znalezienie wszystkich możliwych plików, folderów i parametrów używanych. Sprawdź również specjalne znaleziska.
  • Zauważ, że za każdym razem, gdy nowy katalog zostanie odkryty podczas brute-forcingu lub spiderowania, powinien być spiderowany.
  • Brute-Forcing katalogów: Spróbuj brute force wszystkich odkrytych folderów w poszukiwaniu nowych plików i katalogów.
  • Zauważ, że za każdym razem, gdy nowy katalog zostanie odkryty podczas brute-forcingu lub spiderowania, powinien być Brute-Forced.
  • Sprawdzanie kopii zapasowych: Sprawdź, czy możesz znaleźć kopie zapasowe odkrytych plików, dodając powszechne rozszerzenia kopii zapasowych.
  • Brute-Force parametrów: Spróbuj znaleźć ukryte parametry.
  • Gdy już zidentyfikujesz wszystkie możliwe punkty końcowe akceptujące wejście użytkownika, sprawdź wszelkiego rodzaju luki związane z tym.
  • Postępuj zgodnie z tą listą kontrolną

Wersja serwera (Vulnerable?)

Identyfikacja

Sprawdź, czy istnieją znane luki w wersji serwera uruchomionej.
Nagłówki HTTP i ciasteczka odpowiedzi mogą być bardzo przydatne do identyfikacji technologii i/lub wersji używanej. Skanowanie Nmap może zidentyfikować wersję serwera, ale mogą być również przydatne narzędzia whatweb, webtech lub https://builtwith.com/:

whatweb -a 1 <URL> #Stealthy
whatweb -a 3 <URL> #Aggresive
webtech -u <URL>
webanalyze -host https://google.com -crawl 2

Search for vulnerabilities of the web application version

Check if any WAF

Web tech tricks

Some tricks for finding vulnerabilities in different well known technologies being used:

Pamiętaj, że ta sama domena może używać różnych technologii w różnych portach, folderach i subdomenach.
Jeśli aplikacja webowa korzysta z jakiejkolwiek znanej technologii/platformy wymienionej wcześniej lub jakiejkolwiek innej, nie zapomnij poszukać w Internecie nowych sztuczek (i daj mi znać!).

Source Code Review

If the source code of the application is available in github, apart of performing by your own a White box test of the application there is some information that could be useful for the current Black-Box testing:

  • Czy istnieje plik Change-log lub Readme lub Version lub cokolwiek z informacjami o wersji dostępnymi przez sieć?
  • Jak i gdzie są przechowywane dane uwierzytelniające? Czy istnieje jakiś (dostępny?) plik z danymi uwierzytelniającymi (nazwy użytkowników lub hasła)?
  • Czy hasła są w czystym tekście, szyfrowane czy jaki algorytm haszujący jest używany?
  • Czy używa jakiegoś klucza głównego do szyfrowania czegoś? Jaki algorytm jest używany?
  • Czy możesz uzyskać dostęp do któregokolwiek z tych plików wykorzystując jakąś lukę?
  • Czy w githubie są jakieś interesujące informacje (rozwiązane i nierozwiązane) problemy? Lub w historii commitów (może jakieś hasło wprowadzone w starym commicie)?

{% content-ref url="code-review-tools.md" %} code-review-tools.md {% endcontent-ref %}

Automatic scanners

General purpose automatic scanners

nikto -h <URL>
whatweb -a 4 <URL>
wapiti -u <URL>
W3af
zaproxy #You can use an API
nuclei -ut && nuclei -target <URL>

# https://github.com/ignis-sec/puff (client side vulns fuzzer)
node puff.js -w ./wordlist-examples/xss.txt -u "http://www.xssgame.com/f/m4KKGHi2rVUN/?query=FUZZ"

CMS skanery

Jeśli używany jest CMS, nie zapomnij uruchomić skanera, może znajdziesz coś interesującego:

Clusterd: JBoss, ColdFusion, WebLogic, Tomcat, Railo, Axis2, Glassfish
CMSScan: WordPress, Drupal, Joomla, vBulletin strony internetowe pod kątem problemów z bezpieczeństwem. (GUI)
VulnX: Joomla, Wordpress, Drupal, PrestaShop, Opencart
CMSMap: (W)ordpress, (J)oomla, (D)rupal lub (M)oodle
droopscan: Drupal, Joomla, Moodle, Silverstripe, Wordpress

cmsmap [-f W] -F -d <URL>
wpscan --force update -e --url <URL>
joomscan --ec -u <URL>
joomlavs.rb #https://github.com/rastating/joomlavs

W tym momencie powinieneś już mieć pewne informacje o serwerze WWW używanym przez klienta (jeśli jakiekolwiek dane są podane) oraz kilka sztuczek, które warto mieć na uwadze podczas testu. Jeśli masz szczęście, mogłeś nawet znaleźć CMS i uruchomić jakiś skaner.

Krok po kroku Odkrywanie Aplikacji Webowej

Od tego momentu zaczniemy interakcję z aplikacją webową.

Wstępne kontrole

Domyślne strony z interesującymi informacjami:

  • /robots.txt
  • /sitemap.xml
  • /crossdomain.xml
  • /clientaccesspolicy.xml
  • /.well-known/
  • Sprawdź również komentarze na głównych i pobocznych stronach.

Wymuszanie błędów

Serwery WWW mogą zachowywać się nieprzewidywalnie, gdy wysyłane są do nich dziwne dane. Może to otworzyć luki lub ujawnienie wrażliwych informacji.

  • Uzyskaj dostęp do fałszywych stron jak /whatever_fake.php (.aspx,.html,.etc)
  • Dodaj "[]", "]]" i "[[" w wartościach cookie i wartościach parametrów, aby stworzyć błędy
  • Wygeneruj błąd, podając dane jako /~randomthing/%s na końcu URL
  • Spróbuj różnych metod HTTP jak PATCH, DEBUG lub błędnych jak FAKE

Sprawdź, czy możesz przesyłać pliki (metoda PUT, WebDav)

Jeśli odkryjesz, że WebDav jest włączony, ale nie masz wystarczających uprawnień do przesyłania plików w folderze głównym, spróbuj:

  • Brute Force poświadczeń
  • Przesyłać pliki za pomocą WebDav do pozostałych znalezionych folderów w obrębie strony internetowej. Możesz mieć uprawnienia do przesyłania plików w innych folderach.

Luki w SSL/TLS

  • Jeśli aplikacja nie wymusza użycia HTTPS w żadnej części, to jest vulnerable to MitM
  • Jeśli aplikacja wysyła wrażliwe dane (hasła) używając HTTP. To jest poważna luka.

Użyj testssl.sh, aby sprawdzić luki (w programach Bug Bounty prawdopodobnie tego rodzaju luki nie będą akceptowane) i użyj a2sv, aby ponownie sprawdzić luki:

./testssl.sh [--htmlfile] 10.10.10.10:443
#Use the --htmlfile to save the output inside an htmlfile also

# You can also use other tools, by testssl.sh at this momment is the best one (I think)
sslscan <host:port>
sslyze --regular <ip:port>

Informacje o lukach SSL/TLS:

Spidering

Uruchom jakiś rodzaj pająka w sieci. Celem pająka jest znalezienie jak największej liczby ścieżek z testowanej aplikacji. Dlatego należy używać przeszukiwania sieci i zewnętrznych źródeł, aby znaleźć jak najwięcej ważnych ścieżek.

  • gospider (go): Pająk HTML, LinkFinder w plikach JS i zewnętrznych źródłach (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com).
  • hakrawler (go): Pająk HML, z LinkFinder dla plików JS i Archive.org jako zewnętrzne źródło.
  • dirhunt (python): Pająk HTML, wskazuje również "soczyste pliki".
  • evine (go): Interaktywny CLI HTML pająk. Przeszukuje również Archive.org.
  • meg (go): To narzędzie nie jest pająkiem, ale może być przydatne. Możesz po prostu wskazać plik z hostami i plik ze ścieżkami, a meg pobierze każdą ścieżkę na każdym hoście i zapisze odpowiedź.
  • urlgrab (go): Pająk HTML z możliwościami renderowania JS. Wygląda jednak na to, że nie jest utrzymywany, wersja skompilowana jest stara, a obecny kod nie kompiluje się.
  • gau (go): Pająk HTML, który korzysta z zewnętrznych dostawców (wayback, otx, commoncrawl).
  • ParamSpider: Ten skrypt znajdzie adresy URL z parametrami i je wypisze.
  • galer (go): Pająk HTML z możliwościami renderowania JS.
  • LinkFinder (python): Pająk HTML, z możliwościami beautify JS, zdolny do wyszukiwania nowych ścieżek w plikach JS. Warto również rzucić okiem na JSScanner, który jest wrapperem LinkFinder.
  • goLinkFinder (go): Do wyodrębniania punktów końcowych zarówno w źródle HTML, jak i w osadzonych plikach javascript. Przydatne dla łowców błędów, zespołów red, ninja infosec.
  • JSParser (python2.7): Skrypt w Pythonie 2.7 używający Tornado i JSBeautifier do analizy względnych adresów URL z plików JavaScript. Przydatne do łatwego odkrywania żądań AJAX. Wygląda na to, że nie jest utrzymywany.
  • relative-url-extractor (ruby): Dany plik (HTML) wyodrębni z niego adresy URL, używając sprytnych wyrażeń regularnych do znajdowania i wyodrębniania względnych adresów URL z brzydkich (minifikowanych) plików.
  • JSFScan (bash, kilka narzędzi): Zbieraj interesujące informacje z plików JS, używając kilku narzędzi.
  • subjs (go): Znajdź pliki JS.
  • page-fetch (go): Załaduj stronę w bezgłowym przeglądarku i wydrukuj wszystkie załadowane adresy URL.
  • Feroxbuster (rust): Narzędzie do odkrywania treści, łączące kilka opcji poprzednich narzędzi.
  • Javascript Parsing: Rozszerzenie Burp do znajdowania ścieżek i parametrów w plikach JS.
  • Sourcemapper: Narzędzie, które, podając URL .js.map, uzyska dla Ciebie zbeatyfikowany kod JS.
  • xnLinkFinder: To narzędzie służy do odkrywania punktów końcowych dla danego celu.
  • waymore: Odkryj linki z maszyny wayback (pobierając również odpowiedzi w wayback i szukając więcej linków).
  • HTTPLoot (go): Przeszukuj (nawet wypełniając formularze) i znajdź wrażliwe informacje, używając specyficznych wyrażeń regularnych.
  • SpiderSuite: Spider Suite to zaawansowany wielofunkcyjny GUI web security Crawler/Spider zaprojektowany dla profesjonalistów w dziedzinie cyberbezpieczeństwa.
  • jsluice (go): To pakiet Go i narzędzie wiersza poleceń do wyodrębniania adresów URL, ścieżek, sekretów i innych interesujących danych z kodu źródłowego JavaScript.
  • ParaForge: ParaForge to proste rozszerzenie Burp Suite do wyodrębniania parametrów i punktów końcowych z żądania w celu stworzenia niestandardowej listy słów do fuzzingu i enumeracji.
  • katana (go): Świetne narzędzie do tego.
  • Crawley (go): Wydrukuj każdy link, który uda mu się znaleźć.

Brute Force katalogów i plików

Rozpocznij brute-forcing od folderu głównego i upewnij się, że brute-forcesz wszystkie znalezione katalogi przy użyciu tej metody oraz wszystkich katalogów odkrytych przez Spidering (możesz to robić brute-forcing rekursywnie i dodając na początku używanej listy słów nazwy znalezionych katalogów).
Narzędzia:

  • Dirb / Dirbuster - Wbudowane w Kali, stare (i wolne) ale funkcjonalne. Pozwala na automatycznie podpisane certyfikaty i przeszukiwanie rekurencyjne. Zbyt wolne w porównaniu do innych opcji.
  • Dirsearch (python): Nie pozwala na automatycznie podpisane certyfikaty, ale pozwala na przeszukiwanie rekurencyjne.
  • Gobuster (go): Pozwala na automatycznie podpisane certyfikaty, nie ma przeszukiwania rekurencyjnego.
  • Feroxbuster - Szybki, wspiera przeszukiwanie rekurencyjne.
  • wfuzz wfuzz -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt https://domain.com/api/FUZZ
  • ffuf - Szybki: ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.10/FUZZ
  • uro (python): To nie jest pająk, ale narzędzie, które, podając listę znalezionych adresów URL, usunie "zduplikowane" adresy URL.
  • Scavenger: Rozszerzenie Burp do tworzenia listy katalogów z historii burp różnych stron.
  • TrashCompactor: Usuwa adresy URL z zduplikowanymi funkcjonalnościami (na podstawie importów js).
  • Chamaleon: Używa wapalyzer do wykrywania używanych technologii i wybierania list słów do użycia.

Zalecane słowniki:

Uwaga, że za każdym razem, gdy nowy katalog zostanie odkryty podczas brute-forcingu lub spideringu, powinien być Brute-Forced.

Co sprawdzić w każdym znalezionym pliku

  • Broken link checker: Znajdź uszkodzone linki w HTML, które mogą być podatne na przejęcia.
  • Kopie zapasowe plików: Gdy znajdziesz wszystkie pliki, poszukaj kopii zapasowych wszystkich plików wykonywalnych (".php", ".aspx"...). Typowe warianty nazewnictwa kopii zapasowej to: file.ext~, #file.ext#, ~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp i file.old. Możesz również użyć narzędzia bfac lub backup-gen.
  • Odkryj nowe parametry: Możesz użyć narzędzi takich jak Arjun, parameth, x8 i Param Miner do odkrywania ukrytych parametrów. Jeśli możesz, spróbuj wyszukać ukryte parametry w każdym wykonywalnym pliku webowym.
  • Arjun wszystkie domyślne listy słów: https://github.com/s0md3v/Arjun/tree/master/arjun/db
  • Param-miner “params” : https://github.com/PortSwigger/param-miner/blob/master/resources/params
  • Assetnote “parameters_top_1m”: https://wordlists.assetnote.io/
  • nullenc0de “params.txt”: https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773
  • Komentarze: Sprawdź komentarze wszystkich plików, możesz znaleźć dane logowania lub ukrytą funkcjonalność.
  • Jeśli grasz w CTF, "powszechnym" trikiem jest ukrywanie informacji w komentarzach po prawej stronie strony (używając setek spacji, aby nie widzieć danych, jeśli otworzysz kod źródłowy w przeglądarce). Inną możliwością jest użycie wielu nowych linii i ukrycie informacji w komentarzu na dole strony internetowej.
  • Klucze API: Jeśli znajdziesz jakikolwiek klucz API, istnieje przewodnik, który wskazuje, jak używać kluczy API różnych platform: keyhacks, zile, truffleHog, SecretFinder, RegHex, DumpsterDive, EarlyBird.
  • Klucze API Google: Jeśli znajdziesz jakikolwiek klucz API wyglądający jak AIzaSyA-qLheq6xjDiEIRisP_ujUseYLQCHUjik, możesz użyć projektu gmapapiscanner, aby sprawdzić, do jakich API klucz ma dostęp.
  • S3 Buckets: Podczas spideringu sprawdź, czy jakikolwiek subdomen lub jakikolwiek link jest związany z jakimś S3 bucket. W takim przypadku, sprawdź uprawnienia bucketu.

Specjalne znaleziska

Podczas wykonywania spideringu i brute-forcingu możesz znaleźć interesujące rzeczy, na które musisz zwrócić uwagę.

Interesujące pliki

403 Forbidden/Basic Authentication/401 Unauthorized (obejście)

{% content-ref url="403-and-401-bypasses.md" %} 403-and-401-bypasses.md {% endcontent-ref %}

502 Proxy Error

Jeśli jakakolwiek strona odpowiada tym kodem, prawdopodobnie jest to źle skonfigurowany proxy. Jeśli wyślesz żądanie HTTP takie jak: GET https://google.com HTTP/1.1 (z nagłówkiem hosta i innymi typowymi nagłówkami), proxy spróbuje uzyskać dostęp do google.com i znajdziesz SSRF.

NTLM Authentication - Ujawnienie informacji

Jeśli działający serwer prosi o uwierzytelnienie i jest Windows lub znajdziesz logowanie proszące o Twoje dane logowania (i pytające o nazwa domeny), możesz spowodować ujawnienie informacji.
Wyślij nagłówek: “Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=” i z powodu tego, jak działa uwierzytelnianie NTLM, serwer odpowie wewnętrznymi informacjami (wersja IIS, wersja Windows...) w nagłówku "WWW-Authenticate".
Możesz zautomatyzować to, używając pluginu nmap "http-ntlm-info.nse".

HTTP Redirect (CTF)

Możliwe jest umieszczenie treści wewnątrz przekierowania. Ta treść nie będzie widoczna dla użytkownika (ponieważ przeglądarka wykona przekierowanie), ale coś może być ukryte w tym miejscu.

Sprawdzanie luk w sieci

Teraz, gdy przeprowadzono kompleksową enumerację aplikacji webowej, czas sprawdzić wiele możliwych luk. Możesz znaleźć listę kontrolną tutaj:

{% content-ref url="../../pentesting-web/web-vulnerabilities-methodology.md" %} web-vulnerabilities-methodology.md {% endcontent-ref %}

Więcej informacji o lukach w sieci znajdziesz na:

Monitorowanie stron pod kątem zmian

Możesz użyć narzędzi takich jak https://github.com/dgtlmoon/changedetection.io, aby monitorować strony pod kątem modyfikacji, które mogą wprowadzać luki.

Jeśli jesteś zainteresowany karierą w hackingu i chcesz złamać to, co nie do złamania - zatrudniamy! (wymagana biegła znajomość polskiego w mowie i piśmie).

{% embed url="https://www.stmcyber.com/careers" %}

HackTricks Automatyczne Komendy

Protocol_Name: Web    #Protocol Abbreviation if there is one.
Port_Number:  80,443     #Comma separated if there is more than one.
Protocol_Description: Web         #Protocol Abbreviation Spelled out

Entry_1:
Name: Notes
Description: Notes for Web
Note: |
https://book.hacktricks.xyz/pentesting/pentesting-web

Entry_2:
Name: Quick Web Scan
Description: Nikto and GoBuster
Command: nikto -host {Web_Proto}://{IP}:{Web_Port} &&&& gobuster dir -w {Small_Dirlist} -u {Web_Proto}://{IP}:{Web_Port} && gobuster dir -w {Big_Dirlist} -u {Web_Proto}://{IP}:{Web_Port}

Entry_3:
Name: Nikto
Description: Basic Site Info via Nikto
Command: nikto -host {Web_Proto}://{IP}:{Web_Port}

Entry_4:
Name: WhatWeb
Description: General purpose auto scanner
Command: whatweb -a 4 {IP}

Entry_5:
Name: Directory Brute Force Non-Recursive
Description:  Non-Recursive Directory Brute Force
Command: gobuster dir -w {Big_Dirlist} -u {Web_Proto}://{IP}:{Web_Port}

Entry_6:
Name: Directory Brute Force Recursive
Description: Recursive Directory Brute Force
Command: python3 {Tool_Dir}dirsearch/dirsearch.py -w {Small_Dirlist} -e php,exe,sh,py,html,pl -f -t 20 -u {Web_Proto}://{IP}:{Web_Port} -r 10

Entry_7:
Name: Directory Brute Force CGI
Description: Common Gateway Interface Brute Force
Command: gobuster dir -u {Web_Proto}://{IP}:{Web_Port}/ -w /usr/share/seclists/Discovery/Web-Content/CGIs.txt -s 200

Entry_8:
Name: Nmap Web Vuln Scan
Description: Tailored Nmap Scan for web Vulnerabilities
Command: nmap -vv --reason -Pn -sV -p {Web_Port} --script=`banner,(http* or ssl*) and not (brute or broadcast or dos or external or http-slowloris* or fuzzer)` {IP}

Entry_9:
Name: Drupal
Description: Drupal Enumeration Notes
Note: |
git clone https://github.com/immunIT/drupwn.git for low hanging fruit and git clone https://github.com/droope/droopescan.git for deeper enumeration

Entry_10:
Name: WordPress
Description: WordPress Enumeration with WPScan
Command: |
?What is the location of the wp-login.php? Example: /Yeet/cannon/wp-login.php
wpscan --url {Web_Proto}://{IP}{1} --enumerate ap,at,cb,dbe && wpscan --url {Web_Proto}://{IP}{1} --enumerate u,tt,t,vp --passwords {Big_Passwordlist} -e

Entry_11:
Name: WordPress Hydra Brute Force
Description: Need User (admin is default)
Command: hydra -l admin -P {Big_Passwordlist} {IP} -V http-form-post '/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log In&testcookie=1:S=Location'

Entry_12:
Name: Ffuf Vhost
Description: Simple Scan with Ffuf for discovering additional vhosts
Command: ffuf -w {Subdomain_List}:FUZZ -u {Web_Proto}://{Domain_Name} -H "Host:FUZZ.{Domain_Name}" -c -mc all {Ffuf_Filters}

{% hint style="success" %} Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Wsparcie HackTricks
{% endhint %}