new
This commit is contained in:
parent
863fb948a5
commit
0c89f3740f
@ -51,6 +51,7 @@ func Fw_event(cookieStr string) {
|
||||
sheet.Cell("M1").SetString("域名(host)")
|
||||
sheet.Cell("N1").SetString("请求路径")
|
||||
sheet.Cell("O1").SetString("参数")
|
||||
sheet.Cell("P1").SetString("源ip地区")
|
||||
log.Println("生成表格表头标题")
|
||||
//当前时间
|
||||
EndTime := time.Unix(tool.Timestamp("second"), 0).Format("2006-01-02T15:04:05")
|
||||
@ -99,6 +100,7 @@ func Fw_event(cookieStr string) {
|
||||
log.Println(values_1, i)
|
||||
for v, k := range Date_v(yesterday).NTOP.LogPaging {
|
||||
Con = v + 2
|
||||
// IP := conn.DT_GET("http://ip-api.com/json/"+k.OutputJSON.(map[string]interface{})["SrcIPAddr"].(string)+"?lang=zh-CN", nil, nil)
|
||||
sheet.Cell("A" + strconv.Itoa(Con)).SetString(strconv.Itoa(Con)) // 第一列 (A1)
|
||||
sheet.Cell("B" + strconv.Itoa(Con)).SetString(k.OutputJSON.(map[string]interface{})["Time"].(string))
|
||||
sheet.Cell("C" + strconv.Itoa(Con)).SetString(k.OutputJSON.(map[string]interface{})["SrcZoneName"].(string))
|
||||
@ -114,6 +116,7 @@ func Fw_event(cookieStr string) {
|
||||
sheet.Cell("M" + strconv.Itoa(Con)).SetString(k.OutputJSON.(map[string]interface{})["HttpHost"].(string))
|
||||
sheet.Cell("N" + strconv.Itoa(Con)).SetString(k.OutputJSON.(map[string]interface{})["HttpFirstLine"].(string))
|
||||
sheet.Cell("O" + strconv.Itoa(Con)).SetString(k.OutputJSON.(map[string]interface{})["Payload"].(string))
|
||||
// sheet.Cell("P" + strconv.Itoa(Con)).SetString(Date_get(IP).(map[string]interface{})["country"].(string) + "." + Date_get(IP).(map[string]interface{})["city"].(string) + "/" + Date_get(IP).(map[string]interface{})["isp"].(string))
|
||||
log.Println("开始插入昨日数据:", Con, k.OutputJSON.(map[string]interface{})["SrcIPAddr"].(string))
|
||||
}
|
||||
}
|
||||
@ -121,6 +124,7 @@ func Fw_event(cookieStr string) {
|
||||
} else {
|
||||
for v, k := range Date_v(yesterday).NTOP.LogPaging {
|
||||
Con = v + 2
|
||||
// IP := conn.DT_GET("http://ip-api.com/json/"+k.OutputJSON.(map[string]interface{})["SrcIPAddr"].(string)+"?lang=zh-CN", nil, nil)
|
||||
sheet.Cell("A" + strconv.Itoa(Con)).SetString(strconv.Itoa(Con)) // 第一列 (A1)
|
||||
sheet.Cell("B" + strconv.Itoa(Con)).SetString(k.OutputJSON.(map[string]interface{})["Time"].(string))
|
||||
sheet.Cell("C" + strconv.Itoa(Con)).SetString(k.OutputJSON.(map[string]interface{})["SrcZoneName"].(string))
|
||||
@ -136,6 +140,7 @@ func Fw_event(cookieStr string) {
|
||||
sheet.Cell("M" + strconv.Itoa(Con)).SetString(k.OutputJSON.(map[string]interface{})["HttpHost"].(string))
|
||||
sheet.Cell("N" + strconv.Itoa(Con)).SetString(k.OutputJSON.(map[string]interface{})["HttpFirstLine"].(string))
|
||||
sheet.Cell("O" + strconv.Itoa(Con)).SetString(k.OutputJSON.(map[string]interface{})["Payload"].(string))
|
||||
// sheet.Cell("P" + strconv.Itoa(Con)).SetString(Date_get(IP).(map[string]interface{})["country"].(string) + "." + Date_get(IP).(map[string]interface{})["city"].(string) + "/" + Date_get(IP).(map[string]interface{})["isp"].(string))
|
||||
log.Println("开始插入昨日数据:", Con, k.OutputJSON.(map[string]interface{})["SrcIPAddr"].(string))
|
||||
}
|
||||
}
|
||||
@ -158,6 +163,7 @@ func Fw_event(cookieStr string) {
|
||||
today := conn.DT_POST("https://11.2.68.146/wnm/get.j", header, bytes.NewBufferString(values.Encode()))
|
||||
log.Println(values_1, i)
|
||||
for v, k := range Date_v(today).NTOP.LogPaging {
|
||||
// IP := conn.DT_GET("http://ip-api.com/json/"+k.OutputJSON.(map[string]interface{})["SrcIPAddr"].(string)+"?lang=zh-CN", nil, nil)
|
||||
sheet.Cell("A" + strconv.Itoa(Con+v)).SetString(strconv.Itoa(Con + v)) // 第一列 (A1)
|
||||
sheet.Cell("B" + strconv.Itoa(Con+v)).SetString(k.OutputJSON.(map[string]interface{})["Time"].(string))
|
||||
sheet.Cell("C" + strconv.Itoa(Con+v)).SetString(k.OutputJSON.(map[string]interface{})["SrcZoneName"].(string))
|
||||
@ -173,12 +179,14 @@ func Fw_event(cookieStr string) {
|
||||
sheet.Cell("M" + strconv.Itoa(Con+v)).SetString(k.OutputJSON.(map[string]interface{})["HttpHost"].(string))
|
||||
sheet.Cell("N" + strconv.Itoa(Con+v)).SetString(k.OutputJSON.(map[string]interface{})["HttpFirstLine"].(string))
|
||||
sheet.Cell("O" + strconv.Itoa(Con+v)).SetString(k.OutputJSON.(map[string]interface{})["Payload"].(string))
|
||||
// sheet.Cell("P" + strconv.Itoa(Con+v)).SetString(Date_get(IP).(map[string]interface{})["country"].(string) + "." + Date_get(IP).(map[string]interface{})["city"].(string) + "/" + Date_get(IP).(map[string]interface{})["isp"].(string))
|
||||
log.Println("开始插入今日数据:", v+Con, k.OutputJSON.(map[string]interface{})["SrcIPAddr"].(string))
|
||||
}
|
||||
// log.Println(Date_v(JsonStr).NTOP.LogPaging)
|
||||
}
|
||||
} else {
|
||||
for v, k := range Date_v(today).NTOP.LogPaging {
|
||||
// IP := conn.DT_GET("http://ip-api.com/json/"+k.OutputJSON.(map[string]interface{})["SrcIPAddr"].(string)+"?lang=zh-CN", nil, nil)
|
||||
sheet.Cell("A" + strconv.Itoa(Con+v)).SetString(strconv.Itoa(Con + v)) // 第一列 (A1)
|
||||
sheet.Cell("B" + strconv.Itoa(Con+v)).SetString(k.OutputJSON.(map[string]interface{})["Time"].(string))
|
||||
sheet.Cell("C" + strconv.Itoa(Con+v)).SetString(k.OutputJSON.(map[string]interface{})["SrcZoneName"].(string))
|
||||
@ -194,6 +202,7 @@ func Fw_event(cookieStr string) {
|
||||
sheet.Cell("M" + strconv.Itoa(Con+v)).SetString(k.OutputJSON.(map[string]interface{})["HttpHost"].(string))
|
||||
sheet.Cell("N" + strconv.Itoa(Con+v)).SetString(k.OutputJSON.(map[string]interface{})["HttpFirstLine"].(string))
|
||||
sheet.Cell("O" + strconv.Itoa(Con+v)).SetString(k.OutputJSON.(map[string]interface{})["Payload"].(string))
|
||||
// sheet.Cell("P" + strconv.Itoa(Con+v)).SetString(Date_get(IP).(map[string]interface{})["country"].(string) + "." + Date_get(IP).(map[string]interface{})["city"].(string) + "/" + Date_get(IP).(map[string]interface{})["isp"].(string))
|
||||
log.Println("开始插入今日数据:", v+Con, k.OutputJSON.(map[string]interface{})["SrcIPAddr"].(string))
|
||||
}
|
||||
// log.Println(Date_v(JsonStr).NTOP.LogPaging)
|
||||
@ -209,6 +218,14 @@ func Fw_event(cookieStr string) {
|
||||
log.Fatalf("保存文件时出错: %s", err)
|
||||
}
|
||||
}
|
||||
func Date_get(jsonSter string) interface{} {
|
||||
var jsonstr interface{}
|
||||
err := json.Unmarshal([]byte(jsonSter), &jsonstr)
|
||||
if err != nil {
|
||||
log.Fatalf("JSON 解析失败: %v", err)
|
||||
}
|
||||
return jsonstr
|
||||
}
|
||||
|
||||
func Date_v(jsonStr string) *Person {
|
||||
var person Person
|
||||
|
@ -1,5 +1,5 @@
|
||||
##临时数据存放点
|
||||
cookie: vindex==3b=16=0AB00=0R;supportLang=cn%2Cen;lang=cn;sessionid=200001a48a30c1c8fefb3ce8eb2389ac07ad;loginid=31f13e42f943b38bf2cd3c8fd04983f1;200001a48a30c1c8fefb3ce8eb2389ac07ad=true;abcd1234=
|
||||
cookie: vindex==3c=10=0AB00=0R; supportLang=cn%2Cen; lang=cn; abcd1234=true; 200001ec7c0c8051248d8d3f9aac68224def=true; sessionid=20000108e78d84d53105d5cbef259dd09f07; loginid=fd0c8b40dd1ec230686c40e85320218d; 20000108e78d84d53105d5cbef259dd09f07=true; login=false
|
||||
mysql:
|
||||
url: 127.0.0.1
|
||||
port: 3306
|
||||
|
113
conn/http_req.go
113
conn/http_req.go
@ -57,105 +57,46 @@ func DT_POST(urls string, headers map[string]string, bytess io.Reader) string {
|
||||
}
|
||||
|
||||
// req 请求体 url 请求地址 headers请求头
|
||||
func DT_GET(req map[string]interface{}, urls string) map[string]interface{} {
|
||||
func DT_GET(urls string, headers map[string]string, bytess io.Reader) string {
|
||||
url, err := url.Parse(urls)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
body, err := ToJsonBuff(req)
|
||||
// 创建一个 POST 请求
|
||||
r, err := http.NewRequest(http.MethodGet, url.String(), bytess)
|
||||
if err != nil {
|
||||
log.Println()
|
||||
}
|
||||
log.Println("hson请求体:", body)
|
||||
r, err := http.NewRequest(http.MethodGet, url.String(), body)
|
||||
if err != nil {
|
||||
log.Println()
|
||||
}
|
||||
// 使用 map 动态设置请求头
|
||||
headers := map[string]string{
|
||||
"Content-Type": "application/json",
|
||||
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
|
||||
"Accept-Language": "en-US",
|
||||
"cookie": "__ac_nonce=0638733a400869171be51",
|
||||
log.Println(err)
|
||||
}
|
||||
|
||||
// // 设置请求头
|
||||
// req.Header.Set("Content-Type", "application/json")
|
||||
// 使用 map 动态设置请求头 // 设置请求头 req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
|
||||
|
||||
for key, value := range headers {
|
||||
r.Header.Set(key, value) // 使用 Set 方法设置请求头
|
||||
}
|
||||
resp, err := http.DefaultClient.Do(r)
|
||||
// 创建一个 HTTP 客户端,跳过证书验证
|
||||
tr := &http.Transport{
|
||||
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
|
||||
}
|
||||
// 发送请求
|
||||
client := &http.Client{Transport: tr}
|
||||
resp, err := client.Do(r)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
if resp.StatusCode != http.StatusOK {
|
||||
log.Printf("响应失败,状态码为 %s", resp.Status)
|
||||
defer resp.Body.Close()
|
||||
|
||||
// 检查响应状态码
|
||||
if resp.StatusCode != http.StatusOK && resp.StatusCode != http.StatusCreated {
|
||||
log.Printf("server returned: %s", resp.Status)
|
||||
}
|
||||
var gcresp map[string]interface{}
|
||||
if err := ScanJson(resp, gcresp); err != nil {
|
||||
|
||||
// 读取响应体内容
|
||||
body, err := ioutil.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
return gcresp
|
||||
}
|
||||
|
||||
type Person struct {
|
||||
NTOP string `json:"ntop"`
|
||||
LogPaging []LogPaging `json:"logpaging"`
|
||||
}
|
||||
type LogPaging struct {
|
||||
LogType string `json:"logtype"` //日志ID
|
||||
ID string `json:"id"`
|
||||
UserID string `json:"userid"`
|
||||
PageNo string `json:"pageno"` //页数
|
||||
CountPerPage string `json:"countperpage"` //每页计数
|
||||
TotalCounts string `json:"totalcounts"` //总条数
|
||||
InputJSON InputJSON `json:"inputjson"` //输入参数
|
||||
OutputJSON OutputJSON `json:"outputjson"` //输出参数
|
||||
TimeFilter TimeFilter `json:"timefilter"` //本次查询时间区间
|
||||
}
|
||||
|
||||
type InputJSON struct {
|
||||
SrcZoneName string `json:"srczonename"` //源安全域
|
||||
DestZoneName string `json:"destzonename"` //目的安全域
|
||||
}
|
||||
|
||||
type OutputJSON struct {
|
||||
SrcPort string `json:"srcport"` //源端口
|
||||
DestPort string `json:"destport"` //目的端口
|
||||
Action string `json:"Action"`
|
||||
AttackCount string `json:"attackcount"` //攻击计数
|
||||
SrcVrfIndex string `json:"srcvrfindex"`
|
||||
ThreatID string `json:"threatid"`
|
||||
Severity string `json:"severity"`
|
||||
HddInfo string `json:"hddinfo"`
|
||||
Application string `json:"application"` //应用协议
|
||||
ThreatName string `json:"threatname"` //威胁名称
|
||||
SrcRegion string `json:"srcregion"` //源区域
|
||||
DestRegion string `json:"destregion"` //目的区域
|
||||
ThreatType string `json:"threattype"` //威胁类型 {入侵防御}
|
||||
Time string `json:"time"` //时间
|
||||
ContextName string `json:"contextname"` //上下文名称
|
||||
Policy string `json:"policy"` //策略
|
||||
Protocol string `json:"protocol"` //传输协议
|
||||
SrcIPAddr string `json:"srcipaddr"` //源IP
|
||||
User string `json:"user"` //用户
|
||||
DestIPAddr string `json:"destipaddr"` //目的IP
|
||||
SrcZoneName string `json:"srczonename"` //源安全域
|
||||
DestZoneName string `json:"destzonename"` //目的安全域
|
||||
CVE string `json:"cve"` //漏洞披露
|
||||
MSB string `json:"msb"`
|
||||
BID string `json:"bid"`
|
||||
RealIP string `json:"realip"`
|
||||
CapturePktName string `json:"capturepktname"`
|
||||
HttpHost string `json:"httphost"` //host头
|
||||
HttpFirstLine string `json:"httpfirstline"` //请求路径
|
||||
Payload string `json:"payload"` //请求数据
|
||||
MethodName string `json:"methodname"` //方法名称
|
||||
MethodNameCN string `json:"methodnamecn"` //方法名称中国(攻击类别)
|
||||
MethodSubName string `json:"methodsubname"` //方法子名称
|
||||
MethodSubNameCN string `json:"methodsubnamecn"` //方法子名称中国(具体攻击形式)
|
||||
LoginUserName string `json:"loginusername"`
|
||||
LoginPassword string `json:"loginpassword"`
|
||||
}
|
||||
|
||||
type TimeFilter struct {
|
||||
StartTime string `json:"starttime"`
|
||||
EndTime string `json:"endtime"`
|
||||
// log.Println(string(body))
|
||||
return string(body)
|
||||
}
|
||||
|
11
main.go
11
main.go
@ -1,8 +1,9 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"dt_automate/attackevent"
|
||||
"dt_automate/conf"
|
||||
"dt_automate/tool"
|
||||
"dt_automate/wps"
|
||||
"flag"
|
||||
"fmt"
|
||||
"log"
|
||||
@ -73,18 +74,18 @@ func main() {
|
||||
// method.HW_DTCLOUD() //截取运维中心的图片
|
||||
// method.HW_BAOLJ() //截取堡垒机的图片
|
||||
//运维巡检文档生成
|
||||
wps.HW_SYS_Word() //运维平台word文档生成
|
||||
// wps.HW_SYS_Word() //运维平台word文档生成
|
||||
// //政务网区截图
|
||||
// method.ZWW_FW1() //截取防火墙的图片
|
||||
// method.ZWW_TSGZ() //截取态势感知的图片
|
||||
// method.ZWW_DTCLOUD() //截取运维中心的图片
|
||||
// method.ZWWW_BAOLJ() //截取堡垒机的图片
|
||||
//运维巡检文档生成
|
||||
wps.ZWW_SYS_Word() //运维平台word文档生成
|
||||
// wps.ZWW_SYS_Word() //运维平台word文档生成
|
||||
//安全巡检文档生成
|
||||
wps.SAFET_Word() //安全巡检文档生成
|
||||
// wps.SAFET_Word() //安全巡检文档生成
|
||||
//安全事件表格生成(需要先执行互联网区防火墙截图)
|
||||
// attackevent.Fw_event(conf.GET_Config_yaml("cookie").(string)) //将防火墙安全事件存放到xlsx文件中
|
||||
attackevent.Fw_event(conf.GET_Config_yaml("cookie").(string)) //将防火墙安全事件存放到xlsx文件中
|
||||
}
|
||||
} else {
|
||||
log.Println("没有授权")
|
||||
|
Binary file not shown.
Binary file not shown.
BIN
防火墙安全事件20250228.xlsx
Normal file
BIN
防火墙安全事件20250228.xlsx
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user