nmap命令
- 对连续范围内主机扫描:Nmap –sn 192.168.0.1-255
- 对整个子网进行扫描:Nmap –sn 19168.0.1/24
- 对多个不连续的主机扫描:
Nmap –sn 192.168.0.1 192.168.0.2 192.168.0.3
- 扫描时候排除指定目标:
Nmap –sn 192.168.0.0/24 –exclude 192.168.0.2
- 扫描文本中ip地址Nmap –sn –iL list.txt
- 随机扫描:Nmap –ir 3
TCP端口扫描:(隐蔽)
-
- 扫描主机端口:nmap –sS 192.168.0.119 –p1-10000
- 扫描全部端口:nmap –sS 192.168.0.119 –p- --open
-
-
-
- Nmap –p- 192.168.0.119
-
-
-
- 扫描文本ip中的端口:nmap -sS -iL iplist.txt -p 80,21,22,23
UDP端口扫描:
扫描所有开放udp端口:nmap -sU 192.168.0.119
查看该udp端口是否开放:nmap 192.168.0.119 -sU -p 53
查看文本ip中多个端口:nmap -iL iplist.txt -sU -p 1-200
注意:nmap下有很多扫描脚本—— /usr/share/nmap/scripts/
Hping3隐蔽扫描
- 端口扫描:
- •hping3 1.1.1.1 --scan 80 -S
- • hping3 1.1.1.1 --scan 80,21,25,443 -S
- • hping3 1.1.1.1 --scan 0-65535 –S
- 发送数据包:
- –c:设定数据包个数:hping3 –c 2 192.168.0.119
- –i:设定发送数据包间隔时间:
- 默认时间单位s秒:hping3 –i 100 192.168.0.119 (100秒一个)
- 单位u微秒: hping3 –i u1 -c 192.168.0.119 (每微秒微秒10个包)
使用hping3进行DoS攻击:
# hping3 -c 10000 -d 120 -S -w 64 -p 80 --flood --rand-source testsite.com
-c:发送数据包的个数
-d:每个数据包的大小
-S:发送SYN数据包
-w:TCP window大小
-p:目标端口,你可以指定任意端口
–flood:尽可能快的发送数据包
–rand-source:使用随机的IP地址,目标机器看到一堆ip,不能定位你的实际IP;也可以使用-a或–spoof隐藏主机名
简单的SYN洪水攻击:
# hping3 -S --flood -V testsite.com
TCP连接攻击:
# nping3 --tcp-connect -rate=90000 -c 900000 -q testsite.com
全连接端口扫描
• dmitry -p 172.16.36.135
• dmitry -p 172.16.36.135 -o output
• nc -nv -w 1 -z 192.168.60.4 1-100
• for x in $(seq 20 30); do nc -nv -w 1 -z 1.1.1.1 $x; done | grep open
• for x in $(seq 1 254); do nc -nv -w 1 -z 1.1.1.$x 80; done
端口 —— 僵尸扫描(很隐秘)
原理:先向僵尸机发送一个syn,伪装成僵尸机的ip向目标发syn,再向僵尸机发送syn,如果僵尸机回的数据包IPID如果+2,那么目标端口开放!
命令进入scapy:
>>> i=IP()
>>> t=TCP()
>>> rz=(i/t)
>>> rt=(i/t)
>>> rz[IP].dst=”192.168.1.3”
>>>rz[TCP].dport=445
>>> rz[TCP].flags=”SA”
>>>
>>> rt[IP].src=”192.168.1.3
>>> rt[IP].dst=”47.104.193.69”
>>>rt[TCP].dport=3306
>>>rt[TCP].flags=”S”
>>>
>>>az1=sr1(rz)
>>>at=sr1(rt)
>>>az2=sr1(rz)
>>>az1
>>>az2
服务扫描banner
- Banner的python脚本:
• import socket
• bangrab = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
• bangrab.connect((“1.1.1.1", 21))
• bangrab.recv(4096)
• '220 (vsFTPd 2.3.4)\r\n'
• bangrab.close()
• exit()
• Bannerӧرᦜಬݐ҅recvڍහ෫ᬬࢧਖ਼೯᩸ѺѺ
• . /ban_grab.py 192.168.1.134 1 100
- 命令获取服务信息:
• dmitry -p 172.16.36.135
• dmitry -pb 172.16.36.135
•nmap -sT 1.1.1.1 -p 22 --script=banner
•nmap 192.168.1.3 –p1-100 -sV
• amap -B 172.16.36.135 21
• amap -B 172.16.36.135 1-65535
• amap -B 172.16.36.135 1-65535 | grep on
操作系统识别
- 使用python脚本识别:./ttl_os.py 192.168.3
• from scapy.all import *
• win=“1.1.1.1”
• linu=“1.1.1.2”
• aw=sr1(IP(dst=win)/ICMP())
• al=sr1(IP(dst=linu)/ICMP())
• if al[IP].ttl<=64: • print “host is Linux”
• else: • print “host is windows”
- 命令扫描操作系统:nmap –O 19168.1.3
Install xprobe2安装:xprobe2 192.168.1.3
- p0f命令监听端口访问:
- *安装:apt-get install p0f
- *命令p0f默认监听eth0网络接口。
- *查看可用网络接口;p0f –L
- *使用指定网络接口:p0f –i eth1
- 浏览器访问产生数据库流量即可进行监听。
- 目标主机开启snmp服务情况下可用:
命令:onesixtyone -c /usr/share/doc/onesixtyone/dict.txt 192.168.0.119 -w 100
命令:snmpwalk 192.168.20.199 -c public -v 2c
• snmpwalk -c public -v 2c 1.1.1.1 1.3.6.1.4.1.77.1.2.25
• snmpcheck -t 192.168.20.199
• snmpcheck -t 192.168.20.199 -c private -v 2
• snmpcheck -t 192.168.20.199 –w
扫描出主机名mac地址:nbtscan –r 192.168.1.0/24
详细扫描:enum4linux -a 192.168.1.3
Smtp扫描
• nc -nv 1.1.1.1 25
• VRFY root
• nmap smtp.163.com -p25 --script=smtp-enum-users.nse --script-args=smtp-enumusers.methods={VRFY}
• nmap smtp.163.com -p25 --script=smtp-open-relay.nse
• smtp-user-enum -M VRFY -U users.txt -t 10.0.0.1
防火墙识别: nmap -sA 172.16.36.135 -p 22
负载均衡识别:lbd www.baidu.com
WAF识别:
- 查看waf:wafw00f –l
- 扫描waf: wafw00f http://www.microsoft.com
- 扫描waf: nmap www.microsoft.com --script=http-waf-detect.nse