初识Linux渗透:从枚举到内核利用

背景

许多人都觉得Linux是最安然的操作系统,是以在对Linux的安然问题上也放松了鉴戒。那么事实真的如斯吗?着实安然从来都只是相对的,Linux也不例外。虽然它加载了强大年夜的安然机制,但仍可能受到来自各方面带来的安然要挟。本文我们主要将评论争论有关Linux架构的主要使用技巧,以及相关的安然防御步伐。

PS:本文仅用于技巧评论争论与分享,严禁用于不法用途

Linux 概述

操作系统的主要目的是用于治理谋略机硬件及软件资本,并为谋略机法度榜样供给通用办事。Linux操作系统是由 Linus Torvalds于1991年开拓的一个UNIX操作系统的克隆版本。不要肴杂了Linux和Unix。它具有GNU通用公共许可证(GPL)的许可。Linux下为我们供给了强大年夜的Shell系统用户界面,用于接管用户输入的敕令并把它送入内核履行。一些对照有名的shell包括:Bourne again shell (Bash), C shell (csh), Korn shell (ksh)。你可以经由过程cat /etc/shells查看你当前的shell情况类型。

以下是一些非经常用的linux敕令:

ls:列出文件和目录

find:查找文件

cd:切换路径

cp:复制

mv:移动

mkdir:创建一个目录

rmdir:删除目录

rm:删除文件

想要懂得有关敕令的更多细节信息,只需键入man敕令即可。

Linux 流和重定向

当你与Linux情况进行交互时,它将为你供给输入/输出重定向功能以简化你的体验。关于输入输出流的操作, 有以下三种流你可以应用:

标准输入流 (stdin)

标准输出流 (stdout)

标准差错输出 (stderr)

这三个主要流的图示如下:

另一个功能是重定向。它主要用于对流的重定向。履行文本重定向,你可以应用以下符号:

“>”:覆盖文件。

“>>”:将输入添加到文件中。

以下是一些重定向符号及其用途列表:

Linux文件系统层次布局

在Linux中,统统都可以看做文件,包括所有容许/禁止读写履行权限的目录和设备。Linux的分层设计如下:

/root:系统治理员的主目录

/home:包孕所有用户的小我文件

/bin:包孕所有二进制文件(可履行文件)

/sbin:超级治理敕令,这里寄放的是系统治理员应用的治理法度榜样

/lib:包孕所需的库文件

/usr:包孕通俗用户应用的二进制文件

/opt:包孕可选的附加利用法度榜样

/etc:包孕法度榜样所需的所有设置设置设备摆设摆设文件

/dev:包孕设备文件

/media:包孕临时可移动设备的文件

/mnt:包孕文件系统的挂载点

/boot:包孕向导加载法度榜样文件

/tmp:包孕临时文件

/var:包孕变量文件,如日志文件

/proc:包孕有关系统进程的信息

用户和组

用户和组在Linux中至关紧张,同时它供给多义务和多用户功能。治理用户和组,你可以应用以下linux敕令:

Useradd:添加新用户

Passwd:变动用户密码

Userdel:删除用户,你可以添加“-r”选项删除用户的文件

查看用户组文件:cat /etc/group

创建一个组:

newgrp

权限

在Linux顶用户和组的权限主要包括:

读,以字母r表示

写,以字母w表示

履行,以字母x表示

要查看文件的权限,除了-l选项外,还可以应用ls敕令:

chmod , chown 和 chroot 敕令:

要变动文件权限,可以应用chmod敕令,款式如下:

chmod

或者你也可以应用八进制表示来代替字母

chown用于变动文件的所有者。

chroot改变法度榜样履行时所参考的根目录位置。

Cronjobs 和 Crontabs:

自动化和义务调整是系统治理中异常紧张的方面,尤其是在应用Linux时。自动化义务使系统治理员的事情变得加倍轻松。Linux为我们供给了很好的义务调整功能,以在特定的光阴运行敕令或脚本,我们称之为Cron。调整 义务创建款式如下:

[1] [2] [3]下一页

要反省Crontab(包孕有关cronjobs信息的文件),只需键入cat /etc/crontab即可

Linux 进击向量

