20199119 2019-2020-2 《网络攻防实践》第8周作业

linux攻防

1.实践内容

Linux的优势:

  • 跨平台的硬件支持
  • 丰富的软件支持
  • 多用户多任务
  • 可靠的安全性
  • 良好的稳定性
  • 完善的网络功能

linux系统结构

linux操作系统内核结构属于一种典型的宏内核结构。

linux操作系统安全机制

身份认证机制
  • linux是一个多用户多任务的操作系统,通过创建多种角色类型的用户及用户组来实施用户身份管理,来确保多个用户安全地使用linux操作系统。
    • linux用户分为:root根用户、普通用户、系统用户;用户信息保存在/etc/passwd文件中。
    • linux用户组:是具有相同特征的用户账号集合,用户组信息保存在系统的/etc/group文件中
    • linux本地登录用户认证机制和远程登录用户认证机制。
    • linux的统一身份认证中间件——PAM(可插入身份认证模块)。
授权与访问控制机制
  • 所有文件与设备资源的访问控制都通过VFS虚拟文件系统来实现。
  • 在linux的虚拟文件系统安全模型中,主要通过文件所有者,文件访问权限和一些特殊权限位来进行系统的授权与访问控制。
  • 不足:只能将用户分为所有者、所有者所在组和其他用户,无法做到更细划分。
安全审计机制

主要通过三个主要的日志子系统来实现。

  • 连接时间日志:由多个程序执行,使系统管理员能够跟踪谁在何时登录到系统。
  • 进程统计日志:由系统内核执行,当一个进程终止时,为每个进程往进程统计文件中写一个记录。
  • 错误日志记录:由通用的日志记录服务syslogd(8)执行 。

Linux系统远程攻防技术

远程口令字猜测攻击

防范:

  • 确保每个用户都有自己的有效账户和口令字,而不是使用一个Root账户。
  • 对于特权账户应避免直接远程登录,只能在本地登录。
  • 口令长度至少达到8字符,包含字母、数字和标点符号。
  • 对多次认证失败进行纪录,并在多次无效登录之后断掉连接
  • 不要在自己可登录的所有系统上都使用相同的口令字
  • 不要笔录自己的口令字,不告知他人
  • 使用基于公开密钥证书的身份认证机制。
  • 修改端口,使用防御软件
网络服务远程渗透攻击

防范:

  • 禁用所有不需要的网络服务
  • 选择更安全的网络协议与服务软件,并使用最佳安全实践进行部署
  • 及时更新网络服务版本
  • 使用xinetd、防火墙为Linux网络服务添加网络访问控制机制
  • 建立入侵检测与应急响应计划流程
攻击Linux客户端程序和用户

防范:

  • 常用软件及时更新
攻击路由器和监听器

防范:

  • 及时修补设备和软件已知的安全漏洞和弱点

Linux系统本地安全攻防技术

本地特权提升
  • 破解根用户口令;利用su或sudo程序中的安全漏洞;攻击具有root权限的代码执行漏洞,分为攻击用户态SUID特权提升漏洞和攻击Linux内核代码特权提升漏洞;搜索全局可写的敏感文件。

  • 口令猜测:破解/etc/shadow文件中口令字段密文(获取权限后获取文件,进而破解口令)。

  • sudo缺陷:设计漏洞及文件配置漏洞。

  • 针对SUID程序漏洞的提权:利用所有者为root的SUID程序漏洞读取加密口令文件,并进行破解。

  • 利用内核空间代码漏洞

  • 利用系统配置不当的漏洞:包括敏感文件的全局可写等。

防范措施:移除不必要设置SUID特权的程序,更新维护linux内核,实施强访问控制。

消踪灭迹
  • 抹除活动日志,禁止shell的历史记录功能。

防范:将日志信息写入难以修改的媒介上或发送到安全的服务器上。

远程控制后门
  • Linux系统上植入远程控制后门程序的类型:特洛伊木马化的系统程序、命令行后门工具、图形化后门工具。使用Rootkit技术隐藏后门程序

防范:使用LIDS等程序帮助抵抗。

2.实践过程

显示出所有能用的payload,选择与上次使用的reverse

得到正确远程shell,权限为root

首先通过Nessus扫描Linux靶机

选择6667端口服务漏洞,通过nmap扫描得到服务版本

用msfconsole使用命令search +服务版本,即可查出可利用的漏洞,之后就是将options中的yes选项设置一下,之后run,得到shell

查看权限,为root,不用提权...

从运行run之前打开wireshark,第一个TCP包,kali向linux靶机发起请求连接,为攻击开始时间,攻击机IP则为192.168.200.4,目标IP为192.168.200.125,端口为6667

抓包查看到是向靶机6667端口发起请求,通过搜索查询知道在Metasploitable2 的6667端口上运行着UnreaIRCD IRC的守护进程。这个版本包含一个后门,通过在一个系统命令后面添加两个字母”AB“发送给被攻击服务器任意一个监听该端口来触发。于是通过查看IRC协议数据包追踪TCP流,可以看到shellcode

linux在执行shell命令之前,就会确定好所有的输入输出位置,并且从左到右依次执行重定向的命令,所以>/dev/null 2>&1的作用就是让标准输出重定向到/dev/null中(丢弃标准输出),然后错误输出由于重用了标准输出的描述符,所以错误输出也被定向到了/dev/null中,错误输出同样也被丢弃了。执行了这条命令之后,该条shell命令将不会输出任何信息到控制台,也不会有任何信息输出到文件中。我理解是消除踪迹?

查看TCP流,发现攻击机在本地输入执行命令为查询权限

通过去厂商网站下载升级补丁可以修复这个漏洞

3.学习中遇到的问题及解决

问题1:分析shellcode相当困难?

解决:通过搜索引擎,似懂非懂

4.实践总结

又是一个坎坷的实验,动手简单,用命令即可,分析确实要了老命,难受的是写的博客又双叒叕没有保存,只好再次写了一遍,还是原理理解着相当困难,需要补基础...

posted @ 2020-04-22 11:41  李昕哲20199119  阅读(174)  评论(0编辑  收藏  举报
Live2D