2021-03-15 分類: 網(wǎng)站建設
SSH與OpenSSH
PermitRootLogin no
2、僅使用 SSH Protocol 2
3、禁用空密碼
1 |
PermitEmptyPasswords no |
4、用戶登錄控制
1 2 |
AllowUsers user1@host1 user1@!* *@* DenyUsers user2 |
5、配置 Idle Log Out Timeout 間隔
1 2 |
ClientAliveInterval 300 ClientAliveCountMax 0 |
6、禁用基于主機的身份驗證
1 |
HostbasedAuthentication no |
7、禁用用戶的 .rhosts 文件
1 |
IgnoreRhosts yes |
8、強密碼策略(生成14位隨機字符密碼)
1 |
</dev/urandom tr -dc '!@#$%^&*()-+=0-9a-zA-Z' | head -c14; echo "" |
9、pam_chroot
通過ssh遠程登錄的用戶將被限制在jail環(huán)境中。
10、訪問控制
1 2 |
tcpwrapper(/etc/hosts.allow,/etc/hosts.deny) iptables(限制源IP等) |
二、攻防對抗
一旦攻擊者獲取了相關權(quán)限,就可能安裝openssh后門、或者隱身登錄等。接下來我們看看如何讓攻擊者無所遁形。
隱身登錄(登錄后,不能通過w、who查看到)
通過ssh –T來連接,但-T相當于notty,ctrl+C會中斷會話;
另外,大家都知道,w查看時是通過utmp二進制log,如果攻擊者在獲取權(quán)限后,只要修改了utmp,就可以達到隱身效果,管理員再登錄上來的時候,通過w、who就看不到已經(jīng)登錄的攻擊者了,如下所示。
當然,這樣操作會造成整個utmp為空,如果是在管理員登錄之后再操作的話,還是會發(fā)現(xiàn)異常的。
同時也要處理下wtmp,否則還是會被審計到。
那么如何快遞排查呢,我們可以通過ps命令查看進程,如下圖所示。
我們可以看到當攻擊者處理掉自己的記錄后,管理員雖然通過w、who看不到,但是進程中卻存在著攻擊者登錄申請的TTY。
以上只是簡單的隱藏,通常情況下,攻擊者獲取權(quán)限后,會安裝openssh后門,成功運行后門后,攻擊者通過后門登錄將不記錄任何日志,正常用戶登錄該主機或者通過該主機通過ssh連接其他主機時,都會被后門記錄到賬號密碼。
這里我們介紹如何利用操作系統(tǒng)自身的工具手工快速查找后門,主要用到strace、strings、grep。
通過openssh后門功能中會記錄正常用戶登錄賬號密碼,因此猜測會用到open系統(tǒng)調(diào)用,只要在登錄是用strace跟蹤sshd打開的系統(tǒng)調(diào)用,然后過濾open,就應該能獲取到記錄密碼的文件及路徑。