6.3 KiB
ASLR
Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy jou maatskappy geadverteer wil sien in HackTricks of HackTricks in PDF wil aflaai Kyk na die INSKRYWINGSPLANNE!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek Die PEASS Familie, ons versameling eksklusiewe NFTs
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel jou haktruuks deur PR's in te dien by die HackTricks en HackTricks Cloud github-opslag.
Basiese Inligting
Address Space Layout Randomization (ASLR) is 'n sekuriteitstegniek wat in bedryfstelsels gebruik word om die geheue-adresse wat deur stelsel- en toepassingsprosesse gebruik word, te verrandomiseer. Hierdeur word dit aansienlik moeiliker vir 'n aanvaller om die ligging van spesifieke prosesse en data, soos die stapel, heap, en biblioteke, te voorspel, wat sekere tipes aanvalle, veral buffer-oorvloei, verminder.
ASLR-status Kontroleer
Om die ASLR-status op 'n Linux-stelsel te kontroleer, kan jy die waarde uit die /proc/sys/kernel/randomize_va_space
-lêer lees. Die waarde wat in hierdie lêer gestoor word, bepaal die tipe ASLR wat toegepas word:
- 0: Geen verrandomisering. Alles is staties.
- 1: Konservatiewe verrandomisering. Gedeelde biblioteke, stapel, mmap(), VDSO-bladsy word verrandomiseer.
- 2: Volledige verrandomisering. Bo en behalwe elemente wat deur konservatiewe verrandomisering verrandomiseer word, word geheue wat deur
brk()
bestuur word, verrandomiseer.
Jy kan die ASLR-status kontroleer met die volgende bevel:
bashCopy codecat /proc/sys/kernel/randomize_va_space
ASLR uitskakel
Om ASLR te deaktiveer, stel jy die waarde van /proc/sys/kernel/randomize_va_space
in op 0. Dit word gewoonlik nie aanbeveel om ASLR buite toets- of foutopsporingsituasies te deaktiveer nie. Hier is hoe jy dit kan deaktiveer:
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
Jy kan ook ASLR uitskakel vir 'n uitvoering met:
setarch `arch` -R ./bin args
setarch `uname -m` -R ./bin args
Aktivering van ASLR
Om ASLR te aktiveer, kan jy 'n waarde van 2 skryf na die /proc/sys/kernel/randomize_va_space
lêer. Dit vereis gewoonlik root-voorregte. Volledige randomisering kan gedoen word met die volgende bevel:
echo 2 | sudo tee /proc/sys/kernel/randomize_va_space
Volharding oor Herlaai
Veranderinge wat met die echo
bevele gemaak word, is tydelik en sal herstel word met herlaai. Om die verandering volhardend te maak, moet jy die /etc/sysctl.conf
lêer wysig en die volgende lyn byvoeg of wysig:
kernel.randomize_va_space=2 # Enable ASLR
# or
kernel.randomize_va_space=0 # Disable ASLR
Na die wysiging van /etc/sysctl.conf
, pas die veranderinge toe met:
sudo sysctl -p
Dit sal verseker dat jou ASLR-instellings behoue bly oor herlaai.
Bypassing 32bits ASLR
32bit brute-forcing
PaX verdeel die proses-adresruimte in 3 groepe:
- Kode en data (geïnisialiseer en ongeïnisialiseer):
.text
,.data
, en.bss
—> 16 bits van entropie in diedelta_exec
veranderlike. Hierdie veranderlike word lukraak geïnisialiseer met elke proses en by die aanvanklike adresse gevoeg. - Geheue toegewys deur
mmap()
en gedeelde biblioteke —> 16 bits, genoemdelta_mmap
. - Die stok —> 24 bits, verwys na as
delta_stack
. Dit gebruik egter effektief 11 bits (vanaf die 10de tot die 20ste byte insluitend), uitgelyn op 16 byte —> Dit lei tot 524,288 moontlike werklike stokadresse.
Die vorige data is vir 32-bietestelsels en die verminderde finale entropie maak dit moontlik om ASLR te omseil deur die uitvoering herhaaldelik te probeer totdat die aanval suksesvol voltooi is.
Brute-force-idees:
- As die aanval plaaslik is, kan jy die basisadres van libc deur brute force probeer (nuttig vir 32-bietestelsels):
for off in range(0xb7000000, 0xb8000000, 0x1000):
- Indien jy 'n afgeleë bediener aanval, kan jy probeer om die adres van die
libc
-funksieusleep
met 'n argument van 10 (byvoorbeeld) deur brute-force te vind. As die bediener op 'n punt 10 sekondes langer neem om te reageer, het jy die adres van hierdie funksie gevind.
{% hint style="success" %} Op 64-biet-stelsels is die entropie baie hoër en is dit nie moontlik nie. {% endhint %}
Ret2ret
Probeer ASLR omseil deur adresse binne die stok te misbruik:
{% content-ref url="../stack-overflow/ret2ret.md" %} ret2ret.md {% endcontent-ref %}
Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy wil sien dat jou maatskappy geadverteer word in HackTricks of HackTricks aflaai in PDF-formaat, kyk na die INSKRYWINGSPLANNE!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek Die PEASS-familie, ons versameling eksklusiewe NFT's
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel jou haktruuks deur PR's in te dien by die HackTricks en HackTricks Cloud github-opslag.