Skip to main content

DFIR | [Fix] Cuckoo Error : Error starting virtual machine | VBoxManager error

If you are reading this, you might probably encountered the following error while performing the sample analysis in Cuckoo,  Error starting Virtual Machine / VBoxManage error.  This error happens when there is some communication issue between the guest and host or with the VM snapshot. The network configuration of the guest VM should be set as "Host only network" and verify the connectivity between the host and Guest by pinging each other. If that is fine, then check the guest VM snapshot. In my case, i had multiple snapshot and the one Cuckoo was invoking creates the issue. What i did was, i deleted all the existing snapshots and created a clean snapshot, also did a graceful shutdown of the Guest VM (Windows 7 in my case). Also noticed that, while running cuckoo, it try to load the VM snapshot named base2 . Instead of editing any configurations,  i just named the snapshot "base2". Then i put a sample on Cuckoo for analysis. The process completed without any issues.

PentesterAcademy Vulnerable Servers II Lab Write-Up | metasploit-pivoting

PentesterAcademy Vulnerable Servers II Lab Write-Up | metasploit-pivoting

Lab Link : https://attackdefense.pentesteracademy.com/challengedetails?cid=1747

Vulnerable Servers II is a lab from PentesterAcademy, which is rated as easy. The lab topology shows two machines which means, there are two targets and the attacker has to perform pivoting in order to hack and get the flag from the target machine.


First Select the nearest Server and Click on Run the lab.

 

Once the lab is up, a web based terminal will be opened in the Web Browser. Firstly, check the IP address of the attacking machine. 

We can see that, there are two interfaces. And as per the instructions, the first target machine should be 192.17.147.3. Let’s perform an Nmap scan of the target.

The scan result shows that TCP port 8080 is open and is running an Apache Tomcat webserver/Coyote JSP engine 1.1. Let’s try to connect the webserver using netcat.

We can see that the Webserver is running OpenKM, a Document Management System. Let’s perform a google search for Vulnerabilities on OpenKM. The search results show an exploit-db link associated with the OpenKM vulnerability and the CVE-2019-11445.

 

 

On doing further search, I have found out that there is a Metasploit module to exploit vulnerability in OpenKM. Let’s use Metasploit to perform exploitation. However, the simple module search on OpenKM doesn’t return anything. So, I have used the module path directly.

Metasploit Module (exploit/multi/http/openkm_upload_jsp_exec)

 

Let’s set the options.

 

Set the options. The target RHOSTS is 192.17.147.3  and the LHOST is our attacking machine 192.17.147.2. Run the module.

Running the exploit module opens up a remote shell successfully.

Check the IP address configuration of the machine. This reveals our next target. Following the instructions, the IP address of our final target should be 192.147.13.3


Background the session and now we need to perform pivoting to access the final target. In order to perform pivoting using Metasploit, we need to have an active meterpreter shell.

Let’s open a meterpreter shell using our current remote session. For this use the post/multi/manage/shell_to_meterpreter module. 

Run the module and it will give the meterpreter shell. Verify using the show sessions command.

Now let’s add the route. This is the first step while configuring pivoting. Metasploit having a module named as autoroute. Use it to add the route so that we get the access of the target network.


We have added the route successfully. Verify the route using the route command.

Now the target is accessible and let's perform a TCP portscan to identify the open ports in the machine.

To perform a portscan, use the auxiliary/scanner/portscan/tcp module.

Set the target, RHOSTS to 192.147.13.3. and ports 1-1000. Which means we are going performing the scan of first 1000 ports.

The scan results shows that TCP port 21 is open on the target server. We need to dig deep in to the machine and we need to hack in to it. Firstly, configure portforward so that we can access the machine locally from the attacking machine.

Access the meterpreter shell and configure port forwarding. I am assigning local port 5555 to 192.147.13.3:21. This enables us to access the target machine on localhost:5555

Now, perform an Nmap scan to identify the service.

The scan result return that the target server is running ProFTPD version 1.3.3c. Let’s search for any known Metasploit modules on proftpd.

We can see multiple modules related to ProFTP, but for our version 1.3.3c, lets use the exploit/unix /ftp/proftd_133c_backdoor module.

Set the target machine IP as RHOSTS and select he payload cmd/unix/bind_perl. Run the exploit, and we have got the root shell.

The flag is present in the root (/) location. Copy the flag and verify.


