linux攻防
1. 实践内容
linux 系统结构
-
宏内核;抢占式多用户多进程模式;通过LKM装卸驱动,进程使用两套描述符分别访问内核态和用户态,用户态进程不可能访问3GB以上的地址空间(虚存),通过系统调用或者中断访问内核。
文件管理系统采用VFS机制,提供通用文件系统调用函数;linux支持三类硬件设备,字符设备,块设备,网络设备;网络机制实现网络协议及相应驱动;
系统调用提供相应进程及资源通信接口。
linux 安全机制
- 身份认证:用户信息保存在/etc/passwd中,加密口令字保存在/etc/shadow中,只对root用户可读。
- 登录认证:本地登录通过init进程启动getty执行,并对口令进行验证,成功后进入相应的shell子进程;远程登录服务一般由ssh提供,可基于口令,也可基于公钥体制进行认证;也可通过身份认证中间件(PAM)统一访问。
- 授权及访问控制:所有文件与设备资源都通过VFS进行管理和访问控制,依据文件所有者(uid,gid),文件访问权限(读,写,执行)和特殊权限位(SUID)进行分配。
- 安全审计机制:通过三个日志子系统是实现相应审计:连接时间日志(var/log/wtmp,var/runutmp),进程统计日志(pacct,acct),错误日志记录(var/log/message)。
远程攻防技术
-
远程口令字猜测:猜测网络服务协议中使用的用户名和口令,从而得到系统访问权。防范措施使用强口令,设置认证次数,防火墙,重新配置远程连接端口等。
-
网络服务远程渗透:对监听网络服务安全漏洞的渗透利用;
-
Apache 服务漏洞,MySQL漏洞,ftp,samba文件共享服务漏洞,sendmail,OpenSSH等网络服务或多或少都存在一定的可远程渗透的漏洞;防范措施包括禁用相应端口,配置防火墙,更新服务版本等。
-
攻击客户端及用户:主要是web浏览器(网页挂马),电子邮件,软件发行站点。防范措施包括MD5哈希值值校验软件文件完整性等。
-
攻击路由器和监听器:攻击net子系统,防火墙漏洞,绕过防火墙规则,tcpdump漏洞,wireshark的解码器漏洞(执行原始流量获取接口可能需特殊权限运行,可将其设置通过tcpdump运行),snort本身的漏洞;防范措施,适时的检查加修补。
本地安全攻防技术
- 本地特权提升:破解根用户口令;利用su或sudo程序中的安全漏洞;攻击具有root权限的代码执行漏洞,分为攻击用户态SUID特权提升漏洞和攻击Linux内核代码特权提升漏洞;搜索全局可写的敏感文件。
- 口令猜测:破解/etc/shadow文件中口令字段密文(获取权限后获取文件,进而破解口令)。
- sudo缺陷:设计漏洞及文件配置漏洞。
- 针对SUID程序漏洞的提权:利用所有者为root的SUID程序漏洞读取加密口令文件,并进行破解。
- 利用内核空间代码漏洞
- 利用系统配置不当的漏洞:包括敏感文件的全局可写等。
- 防范措施:移除不必要设置SUID特权的程序,更新维护linux内核,实施强访问控制。
消踪灭迹
抹除活动日志,禁止shell的历史记录功能。防范:将日志信息写入难以修改的媒介上或发送到安全的服务器上。
远程控制后门
利用特洛伊木马化的系统程序,命令行后门工具等设置后门(替换远程登录和控制软件等)使用rootkit隐藏后门。防范:使用LIDS等程序帮助抵抗。
2. 实践过程
-
使用Metasploit进行Linux远程渗透
攻击机A:192.168.200.7
靶机B:192.168.200.125
攻击靶机上的samba服务的usermap_script漏洞:
打开msfconsole首先搜索可使用的模块:
serach usemap_script
,只有一个能用的然后选择该模块,并进行payload(
cmd/unix/reverse
),rhosts(ip_B),lhosts(ip_A)设置运行
run
后建立连接,使用命令id/whoami
查看当前用户id,uid=0(root) -
攻防对抗实践
首先使用nessus对靶机B可能的漏洞进行扫描,获取可能的漏洞
选取几个高危的漏洞(cve:2008-0166,cve:2007-2446等cve:2007-2447为教材所用漏洞),发现不是msf没有这个模块,就是攻击不成功...最后选了一个ftp服务的漏洞。msf用于ftp漏洞的unix有三个,前两个都白给(应该是没运行相应的服务器?),第三个成功获取靶机shell权限:
使用wireshark进行抓包分析
攻击ip 192.168.200.7
靶机ip 192.168.200.125
源端口 36633
目的端口 21
攻击发起时间 从第三个分组开始尝试进行tcp连接开始
从数据info中可以看出进行,第6个分组向攻击机发送了vsFTPd 2.3.4 response,且进行了登入请求,故应该利用的vsFTPd 2.3.4网络服务的漏洞,查询可知大概率为后门漏洞。
登入成功后,从第13个分组后开始写入命令,追踪数据流有
学习问题及解决
-
问题:实践二漏洞选择排查时间过长
解决:早该想到百度的
实践总结
渗透一般利用代码的漏洞,而linux的开源特性决定代码审计在安全方面的重要性。