端口扫描
scapy#!/usr/bin/python import logging
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
from scapy.all import*
import time
import sys if len( sys.argv ) !=4:
print "Usage - ./udp_scan.py [Target.IP] [First Port] [Last Port]"
print "Example - ./udp_scan.py 1.1.1.1 1 100"
print "Example will UDP port scan ports 1 through 100 on 1.1.1.1"
sys.exit() ip=sys.argv[1]
start=int(sys.argv[2])
end=int(sys.argv[3]) for port in range(start,end):
a=sr1(IP(dst=ip)/UDP(dport=port),timeout=5,verbose=0)
time.sleep(1) #防止因扫描过快,造成误判
if a==None:
print port
else:
passNmap
root@kali:~# nmap 192.168.1.1 -sU -p 53,67 #默认不加-p,扫描1000常用端口 Starting Nmap 7.01 ( https://nmap.org ) at 2016-09-11 11:39 CST
Nmap scan report for DD-WRT (192.168.1.1)
Host is up (0.0048s latency).
PORT STATE SERVICE
53/udp open domain
67/udp open|filtered dhcps
MAC Address: 1C:BD:B9:27:D5:32 (D-Link International) Nmap done: 1 IP address (1 host up) scanned in 1.50 seconds指定地址列表
nmap -iL iplist.txt -sU -p 1-200
1、全连接扫描——SYN、SYN+ACK、ACK
建立完整TCP三次连接,结果最最准确不需要任何权限,系统中的任何用户都有权利使用这个调用,而且速度快,但容易被发觉。scapy对全连接扫描比较困难若直接给目标系统发SYN+ACK/ACK,dst会认为是异常包,回应RSTTCP扫描:【操作系统内核,会认为没建立完整的连接,会返回一个RST,表示请求断开连接】需要避免接受此包,以免混淆后续操作。让RST包不产生iptables,linux防火墙,工作位置在内核之前使用策略:iptables -A OUTPUT -p tcp --tcp-flags RST RST -d 192.168.20.2 -j DROP再运行脚本#!/usr/bin/python import logging
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
from scapy.all import* SYN=IP(dst="1.1.1.1")/TCP(doprt=80,flags="S") print"-- SENT --"
SYN.display() print"\n\n-- REVEIED"
response=sr1(SYN,timeout=1,verbose=0)
response.diplay() if int(response[TCP],flags)==18:
print "\n\n-- SENT --"
A=IP(dst="192.168.1.134")/TCP(dport=25,flags="A",ack=(response[TCP].seq+1))
A.display()
print"\n\n-- RECEIVED --"
response2=sr1(A,timeout=1,verbose=0)
response2.display()
else:
print "SYN-ACK not returned"nmap #-sT tcp连接
root@kali:~# nmap -sT 192.168.1.115 -p 100-200 Starting Nmap 7.01 ( https://nmap.org ) at 2016-09-11 10:56 CST
Nmap scan report for PC (192.168.1.115)
Host is up (0.41s latency).
Not shown: 99 closed ports
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
MAC Address: 08:00:27:2B:32:0F (Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 5.02 seconds【不加-p,会扫描1000个常用端口】
Dmitry用来查询IP或域名WHOIS信息,但是不能判断出这个网络范围root@kali:~# dmitry
Deepmagic Information Gathering Tool
"There be some deep magic going on" Usage: dmitry [-winsepfb] [-t 0-9] [-o %host.txt] host
-o Save output to %host.txt or to file specified by -o file
-i Perform a whois lookup on the IP address of a host
-w Perform a whois lookup on the domain name of a host
-n Retrieve Netcraft.com information on a host
-s Perform a search for possible subdomains
-e Perform a search for possible email addresses
-p Perform a TCP port scan on a host #执行TCP的端口扫描
* -f Perform a TCP port scan on a host showing output reporting filtered ports
* -b Read in the banner received from the scanned port
* -t 0-9 Set the TTL in seconds when scanning a TCP port ( Default 2 )
*Requires the -p flagged to be passedNC
root@kali:~# nc -nv -w 1 -z 192.168.1.115 100-200 #-nv:n表示跟数字内容,v不做域名解析 -w超时时间 -z使用扫描模式
(UNKNOWN) [192.168.1.115] 139 (netbios-ssn) open
(UNKNOWN) [192.168.1.115] 135 (loc-srv) openfor x in $(seq 20 30); do nc -nv -w 1 -z 1.1.1.1 $x; done | grep open
for x in $(seq 1 254); do nc -nv -w 1 -z 1.1.1.$x 80; done
2、隐蔽扫描(SYN足够准确,除非极其特殊情况)
不建立完整的TCP连接,不在应用层留痕,只能在网络层有些迹像可循1.只发SYN包,若收到SYN+ACK,则端口开放;若收到R+A,端口关闭>>> a=sr1(IP(dst="192.168.1.1")/TCP(flags="S"),timeout=1,verbose=0) #默认80
>>> a.display()
###[ IP ]###
version= 4L
ihl= 5L
tos= 0x0
len= 44
id= 0
flags= DF
frag= 0L
ttl= 64
proto= tcp
chksum= 0xb6fb
src= 192.168.1.1
dst= 192.168.1.127
\options\
###[ TCP ]###
sport= http
dport= ftp_data
seq= 3205019844
ack= 1
dataofs= 6L
reserved= 0L
flags= SA #SYN+ACK
window= 5840
chksum= 0x8543
urgptr= 0
options= [('MSS', 1460)]
###[ Padding ]###
load= '\x00\x00'
>>> a=sr1(IP(dst="192.168.1.1")/TCP(flags="S",dport=22222),timeout=1,verbose=0)
>>> a.display()
###[ IP ]###
version= 4L
ihl= 5L
tos= 0x0
len= 40
id= 0
flags= DF
frag= 0L
ttl= 64
proto= tcp
chksum= 0xb6ff
src= 192.168.1.1
dst= 192.168.1.127
\options\
###[ TCP ]###
sport= 22222
dport= ftp_data
seq= 0
ack= 1
dataofs= 5L
reserved= 0L <strong style="font-family: Arial, Helvetica, sans-serif; white-space: normal; "></strong><pre name="code" class="plain"> flags= RA #RST+ACK <strong style="font-family: Arial, Helvetica, sans-serif; "></strong><pre name="code" class="plain" style="display: inline !important;"><strong style="font-family: Arial, Helvetica, sans-serif; white-space: normal; "></strong><pre name="code" class="plain" style="display: inline !important;"><span style="color:#ff0000;">windows系统默认100以下端口不开放,若开着防火墙,也只会应答RA</span>window= 0 chksum= 0xd51c urgptr= 0 options= {}###[ Padding ]### load= '\x00\x00\x00\x00\x00\x00'>>>
可用python脚本实现#!/usr/bin/python import logging
import subprocess
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
from scapy.all import*
import sys if len( sys.argv ) !=4:
print "Usage - ./syn_scan.py [Target.IP] [StartPort] [End Port]"
print "Example - ./syn_scan.py 1.1.1.1 1 100"
print "Example will TCP SYN scan ports 1 through 100 on 1.1.1.1"
sys.exit() ip = str(sys.argv[1])
start = int(sys.argv[2])
end = int(sys.argv[3]) for port in range(start,end):
a=sr1(IP(dst=ip)/TCP(dport=port),timeout=0.1,verbose=0)
if a ==None:
pass
else:
if int(a[TCP].flags)==18:
print port
else:
pass
若不会或没功夫写脚本,可以用nmap
2、Nmap
syn(乱序扫描)
root@kali:~# nmap 192.168.1.115 -p100-200 #默认-sS(SYN) Starting Nmap 7.01 ( https://nmap.org ) at 2016-09-11 09:46 CST
Nmap scan report for PC (192.168.1.115)
Host is up (0.0010s latency).
Not shown: 99 closed ports
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
MAC Address: 08:00:27:2B:32:0F (Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 1.41 secondsroot@kali:~# nmap 192.168.1.115 -p100-200 --open <span style="color:#ff0000;">#若目标主机在防火墙保护</span>下,--open可过滤杂项 Starting Nmap 7.01 ( https://nmap.org ) at 2016-09-11 09:49 CST
Nmap scan report for PC (192.168.1.115)
Host is up (0.00047s latency).
Not shown: 99 closed ports
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
MAC Address: 08:00:27:2B:32:0F (Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 1.33 secondsroot@kali:~# nmap -sS 192.168.1.115 -p100-200 --open #SYN Starting Nmap 7.01 ( https://nmap.org ) at 2016-09-11 09:50 CST
Nmap scan report for PC (192.168.1.115)
Host is up (0.00033s latency).
Not shown: 99 closed ports
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
MAC Address: 08:00:27:2B:32:0F (Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 0.27 secondsroot@kali:~# nmap -sS 192.168.1.115 -p100-200,445,3389 --open #用","分隔指定端口 Starting Nmap 7.01 ( https://nmap.org ) at 2016-09-11 09:50 CST
Nmap scan report for PC (192.168.1.115)
Host is up (0.00021s latency).
Not shown: 100 closed ports
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
MAC Address: 08:00:27:2B:32:0F (Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 1.35 seconds
3、Hping(结果比较清晰)
root@kali:~# hping3 192.168.1.115 --scan 100-200 -S #-S:SYN包
Scanning 192.168.1.115 (192.168.1.115), port 100-200
101 ports to scan, use -V to see all the replies
+----+-----------+---------+---+-----+-----+-----+
|port| serv name | flags |ttl| id | win | len |
+----+-----------+---------+---+-----+-----+-----+
135 loc-srv : .S..A... 128 27139 8192 46
139 netbios-ssn: .S..A... 128 28163 8192 46
All replies received. Done.
Not responding ports:源地址欺骗
必须有权登陆伪造的IP地址主机,查看回包,或者能在交换机做镜像端口
root@kali:~# hping3 -c 100 -S --spoof 192.168.1.140 -p ++1 192.168.1.1 #-c指定包数量,--spoof伪造IP,src,-p指定端口 dst
HPING 192.168.1.1 (eth0 192.168.1.1): S set, 40 headers + 0 data bytes --- 192.168.1.1 hping statistic ---
100 packets transmitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms
僵尸扫描
极度隐蔽,实施条件苛刻,原理:能实现地址伪造(目前边界防火墙基本会过滤),通过僵尸机(闲置系统,系统使用递增PID[只有早期的XP、2000、2003])scapyi=IP()
t=TCP()
rz=(i/t) #僵尸机
rt=(i/t) #目标机rz[IP].dst=IPz #僵尸机IP
rz[TCP].dport=445 #windows系统下445都默认开放 #僵尸机需保证端口开放
rz[TCP].flags="SA" #SYN+ACKrt[IP].src=IPz #伪造源地址为僵尸机IP
rt[IP].dst=IPt #目标IP
rt[TCP].dport=22
rt[TCP].flags="S" #SYN</pre><pre name="code" class="plain" style="font-size:24px;">az1=sr1(rz) / at=sr1(rt) / az2=sr1(rz)
#向僵尸发的第一包 #向目标机器发包,回包是发给僵尸机 #向僵尸机发包
az1.display() / az2.display()脚本
namp发现僵尸nmap -p445 192.168.1.133 --script=ipidseq.nse ##--scriptroot@kali:~# nmap -p445 192.168.1.1 --script=ipidseq.nse Starting Nmap 7.01 ( https://nmap.org ) at 2016-09-11 12:57 CST
Nmap scan report for DD-WRT (192.168.1.1)
Host is up (0.0037s latency).
PORT STATE SERVICE
445/tcp closed microsoft-ds
MAC Address: 1C:BD:B9:27:D5:32 (D-Link International) Host script results:
|_ipidseq: All zeros #全为零,则不能做僵尸机 #incremental为递增,则可 Nmap done: 1 IP address (1 host up) scanned in 0.61 seconds扫描目标nmap 172.16.36.135 -sI 172.16.36.134 -Pn -p 0-100 ## [dst] -sI [zome]
小白日记,未完待续……
小白日记10:kali渗透测试之端口扫描-UDP、TCP、僵尸扫描、隐蔽扫描的更多相关文章
-
kali渗透测试之缓冲区溢出实例-windows,POP3,SLmail
kali渗透测试之缓冲区溢出实例-windows,POP3,SLmail 相关链接:https://www.bbsmax.com/A/xl569l20Jr/ http://4hou.win/wordp ...
-
小白日记15:kali渗透测试之弱点扫描-漏扫三招、漏洞管理、CVE、CVSS、NVD
发现漏洞 弱点发现方法: 1.基于端口服务扫描结果版本信息,比对其是否为最新版本,若不是则去其 官网查看其补丁列表,然后去逐个尝试,但是此法弊端很大,因为各种端口应用比较多,造成耗时大. 2.搜索已公 ...
-
小白日记13:kali渗透测试之服务扫描(三)-SMTB扫描、防火墙识别、负载均衡识别、WAF识别
SMTP扫描 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式.SMTP协议属于TCP/ ...
-
小白日记12:kali渗透测试之服务扫描(二)-SMB扫描
SMB扫描 Server Message Block 协议.与其他标准的TCP/IP协议不同,SMB协议是一种复杂的协议,因为随着Windows计算机的开发,越来越多的功能被加入到协议中去了,很难区分 ...
-
小白日记28:kali渗透测试之Web渗透-扫描工具-Nikto
扫描工具-Nikto #WEB渗透 靶机:metasploitable 靶场:DVWA[默认账号/密码:admin/password] #新手先将DVWA的安全性,调到最低,可容易发现漏洞 侦察[减少 ...
-
小白日记32:kali渗透测试之Web渗透-扫描工具-QWASP_ZAP
扫描工具-QWASP_ZAP 十大安全工具之一,集成性工具,功能完善,而且强大.既可做主动扫描,也可做截断代理.开源免费跨平台,简单易用,体验相对混乱,但在主动扫描方面,相对占优.[kali集成] # ...
-
小白日记18:kali渗透测试之缓冲区溢出实例(二)--Linux,穿越火线1.9.0
Linux系统下穿越火线-缓冲区溢出 原理:crossfire 1.9.0 版本接受入站 socket 连接时存在缓冲区溢出漏洞. 工具: 调试工具:edb: ###python在漏洞溢出方面的渗透测 ...
-
小白日记17:kali渗透测试之缓冲区溢出实例-windows,POP3,SLmail
缓冲区溢出实例 缓冲区溢出原理:http://www.cnblogs.com/fanzhidongyzby/archive/2013/08/10/3250405.html 空间存储了用户程序的函数栈帧 ...
-
小白日记7:kali渗透测试之主动信息收集-发现(一)--二层发现:arping/shell脚本,Netdiscover,scapy
主动信息收集 被动信息收集可能不准确,可以用主动信息收集验证 特点:直接与目标系统交互通信,无法避免留下访问痕迹 解决方法:1.使用受控的第三方电脑进行探测,使用代理 (做好被封杀的准备) 2 ...
随机推荐
-
BIO\NIO\AIO记录
IO操作可以分为3类:同步阻塞(BIO).同步非阻塞(NIO).异步(AIO). 同步阻塞(BIO):在此种方式下,用户线程发起一个IO操作以后,必须等待IO操作的完成,只有当真正完成了IO操作以后, ...
-
JS魔法堂:Data URI Scheme介绍
一.前言 上周五公司内部的Any Topic Conf.上我和同事们分享了这个主题,有同事说这个有用,有同事说这个没啥用,后来还延伸到网站性能的话题上,大家讨论的激烈程度让我觉得这次选题还不错.本篇先 ...
-
Appium 服务器参数
# Appium 服务器参数 使用方法: `node . [标志]` ## 服务器标志所有的标志都是可选的,但是有一些标志需要组合在一起才能生效. <expand_table> |标志|默 ...
-
关于androidManifest.xml的概叙以及intent-filter的详细分析
AndroidManifest.xml配置文件对于Android应用开发来说是比较细但又很重要的基础知识,本文旨在总结该配置文件中常用到的几个属性,以便日后查阅,至于那些比较细的属性,主要是平时开发比 ...
-
【HDOJ】3419 The Three Groups
记忆化搜索. /* 3419 */ #include <cstdio> #include <cstring> #include <cstdlib> #define ...
-
HTML meta refresh 刷新与跳转(重定向)页面
下面为各位整理了一些HTML meta refresh 刷新与跳转(重定向)页面的例子吧,后面本站长自己也补充了一些js页面刷新与跳转例子吧. refresh 属性值 -- 刷新与跳转(重定向)页 ...
-
剑指Offer——常用SQL语句、存储过程和函数
剑指Offer--常用SQL语句.存储过程和函数 常用SQL语句 1.在MySQL数据库建立多对多的数据表关系 2.授权.取消授权 grant.revoke grant select, insert, ...
-
初探设计模式5:Spring涉及到的9种设计模式
设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记忆. 今天,螃蟹在IT学习者网站就设计模式的内在价值做一番探讨,并以spring为例进行讲解,只有领略了 ...
-
教你如何修改运行中的docker容器的端口映射
在docker run创建并运行容器的时候,可以通过-p指定端口映射规则.但是,我们经常会遇到刚开始忘记设置端口映射或者设置错了需要修改.当docker start运行容器后并没有提供一个-p选项或设 ...
-
mysql用户管理和pymysql模块
一:mysql用户管理 mysql是一个tcp的服务器,用于操作服务器上的文件数据,接收用户端发送的指令,而接收指令时就 需要考虑安全问题. 在mysql自带的数据库中有4个表是用于用户管理的,分别是 ...