以上我们对Linux系统情况和敕令已经有了一个初步的懂得。下面,我们把眼光转向有关Linux所面临的安然要挟上。进击者的进击序言多种多样,平日进击向量可以分为以下三种主要类型:

收集要挟

主机要挟

利用要挟

我们将在后半部分具体评论争论有关针对Linux的安然要挟。在开始进击Linux之前,罗列是必弗成少的事情阶段。

应用Nmap检测系统

我们可以应用Nmap来赞助我们检测,当前主机是否在Linux上运行。只需输入nmap – O 即可。

Linux 罗列

有许多开源对象可以赞助我们罗列Linux机械。保举大年夜家应用LinEnum,在我看来这是最好用的对象之一。

你可以在这里进行下载:https://github.com/rebootuser/LinEnum

应用:./LinEnum.sh -k keyword -r report -e /tmp/ -t

选项:

-k 输入关键字

-e 输入导出位置

-t 包括彻底(冗长)测试

-r 输入申报名称

-h 显示赞助文本

不带参数运行 = 有限扫描/没有输出文件

-e 要求用户输入输出位置,例如/tmp/export。假如不存在该目录文件,则会自动为你创建。

-r 要求用户输入申报名称。申报(.txt文件)将保存到当前事情目录。

-t 履行彻底(慢速)测试。假如不加该参数,则会履行默认的“快速”扫描。

-k 可选,支持用户在大年夜量文件中搜索单个关键字。

LinEnum可赞助你查找有关Linux主机的信息,包括:

系统信息:

主机名

收集详情

当前IP

默认路由详情

DNS办事器信息

用户信息:

当前用户具体信息

着末登任命户

显示用户登录主机

列出所有用户,包括uid/gid信息

列出root帐户

提取密码策略和哈希存储要领信息

反省umask值

反省/etc/passwd中是否存储密码哈希值

提取“默认”uid的完备具体信息,例如0,1000,1001等

考试测验读取受限定的文件,即/etc/shadow

列出当前用户的历史文件(如bash_history,.nano_history等)

基础的SSH反省

Linux提权

根据定义:“提权主如果使用编程差错或设计缺陷,来赋予进击者特殊权限以造访收集及其相关数据和利用法度榜样等。”(摘自techtarget.com)。

提权可分为垂直和水平两种;平行提权,即权限类型不变,权限ID改变。垂直提权,即权限ID不变,权限类型改变。田野应用的提权技巧种类繁多此中包括:

Linux Services Exploitations:经由过程查找linux办事或设置设置设备摆设摆设中的差错来提权。

通配符:通配符可用于注入随意率性敕令。

详细可以参考,之前宣布的一篇有关使用通配符进行Linux本地提权的文章。

SUID 滥用:

在这种技巧中,进击者应用必要root权限的合法对象(如nmap)在系统上运行恶意敕令

Linux内核使用:

这种使用的迫害极大年夜。一旦进击者成功使用linux内核,他们将能够完全节制系统。

反省系统是否存在权限提升破绽,可以应用 “Linux privilege checker”。下载地址:https://github.com/sleventyeleven/linuxprivchecker/blob/master/linuxprivchecker.py

Linux Exploit Suggester

Linux Exploit Suggester是一款由PenturaLabs开拓的,可根据操作系统版本号自动查找响应提权脚本的对象。其主要功能包括:

“Remote” 模式 (–kernel 或 –uname 开关)

“Direct” 模式 (默认)

“CVE list” 模式 (–cvelist-file 开关)

“Check security” 模式 (–checksec 开关)

应用:./linux-exploit-suggester.sh

下载地址:https://github.com/mzet-/linux-exploit-suggester

以致它还为我们供给了加固步伐:

Linux内核使用

如今的操作系统大年夜都基于“环保护模型”(ring protection mode)。该模型平日分为4层,编号从0到3,如下图所示:

Linux操作系统也基于相同的机制,但只有2层:User Land 和 Kernel Land。内存治理(Memorymanagement)是linux内核供给的最强大年夜的功能之一。

上一页[1] [2] [3]下一页

内核使用技巧:

1.空指针引用

