Commit Graph

245 Commits (c137d0c700aa361a85c32ee9a33cf925e4c4bdf2)

Author SHA1 Message Date
Grzegorz Rychlik 41b16a3c32 Fix not-null terminated section names 2020-01-17 14:02:38 +01:00
tim.carrington ac52b22c05 removal of redundant else statements and change GetListenerId to UpdateListenerId 2020-01-17 12:53:54 +00:00
tim.carrington 3576a1631b update 2020-01-17 11:48:06 +00:00
tim.carrington 86244b322d update in response to merge comments. Covenant connector now looks for C3Bridge listener before creating one. User now only supplies listener port, url, username and password 2020-01-16 16:40:45 +00:00
Grzegorz Rychlik fb849016ea Fix pre-build command for paths with spaces 2020-01-16 16:40:12 +01:00
Grzegorz Rychlik 911a8d4a97 Replace abort with QuietAbort 2020-01-16 14:38:30 +01:00
Grzegorz Rychlik e56118514d Merge branch 'WebControllerCheckCppRedist' into 'master'
Load libsodium at startup

See merge request C3/C3!155
2020-01-16 10:36:58 +00:00
Grzegorz Rychlik acce0ddf1b Merge branch 'ShareFileLock' into 'master'
Use lock file in UncShareFile channel to avoid rename-read races

