主动信息收集——端口扫描

使用UDP进行扫描:

端口关闭:返回一个 ICMP  port-unreachable (端口不可达)的包

端口开放:没有回包

使用scapy发送一个UDP的数据包到靶机的53305端口,端口未开放。
u=UDP()
i=IP()
r=(i/u)
r[IP].dst="192.168.174.129"
r[UDP].dport=53305
sr1(r)

再将dport改成一个开放的UDP端口(53),结果没有回包

使用nmap进行UDP端口扫描:

-sU:使用UDP协议进行扫描(nmap只扫描常用的一千个端口)

-p:指定扫描的端口号

 

发送TCP包进行端口扫描:参考文章(https://www.cnblogs.com/bigcat47/p/9798973.html

  • 指定端口发送SYN包,端口未开发回复RST包,开放则回SYN-ACK包。
使用scapy发送一个SYN的TCP包到靶机
i=IP()
t=TCP()
r=(i/t)
r[IP].dst=192.168.32.129
r[TCP].dport=513
#TCP的flag默认使用S值(SYN)
sr1(r)

端口开发,返回SYN,ACK的包,系统内核返回RST包。

使用nmap半链接扫描:

-sS:不加参数nmap默认使用sS方式进行扫描。(发送SYN包)

--open:只显示open状态的端口

-p:指定端口范围

-iL:指定文件扫描多个ip

hping3:

--scan:指定端口范围,进行扫描命令

-S:使用SYN进行

--spoof:伪造源地址,目标机也只会给伪造地址回包

 

全连接扫描:

import logging
logging getLogger("scapy,runtime").setLevel(logging,ERROR)
from scapy.all import *

SYN=IP(dst="192.168.32.129")/TCP(dport=25,flags="S")

print"--SENT--"
#发送syn包
SYN.display()

print"\n\n-- RECEIVID --"
#获取回包
response=sr1(SYN.timeout=1,verbose=0)
response.display()

if int(response(TCP).flags==18:
	print"\n\n -- SENT --"
    #发送ACK包
	ACK=IP(dst"192.168.32.129")/TCP(dport=25,flags="A",ack=(response[TCP].seq+1)
	ACK.display()
	print"\n\n -- RECEVIED --"
	response2=sr1(ACK,timeout=1,verbose=0)
	response2.display()
else:
	print"SYN+ACK not returned"

结果:

系统内核先发送RST包,然后代码块才反应过来发送ACK包。

解决办法:

iptables -A OUTPUT -p tcp --tcp-flags RST RST -d 192.168.32.129 -j DROP

然后再执行脚本,TCP三次握手就可以正常执行

 

使用nmap进行全连接扫描:

-sT:全连接扫描

 

僵尸扫描:

nmap:

检查机器能否作为僵尸机(可不加-p参数)

nmap -p8099 172.17.13.240 --script=ipidseq.nse

回复ipid是Incremental(递增的),可作为僵尸机。

使用nmap进行僵尸扫描:

-sI:指定僵尸机地址

使用僵尸机172.17.13.240的9999端口进行僵尸扫描
nmap 47.97.105.24 -sI 172.17.13.240:9999 -Pn

很幸运,真实机中存在防火墙gg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值