网络安全-B-站教程2

参考

黑客入侵流程和信息收集

目标

一些网站信息, whois 信息.

SSL 证书的收集.

开放端口探测.

网站架构. 浏览器插件查找.

敏感文件, 目录探测.

社交网站/平台.

方法

踩点 -> 扫描 -> 查点 -> 访问 -> 提权 -> 窃取信息 -> 掩盖踪迹 -> 创建后门 -> 拒绝服务

技术

命令如, whoami, ping, SNMP

密码嗅探. 密码爆破.

日志删除. 清除访问日志.

流氓工具, 来开后门.

工具

Kali Linux 下的自带工具集.

命令如: dig, dnsmap, nslookup, ping, fping, nmap, AutoScan, amap, meta, python, 字典, DDos 工具.

信息收集

先用扫描器扫描. 如:

  • IBM, AppScan
  • HP, WebInspect
  • 启明星辰, 天镜
  • 安恒, 明鉴
  • 绿盟, WVSS/RSAS
  • 其他, Nmap 等

DNS 传送漏洞 (域名探测过程).

域名收集 根据主域名, 可以获得二极, 三级域名. 可以通过 Kali 内置的 dnsenum. 使用如:

  • -f, 指定一个文件, 如 dns.txt (字典爆破)
  • --dnsserver, 指定域名解析服务器, 如 114.114.114.114.

通过域名信息, 可以推断出一些开放的端口信息. 以及一些 DNS 注册信息.

正向解析, 域名找 IP.

反向解析, IP 找域名. 可通过 dig, 或 nslookup 等命令.

whois 命令可以用来获取注册信息, 如:

1
2
$ whois test.com
$ dig @114.114.114.114 test.com

网站备案信息收集 , 如通过 www.beianbeian.com 网站.

SSL 证书收集, 如通过 https://myssl.com/ssl.html

APP 信息提取 , 如通过抓包, 反编译, 暴力破解 工具如 demon.

DNS 更新记录收集, 如访问 www.dnsdb.io

第三方网站的收集操作, 天眼查, 威胁情报网站, 漏洞银行, 钟馗之眼, 360 补天, 微步在线.

敏感信息收集, Web 源代码泄漏

Web 源代码泄漏, 如:

  • git 源码泄漏
  • svn 源码泄漏
  • DS_Store 文件泄漏
  • WBE-INF/web.xml 泄漏
  • 网络备份文件泄漏
  • github 泄漏

前后端分离项目, 接口信息泄漏, 且接口未作限制.

利用社会工程学.

百度网盘, 信息收集. pan.baidu.com

小米的导航页面: https://sec.xiaomi.com/friends

敏感信息收集工具汇总

网盘搜索: www.pansou.com

社工泄漏: www.uneihan.com

源码搜索: searchcode.com, gitee.com, gitcafe.com, code.csdn.net, 钟馗之眼, 天眼查

获取到的邮箱账号可以用来推测邮箱的命名规则. 可以用来后期登陆子系统. 也可以用来爆破密码. 弱口令, 可以通过手工也可以通过工具收集.

内网攻击, 网站劫持.

邮箱收集工具: theHarvester.

敏感信息收集, 历史漏洞收集+工具信息收集

历史信息收集, 如:

  • 360 补天.
  • 教育行业漏洞报告平台 – src.edu-info.edu.cn

工具信息收集, 如:

  • 7Kbscan

指纹识别, WAF, CDN 识别

这里的指纹不是手的指纹识别.

可加入端口扫描, 敏感文件扫描的操作.

工具, 如:

  • 御剑 Web 指纹识别系统, 可得知网站用的框架信息以及版本信息, 从而查询其是否存在漏洞, 进行攻击
  • 在线指纹识别工具, whatweb.bugscaner.com, www.yunsee.cn/finger.html

WAF (Web Application Firewall) 指网络防火墙的识别, 可在 Github 上找, 如 EnableSecurity/wafw00f

CDN (Content Delivery Network) 识别可在 Github 上查找, 如 xcdn

区块链漏洞平台: www.bugx.org

CNVD 国家信息安全漏洞平台: www.cnvd.org.cn

漏洞银行: www.bugbank.cn

360 补天平台 www.butian.net.

国外的一些平台:

  • www.hackerone.com
  • www.0day.today
  • routerpwn.com
  • cve.mitre.org

威胁情报:

  • 安全数据交流平台, 如华为安全情报
  • 被黑站点统计, 如 www.hacked.com.cn

