20212820 2021-2022-2 《网络攻防实践》第七周作业
1.实践内容
(一)Linux操作系统基本框架
1.系统结构
-
进程与线程管理机制:采用抢占式多用户进程模式,多个进程并发活动,由内核schedule进程调度函数来依据进程优先级来选择进程执行。
-
内存管理机制:内存管理模块允许进程安全地共享物理内存区域,用户态如果要访问内核空间,必须通过系统调用或者中断。

-
文件系统管理机制:使用了虚拟文件管理机制,能支持数十种不同类型的逻辑文件系统。通用的文件调用函数包括open、close、read、write等,可对不同文件进行统一操作。
-
设备控制机:处理或管理硬件控制器的软件叫设备驱动程序,Linux支持三类硬件设备:字符设备、块设备、网络设备。
-
网络机制:网络模块提供了对各种网络标准存取和各种网络硬件的支持;网络接口分为网络协议栈和网络驱动程序,下图是网络协议栈的结构图。

-
系统调用机制:Linux的系统调用接口允许应用程序透过这些接口层来访问硬件设备和系统资源。
(二)Linux操作系统安全机制
系统的核心安全机制主要是身份认证、授权访问、安全审计三部分。
-
身份认证机制:
- 用户:root根用户、普通用户、系统用户
- 用户组:具有相同特征的用户账号集合。
- 本地登录用户认证机制:登录login进程通过Crypt()函数进行验证。
- 远程登录用户认证机制: 现在Linux普遍使用SSH服务,有基于口令的身份认证和基于非对称密钥的身份认证。
- 统一身份认证的中间件:PAM可插入身份认证模块,给不同的服务配置不同的认证方式,结构如下图。

