HFish/core/report/report.go

110 lines
3.9 KiB
Go
Raw Normal View History

2019-08-07 13:16:23 +08:00
package report
import (
"HFish/core/dbUtil"
"time"
"HFish/utils/ip"
2019-08-07 13:16:23 +08:00
)
2019-08-10 18:26:43 +08:00
// 上报 集群 状态
2019-08-11 20:14:28 +08:00
func ReportAgentStatus(agentName string, agentIp string, webStatus string, deepStatus string, sshStatus string, redisStatus string, mysqlStatus string, httpStatus string, telnetStatus string, ftpStatus string) {
2019-08-10 18:26:43 +08:00
sql := `
INSERT INTO hfish_colony (
agent_name,
agent_ip,
web_status,
deep_status,
ssh_status,
redis_status,
mysql_status,
http_status,
telnet_status,
2019-08-11 20:14:28 +08:00
ftp_status,
2019-08-10 18:26:43 +08:00
last_update_time
)
VALUES
2019-08-11 20:14:28 +08:00
(?,?,?,?,?,?,?,?,?,?,?);
2019-08-10 18:26:43 +08:00
`
2019-08-11 20:14:28 +08:00
id := dbUtil.Insert(sql, agentName, agentIp, webStatus, deepStatus, sshStatus, redisStatus, mysqlStatus, httpStatus, telnetStatus, ftpStatus, time.Now().Format("2006-01-02 15:04:05"))
2019-08-10 18:26:43 +08:00
// 如果 ID 等于0 代表 该数据以及存在
if id == 0 {
sql := `
UPDATE hfish_colony
2019-08-11 20:14:28 +08:00
SET agent_ip = ?, web_status = ?, deep_status = ?, ssh_status = ?, redis_status = ?, mysql_status = ?, http_status = ?, telnet_status = ?, ftp_status = ?, last_update_time =?
2019-08-10 18:26:43 +08:00
WHERE
agent_name =?;
`
2019-08-11 20:14:28 +08:00
dbUtil.Update(sql, agentIp, webStatus, deepStatus, sshStatus, redisStatus, mysqlStatus, httpStatus, telnetStatus, ftpStatus, time.Now().Format("2006-01-02 15:04:05"), agentName)
2019-08-10 18:26:43 +08:00
}
}
2019-08-07 13:16:23 +08:00
// 上报 WEB
2019-08-10 18:26:43 +08:00
func ReportWeb(projectName string, agent string, ipx string, info string) {
ipInfo := ip.Get(ipx)
sql := `INSERT INTO hfish_info(type,project_name,agent,ip,ip_info,info,create_time) values(?,?,?,?,?,?,?);`
dbUtil.Insert(sql, "WEB", projectName, agent, ipx, ipInfo, info, time.Now().Format("2006-01-02 15:04:05"))
}
// 上报 暗网 WEB
func ReportDeepWeb(projectName string, agent string, ipx string, info string) {
ipInfo := ip.Get(ipx)
2019-08-10 18:26:43 +08:00
sql := `INSERT INTO hfish_info(type,project_name,agent,ip,ip_info,info,create_time) values(?,?,?,?,?,?,?);`
dbUtil.Insert(sql, "DEEP", projectName, agent, ipx, ipInfo, info, time.Now().Format("2006-01-02 15:04:05"))
2019-08-07 13:16:23 +08:00
}
// 上报 SSH
2019-08-10 18:26:43 +08:00
func ReportSSH(ipx string, agent string, info string) {
ipInfo := ip.Get(ipx)
2019-08-10 18:26:43 +08:00
sql := `INSERT INTO hfish_info(type,project_name,agent,ip,ip_info,info,create_time) values(?,?,?,?,?,?,?);`
2019-08-11 20:14:28 +08:00
dbUtil.Insert(sql, "SSH", "SSH蜜罐", agent, ipx, ipInfo, info, time.Now().Format("2006-01-02 15:04:05"))
2019-08-07 13:16:23 +08:00
}
// 上报 Redis
2019-08-10 18:26:43 +08:00
func ReportRedis(ipx string, agent string, info string) int64 {
ipInfo := ip.Get(ipx)
2019-08-10 18:26:43 +08:00
sql := `INSERT INTO hfish_info(type,project_name,agent,ip,ip_info,info,create_time) values(?,?,?,?,?,?,?);`
2019-08-11 20:14:28 +08:00
return dbUtil.Insert(sql, "REDIS", "Redis蜜罐", agent, ipx, ipInfo, info, time.Now().Format("2006-01-02 15:04:05"))
2019-08-07 13:16:23 +08:00
}
// 更新 Redis 操作
2019-08-10 18:26:43 +08:00
func ReportUpdateRedis(id string, info string) {
2019-08-07 13:16:23 +08:00
sql := `UPDATE hfish_info SET info = info||? WHERE id = ?;`
dbUtil.Update(sql, info, id)
}
// 上报 Mysql
2019-08-10 18:26:43 +08:00
func ReportMysql(ipx string, agent string, info string) int64 {
ipInfo := ip.Get(ipx)
2019-08-10 18:26:43 +08:00
sql := `INSERT INTO hfish_info(type,project_name,agent,ip,ip_info,info,create_time) values(?,?,?,?,?,?,?);`
2019-08-11 20:14:28 +08:00
return dbUtil.Insert(sql, "MYSQL", "Mysql蜜罐", agent, ipx, ipInfo, info, time.Now().Format("2006-01-02 15:04:05"))
2019-08-07 13:16:23 +08:00
}
2019-08-11 20:14:28 +08:00
// 更新 Mysql 操作
2019-08-10 18:26:43 +08:00
func ReportUpdateMysql(id string, info string) {
2019-08-07 13:16:23 +08:00
sql := `UPDATE hfish_info SET info = info||? WHERE id = ?;`
dbUtil.Update(sql, info, id)
}
2019-08-11 20:14:28 +08:00
// 上报 FTP
func ReportFTP(ipx string, agent string, info string) {
ipInfo := ip.Get(ipx)
sql := `INSERT INTO hfish_info(type,project_name,agent,ip,ip_info,info,create_time) values(?,?,?,?,?,?,?);`
dbUtil.Insert(sql, "FTP", "FTP蜜罐", agent, ipx, ipInfo, info, time.Now().Format("2006-01-02 15:04:05"))
}
// 上报 Telnet
func ReportTelnet(ipx string, agent string, info string) int64 {
ipInfo := ip.Get(ipx)
sql := `INSERT INTO hfish_info(type,project_name,agent,ip,ip_info,info,create_time) values(?,?,?,?,?,?,?);`
return dbUtil.Insert(sql, "TELNET", "Telnet蜜罐", agent, ipx, ipInfo, info, time.Now().Format("2006-01-02 15:04:05"))
}
// 更新 Telnet 操作
func ReportUpdateTelnet(id string, info string) {
sql := `UPDATE hfish_info SET info = info||? WHERE id = ?;`
dbUtil.Update(sql, info, id)
}