提权技巧

这里是Linux环境中特权升级的最常用技术:

脏牛利用

此漏洞最初是通过HTTP 数据包捕获获得的,它利用竞争条件漏洞扩展Linux内核将任意数据写入受限制的系统文件。

竞争状况漏洞的存在是由于的“Linux的内核内存子系统处理私有只读内存映射的写时复制(COW)功能”方式的存在缺陷(Oester 2016年)。

由于存在安全隐患,脏COW漏洞被方位安全高级的研究员丹·罗森伯格宣布为“有史以来最严重的Linux的本地特权升级漏洞”(古丁2016年)罗森伯格的评估源于肮脏的COW存在漏洞几乎于每一个发行的Linux,根据安全焦点,超过770的Linux版本都容易脏COW(安全焦点,2016)。总体而言,该突破已经知道存在早在2005年(托沃兹/ Linux基金会,2016)。来一直在积极利用该突破,而没有发现或缓解。

错误自2.6.22(2007年发布)以来一直存在,并于2016年10月18日修复。

以下示例将演示攻击者如何通过编辑/ etc / passwd文件来使用DirtyCOW将“ root”用户替换为新用户“ rash”。

img

您可以在这里查看 dirtycow突破利用的其他变体

CVE-2017-6074 kernel-4.4.0-21-generic)

在专有的上载了IPV6_RECVPKTINFO选项时,Linux内核的数据报拥塞控制协议(DCCP)实现释放了DCCP_PKT_REQUEST数据包的SKB(专有对象)资源的方式中发现了一个使用后使用的缺陷。本地的非特权用户可以利用此突破来更改内核内存,从而使他们能够在系统上提升特权。

img

CVE-2017-7308 (内核4.8.0-41-通用)

发现的Linux的内核网络实现的packet_set_ring()函数未正确验证某些块大小的数据。具有CAP_NET_RAW的功能攻击本地者可以利用此缺陷触发缓冲区溢出,从而导致系统崩溃或特权提升。

img

CVE-2017-1000112 内核4.8.0-58-通用)

在Linux内核中发现了一个可以利用的内存损坏漏洞。使用MSG_MORE选项生成UFO数据包时,可以在ip_ufo_append_data()中将附加路径从UFO错误地切换到非UFO。如果没有特权的用户名空间可用,则可以利用此突破获取root特权。

img

CVE-2017-16995 kernel-4.10.0-28-generic)

在使用eBPF bpf(2)系统调用CONFIG_BPF_SYSCALL)支持编译的Linux内核中发现了任意内存读写访问问题。由于用户提供的恶意 BPF程序触发了eBPF验证程序模块中的计算错误,因此可能会出现此问题。非特权用户可以使用此缺陷来升级他们在系统上的特权。设置参数“ kernel.unprivileged_bpf_disabled = 1”可通过限制对bpf(2)称为访问防止这种特权升级。

img

  • 以root身份运行的程序

著名的EternalBlueSambaCry漏洞利用了通常以根身份运行的SMB服务。只需利用一种漏洞,者攻击就可以远程执行代码和本地特权升级。由于它的致命组合,它被广泛用于在全球范围内传播勒索软件

您应该始终检查Web服务器,邮件服务器,数据库服务器等是否以root用户身份运行。很多时候,Web管理员都以root用户身份运行这些服务,而忘记了它可能引起的安全问题。可能有一些服务在本地运行,而没有公开暴露,也可以被利用。

* $ netstat -antup * –它显示所有打开并正在侦听的端口。我们可以检查在本地运行的服务是否可以被利用。

利用以root用户身份运行的易受攻击的MySQL版本来获得root用户访问权限

MySQL UDF动态库突破利用可让您从MySQL shell执行任意命令。如果MySQL以root权限运行,则命令将以root身份执行。

* $ ps -aux | grep root * –它向我们展示了以root身份运行的服务。

* >我们可以使用将以root身份执行的MySQL Shell执行任意命令。*

img

  • 已安装的软件

在这种特权升级技术中,您需要确定用户是否安装了一些可能容易受到攻击的第三方软件?检查以下这些命令,如果您发现任何内容,只需在Google上进行进行利用即可。

