2.端口扫描等-安全牛

文章目录

  • 介绍
  • 原理
  • 方法
    • UDP扫描端口
    • TCP扫描端口
      • 隐蔽扫描
        • hping3
        • nmap
        • scap
      • 僵尸扫描
        • nmap
        • scap
      • 全连接扫描
        • dmitry
        • nc
        • nmap
        • scap
    • 服务扫描
      • banner捕获
        • dmitry
        • amap
        • nc
        • nmap
        • python脚本
      • 服务识别
        • amap
        • nc
        • nmap
      • 操作系统识别
        • 操作系统识别简单原理
        • xprobe2
        • nmap
        • p0f被动识别
        • python脚本
      • SNMP分析
        • onesixtyone
        • snmpcheck
      • SMB扫描(文件共享协议)
      • SMTP扫描(邮箱发现)
      • 防火墙识别
        • nmap
        • python脚本
      • 负载均衡识别
      • WAF识别

介绍

端口扫描目的是 发现开放的端口 ,以及 端口背后的服务程序等

原理

TCP扫描端口:基于三次握手

隐蔽扫描:不会建立完整连接,目标应用层不会留下日志记录,但网络层会。
发送SYN–发回SYN/ACK–发送RST以结束握手(不建立连接)

僵尸扫描
1.scanner(扫描机)向zombie(僵尸机)发送SYN,ACK,zombie不知道怎么回事,返回RST和IPID=x
2.scanner(伪装成zombia的IP)向target发送SYN,target向zombia发送SYN,ACK。zombia向target返回RST IPID=X+1.。(当端口关闭则target向zombia返回RST,zombia收到RST后无操做)
3.scanner向zombia发送SYN,ACK。zombia向scanner返回RST IPID=X+2
当scanner收到的IPID两次相差2的时候,说明这个端口开放。

全连接扫描:建立完整的三次握手。

UDP:若端口关闭则返回ICMP

方法

UDP扫描端口

nmap -sU -p 531.1.1.1
nmap -il iplist.txt -p 1-200
-p(小写):指定端口
不指定端口则默认扫描1000个常用端口

TCP扫描端口

隐蔽扫描

hping3

hping3 1.1.1.1 --scan 80 -S
-S:SYN 隐蔽端口扫描

--spoof:伪造源地址。(本机会无法接收到目标返回的包)

nmap

nmap -sS 1.1.1.1 -p-
-sS:TCP SYN扫描。它不打开一个完全的TCP连接。它发送一个SYN报文,返回 SYN/ACK表示端口开放,而 RST (复位)表示端口关闭。

nmap -sS iL iplist.txt -p 80

nmap 1.1.1.1 -p- --open
这样写默认也是SYN端口扫描
--open:只显示open的端口。

scap

2.端口扫描等-安全牛_第1张图片
flag == 18 是SYN和ACK’位都置为1

僵尸扫描

nmap

2.端口扫描等-安全牛_第2张图片
-sI 指定zombia

scap

2.端口扫描等-安全牛_第3张图片
2.端口扫描等-安全牛_第4张图片
上面自定义函数ipid(zombia):用来判断目标机器是否适合作为僵尸机。
上面6,7行函数sr1()发送后直接收一个返回包。send()发送后不接收包。

全连接扫描

dmitry

dmitry -p 1.1.1.1
dmitry -p 1.1.1.1 -o output

nc

nc -nv -w 1 -z 1.1.1.1 1-100
for x in $(seq 20 30); do nc -nv -w  1 -z 1.1.1.1 $x ; done  |  grep  open

nmap

nmap -sT 1.1.1.1 -p 80
nmap -sT -iL 1.1.1.1 -p 80

scap

SYN包扫描的缺点:目标机器有防火墙过滤情况下SYN包扫描无效。这就需要全连接扫描
全连接扫描结果是最准确的。但是不隐蔽。

