freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

OSCP | 第七章 主动信息收集 端口扫描
2022-04-11 15:55:36
所属地 广东省

TCP/UDP 扫描

TCP扫描

最简单的TCP端口扫描技术,通常称为连接扫描,依赖于三路TCP握手机制。

如果TCP三次握手成功,说明端口是打开的。

-w 选项指定以秒为单位的连接超时,并且-z 用于指定零I/O模式

kali@kali:~$ nc -nvv -w 1 -z 10.11.1.220 3388-3390
(UNKNOWN) [10.11.1.220] 3390 (?) : Connection refused
(UNKNOWN) [10.11.1.220] 3389 (?) open
(UNKNOWN) [10.11.1.220] 3388 (?) : Connection refused
sent 0, rcvd 0

UDP扫描

不需要三次握手也可以进行扫描,但是稳定性没有TCP高。

kali@kali:~$ nc -nv -u -z -w 1 10.11.1.115 160-162
(UNKNOWN) [10.11.1.115] 161 (snmp) open

UDP扫描可能会出现问题,原因有几个。

首先,UDP扫描通常不可靠,防火墙和路由器可能会丢弃ICMP数据包。这可能会导致误报和端口显示。 事实上,当它们关闭时,扫描结果会认为是开放的。

第二,许多端口扫描程序不会扫描所有可用端口,通常有一个预先设置的扫描“有趣端口”列表。这意味着打开UDP端口可能会被忽视。使用特定于协议的UDP端口扫描程序可能有助于获得更准确的数据。最后,渗透测试人员经常忘记扫描打开的UDP端口,而不是专注于“更令人兴奋”的TCP端口。

虽然UDP扫描可能不可靠,但存在大量攻击隐藏在开放UDP端口后面的向量。

Nmap

Nmap 我愿称之为诸神之眼,很多信息即使藏在肮脏至极的世界中,也逃不出他的法眼。

衡量我们的流量

iptables

netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。

默认的Nmap TCP扫描将扫描给定机器上1000个最常用的端口。在我们之前开始盲目运行扫描,让我们检查这种扫描发送的流量。

我们会扫描一台实验室机器,同时使用iptables。

我们将使用几个iptables选项。首先,我们将使用 -I选项在给定的链,在本例中包括输入(入站)和输出(出站)链

然后是规则编号。我们将使用 -s指定源IP地址,使用 -d指定源IP地址目标IP地址,和 -j以接受流量。最后,我们将使用 -Z选项将所有链中的数据包和字节计数器

使用展示

kali@kali:~$ sudo iptables -I INPUT 1 -s 10.11.1.220 -j ACCEPT
kali@kali:~$ sudo iptables -I OUTPUT 1 -d 10.11.1.220 -j ACCEPT
kali@kali:~$ sudo iptables -Z

kali@kali:~$ nmap -p 1-65535 10.11.1.220
Starting Nmap 7.70 ( https://nmap.org ) at 2019-03-04 11:27 EST
Nmap scan report for 10.11.1.220
Host is up (0.00067s latency).
Not shown: 65507 closed ports
PORT STATE SERVICE
21/tcp open ftp
53/tcp open domain
88/tcp open kerberos-sec
135/tcp open msrpc
139/tcp open netbios-ssn
389/tcp open ldap
445/tcp open microsoft-ds
464/tcp open kpasswd5
593/tcp open http-rpc-epmap
636/tcp open ldapssl
1291/tcp filtered seagulllms
3268/tcp open globalcatLDAP
3269/tcp open globalcatLDAPssl
3389/tcp open ms-wbt-server
5722/tcp open msdfsr
9389/tcp open adws
12777/tcp filtered unknown
46056/tcp filtered unknown

我们用 iptables分析一下我们有多少流量我们需要用来扫描

用参数 -v来输出更加详细的信息 -n规则输出 -L列出所有目前的链

kali@kali:~$ sudo iptables -vn -L
Chain INPUT (policy ACCEPT 1528 packets, 226K bytes)
pkts bytes target prot opt in out source destination
1263 51264 ACCEPT all -- * * 10.11.1.220 0.0.0.0/0
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 1323 packets, 191K bytes)
pkts bytes target prot opt in out source destination
1314 78300 ACCEPT all -- * * 0.0.0.0/0 10.11.1.220

我们可以看到 使用 默认的1000个端口TCP扫描 只需要 78kb流量

但是我们 扫描全端口(1-65535) 我们需要 4MB 流量

kali@kali:~$ sudo iptables -vn -L
Chain INPUT (policy ACCEPT 219K packets, 252M bytes)
pkts bytes target prot opt in out source destination
66243 2659K ACCEPT all -- * * 10.11.1.220 0.0.0.0/0
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 85792 packets, 11M bytes)
pkts bytes target prot opt in out source destination
66768 4006K ACCEPT all -- * * 0.0.0.0/0 10.11.1.220

大约算了一下 如果需要扫描一个网段(254个主机) 大致需要1000MB的流量

SYN扫描

Nmap首选的扫描技术是SYN或“隐形”扫描

SYN扫描是一种TCP端口扫描方法,包括将SYN数据包发送到各个端口 在目标机器上,而不完成TCP握手。如果TCP端口打开,则应发送SYN-ACK 从目标机器返回,通知我们端口已打开。