# 常见的 位置 为 用户 安装的 软件 在/ usr /本地/  在/ usr / local / src目录 的/ usr / local / bin目录 的/ opt /  /家庭 的/ var /  / usr / src目录/  # class =“ mention”  href =“ / tags / debian”  data-type =“ Tag”  data-id =“ QdH39kSsAc9NrHBzR”  title =“#debian  (search)”> Debian class =“ mention”  href =“ / tags / dpkg”  data-type =“ Tag”  data-id =“ xNqW4QwgQ2ttpKPtf”  title =“#dpkg  (search)”> dpkg  -l  # class =“ mention”  href =“ / tags / centos-8”  data-type =“ Tag”  data-id =“ g5P7sDppErcrh4cmq”  title =“#centos  (search)”> CentOS, OpenSuse, class =“ mention”  href =“ / tags / fedora”  data-type =“ Tag”  data-id =“ HMntQpH8eYHbiAXWc”  title =“#fedora  (搜索)”> Fedora, RHEL  rpm  -qa  (CentOS  /  openSUSE  ) # class =“ mention”  href =“ / tags / openbsd”  data-type =“ Tag”  data-id =“ f9jiscu7G2HGFZPbg”  title =“#openbsd  (search)”> OpenBSD, class =“ mention”  href =“ / tags / freebsd”  data-type =“ Tag”  data-id =“ aBTcfAATatDL4ZanW”  title =“#freebsd  (search)”> FreeBSD  pkg_info
  • 弱密码/重用密码/纯文本密码

  1. 检查网络服务器连接到数据库的文件(config.php或类似文件)
  2. 检查数据库以获取可能被重用的管理员密码
  3. 检查弱密码
class =“ mention”  href =“ / tags / username”  data-type =“ Tag”  data-id =“ EjNwgeaeXkotExsvj”  title =“#username  (search)”>用户名:用户 名用户名:username1  用户名:root  用户名:admin  用户名:qwerty  用户名:class =“ mention”  href =“ / tags / password”  data-type =“ Tag”  data-id =“ WcffKpWXacDYmjCGu”  title =“#password  (search)”>密码

4.检查明文密码

# 什么 有趣 的 的 邮件?
/ var / spool / mail 

./LinEnum.sh  -t  -k  密码
  • 服务仅在内部提供

在这种情况下,用户正在运行某些只能从该主机获得的服务。您无法从外部连接到服务。它可能是开发 服务器,数据库或其他任何东西。这些服务可能以root用户身份运行,或者可能其中存在漏洞。由于开发人员或用户可能会考虑“由于只有特定用户可以访问它,因此我们不需要花费那么多的安全性”,因此它们可能更加脆弱。

检查netstat连接其与您从外部进行的nmap扫描进行比较。您是否从内部找到更多可用的服务?

# Linux的
netstat的 -anlp 
的netstat  -ano
  • Suid和Guid配置错误

根据文件设置uid和setgid有访问权限的目标允许启动初始化文件与文件的权利的所有者或组的替换文件(通常是根)的。

当运行具有suid权限的二进制文件时,并以其他用户身份运行,因此具有其他用户特权。它可以是root用户,也可以只是另一个用户。如果将suid位置设置在可以生成shell或以其他方式滥用的程序上,则可以使用它来提升特权。

例如,以下是一些可用于产生外壳的程序:

nmap

vim

less

more

如果这些程序设置了suid位,我们也可以使用它们来升级特权。有关这些内容以及如何使用的更多信息,请参见下一段有关滥用sudo-rights的内容:

nano

cp

mv

find

发现suid和guid文件

#Find  class="mention" href="/tags/suid" data-type="Tag" data-id="x6R7KDWkD4Wn7trAX" title="#SUID (search)">SUID
find / -perm -u=s -type f 2>/dev/null
 
#Find GUID
find / -perm -g=s -type f 2>/dev/null

img

img

> Nmap的SUID位置1。很多时候,管理员将SUID位设置为nmap,踩您可以有效地扫描网络,因为如果您没有以root权限运行它,则所有的nmap扫描技术都将无法使用。 *$ nmap –interactive –运行nmap交互模式* * $ !sh –使您可以从nmap shell转到系统shell *

img

  • 滥用sudo权利

如果攻击者无法通过其他任何方法直接获得根用户访问权限,他则可能会尝试损害具有SUDO访问权限的任何用户。一旦他可以访问任何须藤用户,他就可以基本上以根特权执行任何命令。

