• 2017-2018-2 20179302《网络攻防》第八周作业


    教材学习内容总结#

    本周主要学习了 Linux操作系统安全攻防

    Linux操作系统发展与现状##

    在统一内核代码库的基础上,Linux开源社区根据不同用户群体的需求,也发展出数量众多的操作系统发行版,流行的包括Ubuntu、Debian、Fedora、CentOS、RHEL、OpenSUSE和Slackware等。Linux操作系统之所以会成为目前最受关注的系统之一,主要原因是它的开放源代码与免费。
    Linux具有以下的优势:
    ①跨平台的硬件支持(Linux操作系统的内核大部分是用C语言编写的,并采用了可移植的UNIX标准应用程序接口)
    ②丰富的软件支持
    ③多用户多任务(多个用户可以在同一时间以网络联机的方式使用计算机系统)
    ④可靠的安全性(利用Linux自带防火墙、入侵检测和安全认证等工具,及时修补系统的漏洞,就能大大提高Linux系统的安全性)
    ⑤良好的稳定性(Linux内核源代码是以标准规范的32位(在64位CPU上是64位)的计算机来做的最佳化设计,可确保其系统的稳定性)
    ⑥完善的网络功能。
    Linux系统结构:
    一套基于Linux内核的完整操作系统叫做Linux操作系统,Linux操作系统的结构包括Linux内核,一些GUN运行库和工具,命令行Shell,图形界面X窗口系统及相应桌面环境,并包含数千种从办公包、编译器、文本编辑器、科学工具到网络服务的应用软件。Linux操作系统内核的总体结构属于一种典型的宏内核结构,并非Linux的前驱——Minix所采用的微内核结构。在Linux内核中,在硬件抽象层的各类设备驱动程序可以完全访问硬件设备,方便地以模块化形式设置,并在系统运行期间可直接通过LKM机制装载或卸载。在硬件抽象层之上是内核服务功能模块,包括进程管理、内存管理、文件系统、设备控制与网络这五个子系统;而这些内核模块通过系统调用接口向用户态的GUN运行库及工具、命令行Shell、X窗口以及应用软件提供服务。

    Linux操作系统基本框架##

    Linux系统的优势:跨平台的硬件支持、丰富的软件支持、多用户多任务、可靠的安全性、良好的稳定性、完善的网络功能。
    Linux系统结构主要包括:进程与线程管理机制、内存管理机制、文件系统管理机制、设备控制机制、网络机制、系统调用机制。其结构图如下所示

    Linux操作系统安全机制##

    1.Linux身份认证机制。主要通过创建多种角色类型的用户及用户组来实施用户身份管理。
    2.Linux授权与访问控制机制。通过VFS虚拟文件系统实现对不同类别文件系统格式的支持,并通过设备文件类型来统一集成对其它类型系统资源的管理。
    3.Linux安全审计机制。连接时间日志、进程统计日志、错误日志记录。

    Linux系统远程攻防技术##

    1.Linux远程口令字猜测攻击。主要针对SSH、telnet、FTP、HTTP等服务口令。防范措施:使用强口令字。
    2.Linux网络服务远程渗透攻击。主要针对Linux系统网络服务、Linux内核中的网络协议栈、LAMP Web网站构建解决方案中的网络服务、FTP与Samba等文件共享服务、电子邮件收发服务、例如OpenSSH、NFS等的其他常用网络服务。防范措施:禁用所有不必要的网络服务、尽量选择更安全的网络协议与服务软件并使用最佳安全实践进行部署、及时更新网络服务版本、使用xinetd、防火墙为Linux网络服务添加网络访问控制机制、建立入侵检测与应急响应计划流程。
    3.攻击Linux客户端程序和用户。主要针对Linux平台上的客户端程序、系统用户。防范措施主要有对软件进行及时更新、增加自身的安全意识。
    4.攻击Linux路由器与监听器。防范措施在于要有安全对抗与博弈的意识,提升自己的技术实力,及时对问题进行修补。

    Linux系统本地安全攻防技术##

    1.Linux本地特权提升。Linux用户口令字破解、利用sudo的缺陷进行特权提升、利用用户态SUID程序漏洞进行特权提升、针对SUID程序的本地缓冲区溢出攻击、针对SUID程序的符号链接攻击、针对SUID程序的竞争条件攻击、针对SUID程序的共享函数库攻击、利用内核空间代码漏洞进行特权提升、利用系统配置不当实施本地特权提升。防范措施:看紧那些拥有特权的代码是关键。
    2.Linux系统上的消踪灭迹。主要通过清理系统日志。
    3.Linux系统远程控制后门程序。主要有特洛伊木马化的系统程序、命令行后门工具及图形化后门工具。防范措施在于预防Rootkit进入内核。教材学习中的问题和解决过程

    Linux操作系统的核心安全机制##

    身份认证、授权与访问控制、安全审计这三部分。
    Linux身份认证机制:Linux是一个多用户多任务的操作系统,通过创建多种角色类型的用户及用户组来实施用户身份管理,来确保多个用户安全地使用Linux操作系统。
    Linux用户:在Linux系统中以用户作为执行进程完成特定操作任务的主体:
    ①Root根用户
    ②普通用户
    ③系统用户。
    Linux用户信息保存在系统的/etc/password文件中,具体包括用户名、每个用户唯一的uid、使用Shell类型、用户初始目录等,而加密口令字则存放于/etc/shadow文件中,只对Root可读。
    Linux用户组:Linux用户组其实就是具有相同特征的用户账号集合,用于简化整个系统的用户权限管理。Linux用户组信息保存在系统的/etc/group文件中,包括用户组名称、用户组gid及用户组所包含的用户名列表,用户组加密口令字则保存在/etc/gshadow文件中。可以使用id-a命令来查询和显示当前用户所属组,并通过groupadd命令添加用户组,使用usermod-G group_name user name向特定组来添加用户。

    远程网络上入侵Linux系统的主要方法##

    ①对Linux系统各种网络服务的身份认证过程所涉及的用户口令字进行猜测攻击
    ②发掘Linux系统某个监听网络服务的安全漏洞并进行利用,从而为攻击者提供本地Shell的访问权
    ③通过网页木马、发送欺诈邮件、提供特洛伊木马程序等技术和社会工程学手段
    ④在Linux系统作为连接多个网络的路由器,或者打开“混杂模式”实施网络嗅探的监听器时,可能遭受攻击者特意构造的数据包攻击,从而被攻击者取得访问权。
    Linux本地特权提升:需要Root权限配置与管理系统时,通过su或者sudo命令提升至Root用户帐户。攻击者在得到本地受限用户访问权之后,最简单的特权提升途径就是能够破解出Root用户的口令,然后执行su或者sudo命令进行提升。读取口令字密文文件/etc/shadow本身就需要攻击者具有Root特权。通过利用一些以Root特权运行服务中存在的文件任意读/写漏洞,攻击者还是可以先获取到/ect/shadow文件,然后通过破解口令字将自身权限提升至Root特权用户。第二种特权提升途径是发掘并利用su或者sudo程序中的安全漏洞。攻击者在Linux系统上进行本地特权提升目前最为流行的途径是直接攻击那些具有Root特权程序中的任意代码执行漏洞,让它们替攻击者打开具有Root权限的Shell命令行连接。根据受攻击目标程序的类型,这类途径又分为攻击用户态SUID特权提升漏洞以及攻击Linux内核代码特权提升漏洞。在用户态被设置了SUID位的网络服务与程序,可以在运行过程中提升至文件拥有的权限,来执行一些系统资源相关的操作。最后一种本地特权提升技术则利用了系统中的一些配置不当,通过从系统中搜索全局可写的敏感文件与目录位置并加以利用,仅拥有首先用户权限的攻击者可能让操作系统或特权程序执行一些他们所预期的操作,从而获得特权提升的机会。

    KALI视频学习内容总结#

    中间人攻击测试##

    目的是使用ettercap工具对相关信息进行抓取,这里使用Ubuntu虚拟机(IP 222.28.136.226)进行测试。

    首先在kali当中使用以下命令开启端口转发:

    echo 1 > /proc/sys/net/ipv4/ip_forward

    再设置ssltrip,并劫持SSL数据:###

    iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8081

    sslstrip -l 8081

    使sslstrip监听8081端口。

    在使用ettercap之前,先对其相应配置(/etc/ettercap/etter.conf)进行改动:

    打开ettercap工具:

    ettercap -G

    在sniff选项中选择unified sniffing进行网卡选择:

    再选择scan for host,完毕后打开host list:

    找到靶机

    将这个host设置为target 2,然后在mitm选项卡中选择arp poisioning,开始arp抓取登录信息

    登录baidu账号,然后在ettercap当中就可以看到如下信息:

    至此,测试完成。

  • 相关阅读:
    ModbusTCP_Server之FB的建立
    ModbusTCP_Client之FB的建立
    ModbusRTU_Slave之FB的建立
    ModbusRTU_Master之FB的建立
    外部模式启动程序
    配方Recipes的程序实现过程
    socket通信实现程序
    面试题37:序列化二叉树(C++)
    面试题36:二叉搜索树与双向链表(C++)
    面试题31:栈的压入、弹出序列(C++)
  • 原文地址:https://www.cnblogs.com/20179302yzl/p/8971844.html
Copyright © 2020-2023  润新知