0x02 常用渗透工具

3.1 SQLMap 详解

sqlmap 是一个自动化的SQL注入工具,内置很多绕过插件,支持市面上大多数据库。一般采用五种SQL注入技术。

布尔盲注:根据返回页面判断条件真假的注入

时间盲注:根据页面返回时间判断

报错注入:页面会返回错误信息

联合查询注入:使用 Union 的情况下注入

堆查询注入:执行多条语句的注入

sqlmap 中有数据库指纹识别、数据库枚举、数据提取、访问目标文件系统。

3.1.1 安装SQLmap(略)
3.1.2 入门
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
一个参数  sqlmap.py -u http://example.com/sql/?id=1

多个参数 sqlmap.py -u http://example.com/sql/?id=1&uid=2 会给出可能有漏洞的地方

txt文档 里面可以写入请求头
sqlmap.py -r 1.txt
-r 表示cookies 注入

查询当前用户下所有数据库
sqlmap.py -u http://example.com/sql/?id=1 --dbs

选择查询到的数据库
sqlmap.py -u xxxxxxxxxxxxxxxxxx -D xxxx

查询选择数据库的表名
sqlmap.py -u xxxxxxxxxxxxxxxxxx -D xxxx --tables

选择查询到的表
sqlmap.py -u xxxxxxxxxxxxxxxxxx -D xxxx -T yyyy

查询选择表的列名
sqlmap.py -u xxxxxxxxxxxxxxxxxx -D xxxx -T yyyy --columns

选择查询到的列名
sqlmap.py -u xxxxxxxxxxxxxxxxxx -D xxxx -T yyyy -C

获取字段内容
sqlmap.py -u xxxxxxxxxxxxxxxxxx -D xxxx -T yyyy -C id,pass --dump

读取数据库的所有用户
sqlmap.py -u xxxxxxxxxxxxxxxxxx --users

获取数据库用户的密码
sqlmap.py -u xxxxxxxxxxxxxxxxxx --passwords

获取当前网站数据库的名称
sqlmap.py -u xxxxxxxxxxxxxxxxxx --current-db

获取当权网站数据库的用户名称
sqlmap.py -u xxxxxxxxxxxxxxxxxx --current-user

3.1.2 sqlmap 进阶:参数讲解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
--level :探测等级
有5个等级,不加默认是1,5级最慢最全。
1级有get/post注入测试,2级加入http cookie,3级加入http user-agent/Referer

--is-dba :当前用户是否为管理权限
是 True 否 False

--roles :列出数据管理员角色(仅适用Oracle)

--referer: 添加http referer --level 3 以上

--sql-shell: 运行自定义SQL语句,自己输入

--os-cmd,--os-shell 运行任意操作系统命令
MySQL、PostgreSQL时,sqlmap上传一个二进制库,包含用户自定义函数sys_exec()和sys_eval(),即可以执行系统命令
Microsoft SQL server中,使用xp_cmdshell存储过程
使用--os-shell可以模拟真实的shell,可以使用INTO OUTFILE写入web后门

--file-read: 从数据库服务器中读取文件
MySQL、PostgreSQL、Microsoft SQL Server有权限时可以读取文件

--file-write --file-dest: 上传文件到数据库服务器中
还是以上三种SQL类型,
sqlmap.py -u xxxxxxxxxxxxxx --file-write xxx.exe --file-dest xxx.exe -v 1

3.1.4 sqlmap 自带绕过脚本 tamper 的讲解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
tamper:一个最小的tamper 脚本结构为priority变量定义和dependencies、tamper函数定义。
priority定义脚本的优先级,用于有多个tamper脚本的情况
dependencies函数声明该脚本适用/不适用的范围,可以为空
tamper函数接收payload和**kwargs,并返回一个payload.

用于绕过(WAF/IDS/IPS),可以对网站进行试探,使用参数 --identify-waf

常用的tamper脚本
apostrophemask.py 将引号替换为UTF-8,过滤单引号
base64encode.py 替换为base64编码
multiplespaces.py 围绕SQL关键字添加多个空格
space2plus.py 用+号代替空格
nonrecursivereplacement.py 作为双重查询语句,用双重语句代替预定义的SQL关键字
space2randomblank.py 将空格替换为其他有效字符
unionalltounion.py 将UNION ALL SELECT 替换为UNION SELECT
securesphere.py 追加特制的字符串
space2hash.py 将空格替换为#号,并添加一个随机字符串和换行符
space2mssqlblank.py(mssql) 将空格替换为其他空字符
space2mssqlhash.py 将空格替换为#号,并添加一个换行符
between.py 用NOT BETWEEN 0 AND 替换大于号, 用BETWEEN AND 替换等号
percentage.py ASP允许在每个字符前面添加一个%号
sp_password.py 从DBMS日志的自动模糊处理的有效荷载中追加sp_password
charencode.py 对给定的Payload全部字符使用URL编码(不处理已经编码的字符)
randomcase.py 随机大小写
charunicodeencode.py 字符串unicode编码
space2comment.py 将空格替换为/**/
equaltolike.py 将等号替换为like
greatest.py 绕过对”>“ 的过滤,用GREATEST替换大于号
ifnull2ifisnull.py 绕过对IFNULL的过滤,替换类似IFNULL(A,B)为IF(ISNULL(A),B,A)
modsecurityversioned.py 过滤空格,使用MySQL内联注释的方法进行注入
space2mysqldash.py 将空格替换为--,并添加一个换行符
bluecoat.py 在SQL语句之后用有效的随机空白符替换空格符,用LIKE替换等于号
versionedkeywords.py 注释绕过
halfversionedmorekeywords.py 当数据库为MySQL时绕过防火墙,在每个关键字之前添加MySQL版本注释
space2morehash.py 将空格替换为#号,并添加一个随机字符串
apostrophenullencode.py 用非法双字节unicode字符替换单引号
appendnullbyte.py 在有效负荷的结束位置加载字节字符编码
chardoubleencode.py 对给定的payload全部字符使用双重URL编码(不处理已经编码的字符)
unmagicquotes.py 用一个多字节组合(%bf%27)和末尾通用注释一起替换空格
randomcomments.py 用/**/分割SQL关键字

