Commit Graph

366 Commits

Author SHA1 Message Date
yankejustin c8b9258183 More documentation on a RegistryKey extension
Added some more documentation for the GetFormattedKeyValues extension
method.
2015-06-02 13:17:02 -04:00
yankejustin fab38a8b9a Added RegistryKey Extensions/Helpers
Added RegistryKey Extensions/Helper methods. Cleaned up and improved
HandleGetStartupItems.
2015-06-02 13:14:32 -04:00
MaxXor 3ff0b38585 Added #245
Improved client & server
closes #245
2015-05-31 19:22:00 +02:00
MaxXor 6a4125cf18 Added more documentation to Client 2015-05-30 09:23:35 +02:00
yankejustin 0dc2bd7b6f Added documentation for the Client's client
Added documentation for the Client's client object.
2015-05-29 20:16:45 -04:00
MaxXor 24673509c5 Partial fix #231 2015-05-29 00:25:40 +02:00
Skid 1ced224410 Improved Code Layout 2015-05-28 10:17:18 +09:30
MaxXor 163c828fbc Fixed Shell cmd.exe process not correctly exited
#232
2015-05-27 23:10:40 +02:00
MaxXor 9d29ed9803 Merged changes from master 2015-05-27 22:49:00 +02:00
MaxXor 47de4f8aa0 Small corrections 2015-05-27 22:46:07 +02:00
yankejustin 9bddb0ffd5 Initialize ManualResetEvents in the constructor
If something recoverable goes wrong in the shell, we must make sure that
we reset the ManualResetEvents so the chained output functions
correctly.
2015-05-27 15:44:32 -04:00
yankejustin d402d7833f Fixed client breaking on shell close
Fixed a situation where a break in the output-handler chain would not
correctly terminate, causing an exception to be thrown.
2015-05-27 15:37:07 -04:00
yankejustin 5c4525eb69 Changes to Dispose(bool)
Changes to how the shell is disposed.
2015-05-27 14:50:24 -04:00
yankejustin be78162f63 Changes to output handling of commands
Added an "IsError" property to the ShellCommandResponse to denote if the
response should be handled a certain way (if it is a response to a
ShellCommand error, then print it differently).
Also correctly queues up two different threads on shell initialization.
These ManualResetEvents now will signal the Shell's redirected output to
handle either the output, or the error output. Not at the same time
(will cause deadlocking).
We now append the text instead of concatenating. Not sure how much more
efficient this is, but it is certainly more readable.
2015-05-27 14:46:10 -04:00
MaxXor 8d32c58901 Removed newly added unused reference 2015-05-27 19:38:07 +02:00
yankejustin 16ad740862 Screen length check
Come to think of it, if there isn't a screen in the array, we shouldn't
use it! heh
2015-05-27 12:38:50 -04:00
yankejustin 0685ab44dc Improved HandleMonitors
For some strange reason, this line wasn't in the last commit!
2015-05-27 12:38:00 -04:00
yankejustin 849638fd1b Various Remote Desktop Fixes
Handle Monitors is more reliable.
Re-wrote some of HandleRemoteDesktop to produce more accurate behavior.
2015-05-27 12:36:37 -04:00
Skid 902bdb5db3 Added Password Recovery
Password Recovery for Firefox (36+), Chrome, Yandex, Internet Explorer
and Opera
2015-05-27 23:57:57 +09:30
Skid 1d2b838b78 Password Recovery Server Side
Work in progress, so don't think this'll work
2015-05-27 21:00:35 +09:30
MaxXor bceaf04811 Added Removing of Programs from Autostart 2015-05-26 23:11:16 +02:00
MaxXor bda545c614 Fixed Add to Autostart Command 2015-05-26 22:02:56 +02:00
DragonzMaster 1faafaa814 Startup Manger Fix [Client]
Changed CurrentUser to LocalMachine
As these values located in LocalMachine NOT CurrentUser
2015-05-26 20:36:14 +02:00
MaxXor 36ac738e43 Minor Uninstall fix
- Add to Autostart again when already installed #205
2015-05-26 18:28:15 +02:00
MaxXor 381dad6a24 Fix #205 (Uninstall fix)
- Moved some Command-Handling methods to their correct location
2015-05-26 18:14:24 +02:00
MaxXor 5e4905fec2 Prevent Keylogger writing when Client disconnects 2015-05-26 18:11:50 +02:00
MaxXor c9facfc295 Added #121 (Update from File)
closes #121
2015-05-26 15:55:52 +02:00
MaxXor 2e146620dd Fixed #118 2015-05-26 14:16:19 +02:00
d3agle 989cd5c664 Keylogger special key fix 2015-05-26 00:38:29 -05:00
MaxXor e2d2b704fa Keylogger Special Char Fix #2 2015-05-25 17:06:23 +02:00
MaxXor 1f469151c4 Keylogger Special Char Fix
thanks deagle #194
2015-05-25 16:15:25 +02:00
d3agle 49c6a0a58a #194 fix
Bear in mind this does not fix the Alt Gr keypresses.  Pressing this key will still produce the same symbols/behaviors when the keylogger is not enabled.

