From 08ed3461ada1b77a10bf143c26420d16f76655bb Mon Sep 17 00:00:00 2001 From: Mikhail Klementev Date: Mon, 19 Aug 2019 22:37:27 +0000 Subject: [PATCH] Use smep/smap settings from artifact config as default value --- debug.go | 20 ++++++++++++++++---- qemu/qemu-kernel.go | 15 +++++++++++++++ 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/debug.go b/debug.go index 48314f7..d063090 100644 --- a/debug.go +++ b/debug.go @@ -106,8 +106,18 @@ func debugHandler(kcfg config.KernelConfig, workPath, kernRegex, gdb string, } q.SetKASLR(kaslr) - q.SetSMEP(smep) - q.SetSMAP(smap) + + if !smep { + q.SetSMEP(false) + } else { + q.SetSMEP(!ka.Mitigations.DisableSmep) + } + + if !smap { + q.SetSMAP(false) + } else { + q.SetSMAP(!ka.Mitigations.DisableSmap) + } redgreen := func(name string, enabled bool) aurora.Value { if enabled { @@ -117,8 +127,10 @@ func debugHandler(kcfg config.KernelConfig, workPath, kernRegex, gdb string, return aurora.BgRed(aurora.Gray(name)) } - fmt.Printf("[*] %s %s %s\n", redgreen("KASLR", kaslr), - redgreen("SMEP", smep), redgreen("SMAP", smap)) + fmt.Printf("[*] %s %s %s\n", + redgreen("KASLR", q.GetKASLR()), + redgreen("SMEP", q.GetSMEP()), + redgreen("SMAP", q.GetSMAP())) q.Debug(gdb) coloredGdbAddress := aurora.BgGreen(aurora.Black(gdb)) diff --git a/qemu/qemu-kernel.go b/qemu/qemu-kernel.go index c7dd114..d393bf7 100644 --- a/qemu/qemu-kernel.go +++ b/qemu/qemu-kernel.go @@ -402,6 +402,21 @@ func (q *System) SetSMAP(state bool) { q.noSMAP = !state } +// GetKASLR is retrieve KASLR settings +func (q *System) GetKASLR() bool { + return !q.noKASLR +} + +// GetSMEP is retrieve SMEP settings +func (q *System) GetSMEP() bool { + return !q.noSMEP +} + +// GetSMAP is retrieve SMAP settings +func (q *System) GetSMAP() bool { + return !q.noSMAP +} + // GetSSHCommand returns command for connect to qemu machine over ssh func (q System) GetSSHCommand() (cmd string) { addrPort := strings.Split(q.sshAddrPort, ":")