如何用strace找出ssh后門
首先我先編譯一個(gè)ssh后門,這個(gè)ssh后門會(huì)在/tmp/xxxxxx記錄所有的登錄密碼
啟動(dòng)他
QUOTE:
root@laptop:/usr/local/openssh2/sbin# ps aux | grep sshd
root 13619 0.0 0.3 7432 1752 ? Ss 23:44 0:00 ./sshd -p 1234
root 13707 0.0 0.2 4292 1328 pts/3 R+ 23:58 0:00 grep sshd
下面我們用strace跟蹤一下pid位13619的ssh進(jìn)程,其中-ff參數(shù)很重要,可以跟蹤fork的子進(jìn)程。
QUOTE:
root@laptop:/usr/local/openssh2/sbin# strace -o aa -ff -p 13619
然后我們登錄ssh,成功登錄之后,我們看看當(dāng)前目錄,生成了strace的輸出
QUOTE:
root@laptop:/usr/local/openssh2/sbin# ls
aa aa.13636 aa.13638 aa.13640 aa.13642 aa.13644 aa.13646 aa.13648 aa.13650 aa.13652 aa.13654 aa.13656 sshd
aa.13635 aa.13637 aa.13639 aa.13641 aa.13643 aa.13645 aa.13647 aa.13649 aa.13651 aa.13653 aa.13655 aa.13657
我們grep一下open系統(tǒng)調(diào)用,然后過濾掉錯(cuò)誤信息和/dev/null信息,以及denied信息,并且找WR的,就是讀寫模式打開的,因?yàn)橐延涗浀拿艽a寫入文件,肯定要是以寫方式打開的文件,大致的看看,很容易找到異常文件/tmp/xxxxxx
QUOTE:
root@laptop:/usr/local/openssh2/sbin# grep open aa* | grep -v -e No -e null -e denied| grep WR
aa.13635:open("/tmp/xxxxxx", O_WRONLY|O_APPEND|O_CREAT|O_LARGEFILE, 0666) = 3
aa.13635:open("/dev/ptmx", O_RDWR) = 3
aa.13635:open("/dev/pts/5", O_RDWR|O_NOCTTY) = 6
aa.13635:open("/var/run/utmp", O_RDWR) = 7
aa.13635:open("/var/log/wtmp", O_WRONLY) = 7
aa.13635:open("/var/log/lastlog", O_RDWR|O_CREAT|O_LARGEFILE, 02000) = 7
aa.13635:open("/var/run/utmp", O_RDWR) = 6
aa.13635:open("/var/log/wtmp", O_WRONLY) = 6
aa.13638:open("/dev/pts/5", O_RDWR|O_LARGEFILE) = 7
aa.13638:open("/dev/tty", O_WRONLY|O_LARGEFILE) = 8
aa.13638:open("/dev/tty", O_RDWR|O_NONBLOCK|O_LARGEFILE) = 3
aa.13640:open("/dev/tty", O_RDWR|O_NONBLOCK|O_LARGEFILE) = 3
aa.13657:open("/dev/tty", O_RDWR) = 3
通過上面的方法,我們可以大致的診斷一下我們的sshd是否被放了后門,但是因?yàn)閟shd后門多種多樣,上面我說到的sshd后門是比較優(yōu)秀的一種,他可以設(shè)置是否記錄密碼,如果設(shè)置不記錄密碼,那么我們用strace估計(jì)是發(fā)現(xiàn)不到他的,但是還是有一些ssh后門還要用特殊的配置文件,讀取特殊的密碼文件,這種我們用strace就十分容易發(fā)現(xiàn)他們了。
【編輯推薦】