主动信息收集
利用代理发请求做到隐蔽,否则容易被封杀; 利用噪声,淹没真实的探测流量
发现-二层发现(arp层):
不可路由,基于广播
控制一台机器,利用二层工具,将控制的机器当作跳板继续进行渗透
基于arp的都只能在本网段进行扫描
-
arpingping: arp -d 可以发现两个不同的mac地址但生成相同的ip地址(arp欺骗)
缺点:只能ping一个,自动化通过脚本实现
-
nmap nmap -sn 10.1.1.1-20 #扫描1-20,不仅扫描出ip状态还可以扫描出主机信息
nmap -iL addr -sn #调用addr的ip列表文件进行一个一个扫描
-
netdiscover命令: 主动:netdiscover -i eth0 -r 1.1.1.0/24
netdiscover -I iplist.txt
被动:netdiscover -p (可能网卡要进入混杂模式)
-
利用scapy: ARP().display()
sr1():发包函数
e.g:
arp=ARP()
arp.pdst=”198.21.2.2”
sr1(arp) #进行发包
-
或者直接编程python脚本
发现-三层发现(ip,icmp层):
icmp(internet控制管理协议),进行路径的发现,网络通断 优点: 可路由;速度较快 缺点: 速度比二层慢;经常被防火墙过滤(结果可能不准确)
-
ping命令 ping -c 2 ip
批量的进行ping使用bash文件
-
traceroute 跟踪记录
-
scapy eg:
i=IP()
p=ICMY()
ping=(i/p)
ping.display()
ping[IP].dst=1.1.1.1
a=sr1(ping) #发送ping包
a.display()
-
nmap nmap -sn ip
-
fping fping -g 1.1.1.1/24 -c 1 支持网段
-
hping 能发送几乎所有tcp/ip包
功能强大但只能扫描一个
可以一定程度上实现拒绝服务攻击
hping3 10.226.131.213 --icmp -c 2
可编写shell脚本进行批量
发现-四层发现(tcp,udp层)
并不对端口进行识别,本质是利用四层通信识别目标ip是否在线,ip是否在线的状态 优点: 可路由结果可靠 不太可能被防火墙过滤 甚至可以发现所有端口都被过滤的主机 缺点: 基于状态过滤的防火墙可能过滤扫描 全端口扫描速度慢
-
tcp发现 未经握手直接发ACK包 若返回RST则在线
eg:
i=IP()
t=TCP()
r=(i/t)
r.display()
r[IP].dst=”1.1.1.1”
r[TCP].dport= #端口设置
或者python脚本
-
UDP 上面t换成
u=UDP()
-
nmap
端口扫描
-
udp扫描:
a. scapy
基于UDP
端口关闭:ICMP port-unreachable
端口开放:没有回包
基于这种特征判断端口是否开放
b.nmap
基于UDP
nmap -sU 1.1.1.1 默认如果不指定,nmap扫描1000个常用的
nmap -sU 1.1.1.1 -p53
nmap -sU 1.1.1.1 -p- (nmap -sU 1.1.1.1 -p1-65535)扫描1-65535个端口
-
tcp扫描 使用tcp可以使用隐蔽的手段
三次握手
僵尸扫描(几乎不和目标系统产生会话)
全连接扫描(完整的三次握手,不隐蔽)
所有扫描方式都是基于三次握手的变化来判断端口状态
-
隐蔽扫描-syn 发出syn
回ack/syn
随后我就不回syn,直接回rst断开链接
1.scapy或python脚本
2.nmap -sS 1.1.1.1 -p1-100
3.hping3 1.1.1.1 –scan 1-100 -S
不建立完整链接
应用日志不记录扫描行为-隐蔽
-
全连接端口扫描 使用scapy的话必须限制不回rst,不断开链接,但是只能通过防火墙添加规则进行
nmap -sT 1.1.1.1 -p1-100
dmitry -p 1.1.1.1
不光可以扫描出ip以及端口,还可以扫描出mac,校园网一般会被锐捷屏蔽扫不出mac地址但是nmap可以 -
僵尸扫描
实施条件苛刻 可伪造源地址 选择僵尸机 1.闲置系统 2.系统使用递增的ipid
scapy 的python脚本文件
僵尸扫描文件下的zombie.py
nmap实现僵尸扫描
nmap有大约400个脚本
nmap -p445 1.1.1.1 –script=ipidseq.nse #查看ipid是否是递增的
nmap 1.1.1.1(target) -sI 1.1.1.2(zombie) -Pn -p 1-100
服务扫描
识别开放端口上运行的应用 识别目标操作系统 提高攻击效率
- Banner捕获(不一定准,有可能是迷惑,故意设置)
- 服务识别
- 操作系统识别
- SNMP分析(比较准)
- 防火墙识别
Banner:
软件开发商 软件名称 服务类型 版本号:直接发现已知的漏洞和弱点 连接建立后直接获取banner 另类服务识别
-
特征行为和响应手段 -
不同的相应可用于识别底层操作系统
nc -nv 1.1.1.1 80
python socket
>>> import socket
>>> banner=socket.socket(socket.AF_INET.socket.SOCK_STREAM)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'int' object has no attribute 'socket'
>>> banner=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
>>> banner.connect("10.226.210.175",445)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/socket.py", line 228, in meth
return getattr(self._sock,name)(*args)
TypeError: connect() takes exactly one argument (2 given)
>>> banner.connect(("10.226.210.175",445))
>>> banner.recv(4096)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
socket.error: [Errno 104] Connection reset by peer
>>>
KeyboardInterrupt
>>> banner.close()
>>> exit()
dmitry
dmitry -pb 1.1.1.1
nmap
nmap -sT 1.1.1.1 -p1-100 --script=banner.nse
amap
amap 1.1.1.1 -qb
amap 1.1.1.1 -B
SNMP扫描:
监控情况 简单网络管理协议 Community strings 信息查询或重新配置 识别和绕过防火墙筛选 信息的金矿 经常被错误配置 MIB Tree snmp Management Information Base(MIB) 树形的网络设备管理功能数据库
onesixtyone 1.1.1.1 public
onesixtyone -c /usr/share/doc/onesixtyone/dict.txt 10.226.143.55 -o my.log -w 100
snmpwalk 1.1.1.1 -c public -v 2c
snmpwalk
snmpwalk -c public -v 2c 1.1.1.1
snmpcheck
snmpcheck -t 1.1.1.1
操作系统扫描:
TTL起始值 windows :128(65-128) linux/unix:64(1-64) 某些unix:255
aw=sr1(IP(dst=“10.226.235.30”)/ICMP())
查看aw[IP].ttl的值
nmap
nmap -O 1.1.1.1
SMB扫描
server message block协议
微软历史上出现安全问题最多的协议
实现复杂
默认开放
文件共享
空会话未身份认证访问(SMB1)
密码策略
用户名
组名
机器名
用户、组SID
nmap
nmap -v -p139,445 1.1.1.1/24 –open
nmap 1.1.1.1 -p139,445 --script=smb-os-discovery-nse
nmap -v -p139,445 --script=smb-vuln-* --script-args=unsafe=1 10.226.233.230
(能扫出漏洞)
nbtscan √
nbtscan -r 1.1.1.1/24
可以跨网段发arp,扫mac地址
enum4linux -a 1.1.1.1
smtp扫描
发现目标系统的邮箱账号 nmap 183.232.93.197 -p25 --script=smtp-enum-users.nse --script-args=smtp-enum-users.methods={VRFY} (默认查看有没有root的用户) smtp-user-enum -M VRFY -U users.txt -t 10.0.0.1 (user字典) 开放中继很值得去扫,开放后所有人都可以用你的邮件服务器给别人发邮件(open-replay)
防火墙识别:
通过检查回包,可能识别端口是否经过防火墙过滤 设备多种多样,结果存在一定误差
Nmap有系列防火墙过滤检测功能
nmap -sA 1.1.1.1 -p22
负载均衡识别:
广域网负载平衡 智能DNS 服务器负载平衡 Nginx Apache
targrt:目标域名下有多少服务器
lbd www.baidu.com
WAF识别
web应用防火墙(基于规则过滤)
使用wafw00f -l
wafw00f www.baidu.com
使用nmap
nmap可以扫描出jw1,wafw00f不可以 nmap jw1.yzu.edu.cn --script=http-waf-detect.nse
nmap详细介绍
nmap -iR 100 -p22 随机扫100个22端口(全球) -sn 不做端口扫描 -Pn 不管有没有回包都是在探测完端口后进行判断主机是否存活
|