├── 3g ├── 3g-keepalive.sh └── 3g.sh ├── README.md ├── advanced ├── changePass ├── ping.php └── traceroute.php ├── config ├── resetButtonStatus ├── restartuhttpd.php ├── spoofhost ├── spoofhost.bak └── wpsScript.sh ├── dnsspoof ├── dnsspoof.sh ├── startdnsspoof.php └── stopdnsspoof.php ├── favicon.ico ├── includes ├── ajax.js ├── fwversion ├── jquery.min.js ├── languages │ ├── english-2.8.0.php │ └── language ├── logtail.js ├── logtail.php ├── moduleNav ├── navbar.php ├── styles.css └── upgrade.gif ├── index.php ├── infusions ├── dnsspoof │ ├── autostart.sh │ ├── css │ │ ├── dnsspoof.css │ │ └── firmware.css │ ├── dnsspoof.php │ ├── dnsspoof_actions.php │ ├── dnsspoof_conf.php │ ├── dnsspoof_data.php │ ├── dnsspoof_vars.php │ ├── fake │ │ ├── ncsi.txt │ │ └── success.html │ └── js │ │ ├── dnsspoof.js │ │ └── jquery.idTabs.min.js ├── ettercap │ ├── css │ │ ├── ettercap.css │ │ └── firmware.css │ ├── ettercap.php │ ├── ettercap_actions.php │ ├── ettercap_data.php │ ├── ettercap_filters.php │ ├── ettercap_vars.php │ └── js │ │ ├── ettercap.js │ │ └── jquery.idTabs.min.js ├── moduleList ├── nmap │ ├── css │ │ ├── firmware.css │ │ └── nmap.css │ ├── js │ │ ├── jquery.idTabs.min.js │ │ └── nmap.js │ ├── module.conf │ ├── nmap.php │ ├── nmap.sh │ ├── nmap_actions.php │ ├── nmap_data.php │ └── nmap_vars.php ├── randomroll │ ├── autostart.sh │ ├── files │ │ ├── index.php │ │ ├── index.php.bak │ │ ├── spoofhost │ │ └── spoofhost.bak │ ├── install.sh │ ├── randomroll.php │ ├── randomroll │ │ ├── How to create your own roll.txt │ │ ├── afro │ │ │ ├── ac.mp3 │ │ │ ├── afrocircus.gif │ │ │ ├── afrocircus.swf │ │ │ ├── creator.ini │ │ │ ├── index.html │ │ │ ├── index2.html │ │ │ └── thumbnail.gif │ │ ├── bsod │ │ │ ├── annoying.mp3 │ │ │ ├── bsod.css │ │ │ ├── bsodknipper.gif │ │ │ ├── creator.ini │ │ │ ├── index.html │ │ │ ├── index2.html │ │ │ ├── knipperbsod.gif │ │ │ └── thumbnail.jpg │ │ ├── log.php │ │ ├── nyan │ │ │ ├── NYAN.mp3 │ │ │ ├── creator.ini │ │ │ ├── index.html │ │ │ ├── index2.html │ │ │ ├── nyan_files │ │ │ │ ├── count.json │ │ │ │ ├── ga.js │ │ │ │ ├── jquery-1.5.2.min.js │ │ │ │ ├── nyancat.gif │ │ │ │ ├── screen.css │ │ │ │ ├── soundmanager2-nodebug-jsmin.js │ │ │ │ ├── w3OwVcZc2TW.js │ │ │ │ └── widgets.js │ │ │ ├── nyanlooped.mp3 │ │ │ └── thumbnail.gif │ │ ├── pbj │ │ │ ├── How to create your own roll.txt │ │ │ ├── PBJ.gif │ │ │ ├── PBJ.mp3 │ │ │ ├── creator.ini │ │ │ ├── index.html │ │ │ ├── index2.html │ │ │ └── thumbnail.gif │ │ ├── rainbow-chicken │ │ │ ├── creator.ini │ │ │ ├── index.html │ │ │ ├── index2.html │ │ │ ├── rainbow-chicken-bk.png │ │ │ ├── rainbow-chicken-man.swf │ │ │ └── thumbnail.gif │ │ ├── rickroll │ │ │ ├── NGGUP.mp3 │ │ │ ├── NGGUP.wav │ │ │ ├── creator.ini │ │ │ ├── index.html │ │ │ ├── index2.html │ │ │ └── thumbnail.jpg │ │ ├── trap │ │ │ ├── creator.ini │ │ │ ├── index.html │ │ │ ├── index2.html │ │ │ ├── index3.html │ │ │ ├── rickrolled.gif │ │ │ └── thumbnail.gif │ │ ├── trololo │ │ │ ├── creator.ini │ │ │ ├── index.html │ │ │ ├── index2.html │ │ │ ├── thumbnail.jpg │ │ │ ├── trololo.gif │ │ │ ├── trololo.mp3 │ │ │ └── trololo.swf │ │ └── tubes │ │ │ ├── SOT.mp3 │ │ │ ├── creator.ini │ │ │ ├── flash.gif │ │ │ ├── index.html │ │ │ ├── index2.html │ │ │ ├── ted.jpg │ │ │ └── thumbnail.jpg │ ├── revert.sh │ └── setup-log.sh ├── sitesurvey │ ├── css │ │ ├── firmware.css │ │ └── site_survey.css │ ├── iwlist_parser.php │ ├── js │ │ ├── jquery.idTabs.min.js │ │ └── site_survey.js │ ├── site_survey.conf │ ├── site_survey.php │ ├── site_survey_actions.php │ ├── site_survey_attacks.php │ ├── site_survey_conf.php │ ├── site_survey_data.php │ ├── site_survey_interfaces.php │ └── site_survey_vars.php ├── sslstrip │ ├── autostart.sh │ ├── css │ │ ├── firmware.css │ │ └── sslstrip.css │ ├── js │ │ ├── jquery.base64.min.js │ │ ├── jquery.idTabs.min.js │ │ └── sslstrip.js │ ├── sslstrip.conf │ ├── sslstrip.php │ ├── sslstrip_actions.php │ ├── sslstrip_conf.php │ ├── sslstrip_data.php │ └── sslstrip_vars.php ├── status │ ├── css │ │ ├── firmware.css │ │ └── status.css │ ├── execute.php │ ├── fetchcpu.php │ ├── fetchif.php │ ├── graph.php │ ├── js │ │ ├── jquery.idTabs.min.js │ │ ├── lang_pack │ │ │ ├── english.js │ │ │ └── language.js │ │ └── status.js │ ├── status.php │ ├── status_actions.php │ ├── status_data.php │ ├── status_functions.php │ ├── status_vars.php │ └── svg │ │ ├── graph_cpu.svg │ │ └── graph_if.svg ├── tcpdump │ ├── css │ │ ├── firmware.css │ │ └── tcpdump.css │ ├── js │ │ ├── jquery.idTabs.min.js │ │ └── tcpdump.js │ ├── tcpdump.php │ ├── tcpdump_actions.php │ ├── tcpdump_data.php │ └── tcpdump_vars.php └── urlsnarf │ ├── autostart.sh │ ├── css │ ├── firmware.css │ └── urlsnarf.css │ ├── js │ ├── jquery.base64.min.js │ ├── jquery.idTabs.min.js │ └── urlsnarf.js │ ├── urlsnarf.conf │ ├── urlsnarf.php │ ├── urlsnarf.run │ ├── urlsnarf.sh │ ├── urlsnarf_actions.php │ ├── urlsnarf_conf.php │ ├── urlsnarf_data.php │ └── urlsnarf_vars.php ├── karma ├── autoKarmaStart.php ├── autoKarmaStop.php ├── changeBW.php ├── karmaclients.sh ├── karmaclients.sh.old ├── startkarma.php ├── startkarma.sh └── stopkarma.php ├── logs ├── associations.log ├── dnsspoof.log ├── ngrep-clean.log ├── ngrep.log ├── phish.log ├── urlsnarf-clean.log └── urlsnarf.log ├── modules ├── installer.php └── installer.sh ├── pages ├── 3g.php ├── about.php ├── advanced.php ├── config.php ├── jobs.php ├── logs.php ├── modules.php ├── resources.php ├── scripts.php ├── ssh.php ├── status.php ├── upgrade.php └── usb.php ├── scripts ├── cleanup.sh └── user.sh ├── ssh ├── ssh-connect.sh ├── ssh-keepalive.sh └── workaround-known_hosts.sh ├── stadump ├── upgrade ├── checkUSB.php ├── doOTA.php ├── doOTA.sh ├── doUpgrade.php ├── otaStatus.php └── upgradeStatus.php ├── urlsnarf ├── starturlsnarf.php ├── stopurlsnarf.php ├── update-urlsnarf.sh └── urlsnarf.sh ├── wait.php └── wifi └── wlan.php /3g/3g-keepalive.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # -------------------------------------------------------------- 3 | # Check if 3G / WAN connection is online and bring it up if not. 4 | # -------------------------------------------------------------- 5 | 6 | SERVER="8.8.8.8" # This is Google's DNS server - if it's down we've got bigger problems 7 | logger "3G: Keep-Alive Script Executed" 8 | 9 | if ! ( ifconfig 3g-wan2); then 10 | logger "3G: Interface 3g-wan2 seems down. Attempting 3g connect script again" 11 | /pineapple/3g/3g.sh 12 | else 13 | logger "3G: Interface 3g-wan2 seems up" 14 | 15 | if ! ( ping -q -c 1 -W 10 $SERVER > /dev/null || ping -q -c 1 -W 10 $SERVER > /dev/null || ping -q -c 1 -W 10 $SERVER > /dev/null ); then 16 | logger "3G: Interface 3g-wan2 up however Internet connection seemed to have been down. Hello, IT. Is the modem activated? Have you tried turning it off and on again?" 17 | logger "3G: Attempting ifup wan2. Hopefully that solves the problem." 18 | ifup wan2 19 | 20 | else 21 | logger "3G: Interface 3g-wan2 up and Internet Connection seems to be up. woot" 22 | fi 23 | fi 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

Pineapple Web-Interface

2 | Everyone should be aware of what the WiFi Pineapple is, if not please visit the following URLs: 3 | 7 |

This Project

8 | The Pineapple's originally cost approximately $200+(USD) recently the price has dropped to a more affordable $100(USD). 9 | This is Pentura's take on forking the project to build an even cheaper clone, for University Undergraduates / Researchers with a limited budget. 10 | With a maximum target of $50(USD), we set up to build an alternative model. 11 | 12 | Our Solution: 13 | 17 |

TPLink Pineapple Mods

18 | Additional file ouside of the web-interface can be found at: https://github.com/PenturaLabs/Pineapple-Confs. 19 | 20 | This repository contains the forked web-interface, originally from Sebkinne. 21 | -------------------------------------------------------------------------------- /advanced/changePass: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | empty -f -i input.fifo -o output.fifo -p empty.pid passwd 3 | empty -w -i output.fifo -o input.fifo password: "$1\n" 4 | empty -w -i output.fifo -o input.fifo password: "$1\n" 5 | -------------------------------------------------------------------------------- /advanced/ping.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | Pineapple Control Center 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
12 | 
13 | 
23 | 
24 | 
25 |
26 |
27 | 
28 | 
29 | 
30 | 
31 |                     \               
32 |                   \  \          
33 |                 \  \  \              
34 | <,  .v ,  // ) ) )  )  )                  
35 |  \\; \// //     /  /  /                          
36 |   ;\\|||//;       /  /
37 |  ,'<\/><\/`         /                    
38 | ,.`X/\><\\>`                      
39 | ;>/>><\\><\/`                        
40 | |<\\>>X/<>/\|
41 | `<\/><\/><\\;                            
42 |  '/\<>/\<>/'                       
43 |    `<\/><;`wifi_pineapple
44 | 
45 | 
46 |
47 | 48 | 49 | -------------------------------------------------------------------------------- /advanced/traceroute.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | Pineapple Control Center 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
12 | 
13 | 
23 | 
24 | 
25 |
26 |
27 | 
28 | 
29 | 
30 | 
31 |                     \               
32 |                   \  \          
33 |                 \  \  \              
34 | <,  .v ,  // ) ) )  )  )                  
35 |  \\; \// //     /  /  /                          
36 |   ;\\|||//;       /  /
37 |  ,'<\/><\/`         /                    
38 | ,.`X/\><\\>`                      
39 | ;>/>><\\><\/`                        
40 | |<\\>>X/<>/\|
41 | `<\/><\/><\\;                            
42 |  '/\<>/\<>/'                       
43 |    `<\/><;`wifi_pineapple
44 | 
45 | 
46 |
47 | 48 | 49 | -------------------------------------------------------------------------------- /config/resetButtonStatus: -------------------------------------------------------------------------------- 1 | enabled 2 | -------------------------------------------------------------------------------- /config/restartuhttpd.php: -------------------------------------------------------------------------------- 1 | 9 | 10 | -------------------------------------------------------------------------------- /config/spoofhost: -------------------------------------------------------------------------------- 1 | 172.16.42.1 * 2 | -------------------------------------------------------------------------------- /config/spoofhost.bak: -------------------------------------------------------------------------------- 1 | 172.16.42.1 example.com 2 | -------------------------------------------------------------------------------- /config/wpsScript.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | #Script is executed when WPS button 3 | #is pressed for 2-4 seconds. 4 | -------------------------------------------------------------------------------- /dnsspoof/dnsspoof.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | dnsspoof -i br-lan -f /pineapple/config/spoofhost > /dev/null 2>/pineapple/logs/dnsspoof.log 3 | -------------------------------------------------------------------------------- /dnsspoof/startdnsspoof.php: -------------------------------------------------------------------------------- 1 | /pineapple/logs/dnsspoof.log"); 3 | exec ("echo /pineapple/dnsspoof/dnsspoof.sh | at now"); 4 | ?> 5 | 6 | 7 |
 8 | 
and having cake"; 10 | ?> 11 |
12 | -------------------------------------------------------------------------------- /dnsspoof/stopdnsspoof.php: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 |
 8 | 
11 | 
12 | -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InteliSecureLabs/web-interface/6bbefb526d8180d93309bc02fba4ba3a9407f75b/favicon.ico -------------------------------------------------------------------------------- /includes/ajax.js: -------------------------------------------------------------------------------- 1 | function createRequest() { 2 | var request = null; 3 | try { 4 | request = new XMLHttpRequest(); 5 | } catch (trymicrosoft) { 6 | try { 7 | request = new ActiveXObject("Msxml2.XMLHTTP"); 8 | } catch (othermicrosoft) { 9 | try { 10 | request = new ActiveXObject("Microsoft.XMLHTTP"); 11 | } catch (failed) { 12 | request = null; 13 | } 14 | } 15 | } 16 | 17 | if (request == null) { 18 | alert("Error creating request object!"); 19 | } else { 20 | return request; 21 | } 22 | } 23 | 24 | var request1 = createRequest(); 25 | -------------------------------------------------------------------------------- /includes/fwversion: -------------------------------------------------------------------------------- 1 | 2.8.0 2 | -------------------------------------------------------------------------------- /includes/languages/language: -------------------------------------------------------------------------------- 1 | english 2 | -------------------------------------------------------------------------------- /includes/logtail.js: -------------------------------------------------------------------------------- 1 | /* an ajax log file tailer / viewer 2 | copyright 2007 john minnihan. 3 | 4 | http://freepository.com 5 | 6 | Released under these terms 7 | 1. This script, associated functions and HTML code ("the code") may be used by you ("the recipient") for any purpose. 8 | 2. This code may be modified in any way deemed useful by the recipient. 9 | 3. This code may be used in derivative works of any kind, anywhere, by the recipient. 10 | 4. Your use of the code indicates your acceptance of these terms. 11 | 5. This notice must be kept intact with any use of the code to provide attribution. 12 | */ 13 | 14 | function getLog(timer) { 15 | var url = "includes/logtail.php"; 16 | request1.open("GET", url, true); 17 | request1.onreadystatechange = updatePage; 18 | request1.send(null); 19 | startTail(timer); 20 | } 21 | 22 | function startTail(timer) { 23 | if (timer == "stop") { 24 | stopTail(); 25 | } else { 26 | t= setTimeout("getLog()",20000); 27 | } 28 | } 29 | 30 | function stopTail() { 31 | clearTimeout(t); 32 | var pause = "Karma log paused. Click Start to resume.\n"; 33 | logDiv = document.getElementById("log"); 34 | var newNode=document.createTextNode(pause); 35 | logDiv.replaceChild(newNode,logDiv.childNodes[0]); 36 | } 37 | 38 | function updatePage() { 39 | if (request1.readyState == 4) { 40 | if (request1.status == 200) { 41 | var currentLogValue = request1.responseText.split("\n"); 42 | eval(currentLogValue); 43 | logDiv = document.getElementById("log"); 44 | var logLine = ''; 45 | for (i=0; i < currentLogValue.length - 1; i++) { 46 | logLine += currentLogValue[i] + "\n"; 47 | } 48 | logDiv.innerHTML=logLine; 49 | } 50 | } 51 | } 52 | 53 | -------------------------------------------------------------------------------- /includes/logtail.php: -------------------------------------------------------------------------------- 1 | &1", $output); 4 | foreach($output as $outputline) { 5 | $outputline = htmlspecialchars($outputline); 6 | echo ("$outputline\n"); 7 | } 8 | ?> 9 | -------------------------------------------------------------------------------- /includes/moduleNav: -------------------------------------------------------------------------------- 1 | nmap 2 | urlsnarf 3 | ettercap 4 | tcpdump 5 | sslstrip 6 | status 7 | sitesurvey 8 | randomroll 9 | dnsspoof 10 | -------------------------------------------------------------------------------- /includes/navbar.php: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 41 | -------------------------------------------------------------------------------- /includes/styles.css: -------------------------------------------------------------------------------- 1 | .navbar { 2 | top:10px; 3 | min-width:80%; 4 | background:green; 5 | padding-left: 5px; 6 | padding-right: 5px; 7 | padding-top: 3px; 8 | padding-bottom: 3px; 9 | border-top-left-radius: 10px 10px; 10 | border-top-right-radius: 10px 10px; 11 | border-bottom-left-radius: 10px 10px; 12 | border-bottom-right-radius: 10px 10px; 13 | text-align:center; 14 | color:black; 15 | } 16 | 17 | .content { 18 | font-family: monospace; 19 | min-width: 700px; 20 | max-width: 700px; 21 | text-align:center; 22 | margin: 0 auto; 23 | } 24 | 25 | .contentTitle { 26 | text-align:left; 27 | padding-left: 10px; 28 | padding-top: 2px; 29 | padding-bottom: 2px; 30 | border-top-left-radius: 10px 10px; 31 | border-top-right-radius: 10px 10px; 32 | background:green; 33 | font-weight:bold; 34 | font-size:15; 35 | color: white; 36 | } 37 | 38 | .contentContent { 39 | text-align:left; 40 | padding-left: 10px; 41 | padding-right: 10px; 42 | padding-top: 5px; 43 | padding-bottom: 5px; 44 | border-bottom-left-radius: 10px 10px; 45 | border-bottom-right-radius: 10px 10px; 46 | background:black; 47 | min-height: 40px; 48 | color:white; 49 | border-color: green; 50 | border-style: solid; 51 | border-width: 1px 52 | } 53 | 54 | .sidePanelLeft { 55 | position:absolute; 56 | top:50px; 57 | text-align:left; 58 | min-width:300px; 59 | font-family: monospace; 60 | } 61 | 62 | .sidePanelRight { 63 | position:absolute; 64 | right:1%; 65 | top:50px; 66 | text-align:left; 67 | min-width:300px; 68 | font-family: monospace; 69 | } 70 | 71 | 72 | .sidePanelTitle { 73 | padding-left: 10px; 74 | padding-top: 2px; 75 | padding-bottom: 2px; 76 | border-top-left-radius: 10px 10px; 77 | border-top-right-radius: 10px 10px; 78 | background:green; 79 | font-weight:bold; 80 | font-size:15; 81 | color:white; 82 | 83 | } 84 | 85 | .sidePanelContent { 86 | padding-left: 10px; 87 | padding-right: 10px; 88 | padding-top: 5px; 89 | padding-bottom: 5px; 90 | background:black; 91 | border-bottom-left-radius: 10px 10px; 92 | border-bottom-right-radius: 10px 10px; 93 | min-height: 40px; 94 | color:white; 95 | border-color: green; 96 | border-style: solid; 97 | border-width: 1px 98 | } 99 | .moduleTitle { 100 | padding-left: 10px; 101 | padding-top: 2px; 102 | padding-bottom: 2px; 103 | border-top-left-radius: 10px 10px; 104 | border-top-right-radius: 10px 10px; 105 | background:green; 106 | font-weight:bold; 107 | font-size:15; 108 | color: white; 109 | } 110 | 111 | .moduleContent { 112 | padding-left: 10px; 113 | padding-right: 10px; 114 | padding-top: 5px; 115 | padding-bottom: 5px; 116 | border-bottom-left-radius: 10px 10px; 117 | border-bottom-right-radius: 10px 10px; 118 | background:black; 119 | min-height: 40px; 120 | color:white; 121 | border-color: green; 122 | border-style: solid; 123 | border-width: 1px 124 | } 125 | 126 | .modules { 127 | position:absolute; 128 | right: 20%; 129 | left: 20%; 130 | font-family: monospace; 131 | } 132 | 133 | .moduleContent td { 134 | border-width: 15px; 135 | border-spacing: 20px; 136 | border-style: solid; 137 | border-color: black; 138 | border-collapse: collapse; 139 | color: white; 140 | } 141 | 142 | body { 143 | font-family: monospace; 144 | color:white; 145 | background:black; 146 | text-align:center; 147 | } 148 | 149 | a { 150 | color:white; 151 | } 152 | 153 | input[type=text], input[type=password] { 154 | font-family:courier; 155 | border: 1px; 156 | background-color:black; 157 | color:white; 158 | border-style:dotted; 159 | } 160 | 161 | pre { 162 | white-space: pre-wrap; /* css-3 */ 163 | white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ 164 | white-space: -pre-wrap; /* Opera 4-6 */ 165 | white-space: -o-pre-wrap; /* Opera 7 */ 166 | word-wrap: break-word; /* Internet Explorer 5.5+ */ 167 | } 168 | -------------------------------------------------------------------------------- /includes/upgrade.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InteliSecureLabs/web-interface/6bbefb526d8180d93309bc02fba4ba3a9407f75b/includes/upgrade.gif -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | Pineapple Control Center 4 | 5 | 6 | 7 | 8 | 9 | 10 | 13 |

