1. 转储SAM文件
1.1. 转储SAM文件是黑客在受攻击的Windows系统上使用的一种技术,以获得管理员权限
1.2. 被利用的主要弱点是将口令作为LAN Manager(LM)散列存储在硬盘上
- 1.2.1. 这些口令可能用于普通用户账户以及本地管理员和域管理员凭据
1.3. 一个常用的命令行工具是HoboCopy,它可以很容易地获取硬盘上的安全账户管理器(Security Accounts Manager,SAM)文件
1.4. SAM文件非常敏感,因为它们包含经过散列处理和部分加密的用户口令
1.5. 访问SAM文件的另一种方法是使用命令提示符手动找到它,然后将其复制到易于访问的文件夹中
1.6. 一旦这些文件被转储,下一步就需要使用可以破解NTLM或LM散列的工具来破解它们
- 1.6.1. Cain&Abel工具通常在这个阶段使用,它可以破解散列并以纯文本形式给出凭据
- 1.6.2. 使用纯文本凭据,黑客只需简单地登录到高权限的账户,如本地管理员或域管理员,就可以成功提升权限
2. 对Android系统进行root操作
2.1. 出于安全原因,Android设备的功能有限
2.2. 人们可以通过对手机进行root操作,访问所有保留给特权用户(如制造商)的高级设置
2.3. 对手机进行root操作后,普通用户就有了对Android系统的超级用户权限
2.4. 这种级别的访问权限可以用来突破制造商设置的限制,将操作系统改为另一种Android系统的变体,对启动动画进行更改,并删除预装软件,以及其他许多事情
3. 使用/etc/passwd文件
3.1. 在UNIX系统中,/etc/passwd文件被用来保存账户信息
- 3.1.1. 这些信息包括登录到计算机的不同用户的用户名和口令组合
- 3.1.2. 该文件是经过严格加密的,所以正常用户通常可以访问该文件而不必担心安全问题
- 3.1.2.1. 因为即使用户可以访问它,他们也不能阅读它
- 3.1.2.2. 管理员用户可以改变账户口令或测试一些证书是否有效,但他们也不能查看这些证书
- 3.1.2.3. 有一些远程访问工具(RAT)和口令破解软件可以用来利用暴露的口令文件
3.2. 当UNIX系统失陷后,黑客可以访问/etc/passwd文件并将其转移到另一个位置
- 3.2.1. 使用诸如Crack(使用字典攻击)之类的密码破解工具查找与/etc/passwd文件中密码等效的明文密码
- 3.2.2. 由于用户的基本安全控制意识不足,一些用户的密码很容易被猜到
- 3.2.3. 字典攻击能够发现这样的密码,并将它们以明文的形式提供给黑客
- 3.2.3.1. 黑客可以使用此信息登录到具有root权限的用户账户
4. 附加窗口内存注入
4.1. 在Windows中,当创建新窗口时,会指定一个窗口类来规定窗口的外观和功能
- 4.1.1. 通常可以包括一个40字节的额外窗口内存(Extra Window Memory,EWM),它将被附加到类的每个实例的内存中
- 4.1.2. 这40个字节用于存储关于每个特定窗口的数据
- 4.1.3. EWM有一个API,用于设置/获得它的值
4.2. EWM有足够大的存储空间来存放指向窗口过程的指针,这是黑客通常会利用的方法
- 4.2.1. 可以编写共享特定进程内存的某些部分的代码,然后在EWM中放置指向非法过程的指针
- 4.2.2. 可能会让黑客访问进程的内存,或者有机会以受害应用程序提升后的权限运行
4.3. 这种权限提升方法是最难检测的,因为它所做的一切都是滥用系统功能
- 4.3.1. 检测它的唯一方式是通过监视可用于EWM注入的API调用,如GetWindowLong、SendNotifyMessage或其他可用于触发窗口过程的技术
5. 挂钩
5.1. 在基于Windows的操作系统中,进程在访问可重用的系统资源时使用API
- 5.1.1. API是作为导出函数存储在DLL中的函数
- 5.1.2. 黑客可以通过重定向对这些函数的调用来利用Windows系统
5.2. 用于在另一个进程的特权上下文中加载恶意代码的方式
- 5.2.1. 钩子过程:拦截和响应I/O事件(如击键)
- 5.2.2. 导入地址表挂钩:可以修改保存API函数的进程地址表
- 5.2.3. 内联挂钩:可以修改API函数
- 5.2.4. 代码将以更高的权限执行
5.3. 挂钩技术可能具有长期影响,因为它们可能在修改后的API函数被其他进程调用时被调用
5.4. 黑客通常通过Rootkit执行这些挂钩技术,Rootkit可以隐藏反病毒系统能够检测到的恶意软件行为
6. 计划任务
6.1. Windows有一个任务计划程序,可以在某个预定的时间段执行一些程序或脚本
6.2. 如果提供了正确的身份验证,那么任务计划程序将接受远程系统计划的任务
6.3. 在正常情况下,用户需要拥有管理权限才能进行远程执行
- 6.3.1. 黑客通过使用此功能可以在入侵计算机后的特定时间执行恶意程序或脚本
- 6.3.2. 可能会滥用计划任务的远程执行来运行特定账户上的程序
- 6.3.3. 可以使用这些凭据来计划击键捕获程序,使其在高级管理人员计算机上的某个特定时间运行
- 6.3.3.1. 将允许他们收集更有价值的登录凭据,以访问高级管理人员使用的系统
7. 新服务
7.1. 在启动过程中,Windows操作系统会启动一些执行操作系统基本功能的服务
- 7.1.1. 通常是硬盘上的可执行文件,它们的路径通常存储在注册表中
7.2. 黑客已经能够创建自己的非法服务,并将其路径放在注册表中
- 7.2.1. 为防止被发现,黑客通常会伪装服务的名称,使其与合法的Windows服务名相似
- 7.2.2. 在大多数情况下,Windows以系统权限执行这些服务
- 7.2.3. 黑客可以使用这些服务将管理权限提升为系统权限
8. 启动项
8.1. 在苹果计算机上,启动项会在启动期间执行
- 8.1.1. 它们通常有配置信息,通知macOS使用哪个执行顺序
8.2. 保存启动项的文件夹不能保证在较新版本的macOS中存在
- 8.2.1. 黑客仍然可以利用这一已被弃用的特性,因为他们可以在macOS的启动项目录中创建必要的文
- 8.2.2. 该目录是/library/startupitems,通常不受写保护
8.3. 在启动期间,操作系统将读取启动项文件夹并运行列出的启动项
- 8.3.1. 这些项将以root权限运行,从而授予黑客未经过滤的系统访问权限
9. Sudo缓存
9.1. 在Linux系统上,管理员使用sudo命令将权限授予普通用户,以便以root权限运行命令
9.2. 通常引用/var/db/sudo文件来检查最后一次sudo命令的时间戳和预期超时,以确定是否可以在不请求密码的情况下执行命令
9.3. 黑客可以利用sudo命令允许用户发出命令而无须重新输入密码的时间量,他们通常在/var/db/sudo监视每个sudo命令的时间戳
- 9.3.1. 允许他们确定时间戳是否仍在超时范围内
- 9.3.2. 在发现sudo没有超时的情况下,他们可以执行更多sudo命令,而不必重新输入密码
- 9.3.3. 这种类型的权限提升对时间敏感,而黑客可能没有时间手动运行它,因此通常会将其编码为恶意软件
- 9.3.4. 恶意软件会不断检查/var/db/sudo目录中sudo命令的时间戳
- 9.3.5. 在任何情况下,在已经执行sudo命令并且终端只要保持打开状态时,恶意软件就可以执行黑客提供的命令,而且这些命令会以root权限执行
10. 其他权限提升工具
10.1. 0xsp Mongoose v1.7
- 10.1.1. 使用0xsp Mongoose,你可以从收集信息阶段开始,直到通过0xsp Web应用程序API报告信息为止,扫描目标操作系统是否存在权限提升攻击
- 10.1.2. Privilege Escalation Enumeration Toolkit可用于Windows以及Linux(64/32)系统,而且速度很快
10.2. 0xsp Mongoose RED
- 10.2.1. 0xsp Mongoose RED版本同样是厉害的工具,用于Windows
- 10.2.2. 0xsp Mongoose RED将能够审核目标Windows操作系统的系统漏洞、错误配置和权限提升攻击,并复制网络中高级对手的战术和技术
- 10.2.3. 一旦安装并执行,该代理就可以通过使用Windows更新API(windows update api)和漏洞利用数据库定义模块(exploit database definition)帮助用户发现和检测Windows漏洞
10.3. Hot Potato
- 10.3.1. 一个权限提升工具,适用于Windows7/8/10和Server 2012/2016
- 10.3.2. 该工具利用已知的Windows问题来获得默认配置下的本地权限提升,即NTLM中继和NBS欺骗
- 10.3.3. 将一个用户从较低的级别提升到NT AUTHORITY\SYSTEM