Skip to content

Commit 6f72d3e

Browse files
author
Etienne Stalmans
committed
Add OS detection for logging. Windows < 10 doesn't support ANSI escape codes
1 parent b373fc2 commit 6f72d3e

2 files changed

Lines changed: 28 additions & 11 deletions

File tree

README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@
22

33
Ruler is a tool that allows you to interact with Exchange servers remotely, through either the MAPI/HTTP or RPC/HTTP protocol. The main aim is abuse the client-side Outlook features and gain a shell remotely.
44

5-
The full low-down on how Ruler was implemented and some background regarding MAPI can be found in our blog posts: [Ruler release], [Pass the Hash with Ruler], [Outlook forms and shells].
5+
The full low-down on how Ruler was implemented and some background regarding MAPI can be found in our blog posts:
6+
* [Ruler release]
7+
* [Pass the Hash with Ruler]
8+
* [Outlook forms and shells].
69

710
For a demo of it in action: [Ruler on YouTube]
811

utils/logging.go

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package utils
33
import (
44
"io"
55
"log"
6+
"runtime"
67
)
78

89
var (
@@ -22,15 +23,28 @@ func Init(
2223
infoHandle io.Writer,
2324
warningHandle io.Writer,
2425
errorHandle io.Writer) {
26+
if runtime.GOOS == "windows" {
27+
Trace = log.New(traceHandle, "[*] ", 0)
28+
Info = log.New(infoHandle, "[+] ", 0)
29+
Clear = log.New(infoHandle, " ", 0)
30+
Debug = log.New(warningHandle, " ", 0)
31+
Fail = log.New(infoHandle, "[x] ", 0)
32+
Question = log.New(infoHandle, "[?] ", 0)
33+
Warning = log.New(warningHandle,
34+
"[WARNING] ", 0)
35+
Error = log.New(errorHandle,
36+
"ERROR: ", log.Ldate|log.Ltime)
2537

26-
Trace = log.New(traceHandle, "\033[33m[*] \033[0m", 0)
27-
Info = log.New(infoHandle, "\033[32m[+] \033[0m", 0)
28-
Clear = log.New(infoHandle, " ", 0)
29-
Debug = log.New(warningHandle, " ", 0)
30-
Fail = log.New(infoHandle, "\033[91m[x] \033[0m", 0)
31-
Question = log.New(infoHandle, "\033[91m[?] \033[0m", 0)
32-
Warning = log.New(warningHandle,
33-
"\033[91m[WARNING] \033[0m", 0)
34-
Error = log.New(errorHandle,
35-
"\033[31mERROR\033[0m: ", log.Ldate|log.Ltime)
38+
} else {
39+
Trace = log.New(traceHandle, "\033[33m[*] \033[0m", 0)
40+
Info = log.New(infoHandle, "\033[32m[+] \033[0m", 0)
41+
Clear = log.New(infoHandle, " ", 0)
42+
Debug = log.New(warningHandle, " ", 0)
43+
Fail = log.New(infoHandle, "\033[91m[x] \033[0m", 0)
44+
Question = log.New(infoHandle, "\033[91m[?] \033[0m", 0)
45+
Warning = log.New(warningHandle,
46+
"\033[91m[WARNING] \033[0m", 0)
47+
Error = log.New(errorHandle,
48+
"\033[31mERROR\033[0m: ", log.Ldate|log.Ltime)
49+
}
3650
}

0 commit comments

Comments
 (0)