14 | 56 | 57 | -------------------------------------------------------------------------------- /infusions/dnsspoof/autostart.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | MYPATH="$(dirname $0)/" 4 | MYTIME=`date +%s` 5 | 6 | dnsspoof -i br-lan -f /pineapple/config/spoofhost > /dev/null 2> ${MYPATH}log/output_${MYTIME}.log & -------------------------------------------------------------------------------- /infusions/dnsspoof/css/dnsspoof.css: -------------------------------------------------------------------------------- 1 | * { 2 | font-family: courier; 3 | font-size: 13px; 4 | } 5 | 6 | #version { 7 | text-align: right; 8 | margin: 5px 10px -12px; 9 | } 10 | 11 | select { 12 | background-color: black; 13 | border-style: none; 14 | color: white; 15 | } 16 | 17 | input { 18 | font-family: courier; 19 | font-weight: bold; 20 | background-color: black; 21 | color: gray; 22 | border-style: dotted; 23 | } 24 | 25 | textarea { 26 | background-color: black; 27 | color: white; 28 | border-style: dashed; 29 | height: 250px; 30 | width: 100%; 31 | } 32 | 33 | .grid { 34 | padding: 0; 35 | border-spacing: 1px; 36 | border-collapse: separate; 37 | color: black; 38 | } 39 | .grid td { 40 | padding: 2px; 41 | margin: 0px; 42 | color: black; 43 | } 44 | 45 | .tab ul { 46 | margin-left: -40px; 47 | } 48 | .tab li { 49 | list-style: none; 50 | float: left; 51 | } 52 | .tab ul a { 53 | display: block; 54 | padding: 6px 10px; 55 | text-decoration: none!important; 56 | margin: 1px; 57 | margin-left: 0; 58 | color: #FFF; 59 | background: green; 60 | } 61 | .tab ul a:hover { 62 | color: #FFF; 63 | background: #111; 64 | } 65 | .tab ul a.selected { 66 | margin-bottom: 0; 67 | color: #000; 68 | background: snow; 69 | border-bottom: 1px solid snow; 70 | cursor: default; 71 | } 72 | .tab div { 73 | padding: 10px 5px; 74 | clear: left; 75 | background: snow; 76 | width: 80%; 77 | color: black; 78 | } 79 | .tab div a { 80 | color: #000; 81 | font-weight: bold; 82 | } 83 | 84 | .navbar { 85 | top: 10px; 86 | min-width: 100%; 87 | background: green; 88 | border-top-left-radius: 10px 10px; 89 | border-top-right-radius: 10px 10px; 90 | border-bottom-left-radius: 10px 10px; 91 | border-bottom-right-radius: 10px 10px; 92 | text-align: center; 93 | color: black; 94 | } -------------------------------------------------------------------------------- /infusions/dnsspoof/css/firmware.css: -------------------------------------------------------------------------------- 1 | 2 | .navbar { 3 | top: 10px; 4 | min-width: 80%; 5 | background: green; 6 | padding-left: 5px; 7 | padding-right: 5px; 8 | padding-top: 3px; 9 | padding-bottom: 3px; 10 | border-top-left-radius: 10px 10px; 11 | border-top-right-radius: 10px 10px; 12 | border-bottom-left-radius: 10px 10px; 13 | border-bottom-right-radius: 10px 10px; 14 | text-align: center; 15 | color: black; 16 | } 17 | 18 | .sidePanelLeft { 19 | margin-top: 15px; 20 | margin-bottom: 15px; 21 | text-align: left; 22 | min-width: 450px; 23 | max-width: 500px; 24 | font-family: monospace; 25 | } 26 | 27 | .sidePanelTitle { 28 | padding-left: 10px; 29 | padding-top: 2px; 30 | padding-bottom: 2px; 31 | border-top-left-radius: 10px 10px; 32 | border-top-right-radius: 10px 10px; 33 | background: green; 34 | font-weight: bold; 35 | font-size: 15; 36 | color: white; 37 | } 38 | 39 | .sidePanelContent { 40 | padding-left: 10px; 41 | padding-right: 10px; 42 | padding-top: 5px; 43 | padding-bottom: 5px; 44 | background: black; 45 | border-bottom-left-radius: 10px 10px; 46 | border-bottom-right-radius: 10px 10px; 47 | min-height: 40px; 48 | color: white; 49 | border-color: green; 50 | border-style: solid; 51 | border-width: 1px 52 | } 53 | -------------------------------------------------------------------------------- /infusions/dnsspoof/dnsspoof.php: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | Pineapple Control Center - <?php echo $module_name." [v".$module_version."]"; ?> 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 25 | 26 | 27 | 28 | 29 |

v

30 | 31 |
32 |
33 |
34 | installed
"; 39 | } 40 | else 41 | { 42 | echo "dnsspoof"; 43 | echo " not installed
"; 44 | } 45 | 46 | if ($is_dnsspoof_running) 47 | { 48 | echo "dnsspoof enabled"; 49 | echo " | Stop
"; 50 | } 51 | else 52 | { 53 | echo "dnsspoof disabled"; 54 | echo " | Start
"; 55 | } 56 | 57 | if ($is_dnsspoof_onboot) 58 | { 59 | echo "Autostart enabled"; 60 | echo " | Disable
"; 61 | } 62 | else 63 | { 64 | echo "Autostart disabled"; 65 | echo " | Enable
"; 66 | } 67 | 68 | if($fake_files_installed) 69 | { 70 | echo "Fake captive portal files installed"; 71 | echo " | Uninstall
"; 72 | } 73 | else 74 | { 75 | echo "Fake captive portal files not installed"; 76 | echo " | Install
"; 77 | } 78 | ?> 79 |
80 |
81 | 82 |
83 | 88 | 89 |
90 | [Refresh]

91 | 92 |
93 | 94 |
95 | [Refresh]
96 |
97 |
98 | 99 |
100 | [Save]

