主頁 > 軟體設計 > 第一次遇見黑客,竟然是這樣的局面。

第一次遇見黑客,竟然是這樣的局面。

2021-02-09 10:39:56 軟體設計


每次看到犯罪片中熟練操作電腦的黑客,都無比欽佩其技術高超,也妄想自己能達到那種高度,沒想到現實中第一次遇到的黑客,他站在我的對立面,手段還無比卑鄙…

enter description here
(寫下這篇文章來記錄一下這段經歷,以及在這個程序中學到的一些技術,)

目錄

      • 1.服務器忽然成為在線礦場
      • 2.迅速反擊
      • 3.隨之而來的報復
      • 4.第二次反擊
      • 5.峰回路轉
      • 6.復盤以及防護
      • else

1.服務器忽然成為在線礦場

我正在苦惱配置環境的問題,忽然收到學姐的一張截圖,里面GPU跑滿了,問我有沒有在跑代碼,我倒是想跑,但環境還沒配置好啊!
仔細一看 這截圖里面除了兩個行程明顯是python程式,另外八個的行程名字有點奇怪啊 沒有見過,

enter description here

我忽然感覺到了不妙,不會被盯上了吧,不會吧…
馬上到谷歌搜索了那個奇怪的行程名,果不其然,出現了我最擔心的詞,被挖礦的盯上了!!
enter description here

2.迅速反擊

