网络安全-B-站教程
P3 metasploit 是什么
metasploit 是一个攻击软件 (简称 msf),可以攻击常见的网站,操作系统. 其是一款开源安全漏洞利用和测试工具,集成了各种平台上常见的溢出漏洞和流行的 shellcode.
在 kali 中安装:
1 |
|
启动:
1 |
|
使用法则:
- 使用模块
- 配置模块必选项
- 运行模块
利用永恒之蓝漏洞
在进入 metasploit 界面后搜索:
1 |
|
ms17_010
的含义是, Microsoft 17 年的第 10 号漏洞.
使用模块,用 use
命令加模块名, 如:
1 |
|
或加编号:
1 |
|
查看配置:
1 |
|
在添加了一个模块后查看配置,在 Required
栏中为 yes
则是必须添加的配置. 若没有默认设置则需要自己设置.
payload options
是攻击的目的,如获取 metarpreter.
1 |
|
若想获取 Linux/macOS 系统, 修改 windows 即可.
修改配置用 set
命令, 如:
1 |
|
运行模块, 使用 run
命令:
1 |
|
出现 meterpreter
提示框表示攻击成功:
1 |
|
P6 metasploit攻击成功后能做什么
使用 Kali 渗透工具生成远控木马
如:
1 |
|
-p
表示 payload. -f
表示 format.
这是在本地生成一个木马文件, 之后需要将这个文件上传到目标主机.
攻击之前需要进入 msfconsole
使用一个模块, 用于开启监听:
1 |
|
之后 show 设置,set 一些设置, 最后 run. 如:
1 |
|
躲避杀毒软件
捆绑在其他软件上
如:
1 |
|
-x
用于指定一个模板,表明附加到哪一个正常程序之后.
加壳
把程序加密或压缩,且避免反编译. 如使用 Themida.
P9 常见的网站漏洞
OWASP 组织,每年会公布 web 应用的威胁安全报告.
P10 六步搭建DVWA
DVWA 是 OWASP 官方编写的 PHP 网站,包含了各种网站常见漏洞,可以学习攻击及修复方式.
P11 危害巨大漏洞-命令执行
这种漏洞一般出现于,应用系统从设计上需要给用户提供指定的远程命令操作的接口,如一些设备的 web 管理界面. 若没有严格的安全控制,则可能会导致攻击者通过该接口提交而已命令,让后台执行,从而获得后台服务器权限.
若有一个界面用于测试 ping
, 如:
这相当于是可以输入一行命令,那么:
127.0.0.1 & cmd
127.0.0.1 && cmd
127.0.0.1 | cmd
127.0.0.1 || cmd
127.0.0.1 ; cmd
等形式的命令都有可能执行.
php 的 shell_exec
函数,通过 shell 环境执行命令。并且将完整的输出以字符串的方式返回.
防御 command injection 要注意, 过滤命令连接符 .
渗透测试解决办法 :
- 白盒测试, 可以看到源代码, 查看源代码过滤机制
- 黑盒测试, 看不到源代码, 依次尝试常见命令连接符
注意,有些被过滤的连接符是 连接符+空格 , 因此可以尝试没有加空格的形式.
impossible
防御 直接判断 IP 地址.
SQL注入漏洞
SQL 是 Structured Query Language 结构化查询语言.
SQL 注入 (SQL injection), 是在输入的字符串之中注入 SQL 指令,在设计不良的程序当中忽略了字符检查, 那么这些注入进去的恶意指令就会被数据库服务器误认为是正常的 SQL 指令而运行.
可以简单理解为,能改变原有 SQL 语句的漏洞就是 SQL 注入.
利用 order by
语句判断数据库的列数.
几个 MySQL 的内置函数:
user()
: 返回当前数据库连接用户database()
: 返回当前数据库名称
查询数据库中的表信息:
1 |
|
information_schema
是一个内置信息.
SQLmap 使用
用一个 python 脚本自动检测有无 SQL 注入漏洞.
使用:
1 |
|
-u
参数为 url, 即你想要检测的地址, --cookie
用于这个网站需要登陆时,在开发者模式中可获取.
如有 --dbs
参数,即 database server, 用于获取所有数据库名.
获取指定数据库表, 用 -D
即 data 来指定想要获取的数据库名,--tables
来列出数据库表. 如:
1 |
|
获取表中的数据 如:
1 |
|
-T
参数是指定想要获取的表名为 users
, --columns
表示列出表项. 若是读取全部数据,将 --columns
换成 --dump
防御
过滤用户输入内容,不让输入 sql 语句. 如将特殊符号替换为空,或判断用户输入 SQL 语句就终止执行.
impossible
防御,借用 PDO (PHP Data Objects) 配合正确的过滤和 SQL 语句来避免 SQL 注入.
P21 收集目标信息-进行端口扫描
作用: 发现目标主机的端口及其对应开放的服务, 攻击者通过发现及利用服务所存在的漏洞, 入侵目标主机.
使用工具:
- zenmap
- railgun