技术标签: 安全 服务识别 Kali Linux渗透测试 kali Linux 渗透测试
服务扫描:
不能简单的通过端口号来识别服务,目标系统开放80端口不一定开放着http服务,要通过对目标系统进行服务扫描,来识别开放的端口后面到底是什么服务,运行什么样的应用;
(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
文章浏览阅读595次。CSS的代码规范_媒体查询执行顺序
文章浏览阅读292次。随着 Java 8 的出现,这门语言在许多地方发生了翻天覆地的变化。在新的版本中,代码的运用和实现上与以往不尽相同。与几年前我们依赖印刷媒体相比,YouTube,博客和 StackOve..._java编程思想最新版下载
文章浏览阅读731次,点赞2次,收藏4次。点击“开发者技术前线”,选择“星标????”让一部分开发者看到未来高赞回答一 作者:NYC-2009夫妻都是985的副教授。2019年度国家个人所得税的系统里面的税前是270k过一点(..._博士头衔在大厂重要么
文章浏览阅读1.8w次,点赞18次,收藏228次。组成1.电源部分2.复位3.晶振4.CH340G 电路STM32-CH340实现一键下载电路分析CH340G电路CH340转串口芯片的使用在5V供电时,电路为上图。首先,我们需要接VCC,GND,给芯片工作电源。其次,接上晶振电路,提供时钟信号。这个电路又叫转串口电路,因此,我们需要USB信号,D+,D-对应连接。输出的串口信号,可以直接接单片机,当然,一般的习惯是加一个隔离二极管和一个电阻。V3引脚,一定要加退耦电容,不加的话,可能不会被识别。同时,电源也需要添加滤波_stm32f103c8t6电源电路
文章浏览阅读1w次,点赞7次,收藏23次。这两个插件安装好之后,就可以在vscode上通过plantuml语言作uml图,alt+d可把plantuml语言以图形形式更新展现出来。要想在vscode上作uml图,则必然是需要安装plantuml语言的插件,在安装插件里搜索栏里搜索plantuml安装如下所示。只安装plantuml还不行,因为想要把uml图显示出来,还必须要有绘图插件才行,这里就需要graphviz插件,安装如下。首先是要把vscode软件安装好,网上有很多教程,里不再赘述,下面是基于vscode软件安装好之后的步骤。......._plantuml vscode
文章浏览阅读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_嵌入式学习的开发平台
文章浏览阅读948次。反码的实质是一种特殊的补码,其特殊之处在于反码的模比补码的模小一个最低位上的1。反码的定义:ü 纯小数:0ü 纯整数:0根据反码的定义可得反码的求法:若x>=0,则使符号位为0,数值部分与x相同,即可得到x反;若x例4-1:已知x原码、x补码,求x反码。ü x原码=0.0101001 x原码>0,由定义反码为其自身,x反码=0.0_为什么纯小数的反码不能表示-1
文章浏览阅读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点击后选中
文章浏览阅读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<bits/stdc++.h>using namespace ..._,uva 12169
文章浏览阅读1.1w次,点赞20次,收藏112次。续上登录界面内的注册功能界面。3个textbox(长度最大修改MaxLength),6个label,1个RadioButton(这个功能暂时没有实现)其实注册这个跟之前的登录代码差不多,也是连接sql进行查询,只是增加多一个添加sql而已。还是先获取三个框框的内容,判断是不是空。 string name = nametextBox.Text.Trim()..._c#注册界面的实现
文章浏览阅读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