注意:当我们向目标发送SYN,目标返回SYN,ACK,我们的内核会认为这个包是非法的,会自动返回RST,导致连接中断。所以我们为了达到目的必须终止内核的这个功能在这里插入图片描述
用这个命令可以禁止发向目标地址的RST包。
原理:iptables的工作顺序在内核之前。-A是指定规则,OUTPUT是出栈,-p是协议,后面是指定tcp特征是RST,-d是目标IP。-j指定动作,DROP是禁止。
2.端口扫描等-安全牛_第5张图片

服务扫描

banner捕获

要获取banner必须建立完整的连接。

dmitry

dmitry -pb 1.1.1.1
-p  执行TCP扫描
-b  从扫描端口获得banner    默认会做常用端口的扫描。

amap

amap -B 1.1.1.1 1-65535 | grep on
amap专门用来发现端口服务的软件。
-B  发现目标banner

nc

nc -nv 1.1.1.1 22

nmap

nmap -sT 1.1.1.1 -p 22 --scrip=banner.nse

python脚本

2.端口扫描等-安全牛_第6张图片

服务识别

用banner识别准确性不高,nmap提供更强大的指纹识别服务。

amap

amap 1.1.1.1  1-100 -q
-q  整理显示。(不然显示很乱)

nc

nc -nv 1.1.1.1 80

nmap

nmap 1.1.1.1 -p 80 -sV

用banner识别准确性不高,nmap提供更强大的指纹识别服务。
-V 通过指纹特征识别端口后的服务。

操作系统识别

操作系统识别简单原理

TTL值:windows 65-128
linux/unix 1-64
某些unix 255

xprobe2

xprobe2 1.1.1.1

nmap

nmap 1.1.1.1 -O

p0f被动识别

直接输入p0f

python脚本

利用TTL值2.端口扫描等-安全牛_第7张图片

SNMP分析

详细看这里
一般利用onesixtyone发现Coummunty Strings,再利用snmpcheck提取所有可能的信息。

onesixtyone

如果知道对方的Coummunty Strings是public
onesixtyone 1.1.1.1 public
如果不知道对方的Coummunty Strings可以暴力破解
onesixtyone  -c  /usr/share/doc/onesixtyone/dict.txt   58.215.76.23  -o  my.log  -w  100

字典目录可以用dpkg -L onesixtyone 查看

snmpcheck

获取Coummunty Strings用这个软件提取信息
假设我们获得的串是mike

snmpwalk  -v1  -c  mike 192.168.131.135 > snmpout.txt   者命令会显示所有的MIB
snmpwalk  -c mike  -v1 192.168.131.135 1.3.6.1.4.1.77.1.2.25   获取指定MIB的信息

SMB扫描(文件共享协议)

SMB:(全称是Server Message Block)是一个协议名,它能被用于Web连接和客户端与服务器之间的信息沟通。
2.端口扫描等-安全牛_第8张图片
smb有两个最常用的端口,一个是TCP的139一个是TCP的445.新版本多用445.
-v是显示详细结果。

smb-check-vulns这个脚本是扫描可以利用的漏洞,后面是给脚本赋值.unsafe=1就是赋值。
这个脚本查的是windows的漏洞,无法扫描linux
注意:unsafe=1这个赋值会对目标进行有破坏性的扫描,如果对象是自己公司的服务器要慎重。

SMTP扫描(邮箱发现)

2.端口扫描等-安全牛_第9张图片

防火墙识别

原理:2.端口扫描等-安全牛_第10张图片

nmap

nmap -sA 1.1.1.1 -p22   nmap扫描会识别防火墙
用nmap发送一个SYN包再发送一个ACK包,看返回,来识别防火墙过滤规则。

python脚本

2.端口扫描等-安全牛_第11张图片

负载均衡识别

lbd www.baidu.com

WAF识别

2.端口扫描等-安全牛_第12张图片

你可能感兴趣的:(信息安全)