Browse Source

Capability to store URL PATH added

Loweel 4 years ago
parent
commit
a78ad37bdb
5 changed files with 46 additions and 22 deletions
  1. 16 3
      bayes.json
  2. 17 3
      classifier.go
  3. 0 1
      file.go
  4. 10 12
      matrix.go
  5. 3 3
      run.sh

+ 16 - 3
bayes.json

@@ -1,12 +1,25 @@
 {
+ "LastUpdate": "2019-12-04 14:32:16.403693322 +0100 CET m=+0.016948951",
  "GOOD": [
-  {}
+  {
+   "Token": "/Gun/good",
+   "LastSeen": "2019-12-04 14:32:16.390739816 +0100 CET",
+   "Age": "13.201146ms"
+  }
  ],
  "BAD": [
-  {}
+  {
+   "Token": "/Penis/bad",
+   "LastSeen": "2019-12-04 14:32:16.389706996 +0100 CET",
+   "Age": "14.183289ms"
+  }
  ],
  "MEH": [
-  {}
+  {
+   "Token": "Dildo",
+   "LastSeen": "2019-12-04 14:32:16.390823335 +0100 CET",
+   "Age": "13.128746ms"
+  }
  ],
  "STATS": null
 }

+ 17 - 3
classifier.go

@@ -67,9 +67,16 @@ func blockAndlearn(resp *http.Response) error {
 
 func sanitizeHeaders(s string) string {
 
-	re := regexp.MustCompile(`[a-zA-Z]{4,32}|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})|([0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12})`)
+	re := regexp.MustCompile(`[a-zA-Z]{4,32}|([{][/].*[}])|([0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12})`)
 	matched := re.FindAllString(s, -1)
-	return strings.ToLower(strings.Join(matched, " "))
+
+	tmpSt := strings.ToLower(strings.Join(matched, " "))
+	tmpSt = strings.ReplaceAll(tmpSt, "{", "")
+	tmpSt = strings.ReplaceAll(tmpSt, "}", "")
+
+	log.Println("Matched: " + tmpSt)
+
+	return tmpSt
 
 }
 
@@ -81,9 +88,13 @@ func feedRequest(req *http.Request, class string) {
 
 	feedarray := strings.Fields(feed)
 
+	fmt.Println(feedarray)
+
 	if class == "BAD" {
 		for _, token := range feedarray {
 
+			log.Println("Feeding BAD token: ", token)
+
 			ControPlane.BadTokens <- token
 
 		}
@@ -92,6 +103,8 @@ func feedRequest(req *http.Request, class string) {
 	if class == "GOOD" {
 		for _, token := range feedarray {
 
+			log.Println("Feeding GOOD Token:", token)
+
 			ControPlane.GoodTokens <- token
 
 		}
@@ -110,5 +123,6 @@ func formatRequest(req *http.Request) string {
 		fmt.Println(err)
 	}
 
-	return fmt.Sprintf("%s\n", requestDump)
+	return fmt.Sprintf("{%s} %s\n", req.URL.Path, requestDump)
+
 }

+ 0 - 1
file.go

@@ -109,7 +109,6 @@ func saveBayesToFile() {
 
 	if tmpJ, e := json.MarshalIndent(DumpJson, "", " "); e == nil {
 		tmpJSON = fmt.Sprintf("%s", tmpJ)
-
 	} else {
 		tmpJSON = e.Error()
 	}

+ 10 - 12
matrix.go

@@ -47,21 +47,19 @@ func (c *ByClassifier) IsBAD(key string) {
 
 	if _, ok := c.MEH.Load(key); ok {
 		c.MEH.Store(key, time.Now().UnixNano())
+		log.Println("Updated BAD into MEH: ", key)
 		return
 	}
 
 	if _, ok := c.GOOD.Load(key); ok {
 		c.MEH.Store(key, time.Now().UnixNano())
 		c.GOOD.Delete(key)
-		return
-	}
-
-	if _, ok := c.BAD.Load(key); ok {
-		c.BAD.Store(key, time.Now().UnixNano())
+		log.Println("Moved to MEH from GOOD: ", key)
 		return
 	}
 
 	c.BAD.Store(key, time.Now().UnixNano())
+	log.Println("Stored into BAD: ", key)
 
 }
 
@@ -70,21 +68,19 @@ func (c *ByClassifier) IsGOOD(key string) {
 
 	if _, ok := c.MEH.Load(key); ok {
 		c.MEH.Store(key, time.Now().UnixNano())
+		log.Println("Updated GOOD into MEH: ", key)
 		return
 	}
 
 	if _, ok := c.BAD.Load(key); ok {
 		c.MEH.Store(key, time.Now().UnixNano())
 		c.BAD.Delete(key)
-		return
-	}
-
-	if _, ok := c.GOOD.Load(key); ok {
-		c.GOOD.Store(key, time.Now().UnixNano())
+		log.Println("Moved to MEH from BAD: ", key)
 		return
 	}
 
 	c.GOOD.Store(key, time.Now().UnixNano())
+	log.Println("Stored into GOOD: ", key)
 
 }
 
@@ -165,8 +161,8 @@ func (c *ByClassifier) enroll() {
 	ControPlane.GoodTokens = make(chan string, 2048)
 	ControPlane.StatsTokens = make(chan string, 2048)
 
-	c.IsBAD("Penis")
-	c.IsGOOD("Gun")
+	c.IsBAD("/Penis/bad")
+	c.IsGOOD("/Gun/good")
 	c.MEH.Store("Dildo", time.Now().UnixNano())
 
 	go c.readBadTokens()
@@ -219,6 +215,7 @@ func (c *ByClassifier) readBadTokens() {
 	log.Println("Start reading BAD tokens")
 
 	for token := range ControPlane.BadTokens {
+		log.Println("Received BAD Token: ", token)
 		c.IsBAD(token)
 	}
 
@@ -229,6 +226,7 @@ func (c *ByClassifier) readGoodTokens() {
 	log.Println("Start reading GOOD tokens")
 
 	for token := range ControPlane.GoodTokens {
+		log.Println("Received GOOD Token: ", token)
 		c.IsGOOD(token)
 	}
 

+ 3 - 3
run.sh

@@ -1,8 +1,8 @@
 export REVERSEURL=https://google.com 
-export PROXYPORT=":8080" 
+export PROXYPORT=":8089" 
 export TRIGGER="0.6"
 #export SENIORITY="1025"
-export SENIORITY="5"
+export SENIORITY="15"
 export DEBUG="true"
-export DUMPFILE="bayes.txt"
+export DUMPFILE="bayes.json"
 ./zardoz