转载自FreeBuf.COM

Impacket是一个Python类库,用于对SMB1-3或IPv4 / IPv6 上的TCP、UDP、ICMP、IGMP,ARP,IPv4,IPv6,SMB,MSRPC,NTLM,Kerberos,WMI,LDAP等协议进行低级编程访问。 

在本文的实验场景中,我们需要准备以下两个系统:

1.配置域控的Windows服务器;

2. Kali Linux

系统相关设置如下:

Windows Server

域: SERVER

用户: Administrator

密码: T00r

IP地址: 192.168.1.140

Kali Linux: 192.168.1.135

在正式开始使用Impacket工具之前,让我们先对目标Windows服务器执行Nmap版本扫描,以获取当前Windows Server上运行的有关服务信息。

nmap -sV 192.168.1.140

正如你在上面的截图中看到的,目标系统当前运行的服务有域服务,Kerberos服务,Netbios服务,LDAP服务和Windows RPC服务。

现在让我们从GitHub安装Impacket工具。你可以在这里获取到。

首先,我们通过git clone命令克隆存储库,然后按以下截图所示安装Impacket。

git clone https://github.com/CoreSecurity/impacket.git
cd impacket/
python setup.py install

这将在你的Kali Linux上安装Impacket。安装完成后,我们来查看下Impacket中都有哪些工具。

cd impacket/examples

可以看到其中包含了许多的python脚本工具,让我们来尝试使用其中的一些工具:

Ping.py

一个简单的ICMP ping脚本,使用ICMP echo和echo-reply数据包检查主机状态。

./ping.py

语法: ./ping.py [Source IP] [Destination IP]

./ping.py 192.168.1.135 192.168.1.140

以下是我从192.168.1.140(Windows Server)获得的ICMP响应

Lookupsid.py

通过[MS-LSAT] MSRPC接口的Windows SID bruteforcer示例,旨在查找远程用户/组。

./lookupsid.py

语法: ./lookupsid.py [[domain/] username [: password] @] [Target IP Address]

./lookupsid.py SERVER/Administrator: T00r@192.168.1.140

如下所示,lookupsid.py已成功为我提取到了目标服务器的用户和组信息

Psexec.py

Psexec.py允许你在远程Windows系统上执行进程,复制文件,并返回处理输出结果。此外,它还允许你直接使用完整的交互式控制台执行远程shell命令(不需要安装任何客户端软件)。

./psexec.py

语法: ./psexec.py [[domain/] username [: password] @] [Target IP Address]

./psexec.py SERVER/Administrator: T00r@192.168.1.140

如下所示,我获取到了目标服务器的远程shell

Rpcdump.py

该脚本将转储在目标上注册的RPC端点和字符串bindings列表。它也会尝试将它们与一些知名的端点进行匹配。

./rpcdump.py

语法: ./rpcdump.py [[domain/] username [: password] @] [Target IP Address]

./rpcdump.py SERVER/Administrator: T00r@192.168.1.140

如下所示,我成功获取到了目标RPC列表

Samrdump.py

与MSRPC套件中的安全帐户管理器远程接口通信的应用程序。它将为我们列出目标系统上的用户帐户,可用资源共享以及通过此服务导出的其他敏感信息

./samrdump.py

语法: ./samrdump.py [[domain/] username [: password] @] [Target IP Address]

./samrdump.py SERVER/Administrator: T00r@192.168.1.140

如下所示,我从目标服务器提取了SAM信息

Sniff.py

一个简单的数据包嗅探脚本。使用pcapy库来侦听通过指定接口传输的数据包

. /sniff.py

选择正确的网卡,并开始嗅探

Sniffer.py

一个简单的数据包嗅探脚本,使用原始套接字来侦听与指定协议相对应的传输数据包。

. /sniffer.py

sniffer开始监听icmp, tcp和udp数据包

Wmiexec.py

它会生成一个使用Windows Management Instrumentation的半交互式shell,并以管理员身份运行。你不需要在目标服务器上安装任何的服务/代理,因此它非常的隐蔽。

./wmiexec.py

语法: ./wmiexec.py [[domain/] username [: password] @] [Target IP Address]

./wmiexec.py SERVER/Administrator: T00r@192.168.1.140

如下所示,我获取到了目标服务器的shell

Wmiquery.py

它允许发出WQL查询并获取目标系统WMI对象的描述信息。

./wmiquery.py

语法: ./wmiquery.py [[domain/] username [: password] @] [Target IP Address]

./wmiquery.py SERVER/Administrator: T00r@192.168.1.140

这将打开一个shell,你可以在其中执行WQL查询

SELECT * FROM Win32_LogicalDisk WHERE FreeSpace < 209152

Atexec.py

通过Task Scheduler服务在目标系统上执行命令,并返回输出结果。

./atexec.py

语法: /atexec.py [[domain/] username [: password] @] [Target IP Address] [Command]

./atexec.py SERVER/Administrator: T00r@192.168.1.140 systeminfo

如下所示,我与目标服务器建立了远程连接,并执行了systeminfo命令,输出结果显示在了我的Kali终端上。

getArch.py

该脚本将连接目标(或目标列表上的)计算机,并使用已记录的MSRPC特征收集由(ab)安装的操作系统架构类型。

./getArch.py

语法: ./getArch.py -target [IP Address]

命令: ./getArch.py -target 192.168.1.140

所下所示,目标系统架构为64-bit

Ifmap

