Skip to content

Commit 81e3d72

Browse files
Initial Commit
1 parent 2f0d75c commit 81e3d72

File tree

202 files changed

+42754
-1
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

202 files changed

+42754
-1
lines changed

README.md

+113-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,113 @@
1-
# SwiftnessX
1+
# SwiftnessX
2+
A cross-platform note-taking & target-tracking app for penetration testers built on ElectronJS.
3+
4+
5+
6+
![](https://d2mxuefqeaa7sj.cloudfront.net/s_22468EE0712254D3EA421A4DBACA2646DD071E2B892C4DFAA54AF6BB35E989C4_1541430229290_main-view.png)
7+
8+
9+
10+
11+
## Downloads
12+
13+
**Windows:**
14+
**Linux:**
15+
**Download Payloads & Templates:** Contains data from [PayloadsAllthethings](https://github.com/swisskyrepo/PayloadsAllTheThings) and [bb-report-templates](https://github.com/gwen001/bb-reports-templates).
16+
17+
*App supports auto-updating system when new release gets available.*
18+
19+
**Portable Version:** The portable application allows installing the software on a portable device such as a USB - when you want to work upon different device. The current storage schema gives you an ability to use the same target’s data on multiple devices (with import/export) without creating same target with multiple instances.
20+
21+
Windows:
22+
Linux:
23+
24+
25+
## Installation
26+
27+
The current version is especially designed for Windows users therefore, installation process is pretty straightforward - just use the installer and it will be installed under the applications section.
28+
29+
For Linux users (it's a bit complex and we will try to fix it very soon), you will need to give permission to the app ; just `chmod +x swiftness-0.1.0.AppImage` for installer file and then open it (in first attempt, it will try to install) and then it will be ready to use. (Make sure you're extracting the app in a dedicated folder)
30+
31+
If you want to use the portable version, extract the folder and give same permission to Swiftness executable file and utilise in the same manner.
32+
33+
34+
## Setup Electron (if you want to run dev-environment)
35+
36+
37+
1. First install [Node.JS](https://nodejs.org/en/download/) on your system
38+
2. now run `npm install electron -g`
39+
3. Download or Clone this repository
40+
4. Within its folder run `npm install` to install dependencies
41+
5. And to run use `npm run dev`
42+
43+
To update just use `git pull` or if dependencies are updated than first install them by `npm install`
44+
45+
46+
## Usage
47+
****
48+
It’s pretty straightforward to use SwiftnessX, I’ve created a small video on how to use Targets with checklist: https://www.youtube.com/watch?v=s227q_rTVkw
49+
50+
For Templates and Payloads, download this file, which has data from [PayloadsAllthethings](https://github.com/swisskyrepo/PayloadsAllTheThings) and [bb-report-templates](https://github.com/gwen001/bb-reports-templates).
51+
52+
53+
## Discuss
54+
55+
56+
- **Feature Request / Changes:** This is a very early version of SwiftnessX with a completely new flow and architecture from macOS build and its likely that some features & flow may not be perfect. We encourage you to tell us if a flow or feature is not fitting in, we will discuss with you and along with other users’ on possible way to improve or change that.
57+
58+
59+
Also do not hesitate on requesting a feature - we are actively working on this project
60+
61+
62+
63+
- **Security:** Electron projects are often dependent upon too many 3rd party libraries and in result it has more chances of being vulnerable to security-vulnerabilities compared to native-apps.
64+
65+
66+
We tried our best to not make app’s modules too dependent upon the 3rd party packages however, we still recommend you to understand the basics of ElectronJS and let us know if you observe any security vulnerabilities.
67+
68+
69+
To understand the basics of Electron Security & NodeJS Packages:
70+
71+
72+
- https://electronjs.org/docs/tutorial/security
73+
- https://www.blackhat.com/docs/us-17/thursday/us-17-Carettoni-Electronegativity-A-Study-Of-Electron-Security-wp.pdf
74+
- https://www.youtube.com/watch?v=QSMbk2nLTBk
75+
76+
77+
You can find the packages under package.json, check them:
78+
79+
80+
- You can check how packages are integrated and can manually check the process by debugging the app in dev-environment. (explained above)
81+
- Use Chromium Developer Tools to check each functionality and their dependent JS files.
82+
83+
84+
Directly ask us on Issues Section or Email ([email protected]) to understand how a specific package is integrated.
85+
86+
87+
To report a security-vulnerability within the app, please send us an email directly to [email protected]
88+
89+
90+
If issues are derieved from a 3rd-party module, also report to the person or team maintaining the module.
91+
92+
- **Bugs:**
93+
94+
95+
When opening a new issue in the `ehrishirajsharma/SwifnessX` issue tracker, users will be presented with a template that should be filled in.
96+
97+
98+
The two most important pieces of information needed to evaluate the report are a description of the bug and a simple test case to recreate it. It easier to fix a bug if it can be reproduced.
99+
100+
101+
See [How to create a Minimal, Complete, and Verifiable example](https://stackoverflow.com/help/mcve).
102+
103+
**Reference & Inspired from:** https://github.com/electron/electron/blob/master/docs/development/issues.md
104+
****
105+
106+
## Credits
107+
108+
Special thanks to the below contributors - It would not be possible without their contributions:
109+
110+
111+
- Tomas Baskys
112+
- Pankaj Prajapat
113+

app/.eslintrc

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"rules": {
3+
"flowtype/boolean-style": ["error", "boolean"],
4+
"flowtype/define-flow-type": "warn",
5+
"flowtype/delimiter-dangle": ["error", "never"],
6+
"flowtype/generic-spacing": ["error", "never"],
7+
"flowtype/no-primitive-constructor-types": "error",
8+
"flowtype/no-weak-types": "warn",
9+
"flowtype/object-type-delimiter": ["error", "comma"],
10+
"flowtype/require-parameter-type": "off",
11+
"flowtype/require-return-type": "off",
12+
"flowtype/require-valid-file-annotation": "off",
13+
"flowtype/semi": ["error", "always"],
14+
"flowtype/space-after-type-colon": ["error", "always"],
15+
"flowtype/space-before-generic-bracket": ["error", "never"],
16+
"flowtype/space-before-type-colon": ["error", "never"],
17+
"flowtype/union-intersection-spacing": ["error", "always"],
18+
"flowtype/use-flow-type": "error",
19+
"flowtype/valid-syntax": "error"
20+
}
21+
}

app/about.html

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="utf-8">
5+
<title>Swiftness</title>
6+
<script>
7+
(function() {
8+
if (!process.env.HOT) {
9+
const link = document.createElement('link');
10+
link.rel = 'stylesheet';
11+
link.href = './dist/about.css';
12+
// HACK: Writing the script path should be done with webpack
13+
document.getElementsByTagName('head')[0].appendChild(link);
14+
}
15+
}());
16+
</script>
17+
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
18+
</head>
19+
<body>
20+
<div id="root"></div>
21+
<script>
22+
{
23+
const scripts = [];
24+
25+
// Dynamically insert the DLL script in development env in the
26+
// renderer process
27+
if (process.env.NODE_ENV === 'development') {
28+
scripts.push('../dll/renderer.dev.dll.js');
29+
}
30+
31+
// Dynamically insert the bundled app script in the renderer process
32+
const port = process.env.PORT || 1212;
33+
scripts.push(
34+
(process.env.HOT)
35+
? 'http://localhost:' + port + '/dist/about.dev.js'
36+
: './dist/about.prod.js'
37+
);
38+
39+
document.write(
40+
scripts
41+
.map(script => `<script defer src="${script}"><\/script>`)
42+
.join('')
43+
);
44+
}
45+
</script>
46+
</body>
47+
</html>

app/aboutRenderer.js

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import React from 'react';
2+
import { render } from 'react-dom';
3+
import AboutDialog from './components/AboutDialog';
4+
5+
render(<AboutDialog />, document.getElementById('root'));
6+
7+
if (module.hot) {
8+
module.hot.accept('./containers/Root', () => {
9+
render(<AboutDialog />, document.getElementById('root'));
10+
});
11+
}

app/actions/about.js

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// @flow
2+
export const OPEN_ABOUT = 'OPEN_ABOUT';
3+
export const CLOSE_ABOUT = 'CLOSE_ABOUT';
4+
5+
export function openAbout() {
6+
return {
7+
type: OPEN_ABOUT
8+
};
9+
}
10+
11+
export function closeAbout() {
12+
return {
13+
type: CLOSE_ABOUT
14+
};
15+
}

app/actions/export.js

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// @flow
2+
export const OPEN_EXPORT = 'OPEN_EXPORT';
3+
export const CLOSE_EXPORT = 'CLOSE_EXPORT';
4+
5+
export function openExport() {
6+
return {
7+
type: OPEN_EXPORT
8+
};
9+
}
10+
11+
export function closeExport() {
12+
return {
13+
type: CLOSE_EXPORT
14+
};
15+
}

0 commit comments

Comments
 (0)