社工库, 如:

  • 微信伪造
  • 任意邮箱发送
  • 临时邮箱
  • 邮箱池群
  • 社工库

GoogleHack.

资产梳理

梳理的目的是为了判断这些域名是否都存活. 存活就继续进行 IP 地址确认.

根据 IP 地址的分布, 确定企业的公网网段.

Google 优势劣势

优点:

  • 只要有一台能访问 Google 的设备, 部署相对简单.
  • 资源丰富

劣势:

  • 搜索关键词多, 记忆复杂
  • 不能离线

Nmap 和实战案例

Nmap 是一个网络连接端口扫描软件. 用来扫描电脑上开发的网络连接端口. 确定哪些服务运行在哪些连接的端口, 并且推断计算机运行的操作系统.

首先需要主机发现. 再扫描. nmap 支持多种发现主机时发送的包.

似乎没有单独的 -s 参数, 只有 -sL 等, 这里的 s 为 “scan”, L 为 “List”. 即列表扫描.

如:

1
2
$ # 只进行主机发现
$ nmap -sn 10.1.1.1-100

SQL 注入基础

查看 SQL 排名: https://db-engines.com/en/ranking

查看 MySQL 中的用户:

1
select user, host from mysql.user;

(实测需要 root 权限)

这条语句中的 mysql.user 表明 mysql 这个数据库里面有一个表叫 user.

几个重要的库:

infomation_schema 库中的重要表有:

  • COLUMNS
  • SCHEMATA
  • TABLES

注释, 使用 -- 注意有一个空格. 或 #

创建用户, CREATE USER test@test IDENTIFIED BY "123" with_native_password;

select now(); 可以查看时间.

select database(); 可以查看当前选择的是哪个库.

select VERSION(); 查看版本.

select USER(); 查看当前用户.

select @@datadir 查看数据路径.

select @@basedir 查看 mysql 安装路径.

select @@version_compile_os 查看 mysql 安装的系统.

创建库: CREATE DATABASE test CHARSET utf8mb4;

创建表: CREATE TABLE t1 (data1 INT);

删除表: DROP TABLE t1;

修改表: ALTER TABLE t1 ADD NAME VARCHAR(32);

插入数据: INSERT INTO t1 VALUES (1, "first"), (2, "second"), (3, "third");

可利用 UNION 来确定数据库一个表中有多少个字段.

Web 程序层架构 :

  • 界面层, 用户电脑, 前端服务器
  • 业务逻辑层, 后端服务器
  • 数据访问层, SQL 服务器

如果访问页面时, 出现 You have an error in your SQL syntax 这类报错, 该页面可以推断出有 SQL 注入漏洞.

靶场环境 bwapp.

POST 方法请求时, url 中不会出现查询.

cookies 可以用来判断登录状态.

工具: Postman

可以通过找到 database -> tables -> columns

将一个 column 中的所有内容拼接为一个字符串:

1
select GROUP_CONCAT(column name) from 'table name';

密码加密为 cmd5, 上 cmd5.com 可破解.

判断 SQL 注入点

经典的单引号判断法: 在查找界面输入 ,, 若报错 (引号个数不匹配导致报错) 则可以判断有 sql 注入漏洞. (缺点: 必须要有回显才能判断)

通常注入类型分为两种类型, 一种字符串类型, 一种数字类型, 判断如:

  • select * from table_name where something = '1' and 1 = 1
  • select * from table_name where something = 1 and 1 = 1

SQL 注入盲注 Injection Blind

SQL 注入类型:

  • UNION query injection
  • Boolean-based blind SQL injection, 如 or 1 = 1, 这是一个衡为真的条件
  • Error-based SQL injection
  • Time-based blind SQL injection, 如 and sleep(10), sleep 是每查询一条 sleep 10 秒
  • Stacked queries SQL injection, 注入多条语句

常见函数:

  • substr, mid, 如 select substr('test', 1, 1) 返回 t, 即从第一个字符开始取, 取一个.
  • length, 如 select length('test') 返回 4
  • ascci, ord, 如 select ascii('test'), 返回第一个字符的 ASCII 码
  • count, 如 select count(*) from test, 有多少条数据就返回几
  • left, 如 select left('test', 2), 返回 e, 从最左边取几个

判断数据库名称长度, 如:

1
... and length(database()) = 1 and sleep(1);

网络安全-B-站教程2
http://example.com/2023/01/10/网络安全-B-站教程2/
作者
Jie
发布于
2023年1月10日
许可协议