一、 前言
在某些場景下,服務(wù)器裝了多個殺軟,之前遇到過卡巴加諾頓情況,非常惡心,不僅免殺難過,上線之后很多操作也受限,這時候可能比較好的解決方法就是使用自己研發(fā)的遠(yuǎn)控,那如果沒有自己遠(yuǎn)控,市面上現(xiàn)成的遠(yuǎn)控軟件是否能利用呢,于是就簡單去找找市面上遠(yuǎn)控軟件做了一下測試。
二、 要求
畢竟我們是用來做內(nèi)網(wǎng)橫向的,除了要能滿足基本的遠(yuǎn)控辦公外,遠(yuǎn)控軟件來說我們也有一些其他要求:
1. 遠(yuǎn)控軟件無需安裝,注冊,實名,拿來即用,快捷方便,匿名性較好。
2. 遠(yuǎn)控軟件無需管理員權(quán)限也可使用,可以在提權(quán)困難或失敗等某些特殊場景下快速橫向。
3. 遠(yuǎn)控軟件被控端是免殺的,因為遠(yuǎn)控軟件基本上都有可信的數(shù)字證書簽名,所以大部分的遠(yuǎn)控軟件都是滿足條件的。
4. 遠(yuǎn)控軟件被控端體積盡可能小,方便上傳部署。
5. 遠(yuǎn)控軟件支持跨平臺,滿足一些特殊場景需要。
6. 遠(yuǎn)控軟件在不出網(wǎng)純內(nèi)網(wǎng)的情況下也可以使用。
7. 遠(yuǎn)控軟件開源的話更好,安全可控,還能自定義修改。
三、 GotoHTTP
3.1 介紹
帶著以上要求首先篩選出了GotoHTTP[1],GotoHTTP基本可以滿足我們大部分要求,另外它還有一些優(yōu)點:
• B2C模式,無需安裝控制端軟件,有瀏覽器就可以遠(yuǎn)控。
• 流量走h(yuǎn)ttps協(xié)議,只要目標(biāo)放行443端口出口就可以實現(xiàn)內(nèi)網(wǎng)穿透。
• 在低帶寬也可以使用,運行占用內(nèi)存極低,控制時占用CPU僅為0%-3%。
• 被控端在類Linux系統(tǒng)上支持圖形界面(GUI)和字符界面(CLI)。
不過GotoHTTP也有一些缺點,比如需要管理員權(quán)限運行,不支持純內(nèi)網(wǎng)使用,而且由于一些要實現(xiàn)特殊功能(網(wǎng)絡(luò)喚醒遠(yuǎn)程主機)需要加載驅(qū)動,導(dǎo)致運行時360安全衛(wèi)士會攔截這行為,其他殺軟則不會攔截。
3.2 使用
選擇對應(yīng)系統(tǒng)的版本,下載[2]解壓執(zhí)行即可。
管理員權(quán)限執(zhí)行被控端會在當(dāng)前目錄生成配置文件GotoHTTP.ini,讀取配置文件即可獲取到電腦ID和控制碼。
打開GotoHTTP[3]官網(wǎng),輸入電腦ID和控制碼即可開始遠(yuǎn)控。
3.3 退掉殺軟
經(jīng)測試遠(yuǎn)程操作可退出360安全衛(wèi)士和火絨等殺軟。
四、RustDesk
4.1 介紹
找了一圈下來發(fā)現(xiàn)了開源的RustDesk,看名字就知道時Rust語言編寫的,所以也是跨平臺的,RustDesk基本是滿足了我們所有要求,如純內(nèi)網(wǎng)使用,普通權(quán)限即可使用,它不僅有GotoHTTP的優(yōu)點,還是免費開源的,而且還支持自建服務(wù)器,簡直業(yè)界良心。
RustDesk目前也在積極開發(fā)中,后續(xù)如果能支持開機自啟和托盤運行就更完美了,當(dāng)然有能力也可以魔改,倉庫地址是https://github.com/rustdesk/rustdesk。
4.2 互聯(lián)網(wǎng)情況
RustDesk的控制端也支持Web訪問,不過Web端剛出來,目前還是beta版,穩(wěn)定性和流暢度差一些,建議使用PC端(控制端和被控端都是同一個應(yīng)用),直接下載解壓使用。
RustDesk的配置目錄在C:UserstestAppDataRoamingRustDeskconfig目錄,其中ID和密碼在RustDesk.toml文件里。
不知道是不是RustDesk的bug還是出于安全考慮,如果是第一次在目標(biāo)上運行RustDesk,RustDesk不會立即將密碼保存到配置文件,而此時你把鼠標(biāo)放在顯示密碼時則會保存到文件,遇到這種情況我們只需運行RustDesk,生成配置文件后結(jié)束RustDesk進(jìn)程,然后修改配置文件里password為指定密碼,再運行RustDesk即可。
4.3 純內(nèi)網(wǎng)情況
有時候我們打點控了一臺跳板機,在內(nèi)網(wǎng)有一臺服務(wù)器有webshell權(quán)限,但是這臺機器又不出網(wǎng),而且上面裝了多個殺軟,防護(hù)開到最嚴(yán),你又不知道目標(biāo)賬號密碼,這時候你許多操作都會受限,這種場景還是挺常見的。這時候如果能遠(yuǎn)程過去把殺軟退掉可能是一種捷徑,而RustDesk就支持在內(nèi)網(wǎng)使用IP進(jìn)行直連。
出于安全的考慮默認(rèn)啟動RustDesk,允許IP直接訪問功能未開啟。
不過這個問題很好解決,與修改為指定密碼操作類似,我們修改配置文件RustDesk2.toml,在options下添加一行direct-server = 'Y'重啟RustDesk即可。
RustDesk的實現(xiàn)IP直接訪問功能監(jiān)聽的默認(rèn)端口是21118,這個端口也是可以修改的,同樣的步驟修改配置文件RustDesk2.toml,在options下添加一行direct-access-port = '8443',然后重啟RustDesk即可。
注意:在一些場景下被控端防火墻需要放行入站方向的指定端口。
在控制端輸入目標(biāo)地址(默認(rèn)端口直接輸入IP,自定義端口輸入IP:PORT格式),然后輸入密碼即可遠(yuǎn)控。
4.4 退掉殺軟
經(jīng)測試普通權(quán)限無需過UAC運行RustDesk,遠(yuǎn)程即可退掉火絨。
而退掉360安全衛(wèi)士需要管理員權(quán)限運行RustDesk。