mirror of
https://github.com/drk1wi/portspoof.git
synced 2024-06-16 03:48:54 +00:00
github pages
This commit is contained in:
parent
da5b0b0e7b
commit
5eed6fc61a
0
docs/README.md
Executable file
0
docs/README.md
Executable file
BIN
docs/icons/PythonPowered.png
Executable file
BIN
docs/icons/PythonPowered.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 945 B |
BIN
docs/icons/gnu-head-tiny.jpg
Executable file
BIN
docs/icons/gnu-head-tiny.jpg
Executable file
Binary file not shown.
After Width: | Height: | Size: 3.0 KiB |
BIN
docs/icons/mailman.jpg
Executable file
BIN
docs/icons/mailman.jpg
Executable file
Binary file not shown.
After Width: | Height: | Size: 2.0 KiB |
BIN
docs/icons/mm-icon.png
Executable file
BIN
docs/icons/mm-icon.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 281 B |
230
docs/index.html
Executable file
230
docs/index.html
Executable file
@ -0,0 +1,230 @@
|
||||
<!DOCTYPE html>
|
||||
<!--[if lt IE 7 ]><html class="ie ie6" lang="en"> <![endif]-->
|
||||
<!--[if IE 7 ]><html class="ie ie7" lang="en"> <![endif]-->
|
||||
<!--[if IE 8 ]><html class="ie ie8" lang="en"> <![endif]-->
|
||||
<!--[if (gte IE 9)|!(IE)]><!--><html lang="en"> <!--<![endif]-->
|
||||
<head>
|
||||
|
||||
<!-- Basic Page Needs
|
||||
================================================== -->
|
||||
<meta charset="utf-8">
|
||||
<meta name="robots" content="index,follow" />
|
||||
|
||||
<title> Portspoof - A new approach to fight back port and service scanners.</title>
|
||||
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
|
||||
<meta name="description" content="Mangle your attackers' port scan results effectively. "/>
|
||||
<meta name="keywords" content="port scanning, spoofing, spoof"/>
|
||||
<link rel="shortcut icon" href="media/favicon.ico" type="image/x-icon" />
|
||||
|
||||
<!-- Mobile Specific Metas
|
||||
================================================== -->
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
|
||||
<!-- CSS
|
||||
================================================== -->
|
||||
<link rel="stylesheet" href="stylesheets/base.css">
|
||||
<link rel="stylesheet" href="stylesheets/skeleton.css">
|
||||
<link rel="stylesheet" href="stylesheets/layout.css">
|
||||
<link rel="stylesheet" href="stylesheets/custom.css">
|
||||
|
||||
<!--[if lt IE 9]>
|
||||
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
var _gaq = _gaq || [];
|
||||
_gaq.push(['_setAccount', 'UA-12466584-7']);
|
||||
_gaq.push(['_trackPageview']);
|
||||
|
||||
(function() {
|
||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||
})();
|
||||
|
||||
</script>
|
||||
</head>
|
||||
|
||||
|
||||
<body>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<div class="sixteen columns navbar">
|
||||
<h1 class="remove-bottom" ># Portspoof </h1>
|
||||
</div>
|
||||
|
||||
<div class='sixteen columns navlinks'>
|
||||
<ul>
|
||||
<li><a href="#about">About</a>
|
||||
</li>
|
||||
<li><a href="https://github.com/drk1wi/portspoof/">Repo</a>
|
||||
</li>
|
||||
<li><a href="https://github.com/drk1wi/portspoof/archive/master.zip">Download</a>
|
||||
</li>
|
||||
<li><a href="#features">Features</a>
|
||||
</li>
|
||||
<li><a href="#license">License & Log</a>
|
||||
</li>
|
||||
<li><a href="https://github.com/drk1wi/portspoof/blob/master/DOCS">Documentation</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="twelve columns offset-by-one content">
|
||||
|
||||
|
||||
<div class="doc-section" id="about">
|
||||
|
||||
<h3 >About Portspoof</h3>
|
||||
<br>
|
||||
|
||||
<p> The Portspoof program primary goal is to enhance your systems security through a set of new camouflage techniques. As a result of applying them your attackers' port scan result will become entirely mangled and to very significant extent meaningless. </p>
|
||||
<strong>Techniques used to achieve this:</strong>
|
||||
<br> <br>
|
||||
|
||||
<ul class="square"><li>
|
||||
<strong>All configured TCP ports are always open</strong>
|
||||
</ul></li>
|
||||
|
||||
<p>Instead of informing an attacker that a particular port is in a CLOSED or FILTERED state a system running Portspoof will return SYN+ACK for every connection attempt.</p>
|
||||
|
||||
<p><u>Result</u>: As a result it is impractical to use stealth (SYN, ACK, etc.) port scanning against your system, since all ports are always reported as OPEN.
|
||||
With this approach it is really difficult to determine if a valid software is listening on a particular port (check out the screenshots).</p>
|
||||
<ul class="square"><li>
|
||||
<strong>Every open TCP port emulates a valid services</strong>
|
||||
</ul></li>
|
||||
|
||||
<p>Portspoof has a huge dynamic service signature database, that will be used to generate responses to your offenders scanning software service probes.</p>
|
||||
|
||||
<p>Scanning software usually tries to determine a service that is running on an open port. This step is mandatory if one would want to identify port numbers on which you are running your services on a system behind the Portspoof.
|
||||
For this reason Portspoof will respond to every service probe with a valid service signature, that is dynamically generated based on a service signature regular expression database. </p>
|
||||
<p><u>Result</u>: As a result an attacker will not be able to determine which port numbers your system is truly using. </p>
|
||||
|
||||
<h5><strong>Reverse exploitation with Portspoof:</strong></h5>
|
||||
<p>Portspoof can be used as an 'Exploitation Framework Frontend', that turns your system into responsive and aggressive machine. In practice this usually means exploiting your attackers' tools and exploits. </p>
|
||||
<p>At the moment there are few example exploits in the configuration file (portspoof.conf). One of them exploits Nmap 6.25 default script.</p>
|
||||
|
||||
<h5><strong>Overview:</strong></h5>
|
||||
|
||||
<p>Portspoof is meant to be a lightweight, fast, portable and secure addition to the any firewall system or security system.
|
||||
The general goal of the program is to make the reconessaince phase slow and bothersome for your attackers as much it is only possible.
|
||||
This is quite a change to the standard 5s Nmap scan, that will give a full view of your systems running services.</p>
|
||||
|
||||
<p>By using all of the above mentioned techniques together:</br>
|
||||
<ul class="square">
|
||||
<li>your attackers will have a tough time while trying to identify all of your listening services.</li>
|
||||
<li>the only way to determine if a service is emulated is through a protocol probe (imagine probing protocols for 65k open ports!).</li>
|
||||
<li>it takes more than 8 hours and 200MB of sent data in order to get all of the service banners for your system ( nmap -sV -p - equivalent).</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<hr class="large" />
|
||||
<div class="doc-section">
|
||||
<h3>Screenshots</h3>
|
||||
<h4>Nmap port scan results for TCP ports 1:65353 (only one service is real):</h4>
|
||||
<a href="media/nmap_scan.jpg"><img width="523" src='media/nmap_scan.jpg'></img></a>
|
||||
</div>
|
||||
|
||||
<hr class="large" />
|
||||
<h3>Videos</h3>
|
||||
<div class="doc-section">
|
||||
<h4>Nmap scan against system protected by Portspoof:</h4>
|
||||
<iframe width="523" height="294" src="http://www.youtube.com/embed/oDBvXSMf3wU?wmode=transparent&rel=0" frameborder="0" allowfullscreen></iframe>
|
||||
</p>
|
||||
<h4>Exploiting your attackers automated exploit scripts with Portspoof:</h4>
|
||||
<iframe width="523" height="294" src="http://www.youtube.com/embed/YDnwqy7a1zk?wmode=transparent&rel=0" frameborder="0" allowfullscreen></iframe>
|
||||
</p>
|
||||
<h4>Exploiting your attackers Nmap NSE script with Portspoof:</h4>
|
||||
<iframe width="523" height="294" src="http://www.youtube.com/embed/iyTmxRUaQ8M?wmode=transparent&rel=0" frameborder="0" allowfullscreen></iframe>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<hr class="large" />
|
||||
<div class="doc-section" id="features">
|
||||
<h3>Features</h3>
|
||||
<p><h5> The most important features that Portspoof has: </h5></p>
|
||||
<p>
|
||||
- Portspoof is a userland software and does not require root privileges ! </br>
|
||||
- Binds to just one tcp port per a running instance </br>
|
||||
- Easily customizable through your iptables rules </br>
|
||||
- Marginal CPU/memory usage (multithreaded) </br>
|
||||
- More than 9000 dynamic service signatures are supported ! </br>
|
||||
</p>
|
||||
Check out the <a href="https://github.com/drk1wi/portspoof/blob/master/DOCS">documentation</a> page for further details.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
<hr class="large"/>
|
||||
<h3>Log</h3>
|
||||
<div class="doc-section" id="license">
|
||||
<p> For full log details please visit <a href='https://github.com/drk1wi/portspoof/blob/master/ChangeLog'>https://github.com/drk1wi/portspoof</a></p>
|
||||
<p>
|
||||
|
||||
<strong>1.1 - 1/01/2014 - Linux</strong></br>
|
||||
* Minor release.</br>
|
||||
* Updated reverse regular expression generation engine (used for generting bogus service signatures). </br>
|
||||
* Over 9000 service signatures in the portspoof_signatures file.. </br>
|
||||
* Better memory management.</br>
|
||||
</br>
|
||||
<strong>1.0 - 02/08/2013 - Linux</strong></br>
|
||||
* Major release. </br>
|
||||
* Ported to C++. </br>
|
||||
* Example NMAP NSE exploit, McAffe UTF7 XSS, etc. exploits added . </br>
|
||||
* Fuzzer functionality added.</br>
|
||||
* Many minor improvements and enhancements have been made</br>
|
||||
</br>
|
||||
<strong>0.3 - 28/09/2012 - Linux </strong> </br>
|
||||
* Configuration file support. </br>
|
||||
* Minor bug fixes and improvements. </br>
|
||||
* Droppped BSD support due to time constraints (will resume in future - maybe).</br>
|
||||
* 8000 port signatures supported </br>
|
||||
</br>
|
||||
<strong>0.2 - 11/08/2012 - Linux/BSD </strong></br>
|
||||
Note: BSD implementation is still experimental </br>
|
||||
* Alerts can be logged for further investigation. </br>
|
||||
* Fixed BSD startup bug. </br>
|
||||
* Automake files fixed. </br>
|
||||
* Other minor bugs fixed. </br>
|
||||
</br>
|
||||
<strong>0.1 - 02/08/2012 - Linux/BSD</strong></br>
|
||||
* First stable release for Linux.</br>
|
||||
* Multithreaded.</br>
|
||||
* 1866 port signatures supported.</br>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<hr class="large" />
|
||||
<div class="doc-section">
|
||||
<h3>License</h3>
|
||||
<p>Portspoof is a free software distributed under GNU GPL version 2 license. <p>All the relevant details can be found <a href="https://github.com/drk1wi/portspoof/blob/master/COPYING">here</a></p>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<hr class="large" />
|
||||
<div class="doc-section">
|
||||
<h3>Support</h3>
|
||||
<p>If you like Portspoof and would like to support this project then please aid me with a cup of coffee :) </p>
|
||||
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
|
||||
<input type="hidden" name="cmd" value="_s-xclick">
|
||||
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----
|
||||
">
|
||||
<input type="image" src="https://www.paypalobjects.com/en_US/GB/i/btn/btn_donateCC_LG.gif" border="0" name="submit" alt="PayPal – The safer, easier way to pay online.">
|
||||
<img alt="" border="0" src="https://www.paypalobjects.com/pl_PL/i/scr/pixel.gif" width="1" height="1">
|
||||
</form>
|
||||
|
||||
</div>
|
||||
<hr class="large" />
|
||||
<div class='twelve columns offset-by-one'><p><citie>Portspoof - Piotr [at] Duszynski.eu PGP <a href="media/pduszynski.asc">key</a> @2012 All rights reserved </citie></p>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
BIN
docs/media/favicon.ico
Executable file
BIN
docs/media/favicon.ico
Executable file
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
BIN
docs/media/nmap_scan.jpg
Executable file
BIN
docs/media/nmap_scan.jpg
Executable file
Binary file not shown.
After Width: | Height: | Size: 170 KiB |
30
docs/media/pduszynski.asc
Executable file
30
docs/media/pduszynski.asc
Executable file
@ -0,0 +1,30 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: STS
|
||||
|
||||
mQENBE5lNcoBCADbTBgNDtK8VH+ewaJJAqk7d1r/AeV8rsBNueHFctHFtqMbJ6Dt
|
||||
Pw4JHzOBw8naycmVlJN0DNChGoO9uSNfCQ0Y3h3gEraK/uuBwOTy7krgmHEHd5u6
|
||||
ttqp3PmVcjlPq03FDBkmkpWM56WvFwtNpY4wL2ImFRSbkdiKLb2us0xOZrbybZMs
|
||||
z59Jlkk8aksfqWhEM1lDECNhPuJrJ8n+XC8om8IkXiW7OeIlKMmRot2jpVwpA3Aw
|
||||
iYYZa1PxGgrDbiaP/ypS6hcIk0JeX1oNNwEpvusnGlRnkS3cNmDfJhb81v9aQ/z2
|
||||
qPuJS7WYwZiev2F0v7AWEAkio+pHTPuaKcTTABEBAAG0JFBpb3RyIER1c3p5bnNr
|
||||
aSA8cGlvdHJAZHVzenluc2tpLmV1PokBPgQTAQIAKAUCTmU1ygIbIwUJCWYBgAYL
|
||||
CQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQclh0luzNNvPwOQf/dBnvtCMHcLZ0
|
||||
AqRipwx5NvZzjVeLepZCiKs9Ck58CInnWSrM9QbIxQlxFNklJZ++w6VbDr8p+o3R
|
||||
15K1XMsm/U5Nx6ZMws2NdeHujQPHml3hJGeB/IsBdZ0MUdmvDdkCYFmSFv1N6KPt
|
||||
jzkItUbgvNv8AiXHLyXbNX/zv3kw9txB34+c2YtkWJ407jfgRf2ElSVtYuDJzf7c
|
||||
ZwRoBSTpeQ4tXadTiweyHsX1qyTZsGdmjNGvr5rLKgxtysNF+m0yM+jmQBW3w0Ln
|
||||
mjZQyLyeryM7JKtQ3zpV7St4LyJcY6VVmdFWFRHScpIzzKiQ7yaILOQ/dumLhZMD
|
||||
vh7y/9J4NrkBDQROZTXKAQgAogLXYeR0NVjy+qMqo3S6ZCTPryawZtyarDlG/sW+
|
||||
4KfJvS7g0dKTeWPTzZzC9u2duqKlTw4JCXiJ0V1VJfoYjJe5jrgF+s37L+YXptRm
|
||||
pNHmQBMtH3TJakQWyFRnlRdxiNUTg9UKxR3ETneBMvo96IIsf2I8oqaW+5fNBr+Q
|
||||
ZmJDuViWIGxdJtI7KiorqZ3kZDhz6KBf/Is5yhCaYkLTMke0tsEFkeYXwt0G4AxA
|
||||
RJvo3+4j9COxuiTw/W17WkTFxl/4ofj/WDuW7+gYkL1TWo2a1iMnkPve8AR+zSAz
|
||||
l1vMqdBDymEe7+sMeL9DwqU4dflKpa0FOtGg9Y8ODolzfQARAQABiQElBBgBAgAP
|
||||
BQJOZTXKAhsMBQkJZgGAAAoJEHJYdJbszTbzg5wH/045rrFEzaRloT5Q+vcy1byA
|
||||
GUK2fdgRDgj2oU8THBSyRgW/uPsEG0gwlAW8IMps6Dw4rESZrGIAF9ChdQyScwS7
|
||||
ue3qkkBOqn33azGgiGnmtiZkCQegVqcKZ6L5TlWfaXEn7nI85jRjhCJUM4NgDADz
|
||||
X9WMXGNCsFPMIKyTmws4raR9Qg6P4rnNrb1PeWNo02JQHVWoLQLTrw4tG8wQ3AjU
|
||||
7OUiOukBXJdR2vRa/H2xk+T0Sa0d+8B4P5TRUrrkI79yomzL2H6o+g0LB7RIsbzI
|
||||
xg2pGGUjJhf+Y4sqG/UmprGfrVqvBgMjsXPj+IrtCxmWfTZumuGsBMfYzcV9MME=
|
||||
=T912
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
269
docs/stylesheets/base.css
Executable file
269
docs/stylesheets/base.css
Executable file
@ -0,0 +1,269 @@
|
||||
/*
|
||||
* Skeleton V1.2
|
||||
* Copyright 2011, Dave Gamache
|
||||
* www.getskeleton.com
|
||||
* Free to use under the MIT license.
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* 6/20/2012
|
||||
*/
|
||||
|
||||
|
||||
/* Table of Content
|
||||
==================================================
|
||||
#Reset & Basics
|
||||
#Basic Styles
|
||||
#Site Styles
|
||||
#Typography
|
||||
#Links
|
||||
#Lists
|
||||
#Images
|
||||
#Buttons
|
||||
#Forms
|
||||
#Misc */
|
||||
|
||||
|
||||
/* #Reset & Basics (Inspired by E. Meyers)
|
||||
================================================== */
|
||||
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
font-size: 100%;
|
||||
font: inherit;
|
||||
vertical-align: baseline; }
|
||||
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
|
||||
display: block; }
|
||||
body {
|
||||
line-height: 1; }
|
||||
ol, ul {
|
||||
list-style: none; }
|
||||
blockquote, q {
|
||||
quotes: none; }
|
||||
blockquote:before, blockquote:after,
|
||||
q:before, q:after {
|
||||
content: '';
|
||||
content: none; }
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0; }
|
||||
|
||||
|
||||
/* #Basic Styles
|
||||
================================================== */
|
||||
body {
|
||||
background: #fff;
|
||||
font: 14px/21px "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
color: #444;
|
||||
-webkit-font-smoothing: antialiased; /* Fix for webkit rendering */
|
||||
-webkit-text-size-adjust: 100%;
|
||||
}
|
||||
|
||||
|
||||
/* #Typography
|
||||
================================================== */
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
color: #181818;
|
||||
font-family: "Georgia", "Times New Roman", serif;
|
||||
font-weight: normal; }
|
||||
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { font-weight: inherit; }
|
||||
h1 { font-size: 46px; line-height: 50px; margin-bottom: 14px;}
|
||||
h2 { font-size: 35px; line-height: 40px; margin-bottom: 10px; }
|
||||
h3 { font-size: 28px; line-height: 34px; margin-bottom: 8px; }
|
||||
h4 { font-size: 21px; line-height: 30px; margin-bottom: 4px; }
|
||||
h5 { font-size: 17px; line-height: 24px; }
|
||||
h6 { font-size: 14px; line-height: 21px; }
|
||||
.subheader { color: #777; }
|
||||
|
||||
p { margin: 0 0 20px 0; }
|
||||
p img { margin: 0; }
|
||||
p.lead { font-size: 21px; line-height: 27px; color: #777; }
|
||||
|
||||
em { font-style: italic; }
|
||||
strong { font-weight: bold; color: #333; }
|
||||
small { font-size: 80%; }
|
||||
|
||||
/* Blockquotes */
|
||||
blockquote, blockquote p { font-size: 17px; line-height: 24px; color: #777; font-style: italic; }
|
||||
blockquote { margin: 0 0 20px; padding: 9px 20px 0 19px; border-left: 1px solid #ddd; }
|
||||
blockquote cite { display: block; font-size: 12px; color: #555; }
|
||||
blockquote cite:before { content: "\2014 \0020"; }
|
||||
blockquote cite a, blockquote cite a:visited, blockquote cite a:visited { color: #555; }
|
||||
|
||||
hr { border: solid #ddd; border-width: 1px 0 0; clear: both; margin: 10px 0 30px; height: 0; }
|
||||
|
||||
|
||||
/* #Links
|
||||
================================================== */
|
||||
a, a:visited { color: #333; text-decoration: underline; outline: 0; }
|
||||
a:hover, a:focus { color: #000; }
|
||||
p a, p a:visited { line-height: inherit; }
|
||||
|
||||
|
||||
/* #Lists
|
||||
================================================== */
|
||||
ul, ol { margin-bottom: 20px; }
|
||||
ul { list-style: none outside; }
|
||||
ol { list-style: decimal; }
|
||||
ol, ul.square, ul.circle, ul.disc { margin-left: 30px; }
|
||||
ul.square { list-style: square outside; }
|
||||
ul.circle { list-style: circle outside; }
|
||||
ul.disc { list-style: disc outside; }
|
||||
ul ul, ul ol,
|
||||
ol ol, ol ul { margin: 4px 0 5px 30px; font-size: 90%; }
|
||||
ul ul li, ul ol li,
|
||||
ol ol li, ol ul li { margin-bottom: 6px; }
|
||||
li { line-height: 18px; margin-bottom: 12px; }
|
||||
ul.large li { line-height: 21px; }
|
||||
li p { line-height: 21px; }
|
||||
|
||||
/* #Images
|
||||
================================================== */
|
||||
|
||||
img.scale-with-grid {
|
||||
max-width: 100%;
|
||||
height: auto; }
|
||||
|
||||
|
||||
/* #Buttons
|
||||
================================================== */
|
||||
|
||||
.button,
|
||||
button,
|
||||
input[type="submit"],
|
||||
input[type="reset"],
|
||||
input[type="button"] {
|
||||
background: #eee; /* Old browsers */
|
||||
background: #eee -moz-linear-gradient(top, rgba(255,255,255,.2) 0%, rgba(0,0,0,.2) 100%); /* FF3.6+ */
|
||||
background: #eee -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.2)), color-stop(100%,rgba(0,0,0,.2))); /* Chrome,Safari4+ */
|
||||
background: #eee -webkit-linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* Chrome10+,Safari5.1+ */
|
||||
background: #eee -o-linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* Opera11.10+ */
|
||||
background: #eee -ms-linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* IE10+ */
|
||||
background: #eee linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* W3C */
|
||||
border: 1px solid #aaa;
|
||||
border-top: 1px solid #ccc;
|
||||
border-left: 1px solid #ccc;
|
||||
-moz-border-radius: 3px;
|
||||
-webkit-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
color: #444;
|
||||
display: inline-block;
|
||||
font-size: 11px;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
text-shadow: 0 1px rgba(255, 255, 255, .75);
|
||||
cursor: pointer;
|
||||
margin-bottom: 20px;
|
||||
line-height: normal;
|
||||
padding: 8px 10px;
|
||||
font-family: "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; }
|
||||
|
||||
.button:hover,
|
||||
button:hover,
|
||||
input[type="submit"]:hover,
|
||||
input[type="reset"]:hover,
|
||||
input[type="button"]:hover {
|
||||
color: #222;
|
||||
background: #ddd; /* Old browsers */
|
||||
background: #ddd -moz-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%); /* FF3.6+ */
|
||||
background: #ddd -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.3)), color-stop(100%,rgba(0,0,0,.3))); /* Chrome,Safari4+ */
|
||||
background: #ddd -webkit-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* Chrome10+,Safari5.1+ */
|
||||
background: #ddd -o-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* Opera11.10+ */
|
||||
background: #ddd -ms-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* IE10+ */
|
||||
background: #ddd linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* W3C */
|
||||
border: 1px solid #888;
|
||||
border-top: 1px solid #aaa;
|
||||
border-left: 1px solid #aaa; }
|
||||
|
||||
.button:active,
|
||||
button:active,
|
||||
input[type="submit"]:active,
|
||||
input[type="reset"]:active,
|
||||
input[type="button"]:active {
|
||||
border: 1px solid #666;
|
||||
background: #ccc; /* Old browsers */
|
||||
background: #ccc -moz-linear-gradient(top, rgba(255,255,255,.35) 0%, rgba(10,10,10,.4) 100%); /* FF3.6+ */
|
||||
background: #ccc -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.35)), color-stop(100%,rgba(10,10,10,.4))); /* Chrome,Safari4+ */
|
||||
background: #ccc -webkit-linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* Chrome10+,Safari5.1+ */
|
||||
background: #ccc -o-linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* Opera11.10+ */
|
||||
background: #ccc -ms-linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* IE10+ */
|
||||
background: #ccc linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* W3C */ }
|
||||
|
||||
.button.full-width,
|
||||
button.full-width,
|
||||
input[type="submit"].full-width,
|
||||
input[type="reset"].full-width,
|
||||
input[type="button"].full-width {
|
||||
width: 100%;
|
||||
padding-left: 0 !important;
|
||||
padding-right: 0 !important;
|
||||
text-align: center; }
|
||||
|
||||
/* Fix for odd Mozilla border & padding issues */
|
||||
button::-moz-focus-inner,
|
||||
input::-moz-focus-inner {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
|
||||
/* #Forms
|
||||
================================================== */
|
||||
|
||||
form {
|
||||
margin-bottom: 20px; }
|
||||
fieldset {
|
||||
margin-bottom: 20px; }
|
||||
input[type="text"],
|
||||
input[type="password"],
|
||||
input[type="email"],
|
||||
textarea,
|
||||
select {
|
||||
border: 1px solid #ccc;
|
||||
padding: 6px 4px;
|
||||
outline: none;
|
||||
-moz-border-radius: 2px;
|
||||
-webkit-border-radius: 2px;
|
||||
border-radius: 2px;
|
||||
font: 13px "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
color: #777;
|
||||
margin: 0;
|
||||
width: 210px;
|
||||
max-width: 100%;
|
||||
display: block;
|
||||
margin-bottom: 20px;
|
||||
background: #fff; }
|
||||
select {
|
||||
padding: 0; }
|
||||
input[type="text"]:focus,
|
||||
input[type="password"]:focus,
|
||||
input[type="email"]:focus,
|
||||
textarea:focus {
|
||||
border: 1px solid #aaa;
|
||||
color: #444;
|
||||
-moz-box-shadow: 0 0 3px rgba(0,0,0,.2);
|
||||
-webkit-box-shadow: 0 0 3px rgba(0,0,0,.2);
|
||||
box-shadow: 0 0 3px rgba(0,0,0,.2); }
|
||||
textarea {
|
||||
min-height: 60px; }
|
||||
label,
|
||||
legend {
|
||||
display: block;
|
||||
font-weight: bold;
|
||||
font-size: 13px; }
|
||||
select {
|
||||
width: 220px; }
|
||||
input[type="checkbox"] {
|
||||
display: inline; }
|
||||
label span,
|
||||
legend span {
|
||||
font-weight: normal;
|
||||
font-size: 13px;
|
||||
color: #444; }
|
||||
|
||||
/* #Misc
|
||||
================================================== */
|
||||
.remove-bottom { margin-bottom: 0 !important; }
|
||||
.half-bottom { margin-bottom: 10px !important; }
|
||||
.add-bottom { margin-bottom: 20px !important; }
|
||||
|
||||
|
49
docs/stylesheets/custom.css
Executable file
49
docs/stylesheets/custom.css
Executable file
@ -0,0 +1,49 @@
|
||||
.container .navbar {
|
||||
|
||||
border-top: solid 1px #CCCCCC;
|
||||
color: #808080;
|
||||
background:#355568;
|
||||
height: 48px;
|
||||
|
||||
|
||||
}
|
||||
|
||||
.container .navlinks{
|
||||
|
||||
margin-top: 5px;
|
||||
background: white;
|
||||
border-bottom: solid 1px #CCCCCC;
|
||||
|
||||
}
|
||||
|
||||
.container .navbar h1 {
|
||||
|
||||
text-decoration: none;
|
||||
color: white;
|
||||
font-weight: normal
|
||||
|
||||
}
|
||||
|
||||
.container .navlinks ul {
|
||||
list-style: none;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding-right: 5px;
|
||||
text-align:right;
|
||||
|
||||
}
|
||||
.container .navlinks ul li {
|
||||
display: inline;
|
||||
font-size: 18px;
|
||||
padding-right: 5px;
|
||||
}
|
||||
.container .navlinks ul li a {
|
||||
padding-left: 5px;
|
||||
text-decoration: none;
|
||||
color: black;
|
||||
font-weight: normal;
|
||||
|
||||
}
|
||||
.container .navlinks ul li a:hover {
|
||||
color: grey;
|
||||
|
||||
}
|
58
docs/stylesheets/layout.css
Executable file
58
docs/stylesheets/layout.css
Executable file
@ -0,0 +1,58 @@
|
||||
/*
|
||||
* Skeleton V1.2
|
||||
* Copyright 2011, Dave Gamache
|
||||
* www.getskeleton.com
|
||||
* Free to use under the MIT license.
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* 6/20/2012
|
||||
*/
|
||||
|
||||
/* Table of Content
|
||||
==================================================
|
||||
#Site Styles
|
||||
#Page Styles
|
||||
#Media Queries
|
||||
#Font-Face */
|
||||
|
||||
/* #Site Styles
|
||||
================================================== */
|
||||
|
||||
/* #Page Styles
|
||||
================================================== */
|
||||
|
||||
/* #Media Queries
|
||||
================================================== */
|
||||
|
||||
/* Smaller than standard 960 (devices and browsers) */
|
||||
@media only screen and (max-width: 959px) {}
|
||||
|
||||
/* Tablet Portrait size to standard 960 (devices and browsers) */
|
||||
@media only screen and (min-width: 768px) and (max-width: 959px) {}
|
||||
|
||||
/* All Mobile Sizes (devices and browser) */
|
||||
@media only screen and (max-width: 767px) {}
|
||||
|
||||
/* Mobile Landscape Size to Tablet Portrait (devices and browsers) */
|
||||
@media only screen and (min-width: 480px) and (max-width: 767px) {}
|
||||
|
||||
/* Mobile Portrait Size to Mobile Landscape Size (devices and browsers) */
|
||||
@media only screen and (max-width: 479px) {}
|
||||
|
||||
|
||||
/* #Font-Face
|
||||
================================================== */
|
||||
/* This is the proper syntax for an @font-face file
|
||||
Just create a "fonts" folder at the root,
|
||||
copy your FontName into code below and remove
|
||||
comment brackets */
|
||||
|
||||
/* @font-face {
|
||||
font-family: 'FontName';
|
||||
src: url('../fonts/FontName.eot');
|
||||
src: url('../fonts/FontName.eot?iefix') format('eot'),
|
||||
url('../fonts/FontName.woff') format('woff'),
|
||||
url('../fonts/FontName.ttf') format('truetype'),
|
||||
url('../fonts/FontName.svg#webfontZam02nTh') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal; }
|
||||
*/
|
242
docs/stylesheets/skeleton.css
vendored
Executable file
242
docs/stylesheets/skeleton.css
vendored
Executable file
@ -0,0 +1,242 @@
|
||||
/*
|
||||
* Skeleton V1.2
|
||||
* Copyright 2011, Dave Gamache
|
||||
* www.getskeleton.com
|
||||
* Free to use under the MIT license.
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* 6/20/2012
|
||||
*/
|
||||
|
||||
|
||||
/* Table of Contents
|
||||
==================================================
|
||||
#Base 960 Grid
|
||||
#Tablet (Portrait)
|
||||
#Mobile (Portrait)
|
||||
#Mobile (Landscape)
|
||||
#Clearing */
|
||||
|
||||
|
||||
|
||||
/* #Base 960 Grid
|
||||
================================================== */
|
||||
|
||||
.container { position: relative; width: 960px; margin: 0 auto; padding: 0; }
|
||||
.container .column,
|
||||
.container .columns { float: left; display: inline; margin-left: 10px; margin-right: 10px; }
|
||||
.row { margin-bottom: 20px; }
|
||||
|
||||
/* Nested Column Classes */
|
||||
.column.alpha, .columns.alpha { margin-left: 0; }
|
||||
.column.omega, .columns.omega { margin-right: 0; }
|
||||
|
||||
/* Base Grid */
|
||||
.container .one.column,
|
||||
.container .one.columns { width: 40px; }
|
||||
.container .two.columns { width: 100px; }
|
||||
.container .three.columns { width: 160px; }
|
||||
.container .four.columns { width: 220px; }
|
||||
.container .five.columns { width: 280px; }
|
||||
.container .six.columns { width: 340px; }
|
||||
.container .seven.columns { width: 400px; }
|
||||
.container .eight.columns { width: 460px; }
|
||||
.container .nine.columns { width: 520px; }
|
||||
.container .ten.columns { width: 580px; }
|
||||
.container .eleven.columns { width: 640px; }
|
||||
.container .twelve.columns { width: 700px; }
|
||||
.container .thirteen.columns { width: 760px; }
|
||||
.container .fourteen.columns { width: 820px; }
|
||||
.container .fifteen.columns { width: 880px; }
|
||||
.container .sixteen.columns { width: 940px; }
|
||||
|
||||
.container .one-third.column { width: 300px; }
|
||||
.container .two-thirds.column { width: 620px; }
|
||||
|
||||
/* Offsets */
|
||||
.container .offset-by-one { padding-left: 60px; }
|
||||
.container .offset-by-two { padding-left: 120px; }
|
||||
.container .offset-by-three { padding-left: 180px; }
|
||||
.container .offset-by-four { padding-left: 240px; }
|
||||
.container .offset-by-five { padding-left: 300px; }
|
||||
.container .offset-by-six { padding-left: 360px; }
|
||||
.container .offset-by-seven { padding-left: 420px; }
|
||||
.container .offset-by-eight { padding-left: 480px; }
|
||||
.container .offset-by-nine { padding-left: 540px; }
|
||||
.container .offset-by-ten { padding-left: 600px; }
|
||||
.container .offset-by-eleven { padding-left: 660px; }
|
||||
.container .offset-by-twelve { padding-left: 720px; }
|
||||
.container .offset-by-thirteen { padding-left: 780px; }
|
||||
.container .offset-by-fourteen { padding-left: 840px; }
|
||||
.container .offset-by-fifteen { padding-left: 900px; }
|
||||
|
||||
|
||||
|
||||
/* #Tablet (Portrait)
|
||||
================================================== */
|
||||
|
||||
/* Note: Design for a width of 768px */
|
||||
|
||||
@media only screen and (min-width: 768px) and (max-width: 959px) {
|
||||
.container { width: 768px; }
|
||||
.container .column,
|
||||
.container .columns { margin-left: 10px; margin-right: 10px; }
|
||||
.column.alpha, .columns.alpha { margin-left: 0; margin-right: 10px; }
|
||||
.column.omega, .columns.omega { margin-right: 0; margin-left: 10px; }
|
||||
.alpha.omega { margin-left: 0; margin-right: 0; }
|
||||
|
||||
.container .one.column,
|
||||
.container .one.columns { width: 28px; }
|
||||
.container .two.columns { width: 76px; }
|
||||
.container .three.columns { width: 124px; }
|
||||
.container .four.columns { width: 172px; }
|
||||
.container .five.columns { width: 220px; }
|
||||
.container .six.columns { width: 268px; }
|
||||
.container .seven.columns { width: 316px; }
|
||||
.container .eight.columns { width: 364px; }
|
||||
.container .nine.columns { width: 412px; }
|
||||
.container .ten.columns { width: 460px; }
|
||||
.container .eleven.columns { width: 508px; }
|
||||
.container .twelve.columns { width: 556px; }
|
||||
.container .thirteen.columns { width: 604px; }
|
||||
.container .fourteen.columns { width: 652px; }
|
||||
.container .fifteen.columns { width: 700px; }
|
||||
.container .sixteen.columns { width: 748px; }
|
||||
|
||||
.container .one-third.column { width: 236px; }
|
||||
.container .two-thirds.column { width: 492px; }
|
||||
|
||||
/* Offsets */
|
||||
.container .offset-by-one { padding-left: 48px; }
|
||||
.container .offset-by-two { padding-left: 96px; }
|
||||
.container .offset-by-three { padding-left: 144px; }
|
||||
.container .offset-by-four { padding-left: 192px; }
|
||||
.container .offset-by-five { padding-left: 240px; }
|
||||
.container .offset-by-six { padding-left: 288px; }
|
||||
.container .offset-by-seven { padding-left: 336px; }
|
||||
.container .offset-by-eight { padding-left: 384px; }
|
||||
.container .offset-by-nine { padding-left: 432px; }
|
||||
.container .offset-by-ten { padding-left: 480px; }
|
||||
.container .offset-by-eleven { padding-left: 528px; }
|
||||
.container .offset-by-twelve { padding-left: 576px; }
|
||||
.container .offset-by-thirteen { padding-left: 624px; }
|
||||
.container .offset-by-fourteen { padding-left: 672px; }
|
||||
.container .offset-by-fifteen { padding-left: 720px; }
|
||||
}
|
||||
|
||||
|
||||
/* #Mobile (Portrait)
|
||||
================================================== */
|
||||
|
||||
/* Note: Design for a width of 320px */
|
||||
|
||||
@media only screen and (max-width: 767px) {
|
||||
.container { width: 300px; }
|
||||
.container .columns,
|
||||
.container .column { margin: 0; }
|
||||
|
||||
.container .one.column,
|
||||
.container .one.columns,
|
||||
.container .two.columns,
|
||||
.container .three.columns,
|
||||
.container .four.columns,
|
||||
.container .five.columns,
|
||||
.container .six.columns,
|
||||
.container .seven.columns,
|
||||
.container .eight.columns,
|
||||
.container .nine.columns,
|
||||
.container .ten.columns,
|
||||
.container .eleven.columns,
|
||||
.container .twelve.columns,
|
||||
.container .thirteen.columns,
|
||||
.container .fourteen.columns,
|
||||
.container .fifteen.columns,
|
||||
.container .sixteen.columns,
|
||||
.container .one-third.column,
|
||||
.container .two-thirds.column { width: 300px; }
|
||||
|
||||
/* Offsets */
|
||||
.container .offset-by-one,
|
||||
.container .offset-by-two,
|
||||
.container .offset-by-three,
|
||||
.container .offset-by-four,
|
||||
.container .offset-by-five,
|
||||
.container .offset-by-six,
|
||||
.container .offset-by-seven,
|
||||
.container .offset-by-eight,
|
||||
.container .offset-by-nine,
|
||||
.container .offset-by-ten,
|
||||
.container .offset-by-eleven,
|
||||
.container .offset-by-twelve,
|
||||
.container .offset-by-thirteen,
|
||||
.container .offset-by-fourteen,
|
||||
.container .offset-by-fifteen { padding-left: 0; }
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* #Mobile (Landscape)
|
||||
================================================== */
|
||||
|
||||
/* Note: Design for a width of 480px */
|
||||
|
||||
@media only screen and (min-width: 480px) and (max-width: 767px) {
|
||||
.container { width: 420px; }
|
||||
.container .columns,
|
||||
.container .column { margin: 0; }
|
||||
|
||||
.container .one.column,
|
||||
.container .one.columns,
|
||||
.container .two.columns,
|
||||
.container .three.columns,
|
||||
.container .four.columns,
|
||||
.container .five.columns,
|
||||
.container .six.columns,
|
||||
.container .seven.columns,
|
||||
.container .eight.columns,
|
||||
.container .nine.columns,
|
||||
.container .ten.columns,
|
||||
.container .eleven.columns,
|
||||
.container .twelve.columns,
|
||||
.container .thirteen.columns,
|
||||
.container .fourteen.columns,
|
||||
.container .fifteen.columns,
|
||||
.container .sixteen.columns,
|
||||
.container .one-third.column,
|
||||
.container .two-thirds.column { width: 420px; }
|
||||
}
|
||||
|
||||
|
||||
/* #Clearing
|
||||
================================================== */
|
||||
|
||||
/* Self Clearing Goodness */
|
||||
.container:after { content: "\0020"; display: block; height: 0; clear: both; visibility: hidden; }
|
||||
|
||||
/* Use clearfix class on parent to clear nested columns,
|
||||
or wrap each row of columns in a <div class="row"> */
|
||||
.clearfix:before,
|
||||
.clearfix:after,
|
||||
.row:before,
|
||||
.row:after {
|
||||
content: '\0020';
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
visibility: hidden;
|
||||
width: 0;
|
||||
height: 0; }
|
||||
.row:after,
|
||||
.clearfix:after {
|
||||
clear: both; }
|
||||
.row,
|
||||
.clearfix {
|
||||
zoom: 1; }
|
||||
|
||||
/* You can also use a <br class="clear" /> to clear columns */
|
||||
.clear {
|
||||
clear: both;
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
visibility: hidden;
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user