实践内容
8.1 Linux操作系统基本框架概述
Linux操作系统在服务器、安全敏感部门以及移动终端市场(Android)上占据重要地位,在桌面操作系统上的市场占有率较低。
Linux的优势:
- 跨平台的硬件支持
- 丰富的软件支持
- 多用户多任务
- 可靠地安全性
- 良好的稳定性
- 完善的网络功能
linux是一种典型的宏内核结构。在硬件抽象层中的各类设备驱动程序可以完全访问硬件设备,方便地以模块化形式设置,并在系统运行期间可直接通过LKM(Loadable Kernel Module)机制装载或卸载。在硬件抽象层上是内核服务功能模块,包括进程管理,内存管理,文件系统,设备控制与网络这五个子系统。而这些内核模块通过系统调用接口向用户态的GNU运行库及工具、命令行Shell、X窗口以及应用软件提供服务。Linux操作系统内核结构图如下图。
![](https://img2020.cnblogs.com/blog/1800797/202004/1800797-20200418231528559-1196056372.png)
8.2 Linux操作系统安全机制
Linux os的核心安全机制也主要是身份认证、授权与访问控制、安全审计这三个部分。
Linux是一个多用户多任务的OS,通过创建多种角色类型的用户以及用户组来实施用户身份管理,来确保多个用户安全地使用Linux OS。
graph LR
A[Linux用户] -->B[Root根用户 权限最大]
A[Linux用户] -->C[普通用户 受限]
A[Linux用户] -->D[系统用户 不能登陆系统]
Linux用户信息保存在系统的/etc/passwd文件中,加密口令字则存放在/etc/shadow文件中,只对Root可读。
目前的Linux系统普遍采用SSH服务进行远程用户登录与网络访问,SSH提供两种方式的用户身份认证机制:
- 基于口令的身份认证,就是用户名密码这种
- 基于非对称密钥的身份认证,简单来说,公钥在服务器上,私钥在本地,你想要访问远程服务器,就需要以证书方式进行认证。服务器用公钥加密个东西发给你,你需要用私钥解密下发给服务器
为了能够给不同的应用软件,网络服务提供统一的身份认证机制,Linux系统中提供了PAM(可插入身份认证模块),作为一种验证用户身份的灵活与标准方法。
PAM支持四种管理界面:
- 认证管理
- 账户管理
- 密码管理
- 会话管理
一切皆是文件
![](https://img2020.cnblogs.com/blog/1800797/202004/1800797-20200418233919845-1080051051.png)
通过以下三个主要的日志子系统来实现
- 连接时间日志:管理员能跟踪谁在何时登陆了系统
- 进程统计日志:为系统中的基本服务提供命令使用统计
- 错误日志记录:报告一些值得注意的事件
常用的日志文件如下:
![](https://img2020.cnblogs.com/blog/1800797/202004/1800797-20200418234305637-2083397366.png)
8.3 Linux系统远程攻防技术
-
Linux远程口令字猜测攻击
工具软件:
-
Brutus
-
THC HYDRA
-
Cain and Abel
-
Linux网络服务远程渗透攻击
-
攻击Linux客户端程序和用户
-
攻击Linux路由器和监听器
8.4 Linux系统本地安全攻防技术
一是破解出Root用户的口令,然后执行su或sudo命令进行提升
二是发掘并利用su或sudo程序中的安全漏洞
三是攻击用户态SUID特权提升漏洞以及攻击Linux内核代码特权提升漏洞
四是从系统中搜索全局可写的敏感文件与目录位置并加以利用
/etc/shadow文件中的记录行是与/etc/passwd文件一一对应的,每一行都记录着Linux系统中一个用户账户的登录凭证密文信息,字段之间用“:”隔开,如下图
![](https://img2020.cnblogs.com/blog/1800797/202004/1800797-20200418235536117-497492624.png)
破解软件:John the Ripper
实践过程
前置准备
机子
ip
kali
192.168.200.3
metasploitable linux
192.168.200.125
实践一
漏洞简介:SambaMS-RPC Shell命令注入漏洞
Samba中负责在SAM数据库更新用户口令的代码未经过滤便将用户输入传输给了/bin/sh。如果在调用smb.conf中定义的外部脚本时,通过对/bin/sh的MS-RPC调用提交了恶意输入的话,就可能允许攻击者以nobody用户的权限执行任意命令。
1:打开msfconsole,然后搜一下usermap这个漏洞,如下图
![](https://img2020.cnblogs.com/blog/1800797/202004/1800797-20200419154607834-372065179.png)
2:设置负载模块为18(设置哪个都可以,目的都是为了获取shell)
![](https://img2020.cnblogs.com/blog/1800797/202004/1800797-20200419154650367-2026022399.png)
3:设置攻击机ip和靶机ip
![](https://img2020.cnblogs.com/blog/1800797/202004/1800797-20200419154721234-2125623864.png)
4:攻击
![](https://img2020.cnblogs.com/blog/1800797/202004/1800797-20200419154740173-489496320.png)
5:输入whoami查看你是谁,看到是root,说明我们获取了root权限,无所不能了。
![](https://img2020.cnblogs.com/blog/1800797/202004/1800797-20200419154828797-1812276868.png)
6:查看一下所在组(可有可无的操作)
![](https://img2020.cnblogs.com/blog/1800797/202004/1800797-20200419154846559-985749731.png)
实践二
搜索metasploitable的漏洞,本来在nessus上扫描,发现扫描出来的都用不了,在网上各种查资料,最后找到了一个叫做distcc的漏洞。这个漏洞是干啥的呢。
Distcc用于大量代码在网络服务器上的分布式编译,但是如果配置不严格,容易被滥用执行命令,该漏洞是XCode1.5版本及其他版本的distcc2.x版本配置对于服务器端口的访问不限制。
下面开始实验。
攻击方
1:先搜一下这个漏洞
![](https://img2020.cnblogs.com/blog/1800797/202004/1800797-20200419215037772-1855174417.png)
2:设置一下靶机IP(无需设置负载模块)
![](https://img2020.cnblogs.com/blog/1800797/202004/1800797-20200419215108351-1876564097.png)
3:渗透攻击
![](https://img2020.cnblogs.com/blog/1800797/202004/1800797-20200419215126150-1143863333.png)
4:攻击成功,输入whoami
看看自己是谁,发现是daemon,
![](https://img2020.cnblogs.com/blog/1800797/202004/1800797-20200419223415813-188690663.png)
5:然后看一下存用户的那个文件,看一下daemon的信息,不是root,需要提权(暂时不会提权,先搁着)
![](https://img2020.cnblogs.com/blog/1800797/202004/1800797-20200419223445880-1782149850.png)
防守方
1:打开wireshark开始抓包,从下图可以看出源IP,目的IP,端口等信息
![](https://img2020.cnblogs.com/blog/1800797/202004/1800797-20200419224118662-1014333424.png)
2:从包类型可以看出来,除了3个distcc包,剩下的都是tcp包。
![](https://img2020.cnblogs.com/blog/1800797/202004/1800797-20200419225512057-765347228.png)
3:那我们就看一下这三个distcc包里都有哪些信息。打开这三个包,可以看到明文shell,这个应该就是shellcode了。
![](https://img2020.cnblogs.com/blog/1800797/202004/1800797-20200419225301731-1380561627.png)
![](https://img2020.cnblogs.com/blog/1800797/202004/1800797-20200419225426408-1756699472.png)
![](https://img2020.cnblogs.com/blog/1800797/202004/1800797-20200419225453370-1019238315.png)
4:在后面找一段连续的tcp包跟踪,发现了我输入过的命令等
![](https://img2020.cnblogs.com/blog/1800797/202004/1800797-20200419222503333-597081140.png)
实验结束。
学习感想和体会
这次实验总体跟上次是一样的,不过需要提权,有点难,暂时还不会提权,需要学习学习。
学习中遇到的问题及解决
问题1:找不到nessus在哪
查了资料后发现,nessus在 /opt/nessus/sbin目录
-
相关阅读:
SQL Server 文件规划 位置规划
在VS2008中使用WSE 3.0过程全记录
关于CDC功能的答疑
SQL Server 2008 : 基于策略的管理(PolicyBased Management)
使用 Google Gears 开发离线应用
SQL Server 2008 :安装
WCF 之UserName身份验证全记录
SQL Server 文件规划 文件组
不可思议的SQLite
使用Trigger让UpdatePanel外部的控件也支持无刷新异步调用
-
原文地址:https://www.cnblogs.com/funmary/p/12728849.html
-
最新文章
-
将rdlc报表作为资源嵌套使用
VS2008中的TableAdapterManager和分层更新机制
使用AJAX Toolkit创建新闻列表
How to: Send and Receive Large Amounts of Data to and from a Web Service
在IIS里面实现统一的连接字符串设置
升级SQL Server 2008 SP1后可能遇到的一个问题
数据挖掘之 DIG
微软 Azure 服务平台
如何使用专用管理连接进行问题诊断和处理 【摘自SQL Server在线帮助】
连接字符串中的integrated security=true的意思是什么
Copyright © 2011-2022 走看看
8.1 Linux操作系统基本框架概述Linux操作系统在服务器、安全敏感部门以及移动终端市场(Android)上占据重要地位,在桌面操作系统上的市场占有率较低。
Linux的优势:
- 跨平台的硬件支持
- 丰富的软件支持
- 多用户多任务
- 可靠地安全性
- 良好的稳定性
- 完善的网络功能
linux是一种典型的宏内核结构。在硬件抽象层中的各类设备驱动程序可以完全访问硬件设备,方便地以模块化形式设置,并在系统运行期间可直接通过LKM(Loadable Kernel Module)机制装载或卸载。在硬件抽象层上是内核服务功能模块,包括进程管理,内存管理,文件系统,设备控制与网络这五个子系统。而这些内核模块通过系统调用接口向用户态的GNU运行库及工具、命令行Shell、X窗口以及应用软件提供服务。Linux操作系统内核结构图如下图。
8.2 Linux操作系统安全机制Linux os的核心安全机制也主要是身份认证、授权与访问控制、安全审计这三个部分。
Linux是一个多用户多任务的OS,通过创建多种角色类型的用户以及用户组来实施用户身份管理,来确保多个用户安全地使用Linux OS。graph LR A[Linux用户] -->B[Root根用户 权限最大] A[Linux用户] -->C[普通用户 受限] A[Linux用户] -->D[系统用户 不能登陆系统]Linux用户信息保存在系统的/etc/passwd文件中,加密口令字则存放在/etc/shadow文件中,只对Root可读。
目前的Linux系统普遍采用SSH服务进行远程用户登录与网络访问,SSH提供两种方式的用户身份认证机制:
- 基于口令的身份认证,就是用户名密码这种
- 基于非对称密钥的身份认证,简单来说,公钥在服务器上,私钥在本地,你想要访问远程服务器,就需要以证书方式进行认证。服务器用公钥加密个东西发给你,你需要用私钥解密下发给服务器
为了能够给不同的应用软件,网络服务提供统一的身份认证机制,Linux系统中提供了PAM(可插入身份认证模块),作为一种验证用户身份的灵活与标准方法。
PAM支持四种管理界面:
- 认证管理
- 账户管理
- 密码管理
- 会话管理
一切皆是文件
通过以下三个主要的日志子系统来实现
- 连接时间日志:管理员能跟踪谁在何时登陆了系统
- 进程统计日志:为系统中的基本服务提供命令使用统计
- 错误日志记录:报告一些值得注意的事件
常用的日志文件如下:
8.3 Linux系统远程攻防技术
Linux远程口令字猜测攻击
工具软件:Brutus
THC HYDRA
Cain and Abel
Linux网络服务远程渗透攻击
攻击Linux客户端程序和用户
攻击Linux路由器和监听器
8.4 Linux系统本地安全攻防技术一是破解出Root用户的口令,然后执行su或sudo命令进行提升
二是发掘并利用su或sudo程序中的安全漏洞
三是攻击用户态SUID特权提升漏洞以及攻击Linux内核代码特权提升漏洞
四是从系统中搜索全局可写的敏感文件与目录位置并加以利用/etc/shadow文件中的记录行是与/etc/passwd文件一一对应的,每一行都记录着Linux系统中一个用户账户的登录凭证密文信息,字段之间用“:”隔开,如下图
破解软件:John the Ripper
实践过程前置准备
机子 ip kali 192.168.200.3 metasploitable linux 192.168.200.125 实践一
漏洞简介:SambaMS-RPC Shell命令注入漏洞Samba中负责在SAM数据库更新用户口令的代码未经过滤便将用户输入传输给了/bin/sh。如果在调用smb.conf中定义的外部脚本时,通过对/bin/sh的MS-RPC调用提交了恶意输入的话,就可能允许攻击者以nobody用户的权限执行任意命令。
1:打开msfconsole,然后搜一下usermap这个漏洞,如下图
2:设置负载模块为18(设置哪个都可以,目的都是为了获取shell)
3:设置攻击机ip和靶机ip
4:攻击
5:输入whoami查看你是谁,看到是root,说明我们获取了root权限,无所不能了。
6:查看一下所在组(可有可无的操作)
实践二
搜索metasploitable的漏洞,本来在nessus上扫描,发现扫描出来的都用不了,在网上各种查资料,最后找到了一个叫做distcc的漏洞。这个漏洞是干啥的呢。
Distcc用于大量代码在网络服务器上的分布式编译,但是如果配置不严格,容易被滥用执行命令,该漏洞是XCode1.5版本及其他版本的distcc2.x版本配置对于服务器端口的访问不限制。
下面开始实验。攻击方1:先搜一下这个漏洞
2:设置一下靶机IP(无需设置负载模块)
3:渗透攻击
4:攻击成功,输入whoami
看看自己是谁,发现是daemon,
5:然后看一下存用户的那个文件,看一下daemon的信息,不是root,需要提权(暂时不会提权,先搁着)
防守方1:打开wireshark开始抓包,从下图可以看出源IP,目的IP,端口等信息
2:从包类型可以看出来,除了3个distcc包,剩下的都是tcp包。
3:那我们就看一下这三个distcc包里都有哪些信息。打开这三个包,可以看到明文shell,这个应该就是shellcode了。
4:在后面找一段连续的tcp包跟踪,发现了我输入过的命令等
实验结束。
学习感想和体会这次实验总体跟上次是一样的,不过需要提权,有点难,暂时还不会提权,需要学习学习。
学习中遇到的问题及解决问题1:找不到nessus在哪
查了资料后发现,nessus在 /opt/nessus/sbin目录
- 相关阅读:
SQL Server 文件规划 位置规划
在VS2008中使用WSE 3.0过程全记录
关于CDC功能的答疑
SQL Server 2008 : 基于策略的管理(PolicyBased Management)
使用 Google Gears 开发离线应用
SQL Server 2008 :安装
WCF 之UserName身份验证全记录
SQL Server 文件规划 文件组
不可思议的SQLite
使用Trigger让UpdatePanel外部的控件也支持无刷新异步调用
- 原文地址:https://www.cnblogs.com/funmary/p/12728849.html
- 最新文章
将rdlc报表作为资源嵌套使用
VS2008中的TableAdapterManager和分层更新机制
使用AJAX Toolkit创建新闻列表
How to: Send and Receive Large Amounts of Data to and from a Web Service
在IIS里面实现统一的连接字符串设置
升级SQL Server 2008 SP1后可能遇到的一个问题
数据挖掘之 DIG
微软 Azure 服务平台
如何使用专用管理连接进行问题诊断和处理 【摘自SQL Server在线帮助】
连接字符串中的integrated security=true的意思是什么
Copyright © 2011-2022 走看看