Documentation ¶
Overview ¶
cSploit - a simple penetration testing suite * Copyright (C) 2016 Massimo Dragano aka tux_mind <tux_mind@csploit.org> * * cSploit is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * cSploit is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with cSploit. If not, see <http://www.gnu.org/licenses/\>. *
cSploit - a simple penetration testing suite * Copyright (C) 2016 Massimo Dragano aka tux_mind <tux_mind@csploit.org> * * cSploit is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * cSploit is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with cSploit. If not, see <http://www.gnu.org/licenses/\>. *
cSploit - a simple penetration testing suite * Copyright (C) 2016 Massimo Dragano aka tux_mind <tux_mind@csploit.org> * * cSploit is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * cSploit is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with cSploit. If not, see <http://www.gnu.org/licenses/\>. *
cSploit - a simple penetration testing suite * Copyright (C) 2016 Massimo Dragano aka tux_mind <tux_mind@csploit.org> * * cSploit is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * cSploit is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with cSploit. If not, see <http://www.gnu.org/licenses/\>. *
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetDbInstance ¶
func NotifyHostSeen ¶
func NotifyHostSeen(hwAddr net.HardwareAddr, ipAddr net.IP, name *string)
Types ¶
type AP ¶
type AP struct { internal.Base Bssid string `json:"bssid"` First time.Time `json:"first_seen"` Last time.Time `json:"last_seen"` Channel int `json:"channel"` Speed int `json:"speed"` Privacy string `json:"privacy"` Cipher string `json:"cipher"` Auth string `json:"auth"` Power int `json:"power"` Beacons int `json:"beacons"` IVs int `json:"ivs"` Lan string `json:"lan_ip"` IdLen int `json:"id_len"` Essid string `json:"essid"` Key string `json:"key"` // Does the fake auth succeed? FakeAuthed bool `json:"fake_auth"` Iface Iface `json:"-"` IfaceId uint `json:"-"` Jobs []Job `json:"-" gorm:"many2many:job_aps;"` }
Access Point ( courtesy of aircrack )
func FindApByBssid ¶
type Capture ¶
type Capture struct { internal.Base Key string `json:"key"` Handshake bool `json:"has_handshake"` Cracking bool `json:"cracking"` File string `json:"-"` Dict string `json:"dict"` Ap AP `json:"-"` ApId uint `json:"ap_id"` }
an airodump capture file
func (*Capture) CheckForHandshake ¶
type Client ¶
type Client struct { internal.Base // MAC address First time.Time `json:"first_seen"` Last time.Time `json:"last_seen"` Station string `json:"station"` Power int `json:"power"` Packets int `json:"packets"` Bssid string `json:"bssid"` Probed string `json:"probed_essids"` Iface Iface `json:"-"` IfaceId uint `json:"-"` Jobs []Job `json:"-" gorm:"many2many:job_clients"` }
A wifi client ( courtesy of aircrack )
func FindClient ¶
func FindClientByMac ¶
type DiscoveryJob ¶
func (*DiscoveryJob) Parse ¶
func (d *DiscoveryJob) Parse() error
type Host ¶
type Host struct { ID uint `json:"id"` CreatedAt time.Time `json:"first_seen"` UpdatedAt time.Time `json:"last_seen"` Name *string `json:"name,omitempty"` IpAddr string `gorm:"index" json:"ip_addr"` HwAddr *string `json:"hw_addr,omitempty"` HwAddrId *uint64 `gorm:"index" json:"-"` Ports []Port `json:"ports"` Network *Network `json:"-"` NetworkID uint `json:"network_id,omitempty"` Jobs []Job `json:"jobs" gorm:"many2many:job_hosts"` }
type Iface ¶
type Iface struct { internal.Base Name string `json:"name"` Aps []AP `json:"-"` Clients []Client `json:"-"` Jobs []Job `json:"-" gorm:"many2many:job_ifaces"` }
A network interface
func FindIfaceByName ¶
func (*Iface) StartDiscovery ¶
func (iface *Iface) StartDiscovery() (d *DiscoveryJob, e error)
type Job ¶
type Job struct { internal.Base FinishedAt *time.Time `json:"finished_at"` Name string `json:"name"` Type JobKind `json:"type"` // affected entities Aps []AP `json:"-" gorm:"many2many:job_aps"` Clients []Client `json:"-" gorm:"many2many:job_clients"` Hosts []Host `json:"-" gorm:"many2many:job_hosts"` Networks []Network `json:"-" gorm:"many2many:job_networks"` Ifaces []Iface `json:"-" gorm:"many2many:job_ifaces"` // concrete jobs Radar *RadarJob `json:"-"` Process *ProcessJob `json:"-"` }
A running task
type JobKind ¶
type JobKind int64
const ProcessJobKind JobKind = 1
const RadarJobKind JobKind = 2
func (JobKind) MarshalText ¶
used for json serialization
type Network ¶
type Network struct { ID uint `gorm:"primary_key" json:"id"` IfaceName string `json:"iface_name"` IpAddr string `json:"ip_addr"` Hosts []Host `json:"hosts"` }
func CreateNetwork ¶
func FindNetwork ¶
func FindOrCreateNetwork ¶
func NewNetwork ¶
type Port ¶
type ProcessJob ¶
type ProcessJob struct { //TODO: hide job Job Job JobId uint `gorm:"primary_key"` Command string `json:"command"` Args string `json:"args"` //TODO: OutputHolder Output string `json:"output"` ExitStatus *int `json:"exit_status"` }
func CreateProcessJob ¶
func CreateProcessJob(command string, args ...string) (*ProcessJob, error)
func FindProcessJob ¶
func FindProcessJob(id uint) (*ProcessJob, error)