3.2 BurpSuite 详解

3.2.1 bp安装

3.2.2 入门

bp代理工具以拦截所有通过代理的网络流量,可以进行修改,再次提交

spider模块:爬行功能可以帮我们了解目标系统的结构

Decoder模块:解码平台

3.2.3 Bp 进阶

Scanner : 主要用与自动化检测web系统的各种漏洞。

3.3 Nmap 详解

nmap 特点:主机探测,探测网络上的主机,端口扫描:探测目标主机开放的端口。版本扫描:探测目标主机服务,判断服务名称和版本号。系统监测:探测目标主机的操作系统及网络设备的硬件特性。支持脚本编写。

3.3.1安装: 略

3.3.2 入门

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
扫描参数
-iL: 从文件中导入目标主机或目标网段
-iR: 随机选择目标主机
--exclude: 排除的主机或网段,即不扫描
--excludefile: 排除的主机或网段文件

-sL: list scan,仅列举指定目标ip,不进行主机发现
-sn: ping scan,只进行主机发现,不进行端口扫描
-Pn: 将所有指定的主机当作已开启,跳过主机发现过程。
-PS/PA/PU/PY:使用TCP SYN/ACK或者SCTP INIT/ECHO方式来发现
-PE/PP/PM: 使用ICMP echo、timestamp、netmask请求包发现主机
-PO: 使用IP协议包探测对方主机是否存活
-n/-R:-n 表示不进行DNS解析,-R表示总是进行DNS解析。
--dns-servers: 指定DNS服务器
--system-dns: 指定使用系统的DNS服务器
--traceroute: 追踪每个路由节点

-sS/sT/sA/sW/sM: 指定使用TCP SYN/Connect()/ACK/Window/Maimon scans的方式对目标主机进行扫描
-sU: 指定使用UDP扫描主机和端口
-sN/sF/sX: 指定使用TCP NULL/FIN/Xmac scans 秘密扫描方式扫描端口
--scanflags: 定制TCP包的flags
-sI: 指定使用Idle scan 的方式扫描目标主机
-sY/sZ: 使用SCTP INIT/COOKIE-ECHO 扫描SCTP协议端口
-sO: 使用IP protocol扫描确定目标支持的协议类型
-b: 使用FTP bounce scan扫描方式

-p: 指定端口扫描 -p- 全端口扫描
-F: Fast mode 快速扫描,仅扫描TOP 100的端口
-r: 不进行端口随机打乱的操作,一般是随机顺序进行扫描的
--top-ports: 扫描开放概率最高的n 个端口
--port-ratio: 扫描指定频率以上的端口,参数在0~1之间

-sV:指定让nmap 进行版本侦测
--version-intensity: 指定版本侦测强度(0~9),默认为7,数值越高越准确越慢
--version-light:指定使用轻量级侦测方式 级别为2
--version-all: 级别为9
--version-trace: 显示出详细的版本侦测过程信息

nmap 扫描端口的状态:

open 开放的

filtered 被过滤的,及扫描时被阻止

closed 关闭的

unfiltered 未被过滤,要进一步探测

open/filtered 不确定是开放还是过滤的

closed/filtered 不确定关闭还是过滤的

3.3.3 Nmap 进阶

nmap 脚本默认存在/xx/nmap/scripts文件下。主要有以下几类

auth: 负责处理鉴权证书(绕过鉴权)的脚本

Broadcast: 在局域网内探查更多服务的开启情况,如DHCP/DNS/SQLServer等

Brute: 针对常见的应用提供暴力破解方式,如http/smtp等

Default: 使用-sC 或-A 扫描时默认的脚本

Discovery: 对网络进行更多信息的搜集,如SMB枚举、SNMP查询等

DOS: 用于进行拒绝服务工具

Exploit: 利用已知的漏洞入侵系统

external: 利用第三方的数据库或资源。例:进行Whois解析

fuzzer: 模糊测试脚本,发送一场的包到目标机,探测出潜在漏洞

Intrusive : 入侵性脚本,此类脚本可能引发对方的IDS/IPS的记录或屏蔽

Malware: 与intrusive 相反,属于安全性脚本

version: 负责增强服务与版本扫描功能的脚本

vuln: 负责检查目标及是否有常见漏洞

常见脚本
1
2
3
4
5
6
7
8
9
--script=  选择脚本

-sC/--script=default 使用默认脚本
--script=xxxxx
--script-args=key1=p1,key2=p2 该参数用于传递脚本里的参数
--script-args-files=filename 使用文件为脚本提供参数
--script-trace 如果设置该参数,则显示脚本执行过程中发送与接受的数据
--script-updatedb 脚本数据库更新
--script-help 输出指定脚本的使用参数

实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
鉴权扫描
nmap --script=auth xxx.xxx.xx.xx

暴力破解攻击
nmap --script=brute xxx.xxx.xx.xx

扫描常见漏洞
nmap --script=vuln xxx.xx.xx.xx

应用服务扫描
nmap --script=realvnc-auth-bypass xxx.xxx.xx.xx

探测局域网内更多服务开启情况
nmap -n -p 445 --script=broadcast xxx.xx.xxx.xx

whois 解析
nmap -script external baidu.com
Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2023 Limbus
  • Visitors: | Views:

请我喝杯茶吧~

支付宝
微信