Nmap

扫描多个目标

nmap 192.168.1.10 192.168.1.20
nmap 192.168.1.10-192.168.20

详细扫描输出

nmap -v 192.168.1.10

指定端口扫描

默认扫描1到10000端口

单端口

nmap -p 3389 192.168.1.10

端口范围

nmap -p 1-3000 192.168.1.10

端口组合扫描

nmap -p 3389,1-3000 192.168.1.10

扫描排除

排除就是在当扫描某一个网段的时候,不扫这个主机

排除一个主机

nmap 192.168.1.0/24 -exclude 192.168.1.100    # 排除 .100 的主机

排除文件中的主机

文件ip.txt里写的是IP地址

nmap 192.168.1.0/24 -exclude ip.txt

Ping扫描

主要用来探测主机存活,并不是探测端口开放

nmap -sP 192.168.1.0/24
-sn ping扫描,即主机发现

SYN半开放扫描

不需要通过完整握手,目标主机不会产生会话。更加隐蔽

nmap -sS 192.168.1.10

TCP/UDP扫描

TCP扫描

nmap -sT 192.168.1.10

UDP扫描

nmap -sU 192.168.1.10

版本扫描

检测目标主机上端口运行的软件版本,不是用于扫描主机和端口,但是需要通过开放的端口去判断。非常的慢。最好在测试之前先知道哪些端口开放,再针对端口去扫描

nmap -sV 192.168.1.10

操作系统扫描

nmap -O 192.168.1.10
nmap -O --osscan-guess 192.168.1.10 # 猜测匹配,猜测匹配最接近的操作系统

不用ping主机

ping被拦截的情况下使用

nmap -O -PN 192.168.1.10

从文件中读取扫描

读取文件里面的ip地址扫描

nmap -iL ip.txt

路由跟踪扫描

nmap -traceroute 192.168.1.10

输出格式

扫描的结果输出到屏幕,同时保存到1.txt

nmap -p 3389 -oG 1.txt 192.168.1.10

Nmap脚本

漏洞扫描

nmap --script=vuln 192.168.1.10

信息收集

nmap --script=http-enum 192.168.1.10

子域名爆破

nmap --script=dns-brute www.baidu.com

SSH爆破

nmap -p 22 --script=ssh-brute --script-args userdb=user.txt,passdb=passwd.txt 192.168.1.10
# --script-args 指定用户及密码字典

MySQL爆破

nmap -p 3306 --script=mysql-brute.nse --script-args userdb=user.txt,passdb=passwd.txt 192.168.1.10

TELNET爆破

nmap -p 23 --script=telnet-brute.nse --script-args userdb=user.txt,passdb=passwd.txt 192.168.1.10

SMB爆破

nmap -p 445 --script=smb-brute.nse --script-args userdb=user.txt,passdb=passwd.txt 192.168.1.10

FTP爆破

nmap -p 21 -sT --script=smb-brute.nse --script-args userdb=user.txt,passdb=passwd.txt 192.168.1.10

参考

Nmap工具使用

Nikto

查看参数

nikto -h

查看插件

nikto --list-plugins

对目标进行扫描

nikto -host http://192.168.1.10 
# 可以是url的形式,也可以扫描文本里面的ip
nikto -host ip.txt

指定端口进行扫描

默认80端口,检查ssl一些常见问题

nikto -host https://192.168.1.10 -ssl -port 443

结果输出

支持:html、csv、json、nbe、sql、txt、xml

nikto -host http://192.168.1.10 -o result.html

IDS躲避

1 随机url编码
2 只选择路径
3 提前结束url
4 优先考虑长随机字符串
5 参数欺骗
6 使用tab作为命令分隔符
7 变化的url
8 使用windows路径分隔符

使用evasion后跟序号即可

nikto -host https://192.168.1.10 -ssl -port 443 -evasion 123456
# 使用IDS躲避规则的123456条来进行扫描

配合nmap使用

nmap扫描80端口的IP,并通过oG输出结果,通过“|”导入至nikto进行扫描

nmap -p 80 192.168.1.10 -oG - | nikto -host -

使用代理扫描

避免暴露IP可以进行代理扫描,参数-useproxy,需要配合代理工具

nikto -h 192.168.1.10 -userproxy 127.0.0.1:8080