What this fix does: we are receiving the character value for a KeyPress and we are handling it by ignoring it if any modifier keys are set.  In this case "Ctrl + Alt" which I will be trying to accomplish in a later fix (if I can figure out how to do this).

For example, a user with a german keyboard layout presses (Ctrl + alt + 2), which is the same as AltGr + 2, the call to our PressedKeys list will do the following

-check if key modifiers are set
-check if the list contains a key with a character value that is comparable to a key

If the key is  a normal character, for example user presses (Ctrl + Alt + k) on a german keyboard layout, the result would be true and the method would return, ignoring appending the character 'k' to the log

If the key is not a normal character that is comparable to the value of a Key, our call will fall through to the next call, and add the character that is returned.  For example, user presses (Ctrl + Alt + 2) to produce the special character, the Keys enum values won't contain a key with that symbol and our list won't either so it will fall through and print the special character
2015-05-25 06:55:28 -05:00
d3agle b932d96981 [Keylogger] Add time to Window Title #195 2015-05-25 06:14:16 -05:00
MaxXor 80aca909c9 Added extension methods to Keylogger 2015-05-25 11:55:41 +02:00
d3agle 0b72067435 IndexOutOfBoundsException fix 2015-05-25 03:44:18 -05:00
MaxXor ed1548a36f Small cleanup 2015-05-24 23:17:21 +02:00
MaxXor 80b2f6677b Better detection for holding a key
ref #149 (this displays ^^ normally)

fixed with the power of LINQ ;)
2015-05-24 19:47:43 +02:00
d3agle 4efef7c9c2 Removed unnecessary return 2015-05-24 11:45:25 -05:00
d3agle 63a3a61d74 moved instantiation of stringbuilder into null check 2015-05-24 10:40:12 -05:00
d3agle 3a8405a1e7 Dead-key fix #2
Fixed dead-key issue (pressing dead key followed by shift + key)  This
is now working flawlessly

Code refactors
2015-05-24 10:29:26 -05:00
d3agle 8344140d8a dead-key fix
Fixed case of pressing dead-key to accent characters followed by Shift +
character to present an uppercase character
2015-05-24 07:12:51 -05:00
MaxXor fd7e2724f7 Merged fix from globalmousekeyhook/master
Fix #181
2015-05-24 10:56:47 +02:00
d3agle 48584290bf Possible dead-key fix 2015-05-23 19:43:58 -05:00
d3agle b27981ddf4 Keylogger fixes
-Fixed spaces showing up in weird orders.

