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
Copy file name to clipboardExpand all lines: README.md
+33-31Lines changed: 33 additions & 31 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,16 +6,16 @@ What is it doing? it uses SSH to connect to a (presumably) vulnerable virtual ma
6
6
7
7
This tool is only intended for experimenting with this setup, only use it against virtual machines. Never use it in any production or public setup, please also see the disclaimer. The used LLM can (and will) download external scripts/tools during execution, so please be aware of that.
8
8
9
-
For information about its implemenation, please see our [implemenation notes](docs/implementation_notes.md). All source code can be found on [github](https://github.com/ipa-lab/hackingbuddyGPT).
9
+
For information about its implementation, please see our [implementation notes](docs/implementation_notes.md). All source code can be found on [github](https://github.com/ipa-lab/hackingbuddyGPT).
10
10
11
11
## Current features:
12
12
13
13
- connects over SSH (linux targets) or SMB/PSExec (windows targets)
title={Getting pwn’d by AI: Penetration Testing with Large Language Models},
30
+
url={http://dx.doi.org/10.1145/3611643.3613083},
31
+
DOI={10.1145/3611643.3613083},
32
+
booktitle={Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering},
33
+
publisher={ACM},
34
+
author={Happe, Andreas and Cito, Jürgen},
35
+
year={2023},
36
+
month=nov, collection={ESEC/FSE ’23}
37
+
}
38
+
~~~
39
+
40
+
This work is partially based upon our empiric research into [how hackers work](https://arxiv.org/abs/2308.07057):
41
+
42
+
~~~bibtex
43
+
@inproceedings{Happe_2023, series={ESEC/FSE ’23},
44
+
title={Understanding Hackers’ Work: An Empirical Study of Offensive Security Practitioners},
45
+
url={http://dx.doi.org/10.1145/3611643.3613900},
46
+
DOI={10.1145/3611643.3613900},
47
+
booktitle={Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering},
48
+
publisher={ACM},
49
+
author={Happe, Andreas and Cito, Jürgen},
50
+
year={2023},
51
+
month=nov, collection={ESEC/FSE ’23}
41
52
}
42
53
~~~
43
54
44
55
## Example run
45
56
46
57
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).
47
58
48
-
This happened during a recent run:
49
-
50
59

51
60
52
61
Some things to note:
@@ -59,14 +68,13 @@ Some things to note:
59
68
60
69
## Setup and Usage
61
70
62
-
You'll need:
71
+
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:
63
72
64
-
1. a vulnerable virtual machine, I am currenlty using [Lin.Security.1](https://www.vulnhub.com/entry/linsecurity-1,244/) as a target.
65
-
- start-up the virtual machine, note the used username, password and IP-address
66
-
2. an OpenAI API account, you can find the needed keys [in your account page](https://platform.openai.com/account/api-keys)
73
+
1. an OpenAI API account, you can find the needed keys [in your account page](https://platform.openai.com/account/api-keys)
67
74
- please note that executing this script will call OpenAI and thus charges will occur to your account. Please keep track of those.
75
+
2. a potential target that is accessible over SSH. You can either use a deliberately vulnerable machine such as [Lin.Security.1](https://www.vulnhub.com/entry/) or a security benchmark such as our [own priv-esc benchmark](https://github.com/ipa-lab/hacking-benchmark).
68
76
69
-
To get everying up and running, clone the repo, download requirements, setup API-keys and credentials and start `wintermute.py`:
77
+
To get everything up and running, clone the repo, download requirements, setup API-keys and credentials and start `wintermute.py`:
70
78
71
79
~~~bash
72
80
# clone the repository
@@ -85,14 +93,8 @@ $ cp .env.example .env
85
93
86
94
# IMPORTANT: setup your OpenAI API key, the VM's IP and credentials within .env
87
95
$ vi .env
88
-
~~~
89
-
90
-
### Usage
91
96
92
-
It's just a simple python script, so..
93
-
94
-
~~~bash
95
-
# start wintermute
97
+
# start wintermute, i.e., attack the configured virtual machine
0 commit comments