See merge request C3/C3!153
2020-01-16 10:34:39 +00:00
Grzegorz Rychlik a88597cac9 [Loader] Update unexported win api for W7 and 8
- Win7's wow64 ntdll sections are aligned to 64k which leaves empty
pages (reserved but inaccessible)
- Update calling convetions, and offset data
2020-01-15 18:49:01 +01:00
Pawel Kurowski 6a7598c814 Use Compression in Covenant.cpp 2020-01-14 17:45:23 +01:00
Pawel Kurowski 8ae59871a8 Merge branch 'zlib' into CovenantIntegrationMerge 2020-01-14 17:42:33 +01:00
Pawel Kurowski 45a8bf9589 Use raw deflate format in Compression.cpp for C# DeflateStream compatibility 2020-01-14 17:40:30 +01:00
Grzegorz Rychlik 2e290a1947 Fix generated relay extention 2020-01-14 17:21:47 +01:00
Grzegorz Rychlik f1fee131f7 Merge branch 'donut-front' into Shellcode 2020-01-14 17:07:58 +01:00
Andras Toth 0446be46e5 yarn build 2020-01-14 15:47:41 +00:00
Andras Toth c53b369123 Add donut front-end form 2020-01-14 15:45:58 +00:00
Pawel Kurowski 70673b1c49 Use zlib with static CRT 2020-01-14 15:18:37 +01:00
Pawel Kurowski bde88c85b5 Add zlib and Compression 2020-01-14 15:18:22 +01:00
Grzegorz Rychlik 91c3daa42b Fix cleanup code 2020-01-14 11:52:19 +01:00
Grzegorz Rychlik cfa8782ebf Add doxygen comments 2020-01-14 11:05:17 +01:00
Grzegorz Rychlik cd5962409a Hide details of Unexported WinApi calls 2020-01-13 17:04:06 +01:00
Grzegorz Rychlik f8e7dcb689 Fix code style 2020-01-13 17:02:09 +01:00
Pawel Kurowski 8cc2dc26b2 Grunt.h will be included in project, but not compiled separately 2020-01-13 10:24:45 +01:00
tim.carrington 7204bd4091 Add files to project 2020-01-10 16:51:09 +00:00
tim.carrington 0732b0c11c update id 2020-01-10 16:17:40 +00:00
tim.carrington 5fa511404d update 2020-01-10 16:16:29 +00:00
Grzegorz Rychlik 352d54f2fc Add support for x86 exceptions 2020-01-10 16:35:39 +01:00
tim.carrington b833cda1fc Merge branch 'CovenantIntegrationMerge' of git.f-secure.com:C3/C3 into CovenantIntegrationMerge 2020-01-10 11:56:13 +00:00
tim.carrington b97aced4f6 automatically setup listener in covenant 2020-01-10 11:54:58 +00:00
Grzegorz Rychlik a0835b6877 [Loader] Add x86 static TLS support 2020-01-10 11:15:22 +01:00
Tim Carrington a4bda08189 Update Covenant.cpp 2020-01-10 08:53:18 +00:00
Grzegorz Rychlik 6aec395e30 Update resource generation and access to match C style 2020-01-09 17:31:53 +01:00
Grzegorz Rychlik 98d00b1034 Fix resource path 2020-01-09 17:25:25 +01:00
Grzegorz Rychlik 07f6e3eae0 Return status codes from ResourceGenerator 2020-01-09 17:23:27 +01:00
Grzegorz Rychlik 58dca25974 Load libsodium at startup
Sodium was loaded when gatway tried to connect to controller, and
loading could fail if no VC++ redist package is installed
2020-01-08 17:50:33 +01:00
Andras Toth c4a5d84f45 yarn build 2020-01-08 16:05:49 +00:00
Andras Toth 36ce1e93e2 Change favicon colour 2020-01-08 16:05:08 +00:00
Andras Toth 4b008d986f yarn build 2020-01-08 15:48:18 +00:00
Andras Toth 54a74f7a2c Change C3 green to green 2020-01-08 15:47:42 +00:00
Andras Toth 8338cfc8a5 yarn build 2020-01-08 14:58:40 +00:00
Andras Toth 17637a227b Fix tests 2020-01-08 14:57:42 +00:00
Andras Toth a9d1b00d90 Remove F-Secure Font 2020-01-08 14:33:35 +00:00
Andras Toth 6d3bc04db9 linting 2020-01-08 14:31:27 +00:00
Grzegorz Rychlik 02dbe3198d Use lock file in UncShareFile channel to avoid rename-read races 2020-01-08 14:56:34 +01:00
tim.carrington c6f53cebc1 Merge branch 'master' of git.f-secure.com:C3/C3 into CovenantIntegrationMerge 2020-01-08 13:25:13 +00:00
Grzegorz Rychlik 474662bc8e Merge branch 'master' into Shellcode 2020-01-07 18:02:23 +01:00
Grzegorz Rychlik ded70af1df Change default Donut compression 2020-01-07 17:54:14 +01:00
Andras Toth 50db8fefc3 yarn build 2020-01-07 16:52:10 +00:00
Andras Toth 3a0d821c3e yarn upgrade 2020-01-07 16:50:34 +00:00
Grzegorz Rychlik 70955f1a94 Simplify debug code 2020-01-07 17:46:17 +01:00
Andras Toth 3e44a95155 F-secure style 2020-01-07 16:46:08 +00:00
Grzegorz Rychlik 22bf7885c1 Fix the generated shellcode name if donut options are not present in request 2020-01-07 17:12:03 +01:00
Grzegorz Rychlik bb5173a265 Remove old, unused parameter from NodeRelay 2020-01-07 17:09:52 +01:00
Grzegorz Rychlik 0111f01a58 Add calling exported API from loader 2020-01-07 17:09:08 +01:00
Grzegorz Rychlik bf4f8df204 Add exported function to ResourceGenerator 2020-01-07 17:08:16 +01:00
Grzegorz Rychlik f3ddc927bd Add debug code and config to Loader 2020-01-07 17:06:47 +01:00
Grzegorz Rychlik d67e62844f yarn build 2020-01-07 15:49:08 +01:00
Grzegorz Rychlik 3c58feb5e4 Add shellcode opion in CreateRelay modal 2020-01-07 15:37:17 +01:00
Grzegorz Rychlik b56c8853d1 Update Donut usage in WebController 2020-01-07 15:25:09 +01:00
Pawel Kurowski f80ee0f666 Add comparsion operator to ByteView, use memcmp 2020-01-07 14:38:38 +01:00
Pawel Kurowski 841216c69d Fix missing operators == != for ByteVector 2020-01-07 14:28:01 +01:00
Grzegorz Rychlik 9be6f2a23f Update Donut 2020-01-07 14:27:56 +01:00
Grzegorz Rychlik 057462df5e Merge branch 'Donut' into FixLoaderBuildDependency 2020-01-07 14:16:17 +01:00
Grzegorz Rychlik 87e7296754 Change loader output to DLL 2020-01-07 12:59:52 +01:00
Pawel Kurowski 468642a373 Replace ByteCompare with memcmp 2020-01-03 16:01:55 +01:00
Pawel Kurowski cb47662dae Fix dependecy for ByteVector 2020-01-03 15:08:11 +01:00
Pawel Kurowski 266d78fce7 Merge remote-tracking branch 'origin/master' into FixLoaderBuildDependency 2020-01-03 14:59:09 +01:00
Pawel Kurowski 6598f0723f Remove Common from Loeader project 2020-01-03 13:55:14 +01:00
Pawel Kurowski 1ff69aa825 Add gen directroy for generated files 2020-01-03 13:16:29 +01:00
Grzegorz Rychlik 446fb8e10b Change project configs 2020-01-03 12:02:54 +01:00
Pawel Kurowski 61ce149258 Update GetTargetDll to search for payload 2020-01-03 11:16:13 +01:00
Pawel Kurowski 0c42bdcc8b Add resource generator that will embed NodeRelayDll 2020-01-03 10:16:00 +01:00
Janusz Szmigielski ec15dd4023 Merge branch 'V142ToolsetFixes' into 'master'
V142 toolset fixes

