《网络攻防》第八周学习总结
教材学习内容总结
本周主要学习了 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位的网络服务与程序,可以在运行过程中提升至文件拥有的权限,来执行一些系统资源相关的操作。最后一种本地特权提升技术则利用了系统中的一些配置不当,通过从系统中搜索全局可写的敏感文件与目录位置并加以利用,仅拥有首先用户权限的攻击者可能让操作系统或特权程序执行一些他们所预期的操作,从而获得特权提升的机会。
教材学习中的问题和解决过程
与上一周类似,这次使用 Metasploit 工具进行Linux远程渗透攻击,攻击机IP:222.28.136.223,靶机IP:222.28.136.226,首先在靶机上将Samba服务打开:
然后在Kali当中打开msfconsole
,输入命令:
use exploit/multi/samba/usermap_script
使用usermap_script
渗透攻击模块。
通过命令
show options
可查看需要设置的值:
然后将目标地址设为靶机地址:
最后执行exploit
即可进行渗透攻击:
视频学习内容总结
中间人攻击测试
目的是使用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当中就可以看到如下信息:
至此,测试完成。
学习感想
经过这周的学习,我大概了解了linux系统的安全攻防相关知识,越发的体会到底层知识的了解对信息安全人员的重要性。同时,我还学会了在kali中利用ettercap工具进行arp劫持,虽然之前的学习中已经实现过arp劫持,但这种GUI界面的工具使用起来明显更简洁明朗。
学习进度条
学习了《网络攻防---技术与实践》第8章的内容,学习了KaliSecurity的31 - 35视频,完成基本实践。