The target was successfully hacked and grabbed the flag, therefore the objective of the lab is successfully completed. The lab was extremely good to learn and practice pivoting using Metasploit.


 

Popular posts from this blog

Cisco ASA: Disable SSLv3 and configure TLSv1.2.

For configuring TLS v1.2, the ASA should run software version 9.3(2) or later. In earlier versions of ASA, TLS 1.2 is not supported.If you are running the old version, it's time to upgrade. But before that i will show you the config prior to the change. I am running ASA version 9.6.1 Now ,set the server-version to tlsv1.2, though ASA supports version tlsv1.1, its always better to configure the connection to more secure. Server here in the sense, the ASA will be act as the server and the client will connect to the ASA.     #ssl server-version tlsv1.2 set the client-version to tlsv1.2, if required.     #ssl client-version tlsv1.2 ssl cipher command in ASA offers 5 predefined security levels and an additional custom level.     #ssl cipher tlsv1.2 high we can see the setting of each cipher levels using #show ssl cipher command. Now set the DH group to 24, which is the strongest offered as of now in the ASA.     #ssl dh-group group24 An

RUST error: linker `link.exe` not found

While compiling Rust program in a windows environment, you may encounter the error : linker `link.exe` not found. This is because of the absence of the C++ build tools in your machine. For compiling Rust programs successfully, one of the prerequisites is the installation of the Build Tools for Visual Studio 2019.   Download the Visual Studio 2019 Build tools from the Microsoft website. After the download, while installing the Build tools, make sure that you install the required components (highlighted in Yellow) This will download around 1.2GB of required files. Once everything is successfully installed, reboot and re-run your rust program and it will compile successfully.   Read More on RUST Hello World Rust Program : Code explained RUST Cargo Package Manager Explained Data Representation in Rust.

How to Install Netmiko on Windows?

Netmiko, developed by kirk Byers is an open source python library  based on Paramiko which simplifies SSH management to network devices and is primarily used for network automation tasks. Installing Netmiko in linux is a matter o f one single command but if you need to use Netmiko in your Windows PC, follow this process. 1) Install the latest version of Python. 2) Install Anaconda, which is an opensource distribution platform that you can install in Windows and other OS's (https://www.anaconda.com/download/) 3) From the Anaconda Shell, run “ conda install paramiko ”. 4) From the Anaconda Shell, run “ pip install scp ”. 5) Now Install the Git for Windows. (https://www.git-scm.com/downloads) . Git is required for downloading and cloning all the Netmiko library files from Github. 6) From Git Bash window, Clone Netmiko using the following command git clone https://github.com/ktbyers/netmiko&#8221         7) Once the installation is completed, ch

PrintNightmare (CVE-2021-1675) PoC exploit Walkthrough

I am not an exploit developer but was interested to see how this vulnerability can be exploited. So i tried to replicate the infamous PrintNightmare vulnerability using the following PoCs ( https://github.com/cube0x0/CVE-2021-1675 ) and ( https://github.com/rapid7/metasploit-framework/pull/15385 ) However i had trouble with the new metasploit module (auxiliary/admin/dcerpc/cve_2021_1675_printnightmare) and i couldn't able to exploit the machine successfully. So i tried the second PoC from cube0x0. This one has done the magic. I just followed the guidelines with couple of tweaks. First of all, i installed the impacket (cube0x0 version) which will install the required modules and files. After that i set up a samba share with an anonymous login. This is required for hosting the dll file. I edited the smb.conf with the following settings. [global]     map to guest = Bad User     server role = standalone server     usershare allow guests = yes     idmap config * : backend = tdb     s

Google Cloud : Basic Cloud Shell commands

Google Cloud resources can be managed in multiple ways. It can be done using Cloud Console, SDK or by using Cloud Shell. A few basic Google Cloud shell commands are listed below. 1)    List the active account name gcloud auth list 2)    List the project ID gcloud config list project 3)    Create a new instance using Gcloud shell gcloud compute instances create [INSTANCE_NAME] --machine-type n1-standard-2 --zone [ZONE_NAME] Use gcloud compute machine-types list to view a list of machine types available in particular zone. If the additional parameters, such as a zone is not specified, Google Cloud will use the information from your default project. To view the default project information, use gcloud compute project-info describe 4)    SSH in to the machine gcloud compute ssh [INSTANCE_NAME] --zone [YOUR_ZONE] 5)    RDP a windows server gcloud compute instances get-serial-port-output [INSTANCE_NAME] --zone [ZONE_NAME] 6)    Command to check whether the server is ready f

