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)