关于
EggShell 是一个基于 Python 编写的后利用监控工具。它能在你和目标机器之间提供一个具备额外功能的命令行会话。EggShell 赋予你上传/下载文件、Tab 补全、拍照、位置追踪、执行 Shell 命令、持久化、提权、密码获取等强大而便捷的能力。该项目是一个概念验证,旨在用于你自己拥有的机器上。
详细信息和操作方法请访问 http://lucasjackson.io/eggshell
在 Twitter 上关注我:@neoneggplant
3.0.0 版本新特性
- 使用 SSL 实现更安全的套接字连接
- Linux 支持
- Tab 补全
- 改进了会话处理的整体结构和效率
- 原生 iOS Python 支持(64 位设备)
开始使用
macOS/Linux 安装
git clone https://github.com/neoneggplant/eggshell
cd eggshell
python eggshell.py
iOS(越狱)
添加 Cydia 源:http://lucasjackson.io/repo
安装 EggShell 3
使用任意移动终端应用程序并运行命令 eggshell
创建 Payload
EggShell 的 payload 在目标机器上执行。该 payload 首先发送指令以获取并返回设备详细信息给我们的服务器,然后选择合适的可执行文件来建立安全的远程控制会话。
bash
从 payload 菜单中选择 bash 将生成一个单行命令,在目标机器上执行后即可建立 eggshell 会话。
teensy macOS(USB 注入)
Teensy 是一种 USB 开发板,可使用 Arduino IDE 进行编程。它能极快地模拟 USB 键盘输入,并可在几秒钟内注入 EggShell payload。
选择 teensy 将生成一个针对 Teensy 板的基于 Arduino 的 payload。
上传到 Teensy 后,我们可以将设备插入 macOS USB 端口。一旦连接到计算机,它将自动模拟执行 payload 所需的按键操作。
与会话交互
建立会话后,我们可以通过 EggShell 命令行界面在该设备上执行命令。
输入 "help" 可显示所有可用命令。
拍照
iOS 和 macOS 的 payload 都具备拍照功能。picture 命令允许你在 macOS 上通过 iSight 摄像头拍照,在 iOS 上可通过前置或后置摄像头拍照。
Tab 补全
与大多数命令行界面类似,EggShell 支持 Tab 补全。当你开始输入目录或文件路径时,可以使用 Tab 键补全剩余路径。
多会话处理器
多会话处理器选项允许我们处理多个会话。我们可以选择与不同设备交互,同时在后台监听新连接。
与会话界面类似,输入 "help" 可显示多会话处理器命令。
特色报道
在 EverythingApplePro 的视频中介绍了利用 iOS 9.3.3 Webkit 漏洞运行 EggShell 的方法。

特别感谢
- Linus Yang / Ryley Angus 提供 iOS Python 包
- AlessandroZ 提供 LaZagne
免责声明
使用 EggShell 即表示您同意存储库中包含的 GNU 通用公共许可证 v2.0。更多详情请访问 http://www.gnu.org/licenses/gpl-2.0.html。在未事先获得双方同意的情况下,使用 EggShell 攻击目标属于非法行为。最终用户有责任遵守所有适用的地方、州和联邦法律。开发者不承担任何责任,也不对因使用本程序而导致的任何误用或损害负责。
命令
macOS
- brightness : 调整屏幕亮度
- cd : 更改目录
- download : 下载文件
- getfacebook : 获取 Facebook 会话 Cookie
- getpaste : 获取剪贴板内容
- getvol : 获取扬声器输出音量
- idletime : 获取自键盘/光标上次操作以来的空闲时间
- imessage : 通过消息应用发送信息
- itunes : iTunes 控制器
- keyboard : 你的键盘 -> 目标的键盘
- lazagne : Firefox 密码检索 | (https://github.com/AlessandroZ/LaZagne/wiki)
- ls : 列出目录内容
- mic : 录音
- persistence : 尝试在关闭后重新建立连接
- picture : 通过 iSight 拍照
- pid : 获取进程 ID
- prompt : 提示用户输入密码
- screenshot : 截屏
- setvol : 设置输出音量
- sleep : 使设备进入睡眠模式
- su : su 登录
- suspend : 挂起当前会话(返回登录屏幕)
- upload : 上传文件
iOS
- alert : 在设备上显示弹窗
- battery : 获取电池电量
- bundleids : 列出 Bundle 标识符
- cd : 更改目录
- dhome : 模拟双击 Home 键
- dial : 拨打电话号码
- download : 下载文件
- getcontacts : 下载通讯录
- getnotes : 下载备忘录
- getpasscode : 获取设备密码
- getsms : 下载短信
- getvol : 获取音量
- home : 模拟按下 Home 键
- installpro : 安装 Substrate 命令
- ipod : 控制音乐播放器
- islocked : 检查设备是否锁定
- lastapp : 获取最近打开的应用程序
- locate : 获取设备位置坐标
- locationservice: 切换定位服务
- lock : 模拟按下锁屏键
- ls : 列出目录内容
- mic : 录音
- mute : 更新和查看静音状态
- open : 打开应用
- openurl : 在设备上打开 URL
- persistence : 尝试在关闭后重新建立连接
- picture : 通过前置或后置摄像头拍照
- pid : 获取进程 ID
- respring : 重启 SpringBoard
- safemode : 将设备置于安全模式
- say : 文本转语音
- setvol : 设置设备音量
- sysinfo : 查看系统信息
- upload : 上传文件
- vibrate : 使设备振动
Linux
- cd : 更改目录
- download : 下载文件
- ls : 列出目录内容
- pid : 获取进程 ID
- pwd : 显示当前目录
- upload : 上传文件