cmu-sei / GHOSTS

GHOSTS is a realistic user simulation framework for cyber simulation, training, and exercise
Other
428 stars 63 forks source link

Client for Windows XP/Server 2k3 #25

Closed jonebeabout closed 4 years ago

jonebeabout commented 4 years ago

Hi! I'm trying to use GHOSTS for a range that is mostly a Windows XP SP3/Server 2k3 environment. I've considered two approaches:

1) Writing a GHOSTS client from scratch based on the API, or 2) Downgrading the current client code and rebuilding for .NET Runtime 4.0.3

I guess I was wondering if you had any thoughts on either approach (i.e. are they feasible, would one be more difficult over the other, etc.). I think any documentation you could share on the API would be helpful for approach 1 and if you had a list of dependencies that I would have to rewrite in Runtime 4.0.3. for approach 2 would be very helpful. Thanks in advance!

sei-dupdyke commented 4 years ago

For your use case, it sounds like we're only interested in the client, so I fired up that solution (ghosts.windows.sln) and downgraded the client project to 4.0. The only failure I have is the dependency on the Ghosts.Domain project, which is library shared with the server project (which is dotnetcore). Domain is a dotnetstandard library, which isn't supported prior to dotnet 4.5/4.6 (depending on using standard 1.x/2.x).

So I believe all you would have to do is convert that Domain library to a proper dotnet project in order to compile a working version for XP/2k3. You could certainly fork this project and go that route. I'll support anyway I can (I'd likely just do it, but I have other pressing items right now).

Thanks for checking out the project!

jonebeabout commented 4 years ago

Thanks for your help! That sounds completely do-able. I'll let you know how it works out.

jonebeabout commented 4 years ago

Finally getting around to working on this... I realized that I have no idea how to downgrade the project to 4.0. I'm sure I can fix the code and rebuild once its downgraded, just need help getting started. Thanks!

sei-dupdyke commented 4 years ago

If you are using Visual Studio, right click on project, Properties --> Application --> Target framework. The target framework dropdown displays a list of frameworks installed on your machine. It should look something like this.

Or, in the ghosts.client.csproj file look for this line:

<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>

That is the .net framework version for the project.