-Fixed issue where pressing some modifier keys would append the KeyPress
events text prior to the Appended highlighted text from the KeyDown
event.  Example:  User presses Windows Key + R.  it would log "r[Win +
[R]"
2015-05-23 19:25:13 -05:00
MaxXor a3612448a6 Fixed small mistake 2015-05-23 19:53:57 +02:00
d3agle d38d4d5ef4 Some changes to keylogger
added escape key
added keypress list to detect multiple keypresses for characters
moved modifier key check to a method for readability
2015-05-23 12:00:36 -05:00
MaxXor 6c32e861f4 Changed Window Titles printing in Logger 2015-05-23 18:03:03 +02:00
MaxXor 8965a4e801 Improved Logger
Fixed unprintable chars in logfile
2015-05-23 17:54:24 +02:00
MaxXor a095495da0 Small DLLImport changes
#176
2015-05-23 16:00:29 +02:00
MaxXor 16001801dc Added Keylogger Helper 2015-05-23 15:57:38 +02:00
MaxXor 6e2716466b Small changes to improve the code 2015-05-23 14:24:31 +02:00
MaxXor 32c7cda0c5 Merge pull request #178 from d3agle/dev
Message loop fix
2015-05-23 14:22:16 +02:00
d3agle 0efb64adef Message loop fix
Fixed the message loop, called Application.Run in the thread and not the
object, using ApplicationContext object we can identify which thread to
tell the message loop to return
2015-05-23 07:09:55 -05:00
MaxXor 45070631a9 Better handling of special keys 2015-05-23 13:30:57 +02:00
d3agle a9986b45e1 method declaration 2015-05-23 05:50:06 -05:00
d3agle 60c38de767 Added window titles to log & revert code format 2015-05-23 05:32:18 -05:00
d3agle c234eb94d4 Format fixes
fixed formatting in both code, and in display of html logs

