20199328 2019-2020-2 《网络攻防实践》第8周作业
20199328 2019-2020-2 《网络攻防实践》第8周作业
1.实践内容
Linux 系统结构
Linux进程与线程管理机制
Linux内核采用抢占式多用户多进程(multiprocessing)模式,多个进程并发活动, 由内核的进程管理模块来负责调度硬件资源进行使用
Linux的内存管理机制
Linux内存管理模块(MM)允许多个进程安全地共享物理内存区域。
Linux的文件系统管理机制
Linux内核使用了虚拟文件管理VFS机制,从而使得它能够支待数十种不同类型的逻辑文件系统
Linux的设备控制机制
抽象了设备的处理, 所有的硬件设备都像常规文件一样看待
Linux的网络机制
Linux内核中的网络模块提供了对各种网络标准的存取和各种网络硬件的支持
Linux的系统调用机制
Linux的系统调用通过软中断实现
Linux 操作系统安全机制
Linux操作系统的核心安全机制主要是身份认证、 授权 与访问控制、 安全审计这三个部分
Linux身份认证机制
- Linux用户(用户信息保存在系统的/etc/passwd文件中,加密口令字则存放千/etc/shadow文件中):① Root根用户, 权限最高, 可以操作系统中 任何的文件与命令②普通用户, 由使用者创建, 只能操作自己目录中的内容, 执行权限受限③系统用户,这类用户不具有登录系统的能力,但却是系统运行不可缺少的用户
- Linux用户组(用户组信息保存在系统的/etc/group文件中,用户组加密口令字则保存在/etc/gshadow文件中):具有相同特征的用户账号集合
- Linux的本地登录用户认证机制:由init进程启动getty产生若干个虚拟控制台(如ttyI, tty2等)。 在控制台上显示登录,当用户敲入用户时,getty执行登录(login)进程, 进入登录认证过程, 认证成功后, 登录进程会fork相应用户 Shell的子进程, 至此宪成登录过程, 用户可以在对应的 Shell下开始工作
- Linux的远程登录用户认证机制:inux系统普遍使用SSH服务来进行远程用户登录与网络访问, SSH提供两种方式的用户身份认证机制: 第一种方式为基千口令的身份认证 ;第二种方式为基千非对称密钥的身份认证
- Linux的统一身份认证中间件一一PAM:PAM通过动态链接库和一套统一的api,将系统提供的服务和该服务的认证方式分开,使得系统管理员可以灵活地根据需要,给不同的服务配置不同的认证方式而无须更改服务程序, 同时也便于向系统中添加新的认证手段
Linux授权与访问控制机制
- 文件的所有者:文件所有者的uid以及文件所有者所在组的gid来指明文件归哪个用户所有
- 文件的访问权限:文件的访问权限通过所附带的l0个标志位来进行设置
- 文件的特殊执行权限:常见的是SUID与SGID权限, SUID权限允许可执行义件在运行时刻从运行名的身份捉升至文件所有者权限,设置了SGID位的程序执行时是以所有者的组的权限进行运行
Linux安全审计机制
要通过三个主要的日志子系统实现:连接时间日志,进程统计日志,错误日志记录
Linux系统远程攻防技术
Linux 远程口令字猜测攻击
攻击者通过网络协议远程猜测成功一组用户名和口令, 用这些信息远程登录到Linux系统上, 获得本地的访问权。
Linux内核中的网络协议栈实现
CVE-2010-4161, 该凅洞存在千内核版本在v2.6.37之前的所
有RHEL系统中, 攻击者通过向目标系统任意开放的UDP端口发送—个特殊构造的UDP
数据包, 就可以直接将系统宒机, 造成目标系统的拒绝服务攻击。
FTP、Samba等文件共享服务
这些服务在Web网站服务器、企业内部文件服务器等存储有企业组织核心数据资产的关键Linux系统中往往比较常见,因此也成为f黑客们/议解这些关键系统必须尝试的攻击通道。
FTP (File Transfer Protocol)服务是互联网上非常古老的网络服务, 用十文件交换和共享传输,,FTP 服务一般监听TCP 20和21端口, 其中21 端口用千控制命令传输, 而20端口则用于数据传输。
Samba 服务软件在类UNIX 与Windows之间架起一座互通的桥梁, 让两者的资源互通有无, 让企业组织的内部网络中的两类操作系统之间能够便捷地相且访问
电子邮件收发服务
Sendmail 服务一直以来都是包括 Linux 在内的类 UNIX 系统上最流行的电了邮件收发服务, 也是备受争议的不安全的知名网络服务之一。
针对网络服务远程渗透攻击的安全防范措施
- 禁用所有不必要的网络服务
- 尽量选择更安全的网络协议与服务软件,并使用最佳安全实践进行部署
- 及时更新网络服务版本
- 使用xinetd、 防火墙为Linux网络服务添加网络访问控制机制
- 建立入侵检测与应急响应计划流程
Linux本地特权提升
最简单的特权提升途径就是能够破解出Root 用户的口令,然后执行 SU 或sudo命令进行提升
第二种特权提升途径是发掘并利用 SU 或sudo程序中的安全漏洞
目前最为流行的途径是直接攻击那些具有Root特权程序中的任意代码执行淄洞,让它们替攻击者打开具有Root权限的Shell命令行连接,这类 途径又分为攻击用户态SUID特权提升漏洞以及攻击Linux内核代码特权提升漏洞
最后一种本地特权提升技术则利用了系统中的一些配置不当, 通过从系统中搜索全局 可写的敏感文件与目录位置并加以利用
Linux系统上的消踪灭迹
查看/etc/syslog.conf 配省文件内容,来了解系统当前正在实施的审计事件类型以及日志的存储位置
在/var/log 目录下攻击者往往需要改动 messages、 authe、cure、 wtmp 和 xferlog 等日志文件
攻击者还而要清理的是自己在 Shell 程序中所输入的命令历史记录, Linux 系统中的很多 Shell 程序都记录运行过的历史命令, 以提供检索和重复执行命令的功能
Linux系统远程控制后门程序
最常见的Linux系统后门是提供远程命令行Shell的访问,通常是使用Netcat等肛门工 具在系统上运行,开放监听一个TCP端口,在接收到请求之后返回—个Linux系统Shell 与客户端进行交互
2.实践过程
动手实践:使用Metasploit进行Linux远程渗透攻击
使用Metasploit渗透测试软件,攻击Linux靶机上的Samba服务usermap_script安全涌涧,获取目标Linux靶机的主机访问权限。实践步骤如下:
①启动Metasploit软件,可根据个人喜好使用msfconsolemsfguimsfweb之一;
②使用exploit:exploit/multi/samba/usermap_script渗透攻击模块;
③选择攻击PAYLOAD为远程She1l,(正向或反向连接均可);
④设翌渗透攻击参数(RHOST,LHOST, TARGET等);
⑤执行渗透攻击:
⑥查看是否正确得到远程Shell,并查看获得的权限。
在kali打开metasploit,输入msfconsole,回车后就会进入到他的控制台界面,然后先搜索一下Samba漏洞,搜索结果如下图。这是针对这个漏洞的渗透攻击模块。
我们要针对usermap_script安全漏洞的渗透攻击:
usermap_script:
- Samba协议的一个漏洞CVE-2007-2447,用户名映射脚本命令执行
- 影响Samba的3.0.20到3.0.25rc3 版本
- 当使用非默认的用户名映射脚本配置选项时产生
- 通过指定一个包含shell元字符的用户名,攻击者能够执行任意命令
命令 use multi/samba/usermap_script
输入show payloads查看与该渗透攻击模块相兼容的攻击载荷。执行set payload cmd/unix/bind_netcat选择bind_netcat,即使用netcat工具在渗透攻击成功后执行Shell,并通过netcat绑定在一个监听端口。再选择show options来查看需要设置哪些参数。
在设定好靶机地址后,开始攻击
攻击后,查看是否成功,并查看权限
实践作业
攻防对抗实践: 攻击方使用Metasploit渗透软件针对Linux Metasploitable靶机实施网 络攻击,防御方则在Metasploitatble上使用tcpdump或Wireshark或Snort工具捕获攻击流, 并分析出攻击者利用了哪个安全漏洞进行攻击, 从官方网站上下载该安全湍洞补丁进行系 统修补, 双方合作给出攻防过程报告。
- 攻击方: 使用Metasploit, 选择Metasploitable靶机中发现的漏洞进行渗透攻击, 获得远程控制权, 并尝试进一步获得Root权限。
- 防守方: 使用tcpdump/wireshark/snort监听获得网络攻击的数据包义件, 并结合 wireshark/snort分析攻击过程,获取攻击者IP地址、目标IP和端口、攻击发起时间、 攻击利用漏洞、 使用Shellcode, 以及成功之后在本地执行命令输入等信息。
实验环境:同实践一
攻击方:同实践一
防守方:
-
用wireshark抓包后,查看第一个数据包,是一个ARP请求报文。接着往下看,攻击机kali(192.168.200.2)向靶机(192.168.200.125)发起的TCP连接请求,这应该是正式发起攻击的时间;
其中源端口号是41737,目的端口号是139
-
使用的shellcode
-
攻击成功之后在本地执行的命令
3.学习中遇到的问题及解决
- 问题1:nessus在更新无法登陆
- 问题1解决方案:等待就好。。
4.实践总结
看懂各个问题,等老师提问。。。