19.9.2
环境安装vm kali-linux(攻击机)和owasp broken web apps(靶机)
owasp 基金会名字 bwa应用名字
dhclient -r(释放)eth0(网卡)释放ip
dhclinet -v (获取) 获得ip
DHCP端口67
DHCP向服务器获取ip四步:
- DHCPDISCOVER(广播)
- DHCPOFFER (客户机反馈预留ip)
- DHCPREQUEST(回应并广播选定ip)
- DHCPACK(相应ack地址保留)
命令行:
-
查询linux版本命令lsb_release -a
-
删除文件:
- -r 向下递归,无论有多少文件文件夹直接删除
- -f 直接删除 不做提示,删除一个文件
示例:
rm -r * 或者rm -r 文件路径 强制删除文件
rm -rf * 或者rm -rf 文件路径 删除路径下所有文件文件夹
19.9.5
- 判断是Linux还是Windows最简单就是通过ping来探测,Windows的TTL值都是一般是128,Linux则是64。所以大于100的肯定是Windows,而几十的肯定是Linux
- 判断目标网站服务器的具体的版本的话,可以采用 nmap 进行扫描, -O 和 -A 参数都能扫描出来
- 探测网站是哪种web服务器,可以使用工具 whatweb
几种数据库的区别
- 几种数据库的区别:
- Access 全名是Microsoft Office Access,是由微软发布的关联式数据库管理系统。小型数据库,当数据库达到100M左右的时候性能就会下降。数据库后缀名:.mdb 一般是asp的网页文件用access数据库
- SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),是一个比较大型的数据库。端口号为1433。数据库后缀名 .mdf
- MySQL 是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的应用软件之一,MySQL数据库大部分是php的页面。默认端口是3306
- Oracle又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。常用于比较大的网站。默认端口是1521
- 成本上的差距,access是不要钱的,mysql也是开源的,sql server 是收费的一般也就几千,Oracle的费用则数万。其次,处理能力,access支持千以内的访问量,sql server支持几千到上万的访问,而Oracle则支持海量的访 问。再次,从数据库的规模来看,access是小型数据库,,mysql 是中小型数据库,sql server是中型数据库,Oracle是大型数据
19.9.7--19.9.18
文件上传漏洞
-
MIME,
全称为“Multipurpose Internet Mail Extensions”, 比较确切的中文名称为“多用途互联网邮件扩展”。
常见的MIME类型
超文本标记语言文本 .html,.html text/html
普通文本 .txt text/plain
RTF文本 .rtf application/rtf
GIF图形 .gif image/gif
JPEG图形 .ipeg,.jpg image/jpeg
au声音文件 .au audio/basic
MIDI音乐文件 mid,.midi audio/midi,audio/x-midi
RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio
MPEG文件 .mpg,.mpeg video/mpeg
AVI文件 .avi video/x-msvideo
GZIP文件 .gz application/x-gzip
TAR文件 .tar application/x-tar
-
burp suite 代理/拦截作用
-
proxy代理功能
-
spider爬虫功能
-
scanner漏扫功能
-
使用方法:打开- 设置浏览器代理服务器-地址为burp suie里面设置的-如果主机端用拦截可以吧接口设置为all
-
结构图
- 如果用主机连虚拟机的网可以用浏览器代理 把浏览器代理服务器设置为虚拟机ip 和端口8080 AND burp suite 拦截功能option设置接口给all
-
1.0 文件上传漏洞(中级owabwk)
-
适用情况:服务器可以识别上传文件类型-- mime,上传脚本病毒失败,多数为服务器限制了文件类型mime
-
用burp suite 代理拦截修改信息,把上传文件类型修改成服务器要求的类型(类似和服务器说谎)
原来的
修改后
-
用burp sute转发请求,如果上床成功,之后用中国菜刀。
-
1.1 命令行
-
ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。
-
命令默认输出所有建立的连接(不包含监听的端口),包括 tcp, udp, and unix socket 三种类型的连接:
-
查看主机监听的端口
`$ ss -tnl`
通过 -r 选项解析 IP 和端口号
`$ ss -tlr`
使用 -p 选项查看监听端口的程序名称
ss -tlp
最后一列就是运行的程序名称。还可以通过 grep 继续过滤:
$ sudo ss -tlp | grep ssh
查看建立的 TCP 连接
-a --all 对 TCP 协议来说,既包含监听的端口,也包含建立的连接
`$ ss -tna`
-
1.2 一句话木马
-
shell2和shell3一句话小马,上传成功后直接在路径后面加上
“?cmd(密码)=phpinfo(函数或者linux命令)”
-
菜刀 , post如果换成request就只能如上面在网页框里进行代码操作
2.0 低安全级别文件包含
2.1 文件包含原理
-
文件包含:
类似include,红框代表不正常, 绿框正常
-
https://www.jianshu.com/p/065deed3142e https://www.freebuf.com/articles/web/182280.html
-
产生原因:文件包含函数加载的参数没有经过过滤或者严格的定义,可以被用户控制,包含其他恶意文件,导致了执行了非预期的代码。例如:
-
本地文件包含LFI (Local File Inclusion)
-
远程文件包含RFI (Remote File Inclusion)
-
判断是否文件包含:服务开启allow_url_include 和 allow_url_fopen
-
-
php配置文件php.ini
2.2 robots.txt
-
robots.txt
搜索引擎通过一种程序“蜘蛛”(又称spider),自动访问互联网上的网页并获取网页信息。您可以在您的网站中创建一个纯文本文件robots.txt,在这个文件中声明该网站中不想被蜘蛛访问的部分,这样,该网站的部分或全部内容就可以不被搜索引擎访问和收录了,或者可以通过robots.txt指定使搜索引擎只收录指定的内容。搜索引擎爬行网站第一个访问的文件就是robots.txt。
-
“../” 表示当前文件的上一级
-
rm -f *.txt
2.3 本地包含+webshell
- 本地包含+webshell实例
-
制作一句话图片木马 picture.jpg
')?> -
文件上传
-
执行文件包含并生成后门,即把图片路径传给文件包含漏洞的参数,例如:http://。。。。/..?page=+文件路径 (不一定是page要看文件包含漏洞具体的参数)
-
通过菜刀连接webshell
2.4 命令行
- 清屏 clear 或者ctrl + l
- systemctl start apache2 打开阿帕奇
- systemctl status apache2 查看阿帕奇的状态
- cd www , 意思是 到www目录;
cd .. , 意思是到上一级目录;
cd - ,意思是返回到上次的目录,类似windows返回 ;
cd /,意思是回到根目录。 - more+文件
2.5 远程文件包含
-
建立自己的web服务器
-
在服务器上传或者编辑一句话木马生成语句,最好保存为txt
')?> -
记下文件路径,回到文件包含漏洞的网站,执行文件包含并生成后门
-
猜到连接即可
3.0 中安全级别文件包含
-
中安全级别后端php代码
-
影响:
-
本地文件包含没有影响,只过滤了路径的http://
-
远程文件包含:路径前面改成hthttp://tp://……
http:// = hthttp://tp://
-
4.0 高安全级别文件包含
-
后端php代码
代码写死,不灵活,但是很安全。
补充:文件包含是代码层面的,是去包含另外的代码,如何开发者没有对上传文件进行严格检测,就容易造成漏洞。安全是木桶效果,文件包含排行不是很高。sql注入排在第一位的安全问题。
19.9.22--9.29
SQL注入
1.0 sql基础
- mysql 登录 : mysql -uroot -p‘owaspbwa’
- 查看所有库 : show databases
- 当前用户: select user();
- 进入库 : use dvwa
补充:命令行大写才可以补全!!
-
查看常见表的结构和属性:
- show create table users 详细
- desc users
-
同一字段要用逗号隔开,不加 有别名的用处
-
简单常用select语句
-
索取其他库的要加 ‘库名.’
-
concat 函数连接多这个字符串成一个字符串
语法:concat(str1, str2,...)
-
row 是行,column是列
-
联合查询UNION
-
union
- 联合字段数量必须一样,数字可以随意充当字段
- limit+数字 ,用于限制查询的结果数量
- 查询语句字段数写死用来限制union的时候--用数字去猜
-
如果只想看自己sql语句的内容可以在前面的语句后面加上 “where 1=3”加上一个否命题
-
查看表记录
-
information_schema databases里面的一个库
-
数据库字典 :information里面的table表,保存着数据库所有表,库等等信息,但没有数据。
-
// TABLE_SCHEMA库的名字,
//TABLE_NAME 表的名字
//COLUMN_NAME 字段名
-
USER_PRIVILEGES用户权限表
-
G特定格式输出
-
-
distinct去重 用法:SELECT DISTINCT 列名称 FROM 表名称
-
group分组 group_conest拼接
-
获取库和表如下:
- 获取表的结构
2.0 sql注入流程
2.1 基于错误的注入
- ‘ 单引号如果引发错误,就有注入的可能性(报语法错误!!),输入错误,或者警告表明没有注入点。
2.2 基于布尔的注入
(只限于当前表)
-
布尔逻辑注入的思路是闭合SQL语句、构造or和and逻辑语句、注释多余的代码。
-
sql注入语句:‘ or 1=1 -- pzl’
说明:第一个‘用于闭合前面的条件, or 1=1 位真的条件,“-- “ 有空格或者”#“将注释掉后面的‘。
2.3 基于union的注入
(前后字段数要一致)
-
联合前面的select,合并查询更多信息,一般在错误或者布尔注入确认注入点之后开始。
-
猜测数据列数
’union select 1 -- ‘
’union select 1,2-- ‘
’union select 1,2,3 -- ‘
’union select 1,2,3,4 -- ‘
-
user()当前用户,database当前库,version当前数据库 版本
-
一个字段获取多个信息用concat。
2.4 基于时间的盲注
(blind)
- 1‘ and sleep(5)--’
3.0 sqlmap自动化注入
3.1 基本操作
-
sqlmap -hh|grep +搜索的参数
-
搜索可能有注入点的网站:
google:
inurl.php?id=1
inurl.asp?id=1
inurl.jsp?id=1
inurl:/admin/login.php
inurl:.php?id= intitle:美女
百度:
inurl:news.php?id= site:edu.cn
inurl:news.asp?id= site:edu.cn
inurl:news.aspx?id= site:edu.cn
-
获取帮助 sqlmap -h
-
--random -agent 攻击代理,迷惑目的
-
-dbms= DBMS 指定探测数据库类型
-
payloads 负载,指用于探测等的一些脚本工具。
-
-u +"url" 检测注入点
-
--risk= 风险等级
-
-current-user
-
--batch 默认参数自动设置
-
探测注入点基本失败的标志: 【WARNING】GET 。。。。参数不具有动态性
-
-p 指定测试参数 比如:-p username 节省时间
-
-dbs 获取所有数据库 --current-db 当前数据库
-
-D 库 --tables 获取库中所有表的信息
-
-D 库 -T 表 --columns 库中指定表的所有列 -C列名 “ ”
-
--dump-all 所有
-
扫描整站
sqlmap --forms --batch --crawl=2 --threads=10 --random-agent -u http://www.pin9.win/
3.2 基本步骤
- --cookie=“ ID ” 登陆一次之后服务器辨别用户的标识 ,多个用 ; 隔开
- --sql-shell sql交互模式
- –os-shell 系统交互模式
19.10.16--99.10.17
XSS跨站脚本攻击
1.0 简介
2.0 原理
- 反射型(xss reflected)
-
存储型 (xss stroed)
留言板,评论框的
CSRF: 跨站请求伪造
-
原因分析:
3.0 构造XSS脚本
3.1 常用HTML标签
3.2 常用javascript 方法
3.3 构造XSS脚本
3.4 存储型 XSS
-
获取肉鸡cookie
-
打开 apache systemctl restart apache
-
vim /var/www/html/cookie_rec.php
编辑
-
提升权限 chown -R www-data.www-data /var/www
-
4.0 自动化XSS BeEF
4.1 BeEf基础
-
使用步骤:
- 打开apache
- 进入BeEF
- 把给定的链接放入到有XSS漏洞的地方
-
命令颜色 color:
- 绿色 对主机目标生效并且不可见
- 橙色 对目标主机生效但可能可见
- 灰色 对目标主机未必生效(可验证下)
- 红色 对目标主机不生效
-
create alert dialog 弹框
-
create prompt dialog 弹框标题
-
redirect browser(iframe)嵌入覆盖 不掉线比重定向要好一点
-
play sound
-
spyder eye 浏览器窗口拍摄
-
persistence 保持用户
- man -in-the-brower 诱导受害者继续保持在页面保持BeEF持续进行
- Create foreground iframe 更改页面所有链接
- create pop under 制作一个很小窗口 子页面主页面退出不影响
-
social endinnering 社会工程学
- 一些引诱受害者下载或者访问一些程序
- 钓鱼
19.10.17--19.10.20
Web信息收集之搜索引擎
1.0 信息收集概述
2.0 Google Hacking
2.1 site
搜索指定域名的网页域名
site: zhihu.com " "
2.2 filetype
文件类型
2.3 inurl
搜索网址关键字的网页
2.4 intitle
搜索标题关键字的网页
intitle:index of "parent directory" 搜索目录索引文件
2.5 intext
搜索正文关键字的网页
discuz 论坛系统
CMS 建站系统
2.6 实例
2.7 符号
2.8 搜索技巧
3.0 Shodan Hacking
- www.shodan.io shoan(撒旦搜索引擎)有web工程师马瑟利编写的,被成为“最可怕的搜索引擎”,可扫描一切的互联网设备。除了最常见的web服务器,还能扫描防火墙、路由器、交换机、摄像头、打印机等一切互联网设备。
4.1 ip
4.2 service/protocol
SSH 远程登录安全协议
4.3 keyword
基于关键词搜索的思路是根据banner信息(设备指纹)来搜索
“default password” country:“TH”
FTP anon successful
4.4 country
country:cn
country:us
country:jp
4.5 product
产品
4.6 version
版本
product:mysql version:"5.1.73"
product:"Microsoft IIS httpd " version:"7.5"
4.7 hostname
hostname:.org
hostname:.edu
4.8 os
4.9 net
4.10 port
port:3389 windows远程桌面
port:445 SMB
port:22 ssh
port:80 网站
port:443 网站
4.11 综合实例
5.0 Zoomeye Hacking
5.1 概述
shift+/帮助
Linux远程桌面端口:3389
Windows远程桌面端口:22
19.10.20--19.10.22
Web信息收集之目标扫描
1.0 nmap
1.1 基础
-
查看端口对应协议 grep 111 /ect/services
-
OS 操作系统
-
IDS 防火墙
-
MISC 杂项
-
扫描行为也是攻击行为
-
nmap --help|grep ‘-n’
-
-T 设置速度等级 ,1-5,越大越快
1.2 扫描示例
2.0 zenmap
-
-sU UDP端口扫描
-
-sS 非三次握手的端口扫描, Tcp SYN Scan (sS) 它被称为半开放扫描
-
优点:Nmap发送SYN包到远程主机,但是它不会产生任何会话,目标主机几乎不会把连接记入系统日志。(防止对方判断为扫描攻击),扫描速度快,效率高,在工作中使用频率最高 缺点:它需要root``/administrator``权限执行
-
-
-sn –traceroute 追踪跳数
3.0 OpenVAS(小恐龙)
3.1 部署OpenVAS
kali最新版默认不安装OpenVAS
-
Openvas -start
-
检查安装:
ss -tnlp
openvas-check-setup
-
登录时注意是https
19.10.23--19.10.27
Web漏扫之AWVS
1.0 功能以及特点
windows安装
2.0 AWVS安装
2.1 网站扫描
testhtml5.vulnweb.com
子域名扫描:
Web漏扫之AppScan
1.0 功能
- 支持中文版
Web漏扫之Burp suite
- 社区版没有扫描
1.0 功能以及特点
2.0 Burp Suite使用
使用
- 使用要先启用代理proxy
- 关掉拦截
- 设置options ip为all,即所有主机都可以使用本机的代理
- 设置浏览器,启动代理指向开启Burp Suite 的主机ip
- 把我们想要测试网站加如tatget scope范围里。
为了清楚显示我们想要的网站可以:
3.0 爬虫功能(spider)
- /robots.txt 每个网站都有的,说明那些文件可以爬取
准备工作:
设置代理域名
访问目标网站
目标域
拦截功能关闭
4.0 扫描功能
19.10.27--19.10.29
SSH密码暴力破解及防御实战
1.0 hydra(海德拉)
1.1 指定用户破解
- -P+密码字典文件
- -p+指定密码
- -l+指定用户
- -L+用户字典文件
- -M+主机字典文件
- 一般用法: hydra -l -root -P pass.dic 192.168.1.1 ssh
2.0 Medusa美杜莎
2.1 语法参数
2.2 使用
medusa -M ssh -u root -P passlist.txt -H hostlist.txt -t 10 -F
- -t线程数
- -F只显示成功的
2.3 linux结果输出为文本
- -o+文件名
- -oX+文件名声成为XML格式
3.0 Patator
- 强大的命令行暴力破解工具
3.1 使用
- 使用文件字典:???=FILE0 0=passlist.txt ???=FILE1 1=hostlist.txt
- 只显示成功的:-x ignore:mesg='Authentication failed.'
4.0 BrutesPray
- kali不自带要安装
- 扫描+medusa爆破
4.1 语法参数
4.2 nmap
- 最后生成xml文件存有22端口存活的主机
4.3 cat和tail -f区别
- cat 命令 和tail命令都是显示数据的命令
- cat 显示的是文件夹的全部的数据
- cat 静态查看文件夹数据
- tail 显示尾部的文件夹数据
- tail -n num 显示num条数据
- tail -f 可动态监控数据的变化
4.4 爆破使用
-
利用nmap生成的xml文件
-
brutespray --file 22.xml -u root -P passlist.txt --threads 5 --hosts 5 -c
-
生成的结果文件在/root/brutespray-output/ssh-success.txt
5.0 MSF
- MSF是一个框架,负载很多。
5.1 SSH模块
-
search ssh 获取模块路径
-
用户枚举
-
show options 显示参数
-
设置好参数后:run
-
可以看到主机中是否存在userlist.txt中的主机
5.2 SSH版本探测模块
- ../ssh_version
5.3 SSH暴力破解模块
- ../ssh_login
6.0 暴力破解防御
-
改端口:vim /ect/ssh/sshd_config
-
新增用户:
useradd pzl
passwd pzl
-
白名单:AllowUsers pzl 这条命令放到/ect/ssh/sshd_config后面
-
PAM是一个第三方的验证身份的服务
19.10.29--19.10.29
中间人攻击
1.0 Ettercap(小蜘蛛)
-
中间人劫持数据
-
防御:windows绑定
- arp -s ip mac临时的
- (推荐永久的)
- netsh i i show in 查看接口idx值
- netsh -c i i ad ne idx +ip +mac store=active(或者persistent)
- active 临时生效重启时效 persistent永久有效
- 如何删除绑定的ip/mac
- netsh -c i i delete neighbors idx
linux:arp -s ip mac