mirror of
https://github.com/SpacehuhnTech/esp8266_deauther.git
synced 2026-01-04 04:49:58 +01:00
222 lines
6.9 KiB
HTML
222 lines
6.9 KiB
HTML
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<link rel="stylesheet" href="style.css">
|
|
<script src="functions.js"></script>
|
|
<meta name="viewport" content="width=device-width, initial-scale=0.8">
|
|
</head>
|
|
<body>
|
|
<nav>
|
|
<a href="index.html">APs</a>
|
|
<a href="clients.html">Clients</a>
|
|
<a href="attack.html">Attack</a>
|
|
<a href="settings.html">Settings</a>
|
|
<ul class="right">
|
|
<a href="#" onclick="restartESP()">Restart</a>
|
|
<ul>
|
|
</nav>
|
|
<div id="content">
|
|
<h1>Settings</h1>
|
|
|
|
<p class="block bold">WiFi</p>
|
|
|
|
<label for="ssid">SSID:</label>
|
|
<input type="text" id="ssid" minlength="1" maxlength="32">
|
|
<br />
|
|
<label for="ssidHidden">hidden:</label>
|
|
<input type="checkbox" name="ssidHidden" id="ssidHidden" value="false">
|
|
<br />
|
|
|
|
<label for="password">password:</label>
|
|
<input type="text" id="password" minlength="8" maxlength="32">
|
|
<p class="small">must have at least 8 characters! (needs restart)</p>
|
|
<br />
|
|
|
|
<label for="apChannel">channel:</label>
|
|
<input type="number" id="apChannel" min="1" max="11">
|
|
|
|
<br />
|
|
<br />
|
|
<p class="block bold">AP scan</p>
|
|
|
|
<label for="apScanHidden">scan for hidden APs:</label>
|
|
<input type="checkbox" name="apScanHidden" id="apScanHidden" value="false">
|
|
|
|
<br />
|
|
<br />
|
|
<p class="block bold">Client Scan</p>
|
|
|
|
<label for="scanTime">default scan time:</label>
|
|
<input type="number" id="scanTime" min="1" max="255">s
|
|
|
|
<br />
|
|
<br />
|
|
|
|
<p class="block bold">Attack</p>
|
|
|
|
<label for="timeout">timeout:</label>
|
|
<input type="number" id="timeout" min="-1" max="65536">s
|
|
<p class="small">0 = no timeout</p>
|
|
|
|
<label for="ssidEnc">WPA2 beacons:</label>
|
|
<input type="checkbox" name="ssidEnc" id="ssidEnc" value="false">
|
|
<br />
|
|
|
|
<label for="useLed">use LED:</label>
|
|
<input type="checkbox" name="useLed" id="useLed" value="false">
|
|
<br />
|
|
|
|
<label for="deauthReason">deauth reason:</label>
|
|
<input type="number" id="deauthReason" min="1" max="45">
|
|
<p class="small">reason codes: <a target="_blank" href="http://www.aboutcher.co.uk/2012/07/linux-wifi-deauthenticated-reason-codes/">click</a></p>
|
|
|
|
<label for="packetRate">packetrate:</label>
|
|
<input type="number" id="packetRate" min="1" max="100">pkts/s
|
|
<p class="small">only for deauth attack - may cause instability!</p>
|
|
|
|
<label for="channelHop">channel hopping:</label>
|
|
<input type="checkbox" name="channelHop" id="channelHop" value="false">
|
|
<p class="small">only for deauth attack - packetrate will be ignored!</p>
|
|
<br />
|
|
|
|
<br />
|
|
<button class="warnBtn" onclick="resetSettings()">reset</button> <button onclick="saveSettings()">save</button><p class="small" id="saved"></p><br \>
|
|
<br />
|
|
<br />
|
|
|
|
<p class="block bold" id="clientNames">Client Names</p>
|
|
<table id="nameList">
|
|
<tr><th>MAC</th><th>Vendor</th><th>Name</th><th>X</th></tr>
|
|
</table>
|
|
<br />
|
|
<button class="warnBtn" onclick="clearNameList()">clear</button></p>
|
|
</div>
|
|
|
|
<table>
|
|
</table>
|
|
|
|
</body>
|
|
<script>
|
|
var nameListTable = document.getElementById('nameList');
|
|
var ssid = document.getElementById('ssid');
|
|
var ssidHidden = document.getElementById('ssidHidden');
|
|
var password = document.getElementById('password');
|
|
var apChannel = document.getElementById('apChannel');
|
|
var apScanHidden = document.getElementById('apScanHidden');
|
|
var scanTime = document.getElementById('scanTime');
|
|
var timeout = document.getElementById('timeout');
|
|
var deauthReason = document.getElementById('deauthReason');
|
|
var packetRate = document.getElementById('packetRate');
|
|
var saved = document.getElementById('saved');
|
|
var clientNames = document.getElementById('clientNames');
|
|
var ssidEnc = document.getElementById('ssidEnc');
|
|
var useLed = document.getElementById('useLed');
|
|
var channelHop = document.getElementById('channelHop');
|
|
var res;
|
|
|
|
function getData(){
|
|
getResponse("settings.json",function(responseText){
|
|
res = JSON.parse(responseText);
|
|
|
|
ssid.value = res.ssid;
|
|
ssidHidden.checked = res.ssidHidden;
|
|
password.value = res.password;
|
|
apChannel.value = res.apChannel;
|
|
apScanHidden.checked = res.apScanHidden;
|
|
scanTime.value = res.clientScanTime;
|
|
timeout.value = res.attackTimeout;
|
|
deauthReason.value = res.deauthReason;
|
|
packetRate.value = res.attackPacketRate;
|
|
ssidEnc.checked = res.attackEncrypted;
|
|
useLed.checked = res.useLed;
|
|
channelHop.checked = res.channelHop;
|
|
|
|
|
|
clientNames.innerHTML = "Client Names "+res.nameList.length+"/50";
|
|
|
|
var tr = '<tr><th>MAC</th><th>Vendor</th><th>Name</th><th>X</th></tr>';
|
|
|
|
for(var i=0;i<res.nameList.length;i++){
|
|
|
|
tr += '<tr>';
|
|
tr += '<td>'+res.nameList[i].m+'</td>';
|
|
tr += '<td>'+res.nameList[i].v+'</td>';
|
|
tr += '<td>'+res.nameList[i].n+' <a class="blue" onclick="changeName('+i+')">edit</a></td>';
|
|
tr += '<td><button class="marginNull warnBtn" onclick="deleteName('+i+')">x</button></td>';
|
|
|
|
tr += '</tr>';
|
|
}
|
|
|
|
nameListTable.innerHTML = tr;
|
|
});
|
|
}
|
|
|
|
function changeName(id){
|
|
var newName = prompt("Name for "+res.nameList[id].m);
|
|
if(newName != null){
|
|
getResponse("editNameList.json?id="+id+"&name="+newName,function(responseText){
|
|
if(responseText == "true") getData();
|
|
else alert("error");
|
|
});
|
|
}
|
|
}
|
|
|
|
function deleteName(id){
|
|
getResponse("deleteName.json?num="+id,function(responseText){
|
|
if(responseText == "true") getData();
|
|
else alert("error");
|
|
});
|
|
}
|
|
|
|
function saveSettings(){
|
|
saved.innerHTML = "saving...";
|
|
var url = "settingsSave.json";
|
|
url += "?ssid="+ssid.value;
|
|
url += "&ssidHidden="+ssidHidden.checked;
|
|
url += "&password="+password.value;
|
|
url += "&apChannel="+apChannel.value;
|
|
url += "&apScanHidden="+apScanHidden.checked;
|
|
url += "&scanTime="+scanTime.value;
|
|
url += "&timeout="+timeout.value;
|
|
url += "&deauthReason="+deauthReason.value;
|
|
url += "&packetRate="+packetRate.value;
|
|
url += "&ssidEnc="+ssidEnc.checked;
|
|
url += "&useLed="+useLed.checked;
|
|
url += "&channelHop="+channelHop.checked;
|
|
|
|
getResponse(url, function(responseText){
|
|
if(responseText == "true"){
|
|
getData();
|
|
saved.innerHTML = "saved";
|
|
}
|
|
else alert("error");
|
|
});
|
|
}
|
|
|
|
function resetSettings(){
|
|
getResponse("settingsReset.json", function(responseText){
|
|
if(responseText == "true"){
|
|
getData();
|
|
saved.innerHTML = "saved";
|
|
}
|
|
else alert("error");
|
|
});
|
|
}
|
|
|
|
function clearNameList(){
|
|
getResponse("clearNameList.json", function(responseText){
|
|
if(responseText == "true") getData();
|
|
else alert("error");
|
|
});
|
|
}
|
|
|
|
function restartESP(){
|
|
getResponse("restartESP.json", function(responseText){
|
|
if(responseText == "true") getData();
|
|
else alert("error");
|
|
});
|
|
}
|
|
|
|
getData();
|
|
</script>
|
|
</html> |