main界面命令

命令

s/show

用于显示历史连接的webshell。你可以在稍后使用load命令根据序号连接对应的webshell或rm命令根据序号删除某个历史。

se/show_encoders

用于显示可用的编码器:

  • base64

  • rot13

  • hex

  • doughnuts (使用doughnuts生成的webshell专用)

generate

用于生成Doughnuts专用的webshell。格式为generate {文件路径} {连接方式} {密码} {盐值} {webshell类型}。在生成之后根据提示使用Doughnuts进行连接。

l / load

加载历史webshell。可以直接使用load命令,会显示所有历史webshell并要求输入序号进行连接,或直接使用load {历史webshell序号}连接对应的webshell。

c / connect

连接一个webshell。格式为connect {webshell地址} {连接方式} {密码} {编码器或额外参数,可选}。在连接过后会自动在Doughnuts目录下的webshell.log保存记录,在以后可以使用show命令进行查看,使用load命令再次连接。

doughnuts目前支持的连接方式:

  • GET

  • POST

  • COOKIE

  • HEADER

doughnuts目前支持的编码器:

  • base64

  • rot13

  • hex

  • doughnuts (使用doughnuts生成的webshell专用)

doughnuts支持的额外参数(形如data:a=123):

由于windows原因,在windows命令行连接下不支持&符号连接参数。

尽量将额外参数包裹引号进行传递,且逐一拆分。

好的习惯 "data:a=123" "data:b=456"

坏的习惯 "data:a=123&b=456" (在windows命令行下会连接失败)

  • params(GET参数)

  • data(POST参数)

  • cookies

  • headers

  • .....(更多!详情请了解requests库允许的请求参数!)

一些例子:

  1. 普通webshell:

    • 最平凡的webshell:

      那么只需要运行Doughnuts.py,并输入以下命令,即可成功连接至webshell:

    • 带解码的webshell:

      那么只需要运行Doughnuts.py,并输入以下命令,即可成功连接至webshell:

    • 需要额外参数与解码的webshell:

      那么只需要运行Doughnuts.py,并输入以下命令,即可成功连接至webshell:

  2. 生成webshell:

    1. 在执行python3 -m doughnuts.install之后执行doughnuts generate a.php POST pass salt 1在当前目录下生成Pudding类型的webshell:a.php

    2. 上传a.php,根据提示执行 doughnuts connect {木马url} POST pass doughnuts-salt连接至webshell

check

用于测试历史记录中的webshell是否存活。格式为check {超时时间}

rm / remove

删除历史webshell。可以直接使用rm命令,会显示所有历史webshell并要求输入序号进行删除,或直接使用remove {历史webshell序号}删除对应的webshell。

最后更新于

这有帮助吗?