Translated ['src/windows-hardening/windows-local-privilege-escalation/dl

This commit is contained in:
Translator 2025-07-09 09:14:39 +00:00
parent 452ad0691c
commit 4d9649d059

View File

@ -5,7 +5,7 @@
## Basic Information
Η εκμετάλλευση DLL περιλαμβάνει την παραποίηση μιας αξιόπιστης εφαρμογής ώστε να φορτώσει μια κακόβουλη DLL. Αυτός ο όρος περιλαμβάνει αρκετές τακτικές όπως **DLL Spoofing, Injection, και Side-Loading**. Χρησιμοποιείται κυρίως για εκτέλεση κώδικα, επίτευξη επιμονής και, λιγότερο συχνά, κλιμάκωση δικαιωμάτων. Παρά την εστίαση στην κλιμάκωση εδώ, η μέθοδος της εκμετάλλευσης παραμένει συνεπής σε όλους τους στόχους.
Η εκμετάλλευση DLL Hijacking περιλαμβάνει την παραποίηση μιας αξιόπιστης εφαρμογής ώστε να φορτώσει μια κακόβουλη DLL. Αυτός ο όρος περιλαμβάνει αρκετές τακτικές όπως **DLL Spoofing, Injection, και Side-Loading**. Χρησιμοποιείται κυρίως για εκτέλεση κώδικα, επίτευξη επιμονής και, λιγότερο συχνά, κλιμάκωση δικαιωμάτων. Παρά την εστίαση στην κλιμάκωση εδώ, η μέθοδος της εκμετάλλευσης παραμένει συνεπής σε όλους τους στόχους.
### Common Techniques
@ -13,14 +13,14 @@
1. **DLL Replacement**: Αντικατάσταση μιας γνήσιας DLL με μια κακόβουλη, προαιρετικά χρησιμοποιώντας DLL Proxying για να διατηρηθεί η λειτουργικότητα της αρχικής DLL.
2. **DLL Search Order Hijacking**: Τοποθέτηση της κακόβουλης DLL σε μια διαδρομή αναζήτησης πριν από την νόμιμη, εκμεταλλευόμενη το μοτίβο αναζήτησης της εφαρμογής.
3. **Phantom DLL Hijacking**: Δημιουργία μιας κακόβουλης DLL για μια εφαρμογή να φορτώσει, νομίζοντας ότι είναι μια ανύπαρκτη απαιτούμενη DLL.
3. **Phantom DLL Hijacking**: Δημιουργία μιας κακόβουλης DLL για να φορτωθεί από μια εφαρμογή, νομίζοντας ότι είναι μια ανύπαρκτη απαιτούμενη DLL.
4. **DLL Redirection**: Τροποποίηση παραμέτρων αναζήτησης όπως το `%PATH%` ή τα αρχεία `.exe.manifest` / `.exe.local` για να κατευθυνθεί η εφαρμογή στην κακόβουλη DLL.
5. **WinSxS DLL Replacement**: Αντικατάσταση της νόμιμης DLL με μια κακόβουλη στο φάκελο WinSxS, μια μέθοδος που συχνά σχετίζεται με την πλευρική φόρτωση DLL.
6. **Relative Path DLL Hijacking**: Τοποθέτηση της κακόβουλης DLL σε έναν φάκελο που ελέγχεται από τον χρήστη με την αντιγραμμένη εφαρμογή, που μοιάζει με τις τεχνικές Binary Proxy Execution.
## Finding missing Dlls
Ο πιο κοινός τρόπος για να βρείτε ελλείπουσες DLL σε ένα σύστημα είναι να εκτελέσετε [procmon](https://docs.microsoft.com/en-us/sysinternals/downloads/procmon) από sysinternals, **ορίζοντας** τα **εξής 2 φίλτρα**:
Ο πιο κοινός τρόπος για να βρείτε τις ελλείπουσες DLL σε ένα σύστημα είναι να εκτελέσετε [procmon](https://docs.microsoft.com/en-us/sysinternals/downloads/procmon) από sysinternals, **ορίζοντας** τους **εξής 2 φίλτρους**:
![](<../../../images/image (961).png>)
@ -41,23 +41,23 @@
**Μέσα στην** [**τεκμηρίωση της Microsoft**](https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order#factors-that-affect-searching) **μπορείτε να βρείτε πώς φορτώνονται οι DLL συγκεκριμένα.**
**Οι εφαρμογές των Windows** αναζητούν DLL ακολουθώντας ένα σύνολο **προκαθορισμένων διαδρομών αναζήτησης**, τηρώντας μια συγκεκριμένη ακολουθία. Το ζήτημα της εκμετάλλευσης DLL προκύπτει όταν μια επιβλαβής DLL τοποθετείται στρατηγικά σε έναν από αυτούς τους καταλόγους, διασφαλίζοντας ότι θα φορτωθεί πριν από την αυθεντική DLL. Μια λύση για να αποτραπεί αυτό είναι να διασφαλιστεί ότι η εφαρμογή χρησιμοποιεί απόλυτες διαδρομές όταν αναφέρεται στις DLL που απαιτεί.
**Οι εφαρμογές Windows** αναζητούν DLL ακολουθώντας ένα σύνολο **προκαθορισμένων διαδρομών αναζήτησης**, τηρώντας μια συγκεκριμένη ακολουθία. Το ζήτημα της εκμετάλλευσης DLL προκύπτει όταν μια επιβλαβής DLL τοποθετείται στρατηγικά σε έναν από αυτούς τους καταλόγους, διασφαλίζοντας ότι θα φορτωθεί πριν από την αυθεντική DLL. Μια λύση για να αποτραπεί αυτό είναι να διασφαλιστεί ότι η εφαρμογή χρησιμοποιεί απόλυτες διαδρομές όταν αναφέρεται στις DLL που απαιτεί.
Μπορείτε να δείτε τη **σειρά αναζήτησης DLL σε 32-bit** συστήματα παρακάτω:
1. Ο κατάλογος από τον οποίο φορτώθηκε η εφαρμογή.
2. Ο κατάλογος συστήματος. Χρησιμοποιήστε τη [**GetSystemDirectory**](https://docs.microsoft.com/en-us/windows/desktop/api/sysinfoapi/nf-sysinfoapi-getsystemdirectorya) συνάρτηση για να αποκτήσετε τη διαδρομή αυτού του καταλόγου.(_C:\Windows\System32_)
3. Ο 16-bit κατάλογος συστήματος. Δεν υπάρχει συνάρτηση που να αποκτά τη διαδρομή αυτού του καταλόγου, αλλά αναζητείται. (_C:\Windows\System_)
3. Ο κατάλογος 16-bit συστήματος. Δεν υπάρχει συνάρτηση που να αποκτά τη διαδρομή αυτού του καταλόγου, αλλά αναζητείται. (_C:\Windows\System_)
4. Ο κατάλογος των Windows. Χρησιμοποιήστε τη [**GetWindowsDirectory**](https://docs.microsoft.com/en-us/windows/desktop/api/sysinfoapi/nf-sysinfoapi-getwindowsdirectorya) συνάρτηση για να αποκτήσετε τη διαδρομή αυτού του καταλόγου.
1. (_C:\Windows_)
5. Ο τρέχων κατάλογος.
6. Οι κατάλογοι που αναφέρονται στη μεταβλητή περιβάλλοντος PATH. Σημειώστε ότι αυτό δεν περιλαμβάνει τη διαδρομή ανά εφαρμογή που καθορίζεται από το κλειδί μητρώου **App Paths**. Το κλειδί **App Paths** δεν χρησιμοποιείται κατά τον υπολογισμό της διαδρομής αναζήτησης DLL.
Αυτή είναι η **προεπιλεγμένη** σειρά αναζήτησης με ενεργοποιημένο το **SafeDllSearchMode**. Όταν είναι απενεργοποιημένο, ο τρέχων κατάλογος ανεβαίνει στη δεύτερη θέση. Για να απενεργοποιήσετε αυτή τη δυνατότητα, δημιουργήστε την τιμή μητρώου **HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager**\\**SafeDllSearchMode** και ορίστε την σε 0 (η προεπιλογή είναι ενεργοποιημένη).
Αυτή είναι η **προεπιλεγμένη** σειρά αναζήτησης με το **SafeDllSearchMode** ενεργοποιημένο. Όταν είναι απενεργοποιημένο, ο τρέχων κατάλογος ανεβαίνει στη δεύτερη θέση. Για να απενεργοποιήσετε αυτή τη δυνατότητα, δημιουργήστε την **HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager**\\**SafeDllSearchMode** τιμή μητρώου και ορίστε την σε 0 (η προεπιλογή είναι ενεργοποιημένη).
Αν η συνάρτηση [**LoadLibraryEx**](https://docs.microsoft.com/en-us/windows/desktop/api/LibLoaderAPI/nf-libloaderapi-loadlibraryexa) κληθεί με **LOAD_WITH_ALTERED_SEARCH_PATH**, η αναζήτηση αρχίζει στον κατάλογο του εκτελέσιμου module που **φορτώνει το LoadLibraryEx**.
Αν η [**LoadLibraryEx**](https://docs.microsoft.com/en-us/windows/desktop/api/LibLoaderAPI/nf-libloaderapi-loadlibraryexa) συνάρτηση κληθεί με **LOAD_WITH_ALTERED_SEARCH_PATH**, η αναζήτηση αρχίζει στον κατάλογο του εκτελέσιμου module που **φορτώνει η LoadLibraryEx**.
Τέλος, σημειώστε ότι **μια dll θα μπορούσε να φορτωθεί υποδεικνύοντας την απόλυτη διαδρομή αντί μόνο το όνομα**. Σε αυτή την περίπτωση, η dll θα **αναζητηθεί μόνο σε αυτή τη διαδρομή** (αν η dll έχει εξαρτήσεις, αυτές θα αναζητηθούν όπως φορτώθηκαν μόνο με το όνομα).
Τέλος, σημειώστε ότι **μια dll θα μπορούσε να φορτωθεί υποδεικνύοντας την απόλυτη διαδρομή αντί μόνο το όνομα**. Σε αυτή την περίπτωση, η dll θα **αναζητηθεί μόνο σε αυτή τη διαδρομή** (αν η dll έχει εξαρτήσεις, αυτές θα αναζητηθούν όπως φορτώθηκαν με το όνομα).
Υπάρχουν άλλοι τρόποι για να τροποποιήσετε τις μεθόδους αναζήτησης, αλλά δεν θα τους εξηγήσω εδώ.
@ -65,7 +65,7 @@
Ορισμένες εξαιρέσεις από την τυπική σειρά αναζήτησης DLL σημειώνονται στην τεκμηρίωση των Windows:
- Όταν συναντηθεί μια **DLL που μοιράζεται το όνομά της με μία που έχει ήδη φορτωθεί στη μνήμη**, το σύστημα παρακάμπτει την συνήθη αναζήτηση. Αντίθετα, εκτελεί έναν έλεγχο για ανακατεύθυνση και ένα μανιφέστο πριν επιστρέψει στη DLL που είναι ήδη στη μνήμη. **Σε αυτό το σενάριο, το σύστημα δεν διεξάγει αναζήτηση για τη DLL**.
- Όταν συναντηθεί μια **DLL που μοιράζεται το όνομά της με μία που έχει ήδη φορτωθεί στη μνήμη**, το σύστημα παρακάμπτει τη συνήθη αναζήτηση. Αντίθετα, εκτελεί έναν έλεγχο για ανακατεύθυνση και ένα μανιφέστο πριν επιστρέψει στη DLL που είναι ήδη στη μνήμη. **Σε αυτό το σενάριο, το σύστημα δεν διεξάγει αναζήτηση για τη DLL**.
- Σε περιπτώσεις όπου η DLL αναγνωρίζεται ως **γνωστή DLL** για την τρέχουσα έκδοση των Windows, το σύστημα θα χρησιμοποιήσει την έκδοση της γνωστής DLL, μαζί με οποιεσδήποτε εξαρτώμενες DLL της, **παρακάμπτοντας τη διαδικασία αναζήτησης**. Το κλειδί μητρώου **HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs** περιέχει μια λίστα με αυτές τις γνωστές DLL.
- Αν μια **DLL έχει εξαρτήσεις**, η αναζήτηση για αυτές τις εξαρτώμενες DLL διεξάγεται σαν να υποδεικνύονταν μόνο με τα **ονόματα των modules**, ανεξάρτητα από το αν η αρχική DLL αναγνωρίστηκε μέσω πλήρους διαδρομής.
@ -74,9 +74,9 @@
**Απαιτήσεις**:
- Εντοπίστε μια διαδικασία που λειτουργεί ή θα λειτουργήσει με **διαφορετικά δικαιώματα** (οριζόντια ή πλευρική κίνηση), η οποία **λείπει μια DLL**.
- Διασφαλίστε ότι υπάρχει **δικαίωμα εγγραφής** για οποιονδήποτε **φάκελο** στον οποίο θα **αναζητηθεί η DLL**. Αυτή η τοποθεσία μπορεί να είναι ο φάκελος της εκτελέσιμης ή ένας φάκελος εντός της διαδρομής του συστήματος.
- Διασφαλίστε ότι υπάρχει **πρόσβαση εγγραφής** σε οποιονδήποτε **φάκελο** στον οποίο θα **αναζητηθεί η DLL**. Αυτή η τοποθεσία μπορεί να είναι ο φάκελος της εκτελέσιμης ή ένας φάκελος εντός της διαδρομής του συστήματος.
Ναι, οι απαιτήσεις είναι περίπλοκες να βρεθούν καθώς **κατά προεπιλογή είναι κάπως παράξενο να βρείτε μια εκτελέσιμη με δικαιώματα που να λείπει μια dll** και είναι ακόμη **πιο παράξενο να έχετε δικαιώματα εγγραφής σε έναν φάκελο διαδρομής συστήματος** (δεν μπορείτε κατά προεπιλογή). Αλλά, σε κακώς ρυθμισμένα περιβάλλοντα αυτό είναι δυνατό.\
Ναι, οι απαιτήσεις είναι δύσκολο να βρεθούν καθώς **κατά προεπιλογή είναι κάπως παράξενο να βρείτε μια εκτελέσιμη με δικαιώματα που να λείπει μια dll** και είναι ακόμη **πιο παράξενο να έχετε δικαιώματα εγγραφής σε έναν φάκελο διαδρομής συστήματος** (δεν μπορείτε κατά προεπιλογή). Αλλά, σε κακώς ρυθμισμένα περιβάλλοντα αυτό είναι δυνατό.\
Σε περίπτωση που έχετε τύχη και βρείτε τον εαυτό σας να πληροί τις απαιτήσεις, μπορείτε να ελέγξετε το έργο [UACME](https://github.com/hfiref0x/UACME). Ακόμη και αν ο **κύριος στόχος του έργου είναι η παράκαμψη του UAC**, μπορεί να βρείτε εκεί μια **PoC** εκμετάλλευσης DLL για την έκδοση των Windows που μπορείτε να χρησιμοποιήσετε (πιθανώς αλλάζοντας απλώς τη διαδρομή του φακέλου όπου έχετε δικαιώματα εγγραφής).
Σημειώστε ότι μπορείτε να **ελέγξετε τα δικαιώματά σας σε έναν φάκελο** κάνοντας:
@ -93,7 +93,7 @@ for %%A in ("%path:;=";"%") do ( cmd.exe /c icacls "%%~A" 2>nul | findstr /i "(F
dumpbin /imports C:\path\Tools\putty\Putty.exe
dumpbin /export /path/file.dll
```
Για έναν πλήρη οδηγό σχετικά με το πώς να **καταχραστείτε το Dll Hijacking για να κερδίσετε δικαιώματα** με άδειες εγγραφής σε έναν **φάκελο System Path**, ελέγξτε:
Για έναν πλήρη οδηγό σχετικά με το πώς να **καταχραστείτε το Dll Hijacking για να κλιμακώσετε δικαιώματα** με άδειες για εγγραφή σε έναν **φάκελο System Path**, ελέγξτε:
{{#ref}}
writable-sys-path-+dll-hijacking-privesc.md
@ -106,16 +106,16 @@ writable-sys-path-+dll-hijacking-privesc.md
### Παράδειγμα
Σε περίπτωση που βρείτε ένα εκμεταλλεύσιμο σενάριο, ένα από τα πιο σημαντικά πράγματα για να το εκμεταλλευτείτε με επιτυχία θα ήταν να **δημιουργήσετε ένα dll που εξάγει τουλάχιστον όλες τις λειτουργίες που θα εισάγει το εκτελέσιμο από αυτό**. Ούτως ή άλλως, σημειώστε ότι το Dll Hijacking είναι χρήσιμο για να [ανεβείτε από το Medium Integrity level σε High **(παρακάμπτοντας το UAC)**](../../authentication-credentials-uac-and-efs/index.html#uac) ή από [**High Integrity σε SYSTEM**](../index.html#from-high-integrity-to-system)**.** Μπορείτε να βρείτε ένα παράδειγμα για **πώς να δημιουργήσετε ένα έγκυρο dll** μέσα σε αυτή τη μελέτη dll hijacking που επικεντρώνεται στο dll hijacking για εκτέλεση: [**https://www.wietzebeukema.nl/blog/hijacking-dlls-in-windows**](https://www.wietzebeukema.nl/blog/hijacking-dlls-in-windows)**.**\
Επιπλέον, στην **επόμενη ενότητα** μπορείτε να βρείτε μερικούς **βασικούς κωδικούς dll** που μπορεί να είναι χρήσιμοι ως **πρότυπα** ή για να δημιουργήσετε ένα **dll με μη απαιτούμενες εξαγόμενες λειτουργίες**.
Σε περίπτωση που βρείτε ένα εκμεταλλεύσιμο σενάριο, ένα από τα πιο σημαντικά πράγματα για να το εκμεταλλευτείτε επιτυχώς θα ήταν να **δημιουργήσετε μια dll που εξάγει τουλάχιστον όλες τις λειτουργίες που θα εισάγει το εκτελέσιμο από αυτήν**. Ούτως ή άλλως, σημειώστε ότι το Dll Hijacking είναι χρήσιμο για να [κλιμακώσετε από Medium Integrity level σε High **(παρακάμπτοντας το UAC)**](../../authentication-credentials-uac-and-efs/index.html#uac) ή από [**High Integrity σε SYSTEM**](../index.html#from-high-integrity-to-system)**.** Μπορείτε να βρείτε ένα παράδειγμα για **πώς να δημιουργήσετε μια έγκυρη dll** μέσα σε αυτή τη μελέτη dll hijacking που επικεντρώνεται στο dll hijacking για εκτέλεση: [**https://www.wietzebeukema.nl/blog/hijacking-dlls-in-windows**](https://www.wietzebeukema.nl/blog/hijacking-dlls-in-windows)**.**\
Επιπλέον, στην **επόμενη ενότητα** μπορείτε να βρείτε μερικούς **βασικούς κωδικούς dll** που μπορεί να είναι χρήσιμοι ως **πρότυπα** ή για να δημιουργήσετε μια **dll με μη απαιτούμενες εξαγόμενες λειτουργίες**.
## **Δημιουργία και μεταγλώττιση Dlls**
### **Dll Proxifying**
Βασικά, ένα **Dll proxy** είναι ένα Dll ικανό να **εκτελεί τον κακόβουλο κώδικά σας όταν φορτωθεί** αλλά και να **εκθέτει** και να **λειτουργεί** όπως **αναμένεται** μέσω **αναμετάδοσης όλων των κλήσεων στη πραγματική βιβλιοθήκη**.
Βασικά, μια **Dll proxy** είναι μια Dll ικανή να **εκτελεί τον κακόβουλο κώδικά σας όταν φορτωθεί** αλλά και να **εκθέτει** και να **λειτουργεί** όπως **αναμένεται** **αναμεταδίδοντας όλες τις κλήσεις στη πραγματική βιβλιοθήκη**.
Με το εργαλείο [**DLLirant**](https://github.com/redteamsocietegenerale/DLLirant) ή [**Spartacus**](https://github.com/Accenture/Spartacus) μπορείτε στην πραγματικότητα να **υποδείξετε ένα εκτελέσιμο και να επιλέξετε τη βιβλιοθήκη** που θέλετε να proxify και **να δημιουργήσετε ένα proxified dll** ή **να υποδείξετε το Dll** και **να δημιουργήσετε ένα proxified dll**.
Με το εργαλείο [**DLLirant**](https://github.com/redteamsocietegenerale/DLLirant) ή [**Spartacus**](https://github.com/Accenture/Spartacus) μπορείτε στην πραγματικότητα να **υποδείξετε ένα εκτελέσιμο και να επιλέξετε τη βιβλιοθήκη** που θέλετε να proxify και να **δημιουργήσετε μια proxified dll** ή να **υποδείξετε τη Dll** και να **δημιουργήσετε μια proxified dll**.
### **Meterpreter**
@ -214,7 +214,47 @@ break;
return TRUE;
}
```
## Αναφορές
## Μελέτη Περίπτωσης: CVE-2025-1729 - Κλιμάκωση Δικαιωμάτων Χρήστη Χρησιμοποιώντας TPQMAssistant.exe
Αυτή η περίπτωση δείχνει **Phantom DLL Hijacking** στο Quick Menu TrackPoint της Lenovo (`TPQMAssistant.exe`), που παρακολουθείται ως **CVE-2025-1729**.
### Λεπτομέρειες Ευπάθειας
- **Συστατικό**: `TPQMAssistant.exe` που βρίσκεται στο `C:\ProgramData\Lenovo\TPQM\Assistant\`.
- **Προγραμματισμένο Καθήκον**: `Lenovo\TrackPointQuickMenu\Schedule\ActivationDailyScheduleTask` εκτελείται καθημερινά στις 9:30 π.μ. υπό το πλαίσιο του συνδεδεμένου χρήστη.
- **Δικαιώματα Καταλόγου**: Γράψιμο από `CREATOR OWNER`, επιτρέποντας στους τοπικούς χρήστες να ρίχνουν αυθαίρετα αρχεία.
- **Συμπεριφορά Αναζήτησης DLL**: Προσπαθεί να φορτώσει το `hostfxr.dll` από τον κατάλογο εργασίας του πρώτα και καταγράφει "NAME NOT FOUND" αν λείπει, υποδεικνύοντας προτεραιότητα αναζήτησης τοπικού καταλόγου.
### Υλοποίηση Εκμετάλλευσης
Ένας επιτιθέμενος μπορεί να τοποθετήσει ένα κακόβουλο stub `hostfxr.dll` στον ίδιο κατάλογο, εκμεταλλευόμενος την απουσία DLL για να επιτύχει εκτέλεση κώδικα υπό το πλαίσιο του χρήστη:
```c
#include <windows.h>
BOOL APIENTRY DllMain(HMODULE hModule, DWORD fdwReason, LPVOID lpReserved) {
if (fdwReason == DLL_PROCESS_ATTACH) {
// Payload: display a message box (proof-of-concept)
MessageBoxA(NULL, "DLL Hijacked!", "TPQM", MB_OK);
}
return TRUE;
}
```
### Attack Flow
1. Ως τυπικός χρήστης, ρίξτε το `hostfxr.dll` στο `C:\ProgramData\Lenovo\TPQM\Assistant\`.
2. Περιμένετε να εκτελεστεί η προγραμματισμένη εργασία στις 9:30 π.μ. υπό το πλαίσιο του τρέχοντος χρήστη.
3. Εάν είναι συνδεδεμένος ένας διαχειριστής όταν εκτελείται η εργασία, το κακόβουλο DLL εκτελείται στη συνεδρία του διαχειριστή με μέτρια ακεραιότητα.
4. Συνδυάστε τις τυπικές τεχνικές παράκαμψης UAC για να αναβαθμίσετε από μέτρια ακεραιότητα σε δικαιώματα SYSTEM.
### Mitigation
Η Lenovo κυκλοφόρησε την έκδοση UWP **1.12.54.0** μέσω του Microsoft Store, η οποία εγκαθιστά το TPQMAssistant στο `C:\Program Files (x86)\Lenovo\TPQM\TPQMAssistant\`, αφαιρεί την ευάλωτη προγραμματισμένη εργασία και απεγκαθιστά τα παλαιά συστατικά Win32.
## References
- [CVE-2025-1729 - Privilege Escalation Using TPQMAssistant.exe](https://trustedsec.com/blog/cve-2025-1729-privilege-escalation-using-tpqmassistant-exe)
- [Microsoft Store - TPQM Assistant UWP](https://apps.microsoft.com/detail/9mz08jf4t3ng)
- [https://medium.com/@pranaybafna/tcapt-dll-hijacking-888d181ede8e](https://medium.com/@pranaybafna/tcapt-dll-hijacking-888d181ede8e)
- [https://cocomelonc.github.io/pentest/2021/09/24/dll-hijacking-1.html](https://cocomelonc.github.io/pentest/2021/09/24/dll-hijacking-1.html)