mirror of
https://github.com/hak5/nano-tetra-modules.git
synced 2025-10-29 16:58:09 +00:00
Add modules to repository
This commit is contained in:
103
Meterpreter/api/module.php
Normal file
103
Meterpreter/api/module.php
Normal file
@@ -0,0 +1,103 @@
|
||||
<?php namespace pineapple;
|
||||
|
||||
class Meterpreter extends Module
|
||||
{
|
||||
public function route()
|
||||
{
|
||||
switch ($this->request->action) {
|
||||
case 'getState':
|
||||
$this->getState();
|
||||
break;
|
||||
|
||||
case 'startMeterpreter':
|
||||
$this->startMeterpreter();
|
||||
break;
|
||||
|
||||
case 'stopMeterpreter':
|
||||
$this->stopMeterpreter();
|
||||
break;
|
||||
|
||||
case 'enableMeterpreter':
|
||||
$this->enableMeterpreter();
|
||||
break;
|
||||
|
||||
case 'disableMeterpreter':
|
||||
$this->disableMeterpreter();
|
||||
break;
|
||||
|
||||
case 'saveConfig':
|
||||
$this->saveConfig();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private function getState()
|
||||
{
|
||||
if (!file_exists("/etc/config/meterpreter")) {
|
||||
exec("touch /etc/config/meterpreter");
|
||||
}
|
||||
|
||||
$this->response = array(
|
||||
"success" => true,
|
||||
"running" => $this->checkRunning('meterpreter'),
|
||||
"enabled" => $this->uciGet("meterpreter.autostart"),
|
||||
"config" => $this->getConfig()
|
||||
);
|
||||
}
|
||||
|
||||
private function startMeterpreter()
|
||||
{
|
||||
$host = $this->uciGet("meterpreter.host");
|
||||
$port = $this->uciGet("meterpreter.port");
|
||||
$this->execBackground("meterpreter $host $port");
|
||||
$this->response = array("success" => true);
|
||||
}
|
||||
|
||||
private function stopMeterpreter()
|
||||
{
|
||||
exec("killall meterpreter");
|
||||
$this->response = array("success" => true);
|
||||
}
|
||||
|
||||
private function enableMeterpreter()
|
||||
{
|
||||
$host = $this->uciGet("meterpreter.host");
|
||||
$port = $this->uciGet("meterpreter.port");
|
||||
exec("sed -i '1i /usr/bin/pineapple/meterpreter $host $port & # inserted by meterpreter module' /etc/rc.local");
|
||||
$this->uciSet("meterpreter.autostart", true);
|
||||
$this->response = array("success" => true);
|
||||
}
|
||||
|
||||
private function disableMeterpreter()
|
||||
{
|
||||
exec("sed -i '/meterpreter/d' /etc/rc.local");
|
||||
$this->uciSet("meterpreter.autostart", false);
|
||||
$this->response = array("success" => true);
|
||||
}
|
||||
|
||||
private function getConfig()
|
||||
{
|
||||
return array(
|
||||
"host" => $this->uciGet("meterpreter.host"),
|
||||
"port" => $this->uciGet("meterpreter.port")
|
||||
);
|
||||
}
|
||||
|
||||
private function saveConfig()
|
||||
{
|
||||
$args = $this->request->params;
|
||||
$this->uciSet("meterpreter.host", $args->host);
|
||||
$this->uciSet("meterpreter.port", $args->port);
|
||||
$this->toggleMeterpreter(); //resets rc.local to new settings in autostart is enabled
|
||||
$this->response = array("success" => true, "args"=> $args);
|
||||
}
|
||||
|
||||
private function toggleMeterpreter()
|
||||
{
|
||||
$enabled = $this->uciGet("meterpreter.autostart");
|
||||
if ($enabled == "1") {
|
||||
$this->disableMeterpreter();
|
||||
$this->enableMeterpreter();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user