You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Mar 11, 2025. It is now read-only.
# Do the Rust setup, but do it just the once and separate the ON stuff
4
4
5
-
RUN mkdir /opt/OffensiveNotion
6
-
WORKDIR /opt/OffensiveNotion
7
-
COPY agent/ .
5
+
RUN echo "Installing dependencies"
6
+
RUN apt update
7
+
RUN apt install -y \
8
+
mingw-w64 \
9
+
gcc-multilib \
10
+
python3-pip \
11
+
cmake \
12
+
clang \
13
+
gcc \
14
+
g++ \
15
+
zlib1g-dev \
16
+
libmpc-dev \
17
+
libmpfr-dev \
18
+
libgmp-dev
8
19
9
-
RUN rustup target add x86_64-pc-windows-gnu && rustup toolchain install stable-x86_64-pc-windows-gnu
20
+
RUN rustup toolchain install nightly
21
+
RUN rustup default nightly
22
+
RUN rustup target add x86_64-pc-windows-gnu
23
+
RUN rustup target add x86_64-apple-darwin
10
24
11
-
# This Dockerfile gets edited dynamically by main.py. If using main.py, don't touch it. If building the Docker container from source, edit this with your target build and OS
12
-
RUN cargo build {OS} {RELEASE}
25
+
26
+
# Now we get to work
27
+
# FROM ubuntu:latest as onbuilder
28
+
29
+
RUN mkdir /OffensiveNotion
30
+
RUN mkdir /OffensiveNotion/agent
31
+
RUN mkdir /OffensiveNotion/agent/src
32
+
RUN mkdir /OffensiveNotion/agent/target
33
+
RUN mkdir /out
34
+
# We're going to be more explicit about this copy over to save space in the image
35
+
# Also, a fun hack to get the config.json if it exists, but copy the rest regardless
# MacOS install. If not building a macOS agent, feel free to comment this RUN command out.
44
+
RUN git clone https://github.com/tpoechtrager/osxcross && cd osxcross && wget -nc https://s3.dockerproject.org/darwin/v2/MacOSX10.10.sdk.tar.xz && mv MacOSX10.10.sdk.tar.xz tarballs/ && echo "[*] Building osxcross. This may take a while..." &&UNATTENDED=yes OSX_VERSION_MIN=10.7 ./build.sh > /dev/null 2>&1 && echo "[+] Done!"
@@ -34,101 +34,18 @@ Here's our blog post about it: [We Put A C2 In Your Notetaking App: OffensiveNot
34
34
## Features
35
35
* 📡 A full-featured C2 platform built on the Notion notetaking app.
36
36
* 🚧 Easy setup: set up your Notion developer API account, drop the Agent to the target, run and enjoy!
37
-
* 🖥️ Cross-platform agent built in Rust that compiles for Linuxand Windows with the same code base.
37
+
* 🖥️ Cross-platform agent built in Rust that compiles for Linux, Windows, and macOS with the same code base. Includes a Python setup/controller script to simplify the process.
38
38
* ☢️ A range of capabilities including port-scanning, privilege escalation, asynchronous command execution, file download, and shellcode injection, all controlled from the comfort of a Notion page!
39
39
* 📜 Document as you go! The agent identifies special syntax to run commands, so feel free to use the rest of the Notion page to document your operation.
40
+
* 🤝 Collaborative by design! Notion allows for multiple people to edit and view your notes. Your listener page can handle multiple agents and you can invite your red team friends to your page. Congratulations, that's a teamserver!
41
+
* 📱Mobile C2! Use the Notion application from your mobile device to issue commands to your agents from anywhere in the world.
40
42
* 🕵️♀️ Stealth! C2 comms ride over the Notion API natively. Your C2 traffic looks like someone is using Notion for its intended purpose.
41
43
42
44
## Quickstart
43
45
See the [Quickstart guide](https://github.com/mttaggart/OffensiveNotion/wiki/2.-Quickstart) on how to get going right away!
44
46
45
47
## Documentation
46
48
Please see the [Wiki][wiki] for setup, usage, commands, and more!
47
-
48
-
## v1.0.0 - "Iron Age"
49
-
### MUST
50
-
51
-
<details>
52
-
<summary> Done </summary>
53
-
54
-
### Documentation
55
-
-[x] Quickstart
56
-
-[x] Install
57
-
-[x] Agent interaction
58
-
-[x] Commands
59
-
-[x] Linux commands
60
-
-[x] Windows commands
61
-
62
-
#### Misc
63
-
-[x] YARA Rules
64
-
#### Setup
65
-
-[x] Python Setup Script for config options
66
-
-[x] Dynamic Docker container spin up/tear down for agent generation
67
-
-[x] Parse args for Docker build options
68
-
69
-
#### Agent
70
-
- Commands:
71
-
-[x]`shell`
72
-
-[x]`cd`
73
-
-[x]`download`
74
-
-[x]`ps`
75
-
-[x]`pwd`
76
-
-[x]`save`
77
-
-[x]`shutdown`
78
-
-[x]`sleep [#]` to adjust callback
79
-
80
-
</details>
81
-
82
-
### SHOULD
83
-
84
-
<details>
85
-
<summary> Done </summary>
86
-
87
-
#### Agent
88
-
-[x] Jitter interval for callback time
89
-
- Commands:
90
-
-[x]`getprivs`
91
-
-[x]`sleep [#][%]` to adjust callback and jitter
92
-
-[x]`portscan`
93
-
-[x] Linux `elevate sudo`
94
-
-[x] Windows `elevate fodhelper`
95
-
-[x] Linux `persist bashrc`
96
-
-[x] Linux `persist cron`
97
-
-[x] Linux `persist service`
98
-
-[x] Windows `inject`
99
-
-[x] Windows `persist startup`
100
-
-[x] Windows `persist registry`
101
-
102
-
- Persist:
103
-
-[x] Windows `persist schtasks`
104
-
-[x] (Bonus) `wmic`
105
-
106
-
</details>
107
-
108
-
### COULD
109
-
110
-
<details>
111
-
<summary> Done </summary>
112
-
113
-
-[x] Compiles with Notion icon
114
-
-[x] Mirror the notion.ico file 😈 (slightly red tint to logo)
115
-
-[x] "Web delivery" via Flask and one-liner for remote download/exec (https://www.offensive-security.com/metasploit-unleashed/web-delivery/)
116
-
-[x] Agent checks in by POSTing hostname and username to page title with asterisk if in an admin context (getprivs at checkin)
117
-
-[x] Agent can spawn in kiosk mode Notion.so page at startup
118
-
119
-
</details>
120
-
121
-
<details>
122
-
<summary> For Next Release </summary>
123
-
124
-
-[ ] Linux `persist rc.local`
125
-
-[ ] Linux `inject` (more of a shellcode runner than injection)
0 commit comments