- Code: Select all
CONFIG_PAX=y
CONFIG_PAX_SOFTMODE=y
# CONFIG_PAX_EI_PAX is not set
# CONFIG_PAX_PT_PAX_FLAGS is not set
# CONFIG_PAX_NO_ACL_FLAGS is not set
# CONFIG_PAX_HAVE_ACL_FLAGS is not set
CONFIG_PAX_HOOK_ACL_FLAGS=y
CONFIG_PAX_NOEXEC=y
CONFIG_PAX_PAGEEXEC=y
# CONFIG_PAX_EMUTRAMP is not set
CONFIG_PAX_MPROTECT=y
# CONFIG_PAX_NOELFRELOCS is not set
CONFIG_PAX_ASLR=y
CONFIG_PAX_RANDUSTACK=y
CONFIG_PAX_RANDMMAP=y
CONFIG_PAX_MEMORY_SANITIZE=y
CONFIG_PAX_REFCOUNT=y
I tried to compile both versions of paxtest but they die with:
- Code: Select all
make[1]: Entering directory `/root/paxtest-0.9.7-pre4'
gcc -c -o crt1S.o crt1S.S
crt1S.S: Assembler messages:
crt1S.S:5: Error: suffix or operands invalid for `pop'
crt1S.S:10: Error: suffix or operands invalid for `pop'
crt1S.S:12: Error: suffix or operands invalid for `push'
crt1S.S:13: Error: suffix or operands invalid for `push'
crt1S.S:14: Error: suffix or operands invalid for `push'
crt1S.S:15: Error: suffix or operands invalid for `push'
crt1S.S:16: Error: suffix or operands invalid for `push'
crt1S.S:17: Error: suffix or operands invalid for `push'
crt1S.S:18: Error: suffix or operands invalid for `push'
crt1S.S:19: Error: suffix or operands invalid for `push'
crt1S.S:20: Error: suffix or operands invalid for `push'
crt1S.S:21: Error: suffix or operands invalid for `push'
make[1]: *** [crt1S.o] Error 1
make[1]: Leaving directory `/root/paxtest-0.9.7-pre4'
This was on a 64bit box ... so I jumped over to a 32 bit box and it built just fine. I then copied over the resulting afer "make generic" and ran the paxtest on the 2.6.27.4 with test13 and got these results:
- Code: Select all
Mode: blackhat
Linux localhost.localdomain 2.6.27.4 #4 SMP Tue Nov 4 14:02:09 MST 2008 x86_64 x86_64 x86_64 GNU/Linux
Executable anonymous mapping : Killed
Executable bss : Killed
Executable data : Killed
Executable heap : Killed
Executable stack : Killed
Executable anonymous mapping (mprotect) : Vulnerable
Executable bss (mprotect) : Vulnerable
Executable data (mprotect) : Vulnerable
Executable heap (mprotect) : Vulnerable
Executable shared library bss (mprotect) : Vulnerable
Executable shared library data (mprotect): Vulnerable
Executable stack (mprotect) : Vulnerable
Anonymous mapping randomisation test : 9 bits (guessed)
Heap randomisation test (ET_EXEC) : No randomisation
Heap randomisation test (ET_DYN) : 8 bits (guessed)
Main executable randomisation (ET_EXEC) : 10 bits (guessed)
Main executable randomisation (ET_DYN) : 10 bits (guessed)
Shared library randomisation test : 10 bits (guessed)
Stack randomisation test (SEGMEXEC) : 10 bits (guessed)
Stack randomisation test (PAGEEXEC) : 10 bits (guessed)
Return to function (strcpy) : Vulnerable
Return to function (strcpy, RANDEXEC) : Vulnerable
Return to function (memcpy) : Vulnerable
Return to function (memcpy, RANDEXEC) : Vulnerable
Executable shared library bss : Killed
Executable shared library data : Killed
Writable text segments : Vulnerable
Also, in dmesg I see:
- Code: Select all
[ 28.046913] anonmap[1514]: segfault at f7f5a000 ip 00000000f7f5a000 sp 00000000ffffea8c error 15
[ 28.052187] execbss[1517]: segfault at 8049b34 ip 0000000008049b34 sp 00000000ffffe29c error 15 in execbss[8049000+1000]
[ 28.054438] execdata[1520]: segfault at 8049b28 ip 0000000008049b28 sp 00000000ffffdc5c error 15 in execdata[8049000+1000]
[ 28.056580] execheap[1523]: segfault at 8049cb8 ip 0000000008049cb8 sp 00000000ffffe76c error 15 in execheap[8049000+1000]
[ 28.064803] execstack[1526]: segfault at ffffc388 ip 00000000ffffc388 sp 00000000ffffc37c error 15
[ 28.620987] shlibbss[1770]: segfault at f7f06548 ip 00000000f7f06548 sp 00000000ffffde0c error 15 in shlibtest2.so[f7f06000+1000]
[ 28.623402] shlibdata[1773]: segfault at 0 ip 0000000000000000 sp 00000000ffffe9fc error 14 in shlibdata[8048000+1000]
Does this look right to you?
Thanks!