iT邦幫忙

1

IT專題- Tomcat Service 偽裝

Joejo 2017-08-14 12:02:3512822 瀏覽

現場(環境):CentOS 7
專案套件: tomcat
測試工具: curl

原因:
現在市面上提供的攻擊或是偵測的opensource越來越多,
只要對一個網站隨意進行偵測,
就可以知道他所屬的作業系統及Service版本(而且連該版本有甚麼漏洞都會一併提示出來)。
在這種狀況之下,為了避免自己的Service直接就被他人找到破解方法;就要進行簡單的偽裝手段。
當然偽裝只是簡單的延緩惡意人士的攻擊,它並非是個完全解決他人惡意偵測及攻擊的手段。


處理:
本專題準備將linux系統簡單偽裝成Windows服務。

在市面上Windows是最大使用者使用的平台,也是多數人隱蔽的避風港(讓我們感謝微軟的貢獻)。

  1. 關於將linux偽裝成Windows這一段,目前較為簡單的作法,就是修改TTL回應時間。
    -->Windows TTL 回應時間 128
    -->Linux TTL 回應時間 64
    就依這件事來進行處理的話, 我們要將 TTL回應時間由 64 修改為 128

#echo 128 > /proc/sys/net/ipv4/ip_default_ttl

  1. 再來我們要來設定我們這次最重要的主題 Tomcat

$CATALINA_HOME --> 表示為Tomcat的預設家目錄,

一般在使用tomcat Serivce的時候都會先定義在環境變數當中。

我們首先要先來修改jar檔內的資料;我們可以把它簡單當成一個壓縮檔來處理。

#cd $CATALINA_HOME/lib

將jar檔解壓縮

#jar xvf catalina.jar

解壓縮後,會出現org、META-INF 資料夾,我們要修改的東西就在那包(org)裡面。

編輯服務器顯示內容:

#vim org/apache/catalina/util/ServerInfo.properties

這邊我們想將tomcat 8.0.30 簡單偽裝成 Microsoft-IIS/8.5 的版本。
這也是為了呼應我們前面提到的,我們將Linux系統偽裝成Windows版本。

替換服務內容為下列:

############################################

server.info=Apache Tomcat/8.0.30
修改成
server.info=Microsoft-IIS/8.5

############################################

接著為了避免自己修改錯誤,我們要先將原始檔進行備份

#mv catalina.jar catalina.jar.bak

再來我們要將我們剛剛重新設定好的檔案,重新打包回jar檔

#jar cvf catalina.jar org

刪除掉解壓縮出來的資料

#rm -rf org

#rm -rf META-INF

修改權限內容(配合原設定的權限修改):

#chmod 644 catalina.jar

#chown tomcat:tomcat catalina.jar

當然這邊如果你為了追求真實性,
應當將這個檔案的修改時間調整的跟其他檔案時間一樣。

修改完jar檔,我們依然要去tomcat的server.xml內修改服務顯示:

#vim $CATALINA_HOME/conf/server.xml

找到以下內容,然後添加 server="Microsoft-IIS/8.5"

這部分會依工程師的設定而有所不同。

#################################################

<Connector port="80" protocol="HTTP/1.1"

           connectionTimeout="20000" reloadable="true"

           redirectPort="443" URIEncoding="big5"

           server="Microsoft-IIS/8.5"/>

################################################

設定完這些資料猴要進行服務重啟:

#CATALINA_HOME/bin/shutdown.sh

#CATALINA_HOME/bin/startup.sh

最後進行檢測。

檢查是否修改正確:

curl -Isk 網址

-k 允許用不安全方式連接。

我們可以簡單測試用工具偵測我們剛剛修改的網站服務。

因為這邊我們使用的是測試主機,

所以它沒有綁上它應該有的Domain Name。

如果修改的是一個有網址的Service,

那後面的網址部分,請自行修改成網址。

下方的測試我們可以看到,

偵測出來這台主機的Service已經由原本我們運作的tomcat被更改為IIS了。

#curl -Isk https://10.10.10.111

HTTP/1.1 200 OK

...................
Server: Microsoft-IIS/8.5

後記:
Tomcat Service是最容易修改及偽裝的Service,

它在進行偽裝時不需要將服務器進行重新編譯及安裝的動作。

目前查到的文件當中,Apahce 、 Nginx這些服務在偽裝的時候,

都必須是在一開始安裝的時候就先進行編譯及修改。

如果未來有人有接觸到這類服務器,

而你又想進行偽裝,建議你一開始就先執行。
(服務運作的當下,要將它重新編譯及修改不是件簡單的事情)

或者可以考慮在你的系統上運作兩種 Web服務器 ,

以 tomcat service為例,

可以在同一台主機上再建立Apahce或者 Nginx服務器,

使用它們的反向代理(proxy)功能,如此也能有效的混淆部分攻擊者的偵測。

(本篇完)

引用自我的BLOG: http://it001.pixnet.net/blog/post/324910738-it%e5%b0%88%e9%a1%8c--tomcat-service-%e5%81%bd%e8%a3%9d


尚未有邦友留言

立即登入留言