rule apt28_win_zebrocy_golang_loader_modified {
   meta:
      description = "Detects unpacked modified APT28/Sofacy Zebrocy Golang."
      author = "@VK_Intel"
      date = "2018-12-25"
      reference = "https://www.vkremez.com/2018/12/lets-learn-progression-of-apt28sofacy.html"
      id = "cce9ba6c-954c-5b13-a058-cdf7895d63fc"
   strings:
      // Go build
      $go = { 47 6f 20 62 75 69 6c 64 20 49 44 3a 20 }
      $init = { 6d 61 69 6e 2e 69 6e 69 74 }
      $main = "main" ascii wide fullword
      $scr_git = {67 69 74 68 75 62 2e 63 6f 6d 2f 6b 62 69 6e 61}
      $s0 = "os/exec.(*Cmd).Run" fullword ascii
      $s1 = "net/http.(*http2clientConnReadLoop).processHeaders" fullword ascii
      $s2 = "os.MkdirAll" fullword ascii
      $s3 = "os.Getenv" fullword ascii
      $s4 = "os.Create" fullword ascii
      $s5 = "io/ioutil.WriteFile" fullword ascii
   condition:
      uint16(0) == 0x5a4d and $go and $init and all of ($s*) and #main > 10 and #scr_git > 5
}