如果您的外壳程序有限,可以使用某些程序进行访问,则sudo可以升级权限。

$ sudo的-l - 打印的命令,这我们都不允许到运行的SUDO              

img

我们可以使用SUDO运行时查找,猫和python。当使用SUDO运行时,所有这些命令都将以root用户身份运行。如果我们可以通过这些命令中的任何一条以某种方式逃脱到shell,我们将获得root访问权限。

$ sudo查找/ home -exec sh -i; –查找命令的执行参数可用于任意代码执行。

img

  • 以root身份调用世界可写脚本

如果找到一个脚本,该脚本由root拥有但可以被任何人写,则可以在该脚本中添加自己的恶意代码,当该脚本以root身份运行时,该恶意代码提升权限。它可能是cronjob的一部分,或者以其他方式实现了自动化,或者它可能由sysadmin手动运行。您还可以检查这些脚本调用的脚本。

#World可写文件目录

find / -writable -type d 2>/dev/null
find / -perm -222 -type d 2>/dev/null

查找/ -perm -ow -type d 2> / dev / null`''

#世界重构文件夹

find / -perm -o x -type d 2>/dev/null

#世界可写和重置文件夹

find / \( -perm -o w -perm -o x \) -type d 2>/dev/null
  • 路径配置错误

放置**.**路径如果在路径中放置点,则无需编写立即执行它。您将能够执行当前目录中的任何脚本或二进制文件。**./binary**

人们/系统管理员为什么要这样做?因为他们很懒,不想写**./.**

这说明了它 https://hackmag.com/security/reach-the-root/ 此处 http://www.dankalia.com/tutor/01005/0100501004.htm

  • Cronjob

具有运行脚本的特权,其他用户可以编辑该脚本。

发现特权用户拥有但对您可写的所有内容:

crontab -l
ls -alh /var/spool/cron
ls -al /etc/ | grep cron
ls -al /etc/cron*
cat /etc/cron*
cat /etc/at.allow
cat /etc/at.deny
cat /etc/cron.allow
cat /etc/cron.deny
cat /etc/crontab
cat /etc/anacrontab
cat /var/spool/cron/crontabs/root
  • 卸载的文件系统

在这里,我们正在寻找任何未挂载的文件系统。如果找到一个,我们将其挂载并重新开始priv-esc 进程

mount -l
cat /etc/fstab

II.Windows权限提升

当您在计算机中遇到Meterpreter会话时,想到的第一件事就是运行“ getsystem ”,并使用多种不同的技术来尝试获取远程系统上的SYSTEM等级特权。

但是,如果失败了怎么办?

不要惊慌您仍然可以尝试一些技巧。

以下是Windows环境中特权升级的最常用技术:

CVE-2018-8120

提升特权漏洞中存在的视窗时WIN32K未能组件妥善处理的对象的内存,又名“特权漏洞WIN32K提升。”这会影响在Windows Server 2008Windows 7中的Windows 服务器2008 R2。此CVE ID在CVE-2018 -8124,CVE-2018-8164,CVE-2018-8166中是唯一的。

更多详细信息:https//www.exploit-db.com/exploits/45653

CVE-2018-0101

微软的Windows Vista SP2的的中管理事务中器内核的模式驱动程序,在Windows Server 2008 SP2和R2,Windows 7的SP1; Windows 8.1中Windows Server 2012中黄金和R2的Windows RT 8.1; Windows 10 Gold,1511和1607;Windows Server 2016Windows Server 2016允许本地用户通过精心设计的应用程序(也称为“ Windows特权提升突破”)获得特权。

更多详细信息:https//www.exploit-db.com/exploits/44479

CVE-2018-8497

Windows内核处理内存中对象的方式中存在一个特权提升扩展,也称为“ Windows内核特权提升漏洞”。这会影响Windows Server 2016,Windows 10,Windows Server 2019,Windows 10服务器。

更多详细信息:https//cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-8497

  • 访问令牌操纵

Windows使用访问令牌来确定正在运行的进程的所有权。用户可以操纵访问令牌以使正在运行的进程看起来像它属于启动该进程的用户以外的其他人。发生这种情况时,该过程还例如,Microsoft提倡使用访问令牌作为安全性最佳实践。管理员应以标准用户身份登录,但要使用内置访问令牌操作命令以管理员特权运行其工具runas

有关更多详细信息:https//attack.mitre.org/techniques/T1134/

  • AppInit DLL

注册表项的AppInit_DLLs值中指定的动态链接库(DLL),HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\WindowsHKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Windows由user32.dll加载到每个加载user32.dll的进程中的动态链接库(DLL)。实际上,这几乎是每个程序,因为user32.dll中是一个非常常见的库。与进程注入类似,通过使恶意DLL加载并在计算机上单独进程的上下文中运行,可以滥用这些值来获得持久性和特权升级。

有关更多详细信息:https//attack.mitre.org/techniques/T1103/

  • 绕过用户帐户控制

Windows用户帐户控制(UAC)允许程序通过提示用户进行确认来提升其特权,以在管理员级权限下执行任务。对用户的影响范围从拒绝执行高强度操作到允许用户执行操作(如果他们在本地管理员组中并预设提示)或允许他们输入管理员密码来完成操作。

有关更多详细信息:https//attack.mitre.org/techniques/T1088/

  • 可信服务路径

此漏洞涉及的Windows如何解释服务二进制文件路径中的空格鉴于这些服务通常作为系统运行,因此如果我们可以利用此行为,就有。机会提升我们的特权例如,考虑以下文件路径:

C:\ Program  Files \ Some  Folder \ Service.exe

对于上述文件路径中的每个空间,Windows将尝试查找并执行名称与空间前面的单词匹配的程序。该操作系统将尝试所有的可能性,整个文件路径的整个长度,直到它找到一个匹配。上面的示例,Windows将尝试按以下顺序查找和执行程序:

C:\ Program.exe
C:\ Program  Files \ Some.exe
C:\ Program  Files \ Some  Folder \ Service.exe

** Metasploit模块:** 漏洞利用/ Windows /本地/可信服务路径

更多详细信息:https//toshellandback.com/2015/11/24/ms-priv-esc/

  • AlwaysInstallElevated

AlwaysInstallElevated是一项设置,它使非特权用户能够以提升的(SYSTEM)权限运行Microsoft Windows安装程序包文件(MSI)。但是,授予用户此功能是一项安全问题,因为滥用此特权太容易了。因此,必须在计算机上将两个注册表项设置为值“ 1”:

[HKEY_CURRENT_USER \ SOFTWARE \ Policies \ Microsoft \ Windows \ Installer]
“ AlwaysInstallElevated” = dword:00000001 
[HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Microsoft \ Windows \ Installer]
“ AlwaysInstallElevated” = dword:00000001

img

来源:https//pentest.blog/wp-content/uploads/alwaysinstallelevated.png

Metasploit模块: 漏洞利用/ Windows /本地/ always_install_elevated

更多详细信息:https//pentestlab.blog/2017/02/28/always-install-elevated/

三,特权升级工具

为了使搜索弱点的过程自动化,我们可以使用其他工具:

LinEnum LinEnum将使我在本地Linux枚举和特权升级备忘单记录的许多检查自动化。这是一个非常基本的shell脚本,它执行65次以上的检查,从内核信息到定位可能的升级点(包括可能有用的) SUID / GUID文件以及Sudo / rhost错误配置等等),都可以获取任何信息。

img

资料来源:https//farm9.staticflickr.com/8607/15248059414_66a4b5bc6d_o.png

有关更多详细信息:https//www.rebootuser.com/?p=1758

Linux的PrivChecker 该脚本初始化在Linux机器上本地执行,以枚举基本系统信息并搜索通用特权提升向量,例如世界可写文件,错误配置,明文密码和适用的利用。

有关更多详细信息:https//github.com/sleventyeleven/linuxprivchecker

Unix-PrivEsc-Check: Shell脚本,用于检查Unix 系统上的简单特权升级向量

Unix-privesc-checker是一个在Unix系统上运行的脚本(在Solaris 9,HPUX 11,Linux,FreeBSD 6.2上进行了测试)。它试图引起本地非特权用户将特权提升到其他用户或访问本地应用程序(例如数据库)的错误配置。

img

资料来源:http//farm1.staticflickr.com/489/18440332034_d2406cb0df.jpg

有关更多详细信息:http//pentestmonkey.net/tools/audit/unix-privesc-check

根源** Windows特权升级工具: BeRoot:Windows特权升级工具由AlessandroZ编写。它是Pupy Projecthttps://github.com/n1nj4sec/pupy/)的一部分,该[项目](https:// www.peerlyst.com/tags/project)是[跨平台](https://www.peerlyst.com/tags/cross-platform)(Windows,Linux,[OSX](https://www.peerlyst.com / tags / osx)和Android)[远程管理](https://www.peerlyst.com/tags/remote-administration)和[后期开发工具,](https://www.peerlyst.com/tags/post -exploitation-tool)主要由n1nj4sec联系人开发的python编写。@ n1nj4.eu)。根据官方文档,实际上并没有进行利用,但是可以帮助您获取所需的信息

img

来源:https//securityonline.info/wp-content/uploads/2017/05/beroot.png

您可以在这里找到它:https//github.com/AlessandroZ/BeRoot

pypykatz Mimikatz在纯Python中的实现:

PypyKatz是一个python实施Mimikatz(蟒> = 3.6)。它可以帮助您转储LIVE系统LSA 机密

img

来源:https//securityonline.info/wp-content/uploads/2018/06/pypy.png

您可以在这里找到它:https//github.com/skelsec/pypykatz

Yodo:本地特权升级

Yodo:“本地特权升级”工具仅使用紧凑的COW或Pa(th)zuzu来利用目标。

img

资料来源:https//securityonline.info/wp-content/uploads/2017/11/yo.png

您可以在这里找到它:https//github.com/b3rito/yodo.git

JAWS-另一个Windows(枚举)脚本

JAWS是PowerShell脚本,旨在帮助渗透测试人员(和CTFer)快速识别Windows系统上的潜在特权提升向量。它是使用PowerShell 2.0编写的,因此“应该”在Windows 7之后的每个Windows版本上运行。

有关更多详细信息:https//github.com/411Hall/JAWS

Windows的私人检查

Windows-privesc-check是在Windows系统上运行的独立调试文件。它试图找到可能导致本地非特权用户将特权提升到其他用户或访问本地应用程序(例如数据库)的错误配置。

有关更多详细信息:https//github.com/pentestmonkey/windows-privesc-check

夏洛克

PowerShell脚本可快速查找的本地补丁程序升级扩展的软件补丁

有关更多详细信息:https//github.com/rasta-mouse/Sherlock

有用的链接:

本地Linux 枚举和特权升级备忘单https//www.rebootuser.com/ p = 1623

基本Linux权限升级https//blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/

Windows特权升级指南:https//www.absolomb.com/2018-01-26-Windows-Privilege-Escalation-Guide/

特权升级Wikihttps//www.peerlyst.com/posts/the-privilege-escalation-wiki-peerlyst

Windows特权升级脚本和技术:https//medium.com/@rahmatnurfauzi/windows-privilege-escalation-scripts-techniques-30fa37bd194

Windows中的特权升级:https//attack.mitre.org/tactics/TA0004/

Windows特权升级命令:http//pwnwiki.io/#!privesc / windows / index.md

资源:

https://www.peerlyst.com/posts/5-privilege-escalation-tools-chiheb-chebbi

[https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Windows%20-%20Privilege%20Escalation.md](](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology and Resources/Windows - Privilege Escalation.mdhttps://github.com/swisskyrepo/PayloadsAllTheThings/blob/master / Methodology and Resources / Windows-Privilege Escalation.md)

https://pentest.blog/windows-privilege-escalation-methods-for-pentesters/

https://backdoorshell.gitbooks.io/oscp-useful-links/content/windows-privileg-escalation.html

https://sushant747.gitbooks.io/total-oscp-guide/privilege_escalation_-__linux.html

https://dirtycow.ninja/

https://www.exploit-db.com/exploits/45010

https://github.com/xairy/kernel-exploits

https://payatu.com/guide-linux-privilege-escalation/?fbclid=IwAR1I6lHieXZBpQgx5s5zacRvLmKqV5wp2ZCBxm466fc3Ia3IjUbKQdHra88

https://chryzsh.gitbooks.io/pentestbook/privilege_escalation_-__linux.html

https://hackmag.com/security/reach-the-root/

posted @ 2020-02-21 23:43  BugMan_Sec  阅读(660)  评论(0编辑  收藏  举报