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
How can LLMs aid or even emulate hackers? Threat actors are [already using LLMs](https://arxiv.org/abs/2307.00691),
4
10
creating the danger that defenders will not be prepared for this new threat.
5
11
6
12
We aim to become **THE** framework for testing LLM-based agents for security testing.
7
13
To create common ground truth, we strive to create common security testbeds and
8
14
benchmarks, evaluate multiple LLMs and techniques against those, and publish our
9
-
prototypes and findings as open-source/open-access reports.
10
-
11
-
We strive to make our code-base as accessible as possible to allow for easy experimentation.
12
-
Our experiments are structured into `use-cases`, e.g., privilege escalation attacks. A researcher
13
-
wanting to create a new experiment would just create a new use-case that mostly consists
14
-
of the control loop and corresponding prompt templates. We provide multiple helper and base
15
-
classes, so that a new experiment can be implemented in a few dozens lines of code as
16
-
connecting to the LLM, logging, etc. is taken care of by our framework. For further information (esp. if you want to contribute use-cases), please take a look at [docs/use_case.md](docs/use_case.md).
17
-
18
-
19
-
Our initial forays were focused upon evaluating the efficiency of LLMs for [linux
20
-
privilege escalation attacks](https://arxiv.org/abs/2310.11409) and we are currently breaching out into evaluation
21
-
the use of LLMs for web penetration-testing and web api testing.
22
-
23
-
We release all tooling, testbeds and findings as open-source as this is the only way that comprehensive information will find their way to defenders. APTs have access to more sophisticated resources, so we are only leveling the playing field for blue teams. For information about the implementation, please see our [implementation notes](docs/implementation_notes.md). All source code can be found on [github](https://github.com/ipa-lab/hackingbuddyGPT).
15
+
prototypes and findings as open-source/open-access reports. All source code can be found on [github](https://github.com/ipa-lab/hackingbuddyGPT).
24
16
25
17
hackingBuddyGPT is described in [Getting pwn'd by AI: Penetration Testing with Large Language Models ](https://arxiv.org/abs/2308.00121):
26
18
@@ -37,11 +29,25 @@ hackingBuddyGPT is described in [Getting pwn'd by AI: Penetration Testing with L
37
29
}
38
30
~~~
39
31
40
-
## Privilege Escalation Attacks
32
+
## Existing Agents/Usecases
33
+
34
+
We strive to make our code-base as accessible as possible to allow for easy experimentation.
35
+
Our experiments are structured into `use-cases`, e.g., privilege escalation attacks. A researcher
36
+
wanting to create a new experiment would just create a new use-case that mostly consists
37
+
of the control loop and corresponding prompt templates. We provide multiple helper and base
38
+
classes, so that a new experiment can be implemented in a few dozens lines of code as
39
+
connecting to the LLM, logging, etc. is taken care of by our framework. For further information (esp. if you want to contribute use-cases), please take a look at [docs/use_case.md](docs/use_case.md).
40
+
41
+
42
+
Our initial forays were focused upon evaluating the efficiency of LLMs for [linux
43
+
privilege escalation attacks](https://arxiv.org/abs/2310.11409) and we are currently breaching out into evaluation
44
+
the use of LLMs for web penetration-testing and web api testing.
45
+
46
+
### Privilege Escalation Attacks
41
47
42
48
How are we doing this? The initial tool `wintermute` targets linux priv-esc attacks. It uses SSH to connect to a (presumably) vulnerable virtual machine and then asks OpenAI GPT to suggest linux commands that could be used for finding security vulnerabilities or privilege escalation. The provided command is then executed within the virtual machine, the output fed back to the LLM and, finally, a new command is requested from it..
43
49
44
-
### Current features (wintermute):
50
+
####Current features (wintermute):
45
51
46
52
- connects over SSH (linux targets) or SMB/PSExec (windows targets)
@@ -51,7 +57,7 @@ How are we doing this? The initial tool `wintermute` targets linux priv-esc atta
51
57
- automatic root detection
52
58
- can limit rounds (how often the LLM will be asked for a new command)
53
59
54
-
### Example run
60
+
####Example run
55
61
56
62
This is a simple example run of `wintermute.py` using GPT-4 against a vulnerable VM. More example runs can be seen in [our collection of historic runs](docs/old_runs/old_runs.md).
57
63
@@ -65,7 +71,7 @@ Some things to note:
65
71
- "What does the LLM know about the system?" gives an LLM generated list of system facts. To generate it, it is given the latest executed command (and it's output) as well as the current list of system facts. This is the operation which time/token usage is shown in the overview table as StateUpdTime/StateUpdTokens. As the state update takes forever, this is disabled by default and has to be enabled through a command line switch.
66
72
- Then the next round starts. The next given command (`sudo tar`) will lead to a pwn'd system BTW.
67
73
68
-
### Academic Publications on Priv-Esc Attacks
74
+
####Academic Publications on Priv-Esc Attacks
69
75
70
76
Preliminary results for the linux privilege escalation use-case can be found in [Evaluating LLMs for Privilege-Escalation Scenarios](https://arxiv.org/abs/2310.11409):
71
77
@@ -95,7 +101,7 @@ This work is partially based upon our empiric research into [how hackers work](h
95
101
}
96
102
~~~
97
103
98
-
## Create your own use-case (agent)
104
+
## Build your own Agent/Usecase
99
105
100
106
The following would create a new (minimal) linux privilege-escalation agent. Through using our infrastructure, this already uses configurable LLM-connections (e.g., for testing OpenAI or locally run LLMs), logs trace data to a local sqlite database for each run, implements a round limit (after which the agent will stop if root has not been achieved until then) and is able to connect to a linux target over SSH for fully-autonomous command execution (as well as password guessing).
101
107
@@ -172,7 +178,7 @@ Give your command. Do not add any explanation or add an initial `$`.
172
178
173
179
To run it, continue with the next section:
174
180
175
-
## Setup and Usage
181
+
###Setup and Usage
176
182
177
183
We try to keep our python dependencies as light as possible. This should allow for easier experimentation. To run the main priv-escalation program (which is called `wintermute`) together with an OpenAI-based model you need:
0 commit comments