zgrab2/lib/smb
2021-07-26 15:57:24 -04:00
..
gss Pull in updated SMB library, modify it to take logs, use it in scanner 2018-03-16 12:08:59 -04:00
ntlmssp Fix SMB scanner marshaller panic (#299) 2021-02-11 14:44:36 -05:00
smb smb: allow dynamic length fields of exact length (#323) 2021-07-26 15:57:24 -04:00
.gitignore Pull in updated SMB library, modify it to take logs, use it in scanner 2018-03-16 12:08:59 -04:00
about.txt Pull in updated SMB library, modify it to take logs, use it in scanner 2018-03-16 12:08:59 -04:00
LICENSE Pull in updated SMB library, modify it to take logs, use it in scanner 2018-03-16 12:08:59 -04:00
README.md Pull in updated SMB library, modify it to take logs, use it in scanner 2018-03-16 12:08:59 -04:00

SMB

A Go package for communicating over SMB. Currently only minimal funcationality exists for client-side functions.

Here is a sample client that establishes a session with a server:

package main

import (
	"log"

	"github.com/stacktitan/smb/smb"
)

func main() {

	host := "172.16.248.192"
	options := smb.Options{
		Host:        host,
		Port:        445,
		User:        "alice",
		Domain:      "corp",
		Workstation: "",
		Password:    "Password123!",
	}
	debug := false
	session, err := smb.NewSession(options, debug)
	if err != nil {
		log.Fatalln("[!]", err)
	}
	defer session.Close()

	if session.IsSigningRequired {
		log.Println("[-] Signing is required")
	} else {
		log.Println("[+] Signing is NOT required")
	}

	if session.IsAuthenticated {
		log.Println("[+] Login successful")
	} else {
		log.Println("[-] Login failed")
	}

	if err != nil {
		log.Fatalln("[!]", err)
	}
}