added extra line-break after log header
2015-05-23 05:09:00 -05:00
MaxXor add1247037 Fixed XSS vulnerability in Keylogger HTML Logs 2015-05-23 10:41:17 +02:00
MaxXor a27293a0eb Merge pull request #172 from yankejustin/Keylogger
Keylogger Changes
2015-05-23 09:48:43 +02:00
yankejustin dd85289fc5 Documentation for the Logger
Added a small amount of documentation for the Logger's constructor.
2015-05-23 00:50:25 -04:00
yankejustin 33435e4fab Immensely reduced log sizes
By using a style class to denote text that should be highlighted, we can
change the color in one spot of we desired instead of having to change
it in many spots. Also, the file size is much smaller because of the
significantly-lower amount of text necessary to save.
2015-05-23 00:05:17 -04:00
yankejustin 9748ed381d Refractored the OnKeyDown event 2015-05-22 23:47:50 -04:00
yankejustin c6e29f6405 Modified implementation of Dispose
The finalizer really should only be a safe-guard for ensuring that the
keylogger unsubscribes from the hook.
2015-05-22 23:24:28 -04:00
MaxXor 9d293a7574 Merge branch 'master' into dev 2015-05-22 22:47:12 +02:00
MaxXor 6a6b253c0e Added extension methods 2015-05-22 22:12:30 +02:00
d3agle df27608f7b Revert method name change
added some more comments
2015-05-22 09:15:33 -05:00
d3agle da63edc4c5 Initial key handling logic 2015-05-22 00:53:09 -05:00
MaxXor a18e799f9a Merge pull request #162 from MaxXor/pr/161
Code Improvements
2015-05-21 20:55:15 +02:00
MaxXor 92eb35647b Removed unused method 2015-05-21 20:54:32 +02:00
MaxXor 4fe601a87b Small changes to code 2015-05-21 20:35:57 +02:00
yankejustin 792a9fc83f Don't dispose bmpRes
It is not GetDiffDesktop's responsibility to dispose of bmpRes. Just
call UnlockBits, then return the Bitmap.
2015-05-21 12:29:15 -04:00
yankejustin de3db663e9 Significant memory leak reduction
Remote Desktop now leaks significantly less memory on the Client.
GetDiffDesktop was unlocking bits only if an exception was thrown!
2015-05-21 12:27:43 -04:00
yankejustin d100c47091 More meaningful exception for Client Helper
More meaningful exception is thrown for the Client's Helper class'
GetDiffDesktop method.
2015-05-21 12:16:18 -04:00
yankejustin 8b20dee5e1 More meaningful exceptions
FileSplit provides more meaningful exceptions.
2015-05-21 12:12:02 -04:00
MaxXor 951936e876 Improved mouse input for multiple monitors 2015-05-21 18:00:21 +02:00
MaxXor 28f3fe1a58 Merge pull request #158 from yankejustin/Keylogger
Keylogger update
2015-05-21 17:43:03 +02:00
d3agle 3ed53465bf Changes to keylogger
Made a few changes, added some comments for some considerations
2015-05-21 09:34:06 -05:00
UbbeLoL 6f316655dd Add support for mouse input for multiple monitors 2015-05-21 10:32:24 +02:00
yankejustin ae4b1f44de Implemented gmamaladze's logic
Implemented gmamaladze's logic into the Keylogger. Still needs work on
the way it outputs. See additional notes in
https://github.com/MaxXor/xRAT/issues/149
2015-05-20 11:50:47 -04:00
yankejustin d022e55cc7 Slight performance boost
Break out of the loop when a subtype's derived type is found to match.
2015-05-20 09:52:26 -04:00
MaxXor 2d025eea09 Merge branch 'master' into dev 2015-05-20 09:24:22 +02:00
yankejustin ce61f3dcfe Possible fix
Should fix https://github.com/MaxXor/xRAT/issues/153
2015-05-19 20:43:42 -04:00
yankejustin 07751c833a Transition stage
Modified a few things... Saving current spot to for major content
additions.
2015-05-19 19:19:45 -04:00
yankejustin 5d36ff44ac Added hook id type 2015-05-19 17:32:55 -04:00
yankejustin 46aec1e684 Added a "None" key 2015-05-19 17:06:00 -04:00
MaxXor c64775b45a Merged changes 2015-05-19 22:07:02 +02:00
d3agle 12ed28267d Keylogger hook implementation - barebones 2015-05-19 03:19:09 -05:00
MaxXor bfc4333dbb Small RemoteShell fix 2015-05-19 08:26:58 +02:00
yankejustin 983068e0ec Fixed redundant type specification
Fixed redundant type specification for the rest of the packets.
2015-05-18 21:53:25 -04:00
yankejustin 6c12e0b7ec Respect the packet's type
One of the overloaded Send methods for the client and the server now
accepts the generic parameter.
2015-05-18 20:43:15 -04:00
MaxXor ae93f37ded Improved setting of WorkingDirectory in RemoteShell 2015-05-18 22:09:16 +02:00
MaxXor dc0592aad5 Small fix #2 2015-05-18 22:03:53 +02:00
MaxXor 2394409f7b Small fix 2015-05-18 21:57:35 +02:00
MaxXor 98ffd687f9 Implemented IDisposable in RemoteShell 2015-05-18 21:45:14 +02:00
MaxXor 8866103318 Reformatted UnsafeStreamCodec 2015-05-18 18:07:22 +02:00
yankejustin af591e1d3a Formatted code of UnsafeStreamCodec
Formatted the code for UnsafeStreamCodec for readability and consistency
with the rest of the code in the program.
2015-05-18 00:37:12 -04:00
yankejustin d1e04a98a8 Removed clearing of local lists + setting to null
Setting objects to null would be optimized out. Clearing lists probably
would not be optimized out. There is no need to explicitly clear a list
of items or setting objects to null in C#. We must let the Garbage
Collector have its way.
2015-05-17 23:58:08 -04:00
yankejustin 95a271554b Removed unnecessary comment
Removed commented-out (archived) code.
2015-05-17 23:54:40 -04:00
yankejustin ab19a9fbef Make the lock readonly
Made the lock for the codec readonly. This makes it impossible for a
spot (excluding constructors) from touching the lock. Tampering with the
lock means that, if something acquires the lock and enters critical
code, the lock can be changed and the critical code's thread safety can
be violated.
2015-05-17 23:24:13 -04:00
d3agle 69c95769a6 initial keylogger hook 2015-05-16 23:07:17 -05:00
MaxXor 4fcdf3b4d4 Merge pull request #141 from AnguisCaptor/master
Reverse Proxy Updates & Load Balancer
2015-05-16 21:22:09 +02:00
DragonHunter 42d7382fff Reverse Proxy Updates & Load Balancer
Added a Load Balancer, this will try balancing all the proxy connections
over multiple clients (keep refreshing ipchicken.com to see the cool
effect)
Resolve the DNS Hostname of the Target server at the Remote Client to
reduce DNS Leaks
2015-05-16 20:39:35 +02:00
yankejustin 4bda01a98c Separated the CommandHandler
Divided the client's CommandHandler class into partial classes.
2015-05-15 21:42:05 -04:00
MaxXor ce72b4edc9 Revert "CPU/RAM usage of each process" 2015-05-15 18:58:50 +02:00
MaxXor a5f35130f6 Merge pull request #136 from yankejustin/CpuRamUsage
CPU/RAM usage of each process
2015-05-15 18:28:03 +02:00
yankejustin 14cde8209a Add logic to get the CPU and memory from client
The client now has the logic that obtains the memory and cpu usage from
the client.
2015-05-15 10:10:37 -04:00
MaxXor b7a8efc1ba Small change 2015-05-15 09:37:37 +02:00
DragonzMaster 8a8602f342 Adding Arabic to supported language 2015-05-15 00:07:41 +02:00
yankejustin 3b04809c98 Changed properties for client packet
Added two properties for the client packet that provides the get
processes response.
2015-05-14 14:07:32 -04:00
MaxXor 03c40feed9 Fixed Remote Shell crash
Fixed crash when closing Remote Shell window without executing a command
2015-05-14 14:04:05 +02:00
MaxXor 4b4c7d6441 Minor fixes 2015-05-14 11:06:17 +02:00
MaxXor 253bc70e84 Improved more extension methods 2015-05-12 23:56:01 +02:00
yankejustin 80b7f0f7d3 Final big commit
Many more changes.
Still has things to work out but there is much more to work with and
many more possibilities.
2015-05-11 21:25:32 -04:00
yankejustin 1e40e81ebc One more commit is needed
Forgot to add changes to this file!
2015-05-11 01:11:28 -04:00
yankejustin f126001a4f Changes, fixes, and additions
Now we can see this thing in action!
Needs one more commit to handle the special keys again and to detect
when a toggle key is toggled. I can't remember how to represent 0x80 as
a byte! :(
2015-05-11 01:10:27 -04:00
MaxXor c6afc0c24e Merge pull request #116 from MaxXor/pr/113
Added Socks5 Reverse Proxy
closes #103
2015-05-10 19:03:09 +02:00
MaxXor a2a5f59c67 Improved Reverse Proxy 2015-05-10 19:02:10 +02:00
MaxXor 11032266c9 Improved NoIP.org Integration 2015-05-10 18:11:22 +02:00
DragonHunter ce7c75c56c More error checks & more reliable
Proxy is now more reliable and works a lot better
More error checks
2015-05-10 15:34:49 +02:00
DragonHunter ee74b6112d Initial release of the Reverse Proxy
Supports HTTPS
Supports Socks5
Tested both HTTPS and Socks5 with Proxifier
2015-05-10 13:11:27 +02:00
yankejustin 6e07cb0805 Emptying Key Buffer is no longer dangerous
If the timerEmptyKeyBuffer elapsed at a bad time or state, or if it was
unable to 1) Append data to _logFileBuffer or 2) Was unable to
successfully remove the entry from _keyBuffer
2015-05-09 23:53:30 -04:00
yankejustin 78007b7b14 Implemented logic to log a key
Implemented the new way of adding a key to log when the timerLogKeys
elapses.
2015-05-09 23:50:01 -04:00
d3agle b7f617f704 Attributes
added special key attributes
2015-05-09 12:03:33 -05:00
d3agle 31678d5175 Added attributes
Very nice work.  This looks very nice.
2015-05-09 03:26:47 -05:00
yankejustin 0ec142183e Fixed a conditional and renamed a method
Fixed null check for the stored key loop in the key buffer and renamed a
method so it is more clear.
2015-05-09 00:04:16 -04:00
yankejustin 9993a4b21c Last of the big changes to the Keylogger
Added the second and likely last of the big changes and additions to the
Keylogger. The core design of it is much more clear than the initial
changes commit. Though not yet functional (last of it has to be
implemented, as seen by the small commented-out portions), it is nearing
completion. With this new design, it is significantly more scalable.
With these changes also comes another huge factor: modifications. This
new system allows easy feature additions and modifications, such as
filtering out specific keys to log dynamically in a natural manner.
2015-05-08 23:48:48 -04:00
yankejustin dbc3cbe7a2 Fixed AttributeTarget
AttributeTarget can now correctly apply to Keylogger Keys.
2015-05-08 20:42:03 -04:00
yankejustin 030805dba8 Documentation for properties of Keylogger Keys
Added documentation for the two properties of the Keylogger.
2015-05-08 16:51:14 -04:00
yankejustin 0ab83c4917 Initial big changes to Keylogger
Big changes to the Keylogger. Still needs lots of changes but my intent
should be visible by these changes. This is now very flexible, easy to
change and add keys, etc.
2015-05-08 14:08:39 -04:00
Justin Yanke b59cee6025 Fixed highlighting keys that are not special 2015-05-07 09:15:12 -04:00
Justin Yanke 3da57543f7 Added Escape Key to Keylogger
Should resolve https://github.com/MaxXor/xRAT/issues/95
2015-05-07 08:29:17 -04:00
Justin Yanke 5b3e654a4a Fix incorrect logging of special key combinations
Should fix https://github.com/MaxXor/xRAT/issues/98
2015-05-07 08:20:54 -04:00
d3agle cc531e8066 null check fix
fixed keylogger null reference
2015-05-07 04:15:56 -05:00
d3agle a663994caa null check fix
fixed keylogger.