该脚本将绑定到目标的MGMT接口,以获取接口ID列表。它将在另一个接口UUID列表的顶部使用该列表,并报告该接口是否被列出和/或处于侦听状态。

语法: ./ifmap.py [Host IP Address] [Port]

./ifmap.py 192.168.1.140 135
./ifmap.py 192.168.1.140 49154

 *参考来源:hackingarticles,FB小编 secist 编译,转载自FreeBuf.COM

Impacket网络协议工具包介绍的更多相关文章

  1. SQLServer的网络协议

    一.总结 1.SQL Server访问协议包括Shared Memory.Named Pipes.TCP/IP.VIA四种,多数应用系统都是通过TCP/IP协议访问数据库.安装数据库后需要启用TCP/ ...

  2. Wireshark使用介绍(二):应用Wireshark观察基本网络协议

    TCP: TCP/IP通过三次握手建立一个连接.这一过程中的三种报文是:SYN,SYN/ACK,ACK. 第一步是找到PC发送到网络服务器的第一个SYN报文,这标识了TCP三次握手的开始. 如果你找不 ...

  3. 31.网络协议介绍tcp/udp

    网络协议 TCP:网络中传输数据的协议,打电话 解决了我可能在网络中找不到别人(数据无法传输到) 保证数据传输的稳定性,可靠性 保证数据的安全性,完整性 对方要有响应 尝试重新发送 UDP:传输数据的 ...

  4. PYTHON黑帽编程1.5 使用WIRESHARK练习网络协议分析

    Python黑帽编程1.5  使用Wireshark练习网络协议分析 1.5.0.1  本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks At ...

  5. C# RFID windows 服务 网络协议方式

    上篇话说是串口方式操作RFID设备. 下面介绍网络协议方式. 设备支持断线重连. 那我们的服务也不能差了不是. 所以这个服务类也是支持的哦. 不解释上代码: namespace Rfid { /// ...

  6. CCNA网络工程师学习进程(3)常规网络设计模型与基本的网络协议

        本节介绍分层的网络设计模型与基本的网络协议,包括ARP协议,ICMP协议和IP协议.     (1)三层网络架构: 一个好的园区网设计应该是一个分层的设计.一般分为接入层.汇聚层(分布层).核 ...

  7. 对TCP/IP网络协议的深入浅出归纳

    前段时间做了一个开发,涉及到网络编程,开发过程比较顺利,但任务完成后始终觉得有一些疑惑.主要是因为对网络协议不太熟悉,对一些概念也没弄清楚.后来 我花了一些时间去了解这些网络协议,现在对TCP/IP网 ...

  8. linux网络协议

    网络协议 本章节主要介绍linxu网络模型.以及常用的网络协议分析以太网协议.IP协议.TCP协议.UDP协议 一.网络模型 TCP/IP分层模型的四个协议层分别完成以下的功能: 第一层 网络接口层 ...

  9. 网络存储技术介绍(1) ( based on zt)

    最近由于某同学微信发了一些网络存储的文章,开始感兴趣,稍微收集了一些 一.  网络存储技术 http://ask.zol.com.cn/q/187044.html  (yxr:很老的技术介绍吧) 网络 ...

随机推荐

  1. [Google Guava] 10-散列

    原文链接 译文链接 译者:沈义扬 概述 Java内建的散列码[hash code]概念被限制为32位,并且没有分离散列算法和它们所作用的数据,因此很难用备选算法进行替换.此外,使用Java内建方法实现 ...

  2. Educational Codeforces Round 72 (Rated for Div. 2) A题

    Problem Description: You play your favourite game yet another time. You chose the character you didn ...

  3. MySQL GROUP BY 语句

    GROUP BY 语句根据一个或多个列对结果集进行分组. 在分组的列上我们可以使用 COUNT, SUM, AVG,等函数. GROUP BY 语法 SELECT column_name, funct ...

  4. Mysql建表+创建索引

    创建表时可以直接创建索引,这种方式最简单.方便.其基本形式如下: CREATE TABLE 表名( 属性名 数据类型[完整性约束条件], 属性名 数据类型[完整性约束条件], ...... 属性名 数 ...

  5. vue中修改第三方组件的样式不生效

    问题 在使用element-ui时,有时候想要修改组件内的样式,但不成功,例如 <div class="test"> <el-button>按钮</e ...

  6. CSS定位中“父相子绝”

    一.定位的介绍 定位有三种:相对定位(position:relative).绝对定位(position:absolute).固定定位(position:fixed) 二.三种定位的用法,特点和实例 2 ...

  7. 树莓派打造mini广播(FM)系统

    树莓派打造mini广播(FM)系统 注意相关法律限制功率大小和频段.,以下只能用于测试目的 github项目: https://github.com/miegl/PiFmAdv 安装: apt-get ...

  8. js 选择文本

    怎么用js脚本,选中文本呢? // 获取selection对象 var selection = window.getSelection(); // 清空selection对象 selection.re ...

  9. MySQL数据分析-(5)数据库设计之ER模型

    大家好,我是jacky,很高兴跟大家分享本课时的内容,从本节课开始,就开始了我们第二章的学习,第一章我们抛出了若干问题,从第二章开始往后,都是解决问题的一个过程: 第一章的案例中,我们拿手机销售公司举 ...

  10. JavaWeb_(Spring框架)整合Mybatis加入事务操作数据库

    整合Mybatis a)导包: i.Spring:基本包.aop.aspects.jdbc.tx.test: ii.Mybatis:mybatis-3.4.6 iii.整合包:mybatis-spri ...