Kali Linux渗透测试之服务扫描(一)——Banner、服务识别、操作系统识别_53/tcp open domain-程序员宅基地

技术标签: 安全  服务识别  Kali Linux渗透测试  kali Linux 渗透测试  

服务扫描:

不能简单的通过端口号来识别服务,目标系统开放80端口不一定开放着http服务,要通过对目标系统进行服务扫描,来识别开放的端口后面到底是什么服务,运行什么样的应用;

1. 服务扫描——Banner(简单但不准确)

  • 通过连接服务器的端口,使其返回的banner信息,可能查不到,也可能是管理员伪造的;
  • 通过软件开发商,软件名称,服务类型,版本号(直接发现已知的漏洞和弱点);
  • 对于Banner信息的捕获,需要建立完整的TCP连接;
  • 另类服务识别方法:1. 特征行为和响应字段; 2.  不同的响应可用于识别底层操作系统;

(1)nc

root@root:~# nc -nv 192.168.37.128 25
(UNKNOWN) [192.168.37.128] 25 (smtp) open
220 WIN-N7TAB1239LM.st13.com Winmail Mail Server ESMTP ready
root@root:~# nc -nv 192.168.37.128 80
(UNKNOWN) [192.168.37.128] 80 (http) open
get
HTTP/1.1 400 Bad Request
Date: Sun, 14 Apr 2019 05:32:15 GMT
Server: Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.4.45
Content-Length: 226
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
</body></html>
root@root:~# python
Python 2.7.14+ (default, Mar 13 2018, 15:23:44) 
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import socket
>>> banner=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
>>> banner.connect(("192.168.37.128",25))
>>> banner.recv(4096)
'220 WIN-N7TAB1239LM.st13.com Winmail Mail Server ESMTP ready\r\n'
>>> banner.close()
>>> exit()

 (2)socket——用于连接网络服务

root@root:~# python
Python 2.7.14+ (default, Mar 13 2018, 15:23:44) 
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import socket       #导入socket模块
>>> banner=socket.socket(socket.AF_INET,socket.SOCK_STREAM)  #SOCK_STREAM表示为TCP连接<
>>> banner.connect(("192.168.37.128",25))    #连接的IP地址和端口
>>> banner.recv(4096)                        #接收返回包大小
'220 WIN-N7TAB1239LM.st13.com Winmail Mail Server ESMTP ready\r\n' #获取到的Banner信息
>>> banner.close()            #关闭连接
>>> exit()

在很多情况下,系统的banner信息不允许抓取,recv函数无返回将会被挂起;针对这个问题,写如下脚本进行处理:

#!/usr/bin/python 
# -*- coding: utf-8 -*-
#Author:橘子女侠
#Time:2019/04/14
#该脚本用于实现Banner信息的扫描,如果Banner信息不能获取,则pass

import socket 
import select 
import sys 
if len( sys.argv ) !=4:
	print "Usage - ./banner_grab.py [Target.IP] [First Port] [Last Port]" 		
	print "Example - ./banner_grab.py 1.1.1.1 1 100" 
	sys.exit()

ip = sys.argv[1] 
start = int(sys.argv[2]) 
end = int(sys.argv[3]) 
for port in range(start,end):
	try: 
		bangrab=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
		bangrab.connect((ip,port))
		ready=select.select([bangrab],[],[],1) #连接间隔时间1秒 
		if ready[0]: 
			print "TCP Port " + str(port) + "." +bangrab.recv(4096) 
			bangrab.close() 
	except: 
		pass

结果如下:

root@root:~# chmod +x ./banner.py
root@root:~# ./banner.py 192.168.37.128 1 200
TCP Port 25.220 WIN-N7TAB1239LM.st13.com Winmail Mail Server ESMTP ready

TCP Port 110.+OK WIN-N7TAB1239LM.st13.com Winmail Mail Server POP3 ready

TCP Port 143.* OK IMAP4 ready! WIN-N7TAB1239LM.st13.com Winmail Mail Server MagicWinmail Extend IMAP 102

(3) dmitry

root@root:~# dmitry -pb 192.168.37.128
Deepmagic Information Gathering Tool
"There be some deep magic going on"

HostIP:192.168.37.128
HostName:bogon

Gathered TCP Port information for 192.168.37.128
---------------------------------

 Port		State

25/tcp		open
>> 220 WIN-N7TAB1239LM.st13.com Winmail Mail Server ESMTP ready

53/tcp		open

Portscan Finished: Scanned 150 ports, 147 ports were in state closed


All scans completed, exiting

 (4)nmap

使用nmap自带的脚本(/usr/share/nmap/scripts/)