kali@kali:~$ sudo nmap -sS 10.11.1.220
Starting Nmap 7.70 ( https://nmap.org ) at 2019-03-04 11:27 EST
Nmap scan report for 10.11.1.220
Host is up (1.3s latency).
Not shown: 980 closed ports
PORT STATE SERVICE
21/tcp open ftp
53/tcp open domain
88/tcp open kerberos-sec
135/tcp open msrpc
139/tcp open netbios-ssn
389/tcp open ldap
445/tcp open microsoft-ds
464/tcp open kpasswd5

由于三方握手永远不会完成,因此信息不会传递到应用程序层,因此不会出现在任何应用程序日志中。由于发送和接收的数据包更少,SYN扫描也更快、更有效。

TCP扫描

当运行nmap的用户没有原始套接字权限时,nmap将默认使用前面描述的TCP连接扫描技术( 一般SYN扫描需要root权限)

我们会使用 -sT 参数来完成 TCP扫描

kali@kali:~$ nmap -sT 10.11.1.220
Starting Nmap 7.70 ( https://nmap.org ) at 2019-03-04 11:37 EST
Nmap scan report for 10.11.1.220
Host is up (1.3s latency).
Not shown: 980 closed ports
PORT STATE SERVICE
21/tcp open ftp
53/tcp open domain
88/tcp open kerberos-sec
135/tcp open msrpc
139/tcp open netbios-ssn
389/tcp open ldap
445/tcp open microsoft-ds
464/tcp open kpasswd5

UDP扫描

UDP扫描(-sU)还可以与TCP SYN扫描(-sS)选项结合使用,以构建更全面地了解我们的目标:

## UDP
kali@kali:~$ sudo nmap -sU 10.11.1.115

# UDP && SYN
kali@kali:~$ sudo nmap -sS -sU 10.11.1.115

网络探测技术

为了处理大量的主机,或者为了节省网络流量,我们可以尝试使用网络扫描技术探测目标,我们从大范围扫描开始,并使用针对感兴趣的主机进行更具体的扫描。

kali@kali:~$ nmap -sn 10.11.1.1-254

kali@kali:~$ nmap -v -sn 10.11.1.1-254 -oG ping-sweep.txt # 把输出结果存在 txt文件中

kali@kali:~$ grep Up ping-sweep.txt | cut -d " " -f 2

我们还可以在网络上搜索特定的TCP或UDP端口,探测公共服务和端口,试图定位可能有用的系统,或者存在已知漏洞的系统。这种扫描往往比平扫更准确。

kali@kali:~$ nmap -p 80 10.11.1.1-254 -oG web-sweep.txt
kali@kali:~$ nmap -sT -A --top-ports=20 10.11.1.1-254 -oG top-port-sweep.txt

为了节省时间和网络资源,我们还可以扫描多个IP,搜索常见端口的简短列表。

操作系统指纹

Nmap有一个名为OS指纹的内置功能,可以通过-O选项启用。

kali@kali:~$ sudo nmap -O 10.11.1.220
...
Device type: general purpose
Running: Microsoft Windows 2008|7
OS CPE: cpe:/o:microsoft:windows_server_2008:r2 cpe:/o:microsoft:windows_7
[*] OS details: Microsoft Windows 7 or Windows Server 2008 R2
Network Distance: 1 hop
...

操作系统指纹识别不是100%正确,但是是一个不错的尝试。

Banner抓取,服务枚举

我们还可以通过检查服务横幅(-sV)并针对目标运行各种操作系统和服务枚举脚本(–A),来识别在特定端口上运行的服务

kali@kali:~$ nmap -sV -sT -A 10.11.1.220

Nmap 脚本引擎

我们可以使用Nmap脚本引擎(NSE)启动用户创建的脚本,以便自动化各种扫描任务。

NSE的脚本在 /usr/share/nmap/scripts这个文件夹里

举个例子 我们使用 smb-os-discovery脚本 去连接SMB服务

kali@kali:~$ nmap 10.11.1.220 --script=smb-os-discovery

另一个很有用的 NSE脚本是 dns-zone-transfer

kali@kali:~$ nmap --script=dns-zone-transfer -p 53 ns2.megacorpone.com

Masscan

号称全世界最快的端口扫描器,他能在六分钟左右扫描整一个网络,每秒传输惊人1000万数据包。

# 先安装一下这个工具
sudo apt install masscan

考虑这个演示,用TCP端口80来定位大型内部网络上的所有机器。打开(使用-p80选项)。由于masscan实现了自定义TCP/IP堆栈,因此需要访问原始套接字,因此需要sudo。

要在PWK内部实验室网络的C类子网上尝试masscan,我们可以使用以下方法实例我们将添加一些额外的masscan选项,包括--rate以指定所需的数据包传输速率,-e指定要使用的原始网络接口,以及--ip路由器指定相应网关的IP地址:

kali@kali:~$ sudo masscan -p80 10.11.1.0/24 --rate=1000 -e tap0 --router-ip 10.11.0.1

补充 子网掩码

加餐 子网掩码

# 渗透测试 # 黑客 # 网络安全 # web安全 # OSCP
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录