コード例 #1
0
ファイル: Scan.class.php プロジェクト: Beasta/Wicker
 public static function newScan()
 {
     global $wicker;
     $instance = new self();
     $instance->connectToDatabase();
     $guid = $wicker->newGUID();
     $statement = $instance->db->con()->prepare("INSERT INTO `scans` (`time`, `guid`) VALUES (?, ?)");
     $statement->execute(array(time(), $guid));
     return Scan::fromDB("[G]" . $guid);
 }
コード例 #2
0
ファイル: apview.php プロジェクト: Beasta/Wicker
$parent_ap = AP::fromDB($_GET['parent_scan'], $_GET['bssid']);
$ind_ap = AP::fromDB($_GET['scanid'], $_GET['bssid']);
$parent_scan = Scan::fromDB($_GET['parent_scan']);
$ind_scan = Scan::fromDB($_GET['scanid']);
if ($_GET['do'] == "terminate") {
    $scan = Scan::fromDB($_GET['scanid']);
    if ($scan->getPID() != 0 && $scan->getStatus() == 1) {
        $scan->setStatus(2);
        system("sudo kill " . $scan->getPID());
        header('Location: apview.php?parent_scan=' . $_GET['parent_scan'] . '&scanid=' . $_GET['scanid'] . '&bssid=' . $_GET['bssid']);
        die;
    }
} else {
    if ($_GET['do'] == "terminatenstart") {
        // Terminate parent scan
        $previous = Scan::fromDB($_GET['parent_scan']);
        if ($previous->getPID() != 0 && $previous->getStatus() == 1) {
            $previous->setStatus(2);
            system("sudo kill " . $previous->getPID());
        }
        // Start new individual scan
        $scan = Scan::newScan();
        $scan->setStatus(1);
        $scan->startIndScan($parent_ap->getBSSID(), $parent_ap->getChannel());
        $parent_ap->setIndScanID($scan->getID());
        header('Location: apview.php?parent_scan=' . $_GET['parent_scan'] . '&scanid=' . $scan->getID() . '&bssid=' . $_GET['bssid']);
        die;
    } else {
        if ($_GET['do'] == "deauth") {
            $wicker->deauth($_GET['bssid'], $_GET['deauthmac'], "scans/" . $ind_scan->getGUID() . ".log");
        } else {
コード例 #3
0
ファイル: scanctl.php プロジェクト: Beasta/Wicker
         header('Location: scanview.php?id=' . $scan->getID());
     } else {
         if ($scan->getPID() == 0) {
             $wicker->error("PID of scan was 0.");
         } else {
             if ($scan->getStatus() == 2) {
                 $wicker->error("This scan has already been terminated");
             } else {
                 $wicker->error("An unknown error has occured");
             }
         }
     }
     die;
 } else {
     if ($do == "update") {
         $scan = Scan::fromDB($id);
         $data = $scan->parseCSV();
         $aps = $data["aps"];
         $clients = $data["clients"];
         // Update scan counts for APs and Clients
         $scan->setAPCount(count($aps));
         $scan->setClientCount(count($clients));
         // Add APs to DB if they aren't already there
         foreach ($aps as $ap) {
             $check = AP::fromDB($scan->getID(), $ap["bssid"]);
             // Add AP if not found
             if ($check->getID() == null) {
                 AP::newAP($scan->getID(), $ap["bssid"], strtotime($ap["first_seen"]), strtotime($ap["last_seen"]), $ap["channel"], $ap["privacy"], $ap["cipher"], $ap["authentication"], $ap["power"], $ap["beacons"], $ap["ivs"], $ap["essid"], round($_POST['lat'], 7), round($_POST['long'], 7));
                 // Update AP in DB
             } else {
                 // Update Coordinates if seen within last 10 seconds
コード例 #4
0
ファイル: map.php プロジェクト: Beasta/Wicker
<?php

require_once "Wicker.php";
require_once "Scan.class.php";
$scan = Scan::fromDB(1);
$statement = $wicker->db->con()->prepare("SELECT * FROM `aps` WHERE `scan_id` = ? GROUP BY `latitude` ORDER BY `id`");
$statement->execute(array(1));
$a = 0;
while ($info = $statement->fetchObject()) {
    $coords[$a]["lat"] = $info->latitude;
    $coords[$a]["long"] = $info->longitude;
    $array_lat[] = $info->latitude;
    $array_long[] = $info->longitude;
    $a++;
}
$avg_lat = array_avg($array_lat);
$avg_long = array_avg($array_long);
$coord_data = <<<COORD
var latlng = new google.maps.LatLng({$avg_lat}, {$avg_long});
var myOptions = {
    zoom: 14,
    center: latlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"),
    myOptions);
COORD;
$coord_data .= "\n";
$a = 0;
$multiple = true;
foreach ($coords as $coord) {