root@root:~# nmap -sT 192.168.37.128 -p 25 --script=banner.nse
Starting Nmap 7.70 ( https://nmap.org ) at 2019-04-14 14:40 CST
Nmap scan report for bogon (192.168.37.128)
Host is up (0.00046s latency).

PORT   STATE SERVICE
25/tcp open  smtp
|_banner: 220 WIN-N7TAB1239LM.st13.com Winmail Mail Server ESMTP ready
MAC Address: 00:0C:29:3B:24:57 (VMware)

Nmap done: 1 IP address (1 host up) sca
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_38684504/article/details/89296211

智能推荐

CSS规范_媒体查询执行顺序-程序员宅基地

文章浏览阅读595次。CSS的代码规范_媒体查询执行顺序

超赞!《Java 编程思想》最新中文版开放下载-程序员宅基地

文章浏览阅读292次。随着 Java 8 的出现,这门语言在许多地方发生了翻天覆地的变化。在新的版本中,代码的运用和实现上与以往不尽相同。与几年前我们依赖印刷媒体相比,YouTube,博客和 StackOve..._java编程思想最新版下载

本科进了大厂拿高薪,为什么硕士和博士却要挤破头进高校?-程序员宅基地

文章浏览阅读731次,点赞2次,收藏4次。点击“开发者技术前线”,选择“星标????”让一部分开发者看到未来高赞回答一 作者:NYC-2009夫妻都是985的副教授。2019年度国家个人所得税的系统里面的税前是270k过一点(..._博士头衔在大厂重要么

STM32F103C8T6系统板_stm32f103c8t6电源电路-程序员宅基地

文章浏览阅读1.8w次,点赞18次,收藏228次。组成1.电源部分2.复位3.晶振4.CH340G 电路STM32-CH340实现一键下载电路分析CH340G电路CH340转串口芯片的使用在5V供电时,电路为上图。首先,我们需要接VCC,GND,给芯片工作电源。其次,接上晶振电路,提供时钟信号。这个电路又叫转串口电路,因此,我们需要USB信号,D+,D-对应连接。输出的串口信号,可以直接接单片机,当然,一般的习惯是加一个隔离二极管和一个电阻。V3引脚,一定要加退耦电容,不加的话,可能不会被识别。同时,电源也需要添加滤波_stm32f103c8t6电源电路

使用vscode+plantuml作UML图_plantuml vscode-程序员宅基地

文章浏览阅读1w次,点赞7次,收藏23次。这两个插件安装好之后,就可以在vscode上通过plantuml语言作uml图,alt+d可把plantuml语言以图形形式更新展现出来。要想在vscode上作uml图,则必然是需要安装plantuml语言的插件,在安装插件里搜索栏里搜索plantuml安装如下所示。只安装plantuml还不行,因为想要把uml图显示出来,还必须要有绘图插件才行,这里就需要graphviz插件,安装如下。首先是要把vscode软件安装好,网上有很多教程,里不再赘述,下面是基于vscode软件安装好之后的步骤。......._plantuml vscode

spotlight安装使用_如何查询sysstat装在哪-程序员宅基地

文章浏览阅读1k次。1、安装 windows傻瓜式安装即可,如果安装了spolight on orcale 想要安装unix或者mysql的需要单独给出安装路径否则会覆盖之前安装的2、查看sysstat是否安装在Linux上,必须安装sysstat包,用户才可以获取详细的磁盘I/O信息。执行 rpm -qa |grep sysstat如果没有搜索到,那么需要安装执行 yum install ..._如何查询sysstat装在哪

随便推点

经典嵌入式开发学习网站推荐_嵌入式学习的开发平台-程序员宅基地

文章浏览阅读1.9k次。1.EG3 关于嵌入式开发的站点,提供非常多关于嵌入式开发的资料。包括开发公司,技术文档,免费资源等等。版面包括busses & boards,embedded software,dsp,embedded systems,open source,rtos,embedded chi_嵌入式学习的开发平台

计算机中如何表示数字-04反码_为什么纯小数的反码不能表示-1-程序员宅基地

文章浏览阅读948次。反码的实质是一种特殊的补码,其特殊之处在于反码的模比补码的模小一个最低位上的1。反码的定义:ü 纯小数:0ü 纯整数:0根据反码的定义可得反码的求法:若x>=0,则使符号位为0,数值部分与x相同,即可得到x反;若x例4-1:已知x原码、x补码,求x反码。ü x原码=0.0101001 x原码>0,由定义反码为其自身,x反码=0.0_为什么纯小数的反码不能表示-1

android listview item选中,Android UI设计--ListView的item选中效果-程序员宅基地

文章浏览阅读340次。packagecom.example.selectitemtest;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importandroid.app.Activity;importandroid.content.Context;importandroid.grap..._android listview item点击后选中

UVA 12169_,uva 12169-程序员宅基地

文章浏览阅读145次。思路: x3=(a(a*x1+b)%10001)+b)%10001a*b+b+y*10001=x3-a*a*x1对应a*x+b*y=c;a=(a+1),b=10001,c=x3-a*a*x1。枚举a的值,扩欧解不定方程解出x。判断该x是否满足整个序列。注意:该题要用long long,不然会运行不出结果。。#include&lt;bits/stdc++.h&gt;using namespace ..._,uva 12169

c#注册界面的实现-程序员宅基地

文章浏览阅读1.1w次,点赞20次,收藏112次。续上登录界面内的注册功能界面。3个textbox(长度最大修改MaxLength),6个label,1个RadioButton(这个功能暂时没有实现)其实注册这个跟之前的登录代码差不多,也是连接sql进行查询,只是增加多一个添加sql而已。还是先获取三个框框的内容,判断是不是空。 string name = nametextBox.Text.Trim()..._c#注册界面的实现

git命令行基本用法_git perhaps you should specify a branch such as 'm-程序员宅基地

文章浏览阅读3.3k次。如果对git命令行不熟悉的话,用git图形界面工具,就比较合适了。建议使用tortoisegit 或sourectree这样的工具,命令行从学习到灵活掌握的时间成本比较高的。  1,添加  # git clone [email protected]:develop/test.git  # cd test  # touch test.txt //测试文件  _git perhaps you should specify a branch such as 'master

推荐文章

热门文章

相关标签