diff --git a/config.go b/config.go index 0fbfb98..01a2336 100644 --- a/config.go +++ b/config.go @@ -15,9 +15,9 @@ var ircFlood bool = true var ircDebug uintptr = 0 //os.Stdout var ircVersion string = "sh0rtbus 0.2 fun edition" // Bot -var ircHome string = "#bees" +var ircHome string = "#tcpdirect" var ircOwner string = "kayos" -var ircNick string = "sh0rtbus" +var ircNick string = "durnkb0t" var ircUser string var ircPass string // username:pasword defined in auth.text // Proxy diff --git a/cowrie.go b/cowrie.go new file mode 100644 index 0000000..2bb6b73 --- /dev/null +++ b/cowrie.go @@ -0,0 +1,96 @@ +package main + +import( + "syscall" + "os" + "bytes" + "fmt" + "io" + "strings" + "github.com/lrstanley/girc" +) + + + +//func stainSelect(query string) { +// db, err = sql.Open("mysql","user:"+sqlUser+"@"+sqlHost+"("+sqlHost+":"+sqlPort+")/"+sqlDB) +// defer db.Close() +// if err != nil { +// fmt.Println("[SQL] Fatal error when opening the MySQL database: ", err.Error()) +// } +// err = db.Ping() +// if err != nil { +// fmt.Println("[SQL] Fatal error when pinging the MySQL database: ", err.Error()) +// } +//} + +func Cowrie(c *girc.Client) error { + syscall.Mkfifo(cowPipe, 0600) + for { +// fmt.Println("[IPC] Opening named pipe for reading") + stdout, err := os.OpenFile(cowPipe, os.O_RDONLY, 0600) + var buff bytes.Buffer + + if err != nil { + fmt.Println("[IPC] FATAL! Cannot open named pipe!") + return err + os.Exit(2) + } + + io.Copy(&buff, stdout) + stdout.Close() + dataStr := buff.String() + + if (cowVerbose == 1 && strings.Contains(dataStr, "CMD:")) { + + fmt.Println("CMD detected!") + + cowSlice := strings.Split(dataStr,"]") + cowPrefix := cowSlice[0] + cowString := strings.Split(cowPrefix, ")") + cowString = strings.Split(cowString[0], ")") + cowSession := cowString[0] + cowIPstr := strings.Split(cowPrefix,",") + cowIP := cowIPstr[0] + cowCmd := "["+cowIP+"]["+cowSession+"] " + cowSlice[1] + + fmt.Println(cowCmd) + + if !contains(cowSesh,cowSession) { + Phone(c,"(new) Retard alert! Attn:") + PhoneOwner(c,"Retard alert!") + Phone(c,cowPings) + Phone(c,"-----------------") + cowSesh = append(cowSesh,cowSession) + printSlice(cowSesh) + } + + Phone(c,dataStr) + } + + if cowVerbose == 2 { + fmt.Printf("[IPC] sending data to [IRC]: %s\n", dataStr) + Phone(c,dataStr) + } + } +} + + +func cowSay(c *girc.Client, str0 string, str1 string, str2 string) { + Phone(c," __,._{i} " + str0) + Phone(c," / _ \\ ") + if (cowVerbose == 0) { + Phone(c," | 6 \\ \\ {red}oo{c} ") + } else if cowVerbose == 1 { + Phone(c," | 6 \\ \\ {green}oo{c} ") + } else { + Phone(c," {yellow}REEE{c} | 6 \\ \\ {green}$${c} ") + } + Phone(c," \\___/ .|__|| ") + Phone(c," __,..=\"^ . , \" ,\\ ") + Phone(c,"<.__________________/ ") + Phone(c,"{white}" + str1) + if str2 != "0" { + Phone(c,"{white}" + str2) + } +} diff --git a/ircbot.go b/ircbot.go index 7c90293..4686928 100644 --- a/ircbot.go +++ b/ircbot.go @@ -170,7 +170,7 @@ func ircbot() { } }) - client.Handlers.Add(girc.RPL_NAMREPLY, func(c *girc.Client, e girc.Event) { +/* client.Handlers.Add(girc.RPL_NAMREPLY, func(c *girc.Client, e girc.Event) { reply := strings.Split(e.String(), " ") if reply[5] != ircHome { @@ -183,7 +183,7 @@ func ircbot() { ircBanner(c) Phone(c,ircVersion) } - }) + })*/ client.Handlers.Add(girc.RPL_WHOISCHANNELS, func(c *girc.Client, e girc.Event) { Phone(c,"RPL_WHOISCHANNELS:")