一款很有意思的工具,记录一下windows上安装体验的过程。
环境:win7虚拟机
Github上作者介绍工具支持win、lnx、osx三种系统,经过测试发现对应系统文件格式的payload文件只能在对应系统上面生成,所以Windows系统上只能生成exe格式的payload。
• 安装
先到官网下好python2.7,安装好之后解压stitch的文件开始使用pip安装所需的module。根据文件的名称和git上的提示,先“pip install -r win_requirements.txt”试一下。结果会发现这样会有很多报错堆叠在一起。
先是会提示缺少“msvcp90.dll”,可以直接去百度下载一个扔到“c:\windows\system32”目录下面。
根据报错提示逐个解决,首先提示“PIL”这个module有问题,经过一番搜索,发现虽然“pip search PIL”是有一个”PIL” 存在的,但是似乎并不是我们要的”PIL” 。
最终解答是使用”pillow”代替。所以单独”pip install pillow”就可以了。去txt里面删掉”PIL”内容,继续往下走。
“logging”又出问题了,直接说解决办法,就是直接”pip install logging”,继续走。
此处”py2exe”有个小坑,如果直接去下载最新版的py2exe安装,到最后面一步会提示”No module named machinery”,我翻遍了百度也没找到与这个module相关的有用信息。
绝望了一阵,在google上找到了解决办法,那就是安装 0.6.9版本的”py2exe”(下载链接附在下面了),继续往下。
“pyHook”出问题,百度下载安装(下载链接附在下面),继续走。
“pywin32”单独下载安装(链接于文末),去txt删除相关内容,继续。
需要vc++ 9.0,按照链接地址下载安装就可以,go on。
Nice,经历一堆报错,至此,所有必须的module都已经安装完成,启动感受一下。
• 使用
默认监控4040端口,防火墙要给”python.exe”放行。输入”help”可以获得帮助信息,输入**”help 特定命令”**可以获得该命令的详细介绍。例如一开始让我误以为是linux当中在文件读取末尾做标识的“EOF”,其实只是exit用的…
在stitch当中主机和目标之间的通信使用的是AES加密,在生成payload的同时会生成一个AES密钥,添加到所有payload当中。因此想要访问其他stitch生成的payload,则AES密钥必须相匹配才行。
想要对payload进行跨主机或者跨系统操作时,必须使用“showkey”和“addkey”命令为新系统上的stitch添加上其他主机的密钥。不过我没做跨系统连接的尝试,从命令来看理论上应该是没毛病的。
像“ipconfig”和“ifconfig”这种命令都是通用的,下面只对一些不怎么常见的命令做个简单个人理解的解释。
EOF:同exit Addkey:添加一个新key Connect:当生成的payload为bind类型的时候,使用”connect [target] [port]“来连接
payload History:列出上线过的机器历史记录
History_remove:使用”history_remove [target]“来移除指定的历史记录
Home:返回到stitch的初始界面 Listen:使用“listen [port]”命令添加监听端口
Lsmod:在Windows系统上是罗列出所有的驱动程序
Sessions:同msf当中一样,列出当前在线主机,不过测试的时候发现主机下线后有时候会不同步 Shell:使用“shell [session]”命令获得指定session的
shell Showkey:列出当前的key
Start:和cmd当中的start一样,“start calc”就会打开程序员专用计算器
Stitchgen:创建一个基于宿主OS的史迪崽payload
下面就创建个payload测试下。
输入Stitchgen开始生成payload,首先会询问是否使用当前配置。
选择“Y”的话就直接开始生成payload了,选“N”会重新配置一遍,因为默认监听的4040端口,也为了演示的全面一点,所以我选“N”。
接下来会选择payload的连接方式是“bind”还是“reverse”以及填写连接方式对应的通信地址,我在测试的过程中发现同时给一个payload直连和反弹的通信方式最终确实是会上线的。
但是如果向一个正在以反弹方式进行通信的会话进行connect的话,会发生错误,没有深究是通信冲突还是因为我本机测试的原因。如果非要两种通信方式同时保留的话,我会选择bind和reverse各自单独创建一个payload。
后面的两个选项是让你选择是否需要email你和是否需要键盘记录功能,邮件功能使用的是gmail,自动略过(熟悉python的可以尝试修改一下,不过我觉得意义不是很大)。
再敲回车会跳回到生成payload的初始界面,此时选择“Y”的时机已到!
提示正在生成exe格式的payload,不过在Linux上测试的时候我发现提示是一样的,也会提示生成exe。
不出意外的话进度条会顺利到达%100,但是测试过程中我出现过一种比较意外的情况,进度条走到%60左右会突然冒出多行进度细节,然后最后报个“拒绝访问”一类的错误才%100。最终也没有找到原因,因为这个情况时有时无。不过不必担心,因为即使爆出细节我最终测试也是正常上线的。
询问我们是否需要用NSIS做个安装包,此处选择“N”的话直接就只生成上绿色版单文件非安装版的payload,选择“Y”的话就会调用NSIS创建安装版(安装版会写启动项服务,重启后仍然上线)。
这里有个小坑,我是使用32位win7虚拟机测试的,C盘下只有“Program Files”目录,没有“Program Files (x86)”目录,而安装NSIS时会默认安装在“Program Files”目录当中,但是stitch当中只认x86目录下的NSIS。
所以小伙伴们,动动你的奶子想一想,我们去C盘新建一个“Program Files (x86)”目录再把NSIS自定义安装到该文件夹当中就可以解决这个ZZ问题了。
当然有的时候他也它也会任性的报个错
没关系,多试几次就好了,不知道是不是我强行创建x86目录安装NSIS的原因。
Configx目录当中payloadconfig.log之外的8个exe文件就是创建好的绿色单文件版payload,而“NSIS Installers”目录当中8个exe就是对应的安装版payload。
这里有个比较奇怪的地方,同样也是没找到原因。就是绿色单文件版payload当中的chrome.exe,它的图标会时有时无,但是并不影响正常上线和上线后的功能。
• 操作
生成payload的之后就是对目标机器上线之后的功能测试了,可以说作者在github下面介绍的几个亮点功能都可以实现。
有新的机器连接时stitch这里会提示。
获得会话shell之后,输入“help”获得帮助信息
同样只对一些不怎么常见的命令做个个人理解版的解释。
Askpassword:在目标机器弹出一个很逼真的对话框,要求输入当前用户账号密码,不输入的话会不停的弹。不过有点遗憾的是即使输入错误,这个对话框仍然会关掉
Avscan、avkill:扫描和干掉杀毒软件
Chromedump:把保存于chrome浏览器当中的所有密码都dump出来
Clearev:清除目标机器系统、安全、应用事件日志
Disablexxx:分别是禁掉RDP、UAC和Windows defender功能
Displayon、off:打开和关掉屏幕
Drives:列出所有的硬盘以及简要情况
Editxxx:编辑文件的访问、创建和修改时间
Environment:列出详细的环境变量
Firewall:对防火墙状态或者规则做出修改
Freeze:冻结对方的屏幕,经过测试三键仍然可以调出任务管理器,但是也会立即冻结,很有趣
Hashdump:dump出保存在系统当中的哈希
Hide:隐藏文件或者文件夹 Hostsfile:对目标机器hosts文件进行操作
Location:根据目标机器ip进行定位,功能测试似乎无效 Lockscreen:锁屏,等同于win+L
Popup:弹个框
Pyexec:python版本的psexec,在对方系统运行python脚本,但是只能是python脚本
Scanreg:列出注册表状况
Screenshot:截取当前屏幕 Vmscan:判断当前环境是否为虚拟机
Webcamxxx:列出并使用摄像头拍照
Wifikeys:查看连接过的无线的密码
骗人的框框
可以通过网络连接状况看到各个模块间的通信情况。Install版本的上线时间会稍长,因为它运行后需要一定的时间把启动服务写入目标机器,最终也会只留下一个通信程序,和下面相同的效果。
通过沙箱我们可以看到stitch是通过cmd、powershell以及一个自带的elevate.exe对启动服务发生了强行py。
最终也是只剩下一个写在“c:\windows\syswow64\google\”目录中的“chrome.exe”在猥琐运行。
个人认为这是一款很优秀的程序,linux版本的实验顺风顺水,甚至在u2b看到国外的黑阔们“pip install -r”之后直接忽略掉关于PIL的报错,总之要比win简单得多。至于osx穷人我就没法测试了,应该和linux区别不会太大。
文笔垃圾,措辞轻浮,内容浅显,操作生疏。不足之处欢迎大师傅们指点和纠正,感激不尽。
**msvcp90.dll控件下载地址**:
http://99idc.jb51.net:81/dll/msvcp90.rar**
PIL参考**:
http://blog.csdn.net/heatdeath/article/details/69664216**
Machinery参考**:
https://blog.qiyuange.net/?p=123**
py2exe 0.6.9 下载地址**:
http://sourceforge.net/projects/py2exe/files/py2exe/0.6.9/
**pyHook下载地址**:
https://sourceforge.net/projects/pyhook/**
Pywin32下载地址**:
http://99idc.jb51.net:81/201601/tools/pywin32\_2.7(jb51.net).rar
**NSIS下载地址**:
http://nsis.sourceforge.net/Download**
参考文章**:
http://www.freebuf.com/sectool/129104.html
*封面图片自Google图片采集,版权归misucell.com所有。其他图片均为原创。
*未经授权请勿转载。
*文章写于2017年12月,现在的bypass效果请自测。