Skip to content

Commit

Permalink
增加IFS编码
Browse files Browse the repository at this point in the history
  • Loading branch information
Ppsoft1991 committed Nov 22, 2020
1 parent 7fd405d commit e78e30e
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 11 deletions.
5 changes: 1 addition & 4 deletions runtime-exec-encoder.iml
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,10 @@
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="lib" level="project" />
<orderEntry type="library" name="Maven: me.gv7.woodpecker:woodpecker-sdk:0.1.0.beta4" level="project" />
<orderEntry type="module" module-name="woodpecker-sdk" />
</component>
</module>
11 changes: 5 additions & 6 deletions src/main/java/me/gv7/woodpecker/plugin/RuntimeExecEncoder.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
package me.gv7.woodpecker.plugin;

import me.gv7.woodpecker.plugin.payload.BashCommandEncoder;
import me.gv7.woodpecker.plugin.payload.PerlCommandEncoder;
import me.gv7.woodpecker.plugin.payload.PowershellCommandEncoder;
import me.gv7.woodpecker.plugin.payload.PythonCommandEncoder;
import me.gv7.woodpecker.plugin.payload.*;

import java.util.ArrayList;
import java.util.List;

Expand All @@ -14,13 +12,14 @@ public class RuntimeExecEncoder implements IHelperPlugin {

@Override
public void HelperPluginMain(IHelperPluginCallbacks iHelperPluginCallbacks) {
this.callbacks = iHelperPluginCallbacks;
this.pluginHelper = callbacks.getPluginHelper();
callbacks = iHelperPluginCallbacks;
pluginHelper = callbacks.getPluginHelper();
callbacks.setHelperPluginName("Runtime.exec command encoder");
callbacks.setHelperPluginVersion("0.1.1");
callbacks.setHelperPluginAutor("c0ny1@woodpecker-framework");
List<IHelper> helperList = new ArrayList<IHelper>();
helperList.add(new BashCommandEncoder());
helperList.add(new BashCommand2Encoder());
helperList.add(new PowershellCommandEncoder());
helperList.add(new PythonCommandEncoder());
helperList.add(new PerlCommandEncoder());
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package me.gv7.woodpecker.plugin.payload;

import me.gv7.woodpecker.plugin.*;
import sun.misc.BASE64Encoder;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class BashCommand2Encoder implements IHelper {
@Override
public String getHelperTabCaption() {
return "Bash IFS Encoder";
}

@Override
public IArgsUsageBinder getHelperCutomArgs() {
IArgsUsageBinder argsUsageBinder = RuntimeExecEncoder.pluginHelper.createArgsUsageBinder();
List<IArg> args = new ArrayList<IArg>();
IArg args1 = RuntimeExecEncoder.pluginHelper.createArg();
args1.setName("all");
args1.setDefaultValue("whoami");
args1.setDescription("write text");
args1.setRequired(true);
args.add(args1);
argsUsageBinder.setArgsList(args);
return argsUsageBinder;
}

@Override
public void doHelp(Map<String, Object> customArgs, IResultOutput iResultOutput) {
String cmd = (String)customArgs.get("all");
try {
cmd = "sh -c '"+cmd+"'";
String payload = new BASE64Encoder().encode(cmd.getBytes()).replaceAll("\\s+","");
String command = String.format("/bin/bash -c echo${IFS}-n${IFS}%s|base64${IFS}-d|/bin/bash",payload);
iResultOutput.infoPrintln("不能包含双引号");
iResultOutput.successPrintln("encode result:");
iResultOutput.rawPrintln(command);
iResultOutput.rawPrintln("\n");
}catch (Exception ignored){}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
public class BashCommandEncoder implements IHelper {
@Override
public String getHelperTabCaption() {
return "Bash";
return "Bash Base64 Encoder";
}

@Override
Expand Down

0 comments on commit e78e30e

Please sign in to comment.