Skip to content

Commit 46034f9

Browse files
committed
feat: 🎸 add trials for API usage
1 parent 27dfd77 commit 46034f9

File tree

3 files changed

+31
-4
lines changed

3 files changed

+31
-4
lines changed

‎README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
# PentestGPT
22

3-
**We're testing PentestGPT on HackTheBox**. You may follow [this link](https://www.hackthebox.com/home/users/profile/1489431). More details will be released soon.
4-
**We include a video of using PentestGPT for OSCP-like machine: [HTB-Jarvis](https://youtu.be/lAjLIj1JT3c)**. This is the first part only, and I'll complete the rest when I have time.
3+
- [Update on 29/04/2023] I will release an official support for OpenAI API soon (hopefully in the next two days). The current update is for testing only.
4+
- **We're testing PentestGPT on HackTheBox**. You may follow [this link](https://www.hackthebox.com/home/users/profile/1489431). More details will be released soon.
5+
- **We include a video of using PentestGPT for OSCP-like machine: [HTB-Jarvis](https://youtu.be/lAjLIj1JT3c)**. This is the first part only, and I'll complete the rest when I have time.
56

67
## Common Questions
78
- **Q**: What is PentestGPT?

‎config/chatgpt_config_sample.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@
44
@dataclasses.dataclass
55
class ChatGPTConfig:
66
model: str = "text-davinci-002-render-sha"
7+
# set up the openai key
8+
openai_key = ""
79
# set the user-agent below
8-
userAgent: str = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
10+
userAgent: str = ""
911
# set cookie below
10-
cookie: str = "intercom-device-id-dgkjq2bp=0b79bf97-190f-4146-90b1-8e5ee76889a9; intercom-id-dgkjq2bp=73b81fc6-1a89-4778-8602-938e95bb1c8f; _ga=GA1.1.251554109.1679673782; __Host-next-auth.csrf-token=7023b86a1bc0bdd723cf71521ee831acaaab9d94a02438bcdca02ea769612c5f|18083d4a7b0eceabb2c424a905ec175934924e2bd45d006a89e1604164a48604; cf_clearance=qBZGclv8Ht5cS8iEmM2jYyPcvnrVfTRmSUtan_IRuDA-1682061686-0-1-71f1ba7f.fc4b5d0b.26f0e59f-160; _cfuvid=3BzxJtaXO435Z8NO48K1kTTp3JHuMZfIQvWhfiSYEJM-1682330678178-0-604800000; _ga_9YTZJE58M9=GS1.1.1682353256.12.0.1682353256.0.0.0; __Secure-next-auth.callback-url=https://chat.openai.com; cf_clearance=PtqZvXvt6o6wVp9tkSKwlMMfBdV4Hh96bvDhFUG9MHw-1682478660-0-1-5d5e3502.f55df012.897d5f13-160; _puid=user-nwflAg2thlSVHzpBgwGFRgqE:1682478662-c0c9bQESRGcnNH76HwNPLLMranslUH4wSzMGzAxX9AQ=; __cf_bm=MB6FL5JtFTbxNe.AmHN1g023sQ1BNJU04xXCXQKw8uA-1682478662-0-AT/9xWRnD4EkdaRLyogIvEZA1Aqs7uGTSExNXBPLq3uKqbtCVX1jTqR9RQ0FnlnxxRSSNUBo3R3vFdD89ReKsd+Z/95dxMmp4kN3gp5ttaMnuP7uxVkGolGwyYsTmfE5CQDfzR6t1g0GQHT7fnoAL04=; intercom-session-dgkjq2bp=ejAzREZWNUtYdzkwa3ZBanh3UXV0UHZNTk1IMXphZEh3NmhNR3FKU2NkQXFsQk1BRWpmMHExc2w5Qm9DK0krWi0tWlVLOXNGU0NEK3d1WXlzZzdZNnJjZz09--677b92a337fa6e349cdd910984b24829326dff8f; __Secure-next-auth.session-token=eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..nOcSsVlZHqMrkLHm.fZe57E1-UPMVMATxdKlh9JZiYVye9InomOu3H2HyleCH78Zc-X44TiTn1xZnrkYJoKhTXvLPVqFIoV4xx1KEWow0Iv3g9IDZSJRiIFiU_0bhzl7hAKZsrA7Ke8dmXSx0SkY--5sCRanyEDKzhDvl2zuyn9X1uDh9Q3j9DfaSKkptDkiwAiqJBuAx1i3DnFKUH8k1KQKhBKI9zNPj12-ryjkkPixTyDmzEJ4h6_vP14BOzi83Z-yuoGxbi1VBUXV2xkFw64dIc113SB_0Yus1KCP2Z5uEMpUsUMtSC0KwFYGxBmtjLR2gb4oVr32f-VYoSyVjK8HDq4rmFun0uNYnQVnkX7qkBtruufuivxtLh6jqMVydfP0UTrSZAG-fJYwLzZF2yM2Y_8qH7KwHpnyqPzc9PQRuOzYeIe_xIEt9lAi-nfvd79G4T4tzAS9dUjdAlYQ_YrII_g_df2zK30soSGZ7mm5di5CXgFnKOsbnjGJ7etaD9iShsJ8Mq2FMiquYnioUk3V3HfJJooqCdXjOy8dNpUKaazroXyBm2KDZnxP7iZLLETk82mvPPlEl6WfPZoMjMpBMkQffLSnOtN8kzJYO-NcdIBkV7_pBFZdmRjAa_gGudsKjkt4xbr9bGJgccTWoKxWnawxeLWIFpZrxNtibGeA5NyPG8XRiZGqbg5U07Xt25BLc1iIdraItmm94-sW2IFcVDXAxMkSnSNxo2fLsaMwopBeroo-l4baPUXviuO-Ux5xVNTmRe2q-rp5MXNr5GcF79t5oN6ULv9GAxYSqIYQ0biV-G_sdC6PNWErxokfApxAa3oAsaqwxSvNx5mo6tnzH6OPoz5eSyMxhYfkflThLwssJSJ9WT3k3kYxDfeO4t7HEIxP4crkpfkLOJ8FL7gnZTxFSyQQB3FFMgCjqp5xsIhGCNQ_VbgBjJf2QzbudfU075dXWOzzti1WL_BjBY9zDttlEO5VMMZqy--GvGOkscRw_eSgOOXdcVgWW-fpGeIUx-RKfyVF2crwzYNCJrsjyZw6Y0oxskimWE9ZGimGAw8jLTFa1iB0CR2LH7XKTlH5OjUE9lQiJToc0bD0FmflDBkeOamb6N_S0_tZDYbj4JoWm1vGcdb1NAZ8ov1CGqBOTg6Ko8U_So7jLZtcAgAm8wAjp9i3H1xHSivT8lxUyQkTEzNWojZ3uFKRy7n3_X3l9kjuZ7tvI_lkqAuzvZ2l7V5nrda1kNld1kkiTB8GTwkqx9HENcG87DPV1PvZksEZ7wrcR4VsAeQmT6usr4g5nUBo9B0WQShih2aSKyBv9n1PpSZDTqpYGtfU6Tm0fa-jwSbY4u670SBHkgEuAOUbpOUKFnVrLpuI0kCUNrpH3fKEsxrPRkDwMegq93YwqjK0RQ9Hkoy63NQ6U5IlN6jHrqwPN-iTSrfeTnT29PN2WHAj1r6DrmQSfszfKfI6h-OBUQpFsI4GzeKsbrwJlwAVaUYTeFKfw17OcIQE4YXU00floaJCyGSvcbDUkKDiRNdgjNoDT8mooY9dKMtz1ikyPj40CwIYhee2V_h1wrKJA0XTtS4gFrhJveU4nYPnxgdxYM9DpM-L8wfzJLf7wfbZr4-M4FwuGq8ADspmKpWpRSkqO99MLwPDLCUd6R3TrvutkUe0vA8dXvUJA5fjFY6X0TTyF27lhERuuqA7NIleE3tqxsi9FBdamAZy_PI8Ewq8jisblpzFgZBT6UVDrX1PCKLsZexG1rMIRSxjBOainVG3ffxRSuEULMwjGrmEu4s6YCl6BxqlRerz1gbpwbvFK9wGUEgUfm3nEMjw_fkbB92sG1rTJPv17axlaK7qoFh3XYER6e5K0PwKzvZHjn4D4tw2iZFGcQ2tmti-GWly3liWtCw0aMy9gwkXqGp-K4Z7ipZsT8qksKkJ0bAjkAcVcBrWE2dMPjmaBF0SD9r0Y2fiqquj9BtzeztpMoxqpHZZQCWQs3C04x5HVGO3mybacTwQ6AQYOKIGuldnAQ56Z5W51JAXEMnKEZh5UbIyWk1QAcRXc0Bj-XyzAG1-9_3yiNJ7gmrV1mS1bgmO5bCKiuFFI9D786CDt5EBfGcD_owJI6ILal6RkvJ8DAaIL0yC2tDlQCKYghc3c6jdDaT6eJRaNpT7QcVi5IglOkCf0CMz89MDyRf7_zBs3IFt0SZhAfBFQwsJxi1Oe1QzCLV5mnH6JykayiPIhQqcmZ2sL7eRTnzwSZWOqdRUWFKwg1LYLM4JWRan9N5Jx6BskhA17dpNbrUYM6GRje3r52gTsATWYvCWekJI-i6r_Kfp7P43kleuFKv64vDqBeKxchTYr6xNZASfyK1kT-REc3VUT55k_PdewX9Mck3eNrAv-y53qkbBjhzBGIzuxdQQLUd-2O3AE9GqTCdvXuLrJJfVLR4lwHkwV_BgN_fnqg9o7wxuE-RbF6DhgLaqb6BOr0LEFHNV9k1I6mAIYC_z2HEJmGUyciNKDrrNygZQycu4rqNXkZAGzhxl1NrxhCjV8w0HqNWh6D0a4m2QuVhfsy8Jnr1fV8VXkEZcCbvVtJo9kk34Jw5gG1Z-3zeR6N0tsCl64WHgCbkuAyo6PGvwc0z2PNMye9-AH6mPk._JUkFlxcUEhxcGxW2i3aPg"
12+
cookie: str = ""
1113

1214
# the following three variables are deprecated
1315
# _puid: str = "user-nwflAg2thlSVHzpBgwGFRgqE:1682153664-6LVyqTDXqHm2QjPWNpXFzDkMFxxv%2Bj%2F0XrgE%2FhdBjeI%3D"

‎utils/chatgpt.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import time
77
from typing import Any, Dict, List, Tuple
88
from uuid import uuid1
9+
import openai
910

1011
import loguru
1112
import requests
@@ -56,6 +57,29 @@ def __eq__(self, other):
5657
return self.conversation_id == other.conversation_id
5758

5859

60+
def chatgpt_completion(history: List) -> str:
61+
response = openai.ChatCompletion.create(
62+
model="gpt-3.5-turbo",
63+
messages=history,
64+
)
65+
return response["choices"][0]["message"]["content"]
66+
67+
68+
class ChatGPTAPI:
69+
def __init__(self, config: ChatGPTConfig):
70+
self.config = config
71+
openai.api_key = chatgpt_config.openai_key
72+
73+
def send_message(self, message):
74+
history = [{"role": "user", "content": message}]
75+
response = chatgpt_completion(history)
76+
return response
77+
78+
def extract_code_fragments(self, text):
79+
code_fragments = re.findall(r"```(.*?)```", text, re.DOTALL)
80+
return code_fragments
81+
82+
5983
class ChatGPT:
6084
def __init__(self, config: ChatGPTConfig):
6185
self.config = config

0 commit comments

Comments
 (0)