在大二的時候因為要學深度學習也就順便學了linux系統,用的兩個電腦都是雙系統,并且一個電腦日常都是linux使用(只是因為美化過之后比windows好看…

兩年過去了,對于日常使用的linux命令還是懂點的,雖然能記住的沒幾個,不過殺殺行程、查個東西也夠了,

看到挖礦程式的行程是同一個 第一個想法是殺死行程!
使用 kill -9 PID直接殺死了行程 (-9是六親不認的殺死!)

挖礦的行程瞬間就沒了
enter description here

但是挖礦程式肯定還在啊,肯定需要找到并洗掉
這時候就需要用查找的命令,由于只知道程式名字 其他一概不知
只能從根部搜索有關ethminer的檔案
find -name 'ethminer'

enter description here

竟然這么容易就被我搜到了 太輕松了 !

但是接下來的事讓我百思不得其解
我查看了這幾個檔案的具體資訊, 發現是user(一個用戶)創建的 并且時間是2019年!!!
enter description here

首先user這個用戶是學長在用,但挖礦程式不是學長弄的,其次這時間是2019也不對啊,

隨后我查了這個程式里面幾個檔案 找到了網上的源程式 發布時間也是2019年
enter description here

目前只能猜測是 有黑客入侵了user這個用戶裝了挖礦程式,至于這個時間有可能是程式發布的時間,

緊接用rm -r -f 指令洗掉了這幾個檔案,換了user復雜點的密碼,
ufw相關指令 把防火墻開了,并開放一些必要的埠,(之前一直以為服務器在內網就沒有什么防護 防火墻都是關著的),不到半天就解決了,

3.隨之而來的報復

隨后的幾天看似一切都風平浪靜,似乎什么都沒發生過,

我還是一如既往的配著環境,一如既往的糾結要不要學習,糾結著就打開了王者,并遭受著毒打!(隊友菜的呀…)

忽然收到學姐訊息,說運行的pycharm老是自己閃退,
第一反應是記憶體不夠了,因為之前服務器好像就因為記憶體不夠刪了一下東西,而且最近我準備裝個CUDA的另一個版本,但上去一查,還有很多,
enter description here

仔細看了看學姐發的報錯資訊 好像是少什么東西,也就沒怎么在意,讓學姐自己查查,

直到第二天,想跑一個之前弄好的專案,跑著跑著 忽然停了出現了 killed!!!
跟學姐一樣的問題,這問題好像并沒那么簡單了…
pycahrm 瀏覽器 python程式都能給自動殺死,

隨后開始了測驗 開始查資料,
首先找出來怎么被殺死的,誰殺死的,
開啟三個終端:

  • 一個終端打開一個服務
  • 另一個終端查出來這個服務的pid (用ps -A -f
  • 最后一個監控這個pid (strace -T -tt -e trace=all -p pid

enter description here

結果是 +++ killed by SIGUSR1 +++,是使用了kill -9(SIGKILL),那么即使使用strace也只是知道被干掉了,也沒法知道被誰干掉了,

又看到網上關于這類問題都是查被殺死的日志,但是那些指令輸入去沒有一個回傳,沒有一個結果
enter description here

正當我焦頭爛額的時候,發現我登不上去我用戶了!!!
我密碼被改了,user密碼被改了,學姐密碼也被改了!!!
雪上加霜,
我忽然想起來user密碼前兩天好像因為一些原因又被學長改回來了,這不又被黑客登上了,那這行程被殺死也是黑客搞的鬼了,,,

4.第二次反擊

還好我還有一個root的終端沒有關掉,我馬上改了user的密碼 root的密碼,斷了服務器的網,以此防止黑客再進入,但這只是緩兵之計,

進入服務器之后我才發現他并不是改了我的密碼,而是把我和學姐的用戶刪了!!!
su 用戶名 切換用戶)我們的用戶都無法切換了也就是說不存在了,
enter description here

這黑客也太過分了吧… 刪用戶,破壞電腦 簡直不講武德,
我配了那么久的環境全沒了…
至此我也完全相信了有黑客的入侵,在此之前我一直抱有懷疑,不能確定,

但是又沒有好的反擊方法,相關的日志絲毫沒有記錄,
我只能開始了全方位地毯式搜索 有關的資訊,
egrep 命令搜索檔案內有關的字串
‘killed processes’ 搜不到就用 ‘kill’
/var/log 日志檔案里面沒有 那我就全盤搜!!!

終于是找到了有關線索
看到了他殺死行程的一些命令
enter description here

并在user下.bash_history 發現了挖礦程式的相關字符
我才知道這個檔案記錄了user的終端命令記錄
然后就意識到 通過這個我就可以看黑客的操作記錄 就能知道他做了什么
enter description here

由于我們都不是計算機相關專業,對linux都不是特別熟,再加上學長學姐一般用界面操作,我也很少用這個用戶,所以.bash_history 里很容易找出來黑客的指令,

根據里面wget下載的檔案 并用stat命令找出來他操作的時間 可以看出來是2021/1/30
而之前判斷的2019是這個檔案的修改時間,
enter description here

雖然此時已經有了很大的進展,我已經能判斷出來他做了什么,并洗掉了一些之前沒發現的檔案,但是行程自動殺死的問題還是沒有解決,我猜測是有什么腳本在控制,但在root下和user下的.bash_history里都沒有腳本的記錄,

使用find /etc -name '*.sh' -user -root 來找etc下屬于user和root的腳本檔案依舊無所獲,
enter description here

在我無可奈何又氣急敗壞的時候 想到了我有黑客的郵箱
上面查記錄時找到了黑客用來挖礦時填的賬戶郵箱
enter description here

本想惱羞成怒的羞辱他一番,但仔細一想問題還沒解決,萬一他實力強,再給我帶來其他麻煩豈不更慘,但又一想都被他欺負了不能認慫,警告他一番,
enter description here

5.峰回路轉

在無可奈何的時候,求助了當時買服務器時的技術,本想著我可以休息了,也不用學習了,可以去王者峽谷逛逛了,
結果技術一兩天啥也沒干,發了個朋友圈 意思是:我要放假了,別找我了…

我吐了呀,還是得靠自己,只能盯著螢屏繼續干了,繼續看日志有沒有遺漏的地方吧
可能是真的到了山窮水盡的時刻,終于柳暗花明又一村了,

病急亂投醫的時候看到一個博客寫用top 指令查查記憶體占用最多的行程
隨著top輸入終端并回車,看到出來的內容 ,我震驚了,
十幾個行程cpu占用都是99% 命令都是crond(一個定時任務命令)
enter description here
(意識到找到問題了 太激動了 當時的圖沒留 )

殺死其中一個行程后 會馬上原地復活這讓我看到了希望!!! 就是它了,

使用crontab –l 查看定時任務檔案 找到了地址
一個及其隱藏的地方
enter description here
而時間正好就是2月2 我們發現問題的那天
enter description here
果然刪掉之后一切問題解決,

至此問題是都解決了
一直在意的是GPU,沒想到黑客會寫定時任務跑滿了CPU,而導致其他程式無法正常啟動,/var/log/messages日志檔案不知道什么問題是空的,不然一開始就能查到了,top命令之前也用過但是用來查看單個行程的,沒有去查看總體的占用,導致之前沒想到這個問題,

6.復盤以及防護

通過.bash_history 基本可以復盤出黑客的整個操作
2021/1/30:

  • 暴力破解出了user的用戶密碼
    lastb 查看列出登入系統失敗的用戶相關資訊
    可以看到遭遇了暴力破解 還在破解其他用戶…
    enter description here
  • 從GitHub上下載挖礦程式,以及從一個檔案中轉網站上下載了其他檔案,簡單配置了環境因為我們顯卡驅動 CUDA環境都是配好的,就開始了挖礦,
    enter description here

1/31:

  • 挖礦被發現,挖礦程式被刪掉,并有了些防護、改了密碼 、開了防火墻,進不來了

2/2:

  • 密碼被學長改回,又進來了,開始了報復行為,
  • 上傳了一個定時回圈的任務,跑滿了cpu,讓我們的其他程式無法運行,
    enter description here

2/3:

  • 可能是看到我和學姐用這個服務器比較多,直接刪掉了我倆的用戶,還改了user的密碼以此妄想來獨占服務器,
    enter description here

終于在2月6號都被我成功解決掉了,
enter description here

安全防護
需要防護的就是ssh了
修改ssh的組態檔 vim /etc/ssh/sshd_config :

  1. 修改常用埠22 改成 1024-65535中任一 ,(port *****)
  2. 禁止root登陸 (PermitRootLogin no)
  3. 用戶密碼設定盡可能的復雜 (字母大小寫數字特殊符號 自由組合)
  4. 改為秘鑰登陸 禁止密碼登陸 (PasswordAuthentication no )(PubkeyAuthentication yes)
    enter description here

重啟ssd服務
systemctl restart sshd

第四條只能使用秘鑰登陸 就從根本上杜絕了暴力破解

else

此次經歷應該是我第一次現實中遇到黑客,也對這群人有了些新的認識,其實周圍也有學網路技術安全的同學,也見過同學攻擊別人,找漏洞,薅羊毛之類的,
但是切實發生在自己身上,并且是受害者的時候,深刻感覺到網路安全意識很重要,以及他們行為的可恥,技術本來是要改善生活、提供便利的,但卻被他們利用去欺負別人,

這應該也是我第一次發布這類以敘事方式來寫的技術性文章,以前的文章都是很’硬核’,可能是最近知乎看多了吧,以后可能也會發一些硬核也很有意思的文章,(跟我最近要跑的專案有關)

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/258050.html

標籤:其他

上一篇:個人主頁展示系統(SpringBoot)-no1-資料庫設計以及技術選型

下一篇:Codeforces Round #700 (Div. 2) C D1 2題解

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more