EggShell是一款基于Python编写的iOS和macOS的后渗透利用工具。它有点类似于metasploit,我们可以用它来创建payload建立侦听。此外,在反弹回的session会话也为我们提供了许多额外的功能。例如文件的上传/下载,拍照,定位,shell命令执行,权限维持,提权,密码检索等。在服务器通信方面EggShell则采用了128位AES端到端的加密,并同时能够处理多个客户端程序。这是一个概念验证工具,适用于在你自己的机器上使用。有关更多详细信息请访问:http://lucasjackson.me/eggshell 。 

创建并运行一个Payload程序

在我们本地机器上,我们选择3选项来创建一个Payload并建立本地侦听。

EggShell FreeBuf.COM

在目标机器上运行有效载荷后,我们将获取到一个回连。

EggShell FreeBuf.COM

EggShell FreeBuf.COM

拍照

Eggshell具有在iOS(frontcam前置/backcam后置摄像头)和macOS(picture)上拍照的命令和功能。

EggShell FreeBuf.COM

密码提示/root权限

通过prompt命令,我们将会看到一个密码弹出信息检索+内置提权。

EggShell FreeBuf.COM

EggShell FreeBuf.COM

通过iMessage发送短信

EggShell FreeBuf.COM

与多个会话进行交互

MultiSession使我们能够轻松的访问交互和管理多个有效会话。

EggShell FreeBuf.COM

演示

EverythingApplePro的视频展示了用于运行EggShell的iOS 9.3.3 Webkit漏洞。

EggShell FreeBuf.COM

安装

git clone https://github.com/neoneggplant/EggShell && cd EggShell
easy_install pycrypto
python eggshell.py

iOS命令:

  • sysinfo:获取系统信息
  • cd:更改目录
  • ls:列出目录内容
  • rm:删除文件
  • pwd:查看当前目录
  • download:下载文件
  • upload:上传文件
  • frontcam:开启前置摄像头拍照
  • backcam:开启后置摄像头拍照
  • mic:对麦克风录音
  • getpid:获取进程id
  • vibrate:使设备振动
  • alert:在设备上弹出警告框
  • say:让设备发声
  • locate:获取设备位置信息
  • respring:呼叫设备
  • setvol:设置媒体播放器音量
  • getvol:查看媒体播放器音量
  • isplaying:查看媒体播放器信息
  • openurl:在设备上打开URL
  • dial:在设备上拨打号码
  • getsms:下载短信数据库
  • getnotes:下载备忘录数据库
  • getcontacts:下载通讯录
  • battery:查看电池电量
  • listapps:标识符列表
  • open:打开APP
  • persistence:安装LaunchDaemon – 尝试每30秒连接一次
  • rmpersistence:卸载LaunchDaemon
  • installpro:将egghellpro安装到设备

EggShell Pro命令(iOS)

  • lock:模拟锁按钮
  • wake:将设备从睡眠状态唤醒
  • home:模拟home按钮
  • doublehome:模拟home按钮双击
  • play:播放音乐
  • pause:暂停音乐
  • next:下一曲
  • prev:上一曲
  • togglemute:以编程方式切换静音开关
  • ismuted:检查是否被静音
  • islocked:检查设备是否被锁定
  • getpasscode:记录成功的iOS 锁屏密码尝试
  • unlock:用密码解锁
  • keylog:键盘记录
  • keylogclear:清除键盘记录器数据
  • locationservice:打开或关闭位置服务

macOS命令

  • cd:更改目录
  • ls:列出目录内容
  • rm:删除文件
  • pwd:查看当前目录
  • download:下载文件
  • upload:上传文件
  • getpaste:获取剪贴板内容
  • mic:对麦克风录音
  • picture:通过iSight拍照
  • screenshot:截图
  • getfacebook:检索Facebook会话cookie
  • brightness:调整屏幕亮度
  • getvol:获取输出音量
  • setvol:设置输出音量
  • idletime:获取键盘/光标被触摸后的空闲时间
  • keyboard:将目标键盘的控制权移交至你的键盘
  • imessage:通过邮件应用发送消息
  • openurl:通过默认浏览器打开URL
  • play:播放iTunes
  • pause:暂停iTunes
  • prev:让iTunes播放上一曲目
  • next:让iTunes播放下一曲目
  • pid:获取进程id
  • prompt:提示用户输入密码
  • su:su登录
  • persistence:尝试每60秒连接一次
  • rmpersistence:终止持久连接操作

本地命令

  • lls:列出本地目录内容
  • lcd:更改本地目录
  • lpwd:查看当前的本地目录
  • lopen:打开本地目录
  • clear:清除终端

*参考来源:github,FB小编 secist 编译