From 889203c9deb0662e2bdf1c5ea83c2eae70330201 Mon Sep 17 00:00:00 2001 From: Russ Magee Date: Wed, 27 Jun 2018 19:09:35 -0700 Subject: [PATCH] host lookup for goutmp (wtmp) tracking --- hkexshd/hkexshd.go | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/hkexshd/hkexshd.go b/hkexshd/hkexshd.go index 4932a0e..729d12a 100644 --- a/hkexshd/hkexshd.go +++ b/hkexshd/hkexshd.go @@ -292,24 +292,29 @@ func main() { if rec.op[0] == 'c' { // Non-interactive command - log.Println("[Running command]") + addr := c.RemoteAddr() + hname := goutmp.GetHost(addr.String()) + + log.Println("[Running command for [%s@%s]]\n", rec.who, hname) runShellAs(string(rec.who), string(rec.cmd), false, conn, chaffEnabled) // Returned hopefully via an EOF or exit/logout; // Clear current op so user can enter next, or EOF rec.op[0] = 0 - log.Println("[Command complete]") + log.Printf("[Command completed for [%s@%s]\n", rec.who, hname) } else if rec.op[0] == 's' { - log.Println("[Running shell]") + // Interactive session addr := c.RemoteAddr() + hname := goutmp.GetHost(addr.String()) + log.Println("[Running shell for [%s@%s]]\n", rec.who, hname) - utmpx := goutmp.Put_utmp(string(rec.who), addr.String()) + utmpx := goutmp.Put_utmp(string(rec.who), hname) defer func() { goutmp.Unput_utmp(utmpx) }() - goutmp.Put_lastlog_entry("hkexsh", string(rec.who), addr.String()) + goutmp.Put_lastlog_entry("hkexsh", string(rec.who), hname) runShellAs(string(rec.who), string(rec.cmd), true, conn, chaffEnabled) // Returned hopefully via an EOF or exit/logout; // Clear current op so user can enter next, or EOF rec.op[0] = 0 - log.Println("[Exiting shell]") + log.Printf("[Exiting shell for [%s@%s]]\n", rec.who, hname) } else { log.Println("[Bad cmdSpec]") }