NULL指针差错会激发空指针NullPointerException非常。换句话说,便是编程工具引用了值为NULL的地址。

2.随意率性内核读/写

该进击主如果经由过程将数据通报到Linux内核实现的。

3.内存毁坏破绽

为方便内部的处置惩罚,内存被划分为了4096字节的内存块,并被命名为page。12个最低有效位是偏移量;另外的是页码。在最新的x86架构中,Linux内核将虚拟空间(平日为4GB)傍边的3GB给了UserLand,别的1GB用于kernel land。此操作称为分段。该操作称之为分段。

内核应用页码来表示物理和虚拟之间的对应关系地址。为了治理不合的内存区域,这里应用了虚拟内存区域(VMA):

A-内核栈破绽:

客栈是一个特殊的内存空间。这个内存空间会自动增长。而进击者也恰是使用了这一点,一旦函数调用过多,就会致使调用客栈无法容纳这些调用的返回地址,导致数据越界,覆盖老的客栈数据孕育发生栈溢出漏洞。

B-内核堆破绽:

堆用于动态内存分配。内核堆使用是异常危险的,由于在多半环境下,进击者每每不必要筹备任何的Linux模块调试情况,即可实现堆使用。

Race Condition(竞争前提)

因为两个或者多个进程竞争应用不能被同时造访的资本,使得这些进程有可能由于光阴上推进的先后缘故原由而呈现问题,这就叫做竞争前提(Race Condition)。为了避免这个问题,linux实现了我们所谓的Mutex(互斥工具)。

缓冲区溢出防御技巧

这里有许多已实现技巧,可以赞助你抵御缓冲区溢出进击,例如:

地址空间结构随机化: Address space layout randomization (ASLR),是介入保护缓冲区溢出问题的一个谋略机安然技巧。是为了防止进击者在内存中能够靠得住地对跳转到特定使用函数。ASLR包括随机排列法度榜样的关键数据区域的位置,包括可履行的部分、堆、栈及共享库的位置。

stack canary

stack canary防护技巧主要用于防止stack overflow(客栈溢出)。假如能在运行时检测出stack overflow破坏,就有可能对函数栈进行保护。今朝的客栈保护实现大年夜多应用基于 “Canaries” 的探测技巧来完成对这种破坏的检测。

Non-executable stack

弗成履行客栈(NX)是一种虚拟内存保护机制,经由过程限定特定内存和实现NX位来阻拦shell代码注入在客栈上履行。

Linux 返回导向编程(ROP)

返回导向编程(ROP)是一种高档的内存进击技巧,简单的来说它的特征便是经由过程节制返回指针来使法度榜样导向新的节制流,使用处景包括应用ROP来绕过DEP、ASLR这样的防御机制。

Linux安然加固

以下是我对你的一些Linux安然加固建议:

按期更新Linux内核和利用法度榜样。

避免应用像FTP和telnet这类的不安然办事,建议应用SFTP和OpenSSH。

仅应用需要的利用和办事,最大年夜化的减小进击面。

假如前提容许,建议应用SELinux。

应用强密码策略。

关注faillog记录。

强化/etc/sysctl.conf设置设置设备摆设摆设。

应用身份验证办事器。

总结

本文主要向大年夜家概述了一些根基的有关Linux系统敕令和术语,并深入探究了Linux安然方面的问题以及使用与防御技巧。盼望经由过程本文的进修,能让你对Linux有一个加倍深入的懂得。

相关参考文献

1.高档根基举措措施渗透测试 – Packt Publishing:Chiheb chebbi

2.Linux用户和组:https://www.linode.com/docs/tools-reference/linux-users-and-groups/

3.应用Crontab在Linux上创建调整义务:https://kvz.io/blog/2007/07/29/schedule-tasks-on-linux-using-crontab/

4.LinEnum: https://github.com/rebootuser/LinEnum

上一页[1] [2] [3]

赞(0) 打赏
分享到: 更多 (0)
免责申明:本站所有资料均来自于网络,版权归原创者所有!本站不提供任何保证,不保证真实性,并不承担任何法律责任

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

阿里云优惠网 更专业 更优惠

阿里云优惠券阿里云大礼包