Skip to content

Commit 0afdbec

Browse files
authored
Merge pull request #13 from maxDcb/develop
Develop
2 parents b1cc93f + 120f802 commit 0afdbec

File tree

7 files changed

+30
-27
lines changed

7 files changed

+30
-27
lines changed

README.md

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,22 @@
66

77
## What it is
88

9-
Exploration is a redteam Command and Control framework.
10-
This repository contains the TeamServer and the Client.
11-
The release includes the TeamServer the Client with preconfigured certificate as well as the beacons and modules for windows from [C2Implant](https://github.com/maxDcb/C2Implant).
9+
Exploration is a red team Command and Control (C2) framework.
10+
This repository includes both the TeamServer and the Client.
11+
The release package contains the TeamServer, the Client, as well as the beacons and modules for Windows from [C2Implant](https://github.com/maxDcb/C2Implant) and for Linux from [C2Implant](https://github.com/maxDcb/C2LinuxImplant).
1212

13+
14+
You can run the following command to retrieve the latest release:
1315
```
1416
wget -q $(wget -q -O - 'https://api.github.com/repos/maxDcb/C2TeamServer/releases/latest' | jq -r '.assets[] | select(.name=="Release.tar.gz").browser_download_url') -O ./C2TeamServer.tar.gz
1517
mkdir C2TeamServer && tar xf C2TeamServer.tar.gz -C C2TeamServer --strip-components 1
1618
```
1719

1820
## Introduction
1921

20-
The TeamServer is a stand alone application, coded in c++, that handle listeners. The client, coded in python, communicate with the TeamServer through GRPC.
21-
Beacons run on the victime host. Each Beacons which connects back to the TeamServer open a new session. This session is used to control the Beacon, send commands and receive results.
22-
Listener and Beacons can communicate through TCP, SMB, HTTP ,HTTPS and Github issues depending on the situation.
22+
The TeamServer is a standalone application, coded in C++, that handles listeners. The Client, coded in Python, communicates with the TeamServer through gRPC.
23+
Beacons run on the victim host. Each Beacon that connects back to the TeamServer opens a new session. This session is used to control the Beacon, send commands, and receive results.
24+
Listeners and Beacons can communicate through TCP, SMB, HTTP, HTTPS.
2325

2426

2527
![alt text](https://github.com/maxDcb/C2TeamServer/blob/master/images/ListenersAndSessions.png?raw=true)
@@ -28,20 +30,26 @@ Listener and Beacons can communicate through TCP, SMB, HTTP ,HTTPS and Github is
2830
![alt text](https://github.com/maxDcb/C2TeamServer/blob/master/images/ListenersAndSessions2.png?raw=true)
2931

3032

31-
A compiled version of the TeamServer is ready to use in the Releases, with some default certificats for GRPC communication and HTTP Listener:
33+
A compiled version of the TeamServer is available in the Releases, complete with default certificates for gRPC communication and HTTP Listener.
3234

33-
The TeamServer binary is in Release/TeamServer
34-
it's launched using
35+
The TeamServer binary is in Release/TeamServer. It can be launched using the following command:
3536

3637
```
37-
cd Release/TeamServer
3838
./TeamServer
3939
```
4040

4141
![alt text](https://github.com/maxDcb/C2TeamServer/blob/master/images/TeamServerLaunch.png?raw=true)
4242

43-
The Python Client is in Release/Client
44-
It's launched using 'python3 GUI.py'
43+
The Python Client is located in Release/Client. It can be launched using the following command:
44+
45+
```
46+
cd Release/Client
47+
# --dev is to specify that the GRPC hostname in the SSL certificat will not be checked
48+
# --ip is the ip of the TeamServer
49+
python3 GUI.py --ip 127.0.0.0 --port 50051 --dev
50+
```
51+
52+
The following packages are required to run the Client:
4553

4654
```
4755
pip3 install pycryptodome
@@ -51,13 +59,6 @@ pip3 install pyqtdarktheme
5159
pip3 install protobuf==5.27.0
5260
```
5361

54-
```
55-
cd Release/Client
56-
# --dev is to specify that the GRPC hostname in the SSL certificat will not be checked
57-
# --ip is the ip of the TeamServer
58-
python3 GUI.py --ip 127.0.0.0 --port 50051 --dev
59-
```
60-
6162
## Wiki
6263

6364
For more information, please visit the [wiki](https://github.com/maxDcb/C2TeamServer/wiki)

client/PeDropper

conanfile.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
protobuf/5.27.0
33
openssl/3.3.1
44
zlib/1.3.1
5-
grpc/1.65.0
5+
grpc/1.67.1
66
spdlog/1.14.1
77
cpp-httplib/0.16.3
88

teamServer/teamServer/TeamServer.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1064,11 +1064,13 @@ std::string getIPAddress(std::string &interface)
10641064
temp_addr = interfaces;
10651065
while(temp_addr != NULL)
10661066
{
1067-
if(temp_addr->ifa_addr->sa_family == AF_INET)
1068-
{
1067+
if (temp_addr->ifa_addr != NULL && temp_addr->ifa_addr->sa_family == AF_INET)
1068+
{
10691069
if(strcmp(temp_addr->ifa_name, interface.c_str())==0)
10701070
{
1071-
ipAddress=inet_ntoa(((struct sockaddr_in*)temp_addr->ifa_addr)->sin_addr);
1071+
char addressBuffer[INET_ADDRSTRLEN];
1072+
inet_ntop(AF_INET, &((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr, addressBuffer, INET_ADDRSTRLEN);
1073+
ipAddress = addressBuffer;
10721074
}
10731075
}
10741076
temp_addr = temp_addr->ifa_next;

0 commit comments

Comments
 (0)