├── .htaccess
├── README.md
├── css
├── bootstrap-switch.css
├── bootstrap-theme.css
├── bootstrap-theme.min.css
├── bootstrap.css
├── bootstrap.min.css
├── bootstrap.min.orig.css
├── dataTables.bootstrap.css
├── index.php
├── style.css
└── uploadfile.css
├── data
└── modules
│ ├── discovery
│ └── info_disclosure
│ │ ├── cache_snoop.php
│ │ └── interesting_files.php
│ ├── exploitation
│ └── injection
│ │ ├── command_injector.php
│ │ └── xpath_bruter.php
│ ├── import
│ ├── csv_file.php
│ └── list.php
│ ├── recon
│ ├── companies-contacts
│ │ ├── jigsaw
│ │ │ ├── point_usage.php
│ │ │ ├── purchase_contact.php
│ │ │ └── search_contacts.php
│ │ ├── jigsaw_auth.php
│ │ └── linkedin_auth.php
│ ├── companies-multi
│ │ ├── github_miner.php
│ │ └── whois_miner.php
│ ├── companies-profiles
│ │ └── bing_linkedin.php
│ ├── contacts-contacts
│ │ ├── mailtester.php
│ │ ├── mangle.php
│ │ └── unmangle.php
│ ├── contacts-credentials
│ │ ├── hibp_breach.php
│ │ ├── hibp_paste.php
│ │ └── pwnedlist.php
│ ├── contacts-domains
│ │ └── migrate_contacts.php
│ ├── contacts-profiles
│ │ └── fullcontact.php
│ ├── credentials-credentials
│ │ ├── adobe.php
│ │ ├── bozocrack.php
│ │ ├── hashes_org.php
│ │ └── leakdb.php
│ ├── domains-contacts
│ │ ├── metacrawler.php
│ │ ├── pgp_search.php
│ │ ├── salesmaple.php
│ │ └── whois_pocs.php
│ ├── domains-credentials
│ │ └── pwnedlist
│ │ │ ├── account_creds.php
│ │ │ ├── api_usage.php
│ │ │ ├── domain_creds.php
│ │ │ ├── domain_ispwned.php
│ │ │ ├── leak_lookup.php
│ │ │ └── leaks_dump.php
│ ├── domains-domains
│ │ └── brute_suffix.php
│ ├── domains-hosts
│ │ ├── baidu_site.php
│ │ ├── bing_domain_api.php
│ │ ├── bing_domain_web.php
│ │ ├── brute_hosts.php
│ │ ├── builtwith.php
│ │ ├── google_site_api.php
│ │ ├── google_site_web.php
│ │ ├── netcraft.php
│ │ ├── shodan_hostname.php
│ │ ├── ssl_san.php
│ │ ├── vpnhunter.php
│ │ └── yahoo_domain.php
│ ├── domains-vulnerabilities
│ │ ├── ghdb.php
│ │ ├── punkspider.php
│ │ ├── xssed.php
│ │ └── xssposed.php
│ ├── hosts-domains
│ │ └── migrate_hosts.php
│ ├── hosts-hosts
│ │ ├── bing_ip.php
│ │ ├── freegeoip.php
│ │ ├── ip_neighbor.php
│ │ ├── ipinfodb.php
│ │ ├── resolve.php
│ │ ├── reverse_resolve.php
│ │ └── ssltools.php
│ ├── hosts-locations
│ │ └── migrate_hosts.php
│ ├── hosts-ports
│ │ └── shodan_ip.php
│ ├── locations-locations
│ │ ├── geocode.php
│ │ └── reverse_geocode.php
│ ├── locations-pushpins
│ │ ├── flickr.php
│ │ ├── instagram.php
│ │ ├── picasa.php
│ │ ├── shodan.php
│ │ └── youtube.php
│ ├── netblocks-companies
│ │ └── whois_orgs.php
│ ├── netblocks-hosts
│ │ ├── reverse_resolve.php
│ │ └── shodan_net.php
│ ├── netblocks-ports
│ │ ├── census_2012.php
│ │ └── censysio.php
│ ├── ports-hosts
│ │ └── migrate_ports.php
│ ├── profiles-contacts
│ │ ├── dev_diver.php
│ │ ├── linkedin.php
│ │ └── namechk.php
│ ├── profiles-profiles
│ │ ├── linkedin_crawl.php
│ │ ├── namechk.php
│ │ ├── profiler.php
│ │ └── twitter.php
│ ├── profiles-repositories
│ │ └── github_repos.php
│ └── repositories-vulnerabilities
│ │ ├── gists_search.php
│ │ └── github_dorks.php
│ └── reporting
│ ├── csv.php
│ ├── html.php
│ ├── json.php
│ ├── list.php
│ ├── pushpin.php
│ ├── xlsx.php
│ └── xml.php
├── file-upload.php
├── fonts
├── glyphicons-halflings-regular.eot
├── glyphicons-halflings-regular.svg
├── glyphicons-halflings-regular.ttf
├── glyphicons-halflings-regular.woff
└── index.php
├── global-options.php
├── img
├── apple-touch-icon-114-precomposed.png
├── apple-touch-icon-144-precomposed.png
├── apple-touch-icon-57-precomposed.png
├── apple-touch-icon-72-precomposed.png
├── favicon.png
├── favicon1.png
├── glyphicons-halflings-white.png
├── glyphicons-halflings.png
├── index.php
├── loading32.gif
└── loading64.gif
├── includes
├── config.php
├── functions.php
├── head-section.php
├── index.php
└── navbar.php
├── index.php
├── js
├── bootstrap-switch.js
├── bootstrap.min.js
├── confirm-bootstrap.js
├── dataTables.bootstrap.js
├── html5shiv.js
├── index.php
├── jquery-1.10.2.js
├── jquery.dataTables.min.js
├── jquery.form.js
├── jquery.min.js
├── jquery.uploadfile.js
├── less-1.3.3.min.js
└── scripts.js
├── less
├── alerts.less
├── badges.less
├── bootstrap.less
├── breadcrumbs.less
├── button-groups.less
├── buttons.less
├── carousel.less
├── close.less
├── code.less
├── component-animations.less
├── dropdowns.less
├── forms.less
├── glyphicons.less
├── grid.less
├── index.php
├── input-groups.less
├── jumbotron.less
├── labels.less
├── list-group.less
├── media.less
├── mixins.less
├── modals.less
├── navbar.less
├── navs.less
├── normalize.less
├── pager.less
├── pagination.less
├── panels.less
├── popovers.less
├── print.less
├── progress-bars.less
├── responsive-utilities.less
├── scaffolding.less
├── tables.less
├── theme.less
├── thumbnails.less
├── tooltip.less
├── type.less
├── utilities.less
├── variables.less
└── wells.less
├── module.php
├── reset.php
├── rpc-settings.php
├── show-modules.php
├── uploads
├── .htaccess
└── index.php
└── workspace.php
/.htaccess:
--------------------------------------------------------------------------------
1 | Options -Indexes
2 | ErrorDocument 404 /index.php
3 | ErrorDocument 403 /index.php
4 | ErrorDocument 501 /index.php
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Web interface for Recon-ng
2 |
3 | "Recon-ng Web" is a web interface for recon-ng and uses "recon-rpc" to execute commands and fetch data.
4 |
5 | Requirements:
6 |
7 | 1. Recon-ng
8 | 2. PHP
9 |
10 |
11 | Setup:
12 |
13 | ./recon-rpc -t xmlrpc -a IP_ADDRESS -p PORT
14 |
15 | Run Recon-ng-Web in a PHP supporting web server and set RPC URL in "RPC Settings" page.
16 |
17 |
18 | Problems:
19 |
20 | 1. Errors like "API Key not found" is not returned in response of RPC. Hence it is not shown in web interface.
21 | 2. Some verbose data is not returned in response of RPC. Hence it is not shown in web interface.
22 | 3. Raw response is shown in web interface. Future release will show response in tabular format and more organized.
23 |
24 |
25 | Newly added features:
26 |
27 | 1. "Upload File" allows uploading file on server which can be used as input file in different modules.
28 |
29 | Note: Recon-ng and Recon-ng-Web should be running on the same server for this feature to work.
30 |
31 |
32 | We are trying to fix the problems and bring more features and ease of use.
33 |
34 |
35 | IMPORTANT: Please don't use it in production because the source code has not been audited for vulnerabilities especially CSRF and XSS.
--------------------------------------------------------------------------------
/css/index.php:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/interference-security/recon-ng-web/2ff49e080fa4bc898244718ae1eb7e890ec38470/css/index.php
--------------------------------------------------------------------------------
/css/style.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/interference-security/recon-ng-web/2ff49e080fa4bc898244718ae1eb7e890ec38470/css/style.css
--------------------------------------------------------------------------------
/css/uploadfile.css:
--------------------------------------------------------------------------------
1 | .ajax-file-upload-statusbar {
2 | border: 1px solid #0ba1b5;
3 | margin-top: 10px;
4 | margin-right: 10px;
5 | //margin: 5px;
6 | -moz-border-radius: 4px;
7 | -webkit-border-radius: 4px;
8 | border-radius: 4px;
9 | padding: 5px 5px 5px 5px
10 | }
11 | .ajax-file-upload-filename {
12 | width: 100%;
13 | height: auto;
14 | margin: 0 5px 5px 10px;
15 | color: #807579
16 | }
17 | .ajax-file-upload-progress {
18 | margin: 0 10px 5px 10px;
19 | position: relative;
20 | width: 90%;
21 | border: 1px solid #ddd;
22 | padding: 1px;
23 | border-radius: 3px;
24 | display: inline-block
25 | }
26 | .ajax-file-upload-bar {
27 | background-color: #0ba1b5;
28 | width: 0;
29 | height: 20px;
30 | border-radius: 3px;
31 | color:#FFFFFF;
32 | }
33 | .ajax-file-upload-percent {
34 | position: absolute;
35 | display: inline-block;
36 | top: 3px;
37 | left: 48%
38 | }
39 | .ajax-file-upload-red {
40 | -moz-box-shadow: inset 0 39px 0 -24px #e67a73;
41 | -webkit-box-shadow: inset 0 39px 0 -24px #e67a73;
42 | box-shadow: inset 0 39px 0 -24px #e67a73;
43 | background-color: #e4685d;
44 | -moz-border-radius: 4px;
45 | -webkit-border-radius: 4px;
46 | border-radius: 4px;
47 | display: inline-block;
48 | color: #fff;
49 | font-family: arial;
50 | font-size: 13px;
51 | font-weight: normal;
52 | padding: 4px 15px;
53 | text-decoration: none;
54 | text-shadow: 0 1px 0 #b23e35;
55 | cursor: pointer;
56 | vertical-align: top;
57 | margin-right:5px;
58 | }
59 | .ajax-file-upload-green {
60 | background-color: #77b55a;
61 | -moz-border-radius: 4px;
62 | -webkit-border-radius: 4px;
63 | border-radius: 4px;
64 | margin: 0;
65 | padding: 0;
66 | display: inline-block;
67 | color: #fff;
68 | font-family: arial;
69 | font-size: 13px;
70 | font-weight: normal;
71 | padding: 4px 15px;
72 | text-decoration: none;
73 | cursor: pointer;
74 | text-shadow: 0 1px 0 #5b8a3c;
75 | vertical-align: top;
76 | margin-right:5px;
77 | }
78 | .ajax-file-upload {
79 | font-family: Arial, Helvetica, sans-serif;
80 | font-size: 16px;
81 | font-weight: bold;
82 | padding: 15px 20px;
83 | cursor:pointer;
84 | line-height:20px;
85 | height:25px;
86 | margin:0 10px 10px 0;
87 | display: inline-block;
88 | background: #fff;
89 | border: 1px solid #e8e8e8;
90 | color: #888;
91 | text-decoration: none;
92 | border-radius: 3px;
93 | -webkit-border-radius: 3px;
94 | -moz-border-radius: 3px;
95 | -moz-box-shadow: 0 2px 0 0 #e8e8e8;
96 | -webkit-box-shadow: 0 2px 0 0 #e8e8e8;
97 | box-shadow: 0 2px 0 0 #e8e8e8;
98 | padding: 6px 10px 4px 10px;
99 | color: #fff;
100 | background: #2f8ab9;
101 | border: none;
102 | -moz-box-shadow: 0 2px 0 0 #13648d;
103 | -webkit-box-shadow: 0 2px 0 0 #13648d;
104 | box-shadow: 0 2px 0 0 #13648d;
105 | vertical-align:middle;
106 | }
107 |
108 | .ajax-file-upload:hover {
109 | background: #3396c9;
110 | -moz-box-shadow: 0 2px 0 0 #15719f;
111 | -webkit-box-shadow: 0 2px 0 0 #15719f;
112 | box-shadow: 0 2px 0 0 #15719f;
113 | }
114 |
115 | .ajax-upload-dragdrop
116 | {
117 | border:2px dotted #A5A5C7;
118 | color: #DADCE3;
119 | text-align:left;
120 | vertical-align:middle;
121 | padding:10px 10px 0px 10px;
122 | }
123 |
124 | .ajax-upload-dragdrop.state-hover
125 | {
126 | border: 2px solid #A5A5C7;
127 | }
128 | .ajax-file-upload-error {
129 | color: red;
130 | }
--------------------------------------------------------------------------------
/data/modules/discovery/info_disclosure/cache_snoop.php:
--------------------------------------------------------------------------------
1 | 0 && isset($_POST['module_option_nameserver']) && strlen($_POST['module_option_nameserver'])>0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../../includes/config.php");
13 | require_once("../../../../includes/functions.php");
14 | $module_domains = urldecode($_POST['module_option_domains']);
15 | $module_nameserver = urldecode($_POST['module_option_nameserver']);
16 | $sid = manager_recon("init", NULL);
17 | $use_module = manager_recon("use", array($module_path_here, $sid));
18 | $set_module_domains = manager_recon("set", array('DOMAINS', $module_domains, $sid));
19 | $set_module_nameserver = manager_recon("set", array('NAMESERVER', $module_nameserver, $sid));
20 | $run_module = manager_recon("run", $sid);
21 | echo "
";
22 | print_r($run_module);
23 | echo " ";
24 | return;
25 | }
26 |
27 | //Show data based on action
28 | if(strlen($action)>0 && in_array($action, $allowed_actions))
29 | {
30 | if($action=="options")
31 | {
32 | ?>
33 | Module Name:
34 | Module path:
35 |
36 |
40 |
45 | Name:
46 | Path:
47 | Author: thrapt (thrapt@gmail.com)
48 |
49 | Description: Uses the DNS cache snooping technique to check for visited domains
50 |
51 | Options:
52 |
53 |
54 |
55 | Name
56 | Current Value
57 | Required
58 | Description
59 |
60 |
61 |
62 |
63 | DOMAINS
64 | /usr/share/recon-ng/data/av_domains.lst
65 | yes
66 | file containing the list of domains to snoop for
67 |
68 |
69 | NAMESERVER
70 |
71 | yes
72 | IP address of authoritative nameserver
73 |
74 |
75 |
76 |
77 | Comments:
78 | * Nameserver must be in IP form.
79 | * http://304geeks.blogspot.com/2013/01/dns-scraping-for-corporate-av-detection.html
80 |
93 |
105 |
--------------------------------------------------------------------------------
/data/modules/recon/companies-contacts/jigsaw/point_usage.php:
--------------------------------------------------------------------------------
1 | ";
18 | print_r($run_module);
19 | echo "";
20 | return;
21 | }
22 |
23 | //Show data based on action
24 | if(strlen($action)>0 && in_array($action, $allowed_actions))
25 | {
26 | if($action=="options")
27 | {
28 | ?>
29 | Module Name:
30 | Module path:
31 |
32 | No options available for this module.
33 |
34 |
36 |
41 | Name:
42 | Path:
43 | Author: Tim Tomes (@LaNMaSteR53)
44 |
45 | Description: Queries the Jigsaw API for the point usage statistics of the given account.
46 |
47 | Options:
48 | No options available for this module.
49 |
62 |
74 |
--------------------------------------------------------------------------------
/data/modules/recon/companies-contacts/jigsaw/purchase_contact.php:
--------------------------------------------------------------------------------
1 | 0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../../../includes/config.php");
13 | require_once("../../../../../includes/functions.php");
14 | $module_source = urldecode($_POST['module_option_contact']);
15 | $sid = manager_recon("init", NULL);
16 | $use_module = manager_recon("use", array($module_path_here, $sid));
17 | $set_module_source = manager_recon("set", array('CONTACT', $module_source, $sid));
18 | $run_module = manager_recon("run", $sid);
19 | echo "";
20 | print_r($run_module);
21 | echo " ";
22 | return;
23 | }
24 |
25 | //Show data based on action
26 | if(strlen($action)>0 && in_array($action, $allowed_actions))
27 | {
28 | if($action=="options")
29 | {
30 | ?>
31 | Module Name:
32 | Module path:
33 |
34 |
37 |
42 | Name:
43 | Path:
44 | Author: Tim Tomes (@LaNMaSteR53)
45 |
46 | Description: Retrieves a single complete contact from the Jigsaw.com API using points from the given account.
47 |
48 | Options:
49 |
50 |
51 |
52 | Name
53 | Current Value
54 | Required
55 | Description
56 |
57 |
58 |
59 |
60 | CONTACT
61 |
62 | yes
63 | jigsaw contact id
64 |
65 |
66 |
67 |
68 | Comments:
69 | * Account Point Cost: 5 points per request.
70 | * This module is typically used to validate email address naming conventions and gather alternative social engineering information.
71 |
84 |
96 |
--------------------------------------------------------------------------------
/data/modules/recon/companies-contacts/linkedin_auth.php:
--------------------------------------------------------------------------------
1 | 0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../../includes/config.php");
13 | require_once("../../../../includes/functions.php");
14 | $module_source = urldecode($_POST['module_option_source']);
15 | $sid = manager_recon("init", NULL);
16 | $use_module = manager_recon("use", array($module_path_here, $sid));
17 | $set_module_source = manager_recon("set", array('source', $module_source, $sid));
18 | $run_module = manager_recon("run", $sid);
19 | echo "";
20 | print_r($run_module);
21 | echo " ";
22 | return;
23 | }
24 |
25 | //Show data based on action
26 | if(strlen($action)>0 && in_array($action, $allowed_actions))
27 | {
28 | if($action=="options")
29 | {
30 | ?>
31 | Module Name:
32 | Module path:
33 |
34 |
37 |
42 | Name:
43 | Path:
44 | Author: Tim Tomes (@LaNMaSteR53)
45 |
46 | Description: Harvests contacts from the LinkedIn.com API using an authenticated connections network. Updates the 'contacts' table with the results.
47 |
48 | Options:
49 |
50 |
51 |
52 | Name
53 | Current Value
54 | Required
55 | Description
56 |
57 |
58 |
59 |
60 | SOURCE
61 | default
62 | yes
63 | source of input (see 'show info' for details)
64 |
65 |
66 |
67 |
68 | Source Options:
69 |
70 |
71 | default
72 | SELECT DISTINCT company FROM companies WHERE company IS NOT NULL
73 |
74 |
75 | <string>
76 | string representing a single input
77 |
78 |
79 | <path>
80 | path to a file containing a list of inputs
81 |
82 |
83 | query <sql>
84 | database query returning one column of inputs
85 |
86 |
87 |
100 |
112 |
--------------------------------------------------------------------------------
/data/modules/recon/companies-multi/github_miner.php:
--------------------------------------------------------------------------------
1 | 0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../../includes/config.php");
13 | require_once("../../../../includes/functions.php");
14 | $module_source = urldecode($_POST['module_option_source']);
15 | $sid = manager_recon("init", NULL);
16 | $use_module = manager_recon("use", array($module_path_here, $sid));
17 | $set_module_source = manager_recon("set", array('SOURCE', $module_source, $sid));
18 | $run_module = manager_recon("run", $sid);
19 | echo "";
20 | print_r($run_module);
21 | echo " ";
22 | return;
23 | }
24 |
25 | //Show data based on action
26 | if(strlen($action)>0 && in_array($action, $allowed_actions))
27 | {
28 | if($action=="options")
29 | {
30 | ?>
31 | Module Name:
32 | Module path:
33 |
34 |
38 |
43 | Name:
44 | Path:
45 | Author: Tim Tomes (@LaNMaSteR53)
46 |
47 | Description: Uses the Github API to enumerate repositories and member profiles associated with a company search string. Updates the respective tables with the results.
48 |
49 | Options:
50 |
51 |
52 |
53 | Name
54 | Current Value
55 | Required
56 | Description
57 |
58 |
59 |
60 |
61 | SOURCE
62 | default
63 | yes
64 | source of input (see 'show info' for details)
65 |
66 |
67 |
68 |
69 | Source Options:
70 |
71 |
72 | default
73 | SELECT DISTINCT company FROM companies WHERE company IS NOT NULL
74 |
75 |
76 | <string>
77 | string representing a single input
78 |
79 |
80 | <path>
81 | path to a file containing a list of inputs
82 |
83 |
84 | query <sql>
85 | database query returning one column of inputs
86 |
87 |
88 |
101 |
113 |
--------------------------------------------------------------------------------
/data/modules/recon/contacts-credentials/pwnedlist.php:
--------------------------------------------------------------------------------
1 | 0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../../includes/config.php");
13 | require_once("../../../../includes/functions.php");
14 | $module_source = urldecode($_POST['module_option_source']);
15 | $sid = manager_recon("init", NULL);
16 | $use_module = manager_recon("use", array($module_path_here, $sid));
17 | $set_module_source = manager_recon("set", array('source', $module_source, $sid));
18 | $run_module = manager_recon("run", $sid);
19 | echo "";
20 | print_r($run_module);
21 | echo " ";
22 | return;
23 | }
24 |
25 | //Show data based on action
26 | if(strlen($action)>0 && in_array($action, $allowed_actions))
27 | {
28 | if($action=="options")
29 | {
30 | ?>
31 | Module Name:
32 | Module path:
33 |
34 |
38 |
43 | Name:
44 | Path:
45 | Author: Tim Tomes (@LaNMaSteR53)
46 |
47 | Description: Leverages PwnedList.com to determine if email addresses are associated with leaked credentials. Adds compromised email addresses to the 'credentials' table.
48 |
49 | Options:
50 |
51 |
52 |
53 | Name
54 | Current Value
55 | Required
56 | Description
57 |
58 |
59 |
60 |
61 | SOURCE
62 | default
63 | yes
64 | source of input (see 'show info' for details)
65 |
66 |
67 |
68 |
69 | Source Options:
70 |
71 |
72 | default
73 | SELECT DISTINCT email FROM contacts WHERE email IS NOT NULL
74 |
75 |
76 | <string>
77 | string representing a single input
78 |
79 |
80 | <path>
81 | path to a file containing a list of inputs
82 |
83 |
84 | query <sql>
85 | database query returning one column of inputs
86 |
87 |
88 |
101 |
113 |
--------------------------------------------------------------------------------
/data/modules/recon/domains-contacts/salesmaple.php:
--------------------------------------------------------------------------------
1 | 0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../../includes/config.php");
13 | require_once("../../../../includes/functions.php");
14 | $module_source = urldecode($_POST['module_option_source']);
15 | $sid = manager_recon("init", NULL);
16 | $use_module = manager_recon("use", array($module_path_here, $sid));
17 | $set_module_source = manager_recon("set", array('source', $module_source, $sid));
18 | $run_module = manager_recon("run", $sid);
19 | echo "";
20 | print_r($run_module);
21 | echo " ";
22 | return;
23 | }
24 |
25 | //Show data based on action
26 | if(strlen($action)>0 && in_array($action, $allowed_actions))
27 | {
28 | if($action=="options")
29 | {
30 | ?>
31 | Module Name:
32 | Module path:
33 |
34 |
38 |
43 | Name:
44 | Path:
45 | Author: Tim Tomes (@LaNMaSteR53)
46 |
47 | Description: Harvests contacts from the SalesMaple API using domains as input. Updates the 'contacts' table with the results.
48 |
49 | Options:
50 |
51 |
52 |
53 | Name
54 | Current Value
55 | Required
56 | Description
57 |
58 |
59 |
60 |
61 | SOURCE
62 | default
63 | yes
64 | source of input (see 'show info' for details)
65 |
66 |
67 |
68 |
69 | Source Options:
70 |
71 |
72 | default
73 | SELECT DISTINCT domain FROM domains WHERE domain IS NOT NULL
74 |
75 |
76 | <string>
77 | string representing a single input
78 |
79 |
80 | <path>
81 | path to a file containing a list of inputs
82 |
83 |
84 | query <sql>
85 | database query returning one column of inputs
86 |
87 |
88 |
101 |
113 |
--------------------------------------------------------------------------------
/data/modules/recon/domains-contacts/whois_pocs.php:
--------------------------------------------------------------------------------
1 | 0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../../includes/config.php");
13 | require_once("../../../../includes/functions.php");
14 | $module_source = urldecode($_POST['module_option_source']);
15 | $sid = manager_recon("init", NULL);
16 | $use_module = manager_recon("use", array($module_path_here, $sid));
17 | $set_module_source = manager_recon("set", array('source', $module_source, $sid));
18 | $run_module = manager_recon("run", $sid);
19 | echo "";
20 | print_r($run_module);
21 | echo " ";
22 | return;
23 | }
24 |
25 | //Show data based on action
26 | if(strlen($action)>0 && in_array($action, $allowed_actions))
27 | {
28 | if($action=="options")
29 | {
30 | ?>
31 | Module Name:
32 | Module path:
33 |
34 |
38 |
43 | Name:
44 | Path:
45 | Author: Tim Tomes (@LaNMaSteR53)
46 |
47 | Description: Uses the ARIN Whois RWS to harvest POC data from whois queries for the given domain. Updates the 'contacts' table with the results.
48 |
49 | Options:
50 |
51 |
52 |
53 | Name
54 | Current Value
55 | Required
56 | Description
57 |
58 |
59 |
60 |
61 | SOURCE
62 | default
63 | yes
64 | source of input (see 'show info' for details)
65 |
66 |
67 |
68 |
69 | Source Options:
70 |
71 |
72 | default
73 | SELECT DISTINCT domain FROM domains WHERE domain IS NOT NULL
74 |
75 |
76 | <string>
77 | string representing a single input
78 |
79 |
80 | <path>
81 | path to a file containing a list of inputs
82 |
83 |
84 | query <sql>
85 | database query returning one column of inputs
86 |
87 |
88 |
101 |
113 |
--------------------------------------------------------------------------------
/data/modules/recon/domains-credentials/pwnedlist/api_usage.php:
--------------------------------------------------------------------------------
1 | ";
18 | print_r($run_module);
19 | echo "";
20 | return;
21 | }
22 |
23 | //Show data based on action
24 | if(strlen($action)>0 && in_array($action, $allowed_actions))
25 | {
26 | if($action=="options")
27 | {
28 | ?>
29 | Module Name:
30 | Module path:
31 |
32 | No options available for this module.
33 |
34 |
36 |
41 | Name:
42 | Path:
43 | Author: Tim Tomes (@LaNMaSteR53)
44 |
45 | Description: Queries the PwnedList API for account usage statistics.
46 |
47 | Options:
48 | No options available for this module.
49 |
62 |
74 |
--------------------------------------------------------------------------------
/data/modules/recon/domains-credentials/pwnedlist/leaks_dump.php:
--------------------------------------------------------------------------------
1 | ";
18 | print_r($run_module);
19 | echo "";
20 | return;
21 | }
22 |
23 | //Show data based on action
24 | if(strlen($action)>0 && in_array($action, $allowed_actions))
25 | {
26 | if($action=="options")
27 | {
28 | ?>
29 | Module Name:
30 | Module path:
31 |
32 | No options available for this module.
33 |
34 |
36 |
41 | Name:
42 | Path:
43 | Author: Tim Tomes (@LaNMaSteR53)
44 |
45 | Description: Queries the PwnedList API for information associated with all known leaks. Updates the 'leaks' table with the results.
46 |
47 | Options:
48 | No options available for this module.
49 |
50 | Comments:
51 | * API Query Cost: 1 query per request.
52 |
65 |
77 |
--------------------------------------------------------------------------------
/data/modules/recon/domains-hosts/baidu_site.php:
--------------------------------------------------------------------------------
1 | 0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../../includes/config.php");
13 | require_once("../../../../includes/functions.php");
14 | $module_source = urldecode($_POST['module_option_source']);
15 | $sid = manager_recon("init", NULL);
16 | $use_module = manager_recon("use", array($module_path_here, $sid));
17 | $set_module_source = manager_recon("set", array('source', $module_source, $sid));
18 | $run_module = manager_recon("run", $sid);
19 | echo "";
20 | print_r($run_module);
21 | echo " ";
22 | return;
23 | }
24 |
25 | //Show data based on action
26 | if(strlen($action)>0 && in_array($action, $allowed_actions))
27 | {
28 | if($action=="options")
29 | {
30 | ?>
31 | Module Name:
32 | Module path:
33 |
34 |
38 |
43 | Name:
44 | Path:
45 | Author: Tim Tomes (@LaNMaSteR53)
46 |
47 | Description: Harvests hosts from Baidu.com by using the 'site' search operator. Updates the 'hosts' table with the results.
48 |
49 | Options:
50 |
51 |
52 |
53 | Name
54 | Current Value
55 | Required
56 | Description
57 |
58 |
59 |
60 |
61 | SOURCE
62 | default
63 | yes
64 | source of input (see 'show info' for details)
65 |
66 |
67 |
68 |
69 | Source Options:
70 |
71 |
72 | default
73 | SELECT DISTINCT domain FROM domains WHERE domain IS NOT NULL
74 |
75 |
76 | <string>
77 | string representing a single input
78 |
79 |
80 | <path>
81 | path to a file containing a list of inputs
82 |
83 |
84 | query <sql>
85 | database query returning one column of inputs
86 |
87 |
88 |
101 |
113 |
--------------------------------------------------------------------------------
/data/modules/recon/domains-hosts/bing_domain_web.php:
--------------------------------------------------------------------------------
1 | 0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../../includes/config.php");
13 | require_once("../../../../includes/functions.php");
14 | $module_source = urldecode($_POST['module_option_source']);
15 | $sid = manager_recon("init", NULL);
16 | $use_module = manager_recon("use", array($module_path_here, $sid));
17 | $set_module_source = manager_recon("set", array('source', $module_source, $sid));
18 | $run_module = manager_recon("run", $sid);
19 | echo "";
20 | print_r($run_module);
21 | echo " ";
22 | return;
23 | }
24 |
25 | //Show data based on action
26 | if(strlen($action)>0 && in_array($action, $allowed_actions))
27 | {
28 | if($action=="options")
29 | {
30 | ?>
31 | Module Name:
32 | Module path:
33 |
34 |
38 |
43 | Name: Bing Hostname Enumerator
44 | Path: modules/recon/domains-hosts/bing_domain_web.py
45 | Author: Tim Tomes (@LaNMaSteR53)
46 |
47 | Description: Harvests hosts from Bing.com by using the 'site' search operator. Updates the 'hosts' table with the results.
48 |
49 | Options:
50 |
51 |
52 |
53 | Name
54 | Current Value
55 | Required
56 | Description
57 |
58 |
59 |
60 |
61 | SOURCE
62 | default
63 | yes
64 | source of input (see 'show info' for details)
65 |
66 |
67 |
68 |
69 | Source Options:
70 |
71 |
72 | default
73 | SELECT DISTINCT domain FROM domains WHERE domain IS NOT NULL
74 |
75 |
76 | <string>
77 | string representing a single input
78 |
79 |
80 | <path>
81 | path to a file containing a list of inputs
82 |
83 |
84 | query <sql>
85 | database query returning one column of inputs
86 |
87 |
88 |
101 |
113 |
--------------------------------------------------------------------------------
/data/modules/recon/domains-hosts/google_site_api.php:
--------------------------------------------------------------------------------
1 | 0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../../includes/config.php");
13 | require_once("../../../../includes/functions.php");
14 | $module_source = urldecode($_POST['module_option_source']);
15 | $sid = manager_recon("init", NULL);
16 | $use_module = manager_recon("use", array($module_path_here, $sid));
17 | $set_module_source = manager_recon("set", array('source', $module_source, $sid));
18 | $run_module = manager_recon("run", $sid);
19 | echo "";
20 | print_r($run_module);
21 | echo " ";
22 | return;
23 | }
24 |
25 | //Show data based on action
26 | if(strlen($action)>0 && in_array($action, $allowed_actions))
27 | {
28 | if($action=="options")
29 | {
30 | ?>
31 | Module Name:
32 | Module path:
33 |
34 |
38 |
43 | Name:
44 | Path:
45 | Author: Tim Tomes (@LaNMaSteR53)
46 |
47 | Description: Leverages the Google Custom Search Engine API to harvest hosts using the 'site' search operator. Updates the 'hosts' table with the results.
48 |
49 | Options:
50 |
51 |
52 |
53 | Name
54 | Current Value
55 | Required
56 | Description
57 |
58 |
59 |
60 |
61 | SOURCE
62 | default
63 | yes
64 | source of input (see 'show info' for details)
65 |
66 |
67 |
68 |
69 | Source Options:
70 |
71 |
72 | default
73 | SELECT DISTINCT domain FROM domains WHERE domain IS NOT NULL
74 |
75 |
76 | <string>
77 | string representing a single input
78 |
79 |
80 | <path>
81 | path to a file containing a list of inputs
82 |
83 |
84 | query <sql>
85 | database query returning one column of inputs
86 |
87 |
88 |
101 |
--------------------------------------------------------------------------------
/data/modules/recon/domains-hosts/google_site_web.php:
--------------------------------------------------------------------------------
1 | 0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../../includes/config.php");
13 | require_once("../../../../includes/functions.php");
14 | $module_source = urldecode($_POST['module_option_source']);
15 | $sid = manager_recon("init", NULL);
16 | $use_module = manager_recon("use", array($module_path_here, $sid));
17 | $set_module_source = manager_recon("set", array('source', $module_source, $sid));
18 | $run_module = manager_recon("run", $sid);
19 | echo "";
20 | print_r($run_module);
21 | echo " ";
22 | return;
23 | }
24 |
25 | //Show data based on action
26 | if(strlen($action)>0 && in_array($action, $allowed_actions))
27 | {
28 | if($action=="options")
29 | {
30 | ?>
31 | Module Name:
32 | Module path:
33 |
34 |
38 |
43 | Name:
44 | Path:
45 | Author: Tim Tomes (@LaNMaSteR53)
46 |
47 | Description: Harvests hosts from Google.com by using the 'site' search operator. Updates the 'hosts' table with the results.
48 |
49 | Options:
50 |
51 |
52 |
53 | Name
54 | Current Value
55 | Required
56 | Description
57 |
58 |
59 |
60 |
61 | SOURCE
62 | default
63 | yes
64 | source of input (see 'show info' for details)
65 |
66 |
67 |
68 |
69 | Source Options:
70 |
71 |
72 | default
73 | SELECT DISTINCT domain FROM domains WHERE domain IS NOT NULL ORDER BY domain
74 |
75 |
76 | <string>
77 | string representing a single input
78 |
79 |
80 | <path>
81 | path to a file containing a list of inputs
82 |
83 |
84 | query <sql>
85 | database query returning one column of inputs
86 |
87 |
88 |
101 |
--------------------------------------------------------------------------------
/data/modules/recon/domains-hosts/netcraft.php:
--------------------------------------------------------------------------------
1 | 0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../../includes/config.php");
13 | require_once("../../../../includes/functions.php");
14 | $module_source = urldecode($_POST['module_option_source']);
15 | $sid = manager_recon("init", NULL);
16 | $use_module = manager_recon("use", array($module_path_here, $sid));
17 | $set_module_source = manager_recon("set", array('source', $module_source, $sid));
18 | $run_module = manager_recon("run", $sid);
19 | echo "";
20 | print_r($run_module);
21 | echo " ";
22 | return;
23 | }
24 |
25 | //Show data based on action
26 | if(strlen($action)>0 && in_array($action, $allowed_actions))
27 | {
28 | if($action=="options")
29 | {
30 | ?>
31 | Module Name:
32 | Module path:
33 |
34 |
38 |
43 | Name:
44 | Path:
45 | Author: thrapt (thrapt@gmail.com)
46 |
47 | Description: Harvests hosts from Netcraft.com. Updates the 'hosts' table with the results.
48 |
49 | Options:
50 |
51 |
52 |
53 | Name
54 | Current Value
55 | Required
56 | Description
57 |
58 |
59 |
60 |
61 | SOURCE
62 | default
63 | yes
64 | source of input (see 'show info' for details)
65 |
66 |
67 |
68 |
69 | Source Options:
70 |
71 |
72 | default
73 | SELECT DISTINCT domain FROM domains WHERE domain IS NOT NULL
74 |
75 |
76 | <string>
77 | string representing a single input
78 |
79 |
80 | <path>
81 | path to a file containing a list of inputs
82 |
83 |
84 | query <sql>
85 | database query returning one column of inputs
86 |
87 |
88 |
101 |
--------------------------------------------------------------------------------
/data/modules/recon/domains-hosts/vpnhunter.php:
--------------------------------------------------------------------------------
1 | 0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../../includes/config.php");
13 | require_once("../../../../includes/functions.php");
14 | $module_source = urldecode($_POST['module_option_source']);
15 | $sid = manager_recon("init", NULL);
16 | $use_module = manager_recon("use", array($module_path_here, $sid));
17 | $set_module_source = manager_recon("set", array('source', $module_source, $sid));
18 | $run_module = manager_recon("run", $sid);
19 | echo "";
20 | print_r($run_module);
21 | echo " ";
22 | return;
23 | }
24 |
25 | //Show data based on action
26 | if(strlen($action)>0 && in_array($action, $allowed_actions))
27 | {
28 | if($action=="options")
29 | {
30 | ?>
31 | Module Name:
32 | Module path:
33 |
34 |
38 |
43 | Name:
44 | Path:
45 | Author: Quentin Kaiser (contact[at]quentinkaiser.be)
46 |
47 | Description: Checks vpnhunter.com for SSL VPNs, remote accesses, email portals and generic login sites. Updates the 'hosts' table with the results.
48 |
49 | Options:
50 |
51 |
52 |
53 | Name
54 | Current Value
55 | Required
56 | Description
57 |
58 |
59 |
60 |
61 | SOURCE
62 | default
63 | yes
64 | source of input (see 'show info' for details)
65 |
66 |
67 |
68 |
69 | Source Options:
70 |
71 |
72 | default
73 | SELECT DISTINCT domain FROM domains WHERE domain IS NOT NULL
74 |
75 |
76 | <string>
77 | string representing a single input
78 |
79 |
80 | <path>
81 | path to a file containing a list of inputs
82 |
83 |
84 | query <sql>
85 | database query returning one column of inputs
86 |
87 |
88 |
101 |
--------------------------------------------------------------------------------
/data/modules/recon/domains-hosts/yahoo_domain.php:
--------------------------------------------------------------------------------
1 | 0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../../includes/config.php");
13 | require_once("../../../../includes/functions.php");
14 | $module_source = urldecode($_POST['module_option_source']);
15 | $sid = manager_recon("init", NULL);
16 | $use_module = manager_recon("use", array($module_path_here, $sid));
17 | $set_module_source = manager_recon("set", array('source', $module_source, $sid));
18 | $run_module = manager_recon("run", $sid);
19 | echo "";
20 | print_r($run_module);
21 | echo " ";
22 | return;
23 | }
24 |
25 | //Show data based on action
26 | if(strlen($action)>0 && in_array($action, $allowed_actions))
27 | {
28 | if($action=="options")
29 | {
30 | ?>
31 | Module Name:
32 | Module path:
33 |
34 |
38 |
43 | Name:
44 | Path:
45 | Author: Tim Tomes (@LaNMaSteR53)
46 |
47 | Description: Harvests hosts from Yahoo.com by using the 'domain' search operator. Updates the 'hosts' table with the results.
48 |
49 | Options:
50 |
51 |
52 |
53 | Name
54 | Current Value
55 | Required
56 | Description
57 |
58 |
59 |
60 |
61 | SOURCE
62 | default
63 | yes
64 | source of input (see 'show info' for details)
65 |
66 |
67 |
68 |
69 | Source Options:
70 |
71 |
72 | default
73 | SELECT DISTINCT domain FROM domains WHERE domain IS NOT NULL
74 |
75 |
76 | <string>
77 | string representing a single input
78 |
79 |
80 | <path>
81 | path to a file containing a list of inputs
82 |
83 |
84 | query <sql>
85 | database query returning one column of inputs
86 |
87 |
88 |
101 |
--------------------------------------------------------------------------------
/data/modules/recon/domains-vulnerabilities/punkspider.php:
--------------------------------------------------------------------------------
1 | 0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../../includes/config.php");
13 | require_once("../../../../includes/functions.php");
14 | $module_source = urldecode($_POST['module_option_source']);
15 | $sid = manager_recon("init", NULL);
16 | $use_module = manager_recon("use", array($module_path_here, $sid));
17 | $set_module_source = manager_recon("set", array('source', $module_source, $sid));
18 | $run_module = manager_recon("run", $sid);
19 | echo "";
20 | print_r($run_module);
21 | echo " ";
22 | return;
23 | }
24 |
25 | //Show data based on action
26 | if(strlen($action)>0 && in_array($action, $allowed_actions))
27 | {
28 | if($action=="options")
29 | {
30 | ?>
31 | Module Name:
32 | Module path:
33 |
34 |
38 |
43 | Name:
44 | Path:
45 | Author: Tim Tomes (@LaNMaSteR53) and thrapt (thrapt@gmail.com)
46 |
47 | Description: Leverages the PunkSPIDER API to search for previosuly discovered vulnerabltiies on hosts within a domain.
48 |
49 | Options:
50 |
51 |
52 |
53 | Name
54 | Current Value
55 | Required
56 | Description
57 |
58 |
59 |
60 |
61 | SOURCE
62 | default
63 | yes
64 | source of input (see 'show info' for details)
65 |
66 |
67 |
68 |
69 | Source Options:
70 |
71 |
72 | default
73 | SELECT DISTINCT domain FROM domains WHERE domain IS NOT NULL
74 |
75 |
76 | <string>
77 | string representing a single input
78 |
79 |
80 | <path>
81 | path to a file containing a list of inputs
82 |
83 |
84 | query <sql>
85 | database query returning one column of inputs
86 |
87 |
88 |
101 |
113 |
--------------------------------------------------------------------------------
/data/modules/recon/domains-vulnerabilities/xssed.php:
--------------------------------------------------------------------------------
1 | 0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../../includes/config.php");
13 | require_once("../../../../includes/functions.php");
14 | $module_source = urldecode($_POST['module_option_source']);
15 | $sid = manager_recon("init", NULL);
16 | $use_module = manager_recon("use", array($module_path_here, $sid));
17 | $set_module_source = manager_recon("set", array('source', $module_source, $sid));
18 | $run_module = manager_recon("run", $sid);
19 | echo "";
20 | print_r($run_module);
21 | echo " ";
22 | return;
23 | }
24 |
25 | //Show data based on action
26 | if(strlen($action)>0 && in_array($action, $allowed_actions))
27 | {
28 | if($action=="options")
29 | {
30 | ?>
31 | Module Name:
32 | Module path:
33 |
34 |
38 |
43 | Name:
44 | Path:
45 | Author: Micah Hoffman (@WebBreacher)
46 |
47 | Description: Checks XSSed.com for XSS records associated with a domain and displays the first 20 results.
48 |
49 | Options:
50 |
51 |
52 |
53 | Name
54 | Current Value
55 | Required
56 | Description
57 |
58 |
59 |
60 |
61 | SOURCE
62 | default
63 | yes
64 | source of input (see 'show info' for details)
65 |
66 |
67 |
68 |
69 | Source Options:
70 |
71 |
72 | default
73 | SELECT DISTINCT domain FROM domains WHERE domain IS NOT NULL
74 |
75 |
76 | <string>
77 | string representing a single input
78 |
79 |
80 | <path>
81 | path to a file containing a list of inputs
82 |
83 |
84 | query <sql>
85 | database query returning one column of inputs
86 |
87 |
88 |
101 |
113 |
--------------------------------------------------------------------------------
/data/modules/recon/domains-vulnerabilities/xssposed.php:
--------------------------------------------------------------------------------
1 | 0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../../includes/config.php");
13 | require_once("../../../../includes/functions.php");
14 | $module_source = urldecode($_POST['module_option_source']);
15 | $sid = manager_recon("init", NULL);
16 | $use_module = manager_recon("use", array($module_path_here, $sid));
17 | $set_module_source = manager_recon("set", array('source', $module_source, $sid));
18 | $run_module = manager_recon("run", $sid);
19 | echo "";
20 | print_r($run_module);
21 | echo " ";
22 | return;
23 | }
24 |
25 | //Show data based on action
26 | if(strlen($action)>0 && in_array($action, $allowed_actions))
27 | {
28 | if($action=="options")
29 | {
30 | ?>
31 | Module Name:
32 | Module path:
33 |
34 |
38 |
43 | Name:
44 | Path:
45 | Author: Tim Tomes (@LaNMaSteR53)
46 |
47 | Description: Checks XSSposed.com for XSS records associated with a domain.
48 |
49 | Options:
50 |
51 |
52 |
53 | Name
54 | Current Value
55 | Required
56 | Description
57 |
58 |
59 |
60 |
61 | SOURCE
62 | default
63 | yes
64 | source of input (see 'show info' for details)
65 |
66 |
67 |
68 |
69 | Source Options:
70 |
71 |
72 | default
73 | SELECT DISTINCT domain FROM domains WHERE domain IS NOT NULL
74 |
75 |
76 | <string>
77 | string representing a single input
78 |
79 |
80 | <path>
81 | path to a file containing a list of inputs
82 |
83 |
84 | query <sql>
85 | database query returning one column of inputs
86 |
87 |
88 |
101 |
113 |
--------------------------------------------------------------------------------
/data/modules/recon/hosts-hosts/ipinfodb.php:
--------------------------------------------------------------------------------
1 | 0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../../includes/config.php");
13 | require_once("../../../../includes/functions.php");
14 | $module_source = urldecode($_POST['module_option_source']);
15 | $sid = manager_recon("init", NULL);
16 | $use_module = manager_recon("use", array($module_path_here, $sid));
17 | $set_module_source = manager_recon("set", array('source', $module_source, $sid));
18 | $run_module = manager_recon("run", $sid);
19 | echo "";
20 | print_r($run_module);
21 | echo " ";
22 | return;
23 | }
24 |
25 | //Show data based on action
26 | if(strlen($action)>0 && in_array($action, $allowed_actions))
27 | {
28 | if($action=="options")
29 | {
30 | ?>
31 | Module Name:
32 | Module path:
33 |
34 |
38 |
43 | Name:
44 | Path:
45 | Author: Tim Tomes (@LaNMaSteR53)
46 |
47 | Description: Leverages the ipinfodb.com API to geolocate a host by IP address. Updates the 'hosts' table with the results.
48 |
49 | Options:
50 |
51 |
52 |
53 | Name
54 | Current Value
55 | Required
56 | Description
57 |
58 |
59 |
60 |
61 | SOURCE
62 | default
63 | yes
64 | source of input (see 'show info' for details)
65 |
66 |
67 |
68 |
69 | Source Options:
70 |
71 |
72 | default
73 | SELECT DISTINCT ip_address FROM hosts WHERE ip_address IS NOT NULL
74 |
75 |
76 | <string>
77 | string representing a single input
78 |
79 |
80 | <path>
81 | path to a file containing a list of inputs
82 |
83 |
84 | query <sql>
85 | database query returning one column of inputs
86 |
87 |
88 |
101 |
113 |
--------------------------------------------------------------------------------
/data/modules/recon/hosts-hosts/resolve.php:
--------------------------------------------------------------------------------
1 | 0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../../includes/config.php");
13 | require_once("../../../../includes/functions.php");
14 | $module_source = urldecode($_POST['module_option_source']);
15 | $sid = manager_recon("init", NULL);
16 | $use_module = manager_recon("use", array($module_path_here, $sid));
17 | $set_module_source = manager_recon("set", array('source', $module_source, $sid));
18 | $run_module = manager_recon("run", $sid);
19 | echo "";
20 | print_r($run_module);
21 | echo " ";
22 | return;
23 | }
24 |
25 | //Show data based on action
26 | if(strlen($action)>0 && in_array($action, $allowed_actions))
27 | {
28 | if($action=="options")
29 | {
30 | ?>
31 | Module Name:
32 | Module path:
33 |
34 |
38 |
43 | Name:
44 | Path:
45 | Author: Tim Tomes (@LaNMaSteR53)
46 |
47 | Description: Resolves the IP address for a host. Updates the 'hosts' table with the results.
48 |
49 | Options:
50 |
51 |
52 |
53 | Name
54 | Current Value
55 | Required
56 | Description
57 |
58 |
59 |
60 |
61 | SOURCE
62 | default
63 | yes
64 | source of input (see 'show info' for details)
65 |
66 |
67 |
68 |
69 | Source Options:
70 |
71 |
72 | default
73 | SELECT DISTINCT host FROM hosts WHERE host IS NOT NULL AND ip_address IS NULL
74 |
75 |
76 | <string>
77 | string representing a single input
78 |
79 |
80 | <path>
81 | path to a file containing a list of inputs
82 |
83 |
84 | query <sql>
85 | database query returning one column of inputs
86 |
87 |
88 |
101 |
113 |
--------------------------------------------------------------------------------
/data/modules/recon/hosts-hosts/reverse_resolve.php:
--------------------------------------------------------------------------------
1 | 0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../../includes/config.php");
13 | require_once("../../../../includes/functions.php");
14 | $module_source = urldecode($_POST['module_option_source']);
15 | $sid = manager_recon("init", NULL);
16 | $use_module = manager_recon("use", array($module_path_here, $sid));
17 | $set_module_source = manager_recon("set", array('source', $module_source, $sid));
18 | $run_module = manager_recon("run", $sid);
19 | echo "";
20 | print_r($run_module);
21 | echo " ";
22 | return;
23 | }
24 |
25 | //Show data based on action
26 | if(strlen($action)>0 && in_array($action, $allowed_actions))
27 | {
28 | if($action=="options")
29 | {
30 | ?>
31 | Module Name:
32 | Module path:
33 |
34 |
38 |
43 | Name:
44 | Path:
45 | Author: John Babio (@3vi1john), @vulp1n3, and Tim Tomes (@LaNMaSteR53)
46 |
47 | Description: Conducts a reverse lookup for each IP address to resolve the hostname. Updates the 'hosts' table with the results.
48 |
49 | Options:
50 |
51 |
52 |
53 | Name
54 | Current Value
55 | Required
56 | Description
57 |
58 |
59 |
60 |
61 | SOURCE
62 | default
63 | yes
64 | source of input (see 'show info' for details)
65 |
66 |
67 |
68 |
69 | Source Options:
70 |
71 |
72 | default
73 | SELECT DISTINCT ip_address FROM hosts WHERE ip_address IS NOT NULL
74 |
75 |
76 | <string>
77 | string representing a single input
78 |
79 |
80 | <path>
81 | path to a file containing a list of inputs
82 |
83 |
84 | query <sql>
85 | database query returning one column of inputs
86 |
87 |
88 |
101 |
113 |
--------------------------------------------------------------------------------
/data/modules/recon/hosts-locations/migrate_hosts.php:
--------------------------------------------------------------------------------
1 | 0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../../includes/config.php");
13 | require_once("../../../../includes/functions.php");
14 | $module_source = urldecode($_POST['module_option_source']);
15 | $sid = manager_recon("init", NULL);
16 | $use_module = manager_recon("use", array($module_path_here, $sid));
17 | $set_module_source = manager_recon("set", array('SOURCE', $module_source, $sid));
18 | $run_module = manager_recon("run", $sid);
19 | echo "";
20 | print_r($run_module);
21 | echo " ";
22 | return;
23 | }
24 |
25 | //Show data based on action
26 | if(strlen($action)>0 && in_array($action, $allowed_actions))
27 | {
28 | if($action=="options")
29 | {
30 | ?>
31 | Module Name:
32 | Module path:
33 |
34 |
38 |
43 | Name:
44 | Path:
45 | Author: Tim Tomes (@LaNMaSteR53)
46 |
47 | Description: Adds a new location for all the locations stored in the 'hosts' table.
48 |
49 | Options:
50 |
51 |
52 |
53 | Name
54 | Current Value
55 | Required
56 | Description
57 |
58 |
59 |
60 |
61 | SOURCE
62 | default
63 | yes
64 | source of input (see 'show info' for details)
65 |
66 |
67 |
68 |
69 | Source Options:
70 |
71 |
72 | default
73 | SELECT DISTINCT latitude, longitude FROM hosts WHERE latitude IS NOT NULL AND longitude IS NOT NULL
74 |
75 |
76 | <string>
77 | string representing a single input
78 |
79 |
80 | <path>
81 | path to a file containing a list of inputs
82 |
83 |
84 | query <sql>
85 | database query returning one column of inputs
86 |
87 |
88 |
101 |
113 |
--------------------------------------------------------------------------------
/data/modules/recon/locations-locations/geocode.php:
--------------------------------------------------------------------------------
1 | 0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../../includes/config.php");
13 | require_once("../../../../includes/functions.php");
14 | $module_source = urldecode($_POST['module_option_source']);
15 | $sid = manager_recon("init", NULL);
16 | $use_module = manager_recon("use", array($module_path_here, $sid));
17 | $set_module_source = manager_recon("set", array('source', $module_source, $sid));
18 | $run_module = manager_recon("run", $sid);
19 | echo "";
20 | print_r($run_module);
21 | echo " ";
22 | return;
23 | }
24 |
25 | //Show data based on action
26 | if(strlen($action)>0 && in_array($action, $allowed_actions))
27 | {
28 | if($action=="options")
29 | {
30 | ?>
31 | Module Name:
32 | Module path:
33 |
34 |
38 |
43 | Name:
44 | Path:
45 | Author: Quentin Kaiser (contact@quentinkaiser.be)
46 |
47 | Description: Queries the Google Maps API to obtain coordinates for an address. Updates the 'locations' table with the results.
48 |
49 | Options:
50 |
51 |
52 |
53 | Name
54 | Current Value
55 | Required
56 | Description
57 |
58 |
59 |
60 |
61 | SOURCE
62 | default
63 | yes
64 | source of input (see 'show info' for details)
65 |
66 |
67 |
68 |
69 | Source Options:
70 |
71 |
72 | default
73 | SELECT DISTINCT street_address FROM locations WHERE street_address IS NOT NULL
74 |
75 |
76 | <string>
77 | string representing a single input
78 |
79 |
80 | <path>
81 | path to a file containing a list of inputs
82 |
83 |
84 | query <sql>
85 | database query returning one column of inputs
86 |
87 |
88 |
101 |
113 |
--------------------------------------------------------------------------------
/data/modules/recon/locations-locations/reverse_geocode.php:
--------------------------------------------------------------------------------
1 | 0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../../includes/config.php");
13 | require_once("../../../../includes/functions.php");
14 | $module_source = urldecode($_POST['module_option_source']);
15 | $sid = manager_recon("init", NULL);
16 | $use_module = manager_recon("use", array($module_path_here, $sid));
17 | $set_module_source = manager_recon("set", array('source', $module_source, $sid));
18 | $run_module = manager_recon("run", $sid);
19 | echo "";
20 | print_r($run_module);
21 | echo " ";
22 | return;
23 | }
24 |
25 | //Show data based on action
26 | if(strlen($action)>0 && in_array($action, $allowed_actions))
27 | {
28 | if($action=="options")
29 | {
30 | ?>
31 | Module Name:
32 | Module path:
33 |
34 |
38 |
43 | Name:
44 | Path:
45 | Author: Quentin Kaiser (contact@quentinkaiser.be)
46 |
47 | Description: Queries the Google Maps API to obtain an address from coordinates.
48 |
49 | Options:
50 |
51 |
52 |
53 | Name
54 | Current Value
55 | Required
56 | Description
57 |
58 |
59 |
60 |
61 | SOURCE
62 | default
63 | yes
64 | source of input (see 'show info' for details)
65 |
66 |
67 |
68 |
69 | Source Options:
70 |
71 |
72 | default
73 | SELECT DISTINCT latitude || ',' || longitude FROM locations WHERE latitude IS NOT NULL AND longitude IS NOT NULL
74 |
75 |
76 | <string>
77 | string representing a single input
78 |
79 |
80 | <path>
81 | path to a file containing a list of inputs
82 |
83 |
84 | query <sql>
85 | database query returning one column of inputs
86 |
87 |
88 |
101 |
113 |
--------------------------------------------------------------------------------
/data/modules/recon/netblocks-companies/whois_orgs.php:
--------------------------------------------------------------------------------
1 | 0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../../includes/config.php");
13 | require_once("../../../../includes/functions.php");
14 | $module_source = urldecode($_POST['module_option_source']);
15 | $sid = manager_recon("init", NULL);
16 | $use_module = manager_recon("use", array($module_path_here, $sid));
17 | $set_module_source = manager_recon("set", array('source', $module_source, $sid));
18 | $run_module = manager_recon("run", $sid);
19 | echo "";
20 | print_r($run_module);
21 | echo " ";
22 | return;
23 | }
24 |
25 | //Show data based on action
26 | if(strlen($action)>0 && in_array($action, $allowed_actions))
27 | {
28 | if($action=="options")
29 | {
30 | ?>
31 | Module Name:
32 | Module path:
33 |
34 |
38 |
43 | Name:
44 | Path:
45 | Author: Tim Tomes (@LaNMaSteR53)
46 |
47 | Description: Uses the ARIN Whois RWS to harvest Companies data from whois queries for the given netblock. Updates the 'companies' table with the results.
48 |
49 | Options:
50 |
51 |
52 |
53 | Name
54 | Current Value
55 | Required
56 | Description
57 |
58 |
59 |
60 |
61 | SOURCE
62 | default
63 | yes
64 | source of input (see 'show info' for details)
65 |
66 |
67 |
68 |
69 | Source Options:
70 |
71 |
72 | default
73 | SELECT DISTINCT netblock FROM netblocks WHERE netblock IS NOT NULL
74 |
75 |
76 | <string>
77 | string representing a single input
78 |
79 |
80 | <path>
81 | path to a file containing a list of inputs
82 |
83 |
84 | query <sql>
85 | database query returning one column of inputs
86 |
87 |
88 |
101 |
113 |
--------------------------------------------------------------------------------
/data/modules/recon/netblocks-hosts/reverse_resolve.php:
--------------------------------------------------------------------------------
1 | 0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../../includes/config.php");
13 | require_once("../../../../includes/functions.php");
14 | $module_source = urldecode($_POST['module_option_source']);
15 | $sid = manager_recon("init", NULL);
16 | $use_module = manager_recon("use", array($module_path_here, $sid));
17 | $set_module_source = manager_recon("set", array('source', $module_source, $sid));
18 | $run_module = manager_recon("run", $sid);
19 | echo "";
20 | print_r($run_module);
21 | echo " ";
22 | return;
23 | }
24 |
25 | //Show data based on action
26 | if(strlen($action)>0 && in_array($action, $allowed_actions))
27 | {
28 | if($action=="options")
29 | {
30 | ?>
31 | Module Name:
32 | Module path:
33 |
34 |
38 |
43 | Name:
44 | Path:
45 | Author: John Babio (@3vi1john)
46 |
47 | Description: Conducts a reverse lookup for each of a netblock's IP addresses to resolve the hostname. Updates the 'hosts' table with the results.
48 |
49 | Options:
50 |
51 |
52 |
53 | Name
54 | Current Value
55 | Required
56 | Description
57 |
58 |
59 |
60 |
61 | SOURCE
62 | default
63 | yes
64 | source of input (see 'show info' for details)
65 |
66 |
67 |
68 |
69 | Source Options:
70 |
71 |
72 | default
73 | SELECT DISTINCT netblock FROM netblocks WHERE netblock IS NOT NULL
74 |
75 |
76 | <string>
77 | string representing a single input
78 |
79 |
80 | <path>
81 | path to a file containing a list of inputs
82 |
83 |
84 | query <sql>
85 | database query returning one column of inputs
86 |
87 |
88 |
101 |
113 |
--------------------------------------------------------------------------------
/data/modules/recon/ports-hosts/migrate_ports.php:
--------------------------------------------------------------------------------
1 | ";
18 | print_r($run_module);
19 | echo "";
20 | return;
21 | }
22 |
23 | //Show data based on action
24 | if(strlen($action)>0 && in_array($action, $allowed_actions))
25 | {
26 | if($action=="options")
27 | {
28 | ?>
29 | Module Name:
30 | Module path:
31 |
32 | No options available for this module.
33 |
34 |
36 |
41 | Name:
42 | Path:
43 | Author: Tim Tomes (@LaNMaSteR53)
44 |
45 | Description: Adds a new host for all the hostnames stored in the 'ports' table.
46 |
47 | Options:
48 | No options available for this module.
49 |
62 |
74 |
--------------------------------------------------------------------------------
/data/modules/recon/profiles-contacts/dev_diver.php:
--------------------------------------------------------------------------------
1 | 0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../../includes/config.php");
13 | require_once("../../../../includes/functions.php");
14 | $module_source = urldecode($_POST['module_option_source']);
15 | $sid = manager_recon("init", NULL);
16 | $use_module = manager_recon("use", array($module_path_here, $sid));
17 | $set_module_source = manager_recon("set", array('source', $module_source, $sid));
18 | $run_module = manager_recon("run", $sid);
19 | echo "";
20 | print_r($run_module);
21 | echo " ";
22 | return;
23 | }
24 |
25 | //Show data based on action
26 | if(strlen($action)>0 && in_array($action, $allowed_actions))
27 | {
28 | if($action=="options")
29 | {
30 | ?>
31 | Module Name:
32 | Module path:
33 |
34 |
38 |
43 | Name:
44 | Path:
45 | Author: Micah Hoffman (@WebBreacher)
46 |
47 | Description: Searches public code repositories for information about a given username.
48 |
49 | Options:
50 |
51 |
52 |
53 | Name
54 | Current Value
55 | Required
56 | Description
57 |
58 |
59 |
60 |
61 | SOURCE
62 | default
63 | yes
64 | source of input (see 'show info' for details)
65 |
66 |
67 |
68 |
69 | Source Options:
70 |
71 |
72 | default
73 | SELECT DISTINCT username FROM profiles WHERE username IS NOT NULL
74 |
75 |
76 | <string>
77 | string representing a single input
78 |
79 |
80 | <path>
81 | path to a file containing a list of inputs
82 |
83 |
84 | query <sql>
85 | database query returning one column of inputs
86 |
87 |
88 |
101 |
113 |
--------------------------------------------------------------------------------
/data/modules/recon/profiles-contacts/linkedin.php:
--------------------------------------------------------------------------------
1 | 0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../../includes/config.php");
13 | require_once("../../../../includes/functions.php");
14 | $module_source = urldecode($_POST['module_option_source']);
15 | $sid = manager_recon("init", NULL);
16 | $use_module = manager_recon("use", array($module_path_here, $sid));
17 | $set_module_source = manager_recon("set", array('source', $module_source, $sid));
18 | $run_module = manager_recon("run", $sid);
19 | echo "";
20 | print_r($run_module);
21 | echo " ";
22 | return;
23 | }
24 |
25 | //Show data based on action
26 | if(strlen($action)>0 && in_array($action, $allowed_actions))
27 | {
28 | if($action=="options")
29 | {
30 | ?>
31 | Module Name:
32 | Module path:
33 |
34 |
38 |
43 | Name:
44 | Path:
45 | Author: Mike Larch and Brian Fehrman
46 |
47 | Description: Harvests contact information from linkedin.com by parsing the link(s) given and adding the info to the 'contacts' table.
48 |
49 | Options:
50 |
51 |
52 |
53 | Name
54 | Current Value
55 | Required
56 | Description
57 |
58 |
59 |
60 |
61 | SOURCE
62 | default
63 | yes
64 | source of input (see 'show info' for details)
65 |
66 |
67 |
68 |
69 | Source Options:
70 |
71 |
72 | default
73 | SELECT DISTINCT url FROM profiles WHERE url IS NOT NULL ORDER BY url
74 |
75 |
76 | <string>
77 | string representing a single input
78 |
79 |
80 | <path>
81 | path to a file containing a list of inputs
82 |
83 |
84 | query <sql>
85 | database query returning one column of inputs
86 |
87 |
88 |
101 |
113 |
--------------------------------------------------------------------------------
/data/modules/recon/profiles-repositories/github_repos.php:
--------------------------------------------------------------------------------
1 | 0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../../includes/config.php");
13 | require_once("../../../../includes/functions.php");
14 | $module_source = urldecode($_POST['module_option_source']);
15 | $sid = manager_recon("init", NULL);
16 | $use_module = manager_recon("use", array($module_path_here, $sid));
17 | $set_module_source = manager_recon("set", array('SOURCE', $module_source, $sid));
18 | $run_module = manager_recon("run", $sid);
19 | echo "";
20 | print_r($run_module);
21 | echo " ";
22 | return;
23 | }
24 |
25 | //Show data based on action
26 | if(strlen($action)>0 && in_array($action, $allowed_actions))
27 | {
28 | if($action=="options")
29 | {
30 | ?>
31 | Module Name:
32 | Module path:
33 |
34 |
38 |
43 | Name:
44 | Path:
45 | Author: Tim Tomes (@LaNMaSteR53)
46 |
47 | Description: Uses the Github API to enumerate repositories and gists owned by a Github user. Updates the 'repositories' table with the results.
48 |
49 | Options:
50 |
51 |
52 |
53 | Name
54 | Current Value
55 | Required
56 | Description
57 |
58 |
59 |
60 |
61 | SOURCE
62 | default
63 | yes
64 | source of input (see 'show info' for details)
65 |
66 |
67 |
68 |
69 | Source Options:
70 |
71 |
72 | default
73 | SELECT DISTINCT username FROM profiles WHERE username IS NOT NULL AND resource LIKE 'Github'
74 |
75 |
76 | <string>
77 | string representing a single input
78 |
79 |
80 | <path>
81 | path to a file containing a list of inputs
82 |
83 |
84 | query <sql>
85 | database query returning one column of inputs
86 |
87 |
88 |
101 |
113 |
--------------------------------------------------------------------------------
/data/modules/reporting/csv.php:
--------------------------------------------------------------------------------
1 | 0 && isset($_POST['module_option_table']) && strlen($_POST['module_option_table'])>0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../includes/config.php");
13 | require_once("../../../includes/functions.php");
14 | $module_filename = urldecode($_POST['module_option_filename']);
15 | $module_table = urldecode($_POST['module_option_table']);
16 | $sid = manager_recon("init", NULL);
17 | $use_module = manager_recon("use", array($module_path_here, $sid));
18 | $set_module_filename = manager_recon("set", array('FILENAME', $module_filename, $sid));
19 | $set_module_table = manager_recon("set", array('TABLE', $module_table, $sid));
20 | $run_module = manager_recon("run", $sid);
21 | echo "";
22 | print_r($run_module);
23 | echo " ";
24 | return;
25 | }
26 |
27 | //Show data based on action
28 | if(strlen($action)>0 && in_array($action, $allowed_actions))
29 | {
30 | if($action=="options")
31 | {
32 | ?>
33 | Module Name:
34 | Module path:
35 |
36 |
40 |
45 | Name:
46 | Path:
47 | Author: Tim Tomes (@LaNMaSteR53)
48 |
49 | Description: Creates a CSV file containing the specified harvested data.
50 |
51 | Options:
52 |
53 |
54 |
55 | Name
56 | Current Value
57 | Required
58 | Description
59 |
60 |
61 |
62 |
63 | FILENAME
64 | /root/.recon-ng/workspaces/default/results.csv
65 | yes
66 | path and filename for csv input
67 |
68 |
69 | TABLE
70 | hosts
71 | yes
72 | source table of data to export
73 |
74 |
75 |
76 |
89 |
--------------------------------------------------------------------------------
/data/modules/reporting/json.php:
--------------------------------------------------------------------------------
1 | 0 && isset($_POST['module_option_table']) && strlen($_POST['module_option_table'])>0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../includes/config.php");
13 | require_once("../../../includes/functions.php");
14 | $module_filename = urldecode($_POST['module_option_filename']);
15 | $module_table = urldecode($_POST['module_option_table']);
16 | $sid = manager_recon("init", NULL);
17 | $use_module = manager_recon("use", array($module_path_here, $sid));
18 | $set_module_filename = manager_recon("set", array('FILENAME', $module_filename, $sid));
19 | $set_module_table = manager_recon("set", array('TABLE', $module_table, $sid));
20 | $run_module = manager_recon("run", $sid);
21 | echo "";
22 | print_r($run_module);
23 | echo " ";
24 | return;
25 | }
26 |
27 | //Show data based on action
28 | if(strlen($action)>0 && in_array($action, $allowed_actions))
29 | {
30 | if($action=="options")
31 | {
32 | ?>
33 | Module Name:
34 | Module path:
35 |
36 |
40 |
45 | Name:
46 | Path:
47 | Author: Paul (@PaulWebSec)
48 | Version: v0.0.1
49 |
50 | Description: Creates a JSON report.
51 |
52 | Options:
53 |
54 |
55 |
56 | Name
57 | Current Value
58 | Required
59 | Description
60 |
61 |
62 |
63 |
64 | FILENAME
65 | /root/.recon-ng/workspaces/default/results.json
66 | yes
67 | path and filename for report output
68 |
69 |
70 | TABLE
71 | hosts, contacts, credentials
72 | yes
73 | comma delineated list of tables
74 |
75 |
76 |
77 |
90 |
--------------------------------------------------------------------------------
/data/modules/reporting/xlsx.php:
--------------------------------------------------------------------------------
1 | 0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../includes/config.php");
13 | require_once("../../../includes/functions.php");
14 | $module_filename = urldecode($_POST['module_option_filename']);
15 | $sid = manager_recon("init", NULL);
16 | $use_module = manager_recon("use", array($module_path_here, $sid));
17 | $set_module_filename = manager_recon("set", array('FILENAME', $module_filename, $sid));
18 | $run_module = manager_recon("run", $sid);
19 | echo "";
20 | print_r($run_module);
21 | echo " ";
22 | return;
23 | }
24 |
25 | //Show data based on action
26 | if(strlen($action)>0 && in_array($action, $allowed_actions))
27 | {
28 | if($action=="options")
29 | {
30 | ?>
31 | Module Name:
32 | Module path:
33 |
34 |
37 |
42 | Name:
43 | Path:
44 | Author: Tim Tomes (@LaNMaSteR53)
45 |
46 | Description: Creates an Excel compatible XLSX file containing the entire data set.
47 |
48 | Options:
49 |
50 |
51 |
52 | Name
53 | Current Value
54 | Required
55 | Description
56 |
57 |
58 |
59 |
60 | FILENAME
61 | /root/.recon-ng/workspaces/default/results.slsx
62 | yes
63 | path and filename for output
64 |
65 |
66 |
67 |
80 |
--------------------------------------------------------------------------------
/data/modules/reporting/xml.php:
--------------------------------------------------------------------------------
1 | 0 && isset($_POST['module_option_table']) && strlen($_POST['module_option_table'])>0)
10 | {
11 | //Configuration & Functions
12 | require_once("../../../includes/config.php");
13 | require_once("../../../includes/functions.php");
14 | $module_filename = urldecode($_POST['module_option_filename']);
15 | $module_table = urldecode($_POST['module_option_table']);
16 | $sid = manager_recon("init", NULL);
17 | $use_module = manager_recon("use", array($module_path_here, $sid));
18 | $set_module_filename = manager_recon("set", array('FILENAME', $module_filename, $sid));
19 | $set_module_table = manager_recon("set", array('TABLE', $module_table, $sid));
20 | $run_module = manager_recon("run", $sid);
21 | echo "";
22 | print_r($run_module);
23 | echo " ";
24 | return;
25 | }
26 |
27 | //Show data based on action
28 | if(strlen($action)>0 && in_array($action, $allowed_actions))
29 | {
30 | if($action=="options")
31 | {
32 | ?>
33 | Module Name:
34 | Module path:
35 |
36 |
40 |
45 | Name:
46 | Path:
47 | Author: Eric Humphries (@e2fsck) and Tim Tomes (@LaNMaSteR53)
48 | Version: v0.0.2
49 |
50 | Description: Creates a XML report.
51 |
52 | Options:
53 |
54 |
55 |
56 | Name
57 | Current Value
58 | Required
59 | Description
60 |
61 |
62 |
63 |
64 | FILENAME
65 | /root/.recon-ng/workspaces/default/results.xml
66 | yes
67 | path and filename for report output
68 |
69 |
70 | TABLE
71 | hosts, contacts, credentials
72 | yes
73 | comma delineated list of tables
74 |
75 |
76 |
77 |
90 |
--------------------------------------------------------------------------------
/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/interference-security/recon-ng-web/2ff49e080fa4bc898244718ae1eb7e890ec38470/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/interference-security/recon-ng-web/2ff49e080fa4bc898244718ae1eb7e890ec38470/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/interference-security/recon-ng-web/2ff49e080fa4bc898244718ae1eb7e890ec38470/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/fonts/index.php:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/interference-security/recon-ng-web/2ff49e080fa4bc898244718ae1eb7e890ec38470/fonts/index.php
--------------------------------------------------------------------------------
/img/apple-touch-icon-114-precomposed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/interference-security/recon-ng-web/2ff49e080fa4bc898244718ae1eb7e890ec38470/img/apple-touch-icon-114-precomposed.png
--------------------------------------------------------------------------------
/img/apple-touch-icon-144-precomposed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/interference-security/recon-ng-web/2ff49e080fa4bc898244718ae1eb7e890ec38470/img/apple-touch-icon-144-precomposed.png
--------------------------------------------------------------------------------
/img/apple-touch-icon-57-precomposed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/interference-security/recon-ng-web/2ff49e080fa4bc898244718ae1eb7e890ec38470/img/apple-touch-icon-57-precomposed.png
--------------------------------------------------------------------------------
/img/apple-touch-icon-72-precomposed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/interference-security/recon-ng-web/2ff49e080fa4bc898244718ae1eb7e890ec38470/img/apple-touch-icon-72-precomposed.png
--------------------------------------------------------------------------------
/img/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/interference-security/recon-ng-web/2ff49e080fa4bc898244718ae1eb7e890ec38470/img/favicon.png
--------------------------------------------------------------------------------
/img/favicon1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/interference-security/recon-ng-web/2ff49e080fa4bc898244718ae1eb7e890ec38470/img/favicon1.png
--------------------------------------------------------------------------------
/img/glyphicons-halflings-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/interference-security/recon-ng-web/2ff49e080fa4bc898244718ae1eb7e890ec38470/img/glyphicons-halflings-white.png
--------------------------------------------------------------------------------
/img/glyphicons-halflings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/interference-security/recon-ng-web/2ff49e080fa4bc898244718ae1eb7e890ec38470/img/glyphicons-halflings.png
--------------------------------------------------------------------------------
/img/index.php:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/interference-security/recon-ng-web/2ff49e080fa4bc898244718ae1eb7e890ec38470/img/index.php
--------------------------------------------------------------------------------
/img/loading32.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/interference-security/recon-ng-web/2ff49e080fa4bc898244718ae1eb7e890ec38470/img/loading32.gif
--------------------------------------------------------------------------------
/img/loading64.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/interference-security/recon-ng-web/2ff49e080fa4bc898244718ae1eb7e890ec38470/img/loading64.gif
--------------------------------------------------------------------------------
/includes/config.php:
--------------------------------------------------------------------------------
1 | 0)
6 | {
7 | $recon_rpc_url = $_SESSION['recon_rpc_url'];
8 | }
9 | else
10 | {
11 | die(' Recon-ng RPC URL has not been set. Please set the RPC URL from "RPC Settings" page
');
12 | }
13 | ?>
--------------------------------------------------------------------------------
/includes/functions.php:
--------------------------------------------------------------------------------
1 | 0)
10 | {
11 | return $_SESSION['recon_sid'];
12 | }
13 | }
14 | $request = xmlrpc_encode_request($methodName, $data);
15 | $context = stream_context_create(array('http' => array('method' => "POST", 'header' => "Content-Type: text/xml", 'content' => $request)));
16 | $file = file_get_contents($recon_rpc_url, false, $context);
17 | $response = xmlrpc_decode($file);
18 | if($methodName=="init")
19 | {
20 | @session_start();
21 | $_SESSION['recon_sid'] = $response;
22 | }
23 | return $response;
24 | }
25 | ?>
--------------------------------------------------------------------------------
/includes/head-section.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/includes/index.php:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/interference-security/recon-ng-web/2ff49e080fa4bc898244718ae1eb7e890ec38470/includes/index.php
--------------------------------------------------------------------------------
/includes/navbar.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/index.php:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/js/html5shiv.js:
--------------------------------------------------------------------------------
1 | /*
2 | HTML5 Shiv v3.6.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
3 | */
4 | (function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag();
5 | a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x";
6 | c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML=" ";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode||
7 | "undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup main mark meter nav output progress section summary time video",version:"3.6.2",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);if(g)return a.createDocumentFragment();
8 | for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d p,
28 | > ul {
29 | margin-bottom: 0;
30 | }
31 | > p + p {
32 | margin-top: 5px;
33 | }
34 | }
35 |
36 | // Dismissable alerts
37 | //
38 | // Expand the right padding and account for the close button's positioning.
39 |
40 | .alert-dismissable {
41 | padding-right: (@alert-padding + 20);
42 |
43 | // Adjust close link position
44 | .close {
45 | position: relative;
46 | top: -2px;
47 | right: -21px;
48 | color: inherit;
49 | }
50 | }
51 |
52 | // Alternate styles
53 | //
54 | // Generate contextual modifier classes for colorizing the alert.
55 |
56 | .alert-success {
57 | .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text);
58 | }
59 | .alert-info {
60 | .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text);
61 | }
62 | .alert-warning {
63 | .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text);
64 | }
65 | .alert-danger {
66 | .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text);
67 | }
68 |
--------------------------------------------------------------------------------
/less/badges.less:
--------------------------------------------------------------------------------
1 | //
2 | // Badges
3 | // --------------------------------------------------
4 |
5 |
6 | // Base classes
7 | .badge {
8 | display: inline-block;
9 | min-width: 10px;
10 | padding: 3px 7px;
11 | font-size: @font-size-small;
12 | font-weight: @badge-font-weight;
13 | color: @badge-color;
14 | line-height: @badge-line-height;
15 | vertical-align: baseline;
16 | white-space: nowrap;
17 | text-align: center;
18 | background-color: @badge-bg;
19 | border-radius: @badge-border-radius;
20 |
21 | // Empty badges collapse automatically (not available in IE8)
22 | &:empty {
23 | display: none;
24 | }
25 | }
26 |
27 | // Hover state, but only for links
28 | a.badge {
29 | &:hover,
30 | &:focus {
31 | color: @badge-link-hover-color;
32 | text-decoration: none;
33 | cursor: pointer;
34 | }
35 | }
36 |
37 | // Quick fix for labels/badges in buttons
38 | .btn .badge {
39 | position: relative;
40 | top: -1px;
41 | }
42 |
43 | // Account for counters in navs
44 | a.list-group-item.active > .badge,
45 | .nav-pills > .active > a > .badge {
46 | color: @badge-active-color;
47 | background-color: @badge-active-bg;
48 | }
49 | .nav-pills > li > a > .badge {
50 | margin-left: 3px;
51 | }
52 |
--------------------------------------------------------------------------------
/less/bootstrap.less:
--------------------------------------------------------------------------------
1 | // Core variables and mixins
2 | @import "variables.less";
3 | @import "mixins.less";
4 |
5 | // Reset
6 | @import "normalize.less";
7 | @import "print.less";
8 |
9 | // Core CSS
10 | @import "scaffolding.less";
11 | @import "type.less";
12 | @import "code.less";
13 | @import "grid.less";
14 | @import "tables.less";
15 | @import "forms.less";
16 | @import "buttons.less";
17 |
18 | // Components
19 | @import "component-animations.less";
20 | @import "glyphicons.less";
21 | @import "dropdowns.less";
22 | @import "button-groups.less";
23 | @import "input-groups.less";
24 | @import "navs.less";
25 | @import "navbar.less";
26 | @import "breadcrumbs.less";
27 | @import "pagination.less";
28 | @import "pager.less";
29 | @import "labels.less";
30 | @import "badges.less";
31 | @import "jumbotron.less";
32 | @import "thumbnails.less";
33 | @import "alerts.less";
34 | @import "progress-bars.less";
35 | @import "media.less";
36 | @import "list-group.less";
37 | @import "panels.less";
38 | @import "wells.less";
39 | @import "close.less";
40 |
41 | // Components w/ JavaScript
42 | @import "modals.less";
43 | @import "tooltip.less";
44 | @import "popovers.less";
45 | @import "carousel.less";
46 |
47 | // Utility classes
48 | @import "utilities.less";
49 | @import "responsive-utilities.less";
50 |
--------------------------------------------------------------------------------
/less/breadcrumbs.less:
--------------------------------------------------------------------------------
1 | //
2 | // Breadcrumbs
3 | // --------------------------------------------------
4 |
5 |
6 | .breadcrumb {
7 | padding: 8px 15px;
8 | margin-bottom: @line-height-computed;
9 | list-style: none;
10 | background-color: @breadcrumb-bg;
11 | border-radius: @border-radius-base;
12 | > li {
13 | display: inline-block;
14 | + li:before {
15 | content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space
16 | padding: 0 5px;
17 | color: @breadcrumb-color;
18 | }
19 | }
20 | > .active {
21 | color: @breadcrumb-active-color;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/less/buttons.less:
--------------------------------------------------------------------------------
1 | //
2 | // Buttons
3 | // --------------------------------------------------
4 |
5 |
6 | // Base styles
7 | // --------------------------------------------------
8 |
9 | // Core styles
10 | .btn {
11 | display: inline-block;
12 | margin-bottom: 0; // For input.btn
13 | font-weight: @btn-font-weight;
14 | text-align: center;
15 | vertical-align: middle;
16 | cursor: pointer;
17 | background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
18 | border: 1px solid transparent;
19 | white-space: nowrap;
20 | .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @border-radius-base);
21 | .user-select(none);
22 |
23 | &:focus {
24 | .tab-focus();
25 | }
26 |
27 | &:hover,
28 | &:focus {
29 | color: @btn-default-color;
30 | text-decoration: none;
31 | }
32 |
33 | &:active,
34 | &.active {
35 | outline: 0;
36 | background-image: none;
37 | .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
38 | }
39 |
40 | &.disabled,
41 | &[disabled],
42 | fieldset[disabled] & {
43 | cursor: not-allowed;
44 | pointer-events: none; // Future-proof disabling of clicks
45 | .opacity(.65);
46 | .box-shadow(none);
47 | }
48 |
49 | }
50 |
51 |
52 | // Alternate buttons
53 | // --------------------------------------------------
54 |
55 | .btn-default {
56 | .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border);
57 | }
58 | .btn-primary {
59 | .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border);
60 | }
61 | // Warning appears as orange
62 | .btn-warning {
63 | .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border);
64 | }
65 | // Danger and error appear as red
66 | .btn-danger {
67 | .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border);
68 | }
69 | // Success appears as green
70 | .btn-success {
71 | .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border);
72 | }
73 | // Info appears as blue-green
74 | .btn-info {
75 | .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border);
76 | }
77 |
78 |
79 | // Link buttons
80 | // -------------------------
81 |
82 | // Make a button look and behave like a link
83 | .btn-link {
84 | color: @link-color;
85 | font-weight: normal;
86 | cursor: pointer;
87 | border-radius: 0;
88 |
89 | &,
90 | &:active,
91 | &[disabled],
92 | fieldset[disabled] & {
93 | background-color: transparent;
94 | .box-shadow(none);
95 | }
96 | &,
97 | &:hover,
98 | &:focus,
99 | &:active {
100 | border-color: transparent;
101 | }
102 | &:hover,
103 | &:focus {
104 | color: @link-hover-color;
105 | text-decoration: underline;
106 | background-color: transparent;
107 | }
108 | &[disabled],
109 | fieldset[disabled] & {
110 | &:hover,
111 | &:focus {
112 | color: @btn-link-disabled-color;
113 | text-decoration: none;
114 | }
115 | }
116 | }
117 |
118 |
119 | // Button Sizes
120 | // --------------------------------------------------
121 |
122 | .btn-lg {
123 | // line-height: ensure even-numbered height of button next to large input
124 | .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);
125 | }
126 | .btn-sm,
127 | .btn-xs {
128 | // line-height: ensure proper height of button next to small input
129 | .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);
130 | }
131 | .btn-xs {
132 | padding: 1px 5px;
133 | }
134 |
135 |
136 | // Block button
137 | // --------------------------------------------------
138 |
139 | .btn-block {
140 | display: block;
141 | width: 100%;
142 | padding-left: 0;
143 | padding-right: 0;
144 | }
145 |
146 | // Vertically space out multiple block buttons
147 | .btn-block + .btn-block {
148 | margin-top: 5px;
149 | }
150 |
151 | // Specificity overrides
152 | input[type="submit"],
153 | input[type="reset"],
154 | input[type="button"] {
155 | &.btn-block {
156 | width: 100%;
157 | }
158 | }
159 |
--------------------------------------------------------------------------------
/less/close.less:
--------------------------------------------------------------------------------
1 | //
2 | // Close icons
3 | // --------------------------------------------------
4 |
5 |
6 | .close {
7 | float: right;
8 | font-size: (@font-size-base * 1.5);
9 | font-weight: @close-font-weight;
10 | line-height: 1;
11 | color: @close-color;
12 | text-shadow: @close-text-shadow;
13 | .opacity(.2);
14 |
15 | &:hover,
16 | &:focus {
17 | color: @close-color;
18 | text-decoration: none;
19 | cursor: pointer;
20 | .opacity(.5);
21 | }
22 |
23 | // Additional properties for button version
24 | // iOS requires the button element instead of an anchor tag.
25 | // If you want the anchor version, it requires `href="#"`.
26 | button& {
27 | padding: 0;
28 | cursor: pointer;
29 | background: transparent;
30 | border: 0;
31 | -webkit-appearance: none;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/less/code.less:
--------------------------------------------------------------------------------
1 | //
2 | // Code (inline and block)
3 | // --------------------------------------------------
4 |
5 |
6 | // Inline and block code styles
7 | code,
8 | kbd,
9 | pre,
10 | samp {
11 | font-family: @font-family-monospace;
12 | }
13 |
14 | // Inline code
15 | code {
16 | padding: 2px 4px;
17 | font-size: 90%;
18 | color: @code-color;
19 | background-color: @code-bg;
20 | white-space: nowrap;
21 | border-radius: @border-radius-base;
22 | }
23 |
24 | // Blocks of code
25 | pre {
26 | display: block;
27 | padding: ((@line-height-computed - 1) / 2);
28 | margin: 0 0 (@line-height-computed / 2);
29 | font-size: (@font-size-base - 1); // 14px to 13px
30 | line-height: @line-height-base;
31 | word-break: break-all;
32 | word-wrap: break-word;
33 | color: @pre-color;
34 | background-color: @pre-bg;
35 | border: 1px solid @pre-border-color;
36 | border-radius: @border-radius-base;
37 |
38 | // Account for some code outputs that place code tags in pre tags
39 | code {
40 | padding: 0;
41 | font-size: inherit;
42 | color: inherit;
43 | white-space: pre-wrap;
44 | background-color: transparent;
45 | border-radius: 0;
46 | }
47 | }
48 |
49 | // Enable scrollable blocks of code
50 | .pre-scrollable {
51 | max-height: @pre-scrollable-max-height;
52 | overflow-y: scroll;
53 | }
54 |
--------------------------------------------------------------------------------
/less/component-animations.less:
--------------------------------------------------------------------------------
1 | //
2 | // Component animations
3 | // --------------------------------------------------
4 |
5 | // Heads up!
6 | //
7 | // We don't use the `.opacity()` mixin here since it causes a bug with text
8 | // fields in IE7-8. Source: https://github.com/twitter/bootstrap/pull/3552.
9 |
10 | .fade {
11 | opacity: 0;
12 | .transition(opacity .15s linear);
13 | &.in {
14 | opacity: 1;
15 | }
16 | }
17 |
18 | .collapse {
19 | display: none;
20 | &.in {
21 | display: block;
22 | }
23 | }
24 | .collapsing {
25 | position: relative;
26 | height: 0;
27 | overflow: hidden;
28 | .transition(height .35s ease);
29 | }
30 |
--------------------------------------------------------------------------------
/less/grid.less:
--------------------------------------------------------------------------------
1 | //
2 | // Grid system
3 | // --------------------------------------------------
4 |
5 | // Set the container width, and override it for fixed navbars in media queries
6 | .container {
7 | .container-fixed();
8 | }
9 |
10 | // mobile first defaults
11 | .row {
12 | .make-row();
13 | }
14 |
15 | // Common styles for small and large grid columns
16 | .make-grid-columns();
17 |
18 |
19 | // Extra small grid
20 | //
21 | // Grid classes for extra small devices like smartphones. No offset, push, or
22 | // pull classes are present here due to the size of the target.
23 | //
24 | // Note that `.col-xs-12` doesn't get floated on purpose--there's no need since
25 | // it's full-width.
26 |
27 | .make-grid-columns-float(xs);
28 | .make-grid(@grid-columns, xs, width);
29 | .make-grid(@grid-columns, xs, pull);
30 | .make-grid(@grid-columns, xs, push);
31 | .make-grid(@grid-columns, xs, offset);
32 |
33 |
34 | // Small grid
35 | //
36 | // Columns, offsets, pushes, and pulls for the small device range, from phones
37 | // to tablets.
38 | //
39 | // Note that `.col-sm-12` doesn't get floated on purpose--there's no need since
40 | // it's full-width.
41 |
42 | @media (min-width: @screen-sm-min) {
43 | .container {
44 | width: @container-sm;
45 | }
46 |
47 | .make-grid-columns-float(sm);
48 | .make-grid(@grid-columns, sm, width);
49 | .make-grid(@grid-columns, sm, pull);
50 | .make-grid(@grid-columns, sm, push);
51 | .make-grid(@grid-columns, sm, offset);
52 | }
53 |
54 |
55 | // Medium grid
56 | //
57 | // Columns, offsets, pushes, and pulls for the desktop device range.
58 | //
59 | // Note that `.col-md-12` doesn't get floated on purpose--there's no need since
60 | // it's full-width.
61 |
62 | @media (min-width: @screen-md-min) {
63 | .container {
64 | width: @container-md;
65 | }
66 |
67 | .make-grid-columns-float(md);
68 | .make-grid(@grid-columns, md, width);
69 | .make-grid(@grid-columns, md, pull);
70 | .make-grid(@grid-columns, md, push);
71 | .make-grid(@grid-columns, md, offset);
72 | }
73 |
74 |
75 | // Large grid
76 | //
77 | // Columns, offsets, pushes, and pulls for the large desktop device range.
78 | //
79 | // Note that `.col-lg-12` doesn't get floated on purpose--there's no need since
80 | // it's full-width.
81 |
82 | @media (min-width: @screen-lg-min) {
83 | .container {
84 | width: @container-lg;
85 | }
86 |
87 | .make-grid-columns-float(lg);
88 | .make-grid(@grid-columns, lg, width);
89 | .make-grid(@grid-columns, lg, pull);
90 | .make-grid(@grid-columns, lg, push);
91 | .make-grid(@grid-columns, lg, offset);
92 | }
93 |
94 |
--------------------------------------------------------------------------------
/less/index.php:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/interference-security/recon-ng-web/2ff49e080fa4bc898244718ae1eb7e890ec38470/less/index.php
--------------------------------------------------------------------------------
/less/input-groups.less:
--------------------------------------------------------------------------------
1 | //
2 | // Input groups
3 | // --------------------------------------------------
4 |
5 | // Base styles
6 | // -------------------------
7 | .input-group {
8 | position: relative; // For dropdowns
9 | display: table;
10 | border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table
11 |
12 | // Undo padding and float of grid classes
13 | &.col {
14 | float: none;
15 | padding-left: 0;
16 | padding-right: 0;
17 | }
18 |
19 | .form-control {
20 | width: 100%;
21 | margin-bottom: 0;
22 | }
23 | }
24 |
25 | // Sizing options
26 | //
27 | // Remix the default form control sizing classes into new ones for easier
28 | // manipulation.
29 |
30 | .input-group-lg > .form-control,
31 | .input-group-lg > .input-group-addon,
32 | .input-group-lg > .input-group-btn > .btn { .input-lg(); }
33 | .input-group-sm > .form-control,
34 | .input-group-sm > .input-group-addon,
35 | .input-group-sm > .input-group-btn > .btn { .input-sm(); }
36 |
37 |
38 | // Display as table-cell
39 | // -------------------------
40 | .input-group-addon,
41 | .input-group-btn,
42 | .input-group .form-control {
43 | display: table-cell;
44 |
45 | &:not(:first-child):not(:last-child) {
46 | border-radius: 0;
47 | }
48 | }
49 | // Addon and addon wrapper for buttons
50 | .input-group-addon,
51 | .input-group-btn {
52 | width: 1%;
53 | white-space: nowrap;
54 | vertical-align: middle; // Match the inputs
55 | }
56 |
57 | // Text input groups
58 | // -------------------------
59 | .input-group-addon {
60 | padding: @padding-base-vertical @padding-base-horizontal;
61 | font-size: @font-size-base;
62 | font-weight: normal;
63 | line-height: 1;
64 | color: @input-color;
65 | text-align: center;
66 | background-color: @input-group-addon-bg;
67 | border: 1px solid @input-group-addon-border-color;
68 | border-radius: @border-radius-base;
69 |
70 | // Sizing
71 | &.input-sm {
72 | padding: @padding-small-vertical @padding-small-horizontal;
73 | font-size: @font-size-small;
74 | border-radius: @border-radius-small;
75 | }
76 | &.input-lg {
77 | padding: @padding-large-vertical @padding-large-horizontal;
78 | font-size: @font-size-large;
79 | border-radius: @border-radius-large;
80 | }
81 |
82 | // Nuke default margins from checkboxes and radios to vertically center within.
83 | input[type="radio"],
84 | input[type="checkbox"] {
85 | margin-top: 0;
86 | }
87 | }
88 |
89 | // Reset rounded corners
90 | .input-group .form-control:first-child,
91 | .input-group-addon:first-child,
92 | .input-group-btn:first-child > .btn,
93 | .input-group-btn:first-child > .dropdown-toggle,
94 | .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) {
95 | .border-right-radius(0);
96 | }
97 | .input-group-addon:first-child {
98 | border-right: 0;
99 | }
100 | .input-group .form-control:last-child,
101 | .input-group-addon:last-child,
102 | .input-group-btn:last-child > .btn,
103 | .input-group-btn:last-child > .dropdown-toggle,
104 | .input-group-btn:first-child > .btn:not(:first-child) {
105 | .border-left-radius(0);
106 | }
107 | .input-group-addon:last-child {
108 | border-left: 0;
109 | }
110 |
111 | // Button input groups
112 | // -------------------------
113 | .input-group-btn {
114 | position: relative;
115 | white-space: nowrap;
116 |
117 | // Negative margin to only have a 1px border between the two
118 | &:first-child > .btn {
119 | margin-right: -1px;
120 | }
121 | &:last-child > .btn {
122 | margin-left: -1px;
123 | }
124 | }
125 | .input-group-btn > .btn {
126 | position: relative;
127 | // Jankily prevent input button groups from wrapping
128 | + .btn {
129 | margin-left: -4px;
130 | }
131 | // Bring the "active" button to the front
132 | &:hover,
133 | &:active {
134 | z-index: 2;
135 | }
136 | }
137 |
--------------------------------------------------------------------------------
/less/jumbotron.less:
--------------------------------------------------------------------------------
1 | //
2 | // Jumbotron
3 | // --------------------------------------------------
4 |
5 |
6 | .jumbotron {
7 | padding: @jumbotron-padding;
8 | margin-bottom: @jumbotron-padding;
9 | font-size: @jumbotron-font-size;
10 | font-weight: 200;
11 | line-height: (@line-height-base * 1.5);
12 | color: @jumbotron-color;
13 | background-color: @jumbotron-bg;
14 |
15 | h1 {
16 | line-height: 1;
17 | color: @jumbotron-heading-color;
18 | }
19 | p {
20 | line-height: 1.4;
21 | }
22 |
23 | .container & {
24 | border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container
25 | }
26 |
27 | @media screen and (min-width: @screen-sm-min) {
28 | padding-top: (@jumbotron-padding * 1.6);
29 | padding-bottom: (@jumbotron-padding * 1.6);
30 |
31 | .container & {
32 | padding-left: (@jumbotron-padding * 2);
33 | padding-right: (@jumbotron-padding * 2);
34 | }
35 |
36 | h1 {
37 | font-size: (@font-size-base * 4.5);
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/less/labels.less:
--------------------------------------------------------------------------------
1 | //
2 | // Labels
3 | // --------------------------------------------------
4 |
5 | .label {
6 | display: inline;
7 | padding: .2em .6em .3em;
8 | font-size: 75%;
9 | font-weight: bold;
10 | line-height: 1;
11 | color: @label-color;
12 | text-align: center;
13 | white-space: nowrap;
14 | vertical-align: baseline;
15 | border-radius: .25em;
16 |
17 | // Add hover effects, but only for links
18 | &[href] {
19 | &:hover,
20 | &:focus {
21 | color: @label-link-hover-color;
22 | text-decoration: none;
23 | cursor: pointer;
24 | }
25 | }
26 |
27 | // Empty labels collapse automatically (not available in IE8)
28 | &:empty {
29 | display: none;
30 | }
31 | }
32 |
33 | // Colors
34 | // Contextual variations (linked labels get darker on :hover)
35 |
36 | .label-default {
37 | .label-variant(@label-default-bg);
38 | }
39 |
40 | .label-primary {
41 | .label-variant(@label-primary-bg);
42 | }
43 |
44 | .label-success {
45 | .label-variant(@label-success-bg);
46 | }
47 |
48 | .label-info {
49 | .label-variant(@label-info-bg);
50 | }
51 |
52 | .label-warning {
53 | .label-variant(@label-warning-bg);
54 | }
55 |
56 | .label-danger {
57 | .label-variant(@label-danger-bg);
58 | }
59 |
--------------------------------------------------------------------------------
/less/list-group.less:
--------------------------------------------------------------------------------
1 | //
2 | // List groups
3 | // --------------------------------------------------
4 |
5 | // Base class
6 | //
7 | // Easily usable on , , or .
8 | .list-group {
9 | // No need to set list-style: none; since .list-group-item is block level
10 | margin-bottom: 20px;
11 | padding-left: 0; // reset padding because ul and ol
12 | }
13 |
14 | // Individual list items
15 | // -------------------------
16 |
17 | .list-group-item {
18 | position: relative;
19 | display: block;
20 | padding: 10px 15px;
21 | // Place the border on the list items and negative margin up for better styling
22 | margin-bottom: -1px;
23 | background-color: @list-group-bg;
24 | border: 1px solid @list-group-border;
25 |
26 | // Round the first and last items
27 | &:first-child {
28 | .border-top-radius(@list-group-border-radius);
29 | }
30 | &:last-child {
31 | margin-bottom: 0;
32 | .border-bottom-radius(@list-group-border-radius);
33 | }
34 |
35 | // Align badges within list items
36 | > .badge {
37 | float: right;
38 | }
39 | > .badge + .badge {
40 | margin-right: 5px;
41 | }
42 | }
43 |
44 | // Linked list items
45 | a.list-group-item {
46 | color: @list-group-link-color;
47 |
48 | .list-group-item-heading {
49 | color: @list-group-link-heading-color;
50 | }
51 |
52 | // Hover state
53 | &:hover,
54 | &:focus {
55 | text-decoration: none;
56 | background-color: @list-group-hover-bg;
57 | }
58 |
59 | // Active class on item itself, not parent
60 | &.active,
61 | &.active:hover,
62 | &.active:focus {
63 | z-index: 2; // Place active items above their siblings for proper border styling
64 | color: @list-group-active-color;
65 | background-color: @list-group-active-bg;
66 | border-color: @list-group-active-border;
67 |
68 | // Force color to inherit for custom content
69 | .list-group-item-heading {
70 | color: inherit;
71 | }
72 | .list-group-item-text {
73 | color: lighten(@list-group-active-bg, 40%);
74 | }
75 | }
76 | }
77 |
78 | // Custom content options
79 | // -------------------------
80 |
81 | .list-group-item-heading {
82 | margin-top: 0;
83 | margin-bottom: 5px;
84 | }
85 | .list-group-item-text {
86 | margin-bottom: 0;
87 | line-height: 1.3;
88 | }
89 |
--------------------------------------------------------------------------------
/less/media.less:
--------------------------------------------------------------------------------
1 | // Media objects
2 | // Source: http://stubbornella.org/content/?p=497
3 | // --------------------------------------------------
4 |
5 |
6 | // Common styles
7 | // -------------------------
8 |
9 | // Clear the floats
10 | .media,
11 | .media-body {
12 | overflow: hidden;
13 | zoom: 1;
14 | }
15 |
16 | // Proper spacing between instances of .media
17 | .media,
18 | .media .media {
19 | margin-top: 15px;
20 | }
21 | .media:first-child {
22 | margin-top: 0;
23 | }
24 |
25 | // For images and videos, set to block
26 | .media-object {
27 | display: block;
28 | }
29 |
30 | // Reset margins on headings for tighter default spacing
31 | .media-heading {
32 | margin: 0 0 5px;
33 | }
34 |
35 |
36 | // Media image alignment
37 | // -------------------------
38 |
39 | .media {
40 | > .pull-left {
41 | margin-right: 10px;
42 | }
43 | > .pull-right {
44 | margin-left: 10px;
45 | }
46 | }
47 |
48 |
49 | // Media list variation
50 | // -------------------------
51 |
52 | // Undo default ul/ol styles
53 | .media-list {
54 | padding-left: 0;
55 | list-style: none;
56 | }
57 |
--------------------------------------------------------------------------------
/less/modals.less:
--------------------------------------------------------------------------------
1 | //
2 | // Modals
3 | // --------------------------------------------------
4 |
5 | // .modal-open - body class for killing the scroll
6 | // .modal - container to scroll within
7 | // .modal-dialog - positioning shell for the actual modal
8 | // .modal-content - actual modal w/ bg and corners and shit
9 |
10 | // Kill the scroll on the body
11 | .modal-open {
12 | overflow: hidden;
13 | }
14 |
15 | // Container that the modal scrolls within
16 | .modal {
17 | display: none;
18 | overflow: auto;
19 | overflow-y: scroll;
20 | position: fixed;
21 | top: 0;
22 | right: 0;
23 | bottom: 0;
24 | left: 0;
25 | z-index: @zindex-modal-background;
26 |
27 | // When fading in the modal, animate it to slide down
28 | &.fade .modal-dialog {
29 | .translate(0, -25%);
30 | .transition-transform(~"0.3s ease-out");
31 | }
32 | &.in .modal-dialog { .translate(0, 0)}
33 | }
34 |
35 | // Shell div to position the modal with bottom padding
36 | .modal-dialog {
37 | position: relative;
38 | margin-left: auto;
39 | margin-right: auto;
40 | width: auto;
41 | padding: 10px;
42 | z-index: (@zindex-modal-background + 10);
43 | }
44 |
45 | // Actual modal
46 | .modal-content {
47 | position: relative;
48 | background-color: @modal-content-bg;
49 | border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc)
50 | border: 1px solid @modal-content-border-color;
51 | border-radius: @border-radius-large;
52 | .box-shadow(0 3px 9px rgba(0,0,0,.5));
53 | background-clip: padding-box;
54 | // Remove focus outline from opened modal
55 | outline: none;
56 | }
57 |
58 | // Modal background
59 | .modal-backdrop {
60 | position: fixed;
61 | top: 0;
62 | right: 0;
63 | bottom: 0;
64 | left: 0;
65 | z-index: (@zindex-modal-background - 10);
66 | background-color: @modal-backdrop-bg;
67 | // Fade for backdrop
68 | &.fade { .opacity(0); }
69 | &.in { .opacity(.5); }
70 | }
71 |
72 | // Modal header
73 | // Top section of the modal w/ title and dismiss
74 | .modal-header {
75 | padding: @modal-title-padding;
76 | border-bottom: 1px solid @modal-header-border-color;
77 | min-height: (@modal-title-padding + @modal-title-line-height);
78 | }
79 | // Close icon
80 | .modal-header .close {
81 | margin-top: -2px;
82 | }
83 |
84 | // Title text within header
85 | .modal-title {
86 | margin: 0;
87 | line-height: @modal-title-line-height;
88 | }
89 |
90 | // Modal body
91 | // Where all modal content resides (sibling of .modal-header and .modal-footer)
92 | .modal-body {
93 | position: relative;
94 | padding: @modal-inner-padding;
95 | }
96 |
97 | // Footer (for actions)
98 | .modal-footer {
99 | margin-top: 15px;
100 | padding: (@modal-inner-padding - 1) @modal-inner-padding @modal-inner-padding;
101 | text-align: right; // right align buttons
102 | border-top: 1px solid @modal-footer-border-color;
103 | .clearfix(); // clear it in case folks use .pull-* classes on buttons
104 |
105 | // Properly space out buttons
106 | .btn + .btn {
107 | margin-left: 5px;
108 | margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs
109 | }
110 | // but override that for button groups
111 | .btn-group .btn + .btn {
112 | margin-left: -1px;
113 | }
114 | // and override it for block buttons as well
115 | .btn-block + .btn-block {
116 | margin-left: 0;
117 | }
118 | }
119 |
120 | // Scale up the modal
121 | @media screen and (min-width: @screen-sm-min) {
122 |
123 | .modal-dialog {
124 | width: 600px;
125 | padding-top: 30px;
126 | padding-bottom: 30px;
127 | }
128 | .modal-content {
129 | .box-shadow(0 5px 15px rgba(0,0,0,.5));
130 | }
131 |
132 | }
133 |
--------------------------------------------------------------------------------
/less/pager.less:
--------------------------------------------------------------------------------
1 | //
2 | // Pager pagination
3 | // --------------------------------------------------
4 |
5 |
6 | .pager {
7 | padding-left: 0;
8 | margin: @line-height-computed 0;
9 | list-style: none;
10 | text-align: center;
11 | .clearfix();
12 | li {
13 | display: inline;
14 | > a,
15 | > span {
16 | display: inline-block;
17 | padding: 5px 14px;
18 | background-color: @pagination-bg;
19 | border: 1px solid @pagination-border;
20 | border-radius: @pager-border-radius;
21 | }
22 |
23 | > a:hover,
24 | > a:focus {
25 | text-decoration: none;
26 | background-color: @pagination-hover-bg;
27 | }
28 | }
29 |
30 | .next {
31 | > a,
32 | > span {
33 | float: right;
34 | }
35 | }
36 |
37 | .previous {
38 | > a,
39 | > span {
40 | float: left;
41 | }
42 | }
43 |
44 | .disabled {
45 | > a,
46 | > a:hover,
47 | > a:focus,
48 | > span {
49 | color: @pager-disabled-color;
50 | background-color: @pagination-bg;
51 | cursor: not-allowed;
52 | }
53 | }
54 |
55 | }
56 |
--------------------------------------------------------------------------------
/less/pagination.less:
--------------------------------------------------------------------------------
1 | //
2 | // Pagination (multiple pages)
3 | // --------------------------------------------------
4 | .pagination {
5 | display: inline-block;
6 | padding-left: 0;
7 | margin: @line-height-computed 0;
8 | border-radius: @border-radius-base;
9 |
10 | > li {
11 | display: inline; // Remove list-style and block-level defaults
12 | > a,
13 | > span {
14 | position: relative;
15 | float: left; // Collapse white-space
16 | padding: @padding-base-vertical @padding-base-horizontal;
17 | line-height: @line-height-base;
18 | text-decoration: none;
19 | background-color: @pagination-bg;
20 | border: 1px solid @pagination-border;
21 | margin-left: -1px;
22 | }
23 | &:first-child {
24 | > a,
25 | > span {
26 | margin-left: 0;
27 | .border-left-radius(@border-radius-base);
28 | }
29 | }
30 | &:last-child {
31 | > a,
32 | > span {
33 | .border-right-radius(@border-radius-base);
34 | }
35 | }
36 | }
37 |
38 | > li > a,
39 | > li > span {
40 | &:hover,
41 | &:focus {
42 | background-color: @pagination-hover-bg;
43 | }
44 | }
45 |
46 | > .active > a,
47 | > .active > span {
48 | &,
49 | &:hover,
50 | &:focus {
51 | z-index: 2;
52 | color: @pagination-active-color;
53 | background-color: @pagination-active-bg;
54 | border-color: @pagination-active-bg;
55 | cursor: default;
56 | }
57 | }
58 |
59 | > .disabled {
60 | > span,
61 | > span:hover,
62 | > span:focus,
63 | > a,
64 | > a:hover,
65 | > a:focus {
66 | color: @pagination-disabled-color;
67 | background-color: @pagination-bg;
68 | border-color: @pagination-border;
69 | cursor: not-allowed;
70 | }
71 | }
72 | }
73 |
74 | // Sizing
75 | // --------------------------------------------------
76 |
77 | // Large
78 | .pagination-lg {
79 | .pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @border-radius-large);
80 | }
81 |
82 | // Small
83 | .pagination-sm {
84 | .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @border-radius-small);
85 | }
86 |
--------------------------------------------------------------------------------
/less/popovers.less:
--------------------------------------------------------------------------------
1 | //
2 | // Popovers
3 | // --------------------------------------------------
4 |
5 |
6 | .popover {
7 | position: absolute;
8 | top: 0;
9 | left: 0;
10 | z-index: @zindex-popover;
11 | display: none;
12 | max-width: @popover-max-width;
13 | padding: 1px;
14 | text-align: left; // Reset given new insertion method
15 | background-color: @popover-bg;
16 | background-clip: padding-box;
17 | border: 1px solid @popover-fallback-border-color;
18 | border: 1px solid @popover-border-color;
19 | border-radius: @border-radius-large;
20 | .box-shadow(0 5px 10px rgba(0,0,0,.2));
21 |
22 | // Overrides for proper insertion
23 | white-space: normal;
24 |
25 | // Offset the popover to account for the popover arrow
26 | &.top { margin-top: -10px; }
27 | &.right { margin-left: 10px; }
28 | &.bottom { margin-top: 10px; }
29 | &.left { margin-left: -10px; }
30 | }
31 |
32 | .popover-title {
33 | margin: 0; // reset heading margin
34 | padding: 8px 14px;
35 | font-size: @font-size-base;
36 | font-weight: normal;
37 | line-height: 18px;
38 | background-color: @popover-title-bg;
39 | border-bottom: 1px solid darken(@popover-title-bg, 5%);
40 | border-radius: 5px 5px 0 0;
41 | }
42 |
43 | .popover-content {
44 | padding: 9px 14px;
45 | }
46 |
47 | // Arrows
48 | //
49 | // .arrow is outer, .arrow:after is inner
50 |
51 | .popover .arrow {
52 | &,
53 | &:after {
54 | position: absolute;
55 | display: block;
56 | width: 0;
57 | height: 0;
58 | border-color: transparent;
59 | border-style: solid;
60 | }
61 | }
62 | .popover .arrow {
63 | border-width: @popover-arrow-outer-width;
64 | }
65 | .popover .arrow:after {
66 | border-width: @popover-arrow-width;
67 | content: "";
68 | }
69 |
70 | .popover {
71 | &.top .arrow {
72 | left: 50%;
73 | margin-left: -@popover-arrow-outer-width;
74 | border-bottom-width: 0;
75 | border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback
76 | border-top-color: @popover-arrow-outer-color;
77 | bottom: -@popover-arrow-outer-width;
78 | &:after {
79 | content: " ";
80 | bottom: 1px;
81 | margin-left: -@popover-arrow-width;
82 | border-bottom-width: 0;
83 | border-top-color: @popover-arrow-color;
84 | }
85 | }
86 | &.right .arrow {
87 | top: 50%;
88 | left: -@popover-arrow-outer-width;
89 | margin-top: -@popover-arrow-outer-width;
90 | border-left-width: 0;
91 | border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback
92 | border-right-color: @popover-arrow-outer-color;
93 | &:after {
94 | content: " ";
95 | left: 1px;
96 | bottom: -@popover-arrow-width;
97 | border-left-width: 0;
98 | border-right-color: @popover-arrow-color;
99 | }
100 | }
101 | &.bottom .arrow {
102 | left: 50%;
103 | margin-left: -@popover-arrow-outer-width;
104 | border-top-width: 0;
105 | border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback
106 | border-bottom-color: @popover-arrow-outer-color;
107 | top: -@popover-arrow-outer-width;
108 | &:after {
109 | content: " ";
110 | top: 1px;
111 | margin-left: -@popover-arrow-width;
112 | border-top-width: 0;
113 | border-bottom-color: @popover-arrow-color;
114 | }
115 | }
116 |
117 | &.left .arrow {
118 | top: 50%;
119 | right: -@popover-arrow-outer-width;
120 | margin-top: -@popover-arrow-outer-width;
121 | border-right-width: 0;
122 | border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback
123 | border-left-color: @popover-arrow-outer-color;
124 | &:after {
125 | content: " ";
126 | right: 1px;
127 | border-right-width: 0;
128 | border-left-color: @popover-arrow-color;
129 | bottom: -@popover-arrow-width;
130 | }
131 | }
132 |
133 | }
134 |
--------------------------------------------------------------------------------
/less/print.less:
--------------------------------------------------------------------------------
1 | //
2 | // Basic print styles
3 | // --------------------------------------------------
4 | // Source: https://github.com/h5bp/html5-boilerplate/blob/master/css/main.css
5 |
6 | @media print {
7 |
8 | * {
9 | text-shadow: none !important;
10 | color: #000 !important; // Black prints faster: h5bp.com/s
11 | background: transparent !important;
12 | box-shadow: none !important;
13 | }
14 |
15 | a,
16 | a:visited {
17 | text-decoration: underline;
18 | }
19 |
20 | a[href]:after {
21 | content: " (" attr(href) ")";
22 | }
23 |
24 | abbr[title]:after {
25 | content: " (" attr(title) ")";
26 | }
27 |
28 | // Don't show links for images, or javascript/internal links
29 | a[href^="javascript:"]:after,
30 | a[href^="#"]:after {
31 | content: "";
32 | }
33 |
34 | pre,
35 | blockquote {
36 | border: 1px solid #999;
37 | page-break-inside: avoid;
38 | }
39 |
40 | thead {
41 | display: table-header-group; // h5bp.com/t
42 | }
43 |
44 | tr,
45 | img {
46 | page-break-inside: avoid;
47 | }
48 |
49 | img {
50 | max-width: 100% !important;
51 | }
52 |
53 | @page {
54 | margin: 2cm .5cm;
55 | }
56 |
57 | p,
58 | h2,
59 | h3 {
60 | orphans: 3;
61 | widows: 3;
62 | }
63 |
64 | h2,
65 | h3 {
66 | page-break-after: avoid;
67 | }
68 |
69 | // Chrome (OSX) fix for https://github.com/twbs/bootstrap/issues/11245
70 | // Once fixed, we can just straight up remove this.
71 | select {
72 | background: #fff !important;
73 | }
74 |
75 | // Bootstrap components
76 | .navbar {
77 | display: none;
78 | }
79 | .table {
80 | td,
81 | th {
82 | background-color: #fff !important;
83 | }
84 | }
85 | .btn,
86 | .dropup > .btn {
87 | > .caret {
88 | border-top-color: #000 !important;
89 | }
90 | }
91 | .label {
92 | border: 1px solid #000;
93 | }
94 |
95 | .table {
96 | border-collapse: collapse !important;
97 | }
98 | .table-bordered {
99 | th,
100 | td {
101 | border: 1px solid #ddd !important;
102 | }
103 | }
104 |
105 | }
106 |
--------------------------------------------------------------------------------
/less/progress-bars.less:
--------------------------------------------------------------------------------
1 | //
2 | // Progress bars
3 | // --------------------------------------------------
4 |
5 |
6 | // Bar animations
7 | // -------------------------
8 |
9 | // WebKit
10 | @-webkit-keyframes progress-bar-stripes {
11 | from { background-position: 40px 0; }
12 | to { background-position: 0 0; }
13 | }
14 |
15 | // Firefox
16 | @-moz-keyframes progress-bar-stripes {
17 | from { background-position: 40px 0; }
18 | to { background-position: 0 0; }
19 | }
20 |
21 | // Opera
22 | @-o-keyframes progress-bar-stripes {
23 | from { background-position: 0 0; }
24 | to { background-position: 40px 0; }
25 | }
26 |
27 | // Spec and IE10+
28 | @keyframes progress-bar-stripes {
29 | from { background-position: 40px 0; }
30 | to { background-position: 0 0; }
31 | }
32 |
33 |
34 |
35 | // Bar itself
36 | // -------------------------
37 |
38 | // Outer container
39 | .progress {
40 | overflow: hidden;
41 | height: @line-height-computed;
42 | margin-bottom: @line-height-computed;
43 | background-color: @progress-bg;
44 | border-radius: @border-radius-base;
45 | .box-shadow(inset 0 1px 2px rgba(0,0,0,.1));
46 | }
47 |
48 | // Bar of progress
49 | .progress-bar {
50 | float: left;
51 | width: 0%;
52 | height: 100%;
53 | font-size: @font-size-small;
54 | line-height: @line-height-computed;
55 | color: @progress-bar-color;
56 | text-align: center;
57 | background-color: @progress-bar-bg;
58 | .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));
59 | .transition(width .6s ease);
60 | }
61 |
62 | // Striped bars
63 | .progress-striped .progress-bar {
64 | #gradient > .striped();
65 | background-size: 40px 40px;
66 | }
67 |
68 | // Call animation for the active one
69 | .progress.active .progress-bar {
70 | .animation(progress-bar-stripes 2s linear infinite);
71 | }
72 |
73 |
74 |
75 | // Variations
76 | // -------------------------
77 |
78 | .progress-bar-success {
79 | .progress-bar-variant(@progress-bar-success-bg);
80 | }
81 |
82 | .progress-bar-info {
83 | .progress-bar-variant(@progress-bar-info-bg);
84 | }
85 |
86 | .progress-bar-warning {
87 | .progress-bar-variant(@progress-bar-warning-bg);
88 | }
89 |
90 | .progress-bar-danger {
91 | .progress-bar-variant(@progress-bar-danger-bg);
92 | }
93 |
--------------------------------------------------------------------------------
/less/scaffolding.less:
--------------------------------------------------------------------------------
1 | //
2 | // Scaffolding
3 | // --------------------------------------------------
4 |
5 |
6 | // Reset the box-sizing
7 |
8 | *,
9 | *:before,
10 | *:after {
11 | .box-sizing(border-box);
12 | }
13 |
14 |
15 | // Body reset
16 |
17 | html {
18 | font-size: 62.5%;
19 | -webkit-tap-highlight-color: rgba(0,0,0,0);
20 | }
21 |
22 | body {
23 | font-family: @font-family-base;
24 | font-size: @font-size-base;
25 | line-height: @line-height-base;
26 | color: @text-color;
27 | background-color: @body-bg;
28 | }
29 |
30 | // Reset fonts for relevant elements
31 | input,
32 | button,
33 | select,
34 | textarea {
35 | font-family: inherit;
36 | font-size: inherit;
37 | line-height: inherit;
38 | }
39 |
40 |
41 | // Links
42 |
43 | a {
44 | color: @link-color;
45 | text-decoration: none;
46 |
47 | &:hover,
48 | &:focus {
49 | color: @link-hover-color;
50 | text-decoration: underline;
51 | }
52 |
53 | &:focus {
54 | .tab-focus();
55 | }
56 | }
57 |
58 |
59 | // Images
60 |
61 | img {
62 | vertical-align: middle;
63 | }
64 |
65 | // Responsive images (ensure images don't scale beyond their parents)
66 | .img-responsive {
67 | .img-responsive();
68 | }
69 |
70 | // Rounded corners
71 | .img-rounded {
72 | border-radius: @border-radius-large;
73 | }
74 |
75 | // Image thumbnails
76 | //
77 | // Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.
78 | .img-thumbnail {
79 | padding: @thumbnail-padding;
80 | line-height: @line-height-base;
81 | background-color: @thumbnail-bg;
82 | border: 1px solid @thumbnail-border;
83 | border-radius: @thumbnail-border-radius;
84 | .transition(all .2s ease-in-out);
85 |
86 | // Keep them at most 100% wide
87 | .img-responsive(inline-block);
88 | }
89 |
90 | // Perfect circle
91 | .img-circle {
92 | border-radius: 50%; // set radius in percents
93 | }
94 |
95 |
96 | // Horizontal rules
97 |
98 | hr {
99 | margin-top: @line-height-computed;
100 | margin-bottom: @line-height-computed;
101 | border: 0;
102 | border-top: 1px solid @hr-border;
103 | }
104 |
105 |
106 | // Only display content to screen readers
107 | //
108 | // See: http://a11yproject.com/posts/how-to-hide-content/
109 |
110 | .sr-only {
111 | position: absolute;
112 | width: 1px;
113 | height: 1px;
114 | margin: -1px;
115 | padding: 0;
116 | overflow: hidden;
117 | clip: rect(0,0,0,0);
118 | border: 0;
119 | }
120 |
--------------------------------------------------------------------------------
/less/thumbnails.less:
--------------------------------------------------------------------------------
1 | //
2 | // Thumbnails
3 | // --------------------------------------------------
4 |
5 |
6 | // Mixin and adjust the regular image class
7 | .thumbnail {
8 | .img-thumbnail();
9 | display: block; // Override the inline-block from `.img-thumbnail`
10 | margin-bottom: @line-height-computed;
11 |
12 | > img {
13 | .img-responsive();
14 | margin-left: auto;
15 | margin-right: auto;
16 | }
17 | }
18 |
19 |
20 | // Add a hover state for linked versions only
21 | a.thumbnail:hover,
22 | a.thumbnail:focus,
23 | a.thumbnail.active {
24 | border-color: @link-color;
25 | }
26 |
27 | // Image captions
28 | .thumbnail .caption {
29 | padding: @thumbnail-caption-padding;
30 | color: @thumbnail-caption-color;
31 | }
32 |
--------------------------------------------------------------------------------
/less/tooltip.less:
--------------------------------------------------------------------------------
1 | //
2 | // Tooltips
3 | // --------------------------------------------------
4 |
5 |
6 | // Base class
7 | .tooltip {
8 | position: absolute;
9 | z-index: @zindex-tooltip;
10 | display: block;
11 | visibility: visible;
12 | font-size: @font-size-small;
13 | line-height: 1.4;
14 | .opacity(0);
15 |
16 | &.in { .opacity(.9); }
17 | &.top { margin-top: -3px; padding: @tooltip-arrow-width 0; }
18 | &.right { margin-left: 3px; padding: 0 @tooltip-arrow-width; }
19 | &.bottom { margin-top: 3px; padding: @tooltip-arrow-width 0; }
20 | &.left { margin-left: -3px; padding: 0 @tooltip-arrow-width; }
21 | }
22 |
23 | // Wrapper for the tooltip content
24 | .tooltip-inner {
25 | max-width: @tooltip-max-width;
26 | padding: 3px 8px;
27 | color: @tooltip-color;
28 | text-align: center;
29 | text-decoration: none;
30 | background-color: @tooltip-bg;
31 | border-radius: @border-radius-base;
32 | }
33 |
34 | // Arrows
35 | .tooltip-arrow {
36 | position: absolute;
37 | width: 0;
38 | height: 0;
39 | border-color: transparent;
40 | border-style: solid;
41 | }
42 | .tooltip {
43 | &.top .tooltip-arrow {
44 | bottom: 0;
45 | left: 50%;
46 | margin-left: -@tooltip-arrow-width;
47 | border-width: @tooltip-arrow-width @tooltip-arrow-width 0;
48 | border-top-color: @tooltip-arrow-color;
49 | }
50 | &.top-left .tooltip-arrow {
51 | bottom: 0;
52 | left: @tooltip-arrow-width;
53 | border-width: @tooltip-arrow-width @tooltip-arrow-width 0;
54 | border-top-color: @tooltip-arrow-color;
55 | }
56 | &.top-right .tooltip-arrow {
57 | bottom: 0;
58 | right: @tooltip-arrow-width;
59 | border-width: @tooltip-arrow-width @tooltip-arrow-width 0;
60 | border-top-color: @tooltip-arrow-color;
61 | }
62 | &.right .tooltip-arrow {
63 | top: 50%;
64 | left: 0;
65 | margin-top: -@tooltip-arrow-width;
66 | border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0;
67 | border-right-color: @tooltip-arrow-color;
68 | }
69 | &.left .tooltip-arrow {
70 | top: 50%;
71 | right: 0;
72 | margin-top: -@tooltip-arrow-width;
73 | border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width;
74 | border-left-color: @tooltip-arrow-color;
75 | }
76 | &.bottom .tooltip-arrow {
77 | top: 0;
78 | left: 50%;
79 | margin-left: -@tooltip-arrow-width;
80 | border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;
81 | border-bottom-color: @tooltip-arrow-color;
82 | }
83 | &.bottom-left .tooltip-arrow {
84 | top: 0;
85 | left: @tooltip-arrow-width;
86 | border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;
87 | border-bottom-color: @tooltip-arrow-color;
88 | }
89 | &.bottom-right .tooltip-arrow {
90 | top: 0;
91 | right: @tooltip-arrow-width;
92 | border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;
93 | border-bottom-color: @tooltip-arrow-color;
94 | }
95 | }
96 |
--------------------------------------------------------------------------------
/less/utilities.less:
--------------------------------------------------------------------------------
1 | //
2 | // Utility classes
3 | // --------------------------------------------------
4 |
5 |
6 | // Floats
7 | // -------------------------
8 |
9 | .clearfix {
10 | .clearfix();
11 | }
12 | .center-block {
13 | .center-block();
14 | }
15 | .pull-right {
16 | float: right !important;
17 | }
18 | .pull-left {
19 | float: left !important;
20 | }
21 |
22 |
23 | // Toggling content
24 | // -------------------------
25 |
26 | // Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1
27 | .hide {
28 | display: none !important;
29 | }
30 | .show {
31 | display: block !important;
32 | }
33 | .invisible {
34 | visibility: hidden;
35 | }
36 | .text-hide {
37 | .text-hide();
38 | }
39 |
40 |
41 | // Hide from screenreaders and browsers
42 | //
43 | // Credit: HTML5 Boilerplate
44 |
45 | .hidden {
46 | display: none !important;
47 | visibility: hidden !important;
48 | }
49 |
50 |
51 | // For Affix plugin
52 | // -------------------------
53 |
54 | .affix {
55 | position: fixed;
56 | }
57 |
--------------------------------------------------------------------------------
/less/wells.less:
--------------------------------------------------------------------------------
1 | //
2 | // Wells
3 | // --------------------------------------------------
4 |
5 |
6 | // Base class
7 | .well {
8 | min-height: 20px;
9 | padding: 19px;
10 | margin-bottom: 20px;
11 | background-color: @well-bg;
12 | border: 1px solid darken(@well-bg, 7%);
13 | border-radius: @border-radius-base;
14 | .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
15 | blockquote {
16 | border-color: #ddd;
17 | border-color: rgba(0,0,0,.15);
18 | }
19 | }
20 |
21 | // Sizes
22 | .well-lg {
23 | padding: 24px;
24 | border-radius: @border-radius-large;
25 | }
26 | .well-sm {
27 | padding: 9px;
28 | border-radius: @border-radius-small;
29 | }
30 |
--------------------------------------------------------------------------------
/module.php:
--------------------------------------------------------------------------------
1 |
5 | 0)
8 | {
9 | $module_name = urldecode($_GET['module_name']);
10 | $module_name = preg_replace('/[^a-zA-Z0-9\/\-\_]/s', '', $module_name);
11 | $module_disk_path = "data/modules/$module_name.php";
12 | }
13 | ?>
14 |
15 |
16 |
17 |
Recon-ng Web: Module
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/reset.php:
--------------------------------------------------------------------------------
1 |
Recon-ng configuration has been reset to default."
';
26 | return;
27 | }
28 | catch(Exception $e)
29 | {
30 | echo ' Resetting Recon-ng failed. Try again or contact administrator
';
31 | }
32 | return;
33 | }
34 | ?>
35 |
36 |
37 |
38 | Recon-ng Web: Reset
39 |
40 |
41 |
42 |
59 |
72 |
73 |
74 |
--------------------------------------------------------------------------------
/rpc-settings.php:
--------------------------------------------------------------------------------
1 | 0)
3 | {
4 | try
5 | {
6 | $set_rpc_url = urldecode($_POST['set_rpc_url']);
7 | session_start();
8 | $_SESSION['recon_rpc_url'] = $set_rpc_url;
9 | echo ' Recon-ng RPC URL has been configured.
';
10 | }
11 | catch(Exception $e)
12 | {
13 | echo ' Setting RPC URL failed. Try again or contact administrator
';
14 | }
15 | return;
16 | }
17 | ?>
18 |
19 |
20 |
21 | Recon-ng Web: RPC Settings
22 |
23 |
24 |
25 |
55 |
68 |
69 |
70 |
--------------------------------------------------------------------------------
/uploads/.htaccess:
--------------------------------------------------------------------------------
1 | RemoveHandler .php .phtml .php3
2 | RemoveType .php .phtml .php3
3 | RemoveHandler .html .htm
4 | RemoveType .html .htm
5 | php_flag engine off
--------------------------------------------------------------------------------
/uploads/index.php:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/interference-security/recon-ng-web/2ff49e080fa4bc898244718ae1eb7e890ec38470/uploads/index.php
--------------------------------------------------------------------------------
/workspace.php:
--------------------------------------------------------------------------------
1 | 0)
3 | {
4 | try
5 | {
6 | $set_workspace = urldecode($_POST['set_workspace']);
7 | require_once("includes/config.php");
8 | require_once("includes/functions.php");
9 | $sid = manager_recon("init", NULL);
10 | $set_recon_workspace = manager_recon("workspace", array($set_workspace, $sid));
11 | echo ' Recon-ng workspace configured to "'.htmlentities($set_workspace).'"
';
12 | @session_start();
13 | $_SESSION['recon_workspace'] = $set_workspace;
14 | return;
15 | }
16 | catch(Exception $e)
17 | {
18 | echo ' Setting Recon-ng workspace failed. Try again or contact administrator
';
19 | }
20 | return;
21 | }
22 | ?>
23 |
24 |
25 |
26 | Recon-ng Web
27 |
28 |
29 |
30 |
60 |
73 |
74 |
75 |
--------------------------------------------------------------------------------