【文章于2017.08.01发布在个人博客】
今天玩了一把内网渗透,其中主要用到了metasploit这款内网渗透神器。metasploit大家肯定不陌生,我也在很早之前就有接触过,但每次重新使用它时都会遗忘一些用法,因此为了方便查询我在本篇记录下metasploit神器的一些常用命令,以及内网渗透中如何使用它。
mac下安装metasploit比较简单,官网下载pkg安装包,直接安装即可;需要注意的是安装完成后的路径。
msfconsole路径:
该目录下还有其他几个常用的工具:
msf的插件路径:
作用:生成木马文件,替代早期版本的msfpayload和msfencoder。
msfvenom命令行选项如下:
查看支持的payload列表:
查看支持的输出文件类型:
查看支持的编码方式:(为了达到免杀的效果)
查看支持的空字段模块:(为了达到免杀的效果)
命令格式
Linux
Windows
Mac
PHP
ASP
JSP
WAR
Python
Bash
Perl
Linux Based Shellcode
Windows Based Shellcode
Mac Based Shellcode
命令格式:
常用编码:
例子:
生成执行计算器payload例子:
正常情况下,利用msfvenom生成的木马文件,可直接上传到目标服务器上运行(加权限)。但我自己遇到过一个坑,生成的文件内容有部分是无用的,会引起报错,如下图所示。
解决方案是vim文件,删除文件开头两行无效的内容。
作用:用来在命令行下启动metasploit。
启动后可看到metasploit当前版本,以及各个模块的插件数量。
auxiliary扫描模块
exploits漏洞利用模块
payloads
encoders编码模块
nops空字符模块
比如寻找ms15_034漏洞的利用插件
配合木马弹Shell
前面我介绍了如何使用msfvenom生成木马文件,这里我介绍如何使用msf连接上被执行的木马文件,达到控制目标服务器。
首先我们回顾一下生成木马文件的命令,其中有一个payload的选项,常用的几个payload。
linux相关payload:
windows相关payload:
注意:含有x64只适用目标服务器为64位操作系统的,没有x64或者使用x86的只适用32位操作系统;含有meterpreter的模块会反弹meterpreter_shell,而普通的shell模块只会反弹普通的shell(反弹结果跟nc类似);reverse_tcp表示木马会主动连接目标服务器,bind_tcp表示木马会监听本地的端口,等待攻击者连接。因此生成的木马文件,要根据具体情况而定。
前面介绍了常用的payload,那么payload选择的三大要素如下:
木马连接的方向
目标操作系统及版本
反弹的shell类型
木马连接方向:
msf木马分为正向连接与反向连接,正向连接适合攻击机能给连接目标机的情况,反向连接使用目标机能连接攻击机的情况,这里所说的连接一般是指tcp的某个端口。因此在生成木马前,需要先判断当前环境,适合正向连接木马还是反向连接的木马。(可以使用nc工具测试,详细参考:【渗透神器系列】nc)
目标操作系统类型查看:这个不说了!
操作系统位数查看:
反弹shell类型:
这个主要取决于反弹的shell的用途,一般执行系统命令的话普通操作系统的shell就够了。如果想要使用高级功能,比如:键盘记录,开启摄像头,添加路由等功能,可以使用meterpreter_shell。
开启msf,启用exploit/multi/handler模块。
注意:这里set的payload跟生成木马使用的payload要一致,其余的参数根据选择的payload而填写。
当我们拿到目标服务器的meterpreter_shell后,可以进行很多操作。
文件管理功能:
网络及系统操作:
用户操作和其他功能讲解:
大多时候我们获取到的meterpreter shell处于内网,而我们需要代理到目标内网环境中,扫描其内网服务器。这时可以使用route功能,添加一条通向目标服务器内网的路由。
查看shell网络环境:
添加一条通向目标服务器内网的路由
查看路由设置:
一般来说,在meterpreter中设置路由便可以达到通往其内网的目的。然而有些时候还是会失败,这时我们可以background返回msf>,查看下外面的路由情况。
如果发现没有路由信息,说明meterpreter shell设置的路由并没有生效,我们可以在msf中添加路由。
说明:1表示session 1,攻击机如果要去访问10.0.0.0/8网段的资源,其下一跳是session1,至于什么是下一条这里不多说了,反正就是目前攻击机可以访问内网资源了。
假设目前我们扫描到了10网段的某个ip存在mysql弱口令,账号密码都有了,那么我们可以在肉鸡服务器上登陆目标服务器mysql。当然,如果我想在攻击机上去登陆mysql,可以使用端口转发。(某些情况下,内网的机器也不能互相ssh,需要登陆堡垒机)
在meterpreter shell中输入:
|
表示将10.0.0.1服务器上的3306端口转发到本地的55555端口,然后我们可以在本地运行mysql –h 127.0.0.1 –u root –P 55555 –p 去登陆mysql。其他端口如ssh、ftp等都类似,这个过程跟msf代理很像。
网络上关于metasploit用法的资料很多,这里主要记录一些常用用法,以及个人使用过程中的一些坑
参考文章:
http://www.freebuf.com/sectool/72135.html
http://blog.csdn.net/lzhd24/article/details/50664342
http://blog.csdn.net/qq_34457594/article/details/52756458
http://www.freebuf.com/sectool/56432.html
http://www.freebuf.com/articles/network/125278.html
【更多文章请点击“阅读原文”】