See merge request C3/C3!150
2020-01-03 09:15:53 +00:00
Grzegorz Rychlik 5a36970c3c Workaround a scoped_lock CTAD problem
See: https://developercommunity.visualstudio.com/content/problem/842917/error-c3538-when-using-scoped-lock-in-derived-temp.html
2020-01-02 18:06:28 +01:00
Grzegorz Rychlik b0533d4668 Support v142 toolset in SecureString 2020-01-02 17:46:58 +01:00
Grzegorz Rychlik c6e8a764d2 WIP: Upload in-memory Loader 2020-01-02 13:44:51 +01:00
Grzegorz Rychlik 22d543a398 Merge branch 'ChannelLinter' into 'master'
Channel linter

See merge request C3/C3!146
2019-12-24 12:12:31 +00:00
Janusz Szmigielski 9f304a7b52 Merge branch 'ByteConverterUpdate' into 'master'
Use improved, header only ByteView/ByteVector

See merge request C3/C3!147
2019-12-20 12:56:57 +00:00
Pawel Kurowski 201e18a458 Add documentation to ByteConventer 2019-12-05 17:22:09 +01:00
Pawel Kurowski 580fb74642 ByteConverter review fixes 2019-12-05 14:25:27 +01:00
Grzegorz Rychlik f927eb8d22 Merge branch 'ReduceIO' into 'master'
Send the snapshot over ApiBridge only if it changed