-
授权与访问控制机制
- 文件所有者:每个Linux文件都拥有其所有者,创建文件时,文件系统会自动赋予文件所有者的读/写权限,chown命令可修改。
- 文件的访问权限:R读写权限;W写入权限;X执行权限。
- 文件的特殊执行权限:SUID权限允许可执行文件在执行时将运行者身份提升为所有者权限。
- 访问控制机制的不足及改进:只能将用户分为所有者、所有者所在组、其他用户三种分配权限,无法做到更细度的权限控制。POSIX ACKLs for Linux内核补丁软件能够帮助实现ACL权限管理。
-
安全审计机制
安全审计机制主要通过三个日志子系统来实现。- 连接时间日志:由多个程序执行。管理员能追踪谁在何时登录系统。
- 进程统计日志:当一个进程终止时,为每个进程往进程统计文件中写一个记录。
- 错误日志记录:由通用的日志记录服务/var/log目录,常用日志文件如下所示:
| 日志文件 | [日志文件内容 |
|---|---|
| acct/pacct | 记录用户命令 |
| aculog | 记录MODEM的活动 |
| btmp | 记录登录失败的记录 |
| lastlog | 记录最近几次成功登录和最后一次失败的登录。 |
| sudolog | 记录使用sudo发出的命令 |
| sulog | 记录使用su发出的命令 |
| utmp | 记录当前登录的每一个用户 |
(三)远程攻防技术
最长见的攻击技术有四种:远程口令字猜测攻击;网络服务远程渗透攻击;攻击Linux客户端和用户;攻击路由器和监视器。
-
远程口令字猜测攻击:
- Linux系统主要支持telnet、rlogin、rsh和SSH协议的网络远程控制,攻击者如果能通过网络协议远程猜测成功一组用户名和口令,那么就可远程登录到Linux系统上,获得本地访问权。
- 防御措施:使用不易猜中的强口令字;对特权账户应避免远程登录,在多次无效登录后断开连接;最好不用口令字,用基于公钥的身份认证机制。
-
网络服务远程渗透攻击:
- 网络协议栈的实现:是每个网络服务依赖的基础平台,一旦这些代码具有远程执行的安全漏洞,那么开放任何网络服务都将会被渗透攻击。
- WEB网站构建解决方案中的网络服务:LAMP是目前最流行的web网站构建解决方案;Apache提供网页服务;MySQL作为后台数据存储(服务监听于TCP3306);PHP语言开发应用程序。
- FTP、Samba等文件共享服务:Linux支持多种不同文件共享服务协议,如FTP和Samba服务。FTP一般监听于TCP20和21端口;somba是让UNIX类系统与Windows系统的SMB/CIFS网络协议相连接的网络服务,监听于TCP445端口。
- 电子邮件收发服务:Sendmail存在大量不安全的漏洞。
- 防范措施:禁用所有不必要的网络服务;及时更新网络服务版本;尽量使用安全的网络协议和应用程序;使用防火墙添加网络访问控制机制;建立入侵检测与应急响应计划流程。
-
攻击Linux客户端程序和用户
- 客户端程序:火狐浏览器和雷鸟电子邮件客户端均存在不安全的漏洞。在一些站点上植入包含恶意渗透攻击的代码链接,客户端如果存在漏洞地访问这些链接,将会被植入一些恶意可执行程序。
- 攻击Linux系统用户
- 防范措施:尽量保证网络客户端及时更新;了解各种社会工程学技术防止被骗。
-
攻击路由器和监听器:包括libcap抓包库、tcpdump命令行程序、wireshark网络监听与协议分析软件、snort入侵检测系统。
- 防范措施:意识到网络与安全设备自身的安全性也很重要。
(四)本地安全攻防技术
- 本地特权提升:攻击者方法有破解root用户的口令;发掘并利用su或sudo提权;攻击用户态SUID特权提升漏洞。
- 用户口令字破解:系统在设置用户口令时,根据配置选择加密或哈希算法对用户进行加密,这些算法可以使攻击者无法直接从密文反推明文口令。
- 利用sudo的缺陷进行特权提升:存在绕过身份认证的漏洞;存在sudoedit路径误配置提权漏洞。
- 利用SUID程序漏洞进行特权提升:在普通用户修改文件的权限时,会被提升至root权限,攻击者可以利用这个时候进行攻击。
- 针对SUID还有本地缓冲区溢出攻击:符号链接攻击;竞争条件攻击;共享函数库攻击。还有利用内核态空间代码漏洞进行特权提升:利用系统配置不当实施本地特权提升。
- 防范措施:对一些不必要设置SUID特权的程序,应尽量加以移除;使用SELinux等安全增强模块;及时更新和维护系统。
- 消踪灭迹:审计日志主要在/var/log下,攻击者要想办法清除自己的活动轨迹。
- 远程控制后门程序:包括特洛伊化的木马程序、命令行后门程序和图形化的后门程序。
2.实践过程
(1)使用Metasploit进行Linux远程渗透攻击
- 任务:使用Metasploit渗透测试软件,攻击Linux靶机上的Samba服务Usermap_script安全漏洞,获取目标Linux靶机的主机访问权限。实践步骤如下:
①启动Metasploit软件,可根据个人喜好使用msfconsole、msfgui、msfweb之一;
②使用exploit:exploit/multi/samba/usermap_script渗透攻击模块;
③选择攻击PAYLOAD为远程shell,(正向或反向连接均可);
④设置渗透攻击参数(RHOST,LHOST,TARGET等);
⑤执行渗透攻击;
⑥查看是否正确得到远程Shell,并查看获得的权限。
| kali_ip | 192.168.200.4 |
| Metasploitable_ubuntu_ip | 192.168.200.7 |
msfconsle打开Metasploit软件,输入search samba.查找攻击samba服务模块,找到exploit/multi/samba/usermap_script。
ii.输入use multi/samba/usermap_script;再输入show payloads查看攻击载荷,我们选择攻击载荷bind_netcat,该攻击载荷运行后启动netcat并绑定shell到一个开放端口上。

iii.输入set payload cmd/unix/bind_netcat设置好载荷,show options查看配置,输入set RHOST 192.168.200.7设置靶机IP地址。set LHOST 192.168.200.4,设置攻击机IP地址。然后run进行攻击,攻击成功后输入ifconfig命令查看IP地址,输入whoami查看当前权限账户为root发动攻击,返回来一个session,表明攻击成功


(2)攻防对抗实践
-
攻击方:使用 Metasploit ,选择 Metasploitable 靶机中发现的漏洞进行渗透攻击,获得远程控制权,并尝试进一步获得root权限。
-
防守方:使用 tcpdump/wireshark/snort 监听获得网络攻击的数据包文件,结合 wireshark/snort 分析攻击过程,获得攻击者的IP、目标IP和端口、攻击发起时间、攻击利用漏洞、使用Shellcode、以及成功之后在命令行输入的信息。
| kali攻击机ip | 172.16.69.125 |
| Metasploit防御机ip | 172.16.69.123 |
攻击过程同实验一,如下图所示:

i.通过wireshark分析攻击方的数据包,点开数据包的详细内容可以看到攻击时间为May 1, 2022 01:03:31.300725349 EDT,即2022年5月1日下午1点3分。攻击端口为46725端口。

ii.追踪TCP流可以发现攻击方所作的行为,进入shell后,输入了ls,id,whoami等指令。

iii. 因为攻击靶机的端口号为139且为SMB协议,所以通过百度可以得知中小型企业远程代码执行漏洞(CVE-2020-0796 )。
3.学习中遇到的问题及解决
无
4.实践总结
本次实验比较顺利,对于wireshark分析的那里,我只有两个tcp流,第二个是会话,第一个应该可以分析出使用的漏洞。如果能捕获更多的信息就更更有效的去分析。
浙公网安备 33010602011771号