网络安全——使用crontab任务计划提权获取主机权限

使用crontab任务计划提权获取主机权限

第一步,打开网络拓扑,启动实验虚拟机,查看虚拟机IP地址:

Kali Linux

Linux

第二步,使用命令nmap -sV 172.16.1.200探测目标靶机的服务版本信息

探测完毕,我们发现目标靶机开放了22号端口,ssh服务,以及对应软件的版本号(6.7p1)和协议版本号(protocol 2.0)。开放了80号端口,对应的http服务,以及使用的中间件是apache,还有它对应的版本号(2.4.10),最后又开放了111端口,NFS服务依赖的服务端口。首先对于SSH服务的22端口,需要考虑是否存在暴力破解的可能性,通过获取的用户名和密码远程进行登录,其次考虑该服务器是否存在私钥泄露的问题,最后对于开放HTTP服务的80端口,需要考虑

第三步,根据前面的扫描结果,我们可以从开放http服务的80端口来切入,可以采取在浏览器中输入http://ip:port/的新式来进行访问,然后查看网站的源码,查找有关flag的信息,80端口的访问结果:

返回结果的页面中显示了,这家公司的基本信息,总结后如下:

公司名称:Secretsec,传真号:052-452-990-054,公司业务范围:安全相关,公司员工信息:Martin N、Hadi M、Jimmy S,最后邮箱地址:[email protected],发现martin可能为对应的ssh的用户名,而其他员工信息可能为其他服务的有效用户名。下面我们继续来针对80端口来挖掘更多信息。

第四步,使用命令nikto -host http://172.16.1.200这个服务的隐藏文件进行探测,运行此命令后dirb会对当前网站的目录进行基于字典的探测,

robots.txt内容,发现服务器中存在有/wordpress-blog

访问wordpress-blog,发现该路径下只有一张图片,由于靶机的难度并不高,排除在图片中使用过隐写术进行加密的情况,所以该页面无任何有效信息,

接下来我们将对其他的返回探测结果逐一进行排查,寻找有价值的信息。

访问http://172.16.1.200/files/的结果:

访问http://172.16.1.200/manual/的结果:

访问http://172.16.1.200/icons/的结果:

在遍历的过程中发现名为VDSoyuAXiO.txt的文件比较异常,尝试去访问一下:

发现了一个RSA PRIVATE KEY即私钥文件,此时我们已经挖掘到了ssh的私钥信息。使用命令wget将文件保存下来:

最后将下载下来的私钥重命名为id_rsa, 并使用命令chmod 644 id_rsa修改id_rsa的权限,

第五步,下面我们就可以对挖掘到的ssh私钥进行利用,首先然后我们使用私钥来远程登录到服务器上,使用命令ssh -i id_rsa 用户名@靶场IP地址,回顾我们之前在web页面上收集信息时,发现了一个可疑用户martin,接下来我们尝试使用该账户的私钥来进行登录,

注意:当我们的文件id_rsa的权限不为600时,会得到下面的提示:Load key “id_rsa”: bad permissions,错误的文件权限。

使用权限为600的私钥文件登录成功后的结果如下:(注意:使用空密码)

首先我们使用pwd来查看一下当前的工作路径,然后使用命令ls -alh查看当前目录下的文件,

然后我们切换到home目录来查看当前靶机目前有几个用户

发现有三个用户,hadi、jimmy、martin三个用户,记录一下这些用户信息待后面的操作。

第六步,接下来的任务就是继续扩大战果,常规情况下,我们登录到服务器之后,使用命令whoami查看当前用户,然后使用命令id来查看当前用户的权限,接下来查看靶机的根目录,继续寻找可能包含flag文件的位置,一般情况下,flag文件只属于root用户和对应的用户组,如果当前是root权限,那么表明这个靶机就已经被拿下了,若不是,就需要额外的提权操作。

可以发现,当前的用户martin并不具有root的用户的权限,在进一步的提权之前我们先使用cat命令分别查看目标靶机中的/etc/passwd所有用户的列表文件、/etc/group用户组文件以及/tmp缓冲文件目录。

/etc/passwd

/etc/group

/tmp

检查完所有文件后,除三个普通用户以及系统服务用户外,未发现有效的信息。

第七步,下面我们继续来分析其他的文件,使用命令cat /etc/crontab来查看计划任务文件

此时发现一个jimmy用户的有一个每五分钟执行一次的计划任务,具体命令为pyhton /tmp/sekruity.py,但在上一步中,我们并未发现/tmp目录下有任何.py的文件,那么接下来我们来编写一个名为sekruity.py的python反弹shell木马来替换执行的sekurity.py文件,以下为反弹shell的代码:

将以上的内容写入到sekurity.py文件中,如果不熟悉debian的编辑器的话可以在kali中编辑好文件,然后复制到ssh终端的sekurity.py中,注意:下面代码解释中去掉了每一行结尾的分号,使用的subprocess.call()方法调用的命令为/bin/sh -I,与实验使用的/bin/bash -i 功能相同,前者不显示路径,后者显示

接下来,我们在kali渗透几种执行命令nc -lvp 698,在启动监听前可以使用命令netstat -pantu来查看当前哪些端口被占用了,等待一段时间(5分钟左右)后反弹shell将会连接进来, 

接下来,使用whoami和id命令查看当前用户及权限

可以看到这里jimmy没有root权限,他和之前的用户martin权限一样,都是一个普通用户权限。

第八步,至此我们已经获取到用户martin和jimmy的控制权限,但是并未扩大我们战果,最后只剩下hadi用户,该用户目前没有其他有效的信息可以进行连接,此时我们能想到的只有对ssh服务进行暴力破解,来破解出最后这一个用户的密码。

进入/usr/share/cupp-master目录,使用命令./cupp.py -i使用交互模式来创建社工字典First Name填hadi,Surname填123即可。

使用命令hydra -v -f -l hadi -P hadi.txt 172.16.1.200对服务器的ssh端口进行暴力破解,-l指定用户名,-P指定密码字典文件,-v显示详细的执行过程,-f爆破成功后停止枚举

使用命令ssh [email protected],密码hadi123进行登录

hadi用户相对其他用户的权限更高,可结合其他的漏洞进行提权。实际拥有了hadi用户后root的权限可以轻易获得,但由于靶机封锁了gcc,目前的环境下进行提取的可能性不大,大家可以自己尝试一下。

猜你喜欢

转载自blog.csdn.net/qq_48609816/article/details/125900965
今日推荐