See merge request C3/C3!144
2019-11-29 15:18:17 +00:00
Grzegorz Rychlik 69fa74bae6 Add backend support for shellcode generation using Donut 2019-11-25 16:44:14 +01:00
Grzegorz Rychlik 855b47a48a Change SnapshotProxy API 2019-11-25 13:29:20 +01:00
Grzegorz Rychlik 89aa4dde63 Move implementation to .cpp 2019-11-25 12:27:30 +01:00
Grzegorz Rychlik edf08555d9 Add missing Doxy, minor style changes 2019-11-25 12:22:41 +01:00
Pawel Kurowski 97a0a76dfa Use improved, header only ByteView/ByteVector 2019-11-21 15:45:13 +01:00
Grzegorz Rychlik 6aa3264759 Add Readme 2019-11-18 14:42:23 +01:00
Grzegorz Rychlik 0230687c6b Add doxygen comments 2019-11-18 14:42:23 +01:00
Grzegorz Rychlik 0c732309da Refactor Form and FormElement 2019-11-18 14:42:23 +01:00
Grzegorz Rychlik e35304a65d Refactor the application object 2019-11-18 14:42:22 +01:00
Grzegorz Rychlik ef445129ef Move logic implementation 2019-11-18 14:42:22 +01:00
Grzegorz Rychlik 5d237e0f9b Start cleanup 2019-11-18 14:42:22 +01:00
Grzegorz Rychlik 0a1939a6cd Rename file 2019-11-18 14:42:22 +01:00
Grzegorz Rychlik 21069e66e9 Add docs 2019-11-18 14:42:22 +01:00
Grzegorz Rychlik d56d876993 Implement MockDeviceBridge::Close 2019-11-18 14:42:22 +01:00
Grzegorz Rychlik 29bddb2fe8 Add built-in commands to linter 2019-11-18 14:42:22 +01:00
Grzegorz Rychlik 3976a1c9ab Fix Linter's dependency to Core 2019-11-18 14:42:22 +01:00
Grzegorz Rychlik d1ff940dae Add initial support for running channel commands 2019-11-18 14:42:22 +01:00
Grzegorz Rychlik 1a98b1d1cc Fix sending and receiving to conform to new implementations 2019-11-18 14:42:22 +01:00
Grzegorz Rychlik ef0793a458 Introduce MockDeviceBridge to enable logging from channel 2019-11-18 14:42:21 +01:00
Grzegorz Rychlik d95a7dd653 Validate channel creation arguments against the form definiton 2019-11-18 14:42:21 +01:00
Grzegorz Rychlik 456f84338f Add sending and receiving test 2019-11-18 14:42:21 +01:00
Grzegorz Rychlik bac6392961 Add creating complementary channel 2019-11-18 14:42:21 +01:00
Grzegorz Rychlik 7747a637a8 Add first channel creation 2019-11-18 14:42:21 +01:00
Grzegorz Rychlik eee77a3cd6 Create stub for C3 channel linter 2019-11-18 14:42:21 +01:00
Grzegorz Rychlik 33183d4f1e Fix finding device by name 2019-11-18 14:42:21 +01:00
Grzegorz Rychlik 205b4e785f Remove unsused Actions definition 2019-11-15 15:47:24 +01:00
Grzegorz Rychlik 944de76fd0 Remove Actions queue
Actions queue was write-only, effectively leaking memory
2019-11-15 15:38:18 +01:00
Grzegorz Rychlik 686bbdeb9c Send the snapshot over ApiBridge only if it changed 2019-11-14 17:50:18 +01:00
tim.carrington 5f0f992406 refactor for merge request 2019-11-08 11:21:49 +00:00
tim.carrington b29fd34656 initial commit 2019-11-04 11:38:59 +00:00
Grzegorz Rychlik 9847f5563a Move Commands enum out of Relay
Commands are also used in Devices
2019-10-31 15:10:56 +01:00
Grzegorz Rychlik a05a737f8c Decouple Device and AbstractConnector rom Relay and GateRelay 2019-10-31 14:30:20 +01:00
Grzegorz Rychlik 21f609a0ec Handle API bridge received messages asynchronously 2019-10-10 14:00:41 +02:00
Pawel Kurowski 6326f81444 InterfaceFactory::GetInterfaceData 2019-09-23 12:02:02 +02:00
Pawel Kurowski 864c4ed858 Merge remote-tracking branch 'origin/BeaconCleanup' 2019-09-23 09:59:07 +02:00
Pawel Kurowski 0955650262 Simplify Usage Of ByteVector With Custom Types 2019-09-19 18:13:34 +02:00
Pawel Kurowski 3f238b349f Specialize ByteConverter for Identifiers and RouteId 2019-09-19 14:17:49 +02:00
Pawel Kurowski ec1d1a55b5 Add ByteVector::reed proxy to ByteView::Read 2019-09-19 11:57:22 +02:00
Pawel Kurowski 5201a2391d Specialize ByteConverter template to support read/write of custom type with ByteVector/ByteView 2019-09-19 11:24:44 +02:00
Grzegorz Rychlik 03a37a71a7 Free the Beacon stager memory 2019-09-13 15:56:04 +02:00
Pawel Kurowski a44f9ba632 Merge branch 'RenameFrequencyToDelay' into 'master'
Replace UpdateFrequency with UpdateDelay