101 | "; echo file_get_contents($hosts_path); echo ""; 103 | ?> 104 |
105 | 106 |
107 |
108 | Auto-refresh Off 117 | 118 | 119 | 120 | -------------------------------------------------------------------------------- /infusions/dnsspoof/dnsspoof_actions.php: -------------------------------------------------------------------------------- 1 | /dev/null 2> ".$module_path."log/output_".$time.".log"; 11 | 12 | shell_exec("echo \"#!/bin/sh\n".$full_cmd."\" > ".$module_path."dnsspoof.sh && chmod +x ".$module_path."dnsspoof.sh &"); 13 | $cmd = "echo ".$module_path."dnsspoof.sh | at now"; 14 | } 15 | if (isset($_GET['stop'])) 16 | { 17 | $cmd = "kill `ps -ax | grep dnsspoof | grep -v -e grep | grep -v -e php | awk {'print $1'}`"; 18 | } 19 | } 20 | 21 | if (isset($_GET['load'])) 22 | { 23 | if (isset($_GET['file'])) 24 | { 25 | $log_date = date ("F d Y H:i:s", filemtime($module_path."log/".$_GET['file'])); 26 | echo "dnsspoof ".$_GET['file']." [".$log_date."]\n"; 27 | 28 | $cmd = "cat ".$module_path."log/".$_GET['file']; 29 | } 30 | } 31 | 32 | if (isset($_GET['delete'])) 33 | { 34 | if (isset($_GET['file'])) 35 | { 36 | if (isset($_GET['log'])) 37 | $cmd = "rm -rf ".$module_path."log/".$_GET['file']."*"; 38 | } 39 | } 40 | 41 | if (isset($_GET['fake'])) 42 | { 43 | if (isset($_GET['action'])) 44 | { 45 | $action = $_GET['action']; 46 | 47 | switch($action) 48 | { 49 | case 'install': 50 | $cmd = "cp ".$module_path."fake/ncsi.txt /www/ && mkdir -p /www/library/test/ && cp ".$module_path."fake/success.html /www/library/test/"; 51 | break; 52 | 53 | case 'uninstall': 54 | $cmd = "rm -rf /www/ncsi.txt && rm -rf /www/library "; 55 | break; 56 | } 57 | } 58 | } 59 | 60 | if (isset($_GET['boot'])) 61 | { 62 | if (isset($_GET['action'])) 63 | { 64 | $action = $_GET['action']; 65 | 66 | switch($action) 67 | { 68 | case 'enable': 69 | exec("sed -i '/exit 0/d' /etc/rc.local"); 70 | exec("echo ".$module_path."autostart.sh >> /etc/rc.local"); 71 | exec("echo exit 0 >> /etc/rc.local"); 72 | break; 73 | 74 | case 'disable': 75 | exec("sed -i '/dnsspoof\/autostart.sh/d' /etc/rc.local"); 76 | break; 77 | } 78 | } 79 | } 80 | 81 | if($cmd != "") 82 | { 83 | $output = shell_exec($cmd); 84 | 85 | if($output != "") 86 | echo trim($output); 87 | } 88 | 89 | ?> -------------------------------------------------------------------------------- /infusions/dnsspoof/dnsspoof_conf.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /infusions/dnsspoof/dnsspoof_data.php: -------------------------------------------------------------------------------- 1 | No log history..."; 11 | 12 | for($i=0;$iview | "; 19 | echo "download | "; 20 | echo "delete]
"; 21 | } 22 | } 23 | } 24 | 25 | if (isset($_GET[lastlog])) 26 | { 27 | if ($is_dnsspoof_running) 28 | { 29 | $path = $module_path."log"; 30 | 31 | $latest_ctime = 0; 32 | $latest_filename = ''; 33 | 34 | $d = dir($path); 35 | while (false !== ($entry = $d->read())) { 36 | $filepath = "{$path}/{$entry}"; 37 | if (is_file($filepath) && filectime($filepath) > $latest_ctime) { 38 | $latest_ctime = filectime($filepath); 39 | $latest_filename = $entry; 40 | } 41 | } 42 | 43 | if($latest_filename != "") 44 | { 45 | $log_date = date ("F d Y H:i:s", filemtime($module_path."log/".$latest_filename)); 46 | echo "dnsspoof ".$latest_filename." [".$log_date."]\n"; 47 | 48 | $cmd = "cat ".$module_path."log/".$latest_filename; 49 | 50 | exec ($cmd, $output); foreach($output as $outputline) { echo ("$outputline\n"); } 51 | } 52 | } 53 | else 54 | { 55 | echo "dnsspoof is not running..."; 56 | } 57 | } 58 | 59 | ?> -------------------------------------------------------------------------------- /infusions/dnsspoof/dnsspoof_vars.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /infusions/dnsspoof/fake/ncsi.txt: -------------------------------------------------------------------------------- 1 | Microsoft NCSI -------------------------------------------------------------------------------- /infusions/dnsspoof/fake/success.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Success 5 | 6 | 7 | Success 8 | 9 | 10 | -------------------------------------------------------------------------------- /infusions/dnsspoof/js/jquery.idTabs.min.js: -------------------------------------------------------------------------------- 1 | /* idTabs ~ Sean Catchpole - Version 2.2 - MIT/GPL */ 2 | (function(){var dep={"jQuery":"http://code.jquery.com/jquery-latest.min.js"};var init=function(){(function($){$.fn.idTabs=function(){var s={};for(var i=0;i ".$module_path."log/log_".$time.".log"; 11 | 12 | shell_exec("echo \"#!/bin/sh\n".$full_cmd." &\" > ".$module_path."ettercap.sh && chmod +x ".$module_path."ettercap.sh &"); 13 | $cmd = "echo ".$module_path."ettercap.sh | at now"; 14 | } 15 | } 16 | 17 | if (isset($_GET['cancel'])) 18 | { 19 | $cmd = "killall -9 ettercap &"; 20 | } 21 | 22 | if (isset($_GET['load'])) 23 | { 24 | if (isset($_GET['file'])) 25 | { 26 | $log_date = date ("F d Y H:i:s", filemtime($module_path."log/".$_GET[file])); 27 | echo "ettercap ".$_GET['file']." [".$log_date."]\n"; 28 | echo file_get_contents($module_path."log/".$_GET['file']); 29 | } 30 | } 31 | 32 | if (isset($_GET['delete'])) 33 | { 34 | if (isset($_GET['file'])) 35 | { 36 | $cmd = "rm -rf ".$module_path."log/".$_GET['file']."*"; 37 | } 38 | } 39 | 40 | if (isset($_GET['install'])) 41 | { 42 | if (isset($_GET['where'])) 43 | { 44 | $where = $_GET['where']; 45 | 46 | switch($where) 47 | { 48 | case 'usb': 49 | $cmd = "opkg update && opkg install ettercap --dest usb"; 50 | break; 51 | 52 | case 'internal': 53 | $cmd = "opkg update && opkg install ettercap"; 54 | break; 55 | } 56 | } 57 | } 58 | 59 | if($cmd != "") 60 | { 61 | $output = shell_exec($cmd); 62 | 63 | if($output != "") 64 | echo trim($output); 65 | } 66 | 67 | ?> -------------------------------------------------------------------------------- /infusions/ettercap/ettercap_data.php: -------------------------------------------------------------------------------- 1 | No log history..."; 11 | 12 | for($i=0;$iview | "; 19 | echo "download | "; 20 | echo "pcap | "; 21 | echo "delete]
"; 22 | } 23 | } 24 | 25 | if (isset($_GET[lastlog])) 26 | { 27 | if ($is_ettercap_running) 28 | { 29 | $path = $module_path."log"; 30 | 31 | $latest_ctime = 0; 32 | $latest_filename = ''; 33 | 34 | $d = dir($path); 35 | while (false !== ($entry = $d->read())) { 36 | $filepath = "{$path}/{$entry}"; 37 | if (is_file($filepath) && filectime($filepath) > $latest_ctime) { 38 | $latest_ctime = filectime($filepath); 39 | $latest_filename = $entry; 40 | } 41 | } 42 | 43 | echo $latest_filename; 44 | 45 | if($latest_filename != "") 46 | { 47 | $log_date = date ("F d Y H:i:s", filemtime($module_path."log/".$latest_filename)); 48 | echo "ettercap ".$latest_filename." [".$log_date."]\n"; 49 | echo file_get_contents($module_path."log/".$latest_filename); 50 | } 51 | } 52 | else 53 | { 54 | echo "ettercap is not running..."; 55 | } 56 | } 57 | 58 | ?> -------------------------------------------------------------------------------- /infusions/ettercap/ettercap_filters.php: -------------------------------------------------------------------------------- 1 | --'; 9 | for($i=0;$i'.basename($filters_list[$i]).''; 12 | } 13 | } 14 | 15 | if (isset($_GET['show_filter'])) 16 | { 17 | if (isset($_GET['which'])) 18 | { 19 | $file = $module_path."filters/".$_GET['which'].".filter"; 20 | echo file_get_contents($file); 21 | } 22 | } 23 | 24 | if (isset($_GET['delete_filter'])) 25 | { 26 | if (isset($_GET['which'])) 27 | { 28 | exec("rm -rf ".$module_path."filters/".$_GET['which']."*"); 29 | } 30 | } 31 | 32 | if (isset($_GET['compile_filter'])) 33 | { 34 | if (isset($_GET['which'])) 35 | { 36 | $filename = $module_path."filters/".$_GET['which'].".filter"; 37 | $filename_ef = $module_path."filters/".$_GET['which'].".ef"; 38 | 39 | echo "Compile: ".$filename." to:".$filename_ef."\n"; 40 | 41 | $output = shell_exec("etterfilter -o ".$filename_ef." ".$filename." 2>&1"); 42 | echo trim($output); 43 | } 44 | } 45 | 46 | if (isset($_POST['new_filter'])) 47 | { 48 | if (isset($_POST['which'])) 49 | { 50 | $filename = $module_path."filters/".$_POST['which'].".filter"; 51 | 52 | if(!file_exists($filename)) 53 | { 54 | $newdata = $_POST['newdata']; 55 | $newdata = ereg_replace(13, "", $newdata); 56 | $fw = fopen($filename, 'w+'); 57 | $fb = fwrite($fw,stripslashes($newdata)); 58 | fclose($fw); 59 | 60 | $filename_ef = $module_path."filters/".$_POST['which'].".ef"; 61 | } 62 | } 63 | } 64 | 65 | if (isset($_POST['save_filter'])) 66 | { 67 | if (isset($_POST['which'])) 68 | { 69 | $filename = $module_path."filters/".$_POST['which'].".filter"; 70 | 71 | $newdata = $_POST['newdata']; 72 | $newdata = ereg_replace(13, "", $newdata); 73 | $fw = fopen($filename, 'w'); 74 | $fb = fwrite($fw,stripslashes($newdata)); 75 | fclose($fw); 76 | } 77 | } 78 | 79 | ?> -------------------------------------------------------------------------------- /infusions/ettercap/ettercap_vars.php: -------------------------------------------------------------------------------- 1 | "-M arp", 26 | "icmp" => "-M icmp", 27 | "dhcp" => "-M dhcp", 28 | "port" => "-M port" 29 | ); 30 | 31 | $proto_options = array( 32 | "tcp" => "-t tcp", 33 | "udp" => "-t udp", 34 | "all" => "-t all" 35 | ); 36 | 37 | $sniffing_and_attack_options = array( 38 | "Don't sniff, only perform the mitm attack" => "-o", 39 | "Do not put the iface in promisc mode" => "-p", 40 | "Do not forward packets" => "-u", 41 | "Use reversed TARGET matching" => "-R" 42 | ); 43 | 44 | $ui_type = array( 45 | "Do not display packet contents" => "-q", 46 | "Use console interface" => "-T" 47 | ); 48 | 49 | $visualization_options = array( 50 | "Resolves ip addresses into hostnames" => "-d", 51 | "Print extended header for every packet" => "-E", 52 | "Do not display user and password" => "-Q" 53 | ); 54 | 55 | $visualization_format = array( 56 | "hex" => "-V hex", 57 | "ascii" => "-V ascii", 58 | "text" => "-V text", 59 | "ebcdic" => "-V ebcdic", 60 | "html" => "-V html", 61 | "utf8" => "-V utf8" 62 | ); 63 | 64 | $general_options = array( 65 | "Do not perform the initial ARP scan" => "-z" 66 | ); 67 | 68 | function dataSize($path) 69 | { 70 | $blah = exec( "/usr/bin/du -sch $path | tail -1 | awk {'print $1'}" ); 71 | return $blah; 72 | } 73 | 74 | ?> -------------------------------------------------------------------------------- /infusions/ettercap/js/jquery.idTabs.min.js: -------------------------------------------------------------------------------- 1 | /* idTabs ~ Sean Catchpole - Version 2.2 - MIT/GPL */ 2 | (function(){var dep={"jQuery":"http://code.jquery.com/jquery-latest.min.js"};var init=function(){(function($){$.fn.idTabs=function(){var s={};for(var i=0;i&1 && mv /pineapple/infusions/nmap/scans/tmp /pineapple/infusions/nmap/scans/scan_1361551911 3 | -------------------------------------------------------------------------------- /infusions/nmap/nmap_actions.php: -------------------------------------------------------------------------------- 1 | &1"; 11 | 12 | shell_exec("echo \"#!/bin/sh\n".$full_cmd." && mv ".$module_path."scans/tmp ".$module_path."scans/scan_".$time."\" > ".$module_path."nmap.sh && chmod +x ".$module_path."nmap.sh &"); 13 | $cmd = "echo ".$module_path."nmap.sh | at now"; 14 | } 15 | } 16 | 17 | if (isset($_GET['cancel'])) 18 | { 19 | $cmd = "killall nmap &"; 20 | } 21 | 22 | if (isset($_GET['load'])) 23 | { 24 | if (isset($_GET['file'])) 25 | { 26 | echo file_get_contents($module_path."scans/".$_GET['file']); 27 | } 28 | } 29 | 30 | if (isset($_GET['delete'])) 31 | { 32 | if (isset($_GET['file'])) 33 | { 34 | $cmd = "rm -rf ".$module_path."scans/".$_GET['file']; 35 | } 36 | } 37 | 38 | if (isset($_GET['install'])) 39 | { 40 | if (isset($_GET['where'])) 41 | { 42 | $where = $_GET['where']; 43 | 44 | switch($where) 45 | { 46 | case 'usb': 47 | $cmd = "opkg update && opkg install nmap --dest usb"; 48 | break; 49 | 50 | case 'internal': 51 | $cmd = "opkg update && opkg install nmap"; 52 | break; 53 | } 54 | } 55 | } 56 | 57 | if($cmd != "") 58 | { 59 | $output = shell_exec($cmd); 60 | 61 | if($output != "") 62 | echo trim($output); 63 | } 64 | 65 | ?> -------------------------------------------------------------------------------- /infusions/nmap/nmap_data.php: -------------------------------------------------------------------------------- 1 | No scan history..."; 11 | 12 | for($i=0;$iview | "; 19 | echo "download | "; 20 | echo "delete]
"; 21 | } 22 | } 23 | } 24 | 25 | if (isset($_GET[control])) 26 | { 27 | if($is_nmap_running) 28 | { 29 | echo 'Cancel'; 30 | echo ''; 31 | } 32 | else 33 | { 34 | echo 'Scan'; 35 | echo ''; 36 | } 37 | } 38 | 39 | if (isset($_GET[lastscan])) 40 | { 41 | if(file_exists($module_path."scans/tmp")) 42 | { 43 | echo file_get_contents($module_path."scans/tmp"); 44 | } 45 | else 46 | { 47 | $path = $module_path."scans"; 48 | 49 | $latest_ctime = 0; 50 | $latest_filename = ''; 51 | 52 | $d = dir($path); 53 | while (false !== ($entry = $d->read())) { 54 | $filepath = "{$path}/{$entry}"; 55 | if (is_file($filepath) && filectime($filepath) > $latest_ctime) { 56 | $latest_ctime = filectime($filepath); 57 | $latest_filename = $entry; 58 | } 59 | } 60 | 61 | echo file_get_contents($module_path."scans/".$latest_filename); 62 | } 63 | } 64 | 65 | ?> -------------------------------------------------------------------------------- /infusions/nmap/nmap_vars.php: -------------------------------------------------------------------------------- 1 | "-T4 -A -v", 23 | "Intense scan plus UDP" => "-sS -sU -T4 -A -v", 24 | "Intense scan, all TCP ports" => "-p 1-65535 -T4 -A -v", 25 | "Intense scan, no ping" => "-T4 -A -v -Pn", 26 | "Ping scan" => "-sn", 27 | "Quick scan" => "-T4 -F", 28 | "Quick scan plus" => "-sV -T4 -O -F --version-light", 29 | "Quick traceroute" => "-sn --traceroute", 30 | "Regular scan" => " ", 31 | "Slow comprehensive scan" => "-sS -sU -T4 -A -v -PE -PP -PS80,443 -PA3389 -PU40125 -PY -g 53" 32 | ); 33 | 34 | $timmings = array( 35 | "Paranoid" => "-T0", 36 | "Sneaky" => "-T1", 37 | "Polite" => "-T2", 38 | "Normal" => "-T3", 39 | "Aggresive" => "-T4", 40 | "Insane" => "-T5" 41 | ); 42 | 43 | $tcp_scans = array( 44 | "ACK scan" => "-sA", 45 | "FIN scan" => "-sF", 46 | "Maimon scan" => "-sM", 47 | "Null scan" => "-sN", 48 | "TCP SYN scan" => "-sS", 49 | "TCP connect scan" => "-sT", 50 | "Window scan" => "-sW", 51 | "Xmas Tree scan" => "-sX" 52 | ); 53 | 54 | $non_tcp_scans = array( 55 | "UDP scan" => "-sU", 56 | "IP protocol scan" => "-sO", 57 | "List scan" => "-sL", 58 | "No port scan" => "-sn", 59 | "SCTP INIT port scan" => "-sY", 60 | "SCTP cookie-echo port scan" => "-sZ" 61 | ); 62 | 63 | $scan_options = array( 64 | "Enable all advanced/aggressive options" => "-A", 65 | "OS detection" => "-O", 66 | "Version detection" => "-sV", 67 | "Disable reverse DNS resolution" => "-n", 68 | "IPv6 support" => "-6" 69 | ); 70 | 71 | $target_options = array( 72 | "Fast scan" => "-F" 73 | ); 74 | 75 | $ping_options = array( 76 | "No ping before scanning" => "-Pn", 77 | "ICMP ping" => "-PE", 78 | "ICMP timestamp request" => "-PP", 79 | "ICMP netmask request" => "-PM" 80 | ); 81 | 82 | $other_options = array( 83 | "Fragment IP packets" => "-f", 84 | "Packet trace" => "--packet-trace", 85 | "Disable randomizing scanned ports" => "-r", 86 | "Trace routes to targets" => "--traceroute" 87 | ); 88 | 89 | ?> -------------------------------------------------------------------------------- /infusions/randomroll/autostart.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | randomrollDir="$( cd "$( dirname "$0" )" && pwd)" 4 | 5 | "$randomrollDir"/install.sh 6 | 7 | "$randomrollDir"/setup-log.sh 8 | 9 | /pineapple/dnsspoof/dnsspoof.sh -------------------------------------------------------------------------------- /infusions/randomroll/files/index.php: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /infusions/randomroll/files/index.php.bak: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /infusions/randomroll/files/spoofhost: -------------------------------------------------------------------------------- 1 | 172.16.42.1 * 2 | -------------------------------------------------------------------------------- /infusions/randomroll/files/spoofhost.bak: -------------------------------------------------------------------------------- 1 | 172.16.42.1 example.com 2 | -------------------------------------------------------------------------------- /infusions/randomroll/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | randomrollDir="$( cd "$( dirname "$0" )" && pwd)" 4 | 5 | indexMD5=`md5sum /www/index.php` 6 | var1=${indexMD5:0:32} 7 | randomrollMD5=`md5sum "$randomrollDir"/files/index.php` 8 | var2=${randomrollMD5:0:32} 9 | if [ "$var1" != "$var2" ]; then 10 | if [ ! -f /www/index.php.bak ]; then 11 | cp /www/index.php /www/index.php.bak 12 | fi 13 | cp "$randomrollDir"/files/index.php /www/index.php 14 | fi 15 | 16 | 17 | spoofHostMD5=`md5sum /pineapple/config/spoofhost` 18 | var1=${spoofHostMD5:0:32} 19 | randomrollSpoofHostMD5=`md5sum "$randomrollDir"/files/spoofhost` 20 | var2=${randomrollSpoofHostMD5:0:32} 21 | if [ "$var1" != "$var2" ]; then 22 | if [ ! -f /pineapple/config/spoofhost.bak ]; then 23 | cp /pineapple/config/spoofhost /pineapple/config/spoofhost.bak 24 | fi 25 | spoofHostIP=`ifconfig br-lan | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'` 26 | echo '"'$spoofHostIP' *" > '$randomrollDir'/files/spoofhost' 27 | cp "$randomrollDir"/files/spoofhost /pineapple/config/spoofhost 28 | fi 29 | 30 | 31 | if [ ! -L /www/randomroll ]; then 32 | ln -s "$randomrollDir"/randomroll /www/randomroll 33 | fi -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/How to create your own roll.txt: -------------------------------------------------------------------------------- 1 | Instructions on how to make your own roll 2 | 3 | 4 | #1. Create your own roll in /usb/modules/randomroll/randomroll/YourRollName/ 5 | 6 | #2. Place all your files in the folder you just created. 7 | 8 | #3. Re-name or create a file index.html, this will be your roll, the one people will get redirected too. 9 | 10 | #4. Add this line just under the body tag: 11 | 12 | Change roll=PBJ to the name you want to show in the log. 13 | 14 | #5. Change all the links/pictures/files in index.html to link directly to /randomroll/NameOfYourRollFolder/sound.mp3, instead of just sound.mp3. 15 | 16 | #6. Create the preview page by creating a file called index2.html that is exactly the same as index.html 17 | but with links to files within it's own folder IE change /randomroll/NameOfYourFolder/sound.mp3 to sound.mp3 18 | and does not have the 9 | 10 |
11 | 12 | 13 | 14 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/afro/index2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | da da afro circus!! 4 | 5 | 6 |
7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 17 | 18 |
19 | 20 |
21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/afro/thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InteliSecureLabs/web-interface/6bbefb526d8180d93309bc02fba4ba3a9407f75b/infusions/randomroll/randomroll/afro/thumbnail.gif -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/bsod/annoying.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InteliSecureLabs/web-interface/6bbefb526d8180d93309bc02fba4ba3a9407f75b/infusions/randomroll/randomroll/bsod/annoying.mp3 -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/bsod/bsod.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/bsod/bsodknipper.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InteliSecureLabs/web-interface/6bbefb526d8180d93309bc02fba4ba3a9407f75b/infusions/randomroll/randomroll/bsod/bsodknipper.gif -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/bsod/creator.ini: -------------------------------------------------------------------------------- 1 | petertfm 2 | http://forums.hak5.org/index.php?/user/20930-petertfm/ -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/bsod/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | - ooops! - 4 | 5 | 42 | 43 | 44 | 45 | 46 |
47 | WINDOWS 48 |

49 | An exception 06 has occured at 0028:C11B3ADC in VxD DiskTSD(03) +
50 | 00001660. This was called from 0028:C11B40CB in VxD voltrack(04) +
51 | 00000000. It may be possible to continue normally. 52 |

53 |

54 | * Press any key to attempt to continue.
55 | 56 | * Press CTRL+ALT+DEL to restart your computer. You will
57 |   lose unsaved information in any programs that are running. 58 |

59 | Press any link to continue 60 |
61 | 62 | 63 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/bsod/index2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | - ooops! - 4 | 5 | 42 | 43 | 44 | 45 |
46 | WINDOWS 47 |

48 | An exception 06 has occured at 0028:C11B3ADC in VxD DiskTSD(03) +
49 | 00001660. This was called from 0028:C11B40CB in VxD voltrack(04) +
50 | 00000000. It may be possible to continue normally. 51 |

52 |

53 | * Press any key to attempt to continue.
54 | 55 | * Press CTRL+ALT+DEL to restart your computer. You will
56 |   lose unsaved information in any programs that are running. 57 |

58 | Press any link to continue 59 |
60 | 61 | 62 | 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/bsod/knipperbsod.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InteliSecureLabs/web-interface/6bbefb526d8180d93309bc02fba4ba3a9407f75b/infusions/randomroll/randomroll/bsod/knipperbsod.gif -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/bsod/thumbnail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InteliSecureLabs/web-interface/6bbefb526d8180d93309bc02fba4ba3a9407f75b/infusions/randomroll/randomroll/bsod/thumbnail.jpg -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/log.php: -------------------------------------------------------------------------------- 1 | > /usb/infusions/randomroll/logs/RandomRoll.log'); 13 | } 14 | 15 | unset($roll, $clientIP, $clientMAC, $clientName); 16 | 17 | ?> -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/nyan/NYAN.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InteliSecureLabs/web-interface/6bbefb526d8180d93309bc02fba4ba3a9407f75b/infusions/randomroll/randomroll/nyan/NYAN.mp3 -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/nyan/creator.ini: -------------------------------------------------------------------------------- 1 | chiva 2 | https://github.com/chiva/Nyager -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/nyan/nyan_files/count.json: -------------------------------------------------------------------------------- 1 | twttr.receiveCount({"count":302402,"url":"http://nyan.cat/"}) -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/nyan/nyan_files/nyancat.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InteliSecureLabs/web-interface/6bbefb526d8180d93309bc02fba4ba3a9407f75b/infusions/randomroll/randomroll/nyan/nyan_files/nyancat.gif -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/nyan/nyanlooped.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InteliSecureLabs/web-interface/6bbefb526d8180d93309bc02fba4ba3a9407f75b/infusions/randomroll/randomroll/nyan/nyanlooped.mp3 -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/nyan/thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InteliSecureLabs/web-interface/6bbefb526d8180d93309bc02fba4ba3a9407f75b/infusions/randomroll/randomroll/nyan/thumbnail.gif -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/pbj/How to create your own roll.txt: -------------------------------------------------------------------------------- 1 | Instructions on how to make your own roll 2 | 3 | 4 | #1. Create your own roll in /usb/modules/randomroll/randomroll/YourRollName/ 5 | 6 | #2. Place all your files in the folder you just created. 7 | 8 | #3. Re-name or create a file index.html, this will be your roll, the one people will get redirected too. 9 | 10 | #4. Add this line just under the body tag: 11 | 12 | Change roll=PBJ to the name you want to show in the log. 13 | 14 | #5. Change all the links/pictures/files in index.html to link directly to /randomroll/NameOfYourRollFolder/sound.mp3, instead of just sound.mp3. 15 | 16 | #6. Create the preview page by creating a file called index2.html that is exactly the same as index.html 17 | but with links to files within it's own folder IE change /randomroll/NameOfYourFolder/sound.mp3 to sound.mp3 18 | and does not have the 7 |
8 | 9 |
10 | 11 | 12 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/pbj/index2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | !!!!!> Peanut Butter Jelly Time <!!!!! 4 | 5 | 6 |
7 | 8 |
9 | 10 | 11 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/pbj/thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InteliSecureLabs/web-interface/6bbefb526d8180d93309bc02fba4ba3a9407f75b/infusions/randomroll/randomroll/pbj/thumbnail.gif -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/rainbow-chicken/creator.ini: -------------------------------------------------------------------------------- 1 | shadowmmm 2 | http://forums.hak5.org/index.php?/user/36253-shadowmmm/ -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/rainbow-chicken/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | RAINBOW CHICKEN MAN AAAHHHH!! 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/rainbow-chicken/index2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | RAINBOW CHICKEN MAN AAAHHHH!! 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/rainbow-chicken/rainbow-chicken-bk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InteliSecureLabs/web-interface/6bbefb526d8180d93309bc02fba4ba3a9407f75b/infusions/randomroll/randomroll/rainbow-chicken/rainbow-chicken-bk.png -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/rainbow-chicken/rainbow-chicken-man.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InteliSecureLabs/web-interface/6bbefb526d8180d93309bc02fba4ba3a9407f75b/infusions/randomroll/randomroll/rainbow-chicken/rainbow-chicken-man.swf -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/rainbow-chicken/thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InteliSecureLabs/web-interface/6bbefb526d8180d93309bc02fba4ba3a9407f75b/infusions/randomroll/randomroll/rainbow-chicken/thumbnail.gif -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/rickroll/NGGUP.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InteliSecureLabs/web-interface/6bbefb526d8180d93309bc02fba4ba3a9407f75b/infusions/randomroll/randomroll/rickroll/NGGUP.mp3 -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/rickroll/NGGUP.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InteliSecureLabs/web-interface/6bbefb526d8180d93309bc02fba4ba3a9407f75b/infusions/randomroll/randomroll/rickroll/NGGUP.wav -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/rickroll/creator.ini: -------------------------------------------------------------------------------- 1 | Bebo 2 | http://beboblog.johnbebo.com/2010/03/13/fon2100-and-jasager.aspx -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/rickroll/thumbnail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InteliSecureLabs/web-interface/6bbefb526d8180d93309bc02fba4ba3a9407f75b/infusions/randomroll/randomroll/rickroll/thumbnail.jpg -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/trap/creator.ini: -------------------------------------------------------------------------------- 1 | petertfm 2 | http://forums.hak5.org/index.php?/user/20930-petertfm/ -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/trap/index2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | BIG WARNING!!! 4 | 5 | 6 | 7 |
8 | 9 | WARINING!!! The prank page that you are about to visit can cause lots of anger and or frustration.
10 | Because some web browsers will need to be reset in order for the evil that ensues to end!!!
11 | Some anti-virus porgrams will detect.

