这是这个系列的最后一个靶机了!!!经过前面的锻炼和学习,这次我的目标是尽量不借助任何教程或者提示来拿下这个靶机!!!下面我们看能不能成功!!!
1.实验环境
攻击机:kali2023.2
靶机:DC-9
2.信息收集
2.1主机扫描
2.2端口扫描
3.功能点收集
3.1查看网页
3.2寻找功能点,看看有什么可以下手的思路
大家这里思考一个问题,我们目前有什么,一个是80端口一个是22端口,22端口无非就是能进行爆破然后远程连接,这种概率肯定很小,需要运气,其次就是80端口的web服务,然后我们发现的功能点一个是搜索一个是登录,那对应的可能的漏洞是不是就是弱口令和sql注入,因为我们想要getshell的话无非就是弱口令,注入漏洞,文件上传,文件包含或者RCE,有人会说那不是还有可能存在其他的一些xss之类的漏洞吗?我们现在不是在挖洞,那些漏洞很鸡肋并不能getshell,所以这里是不去考虑那些的,弱口令需要时间和运气,所以这里优先尝试一下sql注入行不行!
4.SQL注入
4.1找注入点
4.2跑sqlmap
4.3尝试登录
5.文件包含
5.1通过admin寻找线索
这里其实就出现一个问题,目标的22端口被过滤了,那么我们如何判断他到底是开放着的还是关闭着的,只有先判断出开没开,然后才能考虑下一步操作,如果是关着的那还搞个毛,直接跑路。如果是开着的那我们再想办法绕过他,因为这种过滤多半是防火墙设置导致的!这里给一篇文章大家参考一下在这种情况下应该如何判断端口是否开放!nmap扫描之端口“filtered“被过滤的分析_nmap filtered-CSDN博客
再放一篇关于端口状态的文章,大家可以多了解了解!
NMAP 六种端口状态解读_nmap filtered-CSDN博客
5.2端口敲门技术
这个东西我也是第一次听到,咱们去网上搜搜是怎么回事!
DC-9靶机-简单谈一下端口敲门技术 (Port Knocking)-CSDN博客
如何在 Linux 上使用端口敲门(以及为什么不应该) (linux-console.net)
我大致理解了一下就是说对方为了安全起见,在防火墙上对端口进行了保护,只有符合规则的流量才可以通过防火墙访问被保护的端口,正常来说这个规则只有使用者知道,这样的话可以起到防护作用,像22号端口就属于比较危险的端口,被保护起来也是可以理解的!
其实nmap也是通过流量访问来进行检测的,然而我们直接扫描的流量肯定是不符合人家规定的自然打过去以后会被抛弃或者过滤,这种情况下nmap给我们的会先结果要么是filter不确定是否开放甚至说是closed关闭状态!
然后我们在上面的文章中也可以了解到,这鸟毛玩意儿的配置是通过在相关的配置文件中进行设置然后搞出来的,就像我们平常配置中间件什么的一样,所以原来文件包含是用来让我们查看这个端口敲门的配置文件的,到这里豁然开朗了!这个配置文件的路径是 /etc/knockd.conf
nc -z IP 7469 8475 9842 //这个是配置文件里的那三个数字
然后其实就该爆破了,因为做这个就像做数学题一样,每个条件都要用到,既然文件包含已经有它的用处了,那剩下还没用的条件就是22号端口连接ssh了,而且我们现在还有一些账号密码在手上!
5.3ssh爆破远程连接
6.寻找提权思路
6.1ssh登录寻找线索
这里登上来之后发现三个账户下面啥都没有,这里卡住了,找了半天没有找到有用的东西,三个账户都没有可以suid和sudo提权的命令!
find / -user root -perm -4000 -print 2>/dev/null
6.2Linux常用提取方法
在Linux系统中,提权是指从低权限用户提升至超级用户(root)权限的过程。这通常是在渗透测试或系统管理中需要执行的操作,以便执行更多的系统级任务。以下是一些常见的Linux提权方法:
内核漏洞提权
Linux操作系统的内核是系统的核心,一旦存在安全漏洞,攻击者可以利用这些漏洞获取root权限。例如,著名的“脏牛”漏洞就是一种内核漏洞,可以被利用来提升权限。使用uname -a命令可以查看当前系统的内核版本,如果系统版本存在已知的漏洞,可以尝试利用相应的漏洞提权工具或脚本。
SUID提权
SUID(Set Owner User ID)是Linux中的一个特殊权限位,当设置了SUID权限的可执行文件被运行时,该程序将以文件所有者(通常是root)的权限运行。通过查找系统中具有root权限的SUID文件,可以尝试利用这些文件来提升权限。使用以下命令可以查找具有SUID权限的文件:
find / -perm -u=s -type f 2>/dev/null
计划任务提权
如果计划任务(Cron Jobs)以root权限运行,并且相关脚本对其他用户具有写权限,或者脚本所属组为其他用户,则可以通过修改这些脚本来提权。可以通过查看/etc/crontab文件来发现系统中的计划任务,并检查相关文件的权限。
sudo滥用提权
在某些情况下,系统中的某些用户可能被授予了可以以root权限运行特定命令的sudo权限。如果可以找到这样的命令,就可以尝试利用它们来提升权限。使用sudo -l命令可以查看当前用户能以root权限运行的命令。
配置错误之利用/etc/passwd提权
如果/etc/passwd文件对其他用户具有写权限,攻击者可以通过向该文件中添加一个UID为0的用户来获取root权限。这通常涉及到修改系统文件,需要谨慎操作。
以上是一些基本的Linux提权方法,每种方法都有其适用的场景和限制。在尝试提权时,应该首先收集尽可能多的系统信息,然后根据情况选择合适的提权方法。提权过程中可能需要使用到各种工具和脚本,如内核漏洞利用工具、密码破解工具等。在实际操作中,提权往往需要结合多种技术和方法,以及对系统的深入了解。
因为suid和sudo提权比较常用,所以我看到不能用之后就跑去看能不能脏牛提权或者定时任务去了,后面看了一下提示才发现跑偏了!这里就有一个坑,登上去之后一定要看一下有没有隐藏目录或者文件!!!!!!!!!!!
6.3隐藏文件
6.4sudo提权
openssl passwd -1 -salt 账号 密码 //这里账号密码尽量简单一些,不然可能会出问题在加密的时候
echo 'topsec:$1$topsec$0sD7IikM54/bEsFnRrIPv/:0:0:root:/root:/bin/bash' > /tmp/tiquan2
sudo /opt/devstuff/dist/test/test /tmp/tiquan2 /etc/passwd
7总结
这个靶机我感觉非常美妙,涉及到的东西还是非常全面的,建议大家多打一打!
我认为涉及到的一些经典的姿势有:端口扫描,sql注入,文件包含,爆破,端口敲门,sudo提权,以及大家对python脚本的理解,还有对Linux的很多命令的理解,就包括那个坑人的隐藏文件!