See merge request C3/C3!134
2019-09-13 13:30:55 +01:00
Pawel Kurowski f536b7a027 Merge branch 'CloseConnection' into 'master'
Close connection when peripheral is closed. Resolve access violation after...

See merge request C3/C3!132
2019-09-13 13:30:31 +01:00
Grzegorz Rychlik ca171709e5 Terminate Beacon thread
Warning: Beacause Beacon's `exit` command closes the process, this uses
TerminateThread function. This may lead to serious and unpredictable
issues.
2019-09-13 13:48:43 +02:00
Pawel Kurowski a2f9047aef Increase OpSec by clearing memory when ByteVector is not needed anymore. 2019-09-13 11:31:12 +02:00
Pawel Kurowski f84c7501b2 Fix documentation for CloseConnection 2019-09-12 17:32:25 +02:00
Pawel Kurowski f5145a096d Replace UpdateFrequency with UpdateDelay 2019-09-12 17:18:43 +02:00
Pawel Kurowski 40a2dea268 Fix UpdateDelay on gateway devices 2019-09-12 17:07:37 +02:00
Pawel Kurowski 66f24a2212 Add CloseConnection to Connectors and ConnectorBridges 2019-09-12 15:28:44 +02:00
Pawel Kurowski 89ffafa210 Merge branch 'master' into PerformanceUpgrades 2019-09-12 14:31:13 +02:00
Pawel Kurowski 01ddcef28f Merge branch 'MultiPacketReceive' into BetterByteVector 2019-09-12 13:52:39 +02:00
Pawel Kurowski ffe0d66fcd Allow retriving N bytes of data without coping using variadic ByteView::Read 2019-09-12 13:37:52 +02:00
Pawel Kurowski 17d2604c26 Add ByteView::Read for non owning containers 2019-09-11 18:13:42 +02:00
Pawel Kurowski a238e59291 Add std::hash for ByteVector and ByteView 2019-09-11 17:27:05 +02:00
Pawel Kurowski eabd5725c9 Calculate and reserve size for storing data in Byte Vector to avoid relocations 2019-09-11 16:37:24 +02:00
Pawel Kurowski 1daca2514d Avoid coping data arguments when storing them in ByteVector 2019-09-11 13:37:54 +02:00
Pawel Kurowski 864a913081 Close connection when peripheral is closed. Resolve access violation after race condition in Connectors 2019-09-11 11:35:52 +02:00
Pawel Kurowski b4cd108f03 Allow multiple packets to be received from channel 2019-09-09 17:02:14 +02:00
Janusz 11b22130a3 Fix Interface's default "create" Command parameters. 2019-09-09 14:31:14 +02:00
Pawel Kurowski 408ee1da67 Add ByteVector::Create 2019-09-09 10:17:32 +02:00
Pawel Kurowski e58e609471 Make ByteVector Concat work with all types compatible with ByteVector::Write, and add variadic usage 2019-09-09 10:17:31 +02:00
Janusz 1fc5064956 Fix Command name "UpdateDelayJitter" -> "Set UpdateDelayJitter" 2019-09-06 16:47:52 +02:00
Janusz 6f94296866 Put Channel<> and rest of CRTPs to Interfaces namespace. 2019-09-06 16:47:52 +02:00
Grzegorz Rychlik 26be33078f Change file permissions in UncShareFile channel 2019-09-06 15:21:00 +02:00
Grzegorz Rychlik 6d4eda67fa Release C3 publicly 2019-09-02 12:52:41 +02:00