批量扫描雏形之在Java中调用nmap进行主机探测

简介:

在Java中通过调用Runtime这个类可以执行其他的可执行程序,执行后返回一个进程(Process),利用Process这个类我们可以取得程序执行的回显,因此在Java中调用nmap进行主机探测的原理就很清晰了。通过给函数传递nmap所在路径和我们需要执行的命令即可

具体实现代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/**
      * 调用nmap进行扫描
      * @param nmapDir nmap路径
      * @param command 执行命令
     
      * @return 执行回显
      * */
     public  String getReturnData(String nmapDir,String command){
         Process process =  null ;
         StringBuffer stringBuffer =  new  StringBuffer();
         try  {
             process = Runtime.getRuntime().exec(nmapDir +  " "  + command);
             System.out.println( "请稍等。。。" );
             BufferedReader reader =  new  BufferedReader( new  InputStreamReader(process.getInputStream(), "UTF-8" ));
             String line =  null ;         
             while ((line = reader.readLine()) !=  null ){
                 stringBuffer.append(line +  "\n" );
             }
         catch  (IOException e) {
             e.printStackTrace();
         }
         return  stringBuffer.toString();
     }

测试:

1
2
3
NmapTest1 nmapTest1 =  new  NmapTest1();
         String str = nmapTest1.getReturnData( "D:\\nmap\\nmap.exe" , "-sS -P0 -A -v www.zifangsky.cn" );
         System.out.println(str);

返回结果:

请稍等。。。

Starting Nmap 7.00 ( https://nmap.org ) at 2015-11-30 21:00 ?D1???
NSE: Loaded 132 scripts for scanning.
NSE: Script Pre-scanning.
Initiating NSE at 21:00
Completed NSE at 21:00, 0.00s elapsed
Initiating NSE at 21:00
Completed NSE at 21:00, 0.00s elapsed
Initiating Parallel DNS resolution of 1 host. at 21:01
Completed Parallel DNS resolution of 1 host. at 21:01, 0.32s elapsed
Initiating SYN Stealth Scan at 21:01
Scanning www.zifangsky.cn (121.42.81.9) [1000 ports]
Discovered open port 21/tcp on 121.42.81.9
Completed SYN Stealth Scan at 21:01, 9.01s elapsed (1000 total ports)
Initiating Service scan at 21:01
Scanning 1 service on www.zifangsky.cn (121.42.81.9)
Completed Service scan at 21:01, 9.10s elapsed (1 service on 1 host)
Initiating OS detection (try #1) against www.zifangsky.cn (121.42.81.9)
Initiating Traceroute at 21:01
Completed Traceroute at 21:01, 9.06s elapsed
Initiating Parallel DNS resolution of 1 host. at 21:01
Completed Parallel DNS resolution of 1 host. at 21:01, 16.50s elapsed
NSE: Script scanning 121.42.81.9.
Initiating NSE at 21:01
Completed NSE at 21:02, 13.32s elapsed
Initiating NSE at 21:02
Completed NSE at 21:02, 0.00s elapsed
Nmap scan report for www.zifangsky.cn (121.42.81.9)
Host is up (0.047s latency).
Not shown: 999 filtered ports
PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd (before 2.0.8) or WU-FTPD
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: specialized|WAP
Running: iPXE 1.X, Linux 2.4.X|2.6.X
OS CPE: cpe:/o:ipxe:ipxe:1.0.0%2b cpe:/o:linux:linux_kernel:2.4.20 cpe:/o:linux:linux_kernel:2.6.22
OS details: iPXE 1.0.0+, Tomato 1.28 (Linux 2.4.20), Tomato firmware (Linux 2.6.22)
Service Info: Host: www.net.cn

TRACEROUTE (using port 21/tcp)
HOP RTT     ADDRESS
1   3.00 ms 192.168.0.1
2   … 30

NSE: Script Post-scanning.
Initiating NSE at 21:02
Completed NSE at 21:02, 0.00s elapsed
Initiating NSE at 21:02
Completed NSE at 21:02, 0.00s elapsed
Read data files from: D:\nmap
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 73.93 seconds
           Raw packets sent: 2158 (97.246KB) | Rcvd: 33 (2.050KB)



本文转自 pangfc 51CTO博客,原文链接:http://blog.51cto.com/983836259/1719243,如需转载请自行联系原作者
相关文章
|
1月前
|
Java Spring 容器
【Java】Spring如何扫描自定义的注解?
【Java】Spring如何扫描自定义的注解?
35 0
|
Java
java使用Quartz任务调用crontab表达式的时候报错:Based on configured schedule, the given trigger will never fire
java使用Quartz任务调用crontab表达式的时候报错:Based on configured schedule, the given trigger will never fire
396 0
java使用Quartz任务调用crontab表达式的时候报错:Based on configured schedule, the given trigger will never fire
|
9月前
|
设计模式 Java
java自动生成类热加载(注册和扫描)
java自动生成类热加载(注册和扫描)
java自动生成类热加载(注册和扫描)
|
9月前
|
XML JSON 安全
主机安全扫描入门-用Java封装Nmap
主机安全扫描入门-用Java封装Nmap
250 0
|
11月前
java202304java学习笔记第六十二天-ssm-springMvc注解扫描
java202304java学习笔记第六十二天-ssm-springMvc注解扫描
31 0
|
12月前
|
自然语言处理 Java 测试技术
Java 编程问题:六、Java I/O 路径、文件、缓冲区、扫描和格式化6
Java 编程问题:六、Java I/O 路径、文件、缓冲区、扫描和格式化
|
12月前
|
Java Spring
Java 编程问题:六、Java I/O 路径、文件、缓冲区、扫描和格式化5
Java 编程问题:六、Java I/O 路径、文件、缓冲区、扫描和格式化
|
12月前
|
存储 JSON Java
Java 编程问题:六、Java I/O 路径、文件、缓冲区、扫描和格式化4
Java 编程问题:六、Java I/O 路径、文件、缓冲区、扫描和格式化
|
12月前
|
存储 传感器 Java
Java 编程问题:六、Java I/O 路径、文件、缓冲区、扫描和格式化3
Java 编程问题:六、Java I/O 路径、文件、缓冲区、扫描和格式化
|
12月前
|
存储 安全 Java
Java 编程问题:六、Java I/O 路径、文件、缓冲区、扫描和格式化2
Java 编程问题:六、Java I/O 路径、文件、缓冲区、扫描和格式化