0x0环境

主机A win10:10.51.20.60(wifi)

主机A中的虚拟机kali(攻击者):192.168.110.129(NAT)

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

主机A中的虚拟机win2003(受害者):192.168.110.132(NAT)

 

0x1 配置

0x11 beef配置

 beef局域网内模拟攻击 Safe 第1张

 

 

Beef的配置文件在 /usr/share/beef-xss/config.yaml

 

Host:kali IP

Port:beef监听端口默认3000

 

public:主机A(接入外网的电脑IP)

public_port:主机A中空闲的端口,我设置的是20000

 

0x12 虚拟机端口映射

 beef局域网内模拟攻击 Safe 第2张

beef局域网内模拟攻击 Safe 第3张

 

 

修改虚拟机网关的端口映射,简单来说,就是设置后,所有访问主机A的20000端口的请求都会被转发到192.168.110.129的3000端口,也就是kali的3000端口上

虚拟网络编辑器在VM编辑栏

0x2 模拟攻击

0x21 kali

启动beef

 beef局域网内模拟攻击 Safe 第4张

 

Beef弹出浏览器打开beef的后台管理,这里注意,原本应该是打开上图中的地址,但出了点问题(最后总结会说),所以我们要把ip改成kali的ip,也就是192.168.110.129:3000/ui/authentication

用户名/密码:beef/beef

 beef局域网内模拟攻击 Safe 第5张

 

这就是beef的界面,复制basic demo link:http://192.168.110.129:3000/demos/basic.html

 beef局域网内模拟攻击 Safe 第6张

 

 

0x22 win2003,win10

地址转换:

复制的地址是:http://192.168.110.129:3000/demos/basic.html

受害者Win2003输入的地址应该是端口映射后的地址:10.51.20.60:20000/demos/basic.html

成功打开,此时应该是成功了才对(。。。。。。)

 beef局域网内模拟攻击 Safe 第7张

 

 

查看kali中的beef管理界面,并没有win2003的信息(慌了。。。)

 beef局域网内模拟攻击 Safe 第8张

 

此时,我试了下在主机A中打开hook地址,成功了

 beef局域网内模拟攻击 Safe 第9张

 

再看beef,有了主机A的信息了,hook成功了(摸不着头脑???)

 beef局域网内模拟攻击 Safe 第10张

beef局域网内模拟攻击 Safe 第11张

 

 

尝试利用social engineering(社会工程学模块)骗取facebook密码

 beef局域网内模拟攻击 Safe 第12张

 

再打开主机A上的页面,成功了

 beef局域网内模拟攻击 Safe 第13张

 

输入hello后,再回到kali看攻击效果

 beef局域网内模拟攻击 Safe 第14张

 

 

 

0x3 总结,思考

0x31关于beef配置的host

根据参考文章,一开始beef配置的host我是没有改动,也就是默认的0.0.0.0

但出现了如下图的问题,成功打开了demo,但是demo上的js一直不成功,原因是无法连接(Error connection)

后来把host改成了kali的ip,js连接上了,但是beef的管理页面,也就是127.0.0.1:3000/ui/panel却无法打开了,试了下192.168.110.129:3000/ui/authentication倒是成功了,但是这其中的原因我还没明白

 beef局域网内模拟攻击 Safe 第15张

 

0x32 win2003的失败

0x22中说到,win2003成功打开了demo,但是beef这没有收到信息

换成主机A尝试成功后,我又转回来研究2003失败的原因,因为只有ie,而且是旧版本的,没办法F12看具体的请求状况,我下了个47版本的火狐装上后,再次尝试访问demo,这次beef成功收到信息了,也就是2003被成功hook住了(我又摸不着头脑了???)

 beef局域网内模拟攻击 Safe 第16张

 

Beef页面

 beef局域网内模拟攻击 Safe 第17张

 

0x33 关于beef配置的public

因为此次用的是wifi,所以beef配置中的public填的是wlan的ip地址,如果是用网线,

应该要改成192.168.110.1

 beef局域网内模拟攻击 Safe 第18张

 

 

0x34 实际环境攻击的想法

这次是虚拟机网络模拟攻击,如果在实际情况下

根据参考文档A

需要一台能访问(有独立ip)的主机

服务器装好beef后,要修改后台管理页面的URL和用户名密码,因为你能登陆管理页面,别人也能登陆

还要修改host为主机的独立ip,port自设要大于1024

Public和public_port不用设置

以下来自文档A

 

### 指定某个网段,只有在这个网段的浏览器才能被hook
permitted_hooking_subnet: "0.0.0.0/0"

### 指定某个网段,只有在这个网段的浏览器才能访问管理UI
permitted_ui_subnet: "0.0.0.0/0"

### 上面这两项都是可以被绕过的,只要使用X-Forwarded-For首部绕过,一般不需要设置

### 设置beef服务器的主机, 如果有自己的域名, 那么可以设置自己的域名, 没有就使用默认
host: "0.0.0.0"

### 设置beef服务器监听的端口, 可以自己定一个,比如8080, 记得端口号需要大于1024
port: "3000"

### 受害浏览器轮询beef主机的时间, 默认为1秒,可以设置为更低。 
xhr_poll_timeout: 1000

#public: "" # public hostname/IP address
#public_port: "" # experimental
### 这是让BeEF运行在一个反向代理或者NAT环境下才需要设置的。

### 管理页面的URI, 默认是/ui, 建议修改,这样就不会让别人找到你的管理页面
web_ui_basepath: "/ui"

### hook_file 的名称, 建议修改, 可以修改为jquery.js之类的来提升隐蔽性
hook_file: "/hook.js"

### 管理页面登录的用户名和密码, 这个一定要改,两个都改是最好的
credentials:
user: "beef"
passwd: "beef"

 

0x4参考文档

A:https://www.freebuf.com/articles/web/175755.html

B:https://www.cnblogs.com/heijuelou/p/7804771.html

两篇文章的作者都有对beef的进一步研究,可以看看

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