Tuesday, November 26, 2024

Importing Remnux and SIFT OVA's into Proxmox (New Way to Do It)

I've used Proxmox (PVE) for quite a few years now for my "home lab" virtual machines as well as various self-hosted servers. For home lab activities, it's nice running a virtual machine on a server instead of having to run it on my laptop using Virtualbox, HyperV or VMWare Workstation.

My experience with PVE has been extemely good from the very beginning. One thing I always wished for though was the ability to directly import OVF or OVA files directly. With the new 8.3 release, Proxmox can finally do that! I decided to try out the new feature by importing Remnux and the SIFT workstation OVA files. I won't go into how to enable the import feature in this post but I can follow up with a separate one if anyone needs help.

I actually set up the import feature a couple of different ways to try it out. First, I added it to the local storage; the same place that ISO files and container templates are stored. I also created a new SMB storage and added the import feature to that. In that case, I created a new directory on a Debian file server I have (also a VM on the same Proxmox server) and shared it so that the files could be accessed there. I then uploaded my OVA files to the two new storage areas and tried them out individually. It seemed like everything was going to work but there was a problem importing the Remnux OVA. Upon trying to import I got this message:

I opened the Remnux OVA file and discovered that the vmdk disk file in it is further compressed in a gzip file and Proxmox couldn't work with that. I manually changed the OVA by removing the vmdk and placing it in the OVA uncompressed (and removed the gz file). This also required making changes to the other files in the OVA that pointed to the gz file. I tried again but got a different error. So then I decided to do it a different way.

I imported the Remnux OVA into Virtualbox and then exported it again from there into a new OVA. I then uploaded the new OVA to the server and imported it. I had downloaded the "general OVA" of Remnux as I thought that might be the best option since I wasn't using Virtualbox. However, the "Virtualbox OVA" I downloaded later does not have the vmdk in a gzip file as the general one does.

Once that was all sorted out I started the import process. 

The first photo shows where I selected the Remnux OVA from the two available files. In this case, they were both stored on my "remote" storage in the Debian file server and had to be imported across the network from there.

This second photo shows where I set the parameters such as VM ID number and virtual machine name. I assign the ID numbers based on which PVE server they are on. I have 4 different servers (I may have a problem), though two are generally not turned on and only used occasionally. In this case, the ID is 212 which signifies it is VM number 12 on PVE server 2. Other than assigning the ID and name I left everything else at the defaults.

After a few minutes the OVA had fully imported across the network and was ready to run. But something still wasn't quite right.

The machine started up but wasn't showing any display when I viewed it in the PVE terminal window. I decided to experiment with the different available display settings in the hardware section of PVE and found that the display just wasn't going to work with the default graphics adapter. I shut down the VM and changed the display adapter setting from the default to "vmware compatible." I started the machine again and everything worked like it should.

 
 
Once it got to the desktop, I enabled the network adapter and started the update/upgrade process. If you're not aware of how to manually enable the network adapter, here's how I did it:
  1. From the command prompt, type "networkctl" and find out the name of the adapter. In my case, it was named "ens18".
  2. Next, I typed "sudo ifconfig ens18 up" to enable the adapter.
  3. Last, I typed "sudo dhclient" to get the adapter to reach out for a dhcp assigned IP address.

That got the network going and I completed the updates.

Next it was time to try importing the SIFT Workstation. I used SIFT a great deal when I was more active in the digital forensics world and it's still a great resource. Anyway, I completed the same import and naming procedure as described above and started the import. It took a little longer than the Remnux import because the SIFT ova is about 1 gigabyte larger.

There isn't much to say about this one. The import just worked and I had no problems with it at all. I did find it was helpful to increase the amount of video memory in the VM hardware settings.

You may wonder how I might get files for analysis to the VM. I use mostly Linux computers in my house and my laptop is no different. If I have a file on it I want to analyze in Remnux or SIFT, I generally just use "scp" to put it there across the network. I then disable the Remnux networking again if necessary.

So, that's about it for now. If you have any questions, please leave a comment!

 


Tuesday, July 25, 2023

WinFE Course Review

Yesterday, I completed the WinFE course I mentioned in my last post. I wanted to do a review of the course because I found a lot of value in it.

First, what is the Windows Forensic Environment (WinFE)? In short, it is a slightly modified portable Windows distribution with software based write-blocking capability for the acquisition of digital media.It is based on the Windows Pre-Installation Environment and was initially created by Troy Larson at Microsoft. It can be made by anyone free of charge for personal use. It is not a commercial product and there is no support. You are your own technical support, so it's absolutely necessary to understand what you're working with and how it works (to some degree).