What is a Gratuitous ARP? How is it used in Network attacks?

Many of us encountered the word "Gratuitous" while exploring the network topic on ARP, The Address Resolution Protocol. Before explaining Gratuitous ARP, here is a quick review on how ARP works. ARP provides IP communication within a Layer 2 broadcast domain by mapping an IP address to a MAC address.For example, Host B wants to send information to Host A but does not have the MAC address of Host A in its ARP cache. Host B shoots a broadcast message for all hosts within the broadcast domain to obtain the MAC address associated with the IP address of Host A. All hosts within the same broadcast domain receive the ARP request, and Host A responds with its MAC address. We can see the ARP entries on our computers by entering the command arp -a . So, back to the topic on what is a Gratuitous reply, here is a better explanation. Gratuitous arp is when a device will send an ARP packet that is not a response to a request. Ideally a gratuitous ARP request is an ARP request packe

Recovery Procedure: Alcatel-Lucent Omni-Switch not booting AOS: Going to Mini-boot prompt.

Problem: Switch not booting AOS; Going to Mini-boot prompt. Model: Alcatel-Lucent OS6850 [Note:The same procedure might be applicable for different models of Omni-Switches, However, for this illustration, i have used OS-6850 ] Reason: This problem may occurs due to corrupt AOS image files or misconfigured boot parameters. Hence switch cannot boot the images properly and will go to Mini-boot prompt.  Work Around: [Note: This zmodem procedure consumes a lot to time to finish the process.] 1.) Power off your OS6850 2.) When you switched it back on, stop it before the Miniboot (there is some counter counting down from 4). Press Enter to break. 3.) You will have the following prompt " => " 4.) Enter " setenv baudrate 115200 ”. Increasing baudrate helps to increase the data transfer speed using zmodem. 5.) Enter " saveenv " 6.) Enter " boot " 7.) The switch should run now in baud rate 115200 (so you have to change your clients ter

Cisco Modular Policy Framework (MPF) : A brief Introduction

Modular Policy Framework (MPF) configuration defines set of rules for applying firewall features, such as traffic inspection, QoS etc. to the traffic transiting the firewall There are 3 main components in creating a MPF. 1) Class Map Class map is used to identify the type of traffic. This can be done by creating an ACL. 2) Policy Map Policy Map specifies what action the ASA should take against the traffic identified by the Class Map. 3) Service Policy Finally Service policy specifies where to apply it. The policy is applied to an interface or Globally. Udacity has special offers worldwide to help anyone learn important, higher-paying job skills during this challenging time. Click here to get your offer and start learning now! Sample Illustration Consider the following Command lines. access-list OUTSIDE-TO-INSIDE permit tcp any any eq ftp <--- The above ACL will allow FTP traffic. This ACL can be different than the Interface ACL---> class-map FTP-CLASS-MAP     match ac

Microsoft Windows NLB Feature for Stateful Applications

NLB is a software-based load balancer (Windows Feature) that resides on each member in the cluster. Load Balancing is based on number of client connection requests and the NLB algorithm does not dynamically respond to changes in the load on each cluster host (such as the CPU load or memory usage or Network Usage). Thus, If client population is less and/or the connections produce varying loads on the server, the load balancing algorithm of Microsoft NLB is less effective. Udacity has special offers worldwide to help anyone learn important, higher-paying job skills during this challenging time. Click here to get your offer and start learning now! To understand how NLB preserve the session state, first let me take you through the difference between a stateful and stateless connections: Stateless The application connection is said to be stateless if the server does not store any state about the client session instead the session data is saved at th client side. The server does n

Difference between Azure management groups, Subscriptions and Resource groups

image courtesy : https://docs.microsoft.com Azure management groups help you manage your Azure subscriptions by grouping them together. If your organization has many subscriptions, you might need a way to efficiently manage access, policies, and compliance for those subscriptions. Azure management groups provide a level of scope above subscriptions. Azure subscriptions help you organize access to Azure resources and determine how resource usage is reported, billed, and paid for. Each subscription can have a different billing and payment setup, so you can have different subscriptions and plans by office, department, project, and so on. Resource groups are containers that hold related resources for an Azure solution. A resource group includes those resources that you want to manage as a group. You decide which resources belong in a resource group based on what makes the most sense for your organization. reference : https://docs.microsoft.com