Skip to content

Commit

Permalink
Rewritten, more OOP-ish approach using C++17 features here and there
Browse files Browse the repository at this point in the history
  • Loading branch information
ang1337 committed Feb 3, 2021
1 parent 9ce3448 commit 95e0ce0
Show file tree
Hide file tree
Showing 31 changed files with 1,278 additions and 822 deletions.
5 changes: 0 additions & 5 deletions build_client.sh

This file was deleted.

8 changes: 0 additions & 8 deletions build_server.sh

This file was deleted.

10 changes: 0 additions & 10 deletions client/CMakeLists.txt

This file was deleted.

14 changes: 14 additions & 0 deletions client/inc/Client.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#pragma once
#include <string>
#include <cstdint>

namespace remramd {
class Client {
private:
void run_netcat_tcp_listener(const std::uint16_t reverse_shell_port);
public:
void connect(const std::string &server_ip, const std::uint16_t server_port);
Client(const Client&) = delete;
Client& operator = (const Client&) = delete;
};
}
17 changes: 0 additions & 17 deletions client/include/client_core.hpp

This file was deleted.

Binary file added client/remramd_client
Binary file not shown.
21 changes: 21 additions & 0 deletions client/src/Client.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#include "../inc/Client.hpp"
#include "../../shared/inc/Protocol.hpp"
#include "../../shared/inc/remramd_exception.hpp"
#include <unistd.h>
#include <iostream>

namespace remramd {
void Client::connect(const std::string &server_ip, const std::uint16_t server_port) {
std::cout << "Server => IP: " << server_ip << " | Port: " << server_port << std::endl;
const auto reverse_shell_port { internal::Protocol::request_connection(server_ip, server_port) };
run_netcat_tcp_listener(reverse_shell_port);
}

void Client::run_netcat_tcp_listener(const std::uint16_t reverse_shell_port) {
const std::string nc_path { "/bin/nc" },
nc_flags { "-nvlp" };
const char* const args[] { nc_path.c_str(), nc_flags.c_str(), std::to_string(reverse_shell_port).c_str(), nullptr };
execve(nc_path.c_str(), (char* const*)args, nullptr);
std::cerr << "FAIL\n";
}
}
115 changes: 0 additions & 115 deletions client/src/client_core.cpp

This file was deleted.

18 changes: 18 additions & 0 deletions client/src/client_main.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#include "../inc/Client.hpp"
#include "../../shared/inc/Connection.hpp"
#include "../../shared/inc/remramd_exception.hpp"
#include <iostream>

int main(int argc, char **argv) {
if (argc != 3) {
std::cerr << "Usage: " << argv[0] << " <server IP> <server port>\n";
exit(1);
}
remramd::Client client_obj {};
try {
client_obj.connect(argv[1], std::stoi(argv[2]));
} catch (const remramd::exception &e) {
std::cerr << e.what() << std::endl;
}
return 0;
}
18 changes: 0 additions & 18 deletions client/src/remramd_client.cpp

This file was deleted.

1 change: 1 addition & 0 deletions install_client.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
g++ client/src/*.cpp shared/src/*.cpp server/src/PipeWrapper.cpp -lpthread -std=c++17 -O3 -o client/remramd_client
8 changes: 8 additions & 0 deletions install_server.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
if [[ $EUID -ne 0 ]]; then
echo "The server installer must be run as root"
exit 1
fi

g++ server/src/*.cpp shared/src/*.cpp -lpthread -std=c++17 -O3 -o server/remramd_server

cd driver && make && insmod ramd.ko && cd ..
61 changes: 0 additions & 61 deletions scripts/chroot_jail_builder.py

This file was deleted.

10 changes: 0 additions & 10 deletions server/CMakeLists.txt

This file was deleted.

Loading

0 comments on commit 95e0ce0

Please sign in to comment.