主动信息收集介绍
直接与目标系统交互通信,无法避免留下访问痕迹,使用受控的第三方电脑进行探测,使用代理或已经被控制的机器扫描,扫描发送不同的探测,根据返回结果判断目标状态
基于TCP/IP模型进行扫描
-
二层扫描 扫描速度快可靠,不可路由
-
三层扫描 扫描速度快可靠,可路由,可能被边界防火墙过滤
-
四层扫描 扫描速度慢可靠,可路由,不太可能被边界防火墙过滤
二层扫描命令
1、 arping工具
功能优点:arping主要查看IP的MAC地址,ARP协议主要负责将局域网中的 32位IP地址转换为对应的48位物理地址
缺点:arping工具只能ping一个IP地址,不能ping一个IP段。但是可以通过脚本将整个网络中的IP进行扫描
-c:发送指定数量的arp包后,立即停止退出
-d:当局域网有IP占用的时候,可以指定这个参数,当有相同的IP的不同 MAC地址reply的时候,arping会退出,退出码为1
-r:输出的时候只打印MAC
-R:输出的时候只打印IP
-s:指定源MAC地址
-S :指定源IP地址
-q:表示不打印输出
2、Netdiscover工具
功能优点:Netdiscover是一个主动/被动的 ARP侦查工具。使用 Netdiscover工具可以在网络上扫描 IP地址检查在线主机或搜索为它们发送的 ARP请求
主动模式:主动发起arp请求,等待其他主机回包
netdiscover –i 网卡名 –r IP/网络位
netdiscover –l IPList.txt
缺点:容易触发报警,往往会引起网络管理员的注意
被动模式:网卡被设置为混杂模式来侦听网络内的arp数据包进行被动式探测,需要网络内设备发送arp包才能被探测到
netdiscover –p
缺点:速度比较慢,需要网络内设备发送arp包才能被探测到
3、nmap工具 Network Mapper网络扫描和嗅探工具包,可以结合脚本对应用层的扫描和对网络弱点发现。系统管理者和个人可以使用这个软件扫描大型的网络获取那台主机正在运行以及提供什么服务等信息。
-sn 只 ping扫描,不进行端口扫描
–iL 支持对IP文件的扫描
nmap -sn 192.168.1.0/24
4、scapy可以让用户发送、侦听和解析、伪装网络报文的python程序,可以使用python调用单独进行使用,用于抓包、分析、创建、修改、注入网络流量
scapy
>>> ARP().display()
###[ ARP ]###
hwtype= 0x1
ptype= 0x800
hwlen= 6
plen= 4
op= who-has
hwsrc= 00:0c:29:7a:bf:3c
psrc= 192.168.1.53
hwdst= 00:00:00:00:00:00
pdst= 0.0.0.0
>>> p=sr1(ARP(pdst="192.168.1.11"))
Begin emission:
*Finished sending 1 packets.
Received 1 packets, got 1 answers, remaining 0 packets
>>> p.display()
###[ ARP ]###
hwtype= 0x1
ptype= 0x800
hwlen= 6
plen= 4
op= is-at
hwsrc= 3c:95:09:22:9a:8f
psrc= 192.168.1.11
hwdst= 00:0c:29:7a:bf:3c
pdst= 192.168.1.53
###[ Padding ]###
load= '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
三层扫描命令
1、ping工具判断主机之间网络是否畅通,判断我们的目标主机是否存活
ping 192.168.1.1 -c 3
缺点:不能对一个IP段进行ping扫描
2、fping工具ping命令的加强版可以对一个IP段进行ping扫描
fping -h ##帮助文档
fping -g 192.168.1.0/24 -q -R -a > /opt/demo.txt
-a 显示可ping通的目标
-f 从文件获取目标列表
-g 地址段进行扫描如果不加可以对某个IP进行扫描
-q 安静模式(不显示每个目标或每个ping的结果)
-R random packet data 随机发送ping数据包
3、traceroute工具探测追踪路由,能知道中间经过了哪些网络设备
traceroute 114.114.114.114
5、nmap工具
nmap -Pn 192.168.1.0/24
-Pn 将所有指定的主机视作开启的,跳过主机发现的过程
-sP : ping扫描
nmap -sP 192.168.1.0/24
6、scapy工具定制Ping包, IP()生成Ping包的源IP和目标IP ,ICMP() 生成Ping包的类型。使用 IP()和ICMP()两个函数 ,可以生成 Ping包
scapy
>>> IP().display()
###[ IP ]###
version= 4
ihl= None
tos= 0x0
len= None
id= 1
flags=
frag= 0
ttl= 64
proto= hopopt
chksum= None
src= 127.0.0.1
dst= 127.0.0.1
\options\
>>> ICMP().display()
###[ ICMP ]###
type= echo-request
code= 0
chksum= None
id= 0x0
seq= 0x0
>>> p=sr1(IP(dst="192.168.1.11")/ICMP())
Begin emission:
.Finished sending 1 packets.
*
Received 2 packets, got 1 answers, remaining 0 packets
>>> p.display()
###[ IP ]###
version= 4
ihl= 5
tos= 0x0
len= 28
id= 21146
flags=
frag= 0
ttl= 64
proto= icmp
chksum= 0xa4b6
src= 192.168.1.11
dst= 192.168.1.53
\options\
###[ ICMP ]###
type= echo-reply
code= 0
chksum= 0xffff
id= 0x0
seq= 0x0
###[ Padding ]###
load= '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
四层扫描命令
1、Hping工具 是TCP/IP数据包组装/分析工具,通常web服务会用来做压力测试使 用,也可以进行 DOS攻击的实验
缺点:只能对一个目标发送TCP/IP数据包
hping3 -h ##帮助文档
hping3 -c 10 -d 120 -S -w 64 -p 80 --rand-source --flood baidu.com
-c 发送的数据包的数量
-d 发送到目标机器的每个数据包的大小
-S 只发送SYN数据包
-w TCP窗口大小
-p 目的地端口
--flood 尽可能快地发送数据包
--rand-source 使用随机性的源头IP地址,通过路由器后还会还原成真实的IP地址
2、nc工具 netcat。实现任意 TCP/UDP端口的侦听,nc可以作为 server以TCP或UDP方式侦听指定端口。端口的扫描,nc可以作为client发起 TCP或UDP连接。
nc -nv 192.168.1.1 -w 1 -z 1-1024
-nv 扫描的目标是个IP地址不做域名解析
-w 超时时间
-z 端口扫描
3、namp工具
nmap -PS 192.168.1.11
-PS 使用TCPSYN探测主机
nmap -sT 192.168.1.11
-sT TCP connect()扫描
nmap -sS 192.168.1.11
-sS TCP同步扫描(TCP SYN)
nmap -sA 192.168.1.11
-sA ACK扫描
nmap -sF 192.168.1.11
nmap -sN 192.168.1.11
-sF -sN 秘密FIN数据包扫描
nmap -sU 192.168.1.11
-sU UDP扫描
nmap -sW 192.168.1.11
-sW 滑动窗口扫描
nmap -sR 192.168.1.11
-sR RPC扫描
nmap -b username:password[@server](https://my.oschina.net/servingyou):port 192.168.1.11
-b FTP反弹攻击扫描
4、scapy工具
scapy
>>> IP().display()
###[ IP ]###
version= 4
ihl= None
tos= 0x0
len= None
id= 1
flags=
frag= 0
ttl= 64
proto= hopopt
chksum= None
src= 127.0.0.1
dst= 127.0.0.1
\options\
>>> TCP().display()
###[ TCP ]###
sport= ftp_data
dport= http
seq= 0
ack= 0
dataofs= None
reserved= 0
flags= S
window= 8192
chksum= None
urgptr= 0
options= []
>>> UDP().display()
###[ UDP ]###
sport= domain
dport= domain
len= None
chksum= None
>>> p=sr1(IP(dst="192.168.1.11")/TCP(flags="S",dport=443))
Begin emission:
.Finished sending 1 packets.
*
Received 2 packets, got 1 answers, remaining 0 packets
>>> p.display()
###[ IP ]###
version= 4
ihl= 5
tos= 0x0
len= 44
id= 21763
flags= DF
frag= 0
ttl= 64
proto= tcp
chksum= 0x6238
src= 192.168.1.11
dst= 192.168.1.53
\options\
###[ TCP ]###
sport= https
dport= ftp_data
seq= 3716316486
ack= 1
dataofs= 6
reserved= 0
flags= SA
window= 65392
chksum= 0xb87b
urgptr= 0
options= [('MSS', 1460)]
###[ Padding ]###
load= '\x00\x00'
>>> p[IP].dst
'192.168.1.53'
>>> exit()
僵尸扫描命令
nmap -sS 192.168.1.0/24 --script=ipidseq.nse
nmap 192.168.1.11 -sI 192.168.1.202
-sI idle scan扫描目标主机,前提需要找到合适的zombie host
来源:oschina
链接:https://my.oschina.net/u/3861671/blog/3191421