12 | 13 | Rick Roll Trap Preview 14 |
15 |
16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/trap/rickrolled.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InteliSecureLabs/web-interface/6bbefb526d8180d93309bc02fba4ba3a9407f75b/infusions/randomroll/randomroll/trap/rickrolled.gif -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/trap/thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InteliSecureLabs/web-interface/6bbefb526d8180d93309bc02fba4ba3a9407f75b/infusions/randomroll/randomroll/trap/thumbnail.gif -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/trololo/creator.ini: -------------------------------------------------------------------------------- 1 | Gh3to 2 | http://forums.hak5.org/index.php?/user/40222-gh3to/ -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/trololo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Troll lol lol lolllll!! 4 | 5 | 6 | 7 | 8 |
9 | 10 |
11 | 12 | 13 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/trololo/index2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Troll lol lol lolllll!! 4 | 5 | 6 |
7 | 8 |
9 | 10 | 11 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/trololo/thumbnail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InteliSecureLabs/web-interface/6bbefb526d8180d93309bc02fba4ba3a9407f75b/infusions/randomroll/randomroll/trololo/thumbnail.jpg -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/trololo/trololo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InteliSecureLabs/web-interface/6bbefb526d8180d93309bc02fba4ba3a9407f75b/infusions/randomroll/randomroll/trololo/trololo.gif -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/trololo/trololo.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InteliSecureLabs/web-interface/6bbefb526d8180d93309bc02fba4ba3a9407f75b/infusions/randomroll/randomroll/trololo/trololo.mp3 -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/trololo/trololo.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InteliSecureLabs/web-interface/6bbefb526d8180d93309bc02fba4ba3a9407f75b/infusions/randomroll/randomroll/trololo/trololo.swf -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/tubes/SOT.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InteliSecureLabs/web-interface/6bbefb526d8180d93309bc02fba4ba3a9407f75b/infusions/randomroll/randomroll/tubes/SOT.mp3 -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/tubes/creator.ini: -------------------------------------------------------------------------------- 1 | gsuberland 2 | http://forums.hak5.org/index.php?/user/41084-gsuberland/ -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/tubes/flash.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InteliSecureLabs/web-interface/6bbefb526d8180d93309bc02fba4ba3a9407f75b/infusions/randomroll/randomroll/tubes/flash.gif -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/tubes/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | !*!*! SERIES of TUBES !*!*! 4 | 8 | 9 | 10 | 11 |
12 | 13 |
14 | 15 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/tubes/index2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | !*!*! SERIES of TUBES !*!*! 4 | 8 | 9 | 10 |
11 | 12 |
13 | 14 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/tubes/ted.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InteliSecureLabs/web-interface/6bbefb526d8180d93309bc02fba4ba3a9407f75b/infusions/randomroll/randomroll/tubes/ted.jpg -------------------------------------------------------------------------------- /infusions/randomroll/randomroll/tubes/thumbnail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InteliSecureLabs/web-interface/6bbefb526d8180d93309bc02fba4ba3a9407f75b/infusions/randomroll/randomroll/tubes/thumbnail.jpg -------------------------------------------------------------------------------- /infusions/randomroll/revert.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | killall dnsspoof 4 | 5 | if [ -f /www/index.php.bak ]; then 6 | cp /www/index.php.bak /www/index.php 7 | rm /www/index.php.bak 8 | fi 9 | 10 | 11 | if [ -f /pineapple/config/spoofhost.bak ]; then 12 | cp /pineapple/config/spoofhost.bak /pineapple/config/spoofhost 13 | rm /pineapple/config/spoofhost.bak 14 | fi 15 | 16 | 17 | if [ -L /www/randomroll ]; then 18 | rm /www/randomroll 19 | fi 20 | 21 | sed -i '/randomroll\/autostart.sh/d' /etc/rc.local -------------------------------------------------------------------------------- /infusions/randomroll/setup-log.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | randomrollDir="$( cd "$( dirname "$0" )" && pwd)" 4 | 5 | MYPATH="$randomrollDir""/logs/RandomRoll-" 6 | randomrollFile="null" 7 | 8 | x=1 9 | while : 10 | do 11 | randomrollFile=${MYPATH}${x}.log 12 | if [ ! -f $randomrollFile ]; then 13 | break 14 | fi 15 | x=$(( $x + 1 )) 16 | done 17 | 18 | if [ -f "$randomrollDir"/logs/RandomRoll.log ]; then 19 | cp "$randomrollDir"/logs/RandomRoll.log ${randomrollFile} 20 | rm "$randomrollDir"/logs/RandomRoll.log 21 | fi -------------------------------------------------------------------------------- /infusions/sitesurvey/css/firmware.css: -------------------------------------------------------------------------------- 1 | 2 | .navbar { 3 | top: 10px; 4 | min-width: 80%; 5 | background: green; 6 | padding-left: 5px; 7 | padding-right: 5px; 8 | padding-top: 3px; 9 | padding-bottom: 3px; 10 | border-top-left-radius: 10px 10px; 11 | border-top-right-radius: 10px 10px; 12 | border-bottom-left-radius: 10px 10px; 13 | border-bottom-right-radius: 10px 10px; 14 | text-align: center; 15 | color: black; 16 | } 17 | 18 | .sidePanelLeft { 19 | margin-top: 15px; 20 | margin-bottom: 15px; 21 | text-align: left; 22 | display: table; 23 | font-family: monospace; 24 | } 25 | 26 | .sidePanelTitle { 27 | padding-left: 10px; 28 | padding-top: 2px; 29 | padding-bottom: 2px; 30 | border-top-left-radius: 10px 10px; 31 | border-top-right-radius: 10px 10px; 32 | background: green; 33 | font-weight: bold; 34 | font-size: 15; 35 | color: white; 36 | } 37 | 38 | .sidePanelContent { 39 | padding-left: 10px; 40 | padding-right: 10px; 41 | padding-top: 5px; 42 | padding-bottom: 5px; 43 | background: black; 44 | border-bottom-left-radius: 10px 10px; 45 | border-bottom-right-radius: 10px 10px; 46 | color: white; 47 | border-color: green; 48 | border-style: solid; 49 | border-width: 1px 50 | } 51 | -------------------------------------------------------------------------------- /infusions/sitesurvey/css/site_survey.css: -------------------------------------------------------------------------------- 1 | * { 2 | font-family: courier; 3 | font-size: 13px; 4 | } 5 | select { 6 | background-color: black; 7 | border-style: none; 8 | color: white; 9 | } 10 | textarea { 11 | background-color: black; 12 | color: white; 13 | border-style: dashed; 14 | height: 250px; 15 | width: 100%; 16 | } 17 | .graph-border { 18 | background: #FFF; 19 | border: 1px solid #DDD; 20 | height: 16px; 21 | } 22 | .graph-bar { 23 | text-align: left; 24 | color: black; 25 | height: 16px; 26 | } 27 | .grid { 28 | padding: 0; 29 | border-spacing: 1px; 30 | border-collapse: separate; 31 | border: 1px solid #e0e0e0; 32 | background: #fff; 33 | width: 80%; 34 | color: black; 35 | } 36 | .grid td { 37 | padding: 2px; 38 | margin: 0px; 39 | } 40 | .graph { 41 | color: white; 42 | background: black; 43 | font-weight: bold; 44 | } 45 | 46 | .grid .header { 47 | color: black; 48 | background: #e7e7e7; 49 | } 50 | .grid .header td { 51 | font-weight: bold; 52 | } 53 | .grid .footer { 54 | background: #f0f0f0; 55 | } 56 | .grid .odd { 57 | background: #f7f7f7; 58 | } 59 | .grid .even { 60 | background: #fff; 61 | } 62 | .grid .clients { 63 | font-style:italic; 64 | } 65 | input { 66 | font-family:courier; 67 | font-weight:bold; 68 | color:gray; 69 | border-style:dotted; 70 | } 71 | #version { 72 | text-align: right; 73 | margin: 5px 10px -12px; 74 | } 75 | .tab ul { 76 | margin-left: -40px; 77 | } 78 | .tab li { 79 | list-style: none; 80 | float: left; 81 | } 82 | .tab ul a { 83 | display: block; 84 | padding: 6px 10px; 85 | text-decoration: none!important; 86 | margin: 1px; 87 | margin-left: 0; 88 | color: #FFF; 89 | background: green; 90 | } 91 | .tab ul a:hover { 92 | color: #FFF; 93 | background: #111; 94 | } 95 | .tab ul a.selected { 96 | margin-bottom: 0; 97 | color: #000; 98 | background: snow; 99 | border-bottom: 1px solid snow; 100 | cursor: default; 101 | } 102 | .tab div { 103 | padding: 10px 5px; 104 | clear: left; 105 | background: snow; 106 | width: 80%; 107 | color: black; 108 | } 109 | .tab div a { 110 | color: #000; 111 | font-weight: bold; 112 | } 113 | 114 | .navbar { 115 | top: 10px; 116 | min-width: 100%; 117 | background: green; 118 | border-top-left-radius: 10px 10px; 119 | border-top-right-radius: 10px 10px; 120 | border-bottom-left-radius: 10px 10px; 121 | border-bottom-right-radius: 10px 10px; 122 | text-align: center; 123 | color: black; 124 | } -------------------------------------------------------------------------------- /infusions/sitesurvey/iwlist_parser.php: -------------------------------------------------------------------------------- 1 | parseString( shell_exec( "iwlist scan 2> /dev/null" )); 63 | } 64 | 65 | function parseScanDev( $device ){ 66 | return $this -> parseString( shell_exec( "iwlist ".$device." scan 2> /dev/null" )); 67 | } 68 | } 69 | ?> -------------------------------------------------------------------------------- /infusions/sitesurvey/js/jquery.idTabs.min.js: -------------------------------------------------------------------------------- 1 | /* idTabs ~ Sean Catchpole - Version 2.2 - MIT/GPL */ 2 | (function(){var dep={"jQuery":"http://code.jquery.com/jquery-latest.min.js"};var init=function(){(function($){$.fn.idTabs=function(){var s={};for(var i=0;i 6 | 7 | 8 | Pineapple Control Center - <?php echo $module_name." [v".$module_version."]"; ?> 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 25 | 26 | 27 | 28 |

v

29 | 30 |
31 |
32 |
33 | "; 37 | echo ''; 40 | echo ""; 41 | echo " | Start - Stop [Auto] | Start Monitor
"; 42 | 43 | echo "Monitor interface "; 44 | echo ""; 45 | echo ''; 48 | echo ""; 49 | echo " | Stop Monitor
"; 50 | ?> 51 |
52 |
53 | 54 | [Refresh APs] [Refresh Clients]

55 |

56 | Auto-refresh Off 68 | 69 |
70 | 76 | 77 |
78 | 79 |
80 | 81 |
82 | [Refresh]
83 |
84 |
85 | 86 |
87 | [Refresh]
88 |
89 |
90 | 91 |
92 | [Save]
93 |
94 |
95 | 96 |
97 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /infusions/sitesurvey/site_survey_actions.php: -------------------------------------------------------------------------------- 1 | ".$module_path."log/output_".$time.".log"; 51 | 52 | shell_exec("echo \"#!/bin/sh\n".$full_cmd." &\" > ".$module_path."custom.sh && chmod +x ".$module_path."custom.sh &"); 53 | $cmd = "echo ".$module_path."custom.sh | at now"; 54 | } 55 | } 56 | 57 | if (isset($_GET['cancel'])) 58 | { 59 | $cmd = "killall custom.sh &"; 60 | } 61 | 62 | if (isset($_GET['background_refresh'])) 63 | { 64 | if ($_GET['background_refresh'] == "start") 65 | { 66 | $full_cmd = "airodump-ng --write $dumpPath $monitorInterface &> /dev/null &"; 67 | 68 | shell_exec("rm -rf ".$dumpPath."-01*"); 69 | shell_exec("killall airodump-ng 2> /dev/null"); 70 | 71 | shell_exec("echo \"#!/bin/sh\n".$full_cmd."\" > ".$module_path."refresh.sh && chmod +x ".$module_path."refresh.sh &"); 72 | $cmd = "echo ".$module_path."refresh.sh | at now"; 73 | } 74 | else if ($_GET['background_refresh'] == "stop") 75 | { 76 | $cmd = "killall airodump-ng 2> /dev/null"; 77 | shell_exec("rm -rf ".$dumpPath."-01*"); 78 | shell_exec("killall airodump-ng 2> /dev/null"); 79 | } 80 | } 81 | 82 | if (isset($_GET['load'])) 83 | { 84 | if (isset($_GET['file'])) 85 | { 86 | $log_date = date ("F d Y H:i:s", filemtime($module_path."log/".$_GET['file'])); 87 | echo "Custom script ".$_GET['file']." [".$log_date."]\n"; 88 | echo file_get_contents($module_path."log/".$_GET['file']); 89 | } 90 | } 91 | 92 | if($cmd != "") 93 | { 94 | $output = shell_exec($cmd); 95 | 96 | echo trim($output); 97 | } 98 | 99 | ?> -------------------------------------------------------------------------------- /infusions/sitesurvey/site_survey_attacks.php: -------------------------------------------------------------------------------- 1 | No log history..."; 14 | 15 | for($i=0;$iview | "; 22 | echo "download | "; 23 | echo "delete]
"; 24 | } 25 | } 26 | } 27 | 28 | if (isset($_GET[captures])) 29 | { 30 | $captures_list = array_reverse(glob($module_path."captures/*.cap")); 31 | 32 | if(count($captures_list) == 0) 33 | echo "No capture history..."; 34 | 35 | for($i=0;$idelete
"; 46 | 47 | for($j=0;$j $module_path."captures/".$file); 52 | $custom_command = addslashes(replace_tags($tags, $custom_commands[1])); 53 | 54 | echo $output_types[$j]." "; 55 | echo "[load - "; 56 | echo "exec] "; 57 | } 58 | echo "

"; 59 | } 60 | } 61 | 62 | if (isset($_GET[deauthtarget])) 63 | { 64 | if(isset($_GET[deauthtargetClient]) && $_GET[deauthtargetClient] != "") 65 | { 66 | $cmd = "aireplay-ng -0 ".$_GET[deauthtimes]." --ignore-negative-one -D -c $_GET[deauthtargetClient] -a $_GET[deauthtarget] ".$monitorInterface." &"; 67 | } 68 | else 69 | { 70 | $cmd = "aireplay-ng -0 ".$_GET[deauthtimes]." --ignore-negative-one -D -a $_GET[deauthtarget] ".$monitorInterface." &"; 71 | } 72 | } 73 | 74 | if (isset($_GET[ap])) 75 | { 76 | $time = time(); 77 | $full_cmd = "airodump-ng -c ".$_GET[channel]." --bssid ".$_GET[ap]." -w ".$module_path."captures/capture_".$time." ".$monitorInterface." &> /dev/null"; 78 | 79 | shell_exec("echo \"#!/bin/sh\necho \"".$_GET[ap]."\" > ".$module_path."captures/lock\n".$full_cmd." &\" > ".$module_path."capture.sh && chmod +x ".$module_path."capture.sh &"); 80 | $cmd = "echo ".$module_path."capture.sh | at now"; 81 | } 82 | 83 | if (isset($_GET[cancel])) 84 | { 85 | $cmd = "killall airodump-ng && rm -rf ".$module_path."captures/lock &"; 86 | } 87 | 88 | if($cmd != "") 89 | { 90 | $output = shell_exec($cmd); 91 | 92 | if($output != "") 93 | echo trim($output); 94 | } 95 | 96 | ?> -------------------------------------------------------------------------------- /infusions/sitesurvey/site_survey_conf.php: -------------------------------------------------------------------------------- 1 | "; 10 | echo ""; 11 | echo "Command executed on selected AP [Variables: %%SSID%%, %%BSSID%%, %%CHANNEL%%]
"; 12 | echo '

'; 13 | echo "Command executed on selected capture [Variables: %%FILENAME%%]
"; 14 | echo ''; 15 | echo ""; 16 | } 17 | 18 | if (isset($_POST[set_conf])) 19 | { 20 | if (isset($_POST[commands])) 21 | { 22 | $configArray = $_POST[commands]; 23 | 24 | $commands = ""; 25 | foreach($configArray as $conf) 26 | { 27 | $commands .= stripslashes($conf)."\n"; 28 | } 29 | 30 | exec("echo \"".$commands."\" > ".$module_path."site_survey.conf"); 31 | } 32 | } 33 | ?> -------------------------------------------------------------------------------- /infusions/sitesurvey/site_survey_interfaces.php: -------------------------------------------------------------------------------- 1 | '; 8 | foreach($monitorInterfaces as $value) { echo ''; } 9 | echo ''; 10 | } 11 | 12 | if(isset($_GET[interface])) 13 | { 14 | echo ''; 17 | } 18 | 19 | ?> -------------------------------------------------------------------------------- /infusions/sitesurvey/site_survey_vars.php: -------------------------------------------------------------------------------- 1 | /dev/null | grep \"wlan*\" | grep -v \"mon*\" | awk '{print $1}'")))); 8 | $monitorInterfaces = array_reverse(explode("\n", trim(shell_exec("iwconfig 2> /dev/null | grep \"mon*\" | awk '{print $1}'")))); 9 | 10 | $is_airodump_running = exec("ps | grep airodump-ng | grep -v -e grep | grep -v -e php") != "" ? 1 : 0; 11 | $is_capture_running = file_exists($module_path."captures/lock") != "" ? 1 : 0; 12 | $is_custom_running = exec("ps | grep custom.sh | grep -v -e grep | grep -v -e php") != "" ? 1 : 0; 13 | 14 | if(!$is_airodump_running && $is_capture_running) exec("rm -rf ".$module_path."captures/lock &"); 15 | 16 | $custom_commands = explode("\n", trim(file_get_contents($module_path."site_survey.conf"))); 17 | 18 | $timeAP = 30; 19 | 20 | $dumpPath="/tmp/mk"; 21 | 22 | $output_types = array("cap", "csv", "kismet.csv", "kismet.netxml"); 23 | 24 | function dataSize($path) 25 | { 26 | $blah = exec( "/usr/bin/du -sch $path | tail -1 | awk {'print $1'}" ); 27 | return $blah; 28 | } 29 | 30 | function replace_tags($tags = array(), $buffer) 31 | { 32 | foreach ($tags as $tag => $data) 33 | { 34 | $buffer = str_replace("%%".$tag."%%", $data, $buffer); 35 | } 36 | 37 | return $buffer; 38 | } 39 | 40 | ?> -------------------------------------------------------------------------------- /infusions/sslstrip/autostart.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usb/lib:/usb/usr/lib 4 | export PATH=$PATH:/usb/usr/bin:/usb/usr/sbin 5 | 6 | MYPATH="$(dirname $0)/" 7 | MYTIME=`date +%s` 8 | 9 | iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 10000 10 | #iptables -t nat -A PREROUTING -p tcp --destination-port 443 -j REDIRECT --to-ports 10000 11 | 12 | sslstrip -k -f -w ${MYPATH}log/output_${MYTIME}.log 2>&1 & -------------------------------------------------------------------------------- /infusions/sslstrip/css/firmware.css: -------------------------------------------------------------------------------- 1 | 2 | .navbar { 3 | top: 10px; 4 | min-width: 80%; 5 | background: green; 6 | padding-left: 5px; 7 | padding-right: 5px; 8 | padding-top: 3px; 9 | padding-bottom: 3px; 10 | border-top-left-radius: 10px 10px; 11 | border-top-right-radius: 10px 10px; 12 | border-bottom-left-radius: 10px 10px; 13 | border-bottom-right-radius: 10px 10px; 14 | text-align: center; 15 | color: black; 16 | } 17 | 18 | .sidePanelLeft { 19 | margin-top: 15px; 20 | margin-bottom: 15px; 21 | text-align: left; 22 | min-width: 380px; 23 | max-width: 300px; 24 | font-family: monospace; 25 | } 26 | 27 | .sidePanelTitle { 28 | padding-left: 10px; 29 | padding-top: 2px; 30 | padding-bottom: 2px; 31 | border-top-left-radius: 10px 10px; 32 | border-top-right-radius: 10px 10px; 33 | background: green; 34 | font-weight: bold; 35 | font-size: 15; 36 | color: white; 37 | } 38 | 39 | .sidePanelContent { 40 | padding-left: 10px; 41 | padding-right: 10px; 42 | padding-top: 5px; 43 | padding-bottom: 5px; 44 | background: black; 45 | border-bottom-left-radius: 10px 10px; 46 | border-bottom-right-radius: 10px 10px; 47 | color: white; 48 | border-color: green; 49 | border-style: solid; 50 | border-width: 1px 51 | } 52 | -------------------------------------------------------------------------------- /infusions/sslstrip/css/sslstrip.css: -------------------------------------------------------------------------------- 1 | * { 2 | font-family: courier; 3 | font-size: 13px; 4 | } 5 | 6 | #version { 7 | text-align: right; 8 | margin: 5px 10px -12px; 9 | } 10 | 11 | select { 12 | background-color: black; 13 | border-style: none; 14 | color: white; 15 | } 16 | 17 | input { 18 | font-family: courier; 19 | font-weight: bold; 20 | background-color: black; 21 | color: gray; 22 | border-style: dotted; 23 | } 24 | 25 | textarea { 26 | background-color: black; 27 | color: white; 28 | border-style: dashed; 29 | height: 250px; 30 | width: 100%; 31 | } 32 | 33 | .grid { 34 | padding: 0; 35 | border-spacing: 1px; 36 | border-collapse: separate; 37 | color: black; 38 | } 39 | .grid td { 40 | padding: 2px; 41 | margin: 0px; 42 | color: black; 43 | } 44 | 45 | .tab ul { 46 | margin-left: -40px; 47 | } 48 | .tab li { 49 | list-style: none; 50 | float: left; 51 | } 52 | .tab ul a { 53 | display: block; 54 | padding: 6px 10px; 55 | text-decoration: none!important; 56 | margin: 1px; 57 | margin-left: 0; 58 | color: #FFF; 59 | background: green; 60 | } 61 | .tab ul a:hover { 62 | color: #FFF; 63 | background: #111; 64 | } 65 | .tab ul a.selected { 66 | margin-bottom: 0; 67 | color: #000; 68 | background: snow; 69 | border-bottom: 1px solid snow; 70 | cursor: default; 71 | } 72 | .tab div { 73 | padding: 10px 5px; 74 | clear: left; 75 | background: snow; 76 | width: 80%; 77 | color: black; 78 | } 79 | .tab div a { 80 | color: #000; 81 | font-weight: bold; 82 | } 83 | 84 | .navbar { 85 | top: 10px; 86 | min-width: 100%; 87 | background: green; 88 | border-top-left-radius: 10px 10px; 89 | border-top-right-radius: 10px 10px; 90 | border-bottom-left-radius: 10px 10px; 91 | border-bottom-right-radius: 10px 10px; 92 | text-align: center; 93 | color: black; 94 | } -------------------------------------------------------------------------------- /infusions/sslstrip/js/jquery.base64.min.js: -------------------------------------------------------------------------------- 1 | "use strict";jQuery.base64=(function($){var _PADCHAR="=",_ALPHA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",_VERSION="1.0";function _getbyte64(s,i){var idx=_ALPHA.indexOf(s.charAt(i));if(idx===-1){throw"Cannot decode base64"}return idx}function _decode(s){var pads=0,i,b10,imax=s.length,x=[];s=String(s);if(imax===0){return s}if(imax%4!==0){throw"Cannot decode base64"}if(s.charAt(imax-1)===_PADCHAR){pads=1;if(s.charAt(imax-2)===_PADCHAR){pads=2}imax-=4}for(i=0;i>16,(b10>>8)&255,b10&255))}switch(pads){case 1:b10=(_getbyte64(s,i)<<18)|(_getbyte64(s,i+1)<<12)|(_getbyte64(s,i+2)<<6);x.push(String.fromCharCode(b10>>16,(b10>>8)&255));break;case 2:b10=(_getbyte64(s,i)<<18)|(_getbyte64(s,i+1)<<12);x.push(String.fromCharCode(b10>>16));break}return x.join("")}function _getbyte(s,i){var x=s.charCodeAt(i);if(x>255){throw"INVALID_CHARACTER_ERR: DOM Exception 5"}return x}function _encode(s){if(arguments.length!==1){throw"SyntaxError: exactly one argument required"}s=String(s);var i,b10,x=[],imax=s.length-s.length%3;if(s.length===0){return s}for(i=0;i>18));x.push(_ALPHA.charAt((b10>>12)&63));x.push(_ALPHA.charAt((b10>>6)&63));x.push(_ALPHA.charAt(b10&63))}switch(s.length-imax){case 1:b10=_getbyte(s,i)<<16;x.push(_ALPHA.charAt(b10>>18)+_ALPHA.charAt((b10>>12)&63)+_PADCHAR+_PADCHAR);break;case 2:b10=(_getbyte(s,i)<<16)|(_getbyte(s,i+1)<<8);x.push(_ALPHA.charAt(b10>>18)+_ALPHA.charAt((b10>>12)&63)+_ALPHA.charAt((b10>>6)&63)+_PADCHAR);break}return x.join("")}return{decode:_decode,encode:_encode,VERSION:_VERSION}}(jQuery)); -------------------------------------------------------------------------------- /infusions/sslstrip/js/jquery.idTabs.min.js: -------------------------------------------------------------------------------- 1 | /* idTabs ~ Sean Catchpole - Version 2.2 - MIT/GPL */ 2 | (function(){var dep={"jQuery":"http://code.jquery.com/jquery-latest.min.js"};var init=function(){(function($){$.fn.idTabs=function(){var s={};for(var i=0;i&1"; 20 | else 21 | $full_cmd = "sslstrip -k -f -w ".$module_path."log/output_".$time.".log 2>&1"; 22 | 23 | shell_exec("echo \"#!/bin/sh\n".$full_cmd." &\" > ".$module_path."sslstrip.sh && chmod +x ".$module_path."sslstrip.sh &"); 24 | $cmd = "echo ".$module_path."sslstrip.sh | at now"; 25 | } 26 | 27 | if (isset($_GET['stop'])) 28 | { 29 | $rule_http_number = exec("iptables -t nat --line-numbers -n -L | grep 80 | grep 10000 | awk {'print $1'}") != "" ? 1 : 0; 30 | exec("iptables -t nat -D PREROUTING ".$rule_http_number); 31 | $rule_https_number = exec("iptables -t nat --line-numbers -n -L | grep 443 | grep 10000 | awk {'print $1'}") != "" ? 1 : 0; 32 | exec("iptables -t nat -D PREROUTING ".$rule_https_number); 33 | 34 | $cmd = "kill `ps -ax | grep sslstrip | grep -v -e grep | grep -v -e php | awk {'print $1'}`"; 35 | } 36 | } 37 | else 38 | { 39 | echo "sslstrip is not installed..."; 40 | } 41 | } 42 | 43 | if (isset($_GET['load'])) 44 | { 45 | if (isset($_GET['file'])) 46 | { 47 | if (isset($_GET['log'])) 48 | { 49 | $log_date = date ("F d Y H:i:s", filemtime($module_path."log/".$_GET['file'])); 50 | echo "sslstrip ".$_GET['file']." [".$log_date."]\n"; 51 | echo file_get_contents($module_path."log/".$_GET['file']); 52 | } 53 | else if (isset($_GET['custom'])) 54 | { 55 | $log_date = date ("F d Y H:i:s", filemtime($module_path."custom/".$_GET['file'])); 56 | echo "Custom script ".$_GET['file']." [".$log_date."]\n"; 57 | echo file_get_contents($module_path."custom/".$_GET['file']); 58 | } 59 | } 60 | } 61 | 62 | if (isset($_GET['delete'])) 63 | { 64 | if (isset($_GET['file'])) 65 | { 66 | if (isset($_GET['log'])) 67 | $cmd = "rm -rf ".$module_path."log/".$_GET['file']."*"; 68 | else if (isset($_GET['custom'])) 69 | $cmd = "rm -rf ".$module_path."custom/".$_GET['file']."*"; 70 | } 71 | } 72 | 73 | if (isset($_GET['install'])) 74 | { 75 | if (isset($_GET['where'])) 76 | { 77 | $where = $_GET['where']; 78 | 79 | switch($where) 80 | { 81 | case 'usb': 82 | $cmd = "opkg update && opkg install sslstrip --dest usb"; 83 | break; 84 | 85 | case 'internal': 86 | $cmd = "opkg update && opkg install sslstrip"; 87 | break; 88 | } 89 | } 90 | } 91 | 92 | if (isset($_GET['boot'])) 93 | { 94 | if (isset($_GET['action'])) 95 | { 96 | $action = $_GET['action']; 97 | 98 | switch($action) 99 | { 100 | case 'enable': 101 | exec("sed -i '/exit 0/d' /etc/rc.local"); 102 | exec("echo ".$module_path."autostart.sh >> /etc/rc.local"); 103 | exec("echo exit 0 >> /etc/rc.local"); 104 | break; 105 | 106 | case 'disable': 107 | exec("sed -i '/sslstrip\/autostart.sh/d' /etc/rc.local"); 108 | break; 109 | } 110 | } 111 | } 112 | 113 | if (isset($_GET['execute'])) 114 | { 115 | if (isset($_GET['cmd'])) 116 | { 117 | $time = time(); $cmd = stripslashes(base64_decode($_GET['cmd'])); 118 | $full_cmd = "(".$cmd.") &> ".$module_path."custom/output_".$time.".log &"; 119 | 120 | $filename = $module_path."custom.sh"; 121 | 122 | $newdata = "#!/bin/sh\n".$full_cmd; 123 | $newdata = ereg_replace(13, "", $newdata); 124 | $fw = fopen($filename, 'w+'); 125 | $fb = fwrite($fw,stripslashes($newdata)); 126 | fclose($fw); 127 | 128 | shell_exec("chmod +x ".$module_path."custom.sh &"); 129 | $cmd = "echo ".$module_path."custom.sh | at now"; 130 | } 131 | } 132 | 133 | if($cmd != "") 134 | { 135 | $output = shell_exec($cmd); 136 | 137 | if($output != "") 138 | echo trim($output); 139 | } 140 | 141 | ?> -------------------------------------------------------------------------------- /infusions/sslstrip/sslstrip_conf.php: -------------------------------------------------------------------------------- 1 | "; 10 | echo "Command executed on selected capture [Variables: %%FILENAME%%]
"; 11 | echo ''; 12 | echo ""; 13 | } 14 | 15 | if (isset($_POST['set_conf'])) 16 | { 17 | if (isset($_POST['commands'])) 18 | { 19 | $commands = stripslashes(base64_decode($_POST['commands'])); 20 | 21 | $filename = $module_path."sslstrip.conf"; 22 | 23 | $newdata = $commands; 24 | $newdata = ereg_replace(13, "", $newdata); 25 | $fw = fopen($filename, 'w+'); 26 | $fb = fwrite($fw,stripslashes($newdata)); 27 | fclose($fw); 28 | } 29 | } 30 | ?> 31 | -------------------------------------------------------------------------------- /infusions/sslstrip/sslstrip_data.php: -------------------------------------------------------------------------------- 1 | No log history..."; 11 | 12 | for($i=0;$i $module_path."log/".basename($log_list[$i])); 15 | $custom_command = addslashes(replace_tags($tags, $custom_commands[0])); 16 | 17 | $info = explode("_", basename($log_list[$i])); 18 | echo date('Y-m-d H-i-s', $info[1])." ["; 19 | echo "view | "; 20 | echo "download | "; 21 | echo "exec | "; 22 | echo "delete]
"; 23 | } 24 | } 25 | 26 | if (isset($_GET['custom'])) 27 | { 28 | $log_list = array_reverse(glob($module_path."custom/*")); 29 | 30 | if(count($log_list) == 0) 31 | echo "No custom history..."; 32 | 33 | for($i=0;$iview | "; 38 | echo "download | "; 39 | echo "delete]
"; 40 | } 41 | } 42 | 43 | if (isset($_GET['lastlog'])) 44 | { 45 | if ($is_sslstrip_running) 46 | { 47 | $path = $module_path."log"; 48 | 49 | $latest_ctime = 0; 50 | $latest_filename = ''; 51 | 52 | $d = dir($path); 53 | while (false !== ($entry = $d->read())) { 54 | $filepath = "{$path}/{$entry}"; 55 | if (is_file($filepath) && filectime($filepath) > $latest_ctime) { 56 | $latest_ctime = filectime($filepath); 57 | $latest_filename = $entry; 58 | } 59 | } 60 | 61 | if($latest_filename != "") 62 | { 63 | $log_date = date ("F d Y H:i:s", filemtime($module_path."log/".$latest_filename)); 64 | echo "sslstrip ".$latest_filename." [".$log_date."]\n"; 65 | 66 | if (isset($_GET['filter']) && $_GET['filter'] != "") 67 | { 68 | $filter = stripslashes($_GET['filter']); 69 | echo "Filter: ".$filter."\n"; 70 | 71 | $cmd = "cat ".$module_path."log/".$latest_filename." | ".$filter; 72 | } 73 | else 74 | { 75 | $cmd = "cat ".$module_path."log/".$latest_filename; 76 | } 77 | 78 | exec ($cmd, $output); foreach($output as $outputline) { echo ("$outputline\n"); } 79 | } 80 | } 81 | else 82 | { 83 | echo "sslstrip is not running..."; 84 | } 85 | } 86 | 87 | ?> -------------------------------------------------------------------------------- /infusions/sslstrip/sslstrip_vars.php: -------------------------------------------------------------------------------- 1 | $data) 40 | { 41 | $buffer = str_replace("%%".$tag."%%", $data, $buffer); 42 | } 43 | 44 | return $buffer; 45 | } 46 | 47 | ?> -------------------------------------------------------------------------------- /infusions/status/css/firmware.css: -------------------------------------------------------------------------------- 1 | 2 | .navbar { 3 | top: 10px; 4 | min-width: 80%; 5 | background: green; 6 | padding-left: 5px; 7 | padding-right: 5px; 8 | padding-top: 3px; 9 | padding-bottom: 3px; 10 | border-top-left-radius: 10px 10px; 11 | border-top-right-radius: 10px 10px; 12 | border-bottom-left-radius: 10px 10px; 13 | border-bottom-right-radius: 10px 10px; 14 | text-align: center; 15 | color: black; 16 | } 17 | 18 | .sidePanelLeft { 19 | margin-top: 15px; 20 | margin-bottom: 15px; 21 | text-align: left; 22 | min-width: 600px; 23 | max-width: 300px; 24 | font-family: monospace; 25 | } 26 | 27 | .sidePanelTitle { 28 | padding-left: 10px; 29 | padding-top: 2px; 30 | padding-bottom: 2px; 31 | border-top-left-radius: 10px 10px; 32 | border-top-right-radius: 10px 10px; 33 | background: green; 34 | font-weight: bold; 35 | font-size: 15; 36 | color: white; 37 | } 38 | 39 | .sidePanelContent { 40 | padding-left: 10px; 41 | padding-right: 10px; 42 | padding-top: 5px; 43 | padding-bottom: 5px; 44 | background: black; 45 | border-bottom-left-radius: 10px 10px; 46 | border-bottom-right-radius: 10px 10px; 47 | min-height: 40px; 48 | color: white; 49 | border-color: green; 50 | border-style: solid; 51 | border-width: 1px 52 | } 53 | -------------------------------------------------------------------------------- /infusions/status/css/status.css: -------------------------------------------------------------------------------- 1 | * { 2 | font-family: courier; 3 | font-size: 13px; 4 | } 5 | 6 | #version { 7 | text-align: right; 8 | margin: 5px 10px -12px; 9 | } 10 | 11 | select { 12 | background-color: black; 13 | border-style: none; 14 | color: white; 15 | } 16 | 17 | .tab ul { 18 | margin-left: -40px; 19 | } 20 | .tab li { 21 | list-style: none; 22 | float: left; 23 | } 24 | .tab ul a { 25 | display: block; 26 | padding: 6px 10px; 27 | text-decoration: none!important; 28 | margin: 1px; 29 | margin-left: 0; 30 | color: #FFF; 31 | background: green; 32 | } 33 | .tab ul a:hover { 34 | color: #FFF; 35 | background: #111; 36 | } 37 | .tab ul a.selected { 38 | margin-bottom: 0; 39 | color: #000; 40 | background: snow; 41 | border-bottom: 1px solid snow; 42 | cursor: default; 43 | } 44 | .tab div { 45 | padding: 10px 5px; 46 | clear: left; 47 | background: snow; 48 | color: black; 49 | } 50 | .tab div a { 51 | color: #000; 52 | font-weight: bold; 53 | } 54 | 55 | img { 56 | vertical-align: text-top; 57 | } 58 | 59 | .navbar { 60 | top: 10px; 61 | min-width: 100%; 62 | background: green; 63 | border-top-left-radius: 10px 10px; 64 | border-top-right-radius: 10px 10px; 65 | border-bottom-left-radius: 10px 10px; 66 | border-bottom-right-radius: 10px 10px; 67 | text-align: center; 68 | color: black; 69 | } 70 | 71 | .settings_right { 72 | float: right; 73 | } 74 | 75 | 76 | .meter { 77 | background: none repeat scroll 0 0 #AAAAAA; 78 | border-color: #777777 #CCCCCC #CCCCCC #777777; 79 | border-width: 0.09em; 80 | float: right; 81 | height: 1.0em; 82 | margin-top: 0.09em; 83 | position: relative; 84 | width: 14.49em; 85 | } 86 | 87 | .meter .text { 88 | height: 1.0em; 89 | position: absolute; 90 | text-align: center; 91 | top: 0; 92 | width: 100%; 93 | color: #FFFFFF; 94 | } 95 | 96 | .meter .bar { 97 | background-color: green; 98 | height: 1.0em; 99 | } 100 | 101 | .setting { 102 | margin-bottom: 0.453em; 103 | margin-top: 0.453em; 104 | position: relative; 105 | } 106 | 107 | .setting .label { 108 | float: left; 109 | width: 18.931em; 110 | } 111 | 112 | #contentsInfo { 113 | padding: 0.906em; 114 | } 115 | 116 | #contentsInfo div.col2l { 117 | float: left; 118 | width: 49%; 119 | } 120 | 121 | #contentsInfo div.col2r { 122 | float: right; 123 | width: 49%; 124 | } 125 | 126 | fieldset legend { 127 | font-weight: bold; 128 | margin-left: -0.362em; 129 | padding: 0 0.272em; 130 | left: -1.268em; 131 | color: green; 132 | } 133 | 134 | fieldset { 135 | border: 0.09em solid green; 136 | margin: 0; 137 | padding: 0.725em; 138 | padding-top: 0; 139 | } -------------------------------------------------------------------------------- /infusions/status/execute.php: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | Pineapple Control Center - <?php echo $module_name." [v".$module_version."]"; ?> 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 27 | 28 | '; 35 | 36 | echo 'Execute: '.$cmd.''; 37 | 38 | exec ($cmd, $output); 39 | foreach($output as $outputline) { 40 | echo ("$outputline
");} 41 | 42 | echo ''; 43 | } 44 | 45 | ?> 46 | 47 | 48 | -------------------------------------------------------------------------------- /infusions/status/fetchcpu.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /infusions/status/fetchif.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /infusions/status/graph.php: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | Pineapple Control Center - <?php echo $module_name." [v".$module_version."]"; ?> 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 27 | 28 | '; 33 | 34 | echo 'CPU Monitoring'; 35 | 36 | echo '"; 38 | 39 | echo ''; 40 | } 41 | else 42 | { 43 | echo '
'; 44 | 45 | echo 'Bandwidth Monitoring'; 46 | 47 | echo '
'; 56 | 57 | for($i=0;$i'; 61 | 62 | echo '"; 64 | 65 | echo '
'; 66 | } 67 | 68 | echo ''; 69 | echo '
'; 70 | } 71 | 72 | ?> 73 | 74 | 75 | -------------------------------------------------------------------------------- /infusions/status/js/jquery.idTabs.min.js: -------------------------------------------------------------------------------- 1 | /* idTabs ~ Sean Catchpole - Version 2.2 - MIT/GPL */ 2 | (function(){var dep={"jQuery":"http://code.jquery.com/jquery-latest.min.js"};var init=function(){(function($){$.fn.idTabs=function(){var s={};for(var i=0;i0) return false; 5 | showDots = setInterval(function(){ 6 | var d = $("#loadingDots"); 7 | d.text().length >= 3 ? d.text('') : d.append('.'); 8 | },300); 9 | } 10 | 11 | function init() { 12 | 13 | refresh(); 14 | } 15 | 16 | function refresh() { 17 | $("#refresh_text").html('Loading'); 18 | showLoadingDots(); 19 | 20 | $.ajax({ 21 | type: "POST", 22 | url: "status_data.php", 23 | success: function(msg){ 24 | $("#content").html(msg); 25 | $("#refresh_text").html(''); clearInterval(showDots); 26 | } 27 | }); 28 | } 29 | 30 | function getOUIFromMAC(mac) { 31 | 32 | var top = 30; 33 | var left = Math.floor(screen.availWidth * .66) - 10; 34 | var width = 700 35 | var height = 400 36 | var tab = new Array(); 37 | 38 | tab = mac.split(mac.substr(2,1)); 39 | 40 | var win = window.open("http://standards.ieee.org/cgi-bin/ouisearch?" + tab[0] + '-' + tab[1] + '-' + tab[2], 'OUI From MAC', 'top=' + top + ',left=' + left + ',width=' + width + ',height=' + height + ",resizable=yes,scrollbars=yes,statusbar=no"); 41 | win.focus(); 42 | } 43 | 44 | function graph(what) { 45 | 46 | var top = 30; 47 | var left = Math.floor(screen.availWidth * .66) - 10; 48 | var width = 700 49 | var height = 400 50 | 51 | var win = window.open("graph.php?"+what, 'Graph', 'top=' + top + ',left=' + left + ',width=' + width + ',height=' + height + ",resizable=yes,scrollbars=yes,statusbar=no"); 52 | win.focus(); 53 | } 54 | 55 | function execute(what) { 56 | 57 | var top = 30; 58 | var left = Math.floor(screen.availWidth * .66) - 10; 59 | var width = 700 60 | var height = 400 61 | 62 | var win = window.open("execute.php?cmd="+what, 'Execute', 'top=' + top + ',left=' + left + ',width=' + width + ',height=' + height + ",resizable=yes,scrollbars=yes,statusbar=no"); 63 | win.focus(); 64 | } -------------------------------------------------------------------------------- /infusions/status/status.php: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | Pineapple Control Center - <?php echo $module_name." [v".$module_version."]"; ?> 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 25 | 26 | 27 | 28 |

v

29 | 30 | [Refresh] [Bandwidth Graph] [CPU Graph] 31 | 32 |
33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /infusions/status/status_actions.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /infusions/status/status_functions.php: -------------------------------------------------------------------------------- 1 | 1)) 10 | { 11 | $ui++; 12 | $scale = $scale / 1024; 13 | } 14 | return sprintf("%0.2f %s", ($kb/$scale),$units[$ui]); 15 | } 16 | 17 | ?> -------------------------------------------------------------------------------- /infusions/status/status_vars.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /infusions/tcpdump/css/firmware.css: -------------------------------------------------------------------------------- 1 | 2 | .navbar { 3 | top: 10px; 4 | min-width: 80%; 5 | background: green; 6 | padding-left: 5px; 7 | padding-right: 5px; 8 | padding-top: 3px; 9 | padding-bottom: 3px; 10 | border-top-left-radius: 10px 10px; 11 | border-top-right-radius: 10px 10px; 12 | border-bottom-left-radius: 10px 10px; 13 | border-bottom-right-radius: 10px 10px; 14 | text-align: center; 15 | color: black; 16 | } 17 | 18 | .sidePanelLeft { 19 | margin-top: 15px; 20 | margin-bottom: 15px; 21 | text-align: left; 22 | min-width: 380px; 23 | max-width: 300px; 24 | font-family: monospace; 25 | } 26 | 27 | .sidePanelTitle { 28 | padding-left: 10px; 29 | padding-top: 2px; 30 | padding-bottom: 2px; 31 | border-top-left-radius: 10px 10px; 32 | border-top-right-radius: 10px 10px; 33 | background: green; 34 | font-weight: bold; 35 | font-size: 15; 36 | color: white; 37 | } 38 | 39 | .sidePanelContent { 40 | padding-left: 10px; 41 | padding-right: 10px; 42 | padding-top: 5px; 43 | padding-bottom: 5px; 44 | background: black; 45 | border-bottom-left-radius: 10px 10px; 46 | border-bottom-right-radius: 10px 10px; 47 | color: white; 48 | border-color: green; 49 | border-style: solid; 50 | border-width: 1px 51 | } 52 | -------------------------------------------------------------------------------- /infusions/tcpdump/css/tcpdump.css: -------------------------------------------------------------------------------- 1 | * { 2 | font-family: courier; 3 | font-size: 13px; 4 | } 5 | 6 | #version { 7 | text-align: right; 8 | margin: 5px 10px -12px; 9 | } 10 | 11 | input, select { 12 | font-family: courier; 13 | font-weight: bold; 14 | background-color: black; 15 | color: gray; 16 | border-style: dotted; 17 | } 18 | 19 | textarea { 20 | background-color: black; 21 | color: white; 22 | border-style: dashed; 23 | height: 250px; 24 | width: 100%; 25 | } 26 | 27 | .grid { 28 | padding: 0; 29 | border-spacing: 1px; 30 | border-collapse: separate; 31 | color: black; 32 | } 33 | .grid td { 34 | padding: 2px; 35 | margin: 0px; 36 | color: black; 37 | } 38 | 39 | .tab ul { 40 | margin-left: -40px; 41 | } 42 | .tab li { 43 | list-style: none; 44 | float: left; 45 | } 46 | .tab ul a { 47 | display: block; 48 | padding: 6px 10px; 49 | text-decoration: none!important; 50 | margin: 1px; 51 | margin-left: 0; 52 | color: #FFF; 53 | background: green; 54 | } 55 | .tab ul a:hover { 56 | color: #FFF; 57 | background: #111; 58 | } 59 | .tab ul a.selected { 60 | margin-bottom: 0; 61 | color: #000; 62 | background: snow; 63 | border-bottom: 1px solid snow; 64 | cursor: default; 65 | } 66 | .tab div { 67 | padding: 10px 5px; 68 | clear: left; 69 | background: snow; 70 | width: 80%; 71 | color: black; 72 | } 73 | .tab div a { 74 | color: #000; 75 | font-weight: bold; 76 | } 77 | 78 | .navbar { 79 | top: 10px; 80 | min-width: 100%; 81 | background: green; 82 | border-top-left-radius: 10px 10px; 83 | border-top-right-radius: 10px 10px; 84 | border-bottom-left-radius: 10px 10px; 85 | border-bottom-right-radius: 10px 10px; 86 | text-align: center; 87 | color: black; 88 | } -------------------------------------------------------------------------------- /infusions/tcpdump/js/jquery.idTabs.min.js: -------------------------------------------------------------------------------- 1 | /* idTabs ~ Sean Catchpole - Version 2.2 - MIT/GPL */ 2 | (function(){var dep={"jQuery":"http://code.jquery.com/jquery-latest.min.js"};var init=function(){(function($){$.fn.idTabs=function(){var s={};for(var i=0;i ".$module_path."dumps/capture.log"; 11 | 12 | shell_exec("echo \"#!/bin/sh\n".$full_cmd." &\" > ".$module_path."tcpdump.sh && chmod +x ".$module_path."tcpdump.sh &"); 13 | $cmd = "echo ".$module_path."tcpdump.sh | at now"; 14 | } 15 | } 16 | 17 | if (isset($_GET['cancel'])) 18 | { 19 | $cmd = "killall tcpdump &"; 20 | } 21 | 22 | if (isset($_GET['load'])) 23 | { 24 | if (isset($_GET['file'])) 25 | { 26 | echo file_get_contents($module_path."dumps/".$_GET['file']); 27 | } 28 | } 29 | 30 | if (isset($_GET['delete'])) 31 | { 32 | if (isset($_GET['file'])) 33 | { 34 | $cmd = "rm -rf ".$module_path."dumps/".$_GET['file']; 35 | } 36 | } 37 | 38 | if (isset($_GET['install'])) 39 | { 40 | if (isset($_GET['where'])) 41 | { 42 | $where = $_GET['where']; 43 | 44 | switch($where) 45 | { 46 | case 'usb': 47 | $cmd = "opkg update && opkg install tcpdump --dest usb"; 48 | break; 49 | 50 | case 'internal': 51 | $cmd = "opkg update && opkg install tcpdump"; 52 | break; 53 | } 54 | } 55 | } 56 | 57 | if($cmd != "") 58 | { 59 | $output = shell_exec($cmd); 60 | 61 | if($output != "") 62 | echo trim($output); 63 | } 64 | 65 | ?> -------------------------------------------------------------------------------- /infusions/tcpdump/tcpdump_data.php: -------------------------------------------------------------------------------- 1 | No dump history..."; 11 | 12 | for($i=0;$idownload | "; 20 | echo "delete]
"; 21 | } 22 | } 23 | } 24 | 25 | ?> -------------------------------------------------------------------------------- /infusions/tcpdump/tcpdump_vars.php: -------------------------------------------------------------------------------- 1 | "-n", 26 | "Don't resolve hostnames or port names" => "-nn" 27 | ); 28 | 29 | $options = array( 30 | "Don't print domain name qualification of host names" => "-N", 31 | "Show the packet's contents in both hex and ASCII" => "-X", 32 | "Print absolute sequence numbers" => "-S", 33 | "Get the ethernet header as well" => "-e", 34 | "Show less protocol information" => "-q", 35 | "Monitor mode" => "-I", 36 | ); 37 | 38 | $verbose = array( 39 | "Verbose" => "-v", 40 | "Very verbose" => "-vv", 41 | "Very very verbose" => "-vvv" 42 | ); 43 | 44 | $timestamp = array( 45 | "Don't print a timestamp on each dump line" => "-t", 46 | "Print an unformatted timestamp on each dump line" => "-tt", 47 | "Print a delta (micro-second resolution) between current and previous line on each dump line" => "-ttt", 48 | "Print a timestamp in default format proceeded by date on each dump line" => "-tttt", 49 | "Print a delta (micro-second resolution) between current and first line on each dump line" => "-ttttt" 50 | ); 51 | 52 | function dataSize($path) 53 | { 54 | $blah = exec( "/usr/bin/du -sch $path | tail -1 | awk {'print $1'}" ); 55 | return $blah; 56 | } 57 | 58 | ?> -------------------------------------------------------------------------------- /infusions/urlsnarf/autostart.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | MYPATH="$(dirname $0)/" 4 | MYTIME=`date +%s` 5 | 6 | urlsnarf -i br-lan > ${MYPATH}log/output_${MYTIME}.log & -------------------------------------------------------------------------------- /infusions/urlsnarf/css/firmware.css: -------------------------------------------------------------------------------- 1 | 2 | .navbar { 3 | top: 10px; 4 | min-width: 80%; 5 | background: green; 6 | padding-left: 5px; 7 | padding-right: 5px; 8 | padding-top: 3px; 9 | padding-bottom: 3px; 10 | border-top-left-radius: 10px 10px; 11 | border-top-right-radius: 10px 10px; 12 | border-bottom-left-radius: 10px 10px; 13 | border-bottom-right-radius: 10px 10px; 14 | text-align: center; 15 | color: black; 16 | } 17 | 18 | .sidePanelLeft { 19 | margin-top: 15px; 20 | margin-bottom: 15px; 21 | text-align: left; 22 | min-width: 380px; 23 | max-width: 300px; 24 | font-family: monospace; 25 | } 26 | 27 | .sidePanelTitle { 28 | padding-left: 10px; 29 | padding-top: 2px; 30 | padding-bottom: 2px; 31 | border-top-left-radius: 10px 10px; 32 | border-top-right-radius: 10px 10px; 33 | background: green; 34 | font-weight: bold; 35 | font-size: 15; 36 | color: white; 37 | } 38 | 39 | .sidePanelContent { 40 | padding-left: 10px; 41 | padding-right: 10px; 42 | padding-top: 5px; 43 | padding-bottom: 5px; 44 | background: black; 45 | border-bottom-left-radius: 10px 10px; 46 | border-bottom-right-radius: 10px 10px; 47 | min-height: 40px; 48 | color: white; 49 | border-color: green; 50 | border-style: solid; 51 | border-width: 1px 52 | } 53 | -------------------------------------------------------------------------------- /infusions/urlsnarf/css/urlsnarf.css: -------------------------------------------------------------------------------- 1 | * { 2 | font-family: courier; 3 | font-size: 13px; 4 | } 5 | 6 | #version { 7 | text-align: right; 8 | margin: 5px 10px -12px; 9 | } 10 | 11 | select { 12 | background-color: black; 13 | border-style: none; 14 | color: white; 15 | } 16 | 17 | input { 18 | font-family: courier; 19 | font-weight: bold; 20 | background-color: black; 21 | color: gray; 22 | border-style: dotted; 23 | } 24 | 25 | textarea { 26 | background-color: black; 27 | color: white; 28 | border-style: dashed; 29 | height: 250px; 30 | width: 100%; 31 | } 32 | 33 | .grid { 34 | padding: 0; 35 | border-spacing: 1px; 36 | border-collapse: separate; 37 | color: black; 38 | } 39 | .grid td { 40 | padding: 2px; 41 | margin: 0px; 42 | color: black; 43 | } 44 | 45 | .tab ul { 46 | margin-left: -40px; 47 | } 48 | .tab li { 49 | list-style: none; 50 | float: left; 51 | } 52 | .tab ul a { 53 | display: block; 54 | padding: 6px 10px; 55 | text-decoration: none!important; 56 | margin: 1px; 57 | margin-left: 0; 58 | color: #FFF; 59 | background: green; 60 | } 61 | .tab ul a:hover { 62 | color: #FFF; 63 | background: #111; 64 | } 65 | .tab ul a.selected { 66 | margin-bottom: 0; 67 | color: #000; 68 | background: snow; 69 | border-bottom: 1px solid snow; 70 | cursor: default; 71 | } 72 | .tab div { 73 | padding: 10px 5px; 74 | clear: left; 75 | background: snow; 76 | width: 80%; 77 | color: black; 78 | } 79 | .tab div a { 80 | color: #000; 81 | font-weight: bold; 82 | } 83 | 84 | .navbar { 85 | top: 10px; 86 | min-width: 100%; 87 | background: green; 88 | border-top-left-radius: 10px 10px; 89 | border-top-right-radius: 10px 10px; 90 | border-bottom-left-radius: 10px 10px; 91 | border-bottom-right-radius: 10px 10px; 92 | text-align: center; 93 | color: black; 94 | } -------------------------------------------------------------------------------- /infusions/urlsnarf/js/jquery.base64.min.js: -------------------------------------------------------------------------------- 1 | "use strict";jQuery.base64=(function($){var _PADCHAR="=",_ALPHA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",_VERSION="1.0";function _getbyte64(s,i){var idx=_ALPHA.indexOf(s.charAt(i));if(idx===-1){throw"Cannot decode base64"}return idx}function _decode(s){var pads=0,i,b10,imax=s.length,x=[];s=String(s);if(imax===0){return s}if(imax%4!==0){throw"Cannot decode base64"}if(s.charAt(imax-1)===_PADCHAR){pads=1;if(s.charAt(imax-2)===_PADCHAR){pads=2}imax-=4}for(i=0;i>16,(b10>>8)&255,b10&255))}switch(pads){case 1:b10=(_getbyte64(s,i)<<18)|(_getbyte64(s,i+1)<<12)|(_getbyte64(s,i+2)<<6);x.push(String.fromCharCode(b10>>16,(b10>>8)&255));break;case 2:b10=(_getbyte64(s,i)<<18)|(_getbyte64(s,i+1)<<12);x.push(String.fromCharCode(b10>>16));break}return x.join("")}function _getbyte(s,i){var x=s.charCodeAt(i);if(x>255){throw"INVALID_CHARACTER_ERR: DOM Exception 5"}return x}function _encode(s){if(arguments.length!==1){throw"SyntaxError: exactly one argument required"}s=String(s);var i,b10,x=[],imax=s.length-s.length%3;if(s.length===0){return s}for(i=0;i>18));x.push(_ALPHA.charAt((b10>>12)&63));x.push(_ALPHA.charAt((b10>>6)&63));x.push(_ALPHA.charAt(b10&63))}switch(s.length-imax){case 1:b10=_getbyte(s,i)<<16;x.push(_ALPHA.charAt(b10>>18)+_ALPHA.charAt((b10>>12)&63)+_PADCHAR+_PADCHAR);break;case 2:b10=(_getbyte(s,i)<<16)|(_getbyte(s,i+1)<<8);x.push(_ALPHA.charAt(b10>>18)+_ALPHA.charAt((b10>>12)&63)+_ALPHA.charAt((b10>>6)&63)+_PADCHAR);break}return x.join("")}return{decode:_decode,encode:_encode,VERSION:_VERSION}}(jQuery)); -------------------------------------------------------------------------------- /infusions/urlsnarf/js/jquery.idTabs.min.js: -------------------------------------------------------------------------------- 1 | /* idTabs ~ Sean Catchpole - Version 2.2 - MIT/GPL */ 2 | (function(){var dep={"jQuery":"http://code.jquery.com/jquery-latest.min.js"};var init=function(){(function($){$.fn.idTabs=function(){var s={};for(var i=0;i 6 | 7 | 8 | Pineapple Control Center - <?php echo $module_name." [v".$module_version."]"; ?> 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 26 | 27 | 28 | 29 | 30 |

v

31 | 32 |
33 |
34 |
35 | installed
"; 40 | } 41 | else 42 | { 43 | echo "urlsnarf"; 44 | echo " not installed
"; 45 | } 46 | 47 | if ($is_urlsnarf_running) 48 | { 49 | echo "urlsnarf enabled"; 50 | echo " | Stop "; 51 | } 52 | else 53 | { 54 | echo "urlsnarf disabled"; 55 | echo " | Start "; 56 | } 57 | 58 | if($is_urlsnarf_running) 59 | echo ''; 62 | 63 | for($i=0;$i'.$interfaces[$i].''; 67 | else 68 | echo ''; 69 | } 70 | echo '

'; 71 | 72 | if ($is_urlsnarf_onboot) 73 | { 74 | echo "Autostart enabled"; 75 | echo " | Disable
"; 76 | } 77 | else 78 | { 79 | echo "Autostart disabled"; 80 | echo " | Enable
"; 81 | } 82 | ?> 83 |
84 |
85 | 86 |
87 | 93 | 94 |
95 | [Refresh] Filter Piped commands used to filter output (e.g. grep, awk)

96 | 97 |
98 | 99 |
100 | [Refresh]
101 |
102 |
103 | 104 |
105 | [Refresh]
106 |
107 |
108 | 109 |
110 | [Save]
111 |
112 |
113 | 114 |
115 |
116 | Auto-refresh Off 125 | 126 | 127 | 128 | -------------------------------------------------------------------------------- /infusions/urlsnarf/urlsnarf.run: -------------------------------------------------------------------------------- 1 | br-lan 2 | -------------------------------------------------------------------------------- /infusions/urlsnarf/urlsnarf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | urlsnarf -i br-lan > /pineapple/infusions/urlsnarf/log/output_1361541278.log 3 | -------------------------------------------------------------------------------- /infusions/urlsnarf/urlsnarf_actions.php: -------------------------------------------------------------------------------- 1 | ".$module_path."urlsnarf.run"); 13 | 14 | $time = time(); 15 | $full_cmd = "urlsnarf -i ".$interface_run." > ".$module_path."log/output_".$time.".log"; 16 | 17 | shell_exec("echo \"#!/bin/sh\n".$full_cmd."\" > ".$module_path."urlsnarf.sh && chmod +x ".$module_path."urlsnarf.sh &"); 18 | $cmd = "echo ".$module_path."urlsnarf.sh | at now"; 19 | } 20 | if (isset($_GET['stop'])) 21 | { 22 | $cmd = "kill `ps -ax | grep urlsnarf | grep -v -e grep | grep -v -e php | awk {'print $1'}`"; 23 | 24 | exec("echo \"\" > ".$module_path."urlsnarf.run"); 25 | } 26 | } 27 | 28 | if (isset($_GET['load'])) 29 | { 30 | if (isset($_GET['file'])) 31 | { 32 | if (isset($_GET['log'])) 33 | { 34 | $log_date = date ("F d Y H:i:s", filemtime($module_path."log/".$_GET['file'])); 35 | echo "urlsnarf ".$_GET['file']." [".$log_date."]\n"; 36 | echo file_get_contents($module_path."log/".$_GET['file']); 37 | } 38 | else if (isset($_GET['custom'])) 39 | { 40 | $log_date = date ("F d Y H:i:s", filemtime($module_path."custom/".$_GET['file'])); 41 | echo "Custom script ".$_GET['file']." [".$log_date."]\n"; 42 | echo file_get_contents($module_path."custom/".$_GET['file']); 43 | } 44 | } 45 | } 46 | 47 | if (isset($_GET['delete'])) 48 | { 49 | if (isset($_GET['file'])) 50 | { 51 | if (isset($_GET['log'])) 52 | $cmd = "rm -rf ".$module_path."log/".$_GET['file']."*"; 53 | else if (isset($_GET['custom'])) 54 | $cmd = "rm -rf ".$module_path."custom/".$_GET['file']."*"; 55 | } 56 | } 57 | 58 | if (isset($_GET['boot'])) 59 | { 60 | if (isset($_GET['action'])) 61 | { 62 | $action = $_GET['action']; 63 | 64 | switch($action) 65 | { 66 | case 'enable': 67 | exec("sed -i '/exit 0/d' /etc/rc.local"); 68 | exec("echo ".$module_path."autostart.sh >> /etc/rc.local"); 69 | exec("echo exit 0 >> /etc/rc.local"); 70 | break; 71 | 72 | case 'disable': 73 | exec("sed -i '/urlsnarf\/autostart.sh/d' /etc/rc.local"); 74 | break; 75 | } 76 | } 77 | } 78 | 79 | if (isset($_GET['execute'])) 80 | { 81 | if (isset($_GET['cmd'])) 82 | { 83 | $time = time(); $cmd = stripslashes(base64_decode($_GET['cmd'])); 84 | $full_cmd = "(".$cmd.") &> ".$module_path."custom/output_".$time.".log &"; 85 | 86 | $filename = $module_path."custom.sh"; 87 | 88 | $newdata = "#!/bin/sh\n".$full_cmd; 89 | $newdata = ereg_replace(13, "", $newdata); 90 | $fw = fopen($filename, 'w+'); 91 | $fb = fwrite($fw,stripslashes($newdata)); 92 | fclose($fw); 93 | 94 | shell_exec("chmod +x ".$module_path."custom.sh &"); 95 | $cmd = "echo ".$module_path."custom.sh | at now"; 96 | } 97 | } 98 | 99 | if($cmd != "") 100 | { 101 | $output = shell_exec($cmd); 102 | 103 | if($output != "") 104 | echo trim($output); 105 | } 106 | 107 | ?> -------------------------------------------------------------------------------- /infusions/urlsnarf/urlsnarf_conf.php: -------------------------------------------------------------------------------- 1 | "; 10 | echo "Command executed on selected capture [Variables: %%FILENAME%%]
"; 11 | echo ''; 12 | echo ""; 13 | } 14 | 15 | if (isset($_POST['set_conf'])) 16 | { 17 | if (isset($_POST['commands'])) 18 | { 19 | $commands = stripslashes(base64_decode($_POST['commands'])); 20 | 21 | $filename = $module_path."urlsnarf.conf"; 22 | 23 | $newdata = $commands; 24 | $newdata = ereg_replace(13, "", $newdata); 25 | $fw = fopen($filename, 'w+'); 26 | $fb = fwrite($fw,stripslashes($newdata)); 27 | fclose($fw); 28 | } 29 | } 30 | ?> 31 | -------------------------------------------------------------------------------- /infusions/urlsnarf/urlsnarf_data.php: -------------------------------------------------------------------------------- 1 | No log history..."; 11 | 12 | for($i=0;$i $module_path."log/".basename($log_list[$i])); 17 | $custom_command = addslashes(replace_tags($tags, $custom_commands[0])); 18 | 19 | $info = explode("_", basename($log_list[$i])); 20 | echo date('Y-m-d H-i-s', $info[1])." ["; 21 | echo "view | "; 22 | echo "download | "; 23 | echo "exec | "; 24 | echo "delete]
"; 25 | } 26 | } 27 | } 28 | 29 | if (isset($_GET['custom'])) 30 | { 31 | $log_list = array_reverse(glob($module_path."custom/*")); 32 | 33 | if(count($log_list) == 0) 34 | echo "No custom history..."; 35 | 36 | for($i=0;$iview | "; 41 | echo "download | "; 42 | echo "delete]
"; 43 | } 44 | } 45 | 46 | if (isset($_GET['lastlog'])) 47 | { 48 | if ($is_urlsnarf_running) 49 | { 50 | $path = $module_path."log"; 51 | 52 | $latest_ctime = 0; 53 | $latest_filename = ''; 54 | 55 | $d = dir($path); 56 | while (false !== ($entry = $d->read())) { 57 | $filepath = "{$path}/{$entry}"; 58 | if (is_file($filepath) && filectime($filepath) > $latest_ctime) { 59 | $latest_ctime = filectime($filepath); 60 | $latest_filename = $entry; 61 | } 62 | } 63 | 64 | if($latest_filename != "") 65 | { 66 | $log_date = date ("Y-m-d H-i-s", filemtime($module_path."log/".$latest_filename)); 67 | echo "urlsnarf ".$latest_filename." [".$log_date."]\n"; 68 | 69 | if (isset($_GET['filter']) && $_GET['filter'] != "") 70 | { 71 | $filter = stripslashes($_GET['filter']); 72 | echo "Filter: ".$filter."\n"; 73 | 74 | $cmd = "cat ".$module_path."log/".$latest_filename." | ".$filter; 75 | } 76 | else 77 | { 78 | $cmd = "cat ".$module_path."log/".$latest_filename; 79 | } 80 | 81 | exec ($cmd, $output); foreach($output as $outputline) { echo ("$outputline\n"); } 82 | } 83 | } 84 | else 85 | { 86 | echo "urlsnarf is not running..."; 87 | } 88 | } 89 | 90 | ?> -------------------------------------------------------------------------------- /infusions/urlsnarf/urlsnarf_vars.php: -------------------------------------------------------------------------------- 1 | $data) 25 | { 26 | $buffer = str_replace("%%".$tag."%%", $data, $buffer); 27 | } 28 | 29 | return $buffer; 30 | } 31 | 32 | ?> -------------------------------------------------------------------------------- /karma/autoKarmaStart.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 |
 7 | 
10 | 
11 | -------------------------------------------------------------------------------- /karma/autoKarmaStop.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 |
 7 | 
10 | 
11 | -------------------------------------------------------------------------------- /karma/changeBW.php: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 |
10 | 
13 | 
14 | -------------------------------------------------------------------------------- /karma/karmaclients.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | iw dev wlan0 station dump > stadump #dump all stations connected 3 | 4 | function GetHosts() { 5 | local i=1 6 | sta_list=$(cat stadump | grep -e "Station" | cut -f 2 -d" ") #list all station bssid 7 | sta_count=$(cat stadump | grep -e "Station" | cut -f 2 -d" " | wc -w) #count how many stations 8 | 9 | while [ "${i}" -le "${sta_count}" ] # for as many times as there are stations 10 | do 11 | sta[${i}]=$(echo ${sta_list} | awk -v num=$i '{print $num}') #set sta as i in sta_list 12 | sta_ip[${i}]=$(cat /tmp/dhcp.leases | grep "${sta[${i}]}" | awk '{print $3}') # grap the IP corresponding with the bssid in the DHCP lease file 13 | sta_ssid[${i}]=$(cat /tmp/karma.log | grep "${sta[${i}]}" | grep SSID | tail -1 | awk '{print $8}') # grab the Karma'd SSID corresponding to the bssid in the karma log 14 | sta_hostname[${i}]=$(cat /tmp/dhcp.leases | grep "${sta[${i}]}" | awk '{print $4}') # grap the hostname corresponding with the bssid in the DHCP lease file 15 | sta_linenum[${i}]=$(grep -n -E "${sta[${i}]}" stadump | cut -f1 -d: ) # find out what line number the station was listed in, used later when we modify the file 16 | let "i += 1" 17 | done 18 | } 19 | 20 | function Format() { 21 | local i=1 22 | local divider=" " 23 | 24 | while [ "${i}" -le "${sta_count}" ] # do this for as many times as there are stations 25 | do 26 | line=$(grep -e "${sta[${i}]}" stadump) # grab the line with the station bssid 27 | sed -i '/'"${sta[${i}]}"'/ s/.*/'"${line}\n ip address: ${sta_ip[${i}]}\n host name: ${sta_hostname[${i}]}\n Karma SSID: ${sta_ssid[${i}]}"'/g' stadump 28 | #sed -i '/'"${sta[${i}]}"'/ i'"${divider}"'' ${DIR}/${FILE} 29 | let "i += 1" 30 | done 31 | } 32 | 33 | GetHosts 34 | Format 35 | cat stadump 36 | 37 | -------------------------------------------------------------------------------- /karma/karmaclients.sh.old: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | iw dev wlan0 station dump > stadump #dump all stations connected 3 | 4 | function GetHosts() { 5 | local i=1 6 | sta_list=$(cat stadump | grep -e "Station" | cut -f 2 -d" ") #list all station bssid 7 | sta_count=$(cat stadump | grep -e "Station" | cut -f 2 -d" " | wc -w) #count how many stations 8 | 9 | while [ "${i}" -le "${sta_count}" ] # for as many times as there are stations 10 | do 11 | sta[${i}]=$(echo ${sta_list} | awk -v num=$i '{print $num}') #set sta as i in sta_list 12 | sta_ip[${i}]=$(cat /tmp/dhcp.leases | grep "${sta[${i}]}" | awk '{print $3}') # grap the IP corresponding with the bssid in the DHCP lease file 13 | sta_ssid[${i}]=$(cat /tmp/karma.log | grep "${sta[${i}]}" | grep SSID | tail -1 | awk '{print $8}') # grab the Karma'd SSID corresponding to the bssid in the karma log 14 | sta_hostname[${i}]=$(cat /tmp/dhcp.leases | grep "${sta[${i}]}" | awk '{print $4}') # grap the hostname corresponding with the bssid in the DHCP lease file 15 | sta_linenum[${i}]=$(grep -n -E "${sta[${i}]}" stadump | cut -f1 -d: ) # find out what line number the station was listed in, used later when we modify the file 16 | let "i += 1" 17 | done 18 | } 19 | 20 | function Format() { 21 | local i=1 22 | local divider=" " 23 | 24 | while [ "${i}" -le "${sta_count}" ] # do this for as many times as there are stations 25 | do 26 | line=$(grep -e "${sta[${i}]}" stadump) # grab the line with the station bssid 27 | sed -i '/'"${sta[${i}]}"'/ s/.*/'"${line}\n ip address: ${sta_ip[${i}]}\n host name: ${sta_hostname[${i}]}\n Karma SSID: ${sta_ssid[${i}]}"'/g' stadump 28 | #sed -i '/'"${sta[${i}]}"'/ i'"${divider}"'' ${DIR}/${FILE} 29 | let "i += 1" 30 | done 31 | } 32 | 33 | GetHosts 34 | Format 35 | cat stadump 36 | 37 | -------------------------------------------------------------------------------- /karma/startkarma.php: -------------------------------------------------------------------------------- 1 | /tmp/karma.log"); 3 | exec ("echo /pineapple/karma/startkarma.sh | at now"); 4 | ?> 5 | 6 | 7 |
 8 | 
11 | 
12 | -------------------------------------------------------------------------------- /karma/startkarma.sh: -------------------------------------------------------------------------------- 1 | hostapd_cli -p /var/run/hostapd-phy0 karma_enable 2 | -------------------------------------------------------------------------------- /karma/stopkarma.php: -------------------------------------------------------------------------------- 1 | /tmp/karma.log"); 3 | exec ("hostapd_cli -p /var/run/hostapd-phy0 karma_disable"); 4 | ?> 5 | 6 | 7 |
 8 | 
11 | 
12 | -------------------------------------------------------------------------------- /logs/associations.log: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /logs/dnsspoof.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InteliSecureLabs/web-interface/6bbefb526d8180d93309bc02fba4ba3a9407f75b/logs/dnsspoof.log -------------------------------------------------------------------------------- /logs/ngrep-clean.log: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /logs/ngrep.log: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /logs/phish.log: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /logs/urlsnarf-clean.log: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /logs/urlsnarf.log: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /modules/installer.php: -------------------------------------------------------------------------------- 1 | = $size){ echo "complete"; exit(0); } 23 | 24 | $percent = round(($got/$size)*100, 1); 25 | 26 | echo "
[ "; 27 | for($i = 0; $i <= $percent/2; $i++){ 28 | if($i == 0){ 29 | 30 | }else echo "|"; 31 | } 32 | for($i = 0; $i <= (100-$percent)/2; $i++){ 33 | echo " "; 34 | } 35 | echo " ]
"; 36 | echo "$percent %"; exit(0); 37 | } 38 | 39 | exec("echo \"sh /pineapple/modules/installer.sh $_GET[name] $_GET[version] $_GET[dest] $_GET[md5]\" | at now"); 40 | 41 | 42 | 43 | ?> 44 | -------------------------------------------------------------------------------- /modules/installer.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | #Downloads and installs infusions 3 | #Do not touch. 4 | 5 | #Set up variables for more readability. 6 | name=$1 7 | version=$2 8 | dest=$3 9 | md5=$4 10 | 11 | #Tell the installer that it is working. 12 | sed -i 's/"done"/"working"/g' /pineapple/modules/installer.php 13 | sed -i 's/"md5"/"working"/g' /pineapple/modules/installer.php 14 | 15 | 16 | #Remove any left-overs. 17 | rm -rf /usb/tmp/infusions 18 | rm -rf /tmp/infusions 19 | 20 | #Download infusion. Do the magic. 21 | if [[ $dest == "usb" ]] 22 | then 23 | mkdir -p /usb/tmp/infusions 24 | wget -O /usb/tmp/infusions/mk4-module-$name-$version.tar.gz "http://cloud.wifipineapple.com/index.php?downloads&downloadModule=$name&moduleVersion=$version" 25 | if [[ $(md5sum /usb/tmp/infusions/mk4-module-$name-$version.tar.gz | head -c 33) == $md5 ]] 26 | then 27 | mkdir -p /usb/infusions/ 28 | rm /pineapple/infusions/usbModules 29 | ln -s /usb/infusions /pineapple/infusions/usbInfusions 30 | tar -xzf /usb/tmp/infusions/mk4-module-$name-$version.tar.gz -C /usb/tmp/infusions/ 31 | #get config stuff 32 | config=$(cat /usb/tmp/infusions/mk4-module-$name-$version/module.conf) 33 | confName=$(echo "$config" | grep -i name | awk '{split($0,array,"=")} END{print array[2]}') 34 | confVersion=$(echo "$config" | grep -i version | awk '{split($0,array,"=")} END{print array[2]}') 35 | confAuthor=$(echo "$config" | grep -i author | awk '{split($0,array,"=")} END{print array[2]}') 36 | confStartPage=$(echo "$config" | grep -i startPage | awk '{split($0,array,"=")} END{print array[2]}') 37 | confSupportLink=$(echo "$config" | grep -i supportLink | sed 's/supportLink=//g') 38 | mv /usb/tmp/infusions/mk4-module-$name-$version/$confName /usb/infusions/ 39 | rm -rf /usb/tmp/infusions 40 | echo "$confName|$confVersion|$dest|$confStartPage|$confSupportLink" >> /pineapple/infusions/moduleList 41 | else 42 | sed -i 's/working/md5/g' /pineapple/modules/installer.php 43 | rm -rf /usb/tmp/infusions 44 | exit 45 | fi 46 | else 47 | mkdir -p /tmp/infusions 48 | wget -O /tmp/infusions/mk4-module-$name-$version.tar.gz "http://cloud.wifipineapple.com/index.php?downloads&downloadModule=$name&moduleVersion=$version" 49 | if [[ $(md5sum /tmp/infusions/mk4-module-$name-$version.tar.gz | head -c 33) == $md5 ]] 50 | then 51 | tar -xzf /tmp/infusions/mk4-module-$name-$version.tar.gz -C /tmp/infusions/ 52 | #get config stuff 53 | config=$(cat /tmp/infusions/mk4-module-$name-$version/module.conf) 54 | confName=$(echo "$config" | grep -i name | awk '{split($0,array,"=")} END{print array[2]}') 55 | confVersion=$(echo "$config" | grep -i version | awk '{split($0,array,"=")} END{print array[2]}') 56 | confAuthor=$(echo "$config" | grep -i author | awk '{split($0,array,"=")} END{print array[2]}') 57 | confStartPage=$(echo "$config" | grep -i startPage | awk '{split($0,array,"=")} END{print array[2]}') 58 | confSupportLink=$(echo "$config" | grep -i supportLink | sed 's/supportLink=//g') 59 | mv /tmp/infusions/mk4-module-$name-$version/$confName /pineapple/infusions/ 60 | rm -rf /tmp/infusions 61 | echo "$confName|$confVersion|$dest|$confStartPage|$confSupportLink" >> /pineapple/infusions/moduleList 62 | else 63 | sed -i 's/working/md5/g' /pineapple/modules/installer.php 64 | rm -rf /tmp/infusions 65 | exit 66 | fi 67 | fi 68 | 69 | 70 | #Tell the installer that it is done 71 | sed -i 's/working/done/g' /pineapple/modules/installer.php -------------------------------------------------------------------------------- /pages/about.php: -------------------------------------------------------------------------------- 1 |
 2 | 
 3 | 
4 | WiFi Pineapple TPLink703n 5 | Software version: 6 | 7 | The TPLink WiFi Pineapple(Mod+) is brought to you by PenturaLabs
8 | 9 | The WiFi Pineapple was brought to you by the Jasager Team: 10 | Robin Wood, Darren Kitchen, Sebastian Kinne, Rob Fuller, and our hacktastic community 11 | Open source software is distributed under the GNU General Public License 12 | 13 | WiFi Pineapple is a wireless penetration testing tool 14 | for use in authorized security audits where permitted. 15 | Check laws and obtain client permission before using. 16 | Hak5, LLC., Darren Kitchen, Robin Wood, Rob Fuller, 17 | Sebastian Kinne, Midnitesnake and affiliates claim no responsability for 18 | unauthorized use. Please Hack Responsibly. 19 | 20 | Want offical support complain here! 21 | 22 | 27 | 28 | 29 |

30 | 
31 |                     \ 
32 |                   \  \
33 |                 \  \  \
34 | <,  .v ,  // ) ) )  )  )
35 |  \\; \// //     /  /  /
36 |   ;\\|||//;       /  /
37 |  ,'<\/><\/`         /
38 | ,.`X/\><\\>` 
39 | ;>/>><\\><\/`
40 | |<\\>>X/<>/\|
41 | `<\/><\/><\\;
42 |  '/\<>/\<>/'
43 |    `<\/><;`wifi_pineapple
44 | 
45 |
46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /pages/jobs.php: -------------------------------------------------------------------------------- 1 | 5 | window.location = "index.php" 6 | '; 7 | } 8 | 9 | 10 | $cronjobs = ( exec("ps | grep cron")); 11 | if(isset($_GET[start])){ 12 | exec("/etc/init.d/cron enable"); 13 | exec("/etc/init.d/cron start"); 14 | $cronjobs = "true"; 15 | } 16 | if(isset($_GET[stop])){ 17 | exec("/etc/init.d/cron stop"); 18 | exec("/etc/init.d/cron disable"); 19 | $cronjobs = ""; 20 | } 21 | 22 | 23 | $filename =$_POST['filename']; 24 | $newdata = $_POST['newdata']; 25 | 26 | if ($newdata != "") { $newdata = ereg_replace(13, "", $newdata); 27 | exec("/etc/init.d/cron restart"); 28 | $fw = fopen($filename, 'w') or die('Could not open file!'); 29 | $fb = fwrite($fw,stripslashes($newdata)) or die('Could not write to file'); 30 | fclose($fw); 31 | $message = $strings["jobs-fileUpdated"]." " . $filename . "

"; 32 | } 33 | 34 | 35 | ?> 36 | 37 |
38 |
39 |
40 | ".$strings["jobs-cronjobs-enabled"].". | ".$strings["jobs-cronjobs-disable"]."
"; 43 | } else { echo "Cron Jobs ".$strings["jobs-cronjobs-disabled"].". | ".$strings["jobs-cronjobs-enable"]."
"; } 44 | ?> 45 |
46 |
47 | 48 |
49 |
50 |
51 |
52 |
53 |
54 | ".$message."
"; ?> 55 |
56 | 57 |
58 |
59 | 64 | 65 | 66 |
67 | "; 68 | ?> 69 |
70 |

71 | 72 |
73 |
74 |
75 | 
76 | 
77 |
78 | 79 |
80 | -------------------------------------------------------------------------------- /pages/logs.php: -------------------------------------------------------------------------------- 1 |
2 | 3 |
()
4 |
5 | ");} 9 | $output = ""; 10 | ?> 11 |


12 | 13 |
()
14 |
15 | ");} 19 | $output = ""; 20 | ?> 21 |


22 | 23 | 34 | 35 |
()
36 |
37 | ");} 41 | $output = ""; 42 | ?> 43 |


44 | 45 | 46 | 47 |
48 | -------------------------------------------------------------------------------- /pages/resources.php: -------------------------------------------------------------------------------- 1 | /proc/sys/vm/drop_caches"); 6 | $message = $strings["resources-dropCachesExecuted"]; 7 | } 8 | 9 | if(isset($_GET[kill])){ 10 | echo "Killed process $_GET[kill]

"; 11 | exec("kill ".$_GET[kill]); 12 | } 13 | 14 | ?> 15 | 16 |
17 |


18 |
19 |
20 | 21 |
22 | 
28 | 
29 | echo 3 > /proc/sys/vm/drop_caches 30 | 31 |


32 | 33 | 34 |
35 |
36 |
37 | 
43 | 
44 | 45 |


46 | 47 |
48 |
49 | 56 | 57 |


58 | 59 | 60 |
61 |
62 |
63 | Kill".$line."\n";
70 |         else echo "    ".$line."\n";
71 | }
72 | $output = "";
73 | ?>
74 | 
75 | 76 |


77 | 78 | 79 |
80 | -------------------------------------------------------------------------------- /pages/scripts.php: -------------------------------------------------------------------------------- 1 |
"; 10 | } 11 | ?> 12 | 13 |
14 |
15 |
16 |
17 | 22 | 23 | 24 |
25 | "; 26 | ?> 27 |
28 | 29 |

30 | 31 |
32 |
33 | 38 | 39 |
40 | "; 41 | ?> 42 |


43 | 44 |
45 |
46 | 51 | 52 |
53 | "; 54 | ?> 55 |


56 | 57 |
58 |
59 | 64 | 65 |
66 | "; 67 | ?> 68 |


69 | 70 |
71 |
72 | 77 | 78 |
79 | "; 80 | ?> 81 |


82 | 83 | 84 | 85 |
86 | -------------------------------------------------------------------------------- /pages/usb.php: -------------------------------------------------------------------------------- 1 |
"; 10 | } ?> 11 | 12 | 13 | 14 | 15 |
16 |
17 |
18 |
19 | "); 23 | } 24 | ?> 25 | 26 |


27 | 28 |
29 |
30 | 35 |
36 | 37 | 38 |
39 | "; ?> 40 |
41 | 42 |
43 | -------------------------------------------------------------------------------- /scripts/cleanup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | logger "CLEANUP: Clean-up Script Executed" 3 | 4 | # ---------------------------------------------------------------- 5 | # The below snippet truncates the karma log if over set threshold. 6 | # TMPFS is about 12M. For larger Karma logs consider USB storage. 7 | # ---------------------------------------------------------------- 8 | 9 | # q = threshold in bytes 10 | q=5242880 11 | w=`ls -la /tmp/karma.log | awk '{print $5}'` 12 | if [ $w -ge $q ]; then 13 | logger "CLEANUP: Karma log over threshold, truncating" 14 | echo "KARMA: Log truncated to prevent memory loss by cleanup.sh" > /tmp/karma.log 15 | 16 | # ------------------------------------------------ 17 | # Consider moving log to mass storage if available 18 | # ------------------------------------------------ 19 | else 20 | logger "CLEANUP: Karma log looking good" 21 | fi 22 | 23 | 24 | # ------------------------------------------------------------------------ 25 | # The below snippet will drop caches if memory is critical. 26 | # Under normal circumstances this shouldn't be an issue but if it ever is, 27 | # this should free up enough memory to keep the device from cycling. 28 | # ------------------------------------------------------------------------ 29 | 30 | # t = threshold in bytes 31 | t=2048 32 | g=`free | grep Mem | awk '{print $4}'` 33 | if [ $g -ge $t ]; then 34 | logger "CLEANUP: memory looking good" 35 | else 36 | logger "CLEANUP: memory below threshold, dropping pagecache, dentries and inodes" 37 | sync 38 | echo 3 > /proc/sys/vm/drop_caches 39 | fi 40 | 41 | 42 | -------------------------------------------------------------------------------- /scripts/user.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # This user script is provided for custom actions and can be added to crontab or run directly from the advanced page by entering "/pineapple/scripts/user.sh" and pressing "Execute Commands" 3 | -------------------------------------------------------------------------------- /ssh/ssh-connect.sh: -------------------------------------------------------------------------------- 1 | autossh -M 20000 -N -R 4255:localhost:22 root@example.com -i /etc/dropbear/id_rsa -------------------------------------------------------------------------------- /ssh/ssh-keepalive.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # ----------------------------------------------------------------- 3 | # Simple script to check if SSH is connected and restart it if not. 4 | # ----------------------------------------------------------------- 5 | logger "SSH: Keep-Alive Script Executed" 6 | if ! ( pidof autossh); then 7 | /pineapple/ssh/ssh-connect.sh & 8 | logger "SSH: Connection seemed to be down. Issued /pineapple/ssh/ssh-connect.sh" 9 | else 10 | logger "SSH: Connection seems to be up." 11 | fi 12 | -------------------------------------------------------------------------------- /ssh/workaround-known_hosts.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | if [ ! -a /root/.ssh/known_hosts ] 3 | then 4 | touch /root/.ssh/known_hosts 5 | fi 6 | 7 | -------------------------------------------------------------------------------- /stadump: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InteliSecureLabs/web-interface/6bbefb526d8180d93309bc02fba4ba3a9407f75b/stadump -------------------------------------------------------------------------------- /upgrade/checkUSB.php: -------------------------------------------------------------------------------- 1 | = 1)?true:false; 4 | 5 | if($usbPresent){ 6 | echo "present"; 7 | }else echo "usbNotPresent"; 8 | 9 | ?> -------------------------------------------------------------------------------- /upgrade/doOTA.php: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /upgrade/doOTA.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | rm /tmp/upgrade*.bin 3 | wget -O /tmp/upgrade.bin "http://cloud.wifipineapple.com/index.php?downloads&download&stable" 4 | echo "done" > /pineapple/upgrade/otaStatus.php 5 | -------------------------------------------------------------------------------- /upgrade/doUpgrade.php: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /upgrade/otaStatus.php: -------------------------------------------------------------------------------- 1 | done 2 | -------------------------------------------------------------------------------- /upgrade/upgradeStatus.php: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /urlsnarf/starturlsnarf.php: -------------------------------------------------------------------------------- 1 | /pineapple/logs/urlsnarf.log"); 3 | exec ("echo /pineapple/urlsnarf/urlsnarf.sh | at now"); 4 | exec ("echo /pineapple/urlsnarf/update-urlsnarf.sh | at now"); 5 | ?> 6 | 7 | 8 |
 9 | 
12 | 
13 | -------------------------------------------------------------------------------- /urlsnarf/stopurlsnarf.php: -------------------------------------------------------------------------------- 1 | /pineapple/logs/urlsnarf.log"); 3 | exec ("kill `ps | grep \"urlsnarf.sh\" | grep -v -e grep | awk '{print $1}'`"); 4 | exec ("killall update-urlsnarf.sh"); 5 | exec ("kill `ps | grep \"urlsnarf -i br-lan\" | grep -v -e grep | awk '{print $1}'`"); 6 | ?> 7 | 8 | 9 |
10 | 
13 | 
14 | -------------------------------------------------------------------------------- /urlsnarf/update-urlsnarf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | while true 3 | do cat /pineapple/logs/urlsnarf.log | awk {'print $1 $8'} | sed 's,http://, ,' | sed 's/.lan//' | sed 's%/.*$%%' | uniq > /pineapple/logs/urlsnarf-clean.log 4 | sleep 10 5 | done 6 | -------------------------------------------------------------------------------- /urlsnarf/urlsnarf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | urlsnarf -i br-lan >> /pineapple/logs/urlsnarf.log 3 | -------------------------------------------------------------------------------- /wait.php: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 | 
 7 | 
 8 | (\___/)
 9 | (='.'=)
10 | (")_(")
11 | 
12 | 
13 | -------------------------------------------------------------------------------- /wifi/wlan.php: -------------------------------------------------------------------------------- 1 |