for some reason there was nulled KeyData in the buffer
2015-05-07 02:00:10 -05:00
MaxXor fc49cd7e67 Fixed emptying key buffer 2015-05-06 09:51:32 +02:00
MaxXor bf3725df3c Improved Keylogger 2015-05-06 09:39:32 +02:00
yankejustin 93a34dde9e Slight changes to the Logger
Added a small amount of documentation for the Logger's constructor, and
set the interval to flush the contents of the file to a lower amount (30
seconds was far too slow).
2015-05-05 21:58:29 -04:00
yankejustin 90ee1a50cf Fixed some incorrect documentation in Keylogger
Fixed some incorrect documentation in the Keylogger.
2015-05-05 21:05:46 -04:00
yankejustin 5756b05044 Fixed incorrect log by the Keylogger
Added 'else' clauses instead of only 'if' statements.
Decisions would be evaluated, but they would go under eachother. This
means that pressing ctrl+shift+alt+a would write something like:
'[SHIFT-CTRL-ALT-A]A' instead of '[SHIFT-CTRL-ALT-A]' .
2015-05-05 21:04:42 -04:00
yankejustin ac33a51158 Fixed two typos
Fixed two typos in the Keylogger.
2015-05-05 20:45:36 -04:00
MaxXor e07eeeb511 Reworked Keylogger
Fixed #79
Fixed #80
2015-05-05 22:40:39 +02:00
d3agle 4d5fb29c17 Keylogger cleanup
Moved GetActiveWindowTitle so it's not called every 10ms
2015-05-05 03:01:14 -05:00
MaxXor 2b6ca6eda8 Removed unused variable 2015-05-05 09:56:19 +02:00
MaxXor bcadad27ab Merge pull request #77 from d3agle/master
Keylogger cleanup
2015-05-05 09:54:33 +02:00
d3agle 725a841db1 Keylogger cleanup
removed f1-f11 keys since they are not handled
moved calling the keyboard layout to FromKeys method when a key is
handled so its not being called every 10ms
2015-05-05 02:52:07 -05:00
MaxXor e50ea69d43 Fixed crash when downloading files over 2MB (#75) 2015-05-05 09:19:08 +02:00
yankejustin 9db12cd8d7 Fixed client crash on invalid start process command
Fixes two issues of the client when trying to start an invalid process.
1) Client will no longer try to use a null or empty string for the new
Process' FileName.
2) If, for any reason, the process can not start correctly, it will no
longer cause the Client to crash.
2015-05-04 20:45:29 -04:00
MaxXor f9deafbf9d Removed redundant Stringbuilder 2015-05-04 20:05:26 +02:00
MaxXor 7d650d76dd Merge pull request #74 from yankejustin/master
Improvements to new Keylogger
2015-05-04 19:57:40 +02:00
yankejustin 1ba6c60a7f Faster check on key buffer for the Keylogger
Improved a decision; checks if the length is greater than 0 before
writing instead of converting the StringBuilder to a string then
checking the string.
2015-05-04 13:54:18 -04:00