The WinFE course is available on the DFIR.Training site. The course, as well as the site are the product of Brett Shavers, a well known instructor/practitioner/author in the digital forensics field. He is the author of the X-Ways Forensics Practitioner's Guide/2E and several other publications including WinFE: Windows

WinFE Book

Forensic Environment
. Brett has been instrumental in the continued development of Windows FE and has offered training on it in the past.

The course is divided into 18 lessons, followed by a pre-test, test and then a resources section. The lessons start out by covering some basics, such as what WinFE is (and what it isn't), as well as the topic of write-blocking.

Brett talks a lot in the course about when WinFE might be a good choice and when it isn't. I appreciated that he didn't sell this as the "all you need" solution to all your forensic problems. He discusses keeping it simple (my words, not his) as far as what you include in a WinFE build. WinFE is not meant to be a full forensic suite and indeed it is not. While you can add various tools (X-Ways Forensics, FTK Imager, etc) to your build, you need to decide what you really need and what is just extra stuff that doesn't need to be there, such as an office suite, zip file extractor and so on.

Once you get to the point of actually building your own WinFE, two different methods are taught for doing so. One is the "Mini WinFE" built with tools you can obtain from https://github.com/MistyFromReboot/Mini-WinFE . The second method requires a few more steps to get started, but it isn't terribly difficult to get ready. In fact, both methods are pretty easy to do. Once you have the initial steps done, you can build your own WinFE from either method in just a short time.

Brett also covers topics like dealing with Bitlocker, troubleshooting and hashing. He provides casework  examples as well. One of my favorite parts of the class however is the lesson on testing and validation. The need to test and validate WinFE (and all your software tools) is explained and I was very happy about that. It's easy to make a WinFE boot disk and use it to acquire a drive, but do you know that everything worked right? Do you know if any changes were accidentally introduced to the subject media? I'm so glad this topic was covered because it's just so easy to skip testing and assume all is well.

Something else I really appreciated was the lesson on report writing and testifying. I enjoy writing reports (I'm weird like that) because it present the opportunity to tell a story. I've testified in court related to forensic cases I've worked as well. With both of those things, I'm always happy to hear tips on doing them better, even though I'm not in a position where I'm likely to be testifying in court these days.

Possibly the best part of the course is that you actually have to show your work. You can't just blow through the videos, take a little test and get a certificate. You actually have to build both versions of WinFE to get past the pre-test before you can take the final.

The pre-test consists of answering a few questions followed by providing photographic evidence that you did the WinFE builds (photo of screen booted to each version). You also have to submit a PDF of your validation documentation for either one of the two versions you made. I love that these things were required before the student is allowed to take the final test. I think it lends a lot of credibility to the course certificate you earn when you can say that you actually did something other than watch a few videos to get it. Kudos to Brett for making this part of the course.

After completing the pre-test requirements, you are eligible to take the final test. The 17 question final covered various aspects of the training material. A score of 90% is required to pass. I passed and received my certificate. My next goal is to take the WinFE Instructor training course.

As you can tell, I was very pleased with this class. The instruction from Brett was top-notch. He provided the information based on his own developing and usage experience. He does an outstanding job covering each topic. I didn't come away from any of the lessons feeling like he left anything out. If you have the interest, I highly encourage you to take this course.

Saturday, July 22, 2023

Learning and Research Ideas

 What's this? Two, yes two posts. Not just in the same year, but even in the same month! What has gotten into me?

More Training

Yesterday, I completed a course I started a long while back but never finished. I signed up for the Autopsy 8 hour course from BasisTech (https://dfir-training.basistech.com/) and got around halfway through it but, as often happens with me I got distracted and went off in another direction (squirrel!!!). Since it had been a long time since I started it, I decided to start over from the beginning. I enjoyed the course, which was taught by no less than Brian Carrier himself. Psst, hey Brian...in the extremely unlikely event you're reading this, I'd love to see some more online training from you.

Anyway, the course covers general setup and then goes through the various included ingest modules and views you can use to analyze the data. It also covers the various ways of producing reports. If you're interested in Autopsy but haven't used it, I encourage you to check out this course.

Also this week, I started the Windows Forensic Environment (WinFE) training taught by Brett Shavers at DFIR.Training. I'm only a little ways into this course, but I'm enjoying it so far. One thing that I really like is how much Brett goes into great detail on each thing. He explains very well why and when to use WinFE as well as when you should not use it. I've just gotten to the part of the course where the student is shown how to create a version of WinFE called Mini WinFE. It's my goal after completing this training to then go through the WinFE Instructor training as well.

Thinking about Research

Something I've wanted to do for a long time is find a good research project to work on. There are so many fun things to learn and do in digital forensics and I know there is much still to learn. I've been trying to come up with an idea, but I'm still not sure what I want to work on.

 That's all I've got for now. Be well and I'll (hopefully) be back soon with a new post.

Sunday, July 2, 2023

Forensics/Malware Courses and Tools

I've been working hard on forensic and malware related courses lately and having a lot of fun with it. I had almost forgotten how cool it was working on and learning this material. I thought I'd give a little update on my activities, so here it is. Take your No-Doz, this may be the longest post I've ever done.

Forensic and Malware Courses

In my last post, I mentioned that I was working on the Practical Malware Analysis and Triage (PMAT) class over at the TCM Academy. I finished the course recently and found it was a very worthwhile course to take.

PMAT was a lot of fun for me. I've always enjoyed looking at malware, but I had never taken a course or really tried to get past the absolute basics. This course was a well designed and taught introduction to malware analysis. The course author/instructor is Matt Kiely The course covered the important topics of setting up your lab and covering how to use it safely. Multiple malware samples were made available for analysis including wannacry ransomware. The course started off with basic dynamic and static analysis and then moved into advanced versions. Also covered were binary patching, maldocs, shell code mobile device malware.

The course involved the use of both Windows and Linux investigation tools. The lab was setup so that you ran both the Windows FlareVM and the Remnux Linux VM for different tasks. Occasionally you needed to run both at the same time, such as using Inetsim on Remnux for the malware sample running on FlareVM to connect to, so you need a computer with high enough specs to run both at the same time.

If you're interested in learning more about malware analysis, I strongly encourage you to check out this course. 

Now that I'm done with PMAT, I'm working on another course, also at TCM This class is called Practical Windows Forensics (PWF). The course author/instructor is Markus Schober. I'm over halfway through it and enjoying it very much. In my case, it's serving as both a refresher on things I "used to know" and teaching me things I never knew as well.

One of the things I've really enjoyed working with in the class is using the Eric Zimmerman tools. I had never used any of them before and I see now why everyone talks about them so much.

In PWF to this point, I've really liked learning again about NTFS artifacts. I had never really known much about the USN journal and it's forensic value, so finding out how to access this information has been great.

I'll follow up when I've completed the class. I intend to go back over some topics again before truly being done with it.

I bought another malware related course this morning on a LinkedIn contacts recommendation. I purchased Reverse Engineering and Malware Analysis Fundamentals on Udemy. The course author is Paul Chin. I'm not going to start it until I've finished the other courses I'm taking.

I'm kind of "on-hold" with the GRC class I mentioned last time. I've gotten so excited about forensic and malware training that I just put that one aside for the time being. It's a great class and I'll get back to it, but I've just got too many other things grabbing my attention right now.

  Tools

Jobparer.py

Some years ago, Jamie Levy wrote jobparser.py for parsing Windows .job files. The script was written for Python 2.x. Recently I have been working on a short course on Cyber5W Academy called Investigating Windows Scheduled Tasks and it called for the use of Jamie's script in one part. I, like many only have Python 3 installed on my Linux laptop, so this morning I converted the script to work in Python 3. The conversion was partially done with a conversion tool and I manually fixed what it wasn't able to. I sent it to Jamie and she said she would add it to the Github page.

(edited to clarify that I used an online Python at https://python2to3.com/ conversion tool to help me convert the script. It missed quite a few things, so I manually fixed the rest. No, it wasn't chatgpt or anything like that 🤣)

Qu1ckSc0pe

I wanted to talk about a couple investigation tools I only recently learned about. The first one is called Qu1ckSc0pe and you can find it HERE. According to the Github page, Qu1ckSc0pe is and "All-in-One malware analysis tool for analyze Windows, Linux, OSX binaries, Document files, APK files and Archive files". To this point, I've only tried Qu1cksc0pe with Windows executables, but as you can see it's capable of far more.

Qu1ckSc0pe iterates through the file being examined and pulls out a great deal of information. It pulls strings and does Yara rule matching, highlights "interesting" imports and other patterns, pulls out the time/date stamp and file hashes and much more. If you provide your VirusTotal API key, it can also check for VirusTotal detections and report on those.

This is an excellent tool I can see myself using a lot. Go check it out!

Events-Ripper

Events-Ripper...sound at all familiar? It should. If you've ever used the great RegRipper, then you might guess Events-Ripper comes from the same place and you'd be right. Both are the creations of Harlan Carvey and Events-Ripper is operated in much the same way as RegRipper, except it's goal is to parse evtx files for you. Specifically (according to the Github page),

"the current plugins extract value from the following Windows Event Logs:Security.evtx System.evtx Application.evtx Microsoft-Windows-Windows Defender%4Operational.evtx Microsoft-Windows-TerminalServices-LocalSessionManager%4Operational.evtx"

Using Events-Ripper for the first time on an investigation requires you to create an "events" text file by running a batch file. The batch file relies on logparser and evtxparse. This might be done like this:

wevtx.bat c:\case\*.evtx c:\case\events.txt

Once the events.txt file (or whatever you want to call it) is done, you run the main program along with the appropriate plugin to get the data you're looking for. The syntax is like this:

erip -f c:\cases\events.txt -p <plugin-name>

or

 erip -f c:\cases\events.txt -a

to run all the plugins once

Also, using -r will allow you to run a profile instead of just a single plugin. The tool works quickly, printing the output to the terminal you're working in or you can redirect the output to a text file.

One thing that I love about this is how Harlan included investigative tips or hints in the output of many plugins. This helps you know how the data might be useful to you or indicative of certain things.

So, this post has gone on far longer than I expected, so I'll end it here. I'll be posting again soon.

Sunday, May 21, 2023

Accomplishments and Goals

Hello everyone! I'm back for yet another drive-by blog post. I've had a lot going on since my last post in December and I thought I'd catch you up a little.

First and foremost, I graduated! It happened 35 years later than I'd originally intended to, but I finally made it. I graduated with honors from Lincoln Trail College (also my awesome employer) last week. It wasn't something I needed to do, but it's a goal I always regretted not accomplishing until now. So now what?

Despite being done with school, I'm not giving up education. I've already set some new learning goals and I'm working on them as I have time.

I recently started a malware analysis course. I'm nearly halfway through the Practical Malware Analysis & Triage course at the TCM Security Academy The course is authored by Matt Kiely. I've always had an interest in malware analysis, but this is the first course I've ever taken on it. I'm really enjoying it and learning a lot.

I also signed up for The Definitive GRC Analyst Master Class by Dr Gerald Auger. The class is very good so far. I've had very little exposure to GRC (Governance, Risk and Compliance) topics before and Dr Auger explains each of the topics very well. I'm still working my way through this class.

There are a couple other courses I picked up but I haven't decided yet which I'm going to start once I'm done with the two above. I feel like it's good to always keep learning, so I'm sure I'll keep on with courses that interest me as long as I have the time and energy to do them.

I continue to dabble in Python from time to time. I've written a couple little scripts to help with things I do at work, but they're nothing groundbreaking. Just little things to help me get my work done more easily.

I still have the goal of writing on this blog more, but it seems like so many other things take precedence. I've always enjoyed writing, so maybe I'll eventually get back to it on a more regular basis. Hopefully it won't be another 5 months until my next post, but who knows?

That's pretty much it for now. At the moment, I'm spending most of my time preparing for my granddaughter's wedding which will take place in my front yard next weekend. Until next time, I hope you all are well and living your best life.


Monday, December 19, 2022

A Little Homelab and Life Update

I'm going to start writing more on my blog. No! Really! You do believe me, right? Ok, can't blame you if you don't. I come back to this from time to time and think this time I'm really going to dive into it, only to get sidetracked in some other direction. I promise I have a good excuse this time.

Since I last posted, I have gone back to school on a part-time basis while continuing to work full-time. I decided it was high time to finally get that Associate's Degree I started on decades ago. My days have consisted of going to work in the morning and going home in the evening to do homework. I just completed the Fall semester which included a Technical Mathematics class and a Speech class. I enjoyed both classes quite a bit, but I must say I'm glad for some down time of an evening for a while. We're on Winter break now and I'll only have one class left to take in the Spring semester which will allow me to finally graduate in May.

I haven't completely ignored my home-lab efforts during this time, however. I've re-done most of what I talked about in my last post, lo those many months ago. Now there is no domain controller, though it may return someday when I have more time to really learn it. It was an interesting exercise and not hard to get setup initially, but I found I really needed focus on other things first.

I finally added a home built pfSense firewall/router as the gateway for my network. It is connected to my ISP fiber modem and then everything else goes from there. I've been learning about vlan's and have setup a couple in pfSense and my old MikroTik RB260GS switch.

I've been learning about Cisco as well and am fortunate to have a couple old Cisco switches a friend gave me. I can hook them up when I need to, though they're both a little too noisy and power hungry to use all the time on my little home network. Those fans really get to going at times, so I only power them up if I plan to spend some time in Cisco training.

I still have my Proxmox virtual machine server running and I've been trying out several different things using VM's on it. Most recently I set up a NextCloud server, a Guacamole server and a Cloudflare Argo tunnel so I can reach the NextCloud and Guacamole from anywhere. Finally, the VM I was using as a file server was getting a little unstable for some reason, so I created a new one to replace it and then removed the old one after migrating all the stored files off it.

I'm off for a couple weeks now since the college is closed for break, so I'm sure I'll work on some more of this stuff soon. I'll try to do a more timely job of posting about it, but I make no promises I can't keep.

Monday, May 30, 2022

Setting up My Learning Environment

First, welcome to my renamed blog. I couldn't think of a good name for the blog years ago when I first started so I just settled for the most boring name I could think of, "Digital Forensics Blog". Granted, that was the main focus but it was just boring. A while back, I tweeted that I was looking for a better name. Phill Moore suggested Pryor Knowledge which I liked, but I decided to change it to No Pryor Knowledge. As I said in my last post, the focus will be a little wider here now but I'll still talk about forensics sometimes while other topics will also be featured as well. So, on with the post.

Not sure if this is a good thing or a bad thing, but I have many different interests when it comes to tech. My first love was just learning anything I could about repairing computers. Later I deeply fell for digital forensics and was fortunate to have the opportunity to learn from people like Mark McKinnon, Luby Novitovic, Harlan Carvey, Rob Lee, Jimmie Weg, Ali Hadi and so many others. Forensics held my full attention for a good while and is still a great interest. I still do forensic CTF's from time to time and always enjoy learning from them.

Later, I got really interested in security and blue team ops. I've watched countless security related videos and worked through online training environments like TryHackMe and Rangeforce. These things too are still of great interest to me.

I eventually worked my around full circle to my my enjoyment of just doing builds and repairs with the addition of servers and networking. I recently got a job that allows me to work in those areas every day and I'm loving it.

While I'm not over the servers or network, I am frequently involved in work related to those things. I wanted to learn more about networking, servers, Active Directory and Group Policy. I've watched videos, but I learn a lot more from watching the videos, reading books or blog posts and then doing hands on. This led me to set up a new learning environment at home.

I set up a Proxmox Virtual Environment (PVE) server on an old computer and connected it to my home network. I then set up a Proxmox Backup Server (PBS) on a separate computer. I wanted a separate device maintaining all the backups I knew I'd be making of my virtual machines.

Once that was all in place, it was time to set up my own local domain. I certainly didn't "need" a domain for my home network but it's nice having it as a learning environment that I can restore from backup anytime I mess it up.

 I decided to build a domain controller with the Zentyal Linux distribution. Zentyal allows you to set up a controller compatible with Microsoft Windows Active Directory and that allows you to administer your Active Directory environment using Windows tools in Windows instead of having to use Linux. I thought this was my best option because Zentyal is free to use (there are paid subscription plans as well) and I could still administer it with the tools available from Microsoft.

I decided my domain controller would exist as a virtual machine instead of running yet another computer. I downloaded the Zentyal ISO to Proxmox storage and then created the new machine. I gave it 6 gigabytes of RAM and a 250 gigabyte virtual hard disk. That was more than enough disk space, but I'd really like to have a little more RAM available for it. Still, it works pretty well for my home network. It would need a lot more RAM if it were a production network for a business. I'll go over the setup of my domain in greater detail in a future post.

In addition to the domain controller, I also set up another virtual machine on PVE to use as a file server. This VM is an Ubuntu Linux Server and I use it for simple file storage as well as using it for a DNS server for my network with Pi-Hole. I have a second install of Pi-Hole running on a Raspberry Pi and duplicate my settings between the two. I have both of them set up as DNS forwarders in my domain controller and they take care of that mission plus blocking ads too.

I still have very much to learn. I've just barely scratched the surface of working with AD and Group Policy. It's fun learning new stuff and getting a better understanding of what our admins are doing at work. My future plans include adding a pfSense or OPNSense router/firewall to my network to learn more about networking and vlans's.

I'll end this here for now. I have a lot of ideas for future posts and will hopefully be back with another one soon.